- orientasi object vs prosedural
ketika sebuah object kita ciptakan, objek tersebut hidup dan mempunyai tanggungjawab tertentu. dari luar, object tidak perlu tahu bagaimana dia melakukan tanggung jawabnya.
sedangkan dengan prosedural. ketika fungsi/prosedur dipanggil, dia hanya mengembalikan nilai dari paramater masukan atau mengubah nilai masukan tersebut.
contoh kasusnya:
dosen dan murid. dosen pengen tau semua apa yang dikerjakan mahasiswa selama malam minggu.
dengan pendekatan prosedural, skenario kita nyewa satu orang, buat ngikutin mahasiswa, catet apa yang mereka lakuin satu satu.. satu orang ga cukup untuk simultan mahasiswa... maka kita sewa orang sebanyak jumlah mahasiswa.
dengan pendekatan object, skenario kita... kasih tugas ke mahasiswa, suruh mereka bikin catatan apa yang dilakuin malem minggu, senin dikumpulkan ke dosen.
make sense ga?
Prinsip yang mendasari butuhnya paradigma baru:
1. ga boleh koding repetitive, semboyannya DRY (Dont Repeat Yourself)
jika kamu udah banyak copy paste, apalagi satu file ke file yang lain, tandanya program dah ga beres.
drawback dari kerja kek gini.. ketika kamu ingin ngerubah satu bagian. maka perubahan itu harus dipropagasi ke semua file yang mengandung routine tersebut.
simply said: kita butuh software yang gampang dimaintain
2. loosely coupling
bikin komponen yang sebisa mungkin pny tingkat coupling yang rendah. jika menemukan bahwa koding di file ini butuh file itu, dan file itu butuh file a-b-c dan berantai hingga jadi satu aplikasi... berarti ada yang salah.
ubah program sehingga komponen-komponen mampu berdiri sendiri, dan kita bisa mengujinya tanpa harus menggunakan komponen lain. Masing-masing unit dapat diuji dengan menggunakan unit testing.
Hal ini bermanfaat jika project sangat besar, butuh banyak engineer, dan proyek harus dikerjakan secara paralel.
- orientasi aspek vs orientasi object
praktis dan studi kasusnya liat di postingan
onestopinjectorps: janji buat akmalhamdani di setiap cerita yang dia sumbang.. huehe