Anda di halaman 1dari 13

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK


Pertemuan Ke-8

Disusun Oleh :
NAMA : DINI HIDAYATUL HAIR
NIM : 185410027
JURUSAN : Teknik Informatika
JENJANG : S1

STMIK AKAKOM
YOGYAKARTA
TP. 2020
LAPORAN (Modul_8)
(PEWARISAN)

A. TUJUAN

Dapat menggunakan overiding metode,menggunakan klausa super


Dapat menggunakan klausa final pada metode dan kelas

B. DASAR TEORI

Dalam Java, juga memungkinkan untuk mendeklarasikan class-class yang tidak dapat
menjadi subclass. Class ini dinamakan class final. Untuk mendeklarasikan class untuk
menjadi final kita hanya menambahkan kata kunci final dalam deklarasi class. Sebagai
contoh, jika kita ingin class Person untuk dideklarasikan final, kita tulis,

public final class Person { //area kode } Beberapa class dalam Java API dideklarasikan secara
final untuk memastikan sifatnya tidak dapat di-override. Contoh-contoh dari class ini adalah
Integer, Double, dan String.

Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Method ini
dapat kita panggil method final. Untuk mendeklarasikan method untuk menjadi final, kita
tambahkan kata kunci final ke dalam deklarasi method. Contohnya, jika kita ingin method
getName dalam class Person untuk dideklarasikan final, kita tulis,

public final String getName(){


return name;
}
Method static juga secara otomatis final. Ini artinya Anda tidak dapat membuatnya override.

Keyword super
Pada saat penciptaan objek dari subclass (kelas anak), konstruktor dari superclass (kelas
induk) akan dipanggil.

Overriding Method
Method instan dalam subclass dengan nama dan paramater yang sama, serta return type sama
dengan yang ada dalam superclass dikatakan meng-override (menimpa) method pada
superclass.
Kemampuan subclass meng-override method mengijinkan kelas mewarisi dari superclass
yang mempunyai perilaku "cukup dekat" dan kemudian memodifikasi perilaku jika
dibutuhkan.
Pada saat overriding (penimpaan) method, anda bisa menggunakan annotasi @Override yang
menyuruh compiler bahwa anda bermamksud meng-override method dalam superclass. Jika,
compiler mendeteksi bahwa method itu tidak ada dalam pada superclass, ia akan
membangkitkan error.
C. PEMBAHASAN PRAKTIK

PRAKTIK !

Praktik_1 [Membuat Program Mobil] :


Berikut source code dan outputnya :
public class Mobil
{
protected int kecmaks;
protected String namaken;

public Mobil()
{
System.out.println("Konstruktor Mobil");
}
public Mobil(int kecmaks)
{
this.kecmaks = kecmaks;
System.out.println("Kecepatan Maksimal Mobil = " +kecmaks);
}

Mobil(int kecmaks, String namaken)


{
this.kecmaks=kecmaks;
this.namaken=namaken;
}

public void PrintInfoMobil()


{
System.out.println("Kecepatan Maksimal : "+kecmaks);
System.out.println("Nama Kendaraan :"+namaken);
}
}
Output :

Penjelasan pada praktik 1 diatas :


Dalam kelas di atas kita membuat sebuah kelas dengan nama kelas Mobil, dimana kelas
mobil ini merupakan kelas super, didalam kelas mobil ini terdapat beberapa atribut yaitu
kecmaks dan namaken dengan tipe data yang berbeda-beda. Untuk atribut kecmaks memiliki
tipe data int dan menggunakan hak akses protected, sedangkan untuk atribut namaken
menggunakan tipe data string dengan hak akses protected. Modifier protected hanya dapat
diakses didalam class itu sendiri atau turunan dari class tersebut. Selanjutnya akan dibuatkan
sebuah konstruktor mobil dengan parameter kosong, yang nantinya akan menampilkan
“Konstruktor Mobil”. Selanjutnya terdapat konstruktor baru dengan nilai parameter int
kecmaks. Dan terakhir terdapat konstruktor baru lagi dengan nilai parameter int kecmaks dan
string namaken. Di dalam konstruktur ini di instansiasikan fungsi this yang digunakan unutk
mengenali nilai atribut tersebut yaitu kecmaks dan namken. Kemudian akan dibuatkan
method yang akan menampilkan program yang telah kita buat.

Penjelasan untuk source code pada praktik 1 :


Penjelasan source codenya :
 Membuat kelas Mobil
 Membuat atribut/variable kec. maks dan nama ken. sesuai tipe data yang
dibutuhkan dan menggunakan access modifier protected artinya Menyatakan bahwa
kelas/method/attribute tersebut dapat diakses oleh kelas lain yang berada dalam
satu package atau kelas lain tersebut merupakan turunannya.
 Membuat konstruktor Mobil dengan kondisi menampilkan “konstruktor mobil”
 Membuat konstruktor Mobil dengan parameter int kec. maks yang kemudian
diberikan fungsi this untuk mengisi variable/atribut kec. maks
 Membuat konstruktor Mobil dengan parameter int kecmaks dan string nama ken.
dan diberikan fungsi this yang digunakan untuk mengisi atribut kec. maks dan
nama ken.
 Membuat method PrintInfoMobil yang digunakan untuk mencetak tampilan
kecepatan maksimal dan nama kendaraan

Praktik_2 [Membuat Kelas Truck]


Berikut source code dan outputnya :
public class Truck extends Mobil{
protected String spesifikasi;

public Truck(String spesifikasi, int kec){


super(kec);
this.spesifikasi = spesifikasi;
System.out.println(spesifikasi);
}
public Truck (int kecmaks, String namaken, String spesifikasi){
super(kecmaks, namaken);
this.spesifikasi=spesifikasi;
}
@Override

public void PrintInfoMobil() {


super.PrintInfoMobil();
System.out.println("Gandengan:"+ spesifikasi);
}
public void PrintInfoTruck(){
System.out.println("kecepatan maksimal:"+kecmaks);
System.out.println("Nama Kendaraan:"+namaken);
System.out.println("Spesifikasi:"+ spesifikasi);
}
}
Output :

Penjelasan pada praktik 2 diatas :


Kelas diatas merupakan kelas turunan dari kelas mobil atau dapat disebut dengan
subclass. Disaat membuat nama kelas terdapat kata extend yang berarti bahwa kelas tersebut
turunan dari superclass. Pada kelas truck ini terdapat atribut spesifikasi dengan tipe data
string. Baru setelah itu akan dibuatkan konstruktor dengan nama konstruktornya sesuai
dengan nama kelas dan memiliki nilai parameter yang berbeda-beda. Dan dapat dilihat pada
program tersebut terdapat anotasi @Override yang bertujuan untuk melakukan override
method dalam kelas tersebut. Yang terakhir yaitu dibuatkan method void yang dapat
menampilkan program yang kita buat.

Penjelasan untuk source code pada praktik 2 :


Penjelasan source codenya :
 Membuat kelas dengan nama Truck dengan memberikan fungsi extends, Extends
pada java berfungsi untuk memanggil fungsi dari class lain, sehingga kita tidak
perlu lagi membuat script yang sama pada class yang akan kita buat dengan class
yang kita buat sebelumnya.
 Mendeklarasikan atribut spesifikasi dengan access modifier protected
 Membuat konstruktor Truck dengan parameter string spesifikasi dan int kec yang
diberikan funsi super kata kunci super untuk mengambil nilai dari variabel yang
ada di dalam class induk (super class).Tidak lupa diberikan fungsi this yang
digunakan untuk mengisi variable spesifikasi
 Membuat konstruktor truck dengan parameterint kec.maks, String nama ken, dan
String spesifikasi yang diberikan fungsi super untuk mengambil nilai dari variable
kec.maks dan nama ken. dan diberikan fungsi this yang digunakan untuk mengisi
nilai variable tersebut.
 Membuat method override yakni PrintInfo Mobil dimana method tersebut sudah
ada dalam class Mobil dimana method tersebut akan menimpa method yang ada
dalam class Mobil
 Membuat method PrintInfo truck yang digunakan untuk mencetak tampilan.

Praktik_3 [Membuat Kelas TestMobil]


Berikut source code dan outputnya :
public class TestMobil{
public static void main(String[] args){
System.out.println("Merupakan pemanggilan objek Mobil");
Mobil avanza = new Mobil(10, "Avanza");
avanza.PrintInfoMobil();
System.out.println("");
System.out.println("Merupakan pemanggilan objek Mobil");
Truck truk = new Truck(7,"Tronton","kapasitas 10 ton");
truk.PrintInfoMobil();
truk.PrintInfoTruck();
}
}
Output :

Penjelasan pada praktik 3 diatas :


Pada kelas TestMobil terdapat method main untuk mengeksekusi program. Maka setelah
dipanggil objeknya dengan kata kunci new maka dapat kita lihat hasilnya pada gambar
output diatas.

Penjelasan untuk source code pada praktik 3 :


Penjelasan source codenya :
 Membuat kelas dengan nama TestMobil dimana program ini yang akan membuat
tampilan yang akandiisi user
 Membuat method utama dalam java agar program java dapat berjalan
 Mencetak tampilan “Merupakan pemanggilan objek mobil”
 Membuat obyek Avanza dari kelas Mobil dimana kecepatan maksimal diisi dengan
10 dan nama kendaraan adalah Avanza
 Mencetak isi dari obyek Avanza tersebut
 Membuat tampilan “Merupakan pemanggilan obyek Mobil”
 Membuat obyek baru dari kelas Truck dengan mengisi kecepatan maksimal = 7,
nama kendaraan Tronton dengan gandingan kapasistas 10 ton
 Mencetak tampilan obyek mobil dan truck dimana tampilan obyek mobil akan di
timpa dengan method override yang dibuat dalam kelas Truck sebelumnya.

Praktik_4 [Jelaskan tentang override dan adakah contoh implementasi dari praktik
diatas !]
Jawab :
 Override merupakan method instan dalam subclass dengan nama dan parameter yang
sama, dengan return type sama dengan yang ada pada superclass. Dengan menggunakan
annotasi @override maka kita dapat melakukan overriding (penimpaan) method.

 Kemudian dalam implementasi override program diatas, terdapat dalam kelas


Truck (praktik 2) dibuat method :
public void PrintInfoMobil() {
@Override
public void PrintInfoMobil()
{
super.PrintInfoMobil();
System.out.println("Gandengan : "+speksifikasi);
}

Dimana method tersebut akan menimpa method untuk menampilkan info Mobil yang
ada dalam superclass dengan tujuan untuk mengimplementasikan tampilan baru yakni
gandengan. Kita dapat melakukan override metode instance milik superclass dengan
mendeklarasikan metode ulang tersebut kedalam subclass.

Praktik_5 [Jelaskan tentang penggunaan klausa super dan adakah contoh


implementasi dari praktik diatas !]
Jawab :
 Klausa super bertujuan untuk mempersentasikan suatu objek dari kelas induk. Dan
Contoh implementasinya dapat dilihat pada kelas truck yaitu sbb :
Berikut source codenya :

public Truck(String speksifikasi, int kec)


{
super(kec);
this.speksifikasi = speksifikasi;
System.out.println(speksifikasi);
}

public Truck(int kecmaks, String namaken, String speksifikasi)


{
super(kecmaks, namaken);
this.speksifikasi = speksifikasi;
}

Penjelasan :
public class Mobil {merupakan superclass
super(kec);
kata kunci super diatas untuk mengambil nilai dari variable kec. yang ada dalam superclass
super(kecmaks, namaken);
kata kunci super diatas digunakan untuk mengambil nilai dari variable kec maks dan nama
ken yang ada dalam class induk tau superclass
super.PrintInfoMobil();
kata kunci super diatas digunakan untuk mengoverride method yang ada dalam class induk
atau superclass

Praktik_6 [Pengguna klausa final pada kelas, Modifikasi kelas Mobil dengan
menambahkan klausa final pada deklarasi kelas sebagai berikut : ]
Berikut source code dan outputnya :
public final class Mobil {
protected int kecmaks;
protected String namaken;

public Mobil() {
System.out.println("konstruktormobil");
}
public Mobil(int kecmaks) {
this.kecmaks = kecmaks;
System.out.println("KecepatanMaksimal Mobil = " +kecmaks);
}
Mobil(int kecmaks, String namaken){
this.kecmaks=kecmaks;
this.namaken = namaken;
}
public void PrintInfoMobil(){
System.out.println("kecepatanmaksimal:"+kecmaks);
System.out.println("Nama Kendaraan:"+namaken);
}
}
Penjelasan :
Untuk kelas diatas terdapat kata kunci final yang berarti bahwa kelas tersebut tidak bisa
dijadikan sebagai subclass. Kelas final tentunya tidak dapat di override.

Penjelasan untuk source code pada praktik 6 :


Penjelasan source codenya :
 Dalam praktik ini hanya mengedit penambahan kata fungsi final dalam pembuatan
kelas
 Kata final sendiri Karena final sendiri untuk mendeklarasikan class-class yang tidak
dapat menjadi subclass.
 Program diatas akan terjadi error karena dalam pembuatan kelas diatas
menggunakan kata final yang artinya kelas Mobil sudah menjadi kelas yang
terakhir tidak dapat dibuat sub kelas lagi.

 Lakukan pengamatan pada kelas truk, berikan penjelasan kenapa terjadi kesalahan !
Berikut hasilnya :
Output:

Penjelasan :
Mengapa terjadi kelas erorr dalam program kelas Truck? Sudah jelas Karena final sendiri
untuk mendeklarasikan class-class yang tidak dapat menjadi subclass. Sehingga Class Mobil
dinamakan class final artinya sudah tidak dapat di buat sub class nya.

Praktik_7 [Pengguna klausa final pada metode ]


Berikut source code dan outputnya :
public class Mobil2
{
protected int kecmaks;
protected String namaken;
public Mobil2()
{
System.out.println("konstruktor mobil");
}

public Mobil2(int kecmaks)


{
this.kecmaks = kecmaks;
System.out.println("Kecepatan Maksimal Mobil = " +kecmaks);
}

Mobil2(int kecmaks, String namaken)


{
this.kecmaks=kecmaks;
this.namaken = namaken;
}

public final void PrintInfoMobil()


{
System.out.println("kecepatan maksimal:"+kecmaks);
System.out.println("Nama Kendaraan:"+namaken);
}}
Penjelasan :
Pada method print info mobil terdapat kata kunci final yang membuat method tersebut tidak
dapat di override sehingga kelas tersebut tidak bisa diturunkan.

Penjelasan untuk source code pada praktik 7 :


Penjelasan source codenya :
 Pada program diatas hanya dilakukan penambahan kata final terhadap method
PrintInfomobil
 klausa final ini bukan hanya untuk class saja berlaku juga untuk method sehingga
dalam Java membuat method yang tidak dapat di-override. Method ini dapat kita
panggilmethod final.
 Percobaan compile dilakukan dalam kelas truk dimana kelas truk mengandung
method override yang akan membuat program tersebut akan error karena
penggunaan klausa final sendiri menandakan method tersebut tidak dapat di
override.

 Lakukan pengamatan pada kelas truk, berikan penjelasan kenapa terjadi kesalahan !
Berikut hasilnya :
Output :

Penjelasan :
Penjelasan kenapa program menjadi erorr? Karena seperti sebelumnya kata final artinya
sudah paling akhir, tidak dapat dibuat subnya , klausa final ini bukan hanya untuk class saja
berlaku juga untuk method sehingga dalam Java membuat method yang tidak dapat di-
override. Method ini dapat kita panggil method final.

LATIHAN !

Soal :
Jawab :
1) Berikut source code dan outputnya :
public class Bus extends Mobil
{
protected int harga;

public Bus(int harga,int plat)


{
super(plat);
this.harga = harga;
System.out.println(harga);
}

public Bus(int kecmaks, String namaken, int harga)


{
super(kecmaks, namaken);
this.harga = harga;
}

@Override
public void PrintInfoMobil()
{
super.PrintInfoMobil();
System.out.println("Harga Kendaraan : "+harga);
}

public void PrintInfoBus()


{
super.PrintInfoMobil();
System.out.println("Kecepatan Maksimal :"+kecmaks);
System.out.println("Nama Kendaraan : "+namaken);
System.out.println("Harga Kendaraan : "+harga);
}
}
Output :

Penjelasan :
Pada program diatas, merupakan kelas turunan mobil yang kita buat, memiliki atribut
tambahan yaitu harga dengan tipe datanya int. Konstruktornya memiliki nilai parameter int
harga dan int plat, kemudian diberikan kata kunci super. Setelah itu dibuatkan method void
untuk menampilkan hasil dari program tersebut.
2) Berikut source code dan outputnya :
public class TestMobil
{
public static void main(String args[])
{
System.out.println("Merupakan pemanggilan object Mobil");
Mobil agya = new Mobil(17, "Agya");
agya.PrintInfoMobil();
System.out.println("");

System.out.println("Merupakan pemanggilan object Bus");


Bus a = new Bus(10, "Mitsubishi", 287000000);
a.PrintInfoMobil();

System.out.println("");
a.PrintInfoBus();
System.out.println("");
}
}
Output :

Penjelasan :
Program diatas, merupakan kelas TestMobil yang kita modif untuk menampilkan kelas
bus yang telah kita buat sebelumnya sebagai jelas turunan dari mobil. Maka dapat dilihat
hasilnya seperti gambar output diatas.

D.KESIMPULAN
Pada praktikum pemrograman berorientasi obyek pertemuan ke 8 ini dapat disimpulkan
bahwa dengan melakukan praktikum ini kita bisa menggunakan overiding metode, kemudian
menggunakan klausa super ataupun klausa final pada metode dan kelas. Dalam Java, juga
memungkinkan untuk mendeklarasikan class-class yang tidak dapat menjadi subclass. Class ini
dinamakan class final. Untuk mendeklarasikan class untuk menjadi final kita hanya
menambahkan kata kunci final dalam deklarasi class. Ini memungkinkan dalam Java membuat
method yang tidak dapat di-override. Method ini dapat kita panggil method final. Untuk
mendeklarasikan method menjadi final, kita tambahkan kata kunci final kedalam deklarasi
method.

E. LAMPIRAN LISTING

(Listing Terlampir)

Anda mungkin juga menyukai