0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan5 halaman

Abstract Class

Abstract Class adalah class yang tidak dapat diinstansiasi dan berfungsi sebagai kerangka dasar untuk class turunan, sementara Abstract Method adalah method yang harus diimplementasikan dalam class anak. Dalam PHP, Abstract Class dapat memiliki property dan method biasa, serta dapat memiliki static method. Class turunan wajib mengimplementasikan semua Abstract Method dari Abstract Class yang diturunkan.

Diunggah oleh

Ismail Marjuki
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan5 halaman

Abstract Class

Abstract Class adalah class yang tidak dapat diinstansiasi dan berfungsi sebagai kerangka dasar untuk class turunan, sementara Abstract Method adalah method yang harus diimplementasikan dalam class anak. Dalam PHP, Abstract Class dapat memiliki property dan method biasa, serta dapat memiliki static method. Class turunan wajib mengimplementasikan semua Abstract Method dari Abstract Class yang diturunkan.

Diunggah oleh

Ismail Marjuki
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

1.

Pengertian Abstract Class dan Abstract Method

Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa dibuat
menjadi objek) dan berperan sebagai ‘kerangka dasar’ bagi class turunannya. Di dalam
abstract class umumnya akan memiliki abstract method.

Abstract Method adalah sebuah ‘method dasar’ yang harus diimplementasikan ulang di
dalam class anak (child class). Abstract method ditulis tanpa isi dari method, melainkan
hanya ‘signature’-nya saja. Signature dari sebuah method adalah bagian method yang
terdiri dari nama method dan parameternya (jika ada).

Abstract class digunakan di dalam inheritance (pewarisan class) untuk ‘memaksakan’


implementasi method abstract bagi seluruh class yang diturunkan . Abstract class digu-
nakan untuk membuat struktur logika penurunan di dalam pemrograman objek.

Konsep abstract class dan abstract method akan lebih mudah dipahami dengan meng-
gunakan contoh.

Misalkan kita ingin membuat class yang terdiri dari berbagai jenis komputer seperti
class laptop, class PC, class netbook, dan lain-lain. Seluruh class ini tentunya memiliki
sifat-sifat komputer, seperti memiliki spesifikasi, memiliki processor, dan membutuhkan
listrik. Dalam implementasinya, kita bisa membuat seluruh class ini diturunkan dari
class komputer.

Agar lebih seragam, kita ingin seluruh class yang diturunkan dari class komputer, memi-
liki method yang ‘pasti’ ada dalam setiap class anak. Setiap komputer tentunya memiliki
spesifikasi, sehingga kita ingin setiap class yang diturunkan dari class komputer memi-
liki method lihat_spec().

Bagaimana caranya ‘memaksa’ setiap class agar memiliki method lihat_spec()? Untuk
kebutuhan ini, kita bisa membuat class komputer sebagai abstract class, dan method li-
hat_spec() sebagai abstract method.

Lebih lanjut, abstract method tidak hanya membuat setiap class memiliki method
lihat_spec(), tetapi memaksa setiap method mengimplementasikan method lihat_spec()
dengan isi method di serahkan kepada masing-masing class. Tentunya spesifikasi class
laptop akan berbeda dengan spesifikasi class PC.

Abstract class memiliki aturan yang membedakannya dengan class biasa. Kita akan
membahas aturan-aturan tersebut dengan menggunakan contoh program PHP.

2. Cara Membuat Abstract Class

Karena kita ingin membuat class komputer sebagai abstract class, maka berikut adalah
cara penulisannya di dalam PHP:
<?php
abstract class komputer {
// isi dari class komputer
}
?>

Untuk membuat abstract class di dalam PHP, kita tinggal menambahkan keyword ab-
stract sebelum nama class. Sebuah abstract class bisa memiliki property dan method
biasa layaknya sebuah class ‘normal’, namun juga bisa memiliki abstract method.

3. Cara Membuat Abstract Method

Jika sebuah method dinyatakan sebagai abstract method, maka kita tidak perlu mem-
buat isi methodnya, tetapi hanya signature dari method tersebut. Signature terdiri dai
nama method dan parameternya (jika ada) seperti contoh berikut:

abstract public function lihat_spec();


abstract public function lihat_spec($merk);

Kenapa kita tidak perlu membuat isi dari method? Ini karena jika sebuah method diny-
atakan sebagai abstract method, isi dari method tersebut akan dibuat dalam class tu-
runan. Abstract method harus berada di dalam abstract class.

Sebagai contoh, berikut adalah cara penulisan abstract method lihat_spec() di dalam
abstract class komputer:

<?php
abstract class komputer {
abstract public function lihat_spec();
}
?>

Perhatikan bahwa kita tidak perlu (baca:tidak bisa) membuat isi dari abstract method.

4. Abstract Class Tidak Bisa Diinstansiasi

Sesuai dengan sifatnya, kita tidak bisa membuat objek dari abstract class. Abstract
class digunakan hanya sebagai ‘blueprint’ untuk class-class lain, bukan untuk digu-
nakan langsung.

abstract class komputer {


abstract public function lihat_spec($pemilik);
}
}

$komputer_baru=new komputer();
// Fatal error: Cannot instantiate abstract class komputer
?>
Error diatas terjadi karena kita mencoba membuat objek dari abstract class. Untuk
menggunakan class komputer, kita harus menurunkannya kepada class lain.

5. Class Turunan Harus Mengimplementasikan Abstract Method

Jika sebuah class diturunkan dari abstract class, maka class tersebut harus membuat
ulang seluruh abstract method yang terdapat dalam abstract class, dan juga harus
sesuai dengan signature-nya.

<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec();
}

class laptop extends komputer{


public function beli_laptop(){
return "Beli Laptop...";
}
}

// buat objek dari class laptop


$laptop_baru = new laptop();

// Fatal error: Class laptop contains 1 abstract method


// and must therefore be declared abstract or implement
// the remaining methods (komputer::lihat_spec)
?>

Dalam contoh diatas, saya menurunkan class komputer kepada class laptop. Karena
class komputer adalah abstract class dan memiliki abstract method lihat_spec(), maka
di dalam class laptop kita harus membuat ulang method lihat_spec(). Jika tidak, akan
terjadi kode error seperti diatas. Untuk mengatasinya, mari kita revisi kode diatas men-
jadi berikut ini :

<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec();
}

class laptop extends komputer{


// implementasi abstract method
public function lihat_spec(){
return "Lihat Spec Laptop...";
}

// method 'biasa'
public function beli_laptop(){
return "Beli Laptop...";
}
}

// buat objek dari class laptop


$laptop_baru = new laptop();
echo $laptop_baru->lihat_spec();
// Lihat Spec Laptop...

echo "<br />";

echo $laptop_baru->beli_laptop();
// Beli Laptop...
?>

Dalam kode diatas, method lihat_spec() telah kita implementasikan di dalam class lap-
top. Fitur inilah yang menjadi fungsi dari abstract method, yakni ‘memaksa’ setiap class
turunan untuk memiliki method lihat_spec().

Implementasi dari abstract method, juga harus sesuai dengan signaturenya, yakni
nama method beserta parameter. Jika kita membuat abstract method
lihat_spec($merk), maka di dalam class turunan, kita juga harus membuat $merk seba-
gai parameter method. Jika tidak, maka PHP akan menghasilkan error sebagai berikut:

<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec($pemilik);
}

class laptop extends komputer{


public function lihat_spec(){
return "Lihat Spec Laptop...";
}
}

// buat objek dari class laptop


$laptop_baru = new laptop();
// Fatal error: Declaration of laptop::lihat_spec()
// must be compatible with komputer::lihat_spec($pemilik)
?>

6. Abstract Class Bisa Memiliki Property dan Method ‘biasa’

Jika sebuah class dinyatakan sebagai abstract class, class tersebut juga bisa memiliki
property dan method ‘normal’. Namun kita hanya bisa mengakses property dan method
ini dari class turunan, karena abstract class tidak bisa diinstansiasi.

<?php
// buat abstract class
abstract class komputer{

// buat abstract method


abstract public function lihat_spec($pemilik);

// buat method ‘biasa’


public function hidupkan_komputer(){
echo "Hidupkan Komputer";
}
}
?>

7. Abstract Class Bisa Memiliki Static Method

Salah satu fitur ‘khusus’ untuk abstract class di dalam PHP, adalah: abstract class bisa
memiliki static method. Berikut contohnya:

<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec($pemilik);

public static function hidupkan_komputer(){


echo "Hidupkan Komputer";

}
}

echo komputer::hidupkan_komputer();
// Hidupkan Komputer
?>

Anda mungkin juga menyukai