Anda di halaman 1dari 38

CREATE READ UPDATE DELETE (CRUD)

July 16, 2014 JAVA


PRAKATA
Puji Syukur kehadirat Allah SWT yang telah memberi
nikmat sehat sehingga buku saku ini dapat terselesaikan dan
mudah-mudahan bermanfaat dalam proses belajar khususnya
Programming Java. Mohon doanya supaya dapat menyelesaikan
buku saku lainnya.
Buku ini gratis untuk dipelajari, boleh menyebarkan
buku ini tetapi jangan merubah isi dari buku ini yah apalagi
memanfaatkan untuk diperjualbelikan.
Semoga buku ini berguna dan sebagai ladang amal
kami sekeluarga, mohon doanya supaya kami bisa membuat
buku-buku gratis yang lain, Amin. ^_^

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
DAFTAR ISI
Halaman
Prakata .................................................................................................... 1
Daftar Isi ................................................................................................. 2
Persiapan ............................................................................................... 3
Konfigurasi ............................................................................................ 3
Menambahkan Component Tanggal ......................... 3
Membuat Aplikasi .............................................................................. 5
Membuat Project ............................................................... 5
Membuat Package ............................................................. 6
Membuat Model/Entity ................................................................... 8
Menambahkan Library .................................................................... 11
Desain Interface .................................................................................. 12
Pengenalan Palette ........................................................... 12
Pembuatan Form Siswa ................................................. 13
Konfigurasi Form Siswa ................................................. 15
Membuat Class DAO .......................................................................... 16
Membuat Interface Service ............................................................ 19
Membuat Service Implementation ............................................. 20
Konfigurasi Spring XML ................................................................... 21
Konfigurasi Hibernate ...................................................................... 23
JDBC Properties .................................................................................. 24
CRUD Pada Form ................................................................................ 27
Main Project ........................................................................ 27
Form SiswaFrame ............................................................. 28
Class GenerateTables ........................................................................ 33
Penutup .................................................................................................. 36
Tentang Penulis .................................................................................. 37

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
1. Persiapan
Persiapan untuk memulai membuat aplikasi java memerlukan
beberapa software diantaranya :
- Aplikasi Netbeans IDE 7.4
Digunakan sebagai editor untuk membuat aplikasi java,
selain Netbeans IDE ada juga Eclipse, JCreator dan lain-lain.
Tapi dalam tutorial ini menggunakan Netbeans IDE sebagai
editornya.
XAMPP
MySQL sebagai database aplikasi, kami memanfaatkan
MySQL yang ada pada Aplikasi XAMPP.
- Mozila Firefox
Aplikasi Web browser sebagai pintu masuk kedalam
database MySQL.
- JDK 1.7
2. Kofigurasi
Konfigurasi Netbeans sebelum memulai membuat Aplikasi.
- Menambahkan Component Tanggal
Secara default Aplikasi Netbeans IDE tidak memiliki
component tanggal untuk input data dengan format date,
jadi kita harus menambahkannya terlebih dahulu kedalam
Palette Netbeans IDE yang diambil dari library JCalendar,
berikut caranya :
a. Jalankan Netbeans IDE
Pilih menu Tool Palette Swing/AWT Components

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 2.1 Palette Manager


Klik New Category isikan Calendar Ok.
Kemudian klik add from JAR

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
Gambar 2.2 Install Component to Palette
Kemudian Next pilih semua next pilih folder Calendar
finish.
Cek apakah Komponent Kalender sudah berhasil ditambahkan,
lihat pada palate Calender.
Selanjutnya membuat aplikasi.
3. Membuat Aplikasi
Langkah awal dalam membuat Aplikasi adalam membuat
project terlebih dahulu, berikut caranya :
- Membuat Project
Pertama Pilih Menu File new project

Gambar 3.1 New Project


Pilih Java Application Next isikan Project Name CRUD
JAVA, Create Main Class Main dan ubahlah menjadi
com.wordpress.yyaayyaatt.form.Main

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 3.2 New Java Aplication


Klik Finish.
Selesailah pembuatan Project pada Netbeans IDE.
-

Membuat Package
Package atau folder digunakan untuk memisahkan antara
Model View dan Cotrollernya, caranya sebagai berikut :
Klik Kanan Project New Java Package Package Name
com.wordpress.yyaayyaatt.dao

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 3.3 New Java Package


Klik Finish.
Tadi sudah kita buat sebuah package yang akan digunakan
untuk menaruh Class Data Akses Objek (DAO).
Selanjutnya buatlah Package dengan nama :
com.wordpress.yyaayyaatt.model
com.wordpress.yyaayyaatt.form
com.wordpress.yyaayyaatt.service
com.wordpress.yyaayyaatt.impl
dan hasilnya seperti pada gambar 3.4 dibawah ini.

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 3.4 Package Aplikasi


4. Membuat Model
Model atau sering dikenal dengan nama Entity adalah
sesuatu yang terlibat dalam sebuah system, sesuatu itu bisa
orang seperti siswa atau benda seperti buku.
Model disini adalah representasi dari table dalam database
yang akan kita buat, dari model, sering disebut Reverse
Engineering. Berikut adalah cara membuat Model :
Klik kanan Package com.wordpress.yyaayyaatt.model
New Java Class

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 3.5 New Java Class Model Siswa


Isikan Class Name Siswa Finish.
Tambahkan Script seperti dibawah ini :
package com.wordpress.yyaayyaatt.model;
import
import
import
import
import
import

java.util.Date;
javax.persistence.Column;
javax.persistence.Entity;
javax.persistence.Id;
javax.persistence.Table;
javax.persistence.Temporal;

@Entity
@Table(name = "siswa")
public class Siswa implements Serializable
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "nis")
private String nis;
@Column(name = "nisn")

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
private String nisn;
@Column(name = "nama")
private String nama;
@Column(name = "tmpt_lhr")
private String tmpt_lhr;
@Column(name = "tgl_lhr")
@Temporal(javax.persistence.TemporalType.DAT
E)
private Date tgl_lhr;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNis() {
return nis;
}
public void setNis(String nis) {
this.nis = nis;
}
public String getNisn() {
return nisn;
}
public void setNisn(String nisn) {
this.nisn = nisn;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getTmpt_lhr() {
return tmpt_lhr;
}
public void setTmpt_lhr(String tmpt_lhr) {
this.tmpt_lhr = tmpt_lhr;
}
public Date getTgl_lhr() {
return tgl_lhr;

10

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
}
public void setTgl_lhr(Date tgl_lhr) {
this.tgl_lhr = tgl_lhr;
}
}

5. Menambahkan Library
Pada proses pembuatan Model diatas pasti akan muncul
banyak pesan merah pada scriptnya, itu karena Library
yang dibutuhkan belum ditambahkan kedalam Project.
Berikut akan kami jelaskan bagaimana menambahkan
library kedalam Project :

Gambar 5.1 Add Library


Klik kanan pada Folder Libraries add library
Import cari library dengan nama :
Hibernate JPA
Spring Framework 2.5.6 SEC03
Klik Import Library Seleksi Library Add Library.

11

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 5.2 Add Library to Project


Setelah selesai maka yang tadinya error akan hilang
dengan sendirinya.
6. Desain Interface
Langkah berikutnya adalah desain interface program,
interface adalah penghubung antara pemakai dan
perangkat. Arti interface disini adalah penghubung antara
Siswa dengan Database, tanpa adanya interface maka siswa
tidak dapat mengakses data dalam database. Sebelum
mendesain interface, ada yang perlu di pelajari dahulu,
antara lain :
- Pengenalan Palette
Palette adalah tempat berbagai macam component, lihat
gambar 6.1.

12

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 6.1 Palette Netbeans IDE 7.4 Modify

Cara mengimplementasikan sebuah component dari Palette


kedalam sebuah Form, caranya klik component dan arahkan
cursor keatas Form dan letakkan sesuai kebutuhan.
Pembuatan Form Siswa
Cara membuat Form Siswa dengan menggunakan JFrame,
Klik Kanan package com.wordpress.yyaayyaatt.form New
JFrame Form Isikan Class Name SiswaFrame
kemudian Klik Finish. Lihat Gambar 6.2.

13

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 6.2 Membuat JFrame Form


Selanjutnya desain form SiswaFrame menjadi seperti pada
gambar 6.3 dibawah ini.

Gambar 6.3 Desain Interface Form SiswaFrame

14

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
-

Konfigurasi Form Siswa


Nama-nama component dari desain interface diatas masih
secara default jadi perlu dirubah supaya tidak
membingungkan saat melakukan coding nantinya. Rubahlah
setingannya seperti berikut :

Gambar 6.4 Setting Variable Name


Tabel 6.1 Setting Variable Name

Nomor
5
6
7
8
9
10
11
12
13

Variable Name
txtNis
txtNisn
txtNama
txtTempat
dateLahir
tabelSiswa
btnAdd
btnUpdate
btnDelete

15

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
14
btnClose
Cara merubah Variable Name dari component component
pada form SiswaFrame adalah sebagai berikut :
Klik kanan Komponent Change Variable Name

Gambar 6.5 Rename Variable Name


Klik OK.
Begitu juga seterusnya ^_^.

7. Membuat Class DAO


Class DAO atau sering dikenal dengan Data Access Object, class
ini berfungsi sebagai Controller dari Aplikasi karena dalam class
ini berisi berbagai macam query yang akan digunakan untuk
pengolahan data pada Form. Setelah selesai membuat Model dan
User Interface sekarang kita buat Class DAO, tapi sebelum itu
kita buat dahulu sebuah class Generic DAO, kenapa perlu
membuat class ini karena dalam sebuah proses ada fungsifungsi dasar seperti save, delete, getById dan getAll. Proses
pembuatan DAO bisa dipersingkat jika kita membuat Generic
DAO, karena semua DAO akan extends Generic DAO. Langsung
saja ikuti langkah-langkah membuat Generic DAO berikut ini :
Buat Java Class didalam Package *.dao dengan nama
BaseDaoHibernate.

Ubah scriptnya seperti ini :

Package com.wordpress.yyaayyaatt.dao

16

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
public class BaseDaoHibernate<T> {
@SuppressWarnings("unchecked")
protected Class domainClass;
@Autowired
protected SessionFactory sessionFactory;
@SuppressWarnings("unchecked")
public BaseDaoHibernate() {
this.domainClass = (Class) ((ParameterizedType)
getClass().getGenericSuperclass())
.getActualTypeArguments()[0];
}
public T save(T domain) {
sessionFactory.getCurrentSession().saveOrUpdate(dom
ain);
}
@SuppressWarnings("unchecked")
public T getById(Long id) {
return(T)
sessionFactory.getCurrentSession().get(domainClass,
id);
}
public T delete(T domain) {
sessionFactory.getCurrentSession().delete(domain);
}
@SuppressWarnings("unchecked")
public Long count() {
List list =
sessionFactory.getCurrentSession().createQuery(
"select count(*) from " + domainClass.getName() + "
x").list();
Long count = (Long) list.get(0);
return count;
}
@SuppressWarnings("unchecked")
public List<T> getAll() {

17

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
return
sessionFactory.getCurrentSession().createQuery("fro
m " + domainClass.getName())
.list();
}
@SuppressWarnings("unchecked")
public List<T> getAll(int start, int num) {
return
sessionFactory.getCurrentSession().createQuery("fro
m " + domainClass.getName())
.setFirstResult(start).setMaxResults(num)
.list();
}
}

Simpan.
Setelah selesai membuat Generic Class barulah kita buat Class
SiswaDAO, caranya sebagai berikut :
Klik kanan pada package *.dao new Java Class Class
Name SiswaDAO OK.
Tuliskan Script seperti berikut :
package com.wordpress.yyaayyaatt.dao;
import com.wordpress.yyaayyaatt.model.Siswa;
import java.util.List;
import
org.springframework.stereotype.Repository;
@Repository
public class SiswaDAO extends
BaseDaoHibernate<Siswa> {
public Siswa getSiswaByID(String id) {
return (Siswa)sessionFactory
.getCurrentSession()

18

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
.createQuery("from Siswa s where s.id=:id")
.setParameter("id", id)
.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<Siswa> getCari(String cari) {
System.out.print(cari);
String searchFor = "%" + cari + "%";
String query="from Siswa n where n.nama like
'"+searchFor+"' or n.nis like '"+searchFor+
"' or n.nisn like '"+searchFor+"'";
System.out.print(query);
return
sessionFactory.getCurrentSession()
.createQuery(query)
.list();
}
}
8. Membuat Interface Service

Interface
berisi
method-method
yang
akan
diimplementasikan kedalam Class serviceImpl, dimana
didalam
class
serviceImpl
adalah
class
yang
menghubungkan antara Form dengan Class DAOnya,
sekarang buat class Service untuk Siswa, caranya seperti
berikut :
Buatlah Java Interface dengan nama SiswaService
didalam package *.service, caranya Klik kanan pada
package *.service new Java Interface (bukan Java
Class) ubah namanya menjadi SiswaService OK.
Masukkan Script berikut ini :
package com.wordpress.yyaayyaatt.service;
import com.wordpress.yyaayyaatt.model.Siswa;

19

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
import java.util.List;
public interface SiswaService {
void insert(Siswa a);
void delete(Siswa a);
List<Siswa> getAll();
List<Siswa> getCari(String cari);
Siswa getByID(int id);
}

9. Membuat Service Implementation


Sesuai dengan namanya Class ini akan mengimplementskan
servicenya,
misal
SiswaServiceImpl
itu
akan
mengimplements Class SiswaService dengan Model yang
sama yaitu Class Siswa. Jadi kita akan membuat Class
Implements yang akan mengimplementskan Interface
SiswaService diatas. Caranya :
Buat Java Class dalam Package *.impl dengan Nama
SiswaServiceImpl dan ubah Scriptnya seperti berikut
ini :
package com.wordpress.yyaayyaatt.impl;
import com.wordpress.yyaayyaatt.dao.SiswaDAO;
import com.wordpress.yyaayyaatt.model.Siswa;
import
com.wordpress.yyaayyaatt.service.SiswaService
;
import java.util.List;
import
org.springframework.beans.factory.annotation.
Autowired;
import
org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Tr
ansactional;
@Service("siswaService")

20

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
@Transactional(readOnly=true)
public class SiswaServiceImpl implements
SiswaService {
@Autowired
private SiswaDAO siswaDAO;
@Transactional(readOnly=false)
public void insert(Siswa a){
siswaDAO.save(a);
}
@Transactional(readOnly=false)
public void delete(Siswa a){
siswaDAO.delete(a);
}
@Override
public List<Siswa> getAll(){
return siswaDAO.getAll();
}
@Override
public List<Siswa> getCari(String cari) {
return siswaDAO.getCari(cari);
}
@Override
public Siswa getByID(int id) {
return siswaDAO.getSiswaByID(id);
}
}

10. Konfigurasi Spring xml


Buatlah file SpringXMLConfig, caranya klik kanan source
packages new SpringXMLConfig lihat Gambar 10.1.

21

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 10.1 File SpringXMLConfig


Next Class Name appContext Next

Gambar 10.2 New File SpringXMLConfig


check context, p dan tx Finish.
tambahkan script berikut ini sebelum </beans>:
<context:component-scan basepackage="com.wordpress.yyaayyaatt.dao,com.wordp
ress.yyaayyaatt.impl"/>
<context:annotation-config/>

22

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
<tx:annotation-driven/>
<context:property-placeholder
location="classpath:jdbc.properties"/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.Driv
erManagerDataSource"
p:driverClassName="${jdbc.driver}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}"/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annot
ation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="classpath:hibernate.cfg.xml"/
>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.Hiber
nateTransactionManager"
p:sessionFactoryref="sessionFactory"/>

11. Konfigurasi Hibernate

Setelah selesai konfigurasi Spring sekarang kita konfigurasi


Hibernate, kegunaan dari hibernate config ini untuk
mendaftarkan Model yang akan di reverse menjadi sebuah
tabel pada database. Menentukan driver koneksi yang
dipakai sesuai database yang digunakan, user dan password
database, beriukut caranya :
Klik kanan source packages New others
Hibernate Hibernate Configuration Wizard Next

23

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 11.1 New Hibernate.cfg


Isikan File Name hibernate.cfg Next pilih New
Database Connection pada Database Connection pilih
Driver MySQL(Connector/J driver) Next Isikan
Nama Database yang akan dipakai dan database
tersebut harus dibuat manual dahulu dalam MySQL1,
disini kami pakai database dengan nama biodata
masukkan Password Koneksinya Test Connection
jika sukses Finish Finish.

24

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 11.2 New Connection Wizard


Hasilnya sebagai berikut :

Gambar 11.3 UI Hibernate.cfg.xml


Langkah berikutnya adalah mendaftarkan(Mapping)
Model kedalam Hibernate.cfg.xml, caranya klik
Mapping add browse pada class cari Modelnya
yaitu Class Siswa.java klik Select File OK, bisa
dilihat pada Gambar 11.4 Add Mapping.

25

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 11.4 Add Mapping


Proses mapping Model telah selesai, jika terdapat lebih dari
satu Model/Entity maka mappingkan semuanya satu
persatu.
12. JDBC Properties
Klik kanan source packages New other properties
files hasilnya lihat Gambar 12.1.

Gambar 12.1 New Properties Files


Isikan File Name jdbc.properties Finish.
Masukkan script berikut ini :

26

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/biodata
jdbc.username=root
jdbc.password=yyaayyaatt

Selesai dan simpan.


13. CRUD pada Form
a. Main Project
Konfigurasi Main.java, pada Class Main ini kita akan
mendeclarasikan Class Service dan mendaftarkan class
service kedalam Spring. Langsung saja berikut
langkahnya :
Buka file Main.java dan Masukkan script dibawah ini
package com.wordpress.yyaayyaatt.form;
import
com.wordpress.yyaayyaatt.service.SiswaServi
ce;
import
org.springframework.context.ApplicationCont
ext;
import
org.springframework.context.support.ClassPa
thXmlApplicationContext;
public class Main {
private static SiswaFrame siswaFrame;
private static SiswaService
siswaService;
public static SiswaFrame
getSiswaFrame() {
return siswaFrame;
}
public static SiswaService
getSiswaService() {
return siswaService;
}
public static void main(String[] args)
{

27

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
ApplicationContext appContext
= new
ClassPathXmlApplicationContext("appContext.
xml");
siswaService = (SiswaService)
appContext.getBean("siswaService");
siswaFrame = new SiswaFrame();
siswaFrame.setVisible(true);
}
}

Karena hanya memiliki satu Class Service yaitu


SiswaService maka yang ditambahkan hanya
SiswaService, jika ada lebih dari itu maka masukkan
semuanya sesuai kebutuhan.
b. Form SiswaFrame
Langkah berikutnya adalah menerapkan class-class
kedalam sebuah form untuk dijadikan sebuah mekanisme
CRUD, ikuti langkah-langkahnya :
Buka Form SiswaFrame.
Membuat Aksi Simpan pada btnAdd, caranya klik
kanan pada btnAdd events Action
actionPerformed
Masukkan script Add berikut :
if (btnAdd.getText().equals("Add")) {
btnAdd.setText("Save");
aktif(true);
txtNis.requestFocusInWindow();
} else {
if (txtNis.getText().equals("") &&
txtNisn.getText().equals("") &&
txtNama.getText().equals("")) {
JOptionPane.showMessageDialog(SiswaFrame.th
is, "Isi Semua data!!", "Peringatan",
JOptionPane.OK_OPTION);

28

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
txtNis.requestFocusInWindow();
} else {
SimpanData();
btnAdd.setText("Add");
aktif(false);
statusAwal();
}
}

Setelah memasukkan script diatas pasti ada error,


untuk menanganinya masukkan script berikut ini:
void aktif(boolean b) {
txtNis.setEnabled(b);
txtNisn.setEnabled(b);
txtNama.setEnabled(b);
dateLahir.setEnabled(b);
txtTempat.setEnabled(b);
btnUpdate.setEnabled(b);
btnDelete.setEnabled(b);
}
private void setClearTextField() {
txtNis.setText("");
txtNisn.setText("");
txtNama.setText("");
txtTempat.setText("");
}
void SimpanData() {
try {
if (siswa == null) {
siswa = new Siswa();
}
siswa.setNis(txtNis.getText());
siswa.setNisn(txtNisn.getText());
siswa.setNama(txtNama.getText());
siswa.setTmpt_lhr(txtTempat.getText());
siswa.setTgl_lhr(dateLahir.getDate());
Main.getSiswaService().insert(siswa);
JOptionPane.showMessageDialog(

29

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
SiswaFrame.this,"Simpan
Sukses!","Pemberitahuan"
,
JOptionPane.INFORMATION_MESSAGE);
setClearTextField();
} catch (Exception ex) {
System.out.println("error = " +
ex.toString());
JOptionPane.showMessageDialog(
SiswaFrame.this, "Simpan Gagal!!!" + " " +
ex.toString(),"Peringatan",
JOptionPane.ERROR_MESSAGE);
}
}
private void modelToForm() {
txtNis.setText(String.valueOf(siswa.getNis()));
txtNisn.setText(siswa.getNisn());
txtNama.setText(siswa.getNama());
txtTempat.setText(siswa.getTmpt_lhr());
dateLahir.setDate(siswa.getTgl_lhr());
}
void klikTable() {
if (tabelSiswa.getSelectedRow() >= 0) {
siswa=siswas.get(
tabelSiswa.getSelectedRow());
siswa=Main.getSiswaService()
.getByID(siswa.getNis());
modelToForm();
}
}
private void setFillTable() {
siswas = Main.getSiswaService().getAll();
Object data[][] =
new Object[siswas.size()][9];
int x = 0;
for (Siswa s : siswas) {
data[x][0] = s.getNis();
data[x][1] = s.getNisn();
data[x][2] = s.getNama();

30

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
data[x][3] = s.getTmpt_lhr();
data[x][4] = s.getTgl_lhr();
++x;
}
String[] judul =
{"NIS", "NISN", "NAMA","TEMPAT LAHIR",
"TGL, LAHIR"};
tabelSiswa.setModel(new
DefaultTableModel(data, judul));
jScrollPane1.setViewportView(tabelSiswa);
}
void statusAwal() {
aktif(false);
setClearTextField();
setFillTable();
}

Script diatas memiliki fungsinya masing-masing :


- method aktif digunakan untuk mengaktifkan atau
menonaktifkan component berdasarkan nilainya true
atau false.
- method setClearTextField digunakan untuk
menghapus isi dari textfield setelah menginput data
atau edit data.
- klikTable berguna untuk mendapatkan nilai dari
data yang diklik pada table dan selanjutnya akan
diteruskan ke method modelToForm dan data akan
ditampilkan pada textField dan dateField sesuai
dengan datanya.
- setFillTable menampilkan data dari database
kedalam component table.
Input Script Hapus, caranya sama seperti saat input
Script Simpan, yaitu klik kanan btnDelete events
action actionPerformed
if (siswa != null) {
Main.getSiswaService().delete(siswa);
statusAwal();

31

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
JOptionPane.showMessageDialog(this, "Hapus
Sukses!");
} else {
JOptionPane.showMessageDialog(this, "Hapus
Gagal!!!");
}

Input Script Update, caranya sama seperti btnDelete


dan btnAdd.
if (btnUpdate.getText().equals("Update")) {
btnUpdate.setText("Save");
aktif(true);
txtNis.requestFocusInWindow();
} else {
if (txtNis.getText().equals("")
&& txtNisn.getText().equals("")
&& txtNama.getText().equals("")) {
JOptionPane.showMessageDialog(rootPane,
"Isi Semua Files!!!"
, "Peringatan", JOptionPane.OK_OPTION);
txtNis.requestFocusInWindow();
} else {
SimpanData();
btnUpdate.setText("Update");
aktif(false);
statusAwal();
}
}

Input Script Klik Tabel, caranya klik kanan component


table events mouse mouseClicked
klikTable();
btnDelete.setEnabled(true);
btnUpdate.setEnabled(true);

Input Script keluar pada btnClose.

32

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
System.exit(0);

Tuliskan
method
statusAwal();
setelah
initComponent(); pada Form SiswaFrame lihat gambar
13.1.

Gambar 13.1 Method statusAwal


14. Class GenerateTables
Class ini berfungsi untuk mengenerate table kedalam
database secara otomatis sesuai dengan Model/Entitiy, class
ini akan sukses jika koneksi database sudah benar dan
nama database tujuan sudah dibuat terlebih dahulu pada
MySQL. Buatlah Class dengan nama GenerateTables pada
package *.form dan berikut listing kodenya :
package com.wordpress.yyaayyaatt.form;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import
org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import
org.springframework.context.support.AbstractApp
licationContext;

33

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
import
org.springframework.context.support.ClassPathXm
lApplicationContext;
public class GenerateTables {
public static void main(String[] args) throws
SQLException {
AbstractApplicationContext appContext = New
ClassPathXmlApplicationContext("classpath:appCo
ntext.xml");
DataSource dataSource = (DataSource)
appContext.getBean("dataSource");
AnnotationConfiguration cfg = new
AnnotationConfiguration().configure("hibernate.
cfg.xml");
Connection conn =
dataSource.getConnection();
new SchemaExport(cfg, conn).create(true,
true);
System.exit(0);
}
}

Jalankan Aplikasinya dan hasilnya seperti dibawah ini :

34

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA

Gambar 14.1 Running Aplikasi

35

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
Penutup
Alhamdulillah akhirnya tutorial ini bisa selesai sebelum lebaran,
mudah-mudahan apa yang saya buat bermanfaat bagi semua
pembaca, saya sadar bahwa apa yang saya tulis masih belum
sempurna maka dari itu mohon kritik dan saran yang dapat
membangun dan membuat karya-karya berikutnya menjadi
lebih sempurna dan terstruktur dengan rapi.
Mohon doa dan dukungannya untuk kedepan agar saya bisa
membuat buku-buku lain yang lebih lengkap, lebih bagus, lebih
dapat dipelajari dan akhirnya saya mengucapkan terimakasih
yang sebesar-besarnya kepada pihak-pihak yang telah
membantu dalam proses pembuatan buku saku ini, mudahmudahan amal ibadahnya di terima, Amin.
Berhubung buku ini ditulis bertepatan bulan Ramadhan, kami
sekeluarga mengucapkan Minal aidzin wal faidzin mohon maaf
lahir batin, wassalamualaikum wr.wb.

36

CREATE READ UPDATE DELETE (CRUD)


July 16, 2014 JAVA
Tentang Penulis
Penulis bernama Muhammad Nurhidayat lahir di Tegal tanggal
02 juni 1990, tumbuh besar di Kampung halaman di Ds.
Kendayakan masih di area Tegal, sekarang tinggal di Jl. Mawar
RT. 29/III Desa Ujungrusi Adiwerna Tegal.
Penulis adalah lulusan dari Politeknik Harapan Bersama Tegal,
dan sekarang sedang melanjutkan Study S1 di STMIK
Tasikmalaya.
Kegiatan penulis saat ini adalah Freelance Programming
khususnya bahasa Pemrograman Java dan juga mengajar Materi
Kuliah Pemrograman Android di STMIK Tasikmalaya.
Penulis dapat dihubungi melalui :
- Facebook : www.facebook.com/yayat.gagah
- Email
: yyaayyaatt@gmail.com
- Twitter
: lupa passwordnya :D

37