You are on page 1of 19

by bahrie in Java, Java Programming, Netbeans, Pemrograman Kaitkata:aplikasi database sederhana dijava, aplikasi gui java sederhana

, belajar konsep jdbc, belajar mudah dao jdbc java, mudah belajar konsep jdbc Sudah lama saya ingin memostingkan hal ini tapi blum kesampean karena terlalu rumit untuk di posting..hehe semoga hari ini bisa terpostingkan dengan baik.. Disini saya menggunakan database MySQL. dan DAO(Data akses object) menggukan JDBC(java database connection) serta editornya menggunakan IDE Netbeans 6.9 . program ini bagus untuk belajar konsep jdbc atau konsep koneksi database dijava, karena framework yang beredar untuk memudahkan dalam urusan database juga pada dasarnya adalah jdbc. dan supaya kalau saya lupa bisa buka blog saja dari pada buka program dinetbeans..hehee,, program ini sudah berupa GUI (grapical user interface) jadi mudah untuk pahami dan di analisis.. untuk dibawah ini saya berikan sourcodenya, dan untuk analisis sourcecode ataupun alasisis programnya ada disini.

pertama kita buat databasenya dahulu. silahkan masuk keroot database anda..menggunakan console/command prompt bisa atau menggunakan phpmyadmin juga boleh : dibawah saya contohkan yang menggunakan console.
>create database sisteminformasi; >use sisteminformasi; >create table mahasiswa(nim varchar(15) primary key not null, nama varchar(50) not null, alamat varchar(100) not null);

} public void setAlamat(String alamat) { this. } public void setNama(String nama) { this. private String alamat. } public String getNim() { return nim. } public String getNama() { return nama.setelah itu buat project anda di netbeans.entity. public String getAlamat() { return alamat.. pertama kita buat class Mahasiswa.java package bahrie. /** * * @author bahrie */ public class Mahasiswa { private String nim. .nama = nama.9. saat saya memostingkan artikel ini netbeans sudah realease netbeans 6. private String nama.alamat = alamat.1 setelah membuat project silahkan buat package package yang dibutuhkan. untuk nama package terserah anda.

java. java.util. dan di netbeans untuk membuat interface menggunakan cara New -> Java Interface.Statement.model.entity.entity.ResultSet.} public void setNim(String nim) { this.List. import java. /** * * @author bahrie */ public interface DataInterface { public void connect() throws SQLException.List.util.Mahasiswa.nim = nim.logging.PreparedStatement.sql.sql..util. String nama. String alamat) { this.sql. import java..DriverManager.nama = nama. } } setelah itu buat interface untuk dao nya. java. public void insert(Mahasiswa mahasiswa) throws SQLException.Logger. } public Mahasiswa() { } public Mahasiswa(String nim. public List read() throws SQLException. java. java.logging. import import import import import import import import import import import bahrie. this.sql.Level.ArrayList. } setelah interface kita buat DAO nya dengan nama class DaoMySql.alamat = alamat.util. import bahrie.nim = nim. java. public Mahasiswa read(String nim) throws SQLException. . public void delete(String nim) throws SQLException. java. dengan nama DataInterface.java package bahrie. java.Connection.sql. Mahasiswa mahasiswa) throws SQLException.model. java. package bahrie.sql.sql. java.Mahasiswa. this.SQLException. public void disconnect() throws SQLException. public void update(String nim.java ingat interface beda dengan class.util.SQLException.

getString("alamat")).class. } public void connect() throws SQLException { this.SEVERE.Driver"). } public List read() throws SQLException { Statement st = conn. String sql = "select *from mahasiswa". } public void insert(Mahasiswa mahasiswa) throws SQLException { String sql = "insert into mahasiswa (nim. ex).setAlamat(rs.prepareStatement(sql). } public void disconnect() throws SQLException { this. ex).createStatement(). } catch (ClassNotFoundException ex) { Logger.log(Level.conn = conn. null. null. PreparedStatement ps = this. String dbUser = "root".SEVERE.executeQuery(sql). dbPass).getString("nama")).forName("com.getName()).newInstance(). while (rs.SEVERE.mysql.getLogger(DaoMySql. dbUser.getLogger(DaoMySql. } } public DaoMySql(Connection conn) { this. .class.class.conn. mhs.close(). ex).jdbc.getConnection(dbHost.next()) { Mahasiswa mhs = new Mahasiswa().getLogger(DaoMySql. null.conn.setNama(rs. } return list. } catch (IllegalAccessException ex) { Logger.log(Level. } } catch (InstantiationException ex) { Logger.setNim(rs. mhs. mhs.getName())./** * * @author bahrie */ public class DaoMySql implements DataInterface { private private private private String dbHost = "jdbc:mysql://localhost:3306/sisteminformasi".add(mhs).getString("nim")).conn = DriverManager. alamat) values(?. Connection conn. List list = new ArrayList().?). nama.". String dbPass = "root". public DaoMySql() { try { try { Class. ResultSet rs = st. list.getName()).?.log(Level.

Logger.entity.. ResultSet rs = ps.model. } return mahasiswa. java.executeUpdate().conn..setString(1.TableModelMahasiswa. mahasiswa.setNama(rs. ps. ps.logging.util.util.nama=?. mahasiswa.Level.setString(1. package bahrie. ps.SQLException. bahrie.prepareStatement(sql). Mahasiswa mahasiswa) throws SQLException { String sql = "update mahasiswa set nim=?.executeQuery(). ps.ListSelectionEvent.getString("nama")).event.setString(2.next()) { mahasiswa. nim).setNim(rs.executeUpdate().prepareStatement(sql). Mahasiswa mahasiswa = new Mahasiswa(). mahasiswa.Mahasiswa.setString(4.util.conn.swing.DataInterface. while (rs.setString(1.model. javax.swing. PreparedStatement ps = this.JOptionPane. silahkan masuk New -> JFrame Form disini saya beri nama Contoh. javax. } public void delete(String nim) throws SQLException { String sql = "delete from mahasiswa where nim=?".alamat=? where nim=?". mahasiswa. java.getString("nim")).setString(3.util. nim).setString(2. mahasiswa. bahrie.List. java.getAlamat()). nim). PreparedStatement ps = this.getAlamat()). .getNim()).logging. ps.java tampilannya seperti diatas dan dibawah ini adalah sourcecode yang ada dibelakang desaign.getNama()). import import import import import import import import import import import bahrie.ArrayList.executeUpdate().DaoMySql. mahasiswa. ps. } public Mahasiswa read(String nim) throws SQLException { String sql = "select *from mahasiswa where nim = ?". java.setString(3.getNim()).getString("alamat")).setAlamat(rs. ps. sekarang kita buat viewnya atau desaign tampilannya.ps.sql. mahasiswa.model. ps.conn.view. PreparedStatement ps = this. ps. } } setelah dao nya jadi.prepareStatement(sql). bahrie. java. } public void update(String nim. ps. mahasiswa.setString(1.getNama()). ps.

private void buttonTambahActionPerformed(java.getText(). txtAlamat. } void kosongkanTeks() { txtNim. Mahasiswa mhs = new Mahasiswa(). List list = new ArrayList(). tabelMhs. /** * * @author bahrie */ public class Contoh extends javax.read(). ex). } catch (SQLException ex) { Logger. } void loadData() { try { daoMysql.SEVERE.getText().event.getText().isEmpty()) { // TODO add your handling code here: daoMysql.disconnect(). } } //disini terdapat generet dari netbeans. /** Creates new form Contoh */ public Contoh() { initComponents().swing. TableModel tableModel = new TableModelMahasiswa(list).awt. txtNama.JFrame { DataInterface daoMysql = new DaoMySql(). jadi nanti akan otomatis ada. import javax.ActionEvent evt) { try { if (!txtNim.connect().setText(""). TableModelMahasiswa tableModelMahasiswa. .setText("").table. } public TableModelMahasiswa getTableModelMahasiswa() { return tableModelMahasiswa.class.TableModel.import javax.swing. null.isEmpty() && !txtAlamat.isEmpty() && !txtNama.getLogger(Contoh. List records = new ArrayList(). loadData(). daoMysql. list = daoMysql.tableModelMahasiswa = tableModelMahasiswa.ListSelectionListener.log(Level.getName()).setText("").setModel(tableModel).event.connect().swing. } public void setTableModelMahasiswa(TableModelMahasiswa tableModelMahasiswa) { this.

setNim(txtNim. .read(nim).showConfirmDialog(this.log(Level. mhs1).event. JOptionPane.class. txtNim.getName()).equals("Update")) { records = daoMysql. mhs1. } else { Mahasiswa mhs1 = new Mahasiswa(). JOptionPane. } } daoMysql.setText(mhs.getText()). null.kosongkanTeks(). int index = tabelMhs.read().getText()).ActionEvent evt) { // TODO add your handling code here: int index = tabelMhs.getLogger(Contoh.OK_CANCEL_OPTION) == 0) { daoMysql.ActionEvent evt) { try { daoMysql.get(index). "Salah".event.getText(). "konfirmasi update".get(index). if (JOptionPane. if (buttonUptade. txtAlamat.setAlamat(txtAlamat. loadData().getText()).getNim(). } else { JOptionPane. Mahasiswa mhs = daoMysql.insert(mhs).setAlamat(txtAlamat.setText("Update").SEVERE. } } private void buttonDeleteActionPerformed(java. loadData().awt.kosongkanTeks(). mhs. "apakah anda yakin untuk melakukan update". buttonUptade.getNim()).showMessageDialog(null.ERROR_MESSAGE).setNama(txtNama. mhs.setText("Simpan").mhs.getText()). } this. mhs1. buttonUptade.getSelectedRow(). String nim = mahasiswa.getNim().getAlamat()). mhs1.connect(). "Data berhasil di update").getSelectedRow(). daoMysql. } catch (SQLException ex) { } } private void buttonUptadeActionPerformed(java. Mahasiswa mahasiswa = records.getNama()). "Harus diisi semua".getText()).awt.getText()).setNim(txtNim.setText(mhs.setText(mhs.showMessageDialog(this. this.setNama(txtNama. JOptionPane. txtNama.update(records. } catch (SQLException ex) { Logger.disconnect(). ex).

ex). } } /** * @param args the command line arguments */ public static void main(String args[]) { java. private javax.List.do not modify private javax. } catch (SQLException ex) { // Logger. private javax. private javax.connect().swing.ERROR_MESSAGE). .awt. // End of variables declaration } setelah itu kita buat class TableModelMahasiswa.setVisible(true).JButton buttonDelete. } // Variables declaration .try { if (JOptionPane.swing. import import import import /** * bahrie. private javax.AbstractTableModel.log(Level. } }). java.swing.JLabel labelNama.swing. "data belum dipilh".JPanel jPanel1. private javax. private javax.get(index).util. private javax. private javax.swing.swing. null. "konfirmasi penghapusan". JOptionPane.class.getNim()). package bahrie.JButton buttonUptade.invokeLater(new Runnable() { public void run() { new Contoh().JTextField txtNama.entity.JScrollPane jScrollPane1. "error".swing. "apakah anda yakin untuk menghapus data".swing. JOptionPane. JOptionPane.read(). } loadData(). private javax.java untuk mengurusi table yang ada di view.swing.JTable tabelMhs. java. private javax. javax. JOptionPane.SEVERE.EventQueue.swing.Mahasiswa.OK_CANCEL_OPTION) == 0) { daoMysql. "data berhasil di hapus").showMessageDialog(null.swing.JLabel labelAlamat.ArrayList. records = daoMysql.util.. daoMysql.getName()).showConfirmDialog(this.table.showMessageDialog(this. private javax.getLogger(Contoh.delete(records.JLabel jLabel1.swing.swing.JTextField txtNim. private javax.swing.model.JTextField txtAlamat.JButton buttonTambah.JLabel labelNim.

case 1: return list. public TableModelMahasiswa(List list) { this.get(rowIndex). } public Mahasiswa select(int index) { return list. } } } untuk code yang ada di view dan tabelmodel pembuatannya saling bergantian untuk saling melengkapi.get(rowIndex). } public int getColumnCount() { return 3. default: return null..getNama(). default: return null.getNim().get(index). selamat mencoba. case 1: return "Nama". jangan lupa librarynya harus diisi jdbc connector. int columnIndex) { switch (columnIndex) { case 0: return list. } } @Override public String getColumnName(int column) { switch (column) { case 0: return "Nim".getAlamat(). case 2: return "Alamat".list = list.size().. } public Object getValueAt(int rowIndex.* @author bahrie */ public class TableModelMahasiswa extends AbstractTableModel { List list = new ArrayList(). } public TableModelMahasiswa() { } public int getRowCount() { return list.get(rowIndex).. case 2: return list. .

sourcecodenya ada dibawah ini : .

control). package bahrie. String alamat) { this.nama = nama. } public void setNama(String nama) { this. String nama. this. jadi kita buat modelnya dulu. dimodel juga terdpat class Mahasiswa. di tabel mahasiswa ada field nim. } public Mahasiswa() { } public Mahasiswa(String nim. private String alamat.alamat = alamat.. private String nama.nim = nim.in Database. disini saya akan mencoba ulas bagimana jalan program tersebut(algoritmanya): pertama kita membuat database untuk tempat penyimpanan data. diclass pun sama ada nim. alamat. Java Programming. alamat. } public void setAlamat(String alamat) { this.. jdi class tersebut mepresentasikan tabel yg ada didatabase. view. public String getAlamat() { return alamat.entity. } public String getNama() { return nama.nim = nim.nama = nama. /** * * @author bahrie */ public class Mahasiswa { private String nim. dan disini saya memakai mysql karena database ini adalah database jaringan serta free. analisis program database java Sebelumnya saya pernah ngepost tulisan program insert update delete dijava dan saya cuma kasih sourcecodenya. Pemrograman Kaitkata:algoritma insert update delete dijava. . analisis dao. nama . contoh didatabase ad tabel mahasiswa. jadi nanti data yg diketikan ataupun yang dimapilkan semua itu berada di database. } public String getNim() { return nim. nama . } public void setNim(String nim) { this. model disini yang saya maksud adalah class yang menggambarkan satu tabel yang ada didalam database. karena dijava dikenal konsep MVC(model.

List. class inilah yang nantinya akan menjadi jembatan antara data yang ada didatabase dengan aplikasi yang sedang berjalan. sekrang pengen oracle jadi mudah. ini adalah salah satu prinsip inkapsulasi dijava.cuma dalam statemennya yang berbeda. setelah class yang merepresentasikan table selesai. /** * @author bahrie */ public interface DataInterface { public void connect() throws SQLException. lalu DAO(data akses objek) nya mengambil data dari kelas untuk dimasukkan ke dalam database.. import java. ini untuk melindungi data yang ada diclass.util. karena sudah ada interfacenya tinggal ganti instansiasinya. update delete. jadi data yang masuk ke database juga harus melalui proses yang benar. nah interface ini dapat di implementasikan kedalam class DOA untuk Mysql.sql. } } dalam sourcecode diatas terdapat metode yang berawalan set dan get. karena dengan interface kita mudah untuk merubah rubah bentuk objek. dengan demikian data yang masuk kedalam database bukan dari yang langsung dari aplikasi. Postgres. tapi diolah dulu dijadikan objek untuk seterusnya dipindahkan ke database.Mahasiswa.. tapi bisa diimplementasikan oleh class class lain yang mempunyai cara kerja yang sama atau yang mempunyai aturan yang sama. yang dulunya databsenya mysql. data yang diinputkan di aplikasi pertamatama masuk ke class Mahasiswa.alamat = alamat. ataupun databse lainnya. harus melalui proses setter dan getter untuk mengambil dan mengisi data ke variable yang ad didlam kelas... dalam contoh program yg sdg dianalisis ini interface serta implementasinya dapat dilihat dibawah interface: package bahrie. Oracle. import java. Interface disini tidak hanya untuk di implementasikan class DAO saja. jadi tidak sembarng class yang bisa langsung mengisi atau menghapus data yang ada di variable. import bahrie.model. cara ini bukan bermaksud memperlama proses namun dibalik itu semua banyak keuntungan keuntungan dan kemudahan dalam proses selanjutnya. interface disini dimksudkan untuk membuat aturan-aturan yang nanti akan di implementasikan oleh class DOA. contoh kita mempunyai interface database yang isi metode nya ada insert.entity. interface ini nantinya yang akan memudahkan kita untuk memakai konsep polimorfism(merubah bentuk) dalam java. metode tersebut adalah mekanisme class java untuk melalukan masukan data dan ambil data dari variable yang ada diclass.SQLException. . gambarannya begini. untuk maslah apa itu interface sudah pernah saya bahas dipostingan sebelumnya.this. yang tadinya ke mysql sekarrng ke oracle. selanjutnya kita buat Interface. ini adalah tahaptahap standar dijava karena java sudah punya konsep yang stabil.

log(Level.Driver").sql.sql.getLogger(DaoMySql. import import import import import import import import import import import bahrie.sql.getName()).newInstance(). dbPass).sql. public Mahasiswa read(String nim) throws SQLException.getConnection(dbHost. } implementasinya : package bahrie.forName("com. dbUser. ex). public void insert(Mahasiswa mahasiswa) throws SQLException.getName()).getName()).Mahasiswa. ex). java. null.jdbc. } . null. } catch (IllegalAccessException ex) { Logger.public void disconnect() throws SQLException.getLogger(DaoMySql.SQLException.util. Mahasiswa mahasiswa) throws SQLException. ex).sql.class.ResultSet.SEVERE.Connection.util.conn = DriverManager.util.log(Level.List. String dbUser = "root".Level.mysql. Connection conn. } catch (ClassNotFoundException ex) { Logger. } } catch (InstantiationException ex) { Logger. java. java.getLogger(DaoMySql.util.Statement.logging. java. java.ArrayList. java. } public void connect() throws SQLException { this. public DaoMySql() { try { try { Class. null.SEVERE.model. String dbPass = "root". java. public void update(String nim. } } public DaoMySql(Connection conn) { this.sql.SEVERE.DriverManager. public void delete(String nim) throws SQLException.entity. java. java.class.log(Level. /** * @author bahrie */ public class DaoMySql implements DataInterface { private private private private String dbHost = "jdbc:mysql://localhost:3306/sisteminformasi".class.logging.conn = conn. java. public List read() throws SQLException.PreparedStatement.Logger.

executeUpdate(). PreparedStatement ps = this.nama=?.prepareStatement(sql). } public void delete(String nim) throws SQLException { String sql = "delete from mahasiswa where nim=?". mahasiswa. mahasiswa.getString("nama")). ps. } public void insert(Mahasiswa mahasiswa) throws SQLException { String sql = "insert into mahasiswa (nim. mahasiswa.?.conn.conn. mahasiswa.getAlamat()). list. mhs.setString(2.setString(1.setNim(rs.getString("nim")).?). ps. Mahasiswa mahasiswa = new Mahasiswa().close().setString(3. while (rs.getString("nama")). } public void update(String nim.alamat=? where nim=?".getString("alamat")).conn.executeUpdate(). nim).setNama(rs. } public List read() throws SQLException { Statement st = conn.conn. String sql = "select *from mahasiswa". ps.getString("alamat")).next()) { mahasiswa.getString("nim")).setAlamat(rs. mahasiswa.executeQuery().setAlamat(rs. } return list.prepareStatement(sql).conn. while (rs. ps. ps.setString(1.getNama()). alamat) values(?.setNama(rs. ps. nim). mahasiswa. ps.executeUpdate(). List list = new ArrayList(). } return mahasiswa.getNim()). ResultSet rs = ps.getNim()). ps. ResultSet rs = st.getAlamat()).createStatement().add(mhs). mahasiswa.setNim(rs. nim).public void disconnect() throws SQLException { this. PreparedStatement ps = this. PreparedStatement ps = this. ps.prepareStatement(sql). ps.setString(1. } public Mahasiswa read(String nim) throws SQLException { String sql = "select *from mahasiswa where nim = ?".getNama()).". . mhs.setString(3. nama.next()) { Mahasiswa mhs = new Mahasiswa().setString(2.prepareStatement(sql). ps. ps. Mahasiswa mahasiswa) throws SQLException { String sql = "update mahasiswa set nim=?.setString(4. mahasiswa. PreparedStatement ps = this. mhs.executeQuery(sql).setString(1.

jadi bila row 1 dan kolom 0 maka yang ditampilin adalah list.1. disini kolom dimulai dari angka nol(0) jadi kalo ada tiga kolom cara menyebutkannya adalah 0.get(rowIndex).. prosesnya sebagai berikut : data yang didalam tabel database diload kedalam list yang ada ditablemodel. tabelmodel ini nantinya yang mengurusi berapa jumlah kolom dan row yang dibutuhkan dan nama setiap kolom juga diatur disini dengan cara mengoverride yang sudah ada menjadi nama kolom yang kita inginkan. caranya juga hampir sama . untuk kolomnya sudah ditentuin terlebih dahulu karena kita yang buat.} } setelah interface dan implementasinya selesai.get(rowIndex). dan alamat.getAlamat(). lalu setelah itu kita buat nama kolom sesuai yang kita inginkan sengan car override colomname. untuk tabel ini kita buat 3 kolom karena hanya nim. dan row 1 colom 2 list.getNama(). data yang tampil di table GUI tersebut nanti yang ngurusin adalah si tablemodel tersebut. nama . selanjutnya untuk mengisi kedalam row dan colom kita menggunakan swicth(percabangan didalam java). disini nama kolom-kolomnya dalah nim. nanti table guinya tinggal panggil aja tuh table model. lalu list tersebut nanti yang akan dipakai untuk ditampilkan di guinya. dan alamat. kalau data yang ada ditabel database ada 10 row maka list tersebut juga terdapat 10 row dan seterusnya. selanjutnya kita buat viewnya atau GUI nya atau Visualnya : dapat dilihat dibawah visual yang saya buat : sebelum kita koding dibalik guinya kita buat dulu tablemodel untuk mempermudah data masuk kedalam tabel yang ad di gui tersebut. lalu row 1 colom 1 list.get(rowIndex).getNim().nama.2. disourcecode bisa dilihat yang ada tanda @override.

case 1: return list. case 2: return list.dengan memasukkan data.util.size().swing. int columnIndex) { switch (columnIndex) { case 0: return list.util. } } @Override public String getColumnName(int column) { switch (column) { case 0: return "Nim". /** * @author bahrie */ public class TableModelMahasiswa extends AbstractTableModel { List list = new ArrayList(). } public TableModelMahasiswa() { } public int getRowCount() { return list. } public int getColumnCount() { return 3.model.get(rowIndex).get(index). java.getAlamat().list = list. import import import import bahrie.AbstractTableModel. } public Object getValueAt(int rowIndex.getNama(). bedanya disini niliai kembaliannya dalah String atau kumpulan karakter. javax.Mahasiswa.getNim(). case 1: return "Nama".table.ArrayList. dan dibawah inilah sourcecodenya : package bahrie.get(rowIndex). public TableModelMahasiswa(List list) { this. .get(rowIndex). java. case 2: return "Alamat".entity. } public Mahasiswa select(int index) { return list.List. default: return null.

mahasiswa menuju tabelmodel dan tabelmodel menuju tabel yang ada diGUi untuk ditampilkan. setelah itu databse menuju class Mahasiswa. dibawah ini akan saya pisahpisah sourcecode untuk tiap tombol.. data yang dipilih lalu masuk kedalam teksfield dan diubah lalu di kirim ke class Mahasiswa dan diupdatekan ke database lalu dari database masuk lagi ke class Mahasiswa dan dimasukan ke tabelmodel dan dipanggil ke GUI untuk ditampilkan. .connect().setText(""). bisa langsung dipanggil.tableModelMahasiswa = tableModelMahasiswa. untuk variable dan code yang dibutukan setelah class gui dijalankan : DataInterface daoMysql = new DaoMySql(). txtNama. } public void setTableModelMahasiswa(TableModelMahasiswa tableModelMahasiswa) { this. List records = new ArrayList(). untuk pertama kelas gui ini dibuka juga terdapat perintah yang tidak boleh ditinggalkan. loadData().setText(""). TableModelMahasiswa tableModelMahasiswa. untuk tombol update juga prinsipnya sama. } public TableModelMahasiswa getTableModelMahasiswa() { return tableModelMahasiswa.read().default: return null. untuk delete juga. list = daoMysql. List list = new ArrayList().setText(""). intinya tombol ini yang nantinya akan mengirim data yang ada di teksfield masuk kedalam class Mahasiswa lalu dimasukkan kedlam database. TableModel tableModel = new TableModelMahasiswa(list). lalu database diambil dimasukkan kedlam class Mahasiswa lagi dan di masukkan kedalam list yang ada didalam tabelmodel dan ditampilkan lagi ke tabel yang ada diGUI. /** Creates new form Contoh */ public Contoh() { initComponents(). txtAlamat. } void loadData() { try { daoMysql. } void kosongkanTeks() { txtNim. tabelMhs.disetiap tombol diclik kanan pilih event terus action nanti akan masuk kedalam bagian belakangnya GUInya.setModel(tableModel). untuk tombol tambah.. } } } setelah itu kita masuk ke koding GUInya.// ini adlah metode yang saya buat ad dibawah. data yang dipilih dibaca primary keynya lalu di hapus dari database.

getNim().getNama()).getText()).getText()).setText("Simpan"). JOptionPane.getText(). if (buttonUptade.setText(mhs.read(). loadData().getName()).setText(mhs.getText()). Mahasiswa mahasiswa = records. int index = tabelMhs.insert(mhs).kosongkanTeks().showConfirmDialog(this. } } code untuk tombol tambah : try { if (!txtNim. JOptionPane.log(Level.getLogger(Contoh.setNama(txtNama. loadData(). txtNim. "apakah anda yakin untuk melakukan update".SEVERE. } } .kosongkanTeks().disconnect(). } this.setText(mhs.read(nim).getText()). String nim = mahasiswa. JOptionPane. } catch (SQLException ex) { Logger. buttonUptade.connect(). mhs1. buttonUptade.setText("Update").get(index).get(index).getText().getNim(). txtNama.getNim()).setNama(txtNama. "Harus diisi semua". mhs1. } catch (SQLException ex) { } code untuk tombol update : try { daoMysql. mhs1. "konfirmasi update". } else { Mahasiswa mhs1 = new Mahasiswa(). mhs. "Data berhasil di update"). ex).class.isEmpty() && !txtNama.getText(). txtAlamat.setAlamat(txtAlamat. mhs. mhs. null.ERROR_MESSAGE).getAlamat()). mhs1). } else { JOptionPane. this. "Salah".showMessageDialog(this.OK_CANCEL_OPTION) == 0) { daoMysql.getSelectedRow(). Mahasiswa mhs = daoMysql. daoMysql.getText()).isEmpty() && !txtAlamat.getText().isEmpty()) { // TODO add your handling code here: daoMysql.update(records.daoMysql.getText()).setNim(txtNim.showMessageDialog(null. Mahasiswa mhs = new Mahasiswa().setAlamat(txtAlamat.setNim(txtNim. if (JOptionPane.equals("Update")) { records = daoMysql.connect().

showMessageDialog(null.getName()). Alhamdulillah akhirnya saya tulis juga analisisnya. ex). ex).showMessageDialog(this. } loadData().OK_CANCEL_OPTION) == 0) { daoMysql.hehehe silahkan download sourcenya .getNim()).read().SEVERE.daoMysql.disconnect(). terimaksih. null.connect()..class. } catch (SQLException ex) { Logger. try { if (JOptionPane.ERROR_MESSAGE). "konfirmasi penghapusan".getLogger(Contoh.delete(records. bila ada yang ingin ditanyakan atau ata saran/kritik bisa tullis dikoment. JOptionPane.getLogger(Contoh.log(Level. JOptionPane. } catch (SQLException ex) { Logger. JOptionPane.class. null.getSelectedRow(). "data belum dipilh". } code untuk tombol delete : int index = tabelMhs.get(index). records = daoMysql.log(Level. "data berhasil di hapus").getName()). "error". JOptionPane. daoMysql. } cukup disini pembahasan dari saya.SEVERE.showConfirmDialog(this. "apakah anda yakin untuk menghapus data".