Anda di halaman 1dari 20

BAB VIII

ABSTRACT CLASS
DAN INTERFACE
Abstract Class
Definisi class adalah blueprint/rancangan/desain sebelum
dibuatkan objek. Objek dibuat berdasarkan desain (class
tersebut). Namun, tidak semua class bisa dijadikan objek.

Contoh kasus nyata :


 Misal ada seorang desainer pakaian men-desain kemeja batik
bertangan panjang, maka desain tersebut bisa dibuatkan
bajunya oleh desainer tersebut.
 Misal seorang anak menggambar pemandangan dua buah
gunung dan diantara gunung tersebut ada matahari, maka
gambar tersebut tidak mungkin bisa dibuatkan aslinya.

Desain/gambar yang tidak mungkin dibuatkan objeknya disebut


Class Abstract. Bella Hardiyana, S.Kom
Tentang Abstract Class
Berikut beberapa hal yang harus diperhatikan, yaitu :
 Pada dasarnya Abstract Class adalah Class biasa.
 Umumnya abstract class menempati hirarki tertinggi.
 Mendefinisikan method-method tanpa body (kosong), yang
juga adalah method abstract.
 Boleh memiliki method yang memiliki body (isi).
 Ketika class abstract di extends, maka subclass wajib meng-
override semua method kosong dari class abstract tersebut,
jika tidak maka subclass tersebut akan berubah menjadi
class abstract.

Bella Hardiyana, S.Kom


Penulisan Abstract Class
Berikut adalah format penulisan class abstract, yaitu :
<modifier> abstract class <NamaClass>
Contoh :
public abstract class BangunDatar{}
abstract class MahklukHidup{}

Berikut adalah format penulisan method abstract, yaitu :


<modifier> abstract <returnTipe>
<namaMethod> (<*parameter>);
Contoh :
public abstract double luas();
public abstract void keliling(double x, double y);

Bella Hardiyana, S.Kom


Contoh Abstract Class
Berikut contoh format lengkap dari abstract class, yaitu :

public abstract class BangunDatar{


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

public abstract double luas();


public abstract double keliling();
}

Bella Hardiyana, S.Kom


Contoh Praktikum Abstract Class (1)
abstract class BangunDatar{
public void cetak(){
System.out.println("\nIni adalah Kelas
Abstrak");
}

public abstract double luas();


public abstract double keliling();
}

Bella Hardiyana, S.Kom


Contoh Praktikum 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;
}
}
Bella Hardiyana, S.Kom
Contoh Praktikum 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);
}
} Bella Hardiyana, S.Kom
Contoh Praktikum 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());
}
}
Bella Hardiyana, S.Kom
Contoh Praktikum Abstract Class (5)

Bella Hardiyana, S.Kom


Interface
Interface adalah blok yang berisi kumpulan method tanpa body
(kosong). Ketika sebuah class mengimplementasikan interface,
maka class tersebut tidak ada hubungan hirarki dengan
interface yang diimplementasi.

Kenapa harus menggunakan interface.


Ketika ada 2 atau lebih class yang tidak memiliki hubungan
hirarki, tetapi class-class tersebut ingin memiliki method yang
sama, maka kita menggunakan interface.

Bella Hardiyana, S.Kom


Contoh Kasus Interface
Contoh Kasus nyata :
Disebuah SD terdapat 3 buah siswa, yang bernama Adi, Budi
dan Cecep. Dimana 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.

Bella Hardiyana, S.Kom


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 hirarki.
 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.
Bella Hardiyana, S.Kom
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);

Bella Hardiyana, S.Kom


Contoh Interface
Berikut contoh format lengkap dari interface, yaitu :

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

interface Interface2{
public String cetakInt1(int x);
public String cetakInt2(int x);
}

Bella Hardiyana, S.Kom


Contoh Praktikum Interface (1)
interface Interface1{
public String cetakStr1(String x);
public String cetakStr2(String x);
}

interface Interface2{
public String cetakInt1(int x);
public String cetakInt2(int x);
}

Bella Hardiyana, S.Kom


Contoh Praktikum 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;
}
}

Bella Hardiyana, S.Kom


Contoh Praktikum 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));
}
}

Bella Hardiyana, S.Kom


Contoh Praktikum Interface (4)

Bella Hardiyana, S.Kom


Abstract Class VS Interface
Abstract Class Interface
Boleh memiliki method isi Hanya berisi method kosong
Di-extends Di-implements
Ketika di-extends, maka Ketika di-implements, maka
semua method kosong harus
di-override, jika tidak maka semua method kosong harus
class tersebut akan berubah di-override, jika tidak maka
program akan error
menjadi Abstract Class
Satu class hanya bisa meng- Satu class bisa meng-
extends satu Class Biasa atau implements lebih dari satu
Class Abstract Interface

Bella Hardiyana, S.Kom

Anda mungkin juga menyukai