Kursus Membuat Web

iklan

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

Dalam OOP (object Oriented Programming) di PHP ada yang disebut dengan inheritance atau dalam bahasa kitanya pewarisan.

Parent Class dan Child Class

Istilah parent class diberikan pada class yang menjadi induk dan istilah child class diberikan pada class yang menjadi anak dari class induk.

biar mudah memahaminya saya buatkan kode seperti ini !

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
?>

Dari kode diatas terlihat bahwa class guru adalah class anak (child) dari class orang (parent class)

Untuk menjadikan class guru menjadi class anak (child) dari class orang digunakan keyword "extends".

Class guru yang menjadi class anak (child) bisa juga menjadi class induk untuk class lain, misalnya seperti ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>

Pada contoh diatas class guru_bidang_studi adalah anak dari class guru, sedangkan class guru adalah class anak dari class orang.

Function get_parent_class()

Untuk mengetahui apakah sebuah class memiliki parent, maka kita bisa menggunakan function get_parent_class().

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		echo var_export(get_parent_class('orang'),true) ."<br>";
		echo var_export(get_parent_class('guru'),true) ."<br>";
		echo var_export(get_parent_class('guru_bidang_studi'),true)."<br>";
	?>
	</body>
</html>

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

  • false
  • 'orang'
  • 'guru'

untuk kode echo var_export(get_parent_class('orang'),true) nilai yang muncul adalah false, karena class orang tidak memiliki parent class.

untuk kode echo var_export(get_parent_class('guru'),true) nilai yang muncul adalah 'orang', karena class guru adalah anak (child) dari class orang.

untuk kode echo var_export(get_parent_class('guru_bidang_studi'),true) nilai yang muncul adalah 'guru', karena class guru_bidang_studi adalah anak (child) dari class guru.

Kita juga bisa mengecek parent class melalui object yang menginstance suatu class.

Buatlah kode seperti dibawah ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang        = new orang;
		$obj_guru         = new guru;
		$obj_bidang_studi = new guru_bidang_studi;
		echo var_export(get_parent_class($obj_orang),true) ."<br>";
		echo var_export(get_parent_class($obj_guru),true) ."<br>";
		echo var_export(get_parent_class($obj_bidang_studi),true)."<br>";
	?>
	</body>
</html>

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

  • false
  • 'orang'
  • 'guru'

Sama dengan yang diatas hasilnya cuma yang dicek disini adalah objectnya yang menginstance suatu class.

Function is_subclass_of()

Untuk mengetahui apakah sebuah class memiliki parent, maka kita bisa menggunakan function is_subclass_of().

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		echo (is_subclass_of('guru','orang')?'true':'false') .'<br>';
		echo (is_subclass_of('orang','guru')?'true':'false') .'<br>';
		echo (is_subclass_of('guru_bidang_studi','guru')?'true':'false') .'<br>';
		echo (is_subclass_of('guru','guru_bidang_studi')?'true':'false') .'<br>';
	?>
	</body>
</html>

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

  • true
  • false
  • true
  • false

untuk kode echo (is_subclass_of('guru','orang')?'true':'false') nilai yang muncul adalah true, karena class guru adalah anak (child) dari class orang.

untuk kode echo (is_subclass_of('orang','guru')?'true':'false') nilai yang muncul adalah false, karena class orang bukan class anak (child) dari class guru.

untuk kode echo (is_subclass_of('guru_bidang_studi','guru')?'true':'false') nilai yang muncul adalah true, karena class guru_bidang_studi adalah anak (child) dari class guru.

untuk kode echo (is_subclass_of('guru','guru_bidang_studi')?'true':'false') nilai yang muncul adalah false, karena class guru bukan class anak (child) dari class guru_bidang_studi.

Kita juga bisa mengecek parent class melalui object yang menginstance suatu class.

Buatlah kode seperti dibawah ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		
		$obj_orang        = new orang;
		$obj_guru         = new guru;
		$obj_guru_bidang_studi = new guru_bidang_studi;
		
		echo (is_subclass_of($obj_guru,'orang')?'true':'false') .'<br>';
		echo (is_subclass_of($obj_orang,'guru')?'true':'false') .'<br>';
		echo (is_subclass_of($obj_guru_bidang_studi,'guru')?'true':'false') .'<br>';
		echo (is_subclass_of($obj_guru,'guru_bidang_studi')?'true':'false') .'<br>';
		
	?>
	</body>
</html>

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

  • true
  • false
  • true
  • false

Sama dengan yang diatas hasilnya cuma yang dicek disini adalah objectnya yang menginstance suatu class.

Function instanceof()

Untuk mengetahui apakah sebuah class menginstance suatu class, maka kita bisa menggunakan function instanceof().

Mari kita buat kode seperti dibawah ini :

<?php
	class orang
	{	
		
	}
	
	class guru extends orang
	{
		
	}
	
	class guru_bidang_studi extends guru
	{
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>inheritance / pewarisan</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$obj_orang        = new orang;
		$obj_guru         = new guru;
		$obj_guru_bidang_studi = new guru_bidang_studi;
		echo ($obj_orang instanceof orang ?'true':'false') .'<br>';
		echo ($obj_guru instanceof orang ?'true':'false') .'<br>';
		echo ($obj_guru_bidang_studi instanceof guru ?'true':'false') .'<br>';
		echo ($obj_orang instanceof guru ?'true':'false') .'<br>';
	?>
	</body>
</html>

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

  • true
  • true
  • true
  • false

untuk kode echo ($obj_orang instanceof orang ?'true':'false') nilai yang muncul adalah true, karena object $obj_orang menginstance class orang.

untuk kode echo ($obj_guru instanceof orang ?'true':'false') nilai yang muncul adalah true, karena object $obj_guru menginstance class guru dan class guru adalah anak (child) dari class orang.

untuk kode echo ($obj_guru_bidang_studi instanceof guru ?'true':'false') nilai yang muncul adalah true, karena object $obj_guru_bidang_studi menginstance class guru_bidang_studi dan class guru_bidang_studi adalah anak (child) dari class guru.

untuk kode echo ($obj_orang instanceof guru ?'true':'false') nilai yang muncul adalah false, karena object $obj_orang tidak menginstance class guru.

Selanjutnya kita akan membahas tentang inheritance (pewarisan) properti dan method 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