Series Belajar Solid Principle - Single Responsibility Principle (SRP)
Muhamad Reza Abdul Rohim
Posted on April 17, 2024
Dalam dunia pengembangan perangkat lunak, SRP merupakan salah satu konsep yang sangat fundamental. SRP adalah bagian dari SOLID Principle.
Dalam artikel ini, gw akan mengulas SRP secara detail dan menerapkannya dalam konteks pengembangan aplikasi menggunakan PHP.
kenapa menggunakan PHP? karena PHP Bahasa Pemrograman Sejuta umat, agar mudah dimengerti oleh khalayak ramai :D.
Apa Itu Single Responsibility Principle (SRP)?
SRP adalah prinsip desain perangkat lunak (Design Pattern) yang menyatakan bahwa sebuah class harus bertanggung jawab atas satu hal saja. Ini membantu menjaga class tetap terfokus, mudah dimengerti, dan mudah diubah.
Contoh kodingan tanpa menerapkan SRP
Mari kita lihat contoh sebelum menerapkan SRP. Misalkan kita memiliki class CheckoutManager dalam sebuah toko online. class ini bertanggung jawab untuk melakukan sejumlah tindakan seperti memperbarui database, mengirim email konfirmasi, dan mengirim pesan WhatsApp kepada pelanggan.
class CheckoutManager {
public function processCheckout($cartItems, $customerInfo) {
$this->updateDatabase($cartItems);
$this->sendEmail($customerInfo);
$this->sendWhatsAppMessage($customerInfo);
}
private function updateDatabase($cartItems) {
// Logika untuk memperbarui status dalam database
}
private function sendEmail($customerInfo) {
// Logika untuk mengirim email konfirmasi kepada pelanggan
}
private function sendWhatsAppMessage($customerInfo) {
// Logika untuk mengirim pesan WhatsApp konfirmasi kepada pelanggan
}
}
Penerapan SRP
Sekarang, mari kita terapkan SRP dengan membagi tanggung jawab tersebut ke dalam class class yang lebih spesifik.
Pembaruan Database
class DatabaseUpdater {
public function update($cartItems) {
// Logika untuk memperbarui status dalam database
}
}
Kirim Email
class EmailSender {
public function send($customerInfo) {
// Logika untuk mengirim email konfirmasi kepada pelanggan
}
}
kirim whatsapp
class WhatsAppSender {
public function send($customerInfo) {
// Logika untuk mengirim pesan WhatsApp konfirmasi kepada pelanggan
}
}
Integrasi dengan SRP
Sekarang, kita dapat mengintegrasikan class class tersebut ke dalam CheckoutManager.
class CheckoutManager {
private $databaseUpdater;
private $emailSender;
private $whatsAppSender;
public function __construct(DatabaseUpdater $databaseUpdater, EmailSender $emailSender, WhatsAppSender $whatsAppSender) {
$this->databaseUpdater = $databaseUpdater;
$this->emailSender = $emailSender;
$this->whatsAppSender = $whatsAppSender;
}
public function processCheckout($cartItems, $customerInfo) {
$this->databaseUpdater->update($cartItems);
$this->emailSender->send($customerInfo);
$this->whatsAppSender->send($customerInfo);
}
}
Dengan menerapkan SRP, kita dapat membuat kode kita lebih terstruktur, mudah dimengerti, dan mudah dikelola. Setiap class sekarang memiliki tanggung jawab yang jelas dan terdefinisi dengan baik, sehingga membantu meningkatkan keberlanjutan dan skalabilitas kode kita 🚀.
Sekian sekilas mengenai SRP. di next artikel gw akan buat artikel mengenai SOLID Princple lainnya yaitu Open Close Principle,Liskov Substitution Principle,Interface Segregation Principle dan Dependency Inversion Principle, so tunggu aja gaes updatenya tengkyu..
Posted on April 17, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.