ffCCBot/2.0 (http://commoncrawl.org/faq/)
Update: 12-09-2015

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:

  1. switch case harus menggunakan kurung kurawa ({} – Curly Brackets), tidak boleh menggunakan semi colon (:);
  2. Keyword case harus menjorok 1 indent (saya pribadi 1 x tab) dibanding keyword switch;
  3. Dalam blok case, keyword break harus ditulis lebih menjorok (panjang indent sama dengan indent pada keyword case), dan sejajar dengan statement diatas nya;
  4. 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:

  1. 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

  2. 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.

Recomended Post

Like Us

Dapatkan update artikel terbaru via E-Mail
  1. Memahami dan Menampilkan Tanggal dan Waktu Pada PHP
  2. Menghitung Selisih Waktu Dengan PHP – Cara Termudah
  3. Memahami Fungsi Date Pada PHP
  4. Memahami Fungsi Time, Strtotime, dan Mktime Pada PHP – Memanipulasi Waktu
  5. Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHP
  6. Setting ODBC MySQL Untuk Gammu
  7. Cara Install dan Menggunakan Gammu di Windows
  8. Format Tanggal Indonesia Dengan PHP
  9. Cara Install MySQL Portable Zip File di Windows – Panduan Lengkap
  10. Memahami Statemen Return Pada PHP