Materi 07 - Programming dan Data Science

SOLID Principles

5 prinsip clean code untuk OOP yang dipakai engineer profesional di seluruh dunia.

Durasi 26 Menit Level intermediate Kurikulum 30 Materi

1. Single Responsibility

1 class punya 1 alasan untuk berubah. Class User jangan urus database juga. Pisah jadi User dan UserRepository. Hasilnya: code modular, mudah di-test, mudah di-maintain.

2. Open Closed

Class harus terbuka untuk extension, tertutup untuk modification. Tambahkan fitur baru lewat extension (subclass), bukan ubah class yang sudah jalan. Hindari regression bug.

3. Liskov Substitution

Child class harus bisa menggantikan parent class tanpa break logic. Kalau Bird parent punya method fly, jangan bikin Penguin subclass karena penguin tidak terbang. Pikirkan ulang hierarchy.

4. Interface Segregation

Interface kecil dan spesifik lebih baik dari interface besar. Class jangan dipaksa implement method yang tidak dipakai. Pisah interface besar jadi beberapa kecil sesuai use case.

5. Dependency Inversion

Depend on abstraction, bukan concrete class. Class tinggi level jangan langsung pakai class rendah level. Pakai interface di tengah. Hasilnya: testable (bisa mock), flexible (bisa swap implementasi).

Tugas Praktik

  1. Refactor 1 class besar jadi beberapa class single responsibility
  2. Implementasi pattern strategy untuk OCP
  3. Cek hierarchy class apakah patuh LSP
  4. Pecah interface besar jadi beberapa kecil
  5. Praktek dependency injection di project kecil

Rangkuman