Pemrograman WEB. P4 Materi Alur Keputusan Switch Case cth1
Memahami Switch Case Pada PHP
Pada kesempatan kali ini kita akan membahas salah satu control structure yaitu switch case pada PHP. Kegunaan Switch Case sama dengan If Else dan Elseif pada PHP, perbedaan utama adalah switch case
ditulis sedemikian rupa sehingga dapat membandingkan nilai yang telah didefinisikan tanpa mengevaluasi kondisi, dengan karakter tersebut waktu eksekui switch case
lebih cepat dari pada if else
, contoh:
<?php $hari = 'Sabtu'; if ($hari == 'Senin') { echo 'Hari ini hari ' . $hari . ', semoga kembali fresh<br/>'; } else if ($hari == 'Kamis') { echo 'Hari ini hari ' . $hari . ', semoga masih semangat<br/>'; } else if ($hari == 'Sabtu') { echo 'Hari ini hari ' . $hari . ', selamat menjalani weekend<br/>'; } else { echo 'Hari ini hari ' . $hari . ' tetap semangat!!'; } switch ($hari) { case 'Senin' : echo 'Hari ini hari ' . $hari . ', semoga kembali fresh<br/>'; break; case 'Kamis' : echo 'Hari ini hari ' . $hari . ', semoga masih semangat<br/>'; break; case 'Sabtu' : echo 'Hari ini hari ' . $hari . ', selamat menjalani weekend<br/>'; break; default : echo 'Hari ini hari ' . $hari . ' tetap semangat!!'; } ?>
dari contoh diatas terlihat bahwa if else
akan mengevaluasi empat kondisi, yang jelas akan membuthkan waktu lebih lama dibanding switch case
. Meskipun dalam switch case
kita juga dapat menyertakan kondisi, namun hal tersebut tidak umum dan menurut saya lebih baik menggunnakan if else
karena kode akan lebih mudah difahami, berikut ini contoh penulisan switch case pada PHP dengan evaluasi kondisi:
<?php
$nilai = 9;
echo 'Nilai anda ';
switch (true)
{
case ($nilai >= 9) :
echo 'sangat baik <br/>';
break;
case ($nilai < 9 && $nilai >= 8) :
echo 'baik<br/>';
break;
case ($nilai < 8 && $nilai >= 6) :
echo 'cukup baik<br/>';
break;
default :
echo 'perlu ditingkatkan lagi';
}
?>
Penggunaan Break
Dalam switch case pada PHP, jika kita tidak menyertakan statement break
, maka PHP akan mengeksekui blok berikutnya sampai menemukan statement break
atau kurung tutup sebagai akhir dari switch statement, contoh:
<?php
$hari = 'Rabu';
switch ($hari)
{
case 'Senin' :
echo 'Hari ini hari ' . $hari . ', semoga kembali fresh<br/>';
break;
case 'Selasa' :
case 'Rabu' :
case 'Kamis' :
echo 'Hari ini hari ' . $hari . ', semoga masih tetap semangat<br/>';
break;
case 'Jumat' :
echo 'Hari ini hari ' . $hari . ', semoga weekend anda menyenangkan<br/>';
break;
}
?>
jika kita jalankan kode diatas, maka output yang dihasilkan adalah baris ke 11.
Standar dan Format Penulisan Switch Case Pada PHP
Menurut PSR-2 tentang Coding Style Guide dijelaskan beberapa ketentuan penulisan switch case pada PHP yaitu:
switch case
harus menggunakan kurung kurawa ({} – Curly Brackets), tidak boleh menggunakan semi colon (:);- Keyword
case
harus menjorok 1 indent (saya pribadi 1 x tab) dibanding keywordswitch
; - Dalam blok
case
, keywordbreak
harus ditulis lebih menjorok (panjang indent sama dengan indent pada keywordcase
), dan sejajar dengan statement diatas nya; - Jika tidak menggunakan break dan terdapat statement pada block
case
maka harus diberi comment yang menandakan bahwa block tersebut tidak menggunakan break.
jika diterjemahkan dalam bentuk kode, format penulisan switch case pada PHP disarankan seperti ini:
<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
// no break
case 2:
case 3:
case 4:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
?>
Catatan:
Menurut saya sepertinya format penulisan diatas belum mencakup kondisi jika switch case
tidak dihentikan menggunakan break tapi menggunakan return
misal ketika kita menggunakannya didalam fungsi,:
<?php
function namaBulan ($num)
{
switch ($num)
{
case 1: return 'Januari';
case 2: return 'Februari';
case 3: return 'Maret';
case 4: return 'April';
case 5: return 'Mei';
case 6: return 'Juni';
case 7: return 'Juli';
case 8: return 'Agustus';
case 9: return 'September';
case 10: return 'Oktober';
case 11: return 'November';
case 12: return 'Desember';
}
return 'error';
}
?>
Tips Penggunaan Switch Case Pada PHP
Pada kode yang panjang dan kompleks, selalu perhatikan penggunaan break
, karena sering terjadi output program tidak sesuai yang diharapkan karena tidak adanya statement break
, misal:
<?php
$nilai = 7;
$keterangan = 'Nilai anda ';
switch (true)
{
case ($nilai >= 9) :
$predikat = 'sangat baik <br/>';
break;
case ($nilai < 9 && $nilai >= 8) :
$predikat = 'baik<br/>';
break;
case ($nilai < 8 && $nilai >= 6) :
$predikat = 'cukup baik<br/>';
default :
$predikat = 'perlu ditingkatkan lagi';
}
echo $keterangan . $predikat;
?>
contoh diatas akan menghasilkan output “Nilai anda perlu ditingkatkan lagi” yang sebenarnya output yang diharapkan adalah “Nilai anda cukup baik”.
Cara/StrukturPenulisan Switch Case Pada PHP
Selain format sebagai mana contoh contoh di atas, terdapat cara lain dalam menuliskan switch case pada php, yang mungkin tidak familar, namun tidak salahnya untuk kita ketahui:
- Menggunakan colon
switch
tidak harus ditulis menggunakan kurung kurawa ({} – Curly Brackets) melainkan dapat menggunakan colon (:), contoh:<?php switch ($num): case 1: echo 'Bulan pertama'; break; case 12: echo 'Bulan terakhir'; break; default: echo 'Bulan lainnya'; endswitch; ?>
penggunaan colon ini mempermudah jika kode yang kita tulis panjang, seperti contoh pada artikel sebelumnya: Memahami If Else Dalam PHP (dan Elseif) bagian penulisan colon
- Menggunakan semicolon
Penulisan case dapat diikuti dengan semicolon (;) atau gabungan keduanya, tidak harus menggunakan colon, contoh:<?php switch ($num) { case 1; // Menggunakan semi colon echo 'Bulan pertama'; break; case 12: // Menggunakan colon echo 'Bulan terakhir'; break; default: echo 'Bulan lainnya'; } ?>
Demikian pembahasan kita mengenai switch case pada PHP, semoga bermanfaat.
Comments
Post a Comment