Anda di halaman 1dari 19

Laporan Praktikum Pemrograman Berorientasi Objek

Inheritance & Polimorfisme

Nama Mahasiswa : Ardiah Pramesty Cahyani


NIM : 2055301016
Dosen Pengampu : Ezri Hidayat, S.T., M.Kom
AIL : Endah Chilfani, S. S. T

Program Studi D4- Teknik Informatika


Jurusan Teknologi Informasi
Politeknik Caltex Riau
TA 2020/2021
Inheritance & Polimorfisme
A. Tujuan Pembelajaran
Tujuan Pembelajaran pada praktikum ke 4 adalah:
1. Mahsiswa mampu menggunakan konsep inheritance dan di implementasikan da-
lam pembuatan program.
2. Mahsiswa mampu menggunakan konsep polimorfisme dan di implementasikan
dalam pembuatan program.

B. Alat dan Bahan Pembelajaran


Alat dan bahan yang digunakan selama Praktikum sebagai berikut:
1. Netbeans 8.2 dan JDK
2. Laptop
3. Google Classroom
4. Modul Praktikum VI (Inheritance &Polimorfisme)

C. Landasan Teori
Inheritance adalah konsep OOP dimana sebuah class dapat menurunkan prop-
erty dan method yang dimilikinya kepada class lain. Konsep inheritance dipakai untuk
memanfaatkan fitur code reuse, yakni menghindari terjadinya duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau hierarchy class dalam kode pro-
gram. Class yang akan diturunkan bisa disebut sebagai class induk (parent class), super
class, atau base class. Sedangkan class yang menerima penurunan bisa disebut se-
bagai class anak (child class), sub class, derived class atau heir class.
Tidak semua property dan method class induk akan diturunkan. Property dan method
dengan hak akses private tidak akan diturunkan kepada class anak. Hanya property dan
method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

Polimorfisme terbagi menjadi dua suku kata yaitu, Poly yang berarti banyak
dan Morfisme yang berarti bentuk. Dalam ilmu sains, Polimorfisme (polymorphism)
adalah sebuah prinsip dalam biologi di mana organisme atau spesies memiliki banyak
bentuk serta tahapan (stages). Prinsip tersebut diterapkan juga pada bahasa Java. Po-
limorfisme dalam OOP merupakan sebuah konsep OOP di mana class memiliki banyak
“bentuk” method yang berbeda, meskipun namanya sama. Maksud dari “bentuk”
adalah isinya yang berbeda, namun tipe data dan parameternya berbeda. Polimorfisme
juga dapat diartikan sebagai teknik programming yang mengarahkan kamu untuk
memprogram secara general daripada secara spesifik. Contohnya kita memiliki tiga
class yang berbeda yaitu: “Kelinci”, “Kucing”, dan “Sapi”. Di mana ketiga class terse-
but merupakan turunan dari class “Hewan”.

D. Studi Kasus / Modul


Contoh • Analisa class Animal
Class animal yang berada di dalam
• Screenshot sytax class Animal
package Praktikum_PBO_6 meru-
pakan sebuah kelas induk (class
parent) / super class / base class
yaitu class yang akan diturunkan.
Didalam class animal ini terdapat
sebuah modifier yang berjenis pro-
• Screenshot syntax class Dog
tected. Modifier Pro-
tected artinya bisa diakses di da-
lam package ataupun di luar pack-
age namun hanya melalui inher-
itance (atau pewarisan yang meru-
pakan salah satu konsep penting
pemrograman Java). pro-
• Screenshot syntax class Main tected tidak bisa diaplikasi-
kan pada class, namun bisa diap-
likasikan pada data field, method
dan contructor.
Di dalam class Animal terdapat 2
method yaitu Animal dan eat.
• Output
• Analisa class Dog
Class Dog merupakan sebuah class
child / subclass yang akan
menerima penurunan dari class An-
imal. Class anak di tandai dengan
adanya keyword “extends” pada
saat pendeklarasian class.
Extends pada java berfungsi un- anotasi @Override di atas nama
tuk memanggil fungsi dari class method atau sebelum pembuatan
lain, sehingga kita tidak perlu lagi method.
membuat script yang sama pada • Analisa class Main
class yang akan kita buat dengan Class Main merupakan Class im-
class yang kita buat sebelumnya. plementasi yang ada di dalam pack-
Di dalam class Dog terdapat 3 age Praktikum_PBO_6. Class im-
method yaitu Dog, eat, dan bark. plementasi atau class driver adalah
Kemudian terdapat method over- class yang berisi main method un-
riding. Method Overriding dil- tuk menjalankan program pada
akukan saat kita ingin membuat class prototype. Di dalam class
ulang sebuah method pada sub- driver terdapat pembuatan objet
class atau class anak. Method baru yaitu dog1 dimana object ter-
Overriding dapat dibuat dengan sebut nantinya akan digunakan
menambahkan pada saat pemanggilan method-
method yang ada pada subclass.
Percobaan 1 • Output

• Screenshot Syntax class


BangunDatar

• Analisa class BangunDatar


Class BangunDatar yang berada di
dalam package Praktikum_PBO_6
• Sceenshot syntax class Segitiga
merupakan sebuah kelas induk
(class parent) / super class / base
class yaitu class yang akan di-
turunkan. Didalam class animal ini
terdapat sebuah modifier yang ber-
jenis protected. Modifier Pro-
tected artinya bisa diakses di da-
lam package ataupun di luar pack-
age namun hanya melalui inher-
itance (atau pewarisan yang meru-
• Screenshot syntax class Test-
BangunDatar pakan salah satu konsep penting
pemrograman Java). pro-
tected tidak bisa diaplikasi-
kan pada class, namun bisa diap-
likasikan pada data field, method
dan contructor.

Di dalam class BangunDatar ter-


dapat 2 method yaitu luas dan kelil-
ing. Selain itu juga terdapat
keyword “return” yang berfungsi dilakukan saat kita ingin membuat
untuk mengembalikan suatu nilai. ulang sebuah method pada sub-
• Analisa class Segitiga class atau class anak. Method
Class Segitiga merupakan sebuah Overriding dapat dibuat dengan
class child / subclass yang akan menambahkan anotasi @Over-
menerima penurunan dari class An-
ride di atas nama method atau
imal. Class anak di tandai dengan
sebelum pembuatan method.
adanya keyword “extends” pada
• Analisa class TestBangunDatar
saat pendeklarasian class. Ex- Class TestBangunDatar merupakan
tends pada java berfungsi untuk Class implementasi yang ada di da-
memanggil fungsi dari class lain, lam package Praktikum_PBO_6.
sehingga kita tidak perlu lagi mem- Class implementasi atau class
buat script yang sama pada class driver adalah class yang berisi main
yang akan kita buat dengan class method untuk menjalankan pro-
yang kita buat sebelumnya. gram pada class prototype. Di da-
Di dalam class Segitiga terdapat 2 lam class driver terdapat pembu-
method yaitu luas dan keliling. atan objet baru yaitu s1 dan s2 di-
Lalu didalam ini juga terdapat se- mana object tersebut nantinya akan
buah contructor yang bernama se- digunakan pada saat pemanggilan
gitiga dengan parameter. method-method yang ada pada sub-
Kemudian terdapat method over- class atau class prototype.
riding. Method Overriding
Contoh 1 (Run-Time) • Output

• Screenshot syntax class Ani-


mal1

• Analisa class Animal1


Polimorfisme dinamis (run time)
adalah polimorfisme yang ada pada
• Screenshot syntax class Cat saat run-time. Di sini, kompilator
Java tidak memahami metode
mana yang dipanggil pada waktu
kompilasi.
Class Animal1 yang berada di da-
lam package Praktikum_PBO_6
• Screenshot syntax class Dog1
merupakan sebuah kelas induk
(class parent) / super class / base
class yaitu class yang akan di-
turunkan. Didalam class animal1
ini terdapat sebuah modifier yang
• Screenshot syntax class Main1 berjenis protected. Modifier Pro-
tected artinya bisa diakses di da-
lam package ataupun di luar pack-
age namun hanya melalui inher-
itance (atau pewarisan yang meru-
pakan salah satu konsep penting
pemrograman Java). pro-
tected tidak bisa diaplikasi-
kan pada class, namun bisa
diaplikasikan pada data field, Di dalam class Dog terdapat sebuah
method dan contructor. method yaitu MakeSound().

Di dalam class Animal1 terdapat Kemudian terdapat method over-

sebuah method yaitu riding. Method Overriding dil-

MakeSound(). akukan saat kita ingin membuat

Method “MakeSound” adalah ulang sebuah method pada sub-

method class atau class anak. Method

yang melakukan runtime po- Overriding dapat dibuat dengan

limorfisme, menambahkan anotasi @Over-

yaitu dimana subclass “Cat” dan ride di atas nama method atau

“Dog” sebelum pembuatan method.


meng-override method • Analisa class Cat
Class Cat merupakan sebuah class
“MakeSound”
child / subclass yang akan
yang ada di superclass “Animal”
menerima penurunan dari class An-
• Analisa class Dog1
Class Dog merupakan sebuah class imal. Class anak di tandai dengan
child / subclass yang akan adanya keyword “extends” pada
menerima penurunan dari class An- saat pendeklarasian class. Ex-
imal. Class anak di tandai dengan tends pada java berfungsi untuk
adanya keyword “extends” pada memanggil fungsi dari class lain,
saat pendeklarasian class. Ex- sehingga kita tidak perlu lagi mem-
tends pada java berfungsi untuk buat script yang sama pada class
memanggil fungsi dari class lain, yang akan kita buat dengan class
sehingga kita tidak perlu lagi mem- yang kita buat sebelumnya.
buat script yang sama pada class Di dalam class Cat terdapat sebuah
yang akan kita buat dengan class method yaitu MakeSound().
yang kita buat sebelumnya. Kemudian terdapat method over-
riding. Method Overriding dil-
akukan saat kita ingin membuat
ulang sebuah method pada sub-
class atau class anak. Method
Overriding dapat dibuat dengan
menambahkan anotasi @Over-
ride di atas nama method atau
sebelum pembuatan method.
• Analisa Class Main1
Class Main1 merupakan Class im-
plementasi yang ada di dalam pack-
age Praktikum_PBO_6. Class im-
plementasi atau class driver adalah
class yang berisi main method un-
tuk menjalankan program pada
class prototype. Di dalam class
driver terdapat pembuatan objet
baru yaitu d1 dan c1 dimana object
tersebut nantinya akan digunakan
pada saat pemanggilan method-
method yang ada pada subclass.
Contoh 2 (Compile-Time) • Analisa
Polimorfisme statis atau Compile-
• Screenshot syntax class Demo
time (waktu kompilasi) adalah po-
limorfisme yang ditunjukkan pada
waktu kompilasi. Di sini, compiler
Java mengetahui metode mana
yang dipanggil. Overloading
metode dan penggantian metode
• Screenshot syntax class Main2 menggunakan metode statis; over-
riding metode menggunakan
metode pribadi atau final adalah
contoh polimorfisme statis
Pada program-program disamping
terdapat 2 buah class yaitu class
Demo dan class Main2. Class
• Output
Demo adalah class yang bertindak
sebagai class prototype. Class pro-
totype digunakan untuk membuat
sebuah object. Lalu dari dalam
class prototype inilah method dan
attribute di deklarasikan yang
kemudian outputnya akan dit-
ampilkan melalui class Implemen-
tas atau driver.
sedangkan class Main2 adalah
class yang bertidak sebagai class
implementasi. Class implementasi
atau class driver adalah class yang
berisi main method untuk men-
jalankan program pada class proto-
type. Di dalam class driver terdapat
pembuatan objet baru yaitu d1 di-
mana object tersebut nantinya akan
digunakan pada saat pemanggilan
method-method yang ada class pro-
totype.
Method “DisplayPattern” adalah
method yang melakukan compile-
time polimorfisme, yaitu dimana
dalam 1 class yang yang sama ter-
dapat 2 method “DisplayPattern”,
yang membedakan hanya jumlah
dan type data parameternya saja.
Tugas 1 • Screenshot syntax class Ling-
karan
• Screenshot syntax class
BangunDatar

• Screenshot syntax class Se- • Screenshot syntax class Test-


gitiga Bangundatar

• Screenshot syntax class Persegi

• Output
• Analisa child. Di dalam class driver ter-
Pada screen picture dari program- dapat proses pembuatan objet baru,
program diatas terdapat 5 class dimana object-object tersebut nant-
yaitu class BangunDatar yang ber- inya akan digunakan pada saat
tindak sebagai Class Parent yaitu pemanggilan method-method yang
class yang akan diturunkan kepada ada pada class child.
class child atau class anak. Class Kemudian di dalam class child
Segitiga, class Persegi dan class juga terdapat method overriding.
Lingkaran merupakan class-class Method Overriding dilakukan saat
yang bertindak sebagai class child kita ingin membuat ulang sebuah
atau class anak yaitu class yang method pada sub-class atau class
menerima penurunan dari class in- anak. Method Overriding dapat
duk atau class Parent. dibuat dengan menambahkan
Class child atau class anak ditandai anotasi @Override di atas nama
dengan adanya pemakain keyword
method atau sebelum pembuatan
“Extends”.Extends pada java ber-
method.
fungsi untuk me-
manggil fungsi dari class lain, se-
hingga kita tidak perlu lagi mem-
buat script yang sama pada class
yang akan kita buat dengan class
yang kita buat sebelumnya.

Lalu class TestBangunDatar meru-


pakan sebuah class implementasi
atau class driver. Class implemen-
tasi atau class driver adalah class
yang berisi main method untuk
menjalankan program pada class
Tugas 2 • Output

• Screenshot syntax class Pega-


wai

• Analisa
Pada program di samping terdapat
3 buah class yaitu class Pegawai
• Screenshot syntax class Pro- yang bertindak sebagai class Parent
grammer atau class induk. Class induk ada-
lah class yang akan diturunkan
kepada class child atau class anak.
Lalu terdapat class Programmer
yang merupakan class child atau
class anak. Class anak adalah class
yang menerima penurunan dari ke-
• Screenshot syntax class las induk-nya. Pembuatan class
MyMain
child atau class anak ditandai
dengan adanya penggunaan key-
word “extends”. Ex-
tends pada java berfungsi untuk
memanggil fungsi dari class lain,
sehingga kita tidak perlu lagi mem-
buat script yang sama pada class
yang akan kita buat dengan class
yang kita buat sebelumnya.
Di dalam class child juga terdapat
method overriding. Method Over-
riding dilakukan saat kita ingin
membuat ulang sebuah method
pada sub-class atau class anak.
Method Overriding dapat dibuat
dengan menambahkan
anotasi @Override di atas nama
method atau sebelum pembuatan
method.
Sedangkan class TestPegawai
merupakan sebuah class imple-
mentasi atau class driver. Class im-
plementasi atau class driver adalah
class yang berisi main method un-
tuk menjalankan program pada
class child. Di dalam class driver
terdapat proses pembuatan objet
baru, dimana object-object tersebut
nantinya akan digunakan pada saat
pemanggilan method-method yang
ada pada class child.
Studi Kasus
• Screenshot syntax class Pega-
waiTetap

• Output

• Analisa
Pada program studi kasus di atas
menerapkan konsep “Inheritance”.
• Screenshot syntax class Pega- Inheritance adalah class baru yang
waiKontrak
“mewarisi” atau memiliki bagian-
bagian dari class yang sudah ada
sebelumnya. Konsep ini
menggunakan sistem hirarki atau
bertingkat
Protected adalah sebuah modifier
yang dimana atribut atau method
tersebut tidak dapat diakses dari
luar class akan tetapi bisa diakses
oleh class itu sendiri atau turunan
dari sebuah class
• Screenshot syntax class
TestPegawai method non static adalah method
yang harus membuat objek ketika
pemanggilanya
Method void adalah method yang Class PegawaiTetap adalah class
tidak mengembalikan nilai atau yang bertindak sebagai class parent
method tersebut tidak atau class induk yang akan di-
menggunakan tipe data turunkan kepada class child atau
Method non void adalah method class anak, sedangkan class Pega-
yang mengembalikan sebuah nilai waiKontrak merupakan class yang
dan method tersebut biasa diawali bertindak sebagai class anak yang
dengan tipe data, keyword yang akan menerima penurunan dari
digunakan didalam method terse- class parent. Di dalamm pembu-
but adalah return atan class anak harus disertai
Modifier public adalah membar dengan penggunaan keyword ‘ex-
atau class dapat diakses dimana tends” pada saat pendeklarasian
saja bahkan di luar package class. Lalu class TestPegawai ada-
sekalipun lah class implementasi. Class im-
Override adalah penggunaan plementasi atau class driver adalah
method yang ada pada class utama class yang berisi main method un-
atau parent class namun digunakan tuk menjalankan program pada
kembali pada class anak atau sub class child. Di dalam class driver
class terdapat proses pembuatan objet
Object adalah bentuk jadi dari baru, dimana object-object tersebut
Class Jadi class itu adalah cetakan nantinya akan digunakan pada saat
untuk sekelompok objek yang pemanggilan method-method yang
memiliki properti yang sama. Class ada pada class child.
bisa terdiri dari: Fields Template
dari keadaan(property) yang bisa
membedakan objek yang satu
dengan yang lainnya.
E. Kesimpulan
Kesimpulan praktikum 6 mengenai Inheritance dan Polymorphism yaitu Inheritance
adalah konsep OOP di mana kita dapat membentuk class baru yang “mewarisi” atau
memiliki bagian-bagian dari class yang sudah ada sebelumnya. Konsep ini
menggunakan sistem hirarki atau bertingkat. Inheritance OOP memiliki konsep yaitu
di mana semakin spesifik subclassnya, semakin sedikit pula komponen yang dapat di-
warisi class tersebut.
Poly artinya banyak, morfisme artinya bentuk. Polimorfisme (bahasa inggris polymor-
phism) adalah sebuah prinsip dalam biologi di mana oraganisme atau spesias dapat
memiliki banyak bentuk atau tahapan (stages). Prinsip ini juga diadopsi pada pem-
rograman berorientasikan objek. Sehingga kita dapat definisikan sebagai berikut: Po-
limorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak
“bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat
kita artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda.

F. Daftar Pustaka
Modul Praktikum VI (Inheritance & Polimorfisme)

Anda mungkin juga menyukai