
Switch Case pada PHP adalah struktur kontrol yang membantu kalian memilih satu cabang eksekusi berdasarkan nilai suatu ekspresi, sehingga kode menjadi lebih rapi dibanding banyak blok kondisi berulang.
Halo teman-teman, semoga belajar kodingnya makin semangat. Pada artikel ini kodelyly.com akan membahas apa itu switch case di PHP, bagaimana strukturnya, contoh penggunaannya, serta perbedaannya dengan if-else agar kalian bisa memilih pendekatan yang paling tepat pada situasi nyata.
Switch Case Pada PHP
Switch cocok ketika kalian membandingkan satu variabel terhadap beberapa kemungkinan nilai tetap. Hal ini membuat alur logika mudah dipindai dan dirawat, terutama saat jumlah kasus bertambah.
<?php
$hari = 'Rabu';
switch ($hari) {
case 'Senin':
echo 'Mulai minggu baru!';
break;
case 'Selasa':
case 'Rabu':
echo 'Tetap produktif!';
break;
case 'Kamis':
echo 'Hampir weekend.';
break;
case 'Jumat':
echo 'Saatnya evaluasi.';
break;
default:
echo 'Selamat beristirahat.';
}
Struktur Switch Case
Di dalam switch, setiap case mewakili satu nilai yang mungkin. Kata kunci break menghentikan eksekusi agar tidak terus berjalan ke case berikutnya. Bagian default dieksekusi saat tidak ada case yang cocok. Kalian juga bisa melakukan fall-through dengan sengaja dengan menempatkan dua case berurutan tanpa kode di antaranya.
Contoh: Switch Vs If_Else
Kedua potongan berikut menghasilkan perilaku mirip, tetapi gaya penulisannya berbeda.
<?php
$grade = 'B';
switch ($grade) {
case 'A':
$msg = 'Sangat baik';
break;
case 'B':
$msg = 'Baik';
break;
case 'C':
$msg = 'Cukup';
break;
default:
$msg = 'Perlu usaha lagi';
}
echo $msg;
<?php
$grade = 'B';
if ($grade === 'A') {
$msg = 'Sangat baik';
} elseif ($grade === 'B') {
$msg = 'Baik';
} elseif ($grade === 'C') {
$msg = 'Cukup';
} else {
$msg = 'Perlu usaha lagi';
}
echo $msg;
Perbedaan Switch Dan If_Else
| Aspek | Switch Case | If-Else |
|---|---|---|
| Kecocokan | Perbandingan nilai tunggal terhadap banyak kandidat | Kondisi fleksibel, bisa kompleks (>, <, &&, |
| Keterbacaan | Lebih ringkas saat banyak pilihan diskrit | Bisa memanjang saat pilihan bertambah |
| Kinerja | Umumnya efisien untuk banyak kasus diskrit | Bergantung urutan pemeriksaan kondisi |
| Ekspresi | Hanya cocok untuk kesetaraan nilai | Dapat memakai ekspresi logika rumit |
Baca Juga:
Logika If di PHP: Apa Itu, Cara Menggunakan, dan Contohnya
Kapan Menggunakan
Pilih switch ketika kalian membandingkan satu variabel dengan banyak nilai tetap seperti kode status, jenis peran, atau nama hari. Pilih if-else ketika logika perlu membandingkan rentang nilai, kombinasi kondisi, atau ekspresi boolean yang tidak hanya kesetaraan.
FAQ — Switch Case Pada PHP
1) Kapan Sebaiknya Memakai Switch Dibanding If_else?
Switch cocok ketika kalian membandingkan satu variabel terhadap banyak nilai diskrit seperti kode status, peran user, atau nama hari. Kodenya lebih ringkas dan mudah dipindai. If-else lebih tepat saat logika melibatkan rentang nilai, ekspresi boolean kompleks, atau urutan pengecekan yang bergantung kondisi tertentu.
2) Apakah Perbandingan Di Switch Itu Ketat (===)?
Tidak. Di PHP, switch menggunakan perbandingan longgar (==). Ini berarti nilai seperti 0, ‘0’, dan false bisa dianggap cocok. Jika kalian butuh perbandingan ketat, pertimbangkan match expression (PHP 8+) yang menggunakan === secara default, atau gunakan if-else dengan ===.
3) Bagaimana Mencegah Fall_through Di Switch?
Gunakan break pada akhir setiap case. Tanpa break, eksekusi akan berlanjut ke case berikutnya. Kalian juga bisa menghentikan alur dengan return atau throw jika berada di dalam fungsi atau konteks yang sesuai.
switch ($role) {
case 'admin':
aksesAdmin();
break; // mencegah jatuh ke case berikutnya
case 'editor':
aksesEditor();
break;
default:
aksesTamu();
}
4) Bagaimana Menulis Beberapa Nilai Yang Hasil Aksinya Sama?
Tumpuk beberapa case berturut-turut tanpa kode di antaranya sehingga semuanya jatuh ke blok yang sama, atau gunakan match (PHP 8+) dengan daftar nilai koma.
// switch
switch ($ext) {
case 'jpg':
case 'jpeg':
case 'png':
$tipe = 'gambar';
break;
default:
$tipe = 'lainnya';
}
// match (PHP 8+)
$tipe = match ($ext) {
'jpg', 'jpeg', 'png' => 'gambar',
default => 'lainnya',
};
5) Kapan If_else Lebih Direkomendasikan Meski Ada Banyak Pilihan?
Pilih if-else saat kalian perlu membandingkan rentang nilai (misalnya 0 <= skor && skor < 60), menggabungkan beberapa kondisi dengan && atau ||, memanggil fungsi untuk validasi, atau ketika urutan logika memerlukan pengecekan langkah demi langkah yang tidak hanya berbasis kesetaraan nilai.
Kesimpulan
Switch Case pada PHP memudahkan penulisan logika bercabang saat nilai yang dibandingkan bersifat diskrit dan jumlah pilihannya banyak. Jika kalian memerlukan kondisi yang lebih fleksibel atau kompleks, if-else tetap menjadi pilihan yang tepat. Sekian artikel dari kodelyly.com, semoga bermanfaat dan membantu kalian menulis kode yang lebih bersih!