You are on page 1of 72

PHP Dasar

Program Reguler
LP3T NurulFikri, 2010 Sirojul Munir

Program Reguler & Inhouse

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

PHP Dasar

Bab 1 Pengenalan PHP


1.1 Tujuan:
Memahami dan mengerti perbedaan static web page dengan dynamic web page. Memahami dan mengerti apa itu web scripting atau web programming. Memahami apa itu php dan mengapa menggunakannya.

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

Client Side Scripts

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

Program Reguler & Inhouse 1.2.2 Server site scripts

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

1.3 Apa itu PHP ?


PHP adalah sebuah project dari Apache Software Foundation.(http://www.apache.org). PHP singkatan dari PHP:Hypertext Preprocessor, yang merupakan salah satu Server site scripts (web scripting language) yang biasa digunakan khusus untuk membuat aplikasi web atau web site. Dalam pengkodeannya PHP juga dapat ditanam dalam kode HTML.

1.4 Mengapa PHP ?


Fungsi dari PHP dan apa itu PHP telah dijelaskan pada sub bab sebelumnya, namun pertanyaan mengapa menggunakan PHP atau mengapa memilih PHP sebagai web scripting language ? Tentunya pertanyaan ini harus menjadi awal pemikiran Anda dalam menggunakan web scripting language PHP. Mungkin ada beberapa alasan atau jawaban atas pertanyaan tersebut yang relatif lebih menonjol yaitu : 1. PHP dapat digunakan dibanyak sistem operasi termasuk Linux, dan beberapa variant UNIX (meliputi HP-UX, Solaris dan OpenBSD), Microsoft Windows, Mac OS X, RISC OS, dan mungkin banyak lagi yang linnya. Sehingga dengan menggunakan PHP sebagai web scripting language maka Anda dapat dengan bebas menentukan sistem operasinya. 2. PHP juga didukung oleh sebagian besar aplikasi-aplikasi web server saat ini. Diantaranya termasuk Apache, Microsoft Internet Information Server, Personal Web Server, Netscape dan iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, dan banyak lagi lainnya. Disebagian besar web server menyertakan PHP sebagai module, disebagian lainnya mendukung standar CGI, dimana PHP dapat bekerja sebagai sebuah CGI processor. Sehingga dengan menggunakan PHP sebagai web scripting language maka Anda dapat dengan bebas menentukan apa aplikasi web servernya. 3. Dengan PHP Anda tidak hanya terbatas dengan output HTML. Kemampuan-kemampuan PHP meliputi outputting images, PDF files dan bahkan Flash movies (dengan menggunakan libswf dan Ming) yang bersifat generated on the fly. Anda dapat juga menghasilkan output text seperti XHTML dan banyak lagi file -file XML lain. 4. PHP mendukung banyak aplikasi database. Membuat halaman web yang menggunakan database menjadi sangat mudah dan sederhana. Berikut ini beberapa database yang saat ini didukung oleh PHP:
www.nurulfikri.com 7874223 / 24

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.

1.5 Instalasi Apache dan PHP


Sebelum Anda melakukan instalasi PHP pastikan dahulu bahwa pada komputer Anda telah terinstal aplikasi web server (apache). Untuk mengecek apakah pada komputer Anda telah terinstal aplikasi web server(apache) lakukan perintah berikut ini: Pada distribusi berbasis RedHat seperti : Fedora, Mandriva, Centos
# rpm -|grep httpd httpd-2.0.40-8

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

Jika belum ter-instal lakukan instalasi sbb:


#rpm -ivh php-4.2.2-8.0.5.i386.rpm

www.nurulfikri.com 7874223 / 24

Program Reguler & Inhouse

PHP Dasar

1.6 Pengecekan web server (apache) support PHP


Aktifkan apache, lalu buatlah file info.php dan letakkan didalam direktori default document_root apache yaitu di /var/www/html, isi file info.php sbb:
1 <?php 2 3 ?> phpinfo();

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

Program Reguler & Inhouse

PHP Dasar

Bab 2 Dasar-dasar PHP


2.1 Tujuan:

Memahami struktur penulisan program php Memahami variabel, tipe data, konstanta, dan operator php Mampu membuat program php dan bekerja dengan form html

2.2 Struktur Program PHP


Bagaimana memulai menulis program/script php ? Untuk membuat script php terlebih dahulu Anda harus tahu dan paham struktur penulisan script php, yaitu sbb: 1. Nama file script php biasanya berekstensi .php. Misal : index.php, coba.php dan lainlain 2. Script php diawali dengan tanda (tag) pembuka script php biasanya yaitu tanda <?php dan diakhiri dengan tanda (tag) penutup php yaitu ?>. Contoh:
1 <?php 2 phpinfo(); // kode atau perintah (script) php disni 3 ?>

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

Program Reguler & Inhouse


5 Welcome to My First PHP Script Room<BR> 6 <?php // tag pembuka pertama script php 7 echo <H2> This is my firest script </H2>\n; 8 ?> 9 <BR> 10 <B> Thank's for visting </B> 11 <BR> 12 You Are visitor no: 13 <?php // tag pembuka kedua script php 14 echo get_count() ; 15 ?> 16 17 </BODY> 18 </HTML>

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 ?>

2.3 Variabel, tipe data, dan konstanta


2.3.1 Variabel

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 ?>

Sebuah variabel biasanya diberikan/diisi dengan nilai(value). Jika Anda memberikan


www.nurulfikri.com 7874223 / 24

Program Reguler & Inhouse

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

Program Reguler & Inhouse


1 //file. tes.php 2 <?php 3 echo Ini Variabel a: $a; 4 ?> 5 file. coba.php 6 <?php 7 $a = 1; 8 include "tes.php"; 9 10 ?>

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

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.

Tabel-1. Operator aritmatika

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

Program Reguler & Inhouse 2.4.2 Operator Assignment

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

$a << $b Shift left $a >> $b Shift right

Menggeser kekiri bit-bit dari $a sebesar $b bit (steps) Menggeser kekanan bit-bit dari $a sebesar $b bit (steps)

Tabel-2. Operator bitwise

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

Program Reguler & Inhouse


Contoh
$a === $b $a != $b $a <> $b $a !== $b $a < $b $a > $b $a <= $b $a >= $b Identical Not equal Not equal Not identical Less than Greater than Less than or equal to Greater than or equal to

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

Tabel-3. Operator Perbandingan

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

Operator Error Control

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 ?>

1 //File. coba2.php 2 3 <?php 4 $my_file = file ('non_existent_file') ; 5 ?>

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.

1 <?php 2 $output = `ls -al`; 3 echo "<pre>$output</pre>"; 4 ?>

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.

Tabel-4. Operator incrementing/decrementing

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

Program Reguler & Inhouse


20 echo "Should be 4: " . $a . "<br>\n"; 21 ?>

PHP Dasar

2.4.8

Operator logika Contoh Nama


And Or

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

Xor Not And Or

jika keduanya $a dan

TRUE jika salah satu dari vriabel $a atau adalah TRUE.

Tabel-5. Opeartor logika

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!" ?>

2.4.10 Operator Array

www.nurulfikri.com 7874223 / 24

14

Program Reguler & Inhouse Example


$a + $b $a == $b

PHP Dasar Result


Union dari array $a dan $b. $b memiliki element-

Name
Union Equality

TRUE jika array $a dan element yang sama .

$a === $b Identity $a != $b $a <> $b $a !== $b Inequality Inequality Nonidentity

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.

TRUE jika array $a tidak identik dengan

Tabel-6. Operator Array

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); ?>

2.5 Bekerja dengan Form HTML


PHP dapat memperoleh variabel dari luar melalui form HTML (GET atau POST). Ketika sebuah form di submit ke script PHP maka secara otomatis seluruh informasi yang dimasukkan/diinputkan ke dalam form tersebut akan tersedia (dapat diakses) oleh script PHP tersebut. Contoh. Form HTML sederhana
1 <form action="tes.php" method="post"> 2 Name: <input type="text" name="username" value=""/><br> 3 Email: <input type="text" name="email" value=""/><br> 4 <input type="submit" name="submit" value="Submit uh!" /> 5 </form>

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

PHP Dasar

Bab 3 Struktur Kendali


3.1 Tujuan:
Memahami penggunaan pernyataan seleksi if, elseif, else, dan switch Memahami penggunaan pernyataan perulangan for, while, do ..while, dan foreach. Memahami penggunaan pernyataan penyisipan file seperti require dan include.

3.2 Pernyataan seleksi


Program atau script PHP terdiri dari sederetan pernyataan-pernyataan, baik itu pernyataan pendefinisian sebuah variabel, peryataan seleksi, perulangan, pemanggilan fungsi, bahkan bisa juga terdiri dari pernyataan yang tidak melakukan apa-apa seperti komentar. Sekumpulan pernyataan dalam sebuah script PHP dapat dikelompokkan dengan menggunakan tanda { dan } . Sebuah script PHP mungkin saja didalamnya terdapat sekumpulan atau kelompok pernyataan yang hanya akan dieksekusi dengan kondisi-kondisi yang tertentu (kondisional), hal seperti ini disebut dengan pernyataan seleksi atau kondisional. Pernyataanpernyataan yang berhubungan dengan proses seleksi ini diantaranya adalah pernyataan if, elseif, else, dan switch. 3.2.1 Pernyataan if Penulisannya:
if (expr) statement

catatan: expr adalah ekspresi (pernyataan kondisional) contoh:


1 <?php 2 $a = 23; 3 $b = 17; 4 if ($a > $b) 5 echo "a lebih besar dari b"; 6 ?>

Atau jika terdiri dari beberapa pernyataan di dalam if sbb:


1 <?php 2 $a = 23; 3 $b = 17; 4 if ($a > $b) { 5 echo "a lebih besar dari b"; 6 $b++; //tambahkan 1 ke variabel $b 7 }

www.nurulfikri.com 7874223 / 24

17

Program Reguler & Inhouse


8 ?>

PHP Dasar

3.2.2

Pernyataan else Penulisannya:


if (expr) statement else statement

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

Pernyataan elseif Penulisannya:


if (expr) statement elseif (expr) statement else statement

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

Program Reguler & Inhouse 3.2.4 Pernyataan switch

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 ;

catatan: break berfungsi untuk keluar dari proses switch.

3.3 Pernyataan Perulangan


Adakalanya script PHP anda menghendaki adanya proses perulangan terhadap suatu pernyataan tertentu (loop). Untuk itu Anda dapat menggunakan beberapa pernyataan perulangan seperti pernyataan for, while, do ..while, dan foreach. 3.3.1 Pernyataan for Penulisannya:
for (expr1; expr2; expr3) statement
www.nurulfikri.com 7874223 / 24

19

Program Reguler & Inhouse Contoh:


1 <?php 2 // contoh 1 3 for ($x = 1; $x <= 10; $x++) 4 echo $x <br> \n; 5 6 // contoh 2 7 for ($x = 1;; $x++) { 8 if ($x > 10) { 9 break; 10 } 11 echo $x <br> \n; 12 } 13 14 // contoh 3 15 $x = 1; 16 for ( ;;) { 17 if ($x > 10) { 18 break; 19 } 20 echo $x <br> \n; 21 $x++ ; 22 } 23 24 // contoh 4 25 for ($x = 1; $x <= 10; echo $ix <br> \n, $x++); 26 ?>

PHP Dasar

3.3.2

Pernyataan while Penulisannya:


while (expr) statement

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

Pernyataan foreach Penulisannya:


foreach (array_expression as $value) statement foreach (array_expression as $key=>$value) statement

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

Program Reguler & Inhouse 3.3.5 Pernyataan break

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

Program Reguler & Inhouse Contoh:

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 "&nbsp;&nbsp;&nbsp;&nbsp; Ini Bagian Tengah<br>\n"; 16 while (1) { 17 echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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 ?>

3.4 Pernyataan require & include


Pernyataan-pernyataan ini digunakan jika Anda ingin menyisipkan atau memasukkan sscript PHP dari file yang lain kedalam file PHP saat ini. 3.4.1 require Penulisannya:
require( nama_file) require nama_file

Contoh: File. pustaka.inc


1 <?php 2 echo Ini Output dari file pustaka.inc<br>\n; 3 echo $a <br>\n; 4 ?>

www.nurulfikri.com 7874223 / 24

23

Program Reguler & Inhouse File. Main.php


1 2 3 4 5 <?php $a = Hello World; require pustaka.inc; echo Ini output dari file main.php<br>\n; ?>

PHP Dasar

3.4.2

include Penulisannya:
include ( nama_file) include nama_file

Contoh: File. pustaka.inc


1 <?php 2 echo Ini Output dari file pustaka.inc<br>\n; 3 echo $a <br>\n; 4 ?>

File. Main.php
1 <?php 2 $a = Hello World; 3 include pustaka.inc; 4 echo Ini output dari file main.php<br>\n; 5 ?>

3.5 Beberapa Jenis Error


PHP sebagai bahasa pemrograman web yang handal, menyediakan berbagai pesan error yang muncul saat seorang programmer melakukan kesalahan agar bisa segera diperbaiki. 3.5.1 Contoh Pesan Error

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

Program Reguler & Inhouse

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

Program Reguler & Inhouse

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

2. Anda ganti dengan


log_errors = On

3. Pada baris dibawahnya, cari script berikut :


;error_log = filename

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

Program Reguler & Inhouse

PHP Dasar

Bab 4 Data Lanjutan


4.1 Tujuan:
Memahami tipe-tipe data string, array, dan object dalam PHP Mampu membuat program PHP yang menerapkan tipe data string, array, dan object

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

Program Reguler & Inhouse

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 ?>

4.3 Mengakses String sebagai karakter


Karakter-karakter yang ada dalam string dapat diakses dengan pengindekan(indexing). H 0 E 1 L 2 L 3 O 4 5 W 6 O 7 R 8 L 9 D 10

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 ?>

String dalam PHP dapat dirubah perkarakter dengan pengindekan contoh:


1 <?php 2 $str = HELLO WORLD ; 3 $str [6] = M; 4 echo $str; 5 ?>

www.nurulfikri.com 7874223 / 24

28

Program Reguler & Inhouse

PHP Dasar

4.4 Konversi data menjadi string


Untuk mengkonversi PHP menyediakan built-in fungsi yaitu : strval(). Contoh:
1 <?php 2 $ 3 x = 120; // integer 120 4 $y = 120; //string 120 5 $on = TRUE //boolean 6 if ( $x === $y) 7 { echo Ini tidak identik; } 8 9 if ( strval($x) === $y ) 10 { 11 echo Dengan mengkonversi integer 120 menjadi string \120\ barulah identik; 12 } 13 14 if ( $on === 1 ) 15 { 16 echo Ini tidak identik; 17 echo Dengan mengkonversi boolean TRUE menjadi string \1\ barulah identik; 18 } 19 ?>

4.5 Fungsi fungsi string


PHP menyediakan banyak fungsi-fungsi yang berkaitan dengan string diantaranya, berikut ini fungsi-fungsi string: 4.5.1 addslashes

string addslashes( string str)

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

Program Reguler & Inhouse 4.5.2 strlen


int strlen(string str)

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

string ltrim(string str)

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

string trim(string str)

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

array explode ( string separator, string string)

Fungsi ini mengekstrak(split) sebuah string menjadi array. Contoh:


1 <?php 2 $str1 = satu dua tiga empat lima; 3 $str 2= satu:dua:tiga:empat:lima; 4 $str 3= satu,dua,tiga,empat,lima; 5 $arr1 = explode( , $str1); //separator string adalah spasi 6 $arr2 = explode(:, $str2); // separator string adalah titik dua 7 $arr3 = explode(,, $str3); //separator string adalah koma 8 foreach( $arr1 as $val1) { echo <br> $val1 \n; } 9 foreach( $arr2 as $val2) { echo <br> $val2 \n; } 10 foreach( $arr3 as $val3) { echo <br> $val3 \n; } 11 ?>

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

Program Reguler & Inhouse 4.5.8 substr


string substr(string string, int start [, int length])

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"

1, 3); // returns "bcd" 0, 4); // returns "abcd" 0, 8); // returns "abcdef"

4.6 Type Casting


PHP menyediakan type casting yang berguna untuk memastikan type data apa yang kita pesankan pada suatu variabel. Hal ini sangat berguna untuk menghindari kesalahan yang kita sendiri tidak sengaja melakukannya, misal Anda ingin melakukan proses perhitungan tapi hasilnya tidak tepat, karena type data dari hasil perhitungan yang Anda buat bertipe data integer yang tidak menyediakan pecahan. Untuk memesan type data apa yang ingin Anda buat untuk menyimpan data pada suatu variabel, gunakan cara berikut :
$newint = (int) $var1; $newfloat= (float) $var1; $newstring= (string) $var1;
$newint merupakan variable yang kita gunakan untuk menyimpan data, (int) type data yang kita gunakan dan $var1 adalah variable yang isinya akan diubah sebagai integer dan disimpan di variabel $newint.

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

Program Reguler & Inhouse Jadi perintah seperti ini


$newint= 100; $newfloat=9.8;

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

Program Reguler & Inhouse string.


$kota['DPK']= Depok; $kota['JKT']= Jakarta; $kota['SBY']= Surabaya;

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

Perintah diatas sama juga dengan :


$jalan[6]=Jl. Sisingamangaraja; $jalan[7]=Jl. Kapitan Pattimura; $jalan[8]=Jl. Diponegoro;

www.nurulfikri.com 7874223 / 24

34

Program Reguler & Inhouse kata :


$kota = array(DPK=>Depok, JKT=>Jakarta, SBY=>Surabaya);

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

Mengakses elemen-elemen array

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 ?>

Elemen -elemen array dapat pula dirubah. Contoh:


1 <?php 2 $arr = array(1,2,3,'hello',100,"world",10 => 100, LPK => Nurulfikri); 3 $arr[0] = 1234; 4 echo $arr[0]. <br>\n; 5 $arr[LPK] = Nurul Fikri; 6 echo $arr[LPK]. <br>\n; 7 ?>

www.nurulfikri.com 7874223 / 24

35

Program Reguler & Inhouse 4.7.3 Menghapus elemen array

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 dapat juga

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:

1. Fungsi count int count ( mixed var)

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

Program Reguler & Inhouse


2. Fungsi list void list ( mixed ...)

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 )

Fungsi ini mengurutkan elemen-elemen array. 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 7 echo Setelah diurutkan sbb: <br>\n; 8 sort ($foo); 9 while (list ($key, $val) = each ($buahs)) { 10 echo "$key => $val<br>\n"; 11 } 12 ?> 5. foreach foreach ($nama_array as $key => $val ) { block_statement; }

Foreach dapat digunakan untuk melihat isi sebuah array.


www.nurulfikri.com 7874223 / 24

37

Program Reguler & Inhouse Contoh :


1 <?php 2 $warna=array(Merah,Hitam,Putih,Biru,Coklat); 3 foreach ($warna as $key=>$val) 4 { 5 echo Index nya = $key, Warnanya = $val<br>; 6 } 7 ?>

PHP Dasar

www.nurulfikri.com 7874223 / 24

38

Program Reguler & Inhouse

PHP Dasar

Bab 5 Fungsi
5.1 Tujuan:
Mengerti apa itu fungsi Mampu membuat dan menerapakan fungsi buatan sendiri dalam program PHP

5.2 Apa itu fungsi ?


Fungsi adalah sekumpulan variabel dan pernyataan-pernyataan (perintah) PHP yang melakukan suatu kerja atau proses kecil dari keseluruhan kerja atau proses besar sebuah program PHP. Dengan fungsi dapat menyederhankan kerumitan program PHP Anda, dengan fungsi pula mengurangi banyaknya baris-baris pernyataan yang dapat mengurangi pula ukuran file/script PHP Anda. PHP telah menyediakan banyak fungsi -fungsi built-in yang memudahkan Anda dalam membuat script PHP, misalnya fungsi-fungsi yang berkaitan dengan manipulasi string , array, dan banyak lagi.

5.3 Sintaks Fungsi


Fungsi dituliskan dengan perintah berikut ini:
function nama_fungsi ([argumen]) { blok statement fungsi }

Argumen pada fungsi bersipat optional, artinya argumen boleh ada atau berupa argumen kosong.

5.4 Fungsi yang didefinisikan user


Fungsi ini dibuat oleh user / programmer. Anda bisa mencoba memulai membuat fungsi yang sederhana untuk menghasilkan table HTML.
1 function start_table() 2 { 3 echo <Table border=1>\n; 4 }

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

Program Reguler & Inhouse

PHP Dasar

1 function start_table($border) 2 { 3 echo <Table border=$border>\n; 4 }

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.

5.5 Argumen di dalam fungsi


Seperti dijelaskan sebelumnya argumen pada fungsi bersipat optional, artinya argumen boleh ada atau berupa argumen kosong.
1 function start_table ($border, $cellpadding, $cellspacing) 2 { 3 echo "<table border=$border cellpadding=$cellpadding 4 cellspacing=$cellspacing>\n"; 5 }

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

Program Reguler & Inhouse

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 ?>

5.6 Nilai balik fungsi (Returning Values)


Tentu saja, kemampuan fungsi bukan hanya mencetak tag-tag HTML. Fungsi (function) dapat juga mengolah suatu database, melakukan perhitungan matematik ataupun melakukan pengoperasian string. Semua bisa didapatkan nilainya dengan kata return. Ketika terdapat kata return pada suatu fungsi, saat fungsi itu sudah digunakan untuk suatu proses, maka fungsi
www.nurulfikri.com 7874223 / 24

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.

5.7 Variable Scope


Variable scope, merupakan bahasan paling penting di tiap bahasa pemrograman. Fungsi-fungsi yang kita buat sebelumnya masing-masing memiliki variabel yang hanya di kenal di dalam fungsi tersebut saja. Agar variabel-variabel tersebut dapat mengenal, kita gunakan keyword global.
www.nurulfikri.com 7874223 / 24

42

Program Reguler & Inhouse Contoh :


1 <?php 2 function math_dasar($val2) { 3 global $number; 4 $tambah=$number +$val2; 5 echo $tambah_lagi; 6 return; 7 } 8 $number=10; 9 math_dasar(5); 10 ?>

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.

5.8 Memanggil Fungsi dari File lain


Fungsi dapat digunakan oleh file lain dengan menggunakan perintah include. Contoh : Buat file berikut dengan nama bikin_fungsi.php
1 <?php 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 ?>

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

Program Reguler & Inhouse

PHP Dasar

Bab 6 Session
6.1 Tujuan:

Mengerti dan paham konsep session Mampu membuat program PHP yang menggunakan session

6.2 Apa itu session ?


Session adalah salah satu fitur yang disediakan PHP4 , yang memungkinkan Anda menyimpan variabel dalam sebuah session 'object' selama seorang user mengunjungi website Anda. Sebuah session berawal ketika seorang user mengunjungi website Anda dan berakhir ketika user tersebut meninggalkan kunjugan dari website Anda (atau secara eksplisit ketika seorang pengunjung menghentikan web browser). Initinya , ada sebuah cookie ( adalah mekanisme untuk menyimpan/memberikan data ke browser client) di asosiasikan dengan browser, dan bermacam sumber daya penyimpanan dialokasikan pada server untuk menyimpan/mempertahankan variabel-variabel session. PHP4 menggunakan file-file untuk menyimpan variabel-variabel sessions, tetapi secara teori dapat juga menggunakan database atau shared memory untuk melakukan hal yang sama. Seluruh halaman web yang menggunakan session harus memanggil sebuah array built-in PHP yaitu $_SESSION['nama_variable'] yang akan mengatakan kepada PHP engine untuk memuat informasi yang berhubungan dengan session kedalam memory.

6.3 Variabel-variabel session


Sebuah variabel session adalah global variable , saat didaftarkan sebagai variabel session, maka nilai dari variabel tetap terjaga di semua halaman web yang menggunakan session PHP. Untuk mendaftarkan sebuah variabel session, pemberian sebuah nilai ke sebuah variabel yang akan menjadi variabel session Anda dapat memanggil array $_SESSION['nama_variable']. Pada semua halaman web yang menggunakan session ( dengan memanggil session_start()), variabel dengan nama nama_variable akan telah memiliki nilai (value) sebagaimana nilai yang telah diberikan ke variabel tersebut sebelum didaftarkan sebagai variabel session. Setiap perubahan nilai dari variabel session akan secara otomatis didaftarkan kedalam session dan disimpan untuk referensi selanjutnya. Catatan : Sejak PHP menon-aktifkan variabel global, maka fungsi session_register() ikut non-aktif, di ganti dengan penggunaan array $_SESSION['nama_variable'].

www.nurulfikri.com 7874223 / 24

44

Program Reguler & Inhouse

PHP Dasar

6.4 Fungsi-fungsi session


Ada beberapa fungsi-fungsi yang berkaitan dengan session , diantaranya:
1. session_start() bool session_start(void)

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 mendapatkan atau memberikan session id saat ini.


5. Session_unregister() bool session_unregister ( string name)

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

Program Reguler & Inhouse

PHP Dasar

6.5 Contoh penggunaan session


File. sesi1.php
1 <?php 2 session_start(); // start session 3 $_SESSION['NAMA_USER'] = 'Faiz Fikri'; 4 ?>

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

Program Reguler & Inhouse

PHP Dasar

Bab 7 Pengenalan OOP dengan PHP5


7.1 Tujuan :

Mengerti dan paham penggunaan konsep Class dan Object Mampu membuat Class

7.2 Apa itu OOP ?


OOP atau kepanjangan dari Object Oriented Programming adalah sebuah cara pandang ( paradigma ) dalam memecahkan masalah di dunia nyata dianalogikan kedalam bentuk object dan struktur data yang didalamnya terdapat kumpulan item data disebut variable dan method/fungsi yang saling berinteraksi dalam sebuah struktur program. PHP5 telah men-support pemrograman berorientasi object ( OOP ), dengan Object-oriented programming dapat memudahkan proses pengembangan aplikasi atau software dan dapat mereduksi waktu dan barisan kode program yang dibutuhkan. OOP juga dapat meningkatkan performa sebuah rancangan dan desain program.

7.3 Class dan Object


Seorang arsitektur ketika ingin membangun rumah akan membuat gambar-gambar desain rumah dan merancang konsep dari rumah. Gambar atau Rancangan ini disebut dengan Class, sedangkan rumah-rumah yang telah dibangun berdasarkan gambar dan rancangan arsitektur disebut Object. Analogi lain, sebuah resep masakan tertulis di sebuah majalah Kuliner atau disebuah buku kumpulan resep masakan. Resep masakan ini di baca dan dipraktekan oleh ibu-ibu dibeberapa kota, seharusnya resep masakan ini menghasilkan cita rasa yang sama, walaupun dimasak oleh tangan yang berbeda. Resep masakan pada majalah kuliner / buku masakan adalah Class dan makanan yang tersaji, yang dimasak berdasarkan resep masakan disebut dengan Object. Dari dua kiasan tadi kita dapat mendefinisikan bahwa : Class adalah blue print / cetak biru dari sebuah object Object adalah instance / hasil jadi dari suatu Class. Dari sebuah Class dapat dihasilkan beberapa Object sejenis. 7.3.1 Mendefinisikan Class Berikut sintaks mendefinisikan sebuah Class
class NamaClass { }
www.nurulfikri.com 7874223 / 24

47

Program Reguler & Inhouse

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

7.4 Member Class


Dalam class terdapat item data yang menyimpan informasi disebut variable dan fungsi yang mengolah data. Variabel dan Fungsi disebut dengan Member Class, atau anggota Class.

www.nurulfikri.com 7874223 / 24

48

Program Reguler & Inhouse 7.4.1 Variabel

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

Program Reguler & Inhouse


9 } 10 11 function getStatus() 12 { 13 return $this->status; 14 } 15 16 } 17 18 $oten = new Otentifikasi(); 19 // cetak status 20 echo 'Status : '. $oten->getStatus(); 21 22 ?>

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

7.5 Akses Member Class


7.5.1 Kata Kunci $this

Untuk mengakses member class ( variabel dan fungsi ) gunakan kata kunci $this diikuti tanda panah dan lebih besar ( $this-> ) .

Contoh, akses member class pada class Otentifikasi


www.nurulfikri.com 7874223 / 24

50

Program Reguler & Inhouse Akses variabel class :


$this->status = SUKSES ;

PHP Dasar

Akses fungsi getStatus :


$this->getStatus();

7.5.2

Akses Static Member Class

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

Akses variabel konstan

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

Program Reguler & Inhouse


const PHI = 3.14; const PT = NURUL FIKRI CIPTA INOVASI;

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

Program Reguler & Inhouse

PHP Dasar

Bab 8 Fungsi-fungsi PHP - MySQL


Bab ini tidak diajarkan dikelas, dikarenakan teknologi koneksi database telah dikembangkan teknik terbaru yaitu koneksi database dengan menggunakan library PDO yang telah menjadi standard untuk koneksi ke database mulai PHP 5. Bab ini digunakan sebagai referensi untuk dipelajari sendiri oleh siswa, Mengenai PDO bisa dilihat di Bab 9.

8.1 Tujuan :

Mengerti dan paham penggunaan fungsi-fungsi php untuk mengakses mysql Mampu membuat program PHP yang menggunakan database mysql

8.2 Memanggil Fungsi


Ingat Anda memiliki 2 perangkat yang dapat bekerja sama sehingga Anda dapat membangun aplikasi basis data di web yaitu PHP dan MySQL. Dengan begitu isi dari situs web yang Anda bangun akan bersifat dinamik dan isinya tergantung data pada MySQL. Inti dari bagian ini adalah bagaimana Anda memanfaatkan fungsi-fungsi PHP yang berhubungan dengan MySQL Bagi Anda yang belum pernah memakai fungsi di PHP sebaiknya Anda membaca bagian ini. Fungsi PHP memiliki bentuk dasar
return_type function_name(argument1,argument2,argument3,)

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.

8.3 Tersambung ke MySQL dengan PHP


Hal pertama yang harus PHP lakukan sebelum ia dapat berdialog dengan server MySQL
www.nurulfikri.com 7874223 / 24

53

Program Reguler & Inhouse

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

8.4 Memilih Database


Setelah koneksi terjadi antara MySQL dan skrip PHP Anda hal kedua yang harus Anda lakukan adalah memilih basis data yang akan diolah. Untuk memenuhi permasalahan ini PHP menyediakan fungsi mysql_select_db() dengan bentuk umumnya seperti di bawah ini: int mysql_select_db(string nama_database [, identifier link]) string_nama_database merupakan nama database yang akan digunakan oleh PHP. Catatan : Tanda [] berarti option. Fungsi ini mengembalikan nilai benar apabila basis data yang dipilih ada pada server mySQL jika tidak akan mengembalikan nilai salah. Adalah penting untuk menguji apakah pemilihan database yang Anda lakukan berhasil atau tidak karena itu pengujian menjadi penting. Anda dapat menggunakan kode di bawah ini untuk melakukan pemilihan basis data.

www.nurulfikri.com 7874223 / 24

54

Program Reguler & Inhouse

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

8.5 Mengirim Query


Setelah mengkoneksi ke server MySQL dan memilih database Anda dapat mengirim sembarang query untuk memanipulasi atau mengakses data untuk keperluan itu PHP menyediakan fungsi mysql_query(). Bentuk umumnya adalah
int mysql_query (string query [,int link_identifier])

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 ?>

8.6 Menambah data ke basis data


Pada bagian ini Anda akan mempelajari bagaimana menambah data dari FORM HTMl ke basis data dengan fungsi-fungsi yang telah diseduakan PHP. Ingat elemen pada FORM HTMl langsung terdaftar sebagai variabel global ketika disubmit. Hal ini memudahkan Anda untuk menambah dat.a ke basis data dengan menggunakan SQL insert dengan nilai yang diambil dari FORM HTML. Misal Anda membuat FORM seperti di bawah ini :
1 <form action=<?php echo($PHP_SELF); ?> METHOD=POST> 2 <p>Type your comment here<br> 3 <input type=text name=text value=> 4 <textarea name=comments></textarea><br> 5 <input type=submit name=submit value=submit> 6 </form>

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

Program Reguler & Inhouse

PHP Dasar

8.7 Mengambil hasil query dengan select


Fungsi mysql_query() mengembalikan nilai benar atau berhasil dan salah atau gagal untuk jenis query selain select. Untuk select hal ini tidak cukup karena itu mysql_query() mengembalikan suatu angka yang merupakan identifikasi hasil query select bila query berhasil. Contoh
1 2 3 4 5 6 7 8 9 <?php $sql = SELECT * from buku_tamu; $result = mysql_query($sql); if (!$result) { echo (<p>Gagal melakukan query dengan alasan . mysql_error()); exit(); } ?>

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 }

Contoh dengan kode berikut


1 <?php 2 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 3 { 4 echo <tr>4key, ; 5 while (list ($key,$value) = each($row)) 6 { 7 echo <td.> . $value </td>; 8 } 9 } 10 ?>

www.nurulfikri.com 7874223 / 24

57

Program Reguler & Inhouse

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; } ?>

8.8 Fungsi-fungsi MySQL lainnya


PHP menyediakan fungsi mysql yang banyak tetapi tidak semuanya sering Anda gunakan. Ada gunanya Anda mengetahui beberapa fungsi-fungsi mysql() supaya Anda dapat menggunakannya ketika Anda membutuhkannya. Berikut ini daftarnya Function
mysql_close([link identifier]) mysql_create_db(string database_name [,int link_identifier]) mysql_drop_db(string database_name [,int link_identifier]) mysql_list_dbs([int link_identifier]) mysql_list_tables([int link_identifier])

Nilai kembali Int Int

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

Program Reguler & Inhouse


mysql_list_fields([int link_identifier]) mysql_errno([int link_identifier]) mysql_num_fields(int result) mysql_data_seek(int result, int row_number) mysql_field_seek(int result, int field_offset) mysql_field_name(int result, int field_index) mysql_field_table(int result, int field_offset) mysql_field_len(int result, int field_offset) mysql_field_type(int result, int field_offset) mysql_field_flags(int result, int field_offset) mysql_free_result(int result)

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

Mengembalikan tipe kolom

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

Program Reguler & Inhouse

PHP Dasar

Bab 9 Pustaka Database PDO


9.1 Tujuan:
Mengerti penggunaan pustaka PDO Mampu membuat program yang terkoneksi ke database MySQL

9.2 Lapisan Abstraksi Database


Pustaka atau Library adalah kumpulan kode program yang berisi kumpulan Class atau Fungsi yang digunakan untuk tujuan spesifik dan dapat membantu dalam proses pengembangan sebuah aplikasi program. Pustaka PHP yang tersedia di internet diantaranya adalah Pustaka untuk mengakses database (DBMS). Pustaka Abstraksi Database digunakan sebagai lapisan yang menjembatani berbagai macam vendor DBMS - MySQL, PostgreSQL, Oracle, SyBase, Informix, SQL Server, SQLLite, Access, FoxPro, ODBC dengan bahasa pemrograman PHP. Dengan adanya lapisan ini diharapkan programmer dapat mengakses banyak vendor database ( berpindah-pindah jenis DBMS) dengan sedikit pengubahan kode program.

Gambar 9.1 : Lapisan Pustaka Abstraksi Database

www.nurulfikri.com 7874223 / 24

60

Program Reguler & Inhouse

PHP Dasar

9.3 PDO : Portable Data Objects


PDO atau PHP Data Objects adalah sebuah ekstensi PHP5 berupa Library / Pustaka untuk koneksi ke Database (DBMS). PDO menyediakan lapisan akses database, untuk bermacam-macam database, Anda akan menggunakan fungsi-fungsi yang sama dalam melakukan eksekusi perintah SQL ( query ) atau mengambil data ( fetch data ) . PDO telah men-support beberapa Driver untuk beberapa Database, seperti 1. PDO_DBLIB, support database FreeTDS / Microsoft SQL Server / Sybase 2. PDO_FIREBIRD , Firebird/Interbase 6 3. PDO_IBM , IBM DB2 4. PDO_INFORMIX , IBM Informix Dynamic Server 5. PDO_MYSQL , MySQL 3.x/4.x/5.x 6. PDO_OCI , Oracle Call Interface 7. PDO_ODBC , ODBC v3 (IBM DB2, unixODBC and win32 ODBC) 8. PDO_PGSQL , PostgreSQL 9. PDO_SQLITE , SQLite 3 and SQLite 2

9.4 Koneksi ke database


Dalam koneksi ke database server ada beberapa variabel yang harus didefinisikan : 1. Nama Server database : misal localhost untuk komputer local atau nomor IP server 2. Nama User : nama user pemilik basis data, misal rosa 3. Password User , misal passwordnya juga passrosa 4. Nama Basis Datanya , misal dbkoperasi 9.4.1 Koneksi ke database MySQL Berikut contoh kode program PHP akses database MySQL :
1 <?php 2 $dbh= new PDO('mysql:host=localhost;dbname=dbkoperasi',"rosa","passrosa"); 3 ?>

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

Program Reguler & Inhouse 9.4.2 Koneksi ke database PostgreSQL

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.

1 <?php 2 $dbh= new PDO('pgsql:host=localhost;dbname=dbkoperasi;port=5555',"rosa","passro sa"); 3 ?>

9.4.3

Koneksi melalui ODBC

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

Menangkap eksepsi kesalahan

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

Program Reguler & Inhouse

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

9.5 Fungsi-Fungsi pada PDO


9.5.1 Fungsi exec( )

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

Program Reguler & Inhouse 9.5.2 Fungsi query()

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

Program Reguler & Inhouse


17 18 19 20 21 $sql3 = "DELETE FROM produk WHERE kode=? "; $st3 = $dbh->prepare( $sql3 ); $st3->execute( array ('CD01')); ?>

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

Program Reguler & Inhouse 9.5.6 Fungsi rowCount()

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

Tips Error Buffered Query

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

Program Reguler & Inhouse

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

You might also like