0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan7 halaman

Interface

Dokumen ini membahas tentang Object Interface dalam pemrograman berbasis objek di PHP, yang berfungsi sebagai kontrak untuk implementasi method dalam class. Interface hanya berisi signature method dan harus diimplementasikan secara penuh oleh class yang menggunakannya. Selain itu, dokumen menjelaskan cara membuat interface, hak akses method, serta perbedaan antara interface dan abstract class.

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)
2 tayangan7 halaman

Interface

Dokumen ini membahas tentang Object Interface dalam pemrograman berbasis objek di PHP, yang berfungsi sebagai kontrak untuk implementasi method dalam class. Interface hanya berisi signature method dan harus diimplementasikan secara penuh oleh class yang menggunakannya. Selain itu, dokumen menjelaskan cara membuat interface, hak akses method, serta perbedaan antara interface dan abstract class.

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

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 pem-
rograman 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 in-
terface sering disingkan dengan ‘Interface’ saja.

Jika anda telah mempelajari abstract class, maka interface bisa dikatakan sebagai bentuk lain dari
abstract class. Walaupun secara konsep teoritis dan tujuan penggunaannya berbeda.

Sama seperti abstract class, interface juga hanya berisi signature dari method, yakni hanya nama
method 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,
maka interface 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(), dan double_klik(). Jika class laptop ‘menggunakan’ interface mouse, maka class
tersebut harus membuat ulang 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:

<?php
interface mouse
{
//...isi dari interface mouse
}
?>

Isi dari interface adalah signature method (nama dan parameter method):

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
public function scroll();
public function double_klik();
}
?>

Untuk menggunakan method kedalam class, kita menggunakan keyword implements, seperti
contoh berikut:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

class laptop implements mouse{


//... isi dari class laptop
}

class pc implements mouse{


//... isi dari class pc
}
?>

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 lap-
top yang menggunakan interface mouse, harus terdapat method klik_kanan(). Berikut contoh
kode PHPnya:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

class laptop implements mouse{


public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
}

$laptop_baru = new laptop();


echo $laptop_baru->klik_kanan();
// Klik Kanan...
?>

Apabila kita tidak membuat ulang salah satu method yang ada di interface, PHP akan mengelu-
arkan error:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

class laptop implements mouse{


public function klik_kanan(){
return "Klik Kanan...";
}
}

$laptop_baru = new laptop();


// Fatal error: Class laptop contains 1 abstract method
// and must therefore be declared abstract
// or implement the remaining methods (mouse::klik_kiri)
?>

Method Interface Harus di set Sebagai Public

Sesuai dengan tujuannya untuk membuat interface/antar muka bagi class, method di dalam per-
ancangan 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 interface
menjadi private atau protected, PHP akan mengeluarkan error:

<?php
interface mouse{
public function klik_kanan();
protected function klik_kiri();
}

class laptop implements mouse{


public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
}

$laptop_baru = new laptop();


// Fatal error: Access type for interface
// method mouse::klik_kiri() must be omitted
?>

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.

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

class laptop implements mouse{


public function klik_kanan(){
return "Klik Kanan...";
}

protected function klik_kiri(){


return "Klik Kiri...";
}
}

$laptop_baru = new laptop();


// Fatal error: Access level to laptop::klik_kiri()
// must be public (as in class mouse)
?>

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 penu-
runan class, yakni dengan menggunakan kata kunci extends:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

interface mouse_gaming extends mouse{


public function ubah_dpi();
}

class laptop implements mouse_gaming{


public function klik_kanan(){
return "Klik Kanan...";
}

public function klik_kiri(){


return "Klik Kiri...";
}

public function ubah_dpi(){


return "Ubah settingan DPI mouse";
}
}

$laptop_baru = new laptop();


echo $laptop_baru->ubah_dpi();
// Ubah settingan DPI mouse
?>

Interface Bisa Memiliki Konstanta


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

<?php
interface mouse{
const JENIS = "Laser Mouse";
public function klik_kanan();
public function klik_kiri();
}

echo mouse::JENIS;
// Laser Mouse
?>

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:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri(){
return "Klik Kiri...";
}
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
}

$laptop_baru = new laptop();


// Fatal error: Interface function
// mouse::klik_kiri() cannot contain body
?>

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 key-
word implements. Setiap nama interface dipisahkan dengan tanda koma. Berikut contoh penggu-
naan 2 buah interface di dalam PHP:

<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}

interface keyboard{
public function tekan_enter();
}

class laptop implements mouse, keyboard{


public function klik_kanan(){
return "Klik Kanan...";
}

public function klik_kiri(){


return "Klik Kiri...";
}

public function tekan_enter(){


return "Tekan Tombol Enter...";
}
}

$laptop_baru = new laptop();


echo $laptop_baru->tekan_enter();
// Tekan Tombol Enter...
?>

Dalam contoh diatas saya membuat dua buah interface, yakni mouse dan keyboard. Kedua inter-
face ini 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’ un-
tuk 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 ba-
has dalam tutorial OOP PHP selanjutnya.

Anda mungkin juga menyukai