0% menganggap dokumen ini bermanfaat (0 suara)
97 tayangan8 halaman

Tutorial Belajar OOP PHP Part 16 (INterface)

Interface dalam PHP berperan sebagai kontrak metode yang harus diimplementasikan oleh kelas. Interface hanya berisi deklarasi metode tanpa isi, sedangkan kelas harus mengimplementasikan semua metode interface. Interface mirip dengan kelas abstrak namun tujuan dan konsepnya berbeda. Interface berfokus pada standarisasi metode antarmuka sedangkan kelas abstrak berperan sebagai kerangka kelas turunan.

Diunggah oleh

ardykuncoro.o
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)
97 tayangan8 halaman

Tutorial Belajar OOP PHP Part 16 (INterface)

Interface dalam PHP berperan sebagai kontrak metode yang harus diimplementasikan oleh kelas. Interface hanya berisi deklarasi metode tanpa isi, sedangkan kelas harus mengimplementasikan semua metode interface. Interface mirip dengan kelas abstrak namun tujuan dan konsepnya berbeda. Interface berfokus pada standarisasi metode antarmuka sedangkan kelas abstrak berperan sebagai kerangka kelas turunan.

Diunggah oleh

ardykuncoro.o
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
Anda di halaman 1/ 8

Tutorial Belajar OOP PHP Part 16:

Pengertian Object Interface Dalam


Pemrograman Berbasis Objek
 Home /
 Tutorial PHP /
 Tutorial Belajar OOP PHP Part 16: Pengertian Object Interface Dalam Pemrograman Berbasis Objek

CARA PENULISAN INTERFACE PHP PEMROGRAMAN OBJEK PHP PENGERTIAN INTERFACE PENGERTIAN OBJECT

INTERFACE TUTORIAL BELAJAR PHP TUTORIAL OOP PHP

Category: Tutorial PHP

Setelah dalam tutorial sebelumnya kita mempelajari tentang abstract class dan abstract method,
dalam tutorial belajar OOP PHP kali ini kita akan membahas tentang Objek Interface dalam
pemrograman berbasis objek. Object Interface ini sangat mirip dengan Abstract class.

Pengertian Object Interface


Secara sederhana, Object Interface adalah sebuah ‘kontrak’ atau perjanjian implementasi method.
Bagi class yang menggunakan object interface, class tersebut harus mengimplementasikan ulang
seluruh method yang ada di dalam interface. Dalam pemrograman objek, penyebutan object
interfacesering disingkan dengan ‘Interface’ saja.
Jika anda telah mempelajari abstract class, maka interface bisa dikatakan sebagai bentuk lain
dariabstract class. Walaupun secara konsep teoritis dan tujuan penggunaannya berbeda.
Sama seperti abstract class, interface juga hanya berisi signature dari method, yakni hanya
namamethod dan parameternya saja (jika ada). Isi dari method akan dibuat ulang di dalam class yang
menggunakan interface.
Jika kita menganggap abstract class sebagai ‘kerangka’ atau ‘blue print’ dari class-class lain,
makainterface adalah implementasi method yang harus ‘tersedia’ dalam sebuah
objek. Interface tidak bisa disebut sebagai ‘kerangka’ class.
Menyambung analogi kita tentang class komputer, interface bisa dicontohkan dengan ‘mouse’, atau
‘keyboard’. Di dalam interface mouse, kita bisa membuat method seperti klik_kiri(),
klik_kanan(), dandouble_klik(). Jika class laptop ‘menggunakan’ interface mouse, maka class
tersebut harus membuat ualng method klik_kiri(), klik_kanan(), dan double_klik().

Cara Membuat Interface dalam PHP


Untuk membuat Interface di dalam PHP, kita menulisnya mirip seperti membuat class, tetapi
menggunakan keyword interface, seperti contoh berikut:

1 <?php
2 interface mouse
3 {
4    //...isi dari interface mouse
}
5
?>
6
Isi dari interface adalah signature method (nama dan parameter method):

1
<?php
2 interface mouse{
3    public function klik_kanan();
4    public function klik_kiri();
5    public function scroll();
   public function double_klik();
6 }
7 ?>
8
Untuk menggunakan method kedalam class, kita menggunakan keyword implements, seperti contoh
berikut:

1 <?php
interface mouse{
2    public function klik_kanan();
3    public function klik_kiri();
4 }
5   
6 class laptop implements mouse{
7    //... isi dari class laptop
}
8
9   
10 class pc implements mouse{
11    //... isi dari class pc
12 }
?>
13
14
Interface adalah ‘perjanjian method’, dimana jika sebuah class menggunakan interface, maka di
dalam class tersebut harus tersedia implementasi dari method tersebut.
Jika di dalam interface mouse terdapat signature method klik_kanan(), maka di dalam class laptop
yang menggunakan interface mouse, harus terdapat method klik_kanan(). Berikut contoh kode
PHPnya:

1
2 <?php
3 interface mouse{
4    public function klik_kanan();
5    public function klik_kiri();
}
6
  
7 class laptop implements mouse{
8    public function klik_kanan(){
9      return "Klik Kanan...";
10    }
11    public function klik_kiri(){
     return "Klik Kiri...";
12    }
13 }
14  
15 $laptop_baru = new laptop();
16 echo $laptop_baru->klik_kanan();
17 // Klik Kanan...
?>
18
19
Apabila kita tidak membuat ulang salah satu method yang ada di interface, PHP akan
mengeluarkanerror:

1 <?php
interface mouse{
2    public function klik_kanan();
3    public function klik_kiri();
4 }
5   
6 class laptop implements mouse{
7    public function klik_kanan(){
     return "Klik Kanan...";
8    }
9 }
10   
11
12 $laptop_baru = new laptop();
13 // Fatal error: Class laptop contains 1 abstract method
14 // and must therefore be declared abstract
15 // or implement the remaining methods (mouse::klik_kiri)
?>
16
17

Method Interface Harus di set Sebagai Public


Sesuai dengan tujuannya untuk membuat interface/antar muka bagi class, method di dalam
perancangan interface harus memiliki hak akses public, atau tidak ditulis sama sekali (dimana PHP
akan menganggapnya sebagai public). Jika kita mengubah hak akses method di
dalam interfacemenjadi private atau protected, PHP akan mengeluarkan error:

1
2 <?php
3 interface mouse{
4    public function klik_kanan();
5    protected function klik_kiri();
}
6
  
7 class laptop implements mouse{
8    public function klik_kanan(){
9      return "Klik Kanan...";
10    }
11    public function klik_kiri(){
     return "Klik Kiri...";
12    }
13 }
14   
15 $laptop_baru = new laptop();
16 // Fatal error: Access type for interface
17 // method mouse::klik_kiri() must be omitted
?>
18
19
Di dalam class yang menggunakan interface, method yang berasal dari interface juga harus memiliki
hak akses public. Kita tidak bisa mengubahnya menjadi protected atau private.

1 <?php
interface mouse{
2
   public function klik_kanan();
3    public function klik_kiri();
4 }
5   
6 class laptop implements mouse{
7    public function klik_kanan(){
8
9      return "Klik Kanan...";
10    }
11   
12    protected function klik_kiri(){
13      return "Klik Kiri...";
   }
14 }
15   
16 $laptop_baru = new laptop();
17 // Fatal error: Access level to laptop::klik_kiri()
18 // must be public (as in class mouse)
?>
19
20
Dalam contoh diatas, saya mengubah hak akses method klik_kiri() menjadi protected di dalam class
laptop. Hal ini akan menghasilkan error.

Interface bisa di Turunkan (Inherit)


Di dalam PHP, interface bisa diturunkan kedalam interface lain. Prosesnya mirip dengan
penurunanclass, yakni dengan menggunakan kata kunci extends:

1 <?php
interface mouse{
2
   public function klik_kanan();
3    public function klik_kiri();
4 }
5   
6 interface mouse_gaming extends mouse{
7    public function ubah_dpi();
}
8
  
9 class laptop implements mouse_gaming{
10    public function klik_kanan(){
11      return "Klik Kanan...";
12    }
13   
14    public function klik_kiri(){
     return "Klik Kiri...";
15    }
16   
17    public function ubah_dpi(){
18      return "Ubah settingan DPI mouse";
19    }
20 }
21   
$laptop_baru = new laptop();
22 echo $laptop_baru->ubah_dpi();
23 // Ubah settingan DPI mouse
24
25
26 ?>
27
28

Interface Bisa Memiliki Konstanta


Dalam PHP, Interface bisa memiliki konstanta . Berikut adalah contoh penggunaan konstanta di
dalam interface:

1
<?php
2 interface mouse{
3    const JENIS = "Laser Mouse";
4    public function klik_kanan();
5    public function klik_kiri();
6 }
7   
echo mouse::JENIS;
8 // Laser Mouse
9 ?>
10
Untuk mengakses konstanta dari interface, kita menggunakan perintah
nama_interface::nama_konstanta.

Interface Tidak Bisa Memiliki Method ‘normal’


Salah satu yang membedakan interface dengan abstract class adalah kita tidak bisa membuat method
biasa di dalam Interface. Contoh berikut akan menghasilkan error:

1 <?php
interface mouse{
2
   public function klik_kanan();
3    public function klik_kiri(){
4      return "Klik Kiri...";
5    }
6 }
7   
class laptop implements mouse{
8    public function klik_kanan(){
9      return "Klik Kanan...";
10    }
11 }
12   
13 $laptop_baru = new laptop();
// Fatal error: Interface function
14 // mouse::klik_kiri() cannot contain body
15
16 ?>
17
18

Sebuah Class Bisa Menggunakan Banyak Interface


Perbedaan lain antara Interface dengan Abstract Class adalah: Sebuah class bisa menggunakan lebih
dari 1 interface, sedangkan untuk abstract class, kita hanya bisa menggunakan 1 abstract
class dalam sekali penurunan class.
Untuk menggunakan lebih dari 1 interface, kita tinggal menuliskan semua interface setelah
keywordimplements. Setiap nama interface dipisahkan dengan tanda koma. Berikut contoh
penggunaan 2 buah interface di dalam PHP:

1
2
3 <?php
interface mouse{
4    public function klik_kanan();
5    public function klik_kiri();
6 }
7   
8 interface keyboard{
9    public function tekan_enter();
}
10
  
11 class laptop implements mouse, keyboard{
12    public function klik_kanan(){
13      return "Klik Kanan...";
14    }
15   
16    public function klik_kiri(){
     return "Klik Kiri...";
17    }
18   
19    public function tekan_enter(){
20      return "Tekan Tombol Enter...";
21    }
22 }
23   
$laptop_baru = new laptop();
24 echo $laptop_baru->tekan_enter();
25 // Tekan Tombol Enter...
26 ?>
27
28
Dalam contoh diatas saya membuat dua buah interface, yakni mouse dan keyboard.
Kedua interfaceini kemudian digunakan oleh class laptop.

Fungsi Interface dalam Pemrograman Objek


Jika anda telah mempelajari abstract class dalam tutorial kita sebelumnya, sedikit banyak kita bisa
memahami fungsi interface jika dibandingkan dengan fungsi abstract class. Kedua konsep ini sering
membuat bingung karena mirip dalam implementasinya.
Interface lebih berperan untuk menyeragamkan method. Ia tidak masuk kedalam struktur class
seperti abstract class. Jika kita menggunakan abstract class komputer sebagai ‘konsep class’ untuk
kemudian diturunkan kepada class lain seperti class laptop, class pc, dan class netbook, maka
interface hanya ‘penyedia method’. Interface tidak termasuk kedalam pewarisan class.

Object Interface dan Abstract Class merupakan implementasi dari konsep pemrograman objek yang


disebut sebagai Polimorfisme. Pengertian Polimorfisme atau polymorphism, akan kita bahas dalam
tutorial OOP PHP selanjutnya.

Anda mungkin juga menyukai