• Tidak ada hasil yang ditemukan

Implementasi Tf-Idf Untuk Pencarian Dokumen (Studi Kasus Di PT. eBdesk Indonesia)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Tf-Idf Untuk Pencarian Dokumen (Studi Kasus Di PT. eBdesk Indonesia)"

Copied!
114
0
0

Teks penuh

(1)

Diajukan

Pada Fak

NUGRA

PRO

JURUSAN

FAKULTAS T

UNIVERSIT

SKRIPSI

an Untuk Menempuh Ujian Sarjana

Fakultas Teknik dan Ilmu Komputer

Oleh :

GRAHA IMAN SANTOSA

10109797

PROGRAM STUDI S1

USAN TEKNIK INFORMATIKA

AS TEKNIK DAN ILMU KOMPUTE

RSITAS KOMPUTER INDONESIA

2011

(2)
(3)
(4)

i

Oleh

Nugraha Iman Santosa 10109797

Mesin pencarian dokumen adalah program komputer yang dirancang untuk melakukan pencarian atas dokumen dalam koleksi dokumen. Hasil pencarian umumnya ditampilkan dalam bentuk daftar yang seringkali diurutkan menurut tingkat akurasi kesesuaian dokumen dengan kebutuhan pengguna. Pada skripsi kali ini akan mengimplementasikan suatu aplikasi pencarian dokumen di dalam aplikasi eBdesk Collaboration. Dimana pencarian dokumen dilakukan terhadap dokumen-dokumen yang dimasukkan pengguna pada aplikasi eBdesk Collaboration.

Ada 2 proses yang dilakukan pada aplikasi yang dibuat, antara lain : proses penentuan indeks dan proses pencarian. Proses penentuan indeks yaitu proses mengekstrak dokumen yang di-upload, melakukan pre-processing kemudian menyimpan hasilnya ke dalam database. Proses selanjutnya adalah pencarian, yaitu mencari dokumen dari database berdasarkan kata kunci dari pengguna, kemudian mengurutkan dokumen hasil pencarian dengan menggunakan metode tf-idf, sehingga dihasilkan daftar dokumen yang telah terurut.

Metode tf-idf adalah metode yang umum digunakan untuk mesin pencarian karena efisien dan sederhana. Pembobotan dokumen menggunakan tf-idf menunjukkan bahwa deskripsi terbaik dari dokumen terjadi ketika kata yang banyak muncul dalam dokumen tersebut dan sangat sedikit muncul pada dokumen yang lain.

(5)

ii

ABSTRACT

TF-IDF IMPLEMENTATION FOR DOCUMENTS SEARCHING (A case study in PT. eBdesk Indonesia)

by

Nugraha Iman Santosa 10109797

Document search engine is a computer program designed to search for documents in document collections. Search results are generally displayed in the form of lists that are often sorted by the accuracy of the document conformance to user needs. In this thesis will implement an application to search documents in the application eBdesk Collaboration. Where the document search conducted on the documents that user uploaded on the eBdesk Collaboration application.

There are two processes are performed on an application made, among others: the process of indexing and the searching process. The process of indexing is a process to extract the uploaded document, perform pre-processing and then save the results into the database. The next process is searching, which is seeking documents from database based on keyword from user, than rank the search result document using tf-idf method, so the result is list of documents that have been ranked.

Tf-idf method is a method commonly used for search engines because of its efficiency and its simplicity. Weighted using the tf-idf document shows that the best description of the document occurs when a word often appears in documents and very rarely appears on other documents.

(6)

iii

dilimpahkan kepada penulis sehingga pada akhirnya penulis dapat menyelesaikan laporan skripsi ini dengan judul “IMPLEMENTASI TF-IDF UNTUK

PENCARIAN DOKUMEN (STUDI KASUS DI PT. EBDESK

INDONESIA)”.

Skripsi ini disusun untuk memenuhi salah satu syarat dalam menyelesaikan jenjang pendidikan S1 Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Tentu saja laporan ini tidak terselesaikan begitu saja, berbagai hambatan dan kesulitan penulis dapatkan. Karena itu dengan segala kerendahan hati, penulis ingin menyampaikan rasa hormat dan terima kasih sebesar-besarnya kepada :

1. Allah SWT yang telah memberikan kesehatan dan memberikan kemudahan dalam melaksanakan tugas akhir dan menyelesaikan laporan ini.

2. Kepada orang tua yang selalu memberi dukungan baik secara moril dan materil.

3. Bapak Dr. Ir. Eddi Soeryanto Soegoto, M.Sc. selaku Rektor Universitas Komputer Indonesia.

4. Bapak Dr. Arry Akhmad Arman selaku Dekan Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

(7)

iv

6. Ibu Janivita Joto Sudirham, ST.,MSc.,PhD. selaku dosen pembimbing yang telah meluangkan waktu, tenaga dan pikirannya untuk mebimbing dan memberikan saran serta ilmu pengetahuannya kepada penulis dalam penyusunan Skripsi ini.

7. Kepada seluruh dosen dan staff Jurusan Teknik Informatika Universitas Komputer Indonesia Bandung.

8. Penulis juga mengucapkan terima kasih kepada seluruh teman, sahabat dan semua pihak yang tidak dapat disebutkan satu persatu.

Penulis menyadari bahwa dalam penyusunan laporan skripsi ini masih terdapat kekurangan dan jauh dari kesempurnaan. Penulis mengharapkan saran dan kritik dari pembaca demi kemajuan pekerjaan penulis di masa yang akan datang.

Akhir kata, semoga laporan skripsi ini dapat memenuhi tujuan penulisannya serta bermanfaat bagi penulis dan kita semua.

Wassalamu'alaikum Wr. Wb.

Bandung, Maret 2012

(8)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... xi

DAFTAR SIMBOL... xiii

DAFTAR LAMPIRAN ... xvi

BAB 1 ... 1

PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Identifikasi Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.4 Metodologi Penelitian ... 4

1.5 Batasan Masalah ... 5

1.6 Sistematika Penulisan ... 6

BAB 2 ... 8

TINJAUAN PUSTAKA ... 8

2.1 Tinjauan Tempat Penelitian ... 8

2.2 Istilah-istilah yang Digunakan Dalam Penulisan ... 9

(9)

vi

2.4.3 Inverted Index ... 21

2.5 Proses Pencarian ... 22

2.5.1 Ranking ... 23

2.6 Metode TF-IDF ... 24

2.7 Vector Space Model ... 27

2.8 Konsep Berorientasi Objek ... 29

2.8.1 Kelas ... 30

2.8.2 Objek ... 30

2.8.3 Atribut ... 30

2.8.4 Method ... 31

2.8.5 Constructor ... 31

2.8.6 Package ... 31

2.9 Unified Modelling Languange ... 31

2.9.1 Use Case Diagram ... 32

2.9.2 Sequence Diagram ... 33

2.9.3 Class Diagram ... 34

2.9.4 Activity Diagram ... 34

2.10JAVA ... 35

2.11MySQL Server 5 ... 38

(10)

vii

3.1.2 Use Case Aplikasi eBdesk Collaboration ... 42

3.1.3 Class Diagram Pada Pengelolaan Dokumen ... 43

3.2 Analisis Perangkat Lunak Yang Akan Dibangun ... 44

3.2.2 Deskripsi Umum Perangkat Lunak ... 44

3.3 Analisis Kebutuhan Sistem ... 46

3.3.2 Kebutuhan Fungsional ... 46

3.3.3 Use Case Diagram ... 46

3.3.4 Analisis Perangkat Lunak ... 52

3.3.5 Analisis Perangkat Keras ... 52

3.4 Perancangan Applikasi ... 52

3.4.1 Sequence Diagram ... 52

3.4.2 Diagram Aktivitas ... 56

3.4.3 Diagram Kelas ... 59

3.4.4 Skema Relasi ... 61

3.4.5 Struktur File ... 62

3.5 Perancangan Antarmuka ... 67

BAB 4 ... 72

IMPLEMENTASI DAN PENGUJIAN ... 72

4.1 Implementasi Aplikasi ... 72

(11)

viii

4.1.5 Implementasi Database ... 74

4.1.6 Aplikasi Pengelolaan Dokumen ... 76

4.1.7. Aplikasi Pencarian Dokumen ... 78

4.2 Pengujian ... 80

4.3 Pengujian Alpha ... 80

4.4 Pengujian Beta ... 93

BAB 5 ... 99

KESIMPULAN DAN SARAN ... 99

5.1 Kesimpulan ... 99

5.2 Saran ... 99

(12)

1

1.1 Latar Belakang Masalah

PT. eBdesk Indonesia adalah sebuah produsen piranti lunak yang telah berdiri sejak tahun 2000. Saat ini PT eBdesk sedang mengembangkan sebuah produk bernama Collaboration, yaitu berupa sebuah aplikasi yang memungkinkan penggunanya berkolaborasi untuk mencapai suatu tujuan. Beberapa fitur utama dalam aplikasi Collaboration adalah sharing dokumen, galeri, blog dan forum.

Dalam aplikasi Collaboration ini terdapat fasilitas untuk menyimpan dokumen. Proses pencarian dokumen yang dilakukan pada aplikasi collaboration saat ini baru sebatas mencari dokumen berdasarkan judul dan deskripsi singkat yang disimpan ke dalam database.

Untuk lebih menambah nilai jual dari aplikasi collaboration ini, oleh karena itu ingin dibuatkan sebuah fitur baru yaitu pencarian dokumen yang bisa menelusuri query pencarian sampai ke dalam isi dokumen yang di-upload nya itu sendiri.

(13)

Untuk menghasilkan dokumen yang relevan terhadap query pencarian maka diperlukan proses perangkingan pada dokumen hasil pencarian. Dengan melakukan perangkingan terhadap dokumen, dokumen yang telah didapatkan tersebut ditampilkan terurut dari dokumen yang memiliki tingkat relevansi lebih tinggi ke tingkat relevansi rendah.

Ada beberapa model yang digunakan dalam membuat aplikasi pencarian dokumen yaitu : Model Boolean, Model Ruang Vektor (Vector Space Model), dan Model Probabilistik. Namun dari ketiga model tersebut model ruang vektor adalah model yang paling popular dan umum digunakan karena mudah diimplementasikan dan mendukung adanya pemeringkatan / perangkingan dokumen.

Dalam model ruang vektor, metode yang digunakan untuk melakukan perangkingan adalah dengan menghitung bobot dokumen terhadap query. Pembobotan ini menghitung bobot frekuensi kemunculan kata dalam suatu dokumen (term frequency – tf ) diimbangi dengan frekuensi kemunculan kata pada koleksi dokumen(inverse document frequency - idf), yang dikenal dengan pembobotan tf-idf. Pembobotan menggunakan tf-idf menunjukkan bahwa deskripsi terbaik dari dokumen terjadi ketika kata yang banyak muncul dalam dokumen tersebut dan sangat sedikit muncul pada dokumen yang lain.

(14)

Berdasarkan uraian diatas, penulis ingin melakukan implementasi tf-idf dengan dengan membuat perangkat lunak. Perangkat lunak ini diharapkan bisa melakukan pembobotan atau perangkingan pada pencarian dokumen yang ada.

1.2 Identifikasi Masalah

Permasalahan yang akan diangkat dalam skripsi ini adalah :

1. Bagaimana membuat aplikasi pencarian dokumen yang bisa menelusuri

query ke dalam isi teks dokumen ?

2. Bagaimana mengimplementasikan metode tf-idf pada aplikasi pencarian dokumen tersebut ?

1.3 Maksud dan Tujuan

Maksud dari pembuatan skripsi ini yaitu untuk membuat sebuah aplikasi pencarian dokumen yang mengimplementasikan penggunaan metode tf-idf.

Tujuan yang akan dicapai dalam pembuatan skripsi ini adalah :

1. Membuat aplikasi yang bisa mencari dokumen dari koleksi dokumen berdasarkan query yang diinputkan pengguna, dan memberikan peringkat terhadap hasil pencarian tersebut supaya menghasilkan dokumen yang relevan terhadap query.

(15)

1.4 Metodologi Penelitian

Tahapan-tahapan yang akan dilalui dalam pelaksanaan skripsi ini adalah sebagai berikut :

a. Studi literatur

Mengumpulkan bahan-bahan referensi yang menunjang proses penelitian yaitu yang berhubungan dengan pengenalan search engine, penentuan indeks dan pencarian pada search engine dan pembobotan pada search engine.

b. Pengumpulan data di lapangan

Pengumpulan data ini dilakukan dengan dua cara, pertama dengan observasi langsung ketempat penelitian untuk mendapatkan data primer dan dokumen-dokumen yang diperlukan yang berkaitan dengan penelitian. Kedua, melakukan wawancara mendalam. Wawancara dilakukan untuk memperoleh data-data yang diperlukan penulis. Wawancara ini juga bertujuan untuk mencari tahu kondisi aplikasi yang saat ini berjalan di lapangan, dan masalah apa yang dihadapi.

c. Analisis

(16)

d. Perancangan

Pada tahap ini dilakukan perancangan terhadap sistem yang akan dibangun. Diantaranya adalah : membuat rancangan database, rancangan fungsionalitas, dan membuat rancangan antarmuka sistem.

e. Implementasi

Pada tahap ini dilakukan implementasi berdasarkan hasil rancangan. Adapun proses yang dilakukan pada tahap implementasi antara lain :

1. Pembangunan database berbasis MySQL. 2. Perancangan interface.

3. Pengimplementasian algoritma metode TF-IDF yang diintegrasikan dengan studi kasus.

f. Pengambilan kesimpulan dan saran

Pada tahap ini adalah tahap terakhir dari penelitian yang dilakukan yakni pengambilan kesimpulan dari beberapa tahap yang telah dilalui. Kemudian menyusun laporan dari penelitian yang dilakukan.

1.5 Batasan Masalah

Berdasarkan latar belakang dan identifikasi masalah yang diketahui, penulis membatasi ruang lingkupnya sebagai berikut :

(17)

2. Menambahkan proses penentuan indeks pada aplikasi upload dokumen dalam eBdesk Collaboration, untuk mendukung proses pencarian dokumen.

3. Pencarian dalam aplikasi ini berupa teks berbahasa Inggris dan pengujian dilakukan terhadap dokumen teks yang berisi kata (term). Dikarenakan aplikasi eBdesk Collaboration saat ini diimplementasikan pada proyek di Malaysia, dan diharapkan akan bisa diimplementasikan di negara tetangga lainnya seperti Singapura.

4. Pengideksan dan pencarian dilakukan terhadap dokumen yang berekstensi *.txt dan *.doc.

5. Ukuran file yang di-upload maksimal 4 MB.

1.6 Sistematika Penulisan

Sistematika penulisan laporan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan skripsi ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

(18)

BAB 2 TINJAUAN PUSTAKA

Menjelaskan tentang konsep dasar aplikasi text mining, penentuan indeks (tokenizing, filtering, stemming, tagging), metode tf-idf, vector space model, perancangan sistem, basis data, tinjauan perangkat lunak, dan bahasa pemrograman yang digunakan untuk membangun aplikasi.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Membahas analisis terhadap kebutuhan aplikasi dengan menggunakan metode tf-idf, perancangan basis data, perancangan program aplikasi, perancangan input dan

output.

BAB 4 IMPLEMENTASI

Dalam bab ini membahas dan menampilkan aplikasi yang sudah dibangun berdasarkan perancangan yang telah dibuat dan menunjukkan hasil dari implementasi aplikasi terhadap data yang diolah. Aplikasi dibuat menggunakan bahasa pemrograman Java dan basis data MySQL.

BAB 5 KESIMPULAN DAN SARAN

(19)

8

Bab tinjuan pustaka berisi tentang tinjauan tempat penelitian, konsep dasar aplikasi text mining, penentuan indeks, metode tf-idf, vector space model, konsep berorientasi objek, basis data, tinjauan perangkat lunak, dan bahasa pemrograman JAVA yang digunakan untuk membangun aplikasi.

2.1 Tinjauan Tempat Penelitian

PT. eBdesk didirikan pada tahun 1998, sebagai perusahaan produsen perangkat lunak yang bergerak di bidang teknologi informasi. Ebdesk telah mengembangkan produk portal perusahaan, berdasarkan teknologi internet. Ebdesk tetap fokus untuk mengembangkan produk-produk yang berkelanjutan sesuai dengan perubahan teknologi dan tren. Ebdesk adalah salah satu perusahaan pertama yang mengembangkan corporate portal, yang mana corporate portal itu sendiri adalah sebuah konsep baru ketika eBdesk didirikan.

eBdesk Corporate Portal mengintegrasikan berbagai informasi dan aplikasi, dari perusahaan di dalam atau di luar, di antarmuka web pribadi tunggal. Ini adalah platform untuk menyebarkan sepenuhnya portal web interface yang memberikan koneksi mulus antara karyawan, manajer, pemilik, mitra, dan pelanggan.

(20)

yang komprehensif end-to-end dan layanan untuk berbagai segmen industri. Saat ini ada 6 anggota SAA termasuk XYBASE (Malaysia), eBdesk (Indonesia), Patimas (Malaysia), TMS, SSC Solution (Thailand), BlueBridge Software.

Saat ini PT eBdesk sedang mengembangkan sebuah produk bernama eBdesk Collaboration, yaitu berupa sebuah aplikasi yang memungkinkan penggunanya berkolaborasi untuk mencapai suatu tujuan. Beberapa fitur utama dalam aplikasi eBdesk Collaboration adalah sharing dokumen, galeri, blog dan forum.

Dalam aplikasi eBdesk Collaboration ini terdapat fasilitas untuk menyimpan dokumen. Untuk setiap dokumen bisa terdiri dari satu atau beberapa

file yang di-upload kedalam aplikasi, disimpan pula ke dalam database berupa judul dan deskripsi singkat mengenai dokumen yang dimasukkan oleh pengguna. Proses pencarian dokumen yang dilakukan pada aplikasi eBdesk Collaboration saat ini baru sebatas mencari dokumen berdasarkan judul dan deskripsi singkat yang disimpan ke dalam database.

Untuk lebih menambah nilai jual dari aplikasi eBdesk Collaboration ini, oleh karena itu ingin dibuatkan sebuah fitur baru yaitu pencarian dokumen yang bisa menelusuri query pencarian sampai ke dalam isi file yang di-upload nya itu sendiri.

2.2 Istilah-istilah yang Digunakan Dalam Penulisan

(21)

b. File : berkas tertulis (surat, akta, dsb) dari waktu yang lampau, disimpan kedalam media elektronik, disimpan dan dipelihara di tempat khusus untuk referensi. Contoh : Kontrak Kerja PT A.docx

c. Dokumen : kumpulan / gabungan dari file. Sebagai contoh, dokumen pendukung skripsi, didalamnya terdapat file-file : Jadwal Kegiatan Proposal.docx, Kerangka Penulisan Skripsi.docx, Sistem Evaluasi dan Seleksi Proposal.docx, Syarat Pengajuan Proposal.docx, dll. rapkan dapat memenuhi keinginan pengguna dari kumpulan file yang ada

d. Query: pertanyaan yang dimasukkan pengguna ke dalam aplikasi untuk mencari file

2.3 Text Mining

Text mining adalah salah satu bidang khusus dari data mining. Text mining

dapat didefinisikan sebagai suatu proses menggali informasi dari data yang berupa teks dimana sumber data biasanya didapatkan dari dokumen. (Khodra, 2003). Tujuan dari text mining adalah untuk mendapatkan informasi yang berguna dari sekumpulan dokumen. Jadi, sumber data yang digunakan pada text mining adalah kumpulan teks yang memiliki format yang tidak terstruktur atau minimal semi terstruktur.

Algoritma yang digunakan pada text mining, biasanya tidak hanya melakukan perhitungan hanya pada dokumen, tetapi juga pada fitur. Empat macam fitur yang sering digunakan:

(22)

pembentuk semantik feature, seperti kata, term dan concept.Pada umumnya, representasi character-based ini jarang digunakan pada beberapa teknik pemrosesan teks.

b. Words adalah satuan kata yang digunakan untuk diproses.

c. Terms merupakan single word dan frasa multiword yang terpilih secara langsung dari corpus. Representasi term-based dari dokumen tersusun dari subset term dalam dokumen.

d. Concept merupakan feature yang digenerate dari sebuah dokumen secara manual, rule-based, atau metodologi lain. Pada tugas akhir ini, konsep digenerate dari argumen atau kata benda yang sudah diberi label pada suatu dokumen.

Text mining bisa juga diartikan sebagai proses analisis teks untuk menemukan informasi baru dari sekumpulan teks berbahasa alami yang tidak terstruktur. Singkatnya adalah pencarian pola tertentu pada suatu text. Dalam text mining ada 5 tahapan umum yang biasanya terdapat pada text mining yaitu

tokenizing, filtering, stemming, tagging dan Analyzing. (Harlian, 2006)

2.4 Proses Penentuan Indeks

Terdapat beberapa tahapan untuk melakukan proses penentuan indeks sampai tersimpan didalam basis data yaitu menyimpan ID file dan menyimpan

(23)

a. Tokenizing

Merupakan proses memecah (parsing) file menjadi token-token yaitu dengan memotong menjadi term. Contoh hasil tokenizing terlihat pada Gambar 2.1 sebagai berikut :

Gambar 2.1 Hasil Tokenizing [Milkha, 2006]

b. Filtering

Merupakan proses menghilangkan kata-kata umum yang sering ditampilkan dalam file seperti : is, for, in, dan sebagainya. Contoh hasil filtering terlihat pada Gambar 2.2 sebagai berikut :

Gambar 2.2 Hasil Filtering [Milkha, 2006]

management

management is a new concept in the business world. management

is

(24)

c. Stemming

Merupakan proses pembuangan prefix (awalan) dan suffix (imbuhan akhiran) secara morfologi dari suatu kata berimbuhan menjadi kata dasar. Sebelum dilakukan proses stemming, terlebih dahulu dilakukan pengecekan kedalam kamus kata dasar. Kata yang tidak ada dalam kamus akan dilakukan proses

stemming. Contoh hasil stemming terlihat pada Gambar 2.3 sebagai berikut :

Gambar 2.3 Hasil Stemming [Milkha, 2006]

d. Tagging

Tahapan tagging adalah tahap mencari bentuk awal/root kata dari tiap kata dalam bentuk lampau atau kata hasil stemming. Contoh hasil tagging terlihat pada Gambar 2.4 sebagai berikut :

Gambar 2.4 Hasil Tagging [Milkha, 2006]

(25)

Contoh dari proses penentuan indeks bisa dilihat pada ilustrasi dibawah ini : 1. Teks yang diproses adalah ”Text mining, sometimes alternately referred to

as text data mining”

2. Dilakukan proses tokenizing terhadap teks, maka dihasilkan daftar kata-kata sebagai berikut :

text

3. Setelah proses tokenizing, dilakukan proses filtering yang berfungsi untuk menghilangkan kata-kata umum. Dalam kasus ini yang menjadi kata umum adalah ”as” dan ”to”. Daftar kata-kata umum bisa dilihat pada lampiran. Setelah proses filtering maka dihasilkan daftar kata-kata sebagai berikut :

4. Selanjutnya dilakukan proses stemming. Sehingga dihasilkan hasil proses dari stemming sebagai berikut :

(26)

refer text data mine

5. Selain dilakukan proses stemming, untuk kata yang tidak ada dalam kamus maka dilakukan proses tagging. Sehingga dihasilkan daftar sebagai berikut:

6. Proses terakhir adalah menghitung term weighting dari kata-kata yang telah diproses. Sehingga dihasilkan hasil perhitungannya sebagai berikut :

Kata Frekuensi

Algoritma yang paling umum digunakan untuk melakukan stemming bahasa Inggris dan efektif digunakan adalah algoritma Porter (Porter 1980). Algoritma porter terdiri dari 5 tahap pemotongan kata, yang digunakan secara sekuensial. Dalam tiap tahap tersebut ada berbagai ketentuan untuk memotong kata. Aturan-aturan tersebut disimbolkan sebagai berikut :

(27)

Algoritma untuk menghitung m :

Function countM(input term: array[] of char) → integer

{mengembalikan nilai m}

(28)

2. *S adalah aturan bahwa kata diakhiri dengan huruf S 3. *v* adalah di dalam kata mengandung huruf vokal

4. *d adalah akhiran kata merupakan konsonan rangkap (double)

5. *o adalah kata berakhiran KVK (konsonan - vokal - konsonan), dimana huruf konsonan yang kedua bukan W, X, atau Y

Aturan dalam menghapus akhiran dituliskan dengan : (kondisi) S1 -> S2. Ini berarti jika kata berakhiran S1, dan sebelum S1 memenuhi kondisi yang diberikan maka S1 diganti dengan S2.

Tahap-tahap pada algoritma Porter Stemmer adalah sebagai berikut : 1. Menghapus akhiran dari kata jamak

a. SSES -> SS (caresses) b. IES -> I (ponies) c. SS -> SS (caress) d. S -> (cats)

2. Menghapus infleksi lisan

a. (m>0) EED -> EE (agreed, feed) b. (*v*) ED -> (plastered, bled) c. (*v*) ING -> (motoring, sing)

3. Jika melakukan penghapusan ED atau ING pada tahap ke 2, maka dilanjutkan dengan tahap ini

(29)

c. IZ -> IZE (sized)

d. (*d dan bukan (*L atau *S atau *Z)) -> (tann) e. (m=1 dan *o) -> E (filing, failing, slowing) 4. Mengganti akhiran Y dengan I

(*v*) Y -> I (happy, sky)

5. Menghapus satu akhiran dari beberapa akhiran a. (m>0) ATIONAL -> ATE (relational)

b. (m>0) TIONAL -> TION (conditional, rational) c. (m>0) ENCI -> ENCE (valenci)

d. (m>0) ANCI -> ANCE (hesitanci) e. (m>0) IZER -> IZE (digitizer)

f. (m>0) ABLI -> ABLE (conformabli) g. (m>0) ALLI -> AL (radically) h. (m>0) ENTLI -> ENT (differently) i. (m>0) ELI -> E (vilely)

(30)

r. (m>0) ALITI -> AL (formaliti) s. (m>0) IVITI -> IVE (sensitiviti) t. (m>0) BILITI -> BLE (sensibility) 6. Menghapus satu akhiran dari beberapa akhiran

a. (m>0) ICATE -> IC (triplicate) b. (m>0) ATIVE -> (formative) c. (m>0) ALIZE -> AL (formalize) d. (m>0) ICITI -> IC (electriciti) e. (m>0) ICAL -> IC (electrical) f. (m>0) FUL -> (hopeful) g. (m>0) NESS -> (goodness) 7. Menghapus akhiran terakhir

a. (m>1) AL -> (revival)

b. (m>1) ANCE -> (allowance, dance) c. (m>1) ENCE -> (inference, fence) d. (m>1) ER -> (airliner, employer) e. (m>1) IC -> (gyroscopic, electric)

f. (m>1) ABLE -> (adjustable, mov(e)able) g. (m>1) IBLE -> (defensible,bible)

h. (m>1) ANT -> (irritant,ant) i. (m>1) EMENT -> (replacement) j. (m>1) MENT -> (adjustment)

(31)

l. (m>1) OU -> ( homologous) m. (m>1) ISM -> (communism) n. (m>1) ATE -> (activate) o. (m>1) ITI -> (angulariti) p. (m>1) OUS -> (homologous) q. (m>1) IVE -> (effective) r. (m>1) IZE -> (bowdlerize) 8. Menghapus akhiran e

a. (m>1) E -> (probate, rate)

b. (m=1 dan bukan *o) E -> (cease) 9. Mengurangi akhiran L rangkap

(m>1 dan *LL) -> L (controll, roll) 2.4.2 Term Weigthing

Term adalah suatu kata atau suatu kumpulan kata yang merupakan ekspresi verbal dari suatu pengertian. Dalam information retrieval sebuah term

perlu diberi bobot, karena semakin sering suatu term muncul pada suatu file, maka kemungkinan term tersebut semakin penting dalam file.

(32)

2.4.3 Inverted Index

Ide dasar dari inverted index adalah membuat dictionary dari term-term

(Manning, 2008). Untuk setiap term, terdapat list yang merekam file dimana term

tersebut berada yang disebut dengan posting dan list dari posting disebut posting list.

Didalam file koleksi, setiap file memiliki serial number yang unik, yang disebut dengan file identifier (fileID), dimana fileID dinyatakan dengan bilangan

integer yang bertambah. Input dari proses penentuan indeks merupakan list dari

token yang telah dinormalisasi dari setiap file, dimana list merupakan pasangan antar term dan fileID. Inti dari tahap proses penentuan indeks adalah melakukan pengurutan term secara alphabetis dan setiap posting list diurutkan berdasarkan docID. Kemunculan term yang sama dari satu file digabungkan dan kemunculan

term yang sama dari file yang berbeda dikelompokkan (Manning, 2008). Contoh

inverted index dapat dilihat pada Gambar 2.5.

(33)

Gambar 2.5 menunjukkan list dari inverted index. Setiap list terdiri dari

term dan posting list, dimana setiap posting list berisi fileID dan frekuensi kemunculan term dari term yang berada didalam fileID. Nilai frekuensi dari kemunculan term dalam file dituliskan dengan simbol tfd,t. Terlihat di gambar ada

4 term yaitu : abacus, actor, aspen, dan atoll. Untuk posting list abacus file dengan ID = 3, memiliki frekuensi kemunculan term abacus sebesar 94 kali, atau dengan kata lain tf3,abacus= 94; tf19,abacus= 7; tf20,abacus= 212; tf22,abacus= 56. Dan begitu pun

seterusnya untuk term yang lain.

2.5 Proses Pencarian

Setelah proses penentuan indeks, tahap selanjutnya adalah proses pencarian. Proses pencarian merupakan suatu proses mencari ke dalam basis data berdasarkan kata kunci yang dimasukkan oleh pengguna. Tahapan dalam proses pencarian adalah :

a. Tokenizing

Tahap awal dalam melakukan pencarian adalah memecah (tokenizing) query,

keyword yang dimasukkan pengguna dijadikan sebagai query untuk melakukan pencarian kedalam database.

b. Filtering

(34)

c. Stemming

Setelah query tersebut melewati proses filtering, kemudian query tersebut melalui proses stemming yaitu suatu proses membuang awalan, akhiran dari kata. Hal ini dilakukan karena yang disimpan di dalam indeks database adalah kata dasar saja. Sebelum dilakukan proses stemming, terlebih dahulu dilakukan pengecekan kedalam kamus kata dasar.

d. Tagging

Setelah query tersebut melewati proses stemming, kemudian query tersebut melalui proses tagging adalah tahap mencari bentuk awal/root kata dari tiap kata dalam bentuk lampau atau kata hasil stemming.

e. Ranking

Tahap yang terakhir adalah melakukan perangkingan, dari file-file yang didapatkan. Perangkingan disusun berdasarkan bobot masing masing file

terhadap kata kunci, file yang paling besar bobotnya menjadi file dengan

ranking teratas. 2.5.1 Ranking

Ranking (perangkingan) merupakan pencarian file-file yang relevan terhadap query dan mengurutkan file tersebut berdasarkan kesesuaiannya dengan

query.

(35)

dilakukan dengan menghitung bobot masing-masing file terhadap query. Cara menghitung bobot masing-masing file terhadap query adalah dengan menggunakan metode tf-idf. Setelah dilakukan pembobotan, file hasil pencarian akan ditampilkan sesuai bobot dari file.

2.6 Metode TF-IDF

Metode tf-idf adalah suatu metode atau formula yang digunakan untuk menghitung bobot masing-masing file terhadap kata kunci (Harlian, Milkha. 2006). Metode TF/IDF dikenal sebagai algorithma yang sederhana namun relevan dalam melakukan pencocokan kata pada sebuah dokumen. Karena kelebihan itulah metode tf-idf banyak digunakan untuk pemberian bobot. Term frequency * inverse document frequency atau biasa disingkat dengan tf-idf.

Term frequency (tf) adalah frekuensi dari kemunculan sebuah term dalam

file yang bersangkutan. Oleh sebab itu, tf memiliki nilai yang bervariasi dari suatu

file ke file yang lain bergantung pada tingkat kepentingan sebuah term dalam sebuah file yang diberikan.

Inverse document frequency (idf) adalah suatu statistik yang mengkarakteristikkan sebuah term dalam keseluruhan koleksi file. Idf merupakan sebuah perhitungan dari bagaimana term didistribusikan secara luas pada koleksi

(36)

koleksi tidak berguna untuk membedakan file berdasarkan topik tertentu. Nilai idf

dalam sebuah termt dirumuskan dalam persamaan berikut:

.m š= log m š

(2.1)

ϒ .m ,š =ϒ ,š∙ .m š (2.2)

Keterangan:

N : Jumlah file

dft : Jumlah file yang mengandung term yang bersangkutan

ϒ ,š : Frekuensi kemunculan term pada file yang bersangkutan, dimana frekuensi ini sudah dihitung pada proses sebelumnya dan disimpan ke dalam basis data, lihat sub bab 2.4.3 Inverted Index

.m š : Nilai invers document frequency (idf) dari sebuah

term. Yaitu statistik yang mengkarakteristikkan sebuah term dalam keseluruhan koleksi file

ϒ .m ,š : Bobot sebuah term setelah dihitung menggunakan

metode tf*idf

Perhitungan bobot dari term tertentu dalam sebuah file dengan menggunakan tf*idf menunjukkan bahwa deskripsi terbaik dari file adalah term

yang banyak muncul dalam file tersebut dan sangat sedikit muncul pada file yang lain. Demikian juga sebuah term yang muncul dalam jumlah yang sedang dalam porsi yang cukup dalam file koleksi yang diberikan menjadi deskriptor yang baik. Bobot terendah akan di berikan pada yang yang muncul sangat jarang pada beberapa file dan term yang muncul pada hampir atau seluruh file.

Jika hasil dari proses pembobotan tf*idf menunjukkan bahwa ada file-file

(37)

menentukan peringkat dari file-file yang memiliki nilai sama. Perhitungan tersebut dilakukan dengan menggunakan metode vector space model. Dimana metode ini mengukur kemiripan antara suatu file dengan suatu query.

Contoh simulasi perhitungan nilai tf*idf bisa dilihat pada bagian dibawah ini :

Hitung term frekuensi(tf)

ant bee cat dog eel fox gnu hog

f1 2 1

f2 1 1 4 1

f3 1 1 1 1 1

Hitung document frequency (df)

term df

Hitung invers document frequency (idf)

(38)

Maka, nilai tf-idf berdasarkan query diatas adalah : f1 : 0,334

f2 : 0,88 f3 : 0,176

2.7 Vector Space Model

Vector space model merupakan solusi atas permasalah yang dihadapi jika menggunakan metode tf-idf. Karena pada metode tf-idf terdapat kemungkinan antar file memiliki bobot yang sama, sehingga ambigu untuk diurutkan.

Vector space model merupakan model yang digunakan untuk mengukur kemiripan antara suatu file dengan suatu query. Pada model ini, query dan file

dianggap sebagai vektor-vektor pada ruang n-dimensi, dimana n adalah jumlah dari seluruh term tunggal. (Harjono & David, 2005).

Inti perhitungan dari metode ini adalah dengan menghitung nilai cosinus sudut dari dua vektor, yaitu bobot dari tiap file dan bobot dari query. Menggunakan consine similiarity untuk mengukur kemiripan file terhadap query.

Berikut ini adalah tahapan untuk menghitung nilai similarity :

1 Hitung Length :

2 Hitung Inner Product : x1.x2 = x11.x21 + x12.x22 + ... x1n.x2n 3 Hitung nilai Cosine of the

angle

: x1, x2, x3… xn = term

x1.x2 = term yang sesuai dengan query

(39)

Contoh sudut antara vektor query dan vektor dokumen dapat dilihat pada gambar 2.6.

Gambar 2.6 Representasi grafis sudut vector dokumen dan query

(40)

Contoh perhitungan nilai cosinus similarity bisa dilihat pada bagian dibawah ini :

query

q ant dog

document text terms

f1 ant ant bee ant bee

f2 dog bee dog hog dog ant dog ant bee dog hog

f3 cat gnu dog eel fox cat dog eel fox gnu

Hitung Length

ant bee cat dog eel fox gnu hog length

q 1 1 2

f1 2 1 5

f2 1 1 4 1 19

f3 1 1 1 1 1 5

Hitung Inner Product f1 1*2 + 1*0 = 2 f2 1*1 + 1*4 = 5 f3 1*0 + 1*1 = 1

Hitung nilai Cosine of the angle

f1 f2 f3

q 2 / √10 = 0,63 5 / √38 = 0,81 5 / √10 = 0,32

2.8 Konsep Berorientasi Objek

(41)

mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software. (JEDI, 2007)

Dalam konsep berorientasi objek dikenal beberapa istilah sebagai berikut:

2.8.1 Kelas

Kelas adalah cetak biru (rancangan) dari objek. Ini berarti kita bisa membuat banyak objek dari satu macam kelas. Kelas mendefinisikan sebuah tipe dari objek. Di dalam kelas kita dapat mendeklarasikan variabel dan menciptakan objek (instansiasi). Sebuah kelas mempunyai anggota (member) yang terdiri atas atribut dan method. (Common Labz, 2008)

2.8.2 Objek

Objek secara lugas dapat diartikan sebagai instansiasi atau hasil ciptaan dari suatu kelas yang telah dibuat sebelumnya. Dalam pengembangan program orientasi objek lebih lanjut, sebuah objek dapat dimungkinkan terdiri atas objek-objek lain. Seperti halnya objek mobil terdiri atas mesin, ban, kerangka mobil, pintu, karoseri dan lain-lain. Atau, bisa jadi sebuah objek merupakan turunan dari objek lain sehingga mewarisi sifat-sifat induknya. ( Common Labz, 2008)

2.8.3 Atribut

(42)

2.8.4 Method

Method dikenal juga sebagai suatu fungsi dan prosedur. Dalam OOP,

method digunakan untuk memodularisasi program melalui pemisahan tugas dalam suatu class. Pemanggilan method menspesifikasikan nama method

dan menyediakan informasi (parameter) yang diperlukan untuk melaksanakan tugasnya. (Common Labz, 2008)

2.8.5 Constructor

Constructor adalah tipe khusus method yang digunakan untuk menginstansiasi atau menciptakan sebuah objek. Nama constructor adalah sama dengan nama kelasnya. Selain itu, constructor tidak bisa mengembalikan suatu nilai (not return value) bahkan void sekalipun. (Common Labz, 2008)

2.8.6 Package

Package menunjuk pada pengelompokkan kelas dan/atau sub package. Strukturnya dapat disamakan dengan direktorinya. (JEDI, 2007)

2.9 Unified Modelling Languange

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. (Common Labz, 2008)

(43)

sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. (Darwiyanti & Wahono, 2003)

Pada UML dikenal beberapa diagram, diantaranya sebagai berikut:

2.9.1 Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. (Darwiyanti & Wahono, 2003)

(44)

2.9.2 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa

message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang

men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. (Darwiyanti &Wahono, 2003)

(45)

2.9.3 Class Diagram

Class (Kelas) adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Kelas menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Diagram kelas menggambarkan struktur dan deskripsi kelas, paket dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. (Darwiyanti & Wahono, 2003)

Gambar 2.9 Contoh diagram kelas

2.9.4 Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision

(46)

juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan perlakuan internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. (Darwiyanti &Wahono, 2003)

Gambar 2.10 Contoh activity diagram

2.10 JAVA

(47)

motivasi untuk membuat sebuah bahasa pemrograman yang bersifat portable dan

platform independent (tidak tergantung mesin dan sistem operasi) yang dapat digunakan untuk membuat piranti lunak yang dapat ditanamkan (embedded) pada berbagai macam peralatan elektronik consumer biasa, seperti microwave, remote control, telepon, card reader dan sebagainya. (Common Labz, 2008)

Java adalah bahasa pemogramman yang sederhana dan tangguh. Berikut ini adalah beberapa karakteristik dari Java sesuai dengan definisi Sun.

1. Sederhana. Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.

2. Berorientasi objek. Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.

3. Dapat didistribusi dengan mudah. Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.

(48)

dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

5. Robust. Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling

untuk membantu mengatasi error pada pemrograman.

6. Aman. Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.

7. Architecture Neutral. Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.

8. Portabel.Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.

9. Performance. Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).

(49)

11.Dinamis. Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.

2.11 MySQL Server 5

MySQL adalah salah satu Relational Database Management System (RDBMS) yang didistribusikan secara gratis di bawah lisensi GPL (General Public License) yang dibuat oleh MySQLAB. MySQL merupakan turunan dari konsep database SQL (Structured Query Languange) untuk pemilihan/seleksi dan pemasukan data yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.

Pada MySQL terdapat beberapa storage engine (mesin penyimpanan data) yang berbeda-beda dan dapat ditentukan oleh proggramer database tersebut. Gambar di bawah ini merupakan arsitektur MySQL:

Kelebihan MySQL:

1. Portability. Berjalan stabil pada berbagai sistem operasi (Windows,Linux, Mac OS, Solaris dsb)

2. Free dan Open Source. Didistribusikan secara gratis dan open source. 3. Multiuser. dapat digunakan oleh beberapa pengguna dalam waktu yang

bersamaan tanpa mengalami masalah atau konflik

4. Performance Tuning. Memiliki kecepatan yang baik dalam menangani

(50)

5. Column Types. memiliki tipe kolom yang kompleks, seperti : signed/unsigned integer, float, double, char, varchar, blob, time, datetime, timestamp, year, set serta enum

6. Command dan Functions. memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query

7. Security. memiliki lapisan sekuritas, seperti level subnetmask, nama host

dan izin akses pengguna disertai dengan password enkripsi.

8. Scalability dan Limits. Mampu menangani basis data dalam skala besar dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris.

9. Connectivity. Dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket atau Named Pipes.

10.Localization. Dapat mendeteksi pesan kesalah (error code) pada client

dengan menggunakan lebih dari dua puluh bahasa.

11.Interface. Memiliki interface terhadap berbagai aplikasi dan bahasa pemrograman dengan fungsi API (Application Programming Interface). 12.Clients dan Tools. dilengkapi dengan berbagai tool yang dapat digunakan

untuk administrasi database

(51)

40

Bab analisis dan perancangan perangkat lunak berisi analisis aplikasi yang sudah ada serta analisis dan perancangan dari perangkat lunak yang akan dibangun. Pada bab ini akan ditentukan pula kebutuhan dan pemodelan dari perangkat lunak yang akan dibangun, dimana pemodelan menggunakan Unified Modeling Language (UML).

3.1 Analisis Aplikasi eBdesk Collaboration

Pada sub bab ini akan dijelaskan mengenai perangkat lunak yang sudah ada sebelumnya, dalam hal ini adalah aplikasi eBdesk Collaboration, dimana aplikasi pencarian dokumen akan diletakkan pada eBdesk Collaboration.

3.1.1 Deskripsi Sistem

Aplikasi eBdesk Collaboration adalah sebuah aplikasi yang ditujukan sebagai sarana untuk berkolaborasi antar pegawai dalam sebuah perusahaan. Beberapa fitur utama dalam aplikasi eBdesk Collaboration adalah sharing

dokumen, galeri, blog, kegiatan dan forum. Berikut ini akan dijelaskan secara singkat fungsi dari masing-masing fitur yang ada :

1. Pengaturan Profile

(52)

foto, mengedit personal informasi pengguna baik itu berupa nama depan, nama lengkap, alamat rumah, alamat email dan sebagainya.

2. Pengelolaan Dokumen

Pada modul dokumen, pengguna dapat mengelola dokumen seperti mengupload dokumen, mengisi informasi terhadap dokumen yang diupload, mendownload file yang ada dalam dokumen.

3. Pengelolaan Galeri

Pada modul galeri , pengguna dapat mengelola galeri seperti membuat galeri foto baru, menambahkan foto ke galeri yang sudah ada, mendownload foto yang ada di dalam suatu galeri, memberikan komentar terhadap foto yang sudah di upload.

4. Pengelolaan Kegiatan

Pada modul kegiatan, pengguna dapat melihat kegiatan yang ada, membuat kegiatan baru, menambah informasi pada kegiatan dan memberikan suatu komentar terhadap event.

5. Pengelolaan Blog

Pada modul blog, pengguna dapat mengelola blog seperti membuat blog baru, mengedit dan menghapus blog, dan memberikan komentar terhadap blog yang telah dibuat.

6. Pengelolaan Forum

(53)

3.1.2 Use Case Aplikasi eBdesk Collaboration

Gambar 3.1 Use Case Aplikasi eBdesk Collaboration

Gambar 3.1 menjelaskan diagram use case dari aplikasi eBdesk Collaboration. Dalam diagram use case ini hanya terdapat satu jenis aktor, sehingga bisa disebut pengguna. Dalam diagram ini, terdapat tujuh proses yang bisa dilakukan pengguna yaitu : Login, Mengatur Profile, Pengelolaan Galeri,

Aplikasi eBdesk Collaboration

pengguna

Pengelolaan Forum

Pengelolaan Kegiatan

Pengelolaan Blog

Pengelolaan Dokumen Mengatur Profile

Pengelolaan Galeri

Login

«include»

«include»

«include»

«include»

«include»

(54)

Pengelolaan Dokumen, Pengelolaan Forum, Pengelolaan Kegiatan, dan Pengelolaan Blog.

3.1.3 Class Diagram Pada Pengelolaan Dokumen

Gambar 3.2 Class diagram pada pengelolaan dokumen

Diagram kelas dalam Gambar 3.2 diatas ini memberikan gambaran keterkaitan antara kelas-kelas pada aplikasi pengelolaan dokumen. Seperti terlihat

File

- documentId: Document - size: int - dateCreated: Date - updaterId: String - dateUpdated: Date - description: String - title: String - totalView: int

+ get() : void + set() : void

DocumentServ ice

+ documentSave(Document) : void

+ findDocumentList(int, int, String, String, String, String) : List<Document> + documentFileUpload(FileItem, String) : void

DocumentPortlet

+ processAction(ActionReques, ActionResponse) : void + actionAddDocument(ActionRequest, ActionResponse) : void + doView(RenderRequest, RenderResponse) : void

+ doViewDocument(RenderRequest, RenderResponse) : void

FileServ ice

+ fileSave(File) : void + postSave(Posting) : void + fileGet(String) : File

User

(55)

pada Gambar 3.2 bahwa adanya keterhubungan kelas-kelas antara lain : DocumentPortlet, DocumentService, FileService, User, Document, dan File.

3.2 Analisis Perangkat Lunak Yang Akan Dibangun

Pada analisis perangkat lunak ini akan dijelaskan mengenai deskripsi umum dari perangkat lunak yang akan dibangun yaitu aplikasi pencarian dokumen, use case model berupa use case diagram serta use case skenario, realisasi use case dan activity diagram.

3.2.2 Deskripsi Umum Perangkat Lunak

Perangkat lunak yang akan dibangun adalah perangkat lunak yang mampu melakukan proses penentuan indeks dan proses pencarian. Input dari perangkat lunak ini berupa file text yang disimpan dalam jenis file *.txt dan *.doc. Dan

(56)

Gambar 3.3 Perangkat Lunak Aplikasi Pencarian Dokumen

Gambar 3.3 memperlihatkan gambaran perangkat lunak yang akan dibangun, untuk proses penentuan indeks dimulai dengan mengubah isi setiap file

yang terdapat di dalam file koleksi menjadi term, proses ini disebut tokenizing. Setiap term yang dihasilkan dari setiap file akan dilakukan proses filtering,

stemming dan tagging, lalu dari setiap term tersebut akan diberikan bobot (term weighting). Term yang telah mengalami proses tokenizing, filtering, stemming, tagging dan term weighting merupakan term yang akan menjadi indeks dari file

koleksi. Pada proses pencarian pengguna memasukkan query, lalu query tersebut dipecah (parse query), hasil dari parse query tersebut akan dilakukan proses

(57)

selanjutnya akan dilakukan perangkingan. Perangkingan disusun berdasarkan bobot masing-masing file terhadap query pencarian.

3.3 Analisis Kebutuhan Sistem

3.3.2 Kebutuhan Fungsional

Kebutuhan fungsional pada sistem ini adalah : 1. Upload file dari pengguna

2. Proses penentuan index

3. Input kata kunci dari pengguna 4. Load data dari database

5. Proses pembobotan menggunakan metode tf-idf 6. Tampilkan hasil ke pengguna.

7. Download file yang dipilih pengguna

3.3.3 Use Case Diagram

(58)

Gambar 3.4 Use case diagram

Gambar 3.4 menjelaskan diagram use case dari sistem pencarian file. Dalam diagram use case ini hanya terdapat satu jenis aktor, sehingga bisa disebut pengguna. Dalam diagram ini, terdapat empat proses yang bisa dilakukan pengguna yaitu : Login, Upload dokumen, Pencarian file, dan Download file. Proses login yaitu melakukan otentikasi pengguna yang akan masuk ke aplikasi. Proses upload dokumen yaitu melakukan upload file, dan mengindeks file ke dalam basis data. Proses pencarian file yaitu melakukan pencarian terhadap file

dan melakukan perangkingan terhadap dokumen hasil pencarian. Proses download file yaitu melakukan proses download terhadap file yang dipilih. Untuk mengetahui penjelasan lebih detail dari use case pada Gambar 3.4 bisa dilihat melalui skenario use case pada tabel 3.1 – 3.4 berikut ini :

Sistem Pencarian File

pengguna

Upload dokumen

Pencarian file

Dow nload file Login

«include»

«include»

(59)

Tabel 3.1 Skenario use case login

Skenario

Nama Use case : Login

Nama Actor : Pengguna

Deskripsi : Melakukan pengecekan data pengguna.

Skenario Awal

Kondisi Awal : Terdapat pengguna yang akan menggunakan aplikasi

Aksi Aktor Respon Sistem

1. Pengguna memasukkan username dan

password

2. Sistem mencari data pengguna dalam

basis data berdasarkan username dan

password yang dimasukkan

3. Jika data tidak ditemukan, maka sistem

menampilkan pesan kesalahan. Jika

ditemukan maka pengguna masuk ke

dalam aplikasi eBdesk Collaboration

4. Tampil halaman utama eBdesk

Collaboration atau tampil pesan

(60)

Tabel 3.2 Skenario use case upload dokumen

Skenario

Nama Use case : Upload Dokumen

Nama Actor : Pengguna

Deskripsi : Melakukan upload file, dan mengindeks file ke dalam basis

data.

Skenario Awal

Kondisi Awal : Terdapat file yang belum diindeks

Terdapat form untuk meng-upload dokumen

Aksi Aktor Respon Sistem

1. Pengguna memasukkan judul dan

deskripsi singkat dokumen

2. Pengguna mengunggah file untuk

diindeks ke dalam sistem

3. Sistem menyimpan judul dan deskripsi

ke dalam basis data

4. Sistem membaca isi file kemudian

melakukan proses tokenizing, filtering,

stemming, tagging, dan term weighting

5. Sistem menyimpan data indeks ke basis

data.

6. Pengguna mendapatkan pesan berhasil

(61)

Tabel 3.3 Skenario use case pencarian file

Skenario

Nama Use case : Pencarian File

Nama Actor : Pengguna

Deskripsi : Melakukan pencarian terhadap file dan melakukan

perangkingan terhadap dokumen hasil pencarian.

Skenario Awal

Kondisi Awal : Tersedia form pencarian untuk memasukkan kata kunci

pencarian yang diinginkan oleh pengguna.

Aksi Aktor Respon Sistem

1. Pengguna memasukkan kata kunci

pencarian terhadap file.

2. Sistem kata kunci kemudian

melakukan proses tokenizing, filtering,

stemming, tagging terhadap kata

kunci

3. Server akan mengambil file dari

database yang isinya mengandung

kata kunci pencarian

4. Setelah query berhasil dieksekusi dan

file telah difilter lalu dokumen diproses

(62)

dihasilkan dokumen yang relevan

terhadap query

5. Sistem menampilkan file sesuai dengan

kata kunci pencarian.

6. Pengguna mendapatkan file sesuai

dengan kata kunci pencarian.

Tabel 3.4 Skenario use casedownload file

Skenario

Nama Use case : DownloadFile

Nama Actor : Pengguna

Deskripsi : Melakukan proses download terhadap file yang dipilih.

Skenario Awal

Kondisi Awal : Tersedia tampilan daftar dokumen hasil pencarian.

Aksi Aktor Respon Sistem

1. Pengguna memilih file yang akan di

download

2. Sistem mencari file fisik yang akan

di-download

3. Setelah file ditemukan sistem

menampilkan popup download

4. Pengguna mendapatkan file yang

(63)

3.3.4 Analisis Perangkat Lunak

Pembangunan sistem menggunakan beberapa perangkat lunak sebagai berikut:

1. Sistem Operasi : Windows 7 Ultimate 2. Bahasa Pemrograman : Java

3. Web Server: Apache Tomcat 6.0.26 4. Netbeans IDE 6.8 sebagai editor

5. Database : MySQL 6. Library

a. Spring 2.6 b. Hibernate 3.1 c. MySQL Connector d. POI 3.0

3.3.5 Analisis Perangkat Keras

Adapun daftar spesifikasi perangkat keras yang digunakan dalam pembangunan sistem adalah sebagai berikut.

1. Processor Intel(R) Core(TM) 2 Duo processor 2.5GHz 2. Memori 3072MB

3. Hardisk 296GB 4. Monitor 14`

5. Keyboard dan Mouse

3.4 Perancangan Applikasi

3.4.1 Sequence Diagram

(64)

Gambar 3.5 Sequence diagram upload dokumen

Sequence diagram dalam Gambar 3.5 memberikan gambaran pada saat terjadinya use case upload dokumen. Pada awalnya pengguna memasukkan judul, deskripsi singkat, dan file-file untuk disimpan ke dalam sistem. Kemudian kelas DocumentPortlet bertugas untuk mengatur urutan proses-proses yang harus dilakukan mulai dari menyimpan data dokumen ke dalam database, memanggil kelas-kelas Extractor, Tokenizer, Stopwords, Stemmer, Tagger untuk mengolah teks, dan yang terakhir menyimpan data posting ke dalam database.

Pengguna

listT erm = tokenize(String text)

(65)

3.4.1.2 Sequence diagram pencarian file

Sequence diagram dalam Gambar 3.6 dibawah ini memberikan gambaran pada saat terjadinya use case pencarian file. Pada awalnya pengguna memasukkan kata kunci pencarian di form pencarian. Lalu sistem akan mengolah query sehingga dihasilkan kata dasar dari masing-masing term. Mengirim parameter kata kunci pencarian dan akan memproses query

ke database.

(66)

Gambar 3.6 Sequence diagram pencarian file

3.4.1.3 Sequence diagram download file

Sequence diagram dalam Gambar 3.7 dibawah ini memberikan gambaran pada saat terjadinya use case download file. Pada awalnya terdapat daftar file hasil dari proses pencarian. Kemudian pengguna memilih

file mana yang akan di download. Sistem akan menampilkan popup untuk proses download file.

Stemmer Stopwords

T okenizer SearchingService

SearchDocumentPortlet Form Pencarian

Pengguna

Tagger FileService

loop

alt

[isDictionary == false] :input query

processAction()

listTerm = tokenize(String query)

listT ermStoped = stopWord(listTerm)

listTermStemmed = stemming(listT ermStopped)

isDictionary = isDictionaryWord(String token)

stemmed = stem(token)

listTermTagged = tagging(listTermStemmed)

listFile = findByKeyword(listTermTagged, start, limit) :tampilkan

(67)

Gambar 3.7 Sequence diagram download file

3.4.2 Diagram Aktivitas

(68)

Gambar 3.8 menjelaskan mengenai diagram aktivitas login, dimana aktivitas awalnya adalah pengguna memasukkan username dan password. Kemudian sistem memproses dengan melakukan pencarian data user ke database berdasarkan username dan password. Jika data ditemukan maka pengguna diarahkan ke halaman utama. Jika tidak maka kembali ke halaman login dan menampilkan pesan.

Gambar 3.9 Diagram aktivitas upload file

Gambar 3.9 menjelaskan mengenai diagram aktivitas upload dokumen, dimana aktivitas awalnya adalah pengguna memasukkan data dokumen beserta

(69)

penentuan indeks, kemudian hasil dari penentuan indeks tersebut disimpan ke dalam basis data.

Gambar 3.10 Diagram aktivitas pencarian

(70)

dari pencarian tersebut, maka sistem melakukan proses perangkingan terhadap

file-file hasil pencarian. Selanjutnya file hasil yang telah di-ranking ditampilkan kepada pengguna. Jika pengguna ingin mengunduh file, maka sistem mengambil

file fisik yang tersimpan untuk diberikan kepada pengguna.

3.4.3 Diagram Kelas

(71)

Gambar 3.11 Class diagram aplikasi pencarian dokumen

Tokenizer

+ tokenize(text) : List<String>

+ termWeighting(tokens) : Map<String, Integer>

Stopw ords

- stopWordList: Li st<String> + checkStopwords(word) : boolean + i nitWordList() : void

+ stopWord(List<String>) : List<String>

Stemmer

+ stemming(List<String>) : List<String> + stem(String) : String

+ removePluralSuffixation(Stri ng) : String + removeVerbalInflection(String) : String + lastProcessVerbalInflection(String) : String + replaceLastYT oI(Stri ng) : void

+ removeSuffixFromMultipleSuffixes(String) : String + continueRemoveSuffixFromMultipleSuffixes(String) : void + removeLastSuffix(String) : String

+ removeE(String) : String + reduceLL(String) : String + isDoubleC(String) : boolean + isEndCVC(String) : boolean + isContaintVowel(String) : boolean + isVowel(String) : boolean + countM(String) : int

Dictionary

- term: String - Postings: Posting + getT erm() : String + setTerm(term) : void + setPostings(Postings) : void + getPostings() : List<Posting>

Posting

- id: int - fileId: File - dictId: Dictionary - freq: int

+ getDocId() : Document + setDocId(docId) : void + getFreq() : i nt + setFreq(freq) : void

File - documentId: Document - size: int - dateCreated: Date - updaterId: String - dateUpdated: Date - description: String - title: String - totalView: int + get() : void + set() : void

DocumentServ ice

+ documentSave(Document) : void

+ findDocumentLi st(int, int, String, String, String, String) : List<Document> + documentFileUpload(FileItem, String) : void

DocumentPortlet

+ processAction(ActionReques, Acti onResponse) : void + actionAddDocument(ActionRequest, ActionResponse) : void + doView(RenderRequest, RenderResponse) : void + doViewDocument(RenderRequest, RenderResponse) : void + indexingController(Fi le) : void

Tagger

- verbMap: Map<String, String> + getTaggedWord(String) : String + initVerbList() : void + tag(List<String>) : List<String>

Extractor

- content: String + Extractor(file) + getContent() : String + textExtractor() : void + wordExtractor() : voi d

FileServ ice

+ fileSave(File) : void + postSave(Posting) : void + fileGet(String) : File

User

- id: String - address: String - displayname: String - email: String - lasLoginDate: date - phoneNumber: String - status: int + get() : void + set() : void

SearchingServ ice

+ findByKeyword(List<String>, int, int) : List<File>

SearchingDocumentPortlet

+ doView(RenderRequest, RenderResponse) : void + serveResource(ResourceRequest, ResourceResponse) : voi d

(72)

Diagram kelas dalam Gambar 3.11 diatas ini memberikan gambaran keterkaitan antara kelas-kelas pada aplikasi pencarian dokumen. Seperti terlihat pada bagian 3.4.1.1 dan 3.4.1.2, bahwa adanya keterhubungan kelas-kelas antara lain : DocumentPortlet, DocumentService, FileService, Extractor, Tokenizer, Stemmer, Tagger, Stopwords, Dictionary, Posting, Document, File, SearchingPortlet, dan SearchingService

3.4.4 Skema Relasi

(73)

Gambar 3.12 Skema relasi subsistem pencarian dokumen

3.4.5 Struktur File

Sistem aplikasi membutuhkan spesifikasi file yang dimaksudkan untuk memudahkan sistem kerja komputer dalam melakukan pengaturan dan pencarian data. Struktur file digunakan dalam perancangan sistem untuk menentukan struktur fisik database dengan menjelaskan rincian dari setiap file (nama file,

User FK documentId: VARCHAR(36)

Gambar

Gambar 2.8 Contoh sequence diagram
Gambar 2.9 Contoh diagram kelas
Gambar 3.1 Use Case Aplikasi eBdesk Collaboration
Gambar 3.2 Class diagram pada pengelolaan dokumen
+7

Referensi

Dokumen terkait

Data yang didapatkan dari hasil pengujian dari kombinasi perlakuan tersebut adalah faktor tekanan penyemprotan (P), jenis nosel (J) dan jumlah nosel yang digunakan (N)

Juliana (2013) juga melakukan penelitian tentang literasi ekonomi dengan judul penelitian “Pengaruh Literasi Ekonomi Terhadap Perilaku Konsumsi Mahasiswa Pendidikan Ekonomi

Transaksi penjualan untuk pelanggan perusahaan yang sudah melakukan kerjasama biasanya disebut pelanggan corporate, transaksi terjadi pelanggan melakukan bookingan

Nilai retensi ini menggambarkan bahwa FK pakan pada kadar tersebut berperan dalam meningkatkan pemanfaatan protein dan lemak untuk struktur tubuh, sehingga pada

Dalam penelitian ini, untuk meningkatkan perkembangan populasi disusun 6 skenario yang dapat dijelaskan sebagai berikut: (i) Tanpa Skenario, perkembangan populasi mengikuti

Peningkatan pertumbuhan dan pemerataan ekonomi melalui peningkatan peran Tim Pengendali Inflasi Daerah Kota Banjarbaru, pengawasan terhadap sistem distribusi yang

Variabel penelitian ini adalah variabel tunggal yaitu penggunaan obat antihipertensi pasien rawat jalan RSUD Larantuka periode Juli s/d Desember tahun 2018,

Fuzzy clustering merupakan salah satu teknik untuk menentukan cluster optimal dalam suatu ruang vector yang didasarkan pada bentuk normal Eucledian untuk jarak antar