Wavy Tail

Senin, 25 Maret 2019

PENDAHULUAN "Statement While"

Kita akan membahas tentang perulangan WHILE. Seperti halnya FOR, statement  WHILE ini juga dapat digunakan untuk  menyatakan  perulangan yang telah diketahui jumlah perulangan tersebut harus dilakukan. Namun… tidak hanya itu, WHILE juga dapat digunakan untuk menyatakan perulangan jika jumlah perulangannya tidak diketahui.
Dari pernyataan di atas, dapat kita simpulkan bahwa setiap bentuk perulangan FOR pasti dapat juga dinyatakan ke dalam bentuk WHILE. Namun… tidak berlaku kebalikannya, bahwa tidak semua bentuk WHILE dapat dinyatakan ke dalam FOR. Nanti akan kita lihat contohnya.
OK… bentuk umum statement WHILE adalah sbb:

while (syarat)
{
    // bagian yang diulang
}

Perhatikan  bentuk  umum  WHILE  di  atas!  Sebelum  menuju  bagian  yang  diulang,  di atasnya  terdapat  syarat.  Syarat inilah yang menentukan  apakah  bagian yang diulang akan dijalankan atau tidak. Selama syarat ini dipenuhi atau bernilai BENAR, maka bagian yang diulang akan terus dijalankan. Apabila suatu saat syarat sudah tidak terpenuhi lagi atau bernilai SALAH maka perulangan berhenti.
Contoh: Script berikut ini akan menampilkan bilangan 1 s/d 3

<?php
$bil = 1;
while ($bil <= 3)
{
    echo $bil. "<br />";
    $bil++;
}
?>

Sekarang kita analisis prosesnya…
Nilai awal dari $bil adalah 1. Selanjutnya terdapat while dengan syarat $bil <= 3. Nah.. apabila  dicek  syaratnya,  maka  dalam  hal  ini  syarat  bernilai  BENAR  karena  1  <=  3, sehingga  sekarang  menuju  ke  bagian  yang  diulang.  Di  dalam  bagian  yang  diulang terdapat echo $bil, sehingga di browser akan tampil bilangan 1. Berikutnya nilai $bil bertambah menjadi 2 ($bil++).
Kembali  lagi  syaratnya  dicek,  dalam  hal  ini  masih  bernilai  BENAR  karena  2  <=  3. Akibatnya proses sekarang menuju kembali ke bagian yang diulang, yaitu tampilkan $bil (muncul bilangan 2 dalam browser) dan $bil bertambah satu menjadi 3.
Selanjutnya dicek kembali syaratnya apakah $bil <= 3 dan ternyata BENAR karena 3 <= 3. Karena syaratnya BENAR maka tampilkan $bil, sehingga muncul bilangan 3 di browser dan $bil bertambah satu menjadi 4.
Lagi-lagi di cek syaratnya apakah $bil <= 3. Nah.. sekarang syarat bernilai SALAH karena 4 <= 3 tidak berlaku. Dengan demikian  perulangan berhenti. Sehingga bilangan yang tampil secara keseluruhan adalah
1 2 3
Sekarang.. coba kita bandingkan dengan FOR. Script berikut ini juga akan menampilkan bilangan 1 s/d 3.

<?php
    for ($bil = 1; $bil <= 3; $bil++)
{
    echo $bil. "<br />";
}
?>

Kedua script di atas akan ekuivalen.
Kembali lagi pada script PHP untuk menampilkan bilangan 1 s/d 3 menggunakan WHILE. Sekarang misalkan ditambahkan perintah berikut ini

<?php
$bil = 1;
while ($bil <= 3)
{
    echo $bil. "<br />";
    $bil++;
}
    echo "Nilai bil sekarang adalah:".$bil;
?>

Dengan tanpa menjalankannya di browser, menurut Anda kira-kira perintah yang diberi warna biru tersebut akan menampilkan apa hayoo..?? apakah 3 atau berapa?
Bagi yang menjawab 3… Anda SALAH.
Bagi yang menjawab 4… OK Anda benar.
Lho kok bisa? Padahal pada syarat while tertulis $bil <= 3. Ya.. Anda benar, tapi coba lihat kembali analisis yang pernah kita singgung di atas. Nilai terakhir $bil ketika dalam perulangan WHILE adalah 4. Ketika $bil = 4 inilah yang menyebabkan perulangan WHILE berhenti. Dengan demikian, nilai $bil pada dasarnya sudah berubah menjadi 4 sehingga setelah WHILE selesai, dan ditampilkan nilai $bil nya maka akan tampil 4.
Sekarang…  mari  kita  tinjau  contoh  script  WHILE  berikutnya.  Script  berikut  ini  akan menampilkan bilangan random/acak 0 s/d 10 (menggunakan function rand()). Proses pengacakan  ini  akan  terus  dilakukan  selama  bilangan  acak  yang  terpilih  tidak  sama dengan 0.

<?php
$bil = rand(0, 10);
while ($bil != 0) { echo $bil."<br />"; $bil = rand(0, 10); }
?>

Nah… dari contoh kasus di atas, tentu kita tahu bahwa jumlah perulangan dalam hal ini tidak diketahui. Perulangan tersebut hanya diketahui kapan perulangan harus berhenti, yaitu ketika bilangan acak yang terpilih sama dengan 0.

Catatan: output yang tampil akan berubah-ubah setiap kali di REFRESH

Trus…  kira-kira  bisa  tidak  apabila  kita  terapkan  perulangan  WHILE  di  atas  ke  dalam bentuk  FOR?  Sebenarnya  dalam  PHP  bisa  dilakukan,  namun  hal  ini  tidak  berlaku  di semua bahasa pemrograman, misalnya dalam PASCAL (mungkin Anda pernah dengar namanya).
Oleh karena itu secara umum saya bisa katakan bahwa tidak semua bentuk WHILE dapat dinyatakan  ke  bentuk  FOR.  Apabila  Anda  menjumpai  bentuk  perulangan  yang  tidak diketahui jumlah perulangannya, maka saya sarankan gunakanlah WHILE.
WHILE di dalam WHILE (nested WHILE)
Seperti  halnya  FOR,  statement  WHILE  juga  dapat  terletak seperti contoh berikut ini
di dalam sebuah WHILE,
<?php
$a = 1;
while ($a <= 3)
{
    $b = 1;
    while ($b <= 2)
    {
       echo  "Nilai a = ".$a. " Nilai b = ".$b. "<br />";
       $b++;
     }
     $a++;
}
?>

Script di atas ekuivalen dengan script nested FOR berikut ini
<?php
for ($a = 1; $a < =3; $a++)
  {
     for ($b = 1; $b <= 2; $b++)
       {
          echo  "Nilai a = ".$a. " Nilai b = ".$b. "<br />";
       }
   }
?>

Contoh-contoh script menggunakan WHILE:

Contoh-contoh script berikut ini mengadopsi kasus yang ada di modul 9 (tentang FOR)

A. Script PHP untuk menampilkan bilangan bulat 5 s/d 100 yang berkelipatan 10 
<?php
$bil = 5;
while ($bil <= 100)
{
if ($bil % 10 == 0)
echo $bil. "<br />";
$bil++;
}
?>

B. Script PHP untuk menjumlahkan bilangan bulat 2 s/d 50 
<?php
$jumlah = 0;
$bil = 2;
while ($bil <= 50)
{
$jumlah = $jumlah + $bil;
$bil++;
}
echo  "Hasilnya adalah ".$jumlah;
?>

C. Script PHP untuk mencari banyaknya bilangan bulat mulai dari 3 s/d 127 yang merupakan kelipatan 6. 
<?php
$hitung = 0;
$bil = 3;
while ($bil <= 127)
{
if ($bil % 6 == 0)
$hitung = $hitung + 1;
$bil++;
}
echo "Banyaknya bilangan bulat adalah ".$hitung;
?>

D. Script PHP untuk membuat tabel dengan n baris dan m kolom secara otomatis 
<?php
$jumBaris = 10;
$jumKolom = 6;
echo "<table border=’1’>";
$baris = 1;
while ($baris <= $jumBaris)
{
echo "<tr>";
$kolom = 1;
while ($kolom <= $jumKolom)
{
echo"<td>…</td>";
$kolom++;
}
echo "</tr>";
$baris++;
}
echo "</table>";
?>

E.   Script PHP untuk menghasilkan list combo box berisi tahun mulai 1930 s/d 2008 secara otomatis
<?php
echo "<select name=’tahun’>";
$tahun = 1930;
while ($tahun <= 2008)
{
echo "<option value=’".$tahun."’>".$tahun."</option>"; $tahun++;
}
echo "</select>";
?>

Tidak ada komentar:

Posting Komentar