WHILE dalam
PHP
While merupakan salah satu perulangan yang jumlah perulanganya tidak
dipastikan/ditentukan dalam program namun bisa juga perulangan while ditentukan
jumlahnya.
Dari
pernyataan diatas kita dapat simpulkan bahwa bentuk perulangan for pasti bisa
dinyatakan dengan while namun perulnagan while belum tentu bisa digunakan dalam
for.
Bentuk dasar statement while:
while(syarat)
{
//bagian
yang diulnag
}
Perhatikan
bentuk umum while diatas sebelum menuju bagian yang di ulang, diatasnya
terdapat syarat. Syarat ini lah menentukan apakah bagian yang diulang akan
dijalankan atau atau tidak, selama syarat ini dipenuhi atau bernilai benar. Maka
bagian yang diulang akan terus berjalan. 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
{
echo
$bil.”<br/>”
$bil++;
}
?>
Analisa program
Nilai
awal dari $bil adalah 1, Selanjutnya terdapat while dengan syarat $bil<=3.
Apabila dicek syaratnya maka dalam hal ini syarat bernilai benar karena 1<=3
sehingga menuju bagian yang diulang didalam bagian yang diulang terdapat echo
$bil, sehingga browser akan tampil bilangan 1. Berikutnya nilai $bil bertambah
menjadi 2 ($bil++)
Kembali
lagi ke syaratnya dicek dalam hal ini masih bernilai benar karena 2<=3,
Akibatnya proses sekarang menuju kembali ke bagian yang di ulang yaitu tampilan
$bil (muncul bilangan 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 tampil bilangan 3 di browser dan $bil bertmbah satu
menjafi 4
Dicek
lagi syaratnya apakah $bil<=3. Sekarang syarat bernilai salah karena 4<=3
tidak berlaku dengan demikian perulangan berhenti sehingga bilangan yang tampil
secara keseluruhan adalah
1
2
3
Perbandingan dengan for
<?php
for($bil=1; $bil<=3; $bil++)
{
echo $bil .”<br>/”;
}
?>
Kedua script diatas ekuivalen
Sekarang misalkan ditambah perintah berikut
<?php
$bil=1;
while($bil<=3)
{
echo $bil.”<br/>”
}
echo”Nilai bil sekarang adalah:”.$bil;
?>
Maka jika dijalankan di
browser nilai terakhir bil adalah 4 karena setelah $bil ditampilkan maka $bil
akan tetap ditambah 1 sehingga menjadi 4 namun setelah $bil terakhir di
tampilkan while tidak bisa melakaukan perulangan lagi karena persyaratan sudah
tidak memenuhi.
Contoh lain menampilkan bilangan acak 0 s/d
10 menggunakan function rand()
<?php
$bil=rand(0,10);
while($bil=0)
{
echo $bil.”<br/>”;
$bil=rad(0,10);
}
?>
Pada
contoh berikut tampilan bilangan akan berubah ubah ketika di refresh proses
while akan berhenti ketika $bil=0
While di dalam While(nested while)
Seperti for statement
while juga dapat terletak dalam sebuah while seperti contoh berikut.
<?php
$a=1;
while($a<=3)
{
$b=1;
while($b<2)
{
echo “Nilai
a=.$a.” Nilai b=”.$b.”<br/>”;
$b++;
}
$a++;
}
?>
Script di atas ekuivalent 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/>”;
}
}
?>
Untuk lebih memahami tentang statement while
coba perhatikan contoh-contoh program berikut.
1.
Penjulahan
Bilangan
Program
<?php
$jumlah = 0;
$bil = 2;
while ($bil <= 50) {
$bil++;
$jumlah =
$jumlah + $bil;
}
echo "Hasilnya adalah ".$jumlah;
?>
Hasil
Penjelasan
Dalam
program diatas penjumlahan yang akan diulang-ulang menggunakan while.
a.
Program
berjalan dimulai dengan memberikan nilai awal dari $jumlah = 0; $bil = 2;
b.
pengulangan
di batasi sebanyak 50 kali while ($bil <= 50).
c.
Variable
bil ditambah 1 atau increment $bil++;
d.
Variable
bil akan di tambah dengan kondisi variable jumlah $jumlah = $jumlah + $bil; yang akan
bertambah setiap perulangan.
e.
echo "Hasilnya adalah ".$jumlah; hasil akan ditampilkan dalam
layer
f.
jadi bil
pertama 2 ditambah 1 menjadi 3 lalu disimpan dalam variable jumlah dan di
tampilkan proses akan berulang bil menjadi 3 ditambah 1 menjadi 4 lalu ditambah
dengan variable jumlah 4+3=7 lalu disimpan dalam variable jumlah dan
ditampilkan, proses akan berulang sebanyak 50 kali, karena Batasannya adalah 50
kali.
2.
Anak
ayam turun
<form method="POST"
action="">
Masukan anak ayam<input type="text"
name="anak">
<input type="submit" value="hitung">
</form>
<?php
echo "<br> anak ayam turun " .$_POST[anak].
"<br>";
while($_POST[anak]>=1) {
$tinggal=$_POST[anak]-1;
if($tinggal>=1) {
echo "anak ayam turun " .$_POST[anak]. " mati satu
tinggal " .$tinggal. "<br>";
}
else {
echo "anak ayam turun "
.$_POST[anak]. ", Mati satu tinggal induknya";
}
$_POST[anak]--;
}
?>
Hasil
Penjelasan
Program
diatas dimulai dari memasukan data dari form setelah data dimasukan dan klik
submit maka yang pertama adalah menampilkan data yang dimasukan setelah itu
masuk ke perulangan while dengan syarat data lebih dari satu data tersebut
dalam variable anak selanjutnya variable anak akan dikurang 1 dan
disimpan dalam variable tinggal.
Proses
selanjutnya adalah variable tinggal di seleksi if dengan syarat lebih dari 1 jika benar maka
akan mencetak echo "anak ayam turun " .$_POST[anak]. ", Mati
satu tinggal induknya"; jika kondisi if tidak terpenuhi maka otomatis akan
mengerjakan else yang mencetak echo "anak ayam turun "
.$_POST[anak]. ", Mati satu tinggal induknya"; dan setiap
perulangan variable anak dikurang 1.
3.
Menghitung
Saldo
<form method="POST"
action="">
Masukkan saldo anda <input type="text"
name="uang" > <br>
Masukkan jumlah bulan <input type="text"
name="bul" > <br>
<input type="submit" value="Pilih">
</form>
<?php
$saldo=$_POST['uang'];
$bulan=$_POST['bul'];
if($saldo<1100000) {
$a=1;
while($a<=$bulan) {
$a++;
}
echo $saldo;
}
else{
$a=1;
while($a<=$bulan) {
$saldo = $saldo-9000+($saldo*0.04);
$a++;
}
echo $saldo;
}
?>
Hasil
Penjelasan
Dalam program ini data yang dimasukan adalah jumlah saldo dan jumlah
bulan kemudian untuk menghitung ditentukan
oleh dua rumus yaitu untuk saldo kurang dari 1100000 dihitung dengan
rumus $saldo = $saldo-9000+($saldo*0.03); sedangkan untuk saldo lebih
dari 1100000 dihitung dengan rumus $saldo = $saldo-9000+($saldo*0.04); statement
while digunakan untuk menghitung saldo setiap bulannya. Dan tentu saja setelah
dihitung saldo di tampilkan.
4.
Perkalian
1-10
Program
<?php
$i=1;
while($i<=10){
$j=1;
while($j<=10){
$hasil=$i*$j;
echo
$i."x".$j."=".$hasil."<br>";
$j++;
}
$i++;
}
?>
Hasil
Penjelasan
Dalam program diatas terdapat 2 while yang pertama digunakan untuk
membuat baris dan yang kedua digunakan untuk membuat perkalian.
5.
Formasi
Bintang
Program
<form method="POST"
action="">
Formasi Bintang untuk N=<input type="text"
name="n">
<input type="submit" value="tampilkan">
</form>
<?php
$i=1;
while($i<=$_POST['n']){
$j=1;
while($j<=$i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}
?>
Hasil
Penjelasan
Pada program di atas data dimasukan dari form disimpan dalam variable
n setelah di tekan submit maka akan masuk dalam while pertama yang membuat
baris dengan syarat kurang dari atau sama dengan n maka perintah membuat baris
akan dikerjakan didalam while yang pertama terdapat while yang mencetak simbol bintang
yang terus bertambah sesuai syarat batasan n.
6.
Persamaan
yang memenuhi 25
Program
<?php
$x=1;
while($x<=23)
{
$y=1;
while($y<=23)
{
$z=23;
while($z>=1)
{
$hasil=$x+$y+$z;
if($hasil==25){
echo "x=$x, y=$y, z=$z
<br>";
$jmlpenyel++;
}
$z--;
}
$y++;
}
$x++;
}
echo "jumlah penyelesain:
$jmlpenyel"
?>
Hasil
Penjelasan
Dalam program diatas adalah perulanagan while 3 tingkat yang digunakan
untuk menentukan persamaan yang memenuhi sama dengan 25 while pertama digunakan
untuk menambah nilai x while yang kedua untuk menambah nilai y dan while yang
ketiga digunkan untuk mengurangi nilai z. dalam while terdapat persyaratan if variable
hasil sama dengan 25 jadi yang tercertak dalam layar adalah jika x tambah y
tambah z sama dengan 25 dan dalam setiap ada syarat yang memenuhi ada counter
yang menghitung yang disimpan dalam variable jmlpenyel
7.
Formasi
Bintang Terbalik
Program
<form method="POST"
action="">
Formasi Bintang untuk N=<input type="text"
name="n">
<input type="submit" value="tampilkan">
</form>
<?php
$i=1;
while($i<=$_POST['n']){
$j=$_POST['n'];
while($j>=$i){
echo "*";
$j--;
}
echo "<br>";
$i++;
}
?>
Hasil
Penjelasan
Program ini sama dengan program formasi bintang sebelumnya hanya
saja dibalik sehingga jika ada data yang dimasukan melaui form data tersebut
akan di proses untuk menampikan bintang kemudian dikurangi.
8.
Formasi
Bintang Bolak Balik
Program
<form method="POST"
action="">
Formasi Bintang untuk N=<input type="text"
name="n">
<input type="submit" value="tampilkan">
</form>
<?php
$i=1;
while($i<=$_POST['n']){
$j=1;
while($j<=$i){
echo "*";
$j++;
}
echo "<br>";
$i++;
}
$i=1;
while($i<=$_POST['n']){
$j=$_POST['n'];
$i++;
while($j>=$i){
echo "*";
$j--;
}
echo "<br>";
}
?>
Hasil
Penjelasan
Untuk program yang ini adalah gabungan dari dua program sebelumnya
yaitu membuat program formasi bintang bertambah kemudian membuat formasi
bintang berkurang.
Tidak ada komentar:
Posting Komentar