Setelah memahami if-else, Anda akan menemukan situasi di mana sebuah variabel harus dibandingkan dengan banyak nilai berbeda. Menuliskannya dengan elseif yang bertumpuk bisa membuat kode panjang dan sulit dibaca. Di sinilah PHP Switch Case hadir sebagai solusi yang lebih rapi dan terstruktur.
Apa Itu Switch Case?
Switch case adalah struktur percabangan yang membandingkan satu variabel dengan sederet nilai yang mungkin. Bayangkan mesin penjual minuman: Anda menekan satu tombol (variabel), lalu mesin mengeluarkan produk sesuai tombol yang ditekan (case). Setiap kemungkinan punya penanganannya sendiri.
Sintaks Dasar
<?php
$hari = "Senin";
switch ($hari) {
case "Senin":
echo "Awal pekan, semangat!";
break;
case "Jumat":
echo "Akhir pekan kerja";
break;
default:
echo "Hari biasa";
}
?>
PHP mengambil nilai variabel $hari, lalu mencocokkannya dengan setiap case dari atas ke bawah. Karena nilainya “Senin”, blok pada case "Senin" dijalankan sehingga tampil “Awal pekan, semangat!”.
Pentingnya Kata Kunci break
break memberi tahu PHP untuk keluar dari switch setelah sebuah case cocok. Tanpa break, PHP akan terus menjalankan case-case di bawahnya meski nilainya tidak cocok — perilaku ini disebut fall-through. Perhatikan contoh salah berikut:
<?php
$angka = 1;
switch ($angka) {
case 1:
echo "Satu";
case 2:
echo "Dua"; // ikut tereksekusi karena tak ada break!
}
// Output: SatuDua
?>
Karena tidak ada break setelah case 1, PHP “jatuh” ke case 2 dan ikut menjalankannya. Karena itu, hampir selalu tambahkan break di setiap case.
Blok default
Blok default berperan seperti else pada if: dijalankan bila tidak ada case yang cocok. Sebaiknya selalu sertakan default untuk menangani nilai tak terduga.
Menggabungkan Beberapa Case
Fall-through yang tadi merepotkan justru bisa dimanfaatkan untuk menyatukan beberapa nilai dengan aksi sama:
<?php
$hari = "Sabtu";
switch ($hari) {
case "Sabtu":
case "Minggu":
echo "Hari libur";
break;
default:
echo "Hari kerja";
}
?>
Baik “Sabtu” maupun “Minggu” menghasilkan “Hari libur” karena keduanya berbagi blok kode yang sama.
Switch Case vs If Else
Gunakan switch case ketika memeriksa satu variabel terhadap sejumlah nilai tetap (status, pilihan menu, kode). Sedangkan if-else lebih fleksibel untuk kondisi rentang (misalnya $nilai >= 75) atau logika kompleks yang melibatkan banyak variabel. Keduanya bisa saling menggantikan, tetapi memilih yang tepat membuat kode lebih jelas.
Contoh Praktik: Menu Sederhana
<?php
$pilihan = 2;
switch ($pilihan) {
case 1: echo "Anda memilih: Profil"; break;
case 2: echo "Anda memilih: Pengaturan"; break;
case 3: echo "Anda memilih: Keluar"; break;
default: echo "Pilihan tidak dikenal";
}
// Output: Anda memilih: Pengaturan
?>
Kesalahan Umum
- Lupa break sehingga terjadi fall-through yang tidak diinginkan.
- Memakai switch untuk kondisi rentang — untuk itu, if-else lebih cocok.
- Tidak menyediakan default sehingga nilai tak terduga tidak tertangani.
Kesimpulan
PHP Switch Case membuat percabangan banyak nilai menjadi rapi dan mudah dibaca. Ingat selalu menambahkan break di tiap case dan sediakan default. Dengan begitu, kode Anda bersih sekaligus antisipatif terhadap input tak terduga.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

