Tutorial Belajar OOP PHP Part 15: Pengertian Abstract Class dan Abstract Method PHP

Posted on

Pada panduan belajar OOP PHP kali ini kita akan membahas mengenai pengertian abstract class dan abstract method dalam pemrograman objek, serta cara perancangan abstract class dan abstract method dengan PHP.


Pengertian Abstract Class dan Abstract Method

Abstract Class yaitu sebuah class yang tak dapat di-instansiasi (tak dapat dibangun menjadi objek) dan berperan selaku ‘kerangka basic’ untuk class turunannya. Di pada abstract class umumnya akan mempunyai abstract method.

Abstract Method yaitu sebuah ‘method basic’ yang mesti diimplementasikan ulang di pada class anak (child class). Abstract method ditulis tanpa isi dari method, melainkan hanya ‘signature’-nya saja. Signature dari sebuah method yaitu bagian method yang terdiri dari nama method dan parameternya (seandainya ada).

Abstract class digunakan di pada inheritance (pewarisan class) bagi ‘memaksakan’ implementasi method yang sama untuk seluruh class yang diturunkan dari abstract class. Abstract class digunakan bagi membangun struktur logika penurunan di pada pemrograman objek.

Konsep abstract class dan abstract method akan lebih gampang dimengerti dengan menggunakan contoh.

Misalkan kita ingin membangun class yang terdiri dari beragam jenis komputer seperti class laptop, class PC, class netbook, dan lain-lain. Seluruh class ini pastinya mempunyai sifat-sifat komputer, seperti mempunyai spesifikasi, mempunyai processor, dan membutuhkan listrik. Pada implementasinya, kita dapat membangun seluruh class ini diturunkan dari class komputer.

Agar lebih seragam, kita ingin seluruh class yang diturunkan dari class komputer, mempunyai method yang ‘pasti’ ada pada setiap class anak. Setiap komputer pastinya mempunyai spesifikasi, sehingga kita ingin setiap class yang diturunkan dari class komputer mempunyai method lihat_spec().

Bagaimana caranya ‘memaksa’ setiap class agar mempunyai method lihat_spec()? Bagi keperluan ini, kita dapat membangun class komputer selaku abstract class, dan method lihat_spec() selaku abstract method.

Lebih lanjut, abstract method tak hanya membangun setiap class mempunyai method lihat_spec(), tetapi memaksa setiap method mengimplementasikan method lihat_spec() dengan isi method di serahkan kepada masing-masing class. Pastinya spesifikasi class laptop akan berbeda dengan spesifikasi class PC.

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


Cara Membangun Abstract Class

Karena kita ingin membangun class komputer selaku abstract class, karenanya berikut yaitu cara penulisannya di pada PHP:

Bagi membangun abstract class di pada PHP, kita tinggal menambahkan keyword abstract sebelum nama class. Sebuah abstract class dapat mempunyai property dan method lazim layaknya sebuah class ‘normal’, namun pun dapat mempunyai abstract method.


Cara Membangun Abstract Method

Kalau sebuah method dinyatakan selaku abstract method, karenanya kita tak perlu membangun isi methodnya, tetapi hanya signature dari method tersebut. Signature terdiri dai nama method dan parameternya (seandainya ada) seperti contoh berikut:

Kenapa kita tak perlu membangun isi dari method? Ini karena seandainya sebuah method dinyatakan selaku abstract method, isi dari method tersebut akan dibangun pada class turunan. Abstract method mesti berada di pada abstract class.

Selaku contoh, berikut yaitu cara penulisan abstract method lihat_spec() di pada abstract class komputer:

Perhatikan bahwa kita tak perlu (baca:tak dapat) membangun isi dari abstract method.


Abstract Class Tak Dapat Diinstansiasi

Sesuai dengan sifatnya, kita tak dapat membangun objek dari abstract class. Abstract class digunakan hanya selaku ‘blueprint’ bagi class-class lain, bukan bagi digunakan seketika.

Error diatas terjadi karena kita mencoba membangun objek dari abstract class. Bagi menggunakan class komputer, kita mesti menurunkannya kepada class lain.


Abstract Class Dapat Mempunyai Property dan Method ‘lazim’

Kalau sebuah class dinyatakan selaku abstract class, class tersebut pun dapat mempunyai property dan method ‘normal’. Namun kita hanya dapat mengakses property dan method ini dari class turunan, karena abstract class tak dapat diinstansiasi.


Class Turunan Mesti Mengimplementasikan Abstract Method

Kalau sebuah class diturunkan dari abstract class, karenanya class tersebut mesti membangun ulang seluruh abstract method yang terdapat pada abstract class, dan pun mesti sesuai dengan signature-nya.

Pada contoh diatas, saya menurunkan class komputer kepada class laptop. Karena class komputer yaitu abstract class dan mempunyai abstract method lihat_spec(), karenanya di pada class laptop kita mesti membangun ulang method lihat_spec(). Kalau tak, akan terjadi kode error seperti diatas. Bagi mengatasinya, mari kita revisi
kode diatas menjadi berikut ini :

Pada kode diatas, method lihat_spec() telah kita implementasikan di pada class laptop. Fitur inilah yang menjadi kegunaan dari abstract method, yakni ‘memaksa’ setiap class turunan bagi mempunyai method lihat_spec().

Implementasi dari abstract method, pun mesti sesuai dengan signaturenya, yakni nama method dan juga parameter. Kalau kita membangun abstract method lihat_spec($merk), karenanya di pada class turunan, kita pun mesti membangun $merk selaku parameter method. Kalau tak, karenanya PHP akan menghasilkan error selaku berikut:


Abstract Class Dapat Mempunyai Static Method

Diantara fitur ‘khusus’ bagi abstract class di pada PHP, yaitu: abstract class dapat mempunyai static method. Berikut contohnya:


Kegunaan Abstract Class dan Abstract Method

Abstract class dan abstract method berfungsi bagi membangun ‘kerangka’ untuk seluruh class dibawahnya. Seperti contoh-contoh kita diatas, setiap class yang diturunkan dari class komputer, ‘pasti’ akan mempunyai method lihat_spec().

Pada panduan ini saya menyederhanakan contoh kode program dengan hanya 1 abstract method. Kita dapat membangun beberapa abstract method di pada abstract class, seperti contoh berikut:

Dengan membangun class komputer selaku abstract, karenanya kita dapat menebak bahwa di pada class laptop, class komputer dan class netbook, pasti mempunyai method lihat_spec(), lihat_processor(), lihat_harddisk() dan lihat_pemilik(). Dengan demikian, kita dapat membangun program yang lebih terstruktur.


Pada panduan OOP PHP berikutnya, kita akan membahas mengenai Object Interfaces atau dikenal dengan sebutan Interface saja. Interface di pada pemograman objek betul-betul mirip dengan abstract class. Kita akan membahas pengertian, cara pemakaian serta perbedaan Object Interface dengan Abstract Class.


Sumber https://www.duniailkom.com/