- 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 onestopinjector
ps: janji buat akmalhamdani di setiap cerita yang dia sumbang.. huehe
This comment has been removed by the author.
ReplyDeletemethod itu istilah di object. object pny method dan variable.
ReplyDeletemethod di object konsepnya jg berangkat dari fungsi-fungsi dan prosedur dalam paradigma fungsional tapi punya dunia sendiri
kalo cerita di atas, object mahasiswa pny method logWhatImDoing misalnya, yang melakukan pembukuan log apa yang dilakukan. sebelum dipull ama object dosen, log disimpan dulu di object mahasiswa.
sedangkan dengan fungsi, dosen harus ngejalanin fungsi tersebut, memanage log yang dikelola.. harus aware setiap mahasiswa itu bagaimana cara tau dia sedang apa
intinya: dengan fungsi, dunia itu serasa satu, fungsi semacam routine berulang yang kita manage spy dia bisa berlaku untung variable yang berbeda-beda
dengan object. dengan ada separasi. dunia dosen, dunia object, lebih jelas pemisahan ini.
Jadi klo di OO maksudnya si mahasiswa itu berjalan sendiri tanpa perlu ada object dosen juga. Sedang kan di prosedural object dosen harus ada dulu baru si mahasiswa baru bisa jalan? gitu bukan?
ReplyDeletekalo object lifecycle dibahas lebih lanjut lagi yah.
ReplyDeleteyang jelas kalo di prosedural, object dosen sekalipun ga ada, huehueh.... jadi ga ada lifecyle selain lifecycle aplikasi dan variable