Pada tutorial kali ini, kita akan belajar mengenai percabangan yang ada pada bahasa pemrograman PHP. Sesuai dengan namanya, percabangan ini berfungsi untuk membuat alur program menjadi bercabang.
Berikut contoh flowchart dan program tanpa percabangan :
Flowchart tersebut apabila diterjemahkan kedalam bahasa pemrograman PHP, maka seperti berikut :
<?php $nilai=100; echo "Nilai Siswa ".$nilai." diatas 75"; ?>
Pada flowchart di atas, program langsung membuat variabel $nilai berisi 100 kemudian menampilkannya.
Berikut contoh flowchart dan program dengan percabangan :
Flowchart tersebut apabila diterjemahkan kedalam bahasa pemrograman PHP, maka seperti berikut :
<?php $nilai=70; if($nilai>=75) { echo "Nilai Siswa ".$nilai." diatas 75"; } else { echo "Nilai Siswa ".$nilai." dibawah 75"; } ?>
Terlihat bedanya karena lebih panjang, pada ilustrasi di atas terdapat pengecekan. Jika variabel nilai berisi lebih dari atau sama dengan 75, maka program akan menampilkan tulisan “Nilai Siswa 100 diatas 75“. Sedangkan, jika variabel nilai kurang dari 75, misal 60 maka output dari program tersebut adalah “Nilai Siswa 60 dibawah 75“.
Itu adalah contoh yang paling sederhana dari blok percabangan pada bahasa pemrograman. Pada praktiknya, kita bisa saja membuat program yang memiliki banyak sekali percabangan, bahkan hingga ratusan ataupun ribuan blok percabangan.
Untuk dapat menggunakan blok percabangan pada PHP dan bahasa pemrograman lain ada beberapa pilihan, yaitu:
- if
- if else
- if elseif
- if elseif else
- switch case
- operator ternary
Dengan menguasai hal di atas, kita dapat membuat program yang memiliki blok percabangan.
1. Percabangan if
if adalah penulisan percabangan yang paling sederhana. Struktur dasar untuk penulisan pada program seperti berikut :
<?php $nilai = 100; if($nilai>=75) { echo "Nilai Siswa ".$nilai." diatas 75"; } ?>
Hasil dari kode program di atas yaitu seperti ini :
Hampir mirip dengan ilustrasi flowchart di atas, namun sedikit berbeda. Bedanya adalah jika $nilai kurang dari 75, maka program tidak akan menampilkan apapun.
Blok percabangan memiliki beberapa istilah di dalamnya, yaitu:
-
- kondisi, dalam contoh ini $nilai>=75 adalah sebuah kondisi
- statement, semua yang berada di dalam kurung kurawal adalah statement
Jadi, prinsip dasar if adalah jika kondisi bernilai benar (true), maka statement di dalamnya akan dijalankan. Untuk membungkus statement, diperlukan kurung kurawal. Jika tidak menggunakan kurung kurawal, maka hanya 1 statement saja yang masuk ke dalam blok if (1 statement adalah 1 baris sebelum titik koma).
2. Percabangan if else
Sebenarnya if else ini sangatlah mirip dengan if, hanya saja jika pada if tanpa else, ketika kondisi bernilai salah maka program tidak menampilkan sesuatu. Jika pada if else, program akan melakukan sesuatu yang berbeda jika kondisi bernilai salah. Contoh flowchart dan kode programnya adalah seperti ini :
<?php $nilai=60; if($nilai>=75) { echo "Nilai Siswa ".$nilai." diatas 75"; } else { echo "Nilai Siswa ".$nilai." dibawah 75"; } ?>
Output :
Jadi, ketika $nilai lebih dari atau sama dengan 75, misal 90 program akan menampilkan tulisan “Nilai Siswa 90 diatas 75”. Sedangkan jika $nilai kurang dari 75, misal 60 maka program akan mengeksekusi statement dari blok else, yaitu menampilkan tulisan “Nilai Siswa 60 dibawah 75”.
3. Percabangan if else if
Jika pada if else kita tidak memerlukan kondisi pada blok else, lain halnya dengan if else if. Jika kondisi pada if bernilai salah, maka program akan melakukan pengecekan pada blok else if. Contoh flowchart dan kode programnya adalah seperti ini :
<?php $nilai=70; if($nilai>=75) { echo "Nilai Siswa ".$nilai." diatas 75"; } else if($nilai>=60) { echo "Nilai Siswa ".$nilai." dibawah 75 dan diatas 60"; } ?>
Output :
Misal kita berikan $nilai = 70, maka program akan melakukan pengecekan pada block if, apakah $nilai>=75. Ternyata, $nilai<75 sehingga menghasilkan nilai false. Otomatis, statement pada block if tidak akan dijalankan.
Kemudian, program akan mengecek pada block else if, apakah $nilai>=60. Hasilnya benar (true) karena $nilai bernilai 70 sehingga output dari program adalah “Nilai Siswa “.$nilai.” dibawah 75 dan diatas 60”. Tapi, jika $nilai berisi 90, maka perintah else if tidak akan dijalankan karena if sudah bernilai true.
Kita juga dapat menggunakan beberapa else if sekaligus seperti pada contoh di bawah :
<?php $nilai=55; if($nilai>=80) { echo "Nilai: A"; } else if($nilai>=60) { echo "Nilai: B"; } else if($nilai>=50) { echo "Nilai: C"; } ?>
Output :
Alurnya juga sama, program akan melakukan pengecekan pada if, kemudian jika bernilai salah maka program akan mengecek elseif yang pertama. Jika benar, maka program tidak akan mengecek block percabangan tersebut. Jika salah, maka program akan mengecek else if yang selanjutnya.
4. Percabangan if else if else
Konsep dasarnya sama dengan 3 jenis percabangan sebelumnya, yaitu mengecek dari atas ke bawah. Untuk penggambaran flowchart dan penulisan sintaksnya kurang lebih seperti ini :
<?php $nilai=45; if($nilai>=80) { echo "Nilai: A"; } else if($nilai>=60) { echo "Nilai: B"; } else if($nilai>=50) { echo "Nilai: C"; } else { echo "Nilai: D"; } ?>
Hasil dari sintaks di atas seperti ini :
Pada program di atas kita berikan $nilai = 45, maka program akan melakukan pengecekan pada block if, apakah $nilai>=85. Ternyata, $nilai<80 sehingga menghasilkan nilai false. Otomatis, statement pada block if tidak akan dijalankan.
Kemudian, program akan mengecek pada block else if yang pertama, apakah $nilai>=60, ternyata $nilai<60 sehingga menghasilkan nilai false. Otomatis, statement pada block else if yang pertama tidak akan dijalankan.
Kemudian, program akan mengecek pada block else if yang kedua, apakah $nilai>=50, ternyata $nilai<50 sehingga menghasilkan nilai false. Otomatis, statement pada block else if yang kedua tidak akan dijalankan.
Karena $nilai berisi 45, sehingga pada statement if, else if pertama dan else if kedua tidak memenuhi syarat atau bernilai false, maka statement yang akan dijalankan yang berada pada block else sehingga output dari program adalah “Nilai : D”.
5. Percabangan switch case
Pada kesempatan kali ini kita akan membahas salah satu percabngan 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 eksekusi switch case lebih cepat dari pada if else.
Bentuk dasarnya adalah seperti berikut :
switch (expression) { case label1: statement 1; break; case label2: statement 2; break; default: statement 3; }
Aturan Penulisan Switch Case pada PHP
-
- Logika Switch diawali dengan perintah switch, pada bagian switch kita dapat menuliskan variabel yang akan diperiksa nilainya.
- Block switch berada diatara kurung kurawal pembuka dan penutup setelah perintah switch
- Setiap kemungkinan kondisi yang terjadi dituliskan dengan perintah case lalu diikuti dengan kemungkinan nilai dari variabel yang ditulis di bagian switch
- Penulisan case diakhiri dengan tanda titik dua ( : ), dapat juga menggunakan tanda kurung buka dan tutup jika dibutuhkan
- Jika nilai pada case sesuai dengan nilai variabel pada switch, maka statement akan dijalankan
- Perintah break diakhir dari setiap statement digunakan untuk keluar dari alur switch.
- Perintah default digunakan untuk menjalankan statement jika case-case yang ditulis sebelumnya masih bernilai FALSE. Jika dalam logika IF, fungsi default sama dengan ELSE.
- Keyword case harus menjorok 1 indent/tab dibanding keyword switch
- Dalam blok case, keyword statement dan break harus ditulis lebih menjorok (panjang indent/tab sama dengan indent/tab pada keyword case), dan sejajar dengan statement diatas nya
contoh :
<?php $hari = 'Sabtu'; 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!!'; } ?>
Output :
5. Percabangan Ternary
Ternary merupakan salah satu operator pada bahasa pemrograman, baik bahasa pemrograman PHP maupun bahasa pemrograman lainnya. Selain sebagai operator, ternary juga termasuk percabangan. Struktur dasar penulisan operator ternary seperti berikut :
<?php [kondisi] ? [jika benar] : [jika salah]; ?>
Contoh penerapan ternary seperti berikut :
<?php $nilai = 90; echo $nilai >= 80 ? "Nilai: A" : "Nilai: Bukan A"; ?>
Hasil dari siyntax di atas seperti ini :
Dari program di atas kita buat dulu variabel $nilai berisi 90, lalu di line 3 kita akan mengecek apakah $nilai lebih dari atau sama dengan 80. Jika iya, maka output akan menampilkan “Nilai: A”. Tapi, jika $nilai<80, maka akan menampilkan tulisan “Nilai: Bukan A”. Kita juga bisa menulis ternary seperti ini :
<?php $nilai = 90; $hasil = $nilai > 80 ? "A" : "Bukan A"; echo "Nilai: ".$hasil; ?>
Kita sudah membahas blok percabangan mulai dari yang sederhana seperti if, sampai switch case maupun ternary. Percabangan ini sangatlah penting ketika kita membuat sebuah program, untuk itu kita perlu paham materi ini. Sekarang, kita akan membahas tentang pengembangan dari beberapa percabangan di atas.
Percabangan Tingkat Lanjut
Jika tadi kita sudah belajar if, sekarang kita akan menggunakan if di dalam if atau if bersarang (nested if). Berikut contoh programnya :
<?php $nilai= 60; //nilai akhir $presensi = 12; //jumlah presensi siswa di satu pelajaran if($nilai>80) { if($presensi>=10) //jika maksimal tidak masuk 2x { $hasil = "A"; } else { $hasil = "D"; } } elseif($nilai>60) { if($presensi>=10) { $hasil = "B"; } else { $hasil = "D"; } } else { if($presensi>=10) { $hasil = "C"; } else { $hasil = "D"; } } echo "Nilai Akhir: ".$hasil; ?>
Hasil dari program di atas yaitu seperti ini :
Blok percabangan itu mudah jika kita paham konsep dasar if else, kode di atas tidaklah rumit. Kita hanya perlu latihan dengan ngoding dan melihat langsung hasilnya.
Demikian materi mengenai percabangan/decision, semoga bermanfaat.