LAPORAN PRATIKUM III 
PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 
“INHERITANCE” 
Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek 
Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom 
Asisten Praktikum: 
Jevri Tri Ardiansyah 
Robi Wahyudi 
Oleh: 
Gisra Rahmadhita 
130533608259 
S1 PTI 2013 Offering B 
UNIVERSITAS NEGERI MALANG 
FAKULTAS TEKNIK 
JURUSAN TEKNIK ELEKTRO 
S1 PENDIDIKAN TEKNIK INFORMATIKA 
OKTOBER, 2014
” INHERITANCE” 
A. TUJUAN 
1. Memahami konsep inheritance (pewarisan) 
2. Mendefinisikan superclasses dan subclasses 
3. Override method dari superclass 
4. Menerapkan keyword this 
B. DASAR TEORI 
1. Pewarisan 
Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang 
memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP 
memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari 
kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara 
bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik. 
pewarisan memberikan atau mewariskan sesuatu kepada keturunan berikutnya. 
misalnya, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki 
oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat diturunkan 
menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat atau perilaku dari 
kelas induknya. sebagai contoh, apabila anda memiliki kelas A dalam program yang 
anda buat maka anda dapat membentuk kelas-kelas turunan dari kelas A 
tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. 
dalam proses pembuatan kelas turunan tersebut, Anda dapat menambahkan sifat dan 
perilaku baru ke dalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. 
Dalam terminologi java, kelas induk dinamakan dengan superclass dan kelas turunan 
dinamakan dengan subclass. untuk membuat kelas anak atau kelas turunan 
berdasarkan class yang ada, anda dapat menggunakan kata kunci extends. 
2. Keyword super 
Digunakan untuk mengakses anggota kelas diwariskan oleh kelas di mana ia muncul. 
Memungkinkan subclass untuk mengakses ditimpa metode dan anggota tersembunyi 
dari superclassnya. Kata kunci super juga digunakan untuk meneruskan panggilan 
dari konstruktor ke konstruktor di superclass.
3. Keyword this 
Digunakan untuk mewakili sebuah instance dari kelas dimana ia muncul. This dapat 
digunakan untuk mengakses anggota kelas sebagai referensi. This juga kata kunci 
digunakan untuk meneruskan panggilan dari satu konstuktor dikelas untuk konstuktor 
lain dikelas yang sama. 
4. Overriding 
Berbeda dengan overloading. Kalo overloading, kita boleh menuliskan method yang 
sama namun dengan jumlah parameter yang berbeda dan nilai kembalian harus sama. 
Nah, kalau overriding konsepnya sama dengan overloading yaitu menulis kembali 
method. Namun, caranya overriding menulis kembali method sama persis. Sama 
mulai dari nama method dan isinya dan mengimplementasi kembali di sub classnya. 
Overriding dipakai saat kita menggunakan method yang sama tapi berbeda 
implementasinya. Jadi overriding method mempunyai nama method yang sama, 
jumlah parameter dan tipe parameter serta nilai kembalian (return) method yang di 
override. Jika method memiliki modifier akses public, method overridenya juga harus 
public. 
C. LATIHAN 
1. Membuat class dengan keyword this 
a. Membuat class Pertama 
ii. Syntax 
class Pertama 
{ 
private int a=10; 
protected void terprotek () 
{ 
System.out.println ("Method ini hanya untuk anaknya"); 
} 
public void info() 
{ 
System.out.println("a= "+a); 
System.out.println ("Dipanggil pada = "+this.getClass 
().getName()); 
} 
} 
b. Membuat class extend pertama (turunan) 
i. Syntax 
class Kedua extends Pertama 
{ 
private int b=8;
protected void BacaSuper() 
{ 
System.out.println ("Nilai b:"+b); 
terprotek(); 
info(); 
} 
} 
c. Membuat kelas fungsi utama 
i. Syntax 
class TestPertamaKedua 
{ 
public static void main (String [] args) 
{ 
Kedua D2 = new Kedua (); 
D2.BacaSuper (); 
D2.info (); 
Pertama S1 = new Pertama (); 
S1.terprotek (); 
S1.info (); 
} 
} 
ii. Output 
iii. Deskripsi Program 
 Program ini menampilkan bagaimana cara kerja pewarisan dengan keyword 
“extends” dimana class pertama merupakan induk dan kelas kedua merupakan 
turunan dari kelas pertama (kelas kedua sifatnya sama dengan kelas pertama) 
 Kelas pertama dan turunannya (kelas kedua) tidak memiliki fungsi main, 
sehingga memakai kelas tambahan sebagai kelas utama (kelas 
TestPertamaKedua) 
 Pada kelas TestPertamaKedua ini dibuat dua objek baru menggunakan operator 
new yaitu D2 dan S1. Objek D2 digunakan untuk memangil methods yang ada 
di class kedua yaitu methods “BacaSuper” dan “info”. Walaupun methods 
“info” tidak ditemukan di class kedua tapi karena class kedua merupakan 
turunan dari kelas pertama. Maka class kedua juga memiliki methods “info” 
(karena turunannya). 
 Objek S1 digunkan untuk memanggil methods “terprotek” dan “info”. Di 
dalam methods “info” terdapat syntax “this.getclass” dan “getname”, dimana 
fungsi syntax tersebut untuk menampilkan nama kelas dari objek tersebut
2. Membuat kelas menggunakan keyword super untuk memanggil konstruktor kelas induk 
a. Membuat class Person 
ii. Syntax 
class Person 
{ 
protected String name; 
protected int age; 
public Person(String name, int age) 
{ 
this.name = name; 
this.age = age; 
} 
//metode 
public void info() 
{ 
System.out.println("Nama : "+this.name); 
System.out.println("Age : "+this.age); 
} 
//akhir kelas program 
} 
b. Membuat class Employ 
i. Syntax 
class Employ extends Person 
{ 
private String noKaryawan; 
//konstruktor 
public Employ (String noKaryawan, String name, int age) 
{ 
super (name, age); 
this.noKaryawan = noKaryawan; 
} 
//metode 
public void info() 
{ 
System.out.println("No. Karyawan : "+this.noKaryawan); 
super.info(); 
} 
} 
c. Membuat class KonstruktorSuperKelas 
i. Syntax 
public class KonstruktorSuperKelas 
{ 
public static void main (String[]args) 
{ 
Employ programer1 = new Employ ("12345678", "Yanto", 32); 
programer1.info(); 
} 
} 
ii. Output
iii. Deskripsi Program 
 Program diatas merupakan contoh penggunaan keyword this dan super pada 
konsep pewarisan. 
 Class person dan employ tidak bisa eksekusi secara langsung karena tidak 
memiliki fungsi main 
 Jadi ada membuat kelas dengan nama KonstruktorSuperKelas yang memiliki 
fungsi utama untuk memangil class employ dan person. 
 Class person merupakan induk class dari employ. 
 Dalam class employ syntax “super” digunakan untuk memangil methods info 
yang ada di class person berisi “name” dan “age”. 
 Data nomor karyawan diperoleh dari parameter pada keyword new yang 
kemudian dipanggil pada method info dari superclass 
3. Membuat Kelas mengandung Overriding 
a. Membuat class Pertama 
ii. Syntax 
public class Hewan 
{ 
public static void testClassMethod() 
{ 
System.out.println("The Class Method in Hewan..."); 
} 
public void testInstanceMethod() 
{ 
System.out.println("The Intance Method in Hewan..."); 
} 
} 
//mengoverwrite method pada class hewan 
d. Membuat class extend hewan (turunan) sekaligus fungsi utama 
i. Syntax 
public class Gajah extends Hewan 
{ 
public static void testClassMethod() 
{ 
System.out.println("The Instance method in Gajah..."); 
} 
//mengoverride method pada class hewan 
public void testInstanceMethod() 
{ 
System.out.println("The Instance method in Gajah..."); 
}
public static void main (String[]args) 
{ 
Gajah myGajah = new Gajah(); 
Hewan myHewan = myGajah; 
Hewan.testClassMethod(); 
myHewan.testInstanceMethod(); 
} 
} 
ii. Output 
iii. Deskripsi Program 
 Program diatas merupakan contoh penggunaan overriding yang dimana 
overriding method mempunyai nama method yang sama (method 
testInstanceMethod() dan testClassMethod()) pada super dan subclass. 
Dalam overriding jumlah parameter dan tipe parameter serta nilai kembalian 
(return) method yang di override ialah sama namun berbeda pada 
implementasinya. 
 Overriding dipakai saat kita menggunakan method yang sama tapi berbeda 
implementasinya. 
 Class hewan tidak bisa dijalankan secara langsung karena tidak memiliki fungsi 
main didalamnya. 
 Class gajah merupakan anak kelas dari class hewan dan mempuntai fungsi 
main sehingga bisa dijalankan secara langsung. Sehingga memunculkan 
tampilan pada Command Prompt 
4. Membuat program dengan keyword super 
a. Membuat class A 
ii. Syntax 
class A 
{ 
private int a; 
public void setA(int nilai) 
{ 
a = nilai; 
} 
public int getA() 
{ 
return a; 
} 
public void tampilkanNilai() 
{ 
System.out.println("Nilai a : "+getA()); 
} 
}
b. Membuat class B 
i. Syntax 
class B extends A 
{ 
private int b; 
public void setB(int nilai) 
{ 
b = nilai; 
} 
public int getB() 
{ 
return b; 
} 
//melakukan override terhadap method tampilkanNilai() 
//yang terdapat pada kelas A 
public void tampilkanNilai() 
{ 
super.tampilkanNilai(); //memanggil method dalam kelas A 
System.out.println ("Nilai b : "+getB()); 
} 
} 
b. Membuat class DemoOverride2 
i. Syntax 
class DemoOverride2 
{ 
public static void main (String [] args) 
{ 
B obj = new B (); 
obj.setA(50); 
obj.setB(150); 
//akan memanggil method yang terdapat 
obj.tampilkanNilai(); 
} 
} 
ii. Output 
iii. Deskripsi Program 
 Program ialah contoh penggunaan overriding pada program, yaitu method 
mempunyai nama method yang sama, jumlah parameter dantipe parameter 
serta nilai kembalian (return) method yang di override. 
 Pada override ini, Subkelas memanipulasi data dan method dari kelas 
induknya. Proses ini akan mengubah data dan method dari keduanya. 
 Yang dilakukan subkelas tersebut adalah melihat/mengecek apakah kelas 
anak memiliki method yang sama dengan induknya, bila punya maka yang 
akan dijalankan adalah method dari kelas anak namun bila tidak, yang akan 
dijalankan adalah method dari induknya.
 Syntax get dan set diatas digunakan sebagai mutator dan asesor dalam 
program untuk menyeting nilai variabel dan memperoleh data dari variabel 
5. Membuat program dengan konsep pewarisan 
a. Membuat class Truck 
i. Syntax 
class Truck{ 
//the truck class has three fields 
public int cadence; 
public int gear; 
public int speed; 
public void Truck(int startCadence, int startSpeed, int 
startGear){ 
gear = startGear; 
cadence = startCadence; 
speed = startSpeed; 
} 
//the truck class has four methods 
public void setCadence(int newValue){ 
cadence = newValue; } 
public void setGear(int newValue) { 
gear = newValue; } 
public void applyBrake(int decrement) { 
speed -= decrement; } 
public void speedUp(int increment) { 
speed += increment; } 
} 
b. Membuat class MountainTruck 
i. Syntax 
public class MountainTruck extends Truck{ 
//the MountainTruck subclass adds one field 
public int seatHeight; 
//the MountainTruck subclass has one constructor 
public void MountainTruck(int startHeight, int startCadence, 
int startSpeed, int startGear){ 
super.Truck(startHeight,startCadence,startGear); 
seatHeight=startHeight; 
} 
//the MountainTruck subclass add one method 
public void setHeight(int newValue) { 
seatHeight = newValue; 
} 
public static void main(String[]abc){ 
System.out.println("Mulai Berjalan"); 
MountainTruck MB = new MountainTruck(); 
MB.MountainTruck(0,0,0,0); 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
MB.setGear(2); 
MB.speedUp(2);
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
MB.speedUp(2); 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
System.out.println("nBerjalan"); 
//MountainTruck MB = new MountainTruck(); 
MB.setGear(3); 
MB.speedUp(2); 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
System.out.println("nNaik Tanjakan"); 
//MountainTruck MB = new MountainTruck(); 
MB.setGear(1); 
MB.applyBrake(5); //speed up total 6 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
System.out.println("nTurun Tanjakan"); 
//MountainTruck MB = new MountainTruck(); 
MB.setGear(1); 
MB.applyBrake(0); //speed up total 6 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
System.out.println("nBerhenti"); 
//MountainTruck MB = new MountainTruck(); 
MB.setGear(0); 
MB.applyBrake(1); //speed up total 1 
System.out.println("gear = "+MB.gear); 
System.out.println("speed = "+MB.speed); 
} 
} 
ii. Output 
iii. Deskripsi Program 
 Program diatas menunjukkan perbedaan nilai dari variabel “gear” dan 
“speed”. Pada class truck “speed” diinisialisasi menjadi “startspeed” dan
“gear” menjadi “startgear” kemudian dimasukkan methods “setgear” 
sementara variabel “startspeed” dibagi menjadi dua methods yang berfungsi 
untuk menambah “speedup” dan mengurangi “applybreak”. 
 Pada class utama “MountainTruck” yang merupakan anak class dari “truck” 
disini ditambahkan varibel “seatHeigh”. Dalam class ini juga terdapat fungsi 
main. Kemudian membuat objek baru dengan nama “MB” dan memasukkan 
parameter nilainya (0,0,0,0) maka pada saat output menampilkan “gear” dan 
“speed” nialinya = 0 kemudian ditambah lagi nilainnya menjadi =2. Nilai 
terakhir gear = 2 dan speed = 4 karena ditambah lagi dengan “speedup”. 
 Pada program pemakaian applybreak digunaan untuk mengurangi nilai speed 
(decrement) sehingga nilai speed menjadi berkurang dan menghasilkan 
perjalanan dari berhenti, berjalan (speed diincrement), naik tanjakan, turun 
tanjakan hingga berhenti lagi 
D. TUGAS PRAKTIKUM 
Buatlah program Overriding dan overloading dengan potongan program di bawah ini 
1. Kelas Induk 
i. Syntax 
class Induk{ 
//mendefinisikan method test() tanpa parameter 
public void test(){ 
System.out.println("Method di dalam kelas induk"); 
} 
} 
2. Kelas Turunan 
i. Syntax 
class Turunan extends Induk{ 
//melakukan overload terhadap method test(), bukan override 
public void test(String s){ 
System.out.println("Method di dalam kelas turunan"); 
System.out.println("s :"" + s + """); 
} 
public void test(){ 
System.out.println("Overriding pada kelas turunann"); 
} 
} 
3. Kelas TestPraktik (untuk pengujian) 
i. Syntax 
class TestPraktik{ 
public static void main(String[]args){ 
Turunan anak = new Turunan(); 
Induk ortu = new Induk(); 
ortu.test();// ujicoba method test pada superclass 
anak.test(); // ujicoba method test pada subclass 
anak.test("Data Valid"); //memberi input string pada method 
overload
} 
} 
ii. Output 
iii. Keterangan 
1. Program diatas untuk menunjukan pemakaian overload dan overriding pada 
program 
2. Kelas induk berisi method test yang berguna untuk menampilkan tulisan 
bahwa method ada pada kelas induk 
3. Kelas turunan berisi method test yang mengoverload method test dikelas induk 
(namun memiliki parameter) dan mengoverride method test dengan tujuan 
menampilkan tulisan tersebut ada pada kelas turunan 
4. Kelas TestPraktik berfungsi sebagai penguji kedua kelas tersebut, objek ortu 
untuk menyatakan kelas induk dan anak menyatakan kelas turunan dan 
melakukan pemanggilan pada method kedua kelas tersebut 
5. Jika pada syntax anak.test("Data Valid"); maka akan memanggil method 
yang dioverload oleh kelas turunan 
E. TUGAS RUMAH 
Buatlah program Overriding dan overloading dengan potongan program di bawah ini 
1. Kelas Tumbuhan 
Syntax 
class Tumbuhan{ 
protected String akar; 
protected String batang; 
protected String daun; 
protected String tulang_daun; 
protected String bunga; 
protected String biji; 
public Tumbuhan (String a, String b, String d, String t, 
String bu, String bi){ //konstruktor 
this.akar=a; 
this.batang=b; 
this.daun=d; 
this.tulang_daun=t; 
this.bunga=bu; 
this.biji=bi; 
} 
void tampil() { 
System.out.println("nCiri-Ciri "); 
System.out.println("Akartt: " +this.akar); 
System.out.println("Batangtt: " +this.batang); 
System.out.println("Bentuk Daunt: " +this.daun); 
System.out.println("Tulang Daunt: " 
+this.tulang_daun); 
System.out.println("Bungatt: " +this.bunga);
System.out.println("Bijitt: " +this.biji); 
} 
} 
2. Kelas dikotil 
Syntax 
class dikotil extends Tumbuhan{ 
private String jenis; //agar tidak terlihat kelas lain 
public dikotil (String jenis, String a, String b, String d, 
String t, String bu, String bi){ 
super ( a, b, d, t, bu, bi); 
this.jenis=jenis; 
} 
void tampil() { 
System.out.println("nJenistt: "+this.jenis); 
super.tampil(); //mengambil nilai variabel induk 
} 
} 
3. Kelas monokotil 
Syntax 
class monokotil extends Tumbuhan{ 
private String jenis; //agar tidak terlihat kelas lain 
public monokotil (String jenis, String a, String b, 
String d, String t, String bu, String bi){ 
super ( a, b, d, t, bu, bi); 
this.jenis=jenis; 
} 
void tampil() { 
System.out.println("nJenistt: "+this.jenis); 
super.tampil(); 
} 
} 
4. Kelas monokotil 
Syntax 
class JenisTumbuhan { 
public static void main (String[]args) { 
//membuat objek 
dikotil d = new dikotil ("Dikotil","Tunggang","Berkambium dan 
Bercabang","Bervariasi","Menjari,Menyirip","Kelipatan 
4,5","Berkeping 2"); 
monokotil m = new monokotil ("Monokotil","Serabut","Tidak 
Berkambium dan Tidak Bercabang","Seperti 
Pita","Sejajar","Kelipatan 3","Berkeping 1"); 
d.tampil(); 
m.tampil(); 
} 
} 
i. Output
ii. Keterangan 
 Program diatas untuk menampilkan ciri-ciri dikotil dan monokotil tumbuhan 
dengan 3 kelas. 1 kelas induk dan 2 kelas turunan 
 Kelas induk ialah kelas Tumbuhan, kelas turunan ialah dikotil dan monokotil 
 Pada kelas induk terdapat mentod tampil yang nantinya akan dioverride 
dikelas lain. Selain itu pada kelas induk juga memakai keyword this untuk 
penggunaan objek sekarang 
 Pada kelas dikotil dan monokotil, terdapat keyword super. Hal ini digunakan 
untuk mengambil nilai variabel dari kelas induk yang terprotek sebelumnya 
 Method tampil pada kelas dikotil dan monokotil berguna untuk meng-override 
method pada kelas Tumbuhan 
F. KESIMPULAN 
1. Inheritance adalah sifat pewarisat yang diturunkan dari kelas induk kepada 
turunannya. Dimana kelas turunan bisa memiliki sifat induk tapi kelas induk tidak 
memeiliki sifat anaknya. 
2. Kelas yang mewariskan disebut Kelas Super/Kelas Induk sedangkan kelas yang 
diwariskan disebut subkelas/Kelas Anak. 
3. Untuk mendeklarasikan kelas turunan harus menggunkan keyword extend 
4. Keyword “this” digunakan pada pembuatan kelas dan digunakan untuk 
menyatakan objek sekarang. 
5. Keyword “super” digunakan untuk memanggil konstruktor dari superClass atau 
menjadi variabel yang mengacu pada superclass. 
6. Overriding ialah suatu cara untuk menuliskan kembali method yang dipakai 
namun berbeda implementasinya 
7. Sifat data pada pewarisan yaitu Public, Private, dan protected 
8. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang 
menggambarkan silsilah kelas tersebut. Semakin turun kebawah kelasnya semakin 
komplek juga sifatnya karena memiliki seluruh sifat nenek moyangnya 
G. DAFTAR PUSTAKA 
 Modul III“Inheritance” — PraktikumPemrogramanBerbasisObjek. Pendidikan 
Teknik Informatika — Teknik Elektro — Universitas Negeri Malang — 2014.

Laporan PBO Pratikum 3

  • 1.
    LAPORAN PRATIKUM III PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “INHERITANCE” Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom Asisten Praktikum: Jevri Tri Ardiansyah Robi Wahyudi Oleh: Gisra Rahmadhita 130533608259 S1 PTI 2013 Offering B UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO S1 PENDIDIKAN TEKNIK INFORMATIKA OKTOBER, 2014
  • 2.
    ” INHERITANCE” A.TUJUAN 1. Memahami konsep inheritance (pewarisan) 2. Mendefinisikan superclasses dan subclasses 3. Override method dari superclass 4. Menerapkan keyword this B. DASAR TEORI 1. Pewarisan Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik. pewarisan memberikan atau mewariskan sesuatu kepada keturunan berikutnya. misalnya, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat atau perilaku dari kelas induknya. sebagai contoh, apabila anda memiliki kelas A dalam program yang anda buat maka anda dapat membentuk kelas-kelas turunan dari kelas A tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. dalam proses pembuatan kelas turunan tersebut, Anda dapat menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam terminologi java, kelas induk dinamakan dengan superclass dan kelas turunan dinamakan dengan subclass. untuk membuat kelas anak atau kelas turunan berdasarkan class yang ada, anda dapat menggunakan kata kunci extends. 2. Keyword super Digunakan untuk mengakses anggota kelas diwariskan oleh kelas di mana ia muncul. Memungkinkan subclass untuk mengakses ditimpa metode dan anggota tersembunyi dari superclassnya. Kata kunci super juga digunakan untuk meneruskan panggilan dari konstruktor ke konstruktor di superclass.
  • 3.
    3. Keyword this Digunakan untuk mewakili sebuah instance dari kelas dimana ia muncul. This dapat digunakan untuk mengakses anggota kelas sebagai referensi. This juga kata kunci digunakan untuk meneruskan panggilan dari satu konstuktor dikelas untuk konstuktor lain dikelas yang sama. 4. Overriding Berbeda dengan overloading. Kalo overloading, kita boleh menuliskan method yang sama namun dengan jumlah parameter yang berbeda dan nilai kembalian harus sama. Nah, kalau overriding konsepnya sama dengan overloading yaitu menulis kembali method. Namun, caranya overriding menulis kembali method sama persis. Sama mulai dari nama method dan isinya dan mengimplementasi kembali di sub classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya. Jadi overriding method mempunyai nama method yang sama, jumlah parameter dan tipe parameter serta nilai kembalian (return) method yang di override. Jika method memiliki modifier akses public, method overridenya juga harus public. C. LATIHAN 1. Membuat class dengan keyword this a. Membuat class Pertama ii. Syntax class Pertama { private int a=10; protected void terprotek () { System.out.println ("Method ini hanya untuk anaknya"); } public void info() { System.out.println("a= "+a); System.out.println ("Dipanggil pada = "+this.getClass ().getName()); } } b. Membuat class extend pertama (turunan) i. Syntax class Kedua extends Pertama { private int b=8;
  • 4.
    protected void BacaSuper() { System.out.println ("Nilai b:"+b); terprotek(); info(); } } c. Membuat kelas fungsi utama i. Syntax class TestPertamaKedua { public static void main (String [] args) { Kedua D2 = new Kedua (); D2.BacaSuper (); D2.info (); Pertama S1 = new Pertama (); S1.terprotek (); S1.info (); } } ii. Output iii. Deskripsi Program  Program ini menampilkan bagaimana cara kerja pewarisan dengan keyword “extends” dimana class pertama merupakan induk dan kelas kedua merupakan turunan dari kelas pertama (kelas kedua sifatnya sama dengan kelas pertama)  Kelas pertama dan turunannya (kelas kedua) tidak memiliki fungsi main, sehingga memakai kelas tambahan sebagai kelas utama (kelas TestPertamaKedua)  Pada kelas TestPertamaKedua ini dibuat dua objek baru menggunakan operator new yaitu D2 dan S1. Objek D2 digunakan untuk memangil methods yang ada di class kedua yaitu methods “BacaSuper” dan “info”. Walaupun methods “info” tidak ditemukan di class kedua tapi karena class kedua merupakan turunan dari kelas pertama. Maka class kedua juga memiliki methods “info” (karena turunannya).  Objek S1 digunkan untuk memanggil methods “terprotek” dan “info”. Di dalam methods “info” terdapat syntax “this.getclass” dan “getname”, dimana fungsi syntax tersebut untuk menampilkan nama kelas dari objek tersebut
  • 5.
    2. Membuat kelasmenggunakan keyword super untuk memanggil konstruktor kelas induk a. Membuat class Person ii. Syntax class Person { protected String name; protected int age; public Person(String name, int age) { this.name = name; this.age = age; } //metode public void info() { System.out.println("Nama : "+this.name); System.out.println("Age : "+this.age); } //akhir kelas program } b. Membuat class Employ i. Syntax class Employ extends Person { private String noKaryawan; //konstruktor public Employ (String noKaryawan, String name, int age) { super (name, age); this.noKaryawan = noKaryawan; } //metode public void info() { System.out.println("No. Karyawan : "+this.noKaryawan); super.info(); } } c. Membuat class KonstruktorSuperKelas i. Syntax public class KonstruktorSuperKelas { public static void main (String[]args) { Employ programer1 = new Employ ("12345678", "Yanto", 32); programer1.info(); } } ii. Output
  • 6.
    iii. Deskripsi Program  Program diatas merupakan contoh penggunaan keyword this dan super pada konsep pewarisan.  Class person dan employ tidak bisa eksekusi secara langsung karena tidak memiliki fungsi main  Jadi ada membuat kelas dengan nama KonstruktorSuperKelas yang memiliki fungsi utama untuk memangil class employ dan person.  Class person merupakan induk class dari employ.  Dalam class employ syntax “super” digunakan untuk memangil methods info yang ada di class person berisi “name” dan “age”.  Data nomor karyawan diperoleh dari parameter pada keyword new yang kemudian dipanggil pada method info dari superclass 3. Membuat Kelas mengandung Overriding a. Membuat class Pertama ii. Syntax public class Hewan { public static void testClassMethod() { System.out.println("The Class Method in Hewan..."); } public void testInstanceMethod() { System.out.println("The Intance Method in Hewan..."); } } //mengoverwrite method pada class hewan d. Membuat class extend hewan (turunan) sekaligus fungsi utama i. Syntax public class Gajah extends Hewan { public static void testClassMethod() { System.out.println("The Instance method in Gajah..."); } //mengoverride method pada class hewan public void testInstanceMethod() { System.out.println("The Instance method in Gajah..."); }
  • 7.
    public static voidmain (String[]args) { Gajah myGajah = new Gajah(); Hewan myHewan = myGajah; Hewan.testClassMethod(); myHewan.testInstanceMethod(); } } ii. Output iii. Deskripsi Program  Program diatas merupakan contoh penggunaan overriding yang dimana overriding method mempunyai nama method yang sama (method testInstanceMethod() dan testClassMethod()) pada super dan subclass. Dalam overriding jumlah parameter dan tipe parameter serta nilai kembalian (return) method yang di override ialah sama namun berbeda pada implementasinya.  Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya.  Class hewan tidak bisa dijalankan secara langsung karena tidak memiliki fungsi main didalamnya.  Class gajah merupakan anak kelas dari class hewan dan mempuntai fungsi main sehingga bisa dijalankan secara langsung. Sehingga memunculkan tampilan pada Command Prompt 4. Membuat program dengan keyword super a. Membuat class A ii. Syntax class A { private int a; public void setA(int nilai) { a = nilai; } public int getA() { return a; } public void tampilkanNilai() { System.out.println("Nilai a : "+getA()); } }
  • 8.
    b. Membuat classB i. Syntax class B extends A { private int b; public void setB(int nilai) { b = nilai; } public int getB() { return b; } //melakukan override terhadap method tampilkanNilai() //yang terdapat pada kelas A public void tampilkanNilai() { super.tampilkanNilai(); //memanggil method dalam kelas A System.out.println ("Nilai b : "+getB()); } } b. Membuat class DemoOverride2 i. Syntax class DemoOverride2 { public static void main (String [] args) { B obj = new B (); obj.setA(50); obj.setB(150); //akan memanggil method yang terdapat obj.tampilkanNilai(); } } ii. Output iii. Deskripsi Program  Program ialah contoh penggunaan overriding pada program, yaitu method mempunyai nama method yang sama, jumlah parameter dantipe parameter serta nilai kembalian (return) method yang di override.  Pada override ini, Subkelas memanipulasi data dan method dari kelas induknya. Proses ini akan mengubah data dan method dari keduanya.  Yang dilakukan subkelas tersebut adalah melihat/mengecek apakah kelas anak memiliki method yang sama dengan induknya, bila punya maka yang akan dijalankan adalah method dari kelas anak namun bila tidak, yang akan dijalankan adalah method dari induknya.
  • 9.
     Syntax getdan set diatas digunakan sebagai mutator dan asesor dalam program untuk menyeting nilai variabel dan memperoleh data dari variabel 5. Membuat program dengan konsep pewarisan a. Membuat class Truck i. Syntax class Truck{ //the truck class has three fields public int cadence; public int gear; public int speed; public void Truck(int startCadence, int startSpeed, int startGear){ gear = startGear; cadence = startCadence; speed = startSpeed; } //the truck class has four methods public void setCadence(int newValue){ cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } } b. Membuat class MountainTruck i. Syntax public class MountainTruck extends Truck{ //the MountainTruck subclass adds one field public int seatHeight; //the MountainTruck subclass has one constructor public void MountainTruck(int startHeight, int startCadence, int startSpeed, int startGear){ super.Truck(startHeight,startCadence,startGear); seatHeight=startHeight; } //the MountainTruck subclass add one method public void setHeight(int newValue) { seatHeight = newValue; } public static void main(String[]abc){ System.out.println("Mulai Berjalan"); MountainTruck MB = new MountainTruck(); MB.MountainTruck(0,0,0,0); System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); MB.setGear(2); MB.speedUp(2);
  • 10.
    System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); MB.speedUp(2); System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); System.out.println("nBerjalan"); //MountainTruck MB = new MountainTruck(); MB.setGear(3); MB.speedUp(2); System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); System.out.println("nNaik Tanjakan"); //MountainTruck MB = new MountainTruck(); MB.setGear(1); MB.applyBrake(5); //speed up total 6 System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); System.out.println("nTurun Tanjakan"); //MountainTruck MB = new MountainTruck(); MB.setGear(1); MB.applyBrake(0); //speed up total 6 System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); System.out.println("nBerhenti"); //MountainTruck MB = new MountainTruck(); MB.setGear(0); MB.applyBrake(1); //speed up total 1 System.out.println("gear = "+MB.gear); System.out.println("speed = "+MB.speed); } } ii. Output iii. Deskripsi Program  Program diatas menunjukkan perbedaan nilai dari variabel “gear” dan “speed”. Pada class truck “speed” diinisialisasi menjadi “startspeed” dan
  • 11.
    “gear” menjadi “startgear”kemudian dimasukkan methods “setgear” sementara variabel “startspeed” dibagi menjadi dua methods yang berfungsi untuk menambah “speedup” dan mengurangi “applybreak”.  Pada class utama “MountainTruck” yang merupakan anak class dari “truck” disini ditambahkan varibel “seatHeigh”. Dalam class ini juga terdapat fungsi main. Kemudian membuat objek baru dengan nama “MB” dan memasukkan parameter nilainya (0,0,0,0) maka pada saat output menampilkan “gear” dan “speed” nialinya = 0 kemudian ditambah lagi nilainnya menjadi =2. Nilai terakhir gear = 2 dan speed = 4 karena ditambah lagi dengan “speedup”.  Pada program pemakaian applybreak digunaan untuk mengurangi nilai speed (decrement) sehingga nilai speed menjadi berkurang dan menghasilkan perjalanan dari berhenti, berjalan (speed diincrement), naik tanjakan, turun tanjakan hingga berhenti lagi D. TUGAS PRAKTIKUM Buatlah program Overriding dan overloading dengan potongan program di bawah ini 1. Kelas Induk i. Syntax class Induk{ //mendefinisikan method test() tanpa parameter public void test(){ System.out.println("Method di dalam kelas induk"); } } 2. Kelas Turunan i. Syntax class Turunan extends Induk{ //melakukan overload terhadap method test(), bukan override public void test(String s){ System.out.println("Method di dalam kelas turunan"); System.out.println("s :"" + s + """); } public void test(){ System.out.println("Overriding pada kelas turunann"); } } 3. Kelas TestPraktik (untuk pengujian) i. Syntax class TestPraktik{ public static void main(String[]args){ Turunan anak = new Turunan(); Induk ortu = new Induk(); ortu.test();// ujicoba method test pada superclass anak.test(); // ujicoba method test pada subclass anak.test("Data Valid"); //memberi input string pada method overload
  • 12.
    } } ii.Output iii. Keterangan 1. Program diatas untuk menunjukan pemakaian overload dan overriding pada program 2. Kelas induk berisi method test yang berguna untuk menampilkan tulisan bahwa method ada pada kelas induk 3. Kelas turunan berisi method test yang mengoverload method test dikelas induk (namun memiliki parameter) dan mengoverride method test dengan tujuan menampilkan tulisan tersebut ada pada kelas turunan 4. Kelas TestPraktik berfungsi sebagai penguji kedua kelas tersebut, objek ortu untuk menyatakan kelas induk dan anak menyatakan kelas turunan dan melakukan pemanggilan pada method kedua kelas tersebut 5. Jika pada syntax anak.test("Data Valid"); maka akan memanggil method yang dioverload oleh kelas turunan E. TUGAS RUMAH Buatlah program Overriding dan overloading dengan potongan program di bawah ini 1. Kelas Tumbuhan Syntax class Tumbuhan{ protected String akar; protected String batang; protected String daun; protected String tulang_daun; protected String bunga; protected String biji; public Tumbuhan (String a, String b, String d, String t, String bu, String bi){ //konstruktor this.akar=a; this.batang=b; this.daun=d; this.tulang_daun=t; this.bunga=bu; this.biji=bi; } void tampil() { System.out.println("nCiri-Ciri "); System.out.println("Akartt: " +this.akar); System.out.println("Batangtt: " +this.batang); System.out.println("Bentuk Daunt: " +this.daun); System.out.println("Tulang Daunt: " +this.tulang_daun); System.out.println("Bungatt: " +this.bunga);
  • 13.
    System.out.println("Bijitt: " +this.biji); } } 2. Kelas dikotil Syntax class dikotil extends Tumbuhan{ private String jenis; //agar tidak terlihat kelas lain public dikotil (String jenis, String a, String b, String d, String t, String bu, String bi){ super ( a, b, d, t, bu, bi); this.jenis=jenis; } void tampil() { System.out.println("nJenistt: "+this.jenis); super.tampil(); //mengambil nilai variabel induk } } 3. Kelas monokotil Syntax class monokotil extends Tumbuhan{ private String jenis; //agar tidak terlihat kelas lain public monokotil (String jenis, String a, String b, String d, String t, String bu, String bi){ super ( a, b, d, t, bu, bi); this.jenis=jenis; } void tampil() { System.out.println("nJenistt: "+this.jenis); super.tampil(); } } 4. Kelas monokotil Syntax class JenisTumbuhan { public static void main (String[]args) { //membuat objek dikotil d = new dikotil ("Dikotil","Tunggang","Berkambium dan Bercabang","Bervariasi","Menjari,Menyirip","Kelipatan 4,5","Berkeping 2"); monokotil m = new monokotil ("Monokotil","Serabut","Tidak Berkambium dan Tidak Bercabang","Seperti Pita","Sejajar","Kelipatan 3","Berkeping 1"); d.tampil(); m.tampil(); } } i. Output
  • 14.
    ii. Keterangan Program diatas untuk menampilkan ciri-ciri dikotil dan monokotil tumbuhan dengan 3 kelas. 1 kelas induk dan 2 kelas turunan  Kelas induk ialah kelas Tumbuhan, kelas turunan ialah dikotil dan monokotil  Pada kelas induk terdapat mentod tampil yang nantinya akan dioverride dikelas lain. Selain itu pada kelas induk juga memakai keyword this untuk penggunaan objek sekarang  Pada kelas dikotil dan monokotil, terdapat keyword super. Hal ini digunakan untuk mengambil nilai variabel dari kelas induk yang terprotek sebelumnya  Method tampil pada kelas dikotil dan monokotil berguna untuk meng-override method pada kelas Tumbuhan F. KESIMPULAN 1. Inheritance adalah sifat pewarisat yang diturunkan dari kelas induk kepada turunannya. Dimana kelas turunan bisa memiliki sifat induk tapi kelas induk tidak memeiliki sifat anaknya. 2. Kelas yang mewariskan disebut Kelas Super/Kelas Induk sedangkan kelas yang diwariskan disebut subkelas/Kelas Anak. 3. Untuk mendeklarasikan kelas turunan harus menggunkan keyword extend 4. Keyword “this” digunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. 5. Keyword “super” digunakan untuk memanggil konstruktor dari superClass atau menjadi variabel yang mengacu pada superclass. 6. Overriding ialah suatu cara untuk menuliskan kembali method yang dipakai namun berbeda implementasinya 7. Sifat data pada pewarisan yaitu Public, Private, dan protected 8. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut. Semakin turun kebawah kelasnya semakin komplek juga sifatnya karena memiliki seluruh sifat nenek moyangnya G. DAFTAR PUSTAKA  Modul III“Inheritance” — PraktikumPemrogramanBerbasisObjek. Pendidikan Teknik Informatika — Teknik Elektro — Universitas Negeri Malang — 2014.