Tuesday, December 9, 2014

Tutorial PHP OOP Part 24 : Menjalankan Method Chaining

Dalam PHP OOP kita bisa menjalankan beberapa method secara berurutan dalam satu perintah. Fitur ini dinamakan Method Chaining atau Rangkaian Method. Dengan fitur ini kita bisa membuat suatu urutan proses menjadi lebih nyata melalui urutan proses yang tertata pada rangkaian method. Selain itu penulisan kode program juga lebih simpel dan jelas.

Kita bisa menjalankan method chaining pada object dengan cara menghubungkan antar method menggunakan tanda "->". Namun ada syarat yang harus dipenuhi agar sebuah method biosa dipasangkan dalam rangkaian method chaining, yaitu yaita harus meletakkan keyword return $this dibagian paling bawah method, jika tidak akan menghasilkan error.

Perhatikan contoh penggunaan method chaining berikut ini :
 <?php    
     
 class Pekerja    
 {    
   protected $tenaga=2000;    
   public $nama;  
     
   public function __construct($x)  
   {  
           $this->nama = $x;  
           echo "Tenaga ".$x." sekarang = ".$this->tenaga."<br/>";  
      }  
           
      public function Bekerja()  
      {  
         $this->tenaga -= 250;  
         echo $this->nama . " sedang bekerja. Tenaga sekarang: " . $this->tenaga . "<br/>";  
         return $this;  
      }  
         
      public function Istirahat()  
      {  
         $this->tenaga += 100;  
         echo $this->nama . " sedang beristirahat. Tenaga Sekarang: " . $this->tenaga . "<br/>";  
         return $this;  
      }  
 }    
   
 $bejo = new Pekerja( 'Bejo' );  
 $bejo->Bekerja()->Istirahat()->Bekerja();  //method chaining
     
 ?>    
Jika dijalankan, maka program diats akan menghasilkan :
Tenaga Bejo sekarang = 2000
Bejo sedang bekerja. Tenaga sekarang: 1750
Bejo sedang beristirahat. Tenaga Sekarang: 1850
Bejo sedang bekerja. Tenaga sekarang: 1600

Penjelasan program :

Pada class Pekerja kita mempunyai method Bekerja() dan Istirahat(). Setiap bekerja method Bekerja() akan mengurangi tenaga sebesar 250 dan setiap istirahat, tenaga akan bertambah sebesar 100. Fungsi method chaining ditunjukkan pada perintah :

           $bejo->Bekerja()->Istirahat()->Bekerja(); 

Artinya kita menjalankan method Bekerja() dan method Istirahat() secara berantai dan dijalankan sekaligus pada satu perintah.

Note :
Yang perlu diperhatikan adalah penggunaan perintah return $this pada akhir method Bekerja() dan method Istirahat(). Ini yang memungkinkan sebuah method dipasangkan secara berantai.

Jika perintah return $this kita hilangkan akan muncul error berikut ini :

          Fatal error: Call to a member function Istirahat() on a non-object

Hal ini terjadi karena method Bekerja() tidak mengembalikan object yang bisa menjalankan method berikutnya.

Referensi :

0 komentar

Post a Comment