Robby Cokro Buwono Badiyanto, S.Kom.,M.Kom Sesi 12 OOP PHP dasar Kode MK : AK2011T Revisi Terakhir : 2013 Tujuan Intruksional Memahami cara membuat aplikasi dasar PHP dengan OOP 2 1
PBO di PHP PHP pada awalnya hanyalah kumpulan script sederhana. Hal ini dimulai sejak PHP 4. Dengan di release versi PHP 5, fitur-fitur pemrograman berorientasi objek semakin mantap dan semakin cepat. PHP 5, script yang menggunakan konsep object-oriented akan lebih cepat dan lebih efisien. 3 (Pemrograman Berorientasi Objek Pemrograman berorientasi objek atau object oriented programming (OOP) merupakan suatu pendekatan pemrograman yang menggunakan object dan class. OOP juga banyak digunakan pada bahasa Java dan C++, pascal,. OOP merupakan cara pandang dalam menganalisa sistem dan permasalahan pemrograman. Dalam OOP, setiap bagian dari program adalah object. Sebuah object mewakili suatu bagian program yang akan diselesaikan. 4 2
OOP Sebuah object mewakili suatu bagian program yang akan diselesaikan. Beberapa konsep OOP dasar, antara lain : 1. Encapsulation (Class dan Object) 2. Inheritance (Penurunan pewarisan sifat) 3. Polymorphisme (Perbanyakan bentuk) 5 Objek Sederhananya, sebuah objek adalah kumpulan dari variabel dan fungsi yang dibungkus menjadi satu entitas. Entitas tersebut dapat berupa variabel biasa. Sebuah objek diciptakan melalui sebuah kelas atau dengan istilah instan dari kelas. Objek memiliki 2 elemen utama: Attributes atau Properties: yaitu nilai-nilai yang tersimpan dalam objek tersebut dan secara langsung maupun tidak langsung menentukan karakteristik dari objek tersebut. Method: yaitu suatu aksi yang akan dijalankan atau dikerjakan oleh objek tersebut. 6 3
Contoh: misalny object mobil, dimana mobil memiliki properties atau bagian-bagian di dalamnya, seperti warna, roda, mesin, pintu dsb. Sebuah mobil juga dapat melakukan sesuatu (ada sesuatu yang bisa dilakukan dengan mobil), seperti mengisi bensin, menyalakan mesin, berjalan, mengerem dsb. 7 Kelas (class) Kelas atau class dapat didefinisikan sebagai struktur data dari suatu objek. Lebih jelasnya adalah sebuah bentuk dasar yang mendefinisikan variabel, method umum pada semua objek. Objek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. 8 4
Pengkapsulan Salah satu keuntangan program yang didefinisikan dengan konsep OOP adalah pengkapsulan (encapsulation) program dalam class dan object, dimana programer yang menggunakan class tidak perlu mengetahui isi dan jalannya class secara detail, hanya perlu tahu bagaimana cara menggunakannya. Sama halnya dengan sebuah mobil misalnya, seorang pemilik mobil tentunya tidak perlu mengetahui bagian-bagian mobil secara menyeluruh. 9 Properties dan Method Properties : Setiap class memiliki properties yang kadang disebut juga state atau attributes. Properties dari sebuah mobil misal warna, ukuran, dan harga, di dalam class properties tersebut dinyatakan sebagai sebuah variabel. Misalnya : $warna, $ukuran dan $harga. Method Method merupakan sesuatu yang bisa dilakukan oleh object. Method dalam PHP sama artinya dengan fungsi. Method dari mobil misalnya menghidupkanmobil(), menjalankanmobil(), menghentikanmobil () dan sebagainya. 10 5
Properties dan Method Penamaan properties dan method memiliki aturan yang sama dengan penamaan sebuah variabel dan fungsi. Akan tetapi berdasarkan kesepakatan (convention), penamaan properties dan method harus mengguanakan camel Caps, dimana tiap kata diawali dengan huruf besar kecuali kata pertama, setiap kata digabung tanpa spasi atau under-score(_). Contoh : Atribute : $warnabody, $beratmobil, $panjangmobil Method : menjalankanmobil(), menghentikanmobil() 11 Mendefinisikan Kelas (class) Mendefinisikan Class Bentuk umum class NamaClass... deklarasi dan definisi properties...... definisi method... 12 6
Mendefinisikan class Contoh pendefinsian class beserta propertinya class Mobil var $warna ; var $merk ; var $harga ; 13 Mendefinisikan Class Variabel class dapat langsung diinisialisasi dengan sebuah nilai. Seperti contoh berikut. class Mobil var $warna = "Biru"; var $merk = "BMW" ; var $harga = 100000000 ; 14 7
PBO di PHP ( Mendefinisikan Class ) Untuk menambahkan method sama seperti membuat fungsi tetapi di hindari penulisan method dengan menggunakan 2 underscore ( ) seperti construct( ), destruct( ) dan clone( ) karena sudah digunakan untuk pengaturan class. 15 Mendefinisikan Class Contoh pendefinisian kelas dengan methodenya class Mobil var $warna = "Biru"; var $merk = "BMW" ; var $harga = 100000000 ; function gantiwarna($warnabaru) $this->warna = $warnabaru ; function tampilwarna( ) echo "Warna mobilnya : ". $this->warna ; 16 8
Mendefinisikan class Pada listing program di atas sudah ditambahkan fungsi atau method gantiwarna( ) dan tampilwarna( ). Untuk mengakses properties (variabel) bisa menggunakan keyword $this. Keyword ini me-refer pada class tempatnya berada. 17 Mendefinisikan class Konstruktor merupakan sebuah method khusus yang akan secara otomatis dijalankan saat object terbentuk. Konstruktor tidak harus ada, namun dalam satu class hanya boleh ada satu konstruktor. Method konstruktor biasanya berisi pemberian nilai default dari masing-masing properties (variabel). Untuk membuat konstruktor, cukup dengan mendefinisikan suatu fungsi dengan nama construct( ). 18 9
Mendefinisikan class class Mobil var $warna ; var $merk ; var $harga ; function construct() $this->warna = "Biru" ; $this->merk = "BMW" ; $this->harga = "100000000" ; function gantiwarna($warnabaru) $this->warna = $warnabaru ; function tampilwarna() echo "Warna mobilnya : ". $this->warna ; 19 Mengakses kelas $kend = new Mobil $kend->tampilwarna(); echo "<br/>merk ".$kend->merk; echo "<br/>harga".$kend->harga; $kend->gantiwarna('kuning'); echo "<br/>"; $kend->tampilwarna(); 20 10
Kelas Extends Sebuah kelas dapat merupakan perluasan dari kelas yang ada sebelumnya. Hal ini yang merupakan kelebihan pemrograman berorientasi objek adalah adanya sifat pewarisan (inheritence). Misalnya pada contoh kelas SegiEmpat hanya terdapat fungsi set_sisi(), luas() dan mungkin itu dirasakan kurang. Jika ingin menciptakan kelas baru Kubus yang menggunakan fungsi yang ada di dalam kelas SegiEmpat, serta ditambahkan fungsi volume (), maka dengan melakukan perluasan terhadap sebuah kelas. Adapun caranya menggunakan pernyataan extends yang sintaksnya adalah sebagai berikut: 21 kelas SegiEmpat <?php class SegiEmpat //properti// var $panjang; var $lebar; // metode (fungsi) function set_sisi($pj,$lb) $this->panjang=$pj; $this->lebar=$lb; function luas() return $this->panjang * $this->lebar;?> 22 11
Kelas Kubus <?php include "segi_empat.inc"; class Kubus extends SegiEmpat var $tebal; function set_tebal($tb) $this->tebal=$tb; function volume() return $this->tebal * $this->lebar *$this->panjang;?> 23 Referensi PHP Manual (http://www.php.net/docs.php) 24 12