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:

    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...