Interface

Apakah Interface itu ??

  • Adalah Jenis khusus dari blok yang hanya berisi method signature (atau constant ). Interface mendefinisikan sebuah  kumpulan method tanpa tubuh.
  • Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme.
  • Interface pada bahasa pemrograman Java sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interface dapat diimplementasikan oleh kelas lain. Sebuah kelas dapat mengimplementasikan lebih dari satu interface bahwa kelas ini akan mendeklarasikan metode pada interface yang dibutuhkan kelas itu sekaligus mendefiniskan isinya pada kode program kelas itu. Metode pada interface yang diimplementasikan pada suatu kelas harus sama persis dengan yang ada pada interface
Kapan kita memakai Interface ??

  • Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah-olah class yang berhubungan
  • Alasan lain dalam menggunakan interface pemrograman object adalah untuk menyatakan sebuah interface pemrograman object tanpa menyatakan classnya. Seperti yang dapat kita lihat nanti dalam bagian Interface vs class.
  • Pada akhirnya, kita perlu menggunakan interface untuk pewarisan model jamak dimana menyediakan class untuk mempunyai lebih dari satu superclass. Pewarisan jamak tidak ditunjukkan di Java, tetapi ditunjukkan di bahasa berorientasi object lain seperti C++.
Contoh 1:
Buatlah java model Bentuk (interface) yang terdiri dari method di bawah ini.

*   double keliling();
*   double  luas();

Source Code:

Class bangun = super class

package tugas1;

public interface bangun {

double luas();

double keliling();

}

Class lingkaran = sub class

package tugas1;

public class lingkaran implements bangun {

double r;

final double phi = 3.14;

public lingkaran(double jari) {

this.r = jari;

}

public double luas() {

return (phi * r * r);

}

public double keliling() {

return (2 * phi * r);

}

}

Class persegi = sub class

package tugas1;

public class persegi implements bangun {

double s;

public persegi(double sisi) {

this.s = sisi;

}

public double luas() {

return (s * s);

}

public double keliling() {

return (4 * s);

}

}

Class segitiga = sub class

package tugas1;

public class segitiga implements bangun {

double a, t;

public segitiga(double alas, double tinggi) {

this.a = alas;

this.t = tinggi;

}

public double luas() {

return ((a * t) / 2);

}

public double keliling() {

return (a + t + Math.sqrt(Math.pow(a, 2) + Math.pow(t, 2)));

}

}

Class uji_bangun = main class

package tugas1;

public class uji_bangun {

public static void main(String[] rei) {

persegi persegi = new persegi(5);

segitiga segitiga = new segitiga(6, 10);

lingkaran lingkaran = new lingkaran(7);

System.out.println(“Persegi : “);

System.out.println(“Luas = ” + persegi.luas());

System.out.println(“Keliling = ” + persegi.keliling());

System.out.println(“——————————–“);

System.out.println(“Segitiga : “);

System.out.println(“Luas = ” + segitiga.luas());

System.out.println(“Keliling = ” + segitiga.keliling());

System.out.println(“——————————–“);

System.out.println(“Lingkaran: “);

System.out.println(“Luas = ” + lingkaran.luas());

System.out.println(“Keliling = ” + lingkaran.keliling());

System.out.println(“——————————–“);

}

}

Contoh 2:

  • Buatlah sebuah class BankImplement yang mengimplentasikan intarface :

interface  Bank{
void   deposit (double Amount);
boolean   withdraw  (double Amount);
double cekSaldo();
}

  • Buatlah class BankApp  yang mensimulasikan angka acak dari transaksi deposit “menabung”  dan withdraw  “mengambil uang”  dari Bank yang sudah mempunyai uang tabungan. Nilai transaksi baik penarikan ataupun deposit dibuat random 0 – 99999. Pengambilan tidak bisa dilakukan jika sisa uang tabungan kurang dari nol (0).
Sample :
input  lewat konstruktor BankApp 125000Output :

Saldo Awal = 125000
witdrawal  = 25000, Saldo = 100000
Deposit = 7000, Saldo = 107000
widrawal = 90000, Saldo = 17000
widrawal = 20000,  widrawal is rejected, Saldo = 17000
deposit = 10000, Saldo = 27000.
Source Code:

Class bank = super class

package tugas2;

public interface bank {

void deposit(int amount);

boolean withDrawal();

int saldoCheck();

}

Class implement_bank = main class

package tugas2;

public class implement_bank {

int deposit;

int amount;

public static void main(String[] rei) {

implement_bank atm = new implement_bank();

atm.deposit(10000000);

System.out.println(“WithDrawal = ” + atm.withDrawal());

System.out.println(“———————————-“);

System.out.println(“Your Saldo = ” + atm.saldoCheck());

}

public void deposit(int amount) {

this.deposit = amount;

System.out.println(“Your First Saldo = ” + this.deposit);

}

public boolean withDrawal() {

for (int x = 0; x <= this.deposit; x++) {

this.amount = (int) (Math.random() * 99999);

if (this.deposit <= this.amount) {

System.out.println(“WithDrawal = ” + this.amount);

System.out.println(“\n” + “Saldo Anda Tidak Mencukupi”);

break;

} else {

this.deposit -= this.amount;

System.out.println(“WithDrawal = ” + this.amount);

System.out.println(“\n” + “Saldo = ” + this.deposit);

}

}

return (false);

}

public int saldoCheck() {

return (this.deposit);

}

}
Gimana ?? mudah bukan pakai interface ?? so, coba-coba gag ada salahnya kann ^^

Leave a comment