RPL 2 Pertemuan 3

download RPL 2 Pertemuan 3

of 16

description

Rekayasa Perangkat Lunak

Transcript of RPL 2 Pertemuan 3

Pertemuan 3

Desain App Setiap Divisi atau Kelompok

Hibernate Configuration

Hibernate with MySQL DatabaseHibernate Envinrontment

Instalasi Library Hibernate with NetBeansImplementation Scripting InsertObjektif:

1. Mahasiswa dapat memahami Instalasi Library Hibernate dengan NetBeans2. Mahasiswa dapat memahami Koneksi Hibernate dengan MySQL Database3. Mahasiswa dapat membuat Design dari App setiap divisi kelompoknya. 4. Mahasiswa dapat memahami dan membuat tombol yang berfungsi untuk InsertKonfigurasi Hibernate Menggunakan NetBeans.

1. Buat File Project baru terlebih dahulu.

2. File New Project

3. Setelah itu pilih Java dan pilih Java Application untuk membuat aplikasi Java Desktop pada project ini.

4. Kemudian Next. Isi seperti di bawah ini, kemudian klik Finish.

5. Kemudian tambahkan Library Hibernate pada project seperti pada gambar di bawah ini. Dengan memilih Add Library.

6. Pilih Hibernate seperti pada di bawah ini, kemudian pilih Add Library.

7. Setelah itu tambahkan Library Database yaitu MySQL JDBC Driver untuk bisa menggunakan database yang dibuat di MySQL di komputer Anda, sehingga database dan program Anda bisa terkoneksi.

8. Setelah itu buat Package baru untuk menyambungkan antara Database dan program. Klik kanan Source Package New Hibernate Configuration Wizard, sehingga menghasilkan file hibernate.cfg.xml.

9. Setelah itu, pada file hibernate.cfg.xml. Buatlah seperti di bawah ini. Localhost:port/nm_database

10. Setelah itu klik kanan di package yang sama seperti konfigurasi, New Hibernate Mapping Wizard.

11. Setelah itu terbuatlah file hibernate.hbm.xml untuk mendeskripsikan mapping yang terjadi dalam program yang akan dibuat. Pada kali ini akan membuat sebuah tampilan yang nantinya bisa di insert berupa ID, Nama, Telepon, dan Alamat yang akan masuk ke dalam database. Scriptnya seperti di bawah ini.

12. Selanjutnya, membuat Package baru terlebih dahulu untuk mengelompokkan bahwa package yang dibuat adalah package pengkodingan. Package ini diberi nama file ujicoba.entitas.

13. Setelah itu, klik kanan di Package ujicoba.entitas New Java Class untuk membuat file Person.java sebagai deskripsi nama variabel dan tipe data dan nantinya akan di dapatkan data tersebut dan disimpan dari inputan yang masuk ke dalam database.

14. Selanjutnya, di dalam file Person.java isikan script seperti di bawah ini.

15. Setelah itu membuat file PersonDAO.java untuk membuat function Insert dan SelectALL yang nantinya pada function Insert berguna untuk bisa memasukkan data inputan dari user atau admin, serta function SelectALL berguna untuk dapat menampilkan daftar data yang sudah diinputkan oleh user atau admin. Script nya seperti di bawah ini :

16. Setelah itu, kita membuat file PersonDAOImpl.java yang merupakan implementasi dari langkah 15. Pada langkah 16 ini akan ditunjukkan script program dari aplikasi ini yang berguna untuk memulai perintah, menyimpan data inputan, dan mendapatkan data tersebut kemudian di commit atau di kunci data tersebut. Scriptnya seperti di bawah ini:

17. Selanjutnya kita membuat file PersonController.java yang berguna untuk mengatur alur program yaitu Insert dan SelectALL. Jadi, ketika inputan dimasukkan oleh user maka setiap inputan yang masuk diidentifikasi dan data dimasukkan berdasarkan paramater yang dibuat melalui program di bawah ini, misal user memasukkan nama maka pada function insert, nama akan masuk pada script person.setNama(nama) atau nilai inputan tersebut akan dilempar ke variabel nama dan disimpan dalam database. Scriptnya seperti di bawah ini.

18. Selanjutnya membuat file UjiCobaUtil.java yang berfungsi untuk mengkonfigurasi program dan inisialisasi setiap sesi yang dilakukan dari program, misal sesi insert. Scriptnya seperti di bawah ini:

19. Setelah itu, kita membuat tampilan dari aplikasi yang kita akan buat. Sebelumnya kita membuat package baru yaitu Package View untuk dikelompokkan bahwa file tersebut adalah khusus untuk view. Package baru tersebut diberi nama ujicoba.view dan buat file baru yang diberi nama View.java dengan cara klik kanan package ujicoba.view New JFrame Form.

Tampilannya seperti berikut :

20. Setelah itu, klik 2x pada Button Insert dan masukkan scriptnya seperti di bawah ini.

21. Selanjutnya masih berada di file yang sama, tambahkan script berikut.

View : Untuk menginisialisasi komponen dan menampilkan data tabel.

dataTable : Function yang dibuat untuk menampilkan daftar data ke dalam tabel.

Rest : Untuk mereset atau membuat Text kosong ketika aksi button yang dipilih sudah dilakukan pada kolom inputan.

Script lengkapnya dalam View.java seperti berikut :

22. Selanjutnya, pada file utama yaitu UjiCoba.java yang ebrada pada package ujicoba yang merupakan file utama yang berfungsi untuk menjalankan program pertama kali pada program ini. Scriptnya seperti berikut:

23. Setelah itu Running programnya dan hasilnya seperti berikut : (Pastikan Database Anda sudah On). Penulis menggunakan XAMPP.

org.hibernate.dialect.MySQLDialect

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/ujicoba

root

update

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.entitas;

/**

*

* @author toerzun

*/

public class Person {

private int id;

private String nama;

private String telepon;

private String alamat;

public Person() {

}

public String getAlamat() {

return alamat;

}

public void setAlamat (String alamat) {

this.alamat = alamat;

}

public int getId() {

return id;

}

public void setId (int id) {

this.id = id; }

public String getTelepon() {

return telepon;}

public void setTelepon (String telepon) {

this.telepon = telepon;

}

public String getNama() {

return nama;

}

public void setNama (String nama) {

this.nama = nama;

}

}

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.entitas;

import java.util.List;

import org.hibernate.HibernateException;

/**

*

* @author toerzun

*/

interface PersonDAO {

public void insert (Person person) throws HibernateException;

List SelectALL() throws HibernateException;

}

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.entitas;

import java.util.List;

import org.hibernate.Criteria;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

/**

*

* @author toerzun

*/

public class PersonDAOImpl implements PersonDAO {

Session session;

SessionFactory factory;

Criteria criteria;

public PersonDAOImpl (SessionFactory factory){

this.factory = factory;

}

public void insert(Person person ) throws HibernateException {

session = factory.openSession();

try {

session.beginTransaction();

session.save(person);

session.getTransaction().commit();

System.out.println("Proses Berhasil");

}catch (Exception e){

session.getTransaction().rollback();

e.printStackTrace();

}finally{

session.close();

factory.close();

}

}

public List SelectALL() throws HibernateException{

session = factory.openSession();

try{

criteria = session.createCriteria(Person.class);

}catch (Exception e){

e.printStackTrace();

}finally{

}

return criteria.list();}}

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.entitas;

import java.util.List;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

/**

*

* @author toerzun

*/

public class PersonController {

Person person = new Person ();

PersonDAO personDAO = UjiCobaUtil.getPersonDAO();

String header[] = {"Id", "Nama", "Telepon", "Alamat"};

public void insert(String nama, String telepon, String alamat){

person.setNama(nama);

person.setTelepon(telepon);

person.setAlamat(alamat);

personDAO.insert(person);

}

public void SelectALL (JTable table){

List list = personDAO.SelectALL();

Object data[][]= new Object[list.size()][4];

int i=0;

for (Person manusia : list){

data[i][0] = manusia.getId();

data[i][1] = manusia.getNama();

data[i][2] = manusia.getTelepon();

data[i][3] = manusia.getAlamat();

i++;

}

//Untuk menampilkan data yang sudah diinput pada tabel

table.setModel(new DefaultTableModel(data, header));

}

}

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.entitas;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

/**

*

* @author toerzun

*/

public class UjiCobaUtil {

private static final SessionFactory sessionFactory;

private static final PersonDAO personDAO;

static {

try {

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

personDAO = new PersonDAOImpl(sessionFactory);

}catch (Throwable e) {

System.err.println("Inisalisasi sessionFactory gagal"+e);

throw new ExceptionInInitializerError(e);

}

}

public static PersonDAO getPersonDAO() {

return personDAO;

//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

}

public static SessionFactory getSessionFactory() {

return sessionFactory;

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String nama = jTextField2.getText();

String telepon = jTextField3.getText();

String alamat = jTextField4.getText();

new PersonController().insert(nama, telepon, alamat);

reset();// TODO add your handling code here:

}

public View() {

initComponents();

dataTable();

}

public void dataTable(){

new PersonController().SelectALL(jTable1);

}

public void reset() {

dataTable();

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

jTextField4.setText("");

}

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package ujicoba.view;

import ujicoba.entitas.PersonController;

public View() {

initComponents();

dataTable();

}

public void dataTable(){

new PersonController().SelectALL(jTable1);

}

public void reset() {

dataTable();

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

jTextField4.setText("");

}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String nama = jTextField2.getText();

String telepon = jTextField3.getText();

String alamat = jTextField4.getText();

new PersonController().insert(nama, telepon, alamat);

reset();

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTable jTable1;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2;

private javax.swing.JTextField jTextField3;

private javax.swing.JTextField jTextField4;

// End of variables declaration

}

package ujicoba;

import ujicoba.view.View;

public class UjiCoba {

public static void main(String[] args) {

// TODO code application logic here

java.awt.EventQueue.invokeLater(new Runnable(){

public void run() {

new View().setVisible(true);

}});

}

}