Thursday, October 16, 2014

Interface Pada Java

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya.
Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut.
Interface digunakan jika ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance.
Tipe data yang boleh pada interface hanya tipe data konstan.

Beberapa perbedaan Interface dan Kelas Abstrak yaitu :
Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta
Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.
Berikut ini adalah aturan yang harus kita ingat tentang pendeklarasian interface:
  1. Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
  2. Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final. Karena itu waktu pendeklarasian harus diberikan nilai.
  3. Semua method adalah abstrak. Bedanya dengan class abstrak adalah kita tidak perlu menuliskan keyword abstract pada saat mendeklarasikan method dalam interface.
  4. Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan memisahkan nama dari setiap interface dengan tanda koma.
  5. Dapat terjadi saat kita mengimplementasikan lebih dari satu interface ternyata interface – interface tersebut memiliki method yang sama. Dalam hal ini method yang akan diimplementasi adalah method yang berada pada posisi pertama.
  6. Semua method yang diimplemetasikan harus public.
  7. Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class.

Contoh

GraphicObject.java
abstract class GraphicObject {
int x,y;
void moveTo(int newValueX, int newValueY)
{
x = newValueX;
y = newValueY;
}
abstract void drawShape();
abstract void resize();

}
Circle.java
public class Circle extends GraphicObject {


void resize()
{
   System.out.println(“Circle Resize”);
}
void drawShape()
{
  System.out.println(“Circle Shape”);
}

void posisition()
{
    System.out.println(this.x+this.y);
}
}

Main.java
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Circle Lingkaran = new Circle();
Lingkaran.moveTo(5,5);
Lingkaran.drawShape();
Lingkaran.resize();
Lingkaran.posisition();
}

}


Implementasi Interface dalam Aplikasi
Dalam membuat aplikasi kita menggunakan berbagai jenis database dengan gaya pemograman yang berbeda Java memberikan fasilitas untuk menjebatani perbedaan tersebut dengan apa yang di sebut interface.
Iterface lebih mempermudah sistem analyst dalam membuat konsep aplikasi, interface mirip dengan pola atau bisa juga disebut cetak biru aplikasi.  Cara kerjanya adalah berdasarkan prinsip semua proses yang ada di java harus menggunakan object variabel dari java, jadi yang dikenal adalah object java bukan dari luar.
Interface tidak berisi perintah kepada system untuk melakukan sesuatu, interface hanya memetakan apa yang harus dikirimkan dan apa yang diharapkan untuk dikembalikan

Contoh Program



public class InterfaceSegitiga implements InterfaceBangunDatar {
    private double alas;
    private double tinggi;
    public String getJenis() {
        return JENIS;
    }
    public InterfaceSegitiga(double alas, double tinggi) {
        this.alas = alas;
        this.tinggi = tinggi;
    }
    public double hitungLuas() {
        return alas * tinggi * 0.5;
    }
    public double hitungKeliling() {
        return alas * 3;
    }
}
public class InterfaceSample {
    public static void main(String[] args) {
        InterfaceBujurSangkar obyek1 = new InterfaceBujurSangkar(10);
        System.out.println("Jenisnya adalah : "+obyek1.getJenis());
        System.out.println("Luas bujur sangkar dengan sisi 10 = "+obyek1.hitungLuas());
        System.out.println("Kelilingnya = "+obyek1.hitungKeliling());
        InterfaceSegitiga obyek2 = new InterfaceSegitiga(5,7.5);
        System.out.println("Jenisnya adalah : "+obyek2.getJenis());
        System.out.println("Luas segitiga dengan alas 5 dan tinggi 7.5 = "+obyek2.hitungLuas());
        System.out.println("Kelilingnya = "+obyek2.hitungKeliling());
    }
}
Hasil Run :
Jenisnya adalah : Bangun Datar 2D
Luas bujur sangkar dengan sisi 10 = 100.0
Kelilingnya = 40.0
Jenisnya adalah : Bangun Datar 2D
Luas segitiga dengan alas 5 dan tinggi 7.5 = 18.75
Kelilingnya = 15.0
BUILD SUCCESSFUL (total time: 0 seconds)

No comments:

Post a Comment