Sitemap
Adnan Tsaqif

Adnan Tsaqif

PBO : INTERFACE

DASAR TEORI

6 min read1 day ago

--

Interface dalam Java adalah bentuk kontrak dalam pemrograman berorientasi objek yang mendefinisikan metode tanpa implementasi. Interface mirip dengan kelas abstrak, tetapi interface hanya mendeklarasikan metode yang perlu diimplementasikan oleh kelas yang menggunakannya. Interface juga tidak dapat memiliki atribut non-final, dan semua metodenya adalah public dan abstract secara default.
Interface berbeda dengan class karena di dalamnya hanya berisi method kosong dan konstanta. Method-method dalam interface tidak memiliki statement atau implementasi, sehingga deklarasi method dalam interface sama dengan deklarasi abstract method pada abstract class. Semua method yang dideklarasikan dalam interface secara otomatis bersifat public dan abstract, sementara variabel dalam interface adalah public, static, dan final secara default.

Mengimplementasikan interface

Ketika sebuah class mengimplementasikan suatu interface, class tersebut akan memperoleh semua konstanta dan method yang ada di dalam interface. Berbeda dengan pewarisan class, interface hanya menyediakan kontrak tanpa implementasi, sehingga class yang mengimplementasikan interface bertanggung jawab untuk menyediakan kode atau logika pada setiap method yang ada dalam interface tersebut. Konstanta dalam interface, yang bersifat public, static, dan final, akan dapat diakses oleh class yang mengimplementasikannya seperti layaknya variabel global.
Jika sebuah class memilih untuk tidak mengimplementasikan semua method yang dideklarasikan dalam interface, class tersebut harus dideklarasikan sebagai abstract. Deklarasi ini menandakan bahwa class belum sepenuhnya mengimplementasikan kontrak yang diberikan oleh interface dan tidak bisa diinstansiasi secara langsung. Class abstract ini kemudian dapat diwariskan ke subclass lain yang akan melengkapi implementasi method-method yang masih kosong.

Inheritance pada interface

Kita dapat membuat subinterface dengan menggunakan kata kunci extends, yang memungkinkan satu interface mewarisi dari interface lainnya. Selain itu, satu class memiliki fleksibilitas untuk mengimplementasikan lebih dari satu interface, yang memungkinkan penggunaan beberapa kontrak atau fungsi dalam satu class tanpa mengikuti pewarisan class tunggal.
Walaupun interface tidak termasuk dalam hierarki class, interface tetap dapat memiliki hubungan melalui konsep inheritance atau pewarisan. Artinya, sebuah interface bisa mewarisi banyak interface lainnya melalui extends, menggabungkan method-method dari beberapa interface tersebut untuk memperluas fungsionalitasnya.

Implementasi Multiple Interface Sebuah class dapat

mengimplementasikan lebih dari satu interface, memungkinkan penerapan berbagai fungsi atau kontrak dalam satu class. Jika class tersebut juga akan menjadi subclass dan mewarisi dari class lain sambil mengimplementasikan interface, maka urutan penulisan yang benar adalah menuliskan kata kunci extends terlebih dahulu diikuti oleh implements untuk interface.

Kegunaan Interface Ketika sebuah class mengimplementasikan interface tertentu, class tersebut harus menyediakan implementasi untuk semua method yang didefinisikan oleh interface tersebut. Hal ini berarti setiap class yang mengadopsi interface tersebut memiliki kumpulan method dengan nama dan signatur yang sama, sesuai dengan kontrak yang ditentukan oleh interface.
Dengan memiliki method-method yang identik, class-class tersebut memiliki dasar fungsionalitas yang sama meskipun mungkin diterapkan dengan cara yang berbeda sesuai kebutuhan masing-masing class. Interface memungkinkan berbagai class untuk beroperasi dengan metode serupa, yang mendukung pola desain yang konsisten di seluruh aplikasi atau sistem.
Pada dasarnya, semua class yang mengimplementasikan sebuah interface tertentu membagikan kemampuan atau tanggung jawab yang sama, memungkinkan mereka untuk digunakan secara interchangeable dalam konteks yang memerlukan fungsionalitas tersebut. Ini memberikan keuntungan fleksibilitas dan skalabilitas, terutama ketika diperlukan perluasan fitur pada aplikasi yang kompleks.

Karakteristik Metode

  • Deklarasi Metode Tanpa Implementasi: Interface hanya memiliki deklarasi metode, sedangkan implementasi dilakukan oleh kelas yang mengimplementasikan interface tersebut.
  • Multiple Inheritance: Sebuah kelas dapat mengimplementasikan lebih dari satu interface, sehingga interface mendukung pewarisan berganda.
  • Kata Kunci implements: Kelas yang ingin menggunakan interface harus menggunakan keyword implements.

Perbedaan Interface dan kelas abstrak

Meskipun dalam interface mempunyai kemiripan secara konsep dengan kelas abstrak, akan tetapi interface berbeda dengan kelas abstrak. Perbedaan interface dengan kelas abstrak dapat kita lihat dalam tabel berikut :

PRAKTIKUM

  1. Membuka NetBeans terlebih dahulu kemudian buatlah proyek dengan nama praktikumPBO_10
  2. Buat package baru dengan nama praktikum10
  3. Buat Class OperasiHitung dengan kode seperti ini
public interface OperasiHitung {
int hitung (int a, int b);
}

4. lalu buat class yang mengimplementasikan class Operasi Hitung

Get Adnan Tsaqif’s stories in your inbox

Join Medium for free to get updates from this writer.

Penjumlahan:

public class Penjumlahan implements OperasiHitung {
@Override
public int hitung(int a, int b) {
return a + b;
}
}

Pengurangan:

public class Pengurangan implements OperasiHitung {
@Override
public int hitung(int a, int b) {
return a - b;
}
}
Press enter or click to view image in full size

5. Lalu buat Main Class untuk menjalankannya

public class MainClass {
public static void main(String[] args) {
OperasiHitung penjumlahan = new Penjumlahan ();
System.out.println("penjumlahan: " +
penjumlahan.hitung(10, 5));

OperasiHitung pengurangan = new Pengurangan();
System.out.println("pengurangan: " +
pengurangan.hitung(10, 5));
}
}

OUTPUT:

TUGAS 10

Soal

Anda diminta untuk membuat program sistem pembayaran untuk sebuah toko yang menjual dua jenis produk: Elektronik dan Makanan. Setiap produk memiliki metode untuk menghitung pajak, di mana Elektronik dikenakan pajak sebesar 10% dan Makanan sebesar 5%. Instruksi :

  • Buat interface Pembayaran dengan metode hitungPajak(double harga).
public interface Pembayaran {
double hitungPajak(double harga);
}
  • Buat kelas Elektronik yang mengimplementasikan interface Pembayaran dan mengisi metode hitungPajak() untuk menghitung pajak sebesar 10% dari harga.
public class Elektronik implements Pembayaran {

@Override
public double hitungPajak(double harga) {
return harga * 0.10;
}
}
  • Buat kelas Makanan yang mengimplementasikan interface Pembayaran dan mengisi metode hitungPajak() untuk menghitung pajak sebesar 5% dari harga.
public class Makanan implements Pembayaran {

@Override
public double hitungPajak(double harga) {
return harga * 0.05;
}
}
  • Buat kelas Main yang membuat objek dari Elektronik dan Makanan, lalu panggil metode hitungPajak() untuk setiap produk dan tampilkan hasilnya.
public class Main {
public static void main(String[] args) {

Elektronik elektronik = new Elektronik();
Makanan makanan = new Makanan();

System.out.println("=== SISTEM PEMBAYARAN TOKO ===");

// Harga produk
double hargaElektronik = 7500000;
double hargaMakanan = 50000;

// Menghitung pajak
double pajakElektronik =
elektronik.hitungPajak(hargaElektronik);

double pajakMakanan =
makanan.hitungPajak(hargaMakanan);

// Menghitung total pembayaran
double totalElektronik =
hargaElektronik + pajakElektronik;

double totalMakanan =
hargaMakanan + pajakMakanan;

// Menampilkan hasil
System.out.println("\nProduk Elektronik");
System.out.println("Harga : Rp " + hargaElektronik);
System.out.println("Pajak 10% : Rp " + pajakElektronik);
System.out.println("Total : Rp " + totalElektronik);

System.out.println("\nProduk Makanan");
System.out.println("Harga : Rp " + hargaMakanan);
System.out.println("Pajak 5% : Rp " + pajakMakanan);
System.out.println("Total : Rp " + totalMakanan);
}
}

OUTPUT:

REFERENSI:

Modul 10 : Interface
Dosen : Imam Adi Nata, M.Kom.

--

--