You are on page 1of 6

KEGIATAN BELAJAR 14 INTERFACE

Hasil Pembelajaran Setelah menyelesaikan bahasan ini dan mengerjakan soal-soal latihan yang ada, Anda dapat : 1. Memahami apa itu interface 2. Menjelaskan karakteristik interface

Kriteria Penilaian Keberhasilan Anda dalam menguasai bab ini diukur berdasarkan kriteria kemampuan sebagai berikut : 1. Menjelaskan perbedaan interface dengan class abstrak 2. Mendeklarasikan interface 3. Melakukan pewarisan interface 4. Menggunakan interface dalam program Java

Sumber Pustaka 1. Abdul Kadir, 2005, Dasar Pemrograman Java 2, Andi, Yogyakarta. 2. Herbert Schildt, 2005, Java : A Beginners Guide, Third Edition, McGrawHill/Osborne, United States of America. 3. Herbert Schildt, Patrick Naughton , 1999, Java 2 : The Complete Reference, Fourth Edition, McGraw-Hill/Osborne, United States of America. 4. Indrajani, S.Kom., MM., Martin, S.Kom., 2007, Pemrograman Berorientasi Objek dengan Bahasa Java, PT. Elex Media Komputindo, Jakarta.

10.4. Pengertian Interface


Interface merupakan suatu mekanisme yang disediakan oleh Java yang memungkinkan berbagai konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah class. Sekilas interface mirip dengan class abstrak,

127

BAB X PACKAGE DAN INTERFACE

128

karena kelas abstrak juga menentukan bentuk metode untuk sub class. Namun interface dapat dibedakan dengan class abstrak dalam hal seperti berikut ini : 1. Class abstrak dapat mengandung metode abstrak maupun metode tidak abstrak, sedangkan hanya dapat mengandung metode abstrak. 2. Class abstrak dapat mendeklarasikan variabel instan, sedangkan interface hanya dapat mendefinisikan konstanta. 3. Class abstrak digunakan oleh class lain melalui pewarisan (melalui kata kunci extends), sedangkan interface digunakan oleh class tidak melalui mekanisme itu.

10.5. Mendeklarasikan Interface


Interface menyerupai class. Perbedaannya, kata kunci interface menggantikan kedudukan kata kunci class. Bentuk pendeklarasiannya adalah seperti berikut :
public interface NamaInterface { //metode tanpa implementasi //definisi konstanta }

Penentu akses public biasa digunakan dengan tujuan agar interface dapat diakses oleh class manapun. Jika tidak ada penentu akses public, interface hanya dapat diakses oleh class-class yang berbeda dalam package yang sama. Jika interface didefinisikan sebagai public, interface tersebut harus disimpan dengan nama depan yang sama dengan nama interface. Variabel dalam interface hanya diperkenankan untuk menggunakan penentu akses public static final, yang sebenarnya menyatakan suatu konstanta (bukan variabel). Kalaupun public static final tidak disertakan, secara implisit akan diperlukan seperti kalau public static final diberikan. Contoh berikut menunjukkan interface yang hanya berisi konstanta :
public interface Warna { public static final int HITAM = 255; public static final int PUTIH = 0;

Suheri, ST Pemrograman 3 (Pemrograman Berorientasi Objek)

BAB X PACKAGE DAN INTERFACE

129

Mengingat public static final dalam interface tidak harus disebutkan secara eksplisit, deklarasi interface Warna di atas dapat ditulis menjadi :
public interface Warna { int HITAM = 255; int PUTIH = 0; }

Adapun penentu akses untuk metode dalam interface hanya bisa berupa public static final, yang menyatakan bahwa metode bertipe abstrak. Penentu tersebut tidak harus dituliskan secara eksplisit karena Java akan menggunakan penentu tersebut sekiranya tidak disebutkan. Berikut ini contoh interface yang mengandung metode, tanpa konstanta :
public interface Bentuk { public abstract void gambar(); public abstract void tentukanWarna(); }

Perhatikan contoh kode di atas, tubuh metode gambar() dan setWarna() tidak ada, karena hanya menyertakan bentuk metode. Mengingat public abstract tidak diharuskan untuk ditulis, deklarasi interface di atas dapat ditulis menjadi seperti berikut ini :
public interface Bentuk { void gambar(); void tentukanWarna(); }

10.6. Pewarisan Interface


Suatu interface juga dapat mewarisi interface yang lain, seperti sub class mewarisi super class. Berikut ini contohnya :
public interface WarnaLebihLengkap extends Warna{ int ABU_ABU = 128; }

Suheri, ST Pemrograman 3 (Pemrograman Berorientasi Objek)

BAB X PACKAGE DAN INTERFACE

130

Pada contoh di atas, interfacei WarnaLebihLengkap tidak hanya memiliki konstanta ABU_ABU, tetapi juga HITAM dan PUTIH yang diwarisinya dari interface Warna. Berbeda dengan class, suatu interface dapat mewarisi lebih dari sebuah interface. Bentuknya seperti berikut :
public interface NamaInterface extends InterfaceA, InterfaceB { //tubuh interface }

10.7. Menggunakan Interface


Sebuah class dapat menggunakan interface melalui kata kunci implements. Bentuknya seperti berikut :
class NamaClass1 [extends NamaKelas2] implements

NamaInterface1 [,NamaInterface2] { //tubuh class }

Jika interface yang digunakan lebih dari satu, antar interface dipisahkan oleh tanda koma. Berikut ini contoh program untuk menunjukkan penggunaan interface dalam class :

Langkah 1 : Jalankan Notepad Ketiklah kode program berikut ini pada text editor notepad :
interface IntLampu { public static final int KEADAAN_HIDUP = 1; public static final int KEADAAN_MATI = 0; public abstract void hidupkan(); public abstract void matikan(); } class Lampu implements IntLampu { private int statusLampu = 0; public void hidupkan() { if (this.statusLampu == KEADAAN_MATI) { this.statusLampu = KEADAAN_HIDUP; System.out.println(Lampu Hidup); } else {

Suheri, ST Pemrograman 3 (Pemrograman Berorientasi Objek)

BAB X PACKAGE DAN INTERFACE

131

System.out.println(Lampu sudah hidup); } } public void matikan() { if (this.statusLampu == KEADAAN_HIDUP) { this.statusLampu = KEADAAN_MATI; System.out.println(Lampu Mati); } else { System.out.println(Lampu sudah mati); } } } public class TesInterface { public static void main(String args[]) { Lampu lampuKamar = new Lampu(); lampuKamar.hidupkan(); lampuKamar.hidupkan(); lampuKamar.matikan(); lampuKamar.matikan(); } }

Langkah 2 : Simpan Program Java Simpanlah kode program di atas dengan nama TesInterface.java pada direktori C:\PBO\.

Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :

Gambar 10.4 Kompilasi dan Menjalankan Program TesInterface.java

Suheri, ST Pemrograman 3 (Pemrograman Berorientasi Objek)

BAB X PACKAGE DAN INTERFACE

132

Rangkuman
1. Interface merupakan suatu mekanisme yang disediakan oleh Java yang memungkinkan berbagai konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah class. 2. Suatu interface juga dapat mewarisi interface yang lain, seperti sub class mewarisi super class.

Soal-soal Latihan
1. Apa manfaat interface? 2. Apakah interface dan class yang mengimplementasikan interface harus terletak dalam berkas yang sama? 3. Buatlah sebuah interface bernama
Control

dan

ubahlah

class

TelevisiModern yang telah dibuat pada soal-soal latihan di Bab 8 agar

mengimplementasikan interface Control ini sehingga semua fungsi objek class TelevisiModern tersebut dapat diakses melalui interface tersebut. Buat juga sebuah class baru bernama RemoteControl dimana objek class inilah yang akan menggunakan interface Control untuk mengakses fungsi objek dari class TelevisiModern tersebut!

Suheri, ST Pemrograman 3 (Pemrograman Berorientasi Objek)

You might also like