A. Definisi Interface dalam PBO
Dalam Java, interface adalah sebuah “kontrak” atau “janji” yang berisi kumpulan method tanpa isi (abstract method) dan/atau konstanta, yang harus di-implementasikan oleh class lain.
Interface tidak memiliki implementasi kode, hanya deklarasi.
Kelas yang menggunakan interface wajib membuat isi dari method-method yang terdapat dalam interface tersebut.
Analogi Interface
Bayangkan Anda meminjam HP teman. Teman Anda memberi aturan:
- Dilarang membuka galeri
- Boleh membuka WA
- Boleh main game
Aturan itu adalah seperti interface:
hanya berisi aturan,
tidak menjelaskan bagaimana Anda menjalankan WA atau game.
Anda yang meminjam HP adalah class yang “mengimplementasikan” aturan tersebut.
B. Konsep Dasar Interface
Karakteristik Interface:
3. Semua atribut dalam interface bersifat:
- public
- static
- final
Mengapa interface penting?
- Memisahkan aturan dengan implementasi.
- Mempermudah kerja tim: semua programmer mengikuti “blueprint” yang sama.
- Memudahkan penggantian atau penambahan fitur tanpa merusak kode lama.
- Menjadi dasar dari konsep polimorfisme dalam OOP.
C. Cara Membuat Interface di Java
1. Membuat Interface
interface Kendaraan {void nyalakanMesin();void matikanMesin();}
Keterangan:
- Tidak ada
{}dalam method → abstrak. - Method otomatis
public abstract.
2. Mengimplementasikan Interface
class Mobil implements Kendaraan {public void nyalakanMesin() {System.out.println("Mobil dinyalakan...");}public void matikanMesin() {System.out.println("Mobil dimatikan.");}}
Keterangan:
- Class Mobil wajib membuat semua method di interface Kendaraan.
- Menggunakan kata kunci
implements.
3. Memakai Interface
public class Main {public static void main(String[] args) {Kendaraan avanza = new Mobil();avanza.nyalakanMesin();avanza.matikanMesin();}}
D. Studi Kasus Interface
Studi Kasus:
Masalah:
Sebuah aplikasi marketplace ingin mendukung beberapa metode pembayaran:
- Transfer Bank
- E-Wallet (OVO, Dana)
- Kartu Kredit
Semua metode pembayaran harus memiliki fungsi:
- prosesPembayaran()
- cekSaldo()
Bagaimana agar sistem rapi dan mudah ditambah metode pembayaran baru?
Solusi: Gunakan Interface
public interface Pembayaran {void prosesPembayaran(double jumlah);void cekSaldo();}
public class TransferBank implements Pembayaran {public void prosesPembayaran(double jumlah) {System.out.println("Pembayaran via Transfer Bank: Rp " + jumlah);}public void cekSaldo() {System.out.println("Cek saldo bank...");}}
public class EWallet implements Pembayaran {public void prosesPembayaran(double jumlah) {System.out.println("Pembayaran via E-Wallet: Rp " + jumlah);}public void cekSaldo() {System.out.println("Cek saldo E-Wallet...");}}
public class Main {public static void main(String[] args) {Pembayaran bayar;bayar = new TransferBank();bayar.prosesPembayaran(150000);bayar.cekSaldo();bayar = new EWallet();bayar.prosesPembayaran(50000);bayar.cekSaldo();}}