Materi 7 PHP - Struktur kontrol (2)

Download Report

Transcript Materi 7 PHP - Struktur kontrol (2)

Struktur Kontrol (2)
As’ad Djamalilleil
http://kampusku.uni.me
[email protected]
Statement while
while (expr)
statement
expr
false
true
statement
• 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
• contoh statement while mencetak nilai 1 - 10
$i = 1;
while ($i <= 10)
echo $i++;
$i = 1;
while ($i <= 10){
echo $i;
$i++;
}
• contoh statement alternatif dari while
$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;
Statement do-while
do
statement
while (expr);
true
statement
expr
false
• 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
• 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
Statement for
for (expr1; expr2; expr3) statement
expr1
expr2
false
true
statement
expr3
• 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
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;
}
Contoh 3:
$i = 1;
for (;;) {
if ($i > 10) break;
echo $i;
$i++;
}
Contoh 4:
for ($i = 1; $i <= 10; echo $i, $i++);
Bentuk alternatif sintaks untuk for:
for (expr1; expr2; expr3):
statement;
… … … ;
endfor;
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:
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)
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
• 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";
• 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";
• contoh array dinamis :
foreach(array(1, 2, 5, 7) as $v)
echo"$v \n";
• 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";
• 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";
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
$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
• 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;
}
}
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
• Contoh :
while(list($key,$nilai) = each($arr)){
if (!($key % 2)) {
// lompati angka ganjil
continue;
}
prosesNilai($nilai);
}
• 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";
}
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 direquire(), parsing turun dari mode PHP ke
mode HTML pada awal file target, dan
kembali ke mode PHP pada akhir file.
• 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()
• 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:
• Isi file coba01.php :
<?php
require("coba02.php");
echo $a;
?>
• Isi file coba02.php :
<?php
$a = "coba ji cess";
?>
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
• 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");
}
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
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