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

 

KATA PENGANTAR

DAFTAR ISI

BAB I PENDAHULUAN

1.1        Latar Belakang

1.2        Rumusan masalah

1.3        Tujuan

BAB II PEMBAHASAN

2.1      Konsep Dan Penegertian Polymorphism

BAB III PENUTUP

`           3.1 KESIMPULAN

DAFTAR PUSAKA


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