Kamis, 02 Juni 2011

KONSEP OOP

Object Oriented Programming merupakan konsep tentang asosiasi pemrograman terhadap benda yang kita temui setiap harinya. Misal asosiasi obyek pada OOP dengan kucing, sepeda, mobil dan rumah.
Dari masing-masing objek tersebut kita dapat menurunkan lagi menjadi objek-objek yang seperti objek induknya. Misal objek sepeda kita dapat menurunkannya menjadi sepeda balap, sepeda mini, sepeda gunung. Demikian juga misal pada mobil kita dapat menurunkannya menjadi mobil sedan, mobil kijang, mobil bus, mobil truk dan sebagainya.
Komponen dari dari suatu objek bisa beragam jenisnya, misalkan rumah. Rumah dibangun atas bahan bangunan semen, batu bata, pasir, air, kayu, genteng dsb. Rumah dibangun oleh tukang namun si tukang tidak mengetahui secara persis dibuat dari unsur apakah semen itu, atau apa zat yang terkandung dalam batu bata tersebut. Si Tukang tugasnya hanyalah membuatkan rumah saja tanpa harus tahu unsur apakah yang terkandung dalam bahan-bahan bangunan tersebut.
Tukang bangunan itu tidak mengetahui detil dari bahan bangunan yang dia pergunakan. Dia tidak mengerti detil obyek yang dia gunakan. Si tukang hanya tahu cara menggunakannya tapi sudah bisa membuatkan sebuah rumah yang indah buat kita. Dengan pemrograman OOP, kita kemungkinan besar akan melakukan hal yang sama dengan tukang bangunan itu. Kita akan mencari di Internet tentang berbagai obyek (ini nanti akan kita sebut class) dan inilah yang disebut class untuk membuat program jadi.
OOP dapat digambarkan sebagai realisasi nyata dari class jadi object adalah realisasi dari class. Kita kembali ke contoh sebelumnya yaitu pada mobil. Mobil balap sangat berbeda interior dan bodynya dengan mobil angkutan umum. Baik dari ban mobil, kaca mobil, stir mobil lampu dsb. Ban mobil, kaca mobil, stir mobil lampu itu adalah object dalam konsep OOP.
Jendela mobil balap berbeda baik dari ukuran maupun dari bahan yang dibuatnya. Classnya, adalah jendela. Sebuah kelas hanya mendefinisikan apa itu jendela dan bagaimana sifat-sifatnya. Class jendela dalam contoh ini tentu saja akan memiliki beberapa parameter yaitu berapa ukurannya, terbuat dari kaca apa, serta jenis kaca yang digunakan.
Misalnya kita ternyata perlu membuat definisi baru mengenai arah membuka jendelanya. Apakah ke samping, ka atas atau ke bawah. Hal-hal seperti itu bisa dilakukan dengan menggunakan sifat-sifat class( polymorphism, inheritance, dll).


Encapsulation (Enkapsulasi)

Encapsulation atau untuk gampang mengingat adalah kapsulnya. Kita pada saat minum obat dapat berbentuk kapsul. Fungsi encapsulation juga sama dengan kapsul itu, yaitu membungkus atau menyembunyikan obat di dalamnya. Dalam OOP tentu saja bukan obat yang disembunyikan tetapi kodenya.
Kita kembali ke contoh pembuatan jendela atau ban mobil. Terbuat dari bahan apakah kaca mobil balap tersebut atau terbuat dari apakah ban mobilnya dan seterusnya.

Pembungkusan atau penyembunyian informasi itulah kira-kira arti dari encapsulation atau enkapsulasi. Dalam pemrograman, tujuan encapsulation adalah menyembunyikan property dan method suatu objek. Tidak semua property atau method yang disembunyikan, beberapa dari mereka ada yang diinformasikan.


Property atau method yang ditampilkan pada objek disebut interface.

Encapsulation memiliki beberapa keuntungan:
Modularitas. Hal ini membuat objek dapat dikelola secara independen. Ban mobil, jendela dan stir mobil dibuat secara terpisah oleh masing-masing ahlinya, namun pada akhirnya dapat saling disatukan membentuk sebuah mobil.
Informasi yang tersembunyi. Hal ini akan memudahkan pengguna class, karena untuk setiap objek tentu sudah disediakan interface yang akan digunakan untuk berkomunikasi dengan objek lain, tanpa perlu tahu detil kode atau informasi yang tersembunyi di dalamnya.

Tidak ada komentar:

Posting Komentar