Revisi ke 1
MEI 2013
Disusun oleh :
ALI TARMUJI
Disusun oleh :
ALI TARMUJI
i
SEJARAH REVISI PETUNJUK PRAKTIKUM
ii
IDENTITAS PRAKTIKAN
Nama : .....................................................................
NIM : .......................
Alamat :
..................................................................
...........
.....................................................................
........
Tel./HP : ......................................................
Email :
..................................................................
.....
Web/Blog :
..................................................................
...........
Kelas/Hari/Jam Teori : .........../...................../.....................
Kelas/Hari/Jam Praktikum : ........../...................../.......................
Yogyakarta, ..............................
Mengetahui Asisten Lab, Praktikan,
........................................... ................................................
iii
Daftar Isi
iv
Kata Pengantar
Penyusun
v
Object-Relational Database
Dengan Object Database Persistent
Pertemuan ke :I
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : 1. Mahasiswa mampu mengenal salah satu pengelolaan database
bertipe objek tingkat awal
2. Mahasiswa mampu menggunakan salah satu tools untuk
menerapkan konsep objek ke dalam pengelolaan database,
dalam hal ini ORDB
3. Mahasiswa mampu menggunakan Object Database Persistent
dalam pemrogaman
A. Teori Pendukung
1. Pengertian OODB dan Object Persistent
Persistent merupakan Sistem Object Oriented Database sederhana untuk
Java/.Net. Object Oriented di sini maksudnya bahwa Persistent dapat melakukan
store/load object secara langsung. Sasaran dari Persistent adalah menyediakan bagi
programmer suatu mekanisme yang sesuai dan powerful terhadap data yang dalam
jumlah besar. Beberapa asumsi dasar yang menentukan desain dari Persistent, antara
lain:
a. Object persistent dapat diakses dalam cara yang sama sebagai object sementara
b. Engine database dapat lebih mudah dikelola secara efisien untuk data yang
banyak dan dapat sesuai di memori utama
c. tidak perlu preprocessor yang khusus, compiler, virtual machine atau tools
lainnya yang seharusnya diperlukan pada database dan untuk mengembangkan
aplikasi yang menggunakannya.
Jika aplikasi menggunakan suatu database Persistent diakhiri, database tersebut perlu
ditutup menggunakan method Storage.close()
// get instance of the storage
Storage db = StorageFactory.getInstance().createStorage();
db.open("test.dbs", pagePoolSize); // Open the database
// do something with the database
db.close(); // ... and close it
3. Root Object
Setelah instance storage dibuka, database dapat diakses object persistentnya.
Ketika aplikasi mengakses object secara normal, aplikasi menggunakan referensi agar
object tetap berada pada variable program atau dalam field-field dari object lain. Tetapi
jika membuka suatu database yang terdiri dari object persistent, aplikasi tidak akan
mereferensi ke object tersebut.
Suatu mekanisme diperlukan untuk mendapatkan referensi dan Persistent
menyediakannya untuk dapat digunakan yang disebut root object. Suatu storage hanya
memiliki satu root object. Untuk membuat root object digunakan method
Storage.getRoot.
1. MyRootClass root = (MyRootClass)db.getRoot();// get storage root
2. if (root == null) {
3. // Root is not yet defined: storage is not initialized
4. root = new MyRootClass(db); // create root object
5. db.setRoot(root); // register root object
6. }
b. Class main.java
1 package coba01;
2 import java.io.File;
3 import org.garret.perst.*;
4 import java.util.*;
5 public class Main {
6 public static void main(String[] args) {
7 new File("Barang.dbs").delete();
8 Storage db = StorageFactory.getInstance().createStorage();
9 db.open("Barang.dbs");
10 IPersistentSet root = (IPersistentSet)db.getRoot();
11 if (root == null) { root = db.createSet();db.setRoot(root);}
12 root.add(new Barang("M33","Mie Goreng Ayam","Mie",1200,"Fastfood"));
13 root.add(new Barang("S03","Sun Silk","Shampo",6500,"UniClean"));
14 root.add(new Barang("M11","Mie Goreng Ayam","Mie",1000,"FlyFood"));
15 root.add(new Barang("K31","Kopi cap API","Kopi",2700,"Obor"));
16 root.add(new Barang("T01","Teh Aroma Wangi","Teh",4500,"UniClean"));
17 root.add(new Barang("M02","Soto Mie","Mie",1100,"Fastfood"));
18 root.add(new Barang("M51","Mie Kari","Mie",1300,"FlyFood"));
19 root.add(new Barang("K21","Kopi cap Wangi","Kopi",7500,"Uniclean"));
20 root.add(new Barang("T05","Teh T-Melati","Teh",5500,"Obor"));
21 root.add(new Barang("M82","Mie Bakso","Mie",1200,"Fastfood"));
22 System.out.println("Object sudah persistent dalam Database");
23 Iterator iterator = root.iterator();
24 while (iterator.hasNext()) { System.out.println(iterator.next());}
25 db.close();}}
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
1. Lakukan eksplorasi lebih jauh (mendalam) tentang kelebihan dan kekurangan Obect
Database Persistent dibanding dengan OODBMS lain dalam hal pengelolaan database
yang berbasis ORDB.
2. Berikan ulasan mengenai Object Database Persistent dalam hal pemakaian untuk
pembuatan project baru dibanding dengan OODBMS lain.
3. Buatlah aplikasi kecil yang mampu memanfaatkan Object Database Persistente dan
catat keberhasilannya hingga data tertampilkan.
<>
Jawaban Postest
D. Referensi
1. Irwanto, Djon., 2007, Membangun Object Oriented Software dengan Java dan Object
Database, PT Elex Media Komputindo, Jakarta
2. McObject, 2008, Perst TM Introduction and Tutorial.
A. Teori Pendukung
Db4O (Database for Object) merupakan OODBMS (Object Oriented Database
Management System) yang hadir dalam 2 versi yaitu versi Komersial dan GPL, serta
berjalan di dua platform Java dan dotNet. Keunikan dari Db4o adalah Db4o sebagai
native object database sehingga sangat ideal untuk di-embed ke dalam equipment atau
device, baik mobile, desktop, dan server platform.
Footprint Db4o dapat dibilang cukup kecil sehingga membuat Db4o lebih
efektif untuk di-embed ke dalam device yang memiliki kapasitas memori yang kecil.
Walaupun memiliki footprint yang kecil, class library Db4o menyediakan fitur-fitur
yang lengkap. Seperti Concurrency control, replikasi data, dan native query, serta
fasilitas lainnya.
Sistem Db4o tidak banyak membutuhkan administrasi sehingga db4o cocok jika di-
embed ke dalam aplikasi.
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/
tugas praktikum:
a. Lakukan eksplorasi lebih jauh (mendalam) tentang kelebihan dan kekurangan
DB4O dibanding dengan OODBMS lain dalam hal pengelolaan database.
b. Berikan ulasan mengenai DB4O dalam hal pemakaian untuk pembuatan project
baru dibanding dengan OODBMS lain.
c. Buatlah aplikasi kecil yang mampu memanfaatkan DB4O dan catat
keberhasilannya hingga data.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
Pertemuan ke : III
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : 1. Mahasiswa mampu memahami konsep relasi association tipe
one-to-one yang ada di DB4O.
2. Mahasiswa mampu menggunakan konsep relasi association tipe
one-to-one di DB4O dalam program sederhana.
3. Mahasiswa mampu engeksplorasi fitur-fitur DB4O dalam
penanganan database khususnya relasi association tipe one-to-
one.
4. Mahasiswa mampu menggunakan DB4O dalam pemrogaman
database sederhana khususnya relasi association tipe one-to-
one.
A. Teori Pendukung
Hubungan yang terjadi antara object yang satu dengan yang lainnya disebut
relationship. Relationship antarobject terdiri atas 3, yaitu:
a. Association asosiasi
b. Inheritance (isa) warisan dari
c. Aggregation (part-of) bagian dari
Unidirectional Association.
Misalkan Relationship antara Suami dan Istri seperti berikut:
Terlihat bahwa Seorang suami
hanya mempunyai seorang Istri .
Dalam hubungan struktur ini,
seorang Suami hanya dapat
mengetahui Istrinya, namun
tidak untuk sebaliknya.
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
a. Carilah perbedaan relasi one to one di jenis association dalam DB4O dengan ODBMS
lain.
b. Buat aplikasi sederhana menggunakan konsep association one-to-one.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
Pertemuan ke : IV
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : 1. Mahasiswa mampu memahami konsep relasi association tipe
one-to-many yang ada di DB4O.
2. Mahasiswa mampu me enggunakan konsep relasi association
tipe one-to-many di DB4O dalam program sederhana.
3. Mahasiswa mampu mengeksplorasi fitur-fitur DB4O dalam
penanganan database khususnya relasi association tipe one-to-
many.
4. Mahasiswa mampu menggunakan DB4O dalam pemrogaman
database khususnya relasi association tipe one-to-many.
A. Teori Pendukung
One-to-Many Relationship
One-to-Many Relationship
merupakan bentuk hubungan
asosiasi antar object yang sifatnya
dua arah. One-to-Many Relationship
disebut juga dengan Bidirectional
association. Misalkan Relationship
antara Dokter dan Paramedis
seperti berikut:
Pada contoh di atas terlihat bahwa seorang Dokter memiliki hubungan Bidirectional
Association dengan Paramedis. Hubungan object yang memiliki bidirectional association
direalisasikan dengan korespondensi attribute dari object key yang berhubungan. Selain
korespondensi attribute, kedua object harus memiliki akses menggunakan method ke masing-
masing object.
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
c. Carilah perbedaan relasi one-to-one dengan one-to-many di jenis association dalam
DB4O.
d. Carilah perbedaan relasi one-to-many di jenis association dalam DB4O dengan ODBMS
lain.
e. Buat aplikasi sederhana menggunakan konsep association one-to-many.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
Pertemuan ke :V
Alokasi Waktu : 1,5 Jam
Kompetensi Dasar : 1. Mahasiswa mampu emahami konsep relasi association tipe
many-to-many yang ada di DB4O.
2. Mahasiswa mampu enggunakan konsep relasi association tipe
many-to-many di DB4O dalam program sederhana.
3. Mahasiswa mampu m engeksplorasi fitur-fitur DB4O dalam
penanganan database khususnya relasi association tipe many-
to-many.
4. Mahasiswa mampu menggunakan DB4O dalam pemrogaman
database khususnya relasi association tipe many-to-many.
Indikator : 1. Mengeksplorasi Fitur DB4O untuk pengelolaan database
bertipe association many-to-many.
2. Menggunakan DB4O untuk membuat relasi association tipe
many-to-many dalam database sederhana.
A. Teori Pendukung
Misalkan Relationship antara Buku dan Anggota pada peminjaman buku di
perpustakaan seperti berikut:
Pada Kasus perpustakaan, dengan jelas
dapat kita memodelkan hubungan
asosiasi antara Buku dengan Anggota, di
mana banyak anggota dapat meminjam
banyak buku.
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
1. Carilah perbedaan relasi one-to-one, one-to-many, dan many-to-many di jenis
association dalam DB4O.
2. Carilah perbedaan relasi many-to-many di jenis association dalam DB4O dengan
ODBMS lain.
3. Buat aplikasi sederhana menggunakan konsep association many-to-many.
<>
Jawaban Postest
D. Referensi
a. http://www.db4o.com
b. http://www.odbmg.com
A. Teori Pendukung
Suatu object dapat memiliki bagian-bagian dari object-object lain. Contoh Mobil dapat
memiliki bagian-bagian Engine, Body, Transmission dan Wheels. Di dalam UML, aggregation
terdiri dari dua jenis, yaitu :
aggregation yang memiliki ownership yang kuat (biasa disebut juga Composition)
aggregation yang memiliki ownership yang lemah (Aggregation).
Contoh Hubungan Aggregation dan Composition yang dibedakan dengan notasi.
Sebagai contoh
hubungan
Composition dari
Computer, yang
memiliki bagian-
bagian Processor,
RAM dan
HardDisk.
B. Langkah
Praktikum
(sesuaikan
dengan mata
praktikumnya) :
1. Mengadakan Pretest <alokasi waktu maks 15 menit>
Berikut beberapa pertanyaan dan kasus yang dapat dijadikan sebagai pemahaman awal (pre
test) sebelum praktikum:
a. Apa yang dimaksud agregation dalam konsep object?
b. Sebutkan contoh dalam dunia nyata agregation.
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
a. Carilah perbedaan relasi aggregation dengan inheritance dalam DB4O.
b. Buat aplikasi sederhana menggunakan konsep relasi agregation.
<>
Jawaban Postest
D. Referensi
c. http://www.db4o.com
d. http://www.odbmg.com
A. Teori Pendukung
Inheritance (Pewarisan): suatu
hubungan antar class di mana
sebuah class diturunkan
(inherits) dari class lainnya.
Class hasil turunan disebut
dengan derived class atau
subclass, sedangkan class induk
disebut dengan base class atau
superclass.
Devinisi lain, Pewarisan adalah
hubungan hirarkis antar class.
Class dapat diturunkan dari
class lain dan mewarisi semua
atribut dan methoda class asalnya dan menambahkan fungsionalitas baru. Kebalikan dari
pewarisan adalah generalisasi.
Multiinheritance: inheritance yang tidak hanya satu tingkat hirarki saja tetapi bisa lebih dari
satu tingkatan, seperti class Hewan diturunkan lagi menjadi class Anjing, untuk class Anjing
didefinisikan lagi menjadi class Doberman sebagai subclass dari Anjing.
Manfaat Inheritance
Inheritance memungkinkan untuk menciptakan sebuah class dari class yang sudah ada.
Ketika sebuah class diturunkan dari class yang sudah ada maka class tersebut mewarisi
semua method dan field dari class orangtuanya.
Class anak juga mewarisi bentuk dari class orang tua. Artinya objek dari class anak dapat
dikenali sebagai objek dari class orang tua.
Hasil output:
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
1. Carilah perbedaan relasi association dengan inheritance dalam DB4O.
2. Buat aplikasi sederhana menggunakan konsep relasi inheritance.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
A. Teori Pendukung
Sorting (pengurutan) merupakan teknik dasar di dalam pengelolaan database
yang biasanya disertakan sebagai fasilitas dalam pengelolaan data. Sorting erat
kaitannya dengan index atau bagian yang menjadi dasar dalam pengurutan. Dan ada
dua jenis tipe sorting yaitu sorting secara ascending (dari terkecil) dan descending (dari
yang besar). Biasanya dalam pemrograman sudah disediakan suatu subrutin untuk
menangani hal itu. Dan termasuk di DBMS juga ada yang telah memberikan fasilitas
serupa. Sortir pada Object Db4o dapat menggunakan Object Query SODA API yang
telah disediakan oleh Db4o. Adapun penulisannya sebagai berikut:
1. Sort secara Ascending
a. Query query=db.query();
b. query.constrain(NamaClass.class);
c. query.descend("NamaAtribut").orderAscending();
d. ObjectSet result=query.execute();
2. Sort secara Descending
a. Query query=db.query();
b. query.constrain(NamaClass.class);
c. query.descend("NamaAtribut").orderDescending();
d. ObjectSet result=query.execute();
B. Langkah Praktikum (sesuaikan dengan mata praktikumnya) :
1. Mengadakan Pretest <alokasi waktu maks 15 menit>
Berikut beberapa pertanyaan dan kasus yang dapat dijadikan sebagai pemahaman awal
(pre test) sebelum praktikum:
a. Apa yang dimaksud sorting/pengurutan data?
b. Apa maksud dari sorting berjenis ascending?
c. Apa maksud dari sorting berjenis descending?
d. Sebutkan contoh dalam dunia nyata penggunaan sorting.
f. Setelah mengubah nama setiap komponen maka sekarang saatnya masuk pada
proses Coding.
g. Di bawah package ketikkan perintah import berikut untuk menggunakan object
database Db4o dan unit-unit lainnya.
1. package appbarang
2. import com.db4o.*
3. import com.db4o.query.*
4. import java.io.File
h. Buatlah sebuah procedure untuk menginsert data ke dalam object database, kode
programmnya sebagai berikut:
1. public static void InsertData(){
2. new File("Barang.yap").delete();
3. ObjectContainer db = Db4o.openFile("Barang.yap");
4. Barang barang1 = new Barang("M33","Mie Goreng Ayam","Mie",1200,"Fastfood");
Barang barang2 = new Barang("S03","Sun Silk","Shampo",6500,"UniClean");
5. Barang barang3 = new Barang("M11","Mie Goreng Ayam","Mie",1000,"FlyFood");
Barang barang4 = new Barang("K31","Kopi cap API","Kopi",2700,"Obor");
6. Barang barang5 = new Barang("T01","Teh Aroma Wangi","Teh",4500,"UniClean");
7. Barang barang6 = new Barang("M02","Soto Mie","Mie",1100,"Fastfood");
8. Barang barang7 = new Barang("M51","Mie Kari","Mie",1300,"FlyFood");
9. Barang barang8 = new Barang("K21","Kopi cap Wangi","Kopi",7500,"Uniclean");
10. Barang barang9 = new Barang("T05","Teh T-Melati","Teh",5500,"Obor");
11. Barang barang10 = new Barang("M82","Mie Bakso","Mie",1200,"Fastfood");
Petunjuk Praktikum BDBO 31
12. db.set(barang1);db.set(barang2);
13. db.set(barang3);db.set(barang4);
14. db.set(barang5);db.set(barang6);
15. db.set(barang7);db.set(barang8);
16. db.set(barang9);db.set(barang10);
17. db.close();System.out.println("Data Barang
18. sudah tersimpan pada Object Database");}
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
a. Carilah perbedaan fasilitas sorting di DBMS biasa dengan OODBMS dalam hal ini
DB4O.
b. Buat aplikasi sederhana dengan mengembangkan beberapa listing di atas menjadi
aplikasi yang sempurna dan lengkap.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
A. Teori Pendukung
Db4O menyediakan tiga jenis Query yang dipakai untuk melakukan proses retrieving data
object dari database. Ketiga jenis object query itu antara lain:
Query by Example (QBE)
Native Queries (NQ)
SODA Query API (SODA)
2. Menampilkan semua kolom dari Tabel tersebut yang jenis barangnya berupa Mie.
SQL RDBMS OQL ODBMS
SELECT * Query Qry = db.query();Qry.constrain(Barang.class);
FROM BARANG Qry.descend("Jenis").constrain("Mie");
WHERE Jenis = Mie; while (Hasil.hasNext()){System.out.println(Hasil.next());}
Output:
M82/Mie Bakso/Mie/1200.0/Fastfood
M51/Mie Kari/Mie/1300.0/FlyFood
M02/Soto Mie/Mie/1100.0/Fastfood
M11/Mie Goreng Ayam/Mie/1000.0/FlyFood
M33/Mie Goreng Ayam/Mie/1200.0/Fastfood
3. Menampilkan kode barang dan nama barang dari Tabel tersebut yang jenis barangnya
selain Mie.
SQL RDBMS OQL ODBMS
SELECT KodeBarang, Query Qry = db.query();Qry.constrain(Barang.class);
NamaBarang Qry.descend("Jenis").constrain("Mie").not();
FROM BARANG while (Hasil.hasNext()){ Barang brg = (Barang)Hasil.next();
WHERE NOT (Jenis = Mie); System.out.println(brg.getKodeBarang()+"/"+
brg.getNamaBarang());}
Output:
T05/Teh T-Melati
K21/Kopi cap Wangi
T01/Teh Aroma Wangi
K31/Kopi cap API
S03/Sun Silk
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
a. Carilah perbedaan fasilitas query di RDBMS dengan ODBMS dalam hal ini DB4O.
b. Buat aplikasi sederhana dengan mengembangkan beberapa listing di atas untuk
beberapa kasus berikut:
a) Menampilkan nama-nama barang beserta harga satuannya untuk jenis kopi atau
teh.
b) Menampilkan nama-nama barang beserta harga satuannya yang jenis barangnya
Mie dan disuplai oleh Fastfood
c) Menampilkan kode barang dan nama barang jenis Teh yang harga satuannya
antara 1000 sampai dengan 5000.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com
A. Teori Pendukung
Native query merupakan
pengembangan dari Object Query
sebelumnya. Di mana object query
sebelumnya memiliki banyak
kekurangan di antaranya pengecekan
kesalahan dan keamanan dari query
yang belum dihandel.
Dimisalkan ada relationship antar object, yaitu:
Diasumsikan bahwa seorang Person memiliki suatu Account di suatu bank. Maka
relationship yang akan dibuat akan membentuk dua class dengan attribute seperti
berikut:
Class Account Class Person
public class Account { public class Person {
private double amount; private Account account;
private double credit;} private String name;
private int age;}
class Account
1. package bank;
2. public class Account { private double Amount; private double Credit;
3. public Account(double amount, double credit){ this.Amount=amount;
4. this.Credit = credit;}
5. public double getAmount(){return Amount;}
6. public double getCredit(){return Credit;}
7. public String toString(){return Amount+"/"+Credit;}
C. Evaluasi
1. Soal Postest
Beberapa kasus/pertanyaan yang dapat digunakan sebagai acuan untuk pre test/ tugas
praktikum:
Carilah perbedaan fasilitas query di RDBMS dengan ODBMS dalam hal ini DB4O.
Buat aplikasi sederhana dengan mengembangkan beberapa listing di atas untuk beberapa
kasus berikut:
d) Menampilkan nama serta jumlah amount atau credit yang kurang dari 100.
e) Menampilkan nama yang umurnya antara 40-50 dan creditnya diatas 1000
f) Menampilkan nama serta umurnya yang Amount sama dengan nasabah Heinz.
<>
Jawaban Postest
D. Referensi
1. http://www.db4o.com
2. http://www.odbmg.com