GENERATOR KODE PROGRAM JAVA DESKTOP MENGGUNAKAN FRAMEWORK HIBERNATE DAN TIWULFX
NASKAH PUBLIKASI
diajukan oleh Heru Tri Julianto 13.11.6832
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2016
GENERATOR KODE PROGRAM JAVA DESKTOP MENGGUNAKAN FRAMEWORK HIBERNATE DAN TIWULFX Heru Tri Julianto1), Windha Mega Pradnya D2), 1)
Teknik Informatika STMIK AMIKOM Yogyakarta Teknik Informatika STMIK AMIKOM Yogyakata Jl Ringroad Utara, Condongcatur, Depok, Sleman, Yogyakarta Indonesia 55283 Email :
[email protected]),
[email protected] 2) 2)
Abstract – In the development of a Java application, there is often code that must be written repeatedly and have same characteristics. For Example when writing the POJO class (Plain Old Java Object) or Java Bean which is usually the mapping of the data structure. Writing code that repeatedly is quite time consuming and less effective. To anticipate that problem, programmer usually use a code generator to simplify the encoding process.
tinggi. Tujuannya adalah untuk menggantikan swing untuk membangun aplikasi desktop. Hibernate ORM (Object Relational Mapping) merupakan sebuah teknik pemrograman yang menjembatani perbedaan tipe data pada konsep pemrograman yang berorientasi objek dengan konsep database. Hibernate telah memiliki generator kode, namun hanya menghasilkan kode mapping object dari tabel database. Kode tersebut belum mampu untuk menjalankan CRUD (Create Retrieve Update Delete). Jadi, programmer masih perlu menuliskan kode-logic untuk melakukan CRUD yang meliputi kode front-end dan back-end untuk masingmasing POJO secara manual. Pada dasarnya kodelogic CRUD memiliki karakteristik yang hampir sama. Jika dalam sebuah aplikasi terdapat banyak object tabel, proses tersebut tentulah memakan waktu dan kurang efektif.
Code generator that was created use Hibernate ORM and TiwulFX Framework it will generate code that have CRUD (Create, Retrieve, Update, Delete) capability for each table from database. Keywords – Generator Kode, Hibernate, TiwulFX, POJO, CRUD 1.
Pendahuluan
Dalam pengembangan sebuah aplikasi Java, sering kali terdapat kode yang harus ditulis secara berulang-ulang dan memiliki karakteristik yang sama. Misal pada saat penulisan kode POJO (Plain Old Java Object) atau Java Bean yang biasanya merupakan mapping dari struktur data. Penulisan kode yang dilakukan secara berulang-ulang tentu cukup memakan waktu dan kurang efektif. Untuk mengantisipasi hal tersebut biasanya programmer mamanfaatkan generator kode untuk mempermudah proses pengkodeannya.
2.
Landasan Teori
2.1
Tinjauan Pustaka
Imam Kuswardayan, Nanik Suciati, Dody Rachmat Wicaksono (2004) melakukan penelitian dengan judul “JSP dan Java Servlet Generator Untuk Aplikasi Database Berbasis Web Dengan Mengimplementasikan Framework Jakarta Struts”. Dalam penelitian ini dibuat aplikasi code generator untuk bahasa java, khususnya JSP dan JavaServlet. Spesifikasi dari aplikasi yang akan dihasilkan oleh code generator ini adalah aplikasi yang memiliki arsitektur J2EE, yaitu dengan mengimplementasikan framework Jakarta Struts yang berdasarkan pada blue print Model View Controller. Framework Jakarta Struts akan bekerja sama dengan framework iBATIS yang akan menangani Persistent Database Layer. Kedua framework akan bekerja bersama-sama membangun pondasi yang kokoh dalam membangun aplikasi berarsitektur J2EE. [1]
Selain menggunakan generator kode, programmer juga menggunakan framework atau library untuk membantu proses pengkodean baik front-end maupun back-end. Framework atau library yang dapat membantu proses pengkodean adalah TiwulFX dan Hibernate. TiwulFX adalah library yang memiliki komponen-komponen kustom dari JavaFX . JavaFX sendiri adalah sebuah tool-kit GUI (Graphical User Interface) terbaru dari Java untuk mengembangkan aplikasi yang kaya konten. JavaFX dirancang untuk menyediakan bagi para developer Java sebuah platform yang baru, ringan, dengan performa yang
Ayu Dwi Rahman Harnani (2008) judul penelitian “Generator Kode Program PHP dari Diagram UML (Unified Modeling Language) Berbasis XML (Extensible Markup Language)”. Generator kode yang dikembangkan dalam penelitian 1
ini berdasarkan permodelan UML(Unified Modeling Language). Aplikasi ini dibangun untuk membangkitkan kode program PHP dari suatu class diagram. Output dari aplikasi dapat memudahkan programmer dalam mengimplementasikan sistem agar sesuai dengan perancangan yang telah dibuat oleh perancang sistem dengan tool diagram UML berbasis XML yang berbeda-beda. Aplikasi ini dibangun menggunakan analisa dan desain berorientasi objek dengan menggunakan bahasa pemrograman Java 1.5 dan Visual Paradigm for UML yang berbasis XML sebagai tool pemodelan sistem. [2]
objek. Setiap objek di dalam ORM umumnya mewakili tabel dalam database. Akibat dari teknologi mapping ini membuat sebuah aplikasi yang dikembangkan dengan ORM tidak terikat dengan database manapun. Sedangkan untuk melakukan query ke database dengan ORM digunakan sebuah object relational language, yang mirip dengan SQL. Umumnya setiap tabel object POJO dimap dengan XML.[5] Project hibernate dimulai pada tahun 2001 oleh Gavin King, project ini mulai mendapat tanggapan serius setelah Gavin King dipekerjakan oleh Jboss dan Jboss mulai mengerahkan pasukan lebih banyak lagi untuk mengelola Hibernate secara serius. Keberhasilan Hibernate sangat fenomenal, bahkan di satu titik Hibernate justru lebih terkenal dibanding konsep ORM itu sendiri. [5]
2.2 Generator Kode Generator kode (Code Generator) adalah sebuah program aplikasi yang menulis kode program lainnya, atau dengan kata lain aplikasi yang menghasilkan aplikasi lain. Dengan semakin kompleksnya framework yang digunakan, kemampuan dalam mengembangkan sebuah generator kode sangat penting untuk membangun aplikasi. [3]
2.5
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. [6]
Dalam mengembangkan aplikasi programmer biasanya memanfaakan code generator. Code generator merupakan salah satu tool dari CASE (Computer Aided Software Engineering). Pengembangan code generator bertujuan menghasilkan kode dari spesifikasi yang telah dibuat, menghemat waktu dan biaya. Tujuan dari penggunaan CASE adalah untuk menyediakan beberapa code generator yang secara otomatis menghasilkan 90% atau lebih dari spesifikasi sistem normal yang diberikan oleh programmer secara normal. Dengan teknik ini diharapkan pekerjaan programmer bisa lebih ringan.[4]
Flowchart adalah bagan (chart) yang menunjukkan alir (flow) di dalam program/prosedur sistem secara logika. Flowchart digunakan untuk alat bantu komunikasi dan untuk dokumentasi. 2.5.1 Generator Kode pada Hibernate Hibernate memiliki generator kode yang dapat menghasilkan file class POJO. Generator kode yang memilik antar muka terdapat pada plugin Eclipse atau Netbeans IDE (Integrated Development Environment). Plugin Hibernate ini memiliki fitur “click-and-generate” dengan teknik rekayasa balik atau reverse engineering dan sebuah generator kode. Fitur ini dapat membangkitkan kode-logic berdasarkan database atau file konfigurasi Hibernate.
2.3 TiwulFX TiwulFX merupakan library antar muka yang memiliki komponen-komponen kustom dari JavaFX untuk memudahkan dalam pembuatan aplikasi. Terdapat dua komponen utama dalam TiwulFX yaitu TableControl dan Form. TableControl adalah komponen yang dapat menampilkan data dalam tabel. Selain untuk menampilkan data, komponen ini juga bisa digunakan untuk manipulasi data. JavaFX sendiri memiliki komponen tabel yaitu TableView, namun komponen ini hanya dapat menampilkan data saja. 2.4
Flowchart
3.
Analisis
Analisis sistem merupakan tahapan paling awal dari pengembangan sistem yang menjadi fondasi menentukan keberhasilan sistem informasi yang dihasilkan nantinya. 3.1
Hibernate ORM
Analisis Kebutuhan Sistem
Analisis kebutuhan sistem merupakan cara untuk memahami dengan baik kebutuhan dari sistem. Kebutuhan teknologi atau peralatan yang diperlukan antara lain :
ORM (Object Relationaal Mapping) adalah sebuah teknologi yang menjadi satu lapis antara aplikasi dengan database, yang mana ORM ini bekerja seperti database juga, tetapi hanya bebentuk 2
1. Perangkat Keras 2. Perangkat Lunak 3. Sumber Daya Manusia 3.2
Berikut adalah rancangan tampilan utama ketika aplikasi generator kode dijalankan :
Perancangan Generator Kode
java -jar urapfx-1.0-SNAPSHOT.jar -ph /target-dir/app -pp com.panemu.cenil.pojo -up com.panemu.cenil.ui -dp com.panemu.cenil.dao Process Starts Now! [===========> ] 23%
Perancagan generator kode dalam penelitian ini menggunakan flowchart program seperti berikut :
3.3.3 Rancangan UI Kode yang dihasilkan Berikut adalah rancangan tampilan UI kode yang dihasilkan untuk masing-masing POJO :
Gambar 2. Rancangan Kode yang dihasilkan Gambar 1. Flowchart Program Generator Kode 3.3
Perancangan Tampilan atau Interface
3.3.1 Rancangan Kode
Tampilan
pada
4.
Pembahasan
4.1
Implementasi
Tahap Implementasi sistem merupakan tahap meletakkan sistem supaya siap untuk dioperasikan. Tahap ini termasuk merancang, mempersiapkan, menguji, dan menerapkan suuatu sistem yang dilakukan selama periode waktu tertentu untuk melakukan verifikasi bahwa sistem yang baru dapat berjalan sesuai perancangan dan pembuatan.
Generator
Untuk dapat menampilkan bantuan pengguna aplikasi ini harus menjalankan command : Java -jar urapfx.jar –help
4.2 Maka akan muncul tampilan bantuan yang berisi daftar parameter beserta deskripsinya dan contoh penggunaanya.
Pengujian Sistem
Pengujian program atau sistem dilakukan untuk menemukan kesalahan maupun segala kemungkinan yang dapat menimbulkan kesalahan pada program atau aplikasi. Tujuan dari pengujian sistem adlah untuk memastikan semua modul berjalan dengan baik sesuai dengan harapan. Pertanyaan kunci dalam pengetesan hasil game ini adalah “Apakah aplikasi generator kode yang dihasilkan sesuai dengan yang direncanakan?”
usage: Mandatory Parameters for UrapFX -dp,--daopackage <arg> Parameter for DAO package name -h,--help show help. -ph,--projecthome <arg> Parameter for project home directory -pp,--pojopackage <arg> Parameter for pojo package name -up,--uipackage <arg> Parameter for ui package name Example : java -jar urapfx-1.0-SNAPSHOT.jar -ph /target-dir/app -pp com.panemu.cenil.pojo -up com.panemu.cenil.ui -dp com.panemu.cenil.dao
4.2.1 White Box Testing White box testing merupakan salah satu cara pengujian yang dilakukan untuk menguji prosedurprosedur yang ada dengan melihat ke dalam modul
3.3.2 Rancangan Tampilan Utama
3
untuk meneliti kode-kode program yang ada, dan menganalisis apabila terdapat kesalahan. Alur logika yang dilakukan oleh setiap bagian prosedur diuji dengan memberikan kondisi yang spesifik.
ada Tabel 2. Black Box testing pada kode yang dihasilkan
Berikut ini adalah beberapa contoh skenario pengujian white box testing yang dilakukan.
Gambar 3. White Box Validasi File Target Sudah Ada Pada gambar di atas merupakan pengujian validasi jika sudah terdapat file target. File POJO untuk User.java dan Employee.java telah terdapat pada projek, maka akan muncul notifikasi “POJO File "Employee.java" already exist, do you want to replace it? N/y”. Kemudian user harus mengetik “y” untuk yes/ya atau “n” untu no/tidak.
5.
4.2.2 Black Box Testing
6.
Tabel 1. Black Box testing pada generator kode proses
Balok Valid
Generator POJO Generator UI
Melakukan generate UI
proses
Valid
Generator FXML
Melakukan generate FXML
proses
Valid
Generator DaoStandar
Melakukan proses generate DaoStandar
Valid
Tampilan Bantuan
Menampilkan bantuan
halaman
Valid
Menampilkan pesan peringatan jika file target sudah ada
Valid
Pesan Peringatan jika file target sudah
Keterangan
Hasil
Fungsi Insert
Klik tombol insert, kemudian isikan isian2nya semua, setelah itu klik tombol simpan
Valid
Fungsi Update
Pilih data yang akan diedit → klik tombol edit, kemudian edit data, setelah itu klik tombol simpan
Valid
Fungsi Delete
Pilih data yang akan didelete → klik tombol delete, muncul konfirmasi delete, klik delete
Valid
Fungsi Sorting
Klik kolom yang akan di sorting, klik sekali desc, klik lagi asc
Valid
Kesimpulan
Berdasarkan penjelasan dan pembahasan yang telah diuraikan pada bab-bab sebelumnya hingga tahap implementasi program maka dapat diambil kesimpulan bahwa penulis dapat membangun sebuah generator kode yang dapat men-generate kode dari tabel database yang mampu untuk menjalankan fungsi CRUD dengan memanfaatkan framework Hibernate dan TiwulFX.
Uji coba berikutnya adalah uji coba dengan menggunakan Black box testing. Pengujian black box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji.
Kolom Melakukan generate POJO
Yang diuji
Saran
Aplikasi masih memiliki kekurangan, yaitu belum mampu men-generate kode CRUD dari tabel database yang memiliki relational-table. User Interface yang digunakan masih menggunakan cmd/terminal, pengembang selanjutnya diharapkan mampu membuat user interface yang lebih interaktif. Daftar Pustaka [1] Kuswardayan, Imam. Suciati, Nanik. Wicaksosno. Rachmat, Dody. 2006. JSP Dan Java Servlet Generator Untuk Aplikasi Database Berbasis Web Dengan Mengimplementasikan Framework Jakarta Struts. [2] Harnani, Ayu Dwi Rahman. 2008. Generator Kode Program PHP dari Diagram UML (Unified Modeling Language) Berbasis XML (ExtensibleMarkup Language). 4
[3] Herrington, Jack. Code Generation in Action. 2003. Greenwich. Manning Publications. [4] Al Fatta, Hanif. 2007. Analisis dan Perancangan Sistem Informasi. Yogyakarta. ANDI. [5] JENI, TIM. 2008. JENI- Bab04-Berkenalan dengan Hibernate sebagai solusi model dalam MVC. [6] Sulindawati. Fathoni, Muhammad. 2010. Pengantar Analisa Perancangan “Sistem“. Medan. STIMIK TRIGUNA DHARMA.
Biodata Penulis Heru Tri Julianto, memperoleh gelar Sarjana Komputer (S.Kom), Jurusan Teknik Informatika STMIK AMIKOM Yogyakarta, lulus tahun 2017. Saat ini menjadi Software Engineer di CV. Panemu Indonesia di Yogyakarta. Windha Mega Pradnya D, memperoleh gelar Sarjana Komputer (S.Kom), Jurusan Sisterm Informasi STMIK AMIKOM Yogyakarta, lulus tahun 2007. Memperoleh gelar Magister Komputer (M.Kom), Jurusan Teknik Informatika STMIK AMIKOM Yogyakarta, lulus tahun 2011. Saat ini menjadi Dosen di STMIK AMIKOM Yogyakarta.
5