Modul 5 — Percabangan

Pelajari struktur kontrol percabangan di Java if, if-else, if-else if, switch, dan switch expression.

🚦 Modul 5 — Percabangan

Percabangan (branching) memungkinkan program mengambil keputusan berdasarkan kondisi tertentu. Java menyediakan beberapa struktur percabangan: if, if-else, if-else if, dan switch.

Tujuan Modul: Setelah mempelajari modul ini, Anda akan mampu menggunakan berbagai struktur percabangan dengan tepat, memahami perbedaan if-else dan switch, serta menulis kode percabangan yang bersih dan efisien.

🌿 Jenis-Jenis Percabangan

Mari kita bahas satu per satu dengan contoh.

1. if — Satu Kondisi

Digunakan jika hanya ada satu kondisi yang perlu diperiksa.

Contoh if
int nilai = 85;
if (nilai >= 70) {
    System.out.println("Selamat, Anda lulus!");
}
// Jika nilai < 70, tidak ada output
Jika blok kode hanya berisi satu baris, kurung kurawal boleh dihilangkan, namun sangat disarankan tetap menggunakannya untuk menghindari bug.

2. if-else — Dua Pilihan

Untuk dua kemungkinan: jika kondisi true lakukan A, jika false lakukan B.

Contoh if-else
int nilai = 55;
if (nilai >= 70) {
    System.out.println("Lulus");
} else {
    System.out.println("Tidak Lulus");
}

3. if-else if-else — Banyak Kondisi

Untuk mengecek beberapa kondisi berurutan.

Contoh if-else if-else
int nilai = 82;
String grade;

if      (nilai >= 90) { grade = "A"; }
else if (nilai >= 80) { grade = "B"; }
else if (nilai >= 70) { grade = "C"; }
else if (nilai >= 60) { grade = "D"; }
else                  { grade = "E"; }

System.out.println("Grade: " + grade); // Grade: B
Urutan kondisi penting! Jika Anda menulis nilai >= 60 lebih dulu, maka nilai 82 akan masuk ke D (salah). Selalu urutkan dari kondisi paling spesifik ke umum.

4. switch — Banyak Nilai Spesifik

switch digunakan untuk membandingkan satu variabel dengan banyak nilai konstan.

Switch Klasik (dengan break):

Switch klasik
int hari = 3;
switch (hari) {
    case 1: System.out.println("Senin");  break;
    case 2: System.out.println("Selasa"); break;
    case 3: System.out.println("Rabu");   break;
    case 4: System.out.println("Kamis");  break;
    case 5: System.out.println("Jumat");  break;
    default: System.out.println("Akhir Pekan");
}
Jangan lupa break pada switch klasik! Jika lupa, akan terjadi fall-through (eksekusi ke case berikutnya).

Switch Expression (Java 14+) — Modern & Ringkas:

Switch expression
String namaHari = switch (hari) {
    case 1 -> "Senin";
    case 2 -> "Selasa";
    case 3 -> "Rabu";
    case 4, 5 -> "Kamis atau Jumat"; // multiple case!
    default -> "Akhir Pekan";
};
System.out.println(namaHari); // Rabu

Switch dengan yield (multi-baris):

Switch dengan yield
int result = switch (hari) {
    case 1, 7 -> 0;
    default -> {
        int jam = 8;
        yield jam * 60; // yield = return di dalam switch block
    }
};

::


⚖️ if-else vs switch — Kapan Pakai Apa?

Tidak ada yang selalu lebih baik, tergantung situasi.

Gunakan if-else jika...

  • Kondisi melibatkan range (>=, <=, >)
  • Kondisi menggunakan operator logika (&&, ||)
  • Tipe data bukan int, char, String, atau enum

Gunakan switch jika...

  • Membandingkan satu variabel dengan banyak nilai spesifik
  • Nilai yang dibandingkan adalah int, char, String, atau enum
  • Ingin kode lebih ekspresif dan mudah dibaca
Perbandingan
// if-else untuk range
int nilai = 85;
if (nilai >= 90) grade = "A";
else if (nilai >= 80) grade = "B";
// ...

// switch untuk nilai spesifik
String warna = "merah";
switch (warna) {
    case "merah" -> System.out.println("Berhenti");
    case "kuning" -> System.out.println("Hati-hati");
    case "hijau" -> System.out.println("Jalan");
}
// if-else untuk range
int nilai = 85;
if (nilai >= 90) grade = "A";
else if (nilai >= 80) grade = "B";
// ...

// switch untuk nilai spesifik
String warna = "merah";
switch (warna) {
    case "merah" -> System.out.println("Berhenti");
    case "kuning" -> System.out.println("Hati-hati");
    case "hijau" -> System.out.println("Jalan");
}

🧪 Latihan Praktik

Buat program Java yang:

  1. Meminta pengguna memasukkan angka 1-7 (mewakili hari Senin-Minggu).
  2. Menggunakan switch expression untuk menentukan apakah hari tersebut hari kerja (Senin-Jumat) atau akhir pekan (Sabtu-Minggu).
  3. Jika pengguna memasukkan angka di luar 1-7, tampilkan pesan error.
  4. Jika hari kerja, tampilkan pesan: "Hari kerja, semangat!".
  5. Jika akhir pekan, tampilkan pesan: "Akhir pekan, santai saja!".

Contoh interaksi:

Masukkan angka hari (1-7): 5
Hari kerja, semangat!

Masukkan angka hari (1-7): 7
Akhir pekan, santai saja!

Masukkan angka hari (1-7): 9
Error: Angka harus antara 1-7.
Gunakan Scanner untuk input dan switch expression dengan multiple case (case 1,2,3,4,5 -> ...).

📺 Video Penjelasan

Tonton video berikut untuk penjelasan lebih visual tentang percabangan di Java (18 menit):


✨ Kesimpulan

Apa yang Telah Dipelajari

  • if, if-else, if-else if-else
  • switch klasik dan switch expression (Java 14+)
  • ✅ Perbedaan dan kapan menggunakan masing-masing
  • ✅ Fall-through pada switch dan cara menghindarinya
  • yield untuk nilai dari switch expression multi-baris

Selanjutnya

Modul 6: Perulangan (Loop)for, while, do-while, dan kontrol perulangan.

Selamat! Modul 5 selesai. Praktekkan percabangan dalam berbagai skenario. 🎉