• Tidak ada hasil yang ditemukan

Perancangan Aplikasi Pencarian Data Digital Library dengan Framework Hibernate, Lucene, dan Struts

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perancangan Aplikasi Pencarian Data Digital Library dengan Framework Hibernate, Lucene, dan Struts"

Copied!
17
0
0

Teks penuh

(1)

Perancangan Aplikasi Pencarian Data Digital Library

dengan Framework Hibernate, Lucene, dan Struts

1)Eko Sediyono, 2)Hendro Steven Tampake, 3)Althesia Silvia Koyongian

Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia Email: 1) ekosed1@yahoo.comal, 2) hendro.steven@gmail.com,

3) thesia.k@gmail.com

Abstract

Digital Library is one of the applications developed in line with science and technology. The development conditions tend to bring difficulties in the application development process. In respond to such condition, it requires an Object Oriented Design (OOD) method that form application into separate components. The components have their own task and communicate to each other through functions. OOD is also supported by Hibernate in mapping objects into the database. The data search on digital library application is an unstructured data search, using Lucene framework. The research produces application for digital library’s data search with a more accurate search result, because searching is done through the entire content of the documents.

Keyword: Object Oriented Design, Lucene, Hibernate.

1. Pendahuluan

Perpustakaan yang disajikan melalui media internet atau yang biasa disebut perpustakaan digital memungkinkan akses informasi yang lebih cepat. Oleh karena itu dalam penelitian ini, dikembangkan sebuah aplikasi yang dapat membantu dalam menyediakan sarana sumber pendidikan yaitu berupa perpustakaan digital. Perpustakaan digital ini dapat diterapkan di berbagai lembaga pendidikan yang ada di Indonesia. Hal ini juga merupakan sebuah terobosan baru dalam rangka menerapkan teknologi informasi ke dalam dunia pendidikan Indonesia. Perpustakaan digital ini di dalamnya hanyalah berisi dokumen-dokumen digital seperti buku-buku digital, artikel dan jurnal terbaru yang bisa diakses dengan mudah dan juga sangat memudahkan dalam pemeliharaan data karena semuanya berbentuk digital. Aplikasi perpustakaan digital ini merupakan salah satu contoh aplikasi yang terus mengalami perkembangan, sesuai dengan perkembangan ilmu pengetahuan dan teknologi. Karena aplikasi ini cenderung terus berkembang, maka ketika aplikasi ini dibangun dibutuhkan sebuah pemikiran dan dasar perancangan yang tepat untuk memudahkan

(2)

ketika aplikasi ini ingin dikembangkan lebih lanjut. Pertanyaannya adalah metode apa yang dapat digunakan untuk membangun aplikasi perpustakaan digital ini, sehingga mempermudah dalam proses pengembangan aplikasi di masa mendatang. Oleh karena itu penelitian ini ditujukan untuk membangun sebuah aplikasi perpustakaan digital berbasis web dengan metode Object Oriented Design (OOD) untuk mendukung pengembangan aplikasi ini di masa mendatang dan diterapkan lingkungan pemrograman Java serta menggunakan hibernate sebagai framework object relational mapping (ORM) untuk memetakan setiap obyek ke dalam database.

2. Kajian Pustaka

Desain berorientasi objek merupakan pengembangan sistem yang berorientasi objek untuk menerapkan kebutuhan-kebutuhan yang telah diidentifikasi sebelumnya pada tahap analisis berorientasi objek [1]. Desain berorientasi objek ini sendiri merupakan bagian dari pengembangan berorientasi objek yang di dalamnya juga terdapat analisis berorientasi objek dan pemrograman berorientasi objek. Secara spesifik, pengertian berorientasi objek berarti pengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. Hal ini yang membedakannya dengan pemrograman konvensional dimana struktur data dan perilaku hanya berhubungan secara terpisah. Desain berorientasi objek merupakan cara pandang baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek yang merupakan kombinasi antara struktur data dan perilaku dalam suatu entitas. Objek merupakan entitas dalam sebuah program komputer yang memiliki tiga karakteristik yaitu state, behavior dan identity [2]. Objek dapat menyimpan informasi. Informasi tersebut akan menentukan perilaku (behavior) selanjutnya dari objek. Kumpulan dari informasi-informasi yang ditangani oleh sebuah objek disebut state objek. State objek meliputi semua properti objek (biasanya statis) ditambah nilai-nilai yang ada pada saat itu (biasanya dinamis) dari masing-masing properti. State ini dapat berubah setiap waktu ketika sebuah operasi dijalankan oleh objek tersebut. Misalnya sebuah mail box di dalam sistem voice mail. Objek mail box dapat berupa state kosong (pada saat baru dibuat) atau penuh (setelah menerima sejumlah besar pesan). State ini mempengaruhi perilaku objek berikutya Mail box yang penuh akan menolak pesan baru yang masuk. Perilaku dari sebuah objek ditentukan oleh operasi (dalam Java biasa disebut dengan istilah method) yang mendukung objek. Objek dapat mengizinkan beberapa operasi dan juga menolak yang lainnya. Operasi adalah fungsi atau transformasi yang dapat diterapkan ke objek. Semua objek di kelas yang sama berbagi operasi yang sama. Identity adalah properti objek yang membedakan dirinya dari semua objek yang lain. Setiap objek yang diciptakan selama eksekusi di sistem berorientasi objek adalah unik, mempunyai identitas yang unik.

Objek dibentuk berdasarkan definisi dari sebuah kelas objek.Objek merupakan implementasi dari kelas. Sedangkan kelas merupakan pola atau template untuk membentuk sebuah objek atau kumpulan objek yang memiliki sifat yang sama,

(3)

perilaku, atau disebut dengan himpunan objek sejenis. Termasuk di dalamnya deklarasi dari semua atribut dan operasi yang ada pada objek dari kelas tersebut. Kelas berbeda dari objek. Kelas bersifat abstrak sedangkan objek bersifat konkrit. Tujuan dari perancangan berorientasi objek adalah menghasilkan model atau representasi entitas yang akan dibangun[3]. Hasil analisis berorientasi objek dapat menjadi model untuk memulai perancangan berorientasi obyjk. Sedangkan manfaat dari pendekatan berorientasi objek antara lain[3] dapat menangani domain masalah yang lebih besar, meningkatkan interaksi antara pakar masalah, analis, perancang dan pemrogram. OOD mengorganisasikan rancangan menggunakan pengorganisasian sesuai yang dilakukan pikiran manusia, OOD menggunakan pewarisan untuk mengidentifikasikan commonality (kesamaan bersama) layanan dan atribut, dan membangun sistem yang tahan terhadap perubahan serta menyediakan stabilitas pada kebutuhan dan sistem yang serupa.

Proses umum yang digunakan untuk melakukan perancangan berorientasi objek memiliki sejumlah tahapan [1] yaitu memahami dan mendefinisikan konteks dan mode penggunaan sistem, merancang arsitektur sistem, mengidentifikasi objek utama sistem, mengembangkan model desain, dan menspesifikasi interface objek. Obejct Oriented Design diimplementasikan menggunakan Object Oriented Programming, dan dengan bahasa pemrograman yang berorientasi objek. Konsep Object Oriented Programming memiliki beberapa karakteristik utama yaitu pengkapsulasa, pewarisan, polymorphism, dan pesan. Pengkapsulan atau enkapsulasi adalah suatu mekanisme untuk memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaan sistem itu sendiri. Akses ke dalam sistem diatur sedemikian rupa melalui seperangkat antar muka. Dengan kata lain, enkapsulasi merupakan sebuah prinsip yang digunakan ketika membangun struktur program secara keseluruhan yang mana setiap komponen dari program dibungkus, pembungkusan properti dan operasi dalam satu event. Sebuah objek biasanya tersusun secara hirarki berdasarkan kelasnya masing-masing. Inilah yang kemudian dimaksudkan dengan konsep pewarisan yang merupakan suatu proses dimana suatu kelas diturunkan dari kelas lainnya sehingga ia mendapatkan ciri atau sifat dari kelas tersebut. Untuk menciptakan kelas baru, hanya perlu menspesifikasikan kelas baru ini dari kelas yang telah ada. Kelas yang mewariskan disebut base class sedangkan kelas yang mewarisi kelas yang telah ada disebut derived class. Derived class mewarisi semua metode dan variabel dari base class. Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk. Konsep ini memungkinkan digunakannya suatu antar muka yang sama untuk memerintah objek untuk melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Jadi, dengan konsep ini dua buah objek atau lebih dapat memiliki antar muka yang sama namun memiliki perilaku yang berbeda. Beberapa objek memerlukan suatu tipe mekanisme komunikasi untuk saling berinteraksi. Cara yang dipakai oleh objek-objek tersebut untuk saling berinteraksi adalah dengan pesan. Ketika berkomunikasi objek mengirim pesan kepada objek lain untuk melakukan apa yang diharapkannya. Pesan juga bisa disertai dengan informasi untuk memperjelas apa yang diharapkan. Hal ini disebut dengan parameter pesan.

(4)

Lucene

Lucene adalah seperangkat aturan atau framework yang menyediakan library-library untuk sistem temu kembali informasi atau yang biasanya dikenal dengan Information Retrieval System yang merupakan sebuah bidang ilmu yang menjelaskan mengenai pencarian informasi yang biasanya tidak terstruktur. Pengertian lebih jelas tentang information retrieval didefinisikan seperti berikut, Information retrieval (IR) is finding material (usually document) of unstructured nature (usually teks ) that satisfies an information need from within large collections (usually store on computer) [4]. Lucene merupakan proyek open source apache yang diimplementasikan di dalam bahasa java. Lucene bukanlah sebuah aplikasi pencarian siap pakai. Namun lucene adalah sebuah toolkit yang dapat digunakan dan yang digambarkan sebagai sebuah layer dimana aplikasi berjalan diatasnya. Lucene dapat melakukan indexing dan searching terhadap semua data yang dapat di konversi ke dalam format teks. Lucene sangat dibutuhkan ketika akan melakukan pencarian terhadap sejumlah besar data dengan tujuan mencari file yang berisi beberapa kata atau kalimat. Untuk melakukan pencarian di dalam jumlah data yang besar, hal pertama yang harus dilakukan adalah melakukan pengindeksan terhadap teks dan melakukan konversi kedalam format yang dapat mempercepat pencarian, tentu saja dengan mengeliminasi proses scanning yang sangat lama. Proses konversi ini disebut indexing, sedangkan hasil konversinya disebut index. Index merupakan sebuah struktur data yang mengijinkan akses yang cepat dan secara acak untuk kata yang tersimpan di dalamnya. Setelah index terbentuk, maka proses pencarian dapat berjalan. Sedangkan searching merupakan proses pencarian kata di dalam index untuk menemukan dokumen yang diinginkan.

Untuk proses pengindeksan terdapat komponen-komponen yang berperan penting, komponen-komponen tersebut adalah IndexWriter, Directory, Analyzer, Document, dan Field. IndexWriter merupakan komponen utama di dalam proses indexing. Kelas ini membentuk sebuah index dan menambahkan dokumen ke dalamnya. IndexWriter merupakan obyek yang memberikan akses penulisan ke dalam index namun tidak memberi akses untuk membacanya. Directory merupakan kelas yang menggambarkan lokasi penyimpanan dari index yang terbentuk. Analyzer merupakan sebuah kelas yang dilewati oleh sebuah teks ketika teks tersebut akan di indeks. Tugas analyzer adalah melakukan ekstraksi token dari teks dan melakukan eliminasi terhadap sisanya. Document merupakan kumpulan dari field-field. Seperti sebuah virtual page yang berisi sebuah halaman web, e-mail, ataupun file teks. Field dokumen ini menggambarkan meta data yang diasosiasikan dengan dokumen tersebut, seperti penulis, judul, subjek, dan lain-lain. Field setiap dokumen di dalam indeks berisi satu atau lebih field. Setiap field berhubungan dengan satu bagian dari data di dalam indeks yang dapat dikembalikan ketika proses pencarian dijalankan [5]. Untuk melakukan pengindeksan dengan Lucene, langkah awal yang perlu dilakukan adalah mengkonversi data ke dalam bentuk plain teks yang dapat dipahami oleh Lucene. Sebagai contoh, jika ingin mengindeks file PDF, harus mengetahui bagaimana cara untuk mengekstrak file tersebut, sehingga hasil ekstrak dari file PDF tersebut dapat digunakan untuk membangun Lucene dokumen beserta field-field-nya. Hal yang serupa juga berlaku bagi dokumen-dokumen lainnya seperti

(5)

microsoft word atupun file xml dan html. Ketika Lucene document dan field telah terbentuk, metode IndexWriter’s addDocument (Document) dapat dieksekusi. Pada saat eksekusi itulah plaintext dibaca oleh Lucene, dan selanjutnya dilakukan proses indexing. Pada tahap awal proses ini, Lucene melakukan analisis terhadap data, dengan membagi data menjadi potongan-potongan dan menjalankan beberapa operasi yang diperlukan terhadap data. Tahap ini juga dapat digambarkan sebagai sebuah tahap filterisasi sebelum melakukan pengindeksan. Setelah melewati proses analisis, maka data siap untuk di-indeks. Lucene menyimpan data ke dalam struktur yang dikenal sebagai inverted index. Struktur data yang menghasilkan penggunaan tempat penyimpanan yang lebih efisien.

Setelah indeks terbentuk, maka langkah selanjutnya adalah searching, komponen-komponen yang mendukung proses searching ini antara lain IndexSearcher, Term, TermQuery, dan Hits. IndexSearcher merupakan kelas yang digunakan untuk melakukan pencarian terhadap indeks yang telah dibentuk oleh kelas IndexWriter. Kelas ini membuka indeks dalam mode read-only dan di dalamnya berisi lebih dari satu metode yang mendukung proses pencarian. Term adalah unit dasar untuk pencarian. Sama halnya dengan obyek field, term juga berisi pasangan dari beberapa elemen string. TermQuery merupakan tipe dasar query yang didukung oleh lucene dan merupakan salah satu tipe query yang primitif. TermQuery digunakan untuk mencocokan dokumen yang berisi field dengan nilai yang spesifik. Hits merupakan sebuah kelas yang digunakan untuk memberi tingkatan terhadap dokumen hasil pencarian. Dimana dokumen-dokumen kembalian tersebut merupakan dokumen yang paling relevan dengan query yang dimasukan oleh user.

Hibernate

Hibernate adalah sebuah framework untuk Object Relational Mapping (ORM) yang ditempatkan pada layer model di dalam konsep Model View Controller (MVC). Hibernate merupakan layer yang menghubungkan antara aplikasi dengan basisdata. Hibernate menyediakan koneksi ke basisdata dengan menghubungkan kelas dengan tabel-tabel. Melalui hibernate pemetaan dilakukan dari model data objek di dalam Java dengan tipe data java ke dalam model data relational dengan tipe data SQL [6]. Inti dari Teknologi hibernate ini antara lain [6] Hibernate pemetaan, hibernate configuration, dan POJOs (Plain Old Java Object). Hibernate pemetaan merupakan sebuah file XML yang dibutuhkan oleh hibernate untuk menentukan relasi dari sebuah objek terhadap sebuah tabel. Di dalam file ini juga ditentukan atribut dari setiap kolom yang akan dibentuk di dalam sebuah tabel di basisdata. Hibernate Configuration merupakan sebuah file XML. File ini berfungsi untuk memberitahu dimana hibernate dapat menemukan informasi pemetaan yang telah dilakukan dari kelas java ke dalam tabel basisdata. File ini juga memuat sekumpulan konfigurasi yang menentukan bagaimana aplikasi berhubungan dengan basisdata, menentukan bentuk koneksi beserta username dan password dari perangkat basisdata jika ada. POJOs merupakan sebuah kelas java, yang biasanya disebut sebagai model di dalam konsep MVC, yang merupakan representasi dari basisdata. Di dalam POJOs didefinisikan semua atribut yang ada di dalam sebuah objek. Atribut tersebut yang kemudian akan di petakan ke dalam bentuk tabel.

(6)

Struts

Struts adalah seperangkat aturan atau framework yang digunakan untuk membangun sebuah aplikasi web. Inti teknologi Struts terdiri dari JavaServer Pages (JSP) yaitu teknologi yang digunakan untuk membangun aplikasi web yang melayani isi yang dinamik. JSP adalah komponen di sisi server yang dibangun dari HTML statik atau komponen XML, tag-tag yang spesifik untuk JSP, dan potongan kode Java optional yang disebut scriptlet. JSP digunakan sebagai layer presentasi dalam arsitektur web n-tier. Dalam framework Struts, JSP mewakili view dalam pola perancangan Model-View-Controller. Servlet memegang peranan besar dalam pengembangan aplikasi web. Servlet adalah solusi berbasis Java yang berjalan di dalam Java Virtual Machine (JVM). Karena servlet berjalan di dalam JVM, servlet menjadi teknologi yang sangat portable. Paradigma request/response yang ada dalam HTTP juga diterapkan dalam Servlet. Dalam arsitektur Struts, Servlet memegang peranan sebagai controller. JSP adalah teknologi yang berusaha tetap memisahkan layer presentasi dari lapisan tengah dan belakang. Custom tag libraries adalah fitur yang ampuh yang sesuai dengan konsep tersebut.

Custom tag libraries mengijinkan programer Java untuk menuliskan kode yang menyediakan akses data dan layanan lainnya dalam model sederhana mirip XML. eXtensible Markup Language (XML) telah menyebar dalam pengembangan aplikasi web dan web service. Sekarang ini sulit untuk membangun sebuah aplikasi web tanpa berurusan dengan XML. XML merupakan salah satu teknologi yang luar biasa dalam menangani pertukaran data. XML digunakan untuk mewakili struktur dokumen dan data di web. File XML dapat disimpan atau dikirimkan antara dua buah aplikasi yang terhubung lewat jaringan. Pada dasarnya, file XML hanyalah dokumen berbasis teks biasa yang mengandung tag-tag khusus yang mewakili sebagian dari dokumen atau kumpulan data. Selain digunakan dalam menangani pertukaran data, XML sering digunakan dalam konfigurasi web dalam bentuk file web.xml dan digunakan dalam Struts unuk konfigurasi dalam bentuk struts-config.xml, yang digunakan untuk mengkonfigurasi semua aksi yang dapat dijalankan oleh aplikasi Struts. XML ini sangat penting terutama dalam membangun sebuah web service karena hampir seluruh operabilitas yang berjalan dalam web service menggunakan dokumen XML. Server web dan aplikasi memegang peranan dalam setiap aplikasi web. Sebuah web server menangani proses HTTP sementara web aplikasi menangani layanan lainnya.

3. Metode Penelitian

Metode yang akan digunakan dalam penelitian ini adalah metode prototyping yang dapat digambarkan sebagai proses pembuatan model dan simulasi dari semua aspek produk yang sesungguhnya akan dikembangkan. Pada model ini, user hanya memberikan beberapa kebutuhan umum dari aplikasi yang akan dikembangkan tanpa detail input, proses atau detail output. Paradigma prototyping membantu pengembang dan pengguna untuk memiliki pemahaman yang lebih baik tentang apa yang akan dibangun ketika kebutuhan yang diinginkan tidak diuraikan secara jelas. Tahap-tahap di dalam prototyping model yang akan diimplementasikan di

(7)

dalam perancangan aplikasi pencarian data digital library ini antara lain analisis kebutuhan yang merupakan pengumpulan bahan dan data yang mendukung dalam perancangan sistem, perancangan aplikasi, dan evaluasi prototype. Sistem yang akan dibangun memiliki dua aktor yaitu user dan admin. Beberapa proses yang akan berjalan antara lain proses pencarian data perpustakaan digital, proses membaca data dan proses manajemen data perpustakaan digital. Di dalam sistem ini, user merupakan semua pengguna yang akan mengakses aplikasi pada tahap pencarian data sampai pada tahap data ditemukan dan dibaca. Sedangkan seorang admin memiliki tugas untuk melakukan manajemen data. Setiap aktor terhubung ke setiap proses yang akan dikerjakannya dan juga saling terkoneksi dengan proses lain yang berhubungan dengannya.

Sistem yang akan dibangun memerlukan komputer server dengan RAM minimal satu gb, dengan beberapa perangkat lunak yang akan digunakan antara lain JDK 6 yang menyediakan lingkungan untuk menjalankan aplikasi Java (JRE) dan JVM sehingga aplikasi dapat dijalankan disemua platform. Netbeans merupakan editor untuk pemrograman java, Struts framework menyediakan pustaka-pustaka struts yang merupakan action class, Lucene framework menyediakan pustaka-pustaka untuk information retrieval, MySQL sebagai basis data untuk menyimpan detail dari data digital, dan hibernate framework yang menyediakan pustaka-pustaka untuk melakukan pemetaan terhadap objek ke dalam basis data. Aplikasi pencarian data digital library dibutuhkan untuk melakukan penemuan kembali terhadap informasi tertentu dari sekumpulan data yang tersimpan di dalam sebuah basis data ataupun di dalam sebuah direktori yang disediakan. Aplikasi ini melakukan pencarian ke basisdata ataupun kedalam indeks yang telah dibangun sebagai hasil ekstrak dari dokumen-dokumen pdf. Hasil pencarian yang ditampilkan, digunakan juga sebagai link untuk user melakukan proses download dokumen.

Metode perancangan yang digunakan untuk merancang aplikasi ini adalah dengan pendekatan berorientasi objek, karena itu semua langkah-langkah di dalam perancangan diasosiasikan dengan dokumentasi didalam pendekatan berorientasi objek yaitu UML. Untuk menggambarkan arsitektur sistem secara keseluruhan digunakan diagram deployment. Diagram ini akan menjelaskan bahwa sistem terbagi kedalam dua komponen yang saling berhubungan satu sama lain. Application server adalah bagian sistem yang berhubungan dengan pusat data, dan tempat dimana aplikasi dijalankan dan didukung oleh layanan-layanan di dalamnya. Sisi client adalah bagian dimana user berada ketika mengakses layanan yang ditawarkan oleh application server. Di dalam client inilah terdapat komponen web browser yang mendukung akses aplikasi yang berbentuk web. Berikut ini adalah gambaran perancangan arsitektur sistem yang telah dibagi kedalam beberapa subsistem yang saling terintegrasi. Diagram pada Gambar 2 ditampilkan lebih terperinci dibandingkan dengan diagram deployment Gambar 1. Tujuannya untuk menjelaskan bahwa suatu sistem yang besar juga disusun oleh beberapa subsistem di dalamnya. Diagram kelas merupakan representasi dari model-model yang akan digunakan di dalam aplikasi beserta dengan operasi-operasi yang terdapat di dalamnya. Diagram kelas juga merupakan representasi tabel fisik yang terdapat di dalam basisdata. Dengan sebuah diagram kelas dapat digambarkan relasi-relasi diantara setiap data di dalam sistem.

(8)

Di dalam diagram kelas ini juga terdapat gambaran tentang objek-objek yang ada di dalam sistem beserta dengan atributnya masing-masing dan operasi-operasi yang dapat dilakukannya. Database Server JEE Server Client Components Web Browser Aplication Server TCP/IP JOBC

Gambar 1 Perancangan Deployment Diagram System

Use case diagram ini dirancang untuk identifikasi semua aktor yang akan terlibat di dalam aplikasi dan proses yang akan berjalan pada aplikasi yang akan dibangun. Diagram use case mendeskripsikan rangkaian kegiatan yang dijalankan oleh sistem. Diagram use case pada Gambar 4 menggambarkan hubungan antara masing-masing aktor dengan setiap proses yang ada di dalam sistem. Masing-masing use-case menggambarkan sebuah proses yang berjalan di dalam sistem. Misalnya untuk aktor administrator dapat melakukan proses deleted, update atau insert namun harus melewati proses login terlebih dahulu. Sedangkan untuk user tidak dapat ikut di dalam proses deleted, namun bisa terlibat di dalam proses simple searching atau yang lainnya. Application Server Database Server Client Components Web Browser Hibernate Framework Artifacts Hibernate Configuration Hibernate Mapping Lucene Framework Components LuceneIndex Struts Framework Artifacts Struts Configuration Struts Validator Validation Rule <<artifact>> POJOs <<artifact>> Action Class <<artifact>> DAO Class TCP/IP JODC

(9)

Gambar 3 Perancangan Diagram Kelas

Setelah melakukan perancangan terhadap arsitektur dan objek yang berada di dalam aplikasi, selanjutnya perlu dilakukan perancangan terhadap antar muka yang akan digunakan untuk aplikasi. Antar muka ini merupakan media dimana user akan berkomunikasi dengan aplikasi. Perancangan antar muka untuk aplikasi ini antara lain.

Browse Document Advance Searching

Index Document Simple Searching Deleted Login Upload Document Update Insert Administrator User System << extend >> << include >> << include >> << include >> << extend >>

(10)

Gambar 5 Rancangan Tampilan Aplikasi Gambar 6 Rancangan Form Login

Gambar 7 Rancangan Form Pencarian

4. Hasil Pembahasan dan Implementasi

Setelah MySQL Server 5.0 ter-instal, selanjutnya membuat sebuah basisdata baru dengan nama db_library. Basisdata tersebut dibuat secara manual di dalam MySQL, namun untuk tabel-tabel di dalamnya tidak dibuat secara manual karena aplikasi ini menggunakan framework Hibernate yang akan melakukan pemetaan terhadap objek atau model yang dibentuk ke dalam sebuah tabel di dalam basisdata.

kode program

(11)

Salah satu objek yang telah dibentuk pada tahap perancangan adalah objek admin yang memiliki atribut username dan password. Di dalam konsep pemrograman model-view-controller dengan java, objek tersebut dijadikan sebuah model yang ditulis di dalam sebuah kelas yang dinamakan kelas Admin bersama dengan atributnya. Kelas Admin merupakan bentuk enkapsulasi terhadap objek admin (ditandai dengan access specifier private). Dengan adanya enkapsulasi ini atribut dari objek admin tersebut tidak dapat diakses secara langsung namun bisa diakses hanya melalui method (setter dan getter) yang juga telah didefinisikan di dalam kelas Admin. Berikut adalah contoh kelas Admin yang ditulis dengan Java.

Setiap objek yang telah didefinisikan di dalam diagram kelas pada tahap perancangan, harus dibuatkan model masing-masing yang juga berisi atribut dan method. Model-model ini yang akan dipetakan oleh hibernate menjadi tabel-tabel di dalam basisdata. Ketika model telah terbentuk maka selanjutnya diperlukan sebuah file pemetaan yang berfungsi untuk menentukan setiap kolom yang berkaitan dengan model tertentu di dalam basisdata. Jadi setiap model memiliki file pemetaan masing-masing dan contoh isi dari file tersebut seperti berikut.

Gambar 9 Tampilan file Admin.hbm.xml untuk Hibernate Mapping

Contoh file Hibernate pemetaan pada Gambar 9 menjelaskan spesifikasi dari tabel admin yang akan dibentuk di dalam basisdata. Objek admin memiliki id sebagai primary key dan terdapat dua kolom lainnya, yaitu kolom username dan password, yang masing-masing memiliki tipe dan ukuran yang juga telah ditentukan. Setelah file pemetaan dari setiap model telah terbentuk, maka dibutuhkan sebuah file yang akan mengatur koneksi dengan basisdata dan menginformasikan dimana letak file pemetaan setiap model berada, file yang dimaksud adalah file Hibernate config. Contoh dari file Hibernate config diilustrasikan pada Gambar 10.

Gambar 10, menunjukkan file konfigurasi yang baru akan dijalankan, yang ditandai dengan informasi create yang berarti tabel-tabel baru yang akan dibuat. Untuk penggunaan selanjutnya, ketika tabel-tabel telah terbentuk dan aplikasi telah berjalan, status tersebut dapat diubah menjadi update. Itu berarti setiap kali ada program yang dieksekusi dan mengarah ke basisdata, tabel-tabel tersebut hanya akan mengalami perubahan-perubahan sesuai dengan keinginan administrator. Namun jika status tersebut tidak diubah ketika aplikasi telah berjalan, maka setiap kali ada eksekusi perintah ke basisdata maka Hibernate akan melakukan overwrite terhadap tabel yang sebelumnya telah dibentuk. Ketika tabel telah terbentuk melalui Hiber-nate, maka administrator dapat melakukan pengisian data, baik secara manual maupun dapat melalui aplikasi. Menggunakan konsep objek berarti semua komponen di

(12)

dalam aplikasi mengarah ke dalam objek-objek berbeda dengan fungsi masing-masing. Objek-objek tersebut memiliki atribut-atribut yang bersifat private dan hanya bisa diakses lewat pemanggilan fungsi. Seperti yang telah dijelaskan pada bagian implementasi basisdata, terdapat model-model yang merupakan kelas yang merepresentasikan setiap objek.Berikut ini adalah contoh dari kelas ItemDocument.

Gambar 10 Tampilan Konfigurasi Hibernate

Tampilan pada Gambar 11 merupakan salah satu contoh lain dari kelas-kelas sesuai dengan yang telah ditentukan pada tahap perancangan. Gambar 11 tersebut juga merupakan salah satu model yang juga memiliki metode setter dan getter.

(13)

Kelas ItemDocument tersebut memiliki hubungan many to one dengan kelas kategori dan topik. Hubungan tersebut menggambarkan bahwa untuk setiap ItemDocument pasti memiliki satu kategori ataupun satu topik. Sebaliknya satu kategori atau topik paling sedikit tidak mempunyai ItemDocument ataupun mempunyai banyak ItemDocument. Hubungan tersebut ditentukan secara manual tetapi melalui file hibernate pemetaan, seperti Gambar 12.

Gambar 12 Tampilan Kelas ItemDocument DAO

Setelah model dari semua objek terbentuk dan file-file yang diperlukan untuk hibernate selesai dikonfigurasi, maka untuk menggunakan model tersebut diperlukan fungsi-fungsi yang akan mengakses model-model tersebut. Fungsi-fungsi tersebut di dalam Java disebut dengan method, dimana setiap method akan mengembalikan nilai yang berbeda sesuai dengan tugas dari method tersebut. Setiap method yang memiliki relasi dengan basisdata diletakkan di dalam sebuah kelas DAO (pada arsitektur MVC). Semua kembalian dari method yang dijalankan di dalam kelas DAO, akan ditampilkan kembali kepada pengguna melalui view tertentu. Untuk menghubungkan view dengan kelas DAO dibutuhkan sebuah kelas action yang ditangani oleh framework struts. Framework ini bertugas untuk menghubungkan dan mengatur jalannya alur komunikasi antara view dengan model dan DAO. Sebagai contoh sederhana, ketika seorang admin ingin melakukan login dan validasi ke dalam aplikasi untuk mulai melakukan manajemen aplikasi, maka admin memasukan username dan password melalui sebuah form login yang disediakan pada view. Ketika admin menekan tombol submit untuk login. Maka alur program berjalan dan diarahkan ke sebuah kelas action (controller). Di dalam controller tersebut, dipanggil method dari DAO yang akan mengambil data username dan password yang ada di basisdata, hasil kembalian dari method tersebut akan dicocokan dengan data yang dimasukan oleh admin di dalam form login, jika cocok maka kelas action akan menyatakan bahwa operasi tersebut berhasil. Framework struts memiliki sebuah file konfigurasi yang di dalamnya mengatur jika sebuah operasi di dalam kelas action berhasil dilakukan maka selanjutnya alur program akan diarahkan ke view ataupun kelas tertentu. Jadi ketika operasi cek login dinyatakan berhasil, maka Struts akan

(14)

melihat arah selanjutnya di dalam file konfigurasinya. Ketika sebuah view ditampilkan user akan berinteraksi dengan aplikasi melalui view tersebut, hasil dari interaksi tersebut akan mengarahkan aplikasi berjalan sesuai dengan alur masing-masing. Misalnya ketika user ingin melakukan pencarian data, view yang tampil pada user hanyalah sebuah tampilan dengan textbox dimana user menginputkan keyword pencarian dan sebuah button untuk memulai pencarian. Selanjutnya alur program berjalan dan akan mencari controller BukuAdancedSearchCon.do, file tersebut merupakan file action yang diatur oleh framework struts. Ketika pemanggilan fungsi di dalam controller berhasil, maka aplikasi akan menampilkan halaman pencarian sebelumnya dengan hasil pencarian yang diletakkan pada bagian bawah form pencarian. Namun ketika pemanggilan fungsi di dalam controller gagal maka aplikasi akan tetap berada pada tampilan pencarian awal seperti yang diatur di dalam konfigurasi struts.

Proses pencarian dokumen di dalam aplikasi digital library ini menggunakan pencarian dengan sistem temu kembali informasi yang didukung oleh framework lucene. Pencarian dilakukan terhadap data yang tidak memiliki strukutur yaitu data pdf yang diekstrak sehingga menghasilkan sebuah plaint text yang kemudian dapat diindeks. Proses pengindeksan tersebut dilakukan oleh admin melalui serangkaian proses yang terlebih dahulu harus dilewati, seperti yang digambarkan lewat diagram activity pada tahap perncangan aplikasi. Sebelum masuk pada proses indeks file, admin terlebih dahulu melakukan insert data dokumen ke dalam basisdata. Jika admin mengisi semua field dengan benar maka alur program akan berjalan ke proses selanjutnya yaitu proses unggah dokumen yang sesuai dengan data yang telah dimasukan sebelumnya, berikut ini adalah tampilan unggah file. Setelah berhasil melakukan unggah file, maka alur program akan berjalan ke proses selanjutnya yaitu proses indeks dokumen. Semua proses tersebut disimpan di dalam sebuah session, sehingga data yang digunakan sebelumnya pun masih dapat diakses dan digunakan seperlunya pada proses indeks ini. Data yang dimaksud adalah nama file yang digunakan pada proses unggah dokumen, data tersebut dapat digunakan untuk disimpan kedalam indeks setiap dokumen, sehingga ketika dokumen tersebut ingin dibuka, nama file dapat digunakan untuk mengaksesnya. Untuk judul dokumen disimpan ke dalam indeks dengan nama title.

Proses indeks dokumen ini dimulai dengan mendefinisikan sebuah direktori dimana indeks akan disimpan dan juga mendefinisikan sebuah direktori dimana lucene dapat memperoleh dokumen yang akan diindeks. Ketika lucene menemukan dokumen yang akan diindeks, lucene akan mengkonversi data (jika berbentuk pdf, doc, html, xml, dan lain-lain) ke dalam bentuk plain text sehingga dapat dipahami oleh lucene. Di dalam lucene terdapat sebuah kelas yaitu IndexWriter dengan objek writer yang dapat menangani proses indeks dokumen. Ketika data telah siap untuk diindeks (telah berbentuk plain text), maka method addDocument bisa dieksekusi, dimana ketika method tersebut dipanggil, lucene akan melakukan analisis terhadap data tersebut dengan membaginya menjadi potongan-potongan, juga melakukan operasi-operasi tambahan terhadap data, seperti membuat data menjadi lower case ataupun dengan mengeliminasi kata-kata penghubung yang menurut lucene tidak dibutuhkan dalam indeks. Setelah analisis selesai dilakukan maka kelas kelas objek

(15)

writer memanggil method close (), itu berarti data telah diindeks. Indeks yang telah terbentuk siap untuk mendukung proses pencarian data sesuai dengan keyword yang dimasukan oleh user. Untuk proses pencarian Lucene akan memanggil method FSDirectory untuk membuka tempat di mana indeks disimpan, status dari pemanggilan tersebut adalah false yang berarti membuka, sedangkan jika menggunakan true berarti menciptakan. Sedangkan Kelas IndexSearcher/IS merupakan sebuah kelas di dalam lucene yang menyediakan fungsi untuk melakukan pencarian ke dalam indeks. Seperti pada kode di Gambar 12, dibentuk sebuah objek IS dari kelas tersebut yang akan melakukan tugas untuk pencarian. Setelah objek IS terbentuk, maka method query parser akan dipanggil untuk menerjemahkan query yang dimasukan oleh user ke dalam tipe query di lucene. Selanjutnya pencarian dilakukan, dan hasil pencarian disimpan ke dalam objek hits. Melalui objek tersebut, hasil pencarian diurutkan menurut tingkat relevansi terhadap query yang di masukan oleh user. Hasil pencarian tersebut akan ditampilkan berupa link yang bisa langsung mengakses dokumen yang dimaksudkan. Ketika aplikasi ini dirancang, terdapat beberapa tahapan yang dilewati dan di setiap tahapan memiliki dokumentasi masing-masing. Dokumentasi yang dimaksudkan di sini adalah dokumentasi dengan menggunakan UML. Pada tahap perancangan (lihat bab tiga) terdapat beberapa langkah yang pada akhirnya menghasilkan sebuah cetakan yang dapat digunakan untuk masuk ke dalam tahap pemrograman. Misalnya, pada tahap perancangan, telah didefinisikan setiap objek yang ada di dalam aplikasi melalui sebuah diagram kelas, objek-objek tersebut didefinisikan bersama dengan atribut dan operasi masing-masing. Objek yang satu memiliki atribut dan operasi yang berbeda dengan yang lainnya. Ketika masuk ke dalam tahap pemrograman, objek-objek tersebut dapat langsung digunakan tanpa harus merubah susunan ataupun bentuk dari objek tersebut. Hal ini merupakan salah satu kemudahan yang ditawarkan oleh pendekatan berorientasi objek, karena dalam setiap fase pengembangan aplikasi saling berkesinambungan dan tidak terdapat perbedaan yang menyulitkan dalam transisi dari setiap fase. Objek yang berbeda-beda ini juga memiliki tugas yang berbeda-beda, setiap objek dapat saling berkomunikasi melalui sebuah fungsi yang dijalankan dengan sebuah parameter yang dilewatkan diantaranya. Setiap objek berdiri sendiri dan mengatur state-nya masing-masing. Kemandirian ini sangat memudahkan dalam proses pengerjaan aplikasi, karena pengerjaan aplikasi dapat dilakukan secara parallel. Beberapa programmer dapat mengerjakan bagian yang berbeda-beda. Pendekatan berorientasi objek tidak menekankan pada struktur atau hirarki rancangan seperti yang ada pada pendekatan konvensional, namun aplikasi dibagi menjadi sebuah komponen-komponen dengan tugas masing-masing. Karena itulah maka aplikasi dapat dikerjakan secara paralel.

Perubahan yang terjadi pada proses bisnis (biasanya dilihat pada UML) langsung dapat diketahui berada pada posisi yang mana di dalam rancangan aplikasi. Komponen dari proses bisnis yang mengalami perubahan tersebut dapat dengan mudah ditemukan pada aplikasi sehingga komponen tersebut hanya ditangani oleh programmer yang membuat bagian tersebut tanpa harus merubah komponen yang lainnya. Tentu saja komponen yang lain akan mengalami perubahan apabila ada perubahan tipe data yang memungkinkan sebuah parameter yang dilewatkan diantara

(16)

kedua komponen (objek) tidak dapat diterima karena tipe data tidak dikenali. Tetapi pada komponen yang bersangkutan hanya perlu dilakukan perubahan pada tipe data tersebut dan tidak berpengaruh terhadap alur program. Hal ini sangat membantu ketika aplikasi ini membutuhkan pengembangan dan terjadi perubahan-perubahan di dalamnya. Pengembangan dapat dilakukan lebih mudah dan cepat, tentu saja dengan biaya yang relatif lebih murah. Pembagian aplikasi ke dalam komponen-komponen ini juga menuntun pada penggunaan ulang komponen-komponen-komponen-komponen tersebut sehingga menuntun pada pengembangan aplikasi yang berkualitas tinggi. Namun untuk perancangan aplikasi ini tidak menggunakan antamuka objek, sehingga menyulitkan di dalam manajemen beberapa fungsi dan representasi fungsi tidak dapat disembunyikan. Jika representasi fungsi tersebut disembunyikan, maka representasi fungsi tersebut dapat dengan lebih mudah diubah tanpa mempengaruhi objek-objek yang menggunakan atribut-atribut tersebut. Melalui antarmuka juga sekumpulan objek dapat diakses hanya melalui antarmuka yang sama, atau sebalikanya sebuah objek bisa menggunakan beberapa antarmuka tanpa saling mempengaruhi dengan objek lainnya dalam hal nilai kembalian. Hal lain yang perlu diperhatikan adalah bahwa aplikasi ini menggunakan basisdata dengan MySQL. Salah satu kendala yang biasanya terjadi adalah ketika basisdata yang digunakan berubah menjadi jenis yang lainnya seperti Oracle. Fungsi-fungsi di dalam aplikasi yang menyertakan query-query ke dalam basisdata akan menjadi kacau karena terdapat perbedaan tertentu di dalam dialek SQL yang ada pada setiap editor. Oleh karena itu di dalam aplikasi ini juga digunakan framework hibernate yang menjadi penghubung antara tipe data objek di java dan tipe data relational. Fungsi-fungsi yang memerlukan akses ke basisdata, diganti dengan query hibernate yang tidak diarahkan langsung ke basisdata, namun query hibernate tersebut diarahkan ke dalam model dari setiap objek yang telah dibangun. Hibernate membantu melakukan pemetaan dari objek ke dalam tabel-tabel di dalam basisdata. Untuk proses pencarian yang dilakukan di dalam aplikasi ini dibantu oleh framework lucene yang menyediakan pustaka-pustaka untuk mengindeks file pdf dan mencari ke dalam indeks tersebut. Pencarian secara tidak terstruktur ini tentu saja memberikan hasil pencarian yang lebih akurat karena pencarian tidak hanya dilakukan secara terbatas ke dalam judul ataupun field tertentu di dalam basisdata, namun pencarian dilakukan ke dalam seluruh content dari dokumen pdf. Hasil pencarian juga diurutkan berdasarkan kesesuaiannya dengan keyword pencarian yang dimasukan oleh user. Pencarian serupa juga biasanya digunakan oleh beberapa search engine yang tentu saja dengan algoritma yang berbeda-beda. Kelemahan dari framework ini adalah ketika melakukan indexing terhadap dokumen dengan ukuran yang besar (misalnya pdf 500 halaman) menggunakan waktu yang relatif lebih lama, sehingga memperlambat proses manajemen data khususnya yang melewati jaringan internet.

5. Simpulan

Menggunakan Object Oriented Design (OOD) memudahkan dalam menangani masalah yang lebih besar. Dengan menggunakan OOD, memungkinkan

(17)

sistem tahan terhadap perubahan-perubahan yang terjadi dimasa mendatang dan menuntun pada penggunaan komponen-komponen program. Dengan adanya penggunaan kembali ini menuntun pada pengembangan perangkat lunak yang lebih cepat dan berkualitas tinggi. Menggunakan pustaka Information Retrieval (IR) mempermudah proses pencarian terhadap data yang tidak memiliki struktur dan menghasilkan hasil pencarian yang lebih akurat karena pencarian dilakukan kedalam seluruh content dokumen.

9. Daftar Pustaka

[1] Sommerville, Ian. 2001. Software Engineering, 6th Edition. United Kingdom:

Pearson Education.

[2] Horstman, Cay. 2004. Object Oriented Design & Pattern. John Willey & Sons.

[3] Hariyanto, Ir. Bambang, MT. 2004. Rekayasa Sistem Berorientasi Objek. Bandung: Penerbit Informatika.

[4] Manning, D Christopher, Raghavan, Prabhakar, & Schutze, Hinrich. 2008. Introduction to Information Retrieval.

[5] Hatcher, Erik, Gospodnetic, Otis. 2005. Lucene in Action. USA: Manning Publication Co.

[6] Minter, Dave, & Linwood, Jeff. 2006. Beginning Hibernate: From Novice to Professional. USA: Apress Inc.

Gambar

Gambar 2 Perancangan Deployment Diagram dan Subsistem
Gambar 4 Perancangan Diagram Use Case
Gambar 8 Contoh Model Objek dalam Java
Gambar 9 Tampilan file Admin.hbm.xml untuk Hibernate Mapping
+2

Referensi

Dokumen terkait

S’bab Engkau s’lalu menyertaiku Membimbingku lalui semua Jadikanku lebih dari pemenang Yesus Kau yang menjaga hidupku Tak pernah Kau lalai sedikitpun Dalam lembah kekelamanku Ku

Penelitian ini adalah langkah awal untuk mengetahui tentang kebutuhan konversi desain pada kapal Penyeberangan menjadi Kapal Sekolah untuk wilayah Kabupaten Merauke dalam

Bagaimanapun, tidak ada keterangan empirikal yang menunjukkan kedudukan serta kesan persepsi undang-undang dan penguatkuasaan zakat terhadap gelagat kepatuhan, khususnya

Tujuan dari penelitian ini adalah untuk mengetahui aktivitas antibakteri dari cairan kultur isolat P301 terhadap Staphylococcus aureus ATCC 25923 dan mengetahui profil optimasi

Penelitian yang mengacu pada peneli- tian kualitatif ini dipaparkan secara deskrip- tif, melalui metode analisis isi (Bogdan dan Biklen dalam Emzir, 2010:3)

Dari hasil penelitian yang dilakukan menujukkan bahwa tidak ada hubungan yang bermakna antara pekerjaan ibu dengan kejadian diare pada batita di wilayah kerja Puskesmas

Seperti yang telah diuraikan sebelumnya, mempelajari kosakata bahasa Inggris untuk siswa Sekolah Menengah Pertama (SMP) dan Madrasah Tsanawiyah (MTs) memang tidak

„Saya hanya seorang yang pernah mndengar darinya, sejauh yang saya bias katakan.‟ Dari hasil identifikasi dan klasifikasi konjungsi subordinatif, kami akan memaparkan