Senin, 13 Oktober 2008

Mengenal PHP (bag 1)

PHP adalah bahasa pemrograman script yang dinamis. Program PHP dapat dijalankan sebagai aplikasi web yang memerlukan web server dan dapat juga dijalankan menggunakan interpreter PHP, sebagai aplikasi konsol atau desktopbased. PHP adalah bahasa pemrograman yang kaya dengan library untuk pengembangan aplikasi mulai dari dukungan ke berbagai database management system, dukungan library Graphical User Interface, sampai library untuk sistem administrasi.

Menjalankan Program PHP

Buka notepad lalu simpan dengan nama salam.php berikut ini di path installasi xampp\htdocs:



Agar dapat dieksekusi melalui aplikasi web maka anda Lalu akses URL ini dengan web browser pilihan anda:

http://localhost/salam.php

Bahasa PHP

Komentar

PHP Mengenal 3 jenis komentar:
1. Diawali dengan // , berlaku hanya untuk 1 baris
2. Diawali dengan #, berlaku hanya untuk 1 baris
3. Diawali dengan /* dan diakhiri */ , berlaku untuk lebih dari 1 baris, dapat juga
digunakan untuk menyisipkan komentar diantara token.

Ketiga jenis komentar dapat berada pada baris tersendiri atau dibelakang statement. Contoh:

// komentar 1
echo 'string satu',"\n"; // komentar 2
echo 'string dua',"\n"; # komentar 3
/*
komentar 4 , komentar ini
melintas beberapa baris
*/
echo /* komentar 5, di antara token */ 'string tiga',"\n";

Tipe Data
PHP membedakan operasi yang dapat dilakukan terhadap setiap tipe data.

1. Tipe Primitif
Tipe primitif adalah tipe data dasar yang tidak dapat dibagi lagi (decompose) atas tipe data yang lebih dasar lainnya.

2. Boolean
PHP mengenal tipe boolean yaitu : TRUE dan FALSE, keduanya caseinsenstive.
Jadi True, true, atau TRUE adalah sama.

3. Integer
Integer atau bilangan bulat di PHP tidak membedakan panjang byte (long atau integer biasa), keduanya adalah integer. Integer literal dapat dituliskan sebagai desimal (default, tanpa prefiks), octal (dengan prefix '0') atau hexadecimal (dengan prefix 0x).

Contoh:
1234567890 # desimal
01234567 # octal
0x123456789abcdef #hexadecimal

4. float
Literal float menggunakan '.' untuk pembatas pecahan desimal, dan menggunakan simbol e untuk pangkat desimal. Pada contoh berikut ini ke 4 bilangan yang ditulis dengan cara berbeda adalah sama besarnya:
.123456789
0.123456789
123456789e9
123.456789e4

5. string
String dalam PHP adalah dereten karakter. Literal string dapat ditulis dengan 3 cara :

1. Petik ganda
String dengan petik ganda mengenal karakter khusus (baris baru, tab) dan melakukan ekspansi variable

2. Petik Tunggal
String dengan petik tunggal tidak mengenal karakter khusus (baris baru, tab) dan tidak melakukan ekspansi variabel

3. Heredoc
Sintak heredoc memperlakukan string seperti double quote, hanya saja menggunakan delimiter yang berbeda, yaitu deretan karakter alpahanumeric atau garis bawah, yang dimulai hanya dengan karakter non digit atau garis bawah. Contoh:

<<'aplikasi web',
'python' =>'aplikasi desktop',
'perl' =>'otomatisasi sysadmin',
'c' => 'aplikasi system',
'ruby' => 'aplikasi web',
'java' => 'aplikasi enterprise'
);
echo 'php tepat untuk ' , $a['php'],"\n";
echo 'python cocok untuk ' , $a['python'],"\n";
Array berindeks
integer juga dapat dibuat dengan constructor array yang sama:
$b = array('php','python','perl','c','ruby','java');
echo $b[0],”\n” # php
echo $b[1],”\n” # python
echo $b[4],”\n” # ruby

Variabel
Variabel digunakan untuk menyimpan data, selanjutnya data dimanipulasi melalui variabel.

1. Assignment
Variabel diberi nilai (= data) melalui assignment.
Variabel tidak perlu dideklarasikan sebelum diberi nilai.

$a = 1000;
$b = 'ini adalah string';
$c = “string ini bergabung dengan '$b' “;

Jika ekspresi mengacu ke variabel yang belum didefinisikan tidak menyebabkan error.

echo $a, $b, $c, “\n”;

Assignment ke variabel dapat menghasilkan data baru (dengan nilai yang sama), atau tidak menghasilkan data baru tapi hanya menghasilkan referensi baru.

$a = 1234;
$b = $a; # $b berisi sama dengan a

Pada PHP 5, assignment dari variabel (yang diassign
ke) objek ke variabel lain, tidak menyebabkan adanya data baru, tapi hanya menghasilkan referensi baru.
1. /* REQUIRE PHP 5 */
2. class Koordinat
3. {
4. function Koordinat($x, $y) {
5. $this>
X = $x;
6. $this>
Y = $y;
7. }
8. }
9. $k1 = new Koordinat(5,5);
10.$k2 = $k1;
11. $k2>
X += 222; # X di $k2 diubah = 227
12.echo $k1>
X ,"\n"; # X $k1 juga berubah = 227

Untuk mendapatkan hasil yang sama di PHP 4, perlu menggunakan reference assignment =&,
baris 10 ditulis sbb:
$k2 =& $k1;
Reference assignment =&, juga dapat digunakan untuk variabel primitif:
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 19
$x = 200;
$y =& $x;
$y += 300;
echo $x ,”\n”; # 500

Ekspresi dan Operator
Ekspresi adalah segala sesuatu yang memiliki nilai. Ekspresi meliputi nilai literal, pemanggilan fungsi yang mengembalikan nilai, hasil operasi, termasuk assignment. Assignment dalam PHP memiliki nilai dan adalah ekspresi juga. Hal ini dapat menjadi sumber error yang tidak mudah ditemukan, ketika yang ingin dilakukan adalah uji kesamaan (equality ==) :
# program berikut ini contoh penggunaan ekspresi yang SALAH

$a = 123;
if ($a = 100 0) { # selalu TRUE, seharusnya $a == 1000
echo “$a sama dengan 1000\n”;
}
$b = 0;
if ($b = 0 ) { # selalu FALSE seharusnya $b == 0
echo “$b sama dengan 0\n”;
}
Pada bagian berikutnya dibahas berbagai operator, setiap penjelasan langsung menggunakan
contoh.

Operator aritmetika
Berlaku untuk tipe data bilangan. penjumlahan, perkalian, pembagian, pengurangan, modulus.
$a = 10; $b = 20;
$c = $a + $b; // penjumlahan , hasil 30
$c = $a ­
$b; // pengurangan , hasil ­10
$c = $a * $b; // perkalian , hasil 200
$c = $a / $b; // pembagian , hasil 0.5
$c = $a % $b; // modulus, hasil 10

Operator incrementing/decrementing
Menambah atau mengurangi bilangan dengan 1, terdiri atas:
postincrement,
preincrement,
postdecrement,
predecrement.

$a = 10;
$b = $a++; // postincrement
echo "b == $b , a == $a \n"; // b == 10 , a == 11
$b = ++$a; // preincrement
echo "b == $b , a == $a \n"; // b == 12 , a == 12
$b = $a;
// postdecrement
echo "b == $b , a == $a \n"; // b == 12 , a == 11
$b = ­$
a; // predecrement
echo "b == $b , a == $a \n"; // b == 10 , a == 10
Operator assignment
Assignment menghasilkan nilai baru sesuai nilai expresi disebelah kanan operator =.
$a = 10;
$c = ($b = 10) + $a; // $c == 20, $b == 10
$a += 10; // $a == 20
$c = ($b += 10) + $a; // $c == 40, $b == 20, $c == 20

Operator Perbandingan
Membandingkan antara 2 nilai. Berikut ini operasi dan contohnya:

Ternary
ekspresi1 ? ekspresi2 : ekspresi3
Operator '?' ini mengembalikan nilai ekspresi2 jika ekspresi1 bernilai TRUE dan
mengembalikan nilai ekspresi3 jika ekspresi1 bernilai FALSE.
// ternary
$hasil = true ? 'benar':'salah';
echo $hasil , "\n"; // benar
$hasil = false ? 'benar':'salah';
echo $hasil , "\n"; // salah

Equal
ekspresi1 == ekspresi2
Operator '==' ini hanya menghasilkan nilai TRUE jika nilai ekspresi1 samadengan nilai
ekspresi2, jika tipe data kedua ekspresi berbeda maka sebelum operasi dijalankan ekspresi2
dikonversikan tipe datanya ke tipe data ekspresi1.
// eq ual
$a = 10; $b = '10';
echo $a == $b ? 'true':'false' , "\n"; // true
3.5.4.3.Identical
ekspresi1 === ekspresi2
Operator '===' ini hanya menghasilkan nilai TRUE jika nilai ekspresi1 samadengan nilai
ekspresi2 dan tipe data kedua nilai ekspresi sama.
// identical
$a = 10; $b = '10'; $c = 10;
echo $a === $b ? 'true':'false' , "\n"; // false
echo $a === $c ? 'true':'false' , "\n"; // true

Not Equal
ekspresi1 != ekspresi2
ekspresi1 <> ekspresi2
Operator '!=' dan '<>' ini hanya menghasilkan nilai TRUE jika nilai ekspresi1 tidak
samadengan nilai ekspresi2, jika tipe data kedua ekspresi berbeda maka sebelum operasi
dijalankan ekspresi2 dikonversikan tipe datanya ke tipe data ekspresi1.
// not eq ual
$a = 10; $b = '10'; $c =11;
echo $a != $b ? 'true':'false' , "\n"; // false
echo $a != $c ? 'true':'false' , "\n"; // true
// not eq ual
$a = 10; $b = '10'; $c =11;
echo $a <> $b ? 'true':'false' , "\n"; // false
echo $a <> $c ? 'true':'false' , "\n"; // true
3.5.4.5.Not Identical
ekspresi1 !== ekspresi2
Operator '!==' hanya menghasilkan nilai TRUE jika nilai ekspresi1 tidak samadengan nilai
ekspresi2 dan tipe data kedua nilai ekspresi sama.
// not identical
$a = 10; $b = '10'; $c = 10;
echo $a !== $b ? 'true':'false' , "\n"; // true
echo $a !== $c ? 'true':'false' , "\n"; // false
Operator greater than(>), smaller than(<), greater equals(>=), smaller equals (<=) ekspresi1 > ekspresi2
ekspresi1 <>= ekspresi2
Keempat operator ini membandingkan nilai ekspresi1 dan ekspresi2, operasi baru dijalankan
setelah melakukan konversi tipe jika ekspresi2 berbeda tipedata dengan ekspresi1
$a = 10; $b = 11; $c = 10;
echo $a > $b ? 'true':'false' ,"\n"; // false
echo $a < $b ? 'true':'false' ,"\n"; // true echo $a <= $c ? 'true':'false' ,"\n"; // true echo $a >= $c ? 'true':'false' ,"\n"; // true

Operator Logika

Logical AND
ekspresi1 and ekspresi2
Menghasilkan nilai TRUE jika ekspresi1 dan ekspresi2 keduanya bernilai TRUE.
//and
echo (true and true)?'true':'false',"\n"; // TRUE
echo (true and false)?'true':'false',"\n"; // FALSE
echo (false and false)?'true':'false',"\n"; // FALSE
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 23

Logical OR
ekspresi1 or ekspresi2
Operator OR menghasilkan nilai TRUE jika ada salah satu dari ekspresi1 dan ekspresi2
bernilai TRUE.
// or
echo (true or true)?'true':'false',"\n"; // TRUE
echo (true or false)?'true':'false',"\n"; // TRUE
echo (false or false)?'true':'false',"\n"; // FALSE

Logical XOR
ekspresi1 xor ekspresi2
Operator XOR menghasilkan nilai TRUE jika salah satu dari ekspresi1 dan ekspresi2 bernilai
TRUE, tapi tidak keduaduanya.
// xor
echo (true xor true)?'true':'false',"\n"; // FALSE
echo (true xor false)?'true':'false',"\n"; // TRUE
echo (false xor false)?'true':'false',"\n"; // FALSE
3.5.5.4.Logical NOT
! ekspresi1
Operator NOT menghasilkan nilai TRUE jika ekspresi1 bernilai FALSE, dan menghasilkan
nilai FALSE jika ekspresi1 bernilai TRUE.

Logical AND (&&)
Samadengan operator AND sebelumnya tapi precedence nya lebih tinggi,
// &&
echo (true && true)?'true':'false',"\n"; // TRUE
echo (true && false)?'true':'false',"\n"; // FALSE
echo (false && false)?'true':'false',"\n"; // FALSE

Logical OR (||)
Samadengan operator OR sebelumnya tapi precedence nya lebih tinggi.
// ||
echo (true || true)?'true':'false',"\n"; // TRUE
echo (true || false)?'true':'false',"\n"; // TRUE
echo (false || false)?'true':'false',"\n"; // FALSE
Operatir || lebih tinggi precedencenya dari or
echo (true xor false || true) ? 'true':'false',"\n"; // FALSE
echo (true xor false or true) ? 'true':'false',"\n"; // TRUE

PHP melakukan optimasi pada ekspresi yang menggunakan operator logika. Contoh:
ekspresi1 && ekspresi2 && ekspresi3
Pada ekspresi tersebut jika ekspresi1 bernilai FALSE maka ekspresi2 dan ekspresi3 tidak
akan dieksekusi. Begitu juga pada contoh berikut:
ekspresi1 || ekspresi2 || ekspresi3
Pada ekspresi tersebut jika ekspresi1 bernilai TRUE maka ekspresi2 dan ekspresi3 tidak akan dieksekusi.

Operator bit
Operator ini berlaku untuk integer dan karakter ASCII.

Bitwise AND
b1 & b2
Menghasilkan bit yang diset
jika bit1 dan bit2 juga diset.
// 9 = 1001
// 10 = 1010
echo 9 & 10,"\n"; // 8 = 1000
3.5.6.2.Bitwise OR
b1 | b2
Menghasilkan bit yang diset
jika salah satu dari bit1 dan bit2 diset
echo 9 | 10,"\n"; // 11 = 1011
3.5.6.3.Bitwise XOR
b1 ^ b2
Menghasilkan bit yang diset
jika salah satu dari bit1 dan bit2 diset,
tapi tidak keduanya.
echo 9 ^ 10,"\n"; // 3 = 0011
Bitwise NOT
~b1
Menghasilkan bit yang diset
jika b1 tidak diset,
dan kebalikannya
Shift left (geser bit ke kiri)
b1 << 20 =" 10100">> n
Menggeser bit b1 sebanyak n ke kanan.
Setiap pergeseran satu bit sama dengan “bagi dengan 2”
echo 10 >> 1, "\n"; // 5 = 0101
Operator String
Operator dot (titik) digunakan untuk menggabungkan string dengan string atau tipe data
lainnya.
Contoh:
$a = 'saya...';
$b = 'belajar php';
$c = $a . $b; // 'saya...belajar php'

Label:

0 Komentar:

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda