2016 PEMROGRAMAN PHP DASAR Eka Dyar Wahyuni Sistem Informasi UPN Veteran Jawa Timur 1/6/2016
Contents 1. Mengambil Nilai Parameter... 2 2. Menyimpan ke Database... 5 3. Menampilkan Hasil dari Database dan Menghapus Record dari Database... 7 4. Object Oriented Programming dalam PHP... 9 5. MVC... 20 6. DB MVC... 25 Sistem Informasi UPN Veteran JawaTimur 1
1. Mengambil Nilai Parameter Langkah-langkahnya : 1. Buat satu file html dengan listing kode seperti berikut Sistem Informasi UPN Veteran JawaTimur 2
Listing kode diatas akan memberikan tampilan pada browser seperti gambar berikut : 2. Untuk menangkap parameter, amati bahwa setiap inputan (entah itu berupa textfield, combobox, radio button, checkbok dst) memiliki atribut name. Nilai dari atribut name ini nanti yang akan kita pakai untuk mengambil parameter dari inputan tersebut. 3. Amati method yang dipergunakan dalam formnya, apakah itu get atau post, jika dalam form tidak ada atribut method= post atau method= get maka secara default, method yang dipakai adalah get. 4. Dari listing kode yang ada pada no 1 diatas, ketika kita klik tombol simpan, proses selanjutnya akan dilarikan ke halaman proses.php (ditunjukkan oleh nilai dari atribut action yang ada pada form) 5. Di halaman proses.php Sistem Informasi UPN Veteran JawaTimur 3
Buat variabel. Variabel dalam php diawali dengan $ dan diikuti dengan nama variabelnya tanpa spasi, kita tidak perlu menyebutkan apakah variabel tersebut bertipe string, integer atau yang lain Contoh : $nama variabel dengan nama nama $jk variabel dengan nama jk 6. Isi variabel tersebut dari inputan yang ada di form Pada langkah 6 ini, kita harus tahu nilai dari atribut method pada form (langkah 3) dan nilai dari atribut name pada inputan (langkah 2) Form yang ada diatas, seperti yang ditampilkan pada langkah no 1, ada 5 macam inputan, yaitu nama, npm, jurusan, jenis kelamin, hobi. Oleh karena itu kita perlu 5 variabel untuk menyimpan nilainya 7. Lalu cetak isi dari inputan, perintah cetak pada php adalah echo + (variabel/ string ) Sistem Informasi UPN Veteran JawaTimur 4
2. Menyimpan ke Database Modul ini akan menyimpan inputan dari user kedalam database, melanjutkan dari modul 1 yang hanya menampilkan inputan user ke browser. Langkah-langkahnya : 1. Buat tabel dengan mha dengan properti npm varchar(10), nama varchar(50), jurusan integer(11), j_kelamin integer(11), hobi varchar(50) 2. Di dalam halaman proses.php, kita sudah membuat variabel $nama, $npm,$jur dan $jk. Kita juga sudah bisa menampilkan isi dari keempat variabel tersebut ke layar browser dengan mempergunakan perintah echo. Untuk selanjutnya, perintah echo bisa kita hapus atau kita jadikan sebagai comment dengan mempergunakan // atau pasangan /* dan */ 3. Tuliskan listing code seperti dibawah Halaman ini berfungsi membangun koneksi ke database, nama databasenya adalah tes menjalankan query insert ke tabel mha, setelah query selesai dijalankan, membuka halaman tampil.php Fungsi implode(,,$_post[ hobby ]) digunakan untuk menggabungkan isi dari array [ hobby ] menjadi satu string dengan mempergunakan pemisah, untuk masing-masing elemen array. Tampilan dari fungsi implode() ketika dijalankan sendiri sebagai berikut : menghasilkan tampilan berikut Sistem Informasi UPN Veteran JawaTimur 5
Penjelasan fungsi mysql yang dipergunakan diatas sebagai berikut : mysql_connect() untuk membangun koneksi ke database dengan parameter nama komputer, username db dan password db seperti yang tampak pada gambar diatas. mysql_select_db() untuk memilih database mana yang akan kita pakai dengan parameter nama database dan variabel yang dipergunakan untuk membangun koneksi ke database mysql_query() untuk menjalankan query dengan parameter variabel yang menyimpan string query dan variabel yang dipergunakan untuk membangun koneksi ke database. Sistem Informasi UPN Veteran JawaTimur 6
3. Menampilkan Hasil dari Database dan Menghapus Record dari Database Modul ini akan menampilkan record dari database yang sebelumnya sudah diisi pada modul 2. Langkah-langkahnya : 1. Tuliskan listing code seperti dibawah Halaman ini bernama tampil.php. Halaman ini berfungsi membangun koneksi ke database, menjalankan query select dari tabel mha, dan menampilkan hasil kueri dalam bentuk tabel 2. Berikut tampilan web setelah dijalankan Sistem Informasi UPN Veteran JawaTimur 7
3. Dari gambar diatas, jika diklik link hapus, maka akan membuka halaman hapus.php, menjalankan kueri delete dan akan membuka halaman tampil.php, berikut listing code nya 4. Berikut tampilan web setelah record dihapus Tugas modul : Lanjutkan studi kasus diatas dengan membuat halaman untuk mengedit record yang ada pada database Sistem Informasi UPN Veteran JawaTimur 8
4. Object Oriented Programming dalam PHP Syarat dalam modul ini anda harus memahami function, variable, conditionals (if..else..) dan loop 1. Buat dua file php class_lib.php oop2.php Pada intinya, oop membuat agar listing kode kita bersifat modular, jadi listing kode kita nanti akan kita masukkan ke dalam beberapa file dan akan kita masukkan ke php utama kita dengan mempergunakan php include. Dalam kasus kali ini, oo php akan kita tuliskan kedalam : class_lib.php 2. Buat class dengan mempergunakan keyword class diikuti dengan nama class yang ingin kita buat 3. Tambahkan variabel ke dalam class kita 4. Tambahkan function / method ke dalam class kita Method dipergunakan untuk memanipulasi data/properti dari kelas itu sendiri Sistem Informasi UPN Veteran JawaTimur 9
5. Fungsi getter dan setter Kita sudah membuat function get_name() dan set_name(). Method/function ini mengikuti aturan umum dari OOP seperti di bahasa pemrograman lainnya (java, ruby dll) dimana kita membuat method untuk menge- set dan menge- get properti (atribut) dari class. Aturan umum lainnya adalah, nama getter dan setter harus sesuai dengan nama dari properti. Sehingga, ketika programmer lain ingin memakai object kita, mereka akan tahu jika kita memiliki function/method set_name() pasti ada properti bernama name. 6. Variabel $this Pada listing berikut $this->name = $new_name; $this adalah variabel built-in(ada pada semua object), yang menunjuk kepada object saat ini. Dengan kata lain $this adalah special self referencing variabel. Kita mempergunakan $this untuk mengakses properti dan memanggil method lain dari class. 7. Include class kita kedalam php utama Kita tidak akan menuliskan class php langsung kedalam halaman php utama kita. Tujuan dari oop tidak akan tercapai. Langkah yang baik adalah membuat halaman php lain yang hanya berisi class-class kita lalu kita akses class-class tersebut dengan mempergunakan include atau require 8. Instantiate/ buat object Sistem Informasi UPN Veteran JawaTimur 10
Class adalah blueprint/template/cetakan dari object. Class tidak akan menjadi object kalau tidak kita instantiate. Ketika kita meng-instantiate kita membuat instance dari object kedalam memori 9. Keyword new Untuk membuat object dari class kita mempergunakan keyword new. Ketika membuat object, kita bisa memberi kurung setelah nama class bisa juga tidak, seperti pada contoh dibawah 10. Set properti dari object Kita mempergunakan method setter. Harap diingat bahwa meskipun $stefan dan $jimmy dibuat dari class person keduanya adalah OBJECT yang BERBEDA 11. Mengakses data dari object Sistem Informasi UPN Veteran JawaTimur 11
Kita mempergunakan getter untuk mengakses data yang tersimpan di object kita sebenarnya adalah data yang sama dengan yang kita masukkan dengan mempergunakan setter. Ketika mengakses properti dan method dari class, kita mempergunakan operator ->. 12. Constructor Semua object bisa memiliki method built in yang bernama constructor. Dengan constructor kita dapat menginisialisasi properti dari object kita (memberi nilai kedalam properti) ketika kita meng-instantiate object. Note : Ketika kita membuat construct (membuat method ini bersifat opsional), php akan memanggil method construct()secara otomatis ketika kita meng-instantiate object. Method construct diawali dengan dua underscore ( ) dan kata construct diikuti dengan daftar argument (seperti function) Sistem Informasi UPN Veteran JawaTimur 12
13. Membuat object dengan construtor Kita bisa membuat object baru dengan constructor sekaligus memberi nilai ke propertinya, dalam artian kita tidak lagi memerlukan method setter 14. Membatasi akses ke properti dengan mempergunakan access modifiers Salah satu prinsip fundamental OOP adalah enkapsulasi. Idenya adalah, kita membuat kode yang lebih baik dengan membatasi akses ke struktur data pada object kita (properti) Ada 3 access modifier, yaitu : Public Private Sistem Informasi UPN Veteran JawaTimur 13
Protected Public adalah default modifier.ketika kita mendefine variabel dengan keyword var, variabel tersebut dianggap public 15. Membatasi akses ke properti dengan mempergunakan access modifiers : bag 2 Ketika kita mendeclare properti menjadi private, hanya class yang sama yang dapat mengakses properti tersebut. Ketika properti dideclare protected, hanya class yang sama dan class turunannya saja yang dapat mengakses properti tersebut. Properti yang dideclare public tidak memiliki batasan akses, berarti semua orang bisa mengaksesnya Coba listing kode dibawah Sistem Informasi UPN Veteran JawaTimur 14
16. Membatasi akses ke method Sama dengan properti. Dapat dibatasi dengan mempergunakan 3 modifier yaitu : Public Private Protected Karena method get_pinn_number() dideclare private, satu-satunya tempat kita bisa mempergunakan method ini adalah pada class yang sama dengan kata lain di method yang lain pada class yang sama. Jika kita ingin memanggil atau mempergunakan method ini secara langsung maka pergunakan modifier public. 17. Inheritance Kita bisa mempergunakan class sebagai dasar bagi class lain Kenapa? Agar kita dapat mempergunakan kembali kode yang sebelumnya pernah kita buat Kita ingin membuat class employee, karena employee adalah jenis dari orang, akan memiliki properti dan method yang secara umum sama. Sistem Informasi UPN Veteran JawaTimur 15
Dalam situasi demikian, inheritance dapat membuat kode kita lebih ringan, karena kita mempergunakan kode yang sama di dua class yang berbeda. 18. Reusing code dengan inheritance : part 2 Karena class employee dasarnya adalah class person, employee secara otomatis akan memiliki semua properti dan method public serta private dari class person. 19. Reusing code dengan inheritance : part 3 Kita dapat memanggil method get_name pada object employee kita seperti tampak pada listing kode dibawah Sistem Informasi UPN Veteran JawaTimur 16
20. Overriding method Kadang kala ketika memakai inheritance, kita perlu merubah operasi yang dijalankan oleh suatu method, sehingga method tersebut menjalankan operasi yang berbeda dengan method yang bernama sama yang ada pada parentnya (class yang di extend) Misal, method set_name() pada class employee melakukan hal yang berbeda dengan method set_name() yang ada pada class person. Kita meng-override set_name versi class person dengan cara mendeklarasikan method yang sama di class employee. 21. Overriding method : part 2 Kadang kala, kita ingin mengakses method class parent kita dari class anak kita. Dalam kasus diatas, mengakses method set_name() versi class person dari method yang ada pada class employee. Kode yang dipergunakan adalah : person::set_name($new_name); Sistem Informasi UPN Veteran JawaTimur 17
22. Overriding method : part 3 Dengan mempergunakan :: kita bisa menyebutkan nama class yang akan diakses php untuk menjalankan suatu method person::set_name() memerintahkan php untuk mencari method set_name() pada class person. Cara lain untuk melakukan hal ini adalah dengan mempergunakan keyword parent Sistem Informasi UPN Veteran JawaTimur 18
Tugas : Buat class buku dengan properti id_buku, judul_buku, pengarang, penerbit dan tahun terbit buatkan getternya dan (pilih salah satu) setter/constructor Sistem Informasi UPN Veteran JawaTimur 19
5. MVC 1. Buat 3 folder didalam project anda. Ketiga folder tersebut adalah (model, view dan controller). Susunan direktori seperti berikut Pola pengembangan MVC memisahkan aplikasi kedalam 3 modul yaitu model, view dan controller. Model bertugas mengelola data. Model menyimpan dan mengambil entiti yang dipakai dalam aplikasi, biasanya nilai dari entiti ini berasal dari database View (presentasi) bertugas untuk menampilkan data yang dikirimkan oleh model dengan format tertentu (pada aplikasi web data yang ditampilkan sebagai html output ) Controller bertugas menerima request dari client, menjalankan model agar melakukan operasi yang diminta dan mengirimkan data yang dihasilkan model ke layer view CONTROLLER 2. Controller adalah yang pertama kali menerima request, memparsing, meng-inisialisasi (membuat) dan meng-invoke model dan mengambil response dari model lalu mengirimkan response tersebut ke layer view. Dalam modul ini, controller hanya diimplementasikan kedalam satu class dengan nama controller. Halaman pertama kali yang diakses (entry point) adalah index.php. index php akan mendelegasikan semua request kedalam controller. 3. Class controller kita hanya memiliki satu function/method dan memiliki satu constructor. Didalam constructor yang dilakukan adalah meng-instantiate class orang (membuat object orang) dan ketika request berakhir, controler yang menentukan data apa yang dikirimkan ke layer model dan memilih file apa yang akan dibuka pada layer view. alur proses tersebut dapat dijelaskan dalam gambar berikut Sistem Informasi UPN Veteran JawaTimur 20
Sistem Informasi UPN Veteran JawaTimur 21
Sistem Informasi UPN Veteran JawaTimur 22
MODEL 4. Class orang adalah entity. Class ini bertujuan untuk menyimpan data. Listingnya sebagai berikut VIEW (layer presentasi) 5. View bertugas untuk memformat tampilan data yang diterima dari model dalam suatu form yang dapat diakses oleh user. Controller mendelegasikan data dari model ke elemen-elemen tertentu dari view. Layer view dalam modul ini berisi dua file yaitu input.html yang berfungsi membuat tampilan untuk menginputkan data (dalam hal ini data nama orang) dan cetak.php yang berfungsi menampilkan nama yang telah diinputkan oleh user input.html Sistem Informasi UPN Veteran JawaTimur 23
cetak.php Sistem Informasi UPN Veteran JawaTimur 24
6. DB MVC 1. Buat database dengan nama mhs dan tabel dengan nama mahasiswa dengan atribut id integer(2) PK NOT NULL AUTO INCREMENT, nama varchar(50), alamat varchar(75), telp varchar (10). 2. Buat 3 folder didalam project anda. Ketiga folder tersebut adalah (model, view dan controller). Susunan direktori seperti berikut 3. index.php 4. config.php Sistem Informasi UPN Veteran JawaTimur 25
CONTROLLER 5. Controller.php Sistem Informasi UPN Veteran JawaTimur 26
MODEL 6. Class orang adalah entity. Class ini bertujuan untuk menyimpan data. Listingnya sebagai berikut 7. Class dao_orang dipergunakan untuk memasukkan semua query yang dilakukan yang terkait dengan entity orang. Dalam hal ini querynya adalah insert dan select * Sistem Informasi UPN Veteran JawaTimur 27
8. Class db.php dipergunakan untk membuat koneksi ke database VIEW (layer presentasi) 9. input.html Sistem Informasi UPN Veteran JawaTimur 28
10. cetak.php Sistem Informasi UPN Veteran JawaTimur 29