Kursus Membuat Web

iklan

Inheritance / Pewarisan Property Method pada (OOP) dengan PHP (PHP versi 5.6.x dan 7.0.x)

Dalam OOP (object Oriented Programming) di PHP ketika Anda melakukan inheritance atau dalam bahasa kitanya pewarisan suatu class maka, property dan method pada class parent akan diwariskan pada class turunannya (class child).

Parent Class akan mewariskan property dan method pada Child Class

Buatlah kode seperti dibawah ini untuk memahami maksud judul diatas.

<?php
	class orang
	{	
		var $nama_depan = "Muhammad";
		var $nama_belakang = "Falah";
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
	}
	
	class guru extends orang
	{
		
	}
	
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan property method</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang  = new orang;
		$obj_guru   = new guru;
		echo $obj_orang->nama_lengkap() .'<br>';
		echo $obj_guru->nama_lengkap();
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar hasil seperti ini.

  • Muhammad Falah
  • Muhammad Falah

Kalau kita perhatikan kode diatas pada class guru tidak kita deklarasikan property dan method, tetapi karena class guru adalah class anak (child) dari class orang, maka semua property dan method pada class orang akan diwariskan ke class guru.

Function get_class_vars()

Untuk mengetahui property apa saja yang terdapat pada suatu class, maka kita bisa menggunakan function get_class_vars().

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		var $nama_depan = "Muhammad";
		var $nama_belakang = "Falah";
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
	}
	
	class guru extends orang
	{
		
	}
	
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan property method</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang  = new orang;
		$obj_guru   = new guru;
		echo "<pre>" .print_r(get_class_vars('orang'),true) ."</pre>";
		echo "<pre>" .print_r(get_class_vars('guru'),true) ."</pre>"
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

Array
(
    [nama_depan] => Muhammad
    [nama_belakang] => Falah
)

Array
(
    [nama_depan] => Muhammad
    [nama_belakang] => Falah
)

Terlihat bahwa class guru memiliki semua property yang dimiliki class orang.

Function get_class_methods()

Untuk mengetahui method apa saja yang terdapat pada suatu class, maka kita bisa menggunakan function get_class_methods().

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		var $nama_depan = "Muhammad";
		var $nama_belakang = "Falah";
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
	}
	
	class guru extends orang
	{
		
	}
	
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan property method</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang  = new orang;
		$obj_guru   = new guru;
		echo "<pre>" .print_r(get_class_methods('orang'),true) ."</pre>";
		echo "<pre>" .print_r(get_class_methods('guru'),true) ."</pre>"
		
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

Array
(
    [0] => nama_lengkap
)

Array
(
    [0] => nama_lengkap
)

Terlihat bahwa class guru memiliki semua method yang dimiliki class orang.

Overriding

Overriding adalah menulis ulang suatu property dan method yang sama pada class induk (parent) di class anak (child).

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		var $nama_depan = "Muhammad";
		var $nama_belakang = "Falah";
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
	}
	
	class guru extends orang
	{
		var $nama_depan = "Luqmanul";
		var $nama_belakang = "Hakim";
		var $bidang_studi = "Matematika";
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
	}
	
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan property method</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang  = new orang;
		$obj_guru   = new guru;
		echo "<pre>" .print_r(get_class_vars('orang'),true) ."</pre>";
		echo "<pre>" .print_r(get_class_vars('guru'),true) ."</pre>";
		echo "<pre>" .print_r(get_class_methods('orang'),true) ."</pre>";
		echo "<pre>" .print_r(get_class_methods('guru'),true) ."</pre>"
		
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

Array
(
    [nama_depan] => Muhammad
    [nama_belakang] => Falah
)

Array
(
    [nama_depan] => Luqmanul
    [nama_belakang] => Hakim
    [bidang_studi] => Matematika
)

Array
(
    [0] => nama_lengkap
)

Array
(
    [0] => nama_lengkap
)

Sekarang nilai property dan method pada class anak (child) sudah berbeda dari class induk (parent)nya.

Selanjutnya kita akan membahas tentang visibility access modifier dalam oop (object oriented programming).

muhammad falah

Saya Muhammad Falah, jika Anda ingin langsung belajar dengan Saya, silakan ikuti kursus membuat web yang Saya bimbing atau ikuti Saya di :

Muhammad Falah Youtube Channel Muhammad Falah LinkedIn Muhammad Falah Google Plus Muhammad Falah Twitter Muhammad Falah Facebook

copy right © 2015