Kontrol pada PHP
1. Konstanta
PHP memiliki sejumlah konstanta yang telah didefinisikan dan diberi kesempatan untuk membuat konstanta sesuai dengan kebutuhan. Konstanta yang telah didefinisikan adalah _FILE_ (nama file yang sedang diproses) _LINE_ (nomor baris dari file yang sedang diproses)
Contoh :
<?php
function report_error($file, $line, $message)
{ echo “Suatu kesalahan terjadi pada file $file bari $line: $message.”; }
report_error(_FILE_,_LINE_,”Telah terjadi suatu kesalahan!”);
?>
Konstanta ciptaan dapat didefinisikan dengan menggunakan fungsi define(). Contoh :
<?php
define(“CONSTANT”,”Hello world.”);
echo CONSTANT; //akan mencetak “Hello world.”
?>
2. Ekspresi
Hampir semua yang ditulis dalam PHP script adalah script. Definisi yang paling mudah dari ekspresi adalah “segala sesuatu yang memiliki nilai”. Contoh yang paling sederhana dari ekspresi adalah konstanta dan variabel. Ketika mengetik “$a=5” maka artinya memberikan nilai ‘5’ ke $a.
Contoh yang lebih kompleks untuk suatu ekspresi adalah fungsi. Untuk ebih jelasnya perhatikan contoh dibawah ini :
Function hello ()
{ Return 5; }
Maka kala ditulis $c = hello() adalah sama dengan memberikan nilai 5 ke variabel $c, karena fungsi hello mengembalikan 5. Diatas adalah contoh fungsi yang sederhana. PHP mendukung 3 tipe nilai skalar yaitu : nilai integer, floating point dan string. (Nilai skalar adalah nilai yang tidak dapat dibagi menjadi bagian yang lebih kecil, seperti array). PHP juga mendukung 2 tipe nilai bukan skalar yaitu array dan objek.
3. Percabangan
a. If
Perintah If adalah sesuatu yang paling penting pada bahasa pemrograman umumnya. Perintah If PHP menyerupai bentuk If pada bahasa C. If (ekspresi) Perintah Ekspresi adalah sesuatu yang dapat dievaluasi menjadi nilai TRUEatau FALSE. Berikut ini adalah contoh yang akan mencetak ‘a lebih besar dari b’ jika nilai $a lebih besar dari $b.
If ($a > $b)
Print “a lebih besar dari b”;
Jika perintah yang akan dijalankan ketika ekspresi TRUE lebih dari satu maka perintah-perintah tersebut perlu dikelompokkan dengan kurung kurawal { dan } dapat juga dibentuk if yang bersangkar (if dalam if)
If ($a > $b) {
Print “a lebih besar dari b”;
$b = $a; }
b. Else
Sering kita perlu menjalankan perintah lain kalau nilai ekspresi adalah FALSE. Untuk keperluan tersebut dapat digunakan perintah Else.
If ($a > $b) {
Print “a lebih besar dari b”;
} else {
Print “a tidak lebih besar dari b”;
}
c. Elseif
Elseif adalah kombinasi dari suatu ifdan else, dapat digunakan pada suatu pilihan multi kondisi.
If ($a > $b) {
Print “a lebih besar dari b”;
} elseif ( $a==$b) {
Print “a sama dengan b”;
} else {
Print “a lebih kecil dari b”;
}
d. SWITCH
Perintah SWITCH menyerupai sejumlah perintah IF dengan ekspresi yang sama. Sering kali kita ingin membandingkan sejumlah variabel (atau ekspresi) dengan sejumlah nilai dan menjalankan perintah tertentu untuk masing-masing nilai.
Contoh1.php
/* contoh 1 */
if ($I == 0)
{ print “I sama dengan 0”; }
if ($I == 1)
{ print “I sama dengan 1”; }
if ($I == 2)
{ print “I sama dengan 2”; }
Perintah SWITCH dieksekusi secara baris per baris (aktualnya perintah per perintah). Pada awalnya tidak ada kode yang dijalankan. Hanya sesaat ketika suatu perintah CASE ditemukan dengan nilai yang sesuai dengan nilai ekspresi pada SWITCH, PHP menjalankan perintah. PHP melanjutkan eksekusi sampai akhir dari blok SWITCH atau pertama kali menemukan suatu perintah BREAK. Jika tidak menulis suatu perintah BREAK pada akhir dari daftar perintah pada suatu case, PHP akan melanjutkan eksekusi untuk case selanjutnya.
Contoh2.php
/* contoh 2 */
switch ($I) {
case 0;
print “I sama dengan 0”;
case 1;
print “I sama dengan 1”;
case 2;
print “I sama dengan 2”;
}
Disini jika $I sama dengan 0, PHP akan mengeksekusikan seluruh perintah print !. Jika $I sama dengan 1, PHP akan mengeksekusikan dua perintah print terakhir, jika dan hanya jika $I sama dengan 2 tercetak ‘I sama dengan 2’. Jadi adalah sangat penting untuk tidak melupakan perintah BREAK. Suatu caseyang khusus adalah case default. Caseini akan sama dengan segala sesuatu yang tidak dapat disamakan dengan case – case sebelumnya.
4. Perulangan
a. While
While adalah perulangan yang paling sederhana pada PHP. Bentuk dasar dari perintah While adalah :
WHILE(ekspresi) statement
Statement akan diulang selama ekspresi memiliki nilai TRUE. Jika pada perulangan ternyata ekspresi bernilai FALSE maka perulangan tidak pernah dilakukan. Jika perintah yang akan diulang lebih dari satu maka perintah-perintah tersebut dapat dikelompokkan dengan mengetiknya diantara kurung kurawal { dan } atau menggunakan tata cara penulisan alternatif :
WHILE(ekspresi) : statement… ENDWHILE;
Berikut ini adalah 2 contoh yang identik yang akan mencetak nilai 1 s/d 10 :
Contoh3.php :
/*contoh */
$I = 1;
while ($I <= 10) {
print $I++; /*nilai yg dicetak adl nilai $I sebelum ditambah 1 (post-increment)*/
}
Contoh 4.php
/*contoh */
$I = 1;
while ($I <= 10):
print $I;
$I++;
endwhile;
b. Do … While
Perulangan DO…WHILE adalah sama saja dengan perulangan While, hanya ekspresi diperiksa pada akhir dari perulangan. Jadi perulangan jenis ini minimal terjadi satu kali. Tata cara penulisan untuk perulangan DO…WHILE :
$I = 0;
do
{ print $I; }
while ($I>0);
c. FOR
Perulangan FOR adalah perulangan yang paling kompleks dalam PHP, dan menyerupai perulangan FOR pada bahasa C. Tata cara penulisan untuk perulangan FOR :
FOR (ekspresi1; ekspresi2; ekspresi3) statement
Ekspresi pertama (ekspresi1) dievaluasi (dieksekusi) secara un-kondisional pada awal perulangan. Pada awal dari tiap iterasi, ekspresi2 akan dievaluasi. Jika hasil evaluasi adalah TRUE maka perulangan akan diteruskan dan statement akan dieksekusi. Jika hasil evaluasi FALSE maka perulangan diakhiri. Pada akhir dari tiap iterasi, ekspresi3 akan dievaluasi (dieksekusi). Contoh berikut akan mencetak angka 1 s/d 10 :
Contoh5.php
For ($I = 1; $I <= 10; $I++)
{ Print $I; }
Contoh6.php
For ($I = 1;; $I++) {
If ($I > 10) { Break; }
Print $I; }
Contoh7.php
$I = 1;
For (;;) {
If ($I > 10) { Break; }
Print $I;
$I++; }
Contoh8.php
For ($I = 1; $I <= 10; print $I, $I++);
d. BREAK
BREAK keluar dari perulangan yang sekarang :
$I = 0;
while($I < 10) {
if ($arr[$I] == ‘berhenti’) { break; }
$I++; }
e. CONTINUE
CONTINUE akan meloncat ke awal perulangan yang sekarang
while(list($key,$value) = each($arr)) {
if ($key % 2) { //loncati anggota genap
continue; }
KerjakanYangGanjil($value); }
2.2.5 REQUIRE
Perintah REQUIRE menganti perintah tersebut dengan file tertentu dan hampir menyerupai processor #include pada bahasa C. Hal ini berarti anda tidak dapat meletakkan perintah required() dalam suatu struktur perulangan dan mengharapkannya untuk mengikutsertakan file yang berbeda pada tiap iterasi. Untuk melakukan hal tersebut harus menggunakan perintah INCLUDE.
Require (‘header.inc’);
2.2.6 INCLUDE
Perintah INCLUDE akan mengikutsertakan dan mengevaluasi file tertentu. Hal ini terjadi setiap kali perintah INCLUDE ditemukan, jadi dapat digunakan perintah INCLUDE diantara suatu struktur perulangan untuk mengikutsertakan sejumlah file yang berbeda.
$files = array (‘first.inc’,’second.inc’,’third.inc’);
for ($I = 0; $I < count($files); $I++) {
include($files[$I]); }
Include() berbeda dengan require(). Pada perintah include evaluasi dilakukan kembali setiap kali perintah tersebut ditemukan (dan hanya ketika hal tersebut dijalankan), sedangkan perintah require() akan diganti dengan file yang diperlukan ketika pertama kali ditemukan, terserah apakah file tersebut akan dievaluasi atau tidak. Karena INCLUDE adalah suatu konstruksi bahasa khusus maka harus diapit diantara blok.
/* Yang ini SALAH dan tidak akan bekerja sesuai dengan yg diharapkan */
if ($conditon)
include($file);
else include($other);
/* Yang ini BENAR */
if ($condition)
{ include($file); }
else { include($other); }
2.2.7 Operator pada PHP
1 Operator Aritmatika
Tabel Operator Aritmatika
Contoh | Nama | Hasil |
$a + $b | Penjumlahan | Jumlah dari $a dan $b |
$a – $b | Pengurangan | Sisa dari pengurangan $a dengan $b |
$a * $b | Perkalian | Perkalian dari $a dengan $b |
$a / $b | Pembagian | Hasil bagi $a dibagi dengan $b |
$a % $b | Modulus | Sisa hasil bagi $a dibagi dengan $b |
Operator pembagian (“/”) mengembalikan suatu nilai bulat (hasil dari suatu pembagian bulat) jika kedua operan adalah integer (atau string yang dikonversi ke integer). Jika salah satu operan adalah nilai floating-point value, pembagian floating point dilakukan.
2. Operator String
Hanya ada satu operator string, yaitu operator concatenation (“.”).
$a = “ Hello “;
$b = $a . “ World! “; // now $b = “ Hello World! “
Operator Assignment (Pemberi Nilai)
Operator assignment adalah “=”. Artinya adalah operan yang di kiri diisi dengan nilai dari ekspresi di sebelah kanan. Nilai dari ekspresi assignment adalah nilai yang ditentukan . Akibatnya, nilai dari “$a = 3” adalah 3. Dengan demikian hal dibawah ini menjadi benar adanya :
$a = ($b=4) + 5; // $a sekarang berisi 9, dan $b berisi 4.
3. Operator Bitwise
Operator Bitwise dapat digunakan untuk membuat bit tertentu dari integer menjadi on (1) atau off (0).
Tabel Operator Bitwise
Contoh | Nama | Hasil |
$a & $b | And | Bit yang bernilai 1 pada $a dan $b akan di-set 1. |
$a | $b | Or | Bit yang bernilai 1 pada $a atau $b akan di-set 1. |
$a ^ $b | Xor | Bit yang bernilai 1 pada $a atau $b tetapi tidak pada keduanya akan diset 1. |
~ $a | Not | Bit yang bernilai 1 pada $a akan diset 0, dan sebaliknya. |
$a << $b | Shift left | Geser bit $a sebanyak $b langkah kekiri (setiap langkah berarti “kalikan dengan dua”). |
$a >> $b | Shift right | Geser bit $a sebanyak $b langkah kekanan ( setiap langkah berarti “dibagikan dengan dua”). |
4. Operator Logika
Tabel Operator Logika
Contoh | Nama | Hasil |
$a and $b | And | Benar jika $a dan $b adalah benar. |
$a or $b | Or | Benar jika salah satu $a atau $b adalah benar. |
$a xor | Xor | Benar jika salah satu $a atau $b adalah benar, tetapi tidak keduanya. |
!$a | Not | Benar jika $a tidak benar. |
$a && $b | And | Benar jika $a dan $b adalah benar. |
$a || $b | Or | Benar jika salah satu $a atau $b benar. |
5. Operator Perbandingan
Operator perbandingan memperbolehkan untuk membandingkan dua nilai
Tabel Operator Perbandingan
Contoh | Nama | Hasil |
$a == $b | Sama dengan | Benar jika $a sama dengan $b. |
$a != $b | Tidak sama dengan | Benar jika $a tidak sama dengan $b |
$a < $b | Kurang dari | Benar jika $a lebih kecil $b |
$a > $b | Lebih dari | Benar jika $a lebih besar dari $b. |
$a <= $b | Kurang dari atau sama dengan | Benar jika $a lebih kecil atau sama dengan $b. |
$a >= $b | Lebih dari atau sama dengan | Benar jika $a lebih besar atau sama dengan $b. |
6. Urutan Operator
Urutan operator menentukan bagaimana suatu ekspresi dikerjakan oleh PHP. Contohnya, pada 1 + 5 * 3, jawabannya adalah 16 dan bukan 18 karena perkalian operator (*) memiliki urutan yang lebih tinggi untuk dikerjakan terlebih dahulu daripada operator penjumlahan (+).
Tabel Urutan Operator
Associativity | Operator |
Left | , |
Left | Or |
Left | Xor |
Left | And |
Right | Print |
Left | =+=-=*=/=.=%=&=!=~=<<=>>= |
Left | ?: |
Left | || |
Associativity | Operator |
Left | && |
Left | | |
Left | ^ |
Left | & |
Non-associative | == != |
Non-associative | <<=>>= |
Left | <<>> |
Left | +-. |
Left | */ % |
Right | !~++–(int) (double) (string) (array) (object) @ |
Right | [ |
Non-associative | New |