crud java

38

Upload: nurhidayat-mmd

Post on 05-Dec-2015

40 views

Category:

Documents


8 download

DESCRIPTION

Membuat aplikasi CRUD menggunakan Java dan framework Hibernate Spring. ^-^

TRANSCRIPT

Page 1: CRUD Java
Page 2: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

1

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. ^_^

Page 3: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

2

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

Page 4: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

3

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

Page 5: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

4

Gambar 2.1 Palette Manager

Klik New Category isikan Calendar Ok.

Kemudian klik add from JAR…

Page 6: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

5

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”

Page 7: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

6

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”

Page 8: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

7

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.

Page 9: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

8

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

Page 10: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

9

Gambar 3.5 New Java Class Model Siswa

Isikan Class Name “Siswa” Finish.

Tambahkan Script seperti dibawah ini : package com.wordpress.yyaayyaatt.model;

import java.util.Date;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

import 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")

Page 11: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

10

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;

Page 12: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

11

}

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.

Page 13: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

12

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.

Page 14: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

13

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.

Page 15: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

14

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

Page 16: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

15

- 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 Variable Name 5 txtNis 6 txtNisn 7 txtNama 8 txtTempat 9 dateLahir

10 tabelSiswa 11 btnAdd 12 btnUpdate 13 btnDelete

Page 17: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

16

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 fungsi-

fungsi 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

Page 18: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

17

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() {

Page 19: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

18

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()

Page 20: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

19

.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;

Page 21: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

20

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")

Page 22: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

21

@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.

Page 23: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

22

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 base-

package="com.wordpress.yyaayyaatt.dao,com.wordp

ress.yyaayyaatt.impl"/>

<context:annotation-config/>

Page 24: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

23

<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:sessionFactory-

ref="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

Page 25: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

24

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.

Page 26: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

25

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.

Page 27: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

26

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 :

Page 28: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

27

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)

{

Page 29: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

28

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);

Page 30: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

29

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(

Page 31: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

30

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();

Page 32: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

31

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();

Page 33: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

32

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.

Page 34: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

33

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;

Page 35: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

34

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 :

Page 36: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

35

Gambar 14.1 Running Aplikasi

Page 37: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

36

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, mudah-

mudahan amal ibadahnya di terima, Amin.

Berhubung buku ini ditulis bertepatan bulan Ramadhan, kami

sekeluarga mengucapkan Minal ‘aidzin wal faidzin mohon maaf

lahir batin, wassalamu’alaikum wr.wb.

Page 38: CRUD Java

July 16, 2014

CREATE READ UPDATE DELETE (CRUD) JAVA

37

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 : [email protected]

- Twitter : lupa passwordnya :D