INPUT DATA KE DALAM DATABASE Untuk input / insert data dalam database kita perlu menambahkan library java untuk mempersiapkan perintah SQL kita (selain library untuk koneksi database). import java.sql.PreparedStatement; Berikut potongan source code untuk input / insert data ke dalam database : try { PreparedStatement ps = koneksi.prepareStatement("INSERT INTO anggota(NoAnggota, Nama, Alamat) VALUES(?, ?, ?)"); ps.setString(1, txtNoAnggota.getText()); ps.setString(2, txtNama.getText()); ps.setString(3, txtAlamat.getText()); if (ps.executeUpdate() > 0) { System.out.println("Data berhasil disimpan."); } else { System.out.println("Data gagal disimpan."); } } catch (SQLException e) { System.out.println("Eksekusi Query Gagal: " + e.toString()); } catch (Exception e) { System.out.println("Error: " + e.toString()); } Latihan Input Data 1. Buat project baru, beri nama “MySQLInsertData”, hilangkan tanda centang pada “Create Main Class”. 2. Tambahkan new “Java Package” pada “Source Packages” dan beri nama “MySQLInsertData”. 3. Tambahkan “JFrame Form” pada package “MySQLInsertData”, dan beri nama “FMain”. 4. Buatlah form dengan antar muka sebagai berikut : Variable Name : txtNoAnggota Variable Name : txtNama Variable Name : txtAlamat Variable Name : btnClear Variable Name : btnSave JTable Variable Name : gridAnggota \ Variable Name : btnClose 5. Tambahkan library-library dibawah ini : import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; 6. Buat variable global seperti dibawah ini : private final String[] JudulKolom = {"No Anggota", "Nama Anggota", "Alamat"}; private Connection koneksi = null; 7. Tambahkan potongan source code berikut di main method aplikasi (dibawah “initComponents();”) : // create connection try { Class.forName("com.mysql.jdbc.Driver"); koneksi = DriverManager.getConnection("jdbc:mysql://localhost/javaperpus?user=root&password=bboyz"); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(this, e.toString(), "Class Driver Tidak Ditemukan", JOptionPane.ERROR_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE); } // view data viewData(); 8. Buat method viewData() private void viewData() { Object[][] data = null; try { Statement st = koneksi.createStatement(); ResultSet rs = st.executeQuery("select * from Anggota"); rs.last(); int rowcount=rs.getRow(); rs.beforeFirst(); data = new Object[rowcount][3]; int no = 0; while (rs.next()) { data[no][0] = rs.getString("NoAnggota"); data[no][1] = rs.getString("Nama"); data[no][2] = rs.getString("Alamat"); no = no + 1; } DefaultTableModel tabModel = new DefaultTableModel(data, JudulKolom) { boolean[] canEdit = new boolean [] { false, false, false }; @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }; gridAnggota.setModel(tabModel); st.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(this, e.toString(), "Eksekusi Query Gagal", JOptionPane.ERROR_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE); } } 9. Pada event “ActionPerformed” di object “btnClear”, tambahkan source code berikut : txtNoAnggota.setText(""); txtNama.setText(""); txtAlamat.setText(""); txtNoAnggota.requestFocus(); 10. Pada event “ActionPerformed” di object “btnSave”, tambahkan source code berikut : try { PreparedStatement ps = koneksi.prepareStatement("INSERT INTO anggota(NoAnggota, Nama, Alamat) VALUES(?, ?, ?)"); ps.setString(1, txtNoAnggota.getText()); ps.setString(2, txtNama.getText()); ps.setString(3, txtAlamat.getText()); if (ps.executeUpdate() > 0) { JOptionPane.showMessageDialog(this, "Data berhasil disimpan.", "Simpan Data", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Data gagal disimpan.", "Simpan Data", JOptionPane.WARNING_MESSAGE); } ps.close(); viewData(); btnClearActionPerformed(evt); } catch (SQLException e) { JOptionPane.showMessageDialog(this, e.toString(), "Eksekusi Query Gagal", JOptionPane.ERROR_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE); } 11. Pada event “ActionPerformed” di object “btnClose”, tambahkan source code berikut : this.dispose(); 12. Pada event “WindowClosed” di object “FMain”, tambahkan source code berikut : try { koneksi.close(); System.exit(0); } catch (Exception e) { // silent } 13. Buka properties project anda. 14. Masuk ke kategori “Libraries”. Klik tombol “Add Library” lalu cari “MySQL JDBC Driver” klik tombol “Add Library”. 15. Masuk ke kategori “Run”, lalu browse “Main Class”, pilih “MySQLInsertData.FMain” klik tombol “Select Main Class”. 16. Tutup window “Project Properties” dengan meng-klik tombol “OK”. Lalu “Run” project. ======================= End Of Materi ======================= Source code lengkap dapat dilihat di file “attachments/MySQLInsertData.java”. Tugas Praktikum Buatlah sebuah database MySQL dengan nama “java3_nim” dan sebuah tabel dengan nama “buku”, berikut field-field yang terdapat dalam tabel tersebut : kode_buku judul_buku tahun_buku author_buku kategori_buku => varchar(20) => varchar(100) => year(4) => varchar(50) => varchar(50) Lalu buat aplikasi untuk menampilkan data dan menambah data seperti contoh yang telah dipelajari diatas. Tugas berupa dumping database & source project di compres ke dalam “.zip” atau “.rar” dan dikirim ke [email protected] dengan subject “Tugas[spasi]Java[spasi]3[spasi]MIXX[spasi]NIM[spasi]Nama” selambat-lambatnya hari kamis, 20 oktober 2011 23:59.