0% menganggap dokumen ini bermanfaat (0 suara)
140 tayangan

Tutorial Belajar OOP PHP Part 15 (Abstract Class & Abstract Method)

Abstract class dan abstract method digunakan untuk membuat kerangka bagi class turunan. Abstract class tidak bisa diinstansiasi dan berisi method abstrak yang harus diimplementasikan ulang pada class turunan. Class turunan wajib mengimplementasikan semua method abstrak agar objek dapat dibuat.

Diunggah oleh

ardykuncoro.o
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
140 tayangan

Tutorial Belajar OOP PHP Part 15 (Abstract Class & Abstract Method)

Abstract class dan abstract method digunakan untuk membuat kerangka bagi class turunan. Abstract class tidak bisa diinstansiasi dan berisi method abstrak yang harus diimplementasikan ulang pada class turunan. Class turunan wajib mengimplementasikan semua method abstrak agar objek dapat dibuat.

Diunggah oleh

ardykuncoro.o
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Tutorial Belajar OOP PHP Part 15:

Pengertian Abstract Class dan


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

BELAJAR OBJEK PHP BELAJAR OOP PHP OOP PHP PEMROGRAMAN BERBASIS OBJEK PENGERTIAN ABSTRACT CLASS

PHP PENGERTIAN ABSTRACT METHOD PHP PENGERTIAN ARRAY TUTORIAL OOP PHP

Category: Tutorial PHP

Dalam tutorial belajar OOP PHP kali ini kita akan membahas tentang pengertian abstract class dan
abstract method dalam pemrograman objek, serta cara pembuatan abstract class dan abstract
method dengan PHP.

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 yang sama bagi seluruh class yang diturunkan dari abstract class. Abstract class digunakan
untuk membuat struktur logika penurunan di dalam pemrograman objek.
Konsep abstract class dan abstract method akan lebih mudah dipahami dengan menggunakan
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, sepertimemiliki 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, memiliki method
yang ‘pasti’ ada dalam setiap class anak. Setiap komputer tentunya memiliki spesifikasi, sehingga
kita ingin setiap class yang diturunkan dari class komputer memiliki 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 lihat_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.

Cara Membuat Abstract Class


Karena kita ingin membuat class komputer sebagai abstract class, maka berikut adalah cara
penulisannya di dalam PHP:

1 <?php
2 abstract class komputer {
3    // isi dari class komputer
4 }
?>
5
Untuk membuat abstract class di dalam PHP, kita tinggal menambahkan keyword abstract sebelum
nama class. Sebuah abstract class bisa memiliki property dan method biasa layaknya sebuah class
‘normal’, namun juga bisa memiliki abstract method.
Cara Membuat Abstract Method
Jika sebuah method dinyatakan sebagai abstract method, maka kita tidak perlu membuat isi
methodnya, tetapi hanya signature dari method tersebut. Signature terdiri dai nama method dan
parameternya (jika ada) seperti contoh berikut:

1 abstract public function lihat_spec();


2 abstract public function lihat_spec($merk);

Kenapa kita tidak perlu membuat isi dari method? Ini karena jika sebuah method dinyatakan
sebagaiabstract method, isi dari method tersebut akan dibuat dalam class turunan. Abstract
method harusberada di dalam abstract class.
Sebagai contoh, berikut adalah cara penulisan abstract method lihat_spec() di dalam abstract
classkomputer:

1 <?php
2 abstract class komputer {
3    abstract public function lihat_spec();
4 }
?>
5
Perhatikan bahwa kita tidak perlu (baca:tidak bisa) membuat isi dari abstract method.

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 digunakan langsung.

1 abstract class komputer {


2    abstract public function lihat_spec($pemilik);
3    }
4 }
5  
6 $komputer_baru=new komputer();
// Fatal error: Cannot instantiate abstract class komputer
7 ?>
8
Error diatas terjadi karena kita mencoba membuat objek dari abstract class. Untuk menggunakan
class komputer, kita harus menurunkannya kepada class lain.

Abstract Class Bisa Memiliki Property dan Method


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

1
2 <?php
// buat abstract class
3 abstract class komputer{
4     
5    // buat abstract method
6    abstract public function lihat_spec($pemilik);
7     
8    // buat method ‘biasa’
9    public function hidupkan_komputer(){
     echo "Hidupkan Komputer";
10    }
11 }
12 ?>
13

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.

1
2 <?php
3 // buat abstract class
4 abstract class komputer{
5    // buat abstract method
   abstract public function lihat_spec();
6 }
7   
8 class laptop extends komputer{
9    public function beli_laptop(){
10      return "Beli Laptop...";
11    }
}
12
  
13 // buat objek dari class laptop
14 $laptop_baru = new laptop();
15   
16 // Fatal error: Class laptop contains 1 abstract method
17 // and must therefore be declared abstract or implement
18 // the remaining methods (komputer::lihat_spec)
?>
19
20
Dalam contoh diatas, saya menurunkan class komputer kepada class laptop. Karena class
komputeradalah 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 menjadi berikut ini :

1
2
3 <?php
4 // buat abstract class
abstract class komputer{
5    // buat abstract method
6    abstract public function lihat_spec();
7 }
8   
9 class laptop extends komputer{
10   
11 // implementasi abstract method
   public function lihat_spec(){
12      return "Lihat Spec Laptop...";
13    }
14   
15 // method 'biasa'  
16    public function beli_laptop(){
     return "Beli Laptop...";
17
   }
18 }
19   
20 // buat objek dari class laptop
21 $laptop_baru = new laptop();
22 echo $laptop_baru->lihat_spec();
// Lihat Spec Laptop...
23
  
24 echo "<br />";
25
  
26 echo $laptop_baru->beli_laptop();
27 // Beli Laptop...
28 ?>
29
30
Dalam kode diatas, method lihat_spec() telah kita implementasikan di dalam class laptop. Fitur inilah
yang menjadi fungsi dari abstract method, yakni ‘memaksa’ setiap class turunan untuk
memilikimethod lihat_spec().
Implementasi dari abstract method, juga harus sesuai dengan signaturenya, yakni nama
methodbeserta parameter. Jika kita membuat abstract method lihat_spec($merk), maka di dalam
class turunan, kita juga harus membuat $merk sebagai parameter method. Jika tidak, maka PHP akan
menghasilkan error sebagai berikut:

1 <?php
// buat abstract class
2
3
abstract class komputer{
4    // buat abstract method
5    abstract public function lihat_spec($pemilik);
6 }
7   
8 class laptop extends komputer{
   public function lihat_spec(){
9
     return "Lihat Spec Laptop...";
10    }
11 }
12   
13 // buat objek dari class laptop
14 $laptop_baru = new laptop();
15   
// Fatal error: Declaration of laptop::lihat_spec()
16
// must be compatible with komputer::lihat_spec($pemilik)
17 ?>
18
19

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:

1
2 <?php
// buat abstract class
3
abstract class komputer{
4    // buat abstract method
5    abstract public function lihat_spec($pemilik);
6    
7    public static function hidupkan_komputer(){
8      echo "Hidupkan Komputer";
9   
   }
10
}
11
  
12 echo komputer::hidupkan_komputer();
13 // Hidupkan Komputer
14 ?>
15

Fungsi Abstract Class dan Abstract Method


Abstract class dan abstract method berfungsi untuk membuat ‘kerangka’ bagi seluruh class
dibawahnya. Seperti contoh-contoh kita diatas, setiap class yang diturunkan dari class komputer,
‘pasti’ akan memiliki method lihat_spec().
Dalam tutorial ini saya menyederhanakan contoh kode program dengan hanya 1 abstract method.
Kita bisa membuat beberapa abstract method di dalam abstract class, seperti contoh berikut:

1
2 <?php
3 // buat abstract class
4 abstract class komputer{
5    // buat abstract method
6    abstract public function lihat_spec();
   abstract public function lihat_processor();
7    abstract public function lihat_harddisk();
8    abstract public function lihat_pemilik();
9 }
10   
11 class laptop extends komputer{
12    // .. isi class laptop
}
13
  
14 class pc extends komputer{
15    // .. isi class pc
16 }
17   
18 class netbook extends komputer{
19    // .. isi class netbook
}
20 ?>
21
22
Dengan membuat class komputer sebagai abstract, maka kita bisa menebak bahwa di dalam class
laptop, class pc dan class netbook, pasti memiliki method lihat_spec(), lihat_processor(),
lihat_harddisk() dan lihat_pemilik(). Dengan demikian, kita bisa membuat program yang lebih
terstruktur.

Dalam tutorial OOP PHP berikutnya, kita akan membahas tentang Object Interfaces atau dikenal
dengan sebutan Interface saja. Interface di dalam pemograman objek sangat mirip dengan abstract
class. Kita akan membahas pengertian, cara penggunaan serta perbedaan Object Interface dengan
Abstract Class.

Anda mungkin juga menyukai