Module Beginner 13 Februari 2021

Belajar Design Pattern Part 4 — Prototype

Implementasi Prototype Pattern menggunakan Python. Pelajari cara mengkloning objek yang sudah ada tanpa bergantung pada class-nya.

Belajar Design Pattern Part 4 — Prototype

Buat sebuah solusi pemrograman dengan tidak perlu menginisialisasi kembali objek dua kali.

Image Halo semua, Kiddy disini dan pada kesempatan kali ini saya ingin berbagi insight design pattern creational terakhir yang belum saya sampaikan.

Pada kesempatan sebelumya saya udah share tentang Abstract Factory, Factory Method, hingga Singleton. Nah, tinggal satu-satunya creational design pattern yang belum saya sampaikan, yaitu Prototype.

Bagi kamu yang ingin melihat tutorial sebelumya silahkan cek disini ya!

Belajar Design Pattern Part 3 — Abstract Factory*Abstract Factory, membuat sebuah produk berdasarkan jenis factory yang harus diproduksi.*kiddyxyz.medium.com

Prototype

Image Prototype is a creational design pattern that lets you copy existing objects without making your code dependent on their classes.

Prototype adalah design pattern creational yang dapat kamu gunakan untuk menyalin objek yang telah diinisialisasi tanpa perlu membuat code tersebut bergantung kepada kelasnya.

Studi Kasus

Image Misalnya kamu adalah anak gembala (loh?), ngawur. Misalnya kamu memiliki sebuah objek, let’s say di gambar kita memiliki objek yaitu pesawat. Nah, sang kepala suku, ingin membuat objek yang sama dan memerintahkan salah satu rakyatnya untuk menciptakan objek pesawat dari bentuk yang sudah ada. Nah daripada repot-repot memikirkan objek seperti apa yang akan jadi, langsung saja salin bentuknya, namun tentu saja perbedaannya terletak pada bahan yang digunakan, sang kepala suku hanya punya jerami untuk menyalin pesawat tersebut.

Solusi

Image Kalau kita ngomongin prototype, erat kaitannya dengan kloning, ya kalau diibaratkan erat juga kaitannya dengan salah satu anime legenda, apa itu? Ya apa lagi kalau bukan Naruto.

Image Sekarang kita buat file main.py dan copy kode berikut

Image

Hasil

Image Nah bisa diliat kan keduanya memberikan hasil yang sama, padahal kita hanya memanggil copyJutsu dari objek naruto.

Design pattern ini memungkinkan kamu untuk menciptakan objek tanpa perlu menulis kembali hal-hal yang sama seperti objek sebelumnya, contohnya apabila terdapat kesamaan antar objek namun yang membedakan objek tersebut hanyalah satu atau dua data saja, cara seperti ini sangat layak dan patut digunakan, karena kita tidak perlu menulis kembali data objek yang sama seperti variable sebelumnya.

Sama sekali seperti Kakashi Hatake yang mampu mengkloning jutsu dengan menggunakan sharingannya kan? Ia tidak perlu menuliskan kembali setiap objek dari jutsu yang ia copy, bahkan ia bisa menambahkan objek-objek lainnya dan membuat jutsunya menjadi lebih beragam.

Kelemahannya? Semakin kompleks objeknya, semakin kompleks juga fungsi-fungsi yang ada di class setter getter, perlu sekali menggabungkan fungsi-fungsi didalam kelas objek dengan pattern lainnya.

Jadi gimana? Gampang kan? Tentunya gampang banget karena konsep Prototype memang sama dengan konsep Encapsulation, oleh karena itu jangan pernah skip fundamental ya guys! ❤

Adios! Sampai jumpa di artikel tutorial selanjutnya!


Artikel ini merupakan konten legacy dari blog Medium (Tahun 2021). Beberapa konsep atau sintaks mungkin sudah mengalami perubahan pada versi terbaru.