koneksi database access dengan java
Post on 08-Aug-2015
157 Views
Preview:
TRANSCRIPT
STMIK Cikarang
KONEKSI DATABASE ACCESS DENGAN JAVA(NETBEANS 6.7.1)
Buka Ms. Access.. Di sini saya pakai Ms Access 2007, Untuk membuat database baru, pilih pada New Blank Database, maka akan muncul seperti gambar berikut ini :
setelah new blank database di klik, di bagian samping bakalan muncul penampakan seperti berikut :
51
STMIK Cikarang
Silahkan kasih nama databasenya, di sini saya menamai database dengan “databaseku” dan di simpan di folder D:\DATABASE\ACCESS. Simpan dengan format Ms Access 2003 atau tipe database *.mdb.Caranya, klik tombol folder terbuka di kanan nama database. Lalu ubah tipe file database ke database Access 2000-2003 (*.mdb) Seperti gambar di bawah ini:
Klik OK Klik tombol Create.
Kita klik tombol View di bawah bunderan di pojok kiri atas (Office button), Pilih Design View, kita akan diminta meng-Save tabel itu dulu, dengan nama mahasiswa, klik ok
52
STMIK Cikarang
Sekarang coba kita buat field-field dan menentukan tipe datanya..
Setelah desain table. Kita kembali ke datasheet view, dengan cara klik view di bawah office button, pilih datasheet view.Isikan record terserah anda ke dalam table.
53
STMIK Cikarang
MENGATUR KONFIGURASI ODBC
“ODBC merupakan aturan yang digunakan untuk mengakses sebuah database. Dengan menggunakan ODBC ini maka akses ke sebuah database dapat dilakukan dengan menggunakan nama yang dikehendaki”
Langkah-langkah konfigurasi ODBC adalah :Buka Control Panel Administrative Tools Data Sources (ODBC)
Klik tombol Add
Pilih driver Microsoft Access Driver (*.mdb,), terus Finish
54
STMIK Cikarang
Isi Data Source name dengan nama terserah anda (dsnjava), untuk description boleh dibiarkan kosong.Klik tombol Select, cari posisi database yang tadi kita buat kemudian klik tombol OK.
Klik tombol Advance, untuk memberi password ODBC kita.
55
STMIK Cikarang
Isi Login admin terserah anda (contoh : admin) dan Password admin.klik OK dan OK lagi untuk mengakhiri pengaturan ODBC.
MEMBUAT FORM SEDERHANA DI NETBEANSUNTUK MENGAKSES DATABASE
Buka netbeans, maka muncul :
Buat Project baru: File New Project Next..Pilih Kategori Java, dan Project Java Application Next..Masukkan Nama Proyek.. di sini saya contohkan dengan nama ACCESS dan lokasipenyimpanannya di D:\Jangan lupa hilangkan tanda centang di bagian Create Main Class Klik FINISH
56
STMIK Cikarang
Selanjutnya kita buat Package untuk proyek kita.. klik kanan default package New Java Package
Isi Package Name seperti di bawah ini :
Klik Finish.
57
STMIK Cikarang
Package baru kita akan terlihat di bagian Panel Projects:
Klik kanan package kita tadi (koneksi) , lalu pilih New Jframe Form
Sekarang coba kita buat form sederhana dengan komponen yang terdiri dari JTextField,JLabel, dan JButton seperti di bawah ini:
58
STMIK Cikarang
Ubah masing-masing komponen dengan cara :Klik kanan – Change Variable Name - , lalu isikan nama variabelnya:TextField untuk nama saya kasih nama variabel: txtnamaTextField untuk nim saya kasih nama variabel: txtnpmTextField untuk Alamat saya kasih nama variabel: txtalamatButton Tambah saya kasih nama variabel: bttambahButton Ubah saya kasih nama variabel: btubahButton Hapus saya kasih nama variabel: bthapusButton Cari saya kasih nama variabel: btcari
Kemudian ... kita akan Memasukkan script sql ke dalam form.
59
STMIK Cikarang
MEMASUKKAN SCRIPT SQL KE DALAM FORM Pertama, kita pasangkan Event Handler buat tombol Tambah kita, caranya begini:Klik kanan tombol Tambah kita, pilih Events Action actionPerformedSetelah itu kita akan dibawa ke dalam jendela editor, di sini kita bisa melihat source code dari form kita.
Nah.. kita akan memasukkan kode untuk tombol tambah diantara kode berikut ini:
private void btTambahActionPerformed(java.awt.event.ActionEvent evt){// di sini adalah letak kode sql kita nanti}
Tapi sebelumnya kita coba tes dulu koneksi ke database.
60
STMIK Cikarang
TEST KONEKSI KE DATABASE
Di package koneksi, kita buat sebuah class baru dengan nama Koneksi.javaKita isi class tersebut dengan kode di bawah ini:
package koneksi;import java.sql.*;import javax.swing.*;/** * * @author ttg */
public class koneksi {void testKoneksi(){try{String dbname="jdbc:odbc:dsnjava"; // nama ODBC// ingat-ingat, CobaDatabase adalah nama ODBC kita yang udah kitaatur sebelumnyaClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection(dbname,"Admin","admin");// user n passwordnya// user database samakan dengan yang kita atur di ODBC tadi, yaitu// 'Admin', dengan password 'admin'JOptionPane.showMessageDialog(null, "Koneksi berhasil","Insert Data",JOptionPane.INFORMATION_MESSAGE);con.close();}catch (Exception e){JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);}}public static void main (String args[]){koneksi test = new koneksi();test.testKoneksi();System.exit(0);}}
Setelah itu coba run file class tersebut.. (Shift + F6)Kalau sudah benar, maka akan terdapat tampilan JoptionPane seperti berikut ini:
Perlu diingat bahwa :
61
STMIK Cikarang
String dbname="jdbc:odbc:dsnjava"; adalah menentukan nama data source (DSN) yang sudah kita deklarasikan di ODBC tadi.Connection con = DriverManager.getConnection(dbname,"Admin","admin");Nah, yang ini adalah user dan password database kita, yang juga sudah kita deklarasikan saat membuat Data Source di ODBC tadi,
Username: AdminPassword: admin
MEMASUKKAN DATA KE DATABASE (INSERT)
Setelah berhasil koneksi ke database kita, sekarang saatnya menggunakan form kita tadi untuk insert data ke database.
Pada Event yang telah kita buat untuk tombol Tambah tadi, kita isi dengan kode berikut ini:
private void bttambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
String npm = txtnpm.getText();String nama = txtnama.getText();String alamat = txtalamat.getText();try{String dbname="jdbc:odbc:dsnjava";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection(dbname,"Admin","admin");Statement statement = con.createStatement();String sql="insert into mahasiswa values('"+npm+"','"+nama+"','"+alamat+"');";statement.executeUpdate(sql);statement.close();JOptionPane.showMessageDialog(null, "Data berhasil dimasukkan..","Insert Data",JOptionPane.INFORMATION_MESSAGE);txtnpm.setText("");txtnama.setText("");txtalamat.setText("");//txtnpm.setFocusable(rootPaneCheckingEnabled);con.close();}catch (Exception e){JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);//System.err.println("Exception: "+e.getMessage());} }
Setelah itu coba run form kita tadi..
62
STMIK Cikarang
Isi JTextField-JTextField nya dengan data yang dikehendakiKemudian klik tombol tambah
Kita lihat hasilnya Buka database access yang kita buat. Apakah data sudah masuk atau belum.
63
STMIK Cikarang
MENCARI DATA DAN MENAMPILKANNYA DI FORM
Tambahkan event buat tombol cari ini, kemudian isi dengan kode berikut:
private void btcariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
String npm = txtnpm.getText();try{String dbname="jdbc:odbc:dsnjava";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection(dbname,"Admin","admin");Statement statement = con.createStatement();String sql="SELECT * FROM mahasiswa WHERE npm like '"+npm+"'"; ResultSet rs = statement.executeQuery(sql);if (rs.next()){txtnama.setText(rs.getString(2));txtalamat.setText(rs.getString(3));JOptionPane.showMessageDialog(null, "Data ditemukan","Insert Data",JOptionPane.INFORMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null, "Data tidak ditemukan ","Insert Data",JOptionPane.INFORMATION_MESSAGE);}statement.close();con.close();}catch (Exception e){JOptionPane.showMessageDialog(null, "Eror:"+e,"Gagal",JOptionPane.WARNING_MESSAGE);//System.err.println("Exception: "+e.getMessage());} }
64
STMIK Cikarang
Coba anda jalankan dan lihat hasilnya :
Masukkan NPM, lalu klik tombol Cari.
65
STMIK Cikarang
UBAH DATA
Edit data digunakan apabila kita ingin melakukan perubahan terhadap data yang sudah ada di database kita.
Tambahkan kode berikut ini pada tombol ubah :
private void btubahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
String npm = txtnpm.getText();String nama = txtnama.getText();String alamat = txtalamat.getText();try {String dbname="jdbc:odbc:dsnjava";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection(dbname,"Admin","admin");Statement statement = con.createStatement();String sql="UPDATE mahasiswa SET NAMA='"+nama+"', ALAMAT='"+alamat+"' WHERE npm LIKE '"+npm+"'";statement.executeUpdate(sql);statement.close();JOptionPane.showMessageDialog(null, "Data berhasil diedit..","Insert Data",JOptionPane.INFORMATION_MESSAGE);con.close();} catch (Exception e) {JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);//System.err.println("Exception: "+e.getMessage());} }
Coba jalankan dan lihat hasilnya.
HAPUS DATA
66
STMIK Cikarang
Tambahkan kode berikut ini pada tombol Hapus :
private void bthapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
String npm = txtnpm.getText();try {String dbname="jdbc:odbc:dsnjava";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection(dbname,"Admin","admin");Statement statement = con.createStatement();String sql="DELETE FROM mahasiswa WHERE Npm LIKE '"+npm+"'";statement.executeUpdate(sql);statement.close();txtnpm.setText("");txtnama.setText("");txtalamat.setText("");JOptionPane.showMessageDialog(null, "Data berhasil dihapus..","Insert Data",JOptionPane.INFORMATION_MESSAGE);con.close();} catch (Exception e) { JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);//System.err.println("Exception: "+e.getMessage());} }
FORM LOGIN
67
STMIK Cikarang
1. Tambahkan table dengan nama “user” ke dalam database anda dengan struktur table sebagai berikut :
2. Tambahkan file java anda dengan klik kanan nama packages koneksi New JFrameForm, berinama dengan “frmlogin” Finish.
3. Desain form sesuai gambar dibawah ini :
Komponen-komponen yang digunakan :- 3 buah panel tempatkan pada posisi atas, tengah dan bawah dalam frame/form- 3 buah label
Komponen TextJlabel1 = = LOGIN ==Jlabel2 User IdJlabel3 Password
- 2 buah textFieldKomponen Text Variable Name
68
STMIK Cikarang
Jtextfield1 Kosongkan txtUserIdjtextField2 Kosongkan txtPassword
- 2 buah buttonKomponen Text Variable Name
Jbutton1 OK cmdokJbutton2 Batal cmdbatal
4. Ketikkan kode program sesuai dengan fungsi-fungsi dengan melihat tiap tempat kodenya :
package koneksi;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JOptionPane;/** * * @author ttg */public class frmlogin extends javax.swing.JFrame {public Connection con;public Statement statement; /** Creates new form frmlogin */ public frmlogin() { initComponents(); }
//method untuk koneksi ke databaseprivate void koneksi(){ try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection("jdbc:odbc:dsnjava","Admin","admin");statement = con.createStatement();}catch (Exception e){JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);}}
//method untuk loginpublic void cariuser(){
69
STMIK Cikarang
try{ koneksi(); String sql = "Select * from user where user_id='"+txtUserId.getText()+"' and password='" + txtPassword.getText() + "'"; statement = con.createStatement(); ResultSet RUser = statement.executeQuery(sql); if (RUser.next()) { //JOptionPane.showMessageDialog(null, "Sukses Bro.....!"); new frmMenu().show(); this.dispose(); } }catch (Exception e){}
txtUserId.setText(""); txtPassword.setText(""); txtUserId.requestFocus();}
//tombol okprivate void cmdOKActionPerformed(java.awt.event.ActionEvent evt) { cariuser(); }
//tombol batal private void cmdBatalActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); // TODO add your handling code here:}
//memberi kunci penekanan enter pada txtuserid private void txtUserIdKeyReleased(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == 10){ txtPassword.requestFocus(); } // TODO add your handling code here:}
//memberi kunci penekanan enter pada txtpassword private void txtPasswordKeyReleased(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == 10){ cmdOK.doClick(); } // TODO add your handling code here:}
5. Coba jalankan program login anda.Nb : buat juga form untuk menu (frmMenu)
FORM MENU
70
STMIK Cikarang
1. Buat form menu (frmMenu) dengan klik kanan nama packages koneksi New JFrameForm, berinama dengan “frmMenu” Finish.
2. Desain form sesuai gambar dibawah ini :
Komponen-komponen yang digunakan :- jMenubar atur terserah anda- jMenuitem atur terserah anda
3. Ketikkan kode program sesuai dengan fungsi-fungsi dengan melihat tiap tempat kodenya :
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { new mahasiswa().setVisible(true); // TODO add your handling code here: }
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {System.exit(0); // TODO add your handling code here: }
4. Coba jalankan program login anda.
Latihan :1. Buat Form untuk menambah user yang dapat login, dengan nama “frmUser”.2. Perbaharui form menu anda dengan tambahkan Input Data User.
FORM TRANSAKSI
71
STMIK Cikarang
1. Tambahkan table dengan nama “nilai” ke dalam database anda dengan struktur table sebagai berikut :
2. Tambahkan file java anda dengan klik kanan nama packages koneksi New JFrameForm, berinama dengan “frmTNilai.java” Finish.
3. Desain form sesuai gambar dibawah ini :
Komponen-komponen yang digunakan :- 3 buah panel tempatkan pada posisi atas, tengah dan bawah dalam frame/form- 10 buah label
72
STMIK Cikarang
Komponen TextJlabel1 NPMJlabel2 TanggalJlabel3 Kode MatakuliahJlabel4 AbsenJlabel5 QuisJlabel6 TugasJlabel7 UTSJlabel8 UASJlabel9 Nilai Angka Jlabel10 Nilai Huruf
- 9 buah textFieldKomponen Text Variable Name
jtextfield1 Kosongkan txtnamamhsjtextField2 Kosongkan txtnamamtkJtextfield3 Kosongkan txtabsenjtextField4 Kosongkan txtquisJtextfield5 Kosongkan txttugasjtextField6 Kosongkan txtutsJtextfield7 Kosongkan txtuasjtextField8 Kosongkan txtnaJtextfield9 Kosongkan txtnh
- 2 buah comboboxKomponen Text Variable Name
jcomboBox1 = Pilih NPM = cmbnpmjcomboBox2 = Pilih Kode MTK = cmbmtk
- 1 buah SpinnerKomponen Model Variable Name
JSpinner Model Type : Date txttgl- 3 buah button
Komponen Text Variable NameJbutton1 Batal btbatalJbutton2 Simpan btsimpanJbutton3 Keluar btkeluar
4. Ketikkan kode program sesuai dengan fungsi-fungsi dengan melihat tiap tempat kodenya :
package koneksi;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;
73
STMIK Cikarang
import javax.swing.JOptionPane;import javax.swing.JSpinner;import java.awt.*;
public class frmTNilai extends javax.swing.JFrame {public Connection con;public Statement statement;String tanggal;
private Dimension UM = Toolkit.getDefaultToolkit().getScreenSize(); /** Creates new form frmTNilai */ public frmTNilai() { initComponents();
txttgl.setEditor(new JSpinner.DateEditor(txttgl,"yyyy/MM/dd")); isicombo(); isicombomtk(); setLocation(UM.width/2-getWidth()/2,UM.height/2-getHeight()/2); }
private void hitung(){ int xabsen, xquis, xtugas, xuts, xuas; double xna;// = Double.parseDouble(txtna.getText());
xabsen =Integer.parseInt(txtabsen.getText()); xquis =Integer.parseInt(txtquis.getText()); xtugas =Integer.parseInt(txttugas.getText()); xuts =Integer.parseInt(txtuts.getText()); xuas =Integer.parseInt(txtuas.getText()); xna = ((0.15 * xabsen) + (0.15 * xquis) + (0.15 * xtugas) + (0.25 * xuts) + (0.35 *xuas));
txtabsen.setText(String.valueOf(xabsen)); txtquis.setText(String.valueOf(xquis)); txttugas.setText(String.valueOf(xtugas)); txtuts.setText(String.valueOf(xuts)); txtuas.setText(String.valueOf(xuas)); txtna.setText(String.valueOf(xna));
if (xna >= 80){ txtnh.setText("A"); }else if (xna >= 70){
74
STMIK Cikarang
txtnh.setText("B"); }else if (xna >= 55){ txtnh.setText("C"); }else if (xna > 35) { txtnh.setText("D"); }else { txtnh.setText("E"); } } private void isicombo() { try{koneksi();String sql = "Select * from mahasiswa";ResultSet rs = statement.executeQuery(sql);while (rs.next()){cmbnpm.addItem(rs.getString(1)); }} catch (Exception e){} }
//method baca tabel mtkprivate void isicombomtk() { try{koneksi();String sql = "Select * from matakuliah";ResultSet rs = statement.executeQuery(sql);while (rs.next()){cmbmtk.addItem(rs.getString(1)); }} catch (Exception e){} }
//methohd baca data mahasiswaprivate void baca_mhs(){try{koneksi();String sql = "Select * from mahasiswa where npm ='"+ cmbnpm.getSelectedItem()+"'";ResultSet rs = statement.executeQuery(sql);if (rs.next()){txtnamamhs.setText(rs.getString(2)); } else {JOptionPane.showMessageDialog(null, "Data Tidak Ada");} } catch (Exception e){ }}
75
STMIK Cikarang
//method baca matakuliahprivate void baca_mtk(){try{koneksi();String sql = "Select * from matakuliah where kdmtk ='"+ cmbmtk.getSelectedItem()+"'";ResultSet rs = statement.executeQuery(sql);if (rs.next()){txtnamamtk.setText(rs.getString(2)); } else {JOptionPane.showMessageDialog(null, "Data Tidak Ada");} } catch (Exception e){ }}
private void koneksi(){ try {//String dbname="";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection("jdbc:odbc:dsnjava","Admin","admin");statement = con.createStatement();}catch (Exception e){JOptionPane.showMessageDialog(null, "Eror: "+e,"Gagal",JOptionPane.WARNING_MESSAGE);}}
private void cmbnpmActionPerformed(java.awt.event.ActionEvent evt) { baca_mhs(); // TODO add your handling code here: }
private void cmbmtkActionPerformed(java.awt.event.ActionEvent evt) { baca_mtk(); // TODO add your handling code here: }
private void txtuasKeyPressed(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == 10){ hitung(); // TODO add your handling code here: } }private void txtabsenKeyReleased(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == 10){ txtquis.requestFocus();// TODO add your handling code here:
76
STMIK Cikarang
} } private void txtquisKeyReleased(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == 10){ txttugas.requestFocus(); // TODO add your handling code here: } } private void txttugasKeyReleased(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == 10){ txtuts.requestFocus();} // TODO add your handling code here: }
private void txtutsKeyPressed(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == 10){ txtuas.requestFocus();} // TODO add your handling code here: }
private void btsimpanActionPerformed(java.awt.event.ActionEvent evt) { simpan(); // TODO add your handling code here: }
private void btbatalActionPerformed(java.awt.event.ActionEvent evt) { kosong(); // TODO add your handling code here: }
private void btkeluarActionPerformed(java.awt.event.ActionEvent evt) { dispose(); // TODO add your handling code here: }
private void simpan(){try{ koneksi();String xmhs = cmbnpm.getSelectedItem().toString();String xmtk = cmbmtk.getSelectedItem().toString();String xabs = txtabsen.getText();String xquis = txtquis.getText();String xtugas = txttugas.getText();String xuts = txtuts.getText();String xuas = txtuas.getText();String xna = txtna.getText();String xnh = txtnh.getText();String msql="insert into nilai values ('"+xmhs+"','"+xmtk+"','"+xabs+"','"+xquis+"','"+xtugas+"','"+xuts+"','"+xuas+"','"+xna+"','"+xnh+"')";statement.executeUpdate(msql);
77
STMIK Cikarang
con.close();JOptionPane.showMessageDialog(null,"Simpan Oke"); kosong();}catch(SQLException e){System.out.println("Error : "+e);}} private void kosong(){ txtnamamhs.setText(""); txtnamamtk.setText(""); txtabsen.setText("0"); txtquis.setText("0"); txttugas.setText("0"); txtuts.setText("0"); txtuas.setText("0"); txtna.setText("0"); txtnh.setText(""); txtabsen.requestFocus(); }}
Latihan :1. Perbaharui form menu anda dengan tambahkan Menu Bar “Transaksi”.2. Koneksikan menu transaksi dengan “frmTNulai.java”.
Catatan :Jika Anda tidak mempunyai file “main.java” pada project anda. Maka tambahkan file tersebut untuk dapat membuat running otomatis dengan tekan F6. cara dank ode program yang dapat anda lakukan adalah :- Tambahkan file java anda dengan klik kanan nama packages koneksi New Java
Class, berinama dengan “main.java” Finish.- Tambahkan kode program seperti gambar di bawah ini :
78
top related