Pada kesempatan kali ini kita akan mempelajari dan membahas tentang salah satu control flow yaitu if else pada PHP, pembahasan meliputi statement if, else dan elseif, beserta contoh dan struktur penulisannya.
I. IF Else Pada PHP
Seperti pada terjemahan harfiah nya, if berarti jika, maka, jika kondisi yang dievaluasi bernilai TRUE, maka blok statement if akan dijalankan, sebaliknya statement ELSE yang akan dijalankan
Jika digambarkan dalam sebuah flow chart, maka alur logika if else pada PHP atau bahasa pemrograman lain adalah sebagai berikut:
II. Struktur Penulisan If Else Pada PHP
Struktur penulisan if else pada php dapat dibagi menjadi 3, yaitu
- Menggunakan kurung kurawa:
if ( ekspresi ) { statement }
- Menggunakan colon:
if ( ekspresi ) statement endif
- Tidak menggunakan keduanya:
if ( ekspresi ) statement
diantara ketiga cara penulisan tersebut, penggunaan kurung kurawa yang paling sering digunakan.
Contoh:
1. Menggunakan Kurung Kurawa (Braces)
if ($nilai > 8) {
echo 'Sangat Baik';
} else {
echo 'Baik';
}
2. Menggunakan Colon
if ($nilai > 8):
echo 'Sangat Baik';
else:
echo 'Baik';
endif;
3. Tanpa Menggunakan Keduanya
if ($nilai > 8)
echo 'Sangat Baik';
else
echo 'Baik';
4. Menggunakan Elseif
// Dengan Braces
if ($nilai >= 9) {
echo 'Sangat Baik';
} else if ($nilai < 9 && $nilai >= 7) {
echo 'Baik';
} else if ($nilai < 7 && $nilai >= 5) {
echo 'Sedang';
} else {
echo 'Kurang';
}
// Dengan Colon
if ($nilai >= 9):
echo 'Sangat Baik';
elseif ($nilai < 9 && $nilai >= 7):
echo 'Baik';
elseif ($nilai < 7 && $nilai >= 5):
echo 'Sedang';
else:
echo 'Kurang';
endif;
Disamping itu juga terdapat cara singkat untuk menuliskannya yaitu menggunakan ternary operator (?:) yang pembahasannya dapat diikuti pada artikel: Penulisan If Else Pada PHP Dengan Ternary Operator ?:
III. Hal Hal Yang Perlu Diperhatikan
1 If yang hanya terdiri dari SATU statement dapat ditulis tanpa kurung kurawal maupun colon
Statement If dapat berdiri sendiri, tidak harus digabungkan dengan else atau elseif, dan jika hanya terdiri dari SATU statement, maka dapat ditulis tanpa braces atau colon. Contoh:
$nilai = 7;
if ($nilai > 8)
echo 'Sangat Baik';
echo 'Baik';
Contoh diatas akan menghasilkan kata “Baik”, karena setelah melakukan evaluasi pada ekspresi ($nilai > 8
) statement if
hanya akan membaca baris echo 'Sangat Baik';
sedangkan baris berikutnya, yaitu: echo 'Baik';
merupakan script PHP biasa, bukan bagian dari statement if
Contoh Lain:
<?php
$nilai = 9;
// Sangat Baik
if ($nilai > 8) echo 'Sangat Baik';
/*
Sangat Baik
Baik
*/
if ($nilai > 8)
echo 'Sangat Baik<br/>';
echo 'Baik';
// Sangat Baik
if ($nilai > 8) { echo 'Sangat Baik'; }
?>
2 Elseif atau Else If?
Ketika menulis if else pada PHP, kita bebas menggunakan keyword elseif
atau else if
(dengan pemisah spasi), TAPI perlu diperhatikan bahwa jika kita menggunakan colon ( :
) maka kita HARUS menggunakan elseif
bukan else if
, jika tidak, maka akan muncul pesan error. Contoh:
$nilai = 7;
if ($nilai >= 9):
echo 'Sangat Baik';
elseif ($nilai < 9 && $nilai >= 7):
echo 'Baik';
elseif ($nilai < 7 && $nilai >= 5):
echo 'Sedang';
else:
echo 'Kurang';
endif;
3 Keuntungan Menggunakan Colon ( : )
Manfaat penggunaan colon salah satunya adalah ketika kode yang kita tulis panjang hingga di editor perlu di scroll kebawah, maka akan memudahkan kita mengidentifikasi akhir dari statement if
, karena penutupnya menggunakan endif;
dibanding hanya sekedar kurung tutup ( }
) terlebih jika kode yang kita tulis merupakan kombinasi antara kode HTML dan PHP.
Contoh:
<?php
foreach ($posts as $post):
if ($post['id'] == 2):?>
<h1 class="post-title"><?=$post['title']?></h1>
<p class="post-content"><?=$post['content']?></p>
<div class="comments-container">
<ul>
<?php
foreach ($comment[$post['id']] as $comment):
if ($comment['publish'] == 3)
continue;
?>
<li>
<p class="comment-title"><?=$comment['title']?></p>
<p class="comment-content"><?$comment['content']?></p>
</li>
<?php
endforeach?>
</ul>
</div>
<?php
endif;
endforeach;
4 Apakah bracess dan colon dapat digabungkan?
Ketika menulis statement if else pada php, salah satu yang perlu diperhatikan adalah bahwa kita tidak dapat menggabungkan kurung kurawal dan colon dalam SATU statement if
, sekali menggunakan colon harus diselesaikan dengan kolon, begitu sebaliknya dengan kurung kurawal. contoh:
<?php
$nilai = 9;
$perilaku = 8
// Error
if ($nilai >= 9) :
echo 'Sangat Baik';
else {
echo 'Sedang';
}
// Benar
if ($nilai >= 9) :
if ($perilaku >= 9) {
echo 'Sangat Baik';
} else {
echo 'Baik';
}
else :
echo 'Sedang';
endif;
?>
IV. Standar Penulisan
Standar penulisan if else pada php seperti yang direkomendassikan oleh FIG (Framework Interoperability Group) dalam PSR-2 (PHP Standar Recomendation) adalah:
<?php
if ($expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}
Contoh:
if ($a != 2 && $a > 0) {
$a = 2;
} else {
$a = 7;
}
Penjelasan:
- Gunakan
elseif
bukanelse if
- Gunakan kurung kurawal (braces) bukan titik dua (colon)
- Statement ditulis TEPAT satu baris dibawah ekspresi
- Perhatikan penggunaan spasi, terutama pada penulisan ekspresi, pisahkan variabel, operator pembanding, dan value dengan spasi, misal
($a != 2 && $a > 0)
, hal ini ditujukan agar kode lebih mudah dibaca.
Rekomendasi ini sebaiknya diterapkan, namun jika diperlukan silakan gunakan sesuai kebutuhan misal untuk penggunaan colon, selain itu beberapa developer lebih suka menggunakan pola seperti ini:
<?php
if ($expr1)
{
// if body
}
elseif ($expr2)
{
// elseif body
}
else
{
// else body;
}
kurung buka ditulis satu baris dibawah keyword dan statement ditulis dua baris dibawah keyword, hal ini akan lebih memperjelas pemisah antar keyword dan statement terutama jika kode yang kita tulis kompleks.
V. Tips Bermanfaat
Berikut beberapa tips yang saya ketahui tentang penulisan if else pada php:
- Dalam penulisan ekspresi dahulukan ekspresi yang menggunakan dan (&&), karena jika kondisi tersebut bernilai FALSE, maka php tidak mengevaluasi ekspresi berikutnya, disamping akan mempercepat eksekusi kode, juga merupakan kebiasaan yang baik untuk dilakukan. Contoh berikut saya modifikasi dari artikel sebelumnya Membuat Segitiga, Persegi dan Motif dengan PHP For Loop:
<?php if ( $col > $onequarter && ( $col <= $threequarters || $row > $onequarter || $row <= $threequarters ) ) { $char = '<span style="color:#CCC">'.$char.'</span>'; } ?>
pada contoh diatas, jika ekspresi
$col > $onequarter
bernilai FALSE, maka PHP tidak akan mengevaluasi ekspresi lainnya, melainkan langsung melewati statementif
(if
tidak dikerjakan). - Jika menggunakan
elseif
terlalu banyak, pertimbangkanlah untuk menggunakanswitch case
, karena disamping eksekusi kode lebih cepat, logika kode juga lebih mudah dipahami dan perbaikan kode menjadi lebih mudah.
Demikian pembahasan menganai if else pada PHP, semoga bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com
8 Feedback dari pembaca
terimakasih, sangat membantu
sangat membantu nice
bang kalo masukin field nilai di kolom terus hasil misal grade otomatis keluar di kolom lain itu kodingannya bagaimana yak
Itu pakai form HTML atau bagaimana mas?
Bang, jika ada tabel yang 1 cellnya berisikan if else condition, namun hasil yang di keluarkan menginginkan sebuah gambar muncul.. itu bagaimana ya? sebelumnya terima kasih.
Maksudnya bagaimana ya mas? kalau untuk gambar tinggal menggunakan elemen HTML img
Mas.. Logikanya gni… “Jika kd_register di tabel register sama dengan kd_register di tabel pembayaran sama maka hasilnya lunas” Gimana ya kode php nya?
Bisa coba langsung diquerynya mas, pakai logic di SQL nya, mungkin seperti ini
SELECT IF(r.kd_register = p.kd_register, “LUNAS”, “BELUM LUNAS”)
FROM register AS r
LEFT JOIN pembayaran AS p USING(id_user)