Anda di halaman 1dari 18

Pemrograman Berorientasi Objek

Abstract Class dan


Interface
Team Teaching
Universitas Brawijaya
Tentang Abstract Class

Berikut beberapa hal yang harus diperhatikan, yaitu:


Pada dasarnya, abstract class adalah class biasa
Umumnya abstract class menempati hierarki tertinggi
Mendefinisikan method-method tanpa body (kosong), yang
juga adalah abstract method
Boleh memiliki method yang memiliki body (konkret)
Ketika abstract class di-extend, maka subclass wajib
meng-override semua method kosong dari abstract class
tersebut, jika tidak, maka subclass tersebut harus diubah
menjadi abstract class
Penulisan Abstract Class
Format penulisan abstract class:
[modifier] abstract class <NamaClass>
Contoh :
public abstract class BangunDatar{}
abstract class MahklukHidup{}

Format penulisan abstract method:


[modifier] abstract <returnType>
<namaMethod> ([*parameter]);
Contoh :
public abstract double luas();
public abstract void keliling(double x, double y);
Contoh Abstract Class
Contoh format lengkap dari abstract class:

public abstract class BangunDatar {


public void cetak(){
System.out.println("\nIni adalah Kelas Abstrak");
}

public abstract double luas();


public abstract double keliling();
}
Contoh Abstract Class (2)
class Persegi extends BangunDatar{
public double sisi;

public Persegi(double sisi){


this.sisi = sisi;
}

public double luas(){


return sisi*sisi;
}

public double keliling(){


return sisi*4;
}
}
Contoh Abstract Class (3)
class PersegiPanjang extends BangunDatar{
public double panjang;
public double lebar;

public PersegiPanjang(double panjang, double lebar){


this.panjang = panjang;
this.lebar = lebar;
}

public double luas(){


return panjang*lebar;
}

public double keliling(){


return (2*panjang)+(2*lebar);
}
}
Contoh Abstract Class (4)
class Program{
public static void main(String[] args){
Persegi psg = new Persegi(3);
PersegiPanjang psgpjg = new PersegiPanjang(5, 7);

psg.cetak();
System.out.println("Rumus Persegi\n=====");
System.out.println("Luas Persegi : "+ psg.luas());
System.out.println("Keliling Persegi : "+
psg.keliling());

psgpjg.cetak();
System.out.println("Rumus Persegi Panjang\n=====");
System.out.println("Luas Persegi Panjang : "+
psgpjg.luas());
System.out.println("Keliling Persegi Panjang : "+
psgpjg.keliling());
}
}
Contoh Abstract Class (5)
Tentang Abstract Class

Abstract class tidak bisa dibuat instance-nya, melainkan


harus di-extend
Suatu abstract class dapat di-extend oleh abstract class yang
lain
Interface
Interface adalah blok yang berisi kumpulan method tanpa
body (kosong/abstrak). Ketika sebuah class
mengimplementasikan interface, maka class tersebut tidak
ada hubungan hierarki dengan interface yang
diimplementasikan

Kenapa harus menggunakan interface?


Ketika ada dua atau lebih class yang tidak memiliki hubungan
hierarki, tetapi class-class tersebut ingin memiliki method
yang sama, maka kita menggunakan interface
Contoh Kasus Interface
Contoh kasus nyata:
Di sebuah SD terdapat 3 orang siswa, yang bernama Adi, Budi,
dan Cecep. Ketiga siswa tersebut tidak memiliki hubungan
keluarga sama sekali. Tetapi ketiga siswa tersebut terikat oleh
aturan yang sama, padahal ketiga siswa tersebut memiliki orang
tua yang berbeda

Konsep seperti ini disebut interface


Tentang Interface
Berikut adalah beberapa hal yang harus diperhatikan, yaitu :
Interface setara dengan class, sehingga aturan penamaannya
sama dengan class.
Ketika mengimplementasikan interface, maka class tersebut
tidak menjadi anak dari interface tersebut. Dengan kata lain
tidak ada hubungan hierarki.
Bisa digunakan bersamaan dengan meng-extends class.
Boleh mengimplementasikan lebih dari satu interface.
Interface berisikan method-method tanpa body (kosong), dan
tidak boleh ada method isi.
Ketika class mengimplementasikan interface, maka class
tersebut wajib meng-override semua method kosong dari
interface tersebut, jika tidak maka program akan error.
Penulisan Interface
Berikut adalah format penulisan interface, yaitu :
[modifier] interface <NamaInterface>
Contoh :
public interface ContohInterface{}
interface InterfaceWhatever{}

Berikut adalah format penulisan method kosong, yaitu :


[modifier] <returnTipe> <namaMethod> ([*parameter]);
Contoh :
public double luas();
public void keliling(double x, double y);
Contoh Interface
Berikut contoh format lengkap dari interface:

interface Interface1{
public String cetakStr1(String x);
public String cetakStr2(String x);
}

interface Interface2{
public String cetakInt1(int x);
public String cetakInt2(int x);
}
Contoh Interface (2)
class CetakInfo implements Interface1, Interface2{
public String cetakStr1(String x){
return "Cetak String 1 : "+ x;
}
public String cetakStr2(String x){
return "Cetak String 2 : "+ x;
}
public String cetakInt1(int x){
return "Cetak Integer 1 : "+ x;
}
public String cetakInt2(int x){
return "Cetak Integer 2 : "+ x;
}
}
Contoh Interface (3)

class Program{
public static void main(String[] args){
CetakInfo cetak = new CetakInfo();
System.out.println(cetak.cetakStr1("Halo Bandung"));
System.out.println(cetak.cetakStr2("Halo Jakarta"));
System.out.println(cetak.cetakInt1(12));
System.out.println(cetak.cetakInt2(7));
}
}
Contoh Interface (4)
Abstract Class vs. Interface
Abstract Class Interface
Boleh memiliki method
Hanya berisi method kosong
konkret
Di-extend Di-implement
Ketika di-extend, maka semua
Ketika di-implement, maka
method kosong harus
semua method kosong harus
di-override, jika tidak maka
di-override, jika tidak maka
class tersebut harus diubah
program akan error
menjadi abstract class
Satu class hanya bisa Satu class bisa
meng-extend satu class biasa meng-implement lebih dari
atau class abstract satu interface

Anda mungkin juga menyukai