#06 INTERFACE

 

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:

1. Tidak dapat membuat objek dari interface secara langsung.
2. Semua method di dalam interface bersifat abstrak (tidak memiliki isi), kecuali default & static method pada Java 8+.
3. Semua atribut dalam interface bersifat:
  • public
  • static
  • final
4. Sebuah class dapat meng-implement lebih dari satu interface. membolehkan “multiple inheritance” pada Java.

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: 

Sistem Pembayaran di Aplikasi Marketplace

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

1. Buat Interface Pembayaran.java
public interface Pembayaran {
    void prosesPembayaran(double jumlah);
    void cekSaldo();
}
2. TransferBank.java
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...");
    }
}
3. EWallet.java
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...");
    }
}
4. Main.java
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();
    }
}

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak