Laporan-3-21-35

21
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

description

LAporan PBO

Transcript of Laporan-3-21-35

Page 1: Laporan-3-21-35

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

Page 2: Laporan-3-21-35

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

Page 3: Laporan-3-21-35

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 masing-

masing object.

Format penulisan this

this.data_member → merujuk pada data member

this.function_member() → merujuk pada function member

this() → merujuk pada konstruktor

Page 4: Laporan-3-21-35

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

Page 5: Laporan-3-21-35

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

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

Page 6: Laporan-3-21-35

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

Page 7: Laporan-3-21-35

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 :

Page 8: Laporan-3-21-35

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 :

Page 9: Laporan-3-21-35

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)

Page 10: Laporan-3-21-35

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

Page 11: Laporan-3-21-35

class demooverride2 terdapat fungsi main atau fungsi utama yang akan otomatis

dijalankan dulu.

Latihan 5

a. Tulis dan simpan code program berikut :

Page 12: Laporan-3-21-35

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 :

Page 13: Laporan-3-21-35

d. Output dari point C adalah :

Page 14: Laporan-3-21-35

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

Page 15: Laporan-3-21-35

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.

Page 16: Laporan-3-21-35

E. TUGAS RUMAH

Output

Page 17: Laporan-3-21-35

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

Page 18: Laporan-3-21-35

- 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-overriding-

vs-overloading/ (27 September 2014)