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

(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.

5. Ibu Mira Kania Sabariah, S.T., M.T. selaku Ketua Jurusan Teknik Informatika FTIK 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.

Proses dalam pencarian dokumen dapat digambarkan sebagai sebuah proses untuk mendapatkan dokumen yang relevan dari beberapa dokumen yang ada pada koleksi dokumen melalui pencarian query yang dimasukkan pengguna. Masalah yang sering dihadapi dalam membuat aplikasi pencarian adalah bagaimana menyajikan dokumen yang relevan dengan kebutuhan pengguna dari sekian banyak dokumen yang tersedia.


(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.

Tf-idf adalah algoritma yang efisien dan sederhana untuk pencocokan kata dalam query untuk dokumen yang relevan terhadap query tersebut. Tf-idf mengembalikan dokumen yang sangat relevan terhadap query. (Ramos, 2002)


(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.

2. Membuat aplikasi pencarian dokumen berbasis web yang mengimplementasikan metode tf-idf dan akan menampilkan pencarian dokumen dari seluruh dokumen yang ada dalam aplikasi.


(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

Melakukan analisis terhadap sistem yang berjalan saat ini, menganalisis konsep pada text mining, serta menganalisis metode atau algoritma yang akan digunakan untuk menyelesaikan permasalahan, termasuk menentukan bahasa pemrograman yang digunakan.


(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 :

1. Membuat aplikasi pencarian dokumen yang diletakkan di dalam aplikasi eBdesk Collaboration.


(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

Berisi tentang beberapa hal umum tentang maksud dan tujuan penulisan skripsi serta pembelajaran terhadap metode tf-idf sebagai acuan dalam pembuatan aplikasi pencarian dokumen, yang terdiri dari latar belakang, identifikasi masalah, batasan masalah, maksud dan tujuan, dan metode pendekatan.


(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

Menyampaikan saran dari penulis yang dianggap perlu untuk pengembangan aplikasi dalam skripsi ini dimasa yang akan datang, dan memaparkan kesimpulan dari materi skripsi yang dibahas.


(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.

PT. eBdesk adalah anggota Asia Software Alliance (SAA), merupakan koalisi dari pemenang-pemenang penghargaan perusahaan software dan jasa. SAA adalah aliansi berbasis ICT global pertama dari jenisnya yang menawarkan solusi


(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:

a. Character merupakan komponen individual, bisa huruf, angka, karakter


(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

term index melalui memecah isi file kedalam tokenizing (break into token),

melakukan filtering, stemming, tagging, dan term weighting. Langkah-langkah yang dilakukan dalam proses penentuan index adalah :


(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 is a new concept in the business world Hasil token management new concept in business world Hasil filter

management is a new concept in the business world. management

is a new concept in the business world


(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]

e. Term weighting

Merupakan proses pembobotan term yang ada di file (seberapa sering kemunculan term pada file).

was used stored

Hasil stemming

be use store

Hasil tagging

learning using text mining

Hasil filter

learn use text mine


(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 mining sometimes alternately referred to as text data mining

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 :

text mining sometimes alternately referred text data mining

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

text mine sometim altern


(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:

text mine sometim altern refer text data mine

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

Kata Frekuensi

text mine sometim altern refer data

2 2 1 1 1 1

2.4.1 Porter Stemmer

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 :

1. m, biasa disebut ukuran. Bisa diartikan lebih jauh bahwa m adalah jumlah kemunculan huruf vokal yang diikuti dengan konsonan.


(27)

Algoritma untuk menghitung m :

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

{mengembalikan nilai m}

Deklarasi m, N : integer

lastIsVowel : boolean Begin

m ← 0

N ← Arraysize(term) lastIsVowel ← false If(N < 2)

return 0 For(i = 1 to N)

if(term[i] != ‘a’ && term[i] != ‘i’ && term[i] != ‘u’ && term[i] != ‘e’ && term[i] != ‘o’)

then begin

if(lastIsVowel) then

m ← m + 1

lastIsVowel ← false end

else lastIsVowel ← true Endfor

return m End;

Contoh :

a. m akan bernilai 0 jika term yang dimasukkan kedalam fungsi adalah TR, EE, TREE, Y, BY

b. m akan bernilai 1 jika term yang dimasukkan kedalam fungsi adalah TROUBLE, OATS, TREES, IVY

c. m akan bernilai 2 jika term yang dimasukkan kedalam fungsi adalah TROUBLES, PRIVATE, OATEN, ORRERY


(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

a. AT -> ATE (conflated) b. BL -> BLE (troubled)


(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)

j. (m>0) OUSLI -> OUS (analogously) k. (m>0) IZATION -> IZE (vietnamization) l. (m>0) ATION -> ATE (predication) m. (m>0) ATOR -> ATE (operator) n. (m>0) ALISM -> AL (feudalism) o. (m>0) IVENESS -> IVE (decisiveness) p. (m>0) FULNESS -> FUL (hopefulness) q. (m>0) OUSNESS -> OUS (callousness)


(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.

Pembobotan term (term weighting) merupakan operasi yang dibutuhkan untuk membantu suatu proses information retrieval yaitu dengan menghitung kemunculan frekuensi suatu term pada sebuah file. Pembobotan term dibutuhkan dalam menentukan peringkat file. Misalkan termread” dalam file A muncul sebanyak 5 kali. Maka bobot term “read” dalam file A adalah 5.


(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

Hasil dari proses tokenizing adalah query token (berisi query token yang sudah dipotong berdasarkan token), kemudian dilakukan filtering yaitu menghilangkan kata-kata yang umum.


(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.

Aplikasi pencarian menerima query dari pengguna, kemudian melakukan perangkingan terhadap file pada koleksi berdasarkan kesesuaiannya dengan query. Hasil perangkingan yang diberikan kepada pengguna merupakan file yang menurut sistem relevan dengan query dan metode untuk perangkingan tersebut


(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

file yang bersangkutan. Semakin sedikit file yang mengandung term yang dimaksud, maka nilai idf semakin besar. Jika setiap file dalam koleksi mengandung term yang bersangkutan, maka nilai dari idf dari term tersebut adalah nol. Hal ini menunjukkan bahwa sebuah term yang muncul pada setiap file dalam


(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 :

query

q ant dog

file 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 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 ant 2 bee 2 cat 1 dog 2 eel 1 fox 1 gnu 1 hog 1

Hitung invers document frequency (idf)

term df idf

ant 2 log(3/2) = 0,176 bee 2 log(3/2) = 0,176 cat 1 log(3/1) = 0,477 dog 2 log(3/2) = 0,176 eel 1 log(3/1) = 0,477 fox 1 log(3/1) = 0,477 gnu 1 log(3/1) = 0,477 hog 1 log(3/1) = 0,477

Hitung tf-idf

term idf tff1 tff2 tff3 tf-idff1 tf-idff1 tf-idff1

ant log(3/2) = 0,176 2 1 0,334 0,176

dog log(3/2) = 0,176 4 1 0,704 0,176


(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

Pada Gambar 2.6 menunjukkan bahwa besar sudut antara Q dan D1 lebih kecil dibandingkan antara Q dan D2 sehingga dokumen 1 lebih relevan dibandingkan dokumen 2. Hal ini disebabkan semakin “dekat” atau bahkan “sama” suatu vektor dokumen dengan vektor query maka dokumen dapat dipandang semakin relevan dengan query. Pada gambar 2.9 didapatkan hasil dari nilai similarity D1 = 0.6281 dan D2 = 0,0689. Untuk D1 = 0,6281 besar sudutnya adalah 51,09 sedangkan untuk D2 = 0,0689 besar sudutnya 86,04. Sehingga semakin tinggi nilai similarity maka besar sudutnya akan semakin kecil dan akan semakin relevan.


(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

Desain berorientasi objek adalah sebuah teknik OOP yang memusatkan desain pada objek dan kelas berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan, perilaku dan interaksi dari objek. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas,


(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

Atribut menunjuk pada elemen data dari sebuah objek. Atribut menyimpan informasi tentang objek.


(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)

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras,


(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

Java dibuat dan diperkenalkan pertama kali oleh sebuah tim Sun

Microsystem yang dipimpin oleh Patrick Naughton dan James Gosling pada

tahun 1991 dengan code nama Oak. Tahun 1995 Sun mengubah nama Oak tersebut menjadi Java. Ide pertama kali kenapa java dibuat adalah karena adanya


(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.

4. Interpreter. Program Java dijalankan menggunakan interpreter yaitu 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).

10. Multithreaded. Java mempunyai kemampuan untuk membuat suatu

program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.


(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

13. Struktur Tabel. Memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan Oracle atau PostgreSQL. (MySQL, 2000)


(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

Pada modul aplikasi Profile, pengguna dapat melakukan beberapa fungsionalitas seperti mengganti password, mengganti atau mengupload


(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

Pada modul forum, pengguna bisa saling bertukar informasi, berdiskusi tentang suatu hal dan memberikan komentar terhadap suatu topik yang ada.


(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» «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

- id: String - date: Date - name: String - pureName: String - ext: String

- documentId: Document - size: int

+ getId() : String + setId(id) : void

Document

- id: String - authorId: String - 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

- id: String - address: String - displayname: String - email: String - password: String - photo: String - username: String - website: String - fname: String - lname: String - lasLoginDate: date - phoneNumber: String - status: int

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

1 0..*

0..* 1


(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

output dari perangkat lunak ini adalah file yang sesuai dengan query yang


(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

stoplist, stemming dan tagging, query yang telah mengalami proses parse query,


(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

Diagram use case menggambarkan proses-proses apa saja yang dapat ditangani oleh aplikasi peran actor-actor yang terlibat di dalamnya.


(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 kesalahan


(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 menggunakan metode tf-idf supaya


(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 : Download File 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 diinginkan.


(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

DocumentService Tokenizer

Form Upload DocumentPortlet

Stopwords

Stemmer Extractor Tagger FileService

loop

loop alt

[isDictionary == false]

alt

[file.ext = doc || file.ext = txt] :input dokumen

processAction()

documentSave(Document doc)

fileSave(File file)

Extractor(File file)

text = getContent()

listT erm = tokenize(String text)

listTermStoped = stopWord(listTerm) listTermStemmed = stemming(listTermStopped)

isDictionary = isDictionaryWord(String token)

stemmed = stem(token)

listTermTagged = tagging(listT ermStemmed)

term_freq = termWeighting(listTermT agged) postSave(Posting post)


(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.

Setelah database menghasilkan query, lalu proses selanjutnya adalah dengan memproses hasil query tersebut melalui metode tf-idf. Hasil dari algoritma ini berupa file yang telah di-ranking.


(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

file-file yang akan diunggah. Kemudian sistem memproses data tersebut dengan

melakukan pengecekan validasi, jika validasi tidak lolos maka pengguna wajib melengkapi data yang kurang. Jika validasi lolos, maka sistem memproses dokumen tersebut dengan menyimpan data dokumen dan file ke basis data. Jika file berekstensi *.txt atau *.doc maka dilakukan proses selanjutnya yaitu


(69)

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

Gambar 3.10 Diagram aktivitas pencarian

Gambar 3.10 menjelaskan mengenai diagram aktivitas pencarian file, dimana aktivitas awalnya adalah pengguna memasukkan kata kunci (query) pencarian. Kemudian sistem memproses kata kunci tersebut untuk dilakukan tokenisasi, stoplist, stemmer. Setelah dibentuk kata-kata dasar dari kata kunci, maka dilakukan proses pencarian file ke dalam basis data. Jika ditemukan hasil


(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

Diagram Kelas (Class diagram) menggambarkan kelas-kelas yang menjadi inti dari program yang akan dibuat. Kelas adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek.


(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

- id: String - date: Date - name: String - pureName: String - ext: String - documentId: Document - size: int

+ getId() : String + setId(id) : void

Document

- id: String - authorId: String - 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 - password: String - photo: String - username: String - website: String - fname: String - lname: 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

1..* 1..* 1..* 1..* 0..* 1..* 0..* 1..* 0..* 1..* 0..* 1..* 0..* 1 1 0..* 1..* 0..* 0..* 1 0..* 1..* 1..* 0..* 1..* 0..* 1..* 0..* 1..* 0..* 1..* 1..* 1 0..*


(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

Dari diagram kelas pada Gambar 3.11 bisa ditentukan skema relasi database yang akan dibuat. Bisa terlihat pada Gambar 3.12 bahwa ada 5 tabel yang nantinya akan digunakan pada aplikasi pencarian dokumen ini, antara lain : user, document, file, posting, dan dictionary.


(1)

98

4.4.2 Kesimpulan Pengujian Beta

Berdasarkan hasil prosentase diatas yang didapatkan dari pengujian beta terhadap pengguna. Maka dapat disimpulkan bahwa penerapan aplikasi pencarian dokumen ini sudah baik karena bisa memberikan kemudahan dalam proses pencarian dokumen.


(2)

99

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diperoleh dari skripsi ini yaitu aplikasi ini dapat membantu pengguna untuk dapat melakukan proses pencarian dokumen. Dimana proses pencarian tersebut menggunakan metode tf-idf. Metode tf-idf merupakan proses menghitung frekuensi kemunculan term dalam sebuah file, dibandingkan dengan statistik kemunculan term pada keseluruhan koleksi file.

Adapun fitur-fitur dari aplikasi yang dibuat diantaranya bisa bisa melakukan proses pencarian file, dan perangkingan untuk memperoleh file yang relevan sesuai dengan kebutuhan pengguna. Selain itu aplikasi ini bisa melakukan

upload dokumen sekaligus melakukan proses penentuan index terhadap file-file

yang diupload. Dimana hasil penentuan indeks adalah sebagai sumber data untuk pencarian file.

5.2 Saran

Saran-saran yang dapat diuraikan untuk keperluan analisis selanjutnya adalah :

a. Pada skripsi ini pengujian dilakukan dengan menggunakan file dokumen dengan ekstensi *.txt dan *.doc disarankan untuk pengujian berikutnya file

dokumen yang digunakan berektensi lain seperti *.pdf atau *.xls.

b. Pada penelitian selanjutnya disarankan pengujian dilakukan dengan menggunakan teks berbahasa Indonesia.


(3)

100

DAFTAR PUSTAKA

Darwiyanti, Sri., Romi Satria Wahono. 2003. Pengantar Unified Modeling Language (UML). Jakarta: IlmuKomputer.com.

Firdaus Yanuar. 2008. Text Processing Method.

http://www.ittelkom.ac.id/staf/yanuar (diakses pada tanggal 9 Maret 2011). JEDI. 2007. JENI: Pengenalan Pemrograman 2. Jakarta: Jardiknas.

Khodra, Masayu Leylia. 2003. Text Mining Kategorisasi Teks Naïve Bayes.

Bandung: IF-ITB

Manning, C.D, Raghavan, P. dan Schutze, D. 2008. An Introduction to Information Retrieval. England: Cambridge University Press.

Pembobotan TF.IDF. 2009. http://temukembaliinformasi.wordpress.com (diakses pada tanggal 23 Maret 2011).

Sriyasa, Wayan. 2008. Rekontruksi Inverted Index dan Implementasi Stopwords. http://www.scribd.com/doc/18745136/Konstruksi-Inverted-Index (diakses pada tanggal 12 Maret 2011).

Harlian, Milkha. 2006. Text Mining.

http://lecturer.eepis-its.edu/~iwanarif/kuliah/dm/6Text%20Mining.pdf (diakses pada tanggal 12 November 2011).

Ramos, Juan. 2002. Using TF-IDF to Determine Word Relevance in Document Queries.

http://www.cs.rutgers.edu/~mlittman/courses/ml03/iCML03/papers/ramos.p df (diakses pada 28 Februari 2012).

Tim Library MySQL. 2000. MySQL Reference Manual.


(4)

. . . . . . . . . .

CURRICULUM VITAE

DATA PRIBADI

Nama Nugraha I man Santosa

Tempat /

Tanggal Lahir Garut / 2 September 1984

Alamat Jl Kubang Sari No. 21 Bandung

E- mail nugraha.iman@gmail.com

No. Telepon 085659611122

Alamat Rumah Jl Pasundan Blk No 64 Garut

Jenis Kelamin Laki-laki Status Belum

Menikah Kebangsaan I ndonesia

Hobi Olahraga, Membaca, Musik Agama I slam

PEN DI DI KAN FORM AL

Tingkat Nama Sekolah /

Perguruan Tinggi Periode Jurusan

SD SD NEGERI KI ANSANTANG GARUT 1991-1997 -

SMP SMP NEGERI 2 GARUT 1997-2000 -

SMU SMU NEGERI 1 TAROGONG GARUT 2001-2003 I PA

D3 POLI TEKNI K NEGERI BANDUNG 2003-2006 Teknik Komputer


(5)

. . . . . . . . . . KEMAMPUAN

Kemampuan Deskripsi

Sistem Operasi Windows 9x/ 2000/ XP, Linux

Basis Data MySQL, PostgreSQL, SQL Server

Bahasa Pemrograman PHP, Java

Development Tools Power Designer, Enterprise Architect

Teknologi Lain Microsoft Office (Word, Excel, Power Point, Visio), HTML,

Javascript, Ajax (Extjs), CSS, Adobe Photoshop

KEMAMPUAN BAHASA I N GGRI S

Conversation Baik Reading Baik

Writing Baik Listening Baik

PEN GALAM AN KERJA

Perusahaan PT. AWAKAMI

Posisi Programmer PHP

Periode 9 November 2006 – 9 November 2007

Pekerjaan

· Sistem Informasi Puskesmas (SIPUS) Kota Cirebon.

· Sistem Informasi Retribusi Daerah (SIRDA) Kota Banjar.

· Web Site Jaringan Usaha Koperasi dan UKM Jawa Barat (

www.juk-ukm-jabar.com).

· Sistem Informasi Kuliah Kerja Lapangan Digital.

· Sistem Informasi Manajemen Beban Feeder (BebanFeeder).

· Web Site Asosiasi Politeknik Seluruh Indonesias (ASPI).

· Sistem Informasi Akademik dan Rencana Studi (SMART).


(6)

. . . . . . . . . .

Perusahaan PT. eBdesk Technology

Posisi Programmer PHP

Periode 19 Desember 2007 – sekarang

Pekerjaan

· Sistem Informasi Terpadu Badan Pengawas Pasar Modal(Simpadu

Bapepam).