Memahami If Else Pada PHP (dan Elseif)

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:

If Else Pada PHP Serta Elseif - Flowchart

II. Struktur Penulisan If Else Pada PHP

Struktur penulisan if else pada php dapat dibagi menjadi 3, yaitu

  1. Menggunakan kurung  kurawa:  if ( ekspresi ) { statement }
  2. Menggunakan colon:  if ( ekspresi ) statement endif
  3. 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 bukan else 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:

  1. 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 statement if (if tidak dikerjakan).

  2. Jika menggunakan elseif terlalu banyak, pertimbangkanlah untuk menggunakan  switch 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

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

8 Feedback dari pembaca

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com