Dalam membuat program sering sekali kita dihadapkan dengan beberapa kondisi dan pengambilan keputusan yang akan menentukan jalannya program tersebut. Bisa kalian bayangkan bagaimana cara program membandingkan dua buah nilai lalu mengetahui bilangan yang paling besar? atau yang paling kecil? atau apakah kedua bilangan tersebut saling berkeliapatan? Gunakan konsep percabangan ini!
Terdapat 2 pernyataan percabangan dasar pada Java, yaitu:
Selain itu, jika keputusan yang diambil jauh lebih banyak kita tinggal menambahkan statement if lagi, lihat code dibawah:
Terdapat 2 pernyataan percabangan dasar pada Java, yaitu:
- Pernyataan percabangan if (if statement)
- Pernyataan percabangan switch
Percabangan dengan if
Percabangan yang paling umum digunakan, didasarkan pada satu atau lebih keputusan. Untuk satu keputusan dapat menggunakan pernyataan/statement if (single) saja, namun untuk keputusan yang lebih dari satu kita perlu menambahkan statement else, lebih jelasnya lihat code dibawah:
single if statement
if(<ekspresi boolean>) {
// statement yang dieksekusi jika ekspresi boolean if..
// ..bernilai benar
}
if-else statement
if(<ekspresi boolean>) {
// statement 1..
// ..statement yang dieksekusi jika ekspresi boolean if..
// ..bernilai benar
} else {
// statement alternatif..
// ..statement yang dieksekusi jika ekspresi boolean if..
// ..bernilai salah
}
Selain itu, jika keputusan yang diambil jauh lebih banyak kita tinggal menambahkan statement if lagi, lihat code dibawah:
if-else if statement
if(<ekspresi boolean 1>) {
// statement 1..
// ..statement yang dieksekusi jika <ekspresi boolean 1>..
// ..bernilai BENAR
} if(<ekspresi boolean 2>) {
// statement 2..
// ..statement yang dieksekusi jika <ekspresi boolean 2>..
// ..bernilai BENAR
} else {
// statement alternatif..
// ..statement yang dieksekusi jika :
// ..semua kondisi diatas (ekspresi boolean 1 dan ekspresi boolean 2)
// ..tidak memenuhi
}
Pada praktiknya boleh-boleh saja mengisi mengisi statement tersebut (statement percabangan diatas) dengan statement if lagi, itu dinamakan statement if bersarang atau nested if statement, lihat code dibawah:
nested if statement
if(<ekspresi boolean 1>) {
// statement dibawah dieksekusi apabila BENAR
if(<ekspresi boolean 1.1>) {
// hasil pengecekan lebih lanjut
// statement 1.1 ini dikerjakan apabila
// <ekspresi boolean 1.1> BENAR
} else {
// hasil pengecekan lebih lanjut
// statement 1.alternatif ini dikerjakan apabila
// <ekspresi boolean 1.1> SALAH
}
} else {
// statement alternatif..
// ..statement yang dieksekusi jika <ekspresi boolean 1>..
// ..bernilai SALAH
}
contoh program
Potongan program dibawah adalah program pengecekan kondisi untuk menentukan bilangan ganjil atau genap, dan kelipatan berapa bilangan tersebut:
potongan program 1
int bilangan = 9;
if(bilangan % 2) {
System.out.println("habis di-modulo 2! ini bilangan genap");
} else {
System.out.println("ini bilangan ganjil");
}
output program 1
ini bilangan ganjil
potongan program 2
int bilangan = 6;
if(bilangan % 2 == 0) {
if(bilangan % 3 == 0) {
System.out.println("habis di-modulo 2 dan 3!");
System.out.println("ini bilangan genap pasti kelipatan 2 dan kelipatan 3");
} else {
System.out.println("ini bilangan genap pasti kelipatan 2 'bukan' kelipatan 3");
}
} else {
System.out.println("ini bilangan ganjil");
}
output program 2
habis di-modulo 2 dan 3!
ini bilangan genap pasti kelipatan 2 dan kelipatan 3
Percabangan dengan switch
Konsep dari percabangan switch adalah mencocokkan nilai "suatu" variabel dengan satu atau beberapa nilai uji, jika sesuai maka statatement yang ada didalamnya langsung dieksekusi, berikut adalah bentuk umum percabangan switch:
bentuk umum
switch(variabel_uji) {
case nilai_uji_1 :
// statement 1
break;
case nilai_uji_2 :
// statement 2
break;
case nilai_uji_3 :
// statement 3
break;
default :
// statement alternatif
}
Hal yang perlu diketahui dari percabangan switch ini:
- Variabel uji pada break hanya berisi variabel dengan tipe byte, short, int, dan char.
- Nilai uji boleh saja berisi beberapa nilai, namun untuk setiap nilainya harus dipisahkan dengan koma.
- Nilai uji default bersifat opsional, ditulis apabila terdapat statement alternatif ketika semua nilai yang diuji bernilai salah.
- Statement break (statement yang berada pada tiap kasus uji) berfungsi agar program keluar dari pengeksekusian switch (sesuai dengan flowchart diatas). Pemberian statement break bersifat opsional, artinya kita boleh saja menghapusnya namun dengan konsekuensi program tidak akan keluar dari pengeksekusian switch dan mencoba untuk mengeksekusi case (Nilai uji) selanjutnya hingga statement break ditemukan atau semua case (Nilai uji) selesai diperiksa. Lebih jelasnya silahkan baca mengenai keyword break.
Berikut adalah contoh berupa potongan program:
potongan program 3
int kode_bulan = 8;
switch(kode_bulan) {
case 1 :
System.out.println("Bulan Januari !");
break;
case 2 :
System.out.println("Bulan Februari !");
break;
case 3 :
System.out.println("Bulan Maret !");
break;
case 4 :
System.out.println("Bulan April !");
break;
case 5 :
System.out.println("Bulan Mei !");
break;
case 6 :
System.out.println("Bulan Juni !");
break;
case 7 :
System.out.println("Bulan Juli !");
break;
case 8 :
System.out.println("Bulan Agustus !");
break;
case 9 :
System.out.println("Bulan September !");
break;
case 10 :
System.out.println("Bulan Oktober !");
break;
case 12 :
System.out.println("Bulan Desember !");
break;
default :
System.out.println("Tentukan kode bulan dengan benar !");
}
output program 3
Bulan Agustus !
potongan program 4
char grade = 'c';
switch(grade) {
case 'A','a' :
System.out.println("Sempurna !");
break;
case 'B','b' :
System.out.println("Mendekati sempurna !");
break;
case 'C','c' :
case 'D','d' :
System.out.println("Cukup baik");
break;
case 'E','e' :
System.out.println("Sebaiknya kamu mengulang");
break;
default :
System.out.println("Masukkan grade dengan benar!");
}
output program 4
Cukup baik
Kesimpulan
Terdapat beberapa jenis pernyataan percabangan, dan dengan model logika yang dapat kita modifikasi. Kita tinggal sesuaikan dengan kebutuhan saja.
No comments:
Post a Comment