Inheritance atau Pewarisan adalah konsep OOP dimana sebuah class dapat menurunkan property dan method yang dimilikinya kepada class lain. Konsep inheritance dipakai untuk memanfaatkan fitur code reuse atau
kode yang yang dapat digunakan kembali, yakni menghindari terjadinya duplikasi kode program. Baca Juga : Membuat Class dengan OOP PHP inheritance atau pewarisan dalam OOP = Ketika sebuah kelas diturunkan dari kelas lain. Kelas anak akan mewarisi semua properti dan metode publik dan yang dilindungi dari kelas
induk. Selain itu, ia dapat memiliki properti dan metodenya sendiri. Kelas yang diwarisi didefinisikan dengan menggunakan kata kunci extends. Inheritance atau Pewarisan atau bisa disebut juga Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan
fitur ‘code reuse’ untuk menghindari duplikasi kode program. Class Buku dapat diturunkan menjadi sebuah Class baru. Class baru bernama Komik dan pada kelas Komik kita ingin semua Variable dan Method yang ada didalam Class Buku ada didalam kelas Komik. Dalam Object Oriented Programming kita tidak perlu menulis ulang Code Variable dan Method yang ada didalam Class buku kedalam Class Komik.
Class Komik secara otomatis memiliki variable dan method yang ada didalam Class Buku.
Pada Class Komik kita bisa membuat variable dan method yang baru yaitu variable penerbit dan method set/get penerbit. Pada kasus diatas ini artinya Class Buku menjadi
Parent Class dan Komik menjadi Child Class. Proses ini disebut dengan Inheritance.
Keyword extends pada Class Komik artinya class yang kita buat ini bisa mengkloning isi code kelas lainya tanpa harus menulis ulang. Inilah yang menjadi keunggulan OOP tehnik ini disebut dengan code reusable.
Class Komik extends Buku{ var $penerbit; Function setPenerbit($parameter){ $this->penerbit = $parameter; } Function getPenerbit(){ echo $this->penerbit. "<br />"; } }Jadi secara teoritis, Inheritance merupakan sebuah penurunan sifat dan secara teknis dalam pemrograman adalah penurunan struktur data agar Class turunannya mempunyai variable dan method yang sama.
Lihat juga video berikut :
Contoh penerapan function construc ke dalam class turunan.
Class Komik extends Buku { var $penerbit; Function setPenerbit($parameter) { $this->penerbit = $parameter; } Function getPenerbit(){ echo $this->penerbit. "<br />"; } /* Fungsi Spesial Construct didalam kelas Komik */ function __construct( $parameter1, $parameter2, $parameter3 ) { $this->judul = $parameter1; $this->harga = $parameter2; $this->penerbit = $parameter3; } }Untuk menggunakan class Komik kita bisa membuat sebuah object menggunakan Class Komik Code dibawah ini artinya kita membuat sebuah object bernama komikanime menggunakan Class komik dan langsung mengisikan 3 buah nilai kedalam object tersebut.
$komikanime= new Komik( “Komik one piece”, 85000, “Japan” );
Untuk memanggil data penerbitnya method yang ada didalam object komikjenaka itu sendiri bisa kita panggil dengan code dibawah sbb:
$ komikanime ->getPenerbit();
sumber : www.php.net
You are here: Home / PHP / Tutorial PHP OOP Part 6 : Mengenal Class Turunan (Inheritance)
Class turunan adalah
sebuah class yang dibuat berdasarkan sebuah class utama (class parent). Dalam pemrograman PHP berorientasi obyek cara ini disebut pewarisan sebuah class atau dalam bahasa inggis disebut dengan inheritance. Class utama sering juga disebut class induk (parent class) dan class turunan disebut dengan class anak (child class).
Dengan pewarisan class ini, class turunan dapat menggunakan semua properti dan method yang ada dalam class utama selama diset public atau protected. Teknik pewarisan class membuat pemrograman menjadi lebih ringkas.
Contoh penggunaan class turunan ini pernah ditampilkan pada tulisan sebelumnya tentang penggunaan enkapsulasi protected, dimana setting protected berarti sebuah properti bisa digunakan pada class utama dan class turunan.
Membuat Class Turunan
Untuk membuat class turunan kita menggunakan perintah yang sama dengan saat membuat class namun dibelakangnya ditambahi dengan keyword “extends” dan diikuti dengan nama class utama lalu sepasang kurung kurawal {}.
class namaClassutama {public $propertiClassutama;
public function methodClassutama() {
....
}
}
class namaClassturunan extends namaClassutama {
public function methodClassturunan() {
....
}
Kita bisa membuat lebih dari satu class turunan dari class utama, dalam hal ini memang belum ada batasan turunan dalam penggunaan class utama.
class namaClassutama {public $propertiClassutama;
public function methodClassutama() {
....
}
}
class namaClassturunan1 extends namaClassutama {
public function methodClassturunan1() {
....
}
class namaClassturunan2 extends namaClassutama {
public function methodClassturunan2() {
....
}
Sebuah class turunan juga dapat menjadi class utama bagi class turunan lagi, begitu seterusnya.
class namaClassutama {public $propertiClassutama;
public function methodClassutama() {
....
}
}
class namaClassturunan1 extends namaClassutama {
public function methodClassturunan1() {
....
}
class namaClassturunan2 extends namaClassturunan1 {
public function methodClassturunan2() {
....
}
Membuat Object dari Class Turunan
Kita juga bisa membuat obyek baru dari class turunan yang telah dibuat tadi sama dengan obyek dari class pada umumnya. Namun properti dan method yang ada pada class utama kita akses dengan object yang dibuat dari class turunan ini. Jadi tidak perlu membuat object dari dua class sekaligus.
//membuat object dari classTurunan$namaObject = new namaClassturunan;
//mengakses properti pada classUtama
$namaObject->$propertiClassutama=value;
//mengakses method pada classUtama
echo $namaObject->$methodClassutama();
Contoh penggunaan Class turunan
<?phpclass Induk {
var $panjang;
var $lebar;
function luas_persegi()
{
$hasil= $this->panjang * $this->lebar;
return $hasil;
}
}
class Anak extends Induk {
var $tinggi;
function volume_balok()
{
$hasil= $this->panjang * $this->lebar * $this->tinggi;
return $hasil;
}
}
//membuat object dari class Anak
$anak = new Anak;
//set nilai properti
$anak->panjang=8;
$anak->lebar=5;
$anak->tinggi=7;
//menampilkan hasil
echo "Ini hasil dari method class induk<br/>";
echo "Luas Persegi = ".$anak->luas_persegi()."<br/><br/>";
echo "Ini hasil dari method class anak<br/>";
echo "Volume Balok = ".$anak->volume_balok();
?>
Script diatas jika dijalankan akan menampilkan hasil berikut ini :
Ini hasil dari method class induk
Luas Persegi = 40
Ini hasil dari method class anak
Volume Balok = 280
Pada contoh terlihat bahwa object yang dibuat dari class Anak bisa mengakses properti panjang dan lebar dari class Induk. Selain itu object yang dibuat dari class Anak juga bisa mengakses method luas_persegi() yang ada pada class Induk.
Referensi :
- //php.net/manual/en/language.oop5.inheritance.php
- //blog.rosihanari.net/ebook-panduan-praktis-oop-di-php/
- //www.duniailkom.com/tutorial-belajar-oop-php-pengertian-inheritance-pewarisan/