udah dulu deh gan curcolnya :D ... pada postingan kali ini ane mau ngasi contoh program Aplikasi CRUD (Cread, Read, Update, Delete) Java dan Koneksi Java - Mysql
sebelumnya ente harus buat dulu database untuk manipulasi datanya, kalo gak ada databasenya pa yang mau di manipulasi ??? hehehee...
create database if not exists `kantor`; USE `kantor`; CREATE TABLE `pegawai` ( `kodepegawai` int(3) NOT NULL, `namapegawai` varchar(50) DEFAULT NULL, `jeniskelamin` varchar(10) DEFAULT NULL, PRIMARY KEY (`kodepegawai`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;kemudian isi dengan beberapa data
insert into `pegawai`(`kodepegawai`,`namapegawai`,`jeniskelamin`) values (1,'Untung Slamet','Pria'),(2,'Yanti Puspita','Wanita'),(3,'Joko Siswanto','Pria');kalo udah sekarang ente harus menyediakan connector jdbc agar project java ente terhubung dengan database... Kalo ente pake netbeans versi 6 keatas (kalo gak salah) udah disediain Connector nya... sekarang ane kasi tau caranya import connectornya ke dalam project...
- Click kanan pada folder Libreries, kemudian Click add Library....
- Pilih Mysql JDBC Driver
- Kalo berhasil di folder Libreries akan ada file Mysql JDBC Driver - Mysql Connector
Komponen Form :
- Jtextfield Kode Pegawai
- Jtextfield Nama Pegawai
- JradioButton Pria
- JradioButton Wanita
- Buttongrup(untuk Jradiobutton pria dan wanita)
- Button Simpan
- Button Update
- Button Delete
- Button Cari
- Button Bersih
import java.sql.*; import java.util.ArrayList; import java.util.List; import javax.swing.JOptionPane; import javax.swing.table.TableModel;
Kemudian ente buat 2 Class... nanti ane jelasin kegunaan 2 Class ini... yang peting ente buat dulu 2 Class ini
Class yang pertama ente kasi nama L_Pegawai
public class L_Pegawai { private String kodepagawai,namapegawai,jeniskelamin; public void setKodePegawai(String kodepagawai){ this.kodepagawai = kodepagawai; } public String getKodePegawai(){ return this.kodepagawai; } public void setNamaPegawai(String namapegawai){ this.namapegawai = namapegawai; } public String getNamaPegawai(){ return this.namapegawai; } public void setJenisKelamin(String jeniskelamin){ this.jeniskelamin = jeniskelamin; } public String getJenisKelamin(){ return this.jeniskelamin; } }Class yang ke 2 ente kasi nama TmodelPegawai
import java.util.List; import javax.swing.table.AbstractTableModel; public class TmodelPegawai extends AbstractTableModel { private List<L_Pegawai> list; public TmodelPegawai(List<L_Pegawai> list) { this.list = list; } public int getRowCount() { return list.size(); } public int getColumnCount() { return 3; } public Object getValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0: return list.get(rowIndex).getKodePegawai(); case 1: return list.get(rowIndex).getNamaPegawai(); case 2: return list.get(rowIndex).getJenisKelamin(); default: return null; } } @Override public String getColumnName(int column) { switch (column) { case 0: return "Kode Pegawai"; case 1: return "Nama Pegawai"; case 2: return "Jenis Kelamin"; default: return null; } } }Fungsi dari 2 Class tersebut adalah sebagai object penampung data yang telah kita panggil dari database yang kita tampilkan pada Jtable... Coba nanti ente Analisa sendiri deh :D pokok nya bahasa gampangnya gitu...
Setelah itu ente tambahin beberapa Object yang akan membantu kita menghubungkan project kita dengan mysql di bawah Constructor... gak tau Construktor ??? kalo gak tau silahkan baca postingan ane yang membahas tentang dasar pemrograman Java, C# dan C++.... Tambahkan Beberapa object berikut
private Connection koneksi; private ResultSet hasil; private Statement stat; private String query,url,database; private L_Pegawai pegawai; private List<l_pegawai> list; private TableModel model;Kalo Udah Tambahkan kode barikut didalam Constructor...
buttonGroup1.add(radiobutton_pria); buttonGroup1.add(radiobutton_wanita); try{ database= "kantor"; url = "jdbc:mysql://localhost:3306/"+database; Class.forName("com.mysql.jdbc.Driver"); koneksi = DriverManager.getConnection(url, "root", ""); }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }catch(ClassNotFoundException ex){ JOptionPane.showMessageDialog(null, ex); }Sekarang ente bangkitin semua event Action Performed pada semua button dan event WindowOpened... Ini kode yang ada pada WindowOpened
try{ query = "select * from pegawai"; stat = koneksi.createStatement(); hasil = stat.executeQuery(query); this._setModel(hasil); btn_simpan.setEnabled(true); btn_update.setEnabled(false); btn_delete.setEnabled(false); btn_bersih.setEnabled(false); btn_cari.setEnabled(true); text_kodepegawai.setText(""); text_kodepegawai.setEnabled(true); text_kodepegawai.requestFocus(); text_namapegawai.setText(""); buttonGroup1.clearSelection(); }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }Ini kode yang ada di event Action Performed Button Simpan
try{ String j_kelamin = ""; if(radiobutton_pria.isSelected()){ j_kelamin = "Pria"; }else if(radiobutton_wanita.isSelected()){ j_kelamin = "Wanita"; }else{} if(text_kodepegawai.getText().equals("") && text_namapegawai.getText().equals("") || j_kelamin.equals("")){ JOptionPane.showMessageDialog(null, "data Tidak lengkap"); }else{ query = "insert into pegawai values ('"+text_kodepegawai.getText()+"','"+text_namapegawai.getText()+"','"+j_kelamin+"')"; stat = koneksi.createStatement(); int res = stat.executeUpdate(query); if(res == 1){ JOptionPane.showMessageDialog(null, "Insert Data Sukses !"); formWindowOpened(null); } } }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }Ini kode yang ada di event Action Performed Button Cari
try{ String j_kelamin = ""; if(text_kodepegawai.getText().equals("")){ JOptionPane.showMessageDialog(null, "Tidak Ada data Yang Anda Pilih"); }else{ query = "select * from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'"; stat = koneksi.createStatement(); hasil = stat.executeQuery(query); while(hasil.next()){ text_namapegawai.setText(hasil.getString("namapegawai")); j_kelamin = hasil.getString("jeniskelamin"); } if(j_kelamin.equals("")){ JOptionPane.showMessageDialog(null, "Data Yang Anda Pilih Tidak Ada di database"); formWindowOpened(null); }else{ if(j_kelamin.equals("Pria")){ radiobutton_pria.setSelected(true); }else{ radiobutton_wanita.setSelected(true); } query = "select * from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'"; stat = koneksi.createStatement(); hasil = stat.executeQuery(query); _setModel(hasil); btn_simpan.setEnabled(false); btn_update.setEnabled(true); btn_delete.setEnabled(true); btn_cari.setEnabled(false); btn_bersih.setEnabled(true); text_kodepegawai.setEnabled(false); } } }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }Ini kode yang ada di event Action Performed Button Bersih
try{ formWindowOpened(null); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex); }Tambahkan kode ini padaevent Action Performed Button Update
try{ String j_kelamin = ""; if(radiobutton_pria.isSelected()){ j_kelamin = "Pria"; }else if(radiobutton_wanita.isSelected()){ j_kelamin = "Wanita"; }else{} query = "update pegawai set namapegawai = '"+text_namapegawai.getText()+"', jeniskelamin = '"+j_kelamin+"' where kodepegawai = '"+text_kodepegawai.getText()+"'"; stat = koneksi.createStatement(); int res = stat.executeUpdate(query); if(res == 1){ JOptionPane.showMessageDialog(null, "Update Data Sukses !"); formWindowOpened(null); } }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }Tambahkan kode ini pada event Action Performed Button Delete
try{ if(JOptionPane.showConfirmDialog(null, "Anda Yakin menghapus Data ini ??","Warning",2) == JOptionPane.YES_OPTION){ query = "delete from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'"; stat = koneksi.createStatement(); int res = stat.executeUpdate(query); if(res == 1){ JOptionPane.showMessageDialog(null, "Delete Data Sukses !"); } } formWindowOpened(null); }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }Dan terakhir ente tambahin satu Function... function ini dibuat dengan tujuan menghemat kode program yang ditulis berulang kali, function ini berisi program yang akan menempatkan data yang telah kita panggil dari database dan di tempatkan pada 2 Class yang kita buat diawal tadi :D ... kalo diproject ini si gak terlalu terasa soalnya kan project sederhana... kalo nanti udah molai ke project yang agak Luas baru kerasa fungsinya Function ini...
private void _setModel(ResultSet hasil) { try{ list = new ArrayList<L_Pegawai>(); while(hasil.next()){ pegawai = new L_Pegawai(); pegawai.setKodePegawai(hasil.getString("kodepegawai")); pegawai.setNamaPegawai(hasil.getString("namapegawai")); pegawai.setJenisKelamin(hasil.getString("jeniskelamin")); list.add(pegawai); } model = new TmodelPegawai(list); jTable1.setModel(model); }catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex); }
sekalian dulu ya Gan postingan yang ini... Pengunjung yang baik pasti meninggalkan jejak (Comment) :D... Oia ini project CRUD java nya kalo mau di download, silahkan download disini
mantab om...berguna sekali buat bantu tugas kuliah
ReplyDeleteoke gan... oia ini gan CRUD Java nya yang versi OOP.. mungkin berguna buat ente :D http://calonpresident.blogspot.com/2013/01/koneksi-java-jdbc-mysql-dengan-oop.html
Deletegan bisa ga klo gini. kita sediakan 1 comcox dan 1 textfield.
ReplyDeletecombobox trhubung dgn tbel diatas misalnya, maka tampil nama2 pegawai. setelah kita pilih nama pegawai otomatis muncul jenis kelminnya pria or wanita...
postingan ini sngat membantu gan, tidak stngah2 kyk blog lain.. mksih byak gan... :)
ps: delphi xe2 bisa kmren gan saya krena ada dbcomboboxnya
bisa gan... tinggal setSelectedItem() nya saja gan..
Deletejadi misal kita sudah dapetin nilai jenis kelamin pegawai dari database, tinggal gini aja gan
string jenis_kelamin = value; // dari database
combobox1.setSelectedItem(jenis_kelamin)
Thaks gan ijin srupuuuuutttt
ReplyDeletesip gan dah bisa berkat agan
ReplyDelete