Pengertian Object Perst
Perst merupakan Sistem Object Oriented Database sederhana untuk Java/.Net. Object Oriented disini maksudnya bahwa Perst dapat melakukan store/load object secara langsung. Sasaran dari Perst adalah menyediakan bagi programmer suatu mekanisme yang sesuai dan powerful terhadap data yang dalam jumlah besar. Beberapa asumsi dasar yang menentukan desain dari Perst, antara lain:
-
Object persistent dapat diakses dalam cara yang sama sebagai object sementara
-
Engine database dapat lebih mudah dikelola secara efisien untuk data yang banyak dan dapat sesuai di memori utama
-
tidak perlu preprocessor yang khusus, compiler, virtual machine atau tools lainnya yang seharusnya diperlukan pada database dan untuk mengembangkan aplikasi yang menggunakannya.
Menyimpan Object ke dalam database
Sasaran utama dari Perst adalah memandu programmer untuk bekerja dengan object persistent dengan cara yang dimungkinkan sama dengan object sementara secara normal. Bagaimanapun, persistensi memiliki aspek yang tidak dapat disembunyikan bagi programmer. Sebagai contoh, suatu penyimpanan Perst dimana object-object akan disimpan perlu dispesifikasikan, dan konsistensi data perlu disediakan. Dengan Perst, task-task tersebut dilakukan oleh class Storage. Class ini merupakan class abstract dan programmer wajib menggunakan class storageFactory untuk membuat instance storage.
1 2 |
// get instance of the storage
Storage db = StorageFactory.getInstance().createStorage();
|
Jika instance storage sudah dibuat, maka storage dapat di-Open:
// open the database
db.open(“test.dbs”, pagePoolSize);
Dapat dimungkinkan penggunaan Perst sebagai memori internal database, di mana semua data disimpan dan dikelola pada memori utama. Hal ini memerlukan penggunaan class stub NullFile dan menspesifikasikan INFINITE_PAGE_POOL sebagai pagepoolsize.
db.open(new NullFile(),Storage.INFINITE_PAGE_POOL);
Jika aplikasi menggunakan suatu database Perst 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
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 embuka suatu database yang terdiri dari object persistent, aplikasi tidak akan mereferensi ke object tersebut.
Suatu mekanisme diperlukan untuk mendapatkan referensi dan Perst menyediakannya untuk dapat digunakan yang disebut root object. Suatu storage hanya memiliki satu root object. Untuk membuat root object digunakan method Storage.getRoot.
MyRootClass root = (MyRootClass)db.getRoot();// get storage root
if (root == null) {
// Root is not yet defined: storage is not initialized
root = new MyRootClass(db); // create root object
db.setRoot(root); // register root object
}
Contoh Program menggunakan Object Database Perst
Class Barang.java
package coba01;
import org.garret.perst.*;
public class Barang extends Persistent {
String KodeBarang;
String NamaBarang;
String Jenis;
double HargaSatuan;
String Supplier;
public Barang(String kd,String nm, String jns, double hrg, String sup){
this.KodeBarang = kd;
this.NamaBarang = nm;
this.Jenis =jns;
this.HargaSatuan =hrg;
this.Supplier = sup;
}
public String getKodeBarang(){
return KodeBarang;
}
public String getNamaBarang(){
return NamaBarang;
}
public String getJenis(){
return Jenis;
}
public double getHarga(){
return HargaSatuan;
}
public String getSupplier(){
return Supplier;
}
public String toString(){
return KodeBarang+”/”+NamaBarang+”/”+Jenis+”/”+
String.valueOf(HargaSatuan)+”/”+Supplier;
}
}
Class Main.java
package coba01;
import java.io.File;
import org.garret.perst.*;
import java.util.*;
/**
*
* @author Team_dakoop
*/
public class Main {
public static void main(String[] args) {
new File(“Barang.dbs”).delete();
Storage db = StorageFactory.getInstance().createStorage();
db.open(“Barang.dbs”);
IPersistentSet root = (IPersistentSet)db.getRoot();
if (root == null) {
root = db.createSet();
db.setRoot(root);
}
root.add(new Barang(“M33”,
“Mie Goreng Ayam”,”Mie”,1200,”Fastfood”));
root.add(new Barang(“S03”,
“Sun Silk”,”Shampo”,6500,”UniClean”));
root.add(new Barang(“M11”,
“Mie Goreng Ayam”,”Mie”,1000,”FlyFood”));
root.add(new Barang(“K31”,
“Kopi cap API”,”Kopi”,2700,”Obor”));
root.add(new Barang(“T01”,
“Teh Aroma Wangi”,”Teh”,4500,”UniClean”));
root.add(new Barang(“M02”,
“Soto Mie”,”Mie”,1100,”Fastfood”));
root.add(new Barang(“M51”,
“Mie Kari”,”Mie”,1300,”FlyFood”));
root.add(new Barang(“K21”,
“Kopi cap Wangi”,”Kopi”,7500,”Uniclean”));
root.add(new Barang(“T05”,
“Teh T-Melati”,”Teh”,5500,”Obor”));
root.add(new Barang(“M82”,
“Mie Bakso”,”Mie”,1200,”Fastfood”));
System.out.println(“Object sudah persistent dalam Database”);
Iterator iterator = root.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
db.close();
}
}
Hasil :
Object sudah persistent dalam Database
M33/Mie Goreng Ayam/Mie/1200.0/Fastfood
S03/Sun Silk/Shampo/6500.0/UniClean
M11/Mie Goreng Ayam/Mie/1000.0/FlyFood
K31/Kopi cap API/Kopi/2700.0/Obor
T01/Teh Aroma Wangi/Teh/4500.0/UniClean
M02/Soto Mie/Mie/1100.0/Fastfood
M51/Mie Kari/Mie/1300.0/FlyFood
K21/Kopi cap Wangi/Kopi/7500.0/Uniclean
T05/Teh T-Melati/Teh/5500.0/Obor
M82/Mie Bakso/Mie/1200.0/Fastfood
Resources:
Download Perst from McObject’s Web site : www.mcobject.com/perst.
Referensi
Perst TM Introduction and Tutorial, McObject, 2008
Comments are closed.