SOLID Principles
S.O.L.I.D
SOLID Principles ini dicetuskan oleh Uncle Bob di sekitar tahun 1995-an, yang mana ketika kita mengimplementasikannya dalam pengembangan software dengan pendakatan berbasis objek (object oriented), diharapkan akan membuat kode program menjadi lebih adaptif terhadap perubahan serta mudah dalam maintenance.
SOLID :
- S : Single Responsibility Principle
- O : Open Closed Principle
- L : Liskov Substitution Principle
- I : Interface Segregation Principle
- D : Dependency Inversion Principle
Tujuan dari prinsip ini untuk menghindari kemungkinan terjadinya bug-bug baru ketika kita merubah implementasi code yang sudah ada.
Encapsulation atau pengkapsulan adalah konsep tentang pengikatan data atau metode berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data. Maksudnya, berbagai objek yang berada dalam class tersebut dapat berdiri sendiri tanpa terpengaruh oleh yang lainnya. Encapsulation dapat mempermudah pembacaan kode. Hal tersebut terjadi karena informasi yang disajikan tidak perlu dibaca secara rinci dan sudah merupakan satu kesatuan. Proses enkapsulasi mempermudah untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
2. Abstraction
Inheritance dalam konsep OOP adalah kemampuan untuk membentuk class baru yang memiliki fungsi turunan atau mirip dengan fungsi yang ada sebelumnya. Konsep ini menggunakan sistem hierarki atau bertingkat. Maksudnya, semakin jauh turunan atau subclass-nya, maka semakin banyak logic yang berubah, tetapi tujuan dari fungsinya tetap sama.
4. Polymorphism
Prinsip terakhir dalam OOP adalah polymorphism. Pada dasarnya polymorphism adalah kemampuan suatu pesan atau data untuk diproses lebih dari satu bentuk. Salah satu ciri utama dari OOP adalah adanya polymorphism. Tanpa hal ini, suatu pemrograman tidak bisa dikatakan sebagai OOP. Polymorphism sendiri adalah konsep di mana suatu objek yang berbeda-beda dapat diakses melalui interface yang sama. Sebagai gambaran ilustrasi :
ketika memiliki fungsi untuk menghitung luas suatu benda, sementara benda tersebut berbentuk segitiga, lingkaran, dan persegi. Ketiga benda tersebut memiliki rumus perhitungan tersendiri. Dengan polymorphism, kita dapat memasukkan fungsi perhitungan luas ke tiga benda tersebut, dengan tiap benda memiliki metode perhitungannya sendiri.
Ini tentu akan mempermudah perintah yang sama untuk beberapa class atau subclass tertentu.
Komentar
Posting Komentar