7.17.2008

Belajar dengan paradigma berorientasi objek

- 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

4 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. method itu istilah di object. object pny method dan variable.
    method 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.

    ReplyDelete
  3. 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?

    ReplyDelete
  4. kalo object lifecycle dibahas lebih lanjut lagi yah.

    yang jelas kalo di prosedural, object dosen sekalipun ga ada, huehueh.... jadi ga ada lifecyle selain lifecycle aplikasi dan variable

    ReplyDelete