Skip to main content

Posts

Showing posts from October, 2024

Menulis Clean Code: Prinsip Dependency Inversion Principle (DIP) Pada SOLID

D ependency Inversion Principle (DIP) adalah prinsip dimana modul tingkat tinggi tidak boleh bergantung pada modul tingkat rendah. Keduanya sebaiknya bergantung pada abstraksi, sehingga meningkatkan fleksibilitas kode. Prinsip Dependency Inversion Principle (DIP) Pada SOLID Java mendukung DIP melalui dependency injection, yang dapat dilakukan menggunakan Spring Framework atau manual . Dengan menggunakan antarmuka dan dependency injection, kelas-kelas dalam aplikasi Anda akan bergantung pada abstraksi, bukan pada implementasi langsung , yang memudahkan pergantian implementasi. " kelas-kelas dalam aplikasi Anda akan bergantung pada abstraksi, bukan pada implementasi langsung " Contoh Dependency Inversion Principle (DIP) Misalkan kita memiliki aplikasi untuk mengirim notifikasi dengan berbagai metode, seperti email dan SMS. Pada awalnya, mungkin kita memiliki kelas NotificationService yang bergantung pada implementasi spesifik seperti EmailService dan SMSService . Desain yang...

Menulis Clean Code: Prinsip Interface Segregation Principle (ISP) Pada SOLID

Prinsip Interface Segregation Principle (ISP) Pada SOLID I nterface Segregation Principle (ISP) menekankan bhwa sebuah interface/antarmuka sebaiknya tidak mengharuskan kelas untuk mengimplementasikan metode yang tidak dibutuhkan. Jadi, lebih baik membagi antarmuka besar menjadi beberapa antarmuka kecil yang lebih spesifik. Ilustrasi Interface Segregation Principle Java memungkinkan Anda untuk membuat interface yang lebih kecil dan spesifik. Daripada satu interface besar, lebih baik memecahnya menjadi beberapa interface yang lebih kecil, misalnya Readable dan Writable dibandingkan dengan FileOperations yang berisi semua metode. Dengan demikian, kelas hanya mengimplementasikan metode yang memang mereka butuhkan. Contoh Interface Segregation Principle (ISP) Misalkan kita sedang mengembangkan aplikasi untuk mesin fotokopi yang memiliki beberapa jenis mesin, seperti mesin fotokopi standar, mesin fotokopi dengan fungsi tambahan (scanner, printer), dan sebagainya. Desain yang Tidak Me...

Menulis Clean Code: Prinsip Liskov Substitution Principle (LSP) Pada SOLID

Prinsip Liskov Substitution Principle (LSP) Pada SOLID P ada prinsip   L iskov S ubstitution P rinciple (LSP) objek dari subclass harus dapat menggantikan objek dari superclass tanpa mengubah keakuratan program. Hal ini mencegah adanya perilaku tak terduga ketika menggunakan turunan kelas. Ilustrasi Prinsip Liskov Substitution Principle (LSP) Pada SOLID (Gak nyambung sih) Java mendukung prinsip ini dengan polimorfisme. Jika Anda memiliki superclass atau interface, maka objek dari subclass harus dapat menggantikannya tanpa mengubah perilaku program. Misalnya, jika Rectangle adalah superclass, subclass Square harus memenuhi kontrak yang sama agar tidak ada efek samping yang tidak diinginkan saat digunakan. Contoh Implementasi LSP Pada Java Catatan: Rectangle = Persegi Panjang, dan Square = Kotak Berikut adalah contoh kasus nyata penerapan Liskov Substitution Principle (LSP) dalam Java. Prinsip ini menyatakan bahwa subclass harus dapat menggantikan superclass-nya tanpa me...

Menulis Clean Code: Prinsip Open-Closed Principle (OCP) pada SOLID

Prinsip Open-Closed Principle (OCP) pada SOLID O pen-Closed Principle (OCP): Dalam istilah bahasa indonesia sederhanya adalah Kode harus "terbuka untuk ekstensi, tetapi tertutup untuk modifikasi." Artinya, Kita dapat menambahkan fungsionalitas baru tanpa mengubah kode yang sudah ada. Ilustrasi Open-Closed Principle (OCP) Dengan menggunakan konsep inheritance dan polymorphism di Java, Kita dapat membuat kode yang mudah diperluas tanpa memodifikasi kode yang ada. Contohnya, Kita misal bisa membuat interface PaymentProcessor dan mengimplementasikan metode processPayment() dalam beberapa kelas seperti CreditCardPayment dan PaypalPayment tanpa harus mengubah kode yang sudah ada. Prinsip ini menjaga agar kode yang sudah ada tidak perlu diubah setiap kali ada fitur baru, melainkan dapat diperluas dengan menambahkan kode baru. Dengan begitu, kompleksitas dapat dikendalikan karena kode lama tidak terus-menerus dimodifikasi. Prinsip Solid memang berkaitan erat dengan Open-Closed ...

Menulis Clean Code: Prinsip Single Responsibility Principle (SRP) pada SOLID

D alam Single Responsibility Principle (SRP) Setiap kelas harus memiliki satu tanggung jawab atau alasan untuk berubah, sehingga kode menjadi lebih terorganisir dan lebih mudah di-maintain. Prinsip Single Responsibility Principle (SRP) pada SOLID Semisal dalam pemrograman Java memungkinkan kita membuat kelas dengan satu tanggung jawab yang spesifik. Contohnya, Anda bisa memisahkan logika bisnis dari logika akses data dengan membuat kelas terpisah untuk masing-masing fungsi, seperti UserService dan UserRepository . Dengan memberikan satu tanggung jawab spesifik untuk setiap kelas, kode Anda jadi lebih mudah dipahami dan mengikuti KISS, karena tidak ada kerumitan dari tanggung jawab ganda dalam satu kelas. Contoh Penerapan  Single Responsibility Principle (SRP) Berikut contoh real case penerapan Single Responsibility Principle (SRP) dalam Java. Misalkan kita sedang mengembangkan aplikasi untuk manajemen akun pengguna . Awalnya, kita memiliki satu kelas User yang menangani berbaga...

Menulis Clean Code: Prinsip SOLID, KISS, dan Keterkaitannya

  Menulis Clean Code: Prinsip SOLID, KISS, dan Keterkaitannya Prinsip SOLID, KISS, dan Keterkaitannya S aat ini, kebutuhan untuk menulis kode yang mudah dibaca, dipahami, dan dipelihara semakin penting. Konsep Clean Code mengacu pada serangkaian prinsip dan praktik yang bertujuan untuk menciptakan kode berkualitas tinggi. Clean Code tidak hanya terlihat baik, tetapi juga lebih mudah untuk dikelola seiring berkembangnya proyek. Dalam artikel ini, kita akan membahas konsep Clean Code, prinsip-prinsip SOLID dan KISS, serta bagaimana semuanya berperan dalam menghasilkan kode yang bersih dan berkualitas. Ilustrasi Clean Code Apa Itu Clean Code? Clean Code adalah filosofi dalam pengembangan perangkat lunak yang mendorong pembuatan kode yang: Mudah dibaca dan dipahami oleh orang lain. Mudah diuji dan dikembangkan lebih lanjut. Mudah dimodifikasi tanpa merusak atau merombak besar-besaran kode yang ada. D engan fokus pada keterbacaan dan kesederhanaan, Clean Code berupaya untuk membuat...

Belajar JOIN Table dari Gambar Legendaris

Ilustrasi SQL JOINS paling legendaris di Sosial Media I lustrasi SQL JOINS ini adalah salah satu gambar yang populer di berbagai media sosial sebagai alat bantu visual untuk memahami konsep SQL JOINS. Namun, berapa banyak yang benar-benar memahami maksud dari ilustrasi tersebut dengan baik? Banyak yang justru merasa bingung dan mengernyitkan dahi saat melihatnya, bahkan ada yang merasa paham, padahal masih kebingungan. Oleh karena itu, saya membuat artikel ini dengan ilustrasi yang mudah dipahami, menggunakan contoh tabel users dan cars . Dalam contoh ini, kita akan menemui situasi di mana ada baris pada tabel users yang memiliki cars , ada yang tidak, dan sebaliknya pada tabel cars —ada car yang dimiliki oleh user , dan ada juga yang sama sekali tidak memiliki pemilik. Kondisinya akan seperti berikut: Ada pengguna yang memiliki satu mobil. Ada pengguna yang memiliki beberapa mobil. Ada pengguna yang tidak memiliki mobil. Ada mobil yang tidak memiliki pemilik. Melalui situasi di ata...