SOFTWARE ENGINEERING

Memahami Polymorphism dan Polymorphic Associations di Rails

Wellcode.IO team | 17 MAY 2020
Kamu bisa banget gabung di platform bisnis pinterusaha.ai untuk mempunyai sistem inventori dan pembukuan gratis. Selamat membaca!


Ploymorphism merupakan salah satu konsep dasar penting dalam pemrograman berorientasi objek. Jika kita merujuk asal katanya yang berasal dari bahasa Yunani yaitu Poly dan Morph yang berarti 'banyak bentuk'.
Jadi apa sih sebenarnya polymorphism itu ? Yuk kita bahas agar lebih paham, yang akan kita terapkan di bahasa pemrograman Ruby.

Dalam PBO (Pemrograman Berorientasi Objek) atau OOP (Object Oriented Programming) konsep polymorphism ditujukan kepada sebuah function/method yang fungsionalitasnya dapat diterapkan secara berbeda oleh banyak class/object.

Agar lebih jelas yuk kita simak contoh berikut:

pol1.png 102 KB

Result :

pol2.png 86.3 KB


Dari contoh diatas kita membuat class Smartphone, class Iphone dan class Xiaomi, dimana class Iphone dan class Xiaomi merupakan child class dari parent class-nya Class Smartphone, kedua class (Iphone dan Xiaomi) merupakan class yang berbeda dari Class Smartphone namun kedua class tersebut (Iphone dan Xiaomi) dapat memiliki fungsi send_message seperti yang dimiliki oleh class Smartphone, kini jika kita merujuk arti dari asal kata Polymorphism 'banyak bentuk' maka class Smartphone memiliki banyak bentuk dari turunan class-class nya (Class Inheritance).

Setelah kita mengenal apa itu Polymorphism, mari kita berkenalan dengan namanya Polymorphism Association.
Di Ruby on Rails (Rails) Polymorphism Association merupakan salah satu feature penting, yang merupakan bagian dari Active Record Association dimana sebuah model dapat memiliki hubungan lebih dari satu dengan model yang lainnya dalam single association.

Sebagai contoh, kita memiliki sebuah model Employee, Product dan Picture, dimana model Picture memiliki association dengan kedua model yaitu Employee dan Product.
Bagaimanakah kita merepresentasikan ketiga model tersebut ?

Yuk kita buat masing-masing ketiga model tersebut
Contoh 1:
ct1.png 81.9 KB


Contoh 2:
ct2'.png 86.4 KB



Dari contoh diatas kita bisa lihat bawah contoh nomor 2 lebih sederhana karena kita menggunakan polymorphism association. Dimana model Picture model dapat memiliki hubungan lebih dari satu dengan model yang lainnya dalam single association. Jika direpresentasikan dalam table diagram sebagai berikut :

ct3.png 53.8 KB

sumber gambar: https://guides.rubyonrails.org/association_basics.html
Mudah-mudah artikel diatas dapat bermanfaat bagi para pembaca sekalian, jangan lupa jika ada pertanyaan atau masukan mengenai artikel diatas, silahkan tulis komentar dibawah, sekian dan terima kasih.


Wellcode.io Team
Leading high-tech Indonesia Startup Digital - which serves the community with revolutionary products, system development, and information technology infrastructure

You may also like

NEWS

Apa Pengertian Fast Moving Consumer Goods?

Wellcode.IO team | 02 AUG 2021

TECH

Video Call Telegram Dapat Menampung 1000 Pengguna

Wellcode.IO team | 02 AUG 2021

TECH

Mulai 27 September, Google Tidak Mengizinkan Pengguna Versi Android Lama

Wellcode.IO team | 02 AUG 2021