Anda di halaman 1dari 19

KONEKSI DATABASE DAN APLIKASI DATABASE

A. Membuat Database pada Microsoft Access


1. Buka Microsoft Access  Klik Blank Database

Pilih

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

Browse

Create

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

DesignView

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 1


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

DataSheet View

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

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 2


B. Membuat Data Source Name pada ODBC
1. 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


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

Pilih

Pilih

5. Hingga Muncul perpus_Nim Anda pada User DSN  Ok

Muncul

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 4


C. Program Input Data Anggota
1. Buat Project Baru dan Buat JFrame dengan Nama FAnggota (Ketika di Run, Form Harus
Muncul, Caranya Lihat Modul Pertemuan Pertama)

Variable Name = txtNoAnggota


Variable Name = txtNama
Variable Name = txtAlamat

jScrollPane

2. Buat Method getData();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 5


Source code-nya sebagai berikut :
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;
}
Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 6
3. Buat Method tampilTabel();

Source Code Lengkap Sebagai Berikut :


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);
}

4. Tambahkan perintah-perintah berikut pada FAnggota.

Pada praktek ini :


Pastikan Import nya seperti ini

Tambahkan variable
table dan tabMode

Panggil method
tampilTabel();

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 7


5. Buat Event actionPerformed pada Tombol Simpan

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);
}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 8


6. Run Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 9


EDIT DATA

A. Membuat Fasilitas Edit Data

Ubah Properties enabled = false


untuk
txtNoAnggota,txtNama,txtAlamat

jScrollPane

1. Membuat Method ambilData_dari_JTable();

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);
}

2. Buat Event actionPerformed pada Tombol Edit

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();
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 10


3. Membuat Method hapusIsiJTable() dan tampilDataKeJTable()

Tambahkan Variabel conn

Buat Method Berikut :

// Method Untuk Menghapus Semua Isi JTable


public 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) {}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 11


4. Buat Method rubahData();

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
}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 12


5. Membuat Method simpanData();

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);
}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 13


6. Buat Event ActionPerformed padaTombol Simpan

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);

7. RUN Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 14


HAPUS DATA DAN PENCARIAN DATA

Enable = false Enable = false


Combo Box Text Field
VariableName=CBCari VariableName=txtCari

Untuk Combo box :


Properties Model isi dengan NoAnggota, Nama
1. Membuat Method hapus_Data();

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.. ");
}
}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 15


2. Buat Event actionPerformed pada Tombol Hapus

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


// TODO add your handling code here:
hapus_Data();
}
3. Buat Event actionPerformed pada Tombol Cari

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) {}
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 16


4. Buat Event actionPerformed pada Tombol Batal

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);
}

5. Buat Event actionPerformed pada Tombol Tambah

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);
}

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 17


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

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);
}

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

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();
}
8. RUN Program Anda

Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 18


Lab Pemrograman 3 / Syahrul Mauluddin.S.KomPage 19

Anda mungkin juga menyukai