heeh sebenernya sih ini untuk antum yang masih belajar dasar – dasar database…. tapi buat antum yang mau mengulang – ngulang lagi pelajaran javanya biar tambah inget…ga ada salahnya juga ngeliat project sederhana ini. aplikasi ini merupakan aplikasi simple CRUD menggunakan java swing…. nah langsung ke TKP aja kali ya…..
1. antum harus bikin database + tabelnya Kalo ane nama databasenya univganteng… nama tabelnya mahasiswa…
oh iya.. selain buat database dan tabel… antum juga harus ingat user dan password pada mySQL ya… karena nanti user dan password mySQL akan kita gunakan pada saat mengakses ke database di sisi pemrograman.
2. Buat Project Netbeans dan class – class nya seperti dibawah ini … kalo cara buat project dan class ga ane jelasin.. pasti antum udah ngerti … jangan lupa tambahin library mysql connector nya juga ya….
3. dari project diatas… mana dulu yang harus di ketik source codenya…???
walaupun ini hanya aplikasi simpel tapi biasakan pada saat membuat aplikasi tersebut kita mengelompokkan kode program berdasarkan fungsinya masing – masing… tujuannya adalah apabila terjadi kesalahan (exception) dalam program dapat di analisis dengan mudah…… jadi yang mana dulu…. ?
yang pertama kelas Koneksi.java
class ini berfungsi untuk memanggil driver dan mengkoneksikan program yang kita buat dengan database….. berikut ini Source Code nya…
import java.sql.*; public class Koneksi { public Koneksi(){ try{ String driver = "com.mysql.jdbc.Driver"; Class.forName(driver); System.out.println("Sukses Memanggil Driver"); }catch(Exception e){ System.out.println("Gagal Memanggil Driver : "+e.getMessage()); } } public Connection konekToDB(){ Connection koneksi = null; try{ String url = "jdbc:mysql://localhost:3306/UnivGanteng"; String user = "root"; String pass = ""; koneksi = DriverManager.getConnection(url, user, pass); System.out.println("Koneksi Database Sukses"); }catch(Exception e){ System.out.println("Koneksi Gagal : "+e.getMessage()); } return koneksi; } }
Setelah class Koneksi.java dibuat yang harus ditulis selanjutnya adalah class Manipulasi.java…. berikut ini adalah source codenya…:
import java.sql.*; import javax.swing.table.DefaultTableModel; public class Manipulasi { public void insert(String npm, String nama, String alamat){ try{ Connection koneksi = new Koneksi().konekToDB(); String sql = "<a class="zem_slink" title="Insert (SQL)" href="http://en.wikipedia.org/wiki/Insert_%28SQL%29" rel="wikipedia">INSERT</a> INTO mahasiswa VALUES ('"+npm+"', '"+nama+"', '"+ alamat+"')"; PreparedStatement ps = koneksi.prepareStatement(sql); ps.executeUpdate(); }catch(Exception e){ System.out.println(e.getMessage()); } } public void update(String npm, String nama, String alamat){ try{ Connection koneksi = new Koneksi().konekToDB(); String sql = "UPDATE mahasiswa SET nama ='"+nama+"', alamat = '"+ alamat+"' where npm ='"+npm+ "'"; PreparedStatement ps = koneksi.prepareStatement(sql); ps.executeUpdate(); }catch(Exception e){ System.out.println(e.getMessage()); } } public void delete(String npm){ try{ Connection koneksi = new Koneksi().konekToDB(); String sql = "DELETE FROM mahasiswa WHERE npm ='"+npm+"'"; PreparedStatement ps = koneksi.prepareStatement(sql); ps.executeUpdate(); }catch(Exception e){ System.out.println(e.getMessage()); } } public void select(String sql, DefaultTableModel model){ int a = 1; try{ Connection koneksi = new Koneksi().konekToDB(); Statement statement = koneksi.createStatement(); ResultSet result = statement.executeQuery(sql); while(result.next()){ String npm = result.getString(1); String nama = result.getString(2); String alamat = result.getString(3); String[]data = { npm, nama, alamat }; model.addRow(data); a++; } statement.close(); }catch(Exception e){ System.out.println(e.getMessage()); } } }
perlu di ketahui class Manipulasi.java ini berfungsi sebagai Controller… yaitu class yang menangani mekanisme manipulasi pada database…. manipulasi tersebut seperti Insert, Update, Delete, Select… dsb……
class selanjutnya yang harus dibuat adalah form tampilannya FormBiodata,java.. karena kita pake netbeans jadi tinggal drag n drop aja… bikin tampilannya seperti ini nih.. :
nah… tinggal mengisi event – event pada setiap tombolnya kan…. nih ane rincikan…
1. event untuk tombol Insert :
private void InsertBtnActionPerformed(java.awt.event.ActionEvent evt) { String npm = npmTxt.getText(); String nama = namaTxt.getText(); String alamat = alamatTxt.getText(); try{ new Manipulasi().insert(npm, nama, alamat); JOptionPane.showMessageDialog(this, "Berhasil Dimasukkan"); initTabel(); refresh(); }catch(Exception e){ JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage()); } }
2. Event untuk tombol Update :
private void UpdateBtnActionPerformed(java.awt.event.ActionEvent evt) { String npm = npmTxt.getText(); String nama = namaTxt.getText(); String alamat = alamatTxt.getText(); try{ new Manipulasi().update(npm, nama, alamat); JOptionPane.showMessageDialog(this, "Berhasil Dirubah"); initTabel(); refresh(); }catch(Exception e){ JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage()); } }
3. event untuk tombol delete :
private void DeleteBtnActionPerformed(java.awt.event.ActionEvent evt) { String npm = npmTxt.getText(); if(npm.equals("")){ JOptionPane.showMessageDialog(this, "Npm Tidak Boleh Kosong"); }else{ try{ new Manipulasi().delete(npm); JOptionPane.showMessageDialog(this, "Berhasil Dihapus"); initTabel(); refresh(); }catch(Exception e){ JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage()); }} }
4. event untuk tombol refresh :
private void RefreshBtnActionPerformed(java.awt.event.ActionEvent evt) { refresh(); }
5. Event untuk MouseClicked pada tabel :
private void mhsTabelMouseClicked(java.awt.event.MouseEvent evt) { InsertBtn.setEnabled(false); int pilih = mhsTabel.getSelectedRow(); String npm = mhsTabel.getValueAt(pilih, 0).toString(); String nama = mhsTabel.getValueAt(pilih, 1).toString(); String alamat = mhsTabel.getValueAt(pilih, 2).toString(); npmTxt.setText(npm); namaTxt.setText(nama); alamatTxt.setText(alamat); }
6. buat juga beberapa method seperti dibawah ini :
public void initTabel(){ Object[]row = {"NPM", "NAMA", "ALAMAT"}; DefaultTableModel model = new DefaultTableModel(null, row); mhsTabel.setModel(model); String tampil = "SELECT * FROM mahasiswa ORDER BY npm ASC"; new Manipulasi().select(tampil, model); } public void refresh(){ npmTxt.setText(""); namaTxt.setText(""); alamatTxt.setText(""); InsertBtn.setEnabled(true); }
khusus untuk method initTable(); panggil method tersebut pada bagian konstruktor .. tepatnya di bawah initComponents();
adapun class tampilan.java hanya class tambahan dan tidak wajib… tapi kalo antum mau buat juga ga apa – apa … nih kode programmnya :
import javax.swing.JOptionPane; import javax.swing.UIManager; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author Muhammad Ghufron */ public class tampilan { public tampilan(){ try{ UIManager.setLookAndFeel("com.jtattoo.plaf.aero.AeroLookAndFeel"); }catch(Exception e){ JOptionPane.showMessageDialog(null, "Tampilan Themes Tidak Tersedia"); } } }
nah kalo antum yang mau nyoba langsung… tanpa ngetik2 ribet… nih download project netbeans nya.. :
http://www.4shared.com/file/lxIiLPkn/KursusAne1.html
mas programnya bagus,,,
cmn perlu diperbaiki dikit,,,
insert, delete, refresh ama tabel udah bisa cuman tidak bisa untuk update npm
oh iya mas.. coz disitu npm jadi primary key jadi ga bisa di update hehehehehh …….
kenapa masih ada error mas ya??apakah harus dalam package???
error dimna ya mas…. boleh report ke saya biar saya benerin….
hhhmmm udah benar makasih,berguna contohnya….
boleh tanya lagi???itu gk ada objek ya??kalu bikin objek tambah aja kan kayak biasa???trus Jtatto nya itu bikin sendiri ato download jg itu???kalu bikin sendiri giman bikin dan aplikasi apa yg membantu?????makasih mas
JTatto nya mah tinggal download aja mas…
aslkum mas muhammadghufron…. terima kasih atas bantuannya mas boleh minta bantuannya g kalo buat artikel seacrhnya ad ga??? dr asep pemula java
Waalaikum salam mas asep… maaf mas.. saya belom ngerti yang antum tanyakan … barang kali bisa di perjelas…
begini mas muhammadghufron,,, buat di atas kan ada insert, delete, hapus, edit, dan refresh nah.. artinya ada tambah, hapus, ubah dan segarkan kalo buat pencarian data kayak mencari data di tabel itu gimana mas buat sintaknya??? sebelumnya maaf kurang jelas di comment kemarin.. mohonnya ya mas muhammadghufron..
biasanya untuk query pencarian data bisa menggunakan ‘like’ .. tapi untuk lebih jelasnya insya Alloh nanti saya upload lagi contoh aplikasi simple yang ada fitur pencariannya… terima kasih ya mas sudah mengunjungi blog saya…
syukron akhi…
tinggal dipelajari lagi.
lagi nyari yang ada search-nya nih
Oke… Silahkan dipelajari.. akhi…. Syukron berkenan mampir…
makasih mas bro sangat membantu. . .
mm……
mas kalau misal database-nya ada di host lain bisa gak y diakses lewat java??
bisa lah … saya dulu pernah nyoba koq …
misal
— komputer A sebagai server IP address 192.168.1.1, pada komputer A terinstall mysql pada port 3306.
— komputer B sebagai client IP address 192.168.1.2, pada komputer B tidak usah di install mysql, karena databasenya hanya ada di komputer A(server)
— class koneksi pada program java yang semula “jdbc:mysql://localhost:3306/UnivGanteng” dirubah menjadi “jdbc:mysql://192.168.1.1:3306/UnivGanteng”
itu buat contoh sederhana aja …
mksih mas, dah saya coba dan alhamdulillah berhasil. buat Skripsi soalnya ne mas. . . hehe….
mantap.
terimakasih banyak
sip sip, enjoy this
Terimakasih untuk informasinya