Mata Kuliah Pertemuan
: Pemrograman Berbasis Objek : 11 INTERFACE
Interface adalah cara memutuskan hubungan antara method dengan class hirarki. Dengan cara ini, maka mungkin dibuat lebih dari satu class yang tidak berhubungan dengan dalam struktur class hirarki yang mengimplementasi satu interface yang sama sehingga memiliki sekumpulan method yang sama dan dapat diakses dengan cara yang sama pula.
Pendeklarasian Interface Bentuk umum interface : access_specifier interface namainterface{ access_specifier tipe_data namvariabel1=value; …dst access_specifier tipe_data namamethod1(parameter) …dst }
Aturan mengenai pendeklarasian interface : 1. Access specifier yang dapat digunakan hanya public atau tidak ada sama sekali. 2. Semua property dalam interface bersifat static final. Oleh karena itu kita harus langsung memberikan nilai. 3. Semua method tidak memiliki implementasi, mirip dengan method abstract. 4. Kita tidak dapat membuat instance dari interface secara langsung dengan perintah new.
Contoh pendeklarasian interface : interface buku{ }
Penggunaan Interface Interface digunakan dengan cara mengimplementasikannya ke suatu class dengan menggunakan kata kunci implements. Bentuknya : access_specifier class namainterface1,..,namainterfaceN{ //implementasi }
Aturan saat mengimplementasikan interface : 1. Suatu class dapat menggunakan beberapa interface.
namaclass
implements
Mata Kuliah Pertemuan
: Pemrograman Berbasis Objek : 11
2. Dapat terjadi lebih dari satu interface yang diimplementasikan dalam suatu class, memiliki method yang sama. 3. Semua method yang diimplementasikan harus dideklarasikan sebagai public. 4. Jika tidak semua method yang dideklarasikan dalam interface diimplementasikan oleh class implementasinya, maka class tersebut harus dideklarasikan sebagai abstrak dengan menggunakan kata kunci abstract. Contoh penggunaan interface : interface infrared{ void kirimdatainfrared(String data); } interface bluetooth{ void kirimdatabluetooth(String data); } // contoh deklarasi class yang menggunakan interface class handphone implements infrared,Bluetooth{ // harus public public void kirimdatainfrared(String data){ //implementasi } public void kirimdatabluetooth(String data){ //implementasi } // method internal milik class ini sendiri public void dialnomor(String no){ //implementasi } /* class berikut harus dideklarasikan abstrak karena tidak membuat implementasi dari method yang ada pada intrerface infrared dan bluetooh*/ abstract class PDS implements bluetooth{ //tidak ada implementai dari interface bluetooth } }
Variabel Interface Dapat Mengakses Objek Implementasinya Contoh program : class perangkatelektronik{ //implementasi } class alatkomunikasi extends perangkatelektronik{ //implementasi } class mobilephone extends alatkomunikasi{ //implementasi
Mata Kuliah Pertemuan
: Pemrograman Berbasis Objek : 11
} class komputer extends perangkatelektronik{ //implementasi } class mobile extends komputer{ //implementasi } interface bluetooth{ void kirimdatabluetooth(String data); } class handphone extends mobilephone implements bluetooth{ //implementasi method dari interface bluetooth public void kirimdatabluetooth(String data){ System.out.println(“data bluetooth diterima oleh handphone : “ + data); } } class pda extends mobile implements bluetooth{ //implementasi method dari interface bluetooth public void kirimdatabluetooth(String data){ System.out.println(“data bluetooth diterima oleh pda : “ + data); } } class pengontrolbluetooth{ public void kiriminformasilewatbluetooth(bluetooth alat, String data){ alat.kirimdatabluetooth(data); } } class pengguna{ public static void main(String args[]){ handphone hp=new handphone(); pda pda1=new pda(); pengontrolbluetooth bt=new pengontrolbluetooth(); bt.kiriminformasilewatbluetooth(hp,”testing hp…”); bt.kiriminformasilewatbluetooth(pda1,”testing pda…”); } }
Pewarisan Pada Interface Pewarisan pada interface berarti semua class yang mengimplementasi interface hasil pewarisan tersebut harus mengimplementasikan semua method yang terkandung dalam interface tersebut beserta semua method yang terdapat dalam interface darimana interface tersebut diturunkan. Contoh : interface a{ void method1(); void method2(); } interface b{
Mata Kuliah Pertemuan
: Pemrograman Berbasis Objek : 11
void method3(); void method4(); } class implementasi implements b{ public void method1(){ system.out.println(“implementasi method1…”); } public void method2(){ system.out.println(“implementasi method2…”); } public void method3(){ system.out.println(“implementasi method3…”); } public void method4(){ system.out.println(“implementasi method4…”); } } class demointerface{ public static void main(String args[]){ implementasi impl=new implemetasi(); impl.method1(); impl.method2(); impl.method3(); impl.method4(); }
Mengetahui Tipe Data Pada Saat Eksekusi Program Terkadang, pada saat eksekusi program sedang berlangsung, program perlu mengetahui tipe data dari suatu objek yang sedang dimanipulasi. Contoh : class a{ public void method1(){ //implementasi } } class b extends a{ //method milik class b public void methodb(){ //implementasi } } class c extends a{ //method milik class c public void methodc(){ //implementasi } } class eksekusi{
Mata Kuliah Pertemuan
: Pemrograman Berbasis Objek : 11
public static void main(String args[]){ Boolean kondisi=false; a vara; if(vara instanceof b){ //lakukan casting ketipe data yang sebenarnya dan panggil method yang diinginkan b varb=(b) vara; varb.methodb(); } else { //lakukan casting ketipe data yang sebenarnya dan panggil method yang diinginkan c varc=(c) vara; varc.method(); } }
Instanceof digunakan untuk memeriksa apakah suatu variabel sedang mereferensi suatu class, dengan sintaks : var instanceof data_type