Konsep Dasar Pemrogaman Berorientasi Object (PBO)
1. Objek
Untuk mempermudah pemahaman, maka disini akan
dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata
dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas,
komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status
(state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute (state) nya adalah
pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku
(behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi
motor.
Analogi pemrograman berorientasi objek sama dengan
penggambara pada dunia nyata seperti contoh di atas. Dalam PBO, state disimpan
pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis PBO, Objek berfungsi untuk
membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program
komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah
program komputer berorientasi objek.
2. Class
Definisi class yaitu template untuk membuat objek.
Class merupakan prototipe atau blue prints yang mendefinisikan
variabel-variabel dan method-method secara umum. Objek merupakan hasil
instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut
sebagai instantiation. Objek disebut juga sebagai instances.
Dalam bahasa teoretis PBO, class merupakan kumpulan
atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan
tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas
definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam
perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan
struktur dalam pemrograman berorientasi object.
Sebuah class secara tipikal sebaiknya dapat dikenali
oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang
ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat
mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak
menggunakan PBO). Dengan modularitas, struktur dari sebuah program akan terkait
dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program
tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah
program ataupun sebaliknya.
3. Attributes
Atribut adalah data yang membedakan antara objek satu
dengan yang lainnya.
Contoh Objek : VolcanoRobot ( a volcanic exploration
vehicle), mempunyai atribut sebagai berikut:
- Status ~> exploring, moving, returning home
- Speed ~> in miles per hour
- Temperature ~> in Fahrenheit degrees
Dalam class, atribut sering disebut sebagai variabel.
Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable.
Instance variable adalah atribut untuk tiap objek dari
kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri.
Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama atau
berbeda.
Class Variable adalah atribut untuk semua objek yang
dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama.
Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya
sama.
4. Behavior/method
Behavior/tingkah laku adalah hal-hal yang bisa
dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah
nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim
informasi ke objek lain untuk melakukan suatu tugas (task).
Contoh behavior untuk objek VolcanoRobot:
- check current temperature
- begin a survey
- report its current position
Dalam class, behavior disebut juga sebagai methods.
Methods sendiri adalah serangkaian statements dalam suatu class yang menghandle
suatu task tertentu. Cara objek berkomunikasi dengan objek yang lain adalah
dengan menggunakan method.
Contoh
class, object, attributes, dan behavior:
5. Konstruktor
Konstruktor
adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan
menginisialisasi sebuah object baru. Konstruktor merupakan suatu method yang
memiliki nama yang sama dengan nama classnya.
Karakteristik Pemrogaman Berorientasi Object (PBO)
1. Enkapsulasi (Encapsulation)
Definisi enkapsulasi: Pembungkusan variabel dan method
dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses
variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa
ditentukan hak aksesnya. Dalam PBO, konsep enkapsulasi sebenarnya merupakan
perluasan dari struktur dalam bahasa C.
Contoh: jam tangan. Dalam hal ini, penting sekali
untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara
jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.
Dengan kata lain enkapsulasi berfungsi untuk
memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari
sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut
yang diberi izin 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.
2. Pewarisan
(Inheritance)
Pewarisan merupakan pewarisan atribut dan method dari
sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class
yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi
class lainya, disebut sebagai multilevel inheritance.
Contoh : terdapat class sepeda dan sepeda gunung.
Sepeda termasuk superclass. Sepeda gunung termasuk subclass. Hal ini
dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh
sepeda.
Prinsip dasar inheritance yaitu persamaan-persamaan
yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk
sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk
kelas yang bersangkutan.
Keuntungan
Pewarisan
- Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
- Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.
Single & Multiple Inheritance
Bahasa C adalah contoh multiple inheritance. Suatu
class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan
method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah
contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.
Multilevel
Inheritance
Suatu subclass bisa menjadi superclass bagi class yang
lain.
3.
Polimorfisme
Polimorfisme adalah kemampuan suatu obyek untuk
mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada
pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman
pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.
Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan
menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama,
dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang
sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tungal dalam program dapat memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks program
yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda
dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang
mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Tidak ada komentar:
Posting Komentar