Download - Struktur Kontrol (2)
![Page 1: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/1.jpg)
Struktur Kontrol (2)
As’ad Djamalilleil
http://kampusku.uni.me
![Page 2: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/2.jpg)
Statement while
while (expr)
statement
expr statementtrue
false
![Page 3: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/3.jpg)
• Statement while mengeksekusi statement berulang-ulang, selama expr bernilai TRUE
• Setiap kali PHP menjalankan statement di dalam perulangan maka terhitung satu kali iterasi
• Nilai dari expr diperiksa setiap kali memasuki awal perulangan, jadi walaupun nilai expr berubah selama eksekusi statement, eksekusi tidak berhenti sampai akhir iterasi
• Jika expr pada while bernilai FALSE pada saat pertama kali dijalankan, maka statement tidak satu kali pun dijalankan
![Page 4: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/4.jpg)
• contoh statement while mencetak nilai 1 - 10
$i = 1;while ($i <= 10) echo $i++;
$i = 1;while ($i <= 10){ echo $i; $i++;}
![Page 5: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/5.jpg)
• contoh statement alternatif dari while
$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;
![Page 6: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/6.jpg)
Statement do-while
do
statement
while (expr);
exprstatement
true
false
![Page 7: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/7.jpg)
• Perulangan do-while sangat mirip dengan while, kecuali expr diperiksa di akhir iterasi dan bukan di awal
• Perbedaan utama dari do-while dan while adalah pada do-while statement pasti dijalankan pada iterasi pertama
• Jadi pada statement do-while, statement pasti dijalankan minimal satu kali
![Page 8: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/8.jpg)
• Contoh perulangan do-while
$i = 0;
do
echo $i;
while ($i>0);
• Perulangan di atas hanya berjalan satu kali iterasi, dikarenakan setelah iterasi pertama ketika expr diperiksa akan menghasilkan nilai FALSE sehingga perulangan dihentikan
![Page 9: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/9.jpg)
Statement for
for (expr1; expr2; expr3) statement
expr1
expr2true
false
statement expr3
![Page 10: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/10.jpg)
• Ekspresi pertama (expr1) dieksekusi satu kali di awal perulangan
• Di awal setiap iterasi, expr2 dijalankan untuk diperiksa nilainya. Jika nilainya TRUE, maka perulangan dilanjutkan dan statement dieksekusi. Jika nilainya FALSE, maka perulangan dihentikan
• Pada akhir setiap iterasi, expr3 dieksekusi• Setiap ekspresi dapat dikosongkan. Bila expr2
dikosongkan, berarti perulangan dijalankan tanpa henti tetapi dapat digunakan statement break pada statement untuk keluar dari perulangan for
![Page 11: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/11.jpg)
Contoh mencetak 1 – 10 di for
Contoh 1:
for ($i = 1; $i <= 10; $i++)
echo $i;
Contoh 2:
for ($i = 1;;$i++) {
if ($i > 10) break;
echo $i;
}
![Page 12: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/12.jpg)
Contoh 3:
$i = 1;
for (;;) {
if ($i > 10) break;
echo $i;
$i++;
}
Contoh 4:for ($i = 1; $i <= 10; echo $i, $i++);
![Page 13: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/13.jpg)
Bentuk alternatif sintaks untuk for:
for (expr1; expr2; expr3):
statement;
… … … ;
endfor;
![Page 14: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/14.jpg)
Statement foreach
• Statement foreach memberikan cara yang mudah untuk iterasi pada array
• Terdapat dua sintaks foreach, dimana sintaks kedua kurang digunakan tetapi berguna sebagai tambahan dari bentuk sintaks yang pertama:
![Page 15: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/15.jpg)
foreach(array as $nilai)
statement
• Bentuk pertama memutar index array yang diberikan oleh argumen array.
• Pada setiap perulangan, nilai dari elemen array yang sedang dibaca diberikan kepada variabel $nilai, kemudian index array berpindah ke elemen array berikutnya (dan begitu seterusnya)
![Page 16: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/16.jpg)
foreach(array as $kunci => $nilai)
statement
• Bentuk kedua melakukan hal yang sama, dengan tambahan bahwa index dari elemen array yang sedang dibaca diberikan kepada variabel $kunci pada setiap kali perulangan
![Page 17: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/17.jpg)
• contoh (hanya menggunakan nilai) :
$a = array (1, 2, 3, 17);
foreach ($a as $v)
echo "Nilai dari \$a: $v \n";
• contoh (menggunakan nilai dan key/index) :$a = array (1, 2, 3, 17);
$i = 0; //hanya sebagai ilustrasi
foreach ($a as $v)
echo "\$a[$i] => $v \n";
![Page 18: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/18.jpg)
• contoh (menggunakan key dan nilai) :
$a = array ("satu" => 1, "dua" => 2,
"lima" => 5, "tujuh" => 7);
foreach($a as $k => $v)
echo "\$a[$k] => $v \n";
• contoh array multi-dimensi :
$a[0][0] = "a"; $a[0][1] = "b";
$a[1][0] = "y"; $a[1][1] = "z";
foreach($a as $v1)
foreach ($v1 as $v2)
echo "$v2 \n";
![Page 19: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/19.jpg)
• contoh array dinamis :
foreach(array(1, 2, 5, 7) as $v)
echo"$v \n";
![Page 20: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/20.jpg)
• Kedua contoh script di bawah menghasilkan output yang sama:
reset ($arr);
while (list(, $nilai) = each ($arr))
echo "Nilai: $nilai <br>\n";
• Menggunakan foreach:
foreach ($arr as $nilai)
echo "Nilai: $nilai <br>\n";
![Page 21: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/21.jpg)
• Kedua contoh script di bawah juga menghasilkan output yang sama:
reset ($arr);while (list($key,$nilai) = each($arr)) echo "Kunci: $key; Nilai: $nilai <br>\n";
• Menggunakan foreach:foreach ($arr as $key => $nilai) echo "Key: $key; Nilai: $nilai <br>\n";
![Page 22: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/22.jpg)
Statement break
• break mengakhiri eksekusi dari statement for, foreach while, do-while atau switch
• break menerima sebuah argumen opsional bertipe numerik yang menentukan berapa banyak struktur bersarang untuk dilompati
![Page 23: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/23.jpg)
$arr = array ('satu', 'dua', 'tiga',
'empat', 'stop', 'lima');
while (list (, $val) = each ($arr))
if ($val == 'stop')
break;
echo "$val <br>\n";
• break di dalam statement if dapat diganti dengan “break 1” dimana memiliki arti yang sama
![Page 24: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/24.jpg)
• Contoh menggunakan argumen opsional$i = 0;while (++$i) { switch ($i) { case 5: echo "Ke-5 <br>\n"; break 1; // keluar dari switch case 10: echo "Ke-10, berhenti <br>\n"; break 2; // keluar dari switch dan while default: break; }}
![Page 25: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/25.jpg)
Statement continue
• continue digunakan di dalam struktur perulangan untuk melompati sisa dari iterasi pada perulangan yang sedang berjalan dan melanjutkan eksekusi dari iterasi berikutnya
• continue menerima sebuah argumen opsional bertipe numerik yang menyatakan berapa level dari perulangan bersarang yang akan dilompati
![Page 26: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/26.jpg)
• Contoh :
while(list($key,$nilai) = each($arr)){
if (!($key % 2)) {
// lompati angka ganjil
continue;
}
prosesNilai($nilai);
}
![Page 27: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/27.jpg)
• Contoh :$i = 0;while ($i++ > 5) { echo "loop paling luar <br>\n"; while (1) { echo "loop di tengah <br>\n"; while (1) { echo "loop di dalam<br>\n"; continue 3; } echo "Ini tidak pernah dicetak <br>\n"; } echo "Ini juga tdk pernah dicetak <br>\n";}
![Page 28: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/28.jpg)
Statement require()
• Statement require() mengganti pernyataan tersebut dengan file yang ditentukan oleh argumennya, seperti halnya pra-prosesor #include pada bahasa C/C++
• Perlu dicatat tentang cara kerjanya adalah ketika sebuah file di-include() atau di-require(), parsing turun dari mode PHP ke mode HTML pada awal file target, dan kembali ke mode PHP pada akhir file.
![Page 29: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/29.jpg)
• Untuk alasan tersebut di atas, kode apapun di dalam file target yang seharusnya dieksekusi sebagai kode PHP harus diapit dengan tag PHP yang benar
• Tidak seperti include(), require() akan selalu membaca file target, bahkan jika baris yang memuat statement require() tidak pernah dieksekusi
• Jika ingin secara kondisional menyertakan file, maka gunakan statement include()
![Page 30: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/30.jpg)
• Contoh sebuah script tanpa require():
<?php
$a = "coba ji cess";
echo $a;
?>
• Script di atas kemudian dipecah menjadi dua file, yaitu file coba01.php dan coba02.php, seperti berikut:
![Page 31: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/31.jpg)
• Isi file coba01.php :
<?php
require("coba02.php");
echo $a;
?>
• Isi file coba02.php :
<?php
$a = "coba ji cess";
?>
![Page 32: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/32.jpg)
Statement include()
• Statement include() menyertakan dan mengevaluasi file pada argumen
• include() berbeda dari require() dimana statement include dievaluasi ulang setiap kali statement tersebut ditemukan (dan hanya jika dieksekusi)
• Statement include() harus dijadikan sebagai sebuah blok statement ( { } ) jika dijalankan di dalam sebuah control structure
![Page 33: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/33.jpg)
• Contoh penggunaan include() :$nama = array ('satu.php', 'dua.php', 'tiga.php');for ($i = 0; $i < count($nama); $i++){ include $nama[$i];}
• Contoh :if ($kondisi) { include("masuk.php");}else { include("keluar.php");}
![Page 34: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/34.jpg)
Statement require_once()
• Perbedaan utama dengan statement require() adalah bahwa penggunaan require_once() akan memastikan bahwa kode ditambahkan ke dalam script hanya satu kali, dan menghindari tabrakan yang dapat terjadi dengan nilai variabel atau nama fungsi
![Page 35: Struktur Kontrol (2)](https://reader033.vdocuments.mx/reader033/viewer/2022061503/568133ad550346895d9abbec/html5/thumbnails/35.jpg)
Statement include_once()
• Perbedaan dengan statement include() adalah jika kode dari sebuah file telah di-include(), maka kode tersebut tidak akan di-include() lagi
• include_once() seharusnya digunakan pada kasus dimana file yang sama dapat di-include atau dievaluasi lebih dari sekali selama eksekusi script tertentu, dan ingin dipastikan file tersebut hanya di-include satu kali saja untuk menghindari masalah dengan redefinisi fungsi, pemberian ulang nilai variabel, dan lain-lain