Jumat, 06 November 2009

Kembali ke kelas. (OOP)

Baca-baca kembali OOP (Object Oriented Programming), bukan mengenang masa kuliah dulu, tapi ceritanya dulu waktu kuliah, mata kuliah ini nih yang paling ngga ngerti. Tau pentingnya, tapi tetep ja ngga bisa ngerti, kaya yang simpel, tapi ternyata...

Cari-cari tutorial lagi, ketemu beberapa, salah satunya C++ How to Program, Fifth Edition karyanya H. M. Deitel. Ditemani google translate, mulai kembali petualanan di dunia OOP.

Kelas, coba kita analogikan. Kita mau pake mobil, dan biar jalannya cepet kita harus nginjek gas. Berarti, mobilnya harus ada dulu. Berarti mobilnya harus ada yang merancang dan membuat. Di rancangan mobil itu salah satunya ada desain pedal gas. Disadari ngga, pedal gas ini sebenernya "menyembunyikan" mekanisme kompleks yang membuat mobil berjalan lebih cepat. Maksudnya gini, kita ngga usah harus tau semua desain dan mekanisme kerja dari mobil dari perancangnya, tapi kita cukup tau saja kalau kita pengen mobil kita cepet, tinggal injak pedal gas. Begitu juga dengan pedal rem, kemudi, transmisi, dll, jd sederhana dan user-friendly. Satu lagi, walau di mobil itu dah ada pedal gasnya, tetep aja mobil itu ngga bisa ngegas sendiri. Harus ada yang mengendarainya.

Nah, dah kebayang kan ilustrasinya. Sekarang kita coba kaitkan dengan OOP. Kalau di program yang melakukan suatu tugas tertentu kan fungsi (function). Suatu fungsi akan memuat semua mekanisme untuk melakukan tugas dari fungsi tersebut. Tapi fungsi itu juga menyembunyikan hal-hal yang dilakukannya itu. Mirip pedal gas di dalam mobil kan. Di C++, kita mulai dengan membuat kelas sebagia rumah dari fungsi, seperti mobil yang jadi rumahnya pedal gas. Fungsi yang ada di dalam kelas disebut dengan member function. Contohnya kelas tentang rekening bank bisa memiliki fungsi buat menyetor uang, menarik uang, dan menghitung saldo.

Kelas ini kaya desain dari mobil. Dari desain mobil itu bisa diciptain jadi buanyak sekali mobil. Berati kalau kelas ini baru desain, biar kita bisa menggunakannya harus diciptain dulu objek dari kelas tersebut. Berarti juga banyak objek yang dapat dibangun dari kelas yang sama itu.

Balik lagi ke mobil. Duduk di depan kemudi dan kaki siap menginjak pedal gas. Ketika pedal gas itu ditekan artinya kita mengirim pesan ke mobil, 'ayo jalannya lebih cepet!' begitu kira-kira. Demikian pula, kita ngirim pesan lewat objek (disebut member-function call) dan ngasih tau member function dari objek tersebut buat menjalankan fungsinya (requesting a service from an object).

Melalui analogi mobil, kelas, objek dan member function dah dikenalin. Dan ternyata mobil itu punya banyak atribut, kaya warna, jumlah pintu, jumlah bahan bakar, kecepatan saat ini, dll, yang merupakan hasil desain mobil sebelumnya. Ketika mobil dikendarai, atribut ini akan selalu terkait, dan mengelola atributnya sendiri. Maksudnya mobil itu ngga mikirin warna, kecepatan, jml bahan bakar mobil laen, pastinya. Gitu juga di objek dalam program yang punya atribut masing-masing dan selalu terkait. Kalau di kelas tentang rekening bank tadi misalnya, tiap objek punya atribut tentang jumlah uang di rekening dia sendiri dan bukan saldo rekening lain. Atribut ini dalam kelas disebut dengan data member.

Wuih,, lumayan nih.. (Lumayan ngerti to lumayan tambah pusing yah). Tapi setidaknya sekarang ngeliat OOP ngga se-blank waktu kuliah dulu,, Tadi dah disinggung tentang kelas, objek, member function, dan atribut. Ntar di sambung lagi deh. Segini juga sudah uyuhan.

Tidak ada komentar:

Posting Komentar