Minggu, 07 Oktober 2012

Abstract Class untuk Registry di PHP | PHP OOP


Kesempatan kali saya akan share ilmu tentang abstract class di PHP OOPAbstract class seperti namanya, yaitu bersifat abstrak. Ya, memang dunia pemrograman memaksa kita untuk mempelajari bahasa inggris. Mari saya jelaskan lebih lanjut. ;)

Manfaat dan Fungsi Abstract Class di PHP OOP

Abstract class  pada dasarnya adalah class yang membuat pattern method yang bersifat abstrak dan method tidak bisa memiliki body. Pengertian dasar atau konsep abstract class menyediakan suatu pattern/prototype method yang konkret dan dijadikannya class dasar untuk digunakan oleh class pewarisnya. Perlu diingat, abstract class bukan membuatsuper object namun hanya sekedar menyediakan pattern standar untuk digunakan oleh class pewarisnya. Untuk membuat object harus dilakukan melalui class pewarisnya (inherited class).
Abstract class bisa digunakan untuk membuat suatu registry di suatu aplikasi agar penggunaan resource memori maupun buffering menjadi lebih ringan. Ya, itulah fungsi registry di dalam suatu aplikasi php. Di dalam mvc framework yang saya buat juga menggunakan registry, tetapi saya tidak akan membahas itu sekarang. Hanya mencoba memberikan penjelasan dari basic abstract class dahulu. ;)

Implementasi Abstract Class

Suatu abstract class mempunyai beberapa syarat agar abstract class bisa digunakan ke dalam class yakni:
  1. Penggunaan abstract class harus memanggil class pewarisannya, tidak bisa langsung memanggil abstract class.
  2. Suatu method yang memiliki attribute abstract harus berada di dalam class abstract juga.
  3. Method abstract di dalam abstract class tidak boleh memiliki body.

Contoh Penggunaan Abstract Class ke dalam Class

Saya akan memberikan contoh simple penggunaan abstract class untuk menyediakan pattern method berupa class RegistryDokumen yang berguna untuk mengetahui spesifik suatu berkas file dokumen. Lihat contoh abstract class di php berikut ini:
<?php
abstract class RegistryDokumen{
abstract function spesifikberkas();
public function dapatkanclass()
{
return get_class($this);
}
public function cetakhasil()
{
echo 'Berkas <b>'.$this->dapatkanclass().'</b> mempunyai ekstensi file: "'.$this->spesifikberkas().'".<br/>';
}
}

class pdf extends RegistryDokumen{
public function spesifikberkas()
{
return ".pdf";
}
}

class doc extends RegistryDokumen{
public function spesifikberkas()
{
return ".doc, .docx atau .rft";
}
}

$berkaspdf = new pdf();
$berkasdoc = new doc();
$berkaspdf->cetakhasil(); // Berkas pdf mempunyai ekstensi file: ".pdf".
$berkasdoc->cetakhasil(); // Berkas doc mempunyai ekstensi file: ".doc, .docx atau .rft".
?>
Contoh di atas dapat dijelaskan bahwa class RegistryDokumen menyediakan pattern method abstrak untuk digunakan class pdf dan class doc. Function spesifikberkas() adalah polymorphism yang mana merupakan pattern sejenis namun mempunyai fungsi yang berbeda. Hal itu mudah di-handle atau ditangani dengan menggunakan abstract class ini.
Apakah artikel ini sudah cukup jelas? Memang untuk belajar PHP OOP atau mencoba menggunakan framework MVC paling tidak harus pernah membaca basic PHP. Jika tidak, saya jamin kamu masih belum bisa memahami betul artikel-artikel PHP OOP di website manapun juga. PHP OOP telah saya mulai dari yang dasar/basic dan kamu bisa temukan di awal section Web Programming. Saya akan terus berusaha memberikan artikel dengan contoh serta penjelasan yang mudah dimengerti. Baiklah, sampai di siniartikel dan contoh tentang Abstract Class di PHP OOP.

Backlink BAcklink

Tidak ada komentar:

Posting Komentar