Penggunaan fungsi INHERITANCE di PHP

Hai Sipinter. Sesuai dengan judulnya kita sudah pasti pada sesi "Tutorial Pemrograman PHP" dimana kita membahas segala hal tentang membuat website dengan PHP

Masih dalam materi tentang OOP dimana kali ini kita akan membahas inheritence dan access modifier pada OOP di PHP

Agar tidak bingung dalam pembahasan kali ini, kita perlu memahami pembahasan sebelumnya tentang OOP di PHP yaitu

  1. Pelajari Konsep OOP dalam Pemrograman PHP
  2. Pembuat dan Penghancur Dalam OOP di PHP

Berikut beberapa hal yang akan kita bahas pada postingan kali ini

Seperti yang Anda lihat kita akan membahas satu per satu tentang Inheritance dan hubungannya dengan Access Modifiers

Apa itu Warisan?

Inheritance adalah konsep mewariskan atau mewariskan properti (Metode dan Properti) dari satu kelas ke kelas lainnya

Ini berarti bahwa dengan Inheritance, sebuah kelas dapat menggunakan properti dan metode dari kelas turunannya

Warisan menciptakan hierarki hubungan kelas, di mana kelas utama yang propertinya diturunkan disebut kelas induk/kelas super/kelas dasar, kemudian kelas turunan yang menerima properti dari kelas utama disebut kelas anak/subkelas

Pengurangan class akan membuat kita dapat menggunakan kembali kode yang telah kita buat (reuse code), sehingga penulisan program lebih efektif, efisien, terstruktur dan tidak menimbulkan duplikasi kode.

Cara membuat kelas turunan adalah dengan memperluasnya ke kelas induk

Contoh cara membuat kelas turunan di PHP

<?php  
	class Buku
	{

		public $buku=['matematika','bahasa','ips'];

		public function tampilkanBuku(){
			echo "<h1>Daftar Buku</h1>";
			foreach ($this->buku as $no => $data) {
				$n=$no+1;
				echo "$n. $data<br/>";
			}
		}

	}

	class PeminjamanBuku extends Buku
	{
		
		public function cariBuku($nama_buku){
			echo "<hr/>";
			//cara memanggul properti dari class induk
			if(in_array($nama_buku, $this->buku)){
				echo "buku $nama_buku ditemukan<br/>";
			}else{
				echo "Buku $nama_buku tidak ditemukan<br/>";
			}
			echo "<hr/>";
		}
	}

	$peminjam=New PeminjamanBuku();

	$peminjam->cariBuku('bahasa');

	//coba memanggil method pada class buku melalui objek yang dibuat dari class turunan
	$peminjam->tampilkanBuku();

?>

Hasilnya seperti gambar di bawah ini

Penggunaan fungsi INHERITANCE di PHP
Penggunaan fungsi INHERITANCE di PHP

Apa itu Pengubah Akses?

Pengubah Akses atau Visibilitas adalah kata kunci yang digunakan oleh kelas, metode, dan properti untuk mengatur dan menentukan hak akses

Access modifier membuat kita tidak bisa seenaknya menggunakan class, method dan property yang sudah ada sehingga keamanan akan lebih terjaga

Karena pada umumnya ada beberapa data yang bersifat rahasia dan perintah yang tidak bisa dilakukan sembarangan

Hal inilah yang membedakan method dengan fungsi atau variabel dari property yaitu adanya pengubah akses pada method dan property

Jika Anda mengatakan "tetapi mungkinkah metode dan properti tidak ada atau pengubah akses tidak diisi?"

Jenis Pengubah Akses

Berikut ini adalah beberapa jenis pengubah akses yang tersedia di PHP

  1. public = Mengatur hak akses method dan property agar dapat diakses dari mana saja, bahkan dari luar class (saat menjadi object)
  2. private = Mengatur method dan hak property agar hanya bisa diakses dari class tapi tidak bisa diakses dari class turunan dan dari object
  3. protected = Mengatur hak akses method dan property agar hanya bisa diakses di class dan turunannya tapi tidak dari object
  4. abstract = Hanya kelas dan metode yang dapat digunakan untuk membuat kelas dan metode abstrak
  5. final = Hanya kelas dan metode ini yang dapat digunakan, membuat kelas tidak dapat diturunkan dan metode tidak dapat ditimpa atau dideklarasikan ulang

Membatasi Properti dan Metode Turunan dengan Pengubah Akses

Seperti yang sudah dijelaskan di atas, ada tiga access modifier yang bisa digunakan untuk method dan property yaitu public, private dan protected

Gunakan public jika kita ingin metode dan properti dapat diakses dari kelas turunan dan dari objek

Gunakan private ketika kita hanya ingin metode dan properti hanya dapat diakses di kelas

Gunakan protected jika kita ingin metode dan properti dapat diakses melalui kelas turunan tetapi tidak dari objek

Berikut adalah contoh cara membatasi method dan properti yang bisa digunakan di kelas turunan

<?php
		Class induk
		{
			public $dataPublic="Ini data Public";
			private $dataPrivate="Ini data Private";
			protected $dataProtected="Ini data Protectted";

			public function PublicFunction(){
				echo "Ini Fungsi Public";
			}

			private function PrivateFunction(){
				echo "Ini Fungsi Private";
			}

			protected function ProtectedFunction(){
				echo "Ini Fungsi Protected";
			}

		}
		class anak extends induk
		{

			//property yang dapat diakses dari class turunan
			public function PropertyYgBisa(){
				echo "dataPublic = ".$this->dataPublic."<br/>";
				echo "dataProtected = ".$this->dataProtected."<br/>";

			}

			public function RemakeProtectedFunction(){
				//cara menggunakan method pada class induk
				$this->ProtectedFunction();
			}

		}

		$data=New anak();

		//menampilkan properti yang dapat diakses dari objek class turunan
		echo "<hr/>dataPublic = ".$data->dataPublic." <br><hr/>";
		
		//menampilkan properti yang dapat diakses dari class turunan
		$data->PropertyYgBisa();
		
		echo "<hr>";
		//menggunakan method yang dapat digunakan dari objek class turunan
		$data->PublicFunction();

		echo "<br/>";
		$data->RemakeProtectedFunction();

?>
_

Hasilnya seperti gambar di bawah ini

Penggunaan fungsi INHERITANCE di PHP
Penggunaan fungsi INHERITANCE di PHP

Cara Mengganti Metode pada Kelas Turunan

Kita dapat mengganti metode yang telah kita buat di kelas utama dengan mendeklarasikannya kembali di kelas turunan

Karena yang akan dipanggil terlebih dahulu adalah method yang ada di kelas turunan yang kita buat sebagai objek

Berikut adalah contoh cara mengganti metode yang sudah ada di kelas induk

<?php

	class Perpustakaan 
	{
		public $databuku=['Matematika','Fisika','Sejarah','Bahasa'];
		
		public function tampilBuku()
		{
			foreach ($this->databuku as $key => $value) {
				echo "$key. buku $value, ";
			}
		}
	}
	class Buku extends Perpustakaan
	{
		Public function tampilBuku()
		{
			echo "<h1>Daftar Buku di Perpustakaan</h1>";
			foreach ($this->databuku as $key => $value) {
				$n=$key+1;
				echo "$n. buku $value <br/>";
			}
		}
	}

	$buku=New Buku();
	$buku->tampilBuku();

?>

Hasilnya dapat dilihat seperti pada gambar di bawah ini Fungsi buku yang dijalankan adalah fungsi yang ada di kelas buku, bukan yang ada di kelas perpustakaan

Penggunaan fungsi INHERITANCE di PHP
Penggunaan fungsi INHERITANCE di PHP

Cara Membuat Kelas atau Metode yang Tidak Dapat Diturunkan

Untuk mencegah kelas tertentu diturunkan, kita dapat menggunakan pengubah akses akhir dan jika ini digunakan pada suatu metode, itu akan membuat metode ini tidak dapat ditimpa oleh metode baru

Berikut ini adalah contoh membuat kelas tidak dapat didelegasikan dan membuat metode tidak dapat diganti

<?php
	final class perpustakaan
	{
		public function tampilPegawai()
		{
			echo "Pegawai berjumlah 5 orang yaitu nana, Leo, Tati, Nay, Tono";
		}
	}
	//penurunanan final class akan menimbulkan error 
	class buku extends perpustakaan
	{
		
		
	}
?>

Hasilnya akan error seperti gambar di bawah ini

Penggunaan fungsi INHERITANCE di PHP
Penggunaan fungsi INHERITANCE di PHP

Kemudian kita akan mencoba membuat sebuah method dengan final access modifier agar tidak dapat di override pada kelas turunannya, seperti dibawah ini

<?php

	class Perpustakaan 
	{
		public $databuku=['Matematika','Fisika','Sejarah','Bahasa'];
		
		final function tampilBuku()
		{
			foreach ($this->databuku as $key => $value) {
				echo "$key. buku $value, ";
			}
		}
	}
	class Buku extends Perpustakaan
	{
		//akan menimbulkan error karena fungsi bersifat final
		Public function tampilBuku()
		{
			echo "<h1>Daftar Buku di Perpustakaan</h1>";
			foreach ($this->databuku as $key => $value) {
				$n=$key+1;
				echo "$n. buku $value <br/>";
			}
		}
	}

	$buku=New Buku();
	$buku->tampilBuku();

?>
_

Hasilnya akan error seperti gambar di bawah ini

Penggunaan fungsi INHERITANCE di PHP
Penggunaan fungsi INHERITANCE di PHP

Semoga postingan ini bermanfaat bagi kita semua, dan nantikan postingan-postingan menarik dari kami

“Nikmatilah sebuah proses mulai dari belajar, berkembang, hingga bisa berbagi untuk sesama. ”

Apa itu pewarisan dalam PHP?

Warisan atau pewarisan dalam PHP Berorientasi Objek adalah meneruskan properti dan metode baik publik maupun terproteksi ke kelas lain .

Kapan menggunakan warisan?

Kita hanya perlu menerapkan pewarisan Kita hanya perlu menerapkan pewarisan pada ketika kita menemukan kelas yang dapat diperluas dari kelas lain yang dapat diperluas dari kelas lain . kelas maka perilaku tersebut secara otomatis menjadi kelas, kemudian perilaku tersebut secara otomatis diwariskan ke subkelas.

Mengapa menggunakan warisan?

Mengapa Menggunakan Warisan ? . inheritance atau pewarisan akan sangat berguna ketika suatu kode ingin digunakan kembali pada sebuah class baru atau menggunakan kembali atribut dan method dari sebuah class yang telah ada ketika Anda membuat sebuah class baru.

Apa itu pewarisan dalam pemrograman?

Warisan (Warisan) . Kelas yang mewarisi disebut superclass/parent class/base class, sedangkan kelas yang mewarisi (class baru) disebut subclass/child class/derived class. Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada suatu class baru. Class yang mewariskan disebut dengan superclass / parent class / base class, sedangkan class yang mewarisi (class yang baru) disebut dengan subclass / child class / derived class.