Anda di halaman 1dari 17

LAPORAN MODUL III

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK


INHERITANCE

Disusun untuk memenuhi Matakuliah Praktikum Berorientasi Objek


Yang Dibimbing oleh Ibu Kartika Candra Kirana

Oleh :
Rahadyan Fannani A 140533602478
Vilta Murdianti

140533601648

PTI 2014 OFFERING C

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
September 2015

INHERITANCE

A. TUJUAN
1. Mendefinisikan superclasses dan subclasses
2. Memahami konsep inheritance (pewarisan)
3. Override method dari superclass
4. Menerapkan keyword this

B. DASAR TEORI
1. Pewarisan
Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang
memungkinkan untuk membuat suatu kelas yang didasarkan pada kelas yang
sudah ada sehingga mewarisi semua metode dan variabelnya.
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.
2. Keyword super
Keyword super digunakan oleh subclass untuk memanggil konstuktor yang
berada pada superclass.
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:
Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM
constructor.
Pemanggil super() hanya dapat digunakan dalam definisi constructor.
Termasuk constructor this() dan pemanggil super() TIDAK BOLEH TERJADI
DALAM constructor YANG SAMA.
3. Keyword this
Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk
menyatakan objek sekarang.
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:
Adanya ambigu pada atribut lokal dari variabel lokal
Menunjuk pada object yang meminta method non-static
Menunjuk pada konstruktor lain 4. Mengakses variabel instans dari masingmasing object.
Format penulisan this
this.data_member merujuk pada data member
this.function_member() merujuk pada function member
this() merujuk pada konstruktor

4. Overriding
Overriding menulis kembali method sama persis. Sama mulai dari nama
method dan isinya dan mengimplementasi kembali di subclassnya. 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.

C. LATIHAN
Latihan 1
a. Tuliskan ketiga class berikut pada file yang berbeda

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

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

d. Kompilasi ketiga class tersebut secara berurutan, Hasil kompilasi adalah :

e. Hapus semua file yang erekstrensi .class dari folder


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

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


Fungsi tersebut berguna untuk menampilkan nama class yang memanggil fungsi
tersebut. Fungsi tersebut mempresentasikan this.
Penjelasan

Script program ini memiliki 3 Class, yaitu Pertama, Kedua, dan TestPertamaKedua. Pada
Class Pertama terdapat 2 method yaitu terprotek dan info. Di dalam Class Kedua terdapat
satu method yaitu BacaSuper, pada fungsi tersebut terdapat pemanggilan fungsi terprotek dan
info yang ada pada Class induk. Pada fungsi main di class TestPertamaKedua
Latihan 2
a. Tuliaskan ketiga class berikut dalam 3 file yang berbeda

b. Jalankan program, keluaran dari program diatas adalah :

Penjelasan :

Pada program ini yaitu terdapat 2 Keyword, super dan protected variabel.
Keyword super berfungsi untuk mengakses class induk(superclass), sedangkan
protected variabel yaitu variabel khusus yang digunakan oleh superclass hanya untuk
dapat di akses oleh kelas anaknya :

Keyword super

Protected variabel

Latihan 3
a. Tuliskan program berikut

b. Output program tersebut adalah :

Penjelasan :
Program ini menggunakan dua class yaitu class hewan(superclass) dan class
gajah(subclass) namun tetap contoh implementasi dari inheritance (pewarisan).
Outputan yang akan dihasilkan oleh program ini berupa gajah akan dikategorikan
sebagai sub hewan.

Latihan 4
a. Tulisdan simpan code program berikut (perhatikan keyword super pada program)

b. Keluaran dari program tersebut adalah :

Penjelasan :
Pada program ini yaitu contoh implementasi dari overriding. Program ini
terdapat method yang berasal dari superclass(class A) yang parameternya sama dan
method yang berasal dari subclass(class B extends A) yaitu set (int nilai) dan setB (int
nilai). Kemudian untuk mengakses atau memanggil method-method yang terdapat
pada class masing-masing tersebut dapat dilakukan pada class demooverride2. Pada
class demooverride2 terdapat fungsi main atau fungsi utama yang akan otomatis
dijalankan dulu.

Latihan 5
a. Tulis dan simpan code program berikut :

b. Keluaran dari program tersebut adalah :

c. Modifikasi class MountainBike sedemikian sehingga mensimulasikan proses


perjalanan sepeda dari posisi diam sampai berjalan normal, kemudian diikuti dengan
berjalan di tanjakan jalan, dilanjutkan lagi menuruni tanjakan dan diakhiri dengan
berhenti. Code yang dihasilkan :

d. Output dari point C adalah :

Penjelasan :
Program ini menampilkan gear dan kecepatan atau speed dari sebuah truck
dari diam sampai mulai berjalan. Pada program ini menggunakan konsep inheritance
(pewarisan) dan juga overriding. Dikatakan menggunakan konsep inheritance karena
dapat superclass(mountaintruck) dan subclass(truck). Dikatakan menggunakan
konsep overriding karena terdapat method pada superclass yang parameternya sama
dengan method pada subclass yaitu setCadence(intnewValue), setGear(intnewValue),
setHeight(intnewValue).

D. TUGAS PRAKTIKUM
Source Code

Output

Penjelasan
Program ini akan akan mengaplikasikan penggunaan Override dan Overload method. Script
program ini memiliki 3 buah Class yaitu Induk, Turunan, dan Praktikum. Di dalam Class
Induk terdapat fungsi test. Pada Class Turunan juga terdapat 2 fungsi test, fungsi tersebut ada
yang memiliki parameter dan ada yang tidak memiliki parameter. Fungsi test yang memiliki
parameter disebut fungsi overload, karena fungsi tersebut memiliki nama fungsi yang sama,
tatapi memiliki parameter yang berbeda. Sedangkan fungsi test yang tidak memiliki
parameter, disebut override, karena fungsi tersebut memiliki nama dan parameter yang sama
dengan fungsi yang ada di Class induk.

E. TUGAS RUMAH

Output

Penjelasan
Program ini akan menampilkan 2 Biodata mahasiswa yang memiliki struktur yang berbeda,
yaitu mahasiswa dan mahasiswa S2. Program ini memiliki 3 Class, yaitu Class Mahasiswa,
MahasiswaS2, dan TugasRumah. Class Mahasiswa adalah struktur data dari semua jenjang
mahasiswa. Di dalam class mahasiswa tersebut terdapat 4 property, yaitu nim, nama, jurusan,
dan angkatan. Property tersebut memiliki hak akses protected, sehingga yang dapat
mengakses hanya Class turunannya dan Class tersebut.Class ini juga memiliki 2 Method
yaitu lihatBiodata, dan Mahasiswa (Constructor). Lihat biodata berfungsi untuk menampilkan
biodata mahasiswa. Pada Contructor class tersebut, terdapat inisialisasi nilai nim, nama,
jurusan, dan angkatan melalui parameter fungsi tersebut. Class MahasiswaS2 adalah turunan
dari Class Mahasiswa. Pada Class tersebut terdapat penambahan property yaitu asal S1. Class
tersebut melakukan Override terhadap fungsi lihatMahasiswa, sehingga terdapat penambahan
property untuk ditampilkan yaitu property Asal S1. Class MahasiswaS2 memiliki Constructor
sendiri. Constructor tersebut menerima 5 parameter, untuk memberi nilai pada property
mahasiswa. Untuk property nim, nama, jurusan, dan angkatan di lewatkan melalui
pemanggilan fungsi super(), untuk memanggil fungsi constuctor dari Class induk.Pada fungsi
main di Class TugasRumah, terdapat definisi Object bertipe Mahasiswa dan Object bertipe
MahasiswaS2 yang memiliki masukan argumen yang berbeda. Selanjutnya setiap object
tersebut memanggil fungsi lihatBiodata(). Maka pada kedua object tersebut akan

menampilkan hasil yang berbeda. Pada Object yang bertipe MahasiswaS2 terdapat
penambahan property yaitu Asal S1.

F. KESIMPULAN
-

Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang


memungkinkan untuk membuat suatu kelas yang didasarkan pada kelas yang
sudah ada sehingga mewarisi semua metode dan variabelnya.

Keyword super digunakan oleh subclass untuk memanggil konstuktor yang


berada pada superclass.

Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk
menyatakan objek sekarang.

Variabel protective berarti variabel yang hanya bisa diakses oleh class turunan dari
class induknya dan variabel private berarti hanya bisa diakses oleh classnya
sendiri.

Overriding menulis kembali method sama persis. Sama mulai dari nama method
dan isinya dan mengimplementasi kembali di subclassnya.

DAFTAR RUJUKAN
1. Modul 3 INHERITANCE. Malang: Universitas Negeri Malang
2. https://khafidfoundation.wordpress.com/2011/09/22/inheritance-pada-java/ (27
September 2014)
3. http://rizadwiprayoga.blogspot.co.id/2011/08/inheritance.html (27 September 2014)
4. http://www.tutorialspoint.com/java/java_inheritance.htm (27 September 2014)
5. http://www.programmerinterview.com/index.php/java-questions/method-overridingvs-overloading/ (27 September 2014)

Anda mungkin juga menyukai