Anda di halaman 1dari 10

STRUKTUR KONTROL

Struktur kontrol memungkinkan kita untuk melakukan tindakan di luar


alur default pengeksekusian program (yaitu dari atas ke bawah). Dengan menggunakan
struktur kontrol, kita bisa mengeksekusi sebagian kode program, dan tidak mengeksekusi
sebagian yang lain, misalnya: kita akan menampilkan string “lulus” jika variabel $nilai lebih
dari 70, dan kita akan menampilkan string “tidak lulus” jika nilainya di bawah itu?

Di dalam PHP, terdapat dua jenis struktur kontrol: yaitu logika percabangan, dan juga blok
kode perulangan.

Macam-Macam Percabangan Pada PHP

Untuk struktur kontrol percabangan pada PHP, terdapat beberapa macam. Ada if else,
ada switch case, dan ada ternary.

Percabangan If

Percabangan if adalah percabangan yang paling dasar. Tugasnya adalah memeriksa


nilai boolean atau sebuah ekspresi logika.

Jika suatu variabel atau suatu ekspresi logika bernilai true, maka proses yang ada di dalam
blok kode if akan dijalankan. Jika tidak, maka perintah/kode yang ada di dalam blok if tidak
akan dijalankan.

Contoh:

<?php
$lulus = true;

echo 'Memeriksa variable $lulus <br>';

if ($lulus) {
echo "Variabel lulus bernilai true <br>";
}

Kode 1: contoh sederhana penggunaan if

Coba anda ganti variabel $lulus pada Kode 1 di atas menjadi false, lalu jalankan lagi
programnya.
Pengecualian menggunakan else

Bagaimana jika ternyata kondisi yang didefinisikan di dalam if ternyata tidak terpenuhi alias
bernilai false?

Kita bisa menangani hal tersebut dengan membuat blok kode else. Kita ubah Kode 1 di atas
menjadi seperti berikut:

<?php

$nilai = 60;

echo 'Memeriksa variable $nilai <br>';


echo "Nilai: {$nilai} <br>";

if ($nilai >= 70) {


echo "Selamat, siswa !";
} else {
echo "Mohon maaf, siswa tidak lulus";
}

echo "<br>";

Kode 2: contoh sederhana penggunaan if dan else

Membuat lebih dari 1 kondisi dengan elseif

<?php

$nilai = 60;

echo 'Memeriksa variable $nilai <br>';


echo "Nilai: {$nilai} <br>";

if ($nilai >= 85) {


echo "Sangat mengesankan!";
} elseif ($nilai >= 70) {
echo "Selamat anda lulus!";
} else {
echo "Jangan menyerah, anda pasti bisa!";
}

echo "<br>";
Kode 3: contoh penggunaan if, else if dan else

Contoh Menampilkan Nilai Huruf Menggunakan If

Sebagai contoh, kita akan menampilkan peringkat huruf berdasarkan variabel $nilai. Kondisi
yang akan kita gunakan adalah seperti pada Tabel 1.

Rentang Nilai Peringkat Huruf


85-100 A
75-84 B
60-74 C
50-59 D
0-49 E

Tabel 1: pengkondisian peringkat huruf

Untuk membuat pengkondisian pada Tabel 1, setidaknya kita membutuhkan 5 buah


pengkondisian.

Berikut adalah contoh sederhana bagaimana cara mengimplementasi logika pada tabel 1.
Silakan coba dan praktikkan kode program berikut:

<?php

$nilai = 56;

echo "Nilai: {$nilai} <br>";

if ($nilai >= 85 and $nilai <= 100) {


echo "Predikat: A";
} elseif ($nilai >= 75) {
echo "Predikat: B";
} elseif ($nilai >= 60) {
echo "Predikat: C";
} elseif ($nilai >= 50) {
echo "Predikat: D";
} elseif ($nilai >= 0) {
echo "Predikat: E";
} else {
echo "Nilai tidak valid.";
}

echo "<br>"; # untuk membuat baris baru pada HTML


Kode 4: implementasi pengkondisian peringkat huruf dari table 1

Coba ubah isi dari variabel $nilai lalu refresh halaman web untuk memeriksa apakah
pengkondisian yang kita buat sudah benar atau tidak.

Hal-Hal yang dianggap true atau false

Ada beberapa hal di dalam bahasa pemrograman PHP yang dianggap true padahal ia bukan
tipe data boolean, dan juga ada beberapa hal yang dianggap false padahal ia bukan tipe
data boolean.

Apa saja? Berikut ini adalah beberapa di antaranya:

Bilangan numeric selain 0 dianggap true

Semua bilangan numeric selain 0, maka dianggap true. Ada pun variabel integer mau
pun float dengan nilai 0, maka ia dianggap false jika kita masukkan dalam kondisi if.

<?php
$nilai = 0;
if ($nilai) {
echo "nilai: {$nilai} dianggap true";
} else {
echo "nilai: {$nilai} dianggap false";
}

Kode 5: numeric bernilai 0 dianggap false dan selain itu maka dianggap true

Anda bisa mengganti isi dari variabel $nilai menjadi angka negatif mau pun positif dan lihat
seperti apa hasilnya.

String yang tidak kosong dianggap true

String kosong juga dianggap akan dianggap false, dan string yang tidak kosong akan dianggap
true.

Anda bisa mencoba kode program pada Kode 5 di bawah ini:

<?php
$nama = "";

if ($nama) {
echo "dianggap true";
} else {
echo "dianggap false";
}

Kode 5: string kosong dianggap false

Coba ganti isi dari variabel $nama menjadi nilai string yang lain, lalu lihat seperti apa hasilnya.

Nilai null dianggap false

Selain itu, nilai null juga dianggap false dalam PHP.

<?php

$nilai = null;

if ($nilai) {
echo "dianggap true";
} else {
echo "dianggap false";
}

if (@$namaLengkap) {
echo "Jika variabel namaLengkap telah didefinisikan sebelumnya dan ia bukan 0 atau
string kosong atau null";
} else {
echo "Jika variabel namaLengkap tidak pernah didefinisikan sebelumnya. Tanda @
membuatnya bernilai NULL jika belum didefinisikan sebelumnya";
}

Kode 6: nilai null dianggap false

Anda bisa memperhatikan dalam contoh Kode 6 di atas, terdapat tanda @ sebelum
variabel $namaLengkap. Tanda @ tersebut berfungsi untuk memberi nilai null terhadap
suatu variabel yang tidak pernah didefinisikan sebelumnya.

Ini membuat program kita tidak error, karena menampilkan atau menggunakan sebuah
variabel yang sebelumnya tidak pernah didefinisikan akan menyebabkan error.
Percabangan Switch Case

Percabangan yang kedua adalah switch .. case. Ini adalah alternatif yang bisa kita gunakan
untuk memecahkan permasalahan logika dalam PHP.

Akan tetapi, penggunaan switch .. case ditujukan untuk kasus-kasus yang lebih sederhana dari
pada if .. else.

Perhatikan Kode 7 berikut ini lalu praktikkan.

<?php

$url = '/about';

switch ($url) {
case '/':
echo 'Selamat datang di dashboard.';
break;
case '/about':
echo 'Selamat datang di halaman about.';
break;
case '/contact':
echo 'Selamat datang di halaman kontak.';
break;
default:
echo 'Maaf halaman yang anda cari tidak
ditemukan.';
}

echo '<br>';

Kode 7: contoh sederhana switch case

Coba ubah nilai dari variable $url pada Kode 7 di atas, lalu refresh halaman web. Dan lihat
apakah percabangan kita dengan switch case telah berfungsi dengan benar atau tidak.

Jika tanpa Break

Dalam blok kode switch .. case, kita harus menggunakan statement break. Karena kalau tidak,
setelah sistem berhasil menemukan case yang bernilai true, dia akan tetap
mengeksekusi case yang dibawahnya meskipun kondisinya sudah tidak sesuai lagi.

Coba hapus setiap perintah break pada Kode 7 hingga menjadi seperti pada Kode 8 berikut:
<?php

$url = '/about';

switch ($url) {
case '/':
echo 'Selamat datang di dashboard.';
case '/about':
echo 'Selamat datang di halaman about.';
case '/contact':
echo 'Selamat datang di halaman kontak.';
default:
echo 'Maaf halaman yang anda cari tidak
ditemukan.';
}

echo '<br>';

Kode 8: menghapus statement break pada switch .. case

Jalankan halaman web, lalu perhatikan apa yang terjadi.

Switch Case tidak bias digunakan untuk Menampilkan Nilai Huruf seperti pada contoh
diatas menggunakan if else, Karena switch ... case hanya menerima satu variabel saja, dan ia
hanya mengeksekusi setiap case dengan nilai yang sesuai, sehingga tidak bisa membuat case
dengan sebuah ekspresi logika.

Sehingga untuk menerapkan logika pengkondisian pada Tabel 1, kita harus menggunakan if
... else.
Ternary

Ternary adalah cara singkat mendefinisikan logika percabangan. Ia mirip dengan if


else (tanpa elseif).

Dan ternary didefinisikan hanya dalam satu baris saja.

Misal kita punya blok if else seperti ini:

<?php

$nilai = 50;

if ($nilai > 70) {


echo "Selamat, anda lulus!";
} else {
echo "Mohon maaf, anda harus mengulang";
}

echo "<br>";

Kode 9: contoh if else

Maka anda bisa mengubahnya seperti ini:

<?php

$nilai = 50;

echo $nilai > 70 ? "Selamat, anda lulus!" : "Mohon


maaf, anda harus mengulang";

Kode 10: contoh sederhana penggunaan ternary

Ternary lebih singkat dibandingkan el if, karena hanya perlu tanda ? dan tanda :.

Kita juga bisa menggunakannya untuk mengisi sebuah nilai ke dalam variabel seperti
pada Kode 10 berikut:

<?php

$nilai = 50;

$pesan = $nilai > 70 ? "Selamat, anda lulus!" : "Mohon


maaf, anda harus mengulang";
Kode 10: contoh sederhana penggunaan ternary untuk pengisian variabel

Null Colleasing Operator

Operator null colleasing didefinisikan dengan simbol ?? dan ?:. Ia adalah operator yang
digunakan untuk memeriksa antar dua operan: jika operan pertama tidak null atau tidak
dianggap false, maka ia akan dipilih. Jika tidak, maka operan ke dua yang akan dipilih.

Intinya, dengan operator ini, anda bisa menyingkat statement tenary berikut:

<?php

echo @$namaPeserta ? $namaPeserta : "Nama tidak


diisi";

Menjadi:

<?php

echo @$namaPeserta ?: "Nama tidak diisi";

program diatas menjadi lebih singkat lagi.

Kapan harus menggunakan if, switch case, atau ternary?

Kapan harus menggunakan if?

Ketika kita memiliki logika yang cukup rumit. Melibatkan lebih dari satu variabel atau
juga membutuhkan ekspresi logika yang panjang, maka gunakanlah if.

Kapan harus menggunakan ternary?

Ketika kita memiliki blok if sederhana yang hanya terdiri dari if dan else saja, kita bisa
menggunakan ternary untuk mengubah kode anda menjadi lebih singkat.

Kapan harus menggunakan switch .. case?

Kita bisa menggunakan switch case jika cabang pengkondisian anda hanya melibatkan
satu variabel saja dan tidak mengandung operator logika semisal lebih dari ( >) atau
kurang dari (<) dan sebagainya.
Kesimpulan

Struktur kontrol memungkinkan kita untuk melakukan tindakan di luar


alur default pengeksekusian program: yaitu dari atas ke bawah. Dengan menggunakan
struktur kontrol, kita bisa mengeksekusi sebagian kode program, dan tidak mengeksekusi
sebagian yang lain.

Di dalam PHP, terdapat dua jenis struktur kontrol: yaitu logika percabangan, dan juga blok
kode perulangan.

Untuk logika percabangan, terdapat dua jenis utama: yaitu if .. else dan switch .. case. Juga
ada alternatif lain seperti ternary dan null colleasing operator sebagai alternative lainnya.

Anda mungkin juga menyukai