PHP Programming

Fundamental
dan

MySQL
Fundamental

Daftar Isi

Daftar Isi .................................................................................................................................................2 About the document ...............................................................................................................................6 A. B. C. D. E. Copyright......................................................................................................................................6 Disclaimer ....................................................................................................................................6 Version..........................................................................................................................................6 Knowledge Required.................................................................................................................6 Feedback and corrections ............................................................................................................7

About the authors ...................................................................................................................................1 Endy Muhardin.....................................................................................................................................1 I. A. Pengantar ........................................................................................................................................2 Konsep Multi Tier Application .....................................................................................................2 Client Side Presentation....................................................................................................................2 Server Side Business Logic ..............................................................................................................2 Back End Storage .............................................................................................................................3 Perbedaan Web Based Programming dengan System Programming...........................................3 Teknologi Alternatif......................................................................................................................3 CGI Script.........................................................................................................................................3 Proprietary API.................................................................................................................................4 ASP...................................................................................................................................................4 JavaServlet/JSP.................................................................................................................................4 ColdFusion .......................................................................................................................................4 PHP...................................................................................................................................................4 Hello World.................................................................................................................................5 Source code ..................................................................................................................................5 Compile ........................................................................................................................................5 Deploy ..........................................................................................................................................5 Error message ..........................................................................................................................5 Output...........................................................................................................................................5 Statement dan Comment............................................................................................................7 Statement ......................................................................................................................................7 Expression ....................................................................................................................................7 Comment.......................................................................................................................................7 Variabel dan Tipe Data..............................................................................................................9

B. C.

II. A. B. C. D. E. III. A. B. C. IV.

A. B. C. D.

Deklarasi variabel ........................................................................................................................9 Inisialisasi variabel ......................................................................................................................9 Tipe data.....................................................................................................................................10 Passing Variable ....................................................................................................................11 URL ................................................................................................................................................11 Form ...............................................................................................................................................12 Cookie ............................................................................................................................................13 Operators ..................................................................................................................................14

V. A. B. C. D.

Arithmetic operator ....................................................................................................................14 Relational operator ....................................................................................................................15 Logical operator.........................................................................................................................17 Assignment Operator..............................................................................................................18 Operator += ....................................................................................................................................18 Operator -= .....................................................................................................................................18 Operator *=.....................................................................................................................................19 Operator /= .....................................................................................................................................19 Operator %= ...................................................................................................................................19 Operator &= ...................................................................................................................................19 Operator |=......................................................................................................................................20 Operator ^=.....................................................................................................................................20 Operator .=......................................................................................................................................20 Operator ++ ....................................................................................................................................20 Operator -- ......................................................................................................................................20 Operator lain-lain ......................................................................................................................21 Control Flow .............................................................................................................................23 Percabangan...............................................................................................................................23 if – else ...........................................................................................................................................23 switch – case...................................................................................................................................26 Perulangan .................................................................................................................................28 for ...................................................................................................................................................28 while ...............................................................................................................................................29 Perpindahan ...............................................................................................................................30 break ...............................................................................................................................................30 continue ..........................................................................................................................................31 return ..............................................................................................................................................31 exit..................................................................................................................................................32 Array..........................................................................................................................................34 Konsep array ..............................................................................................................................34 Inisialisasi array.........................................................................................................................34 Navigasi array ............................................................................................................................35 Fungsi-fungsi array ................................................................................................................36 sort..................................................................................................................................................36 asort dan ksort.................................................................................................................................36 Function.................................................................................................................................37 Konsep function ..........................................................................................................................37

E. VI. A.

B.

C.

VII. A. B. C. D.

VIII. A.

B. C. D. IX. A.

Return value dan parameter .......................................................................................................37 Deklarasi function ......................................................................................................................37 Implementasi function.............................................................................................................38 Variable Lifetime......................................................................................................................40 Scope ..........................................................................................................................................40 Local...............................................................................................................................................40 Global .............................................................................................................................................40 Passing variabel .........................................................................................................................40 By Value.........................................................................................................................................40 By Reference ..................................................................................................................................41 Class dan Objects .....................................................................................................................42

B.

X. A. B. XI. A.

Konsep class dan object .............................................................................................................42 Method dan properties................................................................................................................42 File Handling.............................................................................................................................45 Menulis file .................................................................................................................................46 Buka/buat file .................................................................................................................................47 Masukkan data................................................................................................................................48 Tutup file ........................................................................................................................................49 Menghapus file ...........................................................................................................................49 Membuat direktori ......................................................................................................................49 Navigasi direktori...................................................................................................................49 Menghapus direktori ..................................................................................................................50 Membaca file ..............................................................................................................................50 Database Access ........................................................................................................................52 Sekilas SQL Query......................................................................................................................54 Query pengelolaan database ...........................................................................................................54 Query satu tabel..............................................................................................................................55 Query banyak tabel.........................................................................................................................56 Membuat koneksi ke database ....................................................................................................56 Membuka sambungan dengan database server...............................................................................57 Memilih dan membuka database yang diinginkan .........................................................................57 Mengirim perintah untuk mengambil/mengubah/menghapus data.................................................57 Mengakses hasil query................................................................................................................58 String Handling ....................................................................................................................61 Sekilas Regular Expression ........................................................................................................61 Penggunaan Regular Expression ...............................................................................................62 Session....................................................................................................................................64

B. C. D. E. F. XII. A.

B.

C. XIII. A. B. XIV. A.

No Session ..................................................................................................................................64 login.htm.........................................................................................................................................64 loginNoSession.php........................................................................................................................65 welcomeNoSession.php..................................................................................................................65

................................................ D...displayNoSession............................................................. Konsep session...........................................................................................................................................72 Implementasi : URL Embedding........................................................................................72 ............................................................................................................65 Jalannya aplikasi :......................... F..php ..................................72 Implementasi : Session API .........................................66 B................................................................. C........................68 Implementasi : Cookie ...........................................69 Implementasi : Hidden Form.................................... E................................................................

html B. As this is a new edition of this document. that may of course be damaging to your system. there may be errors and inaccuracies. and with no Back-Cover Texts. You are strongly recommended to take a backup of your system before major installation and backups at regular intervals. and although this is highly unlikely. Use the concepts.org/copyleft/fdl. the author(s) do not take any responsibility for that. examples and other content at your own risk. Permission is granted to copy.com D. .2 or any later version published by the Free Software Foundation. with no FrontCover Texts. and all related skills must be mastered.0. Disclaimer No liability for the contents of this documents can be accepted. A copy of the license is available at http://www. Knowledge Required This document assume the reader (you) to be fluent in HTML and Web Designing. uploading website to internet.artivisi. Basic capabilities such as creating web page. distribute and/or modify this document under the terms of the GNU Free Documentation License. C.About the document A. Copyright This document is copyrighted (c) 2003 ArtiVisi Intermedia. Proceed with caution. with no Invariant Sections. Version 1. Version Revision : 1.gnu.1 Date : April 2003 The latest version of this document is available on http://courseware.

please feel free to mail us at support@artivisi.com. .E. Feedback and corrections If you have questions or comments about this document. Thanks. We welcome any suggestions or criticisms.

telematicsindonesia. Penulis dapat dihubungi melalui email endy@artivisi.com>.com 1 . Saat ini bekerja sebagai trainer di Aptech Computer Education dengan spesialisasi Java. Modul Praktikum Java Fundamental. Modul Pelatihan PHP Programming. Tulisan yang dihasilkan antara lain.artivisi.com>. dan hijrah ke Surabaya. Modul Praktikum Java Distributed.About the authors Endy Muhardin Lahir di Jakarta. Pada tahun 1999 ikut terlibat mendirikan start-up company Telematics Indonesia <http://www. Di masa kuliah salah pergaulan sehingga terkena wabah Linux-PHP-MySQL. Linux. Selain itu juga aktif sebagai dosen luar di STIKOM Surabaya untuk matakuliah Pemrograman Berorientasi Objek dengan Java dan Aplikasi Internet II. aktif dalam berbagai organisasi mahasiswa seperti Himpunan Mahasiswa Teknik Industri STT Telkom dan Senat Mahasiswa STT Telkom. dan PHP. Selain itu. Menyelesaikan kuliah pada tahun 2001.artivisi. dan berbagai materi lain yang dapat didownload di http://courseware. Lulus dari SMUN 81 Jakarta Timur pada tahun 1997 dan melanjutkan ke Teknik Industri STT Telkom.com Aktivitas utama saat ini adalah menginkubasi perusahaan start-up ArtiVisi Intermedia <http://www. meninggalkan Telematics Indonesia yang sedang direstrukturisasi. 8 Juni 1979.

ada tiga bagian utama dari multi tier application: Client side presentation Server side business logic Backend storage Client Side Presentation Client side presentation mengatur bagaimana aplikasi berinteraksi dengan user. 2 . Secara umum. client side presentation dibuat dengan bahasa HTML. ditentukan oleh jenis platiform yang digunakan. Multi tier application adalah aplikasi yang dibagi menjadi beberapa bagian yang menjalankan fungsi masing-masing. dan sebagainya. CSS. Macromedia Dreamweaver. bagaimana fungsi dan fitur aplikasi ditampilkan. Pengantar A. yang akan kita kembangkan dalam pelatihan ini. Alternatif ini akan dijelaskan lebih detail pada bagian selanjutnya. Dalam aplikasi berbasis web. Client side presentation berbasis web contohnya adalah tampilan aplikasi email yang kita buka dengan browser. Server Side Business Logic Server side business logic. Konsep Multi Tier Application Aplikasi internet berbasis web. ada beberapa alternatif yang dapat digunakan. adalah salah satu penerapan multi tier application. Yang dimaksud dengan interaksi antara lain adalah: bagaimana data ditampilkan. Di dalamnya kita mengatur bagaimana fungsi dan fitur aplikasi dapat bekerja dengan baik. adalah bagian yang bertanggung jawab atas cara kerja aplikasi. dan JavaScript. Dalam aplikasi berbasis web.I. sering disebut juga middle tier. Beberapa tool yang digunakan untuk membuat client side presentation diantaranya Microsoft Frontpage.

Ada banyak solusi database yang tersedia di pasaran. B. adalah cara aplikasi berjalan. Walaupun demikian. manajemen proses. Pada pemrograman berbasis web. Teknologi Alternatif Teknologi server side yang akan kita pelajari pada modul ini adalah PHP. faktor yang menentukan kinerja aplikasi adalah kecepatan akses database dan kecepatan akses jaringan dan internet. Perbedaan Web Based Programming dengan System Programming Pembuatan aplikasi berbasis web berbeda dengan pembuatan aplikasi berbasis windows (visual programming). aplikasi dibangun dengan menggunakan tool tertentu. Tetapi saat ini banyak 3 . kita meningkatkan kecepatan dan kinerja aplikasi dengan mengoptimasi penggunaan memori. Karena kecepatan. database yang digunakan bertipe relasional (Relational Database Management System – RDBMS). Teknologi ini pernah sangat populer di masa awal berkembangnya web based application. Dalam visual programming.Back End Storage Bagian ini mengatur cara penyimpanan data. kemudian dikompilasi. Perbedaan kedua. C. Penyimpanan data merupakan materi yang cukup kompleks dalam pembangunan aplikasi. misalnya Perl atau Phyton. misalnya Visual Basic. dalam hal ini web server. Untuk menjalankannya. dan pengaturan Input-Output. keutuhan. Aplikasi berbasis web tidak dapat dijalankan langsung di komputer. CGI Script CGI Script dapat dibuat dengan berbagai bahasa pemrograman. Pada aplikasi visual. Hasilnya dapat langsung digunakan dalam komputer. atau KDevelop. Manajemen data dilakukan dengan bahasa SQL (Standard Query Language). Pada umumnya. dibutuhkan engine tertentu. Delphi. dan keamanan data merupakan faktor kritis dalam aplikasi. perlu diketahui teknologi alternatif yang dapat menjadi bahan pertimbangan.

misalnya ISAPI atau NSAPI. PHP Banyak digunakan oleh programmer berlatar belakang C/C++ karena kemiripan syntaxnya. Tetapi karena murni berorientasi objek. menggunakan tag untuk membentuk blok-blok programnya.ditinggalkan orang karena tidak efisien. ColdFusion Bahasa pemrograman ini mirip dengan HTML. sehingga mengurangi portabilitas. karenanya gratis dan bebas. dan keamanannya rendah. Semuanya gratis dan bebas. JavaServlet/JSP Teknologi server side Java. Java juga adalah bahasa pemrograman yang relatif rumit bagi pemula. ASP Merupakan solusi server side programming dari Microsoft. tidak fleksibel. Teknologi ini banyak digunakan oleh para programmer yang berlatar belakang Visual Basic. sangat portabel. Teknologi ini memiliki kelemahan. Operating system pasangannya adalah Window 2000 Server yang menjalankan webserver Microsoft IIS. Database pasangannya adalah MS SQL Server. Dapat dipindahkan dengan mudah dari Windows ke Unix dan sebaliknya. 4 . Mempunyai banyak keunggulan dan kemudahan pemrograman. Keunggulannya. banyak programmer pemula kesulitan menggunakannya. Database pasangannya biasanya MySQL. yaitu hanya dapat berjalan di webserver tertentu. dijalankan bersama webserver Apache di atas operating system Linux. Proprietary API Teknologi ini adalah bahasa pemrograman yang disediakan masingmasing webserver. Open source. Selain itu.

Error message Kode di atas akan mengalami error. copy file welcome. D. ?> B.php sehingga menjadi seperti berikut ini: <? echo(“Hallo user .php akan berisi tiga baris kode sebagai berikut : <? echo(“Hallo user . Compile Kode program pada umumnya akan mengalami proses kompilasi setelah source code selesai dibuat. ?> kode akan dapat dijalankan dengan baik dan menghasilkan output sebagai berikut : 5 . karena kita terlalu banyak menulis tanda ).II. dan tipe errornya.. !”)). !”)).. E. kita akan membuat kode program sederhana untuk menunjukkan bagaimana aplikasi PHP bekerja. Deploy Untuk mendeploy. kita tidak perlu mengkompile kode ini. Hello World Dalam bagian ini.php A. Pesan error akan muncul di layar.php ke dalam folder percobaan yang telah disiapkan pada bagian instalasi di atas. Output Perbaiki kode welcome. menunjukkan lokasi error pada kode. Kita membutuhkan satu file yang akan kita namakan welcome. Tetapi karena PHP adalah interpreted language. Source code File welcome. C.

6 .

Contoh statement : echo(“hello user … !”). Contoh penggunaan: echo(“4 + 5 = ” . 4+5). Statement Statement adalah satuan perintah dalam PHP. Statement harus diakhiri dengan tanda semicolon/titik-koma (. C. B. Statement dan Comment A. Ada dua cara menulis comment : comment satu baris dan comment banyak baris.). // menampilkan hasil 4 + 5 Comment banyak baris dibuat dengan menggunakan pasangan /* dan */. Contoh penggunaan : 7 . Comment satu baris dibuat dengan menggunakan tanda //. Contoh lainnya : echo(“4 + 5 = ” . Semua statement yang ada di kanan // tidak dijalankan oleh interpreter. Comment dibuat untuk memperjelas atau memberi keterangan pada kode program. Contoh expression : 4 + 5 Penggunaan expression : echo(“4 + 5 = ” . Expression Expression adalah satu bagian kecil kode yang akan dihitung hasilnya oleh php.III. Comment Comment adalah bagian dari kode yang tidak dieksekusi/dijalankan. Semua tulisan yang dibuat di antara tanda tersebut tidak akan dieksekusi oleh interpreter. 4+5). 4+5).

4+5). 8 ./* kode ini akan menampilkan hasil dari 4 + 5 */ echo(“4 + 5 = ” .

Dalam php. dan Akses File dan Folder untuk penyimpanan data di filesystem. Deklarasi variabel Deklarasi variabel bisa disebut juga memperkenalkan atau mendaftarkan variabel ke dalam program. Contoh inisialisasi : 9 . atau garis bawah. B.IV. Untuk penyimpanan data yang permanen. Aturan pemberian nama variabel : Dimulai dengan tanda $ Karakter pertama harus huruf atau garis bawah ( _ ) Karakter berikutnya boleh huruf. Variabel di PHP diawali dengan tanda $. A. Inisialisasi variabel Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam variabel. Data yang disimpan dalam variabel akan hilang setelah program selesai dieksekusi. deklarasi dan inisialisasi. Silahkan mengacu pada Akses Database untuk mendalami penggunaan database. deklarasi variabel seringkali digabung dengan inisialisasi. angka. ada dua langkah yang harus dilakukan. kita dapat menyimpan data di database atau di disk. Untuk dapat menggunakan variabel. Variabel dan Tipe Data Variabel digunakan sebagai tempat penyimpanan data sementara. Contoh : $namaPembeli $jumlahBarang $harga Ada beberapa aturan yang diikuti berkenaan dengan penggunaan nama variabel. Variabel dalam PHP dinyatakan dengan awalan $.

PHP mengenal dua tipe data sederhana. Ditambah dengan dua tipe data yang tidak sederhana. variabel pembayaran akan menyimpan nilai 3000. double 0. $namaBelakang = “Muhardin”. Contoh bilangan bulat: 3. ada bermacam-macam tipe data. Sedangkan data non numerik (disebut juga data literal) tidak dapat dioperasikan secara matematika. tipe numerik juga digunakan untuk menyimpan bilangan pecahan Tipe literal digunakan untuk menyimpan data berupa kumpulan huruf.0 atau string kosong. Selain nilai itu. pada contoh di atas. yaitu array dan object.$namaDepan = “Endy”. kata. Tipe data Dalam bahasa pemrograman yang lain. $harga = 1000. Misalnya data numerik yang dapat dioperasikan secara matematika. char(karakter angka dan huruf). dan berbagai tipe lainnya. Tipe Numerik dapat menyimpan bilangan bulat. Tipe boolean. 7. misalnya integer(bilangan bulat). Variabel dapat digunakan untuk menyimpan berbagai jenis data. 20. Contoh : $jumlahBarang = 3. $harga = 1000. Selain itu. kita menggunakan tipe data yang tersedia. Untuk menguji benar salah (true false). Contoh : $nama = $namaDepan + $namaBelakang. PHP mampu menyimpan data bilangan bulat dengan jangkauan dari -2 milyar sampai +2 milyar. float(bilangan pecahan). numerik dan literal. FALSE dapat digantikan oleh integer 0. C. 10 . $jumlahBarang = 3. tidak ada dalam PHP. string(kumpulan huruf atau kata). yaitu "". dan angka. $pembayaran = $jumlahBarang * $harga. yang dikenal dalam bahasa program yang lainnya. semua dianggap TRUE.

Passing Variable Variabel dapat di-passing atau diteruskan ke halaman web berikutnya yang diakses user. Data numerik tidak dikelilingi oleh “ dan “. data literal ditandai dengan pasangan “ dan “. Hasil akhirnya adalah 4 + 3. Ini dapat dilihat dari variabel hasilAneh yang akan menyimpan nilai 7. PHP secara otomatis mengubah tipe data variabel noRumah (numerik) menjadi literal. $hasilAneh = $blok + $noRumah. $noRumah = 29. $jumlahPenghuni = 3. yaitu 4. kemudian menambahkannya dengan isi variabel jumlahPenghuni. yaitu penjumlahan dari 29 dan 3. Pada sampel kode di atas. Tetapi biasanya PHP akan secara otomatis mengubah tipe data sesuai kebutuhan. D. PHP mengambil nilai numerik dari variabel blok. Variabel hasil akan menyimpan nilai 32. yaitu 7. Perhatikan. $hasil = $noRumah + $jumlahPenghuni. Contoh : $jalan = “Gubeng Kertajaya”. variabel alamat akan menyimpan nilai Gubeng Kertajaya 29. yaitu “Endy Muhardin”. $alamat = $jalan + $noRumah. konversi otomatis ini kadang berjalan secara tidak semestinya. diantaranya : Melalui URL Melalui Form Melalui Cookie URL Variabel diteruskan melalui URL dengan format sbb 11 . Ada beberapa teknik untuk meneruskan variabel.variabel nama akan menyimpan gabungan dari dua variabel. Variabel alamat akan bertipe literal. $blok = 4c. Secara umum.

kita akan menulis : welcome.[alamat web]?var1=nilai1&var2=nilai2 Misalnya. Untuk lebih jelasnya. untuk memberikan variabel $nama berisi “Endy” dan $alamat = “Surabaya” ke welcome. ?> Form Cara lain untuk mengirim kedua variabel tersebut adalah dengan menggunakan form dengan kode sebagai berikut : <html> <head> <title>Passing Variable</title> </head> <body> <form method="POST" action="welcome. Variabel ini dapat diakses di script welcome.php. perhatikan gambar berikut.php dengan cara sebagai berikut : <? echo(“Variabel \$user berisi : $user”).php?nama=Endy&alamat=Surabaya Di kolom address pada explorer. echo(“Variabel \$alamat berisi : $alamat”).php"> <p>Nama : <input type="text" name="nama”></p> <p>Alamat : <input type="text" name="alamat"></p> <p><input type="submit" value="Submit" name="B1"></p> </form> </body> </html> 12 .

13 .php Cookie Penggunaan cookie akan dibahas pada bagian tentang session.dan tampilan sebagai berikut : form tersebut akan diproses oleh file welcome.

yaitu : + : penjumlahan .3.: pengurangan * : perkalian / : pembagian % : nilai sisa pembagian Contoh penggunaan : Buatlah dua file berikut : operator. Misalnya $a = 5 + 3. Operators Operator digunakan untuk memanipulasi nilai suatu variabel. Operator "+" berfungsi untuk menambahkan kedua operand (5 dan 3). 13 dan 3 adalah operand. Variabel yang nilainya dimodifikasi oleh operator disebut operand.htm 14 . Arithmetic operator Arithmetic Operator digunakan untuk melakukan perhitungan matematika.V. Untuk kemudahan penjelasan. Ada beberapa arithmetic operator. operator diklasifikasikan menjadi : Arithmetic Operator Assignment Operator Comparison Operator Logical Operator Lain-lain A. Tanda "-" disebut operator. Contoh penggunaan operator misalnya 13 .

echo("Hasil Perhitungan : ").Komponen TextField kiri TextField kanan Operator Action Nama Variabel operand1 operand2 op hasilArithmetic.php <? $perhitungan = $operand1. echo("<b>"). Relational operator Relational operator digunakan untuk membandingkan nilai dari dua operand. ?> B.php operator. Beberapa jenis relational operator : == : memeriksa apakah operand kanan bernilai sama dengan operand kiri > : memeriksa apakah operand kiri bernilai lebih besar daripada operand kanan 15 . eval("\$hasil = $perhitungan. dan FALSE berarti salah. Hasil perbandingan dinyatakan dalam nilai boolean. TRUE berarti benar. echo("</b>").").$operator.$operand2. echo($hasil).

htm sehingga menjadi seperti gambar di bawah: Komponen TextField kiri TextField kanan Operator Action Nama Variabel operand1 operand2 Op hasilRelational.php Buat file operator. buatlah contoh seperti petunjuk berikut.< : memeriksa apakah operand kiri bernilai lebih kecil dengan operand kanan >= : memeriksa apakah operand kiri bernilai lebih besar atau sama dengan operand kanan <= : memeriksa apakah operand kiri bernilai lebih kecil atau sama dengan operand kanan != : memeriksa apakah operand kanan tidak bernilai sama dengan operand kiri Untuk mengetahui cara penggunaan relational operator. Tambahkan operator.php seperti ini : 16 .

echo("<b>"). ?> C. Logical operator Logical Operator digunakan untuk membandingkan dua nilai variabel yang bertipe boolean.$operand2. $hasil = eval($perhitungan).$op. echo($hasil). Hasil yang didapat dari penggunaan logical operator adalah boolean. echo("</b>").htm menjadi seperti di bawah ini : 17 . ikuti petunjuk di bawah ini.php masih sama seperti di atas. File operator. Tabel logika berikut digunakan sebagai pedoman perhitungan Operand kiri TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE ! ! Operator && && && && || || || || Xor Xor Xor Xor Not Not Nama And And And And Or Or Or Or Exclusive Or Exclusive Or Exclusive Or Exclusive Or Operand kanan TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE Hasil TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE Untuk melihat pemakaian logical operator.<? $perhitungan = $operand1. echo("Hasil Perhitungan : "). File operator.

Selain operator "=". ada beberapa assignment operator yang lainnya. Operator -= Penjelasan : Mengurangi nilai pada variabel Contoh : 18 . operator "=" digunakan untuk mengisi nilai "endy" ke dalam variabel nama. Pada contoh di atas. Contoh sederhana : $nama = "endy". sama dengan $a = $a + 3.D. seperti dapat dilihat pada penjelasan berikut : Operator += Penjelasan : Menambahkan nilai pada variabel Contoh : $a += 3. Assignment Operator Assignment operator digunakan untuk memberi/mengisi nilai ke dalam variabel tertentu.

Operator %= Penjelasan : Mencari sisa hasil bagi variabel dengan bilangan tertentu Contoh : $a %= 3. 19 . Operator &= Penjelasan : Melakukan operasi logical AND pada variabel Contoh : $a &= TRUE. Operator /= Penjelasan : Membagi variabel dengan bilangan tertentu Contoh : $a /= 3. sama dengan $a = $a * 3. sama dengan $a = $a / 3.$a -= 3. sama dengan $a = $a & TRUE. sama dengan $a = $a . sama dengan $a = $a % 3.3. Operator *= Penjelasan : Mengalikan variabel dengan bilangan tertentu Contoh : $a *= 3.

Operator ++ Penjelasan : Menambahkan nilai satu pada variabel Contoh : $a ++ . Operator -- Penjelasan : Mengurangi nilai satu pada variabel Contoh : 20 . sama dengan $a = $a + 1.Operator |= Penjelasan : Melakukan operasi logical OR pada variabel Contoh : $a |= FALSE. sama dengan $a = $a . sama dengan $a = $a ^ 3. Operator ^= Penjelasan : Melakukan operasi bitwise xor pada variabel Contoh : $a ^= 3. Operator .= “rudi”. “rudi”. sama dengan $a = $a | FALSE.= Penjelasan : Menambahkan String pada variabel Contoh : $a .

Untuk mematikan pesan error tersebut. $string2 = "World". kita menggunakan operator @. Operator lain-lain Operator penggabung String Pada PHP. Lebih jelas tentang percabangan dapat dipelajari dalam bagian Control Flow. Tetapi. echo($string1. (titik). tidak bisa mengakses database.1." ". Contoh penggunaan : $string1 = "Hello". } Hal yang sama dapat dilakukan dengan cara : echo($user == endy ? "Welcome Endy" : "Wrong username").$a -.. 21 . pernyataan di sebelah kiri tanda ":" dieksekusi. Operator Error Suppression PHP menampilkan pesan error apabila built-in function (function yang disediakan PHP) mengalami error. Apabila benar. dan lainnya. seperti pada contoh berikut: if($user == "endy"){ echo("Welcome Endy"). }else{ echo("Wrong username"). Perhatikan tanda ? dan : PHP memeriksa apakah pernyataan di sebelah kiri "?" benar atau salah. Bila salah. akan menampilkan : Hello World Operator percabangan Percabangan pada umumnya dilakukan dengan struktur if-else. Misalnya tidak bisa membuka file. pernyataan di sebelah kanan ":" dieksekusi. Pada saat pembuatan aplikasi. pesan error ini akan mengganggu pengguna. string digabungkan dengan operator . pesan error ini sangat membantu dalam menyelesaikan dan memperbaiki kesalahan pemrograman. sama dengan $a = $a . E.$string2). pada saat aplikasi selesai dibuat dan digunakan secara umum.

PHP akan "diam saja" apabila direktori temp tidak ditemukan atau tidak dapat diakses. function chdir akan menimbulkan pesan error apabila direktori temp tidak ditemukan atau tidak dapat diakses.Contoh penggunaan : @chdir("temp"). 22 . Pada kondisi normal. Dengan menggunakan operator @.

Control flow di atas merupakan sebuah contoh sederhana. Ada dua jenis percabangan. Percabangan Percabangan. } Perintah pertama yang dijalankan adalah mengisi nilai 5 ke dalam variabel a. dipilih berdasarkan kriteria pemeriksaan dan jumlah pilihan yang tersedia. memungkinkan aplikasi untuk memeriksa isi suatu variabel atau hasil perhitungan ekspresi dan mengambil tindakan yang sesuai. atau sering disebut juga dengan istilah decision-making. if – else Konstruksi if-else dapat dijelaskan sebagai berikut : 23 . Misalnya. echo(a). Control Flow Control flow dalam bahasa Indonesia dapat diartikan sebagai aliran kendali. dalam function : function testFlow() { int a = 5. Maksud sebenarnya dari control flow adalah bagaimana urutan eksekusi perintah di dalam program.VI. Beberapa control flow yang tersedia dalam PHP : Percabangan (branching) Perulangan (looping) Perpindahan (jumping) A. Perintah kedua yang dijalankan adalah menampilkan nilai yang tersimpan dalam variabel a (dalam hal ini 5) ke browser.

else Untuk pilihan yang lebih dari dua.elseif . Condition akan diperiksa 2. if(condition1) { // statement 1 } elseif(condition2) { // statement 2 } else { // statement 3 } // statement 4 Aliran program : Ada 3 kemungkinan aliran program : Apabila condition 1 bernilai true : 1. statement 2 akan dijalankan 4. statement 1 akan dijalankan 3. Bila bernilai true. dan condition 2 bernilai true : 1. Statement 4 dijalankan Apabila condition 1 bernilai false. Statement 1 dijalankan 2. Statement 2 dijalankan 2.if(condition) { // statement 1 goes here } else { // statemant 2 goes here } // statement 3 goes here Aliran program : 1. Statement 4 dijalankan 24 . Bila bernilai false. Statement 3 dijalankan if . PHP menyediakan konstruksi if-elseifelse.

Buatlah dua file.php berisi listing kode sebagai berikut : 25 . Statement 4 dijalankan Contoh penggunaan if-else dapat dilihat dengan mengikuti contoh di bawah. control_flow. control_flow. Statement 3 dijalankan 2.htm mempunyai tampilan sebagai berikut : ifDemo.htm dan ifDemo.php.Apabila condition 1 dan condition 2 bernilai false : 1.

if($kelamin1 == "Pria"){ $latar1 = $kelabu. }else{ $latar2 = $putih. }else{ $latar4 = $putih. }else{ $latar3 = $putih. } if($kelamin4 == "Pria"){ $latar4 = $kelabu. echo($output). } $output = " <table border=1> <tr> <td background=$latar1>$nama1</td> </tr> <tr> <td background=$latar2>$nama2</td> </tr> <tr> <td background=$latar3>$nama3</td> </tr> <tr> <td background=$latar4>$nama4</td> </tr> </table> ". } if($kelamin2 == "Pria"){ $latar2 = $kelabu. ?> switch – case konstruksi switch dapat dijelaskan sebagai berikut : 26 . } if($kelamin3 == "Pria"){ $latar3 = $kelabu.htm $kelabu = "#303030". }else{ $latar1 = $putih.php // digunakan bersama control_flow.<? // ifDemo. $putih = "#FFFFFF".

// statement 4 goes here break.2c. Apabila a == 1. default. // statement 1 goes here break. case 3. statement 2 dijalankan c) Apabila a == 3. Apabila a == 2. case 3. default. // statement 3 goes here break. statement 1 dijalankan. bandingkan dengan program berikut(break di baris ke 5 dihilangkan) switch(a){ case 1. 2b. case 2. // statement break. statement 3 dijalankan d) Apabila a tidak memenuhi 2a . statement 4 dijalankan 3. variabel a diperiksa 2a. } 1 goes here 2 goes here 3 goes here 4 goes here Aliran program : 1.switch(a){ case 1. Statement 5 dijalankan Keyword break memegang peranan penting di sini. Variabel a diperiksa 2. // statement break. Fungsinya adalah mencegah fall-through. // statement 2 goes here break. // statement break. statement 2 dijalankan 27 . kemudian menjalankan statement 2. statement 1 dijalankan b) Apabila a == 2. Statement dieksekusi a) Apabila a == 1. // statement case 2. } // statement 5 goes here Aliran program : 1.

?> B. Perulangan for Looping dengan for disebut juga determinate loop. statement 3 dijalankan 2d. Apabila a == 3. }else{ $hari = 28.php sebagai berikut : <? switch($bulan){ case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : $hari = 31. Untuk melihat contoh penggunaan switch – case. artinya looping yang jumlah pengulangannya (iterasi) telah ditentukan di awal looping. case 2 : if(($tahun%4) == 0){ $hari = 29. Apabila a tidak memenuhi 2a . Bandingkan dengan listing pertama.2c.2c. break.htm menjadi seperti gambar di bawah. } } echo("<h2>Jumlah hari pada bulan $bulan tahun $tahun = $hari hari</h2>"). Buat file switchDemo. Statement 5 dijalankan Perbedaan ada pada langkah 2a. break. tambahkan tampilan pada control_flow. 28 . statement 4 dijalankan 3. case 4 : case 6 : case 8 : case 11 : $hari = 30.

Loop body dieksekusi sekali setiap iterasi.Ada beberapa bagian penting dari for loop: Initialization expression Stop condition Iterative expression Loop body Initialization Expression dijalankan satu kali. Stop condition diperiksa nilainya sebelum setiap iterasi dieksekusi. 1) == $huruf){ $jumlah ++. iterasi dihentikan. Contoh kode di atas akan menampilkan tulisan Hello World di browser sebanyak 10 kali. Pasang baris kode berikut pada forDemo. Apabila condition bernilai false. } } ?> while while loop juga dikenal dengan istilah indeterminate loop. while loop lebih sederhana daripada for loop. $i. artinya jumlah loopingnya tidak ditentukan pada awal looping. merupakan perintah yang ingin kita lakukan berulang-ulang. Bagian ini biasanya digunakan untuk menambah nilai counter. Iterative expression dilakukan setelah iterasi dieksekusi.php <? $jumlah = 0. karena cuma memiliki dua bagian: 29 . $i++){ if(substr($kata. $i<strlen($kata). tambahkan tampilan pada control_flow. Biasanya bagian ini digunakan untuk menginisialisasi counter(penghitung). Untuk melihat contoh penggunaan for. pada saat looping dimulai.htm menjadi seperti gambar di bawah. for($i=0.

Selama stop condition bernilai true. Sama seperti pada for loop. karena tidak ada perintah yang mengubah nilai stop condition. loop body dilaksanakan satu kali setiap iterasi. } } ?> C. do-while loop merupakan modifikasi dari while loop.php <? $jumlah = 0. Tambahkan baris kode berikut pada whileDemo. 1) == $huruf){ $jumlah ++. perhatikan kode berikut : 30 . gunakan form yang sama dengan forDemo. Bentuknya dapat dilihat pada sampel kode berikut: do{ // some statement } while (a == true) untuk melihat contoh penggunaan while. perintah dalam loop body akan dilakukan berulang-ulang. $i = 0. Untuk lebih jelasnya. Iterasi akan dihentikan apabila stop condition bernilai false. Loop di atas akan berjalan terus tanpa henti. $i. Perpindahan break Break digunakan dalam looping untuk menghentikan suatu loop.Stop Condition Loop body Stop condition diperiksa sebelum tiap iterasi dilaksanakan. $i++. while($i<strlen($kata)){ if(substr($kata.

Untuk lebih jelasnya. $i++){ if($i == 2){ break. sehingga akan menghasilkan output sebagai berikut : Nilai i : 0 Nilai i : 1 Nilai i : 3 Nilai i : 4 Loop Selesai return perintah return berfungsi untuk memerintahkan kode untuk keluar dari fungsi. Fungsi akan kita pelajari dengan lebih mendalam pada bagian selanjutnya. } echo("Nilai i : $i <br>"). fungsi cuma akan digunakan untuk menjelaskan return. ?> kode tersebut akan melakukan break pada saat i bernilai 2. Perhatikan kode di bawah : 31 . $1<5. } echo("Nilai i : $i <br>"). ?> kode tersebut akan melakukan break pada saat i bernilai 2.<? // melakukan break pada $i == 2 for($i = 0. <? // melakukan continue pada $i == 2 for($i = 0. sehingga akan menghasilkan output sebagai berikut : Nilai i : 0 Nilai i : 1 Loop Selesai continue continue berfungsi untuk melewati satu iterasi/putaran dalam rangkaian loop. kode di atas akan kita modifikasi. $i++){ if($i == 2){ continue. } echo(“Loop Selesai”). $1<5. } echo("Loop Selesai"). Untuk sementara.

Untuk lebih jelasnya. $1<5. } // jalankan function testReturn(). } echo("Nilai i : $i <br>"). $i++){ // melakukan return pada $i == 2 if($i == 2){ return. Ini menunjukkan bahwa setelah return dieksekusi. exit exit digunakan untuk menghentikan keseluruhan script php. ?> outputnya adalah : Nilai i : 0 Nilai i : 0 Function Selesai Perhatikan bahwa Loop Selesai tidak dijalankan. program langsung keluar dari function dan mengeksekusi perintah setelah function. echo("Function selesai"). yaitu echo(“Function Selesai”). ?> outputnya adalah : Nilai i : 0 Nilai i : 0 Function Selesai 32 . echo("Function selesai"). kita akan modifikasi kode di atas menjadi seperti berikut : <? function testExit(){ for($i = 0. } echo("Loop Selesai"). $i++){ // melakukan return pada $i == 2 if($i == 2){ exit. } echo("Nilai i : $i <br>").<? function testReturn(){ for($i = 0. } // jalankan function testExit(). } echo("Loop Selesai"). $1<5.

} execute($tanda. continue. echo("Function execute selesai<br>"). break. exit */ function execute($tanda. $perintah). $i++){ if($i == $tanda){ if($perintah == "continue"){ continue. return."<br>"). }elseif($perintah == "exit"){ exit. } echo("Looping Selesai<br>"). dan exit. return. Untuk melihat contoh penggunaan break.htm menjadi seperti gambar di bawah. } } echo($i. }elseif($perintah == "break"){ break. tambahkan tampilan pada control_flow.Perhatikan bahwa baris echo("Function selesai"). Tidak dijalankan. $perintah){ for($i=0. ?> 33 . Tambahkan baris kode berikut pada perpindahan. $i<11. } elseif($perintah == "return"){ return.php <? /* variabel yang dibutuhkan $mark -> tempat dilakukan perpindahan $perintah -> perintah pindah : continue.

dapat digambarkan sebagai berikut : Charlie Ani Budi $teman Tiap nilai dalam array (disebut elemen) diakses dengan menggunakan index. Jadi. Selain dengan cara di atas. Secara visual. Penggunaan index akan dibahas lebih detail di bawah. B. A. Kode di atas akan menjadikan $teman array berindex numerik. berbeda dengan variabel sebelumnya yang hanya menyimpan satu nilai saja. $teman[] = “Charlie”. Sebagai contoh. array dapat menampung lebih dari satu nilai. Inisialisasi array Inisialisasi (mengisi nilai) array $teman di atas dilakukan dengan cara sebagai berikut : $teman = array(“Charlie”. $teman[] = “Ani”. “Ani”. kita juga dapat membuat array yang sama dengan cara : $teman[] = “Charlie”. “Budi”). PHP mengenal dua macam index. yaitu index numerik dan index asosiatif. hasilnya adalah array berindeks numerik yang dapat digambarkan sebagai berikut : Charlie 0 Ani 1 Budi 2 $teman 34 .VII. kita akan menyimpan data teman-teman kita dalam satu variabel $teman. Ada tiga orang teman yang akan kita masukkan ke dalam variabel tersebut. Konsep array Array Array adalah kumpulan beberapa data yang disimpan dalam satu variabel. sedangkan index asosiatif memberi nama untuk masing-masing elemen. Index numerik menggunakan angka untuk menandai tiap elemen.

Contoh di atas akan dikembangkan agar dapat menyimpan nomer telepon masing-masing teman. } Untuk mengakses array berindex asosiatif. $rekan [“Ani”] = 528. each dan list. Navigasi array Navigasi (mengakses nilai) array dapat dilakukan dengan looping. echo(“<br>”). $rekan [“Budi”] = 456. kita akan menggunakan kode seperti berikut : for($i=0.$i++){ echo(“Array \$teman index ke [$i] adalah $teman[$i]”). C. kita tidak dapat menggunakan loop seperti di atas. echo(“<br>”). kita membutuhkan label atau nama untuk masing-masing elemen. dimana key adalah 35 . nama masing-masing teman akan dijadikan label untuk nilai nomer telepon yang disimpan. Kode programnya adalah sebagai berikut : $rekan = array (“Charlie”=>123. atau $rekan = array(“Charlie”=>123). karena label/index elemen disimpan dalam bentuk string. $i<length($teman). “Ani”=>528. } ada dua fungsi yang terlibat di atas. Elemen yang dihasilkan adalah pasangan key dan value.untuk membuat array berindex asosiatif. $nilai) = each($rekan)){ echo(“Array \$rekan index $index berisi nilai $nilai”). Fungsi each berguna untuk mengakses masing-masing elemen dalam array. “Budi”=>456). Gambaran visualnya adalah sebagai berikut : Charlie 123 Ani 528 Budi 456 $rekan pada gambar di atas. Misalnya untuk menampilkan isi array berindex numerik di atas. Loop untuk mengakses array berindex asosiatif dapat dilihat pada sampel kode di bawah : while(list($index.

$nilai) = each($rekan)){ echo(“Array \$rekan index $index berisi nilai $nilai”). echo(“<br>”). } akan menghasilkan output : Array $rekan index Ani berisi nilai 528 Array $rekan index Budi berisi nilai 456 Array $rekan index Charlie berisi nilai 123 36 . $i<length($teman). } akan menghasilkan output : Array $rekan index Charlie berisi nilai 123 Array $rekan index Budi berisi nilai 456 Array $rekan index Ani berisi nilai 528 ksort digunakan untuk mengurutkan asosiatif array menurut indexnya. Contoh penggunaan : asort($rekan). Pasangan tersebut akan dipisahkan oleh fungsi list dan dimasukkan ke dalam variabel $index dan $nilai. while(list($index. for($i=0. $nilai) = each($rekan)){ echo(“Array \$rekan index $index berisi nilai $nilai”). Fungsi-fungsi array sort Elemen-elemen dalam array dapat diurutkan dengan menggunakan fungsi sort(). } akan menghasilkan output : Array teman index ke 0 adalah Ani Array teman index ke 1 adalah Budi Array teman index ke 2 adalah Charlie asort dan ksort Asort digunakan untuk mengurutkan asosiatif array menurut isinya.$i++){ echo(“Array \$teman index ke [$i] adalah $teman[$i]”). echo(“<br>”). Contoh penggunaannya adalah sebagai berikut : sort($teman). echo(“<br>”). while(list($index. Contoh penggunaan : ksort($rekan). D.indexnya dan value adalah isinya.

} $y) function jumlahkanlah(int x. $b){ return $a + $b. } int y) Perhatikan contoh function addNumber di atas. } Function sederhana di atas akan menerima masukan berupa dua angka. { z = x + y. 37 . return z. Konsep function Function Function adalah kumpulan beberapa statement yang dibuat dengan tujuan menyelesaikan satu tugas tertentu. Nilai yang dikembalikan tersebut disebut return value. C. A. Deklarasi function Ada beberapa hal utama yang perlu diperhatikan dalam deklarasi function pada PHP. Sedangkan nilai yang dimasukkan ke dalam function ($a dan $b) disebut parameter. B. Kemudian kedua angka tersebut akan dijumlahkan. echo(z). nama function parameter function body Contoh function: 1 2 3 4 5 6 7 8 9 10 11 function addNumber($x.VIII. dan hasilnya dikembalikan kepada pemanggil function. Return value dan parameter Perhatikan kode berikut : function add($a. { z = x + y.

PHP tidak mendukung overloading. } $y) function jumlahkanlah(int x. } int y) Perhatikan contoh function addNumber di atas. Function body dibatasi oleh sepasang { dan } Function body berisi instruksi yang harus dilakukan komputer untuk menghasilkan output yang diinginkan. Perhatikan baris 2 sampai 4. Hanya boleh terdiri dari huruf. dengan syarat parameternya berbeda. Nama function ditentukan dengan memenuhi aturan sebagai berikut : Tidak boleh sama dengan function yang telah ada dalam PHP. D. Implementasi function Contoh function: 1 2 3 4 5 6 7 8 9 10 11 function addNumber($x.keyword function . deklarasi berisi : . angka. Jadi. x dan y didapat dari input yang diberikan user. { z = x + y. dan garis bawah (underscore) Tidak boleh diawali dengan angka function 4uOnly(){} // tidak boleh bahasa pemrograman lain mendukung fasilitas overloading.nama function . Baris 3 menyuruh komputer untuk membuat satu variabel bernama z yang isinya adalah hasil penjumlahan x dan y. return z.Baris satu merupakan deklarasi function. echo(z). 38 . { z = x + y. yaitu sebuah function dapat memiliki nama yang sama dan hasil yang berbeda.parameter Parameter adalah nilai yang dimasukkan ke dalam function untuk diproses sehingga menghasilkan output. kita tidak dapat menggunakan nama yang telah digunakan sebelumnya.

5). Bedakan layar Contoh penggunaan function hasil = jumlahkanlah(4.Baris 4 menyuruh komputer untuk menampilkan hasil perhitungan ke layar. addNumber(4.5). dengan baris 4 pada function jumlahkanlah yang memerintahkan komputer untuk menampilkan hasil perhitungan di 39 .

Pass by value membuat kopi dari variabel yang asli. Variabel global dapat digunakan di mana saja dalam program setelah dideklarasi dan diinisialisasi. yaitu local dan global. // error – variabel $a tidak dikenali ?> Variabel $a hanya berlaku di dalam function testVar. perhatikan script di bawah : <? function testVar(){ $a = 3. Variabel local hanya dapat digunakan dalam blok tempatnya dideklarasi. sehingga tidak dapat diakses di luar function. perhatikan contoh berikut : 40 . visibility adalah berbagai istilah yang sama. echo($a).IX. } echo($a).menampilkan 4 } ?> B. Variabel global tidak berlaku di dalam function kecuali dipanggil dengan keyword global. Contoh penggunaan : <? $a = 4.tidak menghasilkan apa-apa global $a. lifetime. Global Variabel global dideklarasi di luar function dan dapat digunakan di mana saja dalam program. // -. Scope Scope. menyatakan di mana variabel dapat digunakan dalam program. Untuk lebih jelasnya. function testVar2(){ echo($a). Passing variabel By Value Variabel dipassing (dimasukkan) ke dalam function dengan cara pass by value. PHP mengenal dua macam scope. Local Untuk lebih memahami scope local. Variable Lifetime A. Dengan demikian variabel asli tidak terpengaruh. // -.

tambahSatu($a). $a). } Function tersebut akan digunakan sama seperti contoh di atas : <? $a = 7. kita memasukkan variabel yang asli ke dalam function. echo(“Nilai a = ” .function tambahSatu($angka){ $angka++. Dan variabel a yang asli tetap bernilai 7. Untuk menghasilkan efek yang diinginkan. tambahSatu($a). $a). By Reference Pada pass by reference. ?> kode di atas akan menghasilkan output Nilai a = 7 karena variabel angka yang ada dalam function berakhir umurnya pada saat function selesai dijalankan. } Function tersebut akan digunakan sebagai berikut : <? $a = 7. echo(“Nilai a = ” . kita dapat menggunakan pass by reference. Teknik ini dilakukan dengan cara sebagai berikut : function tambahSatu(&$angka){ $angka++. ?> kode di atas akan menghasilkan output Nilai a = 8 41 .

Budi. nomer telepon. Konsep class dan object Untuk dapat memahami class dan object. komponen utama yang terlibat adalah kontak Komponen kontak disebut class. Sekuensial Programming Structured Programming Object Oriented Programming A. dan alamat. Karakteristik ini 42 . Class didefinisikan dengan kode sebagai berikut : <? class Contact{ } ?> object dari class Contact dibuat dengan kode sebagai berikut : $ani = new Contact(). ada beberapa pendekatan y ang dipakai. mempunyai karakteristik yang sama.X. Object adalah benda nyata yang ada dalam session pelatihan. baik Ani. Class adalah definisi (cara menggambarkan) suatu benda. Ani Hubungan tersebut dapat dinyatakan dalam istilah teknis sebagai berikut: Object merupakan instance dari class. Budi. Semua contact. Class dan Objects Aplikasi perangkat lunak dibuat untuk menyelesaikan masalah dalam kehidupan nyata. Dalam sebuah address book. diantaranya: Kontak : Charlie. Mereka semua memiliki nama lengkap. $charlie = new Contact(). B. Dalam proses perancangannya. maupun Charlie. $budi = new Contact(). Method dan properties Lebih mendetail tentang class Contact. kita akan memvisualisasikan aplikasi address book.

$telp.dikenal dengan istilah properties. Tiap object memiliki nilai yang berbeda-beda untuk masing-masing properties. $ani->telp = 528. $charlie = new Contact(). function panggil($contact){ echo(“Memanggil kontak ”+$contact->namaLengkap). Properties diterjemahkan ke dalam kode menjadi : <? class var var var } ?> Contact{ $namaLengkap. class Contact dapat melakukan aktivitas memanggil contact lain. Hal ini juga sering dikatakan : object memiliki state yang berbeda satu dengan lainnya. $budi = new Contact(). $budi->namaLengkap = “Budi Man”. $budi->telp = 456. Ini disebut dengan method. $telp. $ani->alamat = “Ragunan”. Konsep ini diterjemahkan menjadi kode sebagai berikut : <? class var var var Contact{ $namaLengkap. $charlie->namaLengkap = “Charlie Charmless”. $ani->namaLengkap = “Ani Malia”. $budi->alamat = “Bandung”. class juga dapat melakukan aktivitas. selain menyimpan karakteristik. $alamat. $charlie ->telp = 123. Misalnya. $alamat. $charlie ->alamat = “USA”. Sampel kode yang menggambarkan kondisi tersebut adalah : $ani = new Contact(). } } ?> kode tersebut dieksekusi sebagai berikut : 43 .

$budi = new Contact(). $budi->panggil($ani). dan menghasilkan output sebagai berikut : Memanggil Ani Malia 44 .$ani = new Contact(). $ani->namaLengkap = “Ani Malia”.

XI.htm adalah sebagai berikut : 45 . Setelah foto berhasil diupload. Sebelumnya. kita akan mempelajari bagaimana script php berinteraksi dengan file. kita akan meneruskan aplikasi contact manager dengan memungkinkan pengguna untuk mengupload file foto beserta komentarnya. form HTML yang dibutuhkan harus disiapkan dengan bentuk sebagai berikut : form tersebut harus dapat menghandle file upload. kita akan memberikan halaman untuk mengakses foto dan komentar tersebut. File Handling Pada bagian ini. Sebagai contoh. Listing kode upload.

&nbsp.php"> <p>Nama anda&nbsp. </p> <p>Masukkan foto anda&nbsp.php yang berguna untuk menangani file upload dari form tersebut. : <input type="text" name="nama">&nbsp. : <input type="file" name="pic">&nbsp.&nbsp. kita akan mengisi form tersebut sebagai berikut : 46 .<html> <head> <title>Pic Uploader</title> </head> <body> <h1>Pic Uploader</h1> <form enctype="multipart/form-data" method="POST" action="upload. Menulis file Sekarang kita akan mengerjakan file upload. </p> Komentar : <br><TEXTAREA ROWS=5 COLS=40 name="comment"></TEXTAREA> <p><input type="submit" value="Submit" name="B1"></p> </form> </body> </html> A. Sebagai contoh.

php dengan kode sebagai berikut : echo("Nama File User = $pic_name <br>"). Untuk menulis ke dalam file. echo("Ukuran File User = $pic_size <br>"). File ini akan kita copy untuk disimpan secara permanen dalam disk. File descriptor didapat dengan menggunakan fungsi php : fopen.php 47 .Form tersebut. diakhiri dengan extension txt untuk menandai bahwa file tersebut mempunyai format text. Untuk itu. disimpan sementara di server Berisi nama file yang diupload Berisi ukuran file yang diupload Isi Endy Muhardin Ini foto saya waktu kecil -Coffee Bean. lakukan langkah-langkah berikut : Buka/buat file Untuk dapat mengakses dan mengubah isi file. kita juga akan menuliskan komentar yang ada di textarea ke dalam file. kita membutuhkan sebuah file descriptor. copy($pic. File yang akan kita buat akan diberi nama sesuai dengan nama gambar. Tambahkan kode berikut pada upload. Selain file gambar yang diupload. kita akan menambah kode berikut pada upload. File descriptor adalah suatu variabel yang digunakan untuk mewakili file tertentu.bmp 16. $fileServer). File yang akan kita tulis ke harddisk berada dalam variabel $pic.php : $fileServer = "upload/$nama/$pic_name". akan diterima oleh server dan menghasilkan beberapa variabel berikut : Nama Variabel $nama $comment $pic $pic_name $pic_size Keterangan Berisi tulisan yang diisikan user di textfield nama anda Berisi tulisan yang diisikan user di textarea komentar Berisi file gambar yang diupload. dengan nama yang sama dengan nama gambar.6 kB Informasi di atas dapat kita tampilkan dalam script upload. untuk membuka file. setelah diisi dan disubmit. echo("Jenis File User = $pic_type <br>"). echo("Nama File User di server= $pic <br>").

isinya akan dihapus. Write : disimbolkan dengan huruf w. Fungsi ini membutuhkan dua masukan (parameter). menentukan perlakuan yang diperbolehkan terhadap file yang dibuka. Disimbolkan dengan b. masukkan data ke dalamnya. Digunakan pada filesystem windows yang membedakan file text dan binary. File yang dibuka dengan akses r akan menimbulkan pesan error kalau ada usaha untuk menulis ke dalamnya. "w"). yaitu : nama file. Jenis Akses : bertipe string. Ada beberapa jenis akses: Read : disimbolkan dengan huruf r. File yang dibuka hanya dapat dibaca dan tidak boleh ditulisi. 48 .txt". Membuka (membuat bila belum ada) dan menulis di awal file. File yang dibuka dapat dibaca dan juga ditulisi. $comment). Read dan write : disimbolkan dengan r+. Penulisan terhadap file akan menghapus isi yang sebelumnya. Apabila file sudah ada. seperti kita lihat pada contoh di atas. File yang dibuka hanya dapat ditulis dan tidak bisa dibaca. Mode binary. Penulisan terhadap file akan ditambahkan pada bagian awal file. kita menggunakan fungsi fopen. Harus berada dalam folder yang sama dengan tempat script php yang memanggilnya. Nama File : bertipe string. Perintahnya adalah sebagai berikut : fwrite($fp. merupakan nama file yang akan dibuka. Menambahkan (append) dan membaca: disimbolkan dengan a+. Membuka (membuat bila belum ada) dan menulis di awal file. dan jenis akses. Masukkan data Setelah file berhasil dibuka/dibuat.$fileComment = "/upload/$nama/$pic_name-comment. $fp = fopen($fileComment. Write dan read : disimbolkan dengan w+. Menambahkan (append) : disimbolkan dengan a.

fclose($fp).Tutup file Setelah itu. unlink($pic). kita akan menampilkan foto yang telah diupload oleh user. kita dapat menghapus file yang disimpan sementara oleh server. 49 . kita tidak dapat menyediakan folder yang sesuai dengan kebutuhan tersebut. Membuat direktori atau folder baru bukan hal yang sulit. kita cukup memberikan link nya saja dalam tag <img> </img>. C. umask($oldmask). kita harus membuka dan membaca file txt tersebut. tambahkan baris berikut pada upload. D. B. Menghapus file File yang dupload pada pembahasan di atas telah tersimpan secara permanen di harddisk server di folder upload/endymuhardin/Coffee Bean. dan menampilkan foto serta isi comment. kita harus membuat folder secara dynamic.php : $oldmask = umask(0). Tambahkan baris berikut pada upload. direktori akan dibuat dengan nama folder sesuai dengan nama user yang dimasukkan pada form dengan permission 777.bmp.php. Untuk itu. Dengan demikian. Karena kita sebagai programmer tidak dapat meramalkan nama user yang akan mengupload foto. Arti dari permission 777 dan umask tidak dibahas dalam tutorial ini. Navigasi direktori Selanjutnya. tutup file. Membuat direktori Pembaca yang teliti akan menyadari bahwa nama folder pada contoh di atas disesuaikan dengan nama user yang mengupload foto. kita harus membuka folder yang berisi file. dengan demikian. 0777). Sedangkan untuk menampilkan isi file text. mkdir("upload/$nama". Untuk menampilkan foto. File tersebut kita hapus dengan menggunakan perintah unlink() atau delete(). melihat daftar file yang ada.

echo($output). Selanjutnya. Tambahkan kode berikut : echo("Isi folder upload/$nama : <br>"). Menghapus direktori Untuk menghapus direktori. Membaca file Untuk menampilkan isi comment yang telah kita tulis ke dalam file. yaitu: Buka file – baca isinya – tutup file. tutup folder dengan kode berikut: closedir($dir). $output = nl2br(htmlspecialchars($isi)). fclose($f). $isi = fread($f. demikianlah isi file ditampilkan. E. direktori yang akan dihapus harus kosong. } Setelah selesai. filesize($fileComment)). Direktori yang telah terbuka akan disimpan dalam variabel $dir. gunakan kode berikut : rmdir($namaDirektori). kita terlebih dulu harus membuka direktori.Untuk menampilkan isi direktori. Ada sedikit modifikasi.php : $myDir = "upload/$nama". F. kita akan menempuh langkah-langkah yang sama dengan menulis file. kita akan melakukan looping untuk membaca setiap entry yang ada dalam folder. 50 . Tambahkan kode berikut pada upload. "r")."<br>"). kita akan memproses isi comment agar tidak mengandung tag-tag html. while($tmp = readdir($dir)){ echo($tmp. $dir = opendir($myDir). Tambahkan kode berikut pada upload. echo(“Komentar anda : <br>”).php : $f = fopen($fileComment.

} closedir($dir). fclose($fp). ?> 51 . $comment). "r").// $myDir = "upload/$nama". echo("Ukuran File User = $pic_size <br>"). fclose($f). copy($pic. // -. umask($oldmask).// echo("<hr>Pic $nama : <br>"). // menulis file comment ke file $fileComment = "upload/$nama/$pic_name-comment. echo("Nama File User di server= $pic <br>").File lengkap upload.Upload File -. // -. // menulis file pic ke harddisk server $oldmask = umask(0).menampilkan pic yang telah diupload -. $f = fopen($fileComment. mkdir("upload/$nama". $isi = fread($f.menampilkan isi file text --// echo("<hr>Komentar : <br>"). echo("<img src=\"$fileGambar\" border=0 width=100 height=100>"). fwrite($fp.// // info tentang file user : echo("Nama File User = $pic_name <br>"). "w").txt".Menampilkan isi folder -. filesize($fileComment)). 0777). // -. echo("Jenis File User = $pic_type <br>"). $fileGambar = "upload/$nama/$pic_name"."<br>"). echo($output). $output = htmlspecialchars($isi).php adalah sebagai berikut : <? // -. $fileGambar). echo("<hr>Isi folder upload/$nama : <br>"). $fp = fopen($fileComment. $dir = opendir($myDir). while($tmp = readdir($dir)){ echo($tmp.

dan sebagainya. user akan diteruskan ke halaman welcome. File biasa juga tidak memiliki kemampuan untuk mengolah data. yaitu database. Dan yang lebih penting. Database Access Menyimpan data dalam file biasa memiliki banyak keterbatasan. Sebagai tambahan. misalnya menghitung total nilai. User akan diminta untuk memasukkan username dan password.XII. pencarian data menjadi lebih sulit. User yang belum terdaftar dapat melakukan registrasi di halaman yang akan disediakan. kita akan membuat halaman yang memungkinkan user untuk mengganti password. Semakin besar ukuran file. Kita tidak dapat menentukan siapa yang boleh dan siapa yang tidak boleh mengakses data. kita akan mengaktifkan fasilitas login pada aplikasi Contact Manager. akan muncul pesan error. rata-rata. Mengakses hasil pengambilan data Mengakhiri sambungan Kita akan membahas masing-masing langkah tersebut satu per satu. Siapa yang boleh membaca dan tidak boleh menulis. adanya keterbatasan untuk mengendalikan akses terhadap data. Bila data yang dimasukkan sama dengan yang ada dalam database. sekarang kita akan menggunakan media penyimpanan data yang lebih mutakhir. Berikut screenshot halaman web yang dibutuhkan : 52 . Sebagai contoh. dan lain sebagainya. Karena itu. Kalau salah. yaitu melalui rangkaian langkah sebagai berikut : Membuka sambungan dengan database server Memilih dan membuka database yang diinginkan Mengirim perintah untuk mengambil/mengubah/menghapus data. Operasi data dalam database umumnya mengikuti pola yang sama.

login.htm 53 .htm : register.

<nama kolom> <tipe data>.A. Untuk memudahkan pelajaran. kita akan membuat database ContentManager dengan query sebagai berikut : CREATE DATABASE ContactManager Menghapus database dilakukan dengan perintah : DROP DATABASE <nama database> Contoh : DROP DATABASE ContactManager Membuat tabel dilakukan dengan memberikan perintah sebagai berikut: CREATE TABLE <nama tabel> ( <nama kolom> <tipe data>. SQL query akan dikelompokkan menjadi tiga: Query untuk mengelola database Query untuk mengakses data dalam satu tabel Query yang melibatkan lebih dari satu tabel Query pengelolaan database Yang termasuk ke dalam kelompok ini adalah query yang bertujuan untuk : Membuat database Menghapus database Membuat tabel Memodifikasi tabel Menghapus tabel Menambah user Mengatur permission Menghapus user Membuat database dilakukan dengan perintah sebagai berikut : CREATE DATABASE <nama database> Contohnya : untuk aplikasi Content Management. Sekilas SQL Query SQL (Structured Query Language) adalah bahasa yang khusus digunakan untuk mengoperasikan database. contohnya: 54 . <nama kolom> <tipe data> ). … .

Password VARCHAR (50).. Contoh : INSERT INTO userTable VALUES ( 1. .CREATE TABLE userTable( UserId INT (3). Aturan penulisannya adalah : INSERT INTO <nama tabel> (<nama kolom 1>. 'endy'.). Beberapa hal yang dapat dilakukan pada satu tabel adalah : Tujuan Memasukkan data Memodifikasi data Mengambil data Menghapus data Menghitung banyaknya data Menghitung penjumlahan data Menghitung nilai minimal Menghitung nilai maksimal Menghitung nilai rata-rata Query INSERT UPDATE SELECT DELETE COUNT SUM MIN MAX AVG Untuk memasukkan data ke dalam database. Menghapus tabel dilakukan dengan menggunakan query DROP TABLE <nama tabel>. dengan aturan penulisan sebagai berikut : UPDATE <nama tabel> SET <nama kolom>=<isi kolom> WHERE <kriteria> Contoh : 55 . digunakan perintah UPDATE. 'Endy Muhardin' ). Query satu tabel Query satu tabel digunakan untuk mengelola data dalam satu tabel. . kita menggunakan perintah INSERT. NamaLengkap VARCHAR (50) ). Untuk mengubah data dalam database. Contoh : DROP TABLE userTable.. 'inipaswod'. <isi kolom 2>. UserName VARCHAR (50).) VALUES (<isi kolom 1>. < nama kolom 1>.

Tugasnya adalah memasukkan data yang diisi dalam form ke dalam database. Aturan penulisannya adalah sebagai berikut: SELECT <nama kolom> FROM <nama tabel> WHERE <kriteria> Contoh : SELECT * FROM UserTable WHERE UserId=1 Untuk menghapus data dari dalam tabel.php akan menangani pendaftaran user baru. gunakan perintah DELETE. karena kita belum punya user. Pembahasan tentang join berada di luar materi PHP Programming dan ada di pembahasan tentang relational database. kita terlebih dahulu akan membuat database. File register. gunakan perintah SELECT. Password VARCHAR (50). B. Aturan penulisannya adalah : DELETE FROM <nama tabel> WHERE <kriteria> Contoh : DELETE FROM UserTable WHERE NamaLengkap=’Endy Muhardin’ Query banyak tabel Query banyak tabel digunakan untuk menghubungkan data di lebih dari satu database. Kita membutuhkan tabel user untuk menyimpan data sebagai berikut : Nama Field UserId UserName Password NamaLengkap Tipe Data int(3) varchar(50) varchar(50) varchar(50) Tabel dibuat dengan memberikan query sebagai berikut: CREATE TABLE userTable( UserId INT (3) AUTO_INCREMENT PRIMARY KEY. Kita akan mulai dengan halaman daftar. NamaLengkap VARCHAR (50) ). UserName VARCHAR (50). tabel siap digunakan. Membuat koneksi ke database Sebelum mulai. 56 .UPDATE userTable SET password=’test’ WHERE UserName=’endy’ Untuk menampilkan data dalam tabel.

yaitu memasukkan data. 'Endy Muhardin' ). $dbConn = mysql_pconnect($dbServer. mysql_select_db($dbName). dijelaskan lebih lengkap pada bagian selanjutnya. 'inipaswod'.Selanjutnya. sekarang database telah siap untuk digunakan. $dbUser. kita membuka sambungan dengan perintah sebagai berikut : $dbServer = "localhost". $dbName = "phpTutorial". Gunakan kode berikut untuk memilih dan membuka database phpTutorial. Setelah itu. kita akan menggunakan database tutorial. kita akan melakukan langkah-langkah seperti yang disebutkan di atas. perintah tersebut dieksekusi di dalam script PHP sebagai berikut : 57 . sambungan dengan database disimpan dalam variabel $dbConn untuk digunakan pada langkah-langkah selanjutnya. Mengirim perintah untuk mengambil/mengubah/menghapus data. Memilih dan membuka database yang diinginkan Selanjutnya. Perintah untuk memasukkan data dibuat dengan menggunakan aturan SQL. $dbPass = "test". yang sebelumnya telah dibuat dengan menggunakan PHPMyAdmin. 'endy'. Query (perintah) untuk memasukkan data adalah : INSERT INTO userTable VALUES ( 1. Kita dapat melangkah ke tahap selanjutnya. kita membutuhkan alamat server serta username dan password untuk database. Membuka sambungan dengan database server Untuk membuka sambungan. $dbPass). $dbUser = "endy".

$dbUser = "endy".php yang berisi kode sebagai berikut : <? $dbServer = "localhost". 'Endy Muhardin' ). $dbPass). $dbUser. Dengan demikian. NamaLengkap) VALUES ( '$user'. if($hasil){ echo(mysql_affected_rows()." orang ditambahkan ke dalam sistem"). $dbPass = "test".$query = " INSERT INTO userTable VALUES ( 1.htm dieksekusi dengan sukses. $hasil = mysql_query($query). Langkah-langkah untuk mengakses data dalam database adalah : 58 . 'endy'. $query = " INSERT INTO userTable (UserName. ". Untuk itu. } Script kita harus mengambil data dari HTML Form (register." orang ditambahkan ke dalam sistem"). '$pass'. } ?> C. Mengakses hasil query Setelah register. Password. kita dapat menguji halaman login yang telah kita buat. ". mysql_select_db($dbName). Untuk itu. kita akan membuat file register. '$namaLengkap' ). 'inipaswod'.htm) dan memasukkannya ke dalam database. if($hasil){ echo(mysql_affected_rows(). $dbConn = mysql_pconnect($dbServer. $hasil = mysql_query($query). kita telah memiliki satu user dalam database. kita perlu mengakses data dalam database dan mencocokkannya dengan input yang diberikan user. $dbName = "phpTutorial".

diakses dengan cara : $passDb = $data[“Password”].Membuat sambungan database Memilih database Membuat query Menjalankan query Mengambil hasilnya Memproses hasil Query yang akan digunakan adalah : SELECT * FROM UserTable WHERE userName=’input dari user’ Query ini akan dimasukkan ke dalam script menjadi : $query = SELECT * FROM UserTable WHERE userName=’$login’ Dan dieksekusi dengan kode : $hasil = mysql_query($query). Bila ada. Untuk mengetahui jumlah hasil yang didapat dari query. query akan menghasilkan array yang berisi data pada masing-masing kolom dalam database. digunakan kode sebagai berikut: $jumlahHasil = mysql_num_rows($hasil). data password ada dalam array. Apabila hasilnya tidak nol (berarti username telah terdaftar dalam sistem). Untuk itu. query akan mengembalikan 0 (nol) baris hasil. kita akan mengambil data password. kita gunakan perintah: $data = mysql_fetch_array($hasil). 59 . Bila userName yang diinputkan user tidak ada dalam database.

// mengeksekusi query $hasil = mysql_query($query). $data = mysql_fetch_array($hasil)."'". }else{ echo("Password untuk user $login salah<br>"). // membuat koneksi $koneksi = mysql_connect($server. $user. $pass = "test". keseluruhan script login. }else{ echo("User $login ada dalam database<br>").php akan menjadi : <? // variabel yang diperlukan untuk akses database $user = "endy". } // membuka database mysql_select_db($db).$login. // mengakses hasil $jumlahHasil = mysql_num_rows($hasil). } } ?> 60 . $server = "localhost". $db = "ContentManager". // membuat query $query = "SELECT * FROM userTable WHERE userName='". $passwordAsli = $data["password"]. exit. $pass). // memeriksa koneksi if(!$koneksi){ echo("Koneksi ke database gagal").Dengan demikian. if($password == $passwordAsli){ echo("Password untuk user $login benar<br>"). if($jumlahHasil < 1){ echo("User $login tidak ada dalam database <br>").

. diikuti tanda @ kemudian diikuti dengan satu atau lebih huruf/angka.XIII. Pola tersebut. String Handling String handling adalah kumpulan function PHP yang berguna untuk memanipulasi string. alamat email yang valid (misalnya endy@ngoprek. + atau {1.+$ 61 .+@. Contoh pola kalimat misalnya. Ada banyak kegunaan yang bisa didapat dengan menggunakan fungsi-fungsi ini. dapat dinyatakan dengan seperangkat kode sebagai berikut : Pola Harus di awal kata Huruf Angka Huruf atau angka Semua jenis karakter Berjumlah satu atau lebih Berjumlah nol atau lebih Berjumlah tiga sampai sepuluh Diikuti dengan @ Tanda titik Harus berada di akhir kalimat kode ^ A-Za-z 0-9 [A-Za-z0-9] .} * atau {0. $ Pola alamat email di atas dapat dinyatakan dengan satu baris kode sebagai berikut. Dan sebagainya A. dipisahkan oleh tanda titik. ^.10} @ \. lalu diakhiri dengan satu atau lebih huruf/angka. misalnya: Pencarian kata dalam website Pemeriksaan user input Memformat file untuk keperluan khusus (misalnya email). Sekilas Regular Expression Untuk dapat menggunakan fungsi-fungsi string handling dengan baik.} {3. kita perlu menguasai teknik pembuatan pola kalimat.+\.org) selalu memiliki pola sebagai berikut: satu atau lebih huruf/angka.

if(!eregi($polaEmail.+@. kita akan menggunakan input form yang akan memvalidasi alamat email dan nomer telepon yang dimasukkan user..+\.php yang berisi kode sebagai berikut : <? // validasi alamat email $polaEmail = "^.org").+$". misal : endy@ngoprek.htm berbentuk seperti gambar di bawah: input yang dimasukkan user akan diperiksa oleh script CekMail. misal : +62315054307"). CekMail.+@. net. } // validasi no telp $polaTelp = "^\+[0-9]{2}-[0-9]+$". }else{ echo("Alamat email valid"). atau edu dengan menggunakan pola berikut : ^. $email)){ echo("Masukkan alamat email yang valid. $telp)){ echo("Masukkan nomer telepon yang valid.+\.Atau kita dapat membatasi alamat email yang digunakan oleh user agar hanya menerima domain com. } ?> 62 . Penggunaan Regular Expression Untuk mendemonstrasikan kemampuan string handling. if(!eregi($polaTelp.((com)|(edu)|(net))$ B. }else{ echo("No telp valid").

63 . Menerima input berupa pola yang diinginkan dan string yang akan diperiksa. Function ini akan menghasilkan nilai true bila polanya sesuai dan false bila pola yang dicari tidak ada pada string input.Function yang digunakan untuk memeriksa email pada script di atas adalah eregi.

misalnya e-mail. A. welcomeNoSession.htm">Daftar</a></p> </body> </html> 64 . Prosedur ini hanya dilakukan sekali pada awal proses.php dan displayNoSession. Untuk mengetahui kegunaan session.htm <html> <head> <title>Login</title> </head> <body> <h1>Login </h1> <form method="POST" action="loginNoSession. loginNoSession. kita akan diminta memasukkan username dan password.php login.</td> <td width="73%"><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></td> </tr> </table> </form> <p><a href="register. dan menampilkan informasi yang sesuai.php. Kita membutuhkan satu halaman web dan tiga script php : login. Selanjutnya sistem akan ‘mengingat’ identitas kita. Tanpa adanya session.php"> <table border="1" width="44%"> <tr> <td width="27%">user : </td> <td width="73%"><input type="text" name="login" size="20"></td> </tr> <tr> <td width="27%">password : </td> <td width="73%"><input type="text" name="pass" size="20"></td> </tr> <tr> <td width="27%">&nbsp. sistem akan salah dan menampilkan data rahasia ke orang yang salah. No Session Session Pada waktu kita browsing menjelajahi website. kita akan membuat aplikasi tanpa session.XIV.htm.

loginNoSession.php <? // -- cek user dan password -- // if($login == "endy" && $pass =="test"){ header("Location: welcomeNoSession.php?user=endy"); }elseif($login == "oky" && $pass =="coba"){ header("Location: welcomeNoSession.php?user=oky"); }else{ echo("User dan password salah"); } ?> welcomeNoSession.php <? echo("Welcome $user <br>"); echo("<a href=\"displayNoSession.php?user=$user\">"); echo("klik di sini untuk mengakses daftar kenalan anda</a>"); ?> displayNoSession.php <? $dbUser = "endy"; $dbPass = "test"; $db = "latihan"; $server = "localhost"; // membuat koneksi $koneksi = mysql_connect($server, $dbUser, $dbPass); // memeriksa koneksi if(!$koneksi){ echo("Koneksi ke database gagal"); exit; } // membuka database mysql_select_db($db); // membuat query dan mengakses hasil $query = "SELECT * FROM UserData WHERE user='$user'"; $hasil = mysql_query($query); // menampilkan hasil echo("<table border=1>"); echo("<tr>"); echo("<td>NamaTeman</td>"); echo("<td>Keterangan</td>"); echo("</tr>"); while($row = mysql_fetch_array($hasil)){ echo("<tr>"); echo("<td>".$row["namaTeman"]."</td>"); echo("<td>".$row["keterangan"]."</td>"); echo("</tr>"); } echo("</table>"); ?>

65

kode ini membutuhkan data contact yang diambil dari tabel UserData dengan definisi sebagai berikut:
CREATE TABLE userData ( user VARCHAR(50), namaTeman VARCHAR(50), keterangan VARCHAR(50) );

dan sampel data sebagai berikut:
INSERT INTO userData VALUES ( 'endy', 'Imanudin', 'Teman ceting' ); INSERT INTO userData VALUES ( 'oky', 'Iswahyudi', 'Pak Lurah kos adhyaksa' ); INSERT INTO userData VALUES ( 'oky', 'Anton Raharja', 'Rekan kerja di kantor' ); INSERT INTO userData VALUES ( 'endy', 'Widya Andhini', 'Gebetan lama tapi masih mesra' ); Jalannya aplikasi :

login dengan user = oky dan password = coba

66

klik link untuk mendisplay output, tampilan akan muncul sebagai berikut:

sekarang, kita akan “memalsu” link yang ada di address bar untuk menampilkan data user endy. Buka browser baru dan masukkan link berikut di address bar:
http://localhost/latihan/displayNoSession.php?user=endy

Kemudian tekan enter.

67

Ooopss… dengan mudah data rahasia akan muncul. Cara mencegah hal ini terjadi adalah dengan meminta user untuk memasukkan login dan password setiap kali ia berpindah halaman. Tetapi tentu saja cara ini menjengkelkan bagi user. Selain itu, mempassing variabel login dan password di setiap halaman sangat tidak aman dan rentan penyadapan. Oleh karena itulah kita menggunakan session.

B. Konsep session
Session bekerja seperti tempat penitipan barang di supermarket. Kita datang, menitipkan barang bawaan, dan petugas akan memberikan tanda pengenal. Pada saat kita akan mengambil barang, kita memberikan tanda pada petugas, dan petugas akan dapat mengambil barang yang dititipkan tanpa tertukar dengan barang orang lain. Permasalahan yang terjadi adalah, bagaimana “tanda pengenal” tersebut akan disimpan pada setiap halaman yang diakses user, sehingga dapat diakses oleh sistem setiap kali user mengklik link. Ada tiga alternatif yang dapat digunakan untuk menyimpan data session : o o o Cookie Hidden Form URL Embedding

68

variabel $sessionId akan tersedia setiap kali browser user mengakses sistem.// if($login == "endy" && $pass =="test"){ setcookie("user". kita akan memodifikasi aplikasi di atas sebagai berikut : login. } ?> welcomeSessionCookie. user dapat menonaktifkan cookie melalui setting di browser. Oleh karena itu.cek user dan password -. pendekatan ini kurang handal untuk diterapkan pada aplikasi kita.php 69 . header("Location: welcomeSessionCookie. Cookie akan hilang dari browser user setelah melewati masa kadaluarsa yang ditentukan atau dihapus melalui perintah: setcookie(“sessionId”). $login).C. Pendekatan ini banyak mengundang kontroversi. Setelah itu. Cookie ditulis pada browser user dengan menggunakan perintah : setcookie(“sessionId”. }else{ echo("User dan password salah").php"). “1234”). header("Location: welcomeSessionCookie. $login).php <? // -. }elseif($login == "oky" && $pass =="coba"){ setcookie("user". Karena cookie dapat menghilangkan privacy user dan berpotensi mengandung virus.htm <form method="POST" action="loginSessionCookie. Untuk melihat dengan lebih jelas implementasi cookie.php"> loginSessionCookie. Dengan demikian.php"). Script menjalankan function setcookie yang akan menulis data di harddisk user. Implementasi : Cookie Cookie adalah informasi yang disimpan pada browser user.

<? if(!$user){ echo("Illegal Access"). Anda akan mendapatkan: Sekarang.php if(!$user){ echo("Illegal Access"). echo("klik di sini untuk mengakses daftar kenalan anda</a>").php Kemudian tekan enter. ?> tambahkan baris berikut pada bagian atas displayNoSession. disable cookie dengan cara : Klik Tools – Internet Options 70 . } Untuk mengujinya. buka browser baru dan masukkan link berikut di address bar: http://localhost/latihan/displaySessionCookie. echo("<a href=\"displaySessionCookie. exit. } echo("Welcome $user <br>").php dan save as displaySessionCookie.php\">"). exit.

Klik tab Security dan klik tombol Custom Level klik disable cookie 71 .

Anda akan mendapat Illegal Access. dan displaySessionApi.php. welcomeSessionApi. Cara penggunaan PHP Session API dapat dilihat pada loginSessionApi. PHP akan menyimpan data session pada cookie. PHP akan menyimpan data session pada URL. Misalnya dengan menggunakan kode : <input type=”hidden” name=”user” value=”$user”> cara ini juga tidak dapat dilakukan di segala kondisi. Implementasi : Hidden Form Cara kedua untuk menyimpan data session adalah dengan menyimpan data tersebut pada hidden input yang ada dalam form. Implementasi : URL Embedding Cara terakhir yang pasti berhasil adalah dengan “menempelkan” variabel session di link/URL. 72 .coba lagi mengakses halaman contact. Selain itu. link menjadi tidak indah dipandang mata. karena ada saatsaat di mana kita tidak dapat menggunakan form. E. Implementasi : Session API Session API PHP menggabungkan teknik cookie dan teknik URL Embedding.php dimodifikasi menjadi welcome. D. metode inilah yang paling efektif dan reliable. Tetapi apabila cookie di-disable user.php. link URL menjadi tidak bisa di’bookmark’.php. Anda dapat memodifikasi setting Internet Explorer untuk melihat bahwa metode ini dapat dijalankan walaupun cookie di-disable. Apabila user mengaktifkan cookie. F.php?sessionId=1234. Satu-satunya kerugian cara ini adalah. Misalnya link menuju welcome. Mekanisme ini terjadi secara otomatis apabila PHP dicompile dengan option --enable-trans-sid.php untuk membuka halaman pribadi. Tetapi secara teknis. Kita juga tidak dapat mengetik langsung URL http://localhost/latihan/displaySessionApi.

} echo("Welcome $user <br>").loginSessionApi.// if($login == "endy" && $pass =="test"){ session_start().php"). $user = $login. }elseif($login == "oky" && $pass =="coba"){ session_start(). echo("<a href=\"displaySessionApi.php: <? // -.php <? session_start().cek user dan password -.php\">"). $user = $login. }else{ echo("User dan password salah"). header("Location: welcomeSessionApi. ?> 73 . exit. echo("klik di sini untuk mengakses daftar kenalan anda</a>"). session_register("user"). if(!session_is_registered("user")){ echo("Illegal Access"). } ?> welcomeSessionApi. session_register("user"). header("Location: welcomeSessionApi.php").

echo("<td>NamaTeman</td>"). echo("</tr>"). exit.displaySessionApi. // membuat query dan mengakses hasil $query = "SELECT * FROM UserData WHERE user='$user'". echo("<tr>"). $db = "latihan". $dbPass). } echo("</table>").php <? session_start().$row["keterangan"]. } // membuka database mysql_select_db($db). // membuat koneksi $koneksi = mysql_connect($server. if(!session_is_registered("user")){ echo("Illegal Access"). $dbUser. echo("<td>". $server = "localhost".$row["namaTeman"]. ?> 74 . exit. $hasil = mysql_query($query). } $dbUser = "endy". echo("</tr>"). $dbPass = "test"."</td>"). echo("<td>Keterangan</td>"). // menampilkan hasil echo("<table border=1>"). // memeriksa koneksi if(!$koneksi){ echo("Koneksi ke database gagal")."</td>"). echo($sessionId). while($row = mysql_fetch_array($hasil)){ echo("<tr>"). echo("<td>".

Sign up to vote on this title
UsefulNot useful