LAPORAN MODUL III
INHERITANCE
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
Script Program
:
a.
Class Pertama
package Latihan1;
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());
}
}
Class Kedua
package Latihan1;
class Kedua extends Pertama{
private int b = 8;
protected void BacaSuper (){
System.out.println("Nilai b = "+b);
terprotek();
info();
}
}
Class TestPertama Kedua
package Latihan1;
class TestPertamaKedua {
public static void main (String [] args){
Kedua D2 = new Kedua ();
D2.BacaSuper ();
D2.info ();
Pertama S1 = new Pertama ();
S1.terprotek ();
S1.info();
}
}
b. Output
:
Class Pertama
Class Kedua
Class TestPertamaKedua
Penjelasan :
Program pada Latihan 1 ini memiliki tiga kelas, yaitu kelas Pertama, Kelas Kedua,
dan kelas TestPertamaKedua. Kelas pertama meruapak induk, sedangkan kelas Kedua
merupakan anaknya. Kedua kelas tersebut tidak dapat dikompilasi karena tidak terdapat main
method di dalamnya, sehingga dibutuhkan sebuah kelas yang digunakan untuk menampilkan
program pada latihan satu ini. Yaitu kelas TestPertamaKedua. Sebelum membahas kelas Test
pertama dan kedua, akan dijelaskan terlebih dahulu kelas Pertama. Pada kelas Pertama
terlebih dahulu mendeklarasikan variabel a = 10, dimana tipe datanya berupa int dan
modifiernya private. Tipe data int digunakan untuk mendeklarasikan angka bilangan bulat.
Kemudian modifier private digunakan agar variabelnya hanya dapat diakses oleh kelas
dimana variabel kelas tersebut dideklarasikan.
protected void terprotek(){
System.out.println("Method ini hanya untuk anaknya");
}
Pada script di atas yaitu mendeklarasikan method terprotek dengan modifier protected.
Fungsinya yaitu agar method tersebut dapat diakses oleh object lain dalam satu keturunan
(inheritance). Kemudian terdapat perintah untuk menampilkan kalimat “Method ini hanya
untuk anaknya”.
public void info(){
System.out.println("a = "+a);
System.out.println("Dipanggil pada = "+this.getClass().getName());
Kemudian terdapat sebuah method lagi yaitu method info dengan menggunakan modifier
public agar methodnya dapat diakses oleh object lain. Lalu terdapat perintah untuk
menampilkan nilai a.. lalu untuk perintah tampilan kedua yaitu menampilkan asal variabel
dari kelas apa.perintah tampilan kedua yaitu dipanggil pada , menggunakan this getClass dan
getName yang berfungsi untuk membaca nilai pada kelas dan menampilkan nama kelasnya.
Kemudian pada kelas Kedua terdapat ;
class Kedua extends Pertama{
private int b = 8;
pada kelas kedua pertama membuat kelas Kedua dengan extends kelas Pertama, sehingga kita
tidak perlu lagi membuat script yang sama pada classs yang akakn kita buat dengan class
yang kita buat sebelumnya. Kemudian mendeklarasikan nilai b dengan tipe data int dan
modifier private.
protected void BacaSuper (){
System.out.println("Nilai b = "+b);
terprotek();
info();
pada kelas Kedua ini juga terdapat method yang modifiernya protected yaitu BacaSuper.
Kemudian perintah menampilkan nilai b. Lalu pada kelas ini , program akan memanggil
method info dan terprotek yang terdapat pada kelas Pertama.
Untuk menjalankan program ini, maka kita membuat kelas baru yaitu TestPertamaKedua.
Pada kelas ini terdapat main method. Program akan menampilkan data yang sudah
dideklarasikan sebelunya pada kelas Pertama dan Keduadengan memanggil method – method
pada kesua kelas tersebut.
c. Hilangkan baris S1.terprotek() dari class TestPertama
Penejalasan :
Program tetap bisa dijalankan karena pada TestPertamaKedua telah dibuat object
terprotek. Sehingga tidak mempengaruhi hasilnya.
d. Hapus semua file yang berektensi .class dari folder
e. Kompilasi class TestPertamaKedua saja. Perhatikan file apa yang dihasilkan dari
kompilasi tersebut :
f. Jelaskan fungsi perintah this.getClass.getName().
Perintah this.getClass.getName() yaitu digunakan untuk mendapat data dari kelas
beserta nama yang dipanggil dari kelas yang telah dirujuk. Sehingga secara otomatis
akan menampilkan data dari kelas yang telah dipanggil.
Latihan 2
Script Program
:
Class Person
package Latihan2;
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("Usia : "+this.age);
}
}
Class Employ
package Latihan2;
class Employ extends Person{
private String noKaryawan;
//konstruktor
public Employ(String noKaryawan, String name, int age){
super (name, age);
this.noKaryawan = noKaryawan;
}
//method
public void info(){
System.out.println("No.karyawan : "+this.noKaryawan);
super.info();
}
}
Class KonstruktorSuperKelas
package Latihan2;
public class KonstruktorSuperKelas {
public static void main (String [] args){
Employ programer1 = new Employ ("12345678", "Yanto", 32);
programer1.info();
}
}
Output
Class Person
Class Employ
:
Class KonstruktorSuperKelas
Penjelasan
-
:
Kelas Person
Kelas person merupakan kelas induk yang disebut dengan superclass.
class Person {
protected String name;
protected int age;
pertama yaitu mendeklarasikan tipe data dari name yaitu String yang berfungsi untuk
memuat karakter dengan modifier protected yang berfungsi agar method tersebut
dapat diakses oleh object lain dalam satu keturunan (inheritance). Kemudian
mendeklarasikan tipe data age yaitu int (untuk bilangan bulat) dengan modifier
protected.
public Person(String name, int age){
this.name = name;
this.age = age;
agar keluarannya tidak menghasilkan null maka maka digunakan keyword this, karena
penamaan parameter sengan field nya mempunyai nama yang sama sehingga
dipakailah this untuk menyatakan objek sekarang.
public void info(){
System.out.println("Nama : "+this.name);
System.out.println("Usia : "+this.age);
Lalu membuat method info dengan modifier public. Dalam method terdapat perintah
untuk menampilkan nama dan usia sesuai dengan object sekarang. Kelas Person ini
tidak dapat dikompilasi karena tidak memiliki main method.
-
Kelass Employ
Kelas Employ merupakan kelas turunan dari kelas Person yang disebut dengan
SubClass.
class Employ extends Person{
private String noKaryawan;
extends digunakan 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. Kemudian mendeklarasikan tipe data noKaryawan yaitu String
dengan modifier private. Jadi variabel noKaryawan hanya bisa diakses pleh method
internal class itu.
public Employ(String noKaryawan, String name, int age){
super (name, age);
this.noKaryawan = noKaryawan;
script di atas merupakan sebuah konstruktor, jadi nantinya yang pertama kali
dijalankan adalah perintah pada script diatas pada saat sebuah objek pertama kali
diciptakan. Super( name,age) merupakan sebuah pemanggil konstruktor sehingga
subclass akan menghasilkan eksekusi dari superclass konstruktor yang bersangkutan.
this.noKaryawan = noKaryawan;
merupakan deklarasi dari no karyawan yang akan
dimasukkan.
public void info(){
System.out.println("No.karyawan : "+this.noKaryawan);
super.info();
kemudian dibuatlah sebuah method info dengan modifier public. Kemudian terdapat
perintah untuk menampilkan no.Karyawan. oleh karena itu digunakanlah keyword
super info untuk memanggil method info yang terdapat pada superclass (Kelas
Person)
-
KonstruktorSuperKelas
public class KonstruktorSuperKelas {
public static void main (String [] args){
Employ programer1 = new Employ ("12345678", "Yanto", 32);
programer1.info();
untuk menjalankan program ini, maka digunakan kela ini. Karena pada kelas ini
terdapat method main. Kemudian data diinputkan menggunakan syntax
programer1
=
new
Employ
("12345678",
"Yanto",
32);
Employ
kemudian memanggil
method info. Setelah itu hasilnya akan langsung ditampilkan oleh program.
Latihan 3
Script Program
:
Class Hewan
public class Hewan {
public static void testClassMethod()
{
System.out.println ("The Class Method in Hewan . . .");
}
public void testInstanceMethod()
{
System.out.println ("The Instance Method in Hewan .. .");
}
}
}
Class Gajah
public class Gajah extends Hewan {
public static void testClassMethod()
{
System.out.println(" The Instance method in Gajah . . .");
}
public void testInstanceMethod()
{
System.out.println ("The Instance method in Gajah . . .");
}
public static void main (String[]args)
{
Kucing myKucing = new Kucing ();
Hewan MyHewan= myKucing;
Hewan.testClassMethod();
MyHewan.testInstanceMethod();
}
}
Perbaikan Class Gajah
public class Gajah extends Hewan {
public static void testClassMethod()
{
System.out.println(" The Instance method in Gajah . . .");
}
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();
}
}
Output
:
Penjelasan
:
Program ini memiliki dua kelas. Yaitu kelas Hewan dan kelas Gajah. Kelas Hewan sebagai
Superclass dan kelas Gajah sebagai Subclass.
-
Kelas Hewan
public class Hewan {
public static void testClassMethod()
{
System.out.println ("The Class Method in Hewan . . .");
}
public void testInstanceMethod()
{
System.out.println ("The Instance Method in Hewan .. .");
Script di atas kita menggunakan method testClassMethod kemudian terdapat perintah
tampilan
("The Class Method in Hewan . . .");
lalu mendeklarasikan method lagi
yaitu method tesdInstanceMethod yang merupakan overriding dari superclass.
Overriding merupakan method sublass sama dengan mehod super class, parameternya
sama tetapi pernyataan atau implementasinya berbeda. Kemudian terdapat perintah
untuk menampilkan
("The Instance Method in Hewan .. .").
program ini belum
bisa dijalankan karena belum terdapat main method. Oleh karena itu diperlukan kelas
Gajah untuk menjalankan perintahnya.
-
Kelas Gajah
public class Gajah extends Hewan {
digunakan keyword extends karena 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.
public static void testClassMethod()
script di atas merupakan method dengan konstruktor modifiernya berupa public.
System.out.println(" The Instance method in Gajah . . .");
Perintah untuk menampilkan kalimat (" The Instance method in Gajah . . ."
public void testInstanceMethod()
script di atas merupakan method dengan konstruktor modifiernya berupa public.
System.out.println ("The Instance method in Gajah . . .");
Digunakan untuk menampilkan kalimat ("The
Instance method in Gajah . . ."
Kemudian script di bawah ini adalah main method kelas Gajah sebelum dilakukan
perbaikan.
public static void main (String[]args)
{
Kucing myKucing = new Kucing ();
Hewan MyHewan= myKucing;
Hewan.testClassMethod();
MyHewan.testInstanceMethod();
Kesalahannya yaitu pada panggilan untuk konstruktornya, dimana pada kelas lain
disebutkan Gajah. Jadi untuk pembuatan objek gajah dan hewan harus sesuai dengan
kata kuci yang digunakan di claas lain. Untuk perbaikannya adalah sebagai berikut ;
public static void main (String[]args)
{
Gajah myGajah = new Gajah ();
Hewan MyHewan= myGajah;
Hewan.testClassMethod();
MyHewan.testInstanceMethod();
Script di atas adalah untuk memanggil fungsi yang telah dibuat pada kelas sebelumya,
sehingga program dapat menampilkan hasilnya.
Latihan 4
Script Program
:
Class A
package Latihan4;
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());
}
}
Class B
package Latihan4;
class B extends A{
private int b;
public void setB(int nilai){
b=nilai;
}
public int getB(){
return b;
}
public void tampilkanNilai(){
super.tampilkanNilai();
System.out.println("Nilai b = "+getB());
}
}
Class DemoOverride2
package Latihan4;
class DemoOverride2 {
public static void main (String [] args){
B obj = new B();
obj.setA(50);
obj.setB(150);
obj.tampilkanNilai();
obj.getB();
obj.tampilkanNilai();
}
}
Output
:
Class A
Class B
Class DemoOverride2
Penjelasan
:
Progam diatas memiliki 3 kelas, yang pertama yaitu kelas A dimana kelas A menjadi
superclass atau kelas induk, yang kedua yaitu kelas B dimana kelas B menjadi
Subclass atau kelas anak dari kelas A keduannya menggunakan variabel dengan
modifier private
private int a;
kedua kelas tersebutt tidak dapat dijalankan karena
keduanya tidak memiliki method. Untuk bisa menjalan program diatas diperlukan
kelas DemoOverrider2. Pada progaram diatas menggunakan 3 method method setA
adalah pendeklarasian variabel A=nilai yang digunakan untuk return A dengan
parameter nilai public
menampilkan nilai
void setA (int nilai){,
public int getA(){
menampilkan nilai dan menggunakan
method getA yang digunakan utnuk
dan method tampilanNilai digunakan untuk
public void tampilkanNilai(){ketiga
method
tersebut menggunakan modifier public agar dapat diakses oleh kelas lain. Pada kelas
B juga menggunakan method setB, getB dan tampilkanNilai dengan modifier public.
Method tampilkan nilai yang ada di kelas B adalah Override dari kelas A yaitu
method yang digunakan pada Subclass sama dengan method yang digunakan
Superclass dengan parameter yang sama tetapi yang dihasilkan berbeda. Oleh karena
itu method ini menggunakan keyword super karena akan meiliki fungsi memanggil
method tampilkanNilai yang terdapat pada kelas A. Dan pada ketiga yaitu kelas
DemoOverride2 yang memiliki method main
args){dimana
public static void main (String []
kelas ini digunakan untuk menampilkan hasil dengan menginputkan
nilai a dan nilai b dengan menggunakan obj.setA(50);dan
obj.setB(150);.
Latihan 5
Script Program :
a.
Class Truck
package Latihan5;
class Truck {
public static int cadence;
public static int gear;
public static int speed;
public void Truck(int startCadence, int startSpeed, int startGear){
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
public void setCadence(int newValue){
cadence = newValue;
}
public void setGear(int newValue){
gear = newValue;
}
public void applyBrake(int decreement){
speed -= decreement;
}
public void speedUp(int increement){
speed += increement;
}
}
Class Mountain Truck
package Latihan5;
public class MountainTruck extends Truck{
public int seatHeight;
public void MountainTruck(int startHeight, int startCadence, int startSpeed,
int startGear){
super.Truck(startHeight, startCadence, startGear);
seatHeight = startHeight;
}
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 = "+gear);
System.out.println("speed = "+speed);
MB.setGear(2);
MB.speedUp(2);
System.out.println("gear = "+gear);
System.out.println("speed = "+speed);
MB.speedUp(2);
System.out.println("gear = "+gear);
System.out.println("speed = "+speed);
MB.applyBrake(1);
System.out.println("direm");
System.out.println("speed= "+speed);
}
}
b. Output
:
Class Mountain Truck
Penjelasan
:
Program diatas memiliki 2 kelas, yaitu kelas Truck dimana kelas ini menjadi
Superclass atau kelas induk, yang kedua yaitu kelas MountainTruck dimana kelas ini
menjadi Subclass atau kelas anak dari kelas Truck. Pada kelas Truck ini tidak bisa
dijalankan kerena kelas ini tidak memiliki method main. Di kelas Truck terdapat 4
konstruktor dan 4 method yaitu ada method setCadence, method setGear, method
applyBreak dan method speedUp. Untuk menambahkan kecepatan pada kelas Truck
menggunakan method speedUp dengan menggunakan decrement untuk kecepatan
awal. Untuk mengurangi kecepatan pada kelas Truck menggunakan method
applyBreak dengan menggunakan increment yang menghitung kecepatan semakin
berkurang. Dan pada kelas MountainTruck terdapat pewarisan atau inheritance
dengan memiliki 1 kontruktor dan 1 method yaitu setHeight yang memiliki modifier
public. Kelas ini dapat menampilkan hasil karena memiliki method main.tahapan
progam diatas bisa berjalan yaitu ketikan kelas truck mulai berjalan keadaan awal
gear = 0 dan speed = 0 dan ketika gear bertambah 2 kali lebih banyak dari awal maka
speed juga ikut bertambah. Untuk bisa bertambah seperti itu terdapat operasi
decrement System.out.println("gear
= "+gear);
System.out.println("speed = "+speed); MB.setGear(2);MB.speedUp(2);
.
Penambahan hutuf MB pada method yang digunakan berfungsi dapat dikompilasi
karena pada awal pembuatan objek baru menggunakan MB yaitu pada sintaks
MountainTruck MB = new MountainTruck();
c. Modifikasi class MountBike sedemikian sehingga mensimulasikan proses perjalanan
sepeda dari posisi diam sampai berjalan normal, kemudian diikuti dengan berjalan
tanjakan jalan, dilanjutkan lagi menuruni tanjakan dan diakhiri dengan berhenti. Code
yang dihasilkan
Script :
public class MountainBike extends Truck{
public int seatHeight;
public void MountainBike(int startHeight, int startCadence, int
startSpeed, int startGear){
super.Truck(startHeight, startCadence, startGear);
seatHeight = startHeight;
}
public void setHeight(int newValue){
seatHeight = newValue;
}
public static void main(String[] abc){
System.out.println("Diam");
MountainBike MB = new MountainBike();
MB.MountainBike (0,0,0,0);
System.out.println("gear ="+MB.gear);
System.out.println("Speed ="+MB.speed);
MB.setGear(0);
MB.speedUp(0);
System.out.println("Jalan Normal");
System.out.println("gear
="+MB.gear);
System.out.println("speed ="+MB.speed);
MB.setGear(1);
MB.speedUp(1);
System.out.println("Jalan di tanjakan");
System.out.println("gear ="+MB.gear);
System.out.println("speed ="+MB.speed);
MB.setGear(2);
MB.speedUp(3);
System.out.println("Turun Tanjakan");
System.out.println("gear ="+MB.gear);
System.out.println("speed ="+MB.speed);
MB.setGear(1);
MB.speedUp(6);
System.out.println("Berhenti");
System.out.println("gear ="+MB.gear);
System.out.println("speed ="+MB.speed);
MB.setGear(0);
MB.speedUp(0);
}
}
d. Output dari point C:
Penjelasan :
Pada program modifikasi diatas memiliki hanya 1 kelas yaitu kelas MountainBike.
Program tersebut bisa dijalankan karena memiliki method main
main(String[]
abc){
public static void
sama sepertikelas sebulumnya kelas ini menggunakan
pewarisan atau inheritance yang digunakan untuk konstruktor. Konstruktor pada kelas
ini hanya 1 dan sebagai fungsi utama. Tahapan progam diatas bisa berjalan yaitu akan
menampilkan kecepatan awal atau diam dengan speed = 0
MB.MountainBike (0,0,0,0);
System.out.println("gear ="+MB.gear);
System.out.println("Speed ="+MB.speed);
setelah itu berjalan speed akan ditambahkan menjadi speed = 4 pada saat kelas truck
berada ditanjakan maka kecepatan speed akan menjadi 1,
System.out.println("Jalan Normal");
System.out.println("gear
="+MB.gear);
System.out.println("speed ="+MB.speed);
pada saat menuruni tanjakan speed bertambah lagi menjadi 3
System.out.println("Turun Tanjakan");
System.out.println("gear ="+MB.gear);
System.out.println("speed ="+MB.speed);
hingga truck dapat berhenti dengan sendirinya kecepatan speed= 0
System.out.println("Berhenti");
System.out.println("gear ="+MB.gear);
System.out.println("speed ="+MB.speed);
B. TUGAS PRAKTIKUM
Tugas Praktikum
Script Program
:
Class Induk
class Induk {
public void test (){
System.out.println("Method di dalam kelas induk");
}
}
Class Turunan
class Turunan extends Induk {
public void test(String s){
System.out.println("Method overload di dalam turunan");
System.out.println("s :"+s);
}
public void test (){
System.out.println("Method override di dalam kelas turunan");
}
}
Class TesIndukTurunan
class TesIndukTurunan {
public static void main (String[]args){
Turunan A = new Turunan();
A.test("Method Overload");
A.test();
}
}
Output :
Class Induk
Class Turunan
Class TesIndukTurunan
Penjelasan
:
Pada class induk hanya menggunakan method test tanpa parameter, yang akan
mengoutputkan Method di dalam kelas induk ketika method ini dipanggil. Class ini
tidak bisa dijalankan karena kelas ini tidak mempunyai fungsi main.
Pada class turunan menggunakan method test juga, namun dengan parameter
String s. terdapat overload pada method ini. Class ini tidak bisa dijalankan karena
kelas ini tidak mempunyai fungsi main.
Pada class TestIndukTurunan menggunakan fungsi utama, yang didalamnya
mendeklaraskan objek yaitu Turunan A. program ini untuk membedakan antara
overloading dan overriding. Overloading merupakan method dengan nama yang sama
dengan method lain pada suatu class tetapi dengan parameter yang berbeda. Pada
subclass, overloadingnya adalah method test(String s). sedangkan overridingnya
merupakan method subclass yang sama dengan method super class, parameternya
sama tetapi pernyataannya berbeda. Overriding pada subclass tersebut adalah method
test(). Perbedaan keduanya hanya terletak pada parameter yang digunakan.
C. TUGAS RUMAH
Tugas Rumah
Script Program
:
Class Fakultas
class Fakultas {
protected String namaFakultas;
protected String namaMahasiswa;
public Fakultas (String namaFakultas, String namaMahasiswa)
{
this.namaFakultas = namaFakultas;
this.namaMahasiswa = namaMahasiswa;
}
public void info()
{
System.out.println ("Nama Fakultas :"+this.namaFakultas);
System.out.println("Nama Mahasiswa :"+this.namaMahasiswa);
}
}
Class Jurusan
public class Jurusan extends Fakultas{
private String namaJurusan;
private String NIM;
public Jurusan (String namaJurusan, String NIM, String namaFakultas,
String namaMahasiswa)
{
super (namaFakultas, namaMahasiswa);
this.namaJurusan = namaJurusan;
this.NIM = NIM;
}
public void info()
{
System.out.println ("nama Jurusan :"+this.namaJurusan);
System.out.println ("NIM :"+this.NIM);
super.info();
}
}
TestFakultasJurusan
public class TestFakultasJurusan {
public static void main (String [] args)
{
Jurusan mhs1 = new Jurusan("Teknik Elektro","160533611462","Teknik",
"Eva Yulia Safitri");
mhs1.info();
}
}
Output
:
Class Fakultas
Class Jurusan
TestFakultasJurusan
Penjelasan
:
Pada class fakultas menggunakan variable string namaFakultas dan namaMahasiswa
dimana variable tersebut dideklarasikan sebagai protected sehingga variable tersebut tidak
dapat diakses oleh kelas lain kecuali menggunakan inheritance.
Konstruktornya
dideklarasikan sebagai public agar dapat diakses oleh kelas lain. Class ini tidak mempunyai
main method sehingga apabila di jalankan, akan error. Pada class fakultas menggunakan
method info untuk pemanggilan namaFakultas dan namaMahasiswa dengan menggunakan
fungsi this.
Pada class jurusan menggunakan variable string namaJurusan dan NIM, dimana
variable tersebut dideklarasikan sebagai private sehingga hanya kelas jurusan yang dapat
mengakses variable ini. Menggunakan method info juga pada class ini, namun di dalamnya
terdapat pemanggilan namaJurusan dan NIM, berbeda dengan method info yang ada dalam
class fakultas dan didalamnya menggunakan fungsi untuk inheritance yaitu
super.info();
(memanggil method info pada class fakultas/orang tua/parent). Pada class ini tidak ada fungsi
utamanya, sehingga apabila dijalankan program akan error.
Pada class TestFakultasJurusan menggunakan fungsi utama, mendeklarasikan objek
baru dengan nama mhs1, untuk pemanggilan method info pada class jurusan.
DAFTAR PUSTAKA
Kartika,Candra Kirana.2017.Inheritance.Malang:Universitas Negeri Malang
Reza
Maulana.
2015.
“
Class
dan
Object
pada
Pemrograman
https://blog.teknorial.com/class-dan-object-pada-pemrograman-java/.
Java”.
Diakses
pada 16 Oktober 2017
Triyanto,
Wiwit
Agus.
2013.
“Perbedaan
Superclass
dan
Subclass
di
http://www.atwiwit.net/2013/09/perbedaan-superclass-dan-subclass-di.html.
Diakses pada 16 Oktober 2017
Java”.