Bab 2, Seleksi Kondisi
Ringkasan materi
Dalam bab ini, kita akan membuat program yang akan memiliki lebih dari 1 kondisi, dan setiap kondisinya akan memiliki keadaan program yang berbeda-beda. Berbeda disini adalah berbeda output program maupun nilai dari suatu variabel bergantung pada kondisi yang ditawarkan dalam program.
Kita disini akan mengenal bentuk percabangan if-else
dan switch-case
.
Percabangan if-else
Bentuk umum if-else di Java sebagai berikut
if (kondisi) {
// statement jika kondisi benar
} else {
// statement jika kondisi salah
}
Statement yang didalam blok if
akan dijalankan ketika kondisi yang diajukan bernilai true
. Contoh :
int x = 4;
// jika x adalah genap
if (x % 2 == 0) {
System.out.println("ini bilangan genap");
} else {
System.out.println("ini bilangan ganjil");
}
Potongan kode diatas akan mencetak ini bilangan genap
. Mengapa?
Karena nilai x
yaitu 4 memenuhi kondisi x mod 2 = 0
. Operator mod
atau %
akan menghitung sisa bagi dari 2 bilangan.
Jika nilai x
diganti bilangan ganjil, akan menghasilkan output ini bilangan ganjil
.
Cukup mudah, bukan?
Nested if
Sama seperti bentuk if-else
pada umumnya. Namun di dalam blok if
maupun else
terdapat blok if yang lain.
if (kondisi) {
// blok statement akan dijalankan jika kondisi bernilai true
if (kondisi1) {
// statement jika kondisi1 benar
} else if (kondisi2) {
// statement jika kondisi1 salah, dan kondisi2 benar
.
.
.
} else {
// jika semua kondisi1, kondisi2, ... salah
}
}
Contoh implementasi Nested if
public static void main(String[] args) {
int nilai = 5;
if (nilai * 2 < 40) {
nilai += 5;
}
if (nilai <= 10) {
System.out.println("kacang ");
if (nilai % 2 == 1) {
System.out.println("goreng ");
}
else {
System.out.println("rebus ");
}
}
else {
System.out.println("bukan kacang ");
if (nilai % 2 == 1) {
System.out.println("goreng ");
}
else {
System.out.println("rebus ");
}
}
}
Switch-case
Switch-case
digunakan untuk menyeleksi nilai dari suatu variabel.
Bentuk umumnya sebagai berikut
switch (variabel_yang_ingin_dipilih_nilainya) {
case nilai1 : {
// statement
break;
}
case nilai2 : {
// statement
break;
}
.
.
.
default : {
// statement
break;
}
}
Contoh penggunaan Switch-case
, untuk mengonversi satuan kecepatan.
Kode ini bisa diambil dari folder src.
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String satuanAsal = in.next();
String satuanTujuan = in.next();
double nilaiAwal = in.nextDouble();
double nilaiAkhir = 0.0;
switch (satuanAsal) {
case "kmh" : {
switch (satuanTujuan) {
case "ms" : {
nilaiAkhir = nilaiAwal * 0.2778;
break;
}
case "knot" : {
nilaiAkhir = nilaiAwal / 1.852;
break;
}
}
break;
}
case "ms" : {
switch (satuanTujuan) {
case "kmh" : {
nilaiAkhir = nilaiAwal * 3.6;
break;
}
case "knot" : {
nilaiAkhir = nilaiAwal * 1.943844492;
break;
}
}
break;
}
case "knot" : {
switch (satuanTujuan) {
case "kmh" : {
nilaiAkhir = nilaiAwal * 1.852;
break;
}
case "ms" : {
nilaiAkhir = nilaiAwal * 0.514;
break;
}
}
break;
}
}
System.out.printf("%.3f\n", nilaiAkhir);
}
Contoh input dan output
-> knot kmh 1
1.852