Selasa, 28 Oktober 2008

Membuat Program Database dengan Netbeans IDE 5.5.1 dan Ms.Access

Kita akan membuat suatu program database menggunakan Netbeans IDE 5.5.1 dan Database Ms.Access. Mungkin Software Netbeans merupakan hal yang baru buat kita. YA memang sebenarnya program Netbeans ini merupakan software yang digunakan untuk membuat suatu program yang berbasis JAVA. Dulu kita masih menggunakan tampilan putih NOTEPAD untuk membuat aplikasi JAVA. Akan tetapi sejalan perkembangan NOTEPAD perlahan mulai digantikan oleh TEXTPAD karena fasilitas yang disediakan oleh TEXTPAD ini terkesan lebih lengkap dan informatif dibanding dengan NOTEPAD. Akan tetapi ketika kita melirik kebelakang ternyata TEXTPAD punya kekurangan lagi, yaitu kita masih harus mengetik script untuk membuat komponen program. Dan ternyata kekurangan tersebut ditutupi oleh adanya Netbeans ini. Yaitu menyediakan komponen komponen tanpa harus mengetikkan script untuk membuatnya layaknya Bahasa Pemrograman GUI lainnya. Langsung aja kita buat project baru kita :

B erikut tampilan program yang akan kita buat :

Langkah- Langkah Pengerjaan :
  1. Buat database Koperasi dan tabel Anggota dengan ketentuan sebagai berikut :

Noang - Text – 5

Nama - Text - 25

Alamat - Text - 30

Jkel - Yes/no

Agama - Text - 1

NoKTP - Text - 15

NoTelp - Text – 12

Simpanan - Number – LongInt


  1. Buat desain form seperti yang terlihat pada gambar. Pada form terdapat komponen JTextField, JComboBox, JRadioButton, JPanel, JButton.

  2. Ganti nama komponen yang sudah kita masukkan terutama untuk komponen JTextField, JComboBox, JButton, JRadioButton dengan cara dan ketentuan sebagai berikut :


  1. Pada project kali ini penulis menggunakan ketentuan nama komponen sebagai berikut untuk memudahkan pemahaman dalam pembuatan kode program.

Komponen Perubahan Nama Komponen :


JTextField No Anggota — no

JTextField Nama — nama

JTextField Alamat — alamat

JComboBox Agama — agama

JRadioButton Jkel — RPria dan RWanita

JTextField No KTP — noktp

JTextField No. Telp — notelp

JTextField Simpanan — simpanan

JButton Simpan — bsimpan

JButton Data Baru — bbaru

JButton Keluar — bkeluar


  1. Untuk mengisi ComboBox agama anda klik pada komponen ComboBox agama kemudian pada properties cari model, klik maka akan tampil kotak dialog sebagai berikut :


  1. Tambahkan komponen buttongroup pada form perhatikan potongan gambar berikut :


  1. Drag ke form anda. Akan tetapi anda tidak akan bisa melihat wujudnya.hehehehehe Tapi untuk mengubah nama komponennya maka silahkan anda masuk ke navigator sebelah kiri monitor anda. Ganti nama komponennya dengan nama “bgjkel”



  1. S etelah memasukkan komponen ButtonGroup dan mengubah namanya maka klik pada komponen RPria dan RWanita kemudian pada properties cari button group kemudian ubah menjadi bgjkel.

  1. Setelah anda mengubah nama setiap komponen maka sekarang saatnya masuk pada proses Coding.



Kode Program :

- Di bawah Tab nama project anda klik source :

Dibawah package anda ketikkan perintah import berikut untuk mengambil perintah-perintah sql.

import java.sql;

- Kemudian deklarasi variabel koneksi, resultset, statement dan variabel yang lain yang diperlukan

Di bawah public class ketikkan variabel berikut :

//deklarasi variabel global
Connection Con;
ResultSet RsAng;
Statement StatAng;

//variabel untuk agama
String sagm = “1″;
//variabel untuk jenis kelamin
Boolean bjkel = true;
//variabel global jika data ditemukan
Boolean ada = false;

- Kemudian dibawah public nama_project (dibawah pengenalan variabel) ketikkan perintah koneksi database dan tabel berikut :

//koneksi
try
{
String fdata = “z:\\java1\\NetBeans\\Koperasi.mdb”;
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”);

//koneksi langsung ke database tanpa dsn
Con= DriverManager.getConnection(”jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” + fdata);

//menunjukkan proses pencarian resultset bisa di update
StatAng= Con.createStatement( RsAng.TYPE_SCROLL_SENSITIVE, RsAng.CONCUR_UPDATABLE );
RsAng = StatAng.executeQuery(”Select* from Anggota”);

}
catch(Exception e)
{
System.err.println(”Koneksi gagal !” + e.getMessage()); } //getMessage untuk menampilkan pesan

- Setelah proses koneksi berhasil maka saatnya kita masuk ke tombol simpan. Ketikkan kode program berikut :

private void bsimpanActionPerformed(java.awt.event.ActionEvent evt) {

// Untuk simpan data tambahkan code berikut :

try

{

RsAng.updateString(”Noang”, no.getText());

RsAng.updateString(”Nama”, nama.getText());

RsAng.updateString(”Alamat”, alamat.getText());

RsAng.updateString(”Agama”, sagm);

RsAng.updateBoolean(”Jkel”, bjkel);

RsAng.updateString(”NoKTP”, noktp.getText());

RsAng.updateString(”NoTelp”, notelp.getText());

RsAng.updateDouble(”Simpanan”, Double.parseDouble(simpanan.getText()));

if(ada)

{

//mengedit data yang sudah ada

RsAng.updateRow();

javax.swing.JOptionPane.showMessageDialog(null, “Data Telah Diedit !”);

}

else

//menyisipkan record baru

RsAng.insertRow();

javax.swing.JOptionPane.showMessageDialog(null, “Data Telah Tersimpan !”);

}

catch(Exception e)

{

javax.swing.JOptionPane.showMessageDialog(null, “Data Belum Tersimpan !” + e.getMessage());

}

}

- Kode Program untuk RadioButton Pria :

private void RPriaActionPerformed(java.awt.event.ActionEvent evt) {

// tambahkan code berikut:

bjkel = true;

}

- Kode Program untuk RadioButton Wanita :

private void RWanitaActionPerformed(java.awt.event.ActionEvent evt) {

// tambahkan code berikut:

bjkel = false;

}

- Untuk ComboBox agama ketikkan kode program berikut ini :

private void agamaActionPerformed(java.awt.event.ActionEvent evt) {

// Baca Source objectnya masih JcomboBox

javax.swing.JComboBox soagama = (javax.swing.JComboBox)evt.getSource();

//Membaca Item Yang Terpilih — > String

String sagama = (String)soagama.getSelectedItem();

//pengujian sagama

if (sagama.equals(”Islam”))

sagm = “1″;

else if (sagama.equals(”Kristen”))

sagm = “2″;

else if (sagama.equals(”Hindhu”))

sagm = “3″;

else if (sagama.equals(”Budha”))

sagm = “4″;

else if (sagama.equals(”Konghu Chu”))

sagm = “5″;

}

- Untuk Tombol Data Baru ketikkan program berikut ini :

private void bbaruActionPerformed(java.awt.event.ActionEvent evt) {

// tambahkan code berikut :

no.setText(”");

nama.setText(”");

alamat.setText(”");

noktp.setText(”");

notelp.setText(”");

simpanan.setText(”");

}

- Untuk komponen Button Keluar ketikkan kode program berikut ini :

private void bkeluarActionPerformed(java.awt.event.ActionEvent evt) {

//Tutup Koneksi

try

{

Con.close();

RsAng.close();

StatAng.close();

Con = null; RsAng = null; StatAng = null;

}

catch (Exception e){}

System.exit(0);

}





Senin, 27 Oktober 2008

Evolusi Database menuju OODB - Mata rantai yang tidak hilang

Nenek moyang dari yang namanya database sebenernya sudah ada sejak jaman nenek moyang manusia , sesuatu yang dikumpulkan dan di arrange sedemikian rupa atau kumpulan apapun itu bisa dibilang bentuk primitive dari database. Tapi dari pada berlama2 ngebahas masalah enek moyang gimana nih kalo kita meloncat ke jaman yang sedikit lebih maju, jadi istilahnya kita meloncati jaman pre - histories (kita sudah melampau jaman yang dibilang sebagai jaman-nya dinosaurus,jaman es dan teori2 soup organic,maklum background saya biology hehe)

Ada yang mendefinisaikan kalo database itu punya 2 tipe : ada yang flat file dan relational . Dan umumnya falt file database ini (kalo boleh saya bilang database) disimpan dengan pembatas delimiter,dia diakses dan dikenali dengan adanya koma,tab,atau apapun itu yang telah disepakati. Ini salah satu cuplikan comment about flat file : One way to think of a flat file database program is to picture a spreadsheet. Each row is a block of information, like a customer contact or an inventory item. Each column is a piece of that block, like name, address, item number, or price. Kalo boleh saya tambahkan nih, flat file tergantung banget sama program yang mengaksesnya dan caranya direpresentasiin supaya bisa ditampilkan.

Dan yang satu lagi … tdk seperti teori evolusi yang kehilangan spesiesnya,si relational database ini muncul dengan mata rantai yang lengkap “neng” ini loh plus 12 definisi yang menurut saya gax semua bisa diterapkan/dipenuhi, en yang ini gax usah di perdebatkan, sudah terbukti koq emang begitu, Tapi umumnya ada 3 kunci pokok yang menjadi tumpuan DBMS : 1) bahasa query,data storage en data access 2) integritas aplikasi 3) arsitektur proses. so back to mata rantai:
The concept of relational databases was first described by Edgar Frank Codd (almost exclusively referenced as E. F. Codd in technical literature) in the IBM research report RJ599, dated August 19th, 1969.1 However, the article that is usually considered the cornerstone of this technology is "A Relational Model of Data for Large Shared Data Banks," published in Communications of the ACM(Vol. 13, No. 6, June 1970, pp. 377-87). Only the first part of the article is available online.
Additional articles by E. F. Codd throughout the 1970s and 80s are still considered gospel for relational database implementations. His famous "Twelve Rules for Relational Databases"2 were published in two Computerworld articles "Is Your DBMS Really Relational?" and "Does Your DBMS Run By the Rules?" on October 14, 1985, and October 21, 1985, respectively. He has since expanded on the 12 rules, and they now number 333, as published in his book "The Relational Model for Database Management, Version 2" (Addison -Wesley, 1990). --- > sedikit iklan
Btw, twelve rule nya gax perlu lah dicritain, entar smuanya pada ngantuk .. hehe
En disinilah rekan di kenalkan dengan yang namanya Normalisasi, Primary Key, Foreign key dsb dsb

Dan Ada relational database seperti MySQL atau Oracle ,memang jauh sih kalo dibandingkan dengan database yang sophisticated demikian, lalu bagaimana dengan Clipper, Foxpro, Visual Foxpro atau Access? Ada diposisi manakah mereka? Mengingat mereka tidak setangguh MYSQL,Oracle,dsb ya entar kita ngomongin.Ini pula cuplikan komentarnya berkenaan si relational database : A more comprehensive database system will enable you to track all of your information without having to use many programs. Programs that are designed to handle several tasks will utilize databases that are called ‘Relational’. These types of database systems allow you to link one type of data, like customers, too ther types of data, like invoices and appointments. Relational database systems are much more capable than flat file systems, but they are also more complex.

Tapi frenz kita potong dulu pembahasan tentang Relational Database, coba dech kita liat perkembangan menyeluruh dari evolusi database, ditinjau dari proses perkembangan protoceratops menjadi triceratops (tau gax kalo kamu2 nonton Jurassic park,ada dino yang makan sayur2ra, bagusnya di jurrasic dia sudah punya tanduk 3 dan bertameng(makanya namanya tri-ceratops), sedangkan yang bakal kita bahas itu dari protoceratos si dino bertameng doank hehe./ Kita tinjau dari tahun 60- an yach :

*) Model Flat ->gax tau nih kapan,sorry yach,en kalo ada yang mau kasih koreksi sy trimaksih skali. Tapi gax pa2 kok karena topik pantau kita berkisar di Database Relational

1968 - > Model data Hirarki

1970 -> Model jaringan (Network Model)

1980 - > relational model ,u know SQL92?( Masa2 kejayaan Relational Database spt: VFP,Access,Oracle,dsb dsb)

1990 - > Generasi pertama OODB

1997 -> ORDBMS.(disebut juga sebagai generasi ke-dua ODB) Tau SQL99 nah itulah : ) Tapi Kayak MySQL ajah katanya dah dkung SQL99 koq,.. apalagi yang laen2. Kayak ini dech Oracle 7.x termasuk produk RDBMS, en Oracle 8.X termasuk produk ODBMS


Sumber :komunitas foxpro indonesia-fox-id.org


Akses Database melalui Castor - Bag 1

Motivasi
Castor membebaskan developer untuk menulis SQL melalui JDBC dalam mengakses database.

Persiapan
Persiapkan direktori kerja, dalam contoh ini /home/lab/myjava
Dapatkan Castor library Di sini dipakai : castor-0.9.5.2.jar

Deskripsi
Sebuah Java Bean EmployeeBean akan disimpan/dibaca dari table EMPLOYEE_TBL di database. mapping.xml digunakan untuk memetakan antara property dari EmployeeBean dan column di EMPLOYEE_TBL. database.xml digunakan sebagai database configuration.

Langkah
1. Tulis EmployeeBean.java
2. Tulis database.xml
3. Tulis mapping.xml
4. Tulis EmployeeApp.java
5. Set CLASSPATH
6. Compile
7. Launch

EmployeeBean
Simpan di sub directory employee di bawah /home/lab/myjava

employee/EmployeeBean.java
package employee;
import java.util.Date;
public class EmployeeBean
{
/* DATA */
private String id;
private String name;
private String department;
private String jobTitle;
private Date hireDate;
private boolean permanentEmployee;
private double salary;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return this.id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public void setDepartment(String department)
{
this.department = department;
}
public String getDepartment()
{
return this.department;
}
public void setJobTitle(String jobTitle)
{
this.jobTitle = jobTitle;
}
public String getJobTitle()
{
return this.jobTitle;
}
public void setHireDate(Date hireDate)
{
this.hireDate = hireDate;
}
public Date getHireDate()
{
return this.hireDate;
}
public void setPermanentEmployee(boolean permanentEmployee )
{
this.permanentEmployee = permanentEmployee;
}
public boolean getPermanentEmployee()
{
return this.permanentEmployee;
}
public void setSalary(double salary)
{
this.salary = salary;
}
public double getSalary()
{
return this.salary;
}
}

Java DB Apache Derby

Pada JDK 1.6 udah ada embeded database yang disebut Java DB. Database ini awalnya adalah Apache Derby yang dibranding ulang, jadi sebenernya ya barang yang sama dengan nama yang berbeda. Dengan menggunakan Hibernate, bisa akses database tanpa perlu menginstal Mysql.
Kofigurasi jdbc dan hibernate dialect untuk MySQL :
jdbc.username=root``
jdbc.password=admin
jdbc.url=jdbc:mysql://localhost:3306/databasename
jdbc.driver=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
Dengan Java DB berubah menjadi :
jdbc.username=root
jdbc.password=admin
jdbc.url=jdbc:derby://localhost:1527/databasename
jdbc.driver=org.apache.derby.jdbc.ClientDriver
hibernate.dialect=org.hibernate.dialect.DerbyDialect
Enaknya lagi, di netbeans sudah ada database client management untuk Java DB ini, kita bisa membuat database baru, membuat table, menambahkan column ke dalam table, melakukan query dan membuat query dengan visual query designer.


Kalau di linux, database Java DB akan diletakkan di :
$home/.netbeans-derby/databasename
Delete column tinggal pake query saja bisa
alter table [tablename] drop column [columnname];
Di NetBeans 6.0.1 secara default tidak mempunyai library Java DB, jadi driver Java DB harus ditambahkan ke dalam library netbeans secara manual dari jar, nama jar-nya adalah DerbyClient.jar. anda bisa search file di dalam folder instalasi netbeans untuk mandapatkan file DerbyClient.jar
Proses setup Java DB tidak susah, hanya perlu beberapa langkah saja :
1. Buka tab service dari NetBeans (lebih baik gunakan versi 6.1)
2. Expand node databases, dan Klik kanan node Java DB kemudian pilih menu create database
3. Masukkan nama database, username dan password yang sesuai
4. Klik OK
dan database anda sudah siap untuk digunakan.
(Sumber : © 2006–2007 Life,Contribute!!! — Sitemap — Cutline by Chris Pearson)




Script Koneksi Java dan PostgreSQL menggunakan JDBC

import java.sql.*;
public class CaraKoneksi {
public static void main(String[] args) {
try {
Class.forName( "org.postgresql.Driver" );
} catch (ClassNotFoundException cnfe) {
System.err.println("No suitable driver " + cnfe);
}
try {

String url = "jdbc:postgresql:localhost:5432/nama_database";

String user = nama_user; // Sesuaikan dengan nama user di database

String pass = password; // Sesuaikan dengan password user

Connection conn = DriverManager.getConnection
(url, user, pass);

// coding untuk menampilkan isi database di sini

} catch (SQLException se) {
System.err.println("ada yg salah di Syntax SQL" + se.getMessage());

} catch (Exception e) {
System.err.println("Apa yach errornya : " + e.getMessage());
}
}
}



Sebelumnya, kamu harus sudah mempunyai JDBC Driver untuk postgresql, setelah download, tinggal ekstrak file .jar itu ke folder mana saja yang kamu suka, asalkan setting classpath mengarah ke file yg berekstensi .jar tersebut




Kamis, 23 Oktober 2008

Koneksi Java dan PostgreSQL menggunakan ODBC

  1. Dari control panel, administratif tools, disitu ada data source odbc

  2. Install driver postgree SQL

  3. Tambahin hostname,port,database,sama userid

  4. Odbc sudah beres

  5. Untuk keberhasilan koneksi, download aplikasi, http://om4gus.blogspot.com/2008/04/appquery-akses-java-ke-semua-jenis.html

  6. Jalankan aplikasinya

  7. Code koneksi

public void testDriver(){
//String dbDrv = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//String dbUrl = "jdbc:microsoft:sqlserver://localhost;DatabaseName="+db;
try{
Class.forName(tDriver.getText());
con = DriverManager.getConnection(tKoneksi.getText(),tUser.getText(),tPass.getText());
stmt=con.createStatement();
lStatus.setText("Driver Connected");
}catch(Exception ce){
System.out.println(ce.toString()+"1");
lStatus.setText(ce.toString());//lStatus.getText()+"\n"+
cbTabel.setModel(new DefaultComboBoxModel());
}
}


  1. Fungsi Tes Driver


testDriver();
String perintah="select * from tMhs";
ResultSet hasil=stmt.executeQuery(perintah);
System.out.println(hasil.getObject());

Sumber : (http://om4gus.blogspot.com/2008/07/appquery-in-action-koneksi-java.html)





Koneksi java 1.5 dengan Oracle 9i

  1. Untuk menghubungkan java dengan database oracle di butuhkan sebuah driver yaitu jdbc, secara default oracle telah menyediakan jdbc di dalam folder hasil instalasinya, tepatnya di oracle/ora92/jdbc/lib/classes12.jar

  2. Setelah mendapatkan file classes12.jar maka buatlah folder jdbc di direktori c

C:/jdbc

  1. Dan taruhlah file classes12.jar di sana

  2. Kemudian seting class pathnya dengan value “C:\jdbc\classes12.jar”

  3. Anda dapat melakukan testing variabel sistem dari Command Prompt dengan perintah : echo %CLASSPATH% bila pada console tampil path ke driver maka CLASSPATH berhasil di set.

  4. Kemudian buatlah beberapa baris untuk mengecek koneksi nya apakah sudah berhasil ataukah belum.

  5. Ini contoh skrip untuk mencoba koneksi java oracle apakah sudah bejalan ataukah belum

import java.sql.*;

class dbAccess {

public static void main (String args []) throws SQLException

{

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());

//DriverManager.registerDriver (new oracle.jdbc.driver());

Connection conn = DriverManager.getConnection

(”jdbc:oracle:thin:@10.4.70.41:1521:mega”,”pav”,”pav”);

// @machineName:port:SID, userid, password

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery(”select * from clogin”);

while (rset.next())

System.out.print (rset.getString(”id”));

//System.out.print (rset.getString(”nama”));

// System.out.println (rset.getString(3));// Print col 1

stmt.close();

}

}

  1. Sesuaikan nama database,host,user dan password database dengan database yang anda miliki.

  2. Run java yang pake odbc

Koneksi Java & MySQL via Konsole di Linux

Salah satu program yang menarik untuk ditest melalui konsole sebelum nanti mulai menggunakan IDE adalah program koneksi ke database menggunakan JDBC. Mengapa ini menarik karena ada beberapa aspek khas Java yang terkandung didalamnya.

Kita bisa mencobanya dengan melakukan koneksi ke database MySQL melalui Java. Untuk melakukan hal ini, silakan lakukan tutorial sebagai berikut :

  1. Instalasi database server MySQL. Untuk melakukan instalasi database MySQL pada OpenSUSE silakan merujuk pada panduan http://www.vavai.com/index.php?/categories/7-Migrasi-Database

  2. Jalankan service MySQL melalui YAST | SYSTEM | SYSTEM SERVICE (RUNLEVEl)

  3. Download MySQL Connector J melalui alamat http://www.mysql.com/products/connector/j/ . Ambil versi terbaru. Pada saat panduan ini ditulis, versi terbaru adalah mysql-connector-java-5.1.5

  4. Ekstrak file yang didownload dan ambil file mysql-connector-java-5.1.5-bin.jar. Sesuaikan dengan versi MySQL Connector yang didownload.

  5. Copy file jar tersebut ke lokasi library. Untuk keselarasan dengan panduan saya yang lain, silakan copy ke folder /opt/jdk1.6.0/lib

  6. Buka konsole dan ketik perintah

export CLASSPATH=.:/opt/jdk1.6.0/lib/mysql-connector-java.jar:

  1. Untuk kemudahan, perintah diatas bisa di masukkan kedalam file .bash_profile yang ada di home folder masing-masing

  2. Buka teks editor (kate misalnya) dan ketik kode program berikut ini :

public class TestMysql { public static void main(String args[]) {

try {

/* Test loading driver */

String driver = "com.mysql.jdbc.Driver";System.out.println( "=> loading driver:" );

Class.forName( driver );

System.out.println( "OK" );/* Test the connection */

String url = "jdbc:mysql://localhost/test";System.out.println( "=> connecting:" );

java.sql.DriverManager.getConnection( url, "guest", "" );

System.out.println( "OK" );

}

catch( Exception x ) {

x.printStackTrace();

}

}

}



  1. Simpan dan beri nama TestMysql.java

  2. Buka konsole (ALT+F2, konsole)

  3. Lakukan kompilasi

javac TestMysql.java

  1. Jika tidak ada pesan kesalahan, lanjutkan dengan menjalankan program

java TestMy



Catatan :

Program diatas menggunakan database MySQL lokal (localhost) dengan database test, user name guest dan password kosong. Setting ini adalah setting default dan selalu ada pada MySQL. Jika ingin memodifikasi, sesuaikan dengan kondisi setting MySQL anda.

Kemungkinan Kesalahan :

  1. java: command not found, biasanya setting PATH belum benar. Coba test dengan menjalankan perintah echo $PATH pada konsole dan apakah responnya menunjukkan lokasi JDK yang diinstalasi

  2. class TestMysql is public, should be declared in a file named TestMysql.java. Terjadi jika nama file berbeda dengan nama class. Ingat bahwa Java menganut case sensitive, jadi TestMysql berbeda dengan testmysql

  3. Cannot resolve symbol symbol : class stringlocation: class TestMysqlpublic static void main(string[] args)

^

1 error

Masalah biasanya karena kesalahan ketik

  1. Exception in thread “main” java.lang.NoClassDefFoundError: TestMysql, biasanya terjadi karena menjalankan file class dengan ekstension. Semestinya java TestMysql, bukan java TestMysql.java ataupun TestMysql.class


(Sumber : http://java.vavai.com/)





Database Untuk Java

PostgreSQL

PostgreSQL (www.PostgreSQL.org) didisain untuk skala besar, memiliki ciri berorientasi objek, namun tetap dapat digunakan layaknya RDBMS pada umumnya. Para pengembangnya (dulu) mengutamakan kelengkapan feature ketimbang dukungan penuh akan standar SQL. Dalam perjalanannya, kelebihan feature ini justru membuat Postgres semakin powerful dan membuatnya dapat disejajarkan dengan database besar lainnya seperti Oracle. Salah satu contoh standar SQL yang belum dipenuhi oleh PostgreSQL saat ini (versi 6.5.3) adalah referential integrity dan outer-join. Meski demikian, programmer Postgres tetap merencanakan untuk membuatnya memiliki standar SQL yang sudah ditetapkan. Fasilitas standar lain yang telah didukung adalah trigger dan function.

Function dalam PostgreSQL sangat unik karena PostgreSQL tidak menetapkan built-in language untuk penulisan function. PostgreSQL menyerahkan kepada pemakai untuk memilih sendiri bahasa yang diinginkan yang disebut Procedural Language. Pada saat deklarasi function, Anda harus menyebutkan bahasa yang digunakan. Pada versi 6.5.3 procedural language yang tersedia adalah pgSQL dan Tcl. Jadi script function yang dideklarasikan akan diterjemahkan oleh library yang bersangkutan (tergantung bahasa yang dipilih) untuk selanjutnya library tersebut melakukan koordinasi dengan library PostgreSQL.

Tools yang tersedia cukup banyak dan sangat berguna seperti:

pg_dump: konversi objek database menjadi script SQL

pgaccess: drag & drop-nya cukup menyenangkan

PostgreSQL didukung oleh banyak bahasa (atau Postgres mendukung banyak bahasa?), antara lain: C++, Java, Perl, Tcl, PHP3 dan Python. Library untuk ODBC dan JDBC juga telah tersedia, sehingga bahasa lainnya yang mendukung keduanya dapat mengakses PostgreSQL. Source lengkapnya dapat Anda peroleh di situsnya, dan juga tersedia di distribusi Linux seperti SuSE, RedHat dan Mandrake.

MySQL

Ringan, begitulah kesan para pemakai database yang tergolong open-source ini. MySQL (www.mysql.org) tergolong database yang paling banyak digunakan untuk web database. Meski ia bukan SQL server yang sesungguhnya (tidak memiliki fasilitas untuk mendukung transaksi seperti begin transaction, commit, dan rollback), MySQL cukup cepat dan sangat banyak library serta contoh program yang dapat digunakan.

Komunitas Linux sangat familiar dengan produk ini. Namun tidak dianjurkan untuk aplikasi office seperti inventory, accounting dan aplikasi kritis lainnya. Karena dari ``niatan'' rancang-bangunnya berbeda, MySQL tidak bisa dibandingkan dengan database berbasis SQL lain seperti PostgreSQL atau Interbase.

MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan user. Untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari Postgresql dan lima kali lebih cepat ketimbang Interbase. Umumnya MySQL disertakan dalam distribusi Linux seperti SuSE, RedHat, Mandrake dan Slackware.

DB2

Sering disebut sebagai DB2 Universal Database. DB2 dari IBM juga telah komitmen untuk mendukung Linux dan telah mengembangkan beberapa tools demi kemudahan penggunanya. DB2 tersedia dalam berbagai platform dan tergolong VLDB (Very Large Database). Dukungannya terhadap Java secara penuh (Control Center - adminitration tool - tersedia dalam versi Java) membuatnya makin diterima oleh berbagai kalangan serta telah meraih sejumlah besar penghargaan (seperti yang telah dikeluarkan VARBusiness dan ComputerWorld). Meski cukup ``raksasa'', DB2 belum open-source dan sering dibandingkan dengan database komersial lainnya. Versi personal tersedia di www.software.ibm.com/data/db2/linux, dan dapat didownload secara cuma-cuma.

Oracle

Mayoritas para pengambil keputusan di bidang IT telah memahami bahwa produk ini cukup besar dan powerfull. Tergolong VLDB dan memiliki sejumlah besar tools yang sangat memudahkan para pengembang dalam membangun aplikasi bisnis. Di Linux, Oracle memiliki WebDB yang terintegrasi dengan Web Server Apache (www.apache.org). WebDB memudahkan programmer memanipulasi objek database seperti membuat database, user, sampai mencetak laporan. Semuanya dapat dilakukan dengan menggunakan browser. Situsnya dapat Anda temui di www.oracle.com

Referensi

*www.linuxjournal.com

* www.zdnet.com

* www.db2.com





JDBC (Java Database Conectivity)

Java menyediakan JDBC yang berfungsi untuk berhubungan dengan database.

Database yang didukung oleh Java cukup banyak, seperti : MySQL, Postgres, Oracle, B2, Access dan lain-lain.

JDBC berisi kumpulan kelas-kelas dan interface yang ditulis dengan bahasa Java.


Yang dilakukan JDBC

  • Membangun koneksi ke data source

  • Mengirim statement ke data source

  • Memproses hasil statement tersebut


Java menyediakan tiga produk JDBC:

  • JDBC driver manager

  • JDBC driver test suite

  • JDBC ODBC bridge


ODBC vs JDBC

  • ODBC tidak cocok dipakai langsung dengan Java karena ditulis dengan bahasa C, pemanggilan dari Java ke C memiliki masalah keamanan, implementasi, robustness, dan portabilitas sistem.

  • Penerjemahan dari C ke Java tidak akan berhasil baik. Contoh: Java tidak memiliki pointer.

  • ODBC sulit dipelajari karena optionnya yang sulit walaupun untuk query yang sederhana.

  • Java API diperlukan untuk mempertahankan solusi “murni Java”, agar dapat berjalan di berbagai platform. Karena ODBC harus diinstall dahulu di setiap client dan tidak semua platform.


Keunggulan JDBC

  • Mempertahankan data enterprise yang ada

  • Menyederhanakan development enterprise

  • Tidak memerlukan konfigurasi pada jaringan komputer

  • Akses penuh ke meta data

  • Koneksi database menggunakan URL dan DataSource (yang meyediakan connection pooling dan distributed transaction)


Arsitektur JDBC











  • Lapisan Vendor Specific JDBC Driver merupakan driver JDBC yang dikeluarkan oleh para vendor pengembang RDBMS.

  • Sedangkan JDBC- ODBC Bridge berfungsi sebagai perantara untuk mengakses database melalui ODBC driver.

  • Baik JDBC driver maupun JDBC-ODBC Bridge diatur dan dapat diakses melalui JDBC Driver Manager.

  • Aplikasi yang kita kembangkan untuk mengakses database dengan memanfaatkan JDBC akan berinteraksi dengan JDBC Driver Manager.


JDBC API

  • Tersedia dalam paket java.sql dan javax.sql.

  • DriverManager – memanggil driver JDBC ke memori, dan dapat juga digunakan untuk membuka koneksi ke sumber data.

  • Connection – mempresentasikan suatu koneksi dengan suatu data source, juga digunakan untuk membuat objek Statement, PreparedStatement dan CallableStatement.

  • Statement – mempresentasikan suatu perintah SQL, dan dapat digunakan untuk menerima objek ResultSet.

  • PreparedStatement – merupakan alternatif untuk objek Statement SQL yang telah terkompilasi awal.

  • CallableStatement – mempresentasikan suatu stored procedure, dan dapat digunakan untuk menjalankan stored procedures yang terkompilasi dalam suatu RDBMS yang mendukung fasilitas tersebut.

  • ResultSet – mempresentasikan sebuah hasil dari database yang dihasilkan dari statemen SQL SELECT.

  • SQLException – suatu class exception yang membungkus kesalahan (error) pengaksesan database.

  • javax.sql adalah bagian dari J2SE 1.4 dan J2EE 1.3. Paket ini memberikan beberapa tambahan yang telah tersedia pada java.sql :

    • DataSource – Objek ini dapat digunakan untuk penempatan DriverManager untuk lebih efisien dalam melakukan koneksi ke database (yang didefinisikan melalui data source).

    • XADataSource, XAConnection – mendukung transaksi terdisitrbusi.

    • RowSet – merupakan turunan dari ResultSet yang ditambah dukungan untuk resultset yang menampung hasil eksekusi database, walaupun koneksi terputus.


JDBC Driver

  • MySQL :

Situs resmi : http://www.mysql.com

JDBC Driver : http://www.mysql.com/downloads/api-jdbc-stable.html


  • PostgreSQL :

Situs resmi : http://www.postgresql.org

JDBC Driver : http://jdbc.postgresql.org


  • Microsoft SQL Server :

Situs resmi : http://www.microsoft.com

JDBC Driver : http://www.microsoft.com/downloads/search.aspx?displaylang=en

Lalu cari JDBC driver pada kotak teks Keyword dan klik tombol Go


  • IBM DB2

Situs resmi : http://www.ibm.com

JDBC Driver : http://www-3.ibm.com/software /support/


  • Sybase

Situs resmi : http://www.sybase.com

JDBC Driver : http://www.sybase.com/downloads

Anda bisa mencari driver JDBC yang disebut JConnect for JDBC pada situs web tersebut.


  • Oracle

Situs resmi : http://www.oracle.com

JDBC Driver : http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html


( Sumber : Slide Antonius Rachmat C, S.Kom )







Rabu, 22 Oktober 2008

Teknologi Java untuk Database

Java telah melakukan inovasi dan pengembangan terkait dengan pengolahan database.


JDBC

JDBC merupakan teknologi standar Java yang menjadi bagian dari JDK (J2SDK) untuk akses dan pengolahan database.


SQLJ

SQLJ Merupakan teknologi yang memungkinkan untuk menyisipkan perintah SQL secara statis pada kode Java secara langsung. Teknologi ini memiliki fleksibilitas yang lemah daripada JDBC tetapi menyederhanakan kode program Java dimana kita tidak perlu melakukan proses koneksi, pembuatan statement, pemanggilan metode untuk menjalankan perintah SQL dan memparsing hasil data melalui resulset, tetapi hanya perlu menyisipkan SQL untuk medapatkan hasl yang sama. SQLJ meningkatkan integrasi antara program Java dan database. Anda dapat menemukan informasi tentang SQLJ di http://www.sqlj.org. Beberapa vendor database terkemuka, terutama Oracle, sudah mendukung SQLJ. Sayangnya teknologi ini belum memiliki standarisasi yang baik sehingga anda akan menemukan banyak variasi pada implementasinya.


EJB

Enterprise Java Bean merupakan spesifikasi teknologi Java yang dikhususkan untuk aplikasi berskala enterprise. Teknologi EJB mencakup entitas bean, yaitu teknologi untuk berurusan dengan persistensi data yang mendukung transaksi, multiuser, aplikasi terdistribusi, serta memungkinkan skalabilitas dari program. Entitas Bean sendiri terbagi menjadi dua, yaitu Container Managed Persistance (CMP) dan Bean Managed Persistence (BMP). Teknologi CMP memiliki kemudahan dimana kita tidak berurusan secara detail dalam proses persistensi data karena ditangani oleh Application Server secara otomatis. BMP merupakan teknologi di mana kita perlu berurusan dengan mekanisme persistensi yang seringkali melibatkan pemrograman JDBC juga.


JDO

Java Database Objects (JDO) adalah tambahan yang akan menjadi standar teknologi Java berikutnya untuk pemrograman database. Anda dapat menemukan informasi mengenai JDO pada http://www.jdocentral.com, http://java.cun.com/products/jdbc. Anda juga dapat menemukan standar referensi implementasi JDO dari http://access1.sun.com/jdo

JDO didesain sebagai API yang melengkapi teknologi JDBC. Tujuan JDO adalah menambahkan lapisan transparansi untuk menghilangkan detail implementasi dari database secara spesifik. Jadi dengan JDO kita berinteraksi dengan Java bukan dengan SQL, dimana hal ini memudahkan kita dalam pemrograman tetapi mengurangi kontrol kita secara langsung terhadap database. JDO memungkinkan untuk peningkatan produktivitas dan portabilitas untuk program database Java.

Saat ini JDO merupakan teknologi yang menarik dan banyak vendor yang memberikan solusi untuk JDO, termasuk beberapa proyek open source komersial.


OJB (Object Relational Bridge)

http://db.apace.org/ojb

OJB merupakan teknologi objek relasional yang juga memiliki variasi implementasi yang mendekati spesifikasi JDO.


TJDO

http://tjdo.sourceforge.net

TJDO merupakan proyek JDO open source yang telah mencapai versi 1.0 final.


Castor

http://exolab.sourceforge.net

Castor merupakan salah satu implementasi JDO yang cukup dikenaldi dunia.


XORM JDO

http://xorm.sourceforge.net

Selain TJDO, di sourceforge anda juga dapat menemukan implementasi open cource dari JDO, yaitu XORM



Sumber :

Rickyanto I, ”Pemrograman Database Java dengan JDBC”, Andi Yogjakarta, Yogyakarta, 2004.






Pengantar Object Oriented Database


Objek database mulai populer pada pertengahan tahun 1990 an. Bermula dari Objek Oriented Programming(OOP) yang kemudian dikembangkan menjadi Objek Oriented Design (OOD) dan pada akhirnya menjadi Objek Oriented Analysis (OOA). Didalam konsep objek oriented database kita dapat melakukan pemodelan data dari semua phenomena dan dapat dinyatakan dalam bahasa umum (natural). Objek Oriented Database pada dasarnya merupakan kosep dari pemrograman berorientasi objek secara umum ditambah dengan database sebagai media penyimpanan datanya yang berbentuk class-class, sehingga dalam hal ini masih berhubungan erat dengan E-R Model.
OODB muncul karena kekomplekan dari penyimpanan objek-objek yang akan disimpan didalam database sehingga konsep dari Relational Database Manejemen Sistem (RDBMS) masih tetap digunakan. Mekanisme penyimpanan objek-objek didalam Relational Database Menejemen Sistem ini sering dikenal dengan istilah ORDBMS (Objek Relational Database Managemen System).
Mengapa kita mebutuhkan Objek Oriented DBMS?
Banyak sekali beberapa keuntungan (benefit) yang diberikan apabila kita menggunakan konsep dari objek oriented database ini ketimbang kita menggunakan konsep terstruktur, keuntungan-keuntungan itu diantaranya: context sistem yang kita bangun akan memberikan informasi yang jelas, mengurangi biaya maintenance, komponen sistem lebih independent artinya lebih mudah jika dilakukan perubahan dan perawatan tanpa mengganggu kinerja komponen sistem yang lain, antara pengguna dan pendevelop dapat saling berkomunikasi sepanjang pembuatan sistem karena sistem yang dibangun biasanya dilengkapi dengan bebarapa diagram (usecase diagram, activity diagram, sequence diagram, class diagram, object diagram, dll) dan visualisasi yang menjelaskan aktifitas-aktifitas yang dilakukan, dengan objek oriented lebih mencerminkan bagaimana kita dapat menguraikan atau memecahkan sistem yang komplek, mendukung semua aplikasi tidak seperti halnya RDBMS
download file disini

Mengenal Objek dan Class


1.Paradigma Objek
Paradigma Objek merupakan suatu konsep yang sangat diperlukan dalam menguasai pemrograman berorientasi Objek karena tanpa paradigm objek kita akan mengalami kesulitan didalam memahami dan mempelajari pemrograman berorientasi objek.
Paradigma adalah suatu cara pandang atau cara berpikir sehingga paradigm objek bias diartikan sebagai cara pandang yang memandang segala sesuatu sebagai objek. Semua aspek dalam pemrograman java dapat kita anggap sebagai objek, terkecuali tipe data primitive karena semua library dan objek dalam java memiliki akar awal class java.lang.Object. Oleh karena itu kita dapat mulai membiasakan dengan pemikiran ini. Sebagai langkah awal kita dapat memperhatikan benda-benda disekitar kita yang merupakan objek nyata dapat dilihat. Misalnya, kucing, meja, kursi, rumah, dsb.
Bukankah mereka merupakan objek didunia nyata dan apabila dipindahkan ke kanvas atau buku gambar, mereka akan jadi gambar atau lukisan. Dan tentunya dalam melukis, kita menggambarkan karakteristik mereka yang dapat dilihat dikanvas atau buku gambar. Sekarang permasalahanya bagaimana memindahkan karakteristik mereka (objek yang disebutkan diatas) kedalam bentuk kode program yang dapat dimengerti oleh komputer. 

2.Konsep Objek dan Class
Setelah mencoba memikirkannya, kita tentu tidak akan mengambil kesimpulan untuk mengambil foto mereka lalu menscannya sehingga dapat dimengerti komputer :P
Komputer dapat memahami bahasa mesin dimana bahasa mesin ini sangat sulit kita pahami sebagai manusia. Oleh karena itu diperlukan bahasa pemrograman yang menjadi jembatan dengan bahasa mesin tersebut. Bahasa pemrograman java merupakan salah satu sarana bagi kita untuk mengolah data dan memberikan instruksi untuk diproses dan dijalankan oleh komputer. Bahasa pemrograman java merupakan bahasa yang berorientasi objek . Sehingga
Konsep objek dan class menjadi penting apabila kita ingin menguasai pemrograman ini. Sering kali pemrograman berorientasi objek sukar untuk dipelajari pada awalnya, terutama apabila belum pernah mempelajari dan memiliki latar belakang dari bahasa yang bersifat procedural. Sebenarnya pemrograman berorientasi objek memudahkan kita dalam membuat program karena memiliki kelebihan-kelebihan tertentu dari bahasa procedural.
Apabila kita renungkan, sebenarnya kita hidup didalam dunia yang penuh dengan objek dan sebenarnya apabila kita memindahkan konsep pemikiran objek nyata menjadi objek dalam pemrograman maka semuanya akan terasa lebih mudah. Sekarang akan dijelaskan bagaimana memindahkan pemikiran objek didunia nyata menjadi objek dalam dunia software atau pemrograman, khususnya java.Misalnya kita mengambil salah satu benda dari dunia nyata sebagai objek yang akan kita pindahkan ke bentuk pemrograman, misalnya orang.

3.Data member
Kita ketahui bahwa yang dinamakan “orang” pasti memiliki tinggi badan, berat badan, bentuk badan, warna rambut, dan bentuk rambut, warna kulit, jenis kelamin, dan masih banyak lagi. Kita dapat menceritakan hal ini kepada orang lain cirri-ciri seseorang dengan berpatokan pada karakteristik tersebut sehingga orang yang kita ajak bicara dapat mengenali siapa yang kita gambarkan. Cirri-ciri ini dapat dipindahkan menjadi variable-variabel dari class yang sering disebut sebagai data member. Pemisalan objek orang nyata menjadi kode program dalam class orang:

untuk selengkapnya dapat diunduh disini

Jumat, 17 Oktober 2008

Membuat Aplikasi Java dan Object Database sederhana

Pada aplikasi ini, kita akan mencoba mendemontasikan bagaimana Menyimpan, me-retrive, meng-update dan menghapus instante dari statu single class yang hanya terdri dari anggota primitive dan String. Pada contoh kali ini, kita akan membuat aplikasi Data Mahasiswa di mana atributnya antara lain, nama, nim dan ipk.


Pertama-tama kita membuat suatu class untuk menangani data kita.


package prjmahasiswa;


/**

* Mahasiswa.java

* Created on 16 Oktober 2008 *

* @author Team_dakoop

*/

public class Mahasiswa {

private String Nama;

private String Nim;

private float Ipk;

/** Creates a new instance of Mahasiswa */

public Mahasiswa(String Nama, String Nim, float Ipk) {

this.Nama=Nama;

this.Nim = Nim;

this.Ipk = Ipk;

}

public String getNama()

{

return Nama;

}

public String getNim()

{

return Nim;

}

public float getIpk()

{

return Ipk;

}

public void setIpk(float ipk)

{

this.Ipk = ipk;

}

public String toString()

{

return Nama+"/"+Nim+"/"+Ipk;

}

}



Membuka Database


Untuk mengakses atau membuat baru suatu file database db4o, digunakan method Db4o.openFile() , yang menyediakan path file database sebagai parameternya untuk memperoleh instante ObjectContainer.

ObjectContainer merepresentasikan database, dan akan menadi interface utama pada db4o. untuk menutup file database digunakan method #.close().


ObjectContainer db=Db4o.openFile(path_file_object_database);

try {

// do something with db4o

}

finally {

db.close();

}


Menyimpan Object

Untuk menyimpan suatu object ke dalam database db4o, digunakan perintah set() dengan object yang tersimpan sebagai parameternya.


// Simpan data mahasiswa pertama

Mahasiswa mahasiswa1=new Mahasiswa("Andi",”383008”, Float.valueOf(“3.25”);

db.set(mahasiswa1);

System.out.println("Stored "+mahasiswa1);


Output:
Stored Andi/383008/3.25


// Simpan data mahasiswa kedua

Mahasiswa mahasiswa1=new Mahasiswa("Budi",”379008”, Float.valueOf(“3.67”);

db.set(mahasiswa1);

System.out.println("Stored "+mahasiswa1);


Output:

Stored Budi/379008/3.67


Me-retrieve Object

Db4o menyediakan tiga jenis Query yang dipakai untuk melakukan proses retriving data object dari database. Ketiga jenis object query itu antara lain:

  • Query by Example (QBE)

  • Native Queries (NQ)

  • SODA Query API (SODA)


Karena tujuan membuat aplikasi sederhana, maka saat ini jenis query yang digunakan adalah QBE. QBE merupakan suatu bentuk query yang disediakan oleh db4o yang ditujukan bagi pemula yang baru melakukan penyesuaian dengan db4o.

Ketika menggunakan QBE, kita akan membuat suatu prototype object. Kemudian kita akan meminta db4o untuk mengembalikan object dari database yang kriterianya bersesuaian dengan field dari prototype object yang kita berikan.


Hasil yang diinginkan dikembalkan sebagai instance ObjectSet. Dalam hal ini, kita menggunakan method listResult untuk menampilkan isi dari hasil retrieve.


public static void listResult(ObjectSet result) {

System.out.println(result.size());

while(result.hasNext()) {

System.out.println(result.next());

}

}


Untuk meretrieve semua data mahasiswa dari database, kita sediakan sebuah prototype yang kosong seperti berikut ini:


Mahasiswa prototype=new Mahasiswa(null, null, 0);

ObjectSet result=db.get(prototype);

listResult(result);


Output:
2
Budi/379008/3.67
Andi/383008/3.25



Db40 juga menyediakan suatu shortcut untuk untuk meretrieve semua instance dari suatu class:

ObjectSet result=db.get(Mahasiswa.class);

listResult(result);


Output:
2
Budi/379008/3.67
Andi/383008/3.25


Menampilkan object dengan nama mahasiswa bernama “Andi”

Mahasiswa prototype=new Mahasiswa(“Andi”, null, 0);

ObjectSet result=db.get(prototype);

listResult(result);


Output:
1
Andi/383008/3.25


Menampilkan object dengan NIM mahasiswa “379008”

Mahasiswa prototype=new Mahasiswa(null, “379008”, 0);

ObjectSet result=db.get(prototype);

listResult(result);


Output:
1
Budi/379008/3.67


Meng-Update Object

Untuk meng-update object hampir mirip dengan cara menyimpan object ke database. Pada kenyataannya, kita menggunakan perintah set() yang sama untuk meng-update object. Cukup memanggil kembali perintah set() setelah memodifikasi setiap object.


ObjectSet result=db.get(new Mahasiswa("Andi",null,0));

Mahasiswa found=(Mahasiswa)result.next();

Mahasiswa.setIpk(3.45);

db.set(found);

System.out.println("Mengupdate Ipk mahasiswa untuk "+found);


Output:
Mengupdate Ipk mahasiswa untuk
Andi/383008/3.45
2
Budi/379008/3.67
Andi/383008/3.45


Menghapus Object

Untuk menghapus object dari database digunakan method delete(). Sebagai contoh menghapus object pertama dengan nama “Andi”:


ObjectSet result=db.get(new Mahasiswa("Andi",null,0));

Mahasiswa found=(Mahasiswa)result.next();

db.delete(found);

System.out.println("Deleted "+found);


Output:
Deleted
Andi/383008/3.45

1

Budi/379008/3.67



Full Source Code


/*

* Main.java

*

* Created on 16 Oktober 2008, 9:25

*

* To change this template, choose Tools | Template Manager

* and open the template in the editor.

*/


package prjmahasiswa;

import java.io.File;

import com.db4o.Db4o;

import com.db4o.ObjectContainer;

import com.db4o.ObjectSet;

import prjmahasiswa.Mahasiswa;

/**

*

* @author David

*/

public class Main {

/** Creates a new instance of Main */

public Main() {

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

ObjectContainer db=Db4o.openFile("Mahasiswa.yap");

try

{

storeFirstMahasiswa(db);

storeSecondMahasiswa(db);

retrieveAllMahasiswa(db);

retrieveMahasiswaByName(db);

updateIpkMahasiswa(db);

deleteMahasiswa(db);

}

finally

{

db.close();

}

}

public static void storeFirstMahasiswa(ObjectContainer db) {

Mahasiswa mahasiswa1=new Mahasiswa("Andi","383008",Float.valueOf("3.25"));

db.set(mahasiswa1);

System.out.println("Stored "+mahasiswa1);

}

public static void storeSecondMahasiswa(ObjectContainer db) {

Mahasiswa mahasiswa2=new Mahasiswa("Budi","379008",Float.valueOf("3.67"));

db.set(mahasiswa2);

System.out.println("Stored "+mahasiswa2);

}

public static void retrieveAllMahasiswa(ObjectContainer db) {

ObjectSet result=db.get(Mahasiswa.class);

listResult(result);

}

public static void retrieveMahasiswaByName(ObjectContainer db) {

Mahasiswa prototype=new Mahasiswa("Andi",null,0);

ObjectSet result=db.get(prototype);

listResult(result);

}

public static void updateIpkMahasiswa(ObjectContainer db) {

ObjectSet result=db.get(new Mahasiswa("Andi",null,0));

Mahasiswa found=(Mahasiswa)result.next();

found.setIpk(Float.valueOf("3.45"));

db.set(found);

System.out.println("Mengupdate Ipk mahasiswa untuk "+found);

retrieveAllMahasiswa(db);

}

public static void deleteMahasiswa(ObjectContainer db) {

ObjectSet result=db.get(new Mahasiswa("Andi",null,0));

Mahasiswa found=(Mahasiswa)result.next();

db.delete(found);

System.out.println("Deleted "+found);

retrieveAllMahasiswa(db);

}

public static void listResult(ObjectSet result) {

System.out.println(result.size());

while(result.hasNext()) {

System.out.println(result.next());

}

}

}



Output:
Stored Andi/383008/3.25
Stored Budi/379008/3.67
2
Budi/379008/3.67
Andi/383008/3.25
1
Andi/383008/3.25
Mengupdate Ipk mahasiswa untuk Andi/383008/3.45
2
Budi/379008/3.67
Andi/383008/3.45
Deleted Andi/383008/3.45
1
Budi/379008/3.67




Referensi


Db4o-5.2 Tutorial, db4objects Inc., USA


Irwanto, Djon., 2007, Membangun Object Oriented Software dengan Java dan Object Database, PT Elex Media Komputindo, Jakarta