Polymorphism punya peran penting dalam bahasa pemrograman OOP atau Object-Oriented Programming (OOP) misalnya seperti Java atau Python. Untuk memahami lebih lanjut seputar pengertian, metode, tipe dan keuntungannya, simak artikel berikut ini.
Daftar Isi Artikel
TogglePengertian Polymorphism
Polimorfisme atau polymorphism bisa diartikan dari kata-katanya, ‘poly’ artinya bayak sementara ‘morph’ itu berarti bentuk. Sehingga polymorphism adalah suatu entitas layaknya function atau variabel yang bisa berbeda-beda bentuk saat ditampilkan. Sampai sini mungkin Anda kurang cukup paham mengenai polimorfisme tersebut.
Contohnya agar lebih jelas yaitu misal ada seseorang bernama Anton, dia menikah lalu punya anak. Pekerjaannya adalah game developer pada perusahaan swasta tertentu. Pada saat kita mengimplementasikan polimorfisme, maka Anton punya tiga macam karakteristik. Anton bisa kita sebut sebagai objek sementara karakteristik tersebut bisa kita sebut wujud juga.
Terdapat tiga wujud berbeda dari Anton sebagai objek yaitu menjadi suami karena sudah menikah, ayah karena memiliki anak dan pegawai kantor swasta. Walau polimorfisme menjadi konsep umum OOP, Polymorphism in Java berbeda dengan Polymorphism in Python.
Bagi Anda yang mahir dalam biologi, mungkin paham apa itu SNP. SNP atau Single Nucleotide Polymorphism adalah bentuk dari variasi materi-materi gen yang ditunjukkan berdasarkan nukleotida tunggal yang berbeda-beda pada rangkaian DNA.
Metode-metode Polymorphism
Dalam penerapannya, polimorfisme memiliki metode-metode tertentu. Metode yang umum digunakan dalam Polymorphism Java adalah sebagai berikut:
Overloading
Overloading berarti polimorfisme mampu membuat fungsi atau metode memakai nama serupa tapi dengan perbedaan parameter. Selain itu, vverloading diperlukan agar mempermudah membaca program tertentu. Agar metode overloading ini bisa terpenuhi dengan baik, setidaknya perlu sesuai dengan salah satu kondisi seperti di bawah ini:
– Tiap metode punya urutan parameter berbeda. Misal terdapat urutan parameter long string pada satu metode dan terdapat urutan parameter kebalikannya.
– Tiap metode punya jumlah parameter bervariasi. Metode X pertama mempunyai 3 parameter, sementara metode X kedua punya 4 parameter di dalamnya.
– Tipe parameter tiap metode saling berbeda.
Itulah beberapa kondisi overloading, pada kebanyakan kasus, fungsi kedua metode bisa sama meski parameternya berbeda. Saat menerapkan overloading Polymorphism Java, tipe return bisa berbeda antar metode tapi bisa sama juga. Perintah tersebut bisa diterapkan hanya dengan modifikasi parameter dalam metode terkait.
Lalu apa itu tipe return atau return type? Inilah perintah untuk mengembalikan nilai pada data. Jenis data untuk dikembalikan metode haruslah serupa dengan jenis data yang sudah ditentukan.
Contohnya misal tipe data target untuk dikembalikan dalam metode X yaitu bilangan bulat, tipe return-nya bilangan bulat juga. Pengembalian data tidak bisa dilakukan selain syarat tersebut terpenuhi. Kurang lebih seperti itulah overloading sebagai salah satu metode polimorfisme.
Overriding
Selain overloading, ada juga metode overriding dalam sistem polimorfisme. Fungsi overriding ini adalah agar bisa menyediakan implementasi khusus pada metode yang disajikan parent class atau kelas induk. Pendekatan inheritance atau pewarisan digunakan untuk metode ini.
Sistem overriding yaitu anak kelas atau sub class punya metode sama dengan kelas induk/utama. Kesamaan tersebut meliputi tipe return, parameter, maupun namanya tapi dari kedua kelas tersebut punya fungsi yang saling berbeda satu sama lain. Kita bisa mengganti atau modifikasi total metode anak kelas kalau metodenya tidak sesuai dengan menggunakan overriding.
Ketika kode tertentu yang sudah siap untuk dieksekusi hendak melalui prosedur runtime atau dijalankan. Proses seperti itu membuat performa overriding sering kali lebih unggul dibandingkan dengan overloading. Itulah beberapa metode utama dalam polimorfisme.
Apa Saja Jenis-jenis Polymorphism?
Penggunaan polimorfisme sangat identik dengan pengembangan program Java. Anda perlu tahu juga ragam tipe polimorfisme karena tiap tipe punya keunggulan dan karakteristik tersendiri.berikut beberapa jenis polimorfisme:
Polimorfisme Subtype/Subtyping
Salah satunya adalah polimorfisme subtype, nama lainnya adalah polimorfisme inclusion dan termasuk tipe yang biasa digunakan. Terutama pada saat memakai konsep inheritance dalam polimorfisme.
Dalam polimorfisme subtype ini, fungsi dari interface atau kelas dasar bisa diimplementasikan baik itu secara sama atau berbeda dengan interface terkait terhadap child class atau kelas anak.
Polytypism
Tipe selanjutnya yaitu Polytypism yang bertujuan untuk menyajikan definisi umum fungsi tertentu. Polytypism memakai induksi pada struktur tipe tertentu.
Polimorfisme Ad-Hoc
Polimorfisme Ad-Hoc memungkinkan fungsi tertentu bisa diimplementasikan atau diaplikasikan ke parameter-parameter berbeda-beda. Meski begitu, masih sesuai dengan argumen yang sudah diinput ke fungsi terkait. Christopher Strachet adalah orang yang mengenalkan sistem Polimorfisme Ad-Hoc ini.
Polimorfisme Row
Konsep Polymorphism Row ini bisa dibilang mirip Subtype. Meski mirip, tapi Polimorfisme Row lebih berurusan dengan konsep structural. Polimorfisme Row memungkinkan pengguna melakukan operasi tertentu pada bagian data tertentu.
Polimorfisme Parametric
Lalu yang terakhir adalah Polimorfisme Parametric. Polimorfisme tipe ini memungkinkan pengguna membuat fungsi atau data tertentu untuk dituliskan secara lebih general. Proses nilai pun bisa diterapkan seragam tanpa harus memperhatikan tipe yang dipakai. Itulah beberapa tipe polimorfisme yang perlu Anda pahami.
Apa Saja Keunggulan Polimorfisme Java?
Untuk memahami lebih lanjut polimorfisme, simak beberapa keunggulan polimorfisme Java berikut ini:
Mudah dipelihara
Program bisa semakin mudah dipelihara dengan sistem polimorfisme ini. Pengguna bisa memodifikasi perilaku objek tertentu tapi tidak harus merubah kelas objek aslinya. Melalui sistem polimorfisme, pengguna bisa memperbaiki suatu error atau pun menambah fitur baru. Semua itu bisa dilakukan tanpa harus merusak kode.
Lebih fleksibel
Fleksibilitas tinggi menjadi nilai plus polimorfisme Java lainnya. Objek bisa punya perilaku bervariasi berdasarkan tipe polymorphism yang dipakai. Pengguna pun bisa memodifikasi perilaku objek tertentu tapi tidak perlu modifikasi kelas aslinya.
Reusabilitas
Adanya polimorfisme Java bisa membuat pengguna memanfaatkan kode kembali. Kelas baru bisa dibuat dengan warisan perilaku kelas tertentu yang sudah ada. Sistem kerja polimorfisme pun bisa mencegah masalah duplikasi kode, sementara program yang dikembangkan bisa lebih efisien nantinya.
Selain beberapa keunggulan di atas, polymorphism memungkinkan pengguna memakai argumen polymorphic juga pada metode terkait. Suatu metode bisa menerima objek tertentu dari kelas berbeda lalu diperlakukan sebagai objek sama pada prosesnya. Pengguna pun pada akhirnya bisa memastikan program yang dikembangkan lebih modular.
Contoh Polymorphism
Untuk memahami contoh program Polymorphism Java Netbeans, simak contoh berikut ini yang memakai prosedur runtime overriding. Contohnya misal kelas Kucing yang dibagi menjadi jenis-jenis tertentu, yaitu Maine Coon dan Persia. Meski tiap kucing mengeong sebagai cara mereka berinteraksi, tapi suaranya bisa saja berbeda-beda.
Misalnya kucing Maine Coon punya suara lebih nyaring sementara suara kucing Persia lebih berat. Dari kasus tersebut, kita bisa menentukan detail seperti ini:
– Parentclass: Kucing
– Subclass: Maine Coon, Persia
Saat menerapkan overriding, maka parentclass bisa membuat subclass lebih luas cakupannya melalui modifikasi misal metode talk(). Talk() tersebut dipanggil berdasarkan variabel referensi yang didapat melalui parent class (kelas kucing). Intinya, metode tersebutlah yang menunjukkan suara kucing-kucing berdasarkan subclass. Kurang lebih seperti itulah contoh Polymorphism.
Apakah Anda ingin memahami dan menguasai lebih lanjut seputar ilmu teknologi termasuk polymorphism? Jika iya, Anda bisa pertimbangkan tempat kursus IT terbaik dari Course-Net yaitu kursus melalui platform ITBOX. Inilah platform course terstruktur, dengan materi up-to-date dan mentor berkualitas.


