Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK


PERTEMUAN – 11

Disusun Oleh :
NAMA : ANNISA SALSABILA
NIM : 185410070
JURUSAN : TEKNIK INFORMATIKA

STMIK AKAKOM
YOGYAKARTA
2019
A. TUJUAN
Mahasiswa dapat membuat aplikasi yang mengimplementasi compile-time (early binding)
polimorphisme, dapat membuat aplikasi yang mengimplementasi runtime (late binding)
polimorphisme

B. DASAR TEORI
Polimorfisme adalah kemampuan sebuah variabel reference untuk merubah behavior sesuai
dengan apa yang dipunyai object.

Polimorfisme membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan
sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai
untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method
bersangkutan.

Polimorfisme dapat diterjemahkan pula sebagai “sebuah method yang sama namanya (homonim)
tetapi mempunyai tingkah laku yang berbeda”. Komputer membedakan method berdasarkan
signature method (saat compile) atau berdasarkan reference object (saat runtime).

Ada dua bentuk polimorfisme


1. Overloading ( compile-time (early binding) polimorphisme ) Overloading adalah salah satu
cara penerapan dalam konsep polimorfisme. Overload merupakan pendefinisian ulang suatu
metode dalam class yang sama. Syarat overload yaitu metode dan tipe parameter harus berbeda
dalam kelass yang sama

2. Overriding ( runtime (late binding) polimorphisme ) Override merupakan pendefinisian ulang


suatu metode oleh subclass. Syarat Override yaitu metode, return type, dan parameter harus
sama. Jika tidak sama maka bukan dianggap sebagai override tetapi metode yang baru pada
subclass.

Dikatakan late-binding (run time) polymorphism karena saat compile komputer tidak tahu
method mana yang harus dipanggil, dan baru akan diketahui saat run-time. Run-time
polymorphism dapat diterapkan melalui overridden method. Run time polymorphism juga
disebut dengan istilah dynamic binding.

Overriding dan overloading merupakan bagian dari polymorphism. Mengapa ?


Karena, pada dasarnya ada 2 tipe polymorphism, yaitu:
1. Dynamic polimorfisme, merupakan function overriding (sebuah fungsi dalam class turunan
yang memiliki nama, return type, argumen function yang sama dengan fungsi dalam class induk)
/ ( terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan
method dari superclassnya ).
Syarat override merupakan pendefinisian ulang suatu metode oleh subclass. Syarat Override
yaitu metode, return type, dan parameter harus sama. Jika tidak sama maka bukan dianggap
sebagai override tetapi metode yang baru pada subclass. Dikatakan late-binding (run time)
polymorphism karena saat compile komputer tidak tahu method mana yang harus dipanggil, dan
baru akan diketahui saat run-time. Run-time polymorphism dapat diterapkan melalui overridden
method. Run time polymorphism juga disebut dengan istilah dynamic binding.

pengenal method yang ada di super class, tapi berbeda behavior.

Memanggil method yang dioverride di super class

naan keyword super hanya dapat memanggil method di superclassnya langsung.

Syarat access modifier :


· Bila suatu method tidak dapat diturunkan, maka method tersebut tidak dapat dioverriding.
diturunkan, oleh karena itu, bila di dalam
superclass terdapat method private, dan kemudian pada subclassnya terdapat method yang
namanya sama, maka method pada subclass tersebut sebenarnya adalah bukan overriding.
ide TIDAK BOLEH lebih restrictive bila
dibandingkan dengan access modifier method yang dioverride.

2. Static polimorfisme, merupakan function overloading (penggunaan kembali nama fungi yang
sama tapi dgn argumen yang berbeda) / ( Penggunaan satu nama untuk beberapa method yang
berbeda (beda parameter) ).
Overloading adalah salah satu cara penerapan dalam konsep polimorfisme. Overload merupakan
pendefinisian ulang suatu metode dalam class yang sama. Syarat overload yaitu parameter harus
berbeda dalam kelass yang sama.

dengan nama yang sama di dalam suatu class.


-method yang
benar-benar berbeda. Mereka hanya memiliki kesamaan nama saja.

Aturan overload :
1. Method yang mengoverload HARUS merubah argument list
2. Method yang mengoverload BOLEH merubah return type
3. Method yang mengoverload BOLEH merubah access modifier
4. Method yang mengoverload BOLEH melempar checked exception yang lebih luas atau baru
sama sekali dari method yang dioverload.

C. PRAKTIK
PRAKTIK 1 : Compile-time (early binding) polimorphisme dengan overloading method
Pembahasan :
Pada praktik diatas merupakan program polimorfisme dengan method overloading di dalamnya.
Pada praktik di atas polymorphism ditunjukkan dengan menggunakan berbagai method tambah.
Komputer membedakan mana method yang dipanggil berdasarkan signature dari method yaitu
parameter inputnya (jumlah parameter input, type data parametr input, dan urutan type data).

Bentuk polymorphism ini dinamakan early-binding (atau compile-time) polymorphism karena


komputer mengetahui mana method tambah yang dipanggil setelah mengcompile byte code .
Jadi setelah proses compile ketika code sudah menjadi byte code, komputer akan “tahu” method
mana yang akan dieksekusi Bentuk ini yang kita kenal dengan overloaded method.

Program ini mempunyai nama kelas Jumlah sebagai deklarasi awal, lalu terdapat kelas dengan
nama Penjumlahan yang digunakan untuk menjalankan program dan mengeluarkan output.
Outputnya seperti diatas. Hasilnya seperti diatas karena perintah yang diminta yaitu method
tambah sehingga angka2 yang disebutkan ditambahkan.
PRAKTIK 2 : Compile-time (early binding) polimorphisme dengan overloading Konstruktor

Pembahasan :
Pada praktik diatas yaitu program polimorfisme dengan overloading konstruktor. Program ini
memiliki kelas dengan nama Penggajian dengan tipe data double untuk variable gapok dan masa
kerja. Lalu terdapat juga kelas dengan nama OverloadingKonstruktor yang digunakan untuk
menjalankan perintah di program awal dan mengeluarkan output seperti contoh diatas.

PRAKTIK 3 : Runtime polimorfisme dengan overriding method


Pembahasan :
Pada praktik diatas yaitu program polimorfisme dengan method overriding. Program tersebut
mempunyai nama kelas Kendaraan Method, di kelas ini terdapat method info(). Lalu pada baris
ke 16 merupakan kelas Roda2 yang dimana kelas tersebut turunan dari kelas induk Kendaraan.
Begitu juga pada kelas Motor yang dimana kelas tersebut merupakan kelas turunan Kelas Roda2,
yang ditandai dengan adanya kata kunci extends. Pada baris ke 27 merupakan program dengan
nama kelas Test, dimana pada baris ke 34, 36, dan baris 38 merupakan method info yang
digunakan untuk memanggil info pada kelas Roda2 dan Motor, sehingga outputnya seperti
diatas. Program Ini lebih lama di jalankan karena Runtime polimorfisme dengan overriding
method.

PRAKTIK 4 : Runtime polimorfisme dengan data member.

Pembahasan :
Pada praktik diatas yaitu program dengan nama kelas Induk. Dimana pada program ini
merupakan bukan menggunakan kelas induk tetapi menggunakan konstruktor di kelas Anak.
Konstruktor dari kelas Anak merupakan turunan dari kelas Induk. Method yg dipanggil
merupakan method di kelas Anak. Seperti di praktik sebelumnya yaitu terdapat method Info().
Terdapat juga class dengan nama class Test2 yang digunakan untuk menjalankan program dan
mengeluarkan output, pada baris ke 28 merupakan method untuk mengeluarkan output, yaitu
terdapat method dengan nama tes.Info();

PRAKTIK 5 : Runtime polimorfisme dengan passing parameter.


Pembahasan :
Pada program diatas merupakan program untuk runtime polimorfisme dengan passing parameter.
Program tersebut mempunyai class dengan nama class AlatGerak yang merupakan class induk
atau superclass dari subclass Sayap dan Kaki. Pada class Sayap dan Kaki terdapat method
bergetak(), untuk output Sayap yaitu (“Saya Bisa Terbang”) dan untuk output Kaki (“Saya bisa
jalan-jalan”). Lalu terdapat class dengan nama class Burung yang memiliki hak akses private
untuk kelas AlatGerak dimana kelas Burung tersebut hanya bisa diakses di kelas AlatGerak.
Lalu pada baris ke 44 merupakan kelas dengan nama kelas BurungTest yang digunakan untuk
menjalankan perintah dan mengeluarkan output pada program sebelumnya, pada baris ke 50
sampai dengan baris ke 53 merupakan method untuk mengeluarkan output program sebelumnya.
Yaitu terdapat method setAlatGerak dengan parameter sayap, method bergerak(), method
setAlatGerak dengan parameter kaki, dan method bergerak(), sehingga outputnya seperti contoh
diatas.

D. LATIHAN
1. Buat program yang menunjukan Runtime polihmorhpisme dan Tunjukan

Output:
Pada program diatas merupakan sebuah program untuk Runtime polihmorhpisme. Yang
dilakukan adalah membuat runtime polimorfisme dengan overriding method. Override
merupakan pendefinisian ulang suatu metode oleh subclass. Syarat Override yaitu metode, return
type, dan parameter harus sama. Pertama buat super class dengan nama Animal. Setelah itu buat
method move yang berisi perintah output menampilkan “Animal can move”. Dan buat class Dog
yang merupakan subclass dari class Animal. Kemudian buat overriding method dari class
Animal yaitu method move yang berisi perintah output menampilkan “Dogs can walk and run”.
Selanjutnya terdapat class TestDog, disini digunakan Main method merupakan method utama
yang di jalankan pada saat aplikasi di run. Dan buat obyek untuk class Animal yaitu dengan
nama a yang digunakan menampung isi method Animal. Setelah itu buat obyek untuk class
Animal yaitu dengan nama b yang digunakan menampung isi method Dog, dan panggil method
move pada kedua class ditampung pada variabel a dan b. Maka ketika program dijalankan akan
menampilkan informasi seperti hasil output diatas jika dijalankan

2. Buat program yang menunjukan Runtime polihmorhpisme dan Tunjukan


Polymorphism ditunjukkan dengan menggunakan berbagai method nama. Komputer
membedakan mana method yang dipanggil berdasarkan signature dari method yaitu
parameter inputnya (jumlah parameter input, type data parametr input, dan urutan type data).
Bentuk polymorphism ini dinamakan early-binding (atau compile-time) polymorphism
karena komputer mengetahui mana method nama yang dipanggil setelah mengcompile byte
code . Jadi setelah proses compile ketika code sudah menjadi byte code, komputer akan
“tahu” method mana yang akan dieksekusi Bentuk ini yang kita kenal dengan overloaded
method. Pada output Riyan computer memanggil method nama yang atas dan pada output 14
komputer memanggil method nama yang bawah.

E. TUGAS
Buatlah tabel perbedaan runtime polimorfisme dengan compile time polimorfisme minimal
5!
F. KESIMPULAN
Pada pertemuan kali ini dapat disimpulkan bahwa jika membuat aplikasi yang
mengimplementasi compile-time (early binding) polimorphisme, dapat membuat aplikasi yang
mengimplementasi runtime (late binding) polimorphisme. Yang merupakan kemampuan
sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
Ada dua bentuk polimorfisme yaitu :
Overloading ( compile-time (early binding) polimorphisme ) Overloading adalah salah
satu cara penerapan dalam konsep polimorfisme. Overload merupakan pendefinisian ulang
suatu metode dalam class yang sama. Syarat overload yaitu metode dan tipe parameter harus
berbeda dalam kelass yang sama
Overriding ( runtime (late binding) polimorphisme ) Override merupakan pendefinisian
ulang suatu metode oleh subclass. Syarat Override yaitu metode, return type, dan parameter
harus sama. Jika tidak sama maka bukan dianggap sebagai override tetapi metode yang baru
pada subclass.

G. LISTING
Terlampir

Anda mungkin juga menyukai