PEMBAHASAN OODB
A.
Pengertian Object
Objek merupakan kesatuan entitas (baik), baik yang
berwujud nyata ataupun hanya satu sistem yang memodelkan dunia nyata. Setiap
object diidentifikasi oleh object identifier(OID), dan juga memiliki state dan
behavior. State terdiri dari nilai object properties. Properti dari sebuah
object dapat berupa atribut atau relasi antar object. Sedangkan behavior
dispesifikasikan oleh operasi atau method yang dapat dieksekusi oleh sebuah
object melalui propertinya.
B.
Karakteristik Object
Sebuah object, mempunyai:
·
identifier :
unique id
·
name :
unique name dalam DB (optional)
·
lifetime :
menetapkan apakah object persistent atautransient
·
structure :
pembangunan object menggunakantype constructors
C. Struktur Objek
State (current value) dari object bias dibangun dari
object lain (other values) dengan menggunakan type constructors tertentu.
Constructors
:
·
Basic types : atom, tuple dan set
·
Collection
type : list, bag dan array
D.
Konsep Object Oriented
·
Abstract Data Types
mendefinisi Kelas, menyediakan ekstensi untuk jenis
atribut kompleks
·
Encapsulation
Melaksanaan operasi dan struktur objek tersembunyi
·
Inheritance
Membagi data dalam lingkup hirarki, mendukung
reusabilitas kode
·
Polymorphism
Operator overloading
E.
Definisi OODB
Object oriented database adalah
sebuah model basis data yang informasinya direpresentasikan dalam bentuk objek,
seperti yang digunakan pada pemograman berorientasi objek. OODB
direkomendasikan ketika ada kebutuhan bisnis untuk memproses data yang
kompleks.Sesuai dengan namanya, OODB adalah gabungan kemampuan basis data yang
dikombinasikan dengan bahasa pemograman berorientasi objek. Lebih lanjut, OODB
ini tidak hanya menjadi jenis baru dari basis data, tapi juga menghasilkan
sistem manajemen basis data (SBD) yang dinamakan Object Database Management
System (ODBMS).Kemampuan yang dimiliki oleh bahasa pemograman berorientasi
objek antara lain:
·
tipe data abstrak
·
inheritance (pewarisan)
·
identitas objek.
Jika
dikombinasikan dengan basis data, akan menjadi OODB yang persisten, mendukung
adanya transaksi, query yang simple untuk data yang besar, akses dan control
yang konkuren, keamanan, dan data recovery.Beberapa basis data berorientasi
objek didesain agar bisa bekerja dengan baik dengan bahasa pemograman tertentu
seperti Phyton, Perl, Java, C#, Visual Basic .NET, Objective-C, dan Smalltalk.
F. Struktur
Object di OODB
Paradigma OODB didasarkan pada
enkapsulasi data dan kode. Seperti yang telah diketahui, enkapsulasi
menyebabkan isi dari sebuah objek tidak terlihat di dunia luar objek tersebut.
Secara konsep, semua interaksi antara objek dan sistem di luar dirinya dilakukan
via messages. Interface antara objek dan sistem di luar dirinya inilah
yang dinamakan kumpulan dari pesan (set of messages).
Secara umum, sebuah objek berasosiasi dengan
·
Sebuah
himpunan variable (a set of variables) yang mengandung data untuk objek dan
variable yang berkorespondensi dengan atribut di model E-R.
·
Sebuah
himpunan pesan (a set of variables); kesinilah objek member respon. Tiap pesan
bisa mempunyai 0, 1 atau banyak parameter.
·
Sebuah
himpunan method (a set of variables) ; masing-masingnya adalah badan kode untuk
mengimplementasikan pesan. Method mengembalikan nilai sebagai respon pesan.
Diilustrasikan dengan mengambil
contoh entitas employee dalam basis data bank. Misalnya gaji tahunan
karyawan dihitung dengan cara yang berbeda untuk tiap karyawan. Manajer
mendapatkan bonus sesuai dengan performa bank, sedangkan teller mendapat bonus
berdasarkan jumlah jam mereka bekerja. Dalam kasus ini, semua objek employee
berhubungan dengan message gaji-tahunan, tapi mereka dihitung dengan cara yang
berbeda. Dengan mengenkapsulasi informasi bagaimana mendapatkan gaji tahunan
karyawan dalam objek employee, semua objek employee bisa
menampilkan interface yang sama. Karena hanya interface external yang
ditampilkan oleh sebuah objek adalah a set of message yang berhubungan
dengan objek tersebut, maka dimungkinkan untuk memodifikasi definisi method dan
variable tanpa mempengaruhi sisa sistem lain.
G.
Object Classes dalam OODB
Biasanya, ada banyak objek yang sama
dalam basis data. Sama di sini maksudnya mereka merespon message yang sama,
menggunakan method yang sama, dan mempunyai variable untuk nama dan tipe yang
sama. Akan sangat sia-sia jika kita harus mendefinisikan masing-masing objek
secara terpisah. Oleh karena itu, kita menggabungkan objek-objek yang sama ini
dalam sebuah class (kelas). Masing-masing objek adalah instansiasi dari
kelasnya.
H.
Inheritance (Pewarisan)
Sebuah skema OODB biasanya
membutuhkan banyak kelas. Namun, kebanyakan dari kelas-kelas itu serupa.
Misalnya, OO untuk aplikasi bank, customer dan employee bank bisa
dikatakan serupa karena mempunyai atribut/variable yang sama, seperti nama,
alamat, dll. Namun, tentu saja tidak semuanya sama dan ada variable spesifik
yang hanya dimiliki oleh customer atau employee saja. Objek yang mempunyai beberapa
variable yang sama ini bisa didefinisikan dalam sebuah representasi jika kita
menggabungkannya dalam satu kelas. Representasi langsungnya bisa dengan
menyediakan tempat untuk kelas dalam sebuah spesialisasi hierarki (“ISA”
relationship). Kita bisa mengatakan bahwa employee adalah sebuah spesialisasi
dari person dan customer juga spesialisasi dari person, karena sama-sama
memiliki atribut yang dimiliki oleh person.
Konsep dari hierarki kelas serupa dengan konsep dari hierarki
spesialisasi yang kita kenal dalam model ER. Variable dan method yang dimiliki
oleh employee dan customer bisa diasosiasikan dengn kelas person. Spesialisasi
kelas ini dikenal juga dengan subclass. Maka employee adalah
subclass dari person, customer juga subclass dari person.
Dalam banyak kasus, bisa terjadi
multiple inheritance, yang mengizinkan sebuah kelas untuk menurunkan
variable dan method dari multiple superclasses. Hubungan kelas-subkelas
direpresentasikan dengan adanya directed acyclic graph (DAG) di mana
setiap kelas bisa memiliki lebih dari satu superclass.
Contoh kasus multiple inheritance
ini adalah basis data sebuah universitas. Dalam sebuah universitas, person bisa
menjadi student ataupun teacher. Jadi di basis data universitas ada kelas
student dan ada kelas teacher, yang merupakan subclass dari person. Tapi
terdapat juga kasus di mana ada student yang juga bekerja sebagai
teacher-assistant, yang mana kelas teacher-assistant ini adalah subkelas dari
kelas student dan kelas teacher.
Pada kasus-kasus tertentu terjadi
ambiguitas jika ada variable yang sama, misalnya student mempunyai departemen
tertentu, begitu juga dengan teacher. Ambiguitas akan terjadi pada
teacher-assistant, di mana sebagai student dia memiliki departemen dan sebagai
teacher juga begitu. Namun, hal ini bisa diakali dengan memberi nama berbeda
untuk departemen tiap kelas (jangan hanya menggunakan kata ‘dept’, tapi
pakai ‘student-dept‘ dan ‘teacher-dept’), atau membuat treat
error untuk kasus seperti ini, atau jika susah, user terpaksa membuat kelas
baru, yaitu kelas teacher-assistant. Tapi diingatkan lagi, kasus ambiguitas ini
tidak selalu terjadi.
Contoh multiple inheritance:
I.
Object Identity (Identitas Objek)
Sebuah objek akan menyimpan
identitasnya walaupun ada beberapa atau semua nilai dari variablenya
berubah-ubah atau method-nya didefinisikan ulang. Sistem OO biasanya
menggunakan sebuah object-identifier untuk mengidentifikasi
objek. Objek identifier harus unik, yang artinya tidak ada 2 objek yang
memiliki identifier yang sama. Sebaiknya, user langsung membuat identifier yang
unik untuk setiap objek dan tidak menggunakan system-generated identifier karena
identifier yang dibuat akan bergantung pada sistem dan bisa menjadi redundan.
Identitas objek bisa berupa nilai
(value), misalnya primary key objek yang mengidentifikasi objek tertentu; atau
bisa menggunakan nama (biasanya dipakai pada sistem file, satu file dengan file
lain dibedakan dari namanya).
J.
Object Containment
Terkadang, ada objek yang mengandung objek
lain. Objek ini disebut complex object atau composite object. Misalnya, pada
sebuah sepeda. Sepeda adalah satu objek, yang memiliki roda. Roda adalah objek
baru, namun dimiliki oleh sepeda. Roda sendiri juga memiliki ban, jeruji/velg. Makanya, containment ini juga
bisa memiliki banyak level, yang menciptakan hierarki containment antar objek.
Hubungan antar kelas dalam containment ini adalah is-part-of, bukan is-a.
Hubungan antar kelas digambarkan dalam skema dengan menggunakan DAG juga.
Dengan adanya containment, user yang berbeda
bisa melihat data-data tertentu sesuai dengan kebutuhannya. Misalnya seorang
wheel-designer bisa fokus pada kelas roda, tanpa terlalu memperhatikan objek
lain yang juga merupakan komponen penyusun sepeda seperti rem, dll.
K. Kelebihan OODB
·
Bisa menspesifikasikan
structure dari object dan behaviornya (methods).
·
Interaksi yang lebih baik
dengan bahasa pemrograman berorientasi object seperti java dan C++
·
Definisi
kompleks dan user-defined jenis
·
Enkapsulasi
operasi dan user-defined metode
L.
Kekurangan OODB
·
Tight
coupling
Coupling berarti keterkaitan antara aplikasi dan database.
Tight coupling berarti keterkaitan yang kuat antara aplikasi dan database
sehingga aplikasi dan database sulit dipisahkan.
·
Kurangnya
dukungan platform
sampai sekarang kebanyakan OODBMS hanya mendukung
bahasa pemrograman C++ dan Java saja.
·
Sulit
bermigrasi
Cara penyimpanan dan pengambilan data dalam OODB sangat
berbeda dengan RDB. Begitu juga dengan cara pengaksesannya. Oleh karena itu,
dibutuhkan komitmen yang kuat dalam memilih DBMS yang akan digunakan, sekali
bermigrasi ke OODB, akan sulit untuk kembali ke RDB.
·
Kebutuhan
ketrampilan
Karena OODB masih tergolong baru dan masih relatif jarang
penggunaannya, cukup sulit menemukan orang yang memiliki pemahaman OODB bila
dibandingkan dengan orang yang memiliki pemahaman RDB.
·
Query yang
kompleks
Kemampuan logika yang mendalam sangat diperlukan dalam OODB.
Masing-masing OODB dapat memiliki cara pemanggilan query yang berbeda-beda.
M.OODBMS
OODBMS merupakan database management system (DBMS) yang mendukung pemodelan
dan pembuatan data sebagai objek.OODBMS mendukung2 kriteria DBMS dan
object-oriented.
N.
Keuntungan
OODBMS
· Pemeliharaan dan perpanjangan database yang lebih
mudah
· Teknologi yang memungkinkan untuk area aplikasi
yang tidak dilayani oleh RDBMS
· Tingkat abstraksi yang diberikan oleh OODBMS
berguna untuk pengguna pemula
· Kopling yang efisien ke jaringan pemrosesan
terdistribusi
· Kerja Koperasi Bantuan Komputer Aids
O. Kerugian OODBMS
· Tidak
ada fondasi yang kuat dimana teknologi berbasis;
· Kurangnya
standar internasional;
KESIMPULAN
Setelah penjabaran dalam makalah
ini, dapat disimpulkan bahwa OODB memodelkan data sebagai sebuah objek sehingga
jika programmer yang ingin menambahkan tipe data baru dengan membuat proyek
baru. Pengaksesan dan pengolahan data murni dilakukan dengan pemograman OO. Hal
ini tentu saja berbeda dengan RDB yang memodelkan data dengan tabel terformat.
Tabel-tabel inilah yang berisi tipe data.
Melihat masih cukup banyaknya
kekurangan OODB ini, sebelum memutuskan untuk memakai ODBMS ada baiknya
mempertimbangkan kekurangan yang sudah diuraikan di atas. Mempertimbangkan faktor kebutuhan dan
ketersediaan aplikasi serta platform.
Pada beberapa aplikasi tertentu
penggunaan OODB mungkin sangat tepat. Sebaliknya untuk beberapa aplikasi
lainnya OODB mungkin akan menjadi hambatan serius. Contohnya OODB tidak cocok
digunakan untuk menyimpan data transaksi yang besar seperti data keuangan,
kepegawaian dan data transaksi bank. Di sini mungkin lebih baik memilih RDB. OODB
bagus digunakan menggunakan tipe data multimedia dan data yang sifatnya
kompleks.
DAFTAR
PUSTAKA
Heryanto, Bambang,
“Esensi-esensi pemograman Java”, Penerbit Informatika, Bandung: 2007
Tidak ada komentar:
Posting Komentar