Minggu, 28 Maret 2010

Paradigma Pemrograman Berbasis Object

Pengenalan Objek:
Paradigma Pemrograman Berbasis Objek


1. Abstraksi
Abstraksi adalah suatu cara dimana kita melihat suatu objek dalam bentuk yang lebih sederhana. Sebagai contohnya, Kita tidak melihat mobil sebagai kumpulan atau ribuan komponen elektronik, mekanik dengan 4 buah ban, besi jok, stir kemudi dan lain sebagainya yang dibua sedemikian rupa sehingga dinamakan mobil. Walaupun kenyataannya demikian, namun anda melihat mobil sebagai suatu entitas yang mempunyai sifat dan karakteristik sendiri.
Pemahaman terhadap objek-objek seperti mobil salah satunya ini yang mendasari pemahaman akan OOP. Yang paling penting ialah bagaimana mentransformasikan apa yang kita ketahui tentang suatu objek menjadi suatu program.

2. Elemen dalam sebuah objek: State & Behaviour
Setiap objek memiliki suatu keadaan (state) dan behaviour yang dapat mengubah state tersebut. Sebagai contoh, manusia memiliki state, antara lain umur, tinggi, berat dan lain sebagainya. Demikian pula behaviour yang dimilki manusia dapat berupa makan, tidur, bekerja, menjadi tua, dan sebagainya. Behaviour ini dapa mengubah atau tidak sama sekali state yang dimiiki oleh suau objek, baik secara langsung maupun idak langsung. Secara sederhana, kia dapat menganggap state sebagi suatu ‘kata benda’ karena sifatnya yang pasif, ia tidak melakukan operasi, tapi padanya dilakukan suatu operasi. Demikian juga untuk behaviour, anda dapat menganggapnya sebagai ‘kata kerja’ karena ia berfungsi untuk melakukan suatu operasi, bertindak, atau mengerjakan sesuatu. Dalam implementasi sesungguhnya state akan lebih dikenal dengan nama properties atau field, sedangkan behaviour akan dikenal dengan nama method.

3. Konsep pemrograman berbasis objek: Enkapsulasi, Pewarisan, Polymorphism
A. Enkapsulasi
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar system itu sendiri. Akses ke internal system diatur sedemikian rupa melalui seperangkat interface.
Dalam bahasa Java, “everything is an onject”. Setiap baris program yang ditulis merupakan bagian dari suatu objek. Kita juga dapat membangun suatu objek yang lebih kompleks dari sekumpuan objek yang lebih kecil, dimana masing-masing objek yang menyusunnya mempunyai fungsi tersendiri.
B. Pewarisan
Sebagai manusia, kita sebenarnya terbiasa untuk melihat objek di sekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkan cirri atau sifat dari class tersebut.
Dari susunan hierarki dapat lihat bahwa tingkat paling atas bersifat umum tapi semakin ke tingkat bawah sifatnya akan semakin spesifik. Seperti class mamalia memiliki seluruh sifat yang dimiliki oleh class binatang, demikian juga halnya class anjing, kucing, dan monyet memilki seluruh sifat yang diurunkan dari class mamalia. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, anda hanya perlu mendefinisikan karakteristik yang spesifik dimilki oleh suatu class, sementara semua karakteristik yang lebih umum akan didapatkan dari class dari mana ia diturunkan. Dalam pemrograman, hal ini akan meningkatkan reuseability dari code tersebut.
C. Polymorphism
Polymorphism berasal dari bahsa yunani yang berarti “banyak bentuk”. Dalam OOP, konsep ini memungkinkan di gunakannya suatu interface yang sama untuk memerintah suatu objek agar melakukan suatu aksi atau tindakan yang mungkin akan memberikan hasil akhir yang serupa, tetapi melalui proses berbeda. Dalam konsep yang lebih umum seringkali polymorphism disebut dengan istilah “satu interface, banyak aksi”. Contoh yang konkrit dala dunia nyata, kembali kemasalah mobil. Mobil yang ada dipasaran terdiri atas berbagai tipe dan merek, namun semuanya memiliki interface yang sama, seperti stir kemudi, tongkat transmisi, pedal gas, dan rem. Jika anda dapat mengemudikan satu jenis mobil saja dari satu merek tertentu, maka anda pasti dapat mengemudikan hampir semua jenis mobil yang ada karena semua mobil tersebut menggunakan interface yang sama. Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Anda dapat mengetahui jika menekan pedal gas, maka mobil akan melaju cepat. Namun, bagaimana proses ini terjadi, dapat berbeda-beda untuk setiap jenis mobil.
Dengan interface yang sama, anda akan mendapatkan hasil yang sama, tetapi bagaimana proses yang terjadi dari aksi (menekan pedal gas) menjadi hasil, mungkin saja berbeda. Dalam kasus mobil diatas, hal ini tergantung dengan teknologi dan bahan baker yang digunakan.
Contoh lain untuk polymorphism, yaitu apapun jenis kendaraannya tetap saja istilah yang digunakan adalah mengendarai.
Dalam struktur hierarki class, kendaraan bermotor akan menempati struktur hierarki yang lebih tinggi (superclass) dari semua jenis kendaraan. Ini adalah satu ciri dari polymorphism.

Tidak ada komentar:

Posting Komentar