Contoh Penerapan Interface di Pemrograman Java

Dalam pemrograman Java kita mengenal adanya Class dan Interface. Class adalah template dari suatu object. Di dalam sebuah class kita bisa mendefinisikan atribut-atribut yag mewakili data-data yang dimiliki oleh sebuah object, di dalam Class juga didefinisikan method-method / fungsi yang mewakili behaviour atau operasi yang bisa dilakukan oleh suatu object.

Sedangkan Interface sendiri bisa dianalogikan sebagai template dari class. Di dalam sebuah Interface terdapat method-method abstract, ada nama method beserta parameternya namun isi / code dari method di dalam Interface tersebut belum dituliskan. Untuk menggunakan Interface kita perlu membuat Class yang mengimplementasikan Interface tersebut, Class yang dibuat nanti otomatis akan memiliki method-method yang dituliskan di dalam Interface dan kode dari method-method tersebut dituliskan dalam Class yang dibuat.

Agar lebih jelas mari kita simat ilustrasi berikut :
Kita akan membuat sebuah Interface dengan nama BangunDatar. Di dalam Interface BangunDatar tersebut kita tuliskan method hitungLuas. Method hitungLuas dapat digunakan untuk menghitung luas sebuah bangun datar. 

Untuk membuat Interface, misal menggunakan Apache Netbeans, klik kanan pada nama package kemudian pilih New --> Java Interface.


Code dari Interface BangunDatar sebagai berikut

// file BangunDatar.java
public interface BangunDatar {
    double hitungLuas();
}

Isi method hitungLuas belum kita tulis di dalam Interface, rumus menghitung luas sebuah bangun datar akan sangat ditentukan oleh jenis bangun datarnya, misal rumus luas segitiga berbeda dengan rumus luas persegi panjang. Untuk itu kita buat Class baru yang mengimplements Interface BangunDatar. Misal kita buat class Segitiga dan class PersegiPanjang.

// file Segitiga.java
public class Segitiga {

}
// file PersegiPanjang.java
public class PersegiPanjang {

}

Tambahkan implements BangunDatar setelah nama class

// file Segitiga.java
public class Segitiga implements BangunDatar {

}
// file PersegiPanjang.java
public class PersegiPanjang implements BangunDatar {

}

Akan muncul baris code yang diberi tanda merah, klik pada icon lampu di sebelah kiri, pilih Implement all abstract method


Method hitungLuas akan ditambahkan ke dalam class

Ubah source code dengan menambahkan atribut yang diperlukan dan menuliskan rumus untuk menghitung luas bagi masing-masing jenis bangun datar di dalam method hitungLuas.

// file Segitiga.java
public class Segitiga implements BangunDatar {
    int alas, tinggi;
    
    // constructor, masukkan alas dan tinggi segitiga
    public Segitiga(int alas, int tinggi){
        this.alas = alas;
        this.tinggi = tinggi;
    }
    
    @Override
    public double hitungLuas() {
        double luas = (alas * tinggi) / 2;
        return luas;
    }
}
// file PersegiPanjang.java
public class PersegiPanjang implements BangunDatar {
    int panjang, lebar;
    
    // constructor, masukkan panjang dan tinggi
    public PersegiPanjang(int panjang, int lebar){
        this.panjang = panjang;
        this.lebar = lebar;
    }

    @Override
    public double hitungLuas() {
        double luas = panjang * lebar;
        return luas;
    }
    
}

Contoh penggunaan class di dalam method main adalah sebagai berikut

// file LuasBangunDatar.java
public class LuasBangunDatar {
    public static void main(String[] args) {
        Segitiga segitiga = new Segitiga(12, 50);
        PersegiPanjang persegiPanjang = new PersegiPanjang(20, 30);
        System.out.println("luas segitiga dengan alas 12 dan tinggi 50 = "+segitiga.hitungLuas());
        System.out.println("luas persegi panjang dengan panjang 20 dan lebar 30 = "+persegiPanjang.hitungLuas());
    }
}

Comments

Popular posts from this blog

Contoh Inheritance (Pewarisan) di Java

Deploy CodeIgniter 3 Menggunakan Docker

Physical address dan Logical Address (1)