Anda di halaman 1dari 17

Membuat Data Mahasiswa Dengan Java NetBeans

Langkah Pertama : Siapkan Aplikasi Xampp atau SQLyog :

“Anda Harus punya Database dan minimal isinya 1 tabel. Bila anda belum punya, buat
database dan isi dengan 1 tabel menggunakan aplikasi Xampp atau SQLyoG”

Jika sudah :
Langkah Kedua : Buka aplikasi NetBeans, disini saya menggunakan NetBeans IDE 7.3

Buka aplikasi Netbeans – new project – java – java application

Klik Next untuk melanjutkan

Pada Project Name : buat nama projectnya.


Contoh : mahasiswa
Klik Finish – maka akan muncul gambar berikut

Pada project mahasiswa – klik kanan – new – jFrame From [lihat gambar dibawah ini]

Pada Class Name : isi nama kelasnya


Contoh : Data
Pada Package – pilih mahasiswa

Klik Finish untuk melanjutkan

Maka akan muncul Gui Form nya :


D
Tambahkan 5 Label, 3 Text Field, 3 Button, 1 Combo Box dan 1 Table pada Swing Controls

Buat seperti gambar dibawah ini :

Klik Source untuk memasukkan Coding


/*Pada Package mahasiswa isikan :*/
package mahasiswa;
import java.awt.HeadlessException;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;

/* Pada public class Data extends javax.swing.JFrame isikan : */


public class Data extends javax.swing.JFrame {
public Connection conn;
public Statement cn;
public void koneksi(){
try{
Class.forName(“com.mysql.jdbc.Driver”);
conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/mahasiswa”,”root”,”
”);
cn=conn.createStatement();
} catch(ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, “koneksi gagal….”);
System.out.println(e.getMessage());
}
}

/* Pada Public data isikan : */


public Data () {
initComponents();
bersih();
tampildata();
jComboBox1.addItem(“– PILIH –“);
jComboBox1.addItem(“Sistem Informasi”);
jComboBox1.addItem(“Teknik Informatika”);
jComboBox1.addItem(“Manajemen Informatika”);
}

/*Penjelasan :
bersih(); fungsinya semacam clear data, tapi tidak bermaksud menghapus data. Hanya
untuk membuat textfield menjadi kosong.
tampildata(); Fungsinya untuk menampilkan data ke tabel grid.
jComboBox1.addItem(“– PILIH –“);
: ini digunakan untuk menambah item – item yang ada pada Combo Box, sehingga saat di
klik akan ada pilihan item(Sistem Informasi – Teknik Informatika – Manajemen
Informatika )*/

Pada coding ” bersih ();” muncul peringatan eror[tanda seru merah !]. Untuk mengatasi eror,
klik peringatan eror[tanda seru merah !]. klik Create method “bersih ()” in mahasiswa.Data
Setelah dkilk, maka akan muncul
private void bersih() {
}
Isikan didalamnya dengan coding :
private void bersih() {
jTextField1.setText(“”);
jTextField2.setText(“”);
jTextField3.setText(“”);
jComboBox1.setSelectedItem(“– PILIH –“);
}

Pada coding ” tampildata();” juga muncul peringatan eror[tanda seru merah !]. Untuk
mengatasi eror,lakukam seperti tadi. Kklik peringatan eror[tanda seru merah !]. klik Create
method “tampildata ()” in mahasiswa.Data

Setelah dkilk, maka akan muncul


private void tampildata() {
}
Isikan didalamnya dengan coding :
private void tampildata() {
DefaultTableModel tblmhs = new DefaultTableModel();
tblmhs.addColumn(“npm”);
tblmhs.addColumn(“nama”);
tblmhs.addColumn(“jurusan”);
tblmhs.addColumn(“telp”);
try{
koneksi();
String sql=”Select * from siswa order by npm asc”;
ResultSet rs=cn.executeQuery(sql);
while (rs.next())
{
tblmhs.addRow(new Object[]{
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4)
});
}
jTable1.setModel(tblmhs);
} tioncatch (Exception e) {
JOptionPane.showMessageDialog(null,”Ada Kesalahan….”);
}
}

Kembali ke Design, Klik 2 x pada Button1


Maka akan muncul :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
}
Isikan Coding berikut :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
koneksi();
String sql=”Insert into siswa
values(‘”+jTextField1.getText()+”‘,'”+jTextField2.getText()+”‘,'”+jComboBox1.getSele
ctedItem()+”‘,'”+jTextField3.getText()+”‘)”;
cn.executeUpdate(sql);
conn.close();
tampildata();
bersih();
JOptionPane.showMessageDialog(null, “Data berhasil di simpan”);
} catch (SQLException | HeadlessException e) {
JOptionPane.showMessageDialog(null, “Proses penyimpanan gagal/koneksi gagal..”);
System.out.println(e.getMessage());
JOptionPane.showMessageDialog(null,”No Npm : “+jTextField1.getText()+” sudah
ada…!!!”);
System.out.println(e.getMessage());
bersih();
}
jComboBox1.setSelectedItem(“– PILIH –“);
}

/*Penjelasan : Coding pada button 1 digunakan untuk menyimpan data pada tabel ke database
[Coding Simpan]*/
Kembali ke Design, Klik 2 x pada Button2
Maka akan muncul :
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
}
Isikan Coding berikut :
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{
koneksi();
String sql=”Update siswa set
nama='”+jTextField2.getText()+”‘,”+”jurusan='”+jComboBox1.getSelectedItem()+”‘,”
+”telp='”+jTextField3.getText()+”‘”+”where npm='”+jTextField1.getText()+”‘”;
cn.executeUpdate(sql);
conn.close();
tampildata();
bersih();
JOptionPane.showMessageDialog(null,”Data berhasil di rubah”);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,”Proses update gagal/koneksi gagal…”);
System.out.println(e.getMessage());
}
jTextField1.setEnabled(true);
jButton1.setEnabled(true);
jComboBox1.setSelectedItem(“– PILIH –“);
}

/*Penjelasan : Coding pada button 2 digunakan untuk mengubah data pada tabel [Coding
Edit]*/
Kembali ke Design, Klik 2 x pada Button3
Maka akan muncul :
jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
}
Isikan Coding berikut :
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try{
koneksi();
String sql=”delete from siswa where npm='”+jTextField1.getText()+”‘”;
cn.executeUpdate(sql);
conn.close();
tampildata();
bersih();
JOptionPane.showMessageDialog(null,”Data berhasil di hapus”);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,”Proses hapus gagal/koneksi gagal…”);
System.out.println(e.getMessage());
}
jTextField1.setEnabled(true);
jButton1.setEnabled(true);
jComboBox1.setSelectedItem(“– PILIH –“);
}

/*Penjelasan : Coding pada button 3 digunakan untuk menghapus data pada tabel [Coding
Hapus]*/
Kembali ke design – pada table – klik kanan – Events – Mouse – mouseCliked [lihat gambar]

Maka akan muncul : private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {


}
Masukan Coding :
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int table=jTable1.getSelectedRow();
//mengambil data dari table
String a=jTable1.getValueAt(table, 0).toString();
String b=jTable1.getValueAt(table,1).toString();
String c=jTable1.getValueAt(table,2).toString();
String d=jTable1.getValueAt(table, 3).toString();
jTextField1.setText(a);
jTextField2.setText(b);
jComboBox1.setSelectedItem(c);
jTextField3.setText(d);
jTextField1.setEnabled(false);
jTextField2.requestFocus();
jButton1.setEnabled(false);
}

/* Penjelasan : ini digunakan, saat pengguna ingin melakukan pengubahan data pada tabel.
Saat mouse di klik ke salah satu data ditabel, maka data – data tersebut akan muncul ke
textfield dan siap untuk melakukan perubahan data. Tombol simpan akan dinon-aktifkan dan
hanya tombol edit dan hapus yang dapat digunakan.*/
Jika Sudah, Klik Mahasiswa.java
Pada mahasiswa.java :
Ketikan Coding pada public static void main(String[] args) {
}
public static void main(String[] args) {
new Data().setVisible(true);
}

Fungsinya agar dapat membaca Gui Form Yang dibuat saat di-Run [dijalankan]

Melakukan perubahan nama pada label, textfield, button, combobox dan table
Kembali Ke – Design

Untuk label, TextField dan Button caranya sama saja, yaitu dengan :
Klik kanan pada label atau TextField atau Button – pilih edit Text

Tulis dengan format :


Label1 : Data Mahasiswa
Label2 : Npm
Label3 : Nama
Label4 : Jurusan
Label5 : Hp
TextField1 :
TextField2 :
TextField3 :
Button1 : Simpan
Button2 : Edit
Button3 : Hapus

Untuk Table – klik kanan pada table – table contents

Pilih columns – pilih title


Ketik dengan format :
Title1 : Npm
Title2 : Nama
Title3 : Jurusan
Title4: Hp
Jika sudah semua, klik close
Pada Combo Box – properties – model – klik menu samping

pilih Reset to Default – ok agar tampilan comboBox kosong

Hasil Desainnya :

Jangan lupa untuk mengaktifkan MYSQL JDBC


Tambahkan MySQL JDBC driver dengan cara klik kanan pada project KoneksiJDBC
> Properties > Libraries pada tab Compile pilih Add Library tambahkan MySQL
JDBC Driver > OK seperti terlihat pada gambar dibawah ini :

Aplikasi Database Sederhana Dengan Java Netbeans MySql


Mungkin tulisan mengenai membuat aplikasi database sudah banyak ditemukan di internet,,,
walaupun begitu ketika mengerjakan tugas kuliah yang menyangkut database saya sangat
susah menemukan tutorial yang cocok,, kenapa??? mungkin karna masih sedikit yang
memahami pembuatan aplikasi database menggunakan metode yang saya gunakan (dengan
EclipdeLink),,,termasuk teman-teman ilkom (bisa dibilang tidak ada).. Untuk membuat suatu
aplikasi database di java kita bisa menggunakan beberapa metode,,, yaitu dengan
menggunakan metode konfensional yang sudah banyak beredar, dengan Hibernate, dan
dengan EclipseLink.. Pada tulisan ini saya menggunakan EclipseLink yang sudah mendukung
JPA 2.0,, sedangkan hibernate pada saat itu hanya mendukung jpa 1.0 pada netbeans.,
menurut sumber yang terpercaya menyebutkan bahwa menggunakan teknik ini mempunyai
beberapa kelebihan daripada menggunakan metode konvensional yang ada… Apa itu JPA??
Maaf saya tidak akan membahas masalah itu disini,, mungkin lain kali..

Untuk memulai pembutan aplikasi di Komputer anda harus ter-install Netbeans dan MySQL,
pada aplikasi ini saya menggunakan Netbeans 6.8.. Anda diharapkan telah mengerti cara
membuat database menggunakan MySQL…

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 kemudian
next. 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 unit, ok, 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<Mahasiswa> list = new ArrayList<Mahasiswa>();
public void updateAll(Collection<Mahasiswa> 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….

Anda mungkin juga menyukai