Abstract Class dan Abstract Method Pada OOP PHP

 1. Pengertian Abstract Class dan Abstract Method

Abstract class adalah kelas yang dibuat sebagai model bagi kelas turunannya. Bertindak sebagai model sekaligus konsep, kelas ini punya sifat memaksa turunannya. Setiap turunannya harus mengimplementasikan abstract method kelas tersebut. Namun kelas tersebut tidak dapat di cetak langsung menjadi objek.

Abstract method adalah method yang harus diimplementasikan oleh turunannya. Setiap kelas turunan harus memiliki method yang sama (namanya) dengan abstract method pada kelas induknya (kelas abstrak). Namun, method tersebut membebaskan isi dari method yang diimplementasikan oleh turunannya.

Sebagai ilustrasi misalkan kelas abstract class Tanaman. Kelas tanaman akan dijadikan contoh atau model bagi kelas turunannya. Contoh kelas Durian dan kelas Rambutan. Sebagai abstract class, kelas tanaman ingin memaksa kelas turunannya memiliki method bernama "LihatPenjelasan".

2. Contoh Implementasi Abstract Class dan Abstract Method

Berikut ini adalah contoh abstract class Tanaman yang bertindak sebagai model bagi turunannya. Sifat yang harus diturunkan adalah method LihatPenjelasan. Method abstrak tersebut harus diimplementasikan oleh turunannya yaitu kelas Durian dan kelas Rambutan.

<?php
abstract class Tanaman{
abstract public function LihatPenjelasan();
}

class Durian extends Tanaman{
public function LihatPenjelasan(){
echo "Durian adalah tanaman dengan kulit buah berduri yang isi buahnya manis";
}
}

class Rambutan extends Tanaman{
public function LihatPenjelasan(){
echo "Rambutan adalah tanaman dengan kulit buah seperti berambut yang isi buahnya manis";
}
}

$durian=new Durian;
$durian->LihatPenjelasan();
echo "<br>";
$rambutan=new Rambutan;
$rambutan->LihatPenjelasan();

Pada kode program di atas adalah contoh yang benar. Abstract Class tak jauh berbeda dengan class umumnya. Hanya menambahkan keywor abstract saja.  Begitu juga dengan abstract method. Namun penulisan abstract method dalam abstract class hanya tuliskan signatur nya saja. Tidak perlu sampai buka dan tutup kurung kurawal.

Berikut ini  hal yang harus dilakukan pada abstract class dan abstract method yaitu:
  • Tidak mencetak objek dari abstract class (kelas Tanaman).
  • Mengimplementasikan abstract method pada kelas turunannya (method LihatPenjelasan).
Selain melarang, kelas abstract ternyata juga membolehkan atau membebaskan untuk isi method. Pada contoh sederhana di atas, Kelas durian mencetak penjelasan tentang tanaman bernama durian. Sedangkan kelas rambutan menjelaskan tentang rambutan. Dengan demikian maksudnya adalah isi dari method bebas.

Kebebasan selanjutnya adalah method yang dimiliki sendiri oleh turunan. Artinya kelas turunan boleh membuat method baru setelah mengimplementasikan semua abstract method. Berikut contoh kasus nya.


<?php
abstract class Tanaman{
abstract public function LihatPenjelasan();
}

class Durian extends Tanaman{
private $WarnaKulitBuah="Warna Kulit Buah Hijau Kekuningan";
public function LihatPenjelasan(){
echo "Durian adalah tanaman dengan kulit buah berduri yang isi buahnya manis";
}

public function WarnaKulitBuah(){
echo $this->WarnaKulitBuah;
}
}

class Rambutan extends Tanaman{
public function LihatPenjelasan(){
echo "Rambutan adalah tanaman dengan kulit buah seperti berambut yang isi buahnya manis";
}
}

$durian=new Durian;
$durian->LihatPenjelasan();
echo "<br>";
$durian->WarnaKulitBuah();
echo "<br>";
echo "####################################################################";
echo "<br>";
$rambutan=new Rambutan;
$rambutan->LihatPenjelasan();

Pada kode program di atas, kita menambahkan method baru pada kelas Durian yaitu WarnaKulitBuah. Hal demikian diperbolehkan dalam menurunkan abstract class.

Gambar di atas adalah hasil program yang telah dijalankan. Kesimpulannya abstract class adalah kelas yang digunakan sebagai model atau percontohan yang memaksa kelas turunannya untuk mengikuti nama method abstract nya. Sedengakan isi dari method tersebut bebas. Kelas turunan dari abstract class juga masih boleh membuat method nya sendiri.


Popular posts from this blog

Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis

Aplikasi CRUD menggunakan Template Admin LTE

Cara membuat Link ke Halaman lain dan Link ke bagian Halaman