Pemrograman Berorientasi Obyek dengan PHP

Mengenal Obyek dan Class

Pada pemrograman berorientasi object, yang disebut object adalah instan dari sebuah class. Class terdiri dari variabel dan fungsi yang dibungkus dengan mekanisme pembungkusan kelas. Secara gampangnya class merupakan spesifikasi umum dan struktur dari suatu object sedangkan object merupakan individu-individu yang memiliki spesifikasi sesuai dengan classnya. Dua object yang berasal dari class yang sama dapat memiliki isi variable yang berbeda namun strukturnya pasti sama.

Di bawah ini adalah tutorial selengkapnya mengenai PBO di dalam PHP, bagi kalian yang ingin menikmati dan mempelajarinya di rumah, silahkan kalian bisa download tutorial PHP Versi Indonesia edisi 2 dalam bentuk .rar 🙂

Sintak dari sebuah Class :

class nama_class {
   var $nama_variable;
   fungsi - fungsi;
}

Contoh :

class mahasiswa {
   var $nim;
   var $nama;
   function cetakData(){
      echo "NIM : $this->nim";
      echo "Nama : $this->nama";
   }
}

Penjelasan Class ini kita beri nama mahasiswa. Class mahasiswa memiliki 2 variabel yaitu $nim dan $nama. Selain itu class mahasiswa juga memiliki sebuah fungsi yaitu cetakData(). Variable $this pada fungsi cetakData() mengacu pada object tersebut. Untuk menggunakan class ini, kita gunakan keyword new didepan nama class sehingga akan terbentuk sebuah object berdasarkan class ini. Contohnya :

$ketua = new mahasiswa();
$wakil = new mahasiswa();
$ketua->nim = "22992307";
$ketua->nama = "Aras";
$wakil->nim = "22992000";
$wakil->nama = "Yusuf";

Object $ketua dan $wakil merupakan object dari class mahasiswa. Yang menarik di sini bahwa object $ketua dan $wakil memiliki $nim dan $nama yang berbeda namun tetap memiliki struktur yang sama.
Untuk mengakses isi dari suatu object adalah dengan menggunakan tanda ->


Penurunan Class

Sekali lagi dalam PBO ada yang disebut dengan penurunan class. Maksudnya kita bisa membuat suatu class baru dari class yang sudah ada, mekanisme ini disebut penurunan kelas. Pada php , untuk menurunkan kelas maka digunakan kata kunci extends.

Sintak :

class nama_kelas_baru extends nama_kelas_yang_diturunkan{
    $var nama_variable; // tambahan variable
    function nama_fungsi(); // fungsi yang ditambahkan
}

Penjelasan Class baru yang dihasilkan selain memiliki variable maupun fungsi seperti pada class utamanya, juga bisa memiliki variable dan fungsi baru. Jika seandainya pada class baru dideklarasikan fungsi baru yang namanya sama dengan nama fungsi pada class utamanya maka fungsi yang digunakan adalah fungsi yang terletak pada class baru. Contoh :

class orang{
   var $nama;
   var $alamat;
   function cetakData(){
      echo "nama : $this->nama";
      echo "alamat : $this->alamat";
   }
}

class mahasiswa extends orang{
   var $nim;
   var $email;
   function cetakData(){
      echo "Nim : $this->nim\n";
      echo "nama : $this->nama\n";
      echo "alamat : $this->alamat\n";
      echo "email : $this->email\n";
   }
}

Penjelasan Class mahasiswa merupakan kelas turunan dari class orang. Dari class orang, class mahasiswa memiliki variable $nama dan $alamat , dan juga fungsi cetakData(). Selain itu class mahasiswa juga memiliki variable tambahan yaitu $nim dan $email. Sedangkan deklarasi fungsi cetakData() menyebabkan fungsi cetakData() pada class utama tidak digunakan jika fungsi dipanggil dari class mahasiswa.

Constructor

Constructor merupakan sebuah fungsi yang digunakan untuk menginisialisasikan suatu object baru. Ada aturan yang berbeda dalam PHP 3 dan PHP 4, dimana pada PHP 3, sebuah fungsi constructor merupakan fungsi yang memiliki nama yang sama dengan nama class tersebut dan bisa berasal dari class induknya. Sedangkan pada PHP 4 definisi sama namun ada tambahan jika fungsi constructor yang berasal dari class induknya maka namanya harus sama dengan nama class induknya.Untuk lebih jelasnya lihat contoh berikut :

class A {
   function A() { } ; // fungsi constructor
   function B() { } ; // fungsi biasa
}

class B extends A{
   function C() ; // fungsi biasa
}

Penjelasan Pada PHP 3 class B akan menggunakan fungsi B() sebagai constructornya padahal fungsi B() hanya merupakan fungsi biasa. Ini dikarenakan PHP 3 menganggap fungsi constructor merupakan fungsi bernama sama dengan classnya. Lain halnya PHP 4, class B akan menggunakan fungsi constructor A() karena fungsi ini mengacu pada fungsi utamanya, yaitu class A bukan class B.

Catatan Pada PHP 3 maupun PHP 4 tidak ada fungsi destructor. Fungsi destructor merupakan fungsi yang dipanggil secara otomatis ketika object itu dihapus dari memori. Untuk mendapatkan efek dari fungsi destructor maka php menyediakan fungsi register_shutdown() dan unset().

Parent

Keyword parent digunakan untuk mengacu pada class utama. Kata kunci ini biasanya digunakan agar dapat mengakses fungsi maupun variable class utama dari kelas turunan.

class A {
    fungsi C() {} ;
}

class B extends A {
    fungsi B() {
        echo "Test" ;
        parent::C();
    }
}

Penjelasan Untuk menjalankan fungsi B() dari class B maka kata kunci parent digunakan untuk mengacu pada class utama dari class B. Sehingga class utama akan menjalankan fungsi B() nya.

7 thoughts on “Pemrograman Berorientasi Obyek dengan PHP

Leave a Reply