You are on page 1of 17

Modul 4

Interface dan Abstract Class

TIM PENYUSUN
Nama Kode Asisten
Afina Ramadhani NOY
Annisa Syafarani Callista CAL
Arsike Cipta Pelangi ARS
Bima Susila Mukti BIM
Desita Nur R. DST
Diva Jihan Safira DIV
Hamdan Dzikrurobbi DZI
I Komang Gede Andhi Kurniawan AND
Idellia Muthia Nurbaisa IDL
Ivan Priyambudi IVN
M. Arrasyid R. RDZ
M. Ikhsan Pratama P. ISP
M. Rifqi Rusandi RFR
Mukhammad Furqon WGS
Nafidzah Kiasati Shadrina NFZ
Rizky Azis Jayasutisna SKY
Sherly Fratista SHE
Syfa Nur Lathifah SYF
Wiguna Ramadhan WRZ

Object Oriented Programming 1


Modul 4
Interface dan Abstract Class

Daftar Isi
TIM PENYUSUN ................................................................................................................... 1
Tujuan Praktikum ................................................................................................................ 3
1. Abstract Class .............................................................................................................. 3
1.1 Definisi ................................................................................................................... 3
1.2 Class Diagram pada Abstract Class ............................................................. 3
1.3 Abstract Method ................................................................................................ 4
1.4 Exercise Abstract Class 1 ................................................................................. 5
1.5 Source Code Abstract Class Exercise 1 ...................................................... 6
2. Interface ......................................................................................................................... 7
2.1 Definisi ................................................................................................................... 7
2.2 Class Diagram pada Interface ....................................................................... 8
2.3 Exercise Interface 1 .......................................................................................... 10
2.4 Source Code Interface Exercise 1 ............................................................... 11
Study Case Modul 4 ........................................................................................................ 14
Daftar Pustaka ................................................................................................................... 16

Object Oriented Programming 2


Modul 4
Interface dan Abstract Class

MODUL 4

Interface dan Abstract Class

Tujuan Praktikum
1. Praktikan dapat memahami dan mengimplementasikan konsep
Abstract Class
2. Praktikan dapat memahami dan mengimplementasikan konsep
Interface

1. Abstract Class
1.1 Definisi
Abstract class adalah class yang memiliki keyword abstract pada
class nya, berisi method abstrak dimana pengimplementasiannya
tidak dibuat di dalam class tersebut tetapi dibuat di masing-masing
class turunannya. Abstract class ini biasanya digunakan sebagai
gambaran umum untuk para class turunannya yang akan dibuat.
Abstract class tidak dapat di-instansiasi (tidak bisa dibuat objek).

1.2 Class Diagram pada Abstract Class


Class diagram pada abstract class memiliki judul dan
abstract method yang ditulis miring (italic), sedangkan class
diagram pada class bukan abstract class judul dan method ditulis
seperti biasa.

Relasi class diagram pada abstract class serupa dengan relasi


class diagram inheritance, yaitu arah panah menuju ke parent class
nya. Child class tidak dapat melakukan extends terhadap lebih dari
satu parent class.

Berikut adalah contoh class diagram pada abstract class:

Object Oriented Programming 3


Modul 4
Interface dan Abstract Class

1.3 Abstract Method


Abstract method adalah method yang tidak memiliki body,
hanya berisi nama method dan parameter (jika ada) sehingga
method ini harus di turunkan atau ditulis ulang pada kelas
turunannya. Abstract method bisa terdapat di abstract class atau
interface. Pada abstract class, abstract method harus memiliki
keyword abstract sedangkan di interface tidak harus memiliki
keyword abstract. Berikut adalah contoh dari source code Abstract
class yang mempunyai abstract method:

Class turunan dari abstract class harus mengimplementasikan


AbstractMethod(), jika tidak mengimplementasikan maka akan terjadi
error. Untuk mengatasi error yang terjadi dapat menekan tombol
Alt+Enter kemudian pilih “Implement all abstract methods” :

Dengan melakukan hal ini, semua abstract method akan


diimplementasikan dan error akan hilang. Method yang
diimplementasikan dapat diubah isinya.

Object Oriented Programming 4


Modul 4
Interface dan Abstract Class

1.4 Exercise Abstract Class 1

Pada class diagram diatas terdapat Class Pakaian yang


merupakan Abstract Class, Class Baju dan Class Celana:

• Class Pakaian:
o 2 variabel protected: warna (String) dan ukuran (int)
o 3 method dengan return type void: setWarna (String
warna), setUkuran (int ukuran), dan detail()
• Class Baju:
o 2 method dengan return type void: setWarna (String
warna), setUkuran (int ukuran)
• Class Celana:
o 2 method dengan return type void: setWarna (String
warna), setUkuran (int ukuran)

Object Oriented Programming 5


Modul 4
Interface dan Abstract Class

1.5 Source Code Abstract Class Exercise 1

Pakaian.java

Baju.java

Celana.java

MainClass.java

Object Oriented Programming 6


Modul 4
Interface dan Abstract Class

Output:

2. Interface
2.1 Definisi
Interface merupakan tipe referensi yang terdiri dari
kumpulan method (tidak memiliki body), method pada interface
harus diturunkan atau ditulis ulang semua di class turunannya.
Interface dapat mengimplementasikan konsep polymorphisme
karena memungkinkan kita mengimplementasikan method yang
spesifik meski tidak ada hubungannya dengan hirariki inheritancenya.

Suatu class dapat mengimplementasi lebih dari satu interface


dengan memisahkan nama dari setiap interface dengan tanda koma.

Object Oriented Programming 7


Modul 4
Interface dan Abstract Class

Untuk mengimplementasikan interface harus menggunakan kata


kunci implements.

2.2 Class Diagram pada Interface


Class diagram dari sebuah interface memiliki tulisan
<<interface>> di bagian judul. Class diagram interface tidak
memiliki atribut dan jika suatu class mengimplementasi suatu
interface maka panahnya memiliki garis putus-putus dari class yang
mengimplementasikan menuju class Interface, berbeda dengan
panah pada konsep inheritance.

Contoh dari class diagram interface:

Untuk membuat Class Interface di Netbeans, buatlah File baru


dengan File types “Java Interface”. Lalu klik Next.

Object Oriented Programming 8


Modul 4
Interface dan Abstract Class

Beri nama class Interface sesuai Class diagram. Kemudian isi class
tersebut sesuai dengan method yang ada di class diagram.

Jika sebuah class mengimplementasikan sebuah interface maka


harus mengimplementasi semua method yang ada pada class
interface, jika tidak maka class yang hanya mengimplementasikan
sebagian method pada interface akan menjadi class abstract. Hal ini
dapat dilakukan dengan menekan tombol Alt+Enter kemudian pilih
“Implement all abstract methods” :

Semua method pada ClassInterface yang diimplementasikan oleh


Class BukanInterface harus di deskripsikan:

Object Oriented Programming 9


Modul 4
Interface dan Abstract Class

2.3 Exercise Interface 1

<<interface>>
Kalkulasi

+ Luas () : void
+ Keliling () : void

Persegi PersegiPanjang
- sisi : double - panjang : double
- lebar : double
* Persegi (double sisi)
+ Luas () : void * PersegiPanjang (double p, double l)
+ Keliling () : void + Luas () : void
+ Keliling () : void

Pada class diagram diatas terdapat Class Kalkulasi yang


merupakan Interface, Class Persegi dan Class Segitiga:

• Class Kalkulasi:
o 1 method dengan return type void: HitungLuas()
o 1 method dengan return type double yaitu getLuas()

Object Oriented Programming 10


Modul 4
Interface dan Abstract Class

• Class Persegi:
o 1 variabel private yaitu sisi (double)
o 1 Constructor dengan parameter n (String)
o 1 method dengan return type void: HitungLuas (),
getLuas ()
• Class Segitiga:
o 2 variabel private yaitu alas (double), dan tinggi
(double)
o 1 Constructor dengan parameter n (String)
o 1 method dengan return type void: HitungLuas (),
getLuas ()

2.4 Source Code Interface Exercise 1

Kalkulasi.java

Persegi.java

Object Oriented Programming 11


Modul 4
Interface dan Abstract Class

PersegiPanjang.java

MainClass.java

Object Oriented Programming 12


Modul 4
Interface dan Abstract Class

Output:

Object Oriented Programming 13


Modul 4
Interface dan Abstract Class

Study Case Modul 4

Pada class diagram diatas terdapat 3 Interface yaitu Interface


DetailHewan, Interface Jenis, Interface Populasi dan 5 Class yaitu Class
Hewan, Class Omnivora, Class Lele, Class Herbivora, Class Sapi.

• Interface DetailHewan:
o 1 method dengan return type void yaitu Detail()
• Interface Jenis:
o 1 method dengan return type void yaitu Jenis()
• Interface Populasi:
o 2 method dengan return type void yaitu TahunSebelum() dan
TahunSesudah()
• Class Hewan:
o 3 variabel public, yaitu: Jumlahkaki (int), TempatHidup
(String), BerkembangBiak ()
o 1 constructor dengan parameter t (String) dan b (String)
o 1 method dengan return type Detail()
• Class Omnivora:
o 1 constructor dengan parameter t (String) dan b (String)
o 4 method dengan return type void yaitu detail(), Jenis(),
TahunSebelum(), dan TahunSekarang()

Object Oriented Programming 14


Modul 4
Interface dan Abstract Class

• Class Herbivora:
o 1 constructor dengan parameter t (String) dan b (String)
o 3 method dengan return type void yaitu detail(),
TahunSebelum(), dan TahunSekarang()
• Class Lele:
o 1 constructor dengan parameter t (String) dan b (String)
o 4 method dengan return type void yaitu detail(), Jenis(),
TahunSebelum(), dan TahunSekarang()
• Class Sapi:
o 1 constructor dengan parameter t (String) dan b (String)
o 2 method dengan return type void yaitu detail() dan
TahunSekarang()

Jika di Run maka Outputnya:

Object Oriented Programming 15


Modul 4
Interface dan Abstract Class

Daftar Pustaka

1. Indrajani dan Martini. 2017. Pemograman Berbasis Objek Dengan


Bahasa Java. Jakarta: PT Elex Media Komputindo.
2. Modul praktikum OOP tahun 2018

Object Oriented Programming 16

You might also like