Anda di halaman 1dari 10

LAPORAN PRAKTIKUM 45

PEMOGRAMAN BERORIENTASI OBJEK


Pertemuan Ke-08
3

Disusun Oleh :
NAMA : AL AMIN SYAHRUDIN SABAAR
NIM : 185410011
JURUSAN : TEKNIK INFORMATIKA
JENJANG : S1

LABORATORIUM TERPADU
KOMPUTER DASAR
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER AKAKOM YOGYAKARTA
2019
A. TUJUAN
- Dapat menggunakan overiding metode, menggunakan super
- Dapat menggunakan klausa final pada metode dan kelas
B. 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 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.

C. PRATIK
Pratik 1. Membuat Program Mobil
package pertemuan.pkg08;
public class Mobil {
protected int kecmaks;
protected String namken;

public Mobil() {
System.out.println("Konstruktur Mobil");
}
public Mobil(int kecmaks) {
this.kecmaks=kecmaks;
System.out.println("Kecepatan Mobil = " +kecmaks);
}
Mobil(int kecmaks, String namken){
this.kecmaks=kecmaks;
this.namken=namken;
}
public void printInfoMobil(){
System.out.println("Kecepatan Mobil : " +kecmaks +" Km/jam");
System.out.println("Nama Kendaran : " +namken);
}
}
Pembahasan :
Pada program diatas digunakan sebagai kelas induknya atau super class
public class Mobil {
protected int kecmaks;
protected String namken;
Program ini disimpan didalam class Mobil,didalm program ini dideklarasikan atribut yang
terdiri atas kecmaks dan namken. Untuk atribut kecmaks disimpan dengan tipe data
integer dan dikases dengan hak ases protocted sama juga dengan atribut namken dengan tipe
data String diakses juga dengan hak akses protocted.Artinya
modifier protected hanya dapat diakses didalam class itu sendiri atau turunan dari class
tersebut. Apabila kita mencoba mengakses protected method dari luar class, maka akan
menghasilkan error.
public Mobil() {
System.out.println("Konstruktur Mobil");
}

Selanjutnya dibuat konstruktur dengan paramater kosong, penamaan konstruktur sesuai dengan
nama kelasnya dan akan menampilkan statment yang berisi “ Konstruktur Mobil”
public Mobil(int kecmaks) {
this.kecmaks=kecmaks;
System.out.println("Kecepatan Mobil = " +kecmaks);
}
Dibuat konstruktur baru lagi dengan nilai paramter int kecmaks didalam konstruktur ini di
intisiasikan fungsi this yang digunakan unutk mengenali nilai atribut tersebut yaitu kecmaks.
Dan konstruktur ini akan menampilkan statment ("Kecepatan Mobil = "+kecmaks)
nilai dati atribut +kecmaks ditambahkan didalam agar mendapatkan nilai dan disimpan
didalam Kecepatan Mobil. Jadi ketika dijalankan nilai dari kecepatan sama dengan nilai
yang berada di dalam atribut kecmaks.
Mobil(int kecmaks, String namken){
this.kecmaks=kecmaks;
this.namken=namken;
}
Dibuat konstruktur lagi dengan paramter int kecmaks, String namken. didalam
konstruktur ini di intisiasikan fungsi this yang digunakan unutk mengenali nilai atribut tersebut
yaitu kecmaks dan namken.
public void printInfoMobil(){
System.out.println("Kecepatan Mobil : " +kecmaks +" Km/jam");
System.out.println("Nama Kendaran : " +namken);
}
Selanjutnya dibuat method yang akan menampilkan hasil dari program yang telah dibuat.
Method ini merupakan method void dengan nama method printInfoMobil(), didalam method
ini terdapat statmnet pertama yaitu memberikan nilai dari kecepatan mobil sama dengan nilai
dari atribut kecmaks dan stament kedua memberikan nilai nama kendaraa sama dengan nilai
atribut namken.

Pratik 2. Membuat program Truck


package pertemuan.pkg08;

public class Truk extends Mobil{


protected String spesifikasi;

public Truk(String spesifikasi, int kec){


super(kec);
this.spesifikasi=spesifikasi;
System.out.println(spesifikasi);
}
public Truk(int kecmaks, String namken, String spesifikasi){
super(kecmaks,namken);
this.spesifikasi=spesifikasi;
}
@Override
public void printInfoMobil(){
super.printInfoMobil();
System.out.println("Gandengan :"+spesifikasi);
}
public void printInfoTruk(){
super.printInfoMobil();
System.out.println("kecepatan maksimal :"+kecmaks+" Km/jam");
System.out.println("Nama Kendaraan :"+namken);
System.out.println("Spesifikasi :"+ spesifikasi);
}
}
Program ini merupakan turunan atau sub class dari class induk yaitu class Mobil
public class Truk extends Mobil{
protected String spesifikasi;

Untuk mengakses class induknya didekalrasikan kata kunci extend sebelum nama class induknya
dan setelah nama class turunannya. Didalam program ini terdapat atribut spesifikasi dengan tipe
data string dan di akses dengan modifier protected.
public Truk(String spesifikasi, int kec){
super(kec);
this.spesifikasi=spesifikasi;
System.out.println(spesifikasi);
}
Selanjutnya dibuat konstruk yang penamaannya harus sesuai dengan nama classnya jika tidak
maka akan error, konstruktur ini mempunyai nilai paramter String spesifikasi int kec
Didalam konstruktur ini di buat keyword super yang akan mengakses atribut kec yang berada
didalam atribut dari superclass. Selanjutnya terdapat fungsi this yang digunakan untuk
mengenali nilai atribut tersebut yaitu spesifikasi. Dan konstruktur ini akan menampilkan
statment (spesifikasi.Jadi ketika dijalankan program akan menampilkan nilai dari atribut
spesifikasi.
public Truk(int kecmaks, String namken, String spesifikasi){
super(kecmaks,namken);
this.spesifikasi=spesifikasi;
}
Dibuat baru lagi dengan nilai paramter int kecmaks, String namken, String spesifikasi
Didalam konstruktur ini di buat keyword super yang akan mengakses atribut kecmaks dan
namken yang berada didalam atribut dari superclass. Selanjutnya terdapat fungsi this yang
digunakan untuk mengenali nilai atribut tersebut yaitu spesifikasi.Jadi ketika dijalankan
program akan menampilkan nilai dari atribut spesifikasi.
@Override
public void printInfoMobil(){
super.printInfoMobil();
System.out.println("Gandengan :"+spesifikasi);
}
Setelah itu dibuat mentoh oveeriding yang bisa digunakan dengan annotasi @Override pada
bagian atas dari modifiernya. Ini menunjukan bahwa kita akan meng-override method dalam
superclass. Jika ketika dideklarasikan annotasi @Overriding maka akan terjadi error ketika
dijalankan programnya. Setelah itu dibuat keyword super.printInfoMobil ini digunakan
agar dapat mengakses method dari superclassnya yang mempunyai statment("Gandengan
:"+spesifikasi. Artinya ketika program dijalankan nilai gandengan akan sama dengan
nilai yang berada didalam atribut spesifikasi.
public void printInfoTruk(){
super.printInfoMobil();
System.out.println("kecepatan maksimal :"+kecmaks+" Km/jam");
System.out.println("Nama Kendaraan :"+namken);
System.out.println("Spesifikasi :"+ spesifikasi);
}
Agar dapat menampilkan nilai dari atribut dalam program diatas, maka dibuat sebuah method
void untuk menampilkan hasilnya. Didalam method ini terdapat keyword
super.printInfoMobil() fungsi ini digunakan untuk dapat mengakses method void yang
berada didalam superclass. Method ini kemudian mempunyai statment
Namun program ini belum bisa dijalankan karena belum ada method utamanya atau method
mainnya. Oleh karena itu, dibuatlah method main nya sebagai berikut.

Pratik 3. Membuat Kelas TestMobil


package pertemuan.pkg08;

public class TestMobil {


public static void main(String[]arg){
System.out.println("==== pemanggilan object Mobil ====");
Mobil avanza = new Mobil(10, "Avanza");
avanza.printInfoMobil();
System.out.println("");

System.out.println("==== pemanggilan object Truk ====");


Truk truk = new Truk(7,"Tronton","kapasitas 10 ton");
truk.printInfoMobil();

System.out.println("\n==== penggabungan method ==== ");


truk.printInfoTruk();
System.out.println("");

System.out.println("==== program selesai ====");


}
}
Program method main disimpan didalam class TestMobil untuk dapat menjalankan dan
menampilkan programnya.
public static void main(String[]arg){
System.out.println("==== pemanggilan object Mobil ====");
Mobil avanza = new Mobil(10, "Avanza");
avanza.printInfoMobil();
System.out.println("");
Diinstansiasi objek baru pada kelas mobil dengan nilai yang dimasukkan didalam parameter 10
sebagai kecematannya dan avanza sebagai jenis kendaraannya. Dan dipanggil method
printInfoMobil();untuk melihat hasil nya.
System.out.println("==== pemanggilan object Truk ====");
Truk truk = new Truk(7,"Tronton","kapasitas 10 ton");
truk.printInfoMobil();
Diinstansiasi objek baru pada kelas truk dengan nilai yang dimasukkan didalam parameter 7
sebagai kecepatannya dan tronton sebagai jenis kendaraannya dan kapasistas 10 ton setelah itu
dipanggil method printInfoMobil();untuk melihat hasil nya.
System.out.println("\n==== penggabungan method ==== ");
truk.printInfoTruk();
System.out.println("");
Pada pemanggilan method printInfoTruk diatas dia akan memanggil semua nilai yang telah
didekalrasi pada prameternya, dan sebelum itu terdapat super.printInfoMobil(); pada
pendekalarasikan method printInforTruk di class Truk, jadi kata kunci super ini memanggil
method yang berada pada class Mobil yaitu printInfoMobil untuk ditempatkan didalam method
printInfoTruk setelah pendeklarasian method ini. Jadi ketika di run hasil dari mehtod
printInfoMobil akan keluar hasilnya terlebih dahulu baru method printInfoTruk.
OUTPUT

Pratik 4. Jelaskan tentang overrtide dan adakah contoh implementasi dari pratik diatas
- Method Overriding dilakukan saat kita ingin membuat ulang sebuah method pada sub-class
atau class anak.
Implementasi
@Override
public void printInfoMobil(){
super.printInfoMobil();
System.out.println("Gandengan :"+spesifikasi);

- Method Overriding dapat dibuat dengan menambahkan anotasi @Override di atas nama
method atau sebelum pembuatan method.

Pratik 5. Jelaskan tentang penggunaan klause super dan adakah contoh implentasi
program diatas
- Pengguanaan klausa super digunakan untuk merepresentasikan objek dari class induk.
Implentasi
public Truk(int kecmaks, String namken, String spesifikasi){
super(kecmaks,namken);
this.spesifikasi=spesifikasi;
}
- Pembuatan klausa super dilakukan setelah pembuatan fungsi dari class sub classnya.
Pratik 6. Penggunaan kalusa final
- Modifikasi kelas Mobil dengan menambahkan klausa final pada deklarasi kelas sebagai
berikut :
package pertemuan.pkg08;

public final class Mobil {


protected int kecmaks;
protected String namken;

public Mobil() {
System.out.println("Konstruktur Mobil");
}
public Mobil(int kecmaks) {
this.kecmaks=kecmaks;
System.out.println("Kecepatan Mobil = " +kecmaks);
}
Mobil(int kecmaks, String namken){
this.kecmaks=kecmaks;
this.namken=namken;
}
public void printInfoMobil(){
System.out.println("Kecepatan Mobil : " +kecmaks +" Km/jam");
System.out.println("Nama Kendaran : " +namken);
}
}
lakukan pengamatan pada kelas truk, berikan penjelasan kenapa terjadi kesalahan.
Pembahasan : Pada Program diatas class diatas tidak dapat menjadi subclas, karena pada
class mobil telah di tambahkan kata kunci final setelah modifeir dan sebelum nama dari class
itu sendiri. Class final ini memastikan bahwa dirinya tidak dapat di override. Artinya akan
terjadi error ketika akan menurunkan satu class lagi sebagai sub classnya, karena class ini
mempunyai sifat final jadi tidak bisa diturunkan lagi
- Memodifikasi kelas mobil dengan menambahkan klausa final pada deklarasi metode
printInfoMobil sebagai berikut.

package pertemuan.pkg08;
public class Mobil {
protected int kecmaks;
protected String namken;

public Mobil() {
System.out.println("Konstruktur Mobil");
}
public Mobil(int kecmaks) {
this.kecmaks=kecmaks;
System.out.println("Kecepatan Mobil = " +kecmaks);
}
Mobil(int kecmaks, String namken){
this.kecmaks=kecmaks;
this.namken=namken;
}
public final void printInfoMobil(){
System.out.println("Kecepatan Mobil : " +kecmaks +" Km/jam");
System.out.println("Nama Kendaran : " +namken);
}
}
lakukan pengamatan pada kelas truk, berikan penjelasan kenapa terjadi kesalahan.
Pembahasan : pada program class diatas pada bagian method printInfoMobil telah didekalrasi
sebuah kata kunci final sebelum penamaan method dan setalah modifer, ini memungkinkan
method tidak dapat di override. Method ini dapat dipanggil dengan method final. Artinya akan
terjadi error ketika akan menurunkan satu class lagi sebagai sub classnya, karena class ini
mempunyai sifat final jadi tidak bisa diturunkan lagi.

D. LATIHAN
1. Buatlah kelas baru yang merupakan turunan dari kelas Mobil pada pratik 1, kelas turunan
mengoveride metode yang ada.
package pertemuan.pkg08;
public class Bemo extends Mobil{
protected String warna;

public Bemo(String warna, int thnbuat){


super(thnbuat);
this.warna=warna;
System.out.println(warna);
}
public Bemo(int kecmaks, String namken, String warna){
super(kecmaks,namken);
this.warna=warna;
}
@Override
public void printInfoMobil(){
super.printInfoMobil();
System.out.println("warna kendaraan :"+warna);
}
public void printInfoBemo(){
super.printInfoMobil();
System.out.println("kecepatan maksimal :"+kecmaks+" Km/jam");
System.out.println("Nama Kendaraan :"+namken);
System.out.println("warna Kendaraan :"+ warna);
}
}

2. Buatlah contoh pembuatan objek dan penggunakaan membernya


package pertemuan.pkg08;
public class TestMobilModif {
public static void main(String[]args){
System.out.println("==== pemanggilan object Mobil ====");
Mobil avanza = new Mobil(100, "Avanza");
avanza.printInfoMobil();
System.out.println("");

System.out.println("==== pemanggilan object Bemo ====");


Bemo bem = new Bemo(40,"Daihatsu","Biru");
bem.printInfoMobil();
System.out.println("\n==== penggabungan method ==== ");
bem.printInfoBemo();
System.out.println("");

System.out.println("==== program selesai ====");


}
}
Pembahasan : selanjunya dibuat program main()/method utamanya agar program yang
telah dideklarasikan diatas dapat dijalankan dan mengeluarkan hasil sesuai yang
diinginkan. Program method ini disimpan didalam class TesetMobilModif dan kemudian
dibuat instansiasi objek baru.
Mobil avanza = new Mobil(100, "Avanza");
avanza.printInfoMobil();
System.out.println("");
Diinstansiasi objek baru pada kelas mobil dengan nilai yang dimasukkan didalam parameter
100 sebagai kecpatannya dan avanza sebagai jenis kendaraannya. Dan dipanggil method
printInfoMobil();untuk melihat hasil nya.
System.out.println("==== pemanggilan object Bemo ====");
Bemo bem = new Bemo(40,"Daihatsu","Biru");
bem.printInfoMobil();

Diinstansiasi objek baru lagi pada kelas Bemo dengan nilai yang dimasukkan didalam
parameter 40 sebagai kecpatannya dan Daihatsu sebagai jenis kendaraannya, biru sebagai
warna kendaraannya. Dan dipanggil method printInfoMobil();untuk melihat hasil
nya.
System.out.println("\n===== penggabungan method ===== ");
bem.printInfoBemo();
System.out.println("");

Pada pemanggilan method printInfoBemo diatas dia akan memanggil semua nilai yang telah
didekalrasi pada prameternya, dan sebelum itu terdapat super.printInfoMobil(); pada
pendekalarasikan method printInforBemo di class Bemo, jadi kata kunci super ini memanggil
method yang berada pada class Mobil yaitu printInfoMobil untuk ditempatkan didalam
method printInfoTruk atau setelah pendeklarasian method ini. Jadi ketika di run hasil dari
mehtod printInfoMobil akan keluar hasilnya terlebih dahulu baru method printInfoBemo.

OUTPUT

E. KESIMPULAN
Jadi untuk membuat sebuah class agar tidak dapat diturunkan atau memebuat sub classnya
maka bisa menggunakan kata kunci final, untuk penamaan class nya dan juga penamaan
methodnya.

Anda mungkin juga menyukai