author-pic

Ferry S

An ISTJ, Type 5, Engineer, Gamer, and Thriller-Movies-Lover
All posts related to Programming Principle
August 22nd, 202213 mins read
Tips & Tutorial, Programming Principle
ferr

Normalisasi Database adalah proses strukturisasi data dalam rangka mengurangi Data Redundancy dan meningkatkan Data Integrity. Data Redundancy adalah pengulangan data yang sama sehingga beresiko terhadap kesalahan penginputan. Data Integrity adalah data yang yang mudah dimaintain, akurat, dan konsisten. Lawan kata dari Normalisasi adalah Denormalisasi. Data…

April 23rd, 20225 mins read
My Views, Java, Tips & Tutorial, Programming Principle
ferr

Selain Immutable, Pure Function adalah salah satu principle dari Functional Programming yang juga bermanfaat dan bisa diimplementasikan pada Object Oriented Programming (OOP). Pure Function artinya function atau method tersebut isinya murni logika saja tanpa efek samping terhadap objek atau value lainnya di luar function tersebut dan output value-nya selalu sama…

November 7th, 20213 mins read
My Views, Design Pattern, Programming Principle
ferr

Design Pattern dan Programming Principle adalah teori yang sudah teruji untuk menyelesaikan permasalahan-permasalahan yang umum ditemukan saat melakukan coding. Sebelumnya gw udah membahas beberapa design pattern yang pernah gw pakai. Kali ini gw akan bahas seberapa penting design pattern tersebut digunakan. Mungkin banyak juga yang bingung, kenapa harus pakai…

October 4th, 20214 mins read
Java, Tips & Tutorial, Programming Principle
ferr

Dalam pemrograman seringkali kita temui terminologi "Factory" dalam aktivitas perkodingan. Ga sedikit juga yang merasa ambigu, factory yang dimaksud yang kayak gimana sih? Biar ga bingung, gw mencoba menjelaskan beberapa istilah factory yang sering digunakan di dalam pemrograman. Secara umum "Factory" di sini maksudnya adalah action untuk menciptakan objek…

February 14th, 20218 mins read
Programming Principle, Tips & Tutorial
ferr

Big O Notation biasa digunakan untuk menghitung kompleksitas algoritma. Dalam pemrograman, ini sering dijadikan pedoman sebelum membuat keputusan pendekatan algoritma yang akan dipakai. Big O notation sendiri adalah tingkat kompleksitas operasi dari algoritma terhadap jumlah elemen yang diproses. Terdapat 2 jenis kompleksitas, yaitu space dan time. Yang akan gw…

February 7th, 20214 mins read
My Views, Tips & Tutorial, Programming Principle, Java
ferr

Materi tentang composition atau inheritance biasanya sudah diajarkan sejak kuliah. Tapi seringkali kita hanya sekedar tahu tapi masih bingung tentang best practice-nya gimana. Artikel tentang "dahulukan composition dibandingkan inheritance" sudah sering didiskusikan seperti pada buku-buku tentang design patterns atau tulisan-tulisan dari Martin Fowler, Joshua…

November 9th, 20205 mins read
Programming Principle, Java, Tips & Tutorial, Spring
ferr

Sebenarnya contoh penggunaannya udah pernah gw bikin pada post tentang Single Responsibility dan Open-Close Principle, nah sekarang penjelasannya. Prinsip yang satu ini mungkin udah pada familiar. Terutama bagi yang menggunakan Spring framework pasti sudah tidak asing lagi. Prinsip ini merupakan implementasi dari Inversion of Control. Dengan Dependency Injection…

November 9th, 20204 mins read
Java, Programming Principle, Tips & Tutorial
ferr

Interface Segregation adalah memecah sebuah abstrak yang terlalu besar menjadi beberapa abstrak yang lebih spesifik. Terkadang pada sebuah code yang dibutuhkan hanya beberapa method saja dari interface tersebut, sisanya tidak dibutuhkan dan beberapa diantaranya memiliki kohesi yang rendah, tidak saling terkait. Selain itu, sebuah abstraksi terlalu abstrak jika…

November 8th, 20205 mins read
Java, Programming Principle, Tips & Tutorial
ferr

Prinsip ini berbicara tentang subclass yang kuat. Prinsip ini pertama kali dikemukakan oleh Barbara Liskov. Jika sebuah abstraksi memiliki behavior, maka seluruh turunannya wajib memiliki behavior tersebut secara natural. Melakukan sebuah throwable secara default pada sebuah method milik turunan yang ternyata tidak memiliki behavior seperti abstrak melanggar…

November 2nd, 20206 mins read
Java, Programming Principle, Tips & Tutorial
ferr

Secara definisi: Software entities should be open for extension, but closed for modification. Robert C. Martin Disini bisnis logic dibungkus menjadi entitas yang bisa di-extend sebanyak apapun tanpa banyak perubahan di entity utama. Disini benefit dari abstraksi sangat terasa. Open-Close Principle ini bisa diterapkan menggunakan Strategy Pattern dan Factory…