Struktur Kontrol (2)

35
Struktur Kontrol (2) As’ad Djamalilleil http://kampusku.uni.me [email protected]

description

Struktur Kontrol (2). As’ad Djamalilleil http://kampusku.uni.me [email protected]. expr. true. statement. false. Statement while. while (expr) statement. Statement while mengeksekusi statement berulang-ulang, selama expr bernilai TRUE - PowerPoint PPT Presentation

Transcript of Struktur Kontrol (2)

Page 1: Struktur Kontrol (2)

Struktur Kontrol (2)

As’ad Djamalilleil

http://kampusku.uni.me

[email protected]

Page 2: Struktur Kontrol (2)

Statement while

while (expr)

statement

expr statementtrue

false

Page 3: Struktur Kontrol (2)

• 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)

• 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)

• contoh statement alternatif dari while

$i = 1;

while ($i <= 10):

echo $i;

$i++;

endwhile;

Page 6: Struktur Kontrol (2)

Statement do-while

do

statement

while (expr);

exprstatement

true

false

Page 7: Struktur Kontrol (2)

• 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)

• 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)

Statement for

for (expr1; expr2; expr3) statement

expr1

expr2true

false

statement expr3

Page 10: Struktur Kontrol (2)

• 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)

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)

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)

Bentuk alternatif sintaks untuk for:

for (expr1; expr2; expr3):

statement;

… … … ;

endfor;

Page 14: Struktur Kontrol (2)

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)

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)

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)

• 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)

• 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)

• contoh array dinamis :

foreach(array(1, 2, 5, 7) as $v)

echo"$v \n";

Page 20: Struktur Kontrol (2)

• 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)

• 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)

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)

$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)

• 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)

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)

• Contoh :

while(list($key,$nilai) = each($arr)){

if (!($key % 2)) {

// lompati angka ganjil

continue;

}

prosesNilai($nilai);

}

Page 27: Struktur Kontrol (2)

• 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)

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)

• 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)

• 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)

• Isi file coba01.php :

<?php

require("coba02.php");

echo $a;

?>

• Isi file coba02.php :

<?php

$a = "coba ji cess";

?>

Page 32: Struktur Kontrol (2)

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)

• 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)

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)

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