LAPORAN PRAKTIKUM PBO MODUL 5 ABSTRACT C

LAPORAN MODUL V

ABSTRACT CLASS, INTERFACE DAN POLYMORPHISM
Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek
Dibimbing oleh Ibu Kartika Candra Kirana, S.Pd.,M.Kom

Oleh:
Eva Yulia Safitri

(160533611462)

Fachryzal Candra Trisnawan

(160533611466)

Karina Aulia Faradila

(160533611413)

S1 PTI’16 OFF B


UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Oktober 2017

A. LATIHAN
Latihan 1
Nama Program

: Abstract Class

Script Program

:



Class Vehicle
public abstract class Vehicle {

public void function(){
System.out.println("Transportation Tools");
}
public void fuel(){
System.out.println("Fuels");
}
public abstract void walk ();
}



Class AeroPlan
public class AeroPlan extends Vehicle{
public void walk(){
System.out.println("Aeroplan is Flying");
}
public static void main(String[]args){
AeroPlan garuda = new AeroPlan();
garuda.function();
garuda.fuel();

garuda.walk();
}
}

a. Output

:

Penjelasan :
Program di atas merupakan jenis program Abstrak Kelas. Terdapat dua kelas yaitu
class Vehicle dan class Aeroplan.

-

Class Vehicle
public abstract class Vehicle {

pada script ini ditunjukkan bahwa kelas Vehicle merupakan kelas abstrak dengan
modifier public.
public void function(){


program ini memiliki method function dengan modifier public, yaitu method
dapat diakses di kelas lain.
System.out.println("Transportation Tools");

Merupakan merintah untuk menampilkan kalimat “Transportation Tools”.
public void fuel(){

membuat method fuel dengan modifier public
System.out.println("Fuels");

Merupakan perintah menampilkan kalimat “Fuels”.
public abstract void walk ();

script di atas mendeklarasikan bahwa kelas ini adalah kelas abstrak melalui
method walk. Di dalam kelas ini setiap methodnya tidak menjelaskna
implementasi dari setiap keluaran yang diperintahkan. Jadi implementasinya akan
dituliskan pada kelas Aeroplan
-


Class Aeroplan
public class AeroPlan extends Vehicle{
public void walk(){

membuat method walk dengan modifier public
System.out.println("Aeroplan is Flying");

Merupakan perintah menampilkan kalimat “Aeroplan is Flying”
public static void main(String[]args){

merupakan main method untuk menjalankan program pada kelas Aeroplan yang
diextends dari kelas Vehicle.
AeroPlan garuda = new AeroPlan();

Script ini digunakan untuk membuat objek baru dari kelas Aeroplan. Objek
tersebut bernama garuda dengan kata kunci new.
garuda.function();
garuda.fuel();
garuda.walk();


pada method ini akan memanggil method – method yang terdapat pada kelas
Vehicle yaitu method function, fuel, dan walk.

b. Ubahlah method fuel pada class Vehicle menjadi abstract. Kemudian lakukan
kompilasi ulang pada kedua kelas class. Output setelah kompilasi adalah
public abstract class Vehicle {
public void function(){
System.out.println("Transportation Tools");
}
public abstract void fuel(){
System.out.println("Fuels");
}
public abstract void walk ();
}

Output

Penjelasan :
Ketika method fuel diubah menjadi abstract kemudian dikompilasi maka akan
menghasilkan output error dengan keterangan “Abstract methods cannot have a body”

ini berarti pada method anak nya (override) tidak ada method yang digunakan untuk
menjalankan method abstract tersebut sehingga hasilnya error.
c. Lakukan override method fuel pada class AeroPlan
public class AeroPlan extends Vehicle{
public void walk(){
System.out.println("Aeroplan is Flying");
}
public void fuel(){
System.out.println("Fuels");
}
public static void main(String[]args){
AeroPlan garuda = new AeroPlan();
garuda.function();
garuda.fuel();
garuda.walk();
}
}

Output


Penjelasan :
Program akan berjalan ketika pada kelas Aeroplan terdapat override dari abstract fuel.
Karena method fuel merupakan abstract.
d. Jelaskan mengapa langkah b dan c berbeda !
Jawab :
Karena di dalam program poin b tidak terdapat override pada method fuel(). Sehingga
output program menjadi error. Sedangkan program pada poin c melakukan override
pada method fuel() sehingga ketika di jalankan tidak terjadi error.
Latihan 2
Nama Program

: Interface

Script Program

:



Class Relation

public interface Relation {
public boolean isGreater(Object a,Object b);
public boolean isLess(Object a, Object b);
public boolean isEqual(Object a, Object b);
}



Class Line

class Line implements Relation {
private double x1;
private double x2;
private double y1;
private double y2;
public Line (double x1, double x2, double y1, double y2){
this.x1=x1;
this.x2=x2;
this.y1=y1;
this.y2=y2;

}

public double getLength(){
double length=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
return length;
}
public boolean isGreater(Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen=((Line)b).getLength();
return (aLen>bLen);
}
public boolean isLess(Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen=((Line)b).getLength();
return (aLenbLen);
}
public boolean isLess(Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen=((Line)b).getLength();
return (aLenbLen);

}
public boolean isLess(Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen=((Line)b).getLength();
return (aLen