KONSEP SISTEM MANAJEMEN BASIS DATA BERORIENTASI OBJEK (OBJECT ORIENTED DATABASE MANAGEMENT SYSTEM/ OODBMS) Oleh : Yusup Fakultas Ilmu Komputer, Universitas AKI Semarang Abstract This technology integrates the capability of database ( DBMS ) with the ones of object oriented program ( OPP ). Object Oriented Database Management System ( ODBMS ) makes the object of database is visible as the object of program at various OOP program. ODMBS is able to widen the capability of program terminologies with the capability of database as transparancy persistent data, competition control, data recovery, associate query and many other database capabilities. Keywords : OODB, OODBMS. Pendahuluan state dan behavior. State terdiri dari nilai Objek merupakan kesatuan entitas object properties. Properti dari sebuah object (baik), baik yang berwujud nyata ataupun dapat berupa atribut atau relasi antar object. hanya satu sistem yang memodelkan dunia Sedangkan behavior dispesifikasikan oleh nyata. Setiap object diidentifikasi oleh operasi atau method yang dapat dieksekusi object identifier(OID), dan juga memiliki oleh sebuah object melalui propertinya. -11- Majalah Ilmiah INFORMATiKA Vol. 1 No. 2 Mei 2010 Pada object-oriented database , nilai Karakteristik Objek Sebuah object, mempunyai: dari sebuah object terdiri dari nilai dari 1. identifier : unique id beberapa atribut dan relasi antar object. Nilai 2. name : unique name dalam DB (optional) dari suatu atribut dapat bersifat kompleks,jadi 3. lifetime : menetapkan apakah object sebuah atribut dapat dibentuk dari object lain persistent atau transient atau menggunakan tipe data yang telah 4. structure : pembangunan object tersedia. Relasi merupakan hubungan antara menggunakan type constructors dua object atau lebih. Object model hanya Struktur Objek mendukung binary relationship, relasi antar State (current value) dari object bias dibangun dua dari object lain (other values) dengan mengimplementasikan menggunakan type constructors tertentu. banyak Constructors : menggunakan set atau list. Basic types : atom, tuple dan set Object Behavior Collection type : list, bag dan array object. atau Sedangkan banyak hubungan ke untuk satu banyak ke dapat Object dalam object-oriented database dimanipulasi melalui methods. Method adalah Object Identity Hal yang paling penting dari properti prosedur atau fungsi yang dimiliki oleh sebuah object yaitu memiliki identity. Object sebuah object dimana sebuah method akan Identifier (OID)biasanya tidak terlihat secara mengolah/mengubah langsung dan tidak dapat diakses oleh didalam object sesuai dengan operasi yang database user. OIDdirepresentasikan dengan telah ditentukan. sebuah nama yang unik atau lebih. Berbeda Kelas dengan primary key pada relational database, OID terdapat Kelas merupakan pemodelan dari sebuah object yang berisi informasi (aturan) dihasilkan object state. OID yang digunakan tentang sifat karakteristik (data) dan behavior pada (method) yang dimiliki oleh object tersebut. object-oriented nilai yang yang untuk bersifat independent dari data database mengidentifikasi digunakan object dan mensupport hubungan antar object melalui nilai object properties. Object types Object types dapat digunakan untuk membuat object tables. Dalam object tables, setiap instance darituples memiliki obj Object State -12- ect identifier. Object types yang digunakan Konsep Sistem Manajemen Basis Data Berorientasi Objek (Yusup) untuk membuat object tables dapat digunakan merupakan deskripsi satu objek atau sebagai tipe atribut untuk menghubungan lebih dengan sekumpulan atribut dan antara tabel. Oracle mensupport beberapa tipe layanan data baru yaitu : deskripsi penciptaan objek baru di 1. Varrays atau Nested Table kelas itu. Kelas merupakan blok yang seragam, termasuk Dua tipe data baru yang memperbolehkan pembangun di pendekatan berorientasi koleksi data menjadi tipe data dari sebuah objek. atribut. semantik dari kelas. Kelas adalah tipe data 2. REFs (object references) Digunakan untuk menyimpan logical pointer pada object. Perlu abstraks implementasi menspesifikasikan dilengkapi parsial atau dengan total. Perbedaan kelas dan objek adalah Pendekatan berorientasi objek adalah objek merupakan entitas konkrit yang cara memandang persoalan menggunakan ada secara ruang dan waktu sedangkan model-model yang diorganisasikan seputar kelasa hanya merupakan representasi konsep abstraksi. Objek adalah bukan kelas, objek yang mengkombinasikan struktur data dan perilaku suatu entitas. Coud-Yourdan pendekatan meski kelas boleh jadi menjadi objek. mendefinisikan berorientasi objek dengan persamaan : 2. Abstraksi Abstraksi merupakan cara manusia yang paling dasar dalam menangani Berorientasi Objek = Objek + Klasifikasi + Pewarisan + Komunikasi. kompleksitas. Abstraksi adalah kemampuan manusia untuk mengenali keserupaan di antara objek-objek, Konsep-konsep yang penting dalam Orientasi situasi-situasi, atau proses-proses di Objek antara lain : dunia nyata serta keputusan untuk berkonsentrasi 1. Kelas pada keserupaan- Kelas merupakan suatu tipe baru yang keserupaan dan mengabaikan yang didefinisikan oleh disebut sebagai perbedaan-perbedaan Dengan kata lain, cetakan objek, programmer. Kelas adalah kecil yang ada. Abstraksi adalah bisa prinsip mengabaikan aspek-aspek dari memiliki banyak objek. Setiap kelas subjek yang tidak relevan dengan suatu kelas memiliki atribut dan method. Kelas -13- Majalah Ilmiah INFORMATiKA Vol. 1 No. 2 Mei 2010 maksud tertentu untuk berkonsentrasi esensi. Umumnya struktur dari objek lebih penuh padanya. adalah Abstraksi adalah implementasi pemodelan dunia dari metode, tampak kualitas esensi, mengabaikan rincian- yang dapat diminta dari objek. “bagaimana”. hanyalah juga nyata (real), fokus pada kualitasrincian, penekanan pada “apa” bukan yang layanan-layanan 5. Pewarisan Pewarisan atau Inheritance adalah proses penciptaan kelas baru dengan 3. Modularitas Modularitas merupakan sesuatu yang mewarisi karakteristik kelas yang esensi sudah ada, ditambah karakteristik unik untuk memecah program menjadi modul-modul kecil dimana kelas masing-masing mendukung modul saling yang baru itu. Pewarisan penggunaan kembali berinteraksi dengan lainnya lewat (reusability) suatu kode. Pewarisan antar muka sempit yang terdefinisi merupakan sarana untuk bagus. Modularitas menghilangkan penulisan ulang dengan pengabstraksian. masing berhubungan modul berkorespondensi Masing- terhadap kode yang dapat digunakan seharusnya berulang kali yang menyiakan banyak dengan satu abstraksi dan hanya satu-satunya. 4. Enkapsulasi waktu, menimbulkan ketidakkonsistenan, dan meningkatkan (penyembunyian resiko menimbulkan kesalahan. informasi-informasi hiding) Pewarisan memberi fasilitas untuk Enkapsulasi adalah pemisahan aspek- menstrukturkan kelas menjadi lebih aspek eksternal objek yang dapat ringkas, apa yang serupa dan apa yang diakses berbeda dari implementasi rincian-rincian internal. di antara kelas-kelas. Enkapsulasi Pewarisan adalah abstraksi ampuh meredam ketergantungan yang begitu untuk berbagi keserupaan di antara besar dengan objek kelas lainnya. kelas-kelas Pengkapsulan sering diperoleh lewat perbedaan-perbedaan di kelas-kelas penyembunyian itu. informasi, yaitu proses penyembunyian semua rahasia objek yang tidak berkontribusi pada -14- tersembunyi, sambil tetap menjaga Konsep Sistem Manajemen Basis Data Berorientasi Objek (Yusup) lain dan produk-produk baru lainnya terus 6. Polimorfisme Secara harafiah, Polimorfisme berarti berkembang menggunakan OODB ini.Untuk banyak bentuk. Dalam konsep OO, ODBMS sendiri, konsep yang ditekankan objek-objek dikatakan polimorfik bila adalah persistensi yang dimiliki oleh bahasa mempunyai antarmuka yang identik, pemograman namun mempunyai perilaku yang awalnya diintegrasikan dengan bahasa yang berbeda. Contoh mudahnya adalah dua bermacam-macam buah objek dari kelas yang berbeda memakai bahasa Smalltalk, Gbase yang dapat memiliki nama method yang menggunakan LISP, Vbase menggunakan sama, namun algoritma methodnya COP, dan lain sebagainya. Di tahun 1990-an, berbeda. Polimorfisme memungkinkan C++, Java, dan C# mendominasi pasaran untuk mengenali dan mengeksploisasi ODBMS. keserupaan-keserupaan di antara kelas-kelas berbeda. objek. Produk seperti komersial GemStone Objek database mulai populer pada pertengahan tahun 1990 an. Bermula dari Objek Oriented Programming(OOP) yang Object Oriented Database Management kemudian dikembangkan menjadi Objek System Oriented Design (OOD) dan pada akhirnya Istilah OODB pertama kali muncul pada menjadi Objek Oriented Analysis (OOA). tahun 1985. Proyek-proyek yang terkenal dari Didalam konsep objek oriented database kita perkembangan OODB ini antara lain: dapat melakukan pemodelan data dari semua Encore-Ob/Server (Brown University) phenomena dan dapat dinyatakan dalam EXODUS (University of Wisconsin- bahasa umum (natural). Objek Oriented Madison) Database pada dasarnya merupakan kosep IRIS (HP) dari pemrograman berorientasi objek secara ODE (Bell Labs) umum ditambah dengan database sebagai ORION (Microelectronic and Computer media penyimpanan datanya yang berbentuk Technology Corporation) class-class, sehingga dalam hal ini masih Produk komersial awal yang memakai berhubungan erat dengan E-R Model. konsep OODB ini adalah Gemstone, Gbase, OODB muncul karena kekomplekan dan Vbase. Pada awal sampai pertengahan dari penyimpanan objek-objek yang akan tahun 1990-an, berkembang produk komersial disimpan didalam database sehingga konsep -15- Majalah Ilmiah INFORMATiKA Vol. 1 No. 2 Mei 2010 dari Relational Database Manejemen Sistem jika dilakukan perubahan dan perawatan tanpa (RDBMS) masih tetap digunakan. Mekanisme mengganggu kinerja komponen sistem yang penyimpanan objek-objek didalam Relational lain, antara pengguna dan pengembang dapat Database Menejemen Sistem ini sering saling berkomunikasi sepanjang pembuatan dikenal dengan istilah ORDBMS (Objek sistem karena sistem yang dibangun biasanya Relational Database Managemen System). dilengkapi dengan bebarapa diagram (usecase diagram, activity diagram, sequence diagram, Kenapa OODB ? class diagram, object diagram, dan lain-lain) Dilihat dari sisi industry, OODB dan visualisasi yang menjelaskan aktifitas- memberikan pelayanan integrasi data dan data aktifitas yang dilakukan, dengan objek sharing. OODB adalah kombinasi terintegrasi oriented lebih mencerminkan bagaimana kita yang baik dari operating sistem, basis data, dapat menguraikan atau memecahkan sistem bahasa pemograman, spreadsheets, word- yang komplek, mendukung semua aplikasi processor, dan expert system intelegensia tidak seperti halnya RDBMS buatan. OODB memungkinkan Referential Object Oriented Database adalah sebuah Sharing, yaitu aplikasi, produk,atau objek sistem database yang menggabungkan semua yang berbagai macam yang bisa dibagi konsep penting dari object oriented tersebut menjadi sub-object. Referential sharing inilah dengan beberapa fitur tambahan antara lain : yang mendukung diterapkannya identitas 1. Unique object identifiers objek dan pewarisan. 2. Persistent object handling Mengapa dibutuhkan Objek Oriented DBMS ? Teknologi ini mengintegrasikan kemampuan basis data (DBMS) dengan Banyak sekali beberapa keuntungan (benefit) yang diberikan kemampuan pemrograman berorientesi objek apabila (OOP). Sebuah Object Oriented Database menggunakan konsep dari objek oriented Management System (ODBMS) membuat database ini ketimbang menggunakan konsep objek sebuah basis data terlihat seperti objek terstruktur, pemrograman keuntungan-keuntungan itu pada beberapa bahasa diantaranya: context sistem yang dibangun pemrograman OOP. Sebuah ODBMS dapat akan memberikan informasi yang jelas, memperluas mengurangi biaya maintenance, komponen pemrograman dengan kemampuan basis data sistem lebih independent artinya lebih mudah seperti data yang persistent secara transparan, -16- kemampuan bahasa Konsep Sistem Manajemen Basis Data Berorientasi Objek (Yusup) kontrol konkurensi, recovery data, query Struktur Object di OODB asosiatif dan berbagai kemampuan basis data yang lain. enkapsulasi data dan kode. Seperti yang telah OODB atau ODBMS dirancang untuk bekerja Paradigma OODB didasarkan pada pada pemrograman sebuah objek tidak terlihat di dunia luar objek berorientasi objek seperti Java, C++ dan lain- tersebut. Secara konsep, semua interaksi lain. Bila kita ingin menyimpan objek pada antara objek dan sistem di luar dirinya program Java atau C++ ke dalam sebuah dilakukan viamessages. Interface antara objek sistem basis data, kita dapat menggunakan dan sistem di luar dirinya inilah yang basis data yang berorientasi kepada objek dinamakan kumpulan dari pesan (set of (ODBMS). messages). ODBMS bahasa diketahui, enkapsulasi menyebabkan isi dari sangat memudahkan programmer terutama yang terbiasa dengan Secara umum, sebuah objek berasosiasi dengan OOP dalam mengolah data dan variabel 1. Sebuah himpunan variable (a set of variables) dalam programnya. Kebanyakan programmer yang mengandung data untuk objek dan basis data menghabiskan cukup banyak waktu variable untuk merepresentasikan variabel atau objek atribut di model E-R. pada programnya ke dalam struktur basis data. yang berkorespondensi dengan 2. Sebuah himpunan pesan (a set of variables); kesinilah objek member respon. Tiap pesan Letak perbedaan utama ODBMS bisa mempunyai 0, 1 atau banyak parameter. dengan sistem basis data konvensional adalah 3. Sebuah himpunan method (a set of variables) ; pada sistem basis data konvensional data masing-masingnya adalah badan kode untuk direpresentasikan ke dalam bentuk tabel-tabel mengimplementasikan dengan kolom yang mewakili kategori dari mengembalikan nilai sebagai respon pesan. data, dan baris yang berisi data itu sendiri. Diilustrasikan dengan mengambil contoh Sedangkan entitas employee dalam dalam ODBMS, data pesan. basis Method data bank. direpresentasikan sebagai sebuah objek, baik Misalnya gaji tahunan karyawan dihitung dalam hal pengaksesannya maupun dalam hal dengan pemodelannya. karyawan. cara yang Manajer berbeda untuk mendapatkan tiap bonus sesuai dengan performa bank, sedangkan teller mendapat bonus berdasarkan jumlah -17- Majalah Ilmiah INFORMATiKA Vol. 1 No. 2 Mei 2010 jam mereka bekerja. Dalam kasus ini, semua maksudnya mereka merespon message yang objek employee berhubungan dengan message sama, menggunakan method yang sama, dan gaji-tahunan, tapi mereka dihitung dengan mempunyai variable untuk nama dan tipe cara yang berbeda. Dengan mengenkapsulasi yang sama. Akan sangat sia-sia jika kita harus informasi mendefinisikan masing-masing objek secara bagaimana tahunan mendapatkan karyawan objekemployee, semua gaji dalam terpisah. Oleh karena itu, kita objek employee bisa menggabungkan objek-objek yang sama ini menampilkan interface yang sama. Karena dalam sebuah class (kelas). Masing-masing hanya interface external yang ditampilkan objek adalah instansiasi dari kelasnya. oleh sebuah objek adalah a set of message yang berhubungan dengan objek tersebut, maka dimungkinkan Kelebihan dan Kelemahan OODB untuk OODB memang memiliki banyak memodifikasi definisi method dan variable keunggulan dibandingkan tanpa mempengaruhi sisa sistem lain. (Relational Database). Namun dewasa ini, Dalam OODB, kita mengekspresikan atribut OODB masih belum dapat menggantikan turunan dari entitas model E-R sebagai read- posisi only message. Read-only message tidak teknologi baru yang sangat terkenal di mempengaruhi nilai dari variable dalam kalangan ahli sistem basis data, namun para objek. Setiap atribut pada entitas HARUS pembuat mempunyai variable dan pasangan messages mengenal teknologi OODB ini masih lebih dari objek yang berhubungan dalam model memilih menggunakan RDB yang sudah biasa OO. Misalnya atribut address dari entitas mereka gunakan. employee bisa direpresentasikan dengan: Para pembuat aplikasi harus menentukan akan RDB. Biarpun aplikasi yang dengan OODB belum RDB memang begitu Variable address memilih OODB atau RDB dalam proyek yang Message get-address akan Message parameter set-address new-address kerjakan. Sebab setiap (dengan permasalahan memerlukan penanganan yang untuk berbeda-beda. Bisa saja dalam suatu kasus, mengupdate address). Object Classes dalam OODB Biasanya, ada banyak objek yang sama dalam basis data. Sama di sini -18- mereka menggunakan OODB adalah pilihan yang terbaik, namun bisa juga sebaliknya. Konsep Sistem Manajemen Basis Data Berorientasi Objek (Yusup) Kelebihan OODB pembuatan 1. dengan mengurangi Desain yang indah aplikasi penggunaan Banyaknya waktu dan tenaga yang bahasa pemrograman dan teknologi terbuang data yang digunakan. Programmer cukup memang menjadi masalah yang umum menguasai konsep OO dan bahasa dalam suatu sistem basis data. Dalam pemrograman OODB tambahan dalam menangani masalah diminimisasi tersebut dengan dapat konsep OO dengan mengenai programmer sebab pada persistensi objek. konsep OO, proses penyimpanan dan pengambilan data konektivitas aplikasi dengan database. Selain itu, berorientasi objek yang dimilikinya dengan sedikit tinggal memfokuskan 3. Kinerja yang tangguh akan menjadi lebih sederhana. Selain Dengan RDB seorang programmer mendapatkan persistensi data, dengan harus menghabiskan waktu dan tenaga OODB mendapatkan untuk memetakan data dengan objek, persistensi keseluruhan obyek database, menguraikan tabel-tabel ke dalam bahkan implemented objek dan sebagainya. Terkadang hal behaviour-nya. Kita juga dapat dengan ini mencapai sepertiga atau bahkan mudah memanggil suatu method dari separuh dari program itu sendiri. Hal objek tertentu pada database di server ini sehingga distribusi aplikasinya lebih kinerja menjadi lambat karena harus mudah. memetakan objek tersebut, belum lagi kita juga termasuk 2. Penyederhanaan pembuatan akan menyebabkan bila harus melaksanakan query-query yang kompleks. Masalah tersebut aplikasi Tanpa tentunya disadari, terkadang suatu tidak dijumpai dalam OODB, karena proyek dapat melambung biayanya dalam karena seperti data dengan objek nya secara langsung penggunaan beberapa tool, bahasa sehingga kinerja program akan lebih program dan lingkungan dari aplikasi tinggi. Lebih dari itu, pada beberapa yang berbeda-beda. Belum lagi biaya produk pelatihan dimungkinkan adanya client caching. faktor dan teknis lain-lain. Dengan OODB kita dapat menyederhanakan OODB, program ODBMS Bayangkan kecepatan mengakses bahkan yang dapat -19- Majalah Ilmiah INFORMATiKA Vol. 1 No. 2 Mei 2010 dihasilkan bila program hanya perlu pengaksesannya. Oleh karena itu, mengakses cache dari database yang dibutuhkan sudah ada di client. dalam memilih DBMS yang akan komitmen digunakan, sekali yang kuat bermigrasi ke OODB, akan sulit untuk kembali ke Kelemahan OODB RDB. 1. Tight coupling Coupling berarti keterkaitan antara 4. Kebutuhan ketrampilan aplikasi dan database. Tight coupling Karena OODB masih tergolong baru berarti keterkaitan yang kuat antara dan aplikasi penggunaannya, dan database sehingga masih relatif jarang cukup sulit aplikasi dan database sulit dipisahkan. menemukan orang yang memiliki Sebenarnya pemahaman OODB bila dibandingkan tight coupling dapat menyederhanakan program dan dengan desainnya, hal juga pemahaman RDB. Selain itu, untuk namun ini orang yang memiliki dapat menyebabkan hilangnya batasan memahami antara aplikasi dan database, juga akan pelatihan menimbulkan masalah baru bila akan banyak perbedaan pendekatan dengan migrasi RDB. ke OODB lainnya atau OODB, khusus diperlukan sebab terdapat kembali ke RDB. 2. Kurangnya dukungan platform Pada dasarnya OODB untuk dapat berintegrasi semua dengan sangat diperlukan dalam OODB. Masing-masing OODB dapat memiliki berorientasi objek, namun sampai cara pemanggilan query yang berbeda- sekarang kebanyakan OODBMS beda. Selain menggunakan object ID- bahasa nya saja, pengaksesan suatu data dapat mendukung pemrograman C++ dan Java saja. 3. Sulit bermigrasi Cara penyimpanan dan pengambilan -20- Kemampuan logika yang mendalam pemrograman hanya bahasa diterapkan 5. Query yang kompleks menggunakan range, pola, dan berbagai kriteria lain yang mungkin kelihatan tidak berhubungan. data dalam OODB sangat berbeda Aplikasi dengan RDB. Begitu juga dengan cara OODBMS: yang cocok menggunakan Konsep Sistem Manajemen Basis Data Berorientasi Objek (Yusup) Aplikasi perancangan rekayasa. aplikasi lainnya OODB mungkin akan Aplikasi multimedia menjadi hambatan serius. Contohnya Aplikasi berbasis pengetahuan OODB tidak cocok digunakan untuk Aplikasi dengan kebutuhan tersebar menyimpan data transaksi yang besar dan kongruen seperti data keuangan, kepegawaian Aplikasi yang memerlukan fitur-fitur dan data transaksi bank. OODB bagus lanjut digunakan menggunakan tipe data Perangkat elektronik dengan multimedia dan data yang sifatnya kompleks. perangkat lunak tempelan. Kesimpulan: Referensi : 1. 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 Orientasi Objek. 2. Melihat masih kekurangan cukup OODB ini, baiknya banyaknya sebelum http://en.wikipedia.org/wiki/Object_database mempertimbangkan kekurangan dan juga mempertimbangkan faktor kebutuhan dan ketersediaan aplikasi serta platform. 3. Pada beberapa aplikasi Hariyanto, Bambang. 2007. Esensi-Esensi Bahasa Pemrograman Java. Penerbit Informatika. http://wargabasdat2009.wordpress.com/2009/ 06/11/eksplorasi-object-oriented-database/ memutuskan untuk memakai ODBMS ada Hariyanto, Bambang. 2004. Rekayasa Sisem Berorientasi Objek. Penerbit Informatika, Bandung. http://www.geocities.com/a_alaydrus/oodb/in dex.html http://en.wikipedia.org/wiki/Objectrelational_database http://www.cs.pitt.edu/~chang/156/19oodb.ht ml tertentu penggunaan OODB mungkin sangat tepat. Sebaliknya untuk beberapa -21-