Aspect Oriented Programming (AOP) merupakan paradigma pemrograman dimana kita bisa memisahkan logic tertentu secara terpusat dan menyisipkannya ke dalam objek tanpa harus mengubah objek tersebut secara langsung. Misalnya pada sebuah method yang melakukan sebuah action, kita ingin menyisipkan behavior tambahan pada method tersebut tanpa harus menulisnya pada…
Design pattern ini cukup populer digunakan. Salah satu contoh class di Java yang menggunakan Iterator Design Pattern adalah Iterator. Iterator tersebut tugasnya untuk membuat berbagai collection elemennya bisa di-iterasi satu-persatu. Jadi sebuah collection kita bungkus di suatu objek yang nantinya bisa kita modifikasi atau lintasi lewat objek tersebut melalui…
Memento secara bahasa artinya kenang-kenangan atau tandamata. Sesuai namanya, Memento itu tugasnya menyimpan “kenangan” dari state suatu objek. Jadi misalkan kita sudah sampai ke state tertentu, kita bisa kembali lagi ke “kenangan” yang pernah kita simpan. Contoh analoginya adalah pada database. Misalkan kita melakukan insertion A, B, C, dan D. Lalu kita…
Composite Design Pattern bentuknya seperti hierarki objek pada Tree Structures. Design pattern ini biasanya terdiri dari satu interface yang disebut Component yang menjadi abstraksi untuk beberapa class implementation. Beberapa implementation dari interface Component sebagai class tunggal yang disebut Leaf. Lalu beberapa implementation dari interface Component…
Terakhir gw bikin tulisan tentang design pattern sekitar 1 tahun yang lalu, abis itu ga gw lanjutin dan mulai menulis topik lainnya. Bukannya apa-apa, tapi nyari contoh real use case yang gampang dipahami itu susah😅. Kadang contoh yang sering ditemui saat googling itu terlalu kompleks untuk dipahami, atau terlalu sederhana sehingga poinnya jadi ga dapet. Makanya…
Enum atau Enumeration adalah object khusus pada pemrograman yang berisi value constant yang bisa di-reuse di berbagai tempat. Enum atau Constant dapat membuat code jadi lebih mudah dibaca dan dimaintain. Penulisan Enum value menurut convention biasanya ditulis menggunakan format “SNAKE_UPPERCASE”. Kali ini gw akan bahas tentang apa aja manfaat menggunakan Enum…
Sebelumnya gw pernah post tentang Jebakan Boolean, kali ini yang dibahas adalah Jebakan Optional pada Java beserta tips solusi penggunaan Optional yang tepat. Ini juga pernah gw mention pada post The Verbosity. Sekarang Optional sudah menjadi standar best practice ketika melakukan return object pada public method di Java. Optional awalnya fitur yang dipopulerkan…
Ketika mengembangkan aplikasi, melakukan kalkulasi bilangan desimal terkadang cukup tricky. Apalagi kalau berhubungan dengan duit, seperti pada aplikasi perbankan, e-commerce, dan sejenisnya. Perhitungannya tentu harus akurat sesuai aturan yang diberlakukan oleh perusahaan. Kalau tidak teliti saat develop bisa salah perhitungannya. Salah satu hal yang…
Ketika kita mengembangkan aplikasi microservice, biasanya kita akan memecah module tersebut menjadi beberapa submodule. Terkadang kita agak kesulitan memaintain dependency dari masing-masing module. Salah satunya ketika melakukan sentralisasi dependency yang digunakan agar seragam. Misalkan kita ingin menambahkan dependency Jackson-Databind. Kita ingin semua…
Pada OOP, kita menyimpan Data Store melalui sebuah class khusus untuk menyimpan sekelompok data. Mungkin masih banyak yang bingung tentang membedakan definisi-definisi data store pada OOP. Bahkan ga jarang sering kebolak-balik menggunakan terminologinya. Biar ga bingung, gw akan bahas tentang berbagai macam data store pada OOP. Seperti biasa, gw akan…