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
- 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++.
* double keliling();
* double luas();
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(“——————————–“);
}
}
- 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).
witdrawal = 25000, Saldo = 100000
Deposit = 7000, Saldo = 107000
widrawal = 90000, Saldo = 17000
widrawal = 20000, widrawal is rejected, Saldo = 17000
deposit = 10000, Saldo = 27000.
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);
}