Download :
Pemrograman data base dengan menggunakan java dan OpenOffice Base.pdf
Bahasa pemrograman java memiliki banyak keunggulan selain OpenSource juga mampu terhubung dengan bermacam-macam database.
kali ini saya akan membahas tentang bagaimana cara menghubungkan java dengan OpenOffice Base.
Yang perlu anda siapkan sbb:
1. javaSE
2. Netbeans 6.7 (kebetulan yang saya pakai)
3. HSQLDB jdbc, kalo belum punya download disini.
4. Windows (he... he.. coz waktu koding pake windows)
5. Secangkir Kopi biar ga boring! :)
OpenOffice
Buat data base melalui OpenOffice base, sbb:
1.Buka OpenOffice base anda, Start → All Program → OpenOffice.org → OpenOffice.org Base. Seperti pada gambar berikut:

Gambar 1
2.Akan muncul window baru dan tekan tombol Next.
Gambar 2
3.Tekan tombol Finish.

Gambar 3
4.Isikan nama data base dengan ”database” pada kolom File Name, pilih direktori tempat anda akan menyimpan database tersebut. Tekan tombol Save

Gambar 4
5.Pilih menu Table → Create Table In Design View

Gambar 5

Gambar 6
6.Buat field sbb:
username text[varchar] 10
password text[varchar] 10
Sehingga seperti pada gambar dibawah ini, dan simpan dengan nama tbuser.

Gambar 7

Gambar 8
6.Isikan data pada tbuser dengan double klik pada tbuser, seperti pada gambar berikut:

Gambar 9
Setelah database telah dibuat sekarang anda rename database.odb menjadi database.zip kemudian extract, kemudian cari dan copikan file berikut ke c:\base\
1.backup
2.data
3.properities
4.script
kemudian rename semua file tsb menjadi
1.database.backup
2.database.data
3.database.properities
4.database.script
Java Project
nah sekarang kita buat java projectnya
1.buka netbans pilih File → New project → JavaAplication → Next.

Gambar 10

Gambar 11
2.Isi Project Name dengan “javaoobase” kemudian tekan tombol Finish

Gambar 12
3.Klik kanan project javaoobase → new → Java Class

Gambar 13
4.Isi Class Name dengan”Koneksi” kemudian tekan tombol Finish.

Gambar 14
5.Berikut source lengkap Koneksi.java
/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh menggunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini.
* copyright by Rachmad Hadi Wijoyo
*/
package javaoobase;
import java.text.ParseException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author Acer
*/
public class Koneksi {
public static Connection con = null;
public Koneksi(){
try
{
String db_file_name_prefix = "c:\\base\\database";
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection("jdbc:hsqldb:file:" + db_file_name_prefix, // filenames
"sa", // username
""); // password
Statement statement = con.createStatement();
System.out.println("Koneksi Sukses!!");
} catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex);
} catch (ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, "class org.hsqldb.jdbcDriver ga ketemu! \n"+ex);
}
}
}
6.Nah sekarang kita coba buat form login, langkahnya seperti pada tahap 3 & 4 diatas tetapi bukan java class yang kita pilih melainkan Jframe Form. Isi Nama Form dengan frmLogin, kemudian tekan tombol Finish.

7.Setelah muncul from kosong, buat tampilan seperti berikut:

8.Berikut Source code lengkapnya:\
/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh menggunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini
* copyright by Rachmad Hadi Wijoyo
*/
/*
* frmLogin.java
*
* Created on 28 Jun 09, 8:23:45
*/
package javaoobase;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author Acer
*/
public class frmLogin extends javax.swing.JFrame {
/** Creates new form frmLogin */
public frmLogin() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
txUserName = new javax.swing.JTextField();
txPassword = new javax.swing.JPasswordField();
btLogin = new javax.swing.JButton();
btCancel = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
getContentPane().setLayout(null);
jPanel1.setBackground(new java.awt.Color(153, 153, 255));
jPanel1.setLayout(new java.awt.BorderLayout());
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Login");
jPanel1.add(jLabel1, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel1);
jPanel1.setBounds(0, 0, 400, 50);
jLabel2.setText("User Name");
getContentPane().add(jLabel2);
jLabel2.setBounds(10, 70, 70, 14);
jLabel3.setText("Password");
getContentPane().add(jLabel3);
jLabel3.setBounds(10, 100, 70, 14);
txUserName.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txUserNameKeyReleased(evt);
}
});
getContentPane().add(txUserName);
txUserName.setBounds(90, 70, 300, 20);
txPassword.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txPasswordKeyReleased(evt);
}
});
getContentPane().add(txPassword);
txPassword.setBounds(90, 100, 300, 20);
btLogin.setText("Login");
btLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btLoginActionPerformed(evt);
}
});
btLogin.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
btLoginKeyReleased(evt);
}
});
getContentPane().add(btLogin);
btLogin.setBounds(280, 150, 110, 23);
btCancel.setText("Cancel");
btCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCancelActionPerformed(evt);
}
});
getContentPane().add(btCancel);
btCancel.setBounds(10, 150, 110, 23);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-408)/2, (screenSize.height-218)/2, 408, 218);
}//
private void btLoginActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Login();
}
private void btCancelActionPerformed(java.awt.event.ActionEvent evt) {
try {
Koneksi.con.close();
} catch (SQLException ex) {
Logger.getLogger(frmLogin.class.getName()).log(Level.SEVERE, null, ex);
}
System.exit(0);
}
private void formWindowClosing(java.awt.event.WindowEvent evt) {
try {
Koneksi.con.close();
} catch (SQLException ex) {
Logger.getLogger(frmLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void txUserNameKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
txPassword.requestFocus();
}
}
private void txPasswordKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
btLogin.doClick();
}
}
private void btLoginKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
btLogin.doClick();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmLogin().setVisible(true);
}
});
}
public void Login(){
try {
String hasil="0";
String sql = "Select count(*) as jml from \"tbUser\" where \"username\" = '"+txUserName.getText().trim()+"' "+
"and \"password\"='"+txPassword.getText().trim()+"' ";
stat = Koneksi.con.createStatement();
set = stat.executeQuery(sql);
set.next();
hasil = set.getString("jml");
if (Integer.valueOf(hasil)> 0){
//JOptionPane.showMessageDialog(null, "Login Sukses!");
System.out.println("Login Sukses!");
new frmInputBarang().setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "Login GAGAL");
System.out.println("Login GAGAL");
}
System.out.println("isi jml :"+hasil);
}
catch (Exception e) {
System.out.println("Kesalahan : "+e.toString());
}
}
// Variables declaration - do not modify
private javax.swing.JButton btCancel;
private javax.swing.JButton btLogin;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPasswordField txPassword;
private javax.swing.JTextField txUserName;
// End of variables declaration
public Statement stat;
public ResultSet set;
}
9.Pada class Main.java, anda tambahkan perintah untuk memangil class Koneksi dan frmLogin,berikut source codenya:
/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh menggunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini.
* copyright by Rachmad Hadi Wijoyo
*/
package javaoobase;
/**
*
* @author Acer
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new Koneksi();
new frmLogin().setVisible(true);
}
}
10.Waktunya coba. Tekan F6 atau tekan Tombol Run
11.Gimana mudahkan?
12.Sekarang Kita coba buat form input barang, design formnya seperti berikut:

/*
* Program ini dibuat oleh Rachmad Hadi Wijoyo
* anda boleh menggunakan dan mendistribusikan dengan bebas
* asalkan tidak mengubah license ini
* copyright by Rachmad Hadi Wijoyo
*/
/*
* frmInputBarang.java
*
* Created on 28 Jun 09, 9:14:05
*/
package javaoobase;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Acer
*/
public class frmInputBarang extends javax.swing.JFrame {
/** Creates new form frmInputBarang */
public frmInputBarang() {
initComponents();
tampil();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
txKode = new javax.swing.JTextField();
txNama = new javax.swing.JTextField();
txHarga = new javax.swing.JTextField();
txJumlah = new javax.swing.JTextField();
btNew = new javax.swing.JButton();
btExit = new javax.swing.JButton();
btEdit = new javax.swing.JButton();
btDelete = new javax.swing.JButton();
btSave = new javax.swing.JButton();
btCancel = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
jPanel1.setBackground(new java.awt.Color(153, 153, 255));
jPanel1.setLayout(new java.awt.BorderLayout());
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Input Barang");
jPanel1.add(jLabel1, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel1);
jPanel1.setBounds(0, 0, 690, 50);
jLabel2.setText("Jumlah");
getContentPane().add(jLabel2);
jLabel2.setBounds(20, 160, 90, 14);
jLabel3.setText("Kode ");
getContentPane().add(jLabel3);
jLabel3.setBounds(20, 70, 90, 14);
jLabel4.setText("Nama Barang");
getContentPane().add(jLabel4);
jLabel4.setBounds(20, 100, 90, 14);
jLabel5.setText("Harga");
getContentPane().add(jLabel5);
jLabel5.setBounds(20, 130, 90, 14);
txKode.setEnabled(false);
txKode.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txKodeKeyReleased(evt);
}
});
getContentPane().add(txKode);
txKode.setBounds(120, 70, 120, 20);
txNama.setEnabled(false);
txNama.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txNamaKeyReleased(evt);
}
});
getContentPane().add(txNama);
txNama.setBounds(120, 100, 550, 20);
txHarga.setEnabled(false);
txHarga.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txHargaKeyReleased(evt);
}
});
getContentPane().add(txHarga);
txHarga.setBounds(120, 130, 120, 20);
txJumlah.setEnabled(false);
txJumlah.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txJumlahKeyReleased(evt);
}
});
getContentPane().add(txJumlah);
txJumlah.setBounds(120, 160, 70, 20);
btNew.setText("New");
btNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btNewActionPerformed(evt);
}
});
getContentPane().add(btNew);
btNew.setBounds(20, 200, 90, 23);
btExit.setText("Exit");
btExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btExitActionPerformed(evt);
}
});
getContentPane().add(btExit);
btExit.setBounds(580, 200, 90, 23);
btEdit.setText("Edit");
btEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btEditActionPerformed(evt);
}
});
getContentPane().add(btEdit);
btEdit.setBounds(110, 200, 90, 23);
btDelete.setText("Delete");
btDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btDeleteActionPerformed(evt);
}
});
getContentPane().add(btDelete);
btDelete.setBounds(200, 200, 90, 23);
btSave.setText("Save");
btSave.setEnabled(false);
btSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btSaveActionPerformed(evt);
}
});
getContentPane().add(btSave);
btSave.setBounds(350, 200, 90, 23);
btCancel.setText("Cancel");
btCancel.setEnabled(false);
btCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCancelActionPerformed(evt);
}
});
getContentPane().add(btCancel);
btCancel.setBounds(440, 200, 90, 23);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jTable1.getTableHeader().setReorderingAllowed(false);
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(20, 230, 650, 100);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-696)/2, (screenSize.height-376)/2, 696, 376);
}//
private void btNewActionPerformed(java.awt.event.ActionEvent evt) {
btNew.setEnabled(false);
btEdit.setEnabled(false);
btExit.setEnabled(false);
btDelete.setEnabled(false);
btSave.setEnabled(true);
btCancel.setEnabled(true);
txKode.setEnabled(true);
txNama.setEnabled(true);
txHarga.setEnabled(true);
txJumlah.setEnabled(true);
txKode.setText("");
txNama.setText("");
txHarga.setText("");
txJumlah.setText("");
txKode.requestFocus();
vSave = true;
jTable1.enable(false);
}
private void btEditActionPerformed(java.awt.event.ActionEvent evt) {
btNew.setEnabled(false);
btEdit.setEnabled(false);
btExit.setEnabled(false);
btDelete.setEnabled(false);
btSave.setEnabled(true);
btCancel.setEnabled(true);
txKode.setEnabled(false);
txNama.setEnabled(true);
txHarga.setEnabled(true);
txJumlah.setEnabled(true);
txKode.requestFocus();
vSave = false;
jTable1.enable(false);
}
private void btSaveActionPerformed(java.awt.event.ActionEvent evt) {
Save();
btNew.setEnabled(true);
btEdit.setEnabled(true);
btExit.setEnabled(true);
btDelete.setEnabled(true);
btSave.setEnabled(false);
btCancel.setEnabled(false);
txKode.setEnabled(false);
txNama.setEnabled(false);
txHarga.setEnabled(false);
txJumlah.setEnabled(false);
btNew.requestFocus();
jTable1.enable(true);
}
private void btCancelActionPerformed(java.awt.event.ActionEvent evt) {
btNew.setEnabled(true);
btEdit.setEnabled(true);
btExit.setEnabled(true);
btDelete.setEnabled(true);
btSave.setEnabled(false);
btCancel.setEnabled(false);
txKode.setText("");
txNama.setText("");
txHarga.setText("");
txJumlah.setText("");
txKode.setEnabled(false);
txNama.setEnabled(false);
txHarga.setEnabled(false);
txJumlah.setEnabled(false);
btNew.requestFocus();
jTable1.enable(true);
}
private void btDeleteActionPerformed(java.awt.event.ActionEvent evt) {
if(JOptionPane.showConfirmDialog(null,"Anda Yakin Akan Menghapus Data Ini? ","Peringatan",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
{
Delete();
}
}
private void btExitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(jTable1.isEnabled()){
int n=0;
n = jTable1.getSelectedRow();
txKode.setText(jTable1.getValueAt(n, 0).toString());
txNama.setText(jTable1.getValueAt(n, 1).toString());
txHarga.setText(jTable1.getValueAt(n, 2).toString());
txJumlah.setText(jTable1.getValueAt(n, 3).toString());
}
}
private void txKodeKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
txNama.requestFocus();
}
}
private void txNamaKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
txHarga.requestFocus();
}
}
private void txHargaKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
txJumlah.requestFocus();
}
}
private void txJumlahKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==10){
btSave.doClick();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmInputBarang().setVisible(true);
}
});
}
public void tampil(){
try{
if(jTable1.getRowCount()>0){
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Kode", "Nama", "Harga", "Jumlah"
}
));
}
stat= Koneksi.con.createStatement();
rs = stat.executeQuery(sql_query);
model = (DefaultTableModel)jTable1.getModel();
while (rs.next()){
for (int i=0;i<4;i++){ stat =" Koneksi.con.createStatement();" stat =" Koneksi.con.createStatement();" stat =" Koneksi.con.createStatement();" sql_query="select * from \">
Keren bro
ReplyDeletethx 4 informasinya
4lifesurabaya
bagus bagus
ReplyDeletepak komenen blog q
ReplyDeletebagus....terima kasi infonya.....
ReplyDelete