Sabtu, 10 Januari 2009

Pemrograman Berbasis Obyek


Pendahuluan

Pemrograman berorientasi obyek (PBO) yang dalam bahasa Inggrisnya Object Oriented Programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Object merupakan inti dari pemrograman JAVA. Semua program Java merupakan objek. Maka dari itu kita harus mengetahui cirri-ciri dari pemrograman berorientasi objek, meliputi :

  • Abstraksi (abstraction)
  • Pembungkusan (encapsulation)
  • Pewarisan (inheritance)
  • Polimorfisme atau kebanyakrupaan (polymorphism).


1. Abstraksi (abstraction)

Abstraksi adalah pengabstrakan atau penyembunyian kerumitan dari suatu proses. Misalnya kita tidak perlu direpotkan dengan pemikiran bahwa spedamotor adalah kumpulan dari ratusan bagian-bagian kecil yang terdiri dari rangka, carburator, piston, kabel, baut, roda, rem, dsb. Kita hanya perlu berfikir bahwa spedamotor adalah sebuah objek yang telah memiliki perilaku spesifik, responsif mudah dikendalikan dan dapat digunakan sebagai alat transfortasi, sehingga kita tinggal menggunakannya atau mengendarainya tanpa harus banyak mengetahui kerumitan proses yang terdapat di dalam spedamotor dan pengguna tidak perlu mengetahui bagaimana sistem pada mesin, transmisi, dan rem bekerja. Konsep seperti inilah yang dinamakan dengan abstrak.

Abstraksi dalam model pemrograman berorientasi objek. Kita sebagai programmer tidak perlu secara detail bagaimana cara membuat sebuah tombol. Yang perlu kita ketahui adalah bagaimana cara mengerjakan objek tombol yang sudah ada. Pembuat objek telah mengabstraksikan semua proses yang berkaitan dengan pembuatan tombol.


2. Pembungkusan (encapsulation)

Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.


Proses abstraksi dapat dilakukan dengan cara membungkus semua kode dan data yang berkaitan ke dalam satu entitas tunggal yang disebut dengan objek. Dengan kata lain sebenarnya proses pembungkusan itu sendiri merupakan cara atau mekanisme untuk melakukan abstraksi.

Dalam melakukan pembungkusan kode dan data di dalam Java terdapat tiga tingkat akses yang perlu diketahui, yaitu private, protected, dan public.

  1. Tingkat akses private

Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Ini berarti data dan method tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat di dalam program. Untuk mendeklarasikan suatu data atau method dengan tingkat akses private, gunakan kata kunci private.

  1. Tingkat akses protected

Suatu data maupun method yang dideklarasikan dengan tingkat akses protected dapat diakses oleh kelas yang memilikinya dan juga oleh kelas-kelas yang masih memiliki hubungan turunan. Sebagai contoh, apabila data x dalam kelas A dideklarasikan sebagai protected, maka kelas B yang merupakan turunan dari kelas A diizinkan untuk mengakses data x, namun, apabila terdapat kelas lain, missal C yang bukan merupakan turunan dari kelas A maupun kelas B, tetap tidak dapat mengakses data-data yang dideklarasikan dengan tingkat akses protected. Untuk mendeklarasikan suatu data atau method dengan tingkat akses protected, digunakan kata kunci protected.

  1. Tingkat akses public

Tingkat akses public merupakan kebalikan dari tingkat akses private. Data maupun method yang bersifat public dapat diakses oleh semua bagian di dalam program. Dengan kata lain, data-data maupun metode-method yang dideklarasikan dengan tingkat akses public akan dikenali atau diakses oleh semua kelas yang ada di program, baik kelas turunan maupun kelas yang tidakada hubungan.Untuk mendeklarasikan suatu data atau methode dengan tingkat akses public, gunakan kata kunci public.


3. Pewarisan (inheritance)

Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

Model pemrograman berorientasi objek juga menerapkan konsep pewarisan, sama halnya seperti yangterjadi di kehidupan nyata. Sebagai contoh, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki oleh orang tuanya. Begitu juga di dalam sebuah program, suatu kelas dapat diturunkan menjadi kelas-kelas baru lainnya yang akan mewaisi beberapa sifat dari kelas induknya. Sebagai contoh apabila kita memiliki kelas A dalam program yang kita buat, maka kita dapat membentuk kelas-kelas turunan dari kelas A(misalnya kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. Dalam proses pembuatan kelas turunan tersebut, kita dapat menambahkan sifat dan perilaku baru ke dalam kelas B yang sebelumnya tidak dimiliki dalam kelas A. Ciri semacam ini sering dinamakan dengan konsep pewarisan (inheritance). Dalam terminology Java, kelas induk dinamakan dengan superclass dan kelas turunan disebut dengan sub class.


4. Polimorfisme atau kebanyakrupaan (polymorphism)

Polimorfisme adalah kemampuan suatu objek untuk mengungkap banyak hal melalui suatu cara yang sama. Sebagai contoh, terdapat kelas A yang diturunkan menjadi kelas B, C, dan D. Dengan konsep polimorfisme, kita dapat menjalankan method-method yang terdapat pada kelas B, C, dan D hanya dari objek yang diinstansiasi dengan kelas A. Polimorfisme sering dinamakan dengan dynamic binding, late binding, maupun runtime binding.


  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.

Tidak ada komentar: