You are on page 1of 19

LAPORAN III

PEMROGRAMAN BERORIENTASI OBJEK


INHERITANCE (PEWARISAN)
Disusun untuk memenuhi matakuliah Pemrograman Berorientasi Objek yang dibimbing
Oleh Bapak Heru Wahyu Herwanto

Nama :
Mohamad Ridlo Fadli

(150535600912)

M.Yasir Alfarizi

(150535600912)
S1 TI 2015 B

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 TEKNIK INFORMATIKA
SEPTEMBER 2016

LAPORAN PRAKTIKUM 3
INTEHERENCE

A. TUJUAN
1.
2.
3.
4.

Memahami konsep inteherence (pewarisan)


Mendefinisikan superclass dan subclass
Override method dari superclass
Menerapkan keyword this

B. DASAR TEORI
Inheritance (Pewarisan)
Inheritance adalah penurunan atribut dan method dari suatu kelas super/kela induk ke
sub kelas/kelas anak.Pewarisan ini bersifat menyeluruh sehingga semua attribute dan
method yang dimiliki kelas super dapat diturunkan ke sub kelas.
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu
sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan
dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan
mereka dapat digunakan oleh semua subclass. Subclass hanya perlu
mengimplementasikan perbedaannya sendiri dan induknya. Keuntungan dari
inheritance adalah :

Bersifat reusable
Tidak harus menyalin semua data dan method dari suatu kelas jika akan
menggunakannya lagi

Kemudahan dalam me-manage kelas yang memiliki data dan method yang
sama.
Untuk memodifikasi suatu data atau method untuk semua subkelas atau kelas
anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak
melainkan hanya pada kelas induk saja.

Istilah dalam inheritance yang perlu diperhatikan :

Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

Superclass
Superclass atau dapat disebut dengan class induk digunakan untuk
menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.

Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.

Super
Keyword ini digunakan untuk merujuk pada member dari parent class.
Ketika kita memakai konsep inheritance, maka yang harus kita ketahui adalah
konstruktor dari parent class tidak dapat diwariskan ke subclass-nya. Sebagai
konsekuensinya adalah setiap kali kita membuat suatu subclass, maka kita
harus memanggil konstruktor parent class di konstruktor subclass. Jika kita
tidak mendeklarasikannya secara eksplisit, maka kompiler Java akan
menambahkan deklarasi pemanggilan kontruktor parent class di konstruktor
subclass. Pemakaian lain dari super adalah untuk menunjuk anggota dari
superclass (seperti reference this).
Ada beberapa hal yang harus diingat ketika menggunakan pemanggil
constuktor super:
o Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA
DALAM constructor.
o Pemanggil super() hanya dapat digunakan dalam definisi constructor.
o Termasuk constructor this() dan pemanggil super() TIDAK BOLEH
TERJADI DALAM constructor YANG SAMA.

This
Kata kunci this adalah variable implisit yang ada didalam java. Ditinjau dari
kepemilikannya, variabel terbagi menjadi 2, yaitu : Variabel kelas dan Variabel

Instans. Variabel kelas adalah variabel yang melekat pada kelas dan tidak
terpengaruh oleh proses instantiasi, sehingga tidak dapat dimiliki dan diakses
oleh objek yang diinstans dari kelas tersebut. Variabel instans adalah variabel
yang dimiliki oleh objek dari proses intantiasi suatu kelas.
Variable This digunakan untuk mengakses variabel instans dari masing-masing
objek . This sebenarnya adalah sebuah variable read-only (tidak dapat diubah
nilainya). Dengan variable ini, akan didapatkan reference atau pointer menuju
objek terkini. Misalkan sebuah aplikasi sedang berjalan, pada saat tertentu
yang dijalankan oleh komputer adalah method aMethod() milik object
anObject. Dari method aMethod() dibutuhkan reference ke objek terkini yaitu
object anObject itu sendiri. Untuk itulah digunakan variabel this dalam
method aMethod() milik object anObject.
Kata kunci this dapat digunakan untuk beberapa alasan berikut:
o Adanya ambigu pada atribut lokal dari variabel lokal
o Menunjuk pada object yang meminta method non-static
o Menunjuk pada konstruktor lain 4. Mengakses variabel instans dari
masing-masing object
Format penulisan this
this.data_member merujuk pada data member
this.function_member() merujuk pada function member
this() merujuk pada konstruktor

Overriding Method
Untuk beberapa pertimbangan, terkadang class asal perlu mempunyai
implementasi berbeda dari method yang khusus dari superclass tersebut. Oleh
karena itulah, method overriding digunakan. Subclass dapat
mengesampingkan method yang didefinisikan dalam superclass dengan
menyediakan implementasi baru dari method tersebut. Misalnya kita
mempunyai implementasi berikut untuk method getName dalam superclass
Person,

C. LATIHAN
Latihan 1
a. Tuliskan ketiga class berikut dalam 3 file yang berbeda (1 project)

b. Kompilasi ketiga class tersebut secara berurutan, hasil kompilasi adalah...

c. Hilangkan baris S1.terprotek() dari class TestPertamaKedua

d. Hasil kompilasinya adalah...

e. Hapus semua file yang berektensi .class dari folder


f. Kompilasi class TestPertamaKedua saja. Perhatikan file apa yang dihasilkan
dari kompilasi tersebut...

g. Jelaskan fungsi dari perintah this.getClass.getName()

this.getClass.getName digunakan untuk pembuatan kelas (mencetak nama


kelas) dan digunakan untuk menyatakan obyek sekarang

Penjelasan program:
Pada latihan 1 kita membuat 3 class, dengan class induk diberi nama Pertama
yang menggunakan accesmodifier private yang berarti class dapat diakses
hanya pada class yang sama sedangkan protected dapat diakses hanya pada
class turunannya saja. Class yang kedua diberi nama Kedua, extends
mempunyai arti bahwa class kedua tersebut adalah anak dari class pertama.
Class ketiga diberi nama TestPertamaKedua yang digunakan sebagai
memperkenalkan class Pertama dan Kedua dengan menggunakan objek baru.
Jadi class TestPertamaKedua dapat melakukan panggilan method dari class
lain tanpa harus membuat deklarasi baru.

Latihan 2
Penggunaan keyword super untuk memanggil konstruktor dari kelas induk
a. Tuliskan tiga class berikut dalam 3 file yang berbeda (1 project)

b. Jalankan program, keluaran dari program diatas adalah...

Penjelasan program:

Pada latihan 2 kita membuat 3 class, dengan class induk diberi nama Person
yang menggunakan accesmodifier protected yang dapat diakses hanya pada
class turunannya saja. Class yang kedua diberi nama Employ, extends
mempunyai arti bahwa class Employ tersebut adalah anak dari class Person.
Class ketiga diberi nama KonstructorSuperKelas. Dalam kelas class induk
(Person) terdapat 2 methode yakni method person yang berisi parameter String
name dan int age, fungsi dari this.name, dan this.age digunakan untuk
pembuatan kelas (mencetak nama kelas) dan digunakan untuk menyatakan
obyek sekarang. Pada method info digunakan untuk mencetak Nama dan Usia
pada output program. Pada class Employ memiliki accesmofier private yang
berarti class dapat diakses hanya pada class yang sama. Keyword super
digunakan untukmemanggil methods info name dan age yang ada didalam
class person. Class KonstruktorSuperKelas digunakan untuk memanggil class
employ dan person. Pada class tersebut syntax programer1.info(); digunakn
untuk memanggil method info dari kelas yang berbeda.

Latihan 3
Tuliskan dan simpan program berikut

Output program tersebut adalah...

Penjelasan program :
Pada latihan 3 kita membuat 2 class, dengan induk class yang diberi nama Hewan
dan anak classnya Gajah. Pada program diatas menggunakan overriding method
yang sama yaitu testClassMethod() dan testInstanceMethod(). Seperti yang telah
dijelaskan pada praktium sebelumnya overriding digunakan jika kita
menggunakan method yang sama namun implementasinya berbeda.

Latihan 4
Ketikkan kode program berikut, perhatikan keyword super pada program

Output dari program tersebut adalah...

Penjelasan program :
Pada latihan 4 kita membuat 3 class, dengan induk class yang diberi nama A dan
anak classnya B dan Demooverride2. Pada program diatas menggunakan
overriding method dimana anak class memanipulasi data dari induk class, pada
proses ini dapat mengubah data dan method dari keduanya. Anak class akan
mengecek apakah class anak memiliki method yang sama dengan induknya atau
tidak, jika punya maka yang akan dijalankan adalah method dari anak class,
namun jika tidak punya maka yang akan dijalankan adalah method dari induk
class. Syntax get dan set digunakan untuk mutator dan asesor dalam program
untuk menyeting nilai dari variabel dan memperoleh data dari variabel.

Latihan 5
a. Tulis dan simpen kode program berikut :

b. Keluaran dari program tersebut adalah...

Penjelasan program :
Pada latihan 5 kita membuat 2 class, dengan class induk diberi nama Truck,
dan anak class diberi nama MountainTruck. Dalam program diatas sifat-sifat
dalam induk class akan diwarisi semuanya kepada anak class. Jadi pada anak
class yaitu MountainTruck tidak perlu untuk mendeklarasikan method-method
yang akan digunakan karena dapat langsung diambil dari induk class.

D. TUGAS PRAKTIKUM
a. Buatlah program dengan menggunakan konsep inteherence dimana kelas
induknya adalah Lingkaran.java. berikut ini merupakan script program dari kelas
Lingkaran.java.

b. Setelah membuat kelas induk tersebut, buatlah kelas turunan dari Lingkaran yaitu
Tabung.java, dan kelas Hasil.java untuk menampilkan nilai dari kelas Tabung.
Sehingga nantinya hasil run programnya seperti berikut :

Output program :

Penjelasan program :
Pada latihan Tugas Praktikum kita membuat 3 class, dengan class induk diberi
nama Lingkaran dan anak class yang diberi nama Tabung dan LingkaranTabung.
Pada class Lingkaran terdapat variabel float jari = 7 untuk mendefinisikan jari-jari
lingkaran telah ditentukan besarnya yaitu 7, double v = 3,14 untuk mendefinikan
besar nilai dari phi yaitu 3,14, penggunaan double dikarenakan pada variabel
terdapat nilai dibelakang koma. Public double Lingkaran() adalah konstruktor
untuk memberi perintah return jari*jari*v (rumus Luas lingkaran) sedangkan
public double Keliling adalah konstruktor untuk memberi perintah return 2*jari*v
(rumus keliling lingkaran). Dalam class Tabung terdapat variabel t yang bernilai
9, pada class tersebut terdapat konstruktor public double Vtabung() untuk
memberi perintah return pada hasil perhitungan dari konstruktor Lingkaran untuk
dikalikan dengan t, sedangkan public double LTabung digunakan untuk memberi
perintah return pada hasil perhitungan konstruktor Keliling dikalikan t di tambah
2 kali hasil perhitungan konstruktor Lingkaran. Pada class LingkaranTabung

terdapat syntax Lingkaran a = new Lingkaran(); dan Tabung b = new Tabung();


yang digunakan untuk membuat objek baru Lingkaran yaitu a dan Tbung yaitu b.

E. TUGAS RUMAH
Buatlah sebuah program dengan menerapkan inteherence dalam kehidupan
perkuliahan!
Contoh :
Kelas Induk

: Fakultas

Kelas Anak

: Jurusan

public class fakultas


{
public String jurusan;
public String prodi;
public int jumlah;
public fakultas (String jurusan, String prodi,int jumlah)
{
this.jurusan = jurusan;
this.prodi = prodi;
this.jumlah = jumlah;
}
public void setrum()
{
System.out.println("Nama jurusan\t\t : "+this.jurusan);
System.out.println("Nama prodi\t\t : "+this.prodi);
System.out.println("Jumlah Mahasiswa\t : "+this.jumlah);
System.out.println("");
System.out.println("---------------------------------------------------------------------------");
}
public void oli()
{
System.out.println("Nama jurusan\t\t : "+this.jurusan);
System.out.println("Nama prodi\t\t : "+this.prodi);
System.out.println("Jumlah Mahasiswa\t : "+this.jumlah);
System.out.println("");
System.out.println("----------------------------------------------------------------------------");
}
public void kuli()

{
System.out.println("Nama jurusan\t\t : "+this.jurusan);
System.out.println("Nama prodi\t\t : "+this.prodi);
System.out.println("Jumlah Mahasiswa\t : "+this.jumlah);
System.out.println("");
System.out.println("----------------------------------------------------------------------------");
}
}

public class jurusan extends fakultas


{
public jurusan (String jurusan, String prodi, int jumlah)
{
super(jurusan,prodi,jumlah);
}
public static void main(String[]args)
{
System.out.println("**********************************************************
******************");
System.out.println("\t\t\tJumlah Mahasiswa Tahun 2016");
System.out.println("\t\tFakultas Teknik Universitas Tugu Muda (Untumu)");
System.out.println("**********************************************************
******************");
System.out.println("");
jurusan TS= new jurusan("Teknik Setrum","S1 Pendidikan Teknik setrum belut \n\t\t\t
S1 teknik pasang setrum \n\t\t\t s1 ilmu nyetrum tonggo",1232);
TS.setrum();
jurusan TO= new jurusan("Teknik oli","S1 Pendidikan Teknik tata oli \n\t\t\t S1 teknik
gas rem blong \n\t\t\t s1 ilmu skur carbo",1233);
TO.oli();
jurusan TK= new jurusan("Teknik Kuli","S1 Pendidikan Teknik tata bata \n\t\t\t S1
teknik gambar bangunan \n\t\t\t s1 ilmu ngudek lolo",1234);

TK.kuli();
}
}
Output :

Penjelasan program

Pada Tugas Rumah kita membuat 2 class, dengan induk class yang diberi nama
Fakultas dan anak classnya Jurusan. Pada program diatas menggunakan overriding
method yang sama yaitu setrum(), Oli(), kuli().Seperti yang telah dijelaskan pada
praktium sebelumnya overriding digunakan jika kita menggunakan method yang sama
namun implementasinya berbeda. Fungsi this digunakan untuk pembuatan kelas
(mencetak nama kelas) dan digunakan untuk menyatakan obyek sekarang. Keyword
super digunakan untuk memanggil methods nama_jurusan, prodi dan jumlah
yang ada didalam class Fakultas.
B. Perbedaan overriding dan overloading adalah . . .
Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut
dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah
parameter mesti berbeda
atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai
nama sama tetapi berbeda jenis parameter dan/utau jenis return value.
lebih Jelasnya Overloading secara singkat :

Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda


Nilai Yang Di Return Harus memiliki Tipe yang sama

Sedangkan Overriding Merupakan Suatu Keadaan Dimana kelas anak dapat mengubah atau
bisa kita bilang memodifikasi atau memperluas data dan method pada kelas induk
Keuntungan Overriding : dapat menambahkan sifat / atribut pada kelas induk nya

F. KESIMPULAN
Inheritance adalah penurunan atribut dan method dari suatu kelas super/kela induk ke sub
kelas/kelas anak.Pewarisan ini bersifat menyeluruh sehingga semua attribute dan method
yang dimiliki kelas super dapat diturunkan ke sub kelas.

Istilah-istilah dalam inheritance antara lain :


a.
b.
c.
d.
e.
f.

Extends
Superclass (Induk class)
Subclass (Anak class)
Super
This
Overriding Method

G. DAFTAR RUJUKAN
Erros.delta. 2011. Inteherence Pada Java.
https://khafidfoundation.wordpress.com/2011/09/22/inheritance-pada-java/ (Diakses
pada 29 September 2015)