Rumahweb Journal
banner - belajar php dasar bagian 13

Belajar PHP Dasar Bagian 13 – Mengenal Inheritance Pada OOP

Pada sesi belajar PHP dasar bagian 12, kita telah membahas sedikit tentang pewarisan sifat (inheritance), terutama terkait dengan enkapsulasi protected, yang memungkinkan akses oleh kelas utama dan turunannya. Dalam sesi belajar PHP dasar bagian 13 ini kita akan melanjutkannya dengan membahas tentang konsep inheritance dalam OOP PHP.

Apa itu inheritance (pewarisan sifat)?

Inheritance atau pewarisan sifat, adalah sebuah konsep dalam pemrograman berorientasi object (OOP), termasuk dapat diterapkan pada PHP. Inheritance memungkinkan sebuah kelas (yang disebut kelas anak atau subclass/inherit) untuk mewarisi properties dan methods dari kelas lain (yang disebut kelas induk atau superclass).

Melalui Inheritance, kita dapat membuat sebuah class yang mengambil sebuah sifat dari class lain, yang berfungsi untuk untuk mempermudah penyusunan kode dan menghindari duplikasi.

Implementasi Inheritance

Pada dasarnya, semua class yang dideklarasikan bisa dijadikan kelas induk/superclass. Dan class anak yang diwarisi atau subclass/inherit dideklarasikan dengan menambahkan “extends nama_class” setelah melakukan deklarasi class.

Contoh:

<?php 
class mobil{
	function dataMobil(){
		echo "ini adalah mobil BMW<br>";
	}
}
class warnaMobil extends mobil { //class turunan dari mobil
	function warnanya(){
		$this->dataMobil(); //mewarisi dari sifat class utama mobil
		echo "Warna Mobil adalah Hitam";
	}
}
	$warna = new warnaMobil();
	echo $warna->warnanya();
?>

Dengan begitu function / method di dalam class utama/class induk dapat dipanggil dari class yang mewarisi sifat dari induknya tersebut, yaitu class warnaMobil, dan dengan memanggil funcsion di dalam class warnaMobil, yang mana function tersebut telah memanggil function induknya, maka function induk juga akan ikut terpanggil.

Promo Hosting Murah Rumahweb

Hasil:

hasil akses inheritance / pewarisan pada oop php

Override property atau method dari class induk/pewaris

Karena method dari induk/pewaris dapat dipanggil langsung di class turunan/yang diwarisi, jika memerlukan function yang sama tetapi ada sedikit perubahan data maka dapat dideklarasi ulang dan menambahkan perubahan sesuai kebutuhan yang diperlukan. 

Contoh :

<?php 
	class mobil{		
	function dataMobil(){
		echo "ini adalah mobil BMW<br>";
	}
}
class warnaMobil extends mobil { //class turunan dari mobil
	function dataMobil(){ //method yang di override
		echo "ini adalah mobil BMW, bukan Audi<br>";
	}
	function warnanya(){
		$this->dataMobil(); //mewarisi dari sifat class utama mobil
		echo "Warna Mobil adalah Hitam";
	}
}
	$warna = new warnaMobil();
	echo $warna->warnanya();
?>

Hasil :

Override property - belajar php dasar inheritance

Cosntructor dalam inheritance

Class anak yang diwarisi (subclass) juga mewarisi konstruktor (__construct) dari pewarisnya, namu jika kelas anak ingin memiliki konstruktor sendiri, php tidak menjalankan konstruktor kelas induk/pewaris.

Contoh :

<?php 
	class mobil{	
	public function __construct() {
		echo "Mobil dibuat<br>";
	}	
	function dataMobil(){
		echo "ini adalah mobil BMW<br>";
	}
}
class warnaMobil extends mobil { //class turunan dari mobil
	function dataMobil(){
		echo "ini adalah mobil BMW, bukan Audi<br>";
	}
	function warnanya(){
		$this->dataMobil(); //mewarisi dari sifat class utama mobil
		echo "Warna Mobil adalah Hitam";
	}
}
	$warna = new warnaMobil();
	echo $warna->warnanya();
?>

Hasil :

konstruktor (construct) dalam inheritance pada OOP php

Dari hasil tersebut diketahui, __construct dari class induknya akan terpanggil, karena class anak dipanggil dan mewarisi class induk.

Jika class anak mendeklarasikan __construct maka konstruktor dari class anak yang terpanggil, Contoh :

<?php 
class mobil{	
	public function __construct() {
		echo "Mobil dibuat<br>";
	}	
	function dataMobil(){
		echo "ini adalah mobil BMW<br>";
	}
}
class warnaMobil extends mobil { //class turunan dari mobil
	function dataMobil(){
		echo "ini adalah mobil BMW, bukan Audi<br>";
	}
	function warnanya(){
		$this->dataMobil(); //mewarisi dari sifat class utama mobil
		echo "Warna Mobil adalah Hitam";
	}
	public function __construct() {
		echo "Mobil dibuat dari dulu<br>";
	}
}
	$warna = new warnaMobil();
	echo $warna->warnanya();
?>

Hasil :

override atau menimpa konstruktor dari induk pewaris dalam inheritance

Jika konstruktor dari class induk ingin terpanggil juga, maka perlu menambahkan kode parent::__construct(); dari konstruktor class anak yang diwarisi, contoh :

<?php 
class mobil{	
	public function __construct() {
		echo "Mobil dibuat<br>";
	}		
	function dataMobil(){
		echo "ini adalah mobil BMW<br>";
	}
}
class warnaMobil extends mobil { //class turunan dari mobil
	function dataMobil(){
		echo "ini adalah mobil BMW, bukan Audi<br>";
		}
	function warnanya(){
		$this->dataMobil(); //mewarisi dari sifat class utama mobil
		echo "Warna Mobil adalah Hitam";
	}
	public function __construct() {
		parent::__construct(); 
		echo "Mobil dibuat dari dulu<br>";
	}
}
$warna = new warnaMobil();
echo $warna->warnanya();
?>

Hasil :

membuat construct pada inheritance jika construct dari induk pewaris

Kesimpulan

Inheritance memungkinkan perubahan atau bahkan menimpa data dari kelas utama. Dengan inheritance, setiap halaman memiliki kebutuhan yang berbeda tetapi masih menggunakan kelas utama, kita dapat membuat kelas turunan untuk masing-masing halaman dan hanya memanggil kelas turunannya. Hal ini membantu menghindari duplikasi kode serta membuatnya lebih terstruktur dan mudah dikelola.

Demikian series belajar php dasar untuk pemula bagian 13 mengenai Inheritance dalam OOP PHP. Nantikan seri belajar php dasar selanjutnya dari Rumahweb Indonesia. Semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Cloud Hosting Terbaik Rumahweb

Edi Purnomo

Sedang baik-baik saja. Bagian dari Technical Support Rumahweb juga. Nulis Artikel juga.

banner pop up - Pindah Hosting ke Rumahweb