Crud Java Sederhana

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 keroo t database anda..menggunakan console/command prompt bisa atau menggunakan phpmyadmin juga boleh : dibawah s aya 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);

description

pemograman java netbens

Transcript of Crud Java Sederhana

Page 1: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 1/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);

Page 2: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 2/19

setelah itu buat project anda di netbeans. saat saya memostingkan artikel ini netbeans sudah

realease netbeans 6.9.1

setelah membuat project silahkan buat package package yang dibutuhkan, untuk nama

 package terserah anda..

 pertama kita buat class Mahasiswa.java

 package bahrie.entity;

/**** @author bahrie*/

 public class Mahasiswa {

 private String nim; private String nama; private String alamat;

 public String getAlamat() {return alamat;

}

 public void setAlamat(String alamat) {this.alamat = alamat;

}

 public String getNama() {return nama;

}

 public void setNama(String nama) {this.nama = nama;

}

 public String getNim() {return nim;

Page 3: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 3/19

}

 public void setNim(String nim) {this.nim = nim;

}

 public Mahasiswa() {}

 public Mahasiswa(String nim, String nama, String alamat) {this.nim = nim;this.nama = nama;this.alamat = alamat;

}}

setelah itu buat interface untuk dao nya.. dengan nama DataInterface.java

ingat interface beda dengan class, dan di netbeans untuk membuat interface menggunakan

cara New -> Java Interface..

 package bahrie.model;

import bahrie.entity.Mahasiswa;import java.sql.SQLException;import java.util.List;

/**** @author bahrie*/

 public interface DataInterface {

 public void connect() throws SQLException; public void disconnect() throws SQLException; public List read() throws SQLException; public void insert(Mahasiswa mahasiswa) throws SQLException; public void update(String nim, Mahasiswa mahasiswa) throws

SQLException; public void delete(String nim) throws SQLException; public Mahasiswa read(String nim) throws SQLException;

}

setelah interface kita buat DAO nya dengan nama class DaoMySql.java

 package bahrie.model;

import bahrie.entity.Mahasiswa;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;

import java.util.logging.Level;import java.util.logging.Logger;

Page 4: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 4/19

 /**** @author bahrie*/

 public class DaoMySql implements DataInterface {

 private String dbHost = "jdbc:mysql://localhost:3306/sisteminformasi"; private String dbUser = "root"; private String dbPass = "root"; private Connection conn;

 public DaoMySql() {try {

try {Class.forName("com.mysql.jdbc.Driver").newInstance();

} catch (ClassNotFoundException ex) {

Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE, null, ex);

}} catch (InstantiationException ex) {Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE,

null, ex);} catch (IllegalAccessException ex) {

Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE,null, ex);

}

}

 public DaoMySql(Connection conn) {this.conn = conn;

}

 public void connect() throws SQLException {this.conn = DriverManager.getConnection(dbHost, dbUser, dbPass);

}

 public void disconnect() throws SQLException {this.conn.close();

}

 public List read() throws SQLException {Statement st = conn.createStatement();String sql = "select *from mahasiswa";ResultSet rs = st.executeQuery(sql);List list = new ArrayList(); while (rs.next()) {

 Mahasiswa mhs = new Mahasiswa(); mhs.setNim(rs.getString("nim")); mhs.setNama(rs.getString("nama")); mhs.setAlamat(rs.getString("alamat"));list.add(mhs);

}return list;

}

 public void insert(Mahasiswa mahasiswa) throws SQLException {String sql = "insert into mahasiswa (nim, nama, alamat)

values(?,?,?);";PreparedStatement ps = this.conn.prepareStatement(sql);

Page 5: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 5/19

ps.setString(1, mahasiswa.getNim()); ps.setString(2, mahasiswa.getNama()); ps.setString(3, mahasiswa.getAlamat()); ps.executeUpdate();

}

 public void update(String nim, Mahasiswa mahasiswa) throws SQLException{

String sql = "update mahasiswa set nim=?,nama=?,alamat=? wherenim=?";

PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, mahasiswa.getNim()); ps.setString(2, mahasiswa.getNama()); ps.setString(3, mahasiswa.getAlamat()); ps.setString(4, nim); ps.executeUpdate();

}

 public void delete(String nim) throws SQLException {String sql = "delete from mahasiswa where nim=?";PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, nim); ps.executeUpdate();

}

 public Mahasiswa read(String nim) throws SQLException {String sql = "select *from mahasiswa where nim = ?";PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, nim);ResultSet rs = ps.executeQuery(); Mahasiswa mahasiswa = new Mahasiswa(); while (rs.next()) {

 mahasiswa.setNim(rs.getString("nim")); mahasiswa.setNama(rs.getString("nama")); mahasiswa.setAlamat(rs.getString("alamat"));

}return mahasiswa;

}}

setelah dao nya jadi, sekarang kita buat viewnya atau desaign tampilannya.. silahkan masuk 

 New -> JFrame Form

disini saya beri nama Contoh.java

tampilannya seperti diatas dan dibawah ini adalah sourcecode yang ada dibelakang desaign..

 package bahrie.view;

import bahrie.entity.Mahasiswa;import bahrie.model.DaoMySql;import bahrie.model.DataInterface;import bahrie.model.TableModelMahasiswa;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;

import java.util.logging.Logger;import javax.swing.JOptionPane;import javax.swing.event.ListSelectionEvent;

Page 6: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 6/19

import javax.swing.event.ListSelectionListener;import javax.swing.table.TableModel;

/**** @author bahrie

*/ public class Contoh extends javax.swing.JFrame {

DataInterface daoMysql = new DaoMySql();TableModelMahasiswa tableModelMahasiswa;List records = new ArrayList();

/** Creates new form Contoh */ public Contoh() {

initComponents();loadData();

}

void kosongkanTeks() {txtNim.setText("");txtNama.setText("");txtAlamat.setText("");

}

 public TableModelMahasiswa getTableModelMahasiswa() {return tableModelMahasiswa;

}

 public void setTableModelMahasiswa(TableModelMahasiswatableModelMahasiswa) {

this.tableModelMahasiswa = tableModelMahasiswa;}

void loadData() {try {

daoMysql.connect();List list = new ArrayList();list = daoMysql.read();TableModel tableModel = new TableModelMahasiswa(list);tabelMhs.setModel(tableModel);daoMysql.disconnect();

} catch (SQLException ex) {Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE,

null, ex);}

}

//disini terdapat generet dari netbeans, jadi nanti akan otomatis ada.

 private void buttonTambahActionPerformed(java.awt.event.ActionEventevt) {

try {if (!txtNim.getText().isEmpty()

&& !txtNama.getText().isEmpty()&& !txtAlamat.getText().isEmpty()) {

// TODO add your handling code here:

daoMysql.connect(); Mahasiswa mhs = new Mahasiswa();

Page 7: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 7/19

mhs.setNim(txtNim.getText()); mhs.setNama(txtNama.getText()); mhs.setAlamat(txtAlamat.getText());daoMysql.insert(mhs);

loadData();

} else {JOptionPane.showMessageDialog(null, "Harus diisi semua","Salah", JOptionPane.ERROR_MESSAGE);

}this.kosongkanTeks();

} catch (SQLException ex) {}

}

 private void buttonUptadeActionPerformed(java.awt.event.ActionEventevt) {

try {daoMysql.connect();

int index = tabelMhs.getSelectedRow();

if (buttonUptade.getText().equals("Update")) {

records = daoMysql.read(); Mahasiswa mahasiswa = records.get(index);

String nim = mahasiswa.getNim(); Mahasiswa mhs = daoMysql.read(nim);txtNim.setText(mhs.getNim());txtNama.setText(mhs.getNama());txtAlamat.setText(mhs.getAlamat()); buttonUptade.setText("Simpan");

} else { Mahasiswa mhs1 = new Mahasiswa(); mhs1.setNim(txtNim.getText()); mhs1.setNama(txtNama.getText()); mhs1.setAlamat(txtAlamat.getText());if (JOptionPane.showConfirmDialog(this, "apakah anda yakin

untuk melakukan update", "konfirmasi update", JOptionPane.OK_CANCEL_OPTION)== 0) {

daoMysql.update(records.get(index).getNim(), mhs1);loadData();this.kosongkanTeks(); buttonUptade.setText("Update");JOptionPane.showMessageDialog(this, "Data berhasil di

update");}

}daoMysql.disconnect();

} catch (SQLException ex) {Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE,

null, ex);}

}

 private void buttonDeleteActionPerformed(java.awt.event.ActionEventevt) {

// TODO add your handling code here:int index = tabelMhs.getSelectedRow();

Page 8: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 8/19

try {if (JOptionPane.showConfirmDialog(this, "apakah anda yakin

untuk menghapus data", "konfirmasi penghapusan",JOptionPane.OK_CANCEL_OPTION) == 0) {

daoMysql.connect();records = daoMysql.read();

daoMysql.delete(records.get(index).getNim());JOptionPane.showMessageDialog(this, "data berhasil dihapus");

}loadData();

} catch (SQLException ex) {// Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE,

null, ex);JOptionPane.showMessageDialog(null, "data belum dipilh",

"error", JOptionPane.ERROR_MESSAGE);}

}

/*** @param args the command line arguments*/

 public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {

 public void run() {new Contoh().setVisible(true);

}});

}// Variables declaration - do not modify private javax.swing.JButton buttonDelete; private javax.swing.JButton buttonTambah; private javax.swing.JButton buttonUptade; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JLabel labelAlamat; private javax.swing.JLabel labelNama; private javax.swing.JLabel labelNim; private javax.swing.JTable tabelMhs; private javax.swing.JTextField txtAlamat; private javax.swing.JTextField txtNama; private javax.swing.JTextField txtNim;// End of variables declaration

}

setelah itu kita buat class TableModelMahasiswa.java untuk mengurusi table yang ada di

view..

 package bahrie.model;

import bahrie.entity.Mahasiswa;import java.util.ArrayList;import java.util.List;import javax.swing.table.AbstractTableModel;

/***

Page 9: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 9/19

* @author bahrie*/

 public class TableModelMahasiswa extends AbstractTableModel {

List list = new ArrayList();

 public TableModelMahasiswa(List list) {this.list = list;}

 public TableModelMahasiswa() {}

 public int getRowCount() {return list.size();

}

 public int getColumnCount() {return 3;

}

 public Mahasiswa select(int index) {return list.get(index);

}

 public Object getValueAt(int rowIndex, int columnIndex) {switch (columnIndex) {

case 0:return list.get(rowIndex).getNim();

case 1:return list.get(rowIndex).getNama();

case 2:return list.get(rowIndex).getAlamat();

default:return null;

}}

@Override public String getColumnName(int column) {

switch (column) {case 0:

return "Nim";case 1:

return "Nama";case 2:

return "Alamat";default:

return null;}

}}

untuk code yang ada di view dan tabelmodel pembuatannya saling bergantian untuk saling

melengkapi..

 jangan lupa librarynya harus diisi jdbc connector..

selamat mencoba..

Page 10: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 10/19

sourcecodenya ada dibawah ini :

Page 11: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 11/19

in Database, Java Programming, Pemrograman Kaitkata:algoritma insert update delete dijava, analisis dao, analisis program database java 

Sebelumnya saya pernah ngepost tulisan  program insert update delete dijava dan saya cuma

kasih sourcecodenya. disini saya akan mencoba ulas bagimana jalan program

tersebut(algoritmanya): pertama kita membuat database untuk tempat penyimpanan data. jadi nanti data yg diketikan

ataupun yang dimapilkan semua itu berada di database. dan disini saya memakai mysql

karena database ini adalah database jaringan serta free..

karena dijava dikenal konsep MVC(model, view, control). jadi kita buat modelnya dulu.

model disini yang saya maksud adalah class yang menggambarkan satu tabel yang ada

didalam database.. contoh didatabase ad tabel mahasiswa. dimodel juga terdpat class

Mahasiswa.

di tabel mahasiswa ada field nim, nama , alamat. diclass pun sama ada nim, nama , alamat. jdi

class tersebut mepresentasikan tabel yg ada didatabase.

 package bahrie.entity;

/**** @author bahrie*/

 public class Mahasiswa {

 private String nim; private String nama; private String alamat;

 public String getAlamat() {

return alamat;}

 public void setAlamat(String alamat) {this.alamat = alamat;

}

 public String getNama() {return nama;

}

 public void setNama(String nama) {this.nama = nama;

}

 public String getNim() {return nim;

}

 public void setNim(String nim) {this.nim = nim;

}

 public Mahasiswa() {}

 public Mahasiswa(String nim, String nama, String alamat) {this.nim = nim;this.nama = nama;

Page 12: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 12/19

this.alamat = alamat;}

}

dalam sourcecode diatas terdapat metode yang berawalan set dan get. metode tersebut adalah

mekanisme class java untuk melalukan masukan data dan ambil data dari variable yang ada

diclass. ini adalah salah satu prinsip inkapsulasi dijava. jadi tidak sembarng class yang bisa

langsung mengisi atau menghapus data yang ada di variable. harus melalui proses setter dan

getter untuk mengambil dan mengisi data ke variable yang ad didlam kelas. ini untuk 

melindungi data yang ada diclass.

class inilah yang nantinya akan menjadi jembatan antara data yang ada didatabase dengan

aplikasi yang sedang berjalan. gambarannya begini, data yang diinputkan di aplikasi pertama-

tama masuk ke class Mahasiswa, lalu DAO(data akses objek) nya mengambil data dari kelas

untuk dimasukkan ke dalam database..

 jadi data yang masuk ke database juga harus melalui proses yang benar. ini adalah tahap-

tahap standar dijava karena java sudah punya konsep yang stabil. dengan demikian data yangmasuk kedalam database bukan dari yang langsung dari aplikasi, tapi diolah dulu dijadikan

objek untuk seterusnya dipindahkan ke database. cara ini bukan bermaksud memperlama

 proses namun dibalik itu semua banyak keuntungan keuntungan dan kemudahan dalam

 proses selanjutnya.

setelah class yang merepresentasikan table selesai. selanjutnya kita buat Interface. untuk 

maslah apa itu interface sudah pernah saya bahas dipostingan sebelumnya. interface disini

dimksudkan untuk membuat aturan-aturan yang nanti akan di implementasikan oleh class

DOA. Interface disini tidak hanya untuk di implementasikan class DAO saja, tapi bisa

diimplementasikan oleh class class lain yang mempunyai cara kerja yang sama atau yang

mempunyai aturan yang sama. contoh kita mempunyai interface database yang isi metodenya ada insert, update delete. nah interface ini dapat di implementasikan kedalam class DOA

untuk Mysql, Oracle, Postgres, ataupun databse lainnya..cuma dalam statemennya yang

 berbeda.. interface ini nantinya yang akan memudahkan kita untuk memakai konsep

 polimorfism(merubah bentuk) dalam java. karena dengan interface kita mudah untuk 

merubah rubah bentuk objek. yang dulunya databsenya mysql, sekrang pengen oracle jadi

mudah.. karena sudah ada interfacenya tinggal ganti instansiasinya, yang tadinya ke mysql

sekarrng ke oracle.

dalam contoh program yg sdg dianalisis ini interface serta implementasinya dapat dilihat

dibawah

interface:

 package bahrie.model;

import bahrie.entity.Mahasiswa;import java.sql.SQLException;import java.util.List;

/*** @author bahrie*/

 public interface DataInterface {

 public void connect() throws SQLException;

Page 13: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 13/19

public void disconnect() throws SQLException; public List read() throws SQLException; public void insert(Mahasiswa mahasiswa) throws SQLException; public void update(String nim, Mahasiswa mahasiswa) throws

SQLException; public void delete(String nim) throws SQLException;

 public Mahasiswa read(String nim) throws SQLException;}

implementasinya :

 package bahrie.model;

import bahrie.entity.Mahasiswa;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;

/*** @author bahrie*/

 public class DaoMySql implements DataInterface {

 private String dbHost = "jdbc:mysql://localhost:3306/sisteminformasi"; private String dbUser = "root";

 private String dbPass = "root"; private Connection conn;

 public DaoMySql() {try {

try {Class.forName("com.mysql.jdbc.Driver").newInstance();

} catch (ClassNotFoundException ex) {

Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE, null, ex);}

} catch (InstantiationException ex) {Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE,

null, ex);} catch (IllegalAccessException ex) {

Logger.getLogger(DaoMySql.class.getName()).log(Level.SEVERE,null, ex);

}

}

 public DaoMySql(Connection conn) {this.conn = conn;

}

 public void connect() throws SQLException {

this.conn = DriverManager.getConnection(dbHost, dbUser, dbPass);}

Page 14: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 14/19

  public void disconnect() throws SQLException {

this.conn.close();}

 public List read() throws SQLException {

Statement st = conn.createStatement();String sql = "select *from mahasiswa";ResultSet rs = st.executeQuery(sql);List list = new ArrayList(); while (rs.next()) {

 Mahasiswa mhs = new Mahasiswa(); mhs.setNim(rs.getString("nim")); mhs.setNama(rs.getString("nama")); mhs.setAlamat(rs.getString("alamat"));list.add(mhs);

}return list;

}

 public void insert(Mahasiswa mahasiswa) throws SQLException {String sql = "insert into mahasiswa (nim, nama, alamat)

values(?,?,?);";PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, mahasiswa.getNim()); ps.setString(2, mahasiswa.getNama()); ps.setString(3, mahasiswa.getAlamat()); ps.executeUpdate();

}

 public void update(String nim, Mahasiswa mahasiswa) throws SQLException{

String sql = "update mahasiswa set nim=?,nama=?,alamat=? wherenim=?";

PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, mahasiswa.getNim()); ps.setString(2, mahasiswa.getNama()); ps.setString(3, mahasiswa.getAlamat()); ps.setString(4, nim); ps.executeUpdate();

}

 public void delete(String nim) throws SQLException {String sql = "delete from mahasiswa where nim=?";PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, nim); ps.executeUpdate();

}

 public Mahasiswa read(String nim) throws SQLException {String sql = "select *from mahasiswa where nim = ?";PreparedStatement ps = this.conn.prepareStatement(sql); ps.setString(1, nim);ResultSet rs = ps.executeQuery(); Mahasiswa mahasiswa = new Mahasiswa(); while (rs.next()) {

 mahasiswa.setNim(rs.getString("nim")); mahasiswa.setNama(rs.getString("nama")); mahasiswa.setAlamat(rs.getString("alamat"));

}return mahasiswa;

Page 15: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 15/19

}}

setelah interface dan implementasinya selesai. 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.

data yang tampil di table GUI tersebut nanti yang ngurusin adalah si tablemodel tersebut.

nanti table guinya tinggal panggil aja tuh table model. 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.

disini nama kolom-kolomnya dalah nim, nama , dan alamat. prosesnya sebagai berikut : data yang didalam tabel database diload kedalam list yang ada

ditablemodel. lalu list tersebut nanti yang akan dipakai untuk ditampilkan di guinya. kalau

data yang ada ditabel database ada 10 row maka list tersebut juga terdapat 10 row dan

seterusnya.. untuk kolomnya sudah ditentuin terlebih dahulu karena kita yang buat. untuk 

tabel ini kita buat 3 kolom karena hanya nim,nama, dan alamat. selanjutnya untuk mengisi

kedalam row dan colom kita menggunakan swicth(percabangan didalam java). jadi bila row 1

dan kolom 0 maka yang ditampilin adalah list.get(rowIndex).getNim(); lalu row 1 colom 1

list.get(rowIndex).getNama(); dan row 1 colom 2 list.get(rowIndex).getAlamat();

disini kolom dimulai dari angka nol(0) jadi kalo ada tiga kolom cara menyebutkannya adalah

0,1,2.

lalu setelah itu kita buat nama kolom sesuai yang kita inginkan sengan car overridecolomname. disourcecode bisa dilihat yang ada tanda @override. caranya juga hampir sama

Page 16: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 16/19

dengan memasukkan data. bedanya disini niliai kembaliannya dalah String atau kumpulan

karakter.

dan dibawah inilah sourcecodenya :

package bahrie.model;

import bahrie.entity.Mahasiswa;

import java.util.ArrayList;

import java.util.List;

import javax.swing.table.AbstractTableModel;

/**

* @author bahrie

*/

public class TableModelMahasiswa extends AbstractTableModel {

List list = new ArrayList();

public TableModelMahasiswa(List list) {

this.list = list;

}

public TableModelMahasiswa() {

}

public int getRowCount() {

return list.size();

}

public int getColumnCount() {

return 3;}

public Mahasiswa select(int index) {

return list.get(index);

}

public Object getValueAt(int rowIndex, int columnIndex) {

switch (columnIndex) {

case 0:

return list.get(rowIndex).getNim();

case 1:

return list.get(rowIndex).getNama();

case 2:

return list.get(rowIndex).getAlamat();

default:

return null;

}

}

@Override

public String getColumnName(int column) {

switch (column) {

case 0:

return "Nim";

case 1:

return "Nama";

case 2:

return "Alamat";

Page 17: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 17/19

default:

return null;

}

}

}

setelah itu kita masuk ke koding GUInya..disetiap tombol diclik kanan pilih event terusaction nanti akan masuk kedalam bagian belakangnya GUInya. untuk tombol tambah, intinya

tombol ini yang nantinya akan mengirim data yang ada di teksfield masuk kedalam class

Mahasiswa lalu dimasukkan kedlam database. 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.

untuk tombol update juga prinsipnya sama. 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.. untuk delete juga. data yang dipilih dibaca primary keynya lalu di hapus dari

database. setelah itu databse menuju class Mahasiswa. mahasiswa menuju tabelmodel dan

tabelmodel menuju tabel yang ada diGUi untuk ditampilkan. dibawah ini akan saya pisah- pisah sourcecode untuk tiap tombol. untuk pertama kelas gui ini dibuka juga terdapat perintah

yang tidak boleh ditinggalkan.

untuk variable dan code yang dibutukan setelah class gui dijalankan :

DataInterface daoMysql = new DaoMySql();

TableModelMahasiswa tableModelMahasiswa;

List records = new ArrayList();

/** Creates new form Contoh */

public Contoh() {

initComponents();

loadData();// ini adlah metode yang saya buat ad dibawah. bisa

langsung dipanggil.

}

void kosongkanTeks() {

txtNim.setText("");

txtNama.setText("");

txtAlamat.setText("");

}

public TableModelMahasiswa getTableModelMahasiswa() {

return tableModelMahasiswa;

}

public void setTableModelMahasiswa(TableModelMahasiswa

tableModelMahasiswa) {

this.tableModelMahasiswa = tableModelMahasiswa;

}

void loadData() {

try {

daoMysql.connect();

List list = new ArrayList();

list = daoMysql.read();

TableModel tableModel = new TableModelMahasiswa(list);tabelMhs.setModel(tableModel);

Page 18: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 18/19

daoMysql.disconnect();

} catch (SQLException ex) {

Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE,

null, ex);

}

}

code untuk tombol tambah :

try {if (!txtNim.getText().isEmpty()

&& !txtNama.getText().isEmpty()&& !txtAlamat.getText().isEmpty()) {

// TODO add your handling code here:daoMysql.connect(); Mahasiswa mhs = new Mahasiswa(); mhs.setNim(txtNim.getText()); mhs.setNama(txtNama.getText()); mhs.setAlamat(txtAlamat.getText());daoMysql.insert(mhs);

loadData();} else {

JOptionPane.showMessageDialog(null, "Harus diisi semua","Salah", JOptionPane.ERROR_MESSAGE);

}this.kosongkanTeks();

} catch (SQLException ex) {}

code untuk tombol update :

try {daoMysql.connect();int index = tabelMhs.getSelectedRow();if (buttonUptade.getText().equals("Update")) {

records = daoMysql.read(); Mahasiswa mahasiswa = records.get(index);String nim = mahasiswa.getNim(); Mahasiswa mhs = daoMysql.read(nim);txtNim.setText(mhs.getNim());txtNama.setText(mhs.getNama());txtAlamat.setText(mhs.getAlamat()); buttonUptade.setText("Simpan");

} else { Mahasiswa mhs1 = new Mahasiswa(); mhs1.setNim(txtNim.getText()); mhs1.setNama(txtNama.getText()); mhs1.setAlamat(txtAlamat.getText());if (JOptionPane.showConfirmDialog(this, "apakah anda yakin

untuk melakukan update", "konfirmasi update", JOptionPane.OK_CANCEL_OPTION)== 0) {

daoMysql.update(records.get(index).getNim(), mhs1);loadData();this.kosongkanTeks(); buttonUptade.setText("Update");JOptionPane.showMessageDialog(this, "Data berhasil di

update"); }}

Page 19: Crud Java Sederhana

7/16/2019 Crud Java Sederhana

http://slidepdf.com/reader/full/crud-java-sederhana 19/19

daoMysql.disconnect();} catch (SQLException ex) {

Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE,null, ex);

}

code untuk tombol delete :

int index = tabelMhs.getSelectedRow();try {

if (JOptionPane.showConfirmDialog(this, "apakah anda yakinuntuk menghapus data", "konfirmasi penghapusan",JOptionPane.OK_CANCEL_OPTION) == 0) {

daoMysql.connect();records = daoMysql.read();daoMysql.delete(records.get(index).getNim());JOptionPane.showMessageDialog(this, "data berhasil di

hapus");}loadData();

} catch (SQLException ex) {Logger.getLogger(Contoh.class.getName()).log(Level.SEVERE, null,

ex);JOptionPane.showMessageDialog(null, "data belum dipilh",

"error", JOptionPane.ERROR_MESSAGE);}

cukup disini pembahasan dari saya, bila ada yang ingin ditanyakan atau ata saran/kritik bisa

tullis dikoment. terimaksih..

Alhamdulillah akhirnya saya tulis juga analisisnya.hehehe

silahkan download sourcenya