Minggu, 20 April 2014

Pengkondisian If Then Else pada Java


Kali ini saya akan membahas pengkondisian if then else pada Java. Pengkondisian biasa digunakan untuk menentukan suatu perintah yang dijalankan apa bila kondisi tertentu dipenuhi dan bila tidak maka ada perintah lainnya untuk dijalankan. Biasanya if then else digunakan untuk perulangan suatu perhitungan atau fungsi.

Pernyataan if merupakan salah satu pernyataan percabangan pada Java, dengan bentuk umum seperti berikut.

if (suatu_kondisi)     
   perintah1
else
   perintah2 

Seperti biasa, perintah1 dan perintah2 bisa berbentuk blok yang terdiri dari beberapa perintah. Pernyataan if merupakan bentuk percabangan 2 arah. Bagian else yang terdiri dari kata "else" dan perintah2 tidak selalu harus ada.

Perhatikan bahwa baik perintah1 dan perintah2 bisa merupakan pernyataan if itu sendiri. Ada beberapa hal menarik yang mungkin berguna. Ambil contoh dalam pernyataan berikut.

if (x > 0)
   if(y > 0)
      System.out.println("perintah1");
else
      System.out.println("perintah2");

Pertama-tama, komputer tidak peduli bagaimana Anda memformat paragraf dan indentasi dari pernyataan if tersebut. Java akan menganggap else terkait dengan if terdekat, sehingga kode di atas akan dianggap seperti berikut.

if(x > 0)
   if(y > 0)
      System.out.println("perintah1");
   else
      System.out.println("perintah2");

Else pada program di atas akan dianggap bagian dari pernyataan jika y > 0, padahal yang kita maksud adalah else jika x > 0. Untuk memperbaikinya, kita tambahkan tanda kurung {} sehingga menjadi

if (x > 0) {    
   if(y > 0)        
      System.out.println("perintah1");
   }
else
   System.out.println("perintah2"); 

Kedua pernyataan tersebut memiliki arti yang berbeda. Jika x <= 0, pada kode pertama Java tidak mencetak apa-apa ke layar, sedangkan kode kedua java akan mencetak "perintah2". Lebih menarik lagi, perhatikan kode berikut.

if (kondisi_pertama)    
   perintah1
else
   if (kondisi_kedua)        
      perintah2    
else
  perintah3 

Lagi-lagi karena Java tidak membedakan indentasi penulisan, maka kode tersebut akan diterjemahkan Java seperti berikut.

if(kondisi_pertama)    
   perintah1 
else
   if (kondisi_kedua)   
      perintah2
   else
      perintah3

Dengan kata lain perintah tersebut lebih seperti percabangan 3 arah. Komputer akan mengeksekusi hanya salah satu dari perintah1, perintah2, atau perintah3. Komputer akan mengevaluasi kondisi_pertama, jika true, maka perintah1 dieksekusi sementara perintah2 dan perintah3 diabaikan. Jika false, maka kondisi_kedua akan dievaluasi. Jika true, maka perintah2 akan dieksekusi dan perintah3 diabaikan. Jika false, maka hanya perintah3 saja yang dieksekusi. 

Berikut ini adalah contoh penggunaan percabangan 3 arah.

if (suhu < 20)   
   System.out.println("Dingin");
else if (suhu < 30)  
   System.out.println("Lumayan");
else
   System.out.println("Panas");  

Kita bahkan dapat membentuk pernyataan if-else ini menjadi percabangan N arah, misalnya seperti berikut.

if (kondisi_pertama)    
   perintah1
   else if (kondisi_kedua)    
      perintah2
   else if (kondisi_ketiga)    
      perintah3
   else if (kondisi_keempat)    
      perintah4
.
.
.
   else if (kondisi_keNminus1)    
      perintahNmin1
   else
      perintahN
Contoh berikut ini adalah pengkondisian if then else pada Java lainnya yakni dengan mengurutkan 3 bilangan dari kecil ke besar. Misalnya kita mempunyai 3 variabel a, b dan c. Bilangan yang paling kecil adalah bilangan yang lebih kecil dari kedua bilangan yang lain. Sekarang mari kita rangkai logika untuk menentukan urutan bilangan dari kecil ke besar. Mula-mula kita cek apakah a lebih kecil dari b dan c, yaitu dengan pernyataan:

if(a < b && a < c)

Jika a betul merupakan bilangan terkecil, maka kita uji apakah b lebih kecil dari c dengan perintah:

if(b < c)

Jika a bukan bilangan terkecil, maka b atau c, salah satunya bisa merupakan bilangan terkecil. Kita hanya perlu membandingkan apakah b lebih kecil dari c dengan perintah:

if(b < c)

Jika b lebih kecil dari c, berarti kita tahu bahwa b adalah bilangan terkecil. Tetapi kita belum tahu apakah bilangan terkecil berikutnya adalah a atau c, sehingga kita harus menguji lagi dengan perintah:

if(a < c)

Jika a lebih kecil dari c, maka urutannya adalah b, a, c. Jika tidak, maka urutannya adalah b, c, a. Demikian halnya apabila jika b > c, maka kita bisa tentukan urutan bilangannya.
Keseluruhan logika ini, bisa kita tuangkan dalam bentuk :

if (a < b && a < c){
   if (b < c)
      System.out.println(a + " " + b + " " + c);
   else
      System.out.println(a + " " + c + " " + b);
   }
else if (b < c){
   if(a < c)
       System.out.println(b + " " + a + " " + c);
   else
       System.out.println(b + " " + c + " " + a);
   }
else {
    if (a < b)
       System.out.println(c + " " + a + " " + c);
    else
       System.out.println(c + " " + b + " " + a);
}

Logika di atas bisa juga dituangkan dengan cara lain, yaitu melihat urutannya. Pertama kita cek apakah a < b. Jika ya, kita tahu bahwa urutannya pasti a terlebih dahulu baru b. Kemudian kita lihat apakah c berada di sebelah kiri a atau disebelah kanan b atau di tengah- tengah. 

Demikian seterusnya jika urutannya b terlebih dahulu baru a. Sehingga kodenya bisa dituliskan dalam bentuk :

if (a < b) {
   if (c < a)
      System.out.println(c + " " + a + " " + b);
   else if (c > b)
      System.out.println(a + " " + b + " " + c);
   else
      System.out.println(a + " " + c + " " + b);
}
else {
   if (c < b)
      System.out.println(c + " " + b + " " + a);
   else if (c > a)
      System.out.println(b + " " + a + " " + c);
   else
      System.out.println(b + " " + c + " " + a);
}

Nah itulah berbagai cara menggunakan pengkondisian if then else pada Java mulai dari percabangan sederhana hingga percabangan bertingkat. Kamu bisa menggunakannya untuk menentukan program dalam menjalankan beberapa perintah yang berbeda.

Oke gan, cukup sekian dari saya kurang lebihnya mohon maaf dan saya minta bantuannya untuk memberi plus Google atau sekedar share aja agar artikel ini selalu bermanfaat untuk orang banyak. Selamat mencoba dan happy coding!
Komentar Disqus