Sunday, 5 January 2020

Odoo 11 - Create a new sample module

How To Create or Develop a Custom Module in Odoo 11


In this blog, we‘ll be focusing on how we can create or develop a custom module in odoo. Moreover, we'll also discuss how we can design the view in this module.

In Odoo Development, Odoo Modules can either add brand new business logic to an Odoo System or alter and extend existing business logic. A module can be created to add your country’s accounting rules to Odoo’s generic accounting support, while the next module adds support for real-time visualization of a bus fleet.

Everything in Odoo thus starts and ends with modules.

Structure of a Module:


An Odoo module can contain many elements like:

Objects/Models: Declared as Python classes, these resources are automatically persisted by Odoo based on their configuration

View Files: XML or CSV files declaring metadata (views or reports), configuration data (modules parameterization), demonstration data and more

Controllers: Are used to handling requests from web browsers

Static Web Data: Images, CSS or JavaScript files used by the web interface or website

In this case, we‘ll be focusing on how to generate a simple custom module using python models & XML views. So, let us start first by naming our custom module.

We can name this custom module whatever we want, but it should be related to the functioning of the module so that, it is user-friendly as well.

In this case, we will create a simple book module. So, let us name this folder as sample_book:

Now we need to create some sub-folders and sub-files inside this module. The final structure will be like this:
  • models
    • __init__.py
    • sample_book.py
  • views
    • sample_book_view.xml
  • __init__.py
  • __manifest__.py


Inside each file, type it like this:
  • models/__init__.py
  • models/sample_book.py
  • views/sample_book_view.xml
  • __init__.py
  • __manifest__.py

thats all we need, now start the server and the Book module is now ready to install. :D

Friday, 6 July 2018

Pemrograman Berorientasi Object: Java

Ada tiga karakteristik yang dimiliki pemrograman object oriented :
  1. Encapsulation (pembungkusan)
  2. Inheritance (pewarisan)
  3. Polymorphism (mempunyai banyak bentuk)

Class dan Objek

  • Objek merupakan suatu bentuk atau model yang tergantung dari cara pandang objek dimaksud.
  • Setiap objek memiliki atribut (state) dan method (behaviour)
  • Atribut merupakan segala sesuatu yang berhubungan dengan karakteristik objek seperti : tipe, warna
  • Method adalah fungsi atau segala sesuatu yang dapat dilakukan objek, seperti melindungi dari panas, hujan.
  • Class adalah prototipe yang mendefinisikan variabel-variabel dan method-method secara umum.
  • Objek merupakan instansiasi dari class.

Encasulaption

  • Encapsulation = pembungkusan. Maksudnya adalah pembungkusan atribut juga method oleh class.
  • Setiap anggota class (atribut, method) pada pemrograman object oriented seluruhnya dideklarasikan didalam class. Tidak ada satu kode pun yang ditulis diluar kelas.

Penentu akses : public dan private

  • Public berarti pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas
  • Private berarti pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dlm kelas, tidak bisa dari luar kelas.

Java class package

  • Paket merupakan pengelompokan sejumlah kelas yang terkait ke dlm sebuah unit.
  • Java memiliki beragam paket yang didalamnya terdapat kelas-kelas dengan beragam fungsi
  • Java lang, Java AWT, Java swing, Java Util, java Math adalah diantara contoh paket yang jumlahnya sangat banyak karena lengkapnya library java

Contoh Source Code:
import javax.swing.JOptionPane;

public class Welcome2
{
 public static void main (String args []) 
 {
  JOptionPane.showMessageDialog (null, 
   "Hello\nWorld!");
  System.exit (0);
 }
}

Hasil:



Inheritance

  • Inheritance: Pewarisan seluruh anggota class (atribut, method) yang dimiliki oleh superclass (kelas induk/parent) ke subclass (kelas anak).
  • Superclass: class yang letaknya di atas class tertentu di dalam hierarki.
  • Subclass: class yang letaknya di bawah class tertentu di dalam hierarki.

Polymorphism

  • Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
  • polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.

Friday, 11 May 2018

Java: Percabangan dan Perulangan

Flow Control / Kontrol Alur:

  • Digunakan untuk mengatur alur eksekusi program sesuai dengan kondisi yang telah ditentukan.
  • Dalam Java ada 3 macam kontrol alur:
    • Selection (Percabangan/Seleksi)
    • Iterasi (Perulangan/Looping)
    • Jump

Selection
  • Terdapat 2 kata kunci dalam Java untuk melakukan seleksi: if dan switch
  • Sama-sama digunakan untuk menentukan alur eksekusi program mana yang akan dijalankan pada suatu percabangan.

If ... Else ...
  • Jika kondisi di dalam if bernilai True, maka statement(s) di dalam blok if yang akan dieksekusi dan mengabaikan statement(s) yang ada di dalam blok else.
  • Demikian juga sebaliknya, jika kondisi pada if bernilai False, maka statement(s) di dalam blok if tidak dieksekusi dan statements(s) yang ada di blok else yang akan dieksekusi.
Contoh source code:
public class TestSeleksi {
    public static void main(String[] args) {
        int a, b;
        a = 20;
        b = a / 2;
        if (b < 5) {
            System.out.println("Statement(s) dalam blok if dieksekusi");
        } else {
            System.out.println("Statement(s) dalam blok else dieksekusi");
        }
    }
}
Hasil:

If ... Else ... Bertingkat
  • Pada prinsipnya sama saja, hanya kita dapat mengkombinasikan penggunaannya menjadi bertingkat.

  • if(kondisi1) {
           pernyataan1;
    }
    else if(kondisi2) { 
           pernyataan2;
    }
    else if(kondisi3) {
           pernyataan3;
    }
    else {
           pernyataan default;
    }
    Contoh source code:
    public class IfElseIf {
        public static void main(String[] args) {
            int bulan = 3;
            if (bulan >= 1 && bulan <= 3) {
                System.out.println("Kuartal 1");
            } else if (bulan >= 4 && bulan <= 6) {
                System.out.println("Kuartal 2");
            } else if (bulan >= 7 && bulan <= 9) {
                System.out.println("Kuartal 3");
            } else {
                System.out.println("Kuartal 4");
            }
        }
    }
    
    Hasil:



    Switch Case
    • Penggunaan switch case mirip dengan penggunaan if bertingkat, di mana kita dapat menggunakannya untuk percabangan yang lebih dari satu.
    • Dapat dijadikan alternatif terbaik dibandingkan if bertingkat.
    Contoh source code:
    public class CaseJava {
        public static void main(String[] args) {
            int fakultas = 68;
            switch (fakultas) {
                case 67:
                    System.out.println("TI");
                    break;
                case 68:
                    System.out.println("SI");
                    break;
                case 69:
                    System.out.println("DKV");
                    break;
                default:
                    System.out.println("Bukan FTI");
                    break;
            }
            System.out.println("Baris perintah berikutnya");
        }
    }
    
    Hasil:

    Iterasi atau Perulangan
    • Java memiliki 3 jenis iterasi yang dapat digunakan untuk mengulang sejumlah statement(s) yang sama tanpa menulis statement(s) tersebut secara berulang, yaitu:
      • for
      • while
      • do - while
    public class ForJava {
        public static void main(String[] args) {
            int row, col;
            int input = 5;
            for (row = 1; row <= input; row++) {
                for (col = 1; col <= input - row; col++) {
                    System.out.println(" ");
                }
                for (col = 1; col < 2 * row; col++) {
                    System.out.println("*");
                }
                System.out.println("");
            }
        }
    }
    
    Hasil:

    Jump
    • Java mengenal 3 buah perintah untuk memindahkan alur eksekusi program ke bagian lain dalam program.
      • break
      • continue
      • return

    Java: Type Casting (Conversion)

    Ciri-ciri:

    • ASCII karakter '0' s/d '9'
    • '0' -> 48
    • '1' -> 49
    • '9' -> 57
    • Konversi karakter ke bilangan -> dikurangi nilai 48
    • Konversi bilangan ke karakter -> ditambahi nilai 48

    Contoh source code:
    public class CastingChar {
        public static void main(String[] args) {
            char huruf = '8';
            int angka = huruf;
            
            System.out.println("Huruf \'"+huruf+"\' memiliki nilai "+angka);
            angka = huruf-48; 
            System.out.println("Huruf \'"+huruf+"\' setelah dikonversi ke bilangan bernilai "+angka);
            System.out.println();
            
            angka = 2;
            huruf = (char)angka; 
            System.out.println("Nilai  "+angka+" pada ASCII adalah "+huruf);
            huruf = (char)(angka+48); 
            System.out.println("Nilai  "+angka+" setelah dikonversi ke huruf bernilai "+huruf);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Thursday, 10 May 2018

    Java: Kelas

    Konsep Kelas

    • Kelas adalah persepsi untuk objek tertentu, kita dapat menggunakan definisi class untuk membuat objek dari tipe kelas
    • Kelas memiliki peran penting dalam paradigma pemrograman berorientasi objek. Kelas bagaikan sebuah pabrik yang siap memproduksi objek-objek yang kita butuhkan. Untuk dapat menciptakan sebuah objek, kita harus menciptakan kelasnya. Kelas inilah yang dalam runtime program akan menciptakan objek yang inginkan. Singkatnya kelas adalah cetak biru bagi objek yang ingin kita ciptakan.
    • Perlu diperhatikan bahwa umumnya tidak ada batasan jumlah objek yang dapat diciptakan melalui sebuah kelas. Namun terkadang ada kelas-kelas yang memang dirancang untuk menciptakan tidak lebih dari satu objek.
    • Objek-objek yang tercipta dari sebuah kelas disebut instans dari kelas tersebut. Instans ini akan mempunyai variabel dan metode yang disebut variabel instans dan metode instans. Namun ada juga variabel kelas yang berlaku bagi kelas itu sendiri sehingga akan berlaku juga untuk semua instans dari kelas tersebut.


    Nama dan Sintaks

    Kegunaan

    public

    Kelas dapat diakses oleh kelas apa saja. Jika kosong, maka kelas dapat diakses hanya oleh kelas-kelas dalam package yang sama.

    abstract

    Kelas tidak dapat diinstansiasi. Jika kosong, berarti kelas bukan abstrak.

    final

    Kelas tidak dapat dijadikan sebagai superkelas, artinya tidak dapat dibuat subkelas dari kelas ini. Jika kosong, berarti kelas bukan final.

    class nama kelas

    Nama dari kelas yang dibuat

    extends superkelas

    Nama superkelas, hanya boleh ada satu superkelas.

    implements nama interface

    Interface yang diimplemen, bisa lebih dari satu interface.

    { // isi kelas }

    Isi kelas

    Deklarasi Kelas:
    class SuperHero {
        String superPowers[];
        void setSuperPowers(String superPowers[])  {
            this.superPowers = superPowers;
        }
        void printSuperPowers() {
            for (int i = 0; i < superPowers.length; i++) {
                System.out.println(superPowers[i]);
           }
        }
    }
    

    Java: ASCII

    Pengenalan:

    • ASCII merupakan singkatan dari American Standard Code for Information Interchange
    • Memiliki 7-bit, 128 karakter (000 s/d 127)
    • Berupa: uppercase/lowercase letters, digits, punctuation marks, dan control characters
    • Perkembangan lanjut dari ASCII -> Unicode (terdiri dari 1,112,064 karakter)

    Contoh source code:
    public class ASCII {
        public static void main(String[] args) { 
            System.out.println("ASCII 36 = " +(char)36);
            System.out.println("ASCII 48 = " +(char)48);
            System.out.println("ASCII 49 = " +(char)49);
            System.out.println("ASCII 65 = " +(char)65);
            System.out.println("ASCII 97 = " +(char)97);
            System.out.println("ASCII 126 = "+(char)126);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Input ASCII pada Java:
    import java.util.Scanner;
    
    
    public class InputASCII {
        public static void main(String[] args) {
            
            Scanner input = new Scanner(System.in);
            String str;
            char kar;
            
            System.out.println("Masukkan sebuah huruf/angka/tanda baca : ");
            str = input.next();
            kar = str.charAt(0);
            System.out.println("ASCII dari "+kar+" bernilai "+(int)kar);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Java: Operator dalam Java

    Beberapa Operator pada Java diantaranya:

    • Operator Aritmatika
      • +
      • -
      • *
      • /
      • %

      Contoh source code:
      public class Aritmatika {
          public static void main(String[] args) {
              int x;
              int y;
              x = 15;
              y = 4;
              System.out.println("Nilai x+y : "+(x+y));
              System.out.println("Nilai x-y : "+(x-y));
              System.out.println("Nilai x/y : "+(x/y));
              System.out.println("Nilai x*y : "+(x*y));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Increment and Decrement
      • ++a
      • a++
      • --a
      • a--

      Contoh source code:
      public class Increment {
          public static void main(String[] args) {
              int a=4;
              System.out.println("Nilai a = "+a);
              
              System.out.println("Nilai a menjadi = "+ (a++));
              System.out.println("Nilai a menjadi = "+ (++a));
              
              System.out.println ();
              System.out.println("Nilai a menjadi = "+ (a--));
              System.out.println("Nilai a menjadi = "+ (--a));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Relasi
      • ==
      • !=
      • <
      • <=
      • >
      • >=

      Contoh source code:
      public class Relasi {
          public static void main(String[] args) { 
              int a = 10;
              int b = 4;
              System.out.println("Operator Logika");
              System.out.println("a > b = " +(a>b));
              System.out.println("a < b = " +(a<b));
              System.out.println("a = b = " +(a==b));
              System.out.println("a != b = " +(a!=b));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    • Operator Logika
      • &&
      • ||
      • !

      Contoh source code:
      public class LogicalOperatorsDemo {
          public static void main(String[] args) {
              
              boolean  x = true;
              boolean y = false;
              
              System.out.println("x & y : " + (x & y));
              System.out.println("x && y : " + (x && y));
              System.out.println("x | y : " + (x | y));
              System.out.println("x || y : " + (x || y));
              System.out.println("x ^ y : " + (x ^ y));
              System.out.println("!x : " + (!x));
          }
      }
      

      Hasil dari source code di atas adalah sebagai berikut:

    Java: Program Inputan

    • Semua inputan Java diterima dalam format (type) STRING
    • Inputan selain String harus dikonversi terlebih dahulu
    • Class yang dapat digunakan dalam inputan :
      • BufferedReader
      • DataInputStream
      • JOptionPane (swing)
    • getMessage() fungsi untuk menampilkan pesan  error

    1. Contoh souce code Inputan BufferedReader
    2. import java.io.*;
      
      
      public class Input {
          public static void main(String[] args) {
              //menginput dengan class BuffereadReader
              try {
                  String nama;
                  System.out.println("Masukkan Nama Anda : ");
                  BufferedReader tulis = new BufferedReader(new InputStreamReader (System.in));
                  nama = tulis.readLine();
                  System.out.println("Nama Anda : "+nama);
              } catch (IOException ie) {
                  System.out.println(ie.getMessage());
              }
          }
      }
      
      Hasil dari source code di atas adalah sebagai berikut:

    3. Contoh souce code Inputan DataInputStream
    4. import java.io.*;
      
      
      public class Input2 {
          public static void main(String[] args) throws IOException{
              //menginput dengan DataInputStream
              System.out.println("Input bilangan : ");
              DataInputStream masukan = (new DataInputStream(System.in));
              int bilangan = Integer.parseInt(masukan.readLine());
              System.out.println("Bilangan yang Anda masukan : "+bilangan);
          }
      }
      
      Hasil dari source code di atas adalah sebagai berikut:

    5. Contoh souce code JOptionPane
    6. import javax.swing.*;
      
      
      public class Input3 {
          public static void main(String[] args) {
              //inputan dengan JOptionPane
              String nama;
              nama = JOptionPane.showInputDialog("Masukkan Nama :");
              System.out.println("Nama Anda : "+nama);
              JOptionPane.showMessageDialog(null, "Nama Anda : " + nama);
              System.exit(0);
          }
      }
      
      Hasil dari source code di atas adalah sebagai berikut:

    Java: Array

    Array merupakan group data objects yang memiliki tipe yang sama.
    Jika array sebagai object, maka bisa dibuat dengan new.
    • Deklarasi Array:
      tipe_variabel nama_array[];
      atau
      tipe_variabel []nama_array;
    • Alokasi memori dilakukan dengan keyword new
      nama_array = new tipe_variabel[jumlah_array]
    • Jumlah array dapat ditentukan pada saat deklarasi
      tipe_variabel []nama_array = new tipe_variabel[jumlah_array]
    • Mengakses array dapat dilakukan dengan
      nama_array[index_array_yang_diakses]

    Array multidimensi
    • Deklarasi Array 2 dimensi:
      tipe_variabel nama_array[][];
      atau
      tipe_variabel [][]nama_array;
    • Deklarasi Array 3 dimensi:
      tipe_variabel nama_array[][][];
      atau
      tipe_variabel [][][]nama_array;
    • Deklarasi Array 4 dimensi:
      tipe_variabel nama_array[][][][];
      atau
      tipe_variabel [][][][]nama_array;
    • Inisialisi:
      int list_data[][] = {{10, 5}, {20, 1}, {30,3}, {40, 8}, {50, 9}};
    • Contoh pengaksesan:
      list_data[0][0] = 7;
      list_data[0][1][1] = 90;
      list_data[2][0][0] = 1999;

    Contoh source code:
    public class Contoh1 {
    
        public static void main(String[] args) {
            int[] bilangan = new int[10]; 
    
            bilangan[0] = 5;
            bilangan[1] = 6;
            bilangan[2] = 9;
            bilangan[3] = 8;
            bilangan[4] = 7;
            bilangan[5] = 2;
            bilangan[6] = 3;
            bilangan[7] = 4;
            bilangan[8] = 1;
    
            for(int x=0; x < bilangan.length; x++) {
            System.out.println("array index" + "["+ x + "]" + " = " + bilangan[x]);
            }
            System.out.println("kapasitas array = " + bilangan.length);
        }
    }
    

    Hasil source code di atas adalah sebagai berikut:

    Java: Variabel dan Tipe Data

    Variabel
    Syarat-syarat variabel pada Java diantaranya:
    1. Harus terdiri atas sederetan karakter Unicode yang diawali oleh karakter huruf atau garis bawah. Unicode merupakan sistem pengkodean karakter yang dapat dibaca oleh berbagai bahasa manusia. Ada maksimum 65.536 karakter yang dapat digunakan. Jika pada ASCII, kita hanya pada karakter latin, dengan Unicode kita mampu membaca karakter dengan jenis alphabet seperti, Jepang, Yunani, Cyrillic, dan Hebrew. Namun, saat ini karakter unicode yang sudah terdefinisi baru sekitar 34.168 karakter.
    2. Tidak boleh sama dengan keyword
    3. Harus unik dalam suatu scope
    4. Bersifat case sensitive

    Tipe Data
    Berikut ini adalah tipe data yang dikenali pada Java:
    1. Boolean
    2. Char
    3. String
    4. Byte
    5. Int
    6. Float
    7. Double
    8. Long
    9. Short

    Contoh Source Code Penggunaan Variabel dan Tipe Data
    public class Variable {
        public static void main(String[] args) {
            System.out.println("\nContoh menggunakan variable\n");
    
            //ini salah satu contoh variable di dalam java
            int nilai = 12;
            char karakter ='B';
            String tulisan = "I Love Java";
            double pecahan = 123.345;
            float pecah= 14.353f;
            byte a=99;
    
            System.out.println("Variable int= "+a);
            System.out.println("Variable char= "+karakter);
            System.out.println("Variable String= "+tulisan);
            System.out.println("Variable float= "+pecah);
            System.out.println("Variable double= "+pecahan);
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Java: Menggambar dengan Static Methods

    Berikut ini adalah contoh source code menggambar dengan static methods:

    1. Versi Pertama (tidak terstruktur).
    2. public class Figures1 {
          public static void main(String[] args) {
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println();
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println("+--------+");
              System.out.println();
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("|  STOP  |");
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println();
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("+--------+");
          }
      }
      
    3. Versi Kedua (terstruktur, namun masih memiliki duplikasi).
    4. public class Figures2 {
          public static void main(String[] args) {
              telur();
              cangkir();
              tandaStop();
              topi();
          }
          
          public static void telur() {
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println();
          }
          
          public static void cangkir() {
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println("+--------+");
              System.out.println();
          }
          
          public static void tandaStop() {
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("|  STOP  |");
              System.out.println("\\        /");
              System.out.println(" \\______/");
              System.out.println();
          }
          
          public static void topi() {
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
              System.out.println("+--------+");
          }
      }
      
    5. Versi Ketiga (terstruktur, dan tanpa duplikasi).
    6. public class Figures3 {
          public static void main(String[] args) {
              telur();
              cangkir();
              tandaStop();
              topi();
          }
          
          // Gambarkan setengah top dari telur.
          public static void telurTop() {
              System.out.println("  ______");
              System.out.println(" /      \\");
              System.out.println("/        \\");
          }
          
          // Gambarkan setengah bottom dari telur.
          public static void telurBottom() {
              System.out.println("\\        /");
              System.out.println(" \\______/");
          }
          
          // Gambarkan telur lengkap.
          public static void telur() {
              telurTop();
              telurBottom();
              System.out.println();
          }
          
          // Gambarkan cangkir.
          public static void cangkir() {
              telurBottom();
              line();
              System.out.println();
          }
          
          // Gambarkan tanda stop.
          public static void tandaStop() {
              telurTop();
              System.out.println("|  STOP  |");
              telurBottom();
              System.out.println();
          }
          
          // Gambarkan topi.
          public static void topi() {
              telurTop();
              line();
          }
      
          // Gambarkan garis.
          public static void line() {
              System.out.println("+--------+");
          }
      }
      

    Hasil dari ketiga source code di atas adalah sebagai berikut:

    Java: Perancangan Algoritma dan Static Methods

    Berikut ini adalah contoh souce code perancangan algoritma untuk "Bake Sugar Cookies".
    1. Algoritma masih memiliki duplikasi.
    2. Dapat kita lihat pada source code di bawah masih memiliki duplikasi sehingga tidak efektif.
      public class BakeCookies {
          public static void main(String[] args) {
              System.out.println("Mix the dry ingredients.");
              System.out.println("Cream the butter and sugar.");
              System.out.println("Beat in the eggs.");
              System.out.println("Stir in the dry ingredients.");
              System.out.println("Set the oven temperature.");
              System.out.println("Set the timer.");
              System.out.println("Place a batch of cookies into the oven.");
              System.out.println("Allow the cookies to bake.");
              System.out.println("Set the oven temperature.");
              System.out.println("Set the timer.");
              System.out.println("Place a batch of cookies into the oven.");
              System.out.println("Allow the cookies to bake.");
              System.out.println("Mix ingredients for frosting.");
              System.out.println("Spread frosting and sprinkles.");
          }
      }
      
    3. Perancangan Algoritma.
    4. Dari source code sebelumnya, dapat kita bagikan ke dalam beberapa step untuk merancang algoritmanya.
      // This program displays a delicious recipe for baking cookies.
      public class BakeCookies2 {
          public static void main(String[] args) {
              // Step 1: Make the cake batter.
              System.out.println("Mix the dry ingredients.");
              System.out.println("Cream the butter and sugar.");
              System.out.println("Beat in the eggs.");
              System.out.println("Stir in the dry ingredients.");
      
              // Step 2a: Bake cookies (first batch).
              System.out.println("Set the oven temperature.");
              System.out.println("Set the timer.");
              System.out.println("Place a batch of cookies into the oven.");
              System.out.println("Allow the cookies to bake.");
      
              // Step 2b: Bake cookies (second batch).
              System.out.println("Set the oven temperature.");
              System.out.println("Set the timer.");
              System.out.println("Place a batch of cookies into the oven.");
              System.out.println("Allow the cookies to bake.");
      
              // Step 3: Decorate the cookies.
              System.out.println("Mix ingredients for frosting.");
              System.out.println("Spread frosting and sprinkles.");
          }
      }
      
    5. Algoritma dengan Static Method.
    6. Setelah itu kita buatkan methodnya dan source code akan menjadi seperti ini.
      // This program displays a delicious recipe for baking cookies.
      public class BakeCookies3 {
          public static void main(String[] args) {
              makeBatter();
              bake();       // 1st batch
              bake();       // 2nd batch
              decorate();
          }
           
          // Step 1: Make the cake batter.
          public static void makeBatter() {
              System.out.println("Mix the dry ingredients.");
              System.out.println("Cream the butter and sugar.");
              System.out.println("Beat in the eggs.");
              System.out.println("Stir in the dry ingredients.");
          }
      
          // Step 2: Bake a batch of cookies.
          public static void bake() {
              System.out.println("Set the oven temperature.");
              System.out.println("Set the timer.");
              System.out.println("Place a batch of cookies into the oven.");
              System.out.println("Allow the cookies to bake.");
          }
          
          // Step 3: Decorate the cookies.
          public static void decorate() {
              System.out.println("Mix ingredients for frosting.");
              System.out.println("Spread frosting and sprinkles.");
          }
      }
      

    Hasil dari ketiga source code di atas adalah sebagai berikut:

    Java: Methods Memanggil Methods

    Contoh souce code pada java dimana methods akan memanggil kembali methods:
    public class MethodsExample {
        public static void main(String[] args) {
            message1();
            message2();
            System.out.println("Done with main.");
        }
    
        public static void message1() {
            System.out.println("This is message1.");
        }
    
        public static void message2() {
            System.out.println("This is message2.");
            message1();
            System.out.println("Done with message2.");
        }
    }
    

    Hasil dari source code di atas adalah sebagai berikut:

    Java: Static Methods

    Static Method adalah suatu nama group dari statement yang bertujuan menunjukkan struktur program dan menghilangkan duplikasi.

    Contoh source code:
    public class FreshPrince {
        public static void main(String[] args) {
            rap();                 // Calling (running) the rap method
            System.out.println();
            rap();                 // Calling the rap method again
        }
    
        // This method prints the lyrics to my favorite song.
        public static void rap() {
            System.out.println("Now this is the story all about how");
            System.out.println("My life got flipped turned upside-down");
        }
    }
    

    Hasil source code di atas adalah sebagai berikut:

    Tuesday, 23 January 2018

    Database VB.NET + Ms. Access


    •  Objek ADO.NET ini berfungsi menyediakan antar muka pengrograman pada project kita dengan berbagai sumber data. Dengan kata lain pengolahan data pada database dilakukan melalui kode-kode ADO.NET ini, lalu ditampilkan pada aplikasi kita.
    • OLEbConnection Merupakan suatu program yang berfungsi mengkoneksikan ke database dan memberikan informasi – informasi data.       Cara Menggunakan nya yaitu Melakukan Koneksi ke Sumber Data.
    • Misalnya OleDbConnection pada komponen ADO.net.
    • OleDbCommand adalah suatu program yang menjalankan perintah-perintah pada sumber data.
    • OleDbDataReader merupakan kumpulan record-record yang diambil dari database yang berfungsi membaca data pada sumber data dengan sifat forward only dan read only.
    • Cara menggunakannya biasanya digunakan pada tampilan control      tampilan data seperti DataGrid, GridView, dsb.
    Memulai Ms. Access 2007
    Start > All Program > Microsoft Office > MS Access 2007




    Lanjutkan dengan memilih New Blank Database.
    •  Beri Nama database dengan ADOGaji
    •  Lalu save pada folder


    • Masuk kedalam design view sebagai tempat merancang isi table
    • Rancang isi field seperti pada gambar lalu save tabel dengan nama pegawai



    Setelah Database dibuat pada Ms. Access, buat form pada VB seperti pada gambar:


    Buatlah Sebuah Modul dengan cara : project – Add Module – beri nama Module1
    Lalu isi kode program berikut ke dalam Module1

    Monday, 22 January 2018

    SELECT .. CASE

    Perintah SELECT CASE mirip seperti perintah IF yaitu untuk membandingkan nilai,
    SELECT CASE variabel
        Case Nilai1
            Pernyataan1
        Case Nilai2
            Pernyataan2
        ...
        Case Else
            Pernyataan_Terakhir
    END SELECT
        
    


    Contoh penggunaan perintah SELECT CASE:
    Module.Module1
        Sub Main()
            Dim a As Integer
            a = 2
            SELECT CASE a
            Case 1
                Console.WriteLine("Nilai1 Terpenuhi")
            Case 2
                Console.WriteLine("Nilai2 Terpenuhi")
            Case 3
                Console.WriteLine("Nilai3 Terpenuhi")
            Case Else
                Console.WriteLine("Tidak ada yang memenuhi syarat")
            END SELECT
        Console.ReadKey()
        End Sub
    End Module
        
    

    Jika pernyataan SELECT CASE di atas dijalankan maka akan menampilkan hasil sebagai berikut:
    Nilai2 Terpenuhi

    Percabangan (IF) Menggunakan Keyword AND dan OR

    Penggunaan IF juga dapat digunakan untuk membandingkan beberapa nilai diantaranya menggunakan AND dan OR,
        
        IF kriteria1 [[[AND|OR] kriteria2]...] THEN
            Pernyataan-pernyataan
        END IF
        
    

    
        IF a > 1 AND a < 5 THEN
            Console.WriteLine("Kriteria Terpenuhi!")
        END IF
        
    
    Pernyataan Console di atas hanya akan dijalankan oleh VB apabila nilai dari variabel a lebih besar dari 1 dan lebih kecil dari 5, dengan kata lain harus bernilai 2, 3, 4, atau 5.

    
        IF a < 10 OR a > 20 THEN
            Console.WriteLine("Kriteria Terpenuhi!")
        END IF
        
    
    Pernyataan Console di atas hanya akan dijalankan oleh VB apabila nilai dari variabel a lebih besar kecil dari 10 (..., 6, 7, 8, 9) atau lebih besar dari 20 (21, 22, 23, 24, ...).

    Tuesday, 7 November 2017

    Program Pendaftaran

    Source Code pada Form 1 (pendaftaran)

    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            cmbprodi.Items.Add("Ilmu Hukum")
            cmbprodi.Items.Add("Sistem Informasi")
            cmbprodi.Items.Add("Akuntansi")
            cmbprodi.Items.Add("Manajemen")
            cmbprodi.Items.Add("Sastra Inggris")
            tbnama.Text = ""
            tbasal.Text = ""
            tbbiaya.Text = "0"
            tbbiayasks.Text = "0"
            tbsks.Text = "24"
            tbtotalsks.Text = "0"
            tbbiaya.Enabled = False
            tbbiayasks.Enabled = False
            tbsks.Enabled = False
            tbtotalsks.Enabled = False
        End Sub
    
        Private Sub cmbprodi_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbprodi.SelectedIndexChanged
            If cmbprodi.Text = "Ilmu Hukum" Then
                tbbiaya.Text = "5000000"
            ElseIf cmbprodi.Text = "Sistem Informasi" Then
                tbbiaya.Text = "4000000"
            ElseIf cmbprodi.Text = "Akuntansi" Then
                tbbiaya.Text = "6000000"
            ElseIf cmbprodi.Text = "Manajemen" Then
                tbbiaya.Text = "5500000"
            ElseIf cmbprodi.Text = "Sastra Inggris" Then
                tbbiaya.Text = "4000000"
            End If
        End Sub
    
        Private Sub rpagi_CheckedChanged(sender As Object, e As EventArgs) Handles rpagi.CheckedChanged
            tbbiayasks.Text = "200000"
            tbtotalsks.Text = Convert.ToInt32(tbbiayasks.Text) * Convert.ToInt32(tbsks.Text)
        End Sub
    
        Private Sub rmalam_CheckedChanged(sender As Object, e As EventArgs) Handles rmalam.CheckedChanged
            tbbiayasks.Text = "165000"
            tbtotalsks.Text = Convert.ToInt32(tbbiayasks.Text) * Convert.ToInt32(tbsks.Text)
        End Sub
    
        Private Sub rshift_CheckedChanged(sender As Object, e As EventArgs) Handles rshift.CheckedChanged
            tbbiayasks.Text = "225000"
            tbtotalsks.Text = Convert.ToInt32(tbbiayasks.Text) * Convert.ToInt32(tbsks.Text)
        End Sub
    
        Private Sub btnbatal_Click(sender As Object, e As EventArgs) Handles btnbatal.Click
            Close()
        End Sub
    
        Private Sub btndaftar_Click(sender As Object, e As EventArgs) Handles btndaftar.Click
            If tbnama.Text = "" Or tbasal.Text = "" Or cmbprodi.Text = "" Or tbtotalsks.Text = "0" Then
                MessageBox.Show("Harap isi data dengan lengkap")
            Else
                Form2.Show()
            End If
        End Sub
    End Class
    


    Source Code pada Form 2 (pembayaran)
    Public Class Form2
    
        Dim studi, sks, total As Integer
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            tbbiaya.Text = Form1.tbbiaya.Text
            tbtotalsks.Text = Form1.tbtotalsks.Text
            tbtotalbayar.Text = "0"
            tbbiaya.Enabled = False
            tbtotalsks.Enabled = False
            tbtotalbayar.Enabled = False
            rcash.Checked = True
            rbca.Checked = False
            rbri.Checked = False
        End Sub
    
        Private Sub btnbayar_Click(sender As Object, e As EventArgs) Handles btnbayar.Click
            If rcash.Checked = False And rbca.Checked = False And rbri.Checked = False Then
                MessageBox.Show("Harap pilih metode pembayaran")
            Else
                MessageBox.Show("Terimakasih telah mendaftar " & Form1.tbnama.Text)
                Close()
                Form1.Close()
            End If
        End Sub
    
        Private Sub rcash_CheckedChanged(sender As Object, e As EventArgs) Handles rcash.CheckedChanged
            studi = Convert.ToInt32(tbbiaya.Text)
            sks = Convert.ToInt32(tbtotalsks.Text)
            total = 0
            If rcash.Checked = True Then
                total = studi + sks
            End If
            tbtotalbayar.Text = total
        End Sub
    
        Private Sub rbca_CheckedChanged(sender As Object, e As EventArgs) Handles rbca.CheckedChanged
            studi = Convert.ToInt32(tbbiaya.Text)
            sks = Convert.ToInt32(tbtotalsks.Text)
            total = 0
            If rbca.Checked = True Then
                total = studi + sks
                total = total + total * 3 / 100
            End If
            tbtotalbayar.Text = total
        End Sub
    
        Private Sub rbri_CheckedChanged(sender As Object, e As EventArgs) Handles rbri.CheckedChanged
            studi = Convert.ToInt32(tbbiaya.Text)
            sks = Convert.ToInt32(tbtotalsks.Text)
            total = 0
            If rbri.Checked = True Then
                total = studi + sks
                total = total + total * 4 / 100
            End If
            tbtotalbayar.Text = total
        End Sub
    End Class
    

    Array

    Array disebut juga sebagai variabel yang memiliki banyak nilai. Kegunaannya yaitu menyimpan sebuah nilai sementara.
    Array diperlukan untuk memperkecil semakin banyaknya pembuatan variabel sementara fungsinya hampir sejenis.
    Array dapat dibuat dengan menggunakan perintah yang sama seperti ketika kita membuat sebuah variabel, yaitu menggunakan perintah dim:
         Dim namaarray(jumlahnilai) As tipedata


    Contoh pembuatan array:
         Dim kumpulan(5) As Integer

    Array kumpulan di atas dapat diisi sebanyak 5 buah di dalamnya. Contoh:
    kumpulan(0) = 25
    kumpulan(1) = 35
    kumpulan(2) = 5
    kumpulan(3) = 3
    kumpulan(4) = 56

    (0)-(4) disebut sebagai Index yaitu nomor urut array, Index inilah yang membedakan penggunaan array yang satu dengan array yang lainnya.
    Array juga dapat dijumlahkan. Contoh:
    hasil = kumpulan(0) + kumpulan (2)

    Seperti pada contoh, Index selalu diawali dari 0.
    Array selalu memiliki batas bawah & batas atas (25 & 56)

    Contoh Code Penggunaan Array:
    Public Class Form1
        Dim namamhs() As String = {"ervin", "herry", "winarta", "daniel", "shahrul"}
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim teks As String
            teks = ComboBox1.Text
            ComboBox1.Items.Clear()
            For i As Integer = 0 To 4
                ComboBox1.Items.Add(namamhs(i))
    
            Next
    
        End Sub
    
        Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            ComboBox2.Items.Clear()
            ComboBox2.Text = namamhs(ComboBox1.SelectedIndex)
        End Sub
    End Class
    

    Tuesday, 24 October 2017

    Contoh Program Kasir

    Contoh Source Code:

    Form 1
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            CMBPRODUCT.Items.Add("Buku")
            CMBPRODUCT.Items.Add("Tas")
            CMBPRODUCT.Items.Add("Dompet")
            CMBPRODUCT.Items.Add("Alat Tulis")
            TBHARGA.Text = "0"
            TBQTY.Text = "1"
            TBTOTAL.Text = "0"
            TBTOTAL2.Text = "0"
            TBTOTAL2.Visible = False
        End Sub
    
        Private Sub CMBPRODUCT_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CMBPRODUCT.SelectedIndexChanged
            If CMBPRODUCT.Text = "Buku" Then
                TBHARGA.Text = "2000"
                TBTOTAL.Text = "2000"
            ElseIf CMBPRODUCT.Text = "Tas" Then
                TBHARGA.Text = "100000"
                TBTOTAL.Text = "100000"
            ElseIf CMBPRODUCT.Text = "Dompet" Then
                TBHARGA.Text = "50000"
                TBTOTAL.Text = "50000"
            ElseIf CMBPRODUCT.Text = "Alat Tulis" Then
                TBHARGA.Text = "10000"
                TBTOTAL.Text = "10000"
            End If
        End Sub
    
        Private Sub TBQTY_TextChanged(sender As Object, e As EventArgs) Handles TBQTY.TextChanged
            Dim harga, qty As Integer
            harga = Convert.ToInt32(TBHARGA.Text)
            If TBQTY.Text <> "" Then
                qty = Convert.ToInt32(TBQTY.Text)
            Else
                qty = 1
            End If
            TBTOTAL.Text = harga * qty
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim total, total2 As Integer
            LBBELANJA.Items.Add(CMBPRODUCT.Text)
            LBBELANJA.Items.Add(TBHARGA.Text)
            LBBELANJA.Items.Add(TBQTY.Text)
            LBBELANJA.Items.Add(TBTOTAL.Text)
            LBBELANJA.Items.Add("")
            If TBTOTAL2.Text = "" Then
                TBTOTAL2.Text = TBTOTAL.Text
            Else
                total2 = Convert.ToInt32(TBTOTAL.Text)
                total = Convert.ToInt32(TBTOTAL2.Text)
                TBTOTAL2.Text = total2 + total
            End If
        End Sub
    
        Private Sub BTNEXIT_Click(sender As Object, e As EventArgs) Handles BTNEXIT.Click
            Close()
        End Sub
    
        Private Sub BTNBAYAR_Click(sender As Object, e As EventArgs) Handles BTNBAYAR.Click
            Form2.TextBox1.Text = TBTOTAL2.Text
            Form2.Show()
        End Sub
    End Class
    

    Form 2
    
    Public Class Form2
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim total, bayar, kembali As Integer
            total = Convert.ToInt32(TextBox1.Text)
            bayar = Convert.ToInt32(TextBox2.Text)
            If bayar < total Then
                MessageBox.Show("Maaf, Pembayaran Anda Kurang")
            ElseIf bayar > total Then
                kembali = bayar - total
                MessageBox.Show("Terimakasih, anda mendapat kembalian sebanyak " & Convert.ToString(kembali))
            Else
                MessageBox.Show("Terimakasih")
            End If
        End Sub
    End Class
    

    Odoo 11 - Create a new sample module

    How To Create or Develop a Custom Module in Odoo 11 In this blog, we‘ll be focusing on how we can create or develop a custom mo...