Konsep Dan Penegertian Polymorphism
MAKALAH
PEMROGRAMAN BERORIENTASI OBJEK
Disusun Untuk Memenuhi Tugas Mata Kuliah Pemrograman
Berorientasi
Objek Dosen Pengampu Arip. M.Kom
Disusun Oleh :
Mohammad Indra Andriana ()
PROGRAM STUDI S1 TEKNIK INFORMATIKA
TASIKMALAYA
2022
KATA PENGANTAR
Assalamu’alaikum Warahmatullahi
Wabarakatuh
Puji syukur
kehadirat Tuhan Yang Maha Kuasa atas segala limpahan Rahmat, Inayah, Taufik dan
Hinayahnya sehingga saya dapat menyelesaikan penyusunan makalah ini dalam
bentuk maupun isinya yang sangat sederhana. Semoga makalah ini dapat
dipergunakan sebagai salah satu acuan, petunjuk maupun pedoman bagi pembaca
dalam administrasi pendidikan dalam profesi keguruan.
Sebelumnya
penulis mengucapkan banyak-banyak terima kasih kepada Bapak Arip .M.Kom. Selaku
guru Pemrograman Berorientasi Objekyang telah memberikan tugas membuat makalah
ini sehingga penulis dapat menambah wawasan serta pengetahuan yang lebih luas. Harapan
saya semoga makalah ini membantu menambah pengetahuan dan pengalaman bagi para
pembaca, sehingga saya dapat memperbaiki bentuk maupun isi makalah ini sehingga
kedepannya dapat lebih baik.
Makalah ini
saya akui masih banyak kekurangan karena pengalaman yang saya miliki sangat
kurang. Oleh kerena itu saya harapkan kepada para pembaca untuk memberikan
masukan-masukan yang bersifat membangun untuk kesempurnaan makalah ini.
Tasikmalaya,
10 November 2022
Penyusun
DAFTAR ISI
BAB I
PENDAHULUAN
1.1
Latar Belakang
Pengertian
pemrograman bisa didefinisikan sebagai suatu proses penyusunan, pemeliharaan,
dan juga melakukan modifikasi untuk bisa memberikan perintah kepada mesin.
Perintah yang dimaksud di sini adalah arahan kepada mesin untuk memproses
sebuah data yang diinput menjadi suatu output. Pemrograman juga dapat diartikan sebagai sebuah proses
lengkap, mulai dari menulis kode program, menguji kode program, hingga
memperbaiki debug yang muncul saat pemrograman berlangsung, serta memelihara
kode-kode program yang telah dibangun melalui sistem update software.
Adapun tujuan utama dari pemrograman komputer adalah untuk
membuat sebuah program atau arahan yang bisa dicerna oleh komputer, sehingga
perangkat komputer dapat melakukan sebuah perhitungan serta pekerjaan lain
sesuai dengan keinginan user.Dalam bahasa pemrograman juga terdapat berbagai
macam konsep pemrograman. Mungkin salah satunya nya ialah konsep oop.
bject-oriented programming atau OOP adalah suatu metode pemrograman yang
berorientasi pada objek. Program-program yang telah ada merupakan
gabungan dari beberapa komponen-komponen kecil yang sudah ada sebelumnya.
Objek-objek yang saling berkaitan
dan disusun kedalam satu kelompok ini disebut dengan class.
Dalam oop juga terdapat yang nama nya polimorfism Polymorphism
berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini
memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar
melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara
proses berbeda. Secara bahasa,
Polymorphism memiliki arti “banyak bentuk” atau “bermacam-macam”.
1.2
Rumusan masalah
-
Apa yang dimasksud dengan polimorphism?
-
Bagaimana cara penulisan atau penggunaan polimorphism?
-
Apa saja keunggulan dari polimorphhism?
1.3
Tujuan
-
Dapat mengetahui pengertian dari polimorphhism secara garis besar.
-
Dapat mengetahui cara penulisan dan penggunaan konsep polimorphhism.
-
Dapat mengetahui kelebihan dari polimorphhism yang di jelaskan di atas dengan baik.
BAB II
PEMBAHASAN
2.1 Konsep Dan Penegertian Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti
banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface
yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin
secara prinsip sama namun secara proses berbeda. Secara
bahasa, Polymorphism memiliki arti “banyak bentuk” atau “bermacam-macam”. Dalam
beberapa textbook di pemrograman, Polymorphism merupakan suatu konsep dimana
suatu interface tunggal digunakan pada entity yang berbeda-beda. Biasanya,
penggunaan suatu simbol tunggal berfungsi untuk mewakili beberapa jenis tipe
entity. Secara sisi teknis
dalam bahasa pemrograman, istilah Polymorphism merupakan konsep menggunakan
suatu fungsi atau atribut tertentu dari suatu base class. Nantinya, fungsi
tersebut diimplementasikan oleh children class.
Dengan begitu, Polymorphism merupakan penggunaan salah
satu item seperti fungsi, atribut, atau interface, pada berbagai jenis objek
atau entity yang berbeda. Polymorphism
merupakan kemampuan suatu method untuk bekerja dengan lebih dari satu tipe
argumen. Pada bahasa lain (khususnya C++), konsep ini sering disebut dengan
method overloading. Pada dasarnya, Python tidak menangani hal ini secara
khusus. Hal ini disebabkan karena Python merupakan suatu bahasa pemrograman
yang bersifat dynamic typing yaitu tidak memerlukan deklarasi tipe.
A. Tipe Tipe Polymorphism
Secara umum, ada dua tipe Polymorphism yang
digunakan dalam aspek implementasinya, yaitu Static Polymorphism dan Dynamic
Polymorphism. Berikut adalah penjelasan dari masing-masing tipe Polymorphism.
1. Static Polymorphism
Salah satu tipe yang dilakukan pada waktu compile,
yang bekerja lebih cepat, namun membutuhkan bantuan compiler tambahan.
Contoh penggunaan tipe Static Polymorphism
adalah Static Binding, Compile-Time Binding, Early Binding,
dan Metode Overloading pada suatu class.
Static atau
trivialmerupakan, function overloading (penggunaan kembali nama fungi yang sama
tapi dengan argumen yang berbeda) yang terbagi dalam 3 signature yaitu :
-
Jenis Array
-
Letak Array
-
Type Array
Contoh function overloading :
Void tambah
(int a, int b);
Void tambag
(float d, float c);
2.
Dynamic
Polymorphism
Dynamic atau trueMerupakan
function overriding (sebuah fungsi dalam class turunan yang memiliki nama,
return type argumen function yang sama dengan fungsi dalam class induk).
Menggunakan virtual method.
Tipe ini dilakukan pada
waktu berjalannya program atau runtime.. Implementasi dari Dynamic Polymorphism
ini dianggap lebih fleksibel, namun bekerja lebih lambat dari pada tipe
pertama.
Contoh dari penggunaan
tipe Dynamic Polymorphism adalah Dynamic Binding, Run-Time Binding, Late
Binding, Metode Overriding pada class-class yang berbeda.
Pure virtual method (tanpa
function body)
Contoh : virtual void jalan()
= 0;
Squasi virtual method (ada
function body)
Contoh : virtual void
info() {;}
Perbedaan Tipe Polymorphism
Kedua tipe di atas
dibedakan berdasarkan cara pembuatan Polymorphism. Pada tipe pertama
menggunakan metode overloading, sedangkan tipe kedua menggunakan metode
overriding.
a.
Aturan Metode Overloading
-
Nama metode yang digunakan harus
sama dengan metode lainnya.
-
Parameter yang digunakan juga
berbeda.
-
Return yang digunakan bisa sama
atau berbeda.
b.
Aturan Metode Overriding
-
Mode akses metode ini harus sama
atau bahkan lebih luas daripada metodenya.
-
Subclass hanya dapat dan
diizinkan melakukan metode ini pada superclass sebanyak satu kali saja.
Sehingga, tidak diizinkan apabila lebih dari satu metode yang sama pada class.
-
Pada setiap subclass tidak
diizinkan untuk memiliki hak akses metode overriding yang ketat dibandingkan
dengan hak akses metode pada superclass atau pun parent class.
Keuntungan
pemograman dengan menggunakan Polymorphism, yaitu :
·
Dapat
menggunakan kelas-kelas yang kita buat (sebagai super kelas) dan membuat kelas
kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus
dari behaviour umum yang dimiliki superkelas.
·
Dapat
membuat super kelas yang hanya mendefinisikan behaviuor namun tidak memberikan
implementasidari metode-metode yang ada.Hal ini berguna jika ingin membuat
template kelas, kelas ini disebut kelas abstrak karena behaviournya masih
abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas ini yang
disebut kelas konkret, mengimplementasikan behaviuor abstrak tersebut sesuai
dengan kebutuhan masing-masing.
·
Menghindari
duplikasi object, yang dapat menciptakan class baru dari class yang sudah ada,
sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap
bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam
konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu
interface banyak aksi.
Polymorphism dengan
Implementasi Interface
Contoh konsep polymorphism dapat digambarkan
melalui sebuah Interface Hewan yang diimplementasi oleh class Burung, kambing
dan Ayam. Pada Interface ditaruh beberapa perilaku seperti makan, bergerak dan
beranak.
Pada class Burung, bergerak dengan
berjalan atau terbang, sedang pada Kambing dan Ayam bergerak dengan berjalan
saja. Semikian juga dengan perilaku makan, misalnya Burung makan biji-bijian,
Ayam makan bekatul dan kambing makan Rumput.
Dalam hal ini
terlihat bahwa method Makan bisa berubah bentuk tergantung dari siapa yang
mengimplementasinya. Demikian juga kita bisa menerapkan hal yang sama bagi
method-method yang lain yang merupakan perilaku dari masing-masing object hasil
instantisasi dari class nama-nama hewan tadi.
Berikut ini contoh polymorphism pada
Interface :
<?php
Interface Hewan {
public function Makan();
public function Bergerak();
public function Beranak();
}
class Burung Implements Hewan {
public function Makan() {
return "Burung makan
biji-bijian<br/>";
}
public function Bergerak() {
return "Burung bergerak
dengan berjalan, terbang dan melompat<br/>";
}
public function Beranak() {
return "Burung beranak
dengan bertelur<br/>";
}
}
class Kambing Implements Hewan {
public function Makan() {
return "Kambing makan
rumput<br/>";
}
public function Bergerak() {
return "Kambing bergerak
dengan berjalan dan berlari<br/>";
}
public function Beranak() {
return "Kambing beranak
dengan melahirkan<br/>";
}
}
$burung = new Burung;
$kambing = new Kambing;
echo "<b>Perilaku Burung :
</b><br/>";
echo $burung->Makan();
echo $burung->Bergerak();
echo $burung->Beranak();
echo "<br/>";
echo "<b>Perilaku Kambing :
</b><br/>";
echo $kambing->Makan();
echo $kambing->Bergerak();
echo $kambing->Beranak();
?>
BAB III
PENUTUP
` 3.1 KESIMPULAN
Dalam beberapa textbook di pemrograman, Polymorphism
merupakan suatu konsep dimana suatu interface tunggal digunakan pada entity
yang berbeda-beda. Biasanya, penggunaan suatu simbol tunggal berfungsi untuk
mewakili beberapa jenis tipe entity. Secara
sisi teknis dalam bahasa pemrograman, istilah Polymorphism merupakan konsep
menggunakan suatu fungsi atau atribut tertentu dari suatu base class. Nantinya,
fungsi tersebut diimplementasikan oleh children class.
Tipe Tipe Polymorphism :
-
Static Polymorphism
-
Dynamic Polymorphism
Keuntungan pemograman dengan menggunakan Polymorphism, yaitu :
·
Dapat
menggunakan kelas-kelas yang kita buat (sebagai super kelas)
·
Dapat
membuat super kelas yang hanya mendefinisikan
·
Menghindari
duplikasi object, yang dapat menciptakan class baru dari class yang sudah ada
DAFTAR PUSAKA
Marker. (2019, Mei
19).Pemrograman-Berorientasi-Objek. Marker. Diakses pada 06 November 2022
melalui https://markey.id/blog/development/pemrograman-berorientasi-objek
How To
Tekno. Pengertian Polipormism. kumparan .Diakses pada 05 November 2022 melalui https://kumparan.com/how-to-tekno/polymorphism-adalah-pengertian-dan-tipe-utamanya-1xj4zaRiNkM/full
Evaristus
Didik. Polipormism. binus.Diakses pada 05 November 2022 melalui https://sis.binus.ac.id/2017/08/30/polymorphism/
Eko Purnomo.Memahami Konsep
Poliporpism.Nulis-Ilmu.Diakses Pada 05 November 2022.https://nulis-ilmu.com/tutorial-php-oop-part-25-memahami-konsep-polymorphism/
Komentar
Posting Komentar