Professional Documents
Culture Documents
Program Reguler
LP3T NurulFikri, 2010 Sirojul Munir
PHP Dasar
DAFTAR ISI
DAFTAR ISI.....................................................................................................................................i Kata Pengantar................................................................................................................................iv Bab 1Pengenalan PHP.....................................................................................................................1 1.1 Tujuan:..................................................................................................................................1 1.2 Scripting................................................................................................................................1 1.2.1 Client Side Scripts.........................................................................................................1 1.2.2 Server site scripts...........................................................................................................2 1.3 Apa itu PHP ?........................................................................................................................2 1.4 Mengapa PHP ?.....................................................................................................................2 1.5 Instalasi Apache dan PHP.....................................................................................................3 1.6 Pengecekan web server (apache) support PHP.....................................................................4 Bab 2Dasar-dasar PHP.....................................................................................................................5 2.1 Tujuan:..................................................................................................................................5 2.2 Struktur Program PHP ..........................................................................................................5 2.3 Variabel, tipe data, dan konstanta..........................................................................................6 2.3.1 Variabel..........................................................................................................................6 2.3.2 Tipe data .......................................................................................................................9 2.3.3 Konstanta.......................................................................................................................9 2.4 Operator..............................................................................................................................10 2.4.1 Operator Aritmatika.....................................................................................................10 2.4.2 Operator Assignment ..................................................................................................11 2.4.3 Operator Bitwise .........................................................................................................11 2.4.4 Operator perbandingan................................................................................................11 2.4.5 Operator Error Control................................................................................................12 2.4.6 Operator Eksekusi.......................................................................................................13 2.4.7 Operator incrementing/decrementing..........................................................................13 2.4.8 Operator logika............................................................................................................14 2.4.9 Operator String ...........................................................................................................14 2.4.10 Operator Array...........................................................................................................14 2.5 Bekerja dengan Form HTML..............................................................................................15 Bab 3Struktur Kendali...................................................................................................................17 3.1 Tujuan:................................................................................................................................17 3.2 Pernyataan seleksi...............................................................................................................17 3.2.1 Pernyataan if ..............................................................................................................17 3.2.2 Pernyataan else............................................................................................................18 3.2.3 Pernyataan elseif..........................................................................................................18 3.2.4 Pernyataan switch........................................................................................................19 3.3 Pernyataan Perulangan........................................................................................................19 3.3.1 Pernyataan for .............................................................................................................19 3.3.2 Pernyataan while.........................................................................................................20 3.3.3 Pernyataan do ... while...............................................................................................21 3.3.4 Pernyataan foreach......................................................................................................21 3.3.5 Pernyataan break.........................................................................................................22 3.3.6 Pernyataan continue....................................................................................................22 3.4 Pernyataan require & include..............................................................................................23 LP3T NurulFikri i
PHP Dasar
3.4.1 require..........................................................................................................................23 3.4.2 include.........................................................................................................................24 3.5 Beberapa Jenis Error...........................................................................................................24 3.5.1 Contoh Pesan Error.....................................................................................................24 3.5.2 Error Level..................................................................................................................25 Bab 4Data Lanjutan.......................................................................................................................27 4.1 Tujuan:................................................................................................................................27 4.2 String...................................................................................................................................27 4.2.1 Single quoted ..............................................................................................................27 4.2.2 Double quoted ............................................................................................................27 4.2.3 Heredoc.......................................................................................................................28 4.3 Mengakses String sebagai karakter.....................................................................................28 4.4 Konversi data menjadi string..............................................................................................29 4.5 Fungsi fungsi string..........................................................................................................29 4.5.1 addslashes....................................................................................................................29 4.5.2 strlen............................................................................................................................30 4.5.3 rtrim.............................................................................................................................30 4.5.4 ltrim.............................................................................................................................30 4.5.5 trim..............................................................................................................................30 4.5.6 explode........................................................................................................................31 4.5.7 implode........................................................................................................................31 4.5.8 substr...........................................................................................................................32 4.6 Type Casting........................................................................................................................32 4.7 Array....................................................................................................................................33 4.7.1 Mambuat Array............................................................................................................33 4.7.2 Mengakses elemen-elemen array................................................................................35 4.7.3 Menghapus elemen array.............................................................................................36 4.7.4 Nested Array................................................................................................................36 4.7.5 Fungsi-fungsi array......................................................................................................36 Bab 5Fungsi...................................................................................................................................39 5.1 Tujuan:................................................................................................................................39 5.2 Apa itu fungsi ?...................................................................................................................39 5.3 Sintaks Fungsi ....................................................................................................................39 5.4 Fungsi yang didefinisikan user...........................................................................................39 5.5 Argumen di dalam fungsi....................................................................................................40 5.6 Nilai balik fungsi (Returning Values).................................................................................41 5.7 Variable Scope.....................................................................................................................42 5.8 Memanggil Fungsi dari File lain.........................................................................................43 Bab 6Session..................................................................................................................................44 6.1 Tujuan:................................................................................................................................44 6.2 Apa itu session ?..................................................................................................................44 6.3 Variabel-variabel session.....................................................................................................44 6.4 Fungsi-fungsi session .........................................................................................................45 6.5 Contoh penggunaan session................................................................................................46 Bab 7Pengenalan OOP dengan PHP5............................................................................................47 7.1 Tujuan :...............................................................................................................................47 7.2 Apa itu OOP ?.....................................................................................................................47 7.3 Class dan Object..................................................................................................................47 7.3.1 Mendefinisikan Class..................................................................................................47 LP3T NurulFikri ii
PHP Dasar
7.3.2 Mendefinisikan Object................................................................................................48 7.4 Member Class.....................................................................................................................48 7.4.1 Variabel........................................................................................................................49 7.4.2 Konstruktor..................................................................................................................49 7.4.3 Fungsi .........................................................................................................................50 7.5 Akses Member Class...........................................................................................................50 7.5.1 Kata Kunci $this..........................................................................................................50 7.5.2 Akses Static Member Class.........................................................................................51 7.5.3 Akses variabel konstan................................................................................................51 Bab 8Fungsi-fungsi PHP - MySQL..............................................................................................53 8.1 Tujuan :...............................................................................................................................53 8.2 Memanggil Fungsi..............................................................................................................53 8.3 Tersambung ke MySQL dengan PHP.................................................................................53 8.4 Memilih Database...............................................................................................................54 8.5 Mengirim Query..................................................................................................................55 8.6 Menambah data ke basis data..............................................................................................56 8.7 Mengambil hasil query dengan select.................................................................................57 8.8 Fungsi-fungsi MySQL lainnya............................................................................................58 Bab 9Pustaka Database PDO.........................................................................................................60 9.1 Tujuan:................................................................................................................................60 9.2 Lapisan Abstraksi Database................................................................................................60 9.3 PDO : Portable Data Objects..............................................................................................61 9.4 Koneksi ke database ...........................................................................................................61 9.4.1 Koneksi ke database MySQL......................................................................................61 9.4.2 Koneksi ke database PostgreSQL................................................................................62 9.4.3 Koneksi melalui ODBC...............................................................................................62 9.4.4 Menangkap eksepsi kesalahan ....................................................................................62 9.5 Fungsi-Fungsi pada PDO....................................................................................................63 9.5.1 Fungsi exec( ) .............................................................................................................63 9.5.2 Fungsi query() ............................................................................................................64 9.5.3 Fungsi execute() .........................................................................................................64 9.5.4 Fungsi fectch() ...........................................................................................................65 9.5.5 Fungsi fectchAll() ......................................................................................................65 9.5.6 Fungsi rowCount()......................................................................................................66 9.5.7 Tips Error Buffered Query...........................................................................................66 Daftar Pustaka................................................................................................................................67
LP3T NurulFikri
iii
PHP Dasar
Kata Pengantar
Assalamualaikum Wr.Wb Alhamdulillah, puji syukur kami haturkan kehadirat Allah SWT semata. Atas berkat rahmat dan hidayahnya Modul atau Buku PHP & MySQL telah ada di tangan anda ini, Modul ini digunakan sebagai panduan belajar bahasa pemrograman PHP 5. Modul PHP dan MySQL ini dirancang untuk paket kursus selama 24 Jam, diharapkan dengan mengikuti paket kursus PHP & MySQL ini peserta dapat mengenal dan memahami bahasa pemrograman PHP untuk dapat diimplementasikan pada pengembangan aplikasi berbasis web, serta dapat mengembangkan dan menggunakan PHP sebagai bahasa alternatif untuk pengembangan teknologi informasi. Sebagaimana teknologi informasi yang terus semakin berkembang, Buku materi PHP & MySQL diharapkan akan tetap relevan dengan teknologi yang ada saat ini. Kritik dan saran dari para pembaca dan pengguna buku ini sangat kami harapkan untuk membantu dalam perbaikan buku ini. Akhir kata, kami ucapkan banyak terima kasih kepada semua pihak yang telah membantu penulisan buku ini, Mudah-mudahan apa yang telah kita hasilkan ini menjadi amal baik dan ilmu yang ada dalam buku ini dapat bermanfaat bagi peserta dan tentu saja bagi perkembangan dunia pemrograman di Indonesia. Wassalamualaikum Wr.Wb Jakarta, 1 Maret 2010
Sirojul Munir
LP3T NurulFikri
iv
PHP Dasar
1.2 Scripting
Jika Anda membuat halaman web mungkin anda akan bertanya pada diri sendiri , mengapa Anda memerlukan script programming atau web scripting (bahasa pemrograman web). Sebagian orang merasa static web pages dalam HTML memiliki fitur yang cukup untuk menampilkan semua informasi yang penting. Pada permulaan terciptanya komunikasi data via world wide web , HTML adalah langkah pertama dalam mendesain dan membuat sebuah web site (situs) . Setelah itu , banyak orang menginginkan dapat membawa dynamic content kedalam sebuah web site. Sebagai contoh : pengunjung web site Anda ingin mengirim email kepada Anda melalui halaman web site Anda. Sebagian besar web server yang berjalan di platform UNIX atau Linux, dapat menyediakan atau menggunakan perintah sendmail yang disertakan sistem tersebut secara built-in untuk mengirim email secara langsung dari web server. Untuk itulah, sebuah antarmuka (interface) dikembangkan untuk memungkinkan seorang web designer untuk memanggil external programs seperti sendmail dari halaman web. Antarmuka (interface) ini disebut dengan CGI (Common Gateway Interface). Sekarang , Sekarang setiap webmaster dapat membangun sebuah formulir contact pada halaman web nya yang akan mengirimkan semua informasi penting secara langsung dari web browser ke program email seperti sendmail. Ada dua buah jenis web scripting di internet yaitu:
Client site scripts (Client side language) Server site scripts (Server side language)
1.2.1
Script ini dijalankan disisi client dalam hal ini disisi web browser milik user. Kode HTML yang mengandung perintah-perintah khusus seperti JavaScript akan dieksekusi oleh browser. Browser bertanggung jawab untuk mengeksekusi script tersebut. Ini juga berarti bahwa script bergantung pada performa dan kemampuan dari sisi komputer client. Beberapa contoh client side scripts yaitu: 1. JavaScript 2. VBScript 3. Java Applets 4. Flash Movies
www.nurulfikri.com 7874223 / 24
PHP Dasar
Server site scripts dijalankan oleh web server. Disini client(browser) hanya menerima hasil sebagai halaman HTML yang lengkap. Browser kemudian akhirnya akan menampilkan halaman HTML bukan kode-kode script. Beberapa contoh server side scripts yaitu:
Perl/CGI Java Servlets Java Server Pages (JSP) Allaire Cold Fusion Active Server Pages (ASP) PHP
Program Reguler & Inhouse Adabas D dBase Empress FilePro (read-only) Hyperwave IBM DB2 Informix Ingres InterBase FrontBas mSQL Direct MS-SQL MySQL ODBC
PHP Dasar Oracle (OCI7 and OCI8) Ovrimos PostgreSQL Solid Sybase Velocis Unix dbm
5. PHP juga banyak mendukung protokol-protokol untuk dapat berkomunikasi dengan service-service seperti LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) dan banyak lagi lainnya. 6. PHP berlisensi GPL, bersifat gratis dan terbuka dalam menggunakannya.
Pada beberapa distribusi lain keyword httpd diganti dengan keyword apache Jika terdapat output seperti diatas (catatan: nomor versi aplikasi bisa berbeda dengan yang ada pada komputer Anda) berarti aplikasi web servernya sudah diinstal, jika belum terinstal maka instal dahulu web servernya sbb:
# rpm -ivh httpd-2.0.40-8.i386.rpm
Langkah berikutnya Anda melakukan instalasi PHP. Cek apakah pada komputer Anda sudah terinstal PHP sbb:
# rpm -|grep php php-4.2.2-8.0.5
www.nurulfikri.com 7874223 / 24
PHP Dasar
Lalu coba cek dengan menggunakan browser dan ketikkan pada bar address http://localhost/info.php atau http://127.0.0.1/info.php .
Gambar 1.1 : php info Jika tampak seperti Gambar-1 maka apache web server Anda memang sudah mendukung PHP.
www.nurulfikri.com 7874223 / 24
PHP Dasar
Memahami struktur penulisan program php Memahami variabel, tipe data, konstanta, dan operator php Mampu membuat program php dan bekerja dengan form html
3. Script PHP bisa disisipkan atau ditulis bersamaan dengan text HTML. Contoh:
1 <HTML> 2 <HEAD> <TITLE> Script PHP ku </TITLE> </HEAD> 3 <BODY> 4 <H1>Welcome </H1> 5 Welcome to My First PHP Script Room<BR> 6 <?php 7 echo <H2> This is my firest script </H2>; 8 ?> 9 <BR> 10 <B> Thank's for visting </B> 11 </BODY> 12 </HTML>
4. Didalam sebuah file script php bisa terdapat beberapa pasangan tag pembuka dan penutup php yang didalam atau diantara tag pembuka dan penutup script php tersebut terdapat kode atau script-script php. Contoh:
1 <HTML> 2 <HEAD> <TITLE> Script PHP ku </TITLE> </HEAD> 3 <BODY> 4 <H1>Welcome </H1>
www.nurulfikri.com 7874223 / 24
PHP Dasar
5. Setiap script atau perintah php diakhiri dengan tanda semicolon( ; ). 6. Script atau perintah php dapat ditulis berderet memanjang dalam satu baris dengan setiap perintah diakhiri dengan tanda semicolon( ; ), tetapi lebih rapih dan tertib kalau ditulis tidak dalam stau baris yang sama. 7. Penulisan komentar atau keterangan dimungkinkan dalam script php , Contoh:
1 <?php echo "Ini Test aja"; // Ini seperti style komentar javascript 2 /* Ini komentar multi line 3 Ini juga bagian komentar multiline diatas 4 */ 5 echo "Ini Test juga"; 6 echo "Ini Test terakhir"; # Ini seperti style komentar shell ?>
Variabel adalah tempat atau wadah untuk menyimpan suatu nilai selama program berjalan didalam memori komputer. Variabel dalam PHP dinyatakan dengan sebuah nama yang diawali dengan tanda dollar ($). Nama variabel bersifat case-sensitive. Nama variabel diawali dengan karakter huruf alphabet atau underscore, seterusnya diikuti oleh sejumlah huruf, angka, atau underscores. Contoh:
1 <?php 2 $var = 'Rosalie'; 3 $Var = "Alissa"; 4 echo "$var, $Var"; // outputs "Rosalie, Alissa" 5 $4site = 'hello Faiz'; // invalid; dimulai dengan nomor 6 $_4site = 'hello'; // valid; dimulai dengan underscore ?>
PHP Dasar
sebuah pernyataan (expressions) ke sebuah variabel, seluruh nilai dari pernyataan aslinya akan dikopikan kedalam variabel tujuannya. Kejadian Ini berarti, bahwa setelah memberikan nilai sebuah variabel kedalam variabel lainnya, maka perubahan terhadap nilai-nilai dalam variabel ini tidak akan mempengaruhi nilai dari variabel yang lainnya. Contoh:
1 <?php 2 $words = Hello World; 3 $_words = $words; 4 5 echo Isi Variabel \$words : $words \n; 6 echo <br>Isi Variabel \$_words : $_words \n; 7 8 $words = Hello Juga; // perubahan nilai sebuah variabel 9 10 echo <br>Setelah merubah nilai variabel \$words 11 echo <br>Isi Variabel \$words : $words \n; 12 echo <br>Isi Variabel \$_words : $_words \n; 13 ?>
PHP menyediakan suatu pemberian nilai sebuah variabel dengan memberikan referensi sebuah variabel. Ini berarti bahwa sebuah variabel baru secara sederhana dapat merujuk (pointer) ke variabel asalnya. Sehingga setiap perubahan nilai dari variabel asal akan mempengaruhi juga variabel baru tersebut dan sebaliknya. Contoh:
1 <?php 2 $words = Hello World; 3 $_words = & $words; //pemberian nilai variabel dengan referensi variabel 4 5 echo Isi Variabel \$words : $words \n; 6 echo <br>Isi Variabel \$_words : $_words \n; 7 8 $words = Hello Juga; //perubahan nilai sebuah variabel 9 10 echo <br>Setelah merubah nilai variabel \$words 11 echo <br>Isi Variabel \$words : $words \n; 12 echo <br>Isi Variabel \$_words : $_words \n; 13 14 $_words = Hello Lagi; 15 echo <br>Setelah merubah nilai variabel \$words 16 echo <br>Isi Variabel \$words : $words \n; 17 echo <br>Isi Variabel \$_words : $_words \n; 18 ?>
Selain variabel yang didefinisikan oleh user php juga menyediakan variabel-variabel yang telah didefinisikan oleh php, seperti variabel $_SERVER yang merupakan array yang berisi informasi mengenai headers,path serta lokasi script, $_ENV, $_REQUEST, $_GET, $_POST, $_COOKIE, $_FILES , dan $_SESSION. Jangkauan sebuah variabel adalah sesuai dengan context dimana variabel tersebut didefinisikan. Sebagian besar variabel dalam PHP merupakan single scope. Variabel single scope ini memilki jangkauan sampai dalam file-file yang disipkan. Contoh:
www.nurulfikri.com 7874223 / 24
PHP Dasar
Variabel $a dalam contoh diatas dapat dijangkau juga oleh file tes.php. Tetapi variabel single scope tidak dapat dijangkau dalam sebuah fungsi. Contoh:
1 <?php 2 $a = 1; 3 function Test() 4 { 5 echo $a; 6 } 7 Test(); 8 ?>
Jika script diatas dieksekusi pada browser maka tidak akan menghasilkan output apapun. Hal ini terjadi karena variabel $a diatas tidak dapat dijangkau oleh fungsi Test(). Agar variabel $a dapat dijangkau oleh fungsi Test() maka variabel $a tersebut pada fungsi Test() perlu dideklrasikan kembalikan dengan menggunakan keyword global. Contoh:
1 <?php 2 $a = 1; 3 function Test() 4 { 5 global $a; 6 echo $a; 7 } 8 Test(); 9 ?>
Atau Anda dapat menggunakan built-in variabel $GLOBALS, variabel $GLOBALS ini merupakan array asosiatif . Contoh:
1 <?php 2 $a = 1; 3 $b = 2; 4 function Test() 5 { 6 echo $GLOBALS[a]; 7 echo <br>; 8 echo $GLOBALS[a]; 9 } 10 Test(); 11 ?>
www.nurulfikri.com 7874223 / 24
PHP Dasar
catatan: Kita akan bertemu lagi dengan pembahasan variabel scope pada bab selanjutnya (bab. Fungsi) 2.3.2 Tipe data PHP mendukung 8 tipe data, yaitu: 1. boolean 2. integer 3. float (double) 4. string atau text 5. array 6. object 7. NULL 8. resource
1 <?php 2 $bool = TRUE ; // boolean 3 $str = "wow"; // string 4 $int = 10 ; // integer 5 6 echo gettype($bool); // mencetak "boolean" 7 echo gettype($str); // mencetak "string" 8 9 // Jika integer , maka naikkan atau tambah dengan 4 10 if (is_int($int)) { 11 $int += 4; 12 } 13 14 // Jika $bool adalah string, maka cetak 15 // jika tidak jangan mencetak apapun 16 if (is_string($bool)) { 17 echo "String: $bool"; 18 } 19 ?>
Mengenai lebih jauh tipe data string, array dan object akan dibahas pada bab yang lainnya. 2.3.3 Konstanta
Konstanta adalah sebuah nama (identifier) dari sebuah nilai sederhana. Sebagaimana namanya, nilai dari konstanta tidak dapat dirubah selama proses pengeksekusian script PHP atau selama program berjalan. Penamaan konstanta sama seperti variabel. Hanya saja untuk mendefinisikan konstanta Anda perlu menggunakan kata kunci define.
Contoh:
www.nurulfikri.com 7874223 / 24
PHP Dasar
1 <?php 2 define("CONSTANT", "Hello world."); 3 echo CONSTANT; // output "Hello world." 4 echo Constant; // output "Constant" 5 define("PHI", 3.14); 6 $jari = 8; 7 $luas_lingkaran = PHI * $jari * $jari; 8 echo 'Luas Lingkaran dengan jari '.$jari.' : '.$luas_lingkaran; ?>
2.4 Operator
Operator adalah sesuatu yang diberikan umpan berupa satu atau beberapa nilai (values) atau pernyataan-pernyataan, yang menghasilkan nilai (values) yang lainnya. PHP mendukung beberapa operator diantaranya, sebagai berikut: 2.4.1 Operator Aritmatika Contoh
$a + $b $a - $b $a * $b $a / $b $a % $b
Nama
Addition Subtraction Multiplication Division Modulus
Deskripsi
Jumlah dari $a dan $b. Selisih dari $a dan $b. Perkalian dari $a dan $b. Pembagian dari $a dan $b. Sisa pembagian dari $a dan $b.
1 <?php 2 $a = 1; 3 $b = 2; 4 $c = 4; 5 $d = 8; 6 $e = 3; 7 echo $a + $b; 8 echo <br> 9 echo $d - $b; 10 echo <br> 11 echo $a * $b; 12 echo <br> 13 echo $d / $c; 14 echo <br> 15 echo $d % $e; 16 ?>
www.nurulfikri.com 7874223 / 24
10
PHP Dasar
Dasar dari operator Assignment adalah = (sama dengan), operator ini sering digunakan untuk pendefinisian nilai dari sebuah variabel atau pendefinisian suatu variabel dengan pernyataan. 2.4.3 Operator Bitwise
Operator bitwise memungkinkan Anda merubah atau membalik bit-bit tertentu dalam sebuah bilangan integer on (1) atau off (0). Jika parameter-paramter sebelah kiri dan kanan dari opeartor bitwise adalah string , maka operator ini akan mengoperasikannya pada karakterkarakter dari string tersebut.
Contoh
$a & $b And
Nama
Deskripsi Bit-bit yang di set on(1) pada variabel $a dan $b di operasikan and menghsailkan nilai bit on(1) Bit-bit yang diset on(1) pada salah satu variabel $a atau $b menghsailkan nilai bit on(1) Bit-bit yang diset on(1) pada salah satu dari $a atau $b tetapi tidak boleh bit-bit pada kedua variabel terebut bernilai sama (on dua-duanya atau off) akan menghasilkan nilai bit on(1) Bit-bit yang diset on(1) sebaliknya. pada variabel $a akan menjadi off(0) dan
$a | $b
Or
$a ^ $b
Xor
~ $a
Not
Menggeser kekiri bit-bit dari $a sebesar $b bit (steps) Menggeser kekanan bit-bit dari $a sebesar $b bit (steps)
1 <?php 2 $a = 7 ; 3 $b = 2 ; 4 echo $a << $b; 5 echo <br>; 6 echo $a >> $b; 7 ?>
2.4.4
Operator perbandingan
Sesuai dengan namanya operator ini membandingkan dua buah nilai (values). Biasanya operator ini digunakan dalam proses seleksi ataupun perulangan.
Contoh
$a == $b Equal
Nama
Deskripsi
TRUE jika $a sama dengan $b.
www.nurulfikri.com 7874223 / 24
11
PHP Dasar
Deskripsi
TRUE jika $a sama dengan $b, dan memiliki tipe data yang sama (PHP 4 only) TRUE jika $a tidak sama dengan $b. TRUE jika $a tidak sama dengan $b. TRUE jika $a tidak sama dengan $b, atau keduanya tidak memiliki tipe data yang sama .(PHP 4 only) TRUE jika $a lebih kecil dari $b. TRUE jika $a lebih besar dari $b. TRUE jika $a lebih kecil atau sama dengan $b. TRUE jika $a lebih besar atau sama dengan $b.
Nama
1 <?php 2 $a = 1; 3 $b = 1; 4 $c = Hello; 5 if ( $a == $b) { echo a dan b Sama ;} 6 if ( $a !== $b) { echo a dan b Sama tetapi tidak identik ;} 7 if ( $a <> $c) { echo a dan c tidak Sama ;} 8 ?>
2.4.5
PHP mendukung sebuah operator kontrol atau kendali error yang ditandai dengan tanda (@). Jika operator ini disertakan diawal sebuah peryataan dalam PHP, maka suatu pesan error atau kesalahan dari suatu pernyataan yang biasanya ditampilkan atau dicetak pada browser akan diabaikan.
1 //File. coba1.php 2 <?php 3 $my_file = @file ('non_existent_file') or die ("Failed opening file: error waktu buka file"); 4 ?>
Pada contoh diatas maka pesan error atau kesalahan pada saat membuka file yang tidak exist terjadi pada file coba2.php. Fungsi die() pada contoh file coba1.php berguna mencetak
www.nurulfikri.com 7874223 / 24
12
Program Reguler & Inhouse suatu pesan buatan user. 2.4.6 Operator Eksekusi
PHP Dasar
Operator eksekusi (backticks .` `) akan menyebabkan PHP mengeksekusi perintahperintah yang ada dalam tanda backticks (` `) sebagai peritah-perintah shell linux.
Operator ini berfungsi kalau pada file konfigurasi PHP (biasanya /etc/php.ini) variabel safe_mode di off-kan (di disable). 2.4.7 Operator incrementing/decrementing PHP mendukung operator C-Style pre- dan post-increment dan decrement . Example
++$a $a++ --$a $a--
Name
Pre-increment Post-increment Pre-decrement Post-decrement
Effect
Increments $a by one, then returns $a. Returns $a, then increments $a by one. Decrements $a by one, then returns $a. Returns $a, then decrements $a by one.
1 <?php 2 echo "<h3>Postincrement</h3>"; 3 $a = 5; 4 echo "Should be 5: " . $a++ . "<br>\n"; 5 echo "Should be 6: " . $a . "<br>\n"; 6 7 echo "<h3>Preincrement</h3>"; 8 $a = 5; 9 echo "Should be 6: " . ++$a . "<br>\n"; 10 echo "Should be 6: " . $a . "<br>\n"; 11 12 echo "<h3>Postdecrement</h3>"; 13 $a = 5; 14 echo "Should be 5: " . $a-- . "<br>\n"; 15 echo "Should be 4: " . $a . "<br>\n"; 16 17 echo "<h3>Predecrement</h3>"; 18 $a = 5; 19 echo "Should be 4: " . --$a . "<br>\n";
www.nurulfikri.com 7874223 / 24
13
PHP Dasar
2.4.8
Deskripsi
TRUE jika keduanya $a dan $b adalah TRUE.
$a and $b $a or $b
TRUE jika salah satu dari variabel $a atau $b adalah TRUE. TRUE jika salah satu dari kedua variabel $a dan $b bernilai TRUE, tetapi tidak boleh keduanya bernilai sama. TRUE jika $a bukan TRUE TRUE. $b adalah TRUE. $b
$a xor $b ! $a $a && $b $a || $b
1 <?php 2 $a = 1; 3 $b = 3; 4 $c = ""; 5 if ( $a && $b){ echo "<br>Operasi Logika And "; } 6 if ( $a || $c){ echo "<br>Operasi Logika OR"; } 7 ?>
2.4.9
Operator String
Ada dua buah operator string yaitu operator concatenation (.) dan concatenation assignment (.=). Operator concatenation (.) menggabungkan dua buah string. Sedangkan concatenation assignment menggabungkan nilai argument di sebelah kanan dengan nilai dari argument sebelah kiri.
1 <?php 2 $a = "Hello "; 3 $b = $a . "World!"; // now $b contains "Hello World!" 4 $a = "Hello "; 5 $a .= "World!"; // now $a contains "Hello World!" ?>
www.nurulfikri.com 7874223 / 24
14
Name
Union Equality
TRUE jika array $a dan $b memiliki elementelement yang sama dalam urutan yang sama. TRUE jika array $a tidak sama dengan TRUE jika array $a tidak sama dengan $b. $b. $b.
1 <?php 2 $a = array("a" => "apple", "b" => "banana"); 3 $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry"); 4 5 $c = $a + $b; // Union of $a and $b 6 echo "Union of \$a and \$b: \n"; 7 var_dump($c); 8 9 $c = $b + $a; // Union of $b and $a 10 echo "Union of \$b and \$a: \n"; 11 var_dump($c); ?>
Dari contoh form HTML diatas maka semua data yang dinputkan kedalam form tersebut, nantinya dapat diakses oleh script tes.php dengan beberapa cara, diantaranya seperti terlihat dalam contoh berikut ini:
www.nurulfikri.com 7874223 / 24
15
PHP Dasar
1 <?php 2 // tersedia dalam PHP 4 3 echo 1. . $_POST['username']; //jika method = get , 4 // maka $_GET['username'] 5 echo 2.: . $_REQUEST['username']; 6 7 import_request_variables('p', 'p_'); // jika method = get, maka 8 // import_request_variables('g', 'g_') dan $g_username 9 echo 3. . $p_username; 10 // tersedia sejak PHP 3. 11 // variabel-variabel http post dapat di disable 12 // dengan register_long_arrays directive. 13 echo 4. . $HTTP_POST_VARS['username']; // jika method = get, 14 // maka $HTTP_GET_VARS['username'] 15 16 // tersedia jika directive register_globals = on pada file php.ini . 17 // Sejak PHP 4.2.0 default value dari register_globals = off. 18 19 echo 5. . $username; 20 ?>
www.nurulfikri.com 7874223 / 24
16
PHP Dasar
www.nurulfikri.com 7874223 / 24
17
PHP Dasar
3.2.2
contoh:
1 <?php 2 $a = 23; 3 $b = 17; 4 if ($a > $b) { 5 echo "a lebih besar dari b"; 6 } 7 else { 8 echo "a TIDAK lebih besar dari b"; 9 } ?>
3.2.3
contoh:
1 <?php 2 $a = 23; 3 $b = 17; 4 if ($a > $b) { 5 echo "a lebih besar dari b"; 6 } 7 elseif ($a == $b){ 8 echo "a sama dengan b"; 9 } 10 else { 11 echo "a lebih kecil b"; 12 } ?>
www.nurulfikri.com 7874223 / 24
18
PHP Dasar
Maksud penggunaan dari perintah switch sama dengan if, yaitu sebagai seleksi suatu kondisi. Switch lebih mudah terstruktur dan terbaca, tapi switch pada aturannya memeriksa satu variabel saja. Penulisannya:
switch (var) { case val-1: statement case val-2: statement case val-3: statement .... case val-n: statement default: statement }
contoh:
1 <?php 2 switch ($i) { 3 case 0: 4 echo "i equals 0"; 5 break; 6 case 1: 7 echo "i equals 1"; 8 break; 9 case 2: 10 echo"i equals 2"; 11 break; 12 default: 13 echo i is bigger than 14 } 15 ?>
2 ;
19
PHP Dasar
3.3.2
Contoh:
1 <?php 2 $x = 1; 3 while($x < = 10) 4 { 5 echo $x <br> \n; 6 $x++; 7 } 8 ?>
www.nurulfikri.com 7874223 / 24
20
Program Reguler & Inhouse 3.3.3 Pernyataan do ... while Pernyataan ini sama dengan while. Penulisannya:
do statement while(expr)
PHP Dasar
Contoh:
1 <?php 2 $x = 0; 3 do { 4 echo $x." <br> \n"; 5 $x++; 6 } 7 while($x <= 10); 8 ?>
3.3.4
Contoh:
1 <?php 2 // contoh 1 3 $a = array(1, 2, 3, 17); 4 foreach ( $a as $v ) { 5 echo $v <br>\n; 6 } 7 8 // contoh 2 9 10 $a = array( 11 "satu" => 1, 12 "dua" => 2, 13 "tiga" => 3, 14 "empat" => 17 15 ); 16 17 foreach ($a as $k => $v) { 18 echo "\$a[$k] => $v.\n"; 19 } 20 ?>
www.nurulfikri.com 7874223 / 24
21
PHP Dasar
break berguna untuk mengakhiri eksekusi dari perintah for, foreach while, do..while atau switch . break dapat menerima argument berupa angka (opsional) yang akan mengatakan kepada break tentang berapa banyak jumlah struktur sekumpulan perintah ( biasanya dibatasi oleh { dan } ) bersarang yang harus di hentikan. Penulisannya:
break [numeric]
Contoh:
1 <?php 2 // contoh 1 3 $arr = array('satu', 'dua', 'tiga', 'empat', 'berhenti', 'lima'); 4 while (list (, $val) = each ($arr)) { 5 if ($val == 'stop') { 6 break; /* Anda dapat juga menulis 'break 1;' disini */ 7 } 8 echo "$val<br>\n"; 9 } 10 11 // contoh 2, menggunakan argument 12 $i = 0; 13 while (++$i) { 14 switch ($i) { 15 case 5: 16 echo "hitungan ke- 5 ; keluar dari proses switch<br>\n"; 17 break 1; /* hanya keluar dari switch. */ 18 case 10: 19 echo "hitungan ke- 10; keluar dari proses switch dan while<br>\n"; 20 break 2; /* keluar dari proses switch dan while */ 21 default: 22 break; 23 } 24 } 25 ?>
3.3.6
Pernyataan continue
Pernyataan continue biasa digunakan dalam proses perulangan (looping) yang berfungsi melompati proses loop saat itu dan melanjutkan eksekusi dimulai dari itesai loop berikutnya. Pernyataan continue juga dapat menerima argument angka seperti break. Penulisannya:
continue [numeric]
www.nurulfikri.com 7874223 / 24
22
PHP Dasar
1 <?php 2 // contoh 1 3 while ($x++ < 5) 4 { 5 if ( $x == 3 ) 6 continue; 7 echo "Hitungan ke- $x <br>\n"; 8 } 9 10 // contoh 2 11 $i = 0; 12 while ($i++ < 5) { 13 echo "( Ini Bagian Luar <br>\n"; 14 while (1) { 15 echo " Ini Bagian Tengah<br>\n"; 16 while (1) { 17 echo " Ini Bagian inti )<br><br>\n"; 18 continue 3; 19 } 20 echo "Ini tidak pernah dicetak ke browser<br>\n"; 21 } 22 echo "Begitu juga dengan yang ini.<br>\n"; 23 } 24 25 ?>
www.nurulfikri.com 7874223 / 24
23
PHP Dasar
3.4.2
include Penulisannya:
include ( nama_file) include nama_file
File. Main.php
1 <?php 2 $a = Hello World; 3 include pustaka.inc; 4 echo Ini output dari file main.php<br>\n; 5 ?>
Berikut kita akan berkenalan dengan beberapa error message yang mungkin nantinya akan timbul : 1. Error message : Anda mendapatkan pesan ini ketika script yang Anda buat bermasalah sehingga program yang Anda buat tidak berjalan. Pesan error ini biasanya memiliki cukup informasi sehingga Anda dapat dengan mudah mengetahui dimana sumber masalahnya. Contoh error yang biasa muncul seperti ini :
Parse error : parse error in c:\test.php o line 6
www.nurulfikri.com 7874223 / 24
24
PHP Dasar
Biasanya, Anda menerima error tersebut karena masalah kurang semicolon(;), parenthesis (tanda kurung), atau kurung kurawal ( {} ). 2. Warning message : Anda mendapat error jenis ini ketika script memiliki 'indikasi' masalah tapi program masih terus berjalan, jadi error jenis ini tidak menghentikan jalannya program. Contohnya ketika Anda mengetikkan perintah print_r() << tanpa suatu argumen(parameter) didalamnya maka akan muncul warning error seperti ini :
Warning: print_r() expects at least 1 parameter, 0 given in c:\tes.php on line 2
Error tersebut dikarenakan print_r yang merupakan suatu fungsi pencetakan tidak memiliki argumen(parameter) untuk dicetak. Tapi, script yang berada dibawah print_r tersebut tetap dijalankan,karena error tadi hanya berupa warning. Bagaimanapun, warning error mengindikasikan sesuatu masalah yang lebih serius lagi dan dalam kasus ini Anda diharuskan untuk memperbaiki kekurangan tersebut. 3. Notice : Anda mendapatkan suatu notice dikarenakan suatu kemungkinan error atau bukan error. Contoh yang umum terjadi yaitu saat Anda menggunakan variable yang tidak ada.
Notice : Undefined variable: page in testing.php on line 9
Error message, Warning error, ataupun notice mengindikasikan suatu masalah pada script yang Anda buat, yang terfokus pada nomor baris yang diindikasikan atau pada baris diekitarnya. Berbagai jenis pesan error yang muncul itu, dapat Anda atur semua atau sebagian saja yang dimunculkan, melalui error level yang bisa diatur pada file php.ini. Kita akan bahas sedikit lebih lanjut tentang error level ini. 3.5.2 Error Level
Untuk melihat error level pada script php Anda, Anda bisa melihatnya pada script php.ini, pada baris berikut :
; - Show all errors, except for notices error_reporting = E_ALL & ~E_NOTICE
Perintah tadi menyebabkan semua error akan muncul kecuali notice. Anda bisa bereksperimen dengan keterangan-keterangan yang ada di script php.ini tersebut. Tapi jangan lupa untuk membuat back-up dari file php.ini, untuk berjaga-jaga jika terjadi kesalahan pada settingan-nya. Setelah melakukan perubahan pada php.ini, jika Anda berada di linux sebagai superuser ketikkan perintah service httpd restart, ini untuk mengaktifkan setingan yang baru saja dilakukan. Anda bisa menghentikan semua pesan-pesan error atau mengalihkan pesan error ke suatu log.Untuk mematikan pesan-pesan error, Anda dapat melakukannya pada php.ini, cari perintah berikut :
display_error=On menjadi display_error=Off.
www.nurulfikri.com 7874223 / 24
25
PHP Dasar
Anda dapat menggunakan error_reporting pada script php yang Anda buat sendiri. Jadi php menyediakan fungsi error_reporting untuk menampilkan ataupun menghilangkan pesan error. Ketikkan contoh berikut pada awal script php Anda.
error_reporting(E_ALL & ~E_NOTICE);
Contoh diatas akan menampilkan semua jenis error kecuali error notice. Nah, Anda bisa menggunakan berbagai error yang dapat dimunculkan pada web Anda, atau tidak tergantung kebutuhan dari web tersebut. Tapi sebaiknya, jika aplikasi yang Anda buat sudah jadi dan akan diserahkan pada user, sebaiknya pesan-pesan error dihilangkan tapi tetap dikirim ke suatu log. Untuk mematikan pesan error, Anda cukup ketikkan perintah berikut pada script php Anda :
error_reporting(0);
Lalu, bagaimana caranya untuk memindahkan error pada log ?. Berikut penjelasannya: 1. Pada file php.ini, cari kata-kata berikut :
log_errors = Off
4. Ganti filename tersebut dengan letak error log dan hapus tanda titik koma di awal script :
error_log = C:\temp\php\php_err.log
5. Pastikan folder temp dan php di direktory C sudah ada sebelumnya, Anda tidak perlu membuat file php_err.log karena file tersebut otomatis ter-create oleh php.
www.nurulfikri.com 7874223 / 24
26
PHP Dasar
4.2 String
Tipe data string sebenarnya adalah kumpulan karakter. Dalam PHP sebuah karakter sama dengan sebuah byte (8 bit) , yang tepatnya memiliki 256 kemungkinan karakter yang berbeda. Sebuah string adalah sekumpulan atau sederetan karakter yang dapat didefinisikan dalam tiga cara berikut ini: 1. single quoted 2. double quoted 3. heredoc Penulisannya 4.2.1 Single quoted
Cara paling mudah dalam mendefinisikan string adalah membuka dan menutup string dengan menggunakan tanda kutip/petik tunggal. Contoh:
1 <?php 2 $a = 'Ini adalah string'; 3 echo '$a' ; 4 echo '<br>Ini juga String yang 5 cukup panjang dan lebih dari 6 satu baris serta panjang'; 7 echo 'Ibu berkata: Nak jangan jajan sembarangan !'; 8 echo '\n Meskipun didepan string ini ada escape character baris baru tetap tidak berfungsi'; 9 ?>
4.2.2
Double quoted
String yang ditutup dengan tanda kutip/petik ganda, lebih fleksibel terhadap escape character, special character dan variabel. Contoh:
1 <?php 2 $a = Ini adalah string; 3 echo $a ; 4 echo <br>Ini juga String yang 5 cukup panjang dan lebih dari 6 satu baris serta panjang;
www.nurulfikri.com 7874223 / 24
27
PHP Dasar
7 echo Ibu berkata: \Nak jangan jajan sembarangan !\; 8 echo \n didepan 'string' ini ada escape character baris baru makanya pindah baris; 9 ?>
4.2.3
Heredoc
Cara lain mendefinisikan string yaitu dengan heredoc Penulisannya, yaitu dengan memberikan awal dengan tanda ( <<< ) dan setelahnya harus merupakan identifier(nama), serta diakhiri dengan tanda identifier (nama) juga. Contoh:
1 <?php 2 $str = <<<OKE 3 ini String yang di definisikan dengan 'heredoc Penulisannya', yaitu dengan memberikan awal dengan tanda <<< dan setelahnya \n \r harus merupakan identifier(nama) , serta diakhiri dengan tanda identifier (nama) juga 4 OKE; 5 echo $str; 6 ?>
String HELLO WORLD diatas dapat di index dengan urutan no index diawali dari karakter paling kiri (H) adalah index 0 ndan diakhiri oleh karakter paling kanan (D) yaitu index 10. Jumlah(panjang) karakter yang membentuk string HELLO WORLD adalah 11 karakter. Index pertama dari string adalah 0 dan index terakhir adalah panjang karakter -1. Untuk mendapatkan karakter W dalam string HELLO WORLD maka dalam PHP menggunakan indexing yaitu seperti contoh berikut ini:
1 <?php 2 $str = HELLO WORLD ; 3 echo $str[6]; 4 ?>
www.nurulfikri.com 7874223 / 24
28
PHP Dasar
Fungsi ini mengembalikan sebuah string dengan tanda backslashes sebelum karakterkarakter yang perlu diberikan tanda kutip/petik dalam query-query database. Karakter ini adalah karakter single quote ('), double quote ("), backslash (\) dan NUL (the NULL byte). Contoh:
1 <?php 2 $str = 'Hello World \n \''; 3 echo $str; 4 ?>
www.nurulfikri.com 7874223 / 24
29
PHP Dasar
Fungsi ini mengembalikan sebuah integer yang menunjukan panjang string. Contoh:
1 <?php 2 $str = Hello World; 3 echo strlen($str); 4 ?>
4.5.3
rtrim
string rtrim(string str)
Fungsi ini mengembalikan sebuah string yang telah dihilangkan/dihapus karakter spasi yang ada pada akhir (kanan) string. Alias dari fungsi ini adalah chop(). Contoh:
1 <?php 2 $str = Hello World ; 3 echo strlen($str); 4 $rtrimmed = rtrim($str); 5 echo strlen($rtrimmed); 6 ?>
4.5.4
ltrim
Fungsi ini mengembalikan sebuah string yang telah dihilangkan/dihapus karakter spasi yang ada pada awal (kiri) string. Contoh:
1 <?php 2 $str = Hello World ; 3 echo strlen($str); 4 $ltrimmed = ltrim($str); 5 echo strlen($ltrimmed); 6 ?>
4.5.5
trim
Fungsi ini mengembalikan sebuah string yang telah dihilangkan/dihapus karakter spasi 30
www.nurulfikri.com 7874223 / 24
Program Reguler & Inhouse yang ada pada awal (kiri) dan akhir(kanan) string. Contoh:
1 <?php 2 $str = Hello World ; 3 echo strlen($str); 4 $trimmed = trim($str); 5 echo strlen($trimmed); 6 ?>
PHP Dasar
4.5.6
explode
4.5.7
implode
string implode(string glue, array pieces)
Fungsi ini kebalikan dari explode yaitu menggabungkan elemen-elemen array menjadi string dengan karakter penggabung (string glue). Alias dari fungsi ini adalah fungsi join(). Contoh:
1 <?php 2 $arr = array(apel,jeruk,mangga,pisang,jambu); 3 $arr2str = implode(:,$arr); // penggabung string adalah tanda : 4 echo <br>$arr2str \n; 5 ?>
www.nurulfikri.com 7874223 / 24
31
PHP Dasar
Fungsi ini mengembalikan string yang merupakan bagian dari sebuah string . Contoh:
1 <?php 2 $rest = substr("abcdef", 3 echo <br> $rest \n; 4 $rest = substr("abcdef", 5 echo <br> $rest \n; 6 $rest = substr("abcdef", 7 echo <br> $rest \n; 8 $rest = substr("abcdef", 9 echo <br> $rest \n; 10 ?> 1); // returns "bcdef"
Anda juga bisa mengetahui type data apa yang digunakan oleh suatu variabel dengan mengetikkan perintah berikut :
var_dump($myvariable);
Anda sebenarnya tak perlu terlalu khawatir dengan type data seperti apa yang harusnya Anda berikan pada suatu variabel, karena PHP otomatis akan menyesuaikan type data suatu variabel dengan isi data yang diberikan padanya. Perintah type casting diatas hanya untuk memastikan suatu variabel akan sesuai dengan yang Anda pikirkan atau untuk merubah suatu type data variabel ke type lainnya.
www.nurulfikri.com 7874223 / 24
32
PHP Dasar
$newint otomatis sebagai integer dan $newfloat otomatis menjadi float. Dengan type casting Anda bisa merubah $newfloat diatas menjadi integer dengan perintah berikut :
$integer_lagi=(int) $newfloat;
Tapi, jika $newfloat diatas Anda ubah menjadi integer maka 9.8 tersebut akan menjadi 9 tanpa pecahan.
4.7 Array
Array adalah sebuah tipe data kolektif, artinya sebuah array merupakan sekumpulan datadata (element array). Dalam PHP array sebenarnya adalah sebuah pemetaan antara key dan value atau sebaliknya (key => value). Key bisa berupa angka positif ataupun string. Value bertipe data apa saja. Sebuah data array dapat didefinisiakan dengan fungsi array().
4.7.1
Mambuat Array
Diasumsikan, Anda memiliki suatu variabel yang variabel tersebut berisi kumpulankumpulan data. Contohnya variabel $nama_siswa. Tentunya, suatu kelas yang bukan privat memiliki lebih dari satu siswa. Kita namakan siswa pertama kita bernama Rosalie. Cara inisialisasi-nya
$nama_siswa[1]= Rosalie;
Untuk sementara, $nama_siswa sudah berisikan seorang siswa bernama Rosalie Untuk mengisi nama siswa selanjutnya, tinggal kita gunakan :
$nama_siswa[2]= Alissa; $nama_siswa[3]= Faiz Fikri;
Anda sudah menambah tiga siswa pada variabel tersebut. Jadi, format penulisan array adalah seperti berikut :
$nama_variable[key1]= Nilai ke 1; $nama_variable[key2]= Nilai ke 2; $nama_variable[key-n]= Nilai ke n;
Suatu key, disebut juga sebagai index. Jadi, key pada array dapat sebagai number (1,2,3 dst) dapat juga berupa string. Contoh berikut merupakan variabel kota yang indexnya berupa 33
www.nurulfikri.com 7874223 / 24
PHP Dasar
Atau Anda bisa menggunakan cara singkat untuk membuat array, yaitu :
$jalan[]=Jl. Sisingamangaraja; $jalan[]=Jl. Kapitan Pattimura; $jalan[]=Jl. Diponegoro;
Array tanpa index yang disebut diatas itu, sebenarnya secara otomatis sudah diisikan indexnya berurutan mulai dari 0. Maka, jika Anda coba panggil :
echo $jalan[2]
Akan tercetak
Jl. Kapitan Pattimura.
Ketika Anda coba gunakan perintah tadi pada Array $nama_siswa, maka data tersebut akan terisi pada index paling akhir. Contoh :
$nama_siswa[]=Budi;
Siswa Budi akan berada pada index yang paling akhir. Anda harus ingat, bahwa array index nya dimulai selalu dari 0, kecuali jika Anda mengesett nya ke 1. Kembali ke cara singkat membuat array diatas, berikut cara singkat yang lain lagi :
$jalan=array(Jl. Sisingamangaraja,Jl. Kapitan Pattimura,Jl. Diponegoro);
Array diatas, tetap memiliki index yang dimulai dari 0. Jika Anda ingin index yang di mulai dari 6, caranya sbb:
$jalan=array(6=>Jl. Sisingamangaraja,Jl. Kapitan Pattimura,Jl. Diponegoro);
www.nurulfikri.com 7874223 / 24
34
PHP Dasar
Anda juga bisa membuat Array dengan cara yang tadi, dengan key nya berupa string atau
Catatan : baris baru atau pun spasi pada array diatas tidak berpengaruh. Penulisan diatas tadi hanyalah suatu cara agar pembacaan dari array yang Anda buat itu lebih mudah dibaca. Ada juga perintah range, yang merupakan suatu jangkauan tapi hasilnya nanti berupa array. Contoh:
$angkanya=range(1980,2010); Perintah diatas sama dengan : $angkanya[0]=1980; $angkanya[1]=1981; . . $angkanya[30]=2010;
4.7.2
Sama halnya dengan karakter-karakter dalam string , elemen array dapat diakses dengan pengindeksan (indexing). Contoh:
1 <?php 2 $arr = array(1,2,3,'hello',100,"world",10 => 100, LPK => Nurulfikri); 3 echo $arr[0]. <br>\n; 4 echo $arr[4]. <br>\n; 5 echo $arr[10]. <br>\n; 6 echo $arr[LPK]. <br>\n; 7 ?>
www.nurulfikri.com 7874223 / 24
35
PHP Dasar
Kemungkinan suatu saat Anda ingin menghapus suatu elemen yang ada di array. Perintahnya sederhana, yaitu :
unset($nama_var_array[index_yang mau_dihapus]);
Contoh, Anda ingin menghapus elemen pada array siswa yang bernama Budi, ketikkan perintah :
unset($nama_siswa[3]);
Jika yang Anda hapus datanya berada pada index 1, index tersebut tidak akan digantikan, jadi jika Anda hapus index 1, index 0, 2 dan 3 tetap tidak berubah, tapi tak ada lagi index 1.
4.7.4
Nested array adalah array yang bersarang, artinya elemen sebuah array merupakan sebuah array, dst. Contoh:
1 <?php 2 $arr 3 4 5 6 echo 7 echo 8 echo 9 echo 10 echo 11 ?> = array(array(1,2,3),'hello',100, "world"=>array("en","id","us"), "LPK" => "Nurulfikri"); $arr[0][0]."<br>\n"; $arr[0][2]."<br>\n"; $arr[1]."<br>\n"; $arr["world"][1]."<br>\n"; $arr["world"][2]."<br>\n";
4.7.5
Fungsi-fungsi array Ada beberapa fungsi-fungsi built-ini yang berkaitan dengan array, diantaranya yaitu:
Fungsi ini mengembalikan nilai integer yang merupakan jumlah atau panjang elemen array. Alias dari fungsi ini adalah fungsi sizeof(). Contoh:
1 <?php 2 $arr_buah = array('Pepaya','Mangga','Pisang','Jambu'); 3 echo count($arr_buah); 4 ?>
www.nurulfikri.com 7874223 / 24
36
PHP Dasar
Fungsi ini memberi nilai sebuah variabel seolah-olah sebagai sebuah array. Contoh:
1 <?php 2 $arr_buah = array("apel","jeruk","mangga"); 3 list($x,$y,$z) = $arr_buah; 4 echo $x."<br>\n"; 5 echo $y."<br>\n"; 6 echo $z."<br>\n"; 7 ?> 3. each array each ( array array)
Fungsi ini mengembalikan pasangan key dan value dari sebuah array. Biasanya fungsi ini digunakan bersama fungsi list(). Contoh:
1 <?php 2 $buahs = array ("apel","mangga","jeruk","pisang","anggur"); 3 while (list ($key, $val) = each ($buahs)) { 4 echo "$key => $val<br>\n"; 5 } 6 ?> 4. Fungsi sort void sort ( array array )
37
PHP Dasar
www.nurulfikri.com 7874223 / 24
38
PHP Dasar
Bab 5 Fungsi
5.1 Tujuan:
Mengerti apa itu fungsi Mampu membuat dan menerapakan fungsi buatan sendiri dalam program PHP
Argumen pada fungsi bersipat optional, artinya argumen boleh ada atau berupa argumen kosong.
Fungsi buatan sendiri, dimulai dengan function dan diikuti dengan nama fungsi-nya. Untuk menggunakan fungsi ini anda cukup mengetikkan nama fungsi tersebut :
start_table();
Nah, cukup mudah bukan? Anda tinggal ketikkan perintah tersebut dan bisa memakainya berulang-ulang sesuai kebutuhan. Lalu bagaimana jika anda ingin merubah ukuran border dari tables HTML tersebut ?
www.nurulfikri.com 7874223 / 24
39
PHP Dasar
Jadikan border sebagai suatu variable, dan Anda bebas menentukan ukuran berapa saja yang akan digunakan sebagai border tables tersebut.
start_table(2);
Maka ukuran border dari table diatas adalah 2. Jika Anda ingin membuat 1 sebagai default dari variable border, berikut caranya :
1 function start_table($border=1) 2 { 3 echo <Table border=$border>\n; 4 }
Jadi, jika Anda tidak menyebutkan ukuran border tersebut, nilai defaultnya yang akan digunakan. Function diatas tadi, memiliki argumen yaitu $border. Tidak hanya tag table HTML saja yang bisa Anda modifikasi, tapi semua tag HTML yang didukung penuh oleh PHP dapat Anda gunakan untuk membuat penulisan script PHP yang mudah dibaca dan terorganisir dengan rapih. Fungsi selain yang kita buat diatas tadi, ada juga fungsi khusus dari PHP yang jumlahnya sangat banyak. Anda bisa melihat nya di http://www.php.net/function_name.
Contoh diatas lanjutan dari contoh sebelumnya dengan argumen yang lebih banyak. Fungsi start_table. Fungsi ini memiliki beberapa argumen. Sebuah fungsi tidak harus memerlukan argumen, jadi argumen itu bersifat opsional. Tanda { dan } mengelompokan perintah-perintah dan variabel yang ada dalam fungsi tersebut. Argumen bisa berupa apa saja, baik variable, array ataupun objek.
www.nurulfikri.com 7874223 / 24
40
PHP Dasar
Dalam sebuah script PHP Anda dapat mendefinisikan fungsi di sembarang bagian, tetapi sebaiknya semua fungsi didefinisikan terlebih dahulu diawal script baru kemudian memanggilnya. Contoh:
1 <? 2 function create_ul($array){ 3 echo "Nama-nama buah favorit :<br> <ul>\n"; 4 foreach ($array as $al) 5 { 6 echo "<li>$al</li>\n"; 7 } 8 echo "</ul>\n"; 9 } 10 create_ul(array("Pisang","Jeruk","Mangga")); 11 ?>
Sebagaimana telah dijelaskan sebelumnya bahwa argumen dalam sebuah fungsi bersifat opsional. Argumen fungsi dapat berupa variabel (nilai dinamik) dan default argumen. Sebuah argumen dapat di- passing ke sebuah fungsi dengan menggunakan referensi variabel (passing by refference). Contoh:
1 <?php 2 function cetak ($str) 3 { 4 echo "Cetak......$str..<br>\n"; 5 $str = "World Hello"; 6 } 7 function hapus ($str) 8 { 9 echo "Hapus......$str..<br>\n"; 10 $str = "World Hello"; 11 } 12 $str = Hello World; 13 cetak($str); 14 echo $str.<br>\n; 15 $word = Halo Dunia; 16 hapus($word); 17 echo $word.<br>\n; 18 ?>
41
Program Reguler & Inhouse tersebut memberikan suatu nilai dikarenakan keyword return tadi. Contoh :
1 function math_dasar($angka1,$angka2) 2 { 3 $tambah=$angka1+$angka2; 4 return $tambah; 5 }
PHP Dasar
Anda bisa menggunakan fungsi ini dengan memasukkan argumen ke dalam fungsi math_dasar yang masing-masing diasosikan/diwakilkan dengan variable $angka1 dan $angka2 :
$tambah_angka=math_dasar(3,4); echo $tambah_angka;
Perintah return bisa mengembalikan nilai dari berbagai jenis type data variable baik berupa string, array, dan object. Anda juga menggunakan return untuk memeriksa apakah data yang dimasukkan user valid atau tidak, contoh :
1 function math_dasar($angka1,$angka2) 2 { 3 if (!is_int($angka1) || !is_int($angka2)) 4 { 5 return FALSE; 6 } 7 tambah=$angka1+$angka2; 8 return $tambah; 9 } 10 11 if (($tambah_angka = math_dasar(4,5)) === FALSE) 12 { 13 echo <p> Coba cek angka yang Anda masukkan ; 14 } 15 else { 16 echo $tambah_angka; 17 }
Pesan akan muncul jika angka yang Anda masukkan salah satu atau keduanya bertype bukan integer.
42
PHP Dasar
Perintah diatas akan mencetak angka 15. Dengan perintah global diatas, variable yang terdapat di dalam fungsi, akan tetap dikenal saat berada di luar fungsi. Disarankan untuk berhatihati saat menggunakan keyword global ini, karena dengan variable yang bersifat global ini walaupun pekerjaan kita menjadi mudah, tapi dikhawatirkan menjadi membingungkan saat variable yang kita gunakan berjumlah banyak dan riskan dalam masalah keamanannya.
Kemudian, buat file lainnya yang akan menggunakan function create_ul tersebut. Buat file baru bernama panggil_fungsi.php, dengan kode sebagai berikut:
1 <?php 2 // Sertakan file bikin_fungsi.php 3 include bikin_fungsi.php; 4 $buah=array("Mangga","Pisang","Jambu"); 5 create_ul($buah); 6 ?>
Pada kode program di file panggil_fungsi.php , pada baris 2 memanggil file bikin_fungsi.php dengan menggunakan keyword include. Sehingga file tersebut bisa memanggil fungsi yang akan digunakan, pada contoh ini create_ul(nama_variabel).
www.nurulfikri.com 7874223 / 24
43
PHP Dasar
Bab 6 Session
6.1 Tujuan:
Mengerti dan paham konsep session Mampu membuat program PHP yang menggunakan session
www.nurulfikri.com 7874223 / 24
44
PHP Dasar
Fungsi ini melakukan inisialisasi data session, dengan nilai balik fungsi tipe data boolean.
2. session_register() bool session_register ( mixed name [, mixed ...])
Fungsi dari session_register() adalah mendaftarkan satu atau lebih global variables dengan session saat ini, nilai balik dari fungsi ini adalah tipe data boolean.
3. session_is_registered() bool session_is_registered ( string name)
Fungsi ini mencari sebuah global variable is yang terdaftar sebagai variabel session saat ini, nilai balik dari fungsi ini adalah tipe data boolean.
4. session_id() string session_id ( [string id])
Fungsi ini berfungsi menghapus sebuah global variable dari session saat ini, nilai balik dari fungsi ini adalah tipe data boolean.
6. session_destroy() bool session_destroy ( void )
Fungsi ini berfungsi menghapus semua data yang terdaftar pada session saat ini. Catatan : Jika Anda session_register(). session_unregister(). menggunakan $_SESSION, jangan session_is_registered() gunakan lagi ataupun
www.nurulfikri.com 7874223 / 24
45
PHP Dasar
File. sesi2.php
1 <?php 2 session_start(); 3 //apakah variabel global 'NAMA_USER' terdaftar 4 if( session_is_registered("NAMA_USER")) 5 { 6 echo "session registered<br>\n"; 7 // mencetak variabel global 'USER_NAME' 8 echo 'Hello '.$_SESSION['USER_NAME']."<br>\n"; 9 } 10 else 11 { 12 echo "session not registered"; 13 } 1 ?>
File. sesi3.php
1 <?php 2 session_start(); 3 if( session_is_registered("USER_NAME")) 4 { 5 session_destroy(); 6 echo "seession now destroy"; 7 } 8 else 9 { 10 echo No session here; 11 } 12 ?>
www.nurulfikri.com 7874223 / 24
46
PHP Dasar
Mengerti dan paham penggunaan konsep Class dan Object Mampu membuat Class
47
PHP Dasar
Nama Class gunakan awalan huruf besar, dan tidak boleh ada spasi. Jika dua kata atau lebih maka kata berikutnya diawali juga dengan huruf Besar, contohnya
1 class Lingkaran { 2 // statement program 3 }
atau
1 class AccountBank { 2 // statement program 3 }
7.3.2
Mendefinisikan Object Untuk membuat object dari suatu Class gunakan kata kunci new sebelum nama class. Berikut contohnya :
$obj1 = new MyClass();
atau
$lingkar1 = new Lingkaran( 6 ) ; // lingkaran dengan jari2 lima
www.nurulfikri.com 7874223 / 24
48
PHP Dasar
Variabel didalam class menyimpan informasi tentang properti yang dimiliki dari class Gunakan kata kunci var didepan nama variabel class :
1 <?php 2 3 class Otentifikasi { 4 5 var $status ; 6 7 // barisan kode program 8 9 } 10 ?>
Dalam class Otentifikasi terdapat variabel $status, yang menginformasikan status dari sebuah otentifkasi.
1 <?php 2 3 class Lingkaran { 4 5 var $jari ; 6 7 // barisan kode program 8 9 } 10 ?>
Dalam class Lingkaran terdapat variabel $jari, yang menginformasi besar jari-jari dari lingkaran. 7.4.2 Konstruktor Konstruktor adalah sebenarnya sebuah fungsi juga, berikut karakteristik konstruktor 1. Fungsi yang bernama __construct( [ argumen ] ) 2. Baris kode program akan dieksekusi ketika object Class ini diciptakan 3. Digunakan untuk inisiasi variabel class Berikut contoh konstruktor pada class Otentifikasi ( nama file : class_otentifikasi.php )
1 <?php 2 3 class Otentifikasi { 4 5 var $status ; 6 function __construct() 7 { 8 $this->status = "KONFIRMASI";
www.nurulfikri.com 7874223 / 24
49
PHP Dasar
Pada contoh class Otentifikasi, terdapat variabel class status. Variabel ini mempunyai nilai awal Konfirmasi yang di-set pada konstruktor. 7.4.3 Fungsi
Pada sebuah fungsi, informasi atau data diolah, didalamnya juga terdapat interaksi dengan member class lainnya. Sebuah fungsi dapat mengembalikan nilai ( gunaka kata kunci return) ataupun tidak mengembalikan nilai atau disebut void. Berikut contoh fungsi login() pada class Otentifakasi.
1 ---2 function login( $user, $pass ) 3 { 4 if ($user == "admin" && $pass="4dm1n") 5 { 6 $this->status = "SUKSES"; 7 } 8 else 9 { 10 $this->status = "GAGAL"; 11 } 12 } 13 ----
Untuk mengakses member class ( variabel dan fungsi ) gunakan kata kunci $this diikuti tanda panah dan lebih besar ( $this-> ) .
50
PHP Dasar
7.5.2
Member class dapat memiliki tipe akses statik. Cara akses statik member class ( variabel dan fungsi ) yaitu : 1. Dari dalam class, gunakan: kata kunci self::statik_member_class 2. Dari luar class, gunakan : sintak NamaClass::statik_member_class Berikut contohnya :
1 <?php 2 3 class Otentifikasi { 4 5 var $status ; 6 static $salam = "Assalamualaikum .."; 7 8 // --9 // --10 11 static $salam ; 12 13 static function welcome() 14 { 15 echo self::$salam; 16 echo " Selamat Datang "; 17 } 18 19 } 20 21 // panggil static fungsi 22 Otentifikasi::welcome(); 23 24 ?>
7.5.3
Variabel konstan adalah variabel yang nilainya tetap / tidak berubah-ubah selama program berjalan. Gunakan kata kunci const didepan nama variabel untuk membuat variabel konstan dan langsung diberi nilai. contohnya :
www.nurulfikri.com 7874223 / 24
51
PHP Dasar
Untuk akses variabel konstan : 1. Dari dalam class, gunakan: kata kunci self::variabel_konstan 2. Dari luar class, gunakan : sintak NamaClass::variabel_konstan Berikut contoh class Lingkaran ( nama file : class_lingkaran.php )
1 <?php 2 class Lingkaran { 3 4 var $jari; 5 const PHI = 3.14; 6 7 function __construct ( $jari_awal ) 8 { 9 $this->jari = $jari_awal; 10 } 11 12 function cetak () 13 { 14 echo __CLASS__ .' dengan jari : '.$this->jari; 15 echo '<br/> Luasnya : '.$this->luas(); 16 echo '<br/> Kelilingnya : '.$this->keliling(); 17 } 18 19 function luas() 20 { 21 $luasnya = self::PHI * $this->jari * $this->jari; 22 return $luasnya; 23 } 24 25 function keliling() 26 { 27 $kllinya = 2 * self::PHI * $this->jari; 28 return $kllinya; 29 } 30 31 $lingkar1 = new Lingkaran(5); 32 $lingkar1->cetak(); 33 echo '<br/>NILAI PHI '.Lingkaran::PHI 34 35 ?>
www.nurulfikri.com 7874223 / 24
52
PHP Dasar
8.1 Tujuan :
Mengerti dan paham penggunaan fungsi-fungsi php untuk mengakses mysql Mampu membuat program PHP yang menggunakan database mysql
Fungsi memiliki nama fungsi dan argumen-argumen yang merupakan nilai yang akan diberikan ke fungsi tersebut. Setelah fungsi itu dipanggil selain menjalankan eksekusi yang ada di fungsi fungsi juga mengembalikan nilai balik. Contoh
$dbconn = mysql_connect(localhost,root,mypassword);
Untuk contoh di atas Anda memanggil fungsi mysql_connect yang merupakan fungsi builtin PHP untuk menyambung ke server MySQL. Fungsi tersebut memiliki 3 argumen yaitu localhost,root dan mypassword yang masing-masing berurut memberikan nilai pada fungsi sebagai address server, username dan password. Jika fungsi tersebut berhasil connect ia akan mengembalikan nilai id koneksi atau true sedang jika gagal ia akan memberikan nilai balik 0 atau false.
53
PHP Dasar
adalah tersambung dengan MySQL. Fungsi untuk menyambung ke server MySQL di PHP adalah mysql_connect() atau mysql_pconnect(). Anda sudah melihat bagaimana cara memanggil fungsi ini tetapi untuk lebih jelasnya fungsi ini dipanggil dengan aturan sebagai berikut
int mysql_connect(<alamat server mysql>,<username>,<password>) int mysql_pconnect(<alamat server mysql>,<username>,<password>)
Dengan <alamat server mysql> merupakan alamat IP (catatatan: localhost dapat digunakan jika server mysql terletak pada alamat yang sama. <username> dan <password> adalah username dan password MySQL. Fungsi mysql_connect atau mysql_pconnect akan mengembalikan nilai id koneksi apabila koneksi berhasil jika gagal karena sebab apapun akan mengembalikan nilai salah. Jadi biasanya Anda harus mengetes dulu apakah koneksi berhasil atau tidak.
$dbconn = @mysql_connect(localhost,root,mypassword); if(!$dbconn) { echo <p> Koneksi ke MySQL gagal </p>; exit(); // keluar dari skrip PHP }
Tanda @ sebelum pemanggilan fungsi mysql_connect artinya agar PHP tidak mengembalikan pesan error sehingga Anda dapat membuat pesan error Anda sendiri. Perbedaan antara mysql_connect dan mysql_pconnect mysql_pconnect koneksi tidak terputus selama skrip PHP berjalan. adalah pada
www.nurulfikri.com 7874223 / 24
54
PHP Dasar
if (!@mysql_select_db(guest_book)) { echo <p> Tak dapat menemukan basis data dengan nama tersebut </p; };
atau
$db = mysql_select_db(guestbook) or die (Tak dapat menemukan basis data);
Yang dikembalikan fungsi ini tergantung dari jenis query yang dikirim. Untuk sebagian besar SQL mysql_query() mengembalikan nilai kembali apakah query dapat dilaksanakan oleh server atau tidak. Sebagai contoh Anda ingin membuat tabel bukutamu.
1 <?php 2 $sql = create table buku_tamu ( . 3 id_tamu integer not null auto_increment primary key, . 4 nama varchar(40) null, . 5 location varchar(40) null, . 6 created timestamp, . 7 comments text null ); 8 9 if (mysql_query($sql)) 10 { 11 echo <b> Table successfully created </b>; 12 } 13 else 14 { 15 echo (<b> Error creating table </b> . mysql_error() ); 16 } 17 ?>
Fungsi mysql_error mengembalikan string teks yang menggabarkan error terakhir yang dikirim oleh server MySQL. Untuk SQL yang melibatkan DELETE,INSERT dan UPDATE MySQL selalu menyimpan jumlah baris yang terkena operasi query itu. Fungsi yang mengetahui jumlah baris itu pada PHP
www.nurulfikri.com 7874223 / 24
55
Program Reguler & Inhouse disediakan oleh fungsi mysql_affected_rows(). Perhatikan kode di bawah ini :
PHP Dasar
1 <?php 2 $sql = UPDATE buku_tamu SET created=20010101 00:00:00 WHERE comments LIKE %hallo%; 3 if (mysql_query($sql)) 4 { 5 echo (update mempengaruhi.mysql_affected_rows(). baris); 6 } 7 else 8 ( 9 echo (update gagal dengan alasan . mysql_error() ); 10 } 11 ?>
Untuk menambahkan sebuah komentar ke basis data Anda gunakan fungsi mysql_query() dengan SQL insert. Pada skrip PHP Anda dapat menggunakan kode seperti di bawah ini :
1 <?php 2 if (submit == $submit) 3 { 4 $sql=INSERT INTO buku_tamu SET comments='$comments', nama='$name'; 5 if (mysql_query($sql)) 6 { 7 echo Thank you for your comment; 8 } 9 else 10 { 11 echo Error adding a comment; 12 } 13 } 14 ?>
www.nurulfikri.com 7874223 / 24
56
PHP Dasar
Pada kode di atas $result menyimpan nilai identifikasi hasil query. Untuk mengambil hasilnya PHP menyediakan fungsi mysql_fetch_array().
array mysql_fetch_array(int resultID [, int result_type])
Fungsi ini mengembalikan sebuah array assiosiatif dengan nama kolom/field tabel sebagai key.Defaultnya fungsi ini mengembalikan data tiap kolom dua kali, satu assiosatif yang lain numerik. Anda dapat memilih tipe hasil yaitu dengan memberi nilai result_type. MYSQL_ASSOC untuk nilai kembali berupa array assosiatif dan MYSQL_NUM untuk nilai kembali berupa array biasa. Cara yang umum untuk mendapatkan tiap baris hasil query dalam satu waktu adalah dengan kode berikut ini :
while ($row = mysql_fetch_array($result) { //process row }
www.nurulfikri.com 7874223 / 24
57
PHP Dasar
Selain fungsi mysql_fetch_array() untuk mengambil data hasil PHP juga menyediakan fungsi-fungsi yang bertujuan sama tetapi dengan nilai kembali dalam struktur berbeda yaitu mysql_fetch_row() dan mysql_fetch_object(). mysql_fetch_row() mengembalikan hasil query tiap barisnya dalam bentuk array biasa sedangkan mysql_fetch_object() dalam bentuk objek. Fungsi lain yang juga berfungsi mengambil hasil query adalah mysql_result(). Fungsi ini mengambil isi sel tertentu pada tabel hasil tetapi fungsi ini lebih lambat dibanding fungsi mysql_fetch_array(). Fungsi lain yang berhubungan dengan hasil query antara lain mysql_num_rows(). mysql_num_rows() mengembalikan jumlah baris hasil query. Dengan fungsi ini Anda dapat mengetahui apakah query yang Anda lakukan memberikan hasil atau tidak. Contoh :
1 2 3 4 5 6 7 8 <?php $sql = select * from table_name; $result = mysql_query($sql) or die( mysql_error()); if (mysql_num_rows($result) == 0) { echo Maaf tak ada hasil query; } ?>
Aksi Menutup koneksi MySQL tidak berpengaruh bila koneksi menggunakan mysql_pconnect Membuat basis data seperti SQL create database database_name Menghapus sebuah basis data MySQL
Int
Int Int
Megembalikan basisdata yang tersedia pada server mySQL Memberikan daftar tabel yang tersedia pada basis data
www.nurulfikri.com 7874223 / 24
58
PHP Dasar Int Int Int Int Int Memeberikan daftar medan /nama kolom hasil query Mengembalikan angka pesan error dari operasi MySQL yang baru terjad Mengambil jumlah kolom hasil query Pindah ke dalam tabel hasil baris ke row_number Set pointer pada tabel hasil le offset kolm tertentu Mengembalikan nama kolom yang ditunjukan oelh field_index Mengembalikan nama tabel yang field itu berada Mengembalikan panjang kolom yang dipilih
String
String
Int
String
String
Mengembalikan flag yang berasosiasi dengan field tersebut Membebaskan memory result
Int
Dengan fungsi-fungsi yang dijelaskan di atas Anda dapat membangun situs web yang dinamik dengan basis data MySQL. PHP memiliki banyak fungsi yang dapat Anda gunakan untuk memenuhi kebutuhan Anda. Fungsi-fungsi ini tersedia dari manipulasi string sampai fungsi-fungsi untuk mengakses XMl. Anda dapat mendownload manual fungsi-fungsi ini dari http://www.php.net/manual
www.nurulfikri.com 7874223 / 24
59
PHP Dasar
www.nurulfikri.com 7874223 / 24
60
PHP Dasar
Object $dbh adalah object koneksi ke database dari Class PDO, dengan argumen : 1. lokasi server database MySQL dan basis data atau ditambah port dari server databasenya 2. nama user pemilik basis data 3. nama password dari user pemilik basis data
www.nurulfikri.com 7874223 / 24
61
PHP Dasar
Jika server database berjalan pada port yang berbeda dari port default PostgreSQL ( 5432), maka pada argumen pertama ditambah variabel port, berikut contoh koneksi ke server PostgreSQL yang berjalan di port 5555.
9.4.3
Berikut contoh koneksi ke database Ms.Access dengan ODBC, File Ms.Access berada dalam direktori C:\dbkoperasi.mdb
1 <?php 2 $dbh= new PDO('odbc:Driver={Microsoft Access Driver(*.mdb)};Dbq=C:\dbkoperasi.mdb;Uid=Admin'); 3 ?>
9.4.4
Kesalahan bisa terjadi pada saat melakukan koneksi ke database ataupun pada saat eksekusi sebuah query. Pada pustaka PDO, class PDO akan melempar sebuah eksepsi kesalahan bernama PDOException, eksepsi ini harus ditangkap untuk mengetahu jenis kesalahan yang terjadi. Berikut kode lengkapnya untuk menangkap eksepsi dari Class PDOException.
1 <?php 2 3 try // menangkap kesalahan 4 { 5 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 6 7 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 8 //echo 'Koneksi SUKSES '; // cetak jika sukses koneksi ke database 9 10 } 11 catch (PDOException $e) 12 { 13 echo $e->getMessage(); // tampilkan pesan kesalahan 14 } 15 16 ?>
www.nurulfikri.com 7874223 / 24
62
PHP Dasar
Agar kesalahan dari perintah SQL dapat ditangkap dan hal ini akan membantu dalam proses debugging / pembetulan program, maka dari object $dbh harus di seting atribut jenis mode error yang akan ditampilkan, berikut setingannya:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Fungsi ini digunakan untuk eksekusi perintah SQL, jika perintah SQL sukses dilakukan akan mengembalikan nilai 0. Contoh penggunaan fungsi exec()
1 <?php 2 3 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 4 5 // ingat heredoc sintaks !! 6 $sqlku=<<<SQL 7 CREATE TABLE produk ( 8 idproduk integer auto_increment primary key, 9 kode varchar(10) unique not null, 10 nama varchar(30) not null, 11 harga double, 12 stok integer 13 ) 14 SQL; 15 16 $dbh->exec( $sqlku ) ; 17 18 $sql_insert=<<<SQL 19 INSERT INTO produk (kode,nama,harga,stok) 20 VALUES ('DVD01','DVD R/W',237000,20) 21 SQL; 22 23 $dbh->exec( $sql_insert ); 24 25 ?>
Eksekusi file ini, maka seharusnya dalam database MySQL pada basis data dbkoperasi telah tercipta table produk dan telah ter-insert satu data produk. Berikut perintah SQL yang di eksekusi di konsole MySQL :
mysql> select * from produk; +----------+-------+---------+--------+------+ | idproduk | kode | nama | harga | stok | +----------+-------+---------+--------+------+ | 1 | DVD01 | DVD R/W | 237000 | 20 | +----------+-------+---------+--------+------+ 1 row in set (0.00 sec)
www.nurulfikri.com 7874223 / 24
63
PHP Dasar
Fungsi query digunakan untuk eksekusi SQL dan mengembalikan hasil Query berupa ResultSet ( kumpulan baris data / record ). Berikut contoh penggunaan fungsi query()
1 <?php 2 3 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 4 5 $sql_select = "SELECT * FROM produk "; 6 7 $rs = $dbh->query($sql_select); 8 9 foreach ( $rs as $row ) 10 { 11 echo $row['kode'].' - '; 12 echo $row['nama'].' - '; 13 echo $row['harga'].' - '; 14 echo $row['stok']; 15 echo '<br/>'; 16 } 17 18 ?>
Gunakan sintaks foreach untuk menampilkan hasil query pada ResultSet. 9.5.3 Fungsi execute()
Fungsi execute() digunakan untuk eksekusi prepared statement ( statement yang telah didefinisikan dengan perintah SQL ). Berikut contoh penggunaannya
1 <?php 2 3 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 4 5 $sql1 = "INSERT INTO produk VALUES ('','FD01','FlashDisk',450000,12)"; 6 7 // buat object prepared statement 8 $st1 = $dbh->prepare($sql1); 9 // eksekusi prepared statement 10 $st1->execute(); 11 12 // dengan argument data array 13 $sql2 = "INSERT INTO produk VALUES ('',?,?,?,?)"; 14 $st2 = $dbh->prepare($sql2); 15 $st2->execute( array ('CD01','CD Blank',4000,40)); 16
www.nurulfikri.com 7874223 / 24
64
PHP Dasar
9.5.4
Fungsi fectch()
Fungsi fetch() dieksekusi dengan menggunakan prepared statement yang digunakan untuk mengambil satu baris hasil query. Berikut contohnya :
1 <?php 2 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 3 4 $sql1 = "SELECT * FROM produk WHERE kode=? "; 5 $st1 = $dbh->prepare($sql1); 6 $st1->execute( array('CD01')); 7 8 $row = $st1->fetch(); 9 10 echo $row['kode'].' - '.$row['nama'].' - '.$row['harga'].' - '. $row['stok']; 11 12 ?>
9.5.5
Fungsi fectchAll()
Fungsi fetchAll() dieksekusi dengan menggunakan prepared statement yang digunakan untuk mengambil kumpulan baris record ( ResultSet ). Berikut contohnya :
1 <?php 2 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi','rosa', 'passrosa'); 3 4 $sql1 = "SELECT * FROM produk "; 5 $st1 = $dbh->prepare($sql1); 6 $st1->execute(); 7 8 $rs = $st1->fetchAll(); 9 10 foreach ($rs as $row) 11 { 12 echo $row['kode'].' - '.$row['nama'].' - '.$row['harga'].' - '. $row['stok']; 13 echo '<br/>'; 14 } 15 ?>
www.nurulfikri.com 7874223 / 24
65
PHP Dasar
Fungsi ini digunakan untuk mendapatkan jumlah baris hasil query ( affected rows) dari perintah SQL INSERT, UPDATE dan DELETE
1 <?php 2 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi', 'rosa','passrosa'); 3 4 $del=$dbh->prepare('DELETE FROM produk'); 5 6 $del->execute(); 7 echo 'Jumlah Data Yang di hapus : '; 8 $jml = $del->rowCount(); 9 echo ' ada '. $jml .' Baris '; 10 11 ?>
9.5.7
Ketika menggunakan prepare statement untuk eksekusi beberapa perintah SQL terkadang terjadi kesalahan, dikarenekan buffer query. Agar tidak terjadi kesalahan berikut konfigurasi yang harus di set pada saat membuat object koneksi database dengan PDO
1 <?php 2 3 $konfig = PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true; 4 $dbh = new PDO('mysql:host=localhost;dbname=dbkoperasi', 'rosa','passrosa',$konfig); 5 6 ?>
www.nurulfikri.com 7874223 / 24
66
PHP Dasar
Daftar Pustaka
LP3T NurulFikri, Irfan, Modul PHP Dasar, LP3T NF 2006 http://www.php.net/manual/en/ , diakses 15 Desember 2009 http://xbata.com, diakses 15 Desember 2009 http://rojulman.web.id , diakses 15 Desember 2009
www.nurulfikri.com 7874223 / 24
67