SELEKSI DAN PERULANGAN
Sebuah program akan dijalankan berurutan dari baris pertama hingga terakhir. Dalam
penerapannya dimungkinkan ada baris yang tidak dikerjakan karena suatu kondisi
atau ada baris program yang dikerjakan berkali-kali sesuai dengan alur programnya.
Untuk itu dibutuhkan statement kontrol.
10.1. if()
if merupakan salah satu bentuk fitur yang sangat penting dalam banyak bahasa
pemrograman, termasuk PHP. Dengan if dimungkinkan untuk mengeksekusi
statement maupun kumpulan statement yang memenuhi sebuah kondisi. PHP
memiliki struktur if yang mirip dengan Bahasa C.
Bentuk struktur if
if (expr)
statement
expr atau expression dievaluasi dengan nilai Boolean. Jika expression bernilai TRUE
(benar) maka PHP akan mengeksekusi statement tersebut dan kebalikannya jika
bernilai FALSE (salah) maka PHP akan mengabaikannya.
Contoh pada Gambar 10.1 akan menampilkan x lebih besar dari y jika variabel $x
lebih besar dari variabel $y
Gambar 10.1 Statement if
Jika dijalankan akan menghasilkan tampilan seperti pada Gambar 10.2 yang
memberikan peringatan bahwa variabel x dan y belum didefinisikan.
Gambar 10.2 Tampilan if
Untuk itu program diubah dengan mendefinisikan variabel x dan y seperti pada
Gambar 10.3
Gambar 10.3 if dengan x dan y yang didefinisikan
Hasil dari program tersebut dapat dilihat pada Gambar 10.4
Gambar 10.4 Tampilan hasil if dengan x dan y yang didefinisikan
Seringkali statement yang dikerjakan setelah kondisi terpenuhi lebih dari satu, oleh
karena itu statement-statement tersebut dikelompokkan menjadi satu dengan
menggunakan tanda kurung kurawal buka ({) dan tutup (}) seperti pada Gambar
10.5
Gambar 10.5 if dengan statement lebih dari satu
else
Seringkali kita ingin mengeksekusi statement jika kondisi tertentu terpenuhi, dan
statement yang berbeda jika kondisi tidak terpenuhi, untuk itu dibutuhkan else.
Modifikasi script dengan menggunakan else seperti pada Gambar 10.6
Gambar 10.6 statement else
Akan menghasilkan tampilan seperti pada Gambar 10.5 jika nilai x lebih besar dari
y dan tampilan seperti Gambar 10.7 jika kondisi sebaliknya.
Gambar 10.7 statement dalam else dikerjakan
elseif / else if
merupakan kombinasi dari if dan else, dapat dilihat pada Gambar 10.8
Gambar 10.8 statement elseif
jika x lebih besar dari y maka tampilan akan seperti pada Gambar 10.4 sedangkan
jika nilai x sama dengan nilai y maka hasilnya akan seperti Gambar 10.9 dan jika
nilai x lebih kecil dari y maka tampilan akan seperti Gambar 10.10
Gambar 10.9 tampilan ketika nilai x sama dengan nilai y
Gambar 10.10 tampilan jika nilai x lebih kecil dari y
nested if (if bersarang)
statement if dapat memiliki statement if di dalamnya sehingga disebut nested if
atau if bersarang seperti pada Gambar 10.11 dengan hasil tampilan seperti pada
Gambar 10.12
Gambar 10.11 nested if
Gambar 10.12 Tampilan hasil nested if
10.2. switch()
Statement switch mirip dengan serangkaian statement if dengan expression yang
sama. Pada beberapa kasus dibutuhkan untuk membandingkan variabel maupun
expression dengan banyak nilai berbeda kemudian mengeksekusi statement
berbeda untuk setiap nilainya, untuk inilah statement switch digunakan.
Bentuk statement switch
switch ($var) {
case label1:
statement1;
break;
case label2:
statement2;
break;
...
[default:]
statementdefault;
}
$var merupakan variabel yang akan dicocokkan dengan label pada setiap cabang
case, kemudian statement break digunakan untuk keluar dari statement switch
dan statement default yang bersifat opsional dan berlaku seperti else pada
statement if. Label pada case dapat berupa angka maupun text.
Jika tidak menggunakan statement break, maka statement pada label berikutnya
akan ikut dieksekusi. Seperti yang telah disebutkan sebelumnya statement switch
mirip dengan serangkaian statement if, dapat dilihat pada Gambar 10..13 dan
hasilnya akan seperti pada Gambar 10.14
Gambar 10.13 Statement if dan switch dengan kasus yang sama
Gambar 10.14 Tampilan hasil if dan switch
Contoh pada Gambar 10.15 menggunakan label berbentuk text dengan hasil
yang dapat dilihat pada Gambar 10.16
Gambar 10.15 Statement switch dengan label text
Gambar 10.16 Tampilan hasil switch dengan label text
Gambar 10.17 Statement switch tanpa break
Tampilan pada Gambar 10.17 adalah statement switch tanpa break di case 1 dan
2, sehingga jika dijalankan akan menghasilkan tampilan seperti Gambar 10.18
Gambar 10.17 Tampilan hasil switch tanpa break
Jika nilai x pada baris 2 di listing program Gambar 10.16 diubah menjadi angka 2,
maka akan menghasilkan tampilan seperti pada Gambar 10.18
Gambar 10.18 Tampilan hasil switch dengan modifikasi nilai x
Statement default digunakan seperti else pada if, statement sesudah default
akan dieksekusi ketika label pada case tidak ditemukan, seperti pada Gambar
10.19 dengan nilai x adalah 10 maka tidak ditemukan pada label yang disiapkan
pada case sehingga akan mengeksekusi statement setelah default. Statement
break bersifat opsional disini sehingga boleh tidak digunakan. Hasil dari script
tersebut dapat dilihat pada Gambar 10.20
Gambar 10.19 Statement switch dengan default
Gambar 10.20 Tampilan hasil statement switch dengan default
10.3. Perulangan for()
PHP memiliki beberapa statement untuk perulangan, salah satunya adalah for()
Bentuk statement for:
for (expr1; expr2; expr3)
statement
Untuk mencetak text sebanyak 5 kali dapat dilakukan dengan cara seperti Gambar
10.21 dengan hasil yang terlihar di Gambar 10.22
Gambar 10.21 Mencetak text sebanyak 5 kali dengan statement echo
Gambar 10.22 Tampilan hasil mencetak text
Untuk melakukan hal yang sama dapat dilakukan dengan menggunakan statement
for seperti pada Gambar 10.23, dengan tampilan hasil yang sama dengan Gambar
10.22.
Gambar 10.23 Mencetak text dengan statement for
Statement for() dapat menggunakan expression dengan lengkap seperti pada
Gambar 10.23 maupun dengan tanpa expression seperti pada Gambar 10.24.
Ketiga statement for akan menghasilkan tampilan yang sama dengan Gambar
10.22.
Ketika menggunakan 2 expression maka diperlukan statement kontrol dan break
untuk mengetahui kapan perulangan harus selesai seperti pada baris 10 – 12.
Jika menggunakan statement for() tanpa expression maka diperlukan inisialisasi
untuk expression 1 seperti pada baris 17, kemudian statement kontrol untuk
berhenti (baris 19-21) dan statement untuk increment/decrement (baris 23).
Gambar 10.24 Kombinasi statement for dengan expression
10.4. Perulangan while()
Statement berikutnya yang dapat digunakan untuk perulangan adalah statement
while() dengan bentuk:
while (expr)
statement
statement akan dikerjakan jika expression bernilai TRUE.
Untuk menghasilkan hal yang sama dengan tampilan Gambar 10.22 dapat
dilakukan dengan statement while() seperti Gambar 10.25
Gambar 10.25 Statement while untuk pencetakan
10.5. Perulangan do while()
Statement perulangan do while mirip dengan statement while, perbedaannya
adalah pengecekan nilai expression nya dilakukan diakhir. Sehingga perulangan
dengan menggunakan do while akan minimal satu kali dikerjakan.
Bentuk statement do while()
do {
statement
} while (expr)
Untuk menghasilkan keluaran seperti Gambar 10.22 dapat dilakukan dengan
menggunakan statement do while seperti pada Gambar 10.26
Gambar 10.26 Statement do while untuk pencetakan
Perbedaan dengan do while adalah ketika nilai awalnya diberikan tidak sesuai,
seperti pada Gambar 10.27 maka script akan tetap mencetak satu kali seperti
tampilan Gambar 10.28
Gambar 10.27 Statement do while dengan merubah inisialisasi awal
Gambar 10.28 Tampilan hasil statement do while
10.6. Alternatif Syntax
PHP menyediakan penulisan alternative untuk struktur kontrol yaitu: if, while, for,
foreach dan switch. Bentuk dasar dari penulisan alternative adalah dengan
mengganti tanda kurung kurawal buka ({) dengan tanda titik dua (:) dan tanda
kurung kurawal tutup (}) dengan endif;, endwhile;, endfor;, endforeach;,
endswitch;
Alternatif syntax untuk if dapat dilihat pada Gambar 10.29 dengan hasil tampilan
seperti pada Gambar 10.30
Gambar 10.29 Alternatif syntax statement if
Gambar 10.30 Tampilan hasil alternatif syntax if
Alternatif syntax untuk if else dapat dilihat pada Gambar 10.31 serta tampilan
hasil seperti pada Gambar 10.32
Gambar 10.31 Tampilan alternatif syntax if else
Gambar 10.32 Tampilan hasil alternatif syntax if else
Alternatif syntax untuk statement switch dapat dilihat pada Gambar 10.33 dengan
hasil tampilan seperti pada Gambar 10.20
Gambar 10.33 Alternatif syntax statement switch
Alternatif syntax untuk statement while dapat dilihat pada Gambar 10.34 dengan
hasil tampilan seperti pada Gambar 10.22
Gambar 10.34 Alternatif syntax statement while
Alternatif syntax untuk statement for dapat dilihat pada Gambar 10.35 dengan
hasil tampilan seperti pada Gambar 10.22
Gambar 10.35 Alternatif syntax statement for
Rangkuman
Struktur Kontrol digunakan untuk pengontrolan dalam kode program
PHP menyediakan struktur kontrol antara lain: if, if else, switch, for, while, do
while
PHP memiliki penulisan alternatif untuk struktur kontrol
Latihan
1. Buat script untuk menginput Nilai Tugas, Nilai UTS, Nilai UAS kemudian Hitung
Nilai Akhir dan Konversi Grade-nya.
Nilai Tugas, Nilai UTS dan Nilai UAS rentangnya adalah 0 -100
Nilai Akhir = 30% Nilai Tugas + 30% Nilai UTS + 40% Nilai UAS
Perhitungan Grade didapat dari rentang Nilai Akhir berdasarkan tabel berikut:
Nilai Akhir Grade
85 - 100 A
80 - <85 A-
75 - <80 B+
70 - <75 B
65 - <70 B-
60 - <65 C
45 - <60 D
0 - <45 E
2. Buat script menggunakan for, while dan do while untuk menginputkan angka
kemudian mencetak seperti contoh tampilan berikut:
Input Angka: (misal diinputkan 5, maka hasilnya adalah)
1
12
123
1234
12345
3. Berdasarkan soal No.1 buat script untuk menginputkan 5 nilai mahasiswa
(Tugas, UTS, UAS) kemudian hitung Nilai Akhir dan Grade kemudian tampilkan
sbb:
Nilai Rata-Rata: …
Nilai Akhir Tertinggi: …
Nilai Akhir Terendah: …
Jumlah Mahasiswa Lulus: … (Grade A/A-/B+/B/B-/C)
Jumlah Mahasiswa Tidak Lulus: … (Grade D/E)