Anda di halaman 1dari 6

MODUL PRAKTIKUM V

ABSTRACT CLASS, INTERFACE DAN POLYMORPHISM

A. Tujuan
1. Memahami class abstract
2. Memahami interface
3. Memahami polymorphism

B. Dasar Teori
1. Kelas Abstrak (Abstract Class)
Kelas abstrak adalah kelas yang terletak di posisi tertinggi dalam hierarki class.
Kelas ini tidak dapat diinstansiasi karena masih bersifat abstrak. Kelas ini hanya
berisi variabel-variabel umum dan deklarasi method tanpa detail implementasi.
Selanjutnya kelas-kelas yang menjadi turunan dari kelas abstraklah yang akan
mengimplementasikan method-method tanpa implementasi tersebut.

2. Interface
Interface memungkinkan pemrogram untuk berbagi konstanta atau
menentukan bentuk metode yang dapat digunakan oleh sejumlah kelas.
Beda interface dengan kelas abstrak :
1. Kelas abstrak dapat mengandung method abstract maupun method tidak
abstract, sedangkan interface hanya boleh mengandung method abstract
2. Kelas abstrak dapat mendeklarasikan variabel instans, sedangkan interface
hanya dapat mendeklarasikan konstanta
3. Kelas abstrak digunakan oleh kelas lain melalui metode pewarisan dengan
kata kunci extends, sedangkan sebuah interface diimplementasikan ke
dalam suatu class dengan menggunakan kata kunci implements, dan
sebuah kelas dapat mengimplementasikan lebih dari satu interface.

3. Polymorphism
Polymorphism merupakan konsep sederhana dalam bahasa pemrograman
berorientasi obyek yang berarti kemampuan sebuah obyek untuk menghasilkan
aksi yang berbeda, bila method yang sama dipanggil, dimana aksi method yang
dikerjakan tergantung dari tipe obyeknya.
C. Latihan
Latihan 1 : Abstract Class

a. Output program adalah

b. Ubahlah method fuel pada class Vehicle menjadi abstract. Kemudian lakukan
kompilasi ulang pada kedua class. Output setelah kompilasi adalah

c. Lakukan override method fuel pada class AeroPlan.

d. Jelaskan mengapa langkah b dan c berbeda!

Latihan 2 : Interface
a. Tambahkan sebuah class untuk menguji program di atas!

b. Output program adalah

c. Kosongkan isi method isEqual. Kemudian jalankan program.


Output program adalah

d. Hapus method isEqual. Kemudian jalankan program!


Output program adalah
Latihan 3 Polymorphism

a. Output program adalah


D. TROUBLESHOOTING PRAKTIKUM
Persegi panjang dibentuk oleh empat titik sudut. Membutuhkan constructor dan
method seperti program di bawah ini. Buat subclass dengan menggunakan class Rect
dan menghasilkan tanpilan minimal seperti berikut:

public class Rect{


//ada 4 variabel utama yang menentukan titik sudut persegi
//panjang
public int x1, y1, x2, y2;

//ini adalah construktor utama


public Rect(int x1,int y1, int x2, int y2){
this.x1=x1;
this.y1=y1;
}

//construktor dengan panjang dan lebar dimulai dari 0,0


public Rect(int width, int height){
this(0,0,width,height);
}

//construktor persegi nol


public Rect(){
this(0,0,0,0);
}

//method untuk menggeser persegi panjang


public void move(int deltax, int deltay){
x1+=deltax;
y1+=deltay;
}

//method untuk memeriksa apa satu titik di dalam persegi


//panjang
public boolean isInside(int x, int y){
return ((x>=x1)&&(x<=x2)&&(y>=y1)&&(y<=y2));
}

//method untuk menggabung (union) persegi panjang


public Rect union(Rect r){
return new Rect((this.x1 <
r.x1)?this.x1:r.x1,(this.y1<r.y1)?this.y1:r.y1,
}
//method untuk mengetahui perpotongan dua persegi panjang
public Rect intersection(Rect r){
Rect result = new Rect((this.x1<r.x1)?r.x1:this.x1 ,
(this.y1>r.y1)?this.y1:r.y1,
if(result.x1>result.x2){
result.x1=result.x2=0;
}
return result;
}
//method untuk konversi data persegi panjang ke string
public String toString(){
return "["+x1+","+y1+"; "+x2+","+y2+"]";
}
}

E. TUGAS RUMAH
1. Buat sebuah program penerapan abstract class dan polymorphism pada bidang
ilmu matematika.
2. Buat sebuah program penerapan abstract class dan polymorphism pada bidang
ilmu perpustakaan.
Syarat : dikerjakan berkelompok. Setiap kelompok terdiri dari maksimal 3 orang

Anda mungkin juga menyukai