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

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

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

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

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

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

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

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

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

6 .

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

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

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

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

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

php?nama=Endy&alamat=Surabaya Di kolom address pada explorer.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 . Untuk lebih jelasnya. echo(“Variabel \$alamat berisi : $alamat”).php. kita akan menulis : welcome. Variabel ini dapat diakses di script welcome.php dengan cara sebagai berikut : <? echo(“Variabel \$user berisi : $user”).[alamat web]?var1=nilai1&var2=nilai2 Misalnya. perhatikan gambar berikut. ?> 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. untuk memberikan variabel $nama berisi “Endy” dan $alamat = “Surabaya” ke welcome.

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

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

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

Tambahkan operator. buatlah contoh seperti petunjuk berikut.htm sehingga menjadi seperti gambar di bawah: Komponen TextField kiri TextField kanan Operator Action Nama Variabel operand1 operand2 Op hasilRelational.< : 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.php Buat file operator.php seperti ini : 16 .

$operand2.<? $perhitungan = $operand1. echo("<b>"). ikuti petunjuk di bawah ini.htm menjadi seperti di bawah ini : 17 .$op. 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. Hasil yang didapat dari penggunaan logical operator adalah boolean. Logical operator Logical Operator digunakan untuk membandingkan dua nilai variabel yang bertipe boolean.php masih sama seperti di atas. File operator. echo($hasil). echo("Hasil Perhitungan : "). ?> C. $hasil = eval($perhitungan). File operator. echo("</b>").

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

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

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

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

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

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

Bila bernilai false. Statement 1 dijalankan 2.else Untuk pilihan yang lebih dari dua.if(condition) { // statement 1 goes here } else { // statemant 2 goes here } // statement 3 goes here Aliran program : 1. 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 4 dijalankan 24 . Statement 2 dijalankan 2.elseif . Statement 4 dijalankan Apabila condition 1 bernilai false. PHP menyediakan konstruksi if-elseifelse. Statement 3 dijalankan if . statement 2 akan dijalankan 4. Condition akan diperiksa 2. Bila bernilai true. dan condition 2 bernilai true : 1. statement 1 akan dijalankan 3.

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

} if($kelamin2 == "Pria"){ $latar2 = $kelabu.htm $kelabu = "#303030".php // digunakan bersama control_flow. if($kelamin1 == "Pria"){ $latar1 = $kelabu. }else{ $latar1 = $putih. } if($kelamin4 == "Pria"){ $latar4 = $kelabu. } $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> ". }else{ $latar2 = $putih. ?> switch – case konstruksi switch dapat dijelaskan sebagai berikut : 26 .<? // ifDemo. echo($output). }else{ $latar4 = $putih. } if($kelamin3 == "Pria"){ $latar3 = $kelabu. $putih = "#FFFFFF". }else{ $latar3 = $putih.

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

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

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

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

<? // melakukan break pada $i == 2 for($i = 0. } echo("Nilai i : $i <br>"). Untuk lebih jelasnya. Untuk sementara. $1<5. Fungsi akan kita pelajari dengan lebih mendalam pada bagian selanjutnya. 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. ?> kode tersebut akan melakukan break pada saat i bernilai 2. kode di atas akan kita modifikasi. } echo("Nilai i : $i <br>"). <? // melakukan continue pada $i == 2 for($i = 0. } echo(“Loop Selesai”). 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. } echo("Loop Selesai"). fungsi cuma akan digunakan untuk menjelaskan return. Perhatikan kode di bawah : 31 . ?> kode tersebut akan melakukan break pada saat i bernilai 2. $i++){ if($i == 2){ continue. $1<5. $i++){ if($i == 2){ break.

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

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

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

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

D. Contoh penggunaannya adalah sebagai berikut : sort($teman). $i<length($teman). $nilai) = each($rekan)){ echo(“Array \$rekan index $index berisi nilai $nilai”). } 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. echo(“<br>”). Contoh penggunaan : ksort($rekan). } 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 . Contoh penggunaan : asort($rekan). Fungsi-fungsi array sort Elemen-elemen dalam array dapat diurutkan dengan menggunakan fungsi sort().$i++){ echo(“Array \$teman index ke [$i] adalah $teman[$i]”).indexnya dan value adalah isinya. echo(“<br>”). $nilai) = each($rekan)){ echo(“Array \$rekan index $index berisi nilai $nilai”). while(list($index. for($i=0. while(list($index. } 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. echo(“<br>”). Pasangan tersebut akan dipisahkan oleh fungsi list dan dimasukkan ke dalam variabel $index dan $nilai.

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

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

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

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

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

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

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

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

htm adalah sebagai berikut : 45 . Setelah foto berhasil diupload. Sebagai contoh. 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. kita akan mempelajari bagaimana script php berinteraksi dengan file. Sebelumnya. kita akan meneruskan aplikasi contact manager dengan memungkinkan pengguna untuk mengupload file foto beserta komentarnya. Listing kode upload.XI.

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

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

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

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

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

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

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

login.htm : register.htm 53 .

A. … . Sekilas SQL Query SQL (Structured Query Language) adalah bahasa yang khusus digunakan untuk mengoperasikan database. 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>. <nama kolom> <tipe data> ). contohnya: 54 . 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. <nama kolom> <tipe data>. Untuk memudahkan pelajaran.

< nama kolom 1>. Contoh : DROP TABLE userTable..). dengan aturan penulisan sebagai berikut : UPDATE <nama tabel> SET <nama kolom>=<isi kolom> WHERE <kriteria> Contoh : 55 . digunakan perintah UPDATE. Aturan penulisannya adalah : INSERT INTO <nama tabel> (<nama kolom 1>. NamaLengkap VARCHAR (50) ). Query satu tabel Query satu tabel digunakan untuk mengelola data dalam satu tabel. 'inipaswod'.) VALUES (<isi kolom 1>. Contoh : INSERT INTO userTable VALUES ( 1. UserName VARCHAR (50). . Password VARCHAR (50). 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>. .CREATE TABLE userTable( UserId INT (3). Untuk mengubah data dalam database. 'Endy Muhardin' ). <isi kolom 2>. 'endy'. kita menggunakan perintah INSERT..

karena kita belum punya user. UserName VARCHAR (50). tabel siap digunakan. Password VARCHAR (50). 56 . NamaLengkap VARCHAR (50) ). Tugasnya adalah memasukkan data yang diisi dalam form ke dalam database. File register.php akan menangani pendaftaran user baru. 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. kita terlebih dahulu akan membuat database. Pembahasan tentang join berada di luar materi PHP Programming dan ada di pembahasan tentang relational database. 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.UPDATE userTable SET password=’test’ WHERE UserName=’endy’ Untuk menampilkan data dalam tabel. 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. gunakan perintah DELETE. Membuat koneksi ke database Sebelum mulai. B. Kita akan mulai dengan halaman daftar. gunakan perintah SELECT.

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

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

kita akan mengambil data password. diakses dengan cara : $passDb = $data[“Password”]. Untuk mengetahui jumlah hasil yang didapat dari query. Apabila hasilnya tidak nol (berarti username telah terdaftar dalam sistem). query akan menghasilkan array yang berisi data pada masing-masing kolom dalam database. digunakan kode sebagai berikut: $jumlahHasil = mysql_num_rows($hasil).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). 59 . Untuk itu. Bila userName yang diinputkan user tidak ada dalam database. query akan mengembalikan 0 (nol) baris hasil. data password ada dalam array. Bila ada. kita gunakan perintah: $data = mysql_fetch_array($hasil).

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

Dan sebagainya A. lalu diakhiri dengan satu atau lebih huruf/angka.XIII. + atau {1. alamat email yang valid (misalnya endy@ngoprek.+@. dipisahkan oleh tanda titik. Sekilas Regular Expression Untuk dapat menggunakan fungsi-fungsi string handling dengan baik..} {3. diikuti tanda @ kemudian diikuti dengan satu atau lebih huruf/angka. Pola tersebut. String Handling String handling adalah kumpulan function PHP yang berguna untuk memanipulasi string.+\. 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] . Contoh pola kalimat misalnya. Ada banyak kegunaan yang bisa didapat dengan menggunakan fungsi-fungsi ini. $ Pola alamat email di atas dapat dinyatakan dengan satu baris kode sebagai berikut. misalnya: Pencarian kata dalam website Pemeriksaan user input Memformat file untuk keperluan khusus (misalnya email).+$ 61 .10} @ \. kita perlu menguasai teknik pembuatan pola kalimat.} * atau {0.org) selalu memiliki pola sebagai berikut: satu atau lebih huruf/angka. ^.

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

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

No Session Session Pada waktu kita browsing menjelajahi website.htm">Daftar</a></p> </body> </html> 64 . Selanjutnya sistem akan ‘mengingat’ identitas kita. loginNoSession. A.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.htm <html> <head> <title>Login</title> </head> <body> <h1>Login </h1> <form method="POST" action="loginNoSession. kita akan diminta memasukkan username dan password. Untuk mengetahui kegunaan session.htm.XIV. sistem akan salah dan menampilkan data rahasia ke orang yang salah. kita akan membuat aplikasi tanpa session.php login. Tanpa adanya session.</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. Prosedur ini hanya dilakukan sekali pada awal proses. welcomeNoSession. misalnya e-mail.php dan displayNoSession. dan menampilkan informasi yang sesuai.php. Kita membutuhkan satu halaman web dan tiga script php : login.

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful