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:

  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.

Comments

Popular posts from this blog

P CRUD

Pemrograman WEB. P4 Materi Logika Percabangan IF cth3

Pemrograman WEB. P4 Materi Logika Percabangan IF cth1