Konsep OOP Polymorphism
Pemrograman Berorientasi Objek (OOP) adalah paradigma pemrograman yang menggunakan konsep objek untuk merancang dan mengorganisir kode. Salah satu konsep utama dalam OOP adalah polimorfisme. Polimorfisme memungkinkan suatu objek untuk memiliki banyak bentuk atau perilaku yang berbeda. Dalam pembahasan ini, kita akan menjelajahi konsep polimorfisme dalam OOP dengan lebih rinci.
Definisi Polimorfisme:
Polimorfisme berasal dari bahasa Yunani yang berarti "banyak bentuk." Dalam konteks OOP, polimorfisme mengacu pada kemampuan suatu objek untuk merespons metode atau operasi dengan cara yang sesuai dengan tipe objek tersebut. Ada dua bentuk utama polimorfisme dalam OOP: polimorfisme compile-time (static) dan polimorfisme runtime (dynamic).
1. Polimorfisme Runtime (Dynamic):
- Terkait
dengan konsep overriding.
- Subclass
menyediakan implementasi yang berbeda untuk metode yang telah
dideklarasikan di superclass.
- Pemilihan
metode terjadi saat runtime berdasarkan objek yang sebenarnya dibuat.
- Contoh dalam Java:
Penjelasan:
1. Kelas `Enemy`: Menyediakan metode `attack()` dengan implementasi default, yaitu mencetak "Lawan sedang menyerang!".
2. Kelas `Pasukan`: Merupakan turunan dari `Enemy` dan melakukan overriding pada metode `attack()`. Ketika objek `Pasukan` dipanggil, metode `attack()` yang dicetak adalah "Pasukan sedang bertempur!".
3. Kelas `Sekutu`: Merupakan turunan dari `Enemy` dan juga melakukan overriding pada metode `attack()`. Ketika objek `Sekutu` dipanggil, metode `attack()` yang dicetak adalah "Sekutu sedang membantu!".
4. `main` Method: Pada `main` method, tiga objek dibuat: `e1` dari kelas `Enemy`, `e2` dari kelas `Pasukan`, dan `e3` dari kelas `Sekutu`.
5. Saat memanggil metode `attack()` untuk setiap objek, Java secara otomatis memilih implementasi yang sesuai dengan tipe objek yang sebenarnya. Hal ini menunjukkan polimorfisme pada waktu runtime.
Dengan menggunakan polimorfisme, kita dapat memperlakukan
objek dari kelas turunan sebagai objek dari kelas dasar dan memanggil metode
yang sesuai dengan implementasi pada kelas turunan tersebut.
2. Polimorfisme Compile-Time (Static):
- Terkait
dengan konsep overloading.
- Kompiler
memilih metode yang sesuai berdasarkan jumlah dan tipe parameter.
- Contoh
dalam Java:
Keuntungan Polimorfisme:
1. Fleksibilitas Kode: Polimorfisme membuat kode lebih fleksibel, karena objek dapat memiliki banyak bentuk atau perilaku.
2. Pemeliharaan Kode: Dengan polimorfisme, perubahan dalam satu bagian kode tidak selalu memerlukan perubahan pada bagian lainnya, asalkan antarmuka tetap sama.
3. Mempermudah Perluasan: Penerapan polimorfisme memudahkan penambahan fungsionalitas baru tanpa mengubah kode yang sudah ada.
Kesimpulan:
Polimorfisme adalah salah satu konsep penting dalam OOP yang memungkinkan fleksibilitas, pemeliharaan kode, dan perluasan fungsionalitas. Dengan memahami dan menerapkan polimorfisme, pengembang dapat meningkatkan desain dan modularitas kode mereka.
Referensi:
https://socs.binus.ac.id/2021/12/12/object-oriented-programming-polymorphism/
Komentar
Posting Komentar