1 JAVA OOP/Database Access/IMW/PAGI 1. 2.
Buat Database Akademik.mdb menggunakan MS.Access Buat tabel mahasiswa dengan struktur sbb: Field Nim Nama Alamat
Type Text Text Text
Size 8 50 100
Keterangan Primary key
3. •
Buat Data source Name untuk koneksi ke java netbeans, caranya: Klik menu start pilih Control Panel pilih Admministratif Tools Maka tampil seperti gambar:
•
Klik tombol Addtampil gambar:
• •
Pilih Driver “Microsoft Access Driver(*.mdb)” Klik Finish, tampil seperti gambar:
• •
Isi Data Source Name seperti gambar diatas: Kemudian pilih database dengan meng klik tombol select, tampil seperti gambar diatas:
pilih Data source(ODBC)
2 JAVA OOP/Database Access/IMW/PAGI
• • 4. 5.
Pilih Drives dimana tempat database disimpan, pilih directories(folder tempat database disimpan), dan pilih Database name Klik Ok, klik Ok lagi. Buka Netbeans kemudian buat project baru dengan nama NusaMandiri Buat file class baru simpan dengan nama koneksiDBMhs.java Ketik listingnya seperti dibawah:
package nusamandiri; import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Practice */ public class koneksiDbMhs { public Connection cn; static final String drivernya="sun.jdbc.odbc.JdbcOdbcDriver"; static final String alamatdsn="jdbc:odbc:mahasiswa"; //ini method void buka koneksi, merupakan listing membuka koneksi dengan database Access public void openConnection(){ try { Class.forName(koneksiDbMhs.drivernya); } catch (ClassNotFoundException ex) { Logger.getLogger(koneksiDbMhs.class.getName()).log(Level.SEVERE, null, ex); } try { cn=DriverManager.getConnection(koneksiDbMhs.alamatdsn,"",""); } catch (SQLException ex) { Logger.getLogger(koneksiDbMhs.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("Database Tersambung"); } //ini method void tutupkoneksi, merupakan listing penutup koneksi ke database Access public void closeConnection(){ try { if(!cn.isClosed()){
3 JAVA OOP/Database Access/IMW/PAGI cn.close(); System.out.println("Database Terputus"); } } catch (SQLException ex) { Logger.getLogger(koneksiDbMhs.class.getName()).log(Level.SEVERE, null, ex); } } } 6.
Buat form baru dengan nama FormMahasiswa.java, kemudian design seperti gambar: Jtextfield1 Name:tnim Jtextfield2 Name:tnama Jbutton1 Name:badd
Jtextarea1 Name:talamat
Jbutton2 Name:bupdate Jbutton3 Name:bdelete Tampilan setelah dijalankan
Kemudian Keting listingnya seperti dibawah: Listing FormMahasiswa.java package nusamandiri; import javax.swing.JOptionPane; public class FormMahasiswa extends javax.swing.JFrame { /** Creates new form FormMahasiswa */
Jbutton4 Name:bexit
4 JAVA OOP/Database Access/IMW/PAGI public FormMahasiswa() { initComponents(); } @SuppressWarning(“Unchecked”) classMhs cm=new classMhs(); //listing tombol Add, klik kanan pd tombol Add event Action ActionPerformed private void baddActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cm.setNim(tNim.getText()); cm.setNama(tNama.getText()); cm.setAlamat(tAlamat.getText()); if(cm.insert()){ JOptionPane.showMessageDialog(rootPane,"Data Tersimpan"); tNim.setText(""); tNama.setText(""); tAlamat.setText(""); } } //listing tnim Lostfocus, klik kanan pd textbox nim event Focus FocusLost private void tNimFocusLost(java.awt.event.FocusEvent evt) { // TODO add your handling code here: cm.setNim(tNim.getText()); if (cm.cari()){ JOptionPane.showMessageDialog(rootPane,"Data Sudah Ada"); tNim.setText(cm.getNim()); tNama.setText(cm.getNama()); tAlamat.setText(cm.getAlamat()); tNim.setEnabled(false); }else{ JOptionPane.showMessageDialog(rootPane,"Data Tidak ada,isi data lagi"); tNama.setText(""); tAlamat.setText(""); } } //listing tombol update, klik kanan pd tombol Update event Action ActionPerformed private void bupdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cm.setNim(tNim.getText()); cm.setNama(tNama.getText()); cm.setAlamat(tAlamat.getText()); if(cm.ubah()){ JOptionPane.showMessageDialog(rootPane,"Data Sudah diubah"); tNim.setEnabled(true); tNim.setText(""); tNama.setText("");
5 JAVA OOP/Database Access/IMW/PAGI tAlamat.setText(""); } } //listing tombol delete, klik kanan pd tombol delete event Action ActionPerformed private void bdeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: /* cm.setNim(tNim.getText()); cm.setNama(tNama.getText()); cm.setAlamat(tAlamat.getText());*/ if(cm.hapus()){ JOptionPane.showMessageDialog(rootPane,"Data Sudah dihapus"); tNim.setText(""); tNama.setText(""); tAlamat.setText(""); tNim.setEnabled(true); } } //listing Tombol exit, klik kanan pd tombol exit event Action ActionPerformed private void bexitActionPerformed(java.awt.event.ActionEvent evt) { System.exit(1); // TODO add your handling code here: }
7.
Buat file class baru dengan nama classMhs.java, kemudian ketik listing dibawah:
package nusamandiri; import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Practice */ public class classMhs { //ini adalah deklarasi variabel private String nim,nama,alamat; //ini adalah deklarasi constructure(penghubung antara file classMhs dengan file koneksiDBMhs) dengan c sebagai variabel private koneksiDbMhs c=new koneksiDbMhs();
public classMhs(){ //memanggil script koneksi dengan menggunakan perantara variable c yg sudah di deklarasikan di constructure c.openConnection(); }
6 JAVA OOP/Database Access/IMW/PAGI //ini adalah method yg digunakan untuk mengambil nilai yg diinput pd textbox nim dan dimasukkan pd parameter value kemudian menjadi nilai variable nim public void setNim(String value){ nim=value; } //ini adalah method untuk mengembalikan kembali nilai variable nim kepada textbox nim public String getNim(){ return nim; } //ini adalah method yg digunakan untuk mengambil nilai yg diinput pd textbox nama dan dimasukkan pd parameter value kemudian menjadi nilai variable nama public void setNama(String value){ nama=value; } //ini adalah method untuk mengembalikan kembali nilai variable nama kepada textbox nama public String getNama(){ return this.nama; } //ini adalah method yg digunakan untuk mengambil nilai yg diinput pd textarea alamat dan dimasukkan pd parameter value kemudian menjadi nilai variable alamat public void setAlamat (String value){ this.alamat=value; } public String getAlamat(){ return this.alamat; } public boolean insert(){ boolean r=false; String sql; sql="INSERT INTO Mahasiswa(nim,nama,alamat) values('"+this.nim+"','"+this.nama+"','"+this.alamat+"')"; try { Statement st=c.cn.createStatement(); st.executeUpdate(sql); r=true; } catch (SQLException ex) { Logger.getLogger(classMhs.class.getName()).log(Level.SEVERE, null, ex); System.out.println(ex.getMessage()); r=false; } return r; } public boolean cari(){ boolean x=false; String sql; sql="SELECT * from Mahasiswa WHERE nim='"+this.nim+"'";
7 JAVA OOP/Database Access/IMW/PAGI try { Statement st=c.cn.createStatement(); ResultSet rs=st.executeQuery(sql); if(rs.next()){ nim=rs.getString("nim"); nama=rs.getString("nama"); alamat=rs.getString("alamat"); x=true; }else{ nim=""; nama=""; alamat=""; } } catch (SQLException m) { System.out.println(m.getMessage()); x=false; } return x; } public boolean ubah(){ boolean u=false; String sql; sql="UPDATE Mahasiswa set nama='"+this.nama+"',alamat='"+this.alamat+"' where nim='"+this.nim+"'" ; try { Statement st=c.cn.createStatement(); st.executeUpdate(sql); u=true; } catch (SQLException ex) { Logger.getLogger(classMhs.class.getName()).log(Level.SEVERE, null, ex); System.out.println(ex.getMessage()); u=false; } return u; } public boolean hapus(){ boolean z=false; String sql; sql="delete from Mahasiswa where nim='"+this.nim+"'" ; try { Statement st=c.cn.createStatement(); st.executeUpdate(sql); z=true; } catch (SQLException ex) { Logger.getLogger(classMhs.class.getName()).log(Level.SEVERE, null, ex); System.out.println(ex.getMessage()); z=false; }
8 JAVA OOP/Database Access/IMW/PAGI return z; } }