Koneksi Database Java (Netbeans dan Access)

20
KONEKSI DATABASE DAN APLIKASI DATABASE A. Membuat Database pada Microsoft Access 1. Buka Microsoft Access Klik Blank Database 2. Pada File Name, Ketik perpustakaan Klik Tombol Browse dan cari Folder Anda untuk tempat menyimpan Database Ok Tekan Tombol Create 3. Klik Toolbar Simpan Ketik Anggota, pada Table Name Ok Klik ToolBar Design View Lab Pemrograman 3 / Syahrul Mauluddin.S.Kom Page 1 Browse Create Pili Simpan DesignVie

Transcript of Koneksi Database Java (Netbeans dan Access)

Page 1: Koneksi Database Java (Netbeans dan Access)

KONEKSI DATABASE DAN APLIKASI DATABASE

A. Membuat Database pada Microsoft Access1. Buka Microsoft Access Klik Blank Database

2. Pada File Name, Ketik perpustakaan Klik Tombol Browse dan cari Folder Anda untuk tempat menyimpan Database Ok Tekan Tombol Create

3. Klik Toolbar Simpan Ketik Anggota, pada Table Name Ok Klik ToolBar Design View

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 1

Browse

Create

Pilih

Simpan

DesignView

Page 2: Koneksi Database Java (Netbeans dan Access)

4. Buat Field Berikut: NoAnggota Data Type = Text Field Size =10Nama Data Type = Text Field Size =30Alamat Data Type = Text Field Size =50

5. Simpan Klik DataSheet View untuk isi data, silahkan isi minimal 3 data Close Microsoft Access

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 2

DataSheet View

Page 3: Koneksi Database Java (Netbeans dan Access)

B. Membuat Data Source Name pada ODBC1. Start Control Panel Administrative Tools

2. Pilih Data Source (ODBC )

3. Pilih Add Pilih Microsoft Access Driver (*.mdb, *.accdb) Finish

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 3

Page 4: Koneksi Database Java (Netbeans dan Access)

4. Ketik perpus_NIM Anda (Contoh : perpus_10508001) pada Data Source Name Klik Tombol Select Cari Database perpustakaan pada Folder Anda, pilih perpustakaan.accdb (format 2007) atau perustakaan.mdb Ok Ok

5. Hingga Muncul perpus_Nim Anda pada User DSN Ok

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 4

Pilih

Pilih

Muncul

Page 5: Koneksi Database Java (Netbeans dan Access)

C. Program Input Data Anggota1. Buat Project Baru dan Buat JFrame dengan Nama FAnggota (Ketika di Run, Form Harus

Muncul, Caranya Lihat Modul Pertemuan Pertama)

2. Buat Method getData();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 5

jScrollPane

Variable Name = txtNoAnggota

Variable Name = txtNama

Variable Name = txtAlamat

Page 6: Koneksi Database Java (Netbeans dan Access)

Source code-nya sebagai berikut :

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 6

private Object[][] getData(){ Object [][]data1=null; Connection conn; try{ //Memanggil Driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Membuat variabel bertipe Connection //Kelas Connection berfungsi menyimpan sebuah koneksi yang sudah dilakukan oleh DriverManger conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); //Membuat Variabel bertipe Statement //Kelas Statement berfungsi mengirimkan statement Query Ke Database Statement st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //Membuat Variabel Bertipe ResulSet //Kelas Resultset Berfungsi Menyimpan Dataset(Sekumpulan Data) hasil statement Query ResultSet rs=st.executeQuery("Select * from Anggota"); rs.last(); int rowcount=rs.getRow(); rs.beforeFirst(); data1=new Object[rowcount][3]; int no=-1; // Menyimpan Data dari Tabel Ke Variabel Array while(rs.next()){ no=no+1; data1[no][0]=rs.getString("NoAnggota"); data1[no][1]=rs.getString("Nama"); data1[no][2]=rs.getString("Alamat"); } // Tutup Koneksi st.close(); conn.close(); } catch (ClassNotFoundException cnfe) { // Ketika Gagal Memanggil Driver System.out.println("Class Driver tidak ditemukan.. : " + cnfe); System.exit(0); } catch (SQLException sqle) { // Ketika Gagal Sql System.out.println("Proses Query Gagal = " + sqle); System.exit(0); } catch(Exception e){ System.out.println("Koneksi Access Gagal " +e.getMessage()); System.exit(0); } return data1; }

Page 7: Koneksi Database Java (Netbeans dan Access)

3. Buat Method tampilTabel();

Source Code Lengkap Sebagai Berikut :

4. Tambahkan perintah-perintah berikut pada FAnggota.

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 7

private void tampilTabel(){ String [] JudulKolom={"No Anggota","Nama Anggota","Alamat"}; tabel=new JTable(); tabMode = new DefaultTableModel(getData(), JudulKolom){ boolean[] canEdit = new boolean [] { false, false, false }; @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }; tabel.setModel(tabMode); jScrollPane1.setViewportView(tabel);}

Pada praktek ini :Pastikan Import nya seperti ini

Tambahkan variabletable dan tabMode

Panggil method tampilTabel();

Page 8: Koneksi Database Java (Netbeans dan Access)

5. Buat Event actionPerformed pada Tombol Simpan

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 8

private void BSimpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Connection conn; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); Statement st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); int rs=st.executeUpdate("insert into Anggota values("+"'"+txtNoAnggota.getText()+ "','"+txtNama.getText()+"','"+txtAlamat.getText()+"')");

String Data[]={txtNoAnggota.getText(),txtNama.getText(),txtAlamat.getText()}; if(rs>0){ JOptionPane.showMessageDialog(this,"Input Berhasil"); // Menambah data ke jTable tabMode.addRow(Data); } st.close(); conn.close(); } catch (ClassNotFoundException cnfe) { // Ketika Gagal Memanggil Driver System.out.println("Class Driver tidak ditemukan.. : " + cnfe); System.exit(0); } catch (SQLException sqle) { System.out.println("Input Gagal = " + sqle); System.exit(0); } catch(Exception e){ System.out.println("Koneksi Gagal " +e.getMessage()); System.exit(0); } }

Page 9: Koneksi Database Java (Netbeans dan Access)

6. Run Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 9

Page 10: Koneksi Database Java (Netbeans dan Access)

EDIT DATA

A. Membuat Fasilitas Edit Data

1. Membuat Method ambilData_dari_JTable();

2. Buat Event actionPerformed pada Tombol Edit

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 10

jScrollPane

Ubah Properties enabled = falseuntuktxtNoAnggota,txtNama,txtAlamat

void ambilData_dari_JTable() { int row = tabel.getSelectedRow();

// Mengambil data-data yang dipilih pada JTable String NoAnggota = tabMode.getValueAt(row, 0).toString(); String Nama = tabMode.getValueAt(row, 1).toString(); String Alamat = tabMode.getValueAt(row, 2).toString(); txtNoAnggota.setText(NoAnggota); txtNama.setText(Nama); txtAlamat.setText(Alamat); }

private void BEditActionPerformed(java.awt.event.ActionEvent evt) { txtNoAnggota.setEnabled(false); // txtNoAnggota Tidak Aktif txtNama.setEnabled(true); // txtNama Aktif txtAlamat.setEnabled(true); // txtAlamat Aktif

BSimpan.setText("Update"); // Merubah Teks Tombol Simpan

// Memanggil Method ambilData_dari_JTable() ambilData_dari_JTable(); }

Page 11: Koneksi Database Java (Netbeans dan Access)

3. Membuat Method hapusIsiJTable() dan tampilDataKeJTable()

Buat Method Berikut :

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 11

// Method Untuk Menghapus Semua Isi JTablepublic void hapusIsiJTable() { int row = tabMode.getRowCount(); for (int i = 0; i < row; i++) { tabMode.removeRow(0); } }

// Method Untuk Menampilkan Data dari tabel Anggota Ke JTable public void tampilDataKeJTable() { hapusIsiJTable(); try { conn.close(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs = st.executeQuery("Select * from Anggota"); while (rs.next()) { String NoAnggota = rs.getString("NoAnggota"); String Nama = rs.getString("Nama"); String Alamat = rs.getString("Alamat"); String[] data = {NoAnggota, Nama, Alamat}; tabMode.addRow(data); } } catch (Exception e) {} }

Tambahkan Variabel conn

Page 12: Koneksi Database Java (Netbeans dan Access)

4. Buat Method rubahData();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 12

public void rubahData() { // Konfirmasi sebelum melakukan perubahan data int ok = JOptionPane.showConfirmDialog(this, "Anda Yakin Ingin Mengubah Data\n Dengan No Anggota = '" + txtNoAnggota.getText() + "'", "Konfirmasi ",JOptionPane.YES_NO_OPTION);

// Apabila tombol Yes ditekan if (ok == 0) { try { conn.close(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); String sql ="UPDATE Anggota SET Nama = ?, Alamat= ? WHERE NoAnggota = '" +txtNoAnggota.getText() + "'"; PreparedStatement st = conn.prepareStatement(sql); try { st.setString(1, txtNama.getText()); st.setString(2, txtAlamat.getText()); st.executeUpdate();

// Memanggil Method tampilDataKeJTable(); tampilDataKeJTable();

txtNoAnggota.setText(""); txtNama.setText(""); txtAlamat.setText(""); } catch (SQLException se) {} // Silahkan tambahkan Sendiri informasi Eksepsi } catch (ClassNotFoundException se) {} // Silahkan tambahkan Sendiri informasi Eksepsi catch (SQLException se) {} // Silahkan tambahkan Sendiri informasi Eksepsi } }

Page 13: Koneksi Database Java (Netbeans dan Access)

5. Membuat Method simpanData();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 13

public void simpanData(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan");

Statement st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); int rs=st.executeUpdate("insert into Anggota values("+"'"+txtNoAnggota.getText()+ "','"+txtNama.getText()+"','"+txtAlamat.getText()+"')");

String Data[]={txtNoAnggota.getText(),txtNama.getText(),txtAlamat.getText()}; if(rs>0){ JOptionPane.showMessageDialog(this,"Input Berhasil"); tabMode.addRow(Data); // Menambah data ke jTable } else JOptionPane.showMessageDialog(this,"Input Berhasil"); st.close(); conn.close(); } catch (ClassNotFoundException cnfe) { // Ketika Gagal Memanggil Driver System.out.println("Class Driver tidak ditemukan.. : " + cnfe); System.exit(0); } catch (SQLException sqle) { System.out.println("Proses Query Gagal = " + sqle); System.exit(0); } catch(Exception e){ System.out.println("Koneksi Gagal " +e.getMessage()); System.exit(0); } }

Page 14: Koneksi Database Java (Netbeans dan Access)

6. Buat Event ActionPerformed padaTombol Simpan

7. RUN Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 14

private void BSimpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(BSimpan.getText().equalsIgnoreCase("Simpan")) simpanData(); else rubahData();

txtNoAnggota.setEnabled(false); txtNama.setEnabled(false); txtAlamat.setEnabled(false); }

Page 15: Koneksi Database Java (Netbeans dan Access)

HAPUS DATA DAN PENCARIAN DATA

Untuk Combo box : Properties Model isi dengan NoAnggota, Nama

1. Membuat Method hapus_Data();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 15

Enable = false Enable = false

public void hapus_Data() { // Konfirmasi sebelum melakukan penghapusan data ambilData_dari_JTable(); int ok = JOptionPane.showConfirmDialog(this, "Anda Yakin Ingin Menghapus Data\nDengan No Anggota = '" + txtNoAnggota.getText() + "'", "Konfirmasi Menghapus Data", JOptionPane.YES_NO_OPTION); // Apabila tombol OK ditekan if (ok == 0) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); String sql = "DELETE FROM Anggota WHERE NoAnggota = ?"; PreparedStatement st = conn.prepareStatement(sql); st.setString(1, txtNoAnggota.getText()); st.executeUpdate();

tampilDataKeJTable(); txtNoAnggota.setText(""); txtNama.setText(""); txtAlamat.setText(""); } catch (Exception se) { // Silahkan tambahkan catch Exception yang lain JOptionPane.showMessageDialog(this,"Gagal Hapus Data.. "); } } }

Combo BoxVariableName=CBCari

Text FieldVariableName=txtCari

Page 16: Koneksi Database Java (Netbeans dan Access)

2. Buat Event actionPerformed pada Tombol Hapus

3. Buat Event actionPerformed pada Tombol Cari

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 16

private void BHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapus_Data(); }

private void BCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String sql; int pilih = CBCari.getSelectedIndex(); String cari = txtCari.getText(); try { conn.close(); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:perpustakaan"); if(pilih==0) sql ="Select * from Anggota WHERE NoAnggota ='" +txtCari.getText() + "'"; else sql ="Select * from Anggota WHERE Nama = '" +txtCari.getText() + "'";

PreparedStatement st = conn.prepareStatement(sql); ResultSet rs =st.executeQuery(); hapusIsiJTable(); while (rs.next()) { String NoAnggota = rs.getString("NoAnggota"); String Nama = rs.getString("Nama"); String Alamat = rs.getString("Alamat"); String[] data = {NoAnggota, Nama, Alamat}; tabMode.addRow(data); }

if(tabMode.getRowCount()>0) { JOptionPane.showMessageDialog(this,"Data Ditemukan "); } else JOptionPane.showMessageDialog(this,"Data Tidak Ditemukan.. ");

} catch (ClassNotFoundException se) {} catch (SQLException se) {} }

Page 17: Koneksi Database Java (Netbeans dan Access)

4. Buat Event actionPerformed pada Tombol Batal

5. Buat Event actionPerformed pada Tombol Tambah

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 17

private void BTambahActionPerformed(java.awt.event.ActionEvent evt) { // Mengatur Enable Tombol Dan Textfield txtNoAnggota.setEnabled(true); txtNama.setEnabled(true); txtAlamat.setEnabled(true); BSimpan.setText("Simpan");

BTambah.setEnabled(false); BSimpan.setEnabled(true); BEdit.setEnabled(false); BBatal.setEnabled(true); BHapus.setEnabled(false); BClose.setEnabled(false);}

private void BBatalActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: txtNoAnggota.setText(""); // txtNoAnggota Tidak Aktif txtNama.setText(""); // txtNama Aktif txtAlamat.setText("");

// Mengatur Enable Tombol Dan Textfield txtNoAnggota.setEnabled(false); txtNama.setEnabled(false); txtAlamat.setEnabled(false);

BTambah.setEnabled(true); BSimpan.setEnabled(false); BEdit.setEnabled(true); BBatal.setEnabled(false); BHapus.setEnabled(true); BClose.setEnabled(true); }

Page 18: Koneksi Database Java (Netbeans dan Access)

6. Rubah perintah pada tombol Simpan, sehingga menjadi seperti berikut :

7. Rubah perintah pada tombol Edit, sehingga menjadi seperti berikut :

8. RUN Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 18

private void BSimpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(BSimpan.getText().equalsIgnoreCase("Simpan")) simpanData(); else rubahData();

txtNoAnggota.setText(""); // txtNoAnggota Tidak Aktif txtNama.setText(""); txtAlamat.setText("");

txtNoAnggota.setEnabled(false); txtNama.setEnabled(false); txtAlamat.setEnabled(false);

BTambah.setEnabled(true); BSimpan.setEnabled(false); BEdit.setEnabled(true); BBatal.setEnabled(false); BHapus.setEnabled(true); BClose.setEnabled(true); }

private void BEditActionPerformed(java.awt.event.ActionEvent evt) { txtNoAnggota.setEnabled(false); txtNama.setEnabled(true); txtAlamat.setEnabled(true);

BSimpan.setText("Update");

BTambah.setEnabled(false); BSimpan.setEnabled(true); BEdit.setEnabled(false); BBatal.setEnabled(true); BHapus.setEnabled(false); BClose.setEnabled(false);

// Memanggil Method ambilData_dari_JTable() ambilData_dari_JTable(); }

Page 19: Koneksi Database Java (Netbeans dan Access)

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 19