Anda di halaman 1dari 9

41

BAB 7
FUNGSI PERCABANGAN (Bagian 2)
42

7.1. Percabangan If Bersarang


Perhatikan tabel kode program berikut.

Tabel 7.1. Kode Program Percabangan If Bersarang


1 import java.util.*;
2
3 public class App {
4     public static void main(String[] args) throws Exception {
5         Scanner sc = new Scanner(System.in);
6         System.out.println("Masukkan nilai try out masing-masing mata pelajaran!!");
7         double b_indo, b_inggris, matematika, ipa, rata_rata;
8         System.out.print("Masukkan nilai Bahasa Indonesia: ");
9         b_indo = sc.nextDouble();
1         System.out.print("Masukkan nilai Bahasa Inggris: ");
0         b_inggris = sc.nextDouble();
1         System.out.print("Masukkan nilai Matematika: ");
1         matematika = sc.nextDouble();
1         System.out.print("Masukkan nilai IPA: ");
2         ipa = sc.nextDouble();
1        
3         rata_rata = (b_indo + b_inggris + matematika + ipa)/4;
1
4         if ((b_indo >= 0 && b_indo <= 10) && (b_inggris >= 0 && b_inggris <= 10) &&
1 (matematika >= 0 && matematika <= 10) && (ipa >= 0 && ipa <= 10)) {
5             if (b_indo >= 4 && b_inggris >= 4 && matematika >= 4 && ipa >= 4) {
1                 if (rata_rata >= 5.5) {
6                     System.out.println("Selamat, Anda lulus!!");
1                     System.out.println("Rata-rata: " + rata_rata);
7                 } else {
1                     System.out.println("Maaf, Anda tidak lulus!!");
8                     System.out.println("Rata-rata: " + rata_rata);                  
1                 }
9             } else {
                System.out.println("Maaf, Anda tidak lulus, ada nilai pelajaran yang
2 di bawah 4");
0                 System.out.println("Rata-rata: " + rata_rata);
2             }            
1         } else {
2             System.out.println("Masukan nilai harus pada rentang 0 - 10!");
2         }
2     }
3 }
2
4
2
5
2
6
2
7
2
8
2
43

3
0
3
1
3
2
3
3
3
4
3
5
3
6

1. Jelaskan kode baris 7-17.


2. Persyaratan apakah yang harus dipenuhi pada baris 19 untuk menjalankan
suatu perintah?
3. Persyaratan apakah yang harus dipenuhi pada baris 20 untuk menjalankan suatu
perintah?
4. Persyaratan apakah yang harus dipenuhi pada baris 21 untuk menjalankan suatu
perintah?
5. Jalankan programnya, kemudian masukkan nilai masing-masing sebagai
berikut:
- b_indo = 6.20
- b_inggris = 6.00
- matematika = 4.50
- ipa = 8.00
Luaran apa yang ditampilkan?
6. Ulangi soal nomor 5 dengan memasukkan nilai masing-masing sebagai berikut:
- b_indo = 8.40
- b_inggris = 8.80
- matematika = 3.75
- ipa = 7.25
7. Ulangi soal nomor 5 dengan memasukkan nilai masing-masing sebagai berikut:
- b_indo = 5.20
- b_inggris = 4.60
- matematika = 5.00
44

- ipa = 4.25
8. Ulangi soal nomor 5 dengan memasukkan nilai masing-masing sebagai berikut:
- b_indo = 7.80
- b_inggris = 10.20
- matematika = 9.75
- ipa = 10.00

7.2. Perintah Switch-Case


Perhatikan tabel kode program berikut.

Tabel 7.2. Kode Program Switch-Case


1 import java.util.*;
2
3 public class App {
4     public static void main(String[] args) throws Exception {
5         Scanner sc = new Scanner(System.in);
6         byte menu;
7         double bil1, bil2, tambah, kurang, kali, bagi;
8         System.out.print("Masukkan bilangan 1: ");
9         bil1 = sc.nextDouble();
10         System.out.print("Masukkan bilangan 2: ");
11         bil2 = sc.nextDouble();
12         System.out.println("Pilih menu: \n1. Penjumlahan \n2.
Pengurangan \n3. Perkalian \n4. Pembagian");
13         menu = sc.nextByte();
14
15         switch (menu) {
16             case 1:
17                 tambah = bil1 + bil2;
18                 System.out.println("Hasil penjumlahan = " + tambah);
19                 break;
20             case 2:
21                 kurang = bil1 - bil2;
22                 System.out.println("Hasil pengurangan = " + kurang);
23                 break;
24             case 3:
25                 kali = bil1 * bil2;
26                 System.out.println("Hasil perkalian = " + kali);
27                 break;
28             case 4:
29                 if (bil2 != 0) {
30                     bagi = bil1 / bil2;
31                     System.out.println("Hasil pembagian = " + bagi);
32                 } else {
33                     System.out.println("Pembagian dengan nol tidak
terdefinisi!");
34                 }
35                 break;
45

36             default:
37                 System.out.println("Menu yang dimasukkan salah!");
38                 break;
39         }
40     }
41 }

9. Jelaskan kode baris 15.


10. Jelaskan kode baris 16.
11. Jelaskan kode baris 19.
12. Jelaskan kode baris 36.
13. Jalankan programnya, masukkan dua bilangan bebas, lalu jalankan menu
nomor 1. Bagaimanakah hasilnya?
14. Ulangi soal nomor 13 dengan menjalankan menu nomor 3.
15. Ulangi soal nomor 13 dengan menjalankan menu nomor 5.

7.3. Beberapa Studi Kasus Tentang Percabangan

16. Perhatikan kasus di bawah ini, lalu lengkapi kode programnya

Sebuah kotak berisikan kartu bernomor 1 sampai 1000. Amir ingin mengelompokkan
kartu-kartu tersebut. Untuk kartu bernomor 1 sampai 300, kartu yang merupakan
kelipatan 4 dikelompokkan. Kartu bernomor 301 sampai 600, kartu yang merupakan
kelipatan 5 atau kelipatan 7 dikelompokkan. Kartu bernomor 601 sampai 1000, kartu
yang merupakan kelipatan 2 dan kelipatan 5 dikelompokkan. Lengkapi kode program
pada tabel 7.3 di bawah untuk memenuhi kasus tersebut.

Tabel 7.3. Studi Kasus 1


1 import java.util.*;
2
3 public class App {
4     public static void main(String[] args) throws Exception {
5         Scanner sc = new Scanner(System.in);
6         System.out.print("Masukkan nomor kartu: ");
7         int kartu = ...
8        
9         if (...) {
46

10             if (...) {
11                 ...
12             } else {
13                 ...
14             }
15         } else if (...) {
16             ...
17         } else if (...) {
18             ...
19         } else {
20             ...
21         }
22     }
23 }

Contoh output:
Masukkan nomor kartu: 76
Kartu nomor 76 adalah kelipatan 4

Masukkan nomor kartu: 366


Kartu nomor 366 bukan kelipatan 5 atau 7

Masukkan nomor kartu: 860


Kartu nomor 860 adalah kelipatan 2 dan 5

Masukkan nomor kartu: 1045


Kartu harus bernomor 1-1000!

17. Perhatikan kasus di bawah ini, lalu lengkapi kode programnya

Diberikan beberapa menu untuk mencari informasi mengenai bangun ruang balok,
diantaranya:
Menu 1, yaitu menu untuk menghitung jumlah panjang rusuk balok.
Menu 2, yaitu menu untuk menghitung luas permukaan balok.
Menu 3, yaitu menu untuk menghitung volume balok.

Tabel 7.4. Studi Kasus 2


1 import java.util.*;
2
3 public class App {
47

4     public static void main(String[] args) throws Exception {


5         Scanner sc = new Scanner(System.in);
6         byte menu;
7         double panjang, lebar, tinggi, panjang_rusuk, luas, volume;
8         System.out.print("Masukkan panjang balok: ");
9         panjang = ...
10         System.out.print("Masukkan lebar balok: ");
11         lebar = ...
12         System.out.print("Masukkan tinggi balok: ");
13         tinggi = ...
14         System.out.println("Pilih menu: \n1. Jumlah panjang rusuk\n2.
15 Luas permukaan\n3. Volume");
16         menu = ...
17
18         switch (...) {
19             case ...:
20                 ...
21                 break;
22             case ...:
23                 ...
24                 break;
25             case ...:
26                 ...
27                 break;
28             default:
29                 ...
30                 break;
31         }
32     }
33 }

Contoh output:
Masukkan panjang: 50
Masukkan lebar: 40
Masukkan tinggi: 20
Pilih menu:
1. Jumlah panjang rusuk
2. Luas permukaan
3. Volume
1
Panjang rusuk: 440

Masukkan panjang: 50
Masukkan lebar: 40
Masukkan tinggi: 20
Pilih menu:
48

1. Jumlah panjang rusuk


2. Luas permukaan
3. Volume
2
Luas permukaan: 7600

Masukkan panjang: 50
Masukkan lebar: 40
Masukkan tinggi: 20
Pilih menu:
1. Jumlah panjang rusuk
2. Luas permukaan
3. Volume
3
Volume: 40000

Masukkan panjang: 50
Masukkan lebar: 40
Masukkan tinggi: 20
Pilih menu:
1. Jumlah panjang rusuk
2. Luas permukaan
3. Volume
4
Menu yang dipilih salah!

7.4. Lembar Tugas Mahasiswa


1. Kerjakan soal praktikum dari subbab 7.1 sampai 7.2 yang tidak dicetak tebal saja.
2. (NIM Ganjil) Buatlah sebuah program dengan kasus sebagai berikut:
Sebuah LBB TOEFL baru saja mengadakan tes TOEFL kepada mahasiswa untuk
menjaring manakah yang dinyatakan lulus atau harus mengikuti kursus tambahan.
Ketentuan dari kasus ini antara lain:
- Rentang nilai tes TOEFL yaitu 310 sampai 677.
49

- Angka terakhir nilai tes TOEFL harus 0, 3, atau 7. (HINT: gunakan mod 10)
- Jika nilai tes minimal 477 maka dinyatakan lulus, jika nilai tes 400 sampai 473
maka wajib mengikuti kursus pengayaan, dan jika nilai dibawah 400 maka wajib
mengikuti kursus pemula dan pengayaan.
3. (NIM Genap) Buatlah sebuah program dengan kasus sebagai berikut:
Pak Suparman ingin membuat sebuah kolam renang di lapangan belakang rumahnya.
Ia ingin membuat sebuah informasi mengenai ukuran kolam beserta durasi pengisian
air, dan biaya pemasangan keramik. Ketentuan dari kasus ini antara lain:
- Program ini terdiri dari 2 menu, yaitu menu “durasi pengisian air” dan menu
“biaya pemasangan keramik”
- Menu nomor 1 yaitu menu “durasi pengisian air”. Menu ini berisi informasi
tentang volume kolam renang (berdasarkan inputan panjang, lebar, kedalaman
kolam), beserta durasi pengisian air (berdasarkan debit air dalam satuan liter per
detik).
- Menu nomor 2 yaitu menu “biaya pemasangan keramik”. Menu ini berisi
informasi tentang biaya pemasangan keramik pada kolam renang dengan asumsi
biaya pemasangan Rp80.000 per meter persegi.
4. Laporan diketik dan dikumpulkan pada pertemuan praktikum selanjutnya dengan
ketentuan ukuran kertas A4 dengan menggunakan font Times New Roman ukuran 12
pt dan spasi 1,5 dan format file PDF. Jangan lupa melampirkan nama, NIM, dan kelas.

Anda mungkin juga menyukai