Kita sudah belajar memahami Object Orientation Programming dan Software Design Principle. Akhirnya kita sampai juga di modul yang membahas masing-masing prinsip bagian dari SOLID, lebih dalam.



Single Responsibility Principle (SRP)


"A module should be responsible to one, and only one, actor." [2] (Robert Cecil Martin, 2017)



Kita mulai dari Single Responsibility Principle (SRP). SRP merupakan sebuah principle yang relatif mudah diterapkan dalam pengembangan perangkat lunak. Sederhananya, principle ini digunakan untuk mengatur tanggung jawab dari sebuah entitas yang berada di dalam sebuah proyek dalam hal ini adalah sebuah module/class untuk memenuhi kebutuhan dari actor. Actor merupakan kumpulan "user" atau "stakeholder" yang menginginkan perubahan pada perangkat lunak kita [2].

Tanggung jawab (responsibility) berarti bahwa jika suatu class punya 2 (dua) fungsionalitas yang tak miliki keterkaitan untuk melakukan suatu perubahan, maka kita harus membagi fungsionalitas yang berbeda tersebut dengan cara memisahkannya menjadi dua class yang berbeda. 

Maka dari itu, setiap class yang sudah dipisahkan berdasarkan fungsionalitasnya hanya akan menangani satu tanggung jawab. Lebih lanjut, jika kita melakukan perubahan tanggung jawab, kita tinggal fokus pada masing-masing class yang sudah dipisahkan tersebut. 

Apa tujuan menerapkan Single Responsibility? Ketika kita ingin melakukan perubahan pada sebuah class yang memiliki tanggung jawab yang banyak, perubahan yang akan dilakukan berpotensi untuk mempengaruhi fungsionalitas dan tanggung jawab lain yang saling berkaitan di dalam class tersebut.

Single Responsibility Principle adalah prinsip yang sederhana dan intuitif, tetapi dalam praktiknya terkadang sulit untuk memperbaikinya. Untuk itu, mari kita lanjut ke modul selanjutnya untuk mengetahui seperti apa penerapannya pada sebuah contoh kasus. Ayo!