PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK MODUL 4 INHERITANCE
(PEWARISAN)
Disusun oleh: Moh. Teguh Pramudani 1610652007
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER 2017
Modul 5 Inheritance
I.
II.
(Pewarisan)
Tujuan: 1.
Mengetahui pengertian inheritance (pewarisan)
2.
Mengetahui konsep inheritance
3.
Mengimplementasikan konsep
inheritance pada bahasa pemrograman java
4.
Memahami penggunaan kata kunci
5.
Mengetahui pengaksesan member pada
super arent class
Dasar Teori 2.1.
Pengantar Inheritance Konsep inheritance atau pewarisan ini mengadopsi dunia nyata dimana sebuah objek
dapat
memiliki memiliki
mewariskan
karakter
yang
keseragaman
sifat hampir
yang
pada
turunannya.
sama dengan hampir
Dalam
orang tua.
sama,
tentunya
kehidupan
manusia
Selain bentuk fisik juga
yang
memiliki
karakter/sifat yang hampir sama dengan kedua orang tua. Misalnya
ayah
nobita
adalah
orang
penyabar, sedangkan nobita juga penyabar,
tapi
dibalik semua itu, nobita juga mempunyai sifat lain yang tidak dimiliki oleh ayahn ya, yaitu pemalas. Itulah
kenapa
setiap
turunan
dikatakan
‘ hampir‘
sama dengan induknya.
2.2.
Pengertian Inheritance Inheritance
(pewarisan) adalah proses pewarisan data dan method satu kelas
induk kepada kelas turnannya. Komponen class pada pewarisan yaitu: Super Class : kelas induk atau kelas yang mewariskan SubClass : anak kelas atau kelas yang mendapat warisan
pasti
beberapa
2.3.
Inheritance Pada Java Di
dalam
bahasa
pemrograman
java,
untuk
mendeklarasikan
sebagai subclass dilakukan dengan cara menambahkankata kunci
extends
suatu
class
setelah
deklarasi nama classnya, kemudian diikuti dengan nama parent class-n ya atau super classnya. Kata kunci extends tersebut memberitahu kompiler java bahwa kita ingin melakukan perluasan class. Cara penulisan subclassnya adalah sebagai berikut:
Contoh kasus: Terdapat beberapa software di komputer. Software tersebut beraneka ragam: software game, software edukasi, dan lain-lain. Biarpun berbeda jenisnya, software tersebut
pasti
memiliki
kesamaan
dengan
software
apabila dilihat dari segi pemrograman, maka class sedangkan
class Game adalah
subclass nya.
Jadi
sejenisnya.
Software
penulisan
Dengan
kata
lain,
adalah superclass , code
java-nya
adalah
sebagai berikut:
2.4.
Manfaat Inheritance Berikut in adalah beberapa manfaat apabila menggunakan konsep inheritance: 1.
Bersifat reusable Pada class yang memiliki sifat mirip denga class lain, tidak perlu membuat variabel
dan
method
yang
sama
dalam
penerapannya.
Sehingga
hanya
membuat satu class sebagai induk, dan beberapa class sebagai anak yang mewarisi method dan data dari class induk. Ketika membutuhkan data dan method tambahan pada class anak, hanya perlu menambahkan data tambahan tersebut, tanpa perlu mendeklarasikan data dan method yang sudah dimiliki oleh induk class.
perlu
2.
Efisiensi dalam manajemen data dan method Ketika membutuhkan perubahan pada data dan method pada induk class, tidak perlu mengubah semua class anak, sehingga hanya perlu melakukan perubahan pada class induknya saja.
2.5.
Keyword “ super “ Keyword super digunakan method yang ada pada
oleh subclass untuk memanggil constructor
superclassnya.
Berikut
cara penulisan
atau
keyword super pada
subclass untuk memanggil constructor pada superclass.
Sedangkan cara penulisan
“super“ pada
subclass
untuk memanggil
method
pada superclass adalah sebagai berikut:
2.6.
Kontrol akses Suatu
parent
class
dapat
tidak
mewariskan
sebagian
data
dan
methodnya
kepada subclassnya. Sejauh mana suatu data dan method tersebut dapat diwariskan ke kelas lain sangat berhubungan dengan access control. Gambaran akses kontrol digambarkan pada tabel berikut:
III. Latihan Praktikum 1)
Penggunaan keyword “super“
Beri keterangan pada program mengenai latihan praktikum di atas.
2)
Pewarisan BangunDatar kepada Persegi dan Segitiga Buatlah class
BangunDatar sebagai induk class.
Kemudian buatlah class Persegi dan Segitiga sebagai subclass atau anak kelas. Persegi.java
Segitiga.java
Setelah semua induk class dan anak class dibuat, implementasikan pada main method.
Hasilnya adalah:
3)
Buatlah classPersegiPanjang , JajarGenjang , dan Lingkaran yang berisi penghitungan luas dari masing-masing bangun tersebut. Class-class tersebut merupakan anak class dari class BangunDatar dari latihan 1. Luas Persegi Panjang = panjang * lebar Luas Jajar Genjang = alas * tinggi Luas Lingkaran = phi * jari-jari * jari-jari
4)
Kontrol Akses
Data-data di atas memiliki akses control yang berbeda-beda.
Data alamat dapat diakses oleh anak classnya, karena berada dalam satu package. Sehingga agar data nama dapat diakses oleh anak classnya, harus diubah ke dalam public/ protected. Kemudian buatlah fungsi untuk menampilkan data-data tersebut, dan implementasikan pada main method. 5)
IV. Tugas Praktikum 1) Buatlah class Ayah yang memiliki atribut hidung (mancung atau pesek), mata (lebar atau sipit), kulit (hitam atau putih). Kemudian buatlah class Anak yang menurunkan data dari class Ayah . Class Anak memiliki data tambahan yaitu
nama . Implementasikan pada
main method. Pertama kita buat class yang diberi nama
Ayah seperti dibawah ini :
Setelah itu kita buat class baru lagi kita beri nama Anak seperti dibawah ini :
Dan akan muncul outputan seperti dibawah ini :
2)
Buatlah 3 buah class yang terdiri dari classSoftware , class Game , class Main yang berada pada package
Software .
Aturan class Software : Atribut berisi kode , nama , danlisensi Terdapat 2 buah constructor Software: o Constructor pertama tidak memiliki parameter dan tidak ada isinya
o Constructor kedua memiliki parameter untuk mengeset nilai
kode , nama ,
dan lisensi (freeware/ shareware/ komersil) Terdapat method
setter dan getter untuk mengeset dan mengambil nilai dari
kode , nama , dan lisensi .
Aturan class Game: Meng-extends class
Software
Atribut berisi enis dan tipe Terdapat 2 buah constructor Game o Constructor nama ,
pertama
memiliki
parameter
untuk
mengeset
nilai kode ,
dan lisensi diambil dari constructor kedua pada class Software
(gunakan keyword
super )
o Constructor kedua memiliki parameter untuk mengeset nilai lisensi (freeware/ shareware/ komersil),
kode , nama ,
enis (offline/online), dan
tipe
(action/ adventure/ sport/ puzzle). Data kode , nama , dan lisensi diambil dari setter pada class Software (gunakan keyword super ) Terdapat method getter untuk mengambil nilai dari variabel kode , nama , dan lisensi pada class Software serta mengambil nilai dari variabel
Setelah
class-class
tersebut
dibuat,
buatlah
class Main
yang
enis dan tipe .
berisi
method
Kemudian implementasikan pada main method tersebut berdasarkan inputan user (menggunakan Scanner atau BufferedReader). Jawaban : Pertama buat Class diberi nama software source codenya seperti dibawah ini :
main.
Setelah itu membuat Class Baru lagi diberi nama Game seperti dibawah ini :
Setelah itu kita buat class mainnya tapi disini saya menggunakan BufferedReader.
Setelah dibawah BufferedReader kita lanjutkan pengcodean class main :
Setelah itu kita Run menggunakan Shift + f6 akan muncul inputan seperti dibawah ini : Dan kita bisa memasukkan nama Game,jenis Game,Type Game dan Lisensi Game tersebut.
V.
Kesimpulan (Kesimpulan dari modul ini alhamdulillah saya bisa tau inheritance itu bagaimana alurnya dan kita harus teliti menggunakannya.)