INHERITANCE / PEWARISAN

INHERITANCE / PEWARISAN

 - Komapen.com  -

If you want something said, ask a man; if you want something done, ask a woman

-Margaret Thatcher


 INHERITANCE / PEWARISAN 

Inheritance adalah teknik menghubungkan class secara hierarki antara child class denngan  parent class, dimana child class akan mewarisi dari class parentnya. Analaoginya kita sebagai anak dari kedua orang tua di anggap sebagai child, kita mewarisi sifat  dan karakter orang tua kita. Dan yang dapat di lakukan oleh kita yaitu mengembangkannya. 

Dengan menggunakan konsep pewarisan di PHP dapat mendapatkan data antar class, baik di  property maupun data yang ada di dalam method yang visible. 

Cara Menuliskan Inheritance 

Sebelum membuat class turunannya harus mempunya class utama / parent, kemudian class  turunannya / child menggunakan keyword “extends” untuk mewarisi dari class utamanya /  parent. 

class A { 

class B extends A{ 

contoh program penggunaan inheritance PHP: 

<?php 

// buat class induk: komputer 

class komputer { 

  

 public $merk; 

 public $processor; 

 public $memory; 

 

 public function beli_komputer() { 

 return "Beli komputer baru"; 

 } 

  

// turunkan class komputer ke laptop 

class laptop extends komputer { 

  

 public function lihat_spec() { 

 return "merk: $this->merk, processor: $this->processor,   memory: $this->memory"; 

 } 

  

// buat objek dari class laptop (instansiasi) 

$laptop_baru = new laptop(); 

  

// isi property objek 

$laptop_baru->merk = "acer"; 

$laptop_baru->processor ="intel core i5"; 

$laptop_baru->memory = "2 GB"; 

  

//panggil method objek 

echo $laptop_baru->beli_komputer(); 

echo "<br />"; 

echo $laptop_baru->lihat_spec(); 

?>

Dalam contoh kode ini terdapat class komputer dengan beberapa property dan sebuah method.  Semua property milik class komputer masih belum berisi nilai apa-apa. 

Di bawah class komputer, saya membuat class laptop extends class komputer. Disini terjadi  penurunan class komputer kepada class laptop. Hasilnya, di dalam class laptop kita bisa  mengakses seluruh property dan method apapun milik class komputer selama memiliki hak akses  public atau protected. 

Untuk membuktikan hal tersebut, saya membuat objek $laptop_baru dari class laptop.  Perhatikan bahwa kita bisa mengakses property $merk, $processor, dan$memory yang  semuanya adalah milik class komputer, bukan class laptop. 

Method beli_komputer() juga sukses diakses dari objek $laptop baru. Inilah yang dimaksud  dengan inheritance/penurunan class dalam OOP. 

PHP tidak membatasi berapa banyak penurunan objek yang bisa dilakukan. Dalam contoh berikut  saya membuat 3 buah class yang saling diturunkan: 

<?php 

// buat class komputer 

class komputer { 

 protected function beli_komputer() { 

 return "Beli komputer baru"; 

 } 

  

// turunkan class komputer ke laptop 

class laptop extends komputer { 

 protected function beli_laptop() { 

 return "Beli laptop baru";

 } 

  

// turunkan class laptop ke chromebook 

class chromebook extends laptop { 

 protected function beli_chromebook() { 

 return "Beli chromebook baru"; 

 } 

  

 public function beli_semua(){ 

 $a = $this->beli_komputer(); 

 $b = $this->beli_laptop();  

 $c = $this->beli_chromebook(); 

 return "$a <br /> $b <br /> $c"; 

 } 

  

// buat objek dari class laptop (instansiasi) 

$gadget_baru = new chromebook(); 

  

//panggil method objek 

echo $gadget_baru->beli_semua(); 

  

// $gadget_baru->beli_komputer(); 

// Fatal error: Call to protected method komputer::beli_komputer() ?>

Di awal kode program kita membuat class komputer yang diturunkan kepada class laptop. Class  laptop ini kemudian diturunkan lagi kepada class chromebook. Dari dalam class chromebook ini  di panggil method-model milik class diatasnya. 

Jika anda perhatikan, setiap method selain method beli_semua(), juga menggunakan hak akses  protected. Hak akses protected ini menghalangi kode program lain untuk mengaksesnya, selain  class turunan. 

Selesai✨


CONTRUCTOR, DESTRUCTOR

CONTRUCTOR, DESTRUCTOR

 - Komapen.com  - 

No one can make you feel inferior without your consent. 


 CONTRUCTOR & DESTRUCTOR 

CONTRUCTOR 

Constructor adalah method khusus yang akan dijalankan secara otomatis pada saat sebuah objek  dibuat (instansiasi), yakni ketika perintah “new” dijalankan. 

Constructor biasa digunakan untuk membuat proses awal dalam mempersiapkan objek, seperti  memberi nilai awal kepada property, memanggil method internal dan beberapa proses lain yang  digunakan untuk mempersiapkan objek. 

Cara Menuliskan Contructor 

Format penulisan constructor pada prefix / awalan nama method menggunakan tanda  underscore dua kali(__). Contohnya : 

public function __construct(){ 

 // isinya 

Kita mulai dari contoh serderhana, silahkan buat sebuah class dengan nama motor dan nama file  motor.php. 

<?php 

class Motor 

 function __construct() 

 { 

 echo "<h1>Halo Manusia Bumi, ini Berasal Dari Constructor</h1>"; 

 } 

$motor1 = new Motor();

Hasilnya: 

Halo Manusia Bumi, Ini Berasal Dari Constructor

Perhatikan kode diatas, di dalam method constructor terdapat fungsi dimana untuk mencetak  dengan perintah echo pada sebuah string. Maka ketika class di intansitasi oleh object maka  otomatis akan memanggil method constructor yang di tandai dengan keyword __construct(). 

Contoh Constructor: 

Untuk memberikan nilai terhadap method constructor dapat di isi saat pertama kali kita  mengintansiasi sebuah class. 

Dari sini kita paham bahwa kita dapat melakukan pengisian nilai terhadap suatu property yang  telah di definisikan di awal. 

Pengiriman nilai ke dalam constructor di tandai dengan sebuah paramter di paramter  constructor. 

<?php 

class Motor 

 public $merkMotor; 

 public function __construct($merk) 

 { 

 $this->merkMotor = $merk; 

 } 

 public function cetakMerk() 

 { 

 return $this->merkMotor; 

 } 

$motor1 = new Motor("Yamaha NMax"); 

echo $motor1->cetakMerk(); 

Hasilnya: 

Yamaha NMax

Perhatikan kode di atas, ketika pertama kali meninstansiasi sebauh class harus memberikan  sebuah nilai. Contoh di atas nilai yang kirim dari object yaitu “Satria FU” dan di terima di  constructor dengan variable $merk. 

Perlu di ketahui variable $merk ini bukan sebuah property melainkan hanya paramter untuk  menerima data saja. 

Setelah itu di dalam method __construct() memberikan nilai terhadap property $merkMotor dari  parameter yang di kirim. 

DESTRUCTOR 

Destructor adalah method khusus yang dijalankan secara otomatis pada saat sebuah objek  dihapus. Di dalam PHP, seluruh objek sebanarnya sudah otomatis dihapus ketika halaman PHP  selesai diproses. Tetapi kita juga dapat menghapus objek secara manual. 

Destructor biasanya dipakai untuk membersihkan beberapa variabel, atau menjalankan proses  tertentu sebelum objek dihapus. 

Cara Menuliskan Destructor 

Cara membuat destructor di PHP cukup mudah, hanya dengan membuat method __destruct() dan di ikuti proses di dalam method tersebut. 

public function __construct(){ 

 // isinya 

Kita mulai dari contoh serderhana, silahkan buat sebuah class dengan nama motor dan nama file  motor2.php 

<?php 

class Motor 

 public function __destruct() 

 { 

 echo "Belajar Motor Online Telah Selesai..."; 

 } 

$motor1 = new Motor(); 

Hasilnya: 

Belajar Motor Online Telah Selesai

Kode di atas tidak terdapat proses lain sebelum desctuctor di jalankan maka akan otomatis  memanggil method __desctruct(). 

Contoh Destructor: 

Silahkan kalian tuliskan kode PHP dibawah ini: 

<?php 

class Motor 

 public function mulai() 

 { 

 echo "Mulai..."; 

 } 

 public function __destruct() 

 { 

 echo "Selesai..."; 

 } 

$motor1 = new Motor(); 

$motor1->mulai(); 

Hasilnya: 

Mulai…Selesai

Perhatikan hasil di atas, string teks mulai yang terdapat pada method mulai() akan tercetak  terlebih dahulu sebelum proses pada method __destruct() di jalankan. 

Latihan Constructor dan Destructor 

Latihan1.php 

<?php 

class Motor 

 public $merkMotor, $ownerMotor; 

 public function __construct( 

 $merk = 'Yamaha NMax', 

 $owner = 'Dody Prabowo' 

 ) { 

 $this->merkMotor = $merk; 

 $this->ownerMotor = $owner; 

 } 

 public function getData(): array 

 { 

 $data = [ 

 'owner' => $this->merkMotor, 

 'merk' => $this->ownerMotor 

 ]; 

 return $data; 

 } 

 public function __destruct() 

 { 

 echo "Selesai..."; 

 } 

$motor1 = new Motor(); 

echo $motor1->getData()['owner']; 

echo "<br>" . $motor1->getData()['merk'] . "<br>"; 

latihan2.php 

<?php 

// buat class laptop 

class laptop { 

  

 private $pemilik = "Andi"; 

 private $merk = "Lenovo"; 

  

 public function __construct(){ 

 echo "Ini berasal dari Constructor Laptop"; 

 } 

  

 public function hidupkan_laptop(){ 

 return "Hidupkan Laptop $this->merk punya $this->pemilik";

  

 } 

 public function __destruct(){ 

 echo "Ini berasal dari Destructor Laptop"; 

 } 

  

// buat objek dari class laptop (instansiasi) 

$laptop_andi= new laptop(); 

  

echo "<br />"; 

echo $laptop_andi->hidupkan_laptop(); 

echo "<br />"; 

?> 

Latihan3.php 

<?php 

// buat class laptop 

class laptop { 

  

 private $pemilik = "Andi"; 

 private $merk = "Lenovo"; 

  

 public function __construct(){ 

 echo "Ini berasal dari Constructor Laptop"; 

 } 

  

 public function hidupkan_laptop(){ 

 return "Hidupkan Laptop $this->merk punya $this->pemilik";

  

 } 

 public function __destruct(){ 

 echo "Ini berasal dari Destructor Laptop";  } 

  

// buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); 

  

echo "<br />"; 

echo $laptop_andi->hidupkan_laptop(); echo "<br />"; 

  

// hapus objek $laptop_andi 

unset($laptop_andi); 

  

echo "<br />"; 

echo "Objek Telah Dihancurkan"; 

?> 

Latihan4.php 

<?php 

// buat class laptop 

class laptop { 

  

 private $pemilik; 

 private $merk; 

 

 // constructor sebagai pembuat nilai awal 

 public function __construct($pemilik, $merk) { 

 $this->pemilik = $pemilik; 

 $this->merk = $merk; 

 } 

  

 public function hidupkan_laptop() { 

 return "Hidupkan Laptop $this->merk punya $this->pemilik"; 

 } 

  

// buat objek dari class laptop (instansiasi) 

$laptop_andi= new laptop("Andi", "Lenovo"); 

  

echo $laptop_andi->hidupkan_laptop(); 

echo "<br />"; 

  

$laptop_anto= new laptop("Anto", "Acer"); 

  

echo $laptop_anto->hidupkan_laptop(); 

?> 

Selesai✨