Fungsi Switch Case dalam PHP
Seperti pada bahasa pemrograman lainnya, PHP mendukung proses percabangan dengan menggunakan switch … case. Konsep dari fungsi ini sama seperti fungsi if, yang akan menjalankan suatu eksekusi berdasarkan kondisi yang diperiksa. Fungsi ini juga dapat melakukan proses pengontrollan untuk kondisi yang lebih dari 3 ekspresi. Meskipun fungsi if juga dapat melakukannya, namun akan menyebabkan script tersebut tidak mudah dikontrol.
Di bawah ini contoh penulisannya :
<?php switch ($kondisi/$expresi) { case "$kondisi1": $statement1; $break; case "$kondisi2": $statement2; break; case " ..." }
Kemudian contoh script sederhananya di bawah ini :
<?php $nilai1 = 100; $nilai2 = 150; $proses = "penjumlahan"; switch ($proses) { case "perkalian": $hasil = $nilai1 * $nilai2; break; case "penjumlahan": $hasil = $nilai1 + $nilai2; break; default: $hasil = "Error Tidak ada hasil"; break; } echo "Hasil $proses = " . $hasil; ?>
Outputnya :
Hasil penjumlahan = 250
Pada baris ke 5 mendefinisikan variabel $proses, lalu dimasukkan sebagai parameter fungsi switch, lihat baris 7. kemudian pada baris 9-15, dilakukan proses pemilihan yang disesuaikan dengan kondisi yang ditemukan pada case. Nah pada baris ke 15 penulisan default: itu adalah apabila tidak ada case yang terpenuhi maka akan dijalankan statement yang ada dalam default tersebut. Jangan lupa di setiap akhir statement case dan default harus diakhiri dengan break.
Selain itu kamu juga dapat menggunakan beberapa kasus menjadi satu solusi dengan mengabaikan sintaks break. Coba kamu perhatikan contoh di bawah ini :
<?php $data = 23.56; $tipedata = gettype($data); switch ($tipedata) { case "integer": case "double": $tipedata = "Bertipe bilangan"; $overloaddata = $data; break; case "boolean": $tipedata = "Bertipe data boolean"; if ($data) { $overloaddata = "True"; } else { $overloaddata = "False"; } break; case "string": $tipedata = "Bertipe data string"; $overloaddata = $data; break; } echo "\$data = $overloaddata <br />"; echo $tipedata; ?>
Output:
$data = 23.56
Bertipe bilangan
Pada baris 3 didefinisikan bilangan float, kemudian pada baris 4 mencari tipe data dari variabel $data dengan menggunakan fungsi gettype(). Kemudian variabel $data dimasukkan sebagai parameter fungsi switch(), selanjutnya akan dipilih berdasarkan kasus yang ada yaitu bertipe ‘integer’ atau ‘double’ karena dianggap sama oleh aplikasi sehingga pada baris 8 ‘integer’ tidak menggunakan statement dan break, namun akan menggunakan variabel dan statement yang sama dengan baris 9.
Lalu selain dapat menggunakan tipe string dalam case-nya, kamu juga dapat menggunakan angka atau bilangan. Perhatikan contoh di bawah ini:
<?php $nilaiakhir = 67.56; $nilaimahasiswa = round($nilaiakhir); switch($nilaimahasiswa) { case ($nilaimahasiswa > 95) : $nilaidalamangka = "A"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 94 && $nilaimahasiswa >= 90): $nilaidalamangka = "A-"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 89 && $nilaimahasiswa >= 85): $nilaidalamangka = "B+"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 84 && $nilaimahasiswa >= 80): $nilaidalamangka = "B"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 79 and $nilaimahasiswa >= 75): $nilaidalamangka = "B-"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 74 and $nilaimahasiswa >= 70): $nilaidalamangka = "C+"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 69 and $nilaimahasiswa >= 65): $nilaidalamangka = "C"; $statuskelulusan = "Lulus"; $keteranganstudi = "Lanjutkan Kuliah"; break; case ($nilaimahasiswa <= 64 and $nilaimahasiswa >= 60): $nilaidalamangka = "C-"; $statuskelulusan = "Tidak Lulus"; $keteranganstudi = "Boleh Melanjutkan Mata Kuliah "; $keteranganstudi .= "Bersyarat berikutnya"; break; case ($nilaimahasiswa <= 59 and $nilaimahasiswa >= 55): $nilaidalamangka = "D+"; $statuskelulusan = "Tidak Lulus"; $keteranganstudi = "Mengulang Tahun Depan"; break; case ($nilaimahasiswa <= 54 and $nilaimahasiswa >= 50): $nilaidalamangka = "D"; $statuskelulusan = "Tidak Lulus"; $keteranganstudi = "Mengulang Tahun Depan"; break; case ($nilaimahasiswa <= 49 and $nilaimahasiswa >= 45): $NilaiDalamgAngka = "D-"; $statuskelulusan = "Tidak Lulus"; $keteranganstudi = "Mengulang Tahun Depan"; break; case ($nilaimahasiswa < 45): $nilaidalamangka = "F"; $statuskelulusan = "Tidak Lulus"; $keteranganstudi = "Mengulang Tahun Depan"; break; } echo "Hasil Studi Mahasiswa : " . "<br ?>"; echo "Nilai Studi = " . $nilaimahasiswa; echo "<br />"; echo "Nilai Akhir = " . $nilaidalamangka; echo "<br />"; echo "Status Kelulusan = " . $statuskelulusan; echo "<br />"; echo "Keterangan Studi = " . $keteranganstudi; ?>
Output:
Hasil Studi Mahasiswa :
Nilai Studi = 68
Nilai Akhir = C
Status Kelulusan = Lulus
Keterangan Studi = Lanjutkan Kuliah
Pada baris 3-4 adalah proses pengambilan data dari nilai mahasiswa. Kemudian variabel $nilaimahasiswa dimasukkan sebagai parameter di fungsi switch() untuk dievaluasi kondisinya. Pada contoh kasus di atas yang diperiksa adalah bertipe integer dan memiliki range nilai, karena memiliki nilai 68 maka cocok kasus yang terpenuhi adalah pada baris 38 dimana kasusnya adalah jika nilai mahasiswa <= 69 dan nilai mahasiswa >= 65.
Nah sekarang sudah mengerti kan tentang fungsi switch case dalam php dan cukup mudah bukan.
Semoga bermanfaat.