Wednesday, November 26, 2014

Tutorial PHP OOP Part 10 : Membuat Autoloading Class


Autoloading class adalah sebuah cara untuk memanggil sebuah class pada file lain tanpa menggunakan fungsi include. Seperti telah dijelaskan sebelumnya bahwa kita sebaiknya membuat class pada file tersendiri, yang selanjutnya ini kita sebut dengan modul.

Dengan membuat class pada file terpisah, kita tidak harus mengulang menulis sebuah class yang sama, namun cukup menyertakannya saja. Nah, autoloading class ini membuat cara menyertakan class menjadi lebih ringkas tanpa harus menuliskan perintah include.

Alasan lain adalah saat ini kebanyakan developer menulis dan menyimpan class sesuai dengan definisinya masing-masing. Masalah yang kemudian terjadi adalah banyaknya include yang harus ditulis diawal sebuah file, jika hanya satu atau dua file tidak apa, lha bagaimana jika file yang diinclude berjumlah puluhan, hal ini tentu menjadi akan sangat tidak efisien.

Membuat Autoloading Class

Kita bisa membuat autoloadng class dengan function __autoload(). Tanda __ adalah underscore (_) yang ditulis dua kali seperti pada function __construct(). Fungsi ini otomatis akan memanggil class saat kita akan menggunakannya, meskipun belum didefinisikan sebelumnya.

function __autoload($class_name) {
    include $class_name . '.php';
}

Ada beberapa aturan yang memudahkan kita dalam menggunakan autoloading class, yaitu :
  1. Kita buat satu class satu file modul.
  2. Nama file modul harus sama dengan nama class, termasuk memperhatikan huruf besar dan kecilnya.
  3. File modul berada pada folder yang sama dengan file php. Jika berada pada folder lain harus sertakan path yang lengkap.
  4. fungsi __autoloading harus ada pada file php.

Contoh membuat autoloading class :

1. Buat class Rumus1 lalu simpan dengan nama Rumus2.php
 <?php  
 class Rumus1 {  
   var $panjang;   
   var $lebar;   
 
   function luas() {  
        return $this->panjang * $this->lebar;  
   }  

   function __construct($x,$y) {   
    $this->panjang = $x;   
    $this->lebar = $y;   
   }    
 }  
 ?>  
2. Buat class Rumus2 lalu simpan dengan nama Rumus2.php
 <?php  
 class Rumus2 {  
   var $diameter;   

   function luas() {  
        $r = $this->diameter /2;  
        return 3.14 * $r * $r;  
   }  

   function __construct($x) {   
    $this->diameter = $x;   
   }    
 }  
 ?>  
3. Buat file php yang menggunakan dua class tadi
 <?php  
 function __autoload($class_name) {  
   include $class_name . '.php';  
 }  

 $rumus1 = new Rumus1(5,8);  
 $rumus2 = new Rumus2(8);  

 echo "Luas Rumus1 = ".$rumus1->luas()."<br/>";  
 echo "Luas Rumus2 = ".$rumus2->luas();  
 ?>  
4. Pastikan ketiga file berada pada folder yang sama.

5. Jalankan file, jika benar akan tampil seperti ini :

Luas Rumus1 = 40
Luas Rumus2 = 50.24

Referensi :

1 komentar: