Tutorial Belajar PHP Part 31: Cara Penulisan Struktur Logika IF ELSE IF

Masih tentang kondisi percabangan kode program dengan perintah IF, kali ini akan kita bahas bentuk yang lebih kompleks, yakni kondisi IF ELSE IF dalam bahasa pemrograman PHP. Struktur ini tidak lain terdiri dari gabungan beberapa kondisi IF ELSE yang saling bersambung.


Pengertian Struktur If Else If Bahasa PHP

Struktur IF ELSE IF adalah percabangan logika lanjutan dari IF. Dengan IF ELSE IF, kita bisa buat kode program untuk menyeleksi berbagai kemungkinan. Berikut contoh penggunaannya:

<?php
$a = 15;
$b = 8;

if ($a > $b) {
  echo "a lebih besar daripada b";
} 
elseif ($a == $b) {
  echo "a sama besar dengan b";
} 
else {
  echo "a lebih kecil daripada b";
}
?>

Dalam kode ini saya membuat program sederhana untuk membandingkan 2 angka. Kondisi if pertama akan melakukan pemeriksaan apakah $a > $b, jika hasilnya false, maka masuk ke if kedua (ditulis dengan elseif) apakah $a == $b, dan hanya jika hasilnya false, maka dapat dipastikan $a < $b.

Jika anda bertanya apa perbedaan if dengan elseif, jawabnya terletak di efisiensi pemrosesan. Contoh diatas bisa juga kita buat tanpa menggunakan elseif sebagai berikut:

<?php
$a = 15;
$b = 8;

if ($a > $b) {
  echo "a lebih besar daripada b";
} 
if ($a == $b) {
  echo "a sama besar dengan b";
} 
else {
  echo "a lebih kecil daripada b";
}
?>

Perhatikan kode program pada baris ke-9, saya mengganti elseif menjadi if.

Perbedaannya adalah, untuk contoh tanpa if ini seluruh kondisi akan dijalankan walaupun sebenarnya tidak perlu. Jika $a=15 dan $b=8, maka kondisi if pertama akan terpenuhi ($a > $b), dan harusnya kita ingin program PHP keluar dari if. Namun karena perintah selanjutnya juga if, maka PHP tetap memeriksa apakah ($a == $b).

Lain halnya jika memakai perintah elseif, maka ketika sebuah kondisi telah dipenuhi, PHP tidak perlu melakukan pemeriksaan terhadap kondisi if lain.


Aturan Penulisan Struktur ELSE-IF dalam PHP

Dalam PHP, kita bisa menulis struktur ELSE-IF sebagai elseif, maupun else if (dipisah dengan spasi). Kedua bentuk ini dianggap sama.

Berikut format dasar penulisan ELSE-IF PHP:

<?php
if (expression) {
  statement1;
} 
elseif {
  statement2;
}
else {
  statement3;
}
?>

PHP tidak membatasi berapa banyak struktur ELSE-IF di dalam kode program, sehingga kita bisa bebas ingin memakainya untuk memecahkan masalah yang lebih kompleks.


Cara Penulisan Alternatif Struktur ELSE-IF

Selain memakai tanda kurung kurawal sebagai awal dan akhir else if, PHP menyediakan cara penulisan alternatif. Berikut format dasar penulisannya:

<?php
if (expression) :
  statement1;
  statement2;
elseif (expression):
  statement3;
else
  statement4;
endif
?>

Untuk cara penulisan ini, kita tidak bisa memisah penulisan ELSE-IF menjadi else if, tetapi harus ditulis menyatu sebagai elseif:

<?php
$a = 15;
$b = 8;

if ($a > $b):
  echo "a lebih besar daripada b";
else if ($a == $b):  // akan menghasilkan error
  echo "a sama besar dengan b";
else:
  echo "a lebih kecil daripada b";
endif;
?>

Kode program diatas baru berhasil dieksekusi jika diubah menjadi:

<?php
$a = 15;
$b = 8;

if ($a > $b):
  echo "a lebih besar daripada b";
elseif ($a == $b):
  echo "a sama besar dengan b";
else:
  echo "a lebih kecil daripada b";
endif;
?>

Struktur IF ELSE IF ini menjadi salah satu struktur terpenting dalam pemrograman. Selain itu, PHP masih menyediakan struktur percabangan lain, yakni switch. Pembahasan terkait materi ini akan kita bahas dalam tutorial PHP selanjutnya: Cara Penulisan Struktur Logika Switch dalam PHP.

Saat ini di Duniailkom tersedia eBook / buku PHP Uncover dan OOP PHP Uncover. Materi di kedua buku ini jauh lebih detail daripada tutorial PHP di web Duniailkom. Penjelasan lebih lanjut bisa ke: PHP Uncover dan OOP PHP Uncover.

13 Comments

  1. idris
    10 Aug 15
    • Andre
      10 Aug 15
  2. Tri Utomo
    15 Jan 16
    • Andre
      15 Jan 16
  3. fatur
    23 Feb 16
    • Andre
      24 Feb 16
  4. Nadang
    23 Aug 16
  5. Rudi
    22 Jul 17
    • noval
      25 Jul 17
      • Andre
        25 Jul 17
  6. zaki
    30 Jan 18
    • Andre
      30 Jan 18
  7. Anonymous
    16 Nov 23

Add Comment