Percabangan If, If Else, If Bersarang dan Switch Case
If merupakan salah satu bentuk pernyataan terkondisi yang berguna untuk pengambilan keputusan terhadap 2 kemungkinan. Pada dasarnya if mempunyai 2 buah bentuk, yaitu ada yang mengandung else dan tidak mengandung else. Jika hanya ada satu pernyataan yang akan dikerjakan jika kondisi bernilai true, maka kurung kurawal bisa diabaikan (tidak ditulis).
A. Percabangan If
Pada percabangan if sebuah pernyataan akan dieksekusi jika memenuhi syarat atau kondisi tertentu. Berikut ini adalah bentuk umum atau struktur scriptnya:
if (kondisi){
Statement1;
Statement2;
....
}
Jika kondisi benar, maka statement akan dijalankan.
Program diatas menyatakan, jika lebih besar dari satu (1), nilai a akan ditampilkan. Jika nilai a adalah satu (1) atau kurang dari satu (1), maka nilai a tidak akan ditampilkan. Karena nilai a diset sama dengan lima (5), maka angka 5 akan ditampilkan.
Pada percabangan if, ekspresi kondisi harus diapit oleh sepasang tanda (..) kurung. Berikut contoh penulisannya :
· Contoh penulisan kondisi yang salah
if i > 0 {
System.out.println ("i adalah nilai positif");
}
· Contoh penulisan kondisi yang benar
if ( i > 0) {
System.out.println(“i adalah nilai positif”);
}
B. Percabangan If Else
Percabangan if else hampir sama dengan percabangan if. Hanya saja yang membedakan pada percabangan if else ini adalah terdapat penambahan pernyataan untuk kondisi yang bernilai salah (false). Berikut ini struktur scriptnya:
if (kondisi){
//eksekusi jika kondisi benar
..............;
}else{
//eksekusi jika kondisi salah
..............;
}
· Contoh Programnya:
Karena a lebih kecil dari b maka yang akan ditampilkan adalah statement ke 2.
C. Percabangan If Bersarang
Percabangan if bersarang adalah percabangan yang terdiri dari gabungan beberapa if atau if else yang didalamnya terdapat beberapa kondisi. Berikut ini struktur scriptnya:
if (kondisi1){
//eksekusi kondisi1
..........;
}else if (kondisi2){
//eksekusi kondisi2
..........;
}else if (kondisi3){
//eksekusi kondisi3
..........;
}else{
//eksekusi jika tidak ada kondisi yang benar
..........;
}
· Contoh Programnya:
Dari contoh program diatas, jika di jalankan maka akan menghasilkan output "Dua". Karena nilai variablenya sudah ditentukan yaitu x=2.
D. Percabangan Switch-Case
If majemuk yang berlebihan dapat membuat suatu program menjadi sulit untuk dibaca. Pada java telah disediakan suatu statement switch untuk menangani berbagai alternatif secara efisien.
Berbeda dengan if, switch hanya memperbolehkan pilihan kondisi yang bertipe integer, seperti byte, long, short, int dan char. Char dapat sebagai variable pilihan switch karena char mempunyai nilai angka dari 0 sampai 65535.
· Bentuk umum percabangan switch:
switch (switch_expression){
case statement1:
//eksekusi perintah
break; //untuk menghentikan
case statement2:
//eksekusi perintah
break; //untuk menghentikan
case statement3:
//eksekusi perintah
break; //untuk menghentikan
case statement4:
//eksekusi perintah
break; //untuk menghentikan
case statement5:
//eksekusi perintah
break; //untuk menghentikan
default;
//eksekusi perintah
break;
}
v Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali akan memeriksa switch_expression dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh switch_expression.
v Selanjutnya program akan mengeksekusi pernyataan pada kode setelah case yang ditemukan sampai menemui pernyataan break. Jika tidak ditemui case yang cocok, maka program akan mengeksekusi default.
v Sebagai catatan, bahwa bagian default adalah opsional. Sebuah pernyataan switch bisa jadi tidak memiliki kode default tersebut.
E. Penggunaan Keyword Break
Ada 2 penggunaan keyword break, yaitu untuk keluar dari kendali percabangan switch, dan untuk keluar dari kendali perulangan. Dengan keyword ini berarti percabangan/perulangan akan diakhiri, kemudian eksekusi dilanjutkan ke pernyataan setelah blok percabangan / perulangan tersebut.
Tidak seperti statement if, pada struktur switch statement dieksekusi tanpa memerlukan tanda kurung kurawal ({}). Ketika sebuah case pada statement switch menemui kecocokan, semua statement pada case tersebut akan dieksekusi. Untuk menghindari program mengeksekusi statement pada case berikutnya, kita menggunakan statement break sebagai statement akhir.
· Hasil Running
Dari program diatas, output yang dihasilkannya adalah Hari Jumat karena program diatas telah diketahui noHari = 5.
POST TEST
1. Buatkan program untuk menghitung gaji karyawan sebuah perusahaan dengan gaji pokok ditentukan berdasarkan Golongan dan Masa Kerja
Golongan | Masa Kerja | Gaji Pokok |
I | 0 s/d 2 | 1500000 |
3 s/d 5 | 2500000 | |
>5 | 3500000 | |
II | 0 s/d 2 | 2000000 |
3 s/d 5 | 3000000 | |
>5 | 4000000 |
Tunjangan yang diberikan berupa tunjangan istri dan tunjangan anak dimana tunjangan istri 2,5%/orang dan tunjangan anak 5%/anak sampai anak ke 3. Inputan yang dimasukan nik, nama, jenis kelamin, status pernikahan, jumlah istri dan jumlah anak.
ü Script
package modul_03;
import java.util.Scanner;
public class Latihan_03 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Scanner in = new Scanner(System.in);
String nama, jk;
double nik, tj_istri=0, tj_anak=0, total=0;
int sp, jtri, jnak, gol, maker, gaji=0;
System.out.print("\tPerhitungan Gaji Karyawan");
System.out.print("\nMasukan NIK\t\t: ");
nik = in.nextDouble();
System.out.print("Masukan Nama\t\t: ");
nama = scan.nextLine();
System.out.print("Jenis Kelamin [P / L] : ");
jk = scan.nextLine();
System.out.print("Golongan [1 / 2] : ");
gol = in.nextInt();
System.out.print("Lama Kerja\t\t: ");
maker = in.nextInt();
System.out.print("Status [1.Menikah 2.Belum Menikah 3.Janda/Duda] : ");
sp = in.nextInt();
System.out.print("Jumlah Istri\t\t: ");
jtri = in.nextInt();
System.out.print("Jumlah anak [max. 3]\t: ");
jnak = in.nextInt();
if(jnak > 3){
jnak = 3;
}
if(gol==1){
if(maker<=2){
gaji = 1500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if((maker>=3) && (maker<=5)){
gaji = 2500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if(maker>5){
gaji = 3500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
}
else if(gol==2){
if(maker<=2){
gaji = 2000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if((maker>=3) && (maker<=5)){
gaji = 3000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if(maker>5){
gaji = 4000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
}
System.out.println(" \n\t\t\t\t\t\t\t\tData Karyawan ");
System.out.println("\nNIK \t\tNama \t\tJenis Kelamin \t\tGolongan \t\tStatus \t\tLama Kerja \t\tTunjangan Istri \tTunjangan Anak \t\tGaji Pokok");
System.out.printf("%.0f \t%s \t\t%s \t\t\t%d \t\t%d \t\t%d",nik,nama,jk,gol,sp,maker);
System.out.printf("\t\t\t%.0f \t\t\t%.0f \t\t\t%.0f",tj_istri,tj_anak,total);
}
}
package modul_03;
import java.util.Scanner;
public class Latihan_03 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Scanner in = new Scanner(System.in);
String nama, jk;
double nik, tj_istri=0, tj_anak=0, total=0;
int sp, jtri, jnak, gol, maker, gaji=0;
System.out.print("\tPerhitungan Gaji Karyawan");
System.out.print("\nMasukan NIK\t\t: ");
nik = in.nextDouble();
System.out.print("Masukan Nama\t\t: ");
nama = scan.nextLine();
System.out.print("Jenis Kelamin [P / L] : ");
jk = scan.nextLine();
System.out.print("Golongan [1 / 2] : ");
gol = in.nextInt();
System.out.print("Lama Kerja\t\t: ");
maker = in.nextInt();
System.out.print("Status [1.Menikah 2.Belum Menikah 3.Janda/Duda] : ");
sp = in.nextInt();
System.out.print("Jumlah Istri\t\t: ");
jtri = in.nextInt();
System.out.print("Jumlah anak [max. 3]\t: ");
jnak = in.nextInt();
if(jnak > 3){
jnak = 3;
}
if(gol==1){
if(maker<=2){
gaji = 1500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if((maker>=3) && (maker<=5)){
gaji = 2500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if(maker>5){
gaji = 3500000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
}
else if(gol==2){
if(maker<=2){
gaji = 2000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if((maker>=3) && (maker<=5)){
gaji = 3000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
else if(maker>5){
gaji = 4000000;
tj_istri = jtri*(gaji*0.025);
tj_anak = jnak*(gaji*0.05);
total = gaji + tj_istri + tj_anak;
}
}
System.out.println(" \n\t\t\t\t\t\t\t\tData Karyawan ");
System.out.println("\nNIK \t\tNama \t\tJenis Kelamin \t\tGolongan \t\tStatus \t\tLama Kerja \t\tTunjangan Istri \tTunjangan Anak \t\tGaji Pokok");
System.out.printf("%.0f \t%s \t\t%s \t\t\t%d \t\t%d \t\t%d",nik,nama,jk,gol,sp,maker);
System.out.printf("\t\t\t%.0f \t\t\t%.0f \t\t\t%.0f",tj_istri,tj_anak,total);
}
}
ü Hasil Running










No comments:
Post a Comment