Pengumpan:
Tulisan
Komentar

Interface oh Interface…

Salah satu konsep OOP (Object Oriented Programming) / PBO (Pemrograman Berbasis Objek) ada yang namanya Inheritance (pewarisan). Dalam bahasa pemrograman java, pewarisan maksudnya suatu objek dapat menurunkan atribut-atribut (sifat/ciri yang melekat pada objek) dan behaviornya (tingkah laku/yang dapat dilakukan oleh objek) kepada objek lain. Bahasa teknisnya, suatu class (yang merupakan blueprint/cetak biru/cetakan dari objek) dapat mewariskan semua variabel (variabel: atribut yang melekat pada objek) dan method (method: behavior objek) pada subclass (class yang mewarisi class pertama (parent class).

Nah, dalam java, suatu class boleh mempunyai banyak subclass tetapi hanya boleh mempunyai satu parent class. Ketika suatu class ingin menerapkan variabel dan method dari dua class, atau tiga class, atau lebih gimana? Jawabnya pake interface. Interface merupakan class yang mempunyai method tanpa implementasi/method tanpa body (detil dari bagaimana cara bekerjanya method belum ditentukan). Suatu class dapat mengextends (menjadi subclass) dari suatu class, dan apabila ingin menerapkan suatu method dari class lain, maka digunakanlah interface (interface digunakan sebagai pengganti parent class yang lain yang akan diterapkan method-methodnya pada subclass tersebut) yang mana method-method interface tadi dapat diimplementasikan (diterapkan) pada class yang mengimplements interface tersebut.

Interface juga dapat berfungsi sebagai contract/template (suatu kerangka yang telah ditentukan, dalam hal ini method-method dengan body kosong). Analoginya seperti ini, ada sebuah perusahaan hand phone, perusahaan tersebut menetapkan sebuah standar fitur untuk semua hand phone yang akan diproduksi. Standar fitur tersebut adalah dapat mengirim dan menerima suara, dapat mengirim dan menerima teks, dapat mengirim dan menerima gambar, dapat mengirim dan menerima manusia (wew… hand phone yang keren..). Kemudian standar ini diterapkan kepada semua divisi perusahaan, tiap divisi akan membuat hand phone yang mempunyai fitur standar tersebut. Nah, tiap divisi ini akan menerapkan metode yang berbeda untuk membuat hand phone ini bekerja, misalnya satu divisi, metode untuk pengiriman suara menggunakan jaringan GSM, divisi lainnya menggunakan jaringan CDMA; satu divisi lagi, metode pengiriman manusia menggunakan teknik penguraian dan penyusunan kembali partikel, yang lainnya menggunakan teknik delivery service dengan membuat agen pesawat jet khusus di seluruh negara :D

Pembuatan standar fitur hand phone seperti di atas sama dengan membuat interface (=hand phone) yang mempunyai method-method (=fitur hand phone) tanpa implementasi (=tanpa mengetahui bagaimana cara fitur tersebut bekerja) sebagai standar fitur untuk class yang mengimplementasikan interface tersebut. Kemudian divisi-divisi perusahaan yang mengerjakan pembuatan hand phone dengan standar fitur yang telah ditetapkan tadi sama dengan class yang mengimplementasikan interface. Class tersebut membuat “the real” method dari method-method interface tadi.

Ilustrasi seperti di atas menunjukkan bahwa interface sangat membantu ketika suatu project dikerjakan oleh banyak programmer, karena analis sistem/perancang sistem dapat membuat interface sebagai sebuah standar dalam project untuk kemudian tugas programmerlah yang akan mengimplementasikan interface tersebut.

Bingung dengan penjelasan di atas? Langsung saja dibuat contohnya:

ada lima class dan dua interface, click pada masing-masing class untuk melihat source codenya:

1. class HandPhone

2. class HPType1

3. class HPType2

4. class HPType3

5. class AksiHp

6. interface GSM

7. interface CDMA

Ada 3 type HP yang dibuat, HPType1, HPType2, HPType3. Masing-masing type HP menjadi subclass dari class HandPhone dan masing-masing type HP mewarisi semua variable dan method class HandPhone. Sekarang masing-masing type HP ini akan menggunakan jaringan GSM atau CDMA atau keduanya. Karena dalam java tidak boleh ada lebih dari 1 parent class, maka digunakanlah interface, yaitu dengan membuat interface GSM dan interface CDMA yang keduanya dapat diimplementasikan pada masing-masing type HP.

TEKNIS

deklarasi interface adalah seperti dibawah ini:

public interface NamaInterface {

void methodInterface(); /*access modifier method pada interface hanya diperbolehkan public atau tanpa ditulis access modifiernya*/

}

/*di bawah ini adalah class

yang mengimplementasikan interface*/

public class NamaClass implements NamaInterface {

public void methodInterface() {

//…implementasi method

}}

Ikuti

Get every new post delivered to your Inbox.