Aplikasi Sederhana CRUD Java Netbeans dan Database Mysql

SHARE:

Jika kamu mengambil kuliah jurusan IT atau Teknik Informatika yang sedang belajar pemograman java dan mendapatkan tugas untuk membuat Progra...

Jika kamu mengambil kuliah jurusan IT atau Teknik Informatika yang sedang belajar pemograman java dan mendapatkan tugas untuk membuat Program Aplikasi sederhana dengan koneksi Database menggunakan Mysql berarti kamu masuk ke Blog yang tepat. Kali ini saya akan membahas mengenai cara membuat aplikasi sederhana yang dapat menjalankan menu Create, Read, Update dan Delete (CRUD)

Bagi kamu yang belum mengetahui apa itu Bahasa Pemograman Java dapat di baca di sini

Pertama buatlah sebuah database bernama “DataBase” atau terserah anda,, kemudian buatlah sebuah tabel atau entitas bernama “Mahasiswa” (ingat tabel harus mempunyai sebuah primary key) yang memiliki atribut: Nama, NRP, Tanggal Lahir, dan Alamat.


Membuat Project

Kemudian kita mulai membuat project Java Aplication di Netbeans, caranya: File -> New Project, lalu pada bagian Categories pilih Java dan bagian Project pilih Java Application. Beri nama project ini “Aplikasi”.



Tahap selanjutnya kita akan membuat entity class dimana class ini bertujuan untuk mempresentasikan entity atau tabel dalam suatu database.. Class ini dibuat lewat file->new file, pada categories pilih Persistence selanjutnya pilih entity classes from database

Jendela berikutnya pada database connection pilih new database connection kemudiannext. Kemudian isi sesuai gambar dibawah ini


Klik ok, akan muncul jendela berikutnya dan klik button Add All kemudian next. Akan muncul jendela berikutnya dan klik button creat persistence unitok, kemudian next. Pada collection pilih java.util.List dan klik button finish.

Berikutnya kita akan membuat class persistenceUtility sebagai utilities yang membuat koneksi JPA atau EntityManagerFactory:
package aplikasi;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class persistenceUtility {
public final static EntityManagerFactory entityManagerFactory;
static {
// parameter harus sama dengan nama Persistence Unit
// yang ada pada file persistence.xml
entityManagerFactory =
Persistence.createEntityManagerFactory("AplikasiPU");
}
public static EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
}

Selanjutnya kita akan membuat tampilan dari aplikasi database ini,,


Pada combobox cari berdasarkan,, ubahlah model pada property combobox yang sebelumnya dengan nama dan nrp, dengan cara klik kanan pada combobox, kemudian pada model yang sebelumnya berisikan item 1, item 2, item 3, item 4 ubah menjadi nama, nrp.

And then ubahlah nama2 komponen atau variabel seperti dibawah ini:


karna kita memakai Tabel sebagai antar mukanya,, maka kita harus membuat sebuah TableModel untuk mempermudah dalam menambah data dang mengambil data dari tabel. Buatlah class baru bernama TableModel:
package aplikasi;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private List list = new ArrayList();
public void updateAll(Collection mhs) {
list.clear();
list.addAll(mhs);
fireTableDataChanged();
}
public Mahasiswa get(int index){
return list.get(index);
}
public void setData(List list) {
this.list = list;
// memberi peringatan ke tabel bahwa data berubah
fireTableDataChanged();
}
public void insert(Mahasiswa mhs) {list.add(mhs);
fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void delete(int index) {
list.remove(index);
fireTableRowsDeleted(index, index);
}
public void update(int index,
Mahasiswa mhs) {list.set(index, mhs);
fireTableRowsUpdated(index, index);
}
public Mahasiswa select(int index) {
return list.get(index);
}
public int getRowCount() {
return list.size();
}
public int getColumnCount() {
return 4;
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return list.get(rowIndex).getNama();
case 1:
return list.get(rowIndex).getNrp();
case 2:
return list.get(rowIndex).getTanggalLahir();
case 3:
return list.get(rowIndex).getAlamat();
default:
return null;
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "Nama";
case 1:
return "NRP";
case 2:
return "Tanggal lahir";
case 3:
return "Alamat";
default:
return null;
}
}
}

Selanjutan kita tambahkan TableModel ke tampilan antarmuka, carannya masuk ke bagian source kemudian ubah konstruktor yang sebelunnya:
public View() {
initComponents();
}

Menjadi:
public View() {
initComponents();
tableModel = new TableModel();
Tabel.setModel(tableModel);
}

Berikutnya tambahan getter untuk semua komponen pada source antarmuka, ini berguna untuk controler yang akan buat selanjutnya.
public View() {
initComponents();
tableModel = new TableModel();
Tabel.setModel(tableModel);
}
public JButton getButtonDelete() {
return Hapus;
}
public JButton getButtonInsert() {
return Tambah;
}
public JButton getButtonUpdate() {
return Edit;
}
public TableModel getTableModel() {
return tableModel;
}
public JTable getTable() {
return Tabel;
}
public JTextField getTextNama() {
return txtNama;
}
public JTextField getTextNrp() {
return txtNrp;
}
public JSpinner getTanggal() {
return Tanggal;
}
public JTextArea getAlmt() {
return Alamat;
}

Selanjutnya kita akan membuat class Controler. Class ini bertugas untuk melakukan semua proses manipulasi database. Biasanya Controller menyesuaikan dengan View, misal disini View memiliki tombol INSERT, UPDATE dan DELETE, artinya Controller harus dapat menangani masalah INSERT, UPDATE dan DELETE tersebut. Biasanya Controller menyesuaikan dengan View, misal disini View memiliki tombol INSERT, UPDATE dan DELETE, artinya Controller harus dapat menangani masalah INSERT, UPDATE dan DELETE tersebut. Apa hanya itu? TIDAK! Terdapat sebuah tabel pada VIew yang sebelumnya kita buat, dan yang jadi pertanyaan bagaimana data yang ada dalam database bisa terlihat di table? Artinya kita harus membuat si Controller dapat menangani proses SELECT.
package aplikasi;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.swing.JOptionPane;

public class Controler {
private View view;

public Controler(View view) {
this.view = view;
}
public void insert() {
EntityManager manager =
PersistenceUtility.getEntityManagerFactory().createEntityManager();
manager.getTransaction().begin();
try {
// buat mahasiswa
Mahasiswa mhs = new Mahasiswa();
// ubah data mahasiswa
mhs.setNama(view.getTextNama().getText());
mhs.setNrp(view.getTextNrp().getText());
mhs.setTanggalLahir( (Date) view.getTanggal().getValue());
mhs.setAlamat(( view.getAlmt().getText()));
// simpan ke database
manager.persist(mhs);
// simpah ke tablemodel
view.getTableModel().insert(mhs);
manager.getTransaction().commit();
} catch (Throwable t) {
t.printStackTrace();
manager.getTransaction().rollback();
} finally {
manager.close();
}
}
public void update() {
// dapatkan baris yang terseleksi
int index = view.getTable().getSelectedRow();
// jika tidak ada
if (index == -1) {
// maka proses dibatalkan
JOptionPane.showMessageDialog(null, "Pilih baris yang akan di-update!");
return;
}
EntityManager manager =
PersistenceUtility.getEntityManagerFactory().createEntityManager();
manager.getTransaction().begin();
try {
// mendapatkan mahasiswa dari tablemodel
Mahasiswa mhs = view.getTableModel().select(index);
// ubah data mahasiswa
mhs.setNama(view.getTextNama().getText());
mhs.setNrp(view.getTextNrp().getText());
mhs.setTanggalLahir((Date) view.getTanggal().getValue());
mhs.setAlamat(( view.getAlmt().getText()));
// update mahasiswa ke database
manager.merge(mhs);
// update mahasiswa ke tablemodel
view.getTableModel().update(index, mhs);
manager.getTransaction().commit();
} catch (Throwable t) {
t.printStackTrace();
manager.getTransaction().rollback();
} finally {
manager.close();
}
}
public void delete() {
// dapatkan baris yang terseleksi
int index = view.getTable().getSelectedRow();
// jika tidak ada
if (index == -1) {
JOptionPane.showMessageDialog(null, "Pilih baris yang akan di-delete!");
return;// maka proses dibatalkan
}
EntityManager manager =
PersistenceUtility.getEntityManagerFactory().createEntityManager();
manager.getTransaction().begin();
try {
// mendapatkan mahasiswa dari tablemodel
Mahasiswa mhs = view.getTableModel().select(index);
// menghapus mahasiswa dari database
manager.remove(manager.merge(mhs));
// menghapus mahasiswa dari tablemodel
view.getTableModel().delete(index);
manager.getTransaction().commit();
} catch (Throwable t) {
t.printStackTrace();
manager.getTransaction().rollback();
} finally {
manager.close();
}
}
public void select() {
EntityManager manager =
PersistenceUtility.getEntityManagerFactory().createEntityManager();
try {
@SuppressWarnings("unchecked")
List list = manager.createQuery
("select a from Mahasiswa a order by a.nrp").getResultList();
view.getTableModel().updateAll(list);
} finally {
manager.close();
}
}
}

Untuk tahap berikutnya kita akan menambahkan aksi tombol Tambah, Hapus, Edit, dan Refresh. Dengan cara double klik tombol tersebut kemudian isikan kode beriut:

Tambah:

private void TambahActionPerformed(java.awt.event.ActionEvent evt) {
if(txtNama.getText().equals("") ||
txtNrp.getText().equals("") || Alamat.getText().equals("") ){
JOptionPane.showMessageDialog(null, "Data harus diisi dengan lengkap!");
return;
}
controler.insert();
txtNama.setText("");
txtNrp.setText("");
Alamat.setText("");
}

Hapus:
private void HapusActionPerformed(java.awt.event.ActionEvent evt) {
if (JOptionPane.showConfirmDialog
(this, "Anda Yakin Akan Menghapus Data Mahasiswa?",
"Hapus Mahasiwa", JOptionPane.OK_CANCEL_OPTION) ==
JOptionPane.CANCEL_OPTION) {
// batalkan aksi hapus
return;
}
controler.delete();
txtNama.setText("");
txtNrp.setText("");
Alamat.setText("");
}

Edit:

private void EditActionPerformed(java.awt.event.ActionEvent evt) {
if(txtNama.getText().equals("") || txtNrp.getText().equals("") ||
Alamat.getText().equals("") ){
JOptionPane.showMessageDialog(null,"Data harus diisi dengan lengkap!");
return;
}
controler.update();
txtNama.setText("");
txtNrp.setText("");
Alamat.setText("");
}

Refresh:

private void refreshActionPerformed(java.awt.event.ActionEvent evt) {
controler.select();
}

Dan terakhir tambahkan aksi tombol Cari,, dengan cara yang sama dan isikan kode berikut:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
EntityManager manager =
PersistenceUtility.getEntityManagerFactory().createEntityManager();
try {
List list = manager.createQuery
("select b from Mahasiswa b where " + "b." +
(String)cmbCari.getSelectedItem()+ " like '%" +
txtCari.getText() + "%'").getResultList();
// tampilkan hasil pencarian ke table
tableModel.setData((List) list);
} catch (Throwable t) {
// perlihatkan error
t.printStackTrace();
} finally {
// tutup entitymanager
manager.close();
}
}

Sampai disini sebenarnya program kita sudah jadi,, tapi untuk membuat tabel pada program kita lebih interaktif maka tambahkan kode berikut pada konstruktor view atau tampilan antar mua program sehingga kontraktornya menjadi:
public View() {
initComponents();
tableModel = new TableModel();
Tabel.setModel(tableModel);
controler = new Controler(this);
//menampilkan data mahasiswa ketika program pertama kali dijalankan
refreshActionPerformed(null);
Tabel.getSelectionModel().addListSelectionListener
(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
// dapatkan baris yang terseleksi
int baris = Tabel.getSelectedRow();
// cek apakah baris terseleksi
if (baris != -1) {
// jika terseleksi, tampilkan data di form
// dapatkan mahasiswa dari tabel
Mahasiswa mhs = tableModel.get(baris);
// tampilkan data di form
txtNama.setText(mhs.getNama());
txtNrp.setText(mhs.getNrp());
Tanggal.setValue(mhs.getTanggalLahir());
Alamat.setText(mhs.getAlamat());
}
}
});
}

Akhirnya progam database sederhana telah selesai,,, kita tinggal menambahkan driver MySQL ke dalam project.. Caranya klik kanan pada libraries project kita kemudian pilih Add Library, selanjutnya pilih My SQL JDBC Driver. Dan program database sederhana siap dijalankan… Gampangkan…………!! Malah lebih gampang dari cara yang biasa…

Apabila ada kendala atau kesulitan dalam proses pembuatannya silakan komen ya.... Terimakaasih

COMMENTS

BLOGGER: 2
Loading...
Nama

Aneh,19,article,24,Basis Data,3,Berita Heboh,58,Bisnis Online,2,BlackBerry,3,Blogger,5,business,5,celeb hot,11,Cinta,3,Coretan,3,ebook,3,English,1,Euro,1,Filosofi Hidup,1,fitnes,1,Funny,6,Games,1,Gaya Hidup,23,gosip,3,Hari Raya,1,Harvest Moon,1,Hidup sehat,11,Hindhu,2,Info,13,Info kesehatan,34,inspirasi,10,Instalasi,1,Internet,1,Jaringan,1,Jaringan Komputer,5,Java,4,k,1,KALKULUS,2,Karir,1,kata mutiara,2,Kehamilan,6,Kehidupan,9,kencan,4,Kisahku,6,Komik,1,Komputer,13,Kosmo,4,Liga Champions,1,Linux,1,Logika Matematika,2,MADRIDISTA,10,Manajemen Proyek,1,Materi Kuliah,1,Metode Numerik,1,Moodle,1,Motivasi,4,news,11,Pascal,17,Pemograman,14,Real Madrid,12,repeat-until,1,Sains,8,Sejarah,1,Seni dan budaya,4,Sepak Bola,5,Sexy,1,Sistem Informasi,4,Skandal,2,Statistika,2,Struktur Data,2,Teknik Informatika,2,Teknologi,6,TI,1,tips,23,tips Blog,14,Tips Kehamilan,9,tips kesehatan,20,tips rumah tangga,10,tokoh,5,Ubuntu,1,Unindra,17,Vixion,2,
ltr
item
Blog elearning - Panduan SEO - Artikel Viral - Reyditz 88: Aplikasi Sederhana CRUD Java Netbeans dan Database Mysql
Aplikasi Sederhana CRUD Java Netbeans dan Database Mysql
http://roni.rahmon08.student.ipb.ac.id/files/2010/07/New.jpg
Blog elearning - Panduan SEO - Artikel Viral - Reyditz 88
https://reyditz88.blogspot.com/2013/06/aplikasi-sederhana-crud-java-netbeans.html
https://reyditz88.blogspot.com/
http://reyditz88.blogspot.com/
http://reyditz88.blogspot.com/2013/06/aplikasi-sederhana-crud-java-netbeans.html
true
3190341216200821819
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy