Blog – G2Academy

G2Academy's Blog

Your go-to source for all things tech and innovation!

mengenal solid principles

Dalam pengembangan software, banyak prinsip-prinsip yang bisa diterapkan agar software tersebut menjadi software yang baik. Software yang baik adalah software yang dapat berfungsi dengan baik, mudah untuk dipelihara, source code-nya dapat digunakan kembali, kemampuannya cepat, dapat diandalkan dan masih banyak karakteristik lainnya. Untuk mencapai hal tersebut, salah satu prinsip yang dapat diterapkan adalah SOLID Principle. Apa itu? Di sini kita akan mengenal SOLID Principel. Berikut adalah penjelasannya.

Apa Itu SOLID Principle?

SOLID principle adalah sebuah prinsip yang dikemukakan oleh Robert C. Martin (alias Uncle Bob) di dalam paper yang diterbitkannya pada tahun 2000 “Design Principles and Design Patterns” dengan tujuan untuk membuat code yang dapat dimengerti, dapat dibaca, dan dapat test oleh banyak developer secara kolaboratif.

Dalam 20 tahun terakhir kelima prinsip ini merevolusi dunia pemrograman berbasis object (OOP), merubah cara kita dalam menulis code.

SOLID sendiri adalah kependekan dari : 

S – Single-responsiblity Principle

O – Open-closed Principle

L – Liskov Substitution Principle

I – Interface Segregation Principle

D – Dependency Inversion Principle

 

Penjelasan SOLID Principle

Berikut adalah penjelasan dari prinsip-prinsip tersebut:

1. Single Reponsibility Principle

Uncle Bob menyatakan bahwa sebuah class atau module sebaiknya memiliki hanya satu alasan untuk berubah yang berarti hanya memiliki satu tanggung jawab dalam sebuah class / module.

Sebagai contoh kita memiliki class buku. Class tersebut hanya bertanggung jawab atas objek buku dan memiliki method yang berkaitan dengan buku. 

2. Open-Closes Principle

Suatu class harus bisa diekstensi dan tidak boleh dimodifikasi. Dengan menerapkan hal tersebut, kita akan berhenti untuk memodifikasi code yang sudah ada dan terhindar dari potensi error yang akan terjadi. 

Sebagai contoh kita memiliki class mobil yang memiliki atribut merek, jenis, tahun, jumlah penumpang, dan jenis mesin. Kemudian kita memilki class mobilBensin yang mengekstensi class mobil yang memiliki atribut tambahan seperti minimal oktan bahan bakar dan jumlah silinder mesin.

Kemudian kita memiliki class mobilListrik yang juga mengekstensi class mobil yang memiliki atribut tambahan seperti maksimal tegangan listrik, tipe battery dan lain-lain. Class mobil tidak mengalami perubahan namun dapat diekstensi oleh class mobilBensin dan mobilListrik.

3. Liskov Substitution Principle

Liskov Substitution Principle ini memperluas Open Closed Principle dengan memfokuskan pada behavior dari superclass dan turunannya. Prinsip ini dapat juga diartikan bahwa objek-objek dari superclass seharusnya dapat digantikan dengan objek-objek yang merupakan turunan dari superclass tanpa merusak aplikasi. Dimana mengharuskan objek-objek dari turunan superclass memiliki behavior yang sama dengan superclassnya.

4. Interface Segregation

Maksud dari Interface Segretion adalah memecah Interface yang besar menjadi Interface yang kecil-kecil sehingga suatu class dapat mengimplementasi Interface-interface yang dibutuhkan saja. Sebagai contoh kita memiliki Interface transportasi darat, udara dan air. Kemudian kita memiliki satu class mobil yang hanya mengimplementasi transportasi darat. Lalu ada class pesawatAir yang mampu mengimplementasi interface udara dan air.

5. Dependency Inversion

Dependency Inversion adalah prinsip yang menyetakan bahwa sebuah entitas itu bergantung pada abstraksi. Sehingga sebuah modul tingkat tinggi tidak boleh bergantung pada modul tingkat rendah, tetapi bergantung kepada abstraksi.

Modul Level

Maksud dari level-rendah dan level-tinggi disini adalah :

  • Modul level-tinggi (high-level) adalah interface atau abstraksi yang dikonsumsi secara langsung oleh kelas – kelas eksekutor atau user interface.
  • Modul level-rendah (low-level) adalah kumpulan dari beberapa modul kecil (subsystem) yang membantu modul level-tinggi dalam proses pekerjaannya.

Prinsip ini mengajarkan untuk memisahkan setiap modul agar dapat independen.

Mengenal SOLID Principle

SOLID Principle adalah fondasi penting dalam pengembangan perangkat lunak yang mendukung kode yang baik, mudah dimengerti, dan dapat diuji. Mengimplementasikan prinsip-prinsip ini dapat menghasilkan perangkat lunak yang lebih efisien, dapat dikelola, dan dapat diperluas seiring berjalannya waktu.

Oleh karena itu, pemahaman yang mendalam tentang setiap prinsip SOLID dan kemampuan untuk menerapkannya akan memberikan manfaat yang signifikan bagi pengembang perangkat lunak. Teruslah belajar dan eksplorasi, karena dunia pemrograman selalu berkembang, dan SOLID Principle adalah alat yang berharga untuk membantu Kamu menjadi pengembang perangkat lunak yang lebih baik.

Author: Ryan Suryohadiprojo

Editor: Kibar Mahardhika

Temukan berbagai pembelajaran teknologi lainnya!

Summary
Mengenal SOLID Principle dalam Pengembangan Software
Article Name
Mengenal SOLID Principle dalam Pengembangan Software
Description
Mengenal SOLID principle untuk kode yang bersih, dapat diuji, dan mudah dimengerti dalam pengembangan perangkat lunak
Author
Publisher Name
G2Academy
Publisher Logo