laporan prakerin - dian aditya - 2008/2009

31
1 LAPORAN PRAKTIK KERJA INDUSTRI TAHUN AJARAN 2008/2009 MEMBUAT APLIKASI DESKTOP MENGGUNAKAN SWING DAN HIBERNATE Disusun Oleh Nama Nomor Induk Siswa Bidang Keahlian Program Keahlian : Dian Wahyu Aditya : 7919/0464.RP : Informatika : Rekayasa Perangkat Lunak SMK PGRI 3 MALANG Jl. Raya Tlogomas IX No. 29 Malang 65144 Jawa Timur Telp.(0341)554383 Fax.(0341)574755 Website : www.smkpgri3-mlg.sch.id e-mail : [email protected]

Upload: dian-aditya

Post on 30-Jun-2015

2.286 views

Category:

Education


0 download

DESCRIPTION

Laporan Prakerin "Membuat Aplikasi Desktop menggunakan Swing dan Hibernate"

TRANSCRIPT

Page 1: Laporan Prakerin - Dian Aditya - 2008/2009

1

LAPORAN

PRAKTIK KERJA INDUSTRI

TAHUN AJARAN 2008/2009

MEMBUAT APLIKASI DESKTOP MENGGUNAKAN SWING DAN HIBERNATE

Disusun Oleh

Nama Nomor Induk Siswa

Bidang Keahlian Program Keahlian

: Dian Wahyu Aditya : 7919/0464.RP

: Informatika : Rekayasa Perangkat Lunak

SMK PGRI 3 MALANG

Jl. Raya Tlogomas IX No. 29 Malang 65144 Jawa Timur Telp.(0341)554383 Fax.(0341)574755 Website : www.smkpgri3-mlg.sch.id

e-mail : [email protected]

Page 2: Laporan Prakerin - Dian Aditya - 2008/2009

2

LEMBAR PENGESAHAN

LAPORAN PRAKTEK KERJA INDUSTRI

Tempat PRAKERIN Alamat

Waktu PRAKERIN Program Keahlian Nama

Nomor Induk Siswa

: Meruvian Foundation : Wijaya Grand Center Blok H41, Jakarta

: 23 Oktober 2008 – 4 Juli 2009 : Rekayasa Perangkat Lunak : Dian Wahyu Aditya

: 7919/0464.RP

Pembimbing DU/DI

Kurniawan

Menyetujui,

Pembimbing Sekolah

M. Lukman Hakim, ST

BKA / PRAKERIN

M. Lukman Hakim, ST

Mengetahui,

Pimpinan Perusahaan

Frans Thamura

Page 3: Laporan Prakerin - Dian Aditya - 2008/2009

3

Kata Pengantar

Puji syukur Alhamdulillah penyusun panjatkan kehadirat Allah Yang

Maha Kuasa atas rahmat dan hidayahnya sehingga penyusun dapat menyelesaikan

laporan ini dengan cukup lancar dan sesuai dengan jangka waktu yang telah

ditentukan. Tidak terasa sudah hampir satu tahun penyusun mengikuti kegiatan

prakerin di Meruvian Foundation, dan sangat merasakan banyak sekali ilmu

yang diperoleh terutama tentang dunia Java.

Laporan ini akan menjelaskan bagaimana membuat aplikasi menggunakan

bahasa pemrograman java serta sedikit bukti betapa mudahnya membuat sebuah

aplikasi karena kita hanya tinggal memanfaatkan library yang sudah disediakan.

Laporan ini juga sebagai sebuah media pembuktian bahwa ilmu, kemampuan, dan

ketrampilan yang diperoleh bukan hanya berasal dari bakat, akan tetapi juga

kemauan dan kerja keras dari pelakunya.

Terima kasih penyusun ucapkan kepada Bpk. Lukman Hakim ST selaku

pembimbing sekolah atas dukungan yang telah diberikan selama penyusun

melaksanakan prakerin. Kepada pimpinan Meruvian, Bpk. Frans Thamura

penyusun ucapkan terimakasih atas semangat kerja dan kedisiplinan yang selalu

diterapkan di setiap kesempatan sehingga sampai detik inipun penusun masih

merasakan manfaatnya. Kepada Bpk. Aditya Lukman dan Bpk. Kurniawan

selaku pembimbing prakerin, penyusun ucapkan banyak-banyak terimakasih atas

bimbingan baik didunia industri maupun diluar kegiatan prakerin. Penyusun juga

mengucapkan terima kasih kepada semua pihak yang telah banyak berkontribusi

selama kegiatan prakerin.

Laporan ini masih jauh dari kata sempurna, penyusun juga menyadari hal

tersebut. Atas dasar tersebut mohon kritik dan solusi agar kedepan dapat

bermanfaat bagi penyusun. Sedikit harapan dari penyusun agar seluruh lulusan

smk optimis dan dapat membuktikan bahwa smk bisa.

Malang, 19 Juli 2009

Page 4: Laporan Prakerin - Dian Aditya - 2008/2009

4

Daftar Isi

HALAMAN SAMPUL ..................................................................... 1

LEMBAR PENGESAHAN ............................................................... 2

KATA PENGANTAR ....................................................................... 3

DAFTAR ISI ..................................................................................... 4

BAB I Pendahuluan .............................................................. 6

1.1. Latar Belakang Masalah ................................ 6

1.2. Fungsi dan Tujuan ......................................... 7

BAB II Pelaksanaan Praktik Kerja Industri ........................... 8

2.1. Waktu dan Tempat ......................................... 8

2.2. Tentang Meruvian .......................................... 8

2.3. Sistem Pelaksanaan Kegiatan di Tempat

Prakerin .......................................................... 9

2.4. Kegiatan selama Prakerin .............................. 9

2.5. Sistematika Kerja ........................................... 10

BAB III Membuat Aplikasi Desktop Menggunakan Swing

dan Hibernate ............................................................. 11

3.1. Persiapan ........................................................ 12

3.1.1. Integrated Development Environment .... 12

3.1.2. Database .................................................. 13

3.1.3. Swing Designer ....................................... 13

3.1.4. Hibernate Tools ...................................... 14

3.1.5. Library .................................................... 14

Page 5: Laporan Prakerin - Dian Aditya - 2008/2009

5

3.2. Langkah Pengerjaan ...................................... 15

3.2.1. Membuat sebuah hibernate project ......... 15

3.2.2. Memulai hibernate project ...................... 16

3.2.3. Men-generate database menggunakan

Hibernate tools ........................................ 20

3.2.4. Menjalankan hibernate object ................. 24

3.2.5. Membuat Aplikasi berbasis GUI ............ 25

BAB IV Penutup ...................................................................... 30

4.1. Kesimpulan .................................................... 30

4.2. Saran .............................................................. 30

DAFTAR PUSTAKA ....................................................................... 31

Page 6: Laporan Prakerin - Dian Aditya - 2008/2009

6

BAB I

Pendahuluan

1.1. Latar Belakang Masalah

Dewasa ini kebutuhan akan programmer java di dunia industri

meningkat dengan sangat pesat. Hampir sebagian besar SMK yang memiliki

program keahlian Rekayasa Perangkat Lunak merubah haluan, dari yang

notabene nya mengajarkan bahasa pemrograman non-java seperti Delphi

ataupun C++ beralih mengajarkan bahasa pemrograman Java. Lantas

mengapa programmer Java lulusan SMK seakan tenggelam mengingat

sedikitnya lulusan SMK yang terserap di dunia industri untuk keahlian

Java? Mungkin pertanyaan tersebut yang masih sering terbayang di telinga

setiap siswa SMK yang sedang mempelajari bahasa pemrograman Java yang

konon merupakan bahasa pemrograman paling hot abad ini.

Memang tidak dapat dipungkiri bahwa dunia luar/industri masih

belum cukup percaya dengan ketrampilan yang dimiliki oleh lulusan SMK.

Memang ada programmer Java lulusan SMK yang telah direkrut di dunia

industri. Akan tetapi hampir sebagian besar perusahaan ketika merekrut

tenaga kerja lulusan SMK masih menggunakan sistem pelatihan bagi yang

telah lulus seleksi yang rata-rata minimal 3 (tiga) bulan. Memang bukan

kabar yang cukup baik bagi para calon programmer Java, akan tetapi hal

tersebut bukan sebuah alasan untuk tidak mempelajari bahasa pemrograman

Java.

SMK PGRI 3 Malang merupakan salah satu lembaga pendidikan di

Kota Malang yang mengajarkan bahasa pemrograman Java bagi siswa yang

mendalami program keahlian Rekayasa Perangkat Lunak. Pelaksanaan

prakerin di SMK PGRI 3 Malang dilaksanakan siswa ketika menginjak

kelas dua yakni selama 12 bulan, berbeda dengan SMK lain yang rata-rata

kegiatan prakerinnya dilaksanakan selama 3 hingga 6 bulan. Oleh karena itu

Page 7: Laporan Prakerin - Dian Aditya - 2008/2009

7

siswa yang telah melaksanakan prakerin selama satu tahun penuh

seharusnya sudah menguasai medan pertempuran yang akan dihadapi kelak

ketika lulus.

Berdasarkan pada kenyataan diatas serta semangat yang kuat

penyusun bermotivasi untuk membuktikan bahwa lulusan SMK khususnya

SMK PGRI 3 Malang siap bersaing di dunia industri serta menjawab semua

keraguan khalayak industri tentang lulusan SMK yang katanya kurang ber-

skill adalah sebuah kesalahan besar.

1.2. Fungsi dan Tujuan

Dari banyak fungsi dan tujuan dilaksanakannya kegiatan prakerin,

penyusun merangkum beberapa fungsi dan tujuan penting melaksanakan

kegiatan Praktek Kerja Industri dan membuat Laporan Prakerin,

diantaranya:

Mengenalkan siswa pada kondisi dimana seseorang benar-benar

sedang bergelut dalam dunia usaha/industri.

Memberi waktu lebih kepada siswa untuk mempelajari seluk beluk

dunia usaha/industri sebelum mereka benar-benar masuk ke dunia

industri.

Melatih mental, karena kondisi di dunia usaha/industri sangat jauh

berbeda dengan kondisi di sekolah. Karena itu biasanya sifat asli

seorang siswa akan terlihat jelas ketika dan setelah melaksanakan

kegiatan prakerin.

Mendapat pengakuan terhadap pengalaman kerja.

Page 8: Laporan Prakerin - Dian Aditya - 2008/2009

8

BAB II

PELAKSANAAN PRAKTIK KERJA INDUSTRI

2.1. Waktu dan Tempat

Kegiatan prakerin dilaksanakan di Meruvian, Wijaya Grand Center

H41 Jakarta selama 8 (delapan) bulan yaitu mulai tanggal 23 Oktober 2008

– 4 Juli 2009.

2.2. Tentang Meruvian

Meruvian adalah Lembaga Pengambangan dan Pelayanan berbasis

Java dan Enterprise OpenSource. Meruvian didirikan oleh Frans Thamura

pada tanggal 28 Maret 2006 untuk mengurangi kesenjangan industri.

Adapun kurikulum yang didesain didalam Meruvian adalah

kurikulum pengembangan setelah kurikulum standart yang dikembangkan

oleh Sun Microsystem, sehingga dapat dikatakan seluruh program-program

yang diajarkan adalah versi praktis dari kelas yang didesain oleh Sun

Microsystem.

Industri yang Kompetitif

Keahlian Industri Basic

Kursus Standar (Internasional)

Universitas

GAP

Page 9: Laporan Prakerin - Dian Aditya - 2008/2009

9

2.3. Sistem Pelaksanaan Kegiatan di Tempat Prakerin

Sistem yang digunakan adalah mengutamakan ketepatan waktu

penyelesaian sebuah project serta penekanan kedisiplinan dan tanggung

jawab terhadap pekerjaan, agar setiap pekerjaan selesai pada waktu yang

telah ditentukan.

Siswa prakerin dibagi menjadi dua kelompok, yaitu tim

pengembang dan tim riset. Tim pengembang bertugas mengembangkan

produk Meruvian sedangkan tim riset bertugas melakukan riset terhadap

suatu teknologi baru yang suatu saat akan digunakan untuk mengembangkan

produk-produk yang lain.

2.4. Kegiatan selama Prakerin

Selama menjalani kegiatan prakerin sekitar hampir 8 (delapan)

bulan di Meruvian penyusun telah merasa mendapat banyak ilmu dan

pengalaman tentang Java di level industri. Salah satu project yang

dikerjakan oleh penyusun adalah project BlueOxygen Postila, yang

merupakan project untuk pengembangan Point of Services. Postila sendiri

salah satunya dibangun menggunakan teknologi Swing dan Hibernate yang

akan dibahas di Bab III.

Selain pengembangan project Postila, penyusun juga melakukan

riset mengenai salah satu teknologi Java yaitu Spring. Spring juga salah satu

teknologi yang digunakan untuk membangun project Postila. Sehingga

dapat dikatakan penyusun melakukan pengembangan terhadap project

sambil melakukan riset terhadap teknologi yang akan digunakan pada

project yang dikembangkan tersebut.

Page 10: Laporan Prakerin - Dian Aditya - 2008/2009

10

2.5. Sistematika Kerja

Proses Kegiatan :

1. Pembuatan Model Program

Model yang dimaksudkan disini dalam istilah awam adalah

pembuatan rangka dan mesin sebuah aplikasi dan terpisah dari

tampilan. Model ini berfungsi untuk menghubungkan aplikasi

dengan database. Tentu saja pembuatan model ini tidak

sembarangan, harus sesuai dengan instruksi yang telah

disampaikan.

2. Membuat Tampilan Aplikasi

Proses ini merupakan bagian pembuatan Graphical User Interface

(GUI) yaitu pembuatan tampilan yang berhubungan langsung

dengan user.

3. Testing Program

Bagian testing dapat dikatakan bagian penyempurnaan program

yaitu mencari kesalahan yang mungkin terjadi pada aplikasi.

Page 11: Laporan Prakerin - Dian Aditya - 2008/2009

11

BAB III

Membuat Aplikasi Desktop Menggunakan Swing dan

Hibernate

Bab ini akan membahas mengenai teknologi ORM (Object Relational

Mapping) paling populer didunia yaitu hibernate. ORM merupakan mekanisme

model yang berinteraksi dengan database.

Mekanisme Object Relational Mapping Bekerja

ORM sebenarnya adalah sebuah teknologi yang menjadi satu lapis antara

aplikasi dengan database, yang mana ORM ini bekerja seperti database juga,

Class

Object Class

Object

Class

Object

Table

Column Table

Column

Table

Column

Package Database

Page 12: Laporan Prakerin - Dian Aditya - 2008/2009

12

tetapi hanya berbentuk object. Setiap object di dalam ORM mewakili table dalam

database. Akibat dari teknologi mapping ini membuat sebuah aplikasi yang

dikembangkan dengan ORM tidak terikat dengan database manapun. Sedangkan

untuk melakukan query database, dengan ORM digunakan sebuah object

relational language yang bekerja mirip dengan SQL (pada Hibernate

menggunakan Hibernate Query Language/ HQL). Umumnya setiap class dan

object POJO dimap sengan sebuah XML.

3.1. Persiapan

3.1.1. Integrated Development Environment

Seorang programmer tidak akan pernah jauh dari Integrated

Development Environment atau sering disebut dengan IDE dalam

membuat sebuah aplikasi. IDE merupakan sebuah peralatan dalam

pemrograman yang diintegrasiakn kedalam aplikasi software yang

mendukung pembangunan Graphical User Interface (GUI), text atau

penulisan kode, compiler dan debugger.

Ada beberapa IDE yang sering digunakan antara lain NetBeans

IDE (IDE besutan Sun Microsystem / http://www.netbeans.org) dan

Eclipse IDE (merupakan IDE paling populer di dunia Java dan nomor 2

setelah Microsoft Visual Strudio / http://www.eclipse.org). Pada bahasan

kali ini penyusun menggunakan Eclipse IDE versi 3.4 (Ganymede).

Page 13: Laporan Prakerin - Dian Aditya - 2008/2009

13

Gambar Eclipse IDE

3.1.2. Database

Penyusun menggunakan Oracle 10g Express Edition

(http://www.oracle.com).

3.1.3. Swing Designer

Untuk membuat aplikasi berbasis GUI, programmer memerlukan

GUI designer untuk mempermudah serta mempercepat pembuatan GUI.

Karena kebutuhan tersebut penyusun menambahkan plugin pada Eclipse

yaitu Instantiations Swing Designer yang dapat didownload di

http://www.instantiations.com.

Page 14: Laporan Prakerin - Dian Aditya - 2008/2009

14

3.1.4. Hibernate Tools

Hibernate tools memudahkan programmer dalam membuat

project berbasis hibernate. Hibernate Tools sebenarnya hadir dengan dua

teknologi, sebagai plugin pada eclipse dan sebagai script pada ant. Cara

menginstall Hibernate Tools cukup mudah, pertama download hibernate

tools terbaru di http://tools.hibernate.org kemudian extract file yang

sudah didownload tersebut ke dalam folder eclipse.

3.1.5. Library

Download beberapa library yang dibutuhkan, antara lain :

Hibernate (http://www.hibernate.org)

o hibernate3.jar

o hibernate-annotation.jar

o ejb3-persistence.jar

o dom-4j.jar

o commons- logging.jar

o commons-collections.jar

o cglib.jar

o asm.jar

o jta.jar

o antlr.jar

o hibernate-commons-annotation.jar

o freemarker.jar

Database driver, karena penyusun menggunakan OracleXE sebagai

database maka jdbc library terdapat pada

{oracledirectory}\app\oracle\product\10.2.0\server\jdbc\lib

o ojdbc14.jar

Page 15: Laporan Prakerin - Dian Aditya - 2008/2009

15

Langkah Pengerjaan

3.2.1. Membuat sebuah hibernate project

Buat project baru

o File – New – Other

o Pilih kategori Java Project kemudian klik tombol next

o Masukkan nama project (“SwingHibernate”) kemudian

click tombol finish

Page 16: Laporan Prakerin - Dian Aditya - 2008/2009

16

Masukkan jar file kedalam build path

o Click kanan pada project kemudian pilih menu “New

Folder” (“dengan nama lib”)

o Jika folder lib telah terbuat, buka explorer kemudian copy

semua jar file (library) yang dibutuhkan kemudian klik

kanan dan paste semua ibrary yang telah dicopy

o Jika semua library telah ter-copy, blok semua jar file

kemudian click kanan, pilih menu “Buid Path – Add to

Build Path”

3.2.2. Memulai hibernate project

Membuat file konfigurasi Hibernate (hibernate.cfg.xml)

o Klik kanan pada src kemudian pilih file – menu – other

o Cari kategori Hibernate kemudian pilih Hibernate

Configuration File.

Page 17: Laporan Prakerin - Dian Aditya - 2008/2009

17

Catatan :

Jika kategori Hibernate tidak ditemukan berarti hibernate

tool belum terinstall dengan baik pada eclipse, coba install

ulang plugin kemudian restart eclipse.

Page 18: Laporan Prakerin - Dian Aditya - 2008/2009

18

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-

3.0.dtd">

<hibernate-configuration>

<session-factory name="HibernateSessionFactory">

<property name="hibernate.connection.driver_class">

oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.password">

hibernateswing

</property> <property name="hibernate.connection.url">

jdbc:oracle:thin:@localhost:1521/xe

</property>

<property name="hibernate.connection.username">

hibernateswing

</property>

<property name="hibernate.dialect">

org.hibernate.dialect.OracleDialect

</property>

</session-factory>

</hibernate-configuration>

Buat sebuah class DefaultPersistence, objek ini adalah sebuah

object yang termapping untuk menghasilkan id yang unik dari

setiap kegiatan persistensi. Objek ini sangat diperlukan untuk

pengembangan selanjutnya, karena dengan mengimplementasikan

objek ini akan terbentuk sebuah record id dan akan terisi secara

otomatis bila dilakukan save terhadap data baru.

Isi dari DefaultPersistence.java adalah sebagai berikut :

package sch.smkpgri3.psg.persistence;

import java.io.Serializable;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.GenericGenerator;

@MappedSuperclass

public class DefaultPersistence implements Serializable{

@Id

@GeneratedValue(generator="system-uuid")

@GenericGenerator(name="system-uuid", strategy="uuid")

protected String id;

Page 19: Laporan Prakerin - Dian Aditya - 2008/2009

19

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

}

Kemudian buat Java class dengan nama KategoriProduk

o Isi dari KategoriProduk.java

package sch.smkpgri3.psg.entity;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Inheritance;

import javax.persistence.InheritanceType;

import javax.persistence.Table;

import sch.smkpgri3.psg.persistence.DefaultPersistence;

@Entity

@Table(name="kategori_produk")

@Inheritance(strategy=InheritanceType.SINGLE_TABLE)

public class KategoriProduk extends DefaultPersistence{

@Column(name="nama") private String nama;

@Column(name="deskripsi")

private String deskripsi;

o Klik kanan dan pilih

Page 20: Laporan Prakerin - Dian Aditya - 2008/2009

20

Ketika tombol ok ditekan, maka secara otomatis semua

variable akan memiliki method setXXX dan getXXX.

o Setelah itu register class yang telah dibuat ke dalam

hibernate.cfg.xml dengan menambahkan baris berikut

<mapping class="sch.smkpgri3.psg.entity.KategoriProduk"/>

3.2.3. Menggenerate Database menggunakan Hibernate Tool

Setelah langkah-langkah diatas selesai dilakukan, berikutnya

adalah menggenerate entity class yang sudah dibuat tadi ke dalam

database. Untuk menggenerate menggunakan hibernate tool diperlukan

script ant build (build.xml) agar table bisa digenerate secara otomatis.

Page 21: Laporan Prakerin - Dian Aditya - 2008/2009

21

Berikut isi dari build.xml :

<?xml version="1.0" encoding="UTF-8"?>

<project name="hibernateswing" basedir=".">

<target name="init">

<property name="hibswing.lib" value="${basedir}/lib"/>

<property name="hibswing.classes" value="${basedir}/bin"/>

<property name="hibswing.sources" value="${basedir}/src"/>

</target>

<target name="schemaexport" depends="init">

<taskdef name="hibernatetool"

classname="org.hibernate.tool.ant.HibernateToolTask">

<classpath>

<fileset dir="${hibswing.lib}">

<include name="**/*.jar"/>

</fileset>

<path location="${hibswing.classes}"/>

</classpath>

</taskdef>

<hibernatetool destdir="${hibswing.classes}">

<annotationconfiguration

configurationfile="${hibswing.sources}/hibernate.cfg.xml"/>

<hbm2ddl drop="true"

console="false"

create="true"

outputfilename="hibswing.sql"

delimiter=";"

export="true"

/>

</hibernatetool>

</target>

</project>

Jalankan script tersebut dengan meng-click kanan pada file

build.xml yang telah dubuat kemudian pilih Run As – Ant Build.

Page 22: Laporan Prakerin - Dian Aditya - 2008/2009

22

Jika tidak terjadi masalah maka console akan menampilkan output

sebagai berikut :

Buildfile: D:\DATAKU\JavaProject\Eclipse\HibernateSwing\build.xml

init:

schemaexport:

[hibernatetool] Executing Hibernate Tool with a Hibernate Annotation/EJB3

Configuration

[hibernatetool] 1. task: hbm2ddl (Generates database schema)

[hibernatetool] 25 Jul 09 10:02:48 org.hibernate.cfg.annotations.Version

<clinit>

[hibernatetool] INFO: Hibernate Annotations 3.3.1.GA

[hibernatetool] 25 Jul 09 10:02:49 org.hibernate.cfg.Environment <clinit>

[hibernatetool] INFO: Hibernate 3.2.5

[hibernatetool] 25 Jul 09 10:02:49 org.hibernate.cfg.Environment <clinit>

[hibernatetool] INFO: hibernate.properties not found

[hibernatetool] 25 Jul 09 10:02:49 org.hibernate.cfg.Environment

buildBytecodeProvider

[hibernatetool] INFO: Bytecode provider name : cglib

..........

..........

[hibernatetool] 25 Jul 09 10:02:53

org.hibernate.connection.DriverManagerConnectionProvider configure

[hibernatetool] INFO: using driver: oracle.jdbc.driver.OracleDriver at

URL: jdbc:oracle:thin:@localhost:1521/xe

[hibernatetool] 25 Jul 09 10:02:53

org.hibernate.connection.DriverManagerConnectionProvider configure

[hibernatetool] INFO: connection properties: {user=hibernateswing,

password=****}

[hibernatetool] 25 Jul 09 10:02:57

org.hibernate.tool.hbm2ddl.SchemaExport execute

[hibernatetool] INFO: schema export complete

[hibernatetool] 25 Jul 09 10:02:58

org.hibernate.connection.DriverManagerConnectionProvider close

[hibernatetool] INFO: cleaning up connection pool:

jdbc:oracle:thin:@localhost:1521/xe

BUILD SUCCESSFUL

Total time: 11 seconds

Jika proses generate berjalan dengan lancar, coba buka Oracle

Object Browser. Maka secara otomatis akan terbentuk table baru

dengan nama KATEGORI_PRODUK.

Page 23: Laporan Prakerin - Dian Aditya - 2008/2009

23

3.2.4. Menjalankan Hibernate Object

Selanjutnya sebelum membuat aplikasi berbasis GUI sebaiknya

adalah mebuat aplikasi sederhana berbasis text dahulu untuk melakukan

query ke database. Secara konsep proses ini adalah inisialisasi

SessionFactory, kemudian baru melakukan eksekusi dimana untuk

mengeksekusi menggunakan Hibernate Query Language (HQL).

package sch.smkpgri3.psg.kategoriproduk;

import java.util.List;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

import sch.smkpgri3.psg.entity.KategoriProduk;

public class KategoriProdukCRUD {

private SessionFactory sf;

private Session sess;

//Inisialisasi Session Factory

public KategoriProdukCRUD() {

sf = new AnnotationConfiguration()

.configure("hibernate.cfg.xml")

.buildSessionFactory();

sess = sf.openSession();

}

Page 24: Laporan Prakerin - Dian Aditya - 2008/2009

24

//Method untuk menyimpan KategoriProduk ke database

public void insertOrUpdate(KategoriProduk prod) {

sess.getTransaction().begin();

sess.saveOrUpdate(prod);

sess.getTransaction().commit();

}

public void delete(KategoriProduk prod) {

sess.getTransaction().begin();

sess.delete(prod);

sess.getTransaction().commit();

}

//Mereturn KategoriProduk dalam bentuk list public List<KategoriProduk> getKategoriProduk() {

String hql = "FROM"+ KategoriProduk.class.getName();

return sess.createQuery(hql).list();

}

public static void main(String [] args) {

KategoriProduk prod = new KategoriProduk();

prod.setNama("Sepatu");

prod.setDeskripsi("Alas Kaki");

//Inisialisasi Session Factory

KategoriProdukCRUD kat = new

KategoriProdukCRUD();

//Menyimpan KategoriProduk

kat.insertOrUpdate(prod);

//Menampilkan data pada KategoriProduk kedalam

//console

for(KategoriProduk p : kat.getKategoriProduk())

{ System.out.println(p.getNama());

System.out.println(p.getDeskripsi());

}

}

}

Dapat kita lihat diatas proses inisialisasi SessionFactory dan

Session berada pada Constructor, sedangkan proses Create dan Update

terdapat pada method insertOrUpdate() dan proses Delete pada method

delete(). Method getKategoriProduk() berfungsi untuk menyimpan List

yang berisi obyek KategoriProduk. Ketika script diatas dijalankan maka

Page 25: Laporan Prakerin - Dian Aditya - 2008/2009

25

proses pertama adalah menyimpan data pada database kemudian

menampilkannya ke console dalam format teks.

Coba lihat kembali ke dalam Oracle browser, maka secara ajaib

object KategoriProduk akan langsung tersimpan tanpa menggunakan

perintah sql sama sekali.

3.2.5. Membuat aplikasi bebasis GUI

Sebenarnya bagian ini merupakan tahap akhir dalam bahasan ini

yaitu pembuatan Graphical User Interface (GUI) yaitu tahap pembuatan

kulit luar untuk menghubungkan antara user dengan aplikasi.

Berikut langakah- langkah pembuatan entry form untuk menyimpan

object Kategori-Produk yang telah dibuat ke dalam database.

Page 26: Laporan Prakerin - Dian Aditya - 2008/2009

26

Buat java class baru dengan memilih menu File – New – Other

kemudian cari kategori WindowBuilder – Swing Designer –

JFrame. (Beri nama KategoriProdukForm)

Catatan :

Jika kategori WindowBuilder tidak ditemukan berarti Swing

Designer belum terinstall dengan baik pada eclipse.

Buat tampilan seperti gambar berikut.

Berikut script dari KategoriProdukForm.java

package sch.smkpgri3.psg.kategoriproduk;

import java.awt.EventQueue;

Page 27: Laporan Prakerin - Dian Aditya - 2008/2009

27

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import javax.swing.border.EmptyBorder;

import net.miginfocom.swing.MigLayout;

public class KategoriProdukForm extends JFrame {

private JPanel m_contentPane;

private JLabel lblNama;

private JLabel lblDeskripsi;

private JTextField txtNama;

private JScrollPane scrollPane;

private JTextArea txtrDeskripsi;

private JButton btnSave;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

KategoriProdukForm frame =

new KategoriProdukForm();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public KategoriProdukForm() {

initComponents();

}

private void initComponents() {

setTitle("Kategori Produk");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 309, 217);

m_contentPane = new JPanel();

m_contentPane.setLayout(new MigLayout("",

"[56.00][][111.00][70.00][]", "[][97.00][][]"));

m_contentPane.setBorder(new EmptyBorder(5, 5, 5,

5));

setContentPane(m_contentPane);

{

lblNama = new JLabel("Nama");

m_contentPane.add(lblNama, "cell 0 0");

}

{

Page 28: Laporan Prakerin - Dian Aditya - 2008/2009

28

txtNama = new JTextField();

m_contentPane.add(txtNama, "cell 2

0,growx");

txtNama.setColumns(10);

}

{ lblDeskripsi = new JLabel("Deskripsi");

m_contentPane.add(lblDeskripsi, "cell 0

1");

}

{ scrollPane = new JScrollPane();

m_contentPane.add(scrollPane, "cell 2 1 3

1,grow");

{

txtrDeskripsi = new JTextArea();

scrollPane.setViewportView(txtrDeskripsi);

}

}

{ btnSave = new JButton("Save");

m_contentPane.add(btnSave, "cell 3

3,growx");

}

}

}

Kemudian untuk perintah save tinggal menambahkan listener pada

button yang telah dibuat kemudian memasukkan baris kode untuk

menyimpan inputan ke dalam database.

Berikut kodenya :

btnSave.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

KategoriProduk prod = new KategoriProduk();

prod.setNama(txtNama.getText());

prod.setDeskripsi(txtrDeskripsi.getText());

KategoriProdukCRUD kat = new

KategoriProdukCRUD();

kat.insertOrUpdate(prod);

}

});

Page 29: Laporan Prakerin - Dian Aditya - 2008/2009

29

Sedikit penjelasan tentang kode di atas adalah ketika btnSave di-

click maka proses save akan dijalankan, yang hanyalah pada baris

txtNama.getText() yang mengambil inputan berupa text dari

txtNama yang merupakan JTextField, begitu pula dengan

txtrDeskripsi.getText(). Sehingga proses save hanya dilakukan

ketika tombol Save di-click dan isi properti dari KategoriProduk

.java tergantung pada inputan pada txtNama dan txtrDeskripsi.

Page 30: Laporan Prakerin - Dian Aditya - 2008/2009

30

BAB IV

PENUTUP

4.1. Kesimpulan

Dewasa ini kebutuhan akan programmer Java meningkat sangat

pesat, hampir sebagian besar SMK yang memiliki program keahlian

Rekayasa perangkat lunak memasukkan bahasa pemrograman Java

sebagai salah satu bidang keahlian yang wajib dikuasai oleh setiap

siswanya. Akan tetapi hingga saat ini publik industri masih belum cukup

percaya akan kemampuan para lulusan SMK.

Meruvian sebagai Lembaga Pengambangan dan Pelayanan berbasis

Java dan Enterprise OpenSource didirikan untuk mengurangi

kesenjangan industri. Adapun kurikulum yang didesain didalam

Meruvian adalah kurikulum pengembangan setelah kurikulum standart

yang dikembangkan oleh Sun Microsystem.

4.2. Saran

Para lulusan SMK agar lebih optimis dan menunjukan bahwa

lulusan SMK tidak kalah dengan sarjana.

Menciptakan produk-produk yang bermanfaat bagi masyarakat,

bangsa, dan tanah air dan yang terpenting adalah ramah

lingkungan.

Meningkatkan kedisiplinan karena salah satu tolak ukur

kesuksesan seseorang adalah dari tingkat kedisiplinannya.

Mengembangkan teknologi secara mandiri agar tidak selamanya

dimonopoli oleh teknologi dari bangsa lain.

Hormatilah yang lebih tua.

Page 31: Laporan Prakerin - Dian Aditya - 2008/2009

31

DAFTAR PUSTAKA

Thamura, Frans. 2006. Cara Cepat Mengembangkan Solusi Java

Enterprise dengan Arsitektur MVC (Struts2, Spring, dan Hibernate).

Departemen Pendidikan Nasional. 2007. Buku pedoman Java

Education Network Indonesia.