Tutorial PHP Dasar
Percabangan Dengan Switch Case
Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.
Kita masuk ke contoh kasus percabangan lainnya. Misalnya kita hendak menuliskan nilai kuliah untuk mahasiswa, yang terdiri dari huruf A hingga E. Setiap huruf merepresentasikan keterangan, seperti A adalah Sangat Baik, B adalah Baik, dan seterusnya. Kita akan membuat script, dimana kita diberikan nilai dalam bentuk huruf A sampai E, dan kita harus menuliskan keterangan dari nilai tersebut di layar. Untuk menyelesaikan soal ini, kita akan menggunakan percabangan bersarang.
Kita langsung praktek coding. Pertama kita buat dahulu variable $grade untuk menampung nilai, misalnya nilai awal adalah ‘A’. Nantinya script kita akan menuliskan kata ‘Sangat Baik’ sebagai output. Kalau nilai $grade kita ganti menjadi ‘B’ dan seterusnya, maka script kita harus menuliskan keterangan yang sesuai dengan tabel soal yang kita lihat tadi. Bagi teman-teman yang mau mencoba untuk mengerjakan soal ini, bisa pause video ini terlebih dahulu dan kerjakan di komputer masing-masing.
Sekarang kita coba kerjakan ya. Kita gunakan percabangan dengan kata kunci if. Kondisinya adalah apakah nilai $grade sama dengan ‘A’. Apabila benar, maka kita echo ‘Sangat Baik’. Sedangkan bila salah, maka kita echo ‘Baik’.
Kita coba ya. Kalau nilai awal $grade adalah ‘A’, maka hasil script adalah ‘Sangat Baik’. Sesuai dengan soal. Kalau kita ganti nilai awal menjadi ‘B’, maka hasil script adalah ‘Baik’. Sampai disini masih sesuai soal. Kalau kita ganti lagi nilai awal menjadi ‘C’, maka hasil script masih tetap ‘Baik’. Padahal seharusnya kita menampilkan kata ‘Cukup’.
Apa yang terjadi disini? Kalau kita lihat lagi ke percabangan kita, maka semua nilai selain ‘A’, dianggap sebagai ‘Baik’. Jadi semua nilai B, C, D, dan E adalah ‘Baik’. Bagaimana cara memperbaikinya? Pada kata kunci else, kita harus memeriksa lagi apakah nilai adalah ‘B’. Jadi setelah else, kita tambahkan lagi if($grade == ‘B’), setelah itu baru mencetak ‘Baik’.
Kalau kita coba lagi, maka pada nilai ‘A’ kita mencetak Sangat Baik. Nilai ‘B’ Baik. Sedangkan nilai C dan lainnya tidak mencetak sama sekali, karena kita belum menulis kode untuk nilai lainnya.
Nah, khusus untuk bahasa pemograman PHP, kalau kita ingin menulis else if seperti ini, maka kata kuncinya boleh dipisah dan boleh digabung. Jadi kita boleh menulisnya sebagai else spasi if. Atau elseif dalam satu kata. Keduanya tetap benar dan berfungsi seperti biasa. Kalau saya pribadi akan menuliskan else if terpisah ya.
Kode dari else if ini kita copy paste lagi sebanyak 3 kali, karena kita hendak membuat kondisi untuk nilai C, D dan E. Kita ubah nilai pada kodenya agar sesuai table ya. Untuk kondisi C, kita tulis “Cukup”. Untuk kondisi D, “Kurang”. Dan yang terakhir kondisi E adalah “Gagal”.
Sebenarnya kode kita sudah cukup sampai disini. Namun ada baiknya kita menambah lagi kata kunci else, untuk semua nilai diluar dari huruf A hingga E. Kode else akan dijalankan apabila nilai awal yang diberikan adalah salah. Sebagai isi dari else, kita tulis saja “Error”.
Oke. Selanjutnya kita tes script kita ya. Berhubung kita sudah mengetahui kode kita melakukan percabangan dari huruf ‘A’ hingga ‘E’, maka kita perlu mencoba tes untuk semua jenis input. Tes seperti ini dinamakan White Box Testing. Hal seperti ini penting untuk dibiasakan, terutama sejak pertama kali belajar pemograman. Walaupun isi percabangan hanya satu baris echo, namun bisa saja terjadi salah ketik atau typo sehingga memberikan hasil yang tidak diinginkan. Jadi sekarang kita tes ya, mulai dari ‘A’ hingga ‘E’ dan kita juga mencoba huruf ‘Z’ sebagai huruf diluar kelima nilai.
Script sudah memberikan hasil sesuai dengan soal. Namun yang perlu diperhatikan disini adalah nilai $grade bersifat case sensitif. Berhubung yang kita jadikan kondisi disini adalah huruf besar, maka kita tidak bisa menggunakan huruf kecil. Sebagai contoh, kalau kita beri nilai awal huruf a kecil, maka hasilnya adalah error.
Kita sudah berhasil mengerjakan soal dengan menggunakan percabangan if. Namun untuk kondisi percabangan seperti ini, ada sintaks yang lebih baik, yaitu menggunakan kata kunci switch dan case. Switch bisa digunakan disini karena semua kondisi percabangan membandingkan satu buah variable yang sama, yaitu variable $grade. Dan operator yang digunakan adalah operator perbandingan sama dengan. Switch tidak bisa digunakan apabila variable yang dibandingkan berbeda, atau apabila kita menggunakan operator perbandingan lain seperti lebih besar, lebih kecil, atau bahkan perbandingan identik.
Ini adalah sintaks dari percabangan dengan menggunakan Switch. Pertama kita sebutkan kata kuncinya switch diikuti oleh nama variable dalam tanda kurung. Setelah itu kurung kurawal pembuka dan penutup.
Di dalamnya kita tulis kata kunci case diikuti oleh nilai dari variable tersebut. Apabila ternyata nilai variable sesuai dengan case, maka kita menjalankan statement yang berada di dalam case. Perhatikan bahwa setelah case tidak perlu menggunakan kurung kurawal. Semua kode yang berada setelah case akan dijalankan hingga ketemu kata break. Kalau kita hendak memeriksa nilai kedua, kita tinggal mulai lagi case baru, dan diakhiri oleh break. Bagian terakhir dari switch adalah default, yang kita isi dengan instruksi kalau nilai variable tidak ada yang sesuai dengan seluruh case.
Kita praktek coding. Kita akan menulis ulang kode if diatas ini dengan menggunakan sintaks switch. Variable yang akan diperiksa adalah variable $grade. Case yang pertama adalah huruf ‘A’. Perintah yang dijalankan adalah echo ‘Sangat Baik’ lalu garis baru. Sebagai tanda selesai kita tulis break. Lalu kita copy dan paste sebanyak 5 kali ya. Kita ganti ke nilai ‘B’ ‘Baik’, nilai ‘C’ ‘Cukup’, nilai ‘D’ ‘Kurang’, nilai ‘E’ ‘Gagal’. Dan yang terakhir adalah default, kita tulis ‘Error’.
Kita coba tes. Hasilnya error ya. Karena nilai variable $grade adalah huruf ‘a’ kecil. Kita ganti dulu menjadi huruf ‘A’ besar. Dan sekarang tulisannya adalah ‘Sangat Baik’. Tulisannya ada 2 karena yang pertama kita menulis dengan menggunakan sintaks if. Sedangkan tulisan kedua adalah hasil dari sintaks switch. Teman-teman bisa mencoba sendiri untuk nilai lainnya, yang penting disini adalah sintaks if dan switch harus memberikan hasil yang sama.
Ada beberapa hal yang unik dari sintaks switch. Yang pertama adalah kalau kita lupa menuliskan kata break, maka kode yang dijalankan akan bablas ke case berikutnya. Sebagai contoh, misalnya break pada nilai ‘B’ kita hapus. Kemudian kita ubah nilai $grade menjadi ‘B’. Maka tulisan yang keluar adalah ‘Baik’ dan ‘Cukup’. Jadi berhubung pada case ‘B’ tidak ada break, maka kode pada case ‘C’ juga turut dijalankan.
Trik lainnya adalah kita bisa membuat beberapa case melakukan hal yang sama. Misalkan kita mau ubah agar nilai ‘B’ dan ‘C’ sama-sama mengeluarkan kata ‘Cukup’. Maka kita bisa menghapus kode setelah case ‘B’. Jadi tulisan case ‘B’: langsung diikuti oleh case ‘C’:. Artinya nilai ‘B’ dan ‘C’ akan menjalankan kode yang sama. Kalau kita coba, maka nilai ‘B’ dan ‘C’ pada switch sama-sama menghasilkan tulisan ‘Cukup’.
Kita kembalikan kode ke yang benar ya. Nah, pada saat belajar If, kita ada mempelajari sintaks alternatif. Pada switch juga terdapat sintaks alternatif. Kita copy paste dahulu kode switch ya.
Pada switch yang bawah, kita akan menggunakan sintaks alternatif. Caranya adalah kita ubah kurung kurawal pembuka menjadi tanda :. Sedangkan kurung kurawal penutup kita ganti menjadi kata kunci endswitch. Kita coba jalankan. Kita mendapatkan hasil yang sama sebanyak 3 buah ya. Yang pertama menggunakan if, yang kedua menggunakan switch dan yang ketiga menggunakan switch alternatif. Teman-teman bisa mencoba sendiri hasil dari nilai grade lainnya.
Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.
Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.