Minggu, 24 Maret 2019

Mengenal Bahasa PHP [bagian 7] : Statement WHILE

Hai.. Hai.. Terimakasih sudah mampir! Kali ini kita akan membahas statement WHILE. Apa itu? Silahkan scroll ke bawah..

Statement while tidak jauh berbeda dengan for. For berfungsi untuk perulangan, begitu pula statement while, Namun, while dapat digunakan pula untuk perulangan dalam jumlah yang tidak diketahui. Sedangkan for tidak bisa. Nah, dapat kita simpulkan semua bentuk perulangan for dapat dinyatakan ke bentuk while, namun tidak berlaku untuk sebaliknya.

Bentuk umum statement while adalah sebagai berikut.

while (syarat)
{
// bagian yang diulang
}

Fungsi syarat di atas adalah untuk memeriksa apakah statement dapat dilanjutkan atau tidak. Ketika pernyataan itu tidak memenuhi syarat, maka proses akan langsung berhenti.

Nah, daripada pusing bingung muter-muter, langsung saja kita coba contohnya.

<?php
$bil = 1;

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

?>

Dan seperti inilah tampilan keluarannya.
Hal ini juga berlaku untuk for. Berikut ini adalah listing program yang ekuivalen dengan listing program di atas.

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


Dan tampilan keluarannya seperti ini.
Nah. Apa sekarang sudah agak mendingan sedikit pusingnya??
Sekarang, listing program di atas mari kita ubah sedikit menjadi seperti ini.

<?php
$bil = 1;

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

Dan hasilnya adalah sebagai berikut.
Nah mengapa tampilannya seperti itu? Mari kita analisa bersama. Hal ini disebabkan karena ketika perulangan while diproses, maka proses akan berhenti pada angka 4 yang saat itu melebihi dari syarat yang telah ditentukan, benar atau tidak? Nah, hal inilah yang menyebabkan 4 menjadi nilai terakhir sebelum proses gagal.

Sekarang kita akan beralih ke contoh selanjutnya. Yaitu menampilkan bilangan random atau acak antara 0 sampai dengan 10 (menggunakan fungsi rand()). Proses pengacakan ini akan dijalankan selama bilangan yang diacak tidak sama dengan nol.
Nah, berikut ini listing programnya.

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

 Dan beginilah hasil tampilannya. Tampilan akan terus berubah-ubah ketika di refresh. Selama bilangan tidak sama dengan nol.

Biar lebih paham lagi, berikut ini adalah contoh while di dalam while. Mari kita perhatikan.

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

 Dan beginilah hasilnya.
Bukankah listing program di atas mirip dengan listing program milik for? Yap. Sangat benar.

Tugas untuk Anda
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! 
Jawab:
Pada script B, listing programnya adalah sebagai berikut.

<?php
$jumlah = 0;
$bil = 2;

while ($bil <= 50)
{
    $jumlah = $jumlah + $bil;
    $bil++;
}

echo  "Hasilnya adalah ".$jumlah;

?>

Dan hasilnya adalah sebagai berikut.
Sedangkan berikut ini adalah listing program script di atas.
<?php
$jumlah=0;
$bil=2;

while($bil<=50)
{
    $bil++;
    $jumlah=$jumlah+$bil;
}

echo "Hasilnya adalah ".$jumlah;

?>
Dan hasilnya adalah seperti ini.
Mengapa hasilnya berbeda? Padahal perbedaan script di atas hanyalah dengan membalik fungsinya. Pada script B bilangan akan dijumlah dengan 1 lalu ditambah 2. Sedangkan pada script tugas 1 di atas, bilangan dijumlah dengan 2 lebih dulu barulah dijumlah dengan 1.

2. Kerjakan kembali soal nomor 1, pada bab 9 menggunakan WHILE
Jawab:
Berikut ini listing program formnya.

<form method="POST" action="prosesTugas2while.php">
Masukkan Jumlah Ayam <input type="text" name="anakayam">
<input type="submit" value="Submit">
</form>

 Berikut ini listing program prosesnya.

<?php
$ayam=$_POST[anakayam];
echo "Anak ayam turun ".$ayam."<br>";

while($ayam>=1)
{
    if($a=$ayam-1)
    {
        echo "Anak ayam turun ".$ayam.", mati satu tinggal ".$a."<br>";
    }
    else
    {
        echo "Anak ayam turun 1, mati satu tinggal induknya";
    }
    $ayam--;
}

?>

 Dan inilah hasilnya.
 Ketika dimasukkan sebuah angka, misalnya 10. Maka akan muncul hasil seperti ini.
3. Kerjakan kembali soal nomor 2, pada bab 9 menggunakan WHILE
Jawab:
Berikut ini listing program formnya:
<form method="POST" action="prosesTugas3while.php">
Masukkan Saldo Awal <input type="text" name="uang"> Rupiah <br>
Masukkan Jumlah Bulan <input type="text" name="bulan"> Bulan <br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>

 Dan berikut ini adalah listing program prosesnya.
<?php
$i=$_POST[uang];
$bln=$_POST[bulan];
$x=1;

while($x<=$bln)
{
    if($i<1100000)
    {
        $i=((0.03*$i)+($i-9000));
    }
    else
    {
        $i=((0.04*$i)+($i-9000));
    }
    $x++;
}
echo "Rp. ".$i;

?>

 Dan berikut ini adalah hasil formnya.
 Ketika dimasukkan sebuah angka, maka ketika di submit hasilnya sebagai berikut.
4. Kerjakan kembali soal nomor 3, pada bab 9 menggunakan WHILE
Jawab:
Berikut ini listing programnya.
<?php
$i=1;

while($i<=10)
{
    $a=1;
    while($a<=10)
    {
        echo $i. " x ".$a." = ".$i*$a."<br>";
        $a++;
    }
    echo "<br>";
    $i++;
}

?>

 Berikut ini hasilnya.

5. Kerjakan kembali soal nomor 4, pada bab 9 menggunakan WHILE
Jawab:
Berikut ini adalah listing program formnya.
<form method="POST" action="prosesTugas5while.php">
Masukkan Jumlah Bintang <input type="text" name="bintang">
<input type=submit value="Submit">
<input type=reset value="Reset">
</form>

 Dan ini adalah listing program prosesnya.
<?php
$jmlhbintang=$_POST[bintang];
$i=1;

while($i<=$jmlhbintang)
{
   
    $a=1;
    while($a<=$i)
    {
        $a++;
        echo "*";
    }
    echo "<br>";
    $i++;
}


?>

 Dan inilah tampilan formnya.
 Berikut ini adalah ketika telah disubmit sebuah angka, misalnya 10.
6. Kerjakan kembali soal nomor 5, pada bab 9 menggunakan WHILE
Jawab:
Berikut ini adalah listing programnya.
<?php
$x=1;
$jmlh=0;
while($x<=23)
{
    $y=1;
    while($y<=23)
    {
        $z=1;
        while($z<=23)
{
            if($x+$y+$z==25)
{$jmlh++;
            echo "x = ".$x.", y = ".$y.", z = ".$z."<br>";}
            $z++;
        }
        $y++;
    }
    $x++;
    echo "<br>";
}
echo "Jumlah Penyelesaian sebanyak ".$jmlh;

?>

 Dan berikut ini adalah hasil programnya.

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.
Jawab:
Berikut ini listing program formnya.
<form method="POST" action="prosesTugas7while.php">
Masukkan Banyak Bintang <input type="text" name="bintang">
<input type=submit value="Submit">
<input type=reset value="Reset">
</form>

 Dan listing program prosesnya.
<?php
$jmlhbintang=$_POST[bintang];
$i=1;

while($i<=$jmlhbintang)
{
   
    $a=$jmlhbintang;
    while($a>=$i)
    {
        $a--;
        echo "*";
    }
    echo "<br>";
    $i++;
}


?>

 Berikut ini hasilnya.
 Dan ketika ditekan 'submit', maka hasilnya sebagai berikut.
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.
Jawab:
Berikut ini adalah listing program formnya.
<form method="POST" action="prosesTugas8while.php">
Masukkan Banyak Bintang <input type="text" name="bintang">
<input type=submit value="Submit">
<input type=reset value="Reset">
</form>

 Dan juga listing program prosesnya.
<?php
$jmlhbintang=$_POST[bintang];
$i=1;

while($i<=$jmlhbintang)
{
   
    $a=1;
    while($a<=$i)
    {
        $a++;
        echo "*";
    }
    echo "<br>";
    $i++;
}

$i=$jmlhbintang-1;
while($i>=1)
{
   
    $a=$i;
    while($a>=1)
    {
        echo "*";
        $a--;
    }
    $i--;
    echo "<br>";
   
}


?>

 Sehingga hasilnya akan seperti ini.
 Ketika dimasukkan angka, misalnya 10. Maka akan seperti ini.
Nah. Berakhir sudah pembahasan mengenai bab while kali ini. Terimakasih dan Wassalam..

Tidak ada komentar:

Posting Komentar

Upload File dengan PHP dan MySQL

Upload file adalah salah satu bagian terpenting dalam membuat aplikasi, khususnya yang berbasis web.Contohnya saat kita harus mengupload ent...