Thursday, November 20, 2014

Konsep Dasar Pemrograman PHP Berorientasi Obyek

Dalam tulisan sebelumnya tentang pemrograman berorientasi obyek kita mengenal beberapa istilah baru seperti Class, Object, Properties dan Method. Selain itu, dalam pemrograman berorientasi obyek kita juga mengenal fitur seperti Encapsulation, Inheritance dan Polymorphism. Dalam tulisan ini akan dijelaskan secara singkat tentang beberapa konsep pemrograman PHP berorientasi obyek tersebut.

Berikut ini beberapa konsep dasar pemrograman PHP berorientasi obyek :

1. Class

Adalah kumpulan fungsi dan data yang sejenis dan sebaiknya dibuat untuk tujuan yang sama. Sebagai contoh sebuah Class bernama Rumus berisi kumpulan fungsi rumus-rumus dan digunakan untuk tujuan menyelesaikan masalah dengan rumus yang ada dalam Class tersebut.

Class dan Obyek adalah hal paling dasar dalam konsep pemrograman berorientasi obyek. Pembuatan Class bertujuan mempermudah programmer dalam menangani sebuah masalah atau kasus dengan program. Dengan Class diharapkan proses pemetaan masalah ke sebuah program jadi lebih sederhana.

Contoh Class bernama Rumus

 class Rumus{  
    public function hitung_luas($panjang,$lebar)   
    {   
    $luas=$panjang*$lebar;   
    return $luas;   
    }   
 }  

2. Object

Adalah sebuah variabel khusus yang dibuat menggunakan Class. Dengan Object kita diharapkan memandang sesuatu didalam program sebagai obyek, seperti rumus hitung luas diatas dipandang sebagai sebuah Oject berupa alat untuk mencari luas seperti kalkulator.

Sebuah Object harus dibuat dari Class, dan untuk membuat Object kita menggunakan perintah "new". Saat dibuat, Object hanya didefinisikan saja, dan untuk dapat melakukan sesuatu kita harus menyuruh Object tersebut bekerja dengan cara memanggilnya dalam sebuah program.

Contoh membuat dan menggunaan Object dari Class Rumus diatas

 $rumus1 = new Rumus; // atau boleh juga ditulis $rumus1 = new Rumus(); 
 
 echo $rumus1->hitung_luas(50,30);  

3. Properties

Adalah kondisi yang menyertai suatu Object. Sebagai contoh, Properties pada mobil dapat digambarkan seperti warna, jumlah roda, kapasitas mesin, bahan bakar, harga dan merknya. Nilai properties ini digunakan untuk menyetting properties sebuah Object. Properties berupa variabel dengan tipe sesuai dengan properties dari Object.

Contoh pembuatan Properties pada Class Rumus

 class Rumus {  
   var $panjang;  
   var $lebar;  
 }  

4. Method

Adalah fungsi yang ditaruh pada Class. Definisi Method secara sederhana digambarkan sebagai perilaku atau behaviour dari sebuah Class. Sebagai contoh pada class Rumus diatas kita sudah membuat Method dengan nama hitung_luas yang merupakan fungsi untuk mengitung luas dengan cara mengalikan properti panjang dengan lebar.

Contoh pembuatan dan penggunaan Method pada Class Rumus

class Rumus {
    var $panjang;
    var $lebar;

     public function hitung_luas()  
     {  
     $hasil= $this->panjang * $this->lebar;
     return $hasil;  
     }  
}

$rumus1 = new Rumus;

$rumus1->panjang=10;
$rumus1->lebar=3;

echo $rumus1->hitung_luas();

5. Encapsulation

Adalah konsep aksesibilitas dari Properties dan Method pada Class. Dalam hal ini ada tiga mode akses yang disediakan yaitu Public, Private dan Protected. Akses paling luas adalah Public, yaitu mengijinkan akses meskipun dari luar Class. Selanjutnya adalah Private, yaitu ijin akses didalam Class dan yang terakhir adalah Protected yaitu ijin akses dari dalam Class dan turunannya.

Contoh penerapan Encapsulation pada Class

 <?  
  class Rumus {  
   public $panjang;  
   public $lebar;  
   private $alas;  
   private $tinggi;  
   protected $diameter;  
   public function luas_persegi_panjang()  
   {  
    $hasil= $this->panjang * $this->lebar;  
    return $hasil;  
   }  
   public function luas_segitiga()  
   {  
   $this->alas = 10;  
   $this->tinggi = 30;  
   $hasil= $this->alas * $this->tinggi / 2;  
    return $hasil;  
   }  
 }  
 $rumus1 = new Rumus;  
 $rumus1->panjang=10;  
 $rumus1->lebar=3;  
 echo $rumus1->luas_persegi_panjang();  
 echo $rumus1->luas_segitiga();  
 ?>  
Pada contoh diatas menunjukkan akses properti panjang dan lebar dibuat public, properti alas dan tinggi dibuat private dan diameter dibuat peotected. Dengan demikian, properti alas dan tinggi hanya bisa diakses didalam class seperti pada public function luas_segitiga.

Kemudian pada program tampak bahwa properti panjang dan lebar dapat diakses dari luar class. Untuk properti diameter terlihat didefinisikan protected, jadi properti ini bersifat peivat namun bisa diakses pada class turunan dari Rumus.

6. Inheritance

Adalah sistem pewarisan sebuah class, artinya sebuah class dapat digunakan oleh class yang lain yang disebut dengan class turunan. Dengan fitur Inheritance, pemrograman PHP berorientasi obyek menjadi lebih simpel dan kode-kodenya bisa dipakai ulang (re-use code).

Contoh pewarisan class Rumus kepada class Rumus_Lingkaran

 class Rumus {  
   ....  
 }  
 class Rumus_Lingkaran extends Rumus {  
   ....  
 }  
Dengan pewarisan ini maka semua properti dan method pada class Rumus dapat digunakan oleh class Rumus_Lingkaran selama disetting akses public atau protected.

7. Polymorphism

Adalah istilah untuk perubahan dalam banyak bentuk (poly=banyak, morph=bentuk). Istilah ini dipakai untuk menggmbarkan perilaku sebuah properti atau method yang bisa berubah-ubah tergantung dari bagaimana dipanggilnya, lalu siapa dan dimana yang memanggilnya.

Fitur polymorphism secara awam dapat digambarkan dengan perintah "gerak cepat" pada dua binatang berbeda misalnya burung dan singa. Burung akan mengepakkan sayapnya dan terbang lebih cepat sementara Singa akan menggerakkan kakinya lebih cepat walaupun mereka menerima perintah yang sama.

Dalam pemrograman PHP berorientasi obyek, polymorphism dapat digambarkan pada saat menggunakan abstract class dan abstract function pada class utama, kemudian menentukan nilainya pada masing-masing class turunannya

Contoh penggunaan polymorphism pada OOP

 <?  
 abstract class Binatang {  
   abstract public function gerak_cepat();  
 }  
 class Burung extends Binatang {  
   public function gerak_cepat() {  
     return "Burung mengepakkan sayapnya lebih cepat";  
   }  
 }  
 class Singa extends Binatang {  
   public function gerak_cepat() {  
     return "Singa menggerakkan kakinya lebih cepat";  
   }  
 }  
 $burung = new Burung;  
 $singa = new Singa;  
 function perintah_gerak_cepat($obyek) {  
      return $obyek->gerak_cepat();  
 }  
 echo perintah_gerak_cepat($burung);  
 echo "<br/>";  
 echo perintah_gerak_cepat($singa);  
 ?>  
Referensi :

2 komentar:

  1. Terimakasih ilmunya gan.. ini sangat membantu saya dalam memahami materi php yang berorientasi pada object.

    ReplyDelete