Sulhi.id

Catatan Kecil Seputar Blogging dan Koding

Statement Kontrol Kondisional (IF dan Switch) di PHP

Tuesday, October 15th, 2019     Programming

Statement Kontrol sangat penting dan akan sering digunakan. Karena dengan statement ini kita bisa mengontrol aliran program/script. Dalam programming terdapat 2 jenis statement kontrol yaitu:

  1. Statement Kontrol Kondisional (Bersyarat).
  2. Statement Kontrol Perulangan (looping).

Dalam PHP, terdapat dua buah statement kontrol yang termasuk statement kontrol kondisional, yaitu IF dan SWITCH. Sedangkan yang termasuk statement kontrol perulangan adalah: FOR, WHILE, DO WHILE dan FOREACH.

Pertemuan kali ini, kita akan memfokuskan pada pembahasan statement kontrol kondisional (Bersyarat). Statement kontrol kondisional adalah statement kontrol yang digunakan untuk mengatur kapan suatu perintah akan dijalankan. Dengan statement ini kita bisa mengatur kapan suatu perintah akan dijalankan, yaitu ketika telah dipenuhinya suatu syarat tertentu.

STATEMENT KONTROL IF

Statement kontrol IF atau bisa juga disebut Logika IF (Pengandaian/Bersyarat). Untuk memudahkan pemahaman tentang Logika IF, saya akan ilustrasikan dengan sebuah pernyataan dalam kehidupan sehari-hari, misalnya peryataan sebagai berikut:

Jika sore ini hujan,
maka saya akan menghabiskan waktu di rumah.

 Pernyataan di atas mengandung sebab akibat. Bila Anda lihat, keterangan ‘sore ini hujan’ adalah merupakan suatu syarat. Apa akibatnya bila syarat tersebut terpenuhi? Ya… ‘saya akan menghabiskan waktu di rumah’. Dengan demikian, ‘saya akan menghabiskan waktu di rumah’ ini hanya akan dilakukan apabila syaratnya terpenuhi atau ‘sore ini hujan’.

Dalam dunia logika, istilah ‘terpenuhinya suatu syarat’ dapat dikatakan sebagai ‘syarat tersebut bernilai BENAR atau TRUE’. Nah… bentuk pernyataan ‘jika… maka…’ pada contoh di atas dapat diadopsi dalam programming. Untuk menyatakan pernyataan tersebut dalam programming, khususnya PHP, kita bisa menggunakan statement kontrol IF.

Adapun sintaks atau aturan penulisan IF nya adalah sebagai berikut:

if (syarat)
{
    statement;
}

Operator Relasional

Terkadang untuk menyatakan suatu syarat, kita menggunakan operator pembanding atau relasional. Hasil penggunaan operator relasional ini akan diperoleh nilai BENAR atau SALAH. Berikut ini beberapa operator relasional yang dapat digunakan:

SIMBOL MAKNA
 Lebih kecil dari
 Lebih besar dari
>=  Lebih besar atau sama dengan
<=  Lebih kecil atau sama dengan
==  Sama dengan
!=  Tidak sama dengan

 

Perhatikan contoh penggunaan operator relasional pada statement IF berikut ini:

<?php
   $bil = 10;
   if ($bil > 5)
   {
    echo "Bilangan lebih besar dari 5";
   }
?>

Pada script di atas, nilai dari variabel $bil adalah 10. Selanjutnya terdapat statement IF yang di dalamnya terdapat syarat: jika nilai $bil lebih besar dari 5, maka tampilkan teks ‘Bilangan lebih besar dari 5’. Dalam hal ini syarat bernilai BENAR, karena 10 > 5. Karena syarat bernilai BENAR, maka perintah echo “Bilangan lebih besar dari 5“; akan dijalankan.

Namun, coba perhatikan contoh script berikut ini:

<?php
  $bil = 10;
  if ($bil == 5)
  {
     echo "Bilangan sama dengan 5";
  }
?>

Pada script di atas, syarat bernilai SALAH, karena 10 tidak sama dengan 5. Dengan demikian perintah echo "Bilangan sama dengan 5"; tidak akan dijalankan.

Operator Logika

Dalam pemrograman PHP, terdapat beberapa operator logika yang bisa digunakan:

 OPERATOR   MAKNA
&& AND
|| OR
! NEGASI

 

Sedangkan berikut ini tabel kebenaran dari masing-masing operator.

Tabel hasil operasi logika AND

OPERAND 1 OPERAND 2 HASIL
BENAR BENAR BENAR
BENAR SALAH SALAH
SALAH BENAR SALAH
SALAH SALAH SALAH

Tabel hasil operasi logika OR

OPERAND 1 OPERAND 2 HASIL
BENAR BENAR BENAR
BENAR SALAH BENAR
SALAH BENAR BENAR
SALAH SALAH SALAH

Tabel hasil operasi logika NEGASI (NOT)

OPERAND HASIL
BENAR SALAH
BENAR SALAH
SALAH BENAR
SALAH BENAR

 

Contoh penggunaan operator logika:

<?php
  $hobi = "makan";
  if (($hobi == "makan") || ($hobi == "ngemil"))
  {
     echo "Awas… jangan banyak-banyak, ntar kebanyakan kolesterol.<br />";
     echo "Serta banyak olahraga ya…";
  }
?>

Pada script di atas, nilai $hobi adalah “makan”, sedangkan untuk syarat terdapat dua keadaan yaitu $hobi == “makan” serta $hobi == “ngemil”. Diantara kedua keadaan tersebut terdapat operator OR. Keadaan pertama dalam hal ini bernilai BENAR sedangkan keadaan kedua bernilai SALAH. Sehingga apabila kita lihat tabel kebenaran, BENAR OR SALAH dihasilkan BENAR. Dengan demikian syarat bernilai BENAR dan akibatnya perintah echo “Awas… jangan banyak-banyak, ntar kebanyakan kolesterol”; akan dijalankan.

Bentuk IF ELSE

Selain bentuk IF di atas, terdapat pula bentuk IF seperti di bawah ini:

if (syarat) 
{ 
   statement 1 
}
else 
{ 
   statement 2 
}

Bentuk if IF di atas, statement 1 akan dijalankan apabila nilai ‘syarat’ adalah BENAR. Sedangkan bila ‘syarat’ bernilai SALAH maka yang dijalankan adalah statement 2.

Contoh script:

<?php
   $bil = 10;
   if ($bil == 10)
   {
      echo "Bilangan sama dengan 10";
   }
   else
   {
      echo "Bilangan tidak sama dengan 10";
   }
?>

Script di atas akan menampilkan “Bilangan sama dengan 10“.  Coba test apa yang terjadi kalau variable $bil nilainya diganti dengan angka selain 10. Teks yang akan ditampilkan tentu saja “Bilangan tidak sama dengan 10”.

Bentuk IF .. ELSE IF.. ELSE…

Dengan perintah IF ELSE, kita bisa membuat persyaratan lebih dari dua. Berikut cara penulisannya:

if (syarat 1)
{
   Statement 1;
}
else if (syarat 2)
{
   Statement 2
}
else if (syarat 3)
{
   Statement 3
}
.
.
else 
{
   Statement X
}

Pada bentuk IF di atas, Statement 1 akan dijalankan apabila ‘syarat 1’ bernilai BENAR. Jika ‘syarat 1’ bernilai SALAH, maka akan dicek ‘syarat 2’. Jika ‘syarat 2’ BENAR maka akan dijalankan Statement 2, begitu seterusnya. Dan apabila ternyata tidak ada satupun syarat yang terpenuhi, barulah Statement X akan dikerjakan.

Contoh Script (Mengkonversi nilai angka ke huruf).

Misalkan pada suatu universitas menerapkan kebijakan konversi dari nilai angka ke huruf sebagai berikut:

Nilai Angka Nilai Huruf
80 s/d 100   A
70 s/d 79     B
60 s/d 69     C
50 s/d 59     D
0 s/d 49       E

Dalam hal ini, nilai angka yang diberikan 0 s/d 100. Dengan kata lain, konversi ke nilai huruf ini akan dilakukan apabila nilai angkanya 0 s/d 100. Untuk itu, dalam script yang akan dibuat terlebih dahulu akan dilakukan pengecekan apakah nilai yang diberikan 0 s/d 100 atau tidak.

STATEMENT KONTROL SWITCH

SWITCH termasuk statement yang dapat dipergunakan untuk menyatakan suatu pernyataan kondisional atau bersyarat seperti halnya IF.

Adapun sintaks secara umum statement SWITCH dalam PHP adalah sebagai berikut:

switch (var)
{
case value1 : statement A
.
.
break;
case value2 : statement B
.
.
break;
case value3 : statement C
.
.
break;
.
.
default : statement D
.
.
}

Maksud dari sintaks di atas adalah: dalam hal ini nilai yang ada pada variabel (’var’) akan dicek. Diantara value – value yang ada sebagai pilihan, dalam hal ini value1, value2, value3, … dst manakah yang sesuai dengan value yang dimiliki oleh ‘var’. Misalkan nilai var = value1, maka blok yang ada di statement A lah yang dijalankan. Bila nilai var = value2, maka blok statement B yang akan dijalankan. Namun bila tidak ada value yang cocok, maka barulah blok yang ada dibagian DEFAULT (statement D) yang akan dijalankan.

Penggunaan DEFAULT pada SWITCH adalah optional. Kita bisa untuk tidak memberikan DEFAULT jika memang tidak diperlukan.

Apabila kita perhatikan dari konsep SWITCH, maka kita bisa menyimpulkan bahwa proses pengecekan atau pengujian persyaratan yang terjadi hanyalah proses perbandingan dalam bentuk ’sama dengan’ atau ‘==’.

SWITCH tidak bisa digunakan untuk kondisional yang di dalamnya terdapat proses perbandingan seperti ‘lebih besar dari’, ‘lebih kecil dari’, ‘lebih kecil atau sama dengan’, ‘lebih besar atau sama dengan’ dan ‘tidak sama dengan’. Melihat hal ini memang penggunaan statement IF untuk menyatakan kondisional lebih fleksibel daripada SWITCH.

Apakah berarti SWITCH tidak lebih efektif daripada IF ? Tentu tidak. Ada kelebihan pada penggunaan SWITCH. Berikut ini kelebihannya:

  1. Dalam SWITCH, persyaratan hanya diuji sekali saja. Diantara sekian pilihan value, secara otomatis PHP akan menjalankan blok dimana valuenya cocok. Proses pencarian value yang cocok ini tidak dimulai dari pilihan value paling atas namun secara otomatis langsung menuju value yang cocok.
  2. Pada IF.. ELSE syarat diuji beberapa kali. Proses pengujian dimulai dari syarat IF paling atas, jika tidak terpenuhi dicek dibagian IF bawahnya dst. Akibatnya, apabila script Anda sangat kompleks atau banyak menggunakan pernyataan kondisional, penggunaan SWITCH akan menghasilkan proses yang lebih cepat daripada IF.

Contoh penggunaan SWICTH misalnya bagaimana menampilkan nama bulan sekarang (current month) dalam bahasa Indonesia.

 Langkah pertama, kita harus tahu bulan sekarang. Untuk mengetahui nama bulan sekarang, kita bisa menggunakan function date(“n”) dalam PHP. Function tersebut akan menghasilkan bilangan bulat 1-12 yang mencerminkan angka bulan sekarang.

Langkah kedua, dari angka bulan yang telah diperoleh tersebut selanjutnya kita nyatakan ke dalam bahasa Indonesia. Bagaimana menyatakannya? Caranya kita gunakan logika seperti ini: Jika angka bulan sama dengan 1, maka nama bulannya ‘Januari’. Jika angka bulan sama dengan 2, maka bulannya ‘Pebruari’ dan seterusnya.

Script PHP untuk menampilkan nama bulan dalam bahasa Indonesia adalah sbb:

Script PHP untuk menampilkan nama hari dalam bahasa Indonesia adalah sbb:

LATIHAN

1. Mencari Bilangan Terbesar dari 3 Bilangan

script1.php

<html>
<head>
  <title>Mencari Bilangan Terbesar dari 3 Bilangan</title>
</head>
<body>
<h1>Mencari Bilangan Terbesar dari 3 Bilangan</h1>

<form method="post" action="script1proses.php">
<table>
  <tr><td>Masukkan bilangan ke-1</td><td>:</td><td><input type="text" name="bil1"></td></tr>
  <tr><td>Masukkan bilangan ke-2</td><td>:</td><td><input type="text" name="bil2"></td></tr>
  <tr><td>Masukkan bilangan ke-3</td><td>:</td><td><input type="text" name="bil3"></td></tr>  
</table>
<input type="submit" name="submit" value="Submit"><input type="reset" name="reset" value="Hapus">
</form>

</body>
</html>

script1proses.php

<html>
<head>
  <title>Mencari Bilangan Terbesar dari 3 Bilangan</title>
</head>
<body>
<h1>Mencari Bilangan Terbesar dari 3 Bilangan</h1>

<?php

$bilangan1 = $_POST['bil1'];  // membaca input bilangan pertama
$bilangan2 = $_POST['bil2'];  // membaca input bilangan kedua
$bilangan3 = $_POST['bil3'];  // membaca input bilangan ketiga

// cara ke - 1
// idenya adalah mencari bilangan x yang terbesar dari bil 1 dan bil2. lalu x dibandingkan dengan bilangan ke-3. Jika x > dari bil 3, maka x adalah max dari semua bilangan. Jika tidak, maka bil 3 sbg max nya 

if ($bilangan1 > $bilangan2) $maxSementara = $bilangan1;
else $maxSementara = $bilangan2;

if ($bilangan3 > $maxSementara) $maxAkhir = $bilangan3;
else $maxAkhir = $maxSementara;

echo "<p>Nilai maksimum dari ".$bilangan1.", ".$bilangan2.", dan ".$bilangan3." adalah : ".$maxAkhir."</p>";

// cara ke - 2
// idenya adalah langsung membandingkan masing-masing bilangan dengan bilangan yang lain.
// misal: jika bil 1 > bil2 dan bil 1 > bil 3, maka max adalah bil 1.

if (($bilangan1 > $bilangan2) && ($bilangan1 > $bilangan3)) $maxAkhir = $bilangan1;
else if (($bilangan2 > $bilangan1) && ($bilangan2 > $bilangan3)) $maxAkhir = $bilangan2;
else if (($bilangan3 > $bilangan1) && ($bilangan3 > $bilangan2)) $maxAkhir = $bilangan3;

echo "<p>Nilai maksimum dari ".$bilangan1.", ".$bilangan2.", dan ".$bilangan3." adalah : ".$maxAkhir."</p>";

// cara ke - 3
// idenya hampir sama dengan cara ke- 1, tapi tidak dengan mencari max sementara.

if ($bilangan1 > $bilangan2)
{
   if ($bilangan1 > $bilangan3) $maxAkhir = $bilangan1;
   else $maxAkhir = $bilangan3;
}
else
   {
      if ($bilangan2 > $bilangan3) $maxAkhir = $bilangan2;
	  else $maxAkhir = $bilangan3;   
   }

echo "<p>Nilai maksimum dari ".$bilangan1.", ".$bilangan2.", dan ".$bilangan3." adalah : ".$maxAkhir."</p>";   
   
?>

</body>
</html>

2. Mencari Status Bilangan

script2.php

<html>
<head>
  <title>Mencari Status Bilangan</title>
</head>
<body>
<h1>Mencari Status Bilangan</h1>

<form method="post" action="script2proses.php">
Masukkan sebuah bilangan <input type="text" name="bil">
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

script2proses.php

<html>
<head>
  <title>Mencari Status Bilangan</title>
</head>
<body>
<h1>Mencari Status Bilangan</h1>

<?php

$bilangan = $_POST['bil'];

// cara ke - 1

if ($bilangan > 0) echo "<p>Bilangan ".$bilangan." adalah positif</p>";
else if ($bilangan < 0) echo "<p>Bilangan ".$bilangan." adalah negatif</p>";
else echo "<p>Bilangan ".$bilangan." adalah nol</p>";

// cara ke - 2

if ($bilangan > 0) $status = "positif";
else if ($bilangan < 0) $status = "negatif";
else $status = "nol";

echo "<p>Bilangan ".$bilangan." adalah bilangan ".$status."</p>";

?>

</body>
</html>

3. Operasi Bilangan

script3.php

<html>
<head>
  <title>Operasi Bilangan</title>
</head>
<body>
<h1>Operasi Bilangan</h1>

<?php

if ($_POST['jumlahkan'])
{
  // jika yang diklik adalah tombol 'penjumlahan'
  
  $bil1 = $_POST['bil1'];
  $bil2 = $_POST['bil2'];
   
  $hasil = $bil1 + $bil2;
  echo "<p>Hasil penjumlahannya adalah ".$hasil."</p>";
}
else if ($_POST['kurangkan'])
{
  // jika yang diklik adalah tombol 'pengurangan'

  $bil1 = $_POST['bil1'];
  $bil2 = $_POST['bil2'];
   
  $hasil = $bil1 - $bil2;
  echo "<p>Hasil pengurangannya adalah ".$hasil."</p>";

}
else if ($_POST['kalikan'])
{
  // jika yang diklik adalah tombol 'perkalian'
 
  $bil1 = $_POST['bil1'];
  $bil2 = $_POST['bil2'];
   
  $hasil = $bil1 * $bil2;
  echo "<p>Hasil perkaliannya adalah ".$hasil."</p>";
} 
else
{
// jika tombol belum diklik maka tampilkan form untuk entri bilangan
?>

<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<table>
  <tr><td>Masukkan bilangan ke-1</td><td>:</td><td><input type="text" name="bil1"></td></tr>
  <tr><td>Masukkan bilangan ke-2</td><td>:</td><td><input type="text" name="bil2"></td></tr>  
</table>
<input type="submit" name="jumlahkan" value="+"> <input type="submit" name="kurangkan" value="-"> <input type="submit" name="kalikan" value="x">
</form>

<?php
// perintah $_SERVER['PHP_SELF'] menyatakan bahwa action dari submit form diarahkan ke script ini sendiri.
}

?>

</body>
</html>

TUGAS

  1. Berat badan ideal ada kaitannya dengan tinggi badan seseorang. Untuk menentukan berat badan ideal rumusnya: tinggi badan – 100, lalu hasilnya dikurangi lagi dengan 10% dari hasil pengurangan pertama. Berdasarkan keterangan tersebut, buatlah form yang digunakan untuk mengisikan tinggi badan seseorang (cm) dan berat badannya (kg). Setelah diisi, apabila form diklik maka akan muncul keterangan “Berat badan Anda ideal” atau “Berat badan Anda tidak ideal”. Berat badan seseorang dikatakan ideal apabila perbedaan berat badan orang tersebut terhadap berat badan idealnya tidak lebih dari 2 kg. Bila perbedaan keduanya lebih dari 2 kg, maka berat badannya dikatakan tidak ideal.
  2. Buatlah form untuk memasukkan usia seseorang (dalam tahun). Setelah form tersebut diisi dan kemudian disubmit, maka akan muncul keterangan apakah usia yang diisikan tersebut termasuk usia tua, dewasa, anak-anak, dan balita dengan kriteria sbb:

Usia                 Status
0 – 5                Balita
6 – 16              Anak-anak
17 – 50            Dewasa
> 50                 Tua