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

TECH

Pengguna Internet 5G Diprediksi Hampir 600 Juta Di Dunia Tahun Ini

Wellcode.IO team | 17 JUN 2021

TECH

Siap Rilis, Realme 8 Smartphone 5G Pertama Di Indonesia

Wellcode.IO team | 17 JUN 2021

BUSINESS

Cara Terbaik Menjaga Hubungan Perusahaan Anda dengan Supplier

Wellcode.IO team | 16 JUN 2021