While Statement

WHILE

Pada postingan sebelumnya , Anda sudah mempelajari  bentuk  perulangan FOR. Masihkah Anda ingat kapan   kita  harus   menggunakan   perulangan   FOR?  Yup…   ketika  kita  tahu  jumlah perulangannya. Nah… pada postingan ini, 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 />"; 
}
?>

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
Terus…  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>"; 
?> 


Tugas Untuk While Statement


1.  Pandang kembali contoh script B (untuk menjumlahkan bilangan bulat 2 s/d 50) dalam bab ini. Selanjutnya saya ubah sedikit scriptnya menjadi seperti di bawah ini.
<?php
$jumlah = 0; 
$bil = 2;
while ($bil <= 50) 
     $bil++; 
     $jumlah = $jumlah + $bil; 
}
echo  "Hasilnya adalah ".$jumlah;
?>

Pada script di atas, saya hanya membalik urutan 2 perintah yang saya blok hitam (bold). Dengan tanpa menjalankan scriptnya, coba analisislah script di atas, kira- kira hasilnya sama tidak dengan script pada contoh B tersebut? Jika tidak sama, jelaskan alasannya! 

Analisa  Hasil yang ditampilkan akan berbeda. Untuk Script pada contoh B akan menampilkan hasil 1274, sedangkan untuk script pada soal No.1 akan menampilkan hasil 1323. Pada script contoh B bilangan akan ditampilkan terlebih dahulu kemudian diproses dengan menjumlahkannya dengan angka 1. Sedangkan pada script soal No.1,  bilangan akan dijumlahkan terlebih dahulu dengan angka 1 baru kemudian dilakukan perulangan dengan while. Sehingga hasil yag ditampilkan oleh script soal No.1 lebih besar dari script contoh B.




2. Kerjakan kembali soal nomor 1, pada bab For menggunakan WHILE 


3. Kerjakan kembali soal nomor 2, pada bab For menggunakan WHILE 



4. Kerjakan kembali soal nomor 3, pada bab For menggunakan WHILE 



5. Kerjakan kembali soal nomor 4, pada bab 9 menggunakan WHILE 


6. Kerjakan kembali soal nomor 5, pada bab For menggunakan WHILE 



7. Buatlah  script  PHP  menggunakan  WHILE  untuk  menampilkan  formasi  bintang seperti berikut ini
* * 
* * * 
* * * *
Formasi bintang di atas untuk N = 4
Terlebih dahulu Anda harus membuat form untuk menerima input sembarang N dan script Anda harus menampilkan formasi bintang N tersebut. 


8. Buatlah  script  PHP  menggunakan  WHILE  untuk  menampilkan  formasi  bintang seperti berikut ini
* *
* * * 
* * * * 
* * * 
* * 
*
Formasi bintang di atas untuk N = 4
Terlebih dahulu Anda harus membuat form untuk menerima input sembarang N dan script Anda harus menampilkan formasi bintang N tersebut.






Comments

Popular posts from this blog

Membuat Biodata Pada Visual Studio Code

Session

Hapus Data dengan PHP - MySQL