|
Dalam konsep berorientasi objek, istilah objek dan kelas merupakan
hal yang mendasar. Sulit membedakannya bagi orang yang awam dalam
konsep object-oriented. Penulis juga sempat bingung harus memulai
dari “siapa”, objek dulu atau kelas dulu. Akhirnya dengan melewati
renungan yang panjang (dan eksplorasi beberapa sumber), diputuskan
bahwa kita mulai dari objek dulu yang kemudian disusul dengan kelas.
Objek
Secara sederhana, objek merupakan segala sesuatu yang dapat
dibedakan satu sama lainnya. Segala sesuatu yang ada di alam semesta
ini adalah objek. Contohnya: manusia, mobil, hewan, tumbuhan,
tempat, atau bahkan yang tidak bersifat fisik seperti kejadian atau
konsep-konsep. Sehingga bisa disimpulkan bahwa objek tidak harus
bersifat fisik, karena jika dikaitkan dengan OOP objek akan menjadi
bentuk logis.
Dalam dunia nyata, objek memiliki dua karakteristik: keadaan
(state) dan sifat (behavior). Contohnya, sapi memiliki keadaan
(nama, warna, tanduk, berat, jenis kelamin) dan sifat (bersuara,
berjalan, makan). Mobil juga memiliki keadaan (jumlah ban, status
gigi, merk, jumlah penumpang) dan sifat (berjalan, belok, berhenti,
merubah gigi).

Objek dalam konsep OOP masih memiliki keadaan dan sifat seperti
halnya objek di dunia nyata, karena pada dasarnya objek dalam OOP
merupakan representasi dari dunia nyata. Objek dalam OOP
merepresentasikan keadaan melalui variabel, sedangkan sifatnya
direpresentasikan menjadi method. Method merupakan suatu fungsi
(sub-routine) yang berhubungan dengan objek.
Definisi: “objek merupakan penggabungan variabel-variabel dan
method-method yang berhubungan dengannya.”
Setiap objek bisa dibedakan antara satu dengan yang lainnya.
Misalnya, objek mobil bisa dibedakan berdasarkan merknya. Objek
hewan bisa dibedakan berdasarkan jenis dan ciri fisiknya. Walaupun
objek tersebut bernama sama, tetapi masih tetap bisa dibedakan.
Misalnya, objek mobil Kijang bisa dibedakan berdasarkan nomor
rangka, warna, tahun keluaran, tipe, nomor polisi, dan sebagainya.
Objek kucing bisa dibedakan dari warna dan corak bulunya. Bahkan dua
orang yang kembar pun masih bisa dibedakan satu sama lainnya,
misalnya dengan nama atau ciri tertentu yang spesifik dan juga
sifatnya. Konsep “pembedaan” ini disebut dengan konsep identitas.
Segala sesuatu yang diketahui oleh objek (state) dan yang bisa
dilakukannya (behavior) terangkum dalam variabel dan method.
Misalnya objek yang memodelkan mobil memiliki variabel yang
menandakan keadaan dari objek tersebut, misalnya: jumlah ban ada 4,
penumpang ada 5, sedang berjalan dengan kecepatan 60 km/jam, dan
giginya sedang pada gigi 4. Variabel-variabel tersebut biasanya
disebut dengan variabel instans (instance variable) karena pada
dasarnya menjelaskan keadaan tertentu dari objek mobil. Sedangkan
objek tertentu tersebut (mobil) dalam terminologi OOP disebut dengan
instans (instance).
Seperti halnya variabel, objek mobil juga harus memiliki method
untuk mengurangi kecepatan, mengerem, dan merubah gigi. Method ini
disebut dengan method instans (instance method) karena method-method
tersebut merubah keadaan objek mobil tersebut.
Pada hampir kebanyakan sumber, objek diilustrasikan dalam diagram
sebagai berikut.

Pada diagram tersebut tergambarkan bahwa variabel posisinya di
tengah-tengah (inti) objek. Method-method mengelilingi dan terkesan
menyembunyikan keberadaan inti objek tersebut (variabel) dari objek
lain. Pembungkusan variabel-variabel objek yang dijaga oleh
methodnya disebut dengan enkapsulasi (encapsulation).
Suatu objek bisa juga spesialisasikan menjadi objek yang lebih
rendah tingkatnya (spesialisasi/specialization) atau bisa
digeneralisasikan menjadi objek yang lebih tinggi tingkatnya
(generalisasi/generalization). Untuk lebih jelasnya bisa dilihat
pada gambar 3.
Mobil bisa dispesifikasikan menjadi mobil Toyota Kijang, Honda
Jazz, Daihatsu Xenia, dan Hyundai Atoz. Selain itu mobil juga bisa
digeneralisasi bersama-sama dengan objek pesawat terbang dan kapal
laut menjadi objek alat transportasi. Begitu juga dengan manusia,
hewan, dan tumbuhan bisa dikelompokkan menjadi objek mahluk hidup.


Gambar 3. Contoh generalisasi/spesialisasi
Konsep generalisasi dan spesifikasi (gen-spec) hanyalah masalah
dari mana kita “membaca” suatu objek. Gambar 2a bisa juga disebut
generalisasi jika kita membacanya dari bawah ke atas.
Generalisasi sering disebut juga dengan klasifikasi, dan
klasifikasi inilah yang akan mengantarkan kita pada konsep kelas
yang akan kita bahas di bagian berikutnya.
Kelas (Class)
Kelas merupakan suatu konsep yang lebih tinggi lagi hierarkinya dari
objek yang dihasilkan dari proses generalisasi objek-objek yang
memiliki beberapa ciri yang sama. Dalam OOP, kelas merupakan suatu
hasil pemodelan fakta-fakta dari suatu objek yang berguna bagi suatu
aplikasi yang diprogram. Proses pemodelan fakta-fakta tersebut
disebut dengan abstraksi.
Proses abstraksi sangat penting ketika kita melakukan analisa
sesuatu dari dunia nyata agar bisa dimodelkan menjadi bentuk logis
yang dimengerti oleh aplikasi/komputer. Misalnya, untuk memodelkan
mahasiswa, kita cukup memasukkan nama, alamat, tempat lahir, tanggal
lahir, telepon, orang tua, dan sebagainya.
Perlu dicatat bahwa proses abstraksi hanya memasukkan fakta-fakta
yang berguna (penting) saja bagi aplikasi yang bersangkutan.
Misalnya pada objek mahasiswa tadi, kita belum tentu perlu
memasukkan warna mata, berat badan, ukuran sepatu, bentuk wajah,
bentuk hidung, warna kulit, dan lain-lain yang tidak ada hubungannya
dengan kegiatan perkuliahan nantinya di universitas yang
bersangkutan.
Fakta-fakta yang dimodelkan bisa berupa ciri dan fungsi dari
suatu objek. Pada kelas hasil abstraksi, ciri-ciri tadi akan berubah
menjadi data yang memiliki tipe, dan fungsi akan lebih sering
disebut sebagai method. Kadang-kadang data juga disebut dengan
variabel instan.
Sehingga bisa ditarik kesimpulan sederhana, bahwa kelas merupakan
suatu metode logis yang mengorganisir/menggabung data dan method
pada struktur yang sama.
Perbedaan Objek dan Kelas
Setelah melalui penjelasan tentang objek dan kelas di atas, kita
bisa simpulkan perbedaan antara keduanya.
Kelas adalah sesuatu yang menjelaskan ciri-ciri secara umum dari
suatu objek, termasuk apa-apa yang bisa dilakukan objek tersebut.
Sedangkan objek adalah keadaan tertentu dari suatu kelas, atau
sering juga disebut dengan instans dari kelas.
Mari kita simak kalimat singkat berikut untuk lebih memperdalam
pemahaman kita tentang objek dan kelas:
“Seekor kucing Persia memiliki empat ekor anak.”
Kalimat tersebut mengisyaratkan bahwa kucing Persia merupakan
kelasnya, sedangkan anak-anaknya merupakan objek. Dengan kata lain,
jika seekor kucing Persia tersebut memiliki empat anak, berarti dia
telah membuat empat buah objek (instans) dari kelas kucing Persia.
Setiap anak kucing memiliki cirinya tersendiri. Ada yang berbulu
putih, kuning, hitam, atau campuran hitam kuning. Selain itu ada
yang memiliki ekor panjang sempurna, panjang bengkok, pendek, ekor
“keriting”, dan sebagainya. Dan jenis kelaminnya juga ada beberapa
yang jantan dan ada juga yang betina. Tetapi walaupun berbeda dalam
hal ciri-ciri fisiknya, harus diingat bahwa semuanya tetaplah kucing
Persia.
Semoga dengan tulisan yang singkat ini bisa memperdalam pemahaman
Anda mengenai objek dan kelas.
Demikian tulisan mengenai objek dan kelas dalam dunia object
oriented. Semoga
bermanfaat bagi Anda semuanya. Jika ada saran atau komentar bisa
dilayangkan ke
arioss@softhome.net. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|