dasarpercabanganswitchPemula3 mnt baca

Percabangan switch

Menangani banyak pilihan nilai dengan switch-case yang lebih rapi daripada if-else berlapis.

Kapan pakai switch?

Ketika kamu membandingkan satu variabel dengan banyak nilai tetap, switch lebih rapi daripada if-else berlapis-lapis.

javascript
let hari = "Senin";

switch (hari) {
  case "Senin":
    console.log("Awal minggu, semangat!");
    break;
  case "Jumat":
    console.log("Besok libur!");
    break;
  case "Sabtu":
  case "Minggu":
    console.log("Waktunya istirahat");
    break;
  default:
    console.log("Hari kerja biasa");
}

Beberapa case bisa digabung seperti Sabtu dan Minggu di atas, berguna saat beberapa nilai menghasilkan aksi sama.

Jangan lupa break

Setiap case umumnya diakhiri break agar eksekusi berhenti. Tanpa break, kode akan "jatuh" ke case berikutnya.

javascript
let level = 1;
switch (level) {
  case 1:
    console.log("satu");
  // tidak ada break, lanjut ke bawah!
  case 2:
    console.log("dua");
    break;
}
// output: "satu" lalu "dua"

Perilaku fallthrough ini kadang disengaja (seperti penggabungan case), tapi lebih sering karena lupa. Selalu tulis break kecuali kamu memang sengaja menggabungkan case.

Catatan teknis: switch memakai perbandingan ketat (===). Jadi case 1 tidak akan cocok dengan string "1". Pastikan tipe data nilai yang dibandingkan konsisten.

switch vs if-else

Pakai switch untuk perbandingan satu nilai dengan banyak kemungkinan tetap. Pakai if-else untuk kondisi kompleks seperti rentang nilai (nilai >= 75) atau gabungan kondisi. Keduanya bisa saling menggantikan, pilih yang paling mudah dibaca.

Studi kasus: kalkulator sederhana

switch cocok untuk memilih operasi berdasarkan simbol:

javascript
function hitung(a, b, op) {
  switch (op) {
    case "+":
      return a + b;
    case "-":
      return a - b;
    case "*":
      return a * b;
    case "/":
      return b !== 0 ? a / b : "Tidak bisa dibagi nol";
    default:
      return "Operator tidak dikenal";
  }
}

console.log(hitung(10, 5, "*")); // 50
console.log(hitung(10, 0, "/")); // "Tidak bisa dibagi nol"
console.log(hitung(10, 5, "%")); // "Operator tidak dikenal"

Perhatikan tidak ada break karena tiap case langsung return. return sekaligus menghentikan fungsi, jadi break tidak diperlukan. Ini pola umum switch di dalam fungsi dan terlihat rapi.

Kapan switch bukan jawabannya

switch hanya untuk perbandingan nilai tetap dengan ===. Kalau kondisimu berupa rentang atau gabungan, if-else tetap juaranya:

javascript
let nilai = 85;
// switch TIDAK bisa menangani ini dengan rapi
if (nilai >= 90) console.log("A");
else if (nilai >= 75) console.log("B");
else console.log("C");

Memaksakan switch untuk rentang nilai menghasilkan trik switch(true) yang sulit dibaca dan dianggap bad practice. Pilih struktur yang sesuai sifat kondisinya sejak awal.

Kesimpulan

switch membuat kode pilihan ganda lebih bersih. Ingat dua hal: selalu akhiri case dengan break, dan sediakan default untuk menangani nilai tak terduga.