PERCABANGAN dan PERULANGAN



·         Macam-macam Percabangan ( Branching )
1. IF
Merupakan salah satu bentuk pernyataan yang berguna untuk mengambil keputusan terhadap sebuah kemungkinan. Bentuk pernyataan if berupa :

          if (kondisi) {
                   // yang akan dijalankan
           }

     Contoh :   
public class jika{
public static void  main (String [] args){
  int nilai = 10;
if (nilai == 10) {
        System.out.println("sepuluh");
     }
}
}

Output
E:\>javac jika.java
E:\>java jika
sepuluh

Jika program diatas dijalankan, maka hasilnya adalah tulisan "Sepuluh" karena kondisi pada if bernilai true, jika kondisi bernilai salah, misal nilai = - 100, maka program tidak akan menghasilkan tulisan apa-apa.

2. IF Bersarang
Percabangan if bersarang merupakan gabungan beberapa if dan dapat pula digabungkan dengan if-else. Bentuk pernyataan if bersarang adalah sebagai berikut :

           if (kondisi1) {
                // perintah kondisi1
           } else if (kondisi2) {
                // perintah kondisi2
           } else if (kondisi3) {
                // perintah kondisi3
           } else {
                // perintah jika semua kondisi tidak ada yang benar
           }

       Contoh :    
public class jika_bersarang {
    public static  void main (String [] args){
    int nilai = 6;
           char index ;
           if (nilai >= 8) {
                   index = 'A';
           } else if (nilai >= 7) {
                   index = 'B';
           } else if (nilai >= 6) {
                   index = 'C';
           } else if (nilai >= 5) {
                   index = 'D';
           } else {
                   index = 'E';
           }
           System.out.println (index);

    }
}
      
Output
E:\>javac jika_bersarang.java
E:\>java jika_bersarang
C

3 IF – ELSE
Percabangan if-else merupakan percabangan yang sama dengan percabangan if namun memiliki kondisi false, artinya jika kondisi pada if tidak terpenuhi maka perintah pada else akan dijalankan. Bentuk pernyataan if-else berupa:
  if (kondisi) {  
// jalankan jika kondisi true
    }
  else{  
     // jalankan jika kondisi false        
  }

public class jika2 {
    public static void main (String [] args){
    int nilai = 8;
         if (nilai == 10) {
            System.out.println ("Sepuluh");
          } else {
            System.out.println ("Bukan Sepuluh");
          }
    }
}
 
Contoh :











Output
E:\>javac jika2.java
E:\>java jika2
Bukan Sepuluh

       Jika program diatas dijalankan, maka hasilnya adalah tulisan "Bukan Sepuluh", hal ini dikarenakan nilai bernilai 8, bukan 10.



4. SWITCH – CASE
Percabangan switch-case merupakan percabangan yang kondisinya hanya dapat menggunakan perbandingan = = (sama dengan). Bentuk pernyataan percabangan switch-case adalah sebagai berikut :

switch (variabel) {
case nilai1 :
// jalankan instruksi
break; // hentikan
case nilai2 :
// jalankan instruksi
break; // hentikan
case nilai3 :
// jalankan instruksi
break; // hentikan
case nilai4 :
// jalankan instruksi
break; // hentikan
default:
// jalankan instruksi
break; // hentikan

       Pada percabangan switch pertama, diperlukan sebuah variabel, setelah itu pada bagian case dibandingkan, jika sama, maka instruksi akan dijalankan sampai menemui tanda break.
Contoh :
public class pilih_pilih {
    public static void main (String [] args){
        int hari = 5;

        switch (hari) {
        case 1 :
        case 2 :
        case 3 :
        case 4 :
        case 5 :
        case 6 :
        System.out.println ("Bukan Hari Libur");
        break;
        case 7 :
        System.out.println ("Hari Libur");
        default :
        System.out.println ("Hari Tidak Diketahui");
        break;
        }
     }
}

Output
E:\>javac pilih_pilih.java
E:\>java pilih_pilih
Bukan Hari Libur
       
·         Macam-macam Perulangan ( Looping )
            Loop atau perulangan adalah suatu bentuk kegiatan mengulang suatu statement sampai batas yang diinginkan. Dalam pemograman Loop atau perulangan sangat berguna sekali. Kegunaan sederhana dalam perulangan terlukis seperti ini: Jika kita ingin menuliskan kata “saya ganteng” sebanyak seribu kali maka kita harus membuat seribu baris kata “saya ganteng” dalam kode pemrogaman kita. Tapi dengan adanya perulangan maka kita hanya cukup menuliskan 5 sampai 7 baris kode saja. Dalam praktek sebenarnya, tentu saja perulangan sangat membantu sekali. Misal untuk memuat seluruh isi table dari sebuah database dimana datanya ingin kita tampilkan.

Loop atau perulangan dalam Java dapat dilakukan dengan 3 teknik:
1. FOR
Perulangan dengan teknik ini dikontrol oleh tiga bagian yang ada dalam tanda kurung dan masing-masing bagian ini dipisahkan oleh titik-koma. Pada bagian pertama(inisialisasi ekspresi), sebuah variabel akan di deklarasikan sebagai sebuah titik awal dari perulangan, biasanya variable ini mempunyai tipe data integer atau float. Sementara pada bagian kedua disinilah perulangan akan diperiksa apakah masih memenuhi syarat atau tidak, jika masih memenuhi syarat maka statement dibawahnya akan di eksekusi.
Sedangkan bagian ketiga adalah bagian dimana jika bagian kedua masih memenuhi syarat maka nilai variabel akan ditambahkan sesuai dengan syarat yang dituliskan. Bagian ketiga ini secara otomatis akan tidak dibaca oleh program jika kondisi pada bagian ke-dua sudah tidak lagi memenuhi syarat, dan perulangan pun menjadi terhenti.



 

 

Flowchart Perulangan For
for (inisialisasi ekspresi; kondisi loop; ekspresi penambahan){
// pernyataan
}
           


Contoh :
public class perulangan1 {
    public static void main (String[]args){
        for (int i=0; i <=5; i++){
        System.out.println("Saya Ganteng");
        }
    }
}

Output
E:\>javac perulangan1.java
E:\>java perulangan1
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng

2. WHILE
Perulangan dengan menggunakan teknik while ini sebenarnya adalah suatu bentuk perulangan yang memodifikasi teknik pencabangan (branching) secara kasar. Pernyataan yang ada didalam blok perulangan akan dieksekusi dengan cara memeriksa ekspresi yang ada, sepanjang ekspresi bernilai true maka statement akan terus di eksekusi. Variabel sebagai kontrol perulangan bentuk ini diinisialisai di luar blok perulangan ini. Dan penambahan atau increment nilai variabel berada didalam blok perulangan ini. Kelebihan perulangan dengan bentuk ini adalah variabel yang dideklarasikan tidak hanya bertipe integer atau float saja namun bisa juga bertipe boolean atau string.
while(ekspresi){
//statement
}
                       

Contoh :
public class Perulangan2 {
    public static void main(String[]args){
        int i=0;
 while(i<=5){
System.out.println("Saya Ganteng");
i++;
}}}

Output
E:\>javac perulangan2.java
E:\>java perulangan2
 Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng


 













 Flowchart Perulangan While

3. DO – WHILE
Perulangan dengan bentuk seperti ini adalah perulangan dengan membalikkan logika perulangan dengan teknik while. Dalam perulangan dengan bentuk ini, pernyataan dieksekusi dulu, baru kemudian kondisi variabel kontrol perulangannya diperiksa apakah memenuhi syarat atau tidak. Variabel kontrol perulangan tetap diinisialisasi diluar blok perulangan dan harus tetap bersifat incremental / bertambah dan letak incrementalnya ada dalam blok perulangan. Secara logika maka diagram yang bisa menggambarkan proses perulangan tersebut adalah:



 















  Flowchart Perulangan Do While
do{
//statement
}
while(ekspresi);

Contoh :
public class Perulangan3 {
    public static void main (String [] args){
        int i=0;
        do{
            System.out.println("Saya Ganteng");
            i++;
        }while(i<=5);
    }
}

Output
E:\>javac perulangan3.java
E:\>java perulangan3
 Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng
Saya Ganteng

4. Perulangan Rekursif
Metoda rekursif adalah metoda mengulang dirinya sendiri. Metoda ini memanggil dirinya sendiri untuk melakukan proses berulang-ulang. Kasus sederhana yang sering muncul adalah proses berulang-ulang menghitung hasil factorial. Misalnya adalah factorial dari 5 adalah 1 x 2 x 3 x 4 x 5. Dari proses itu kita ketahui bahwa untuk menghitung factorial 5 manualnya seperti 1 x 2 = 2, lalu hasil 2 ini dikalikan 3 sehingga hasilnya adalah 6, lalu hasil 6 ini dikalikan lagi dengan 4 sehingga hasilnya adalah 36, lalu hasil 36 ini dikalikan dengan 5 sehingga hasilnya adalah 120.
Yang dinamakan rekursif, hasil dari proses awal digunakan lagi untuk proses berikutnya sampai batas yang diinginkan.

Kelebihan perulangan rekursif:
• Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
• Dapat melakukan perulangan dengan batasan fungsi.

Kekurangan perulangan rekursif:
• Tidak bisa melakukan nested loop atau looping bersarang.
• Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

Contoh membuat Perhitungan Faktorial :
import java.io.*;
public class Faktorial {
    public static void main(String[] args) throws IOException{
        InputStreamReader key = new InputStreamReader(System.in);
        BufferedReader input = new BufferedReader(key);
        String n;
        int i,j,k=1;
        System.out.print("Masukkan Nilai = ");
        n=input.readLine();
        j=Integer.parseInt(n);
        System.out.print(j +" "+"!=");
            for(i=j;i>=1;i--){
                System.out.print(i);
                if(i>1)
                    System.out.print("x");
                    k=k*i;
        }
        System.out.print("\n");
        System.out.println(j+ " " +"!="+" "+k);
}
}

Output
E:\>javac Faktorial.java
E:\>java Faktorial
Masukkan Nilai = 5
5 !=5x4x3x2x1
5 != 120

Komentar