Minggu, 20 Mei 2012

Konsep Interface


Pada Java juga dikenal konsep interface, yang merupakan device yang digunakan untuk komunikasi antar objek berbeda yang tidak memiliki hubungan apapun. Interface bisa dikatakan sebagai protokol komunikasi antar objek tersebut.

Contoh Interface.java

interface Control {
public void pindahChannel(int channel);
public void PerbesarVolume(int intensitas);
public void PerkecilVolume(int intensitas);
}

class TelevisiA implements Control {
String[] channelTv = {“RCTI”,”SCTV”,”INDOSIAR”,”TRANS TV”,”TPI”};
public void pindahChannel(int channel) {
System.out.println(“Pindah channel pada tv A ke : ” + channelTv[channel]);
}

public void PerbesarVolume(int intensitas) {
System.out.println(“Perbesar intensitas volume pada tv A sebanyak : ” + intensitas);
}

public void PerkecilVolume(int intensitas) {
System.out.println(“Perkecil intensitas volume pada tv A sebanyak : ” + intensitas);
}

}

class TelevisiB implements Control {
String[] chanTv = {“TVRI”,”LA TV”,”TV 7,”RCTI”,”SCTV”};
public void pindahChannel(int channel) {
System.out.println(“Perintah pindah channel pada tv B ke : ” + chanTv[channel]);

}

public void PerbesarVolume(int intensitas) {
System.out.println(“Perbesar intensitas volume pada tv B sebanyak : ” + intensitas);
}


public void PerkecilVolume(int intensitas) {
System.out.println(“Perkecil intensitas volume pada tv B sebanyak : ” + intensitas);
}
}

class RemoteControl {
public static final int PINDAH_CHANNEL = 1;
public static final int PERBESAR_VOLUME = 2;
public static final int PERKECIL_VOLUME = 3;
public void kirimPerintahKeTv(int aksi,Control tv,int tombol) {

switch(aksi) {
case PINDAH_CHANNEL:
tv.pindahChannel(tombol);
break;
case PERBESAR_VOLUME:
tv.PerbesarVolume(tombol);
break;
case PERKECIL_VOLUME:
tv.PerkecilVolume(tombol);
}
}
}

class Interface {
public static void main(String[] args) {
TelevisiA tvA = new TelevisiA();
TelevisiB tvB = new TelevisiB();
RemoteControl rc = new RemoteControl();

//Kirim perintah ke tvA
rc.kirimPerintahKeTv(RemoteControl.PINDAH_CHANNEL,tvA,2);
rc.kirimPerintahKeTv(RemoteControl.PERBESAR_VOLUME,tvA,5);

//Kirim perintah ke tvB
rc.kirimPerintahKeTv(RemoteControl.PINDAH_CHANNEL,tvB,1);
rc.kirimPerintahKeTv(RemoteControl.PERKECIL_VOLUME,tvB,3);
}
}

Tidak ada komentar:

Posting Komentar