i
SISTEM PEMEROLEHAN INFORMASI DATA GAMBAR
PADA DOKUMEN FOTOGRAFI
MENGGUNAKAN STRUKTUR DATA INVERTED INDEX
DAN PEMBOBOTAN TF-IDF
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Informatika(S.Kom)
Program Studi Teknik Informatika Universitas Sanata Dharma
Oleh:
A
DRIAN
A
DENDENDRATA
NIM : 09 5314 054
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
ii
INFORMATION RETRIEVAL OF IMAGE ON
PHOTOGRAPHY DOCUMENTS
USING INVERTED INDEX DATA STRUCTURE AND
WEIGHTING TF-IDF
Thesis:
Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree
In Informatics Engineering Universitas Sanata Dharma
By:
A
DRIAN
A
DENDENDRATA
NIM : 09 5314 054
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
vi
HALAMAN MOTO
“About the money,
vii
HALAMAN PERSEMBAHAN
viii ABSTRAKSI
Ketersediaan dokumen fotografi yang terus berkembang dan meningkat menyebabkan sulitnya menemukan dokumen fotografi yang sesuai. Berdasarkan hal tersebut maka dibutuhkan suatu sistem Pemerolehan Informasi. Pada sistem Pemerolehan Informasi, hasil pencarian dokumen diurutkan berdasarkan bobot dengan menggunakan algoritma tertentu, algoritma yang digunakan adalah pembobotan tf-idf, sehingga adanya sistem tersebut dapat melakukan pencarian dokumen dengan cepat. Umumnya sistem Pemerolehan Informasi mencari dokumen berdasarkan data teks pada setiap dokumen maka penulis ingin meneliti apakah data gambar pada dokumen fotografi dapat membantu pengguna dalam menentukan dokumen fotografi yang sesuai.
Penelitian ini menggunakan beberapa tahap metode dalam pengembangannya, tahap-tahap tersebut adalah pengumpulan contoh data, pembuatan sistem, pengumpulan data dan evaluasi. Pengumpulan contoh data dokumen fotografi digunakan agar mempercepat proses pengembangan sistem. Evaluasi penelitian ini menggunakan recall dan precision yang dibantu oleh responden.
ix ABSTRACT
Now availability of photographic document are constantly evolving and increasing cause difficulty finding appropriate photographic document. Based on this case, we need a Information Retrieval system. On Information Retrieval system document search results sorted by weight using a particular algorithm, the algorithm used is the tf-idf weighting. So with such a system can create documents quickly search. Commonly, On Information Retrieval system search for documents based on data text owned by each document. The authors wanted to examine whether the image data on photographic document may help users to determine the photographic document that fit their needs. This research measured performance based on the value of the average precision of the results of sorting system based on text data and image data.
In this research, the development of several stages, there are, collecting examples of data, systems development, data collection and evaluation. Where sample data of photographic document is used in order to speed up the process of system development. This evaluation on this research using recall and precision are assisted by respondents.
xi
KATA PENGANTAR
Puji dan Syukur saya panjatkan kepada Tuhan Yesus Kristus YME, atas berkat dan kuasa-Nya yang diberikan sehingga saya dapat menyelesaikan Tugas Akhir ini. Tugas Akhir ini adalah salah syarat memperolah gelar Sarjana Teknik Informatika (S.Kom) Program Studi Teknik Informatika, Universitas Sanata Dharma.
Dalam penyelesaian skripsi ini ada begitu banyak pihak atau pribadi yang selalu membantu saya sampai dengan akhir pengerjaan. Oleh kerena itu saya ingin mengucapkan rasa terima kasih atas bantuan yang telah diberikan.
1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
2. Ibu Ridowati Gunawan, S.kom., M.T. selaku ketua jurusan Teknik Informatika Universitas Sanata Dharma.
3. Bapak JB. Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing skripsi. Beliau dengan sabar selalu membimbing dan memberikan banyak kontribusi dalam pengerjaan.
4. Ibu Sri Hartati Wijono, S.Si., M.Kom. dan Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T.sebagai dosen penguji.
5. Keluarga, FA Adihendro (Ayah), Sri Nurwidayatun (Ibu) dan Denis Darujati (Kakak) yang terus memberi dukungan moral.
xiii
DAFTAR ISI
HALAMAN JUDUL INDONESIA ... i
HALAMAN JUDUL INGGRIS ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
PERNYATAAN KEASLIAN ILMIAH ... v
HALAMAN MOTO ... vi
HALAMAN PERSEMBAHAN ... vii
ABSTRAKSI ... viii
ABSTRACT ... ix
PUBLIKASI KARYA ILMIAH UNTUK KEPERLUAN AKADEMIS ... x
KATA PENGANTAR ... xi
1.5 Metodelogi Penelitian ... 3
1.6 Sistematika Penulisan ... 5
BAB 2 ... 7
LANDASAN TEORI ... 7
2.1 Pemerolehan Informasi ... 6
2.2 Teks Operasi ... 9
2.2.1 Pemisahan Kata ( Tokenization ) ... 9
2.2.2 Penghapusan Kata Umum (Stop Words) ... 10
2.2.3 Stemming ... 11
xiv
2.3.1 Inverted Index... 17
2.3.2 Tabel Hash (HashTable) ... 18
2.3.3 Kelas ArrayList ... 18
2.4 Searching ... 20
2.6.1 Pembobotan tf-idf ... 20
BAB 3 ... 23
ANALISIS DAN PERANCANGAN ... 23
3.1 Kasus Diskripsi ... 23
3.2 Cara Penyelesaian Masalah ... 23
3.3 Perancangan Peta Sistem ... 23
3.4 Model Use Case ... 25
3.4.1 Skenario Login ... 27
3.4.2 Skenario Menambah Dokumen ... 27
3.4.3 Skenario Mencari Dokumen ... 28
3.4.4 Skenario Mengunduh Dokumen ... 29
3.4.5 Skenario Logout ... 29
3.5 Perancangan Diagram Aktifitas ... 30
3.5.1 Diagram Aktifitas Login ... 30
3.5.2 Diagram Aktifitas Menambah Dokumen ... 31
3.5.3 Diagram Aktifitas Mencari Dokumen ... 32
3.5.4 Diagram Aktifitas Mengunduh Dokumen ... 33
3.5.5 Diagram Aktifitas Logout ... 34
3.6 Perancangan Diagram Kolaborasi ... 35
3.6.1 Diagram Kolaborasi Login ... 35
xv
3.6.3 Diagram Kolaborasi Mencari Dokumen ... 37
3.6.4 Diagram Kolaborasi Mengunduh Dokumen ... 38
3.6.4 Diagram Kolaborasi Logout ... 38
3.7 Perancangan Diagram Sekuensial ... 39
3.7.1 Diagram Sekuensial Login ... 39
3.7.2 Diagram Sekuensial Menambah Dokumen ... 40
3.7.3 Diagram Sekuensial Mencari Dokumen ... 41
3.7.4 Diagram Sekuensial Mengunduh Dokumen ... 42
3.7.4 Diagram Sekuensial Logout ... 43
3.8 Perancangan Basis Data ... 43
3.8.1 Entity Rationalship Diagram ... 44
3.8.2 Rational Model Design Database ... 44
3.8.3 Physical Design Database ... 45
3.9 Perancangan Inverted Index ... 48
3.10 Perancangan Antar Muka ... 49
3.10.1 Perancangan Antar Muka Halaman Pencarian ... 50
3.10.2 Perancangan Antar Muka Halaman Upload Dokumen ... 51
3.11 Peracangan Diagram Kelas... 51
3.11.1 Aplikasi Searching ... 51
3.11.2 Aplikasi Indexing ... 54
BAB 4 ... 58
IMPLEMENTASI ... 58
4.1 Implemtasi sql pada Basis Data ... 58
4.2 Implemtasi Parsing Data Teks dan data Gambar ... 59
xvi
4.3.1 Pemisahan Kata ... 63
4.3.2 Penghapusan Kata Umum ... 64
4.3.3 Stemming ... 64
4.4 Implementasi Indexing ... 68
4.5 Implementasi Inverted Index ... 69
4.6 Implementasi Searching ... 70
4.6.1 Persamaan AND ... 71
4.7 Implemtasi Antar Muka ... 72
4.7.1 Halaman Login ... 72
4.7.2 Halaman Pencarian... 72
4.7.3 Halaman Unggah ... 74
BAB 5 ... 75
ANALISA HASIL ... 75
5.1 Analisa Hasil Sistem ... 75
5.1.1 Analisa Uji Coba Pengguna ... 75
5.2 Kelebihan dan Kekurangan Sistem ... 99
5.2.1 Kelebihan Sistem ... 99
5.2.2 Kelemahan Sistem ... 100
BAB 6 ... 101
KESIMPULAN DAN SARAN ... 101
6.1 Kesimpulan ... 101
6.2 Saran ... 101
DAFTAR PUSTAKA ... 103
xvii
DAFTAR GAMBAR
Gambar 2.1 Proses Menuju Pengindeksan (Baeza, 1999) ... 8
Gambar 2.2 Konsep Sistem Pemerolehan Informasi (Beaza, 1999) ... 9
Gambar 2.3 Proses Pemotongan Kata ... 10
Gambar 2.4 Proses Penghapusan Kata Umum ... 10
Gambar 2.5 Proses Pengindeksan ... 17
Gambar 2.6 Inverted Indexx ... 18
Gambar 3.1 Peta Sistem Keseluruhan ... 25
Gambar 3.2 Use Case Diagram ... 26
Gambar 3.3 Diagram Aktifitas Login ... 30
Gambar 3.4 Diagram Menambah Dokumen... 31
Gambar 3.5 Diagram Aktifitas Mencari Dokumen ... 32
Gambar 3.6 Diagram Aktifitas Unduh Dokumen ... 33
Gambar 3.7 Diagram Aktifitas Logout ... 34
Gambar 3.8 Diagram Kolaborasi Login ... 35
Gambar 3.8 Diagram Kolaborasi Menambah Dokumen ... 36
Gambar 3.10 Diagram Kolaborasi Mencari Dokumen ... 37
Gambar 3.11 Diagram Kolaborasi Mengunduh Dokumen ... 38
Gambar 3.12 Diagram Kolaborasi Logout ... 39
Gambar 3.13 Diagram Skuensial Login ... 39
Gambar 3.14 Diagram Skuensial Menambah Dokumen ... 40
Gambar 3.15 Diagram Skuensial Mencari Dokumen ... 41
Gambar 3.16 Diagram Skuensial Mengunduh Dokumen ... 42
Gambar 3.17 Diagram Skuensial Logout ... 43
Gambar 3.18 Entity Rationalship Diagram ... 44
Gambar 3.19 RationalModelDesignDatabase ... 45
Gambar 3.20 Perancangan struktur data Inverted Index dalam bentuk HashTable ... 49
Gambar 3.21 Halaman Pencarian. Sebelum dilakukan pencarian ... 50
xviii
Gambar 3.22 Halaman Menambah Dokumen ... 51
Gambar 3.25 Diagram UML: Aplikasi - Searching: IR ... 52
Gambar 3.26 Diagram UML: Aplikasi - Searching: database ... 52
Gambar 3.27 Diagram UML: Aplikasi - Searching: entitites ... 53
Gambar 3.28 Diagram UML: Aplikasi - Searching: textoperation ... 53
Gambar 3.29 Diagram UML: Aplikasi - Searching: tools ... 53
Gambar 3.30 Diagram UML: Aplikasi - Indexing: IR ... 54
Gambar 3.31 Diagram UML: Aplikasi - Indexing: database... 54
Gambar 3.32 Diagram UML: Aplikasi - Indexing: entities ... 55
Gambar 3.33 Diagram UML: Aplikasi - Indexing: textoperation ... 55
Gambar 3.34 Diagram UML: Aplikasi - Indexing: tools... 56
Gambar 3.35 Diagram UML: Aplikasi - Indexing: thread ... 56
Gambar 4.1 Rangkaian Proses Text Operations ... 61
Gambar 4.2 GUI: Halaman Login ... 72
Gambar 4.3 GUI: Halaman Pencarian 1 ... 73
Gambar 4.4 GUI: Halaman Pencarian 2 ... 73
Gambar 4.4 GUI: Halaman Unggah ... 74
Gambar 5.1 Hasil Pencarian: Responden Pertama ... 76
Gambar 5.2 Interpolasi: Responden Pertama ... 79
Gambar 5.3 Hasil Pencarian: Responden Kedua ... 81
Gambar 5.4 Interpolasi: Responden Kedua ... 84
Gambar 5.5 Hasil Pencarian: Responden Ketiga... 86
Gambar 5.6 Interpolasi: Responden Ketiga ... 89
Gambar 5.7 Interpolasi: Responden Ketiga ... 91
Gambar 5.8 Interpolasi: Responden Keempat ... 94
Gambar 5.9 Hasil Pencarian: Responden Kelima ... 95
xix
DAFTAR TABEL
Tabel 2.1 Kombinasi awalan akhiran yang tidak diijinkan ... 13
Tabel 2.2 Cara menemukan tipe awalan untuk kata diawali de “te-“ ... 14
Tabel 2.3 Jenis awalan berdasarkan tipe awalannya ... 14
Tabel 3.1 Skenario Use Case Login ... 27
Tabel 3.2 Skenario Use Case Menambah Dokumen ... 28
Tabel 3.3 Skenario Use Case Mencari Dokumen ... 28
Tabel 3.4 Skenario Use Case Mengunduh Dokumen ... 29
Tabel 3.5 Skenario Use Case Logout ... 29
Tabel 3.6 Tabel Documents ... 45
Tabel 3.7 Tabel Images ... 46
Table 3.8 Tabel Terms ... 46
Table 3.9 Tabel Indeks ... 47
Table 3.10 Tabel Dictionary ... 48
Table 3.11 Tabel Stopword ... 48
Tabel 5.1 PrecisionTable:Responden Pertama... 76
Tabel 5.2a RecallandPrecision Pengurutan Sistem: Responden Pertama ... 77
Tabel 5.2a RecallandPrecision Pengurutan Menggunakan Data Gambar oleh Responden: Responden Pertama ... 77
Tabel 5.3a Sebelas Titik Interpolasi Pengurutan Sistem: Responden Pertama .... 78
Tabel 5.3b Sebelas Titik Interpolasi Pengurutan Menggunakan Data Gambar oleh Responden: Responden Pertama ... 78
Tabel 5.4 PrecisionTable Responden Kedua ... 82
Tabel 5.5a RecallandPrecision Pengurutan Sistem: Responden Kedua ... 82
Tabel 5.5b RecallandPrecision Pengurutan Menggunakan Data Gambar oleh Responden: Responden Kedua ... 83
Tabel 5.6a Sebelas Titik Interpolasi Pengurutan Sistem: Responden Kedua ... 83
Tabel 5.6b Sebelas Titik Interpolasi Pengurutan Menggunakan Data Gambar oleh Responden: Responden Kedua ... 84
xx
Tabel 5.8a RecallandPrecision Pengurutan Sistem: Responden Ketiga ... 87 Tabel 5.8b RecallandPrecision Pengurutan Menggunakan Data Gambar
xxi
DAFTAR SOURCE CODE
Code 4.1 Implementasi Table untuk Dokumen ... 59
Code 4.2. Implementasi Parsing Data Teks dan Data Gambar ... 60
Code 4.3 Implementasi table STOPWORDS dan DICTIONARY ... 60
Code 4.4 Text Operations ... 61
Code 4.5 Implementasi Teks Operations, Pemisahan Kata ... 63
Code 4.6 Implementasi Teks Operations, Penghapusan Kata Umum ... 64
Code 4.7 Implementasi Teks Operations, Stemming ... 65
Code 4.8 Implementasi Indexing ... 68
Code 4.9 Implementasi InvertedIndex ... 69
Code 4.10 Implementasi Searching ... 70
1
BAB 1
PENDAHULUAN
Bagian ini akan menjelaskan tentang permasalahan yang sedang terjadi dan harapan yang diperoleh dari hasil penelitian.
1.1 Latar Belakang
Fotografi dalam bidang informasi dewasa ini sudah sangat berkembang seturut dengan meningkatnya jumlah pencinta fotografi yang ingin belajar melalui media dokumen digital. Didukungnya dengan sistem yang sudah ada dokumen fotografi sangat mudah untuk ditemukan atau diperoleh. Setiap tahun perubahan dan penambahan informasi mengenai fotografi terus berkembang. Hal tersebut mengakibatkan ketersediaan dokumen fotografi menjadi sangat banyak sehingga sulit untuk mencari dokumen yang sesuai dengan kebutuhan yang diinginkan. Beberapa mesin pencari yang sudah dikembangkan sebelumnya belum khusus membahas tentang topik fotografi sehingga memungkinkan untuk mengembalikan informasi yang tidak sesuai dengan fotografi.
Dokumen fotografi umumnya memiliki dua elemen, yaitu data gambar dan data teks. Data teks adalah presentasi isi dokumen dalam bentuk teks pada suatu dokumen. Sementara itu, data gambar umumnya memberikan ilustrasi atau pencitraan kembali yang sesuai dengan keterangan pada data teks. Namun, terpadat beberapa dokumen yang mungkin tidak menggunakan data gambar sebagai ilustrasi pada data teks.
informasi (Hasibuan, 2001). Pemerolehan Informasi (Information
Retrieval) adalah sistem yang bertujuan untuk menemukan dokumen dengan
cepat. Dalam Pemerolehan Informasi hasil pencarian dokumen diurutkan berdasarkan besar bobot yang dimiliki setiap dokumen. Sedangkan teknik pembobotannya adalah teknik pembobotan berdasarkan frekuensi dan teknik pembobotan menurut rumus Savoy.
Umumnya sistem Pemerolehan Informasi hanya menggunakan data teks untuk mencari dokumen. Untuk dokumen fotografi memiliki data teks dan beberapa data gambar maka penulis ingin meneliti apakah data gambar pada sistem Pemerolehan Informasi dengan dokumen fotografi juga dapat membantu pengguna dalam memilih dokumen yang sesuai dengan kebutuhannya. Diharapkan dengan adanya penelitian ini dapat membantu fotografer pemula untuk menentukan dokumen yang sesuai dengan kebutuhannya.
1.2 Rumusan Masalah
Sejauh mana data gambar pada sistem Pemerolehan Informasi dengan dokumen fotografi dapat membantu pengguna dalam memilih dokumen yang sesuai dengan kebutuhannya.
1.3 Tujuan
1.4 Batasan Masalah
Batasan masalah penelitian ini adalah:
1. Sistem tidak melakukan crawling pada file dokumen. 2. Algoritma pembobotan menggunakan pembobotan tf-idf.
3. Relevansi dihitung menggunakan recall and precision dan rata-rata precision. 4. Sistem Pemerolehan Informasi ini hanya digunakan untuk mencari dokumen
fotografi berbahasa Indonesia. 1.5 Metodologi Penelitian
Metode yang digunakan pada penelitian ini adalah sebagai berikut; 1. Metode Literatur
Mengumpul dan mempelajari berbagai literatur atau penelitian sebelumnya yang relevan dengan Pemerolehan Informasi dan algoritma tf-idf. Sebagai sumber data akan dikumpulkan dokumen fotografi yang juga mengandung data gambar dan teks pada dokumen tersebut.
2. Metode Pengembangan Sistem
a. Requirements Analysis and Definition: Layanan sistem, batasan dan tujuan untuk menetapkan hasil konsultasi dari pengguna sistem. Mereka kemudian didefinisikan secara rinci dan sebagai kebutuhan sistem.
b. System and Software Design: Desain proses yang menjelaskan suatu
kebutuhan baik perangkat keras ataupun perangkat lunak, sebagai pembentukan arsitektur sistem secara keseluruhan.
c. Implementation and Unit Testing: Perangkat lunak dirancang lebih
matang sebagai perancangan beberapa program atau unit program. Unit
testing mencakup verifikasi di mana setiap unitnya memenuhi dengan
kebutuhannya.
d. Integration and System Testing: Unit yang berdiri sendiri atau program
yang saling berintegrasi diujikan sebagai kelengkapan sistem untuk meyakinkan kebutuhan dari perangkat lunak sudah sesuai. Setelah pengujian, sistem perangkat lunak dikirimkan kepada pengguna.
e. Operation and Maintenance: Secara umum(meskipun tidak selalu), fase
1.6 Sistematika Penulisan BAB I PENDAHULUAN
Memberikan gambaran secara umum tentang isi penelitian yang meliputi: Latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat, metode penelitian dan sistematika penulisan. BAB II LANDASAN TEORI
Berisi konsep dasar sistem temu kembali informasi (information
retrieval system), bagian- bagian dari sistem temu kembali
informasi, teknik- teknik temu- kembali informasi, dan evaluasi sistem temu kembali informasi.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Berisi analisis kebutuhan, metode pengumpulan data, diagram arus data,kamus data, E-R diagram sistem, perancangan proses, perancangan basis data, perancangan modul, perancangan tampilan masukan dan keluaran untuk pengguna, dan perancangan teknologi.
BAB IV IMPLEMENTASI
Berisi penjelasan dan fungsi program bantu pencarian sebagai alat bantu pencarian data lirik dan lagu.
BAB V ANALISIS HASIL
Berisi evaluasi program sistem temu- kembali informasi, kelebihan dan kekurangan program.
Berisi kesimpulan dan saran dari pembuatan program mesin pencari dokumen fotografi
7 BAB 2
LANDASAN TEORI
Bagian ini menjelaskan mengenai studi literatur yang berhubungan guna menunjang dalam penelitian.
2.1 Pemerolehan Informasi
Pemerolehan Informasi (Information Retrieval) adalah menemukan bahan (umumnya dokumen) dari sesuatu tidak terstruktur (biasanya teks) yang memenuhi kebutuhan informasi dari kumpulan berskala besar (biasanya disimpan pada komputer) (Manning, 2009). Beberapa keuntungan yang didapatkan menggunakan Pemerolehan Informasi adalah sebagai berikut.
1. Untuk memproses kumpulan dokumen berskala besar.
2. Mengizinkan untuk melakukan pencocokan yang lebih fleksibel. 3. Mengizinkan pengembalian secara terurut.
Gambar 2.1 Proses Menuju Pengindeksan (Baeza, 1999)
Gambar 2.2 Konsep Sistem Pemerolehan Informasi (Baeza, 1999)
2.2 Teks Operasi
Teks Operasi, Gambar 2.1, adalah pengurangan kompleksitas dari representasi dokumen dan mengizinkan memproses data teks menuju pengindeksan istilah (Baeza et al, 1999). Proses tersebut dapat dilakukan dengan cara pemisahan kata, penghapusan istilah umum dan pencarian akar kata.
2.2.1 Pemisahan Kata ( Tokenization )
Input Friend, Romans, Countrymen, Lend me your ears Output Friends Romans Country Lend me your ears
Gambar 2.3 Proses Pemotongan Kata
2.2.2 Penghapusan Kata Umum (Stop Words)
Beberapa kata yang umum untuk digunakan akan mengakibatkan membuat suatu nilai menjadi kecil dalam membantu memilih dokumen yang sesuai dengan kebutuhan pengguna. Kata yang umum tersebut adalah stopwords. Terdapat beberapa cara untuk menentukan kata umum tersebut adalah stopwords atau bukan, Salah satunya adalah dengan cara mengurutkan collection frequency
(jumlah setiap kemunculan kata dari koleksi dokumen) dan kemudian mengambil frekuensi yang tertinggi untuk mengkategorikan kata stopwords. Atau sering kali digunakan cara dengan menyaring kata/ stopwords berdasarkan daftar yang sudah ditentukan sebelumnya, kemudian stopwords akan dihapus selama dilakukannya pengindeksan (Manning et al. 2009).
Dalam bahasa Inggris, contoh kata umum yang digunakan adalah am, is, are, be, to, this, that, dan lain lain. Namun dalam bahasa Indonesia sendiri juga mengenal kata umum seperti yang, dan, ini, itu. Berikut adalah contoh penghapusan kata umum dalam bahasa indonesia, Gambar 2.4.
Input Sesuai dengan perjanjian ini saya umumkan
Output Sesuai perjanjian saya umumkan
2.2.3 Stemming
Stemming atau dalam konteks Pemerolehan Informasi adalah salah satu proses
yang terdapat dalam Teks Operasi. Stemming memiliki fungsi untuk mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata akarnya
(root word) dengan menggunakan aturan-aturan tertentu. Sebagai contoh, kata
bersama, kebersamaan, menyamai, akan distem ke root wordnya yaitu “sama”.
Proses stemming pada teks berBahasa Indonesia berbeda dengan stemming pada teks berbahasa Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan pada teks berbahasa Indonesia, selain sufiks, prefiks, dan konfiks juga dihilangkan. Pada umumnya kata dasar pada bahasa Indonesia terdiri dari kombinasi: Prefiks 1 + Prefiks 2 + Kata asar +
Sufiks 3 + Sufiks 2 + Sufiks 1 2.
3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a
a. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “ -k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b.
b. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4.
4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b.
a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b. b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root
word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti.
5. Melakukan Recoding.
6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.
3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2.2 Hapus awalan jika
ditemukan.
Tabel 2.1 Kombinasi awalan akhiran yang tidak diijinkan
Awalan Akhiran yang tidak diijinkan
be- -i
di- -an
ke- -i, -kan
me- -an
Tabel 2.2 Cara menemukan tipe awalan untuk kata diawali de “te-”
Following Characters Tipe
Awalan
set 1 set 2 set 3 set 4
“-r-“ “-r-“ - - none
“-r-“ vowel - - ter-luluh
“-r-“ not(vowelor “-r-”) “-er-“ vowel ter
“-r-“ not(vowelor “-r-”) “-er-“ notvowel ter
“-r-“ not(vowelor “-r-”) not“-er-“ - ter
not(vowelor “-r-”) “-er-“ vowel - none
not(vowelor “-r-”) “-er-“ notvowel - te
Tabel 2.3 Jenis awalan berdasarkan tipe awalannya
Tipe awalan Awalan yang harus dihapus
di- di-
ke- ke-
se- se-
te- te-
ter- ter-
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan-aturan di bawah ini:
1. Aturan untuk reduplikasi.
Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku -buku” root word-nya adalah “buku”.
Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang sama yaitu “balas”, maka root word
“berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memiliki root word yang berbeda, maka root word -nya adalah “bolak-balik”.
2. Tambahan bentuk awalan dan akhiran serta aturannya.
Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”.
2.3 Pengindeksan (Indexing)
Pengindeksan adalah proses penyimpanan kembali dokumen secara urut dengan aturan tertentu. Proses penyimpanan tersebut ditujukan guna mempercepat proses pencarian suatu dokumen yang sesuai dengan kebutuhan pengguna. Sebagai cara untuk dapatkan keuntungan dalam percepatan dalam melakukan proses pengindeksan, dapat membangun indeks terlebih dahulu. Untuk langkah proses tersebut adalah sebagai berikut (Manning et al. 2009) :
1. Kumpulkan dokumen terlebih dahulu yang akan di indeks.
2. Lakukan proses pemisahan kata guna mendapatkan daftar token.
3. Dapat dilakukan aturan tertentu untuk mendapat daftar token yang sudah dinormalisasikan sebelum dilakukan pengindeksan.
4. Indeks dokumen untuk masing-masing istilah yang dimilikinya dengan membuat InvertedIndex.
yang muncul beberapa kali dan menuliskan kembali jumlah kemunculan istilah tersebut dengan menunjuk kumpulan dokumen yang memiliki istilah tersebut.
Gambar 2.5 Proses Pengindeksan
2.3.1 Inverted Index
Salah satu cara dalam melakukan pengindeksan adalah dengan cara Inverted
Index. Indeks yang sebenarnya adalah pemetaan kembali istilah/ terms pada suatu
dapat dilihat pada Gambar 2.5. Pada Gambar 2.6 dapat dilihat bahwa konsep
InvertedIndex memiliki dua bagian, bagian pertama adalah Dictionary dan bagian
kedua adalah Posting. Dictionary adalah istilah yang kemudian menunjuk pada
Posting. Posting adalah kumpulan dokumen dengan suatu istilah terdapat.
Gambar 2.6 Inverted Index
2.3.2 Tabel Hash (HashTable)
Tabel Hash adalah struktur data yang sangat cepat dalam melakukan penyisipan dan pencarian. Tidak tergantung berapa data yang terdapat, penyisipan dan pencarian (dan terkadang penghapusan) dapat memakan waktu yang hampir sama yaitu O(1) dalam notasi O (Sommerville, 2011).
2.3.3 Kelas ArrayList
Objek ArrayList dapat juga dianggap sebagai perkembangan dari larik(array) satu dimensi. Sama seperti larik, objek ArrayList juga mendukung untuk melakukan
yang konstan. Tetapi tidak seperti larik yang ukuran dari objek ArrayList dapat secara otomatis dapat dikelola saat program sedang berjalan (Sommerville et al, 2009).
Di sini akan menjelaskan sifat pada ArrayList itu sendiri:
1. Posisi relatif pada setiap elemen dalam objek ArrayList diberikan oleh indeks yang dari bilangan bulat dengan rentang dari 0 sampai n-1, dimana n
mewakili jumlah dari elemen dalam objek ArrayList.
2. Elemen pada indeks dalam objek ArrayList dapat diakses dalam waktu yang konstan.
3. Untuk menghapus elemen pada indeks yang sudah diberikan, worstTime(n) adalah O(n). Untuk lebih spesifik, worstTime(n, indeks) adalah O(n - indeks), sehingga penghapusan di sekitar awal dari ArrayList memakan waktu lebih lama dibandingkan penghapusan di sekitar pertengahan, dan keduanya memakan waktu lebih lama dibandingkan penghapusan di sekitar akhir. 4. Untuk penyisipan di sekitar akhir dari objek ArrayList yaitu, pada indeks n,
avarageTime(n) adalah konstan. Tetapi jika elemen dari objek ArrayList sudah menempati seluruh alokasi ruang untuk objek ArrayList dan penyisipan pada indeks n akan tetap diusahakan, alokasi ruang akan secara otomatis menambahkan ukurannya dan penyisipan akan dilakukan. Sejauh ini penambahan ruang yang disertai penyisipan, worstTime(n) adalah O(n), tetapi untuk n pada akhir penyisipan, worstTime(n) tetap sama dengan O(n).
spesifik, worstTime(n, indeks) sama dengan O(n - indeks). Dengan kata lain, penyisipan di sekitar awal objek ArrayList lebih lama dibandingkan penyisipan di sekitar tengah dan keduanya memakan waktu lebih lama daripada penyisipan sekitar akhir.
Melihat bahwa larik memiliki seluruh sifat yang sama, kecuali bagian keempat: penambahan ruang untuk larik yang penuh tidak akan bertambah secara otomatis. Maka dari itu larik sudah dibuat dengan ruang cukup untuk menampung sejumlah
n elemen. Jika elemen n telah tersimpan pada indeks 0 sampai dengan n – 1 dan berusaha untuk menyisipkan elemen baru pada indeks n, maka akan menimbulkan ArrayIndexOutOfBound. Untuk menghindari pengecualian tersebut, jelas pengubah ukuran dibutuhkan.
2.4 Searching
2.6.1 Pembobotan tf-idf
Sekarang akan menggabungkan definisi dari frekuensi istilah ( tf ) dan invers frekuensi dokumen ( idf ) untuk dapat menghasilkan penggabungan bobot pada setiap istilah dari setiap dokumen(Manning et al, 2009). Skema pembobotan
tf-idf yang menunjukkan bahwa bobot istilah t pada dokumen d, sebagai berikut
(2.1)
berbeda diperlukan tahap normalisasi. Berikut adalah skema normalisasi pembobotan tf-idf menurut Savoy (1993).
2.2
dimana aturan ntf dan nidf adalah sebagai berikut:
2.3
2.4
Keterangan:
Wik adalah bobot istilah k pada dokumen i.
tfik merupakan frekuensi dari istilah k dalam dokumen i.
n adalah jumlah dokumen dalam kumpulan dokumen.
dfk adalah jumlah dokumen yang mengandung istilah k.
Maxj tfij adalah frekuensi istilah terbesar pada satu dokumen.
23 BAB 3
ANALISIS DAN PERANCANGAN
Bab ini menjelaskan mengenai analisis dan perancangan dalam pembuatan sistem yang akan dibuat.
3.1 Kasus Deskripsi
Kasus yang diambil adalah penelitian mengenai pencarian dengan data gambar yang terdapat pada dokumen fotografi. Pencarian dokumen menggunakan data teks pada dokumen fotografi. Berdasarkan hasil pencarian ingin meneliti apakah dengan adanya data gambar dapat membantu pengguna dalam menentukan dokumen.
3.2 Cara Penyelesaian Masalah
Agar pencarian dokumen dapat dilakukan dengan cepat, maka dibutuhkan sistem Pemerolehan Informasi yang hasil pencarian dokumennya diurutkan berdasarkan bobot yang dimiliki. Perhitungan bobot dihitung menggunakan rumus
tf-idf menurut Savoy.
Pengujian ini akan melihat dua grafik interpolasi yang berbeda. Kedua grafik tersebut adalah hasil perhitungan recall & precision dari pengurutan oleh sistem dan pengurutan data gambar yang dilakukan oleh responden. Responden dalam pengujian ini membantu dalam menentukan dokumen yang sesuai dan mengurutkan hasil pencarian berdasarkan data gambar.
3.3 Perancangan Peta Sistem
Aplikasi Searching dan Aplikasi Indexing. Aplikasi Searching adalah aplikasi yang bertugas untuk mencari dokumen dari kumpulan koleksi dokumen pada basis data. Sementara itu, Aplikasi indexing adalah aplikasi yang bertugas mengindeks dokumen baru yang belum terindeks. Kedua aplikasi tersebut menggunakan proses TextOperation yang sama.
Aktor yang menggunakan Aplikasi Searching adalah Pengguna. Pengguna dapat memasukan kata kunci sebelum dapat melakukan pencarian. Kata kunci tersebut sebaiknya berhubungan dengan fotografi. Pencarian hanya akan menggunakan dokumen yang sudah diindeks oleh Aplikasi Indexing. Hasil pencarian dokumen diurutkan berdasarkan bobotnya sebelum dikembalikan kepada Pengguna.
Gambar 3.1 Peta Sistem Keseluruhan
3.4 Model Use Case
cara logout. Pengguna adalah aktor yang ingin mencari dokumen fotografi. Selain Pengguna dapat mencari dokumen fotografi, Pengguna juga dapat mengunduh dokumen yang diinginkan. Berikut adalah Diagram Use Case untuk kedua aktor, Gambar 3.2.
3.4.1 Skenario Login
Berikut adalah penjelasan langkah dasar dan kondisi-kondisi yang terjadi saat administrator menjalankan operasi Login.
Tabel 2.3 Jenis awalan berdasarkan tipe awalannya
Aktor Administrator
Kondisi awal -
Kondisi akhir Administrator berhasil melakukan verifikasi identitas
Aksi Aktor Reaksi Sistem
Skenario Utama Langkah 1:
Administrator memasukan username
dan password.
Langkah 2:
Username dan password akan dikelola
untuk dilakukan validasi.
*Jika tidak ada kesesuaian antara
username dan password, lanjutkan ke
Skenario Alternatif.
username/ password yang dimasukkan
tidak sesuai.
3.4.2 Skenario Menambah Dokumen
Tabel 3.2 Skenario UseCase Menambah Dokumen
Aktor Administrator
Kondisi awal Administrator sudah melakukan Login
Kondisi akhir Dokumen baru berhasil tertambahkan ke dalam basis data
Aksi Aktor Reaksi Sistem
Skenario Utama Langkah 1:
Administrator memasukan judul dan
memilih dokumen .pdf yang akan diunggah.
Langkah 2:
Sistem menambah dokumen baru ke dalam basis data.
Langkah 3:
Dokumen baru berhasil ditambah pada basis data.
3.4.3 Skenario Mencari Dokumen
Berikut adalah penjelasan langkah dasar dan kondisi-kondisi yang terjadi saat Pengguna menjalankan operasi Mencari Dokumen.
Tabel 3.3 Skenario UseCase Mencari Dokumen
Aktor Pengguna,
Kondisi awal
Kondisi akhir Dokumen yang relevan tertampil pada laman pengguna.
Aksi Aktor Reaksi Sistem
Skenario Utama Langkah 1:
Pengguna mamasukan kata kunci
Langkah 2:
Sistem malakukan Teks Operasi untuk kata kunci
Langkah 3:
Langkah 3:
Sejumlah hasil pencari ditampilkan.
Skenario Alternatif Langkah 3.1:
Hasil pencarian tidak ditemukan.
3.4.3 Skenario Mengunduh Dokumen
Berikut adalah penjelasan langkah dasar dan kondisi-kondisi yang terjadi saat pengguna menjalankan operasi Unduh Dokumen.
Tabel 3.4 Skenario UseCase Mengunduh Dokumen
Aktor Pengguna.
Kondisi awal Hasil pencarian telah ditemukan.
Kondisi akhir Dokumen berformat .pdf berhasil diunduh.
Aksi Aktor Reaksi Sistem
Skenario Utama Langkah 1:
Pengguna memilih dokumen.
Langkah 2:
Sistem menggunakan parameter id_doc sebagai pemanggilan file. Langkah 3:
Pengguna mendapatkan dokumen yang sudah dipilih.
3.4.5 Skenario Logout
Berikut adalah penjelasan langkah dasar dan kondisi-kondisi yang terjadi saat administrator menjalankan operasi Logout.
Tabel 3.5 Skenario UseCaseLogout
Aktor Administrator
Kondisi awal Administrator sudah melakukan Login.
Kondisi akhir Berhasil keluar dari hak akses sebagai administrator.
Skenario Utama Langkah 1:
Menekan tombol untuk keluar.
Langkah 2:
Sistem menghapus sesi identitas. Langkah 3:
Administrator kembali pada halaman
Login.
3.5 Perancangan Diagram Aktivitas
3.5.1 Diagram Aktivitas Login
Administrator dapat melakukan login dengan cara memasukan username
dan password yang sudah ditentukan. Namun jika username dan password tidak
sesuai maka sistem akan mengembalikan ke halaman yang sama dengan sebelumnya. Berikut adalah Diagram Aktivitas Login, Gambar 3.3.
3.5.2 Diagram Aktivitas Menambah Dokumen
Setelah Login, administrator dapat menambah dokumen fotografi dengan cara memasukan judul dan lokasi file dokumen fotografi. Berikut adalah Diagram Menambah Dokumen, Gambar 3.4.
3.5.3 Diagram Aktivitas Mencari Dokumen
Pengguna dapat mencari dokumen dengan cara memasukan kata kunci yang diinginkan. Berikut adalah Diagram Aktivitas Mencari Dokumen, Gambar 3.5.
3.5.4 Diagram Aktivitas Mengunduh Dokumen
Pengguna dapat menekan tombol „download’ untuk mendapat dokumen yang butuhkan. Berikut adalah Diagram Aktivitas Mengunduh Dokumen, Gambar 3.6.
3.5.5 Diagram Aktivitas Logout
Administrator dapat menghentikan tugasnya menambah dokumen dengan cara menekan tombol „logout’, Gambar 3.7.
3.6 Perancangan Diagram Kolaborasi
Diagram Kolaborasi adalah diagram yang menjelaskan bagaimana suatu operasi dijalankan dengan melihat model, view , controller.
3.6.1 Diagram Kolaborasi Login
Pada Gambar 3.8 menunjukkan bahwa valid atau tidaknya username dan
password akan divalidasi pada controller LoginServlet.
3.6.2 Diagram Kolaborasi Menambah Dokumen
Pada Gambar 3.9 menunjukkan bahwa administrator menambah dokumen baru ke dalam basis data.
3.6.3 Diagram Kolaborasi Mencari Dokumen
Pada Gambar 3.10 menunjukkan bahwa proses pencarian menggunakan struktur data inverted index berdasarkan kata kunci pengguna.
3.6.4 Diagram Kolaborasi Mengunduh Dokumen
Pada Gambar 3.11 pengguna menentukan dokumen yang ingin dia dapatkan.
Gambar 3.11 Diagram Kolaborasi Mengunduh Dokumen
3.6.5 Diagram Kolaborasi Logout
Gambar 3.12 Diagram Kolaborasi Logout
3.7 Perancangan Diagram Sekuensial
Diagram Sekuensial adalah diagram yang menjelaskan bagaimana suatu operasi dijalankan secara tahap demi tahap.
3.7.1 Diagram Sekuensial Login
Username dan password yang sudah dilakukan akan divalidasi oleh
sistem, jika sesuai maka administrator akan dihadapkan pada halaman upload. Berikut adalah tahapan proses Login, Gambar 3.13.
3.7.2 Diagram Sekuensial Menambah Dokumen
Administrator menambahkan dokumen dengan cara memasukan judul dan lokasi dokumen. Sebelum dokumen baru dimasukkan dalam basis data, dokumen tersebut disalin kembali ke lokasi baru dengan folder yang sesuai dengan ID Dokumen. Berikut adalah tahapan proses Menambah Dokumen, Gambar 3.14.
3.7.3 Diagram Sekuensial Mencari Dokumen
Pengguna dapat mencari dokumen dengan memasukan kata kunci. Pencarian dilakukan berdasarkan kata kunci dengan menggunakan struktur data
InvertedIndex. Berikut adalah tahapan proses Mencari Dokumen, Gambar 3.15.
3.7.4 Diagram Sekuensial Mengunduh Dokumen
Pengguna akan mendapatkan dokumen yang dipilih saat menekan tombol „download’. Berikut adalah tahapan proses Mengunduh Dokumen, Gambar 3.16.
3.7.6 Diagram Sekuensial Logout
Sistem akan memindahkan administrator ke halaman Login saat menekan tombol Logout. Berikut adalah tahapan proses Logout 3.17.
Gambar 3.17 Diagram Sekuensial Logout
3.8 Perancangan Basis Data
3.8.1 Entity Rationalship Diagram
Terdapat tiga entitas yang saling berhubungan, yaitu documents memiliki
images dan documents berindekskan terms. Hubungan documents dengan images
adalah satu documents memiliki beberapa images. Hubungan documents dengan
terms adalah banyak documents mengandung banyak terms. Berikut adalah Entity
RationalshipDiagram, Gambar 3.18.
Gambar 3.18 Entity Rationalship Diagram
3.8.2 Rational Model Design Database
Rational Model Design Database adalah bentuk Entity Rationalship
Diagram yang sudah melalui tahap normalisasi. Entitas dictionary dan stopword
adalah entitas yang digunakan untuk mendukung proses Text Operations. Entitas
dictionary adalah entitas yang menyimpan daftar akar kata pada bahasa Indonesia
dan fotografi. Entitas stopword adalah entitas yang menyimpan daftar kata umum pada bahasa Indonesia. Berikut adalah perancangan Rational Model Design
Gambar 3.19 RationalModelDesignDatabase
3.8.3 Physical Design Database 3.8.3.1 Tabel Documents
Berikut adalah tabel perancangan implementasi untuk tabel documents
beserta tipe data dan ukuran field yang dimiliki, Table 3.6: Tabel 3.6 Tabel Documents
No Nama Field Tipe Data Ukuran Keterangan
1 ID_DOC VARCHAR 20 Primay Key untuk
tabel documents
2 TITLE_DOC VARCHAR 200 Judul documents
3 LOCATION_DOC VARCHAR 1000 Lokasi file dokumen disimpan.
4 STATUS_DOC NUMBER - Status dokumen
5 UPLOAD_DOC VARCHAR 20 Tanggal dilakukan penambahan record
3.8.3.2 Tabel Images
Berikut adalah tabel perancangan implementasi untuk tabel images beserta tipe data dan ukuran field yang dimiliki, Table 3.7:
Tabel 3.7 Tabel Images
Berikut adalah tabel perancangan implementasi untuk tabel terms beserta tipe data dan ukuran field yang dimiliki, Table 3.3:
4 IDF NUMBER - inverse document
Berikut adalah tabel perancangan implementasi untuk tabel Indeks beserta tipe data dan ukuran field yang dimiliki, Table 3.4:
3.8.3.5 Tabel Dictionary
Berikut adalah tabel perancangan implementasi untuk tabel Dictionary beserta tipe data dan ukuran field yang dimiliki, Table 3.5:
Table 3.10 Tabel Dictionary
No Nama Field Tipe Data Ukuran Keterangan
ID_DICTIONARY NUMBER - Primay key untuk
tabel dictionary
ROOT_WORD VARCHAR 20 Kata dasar
3.8.3.6 Tabel Stopword
Berikut adalah tabel perancangan implementasi untuk tabel Stopword beserta tipe data dan ukuran field yang dimiliki, Table 3.6:
Table 3.6 Tabel Stopword
Nama Field Tipe Data Ukuran Keterangan
1 ID_STOPWORD NUMBER - Primay key untuk
3.9 Perancangan Inverted Index
pencarian dengan waktu yang relatif konstan O(n), sehingga sangat cocok sebagai penerapan inverted index. Sebagai gambaran dari perancangan pada dilihat pada Gambar 3.20
Gambar 3.20 Perancangan struktur data InvertedIndex dalam bentuk HashTable
3.10 Perancangan Antar Muka
3.10.1 Perancangan Antar Muka Halaman Pencarian
Halaman Pencarian ini difokuskan pada sesuatu yang harus dimasukkan pengguna sebelum pencarian dapat dilakukan, yaitu pengguna harus memasukan kata kunci/keyword. Pada perancangan halaman ini akan dibuat ukuran field yang lebih besar, diharapkan pengguna dapat mengerti secara langsung tugas yang harus dikerjakan terlebih dahulu. Berikut adalah Gambar 3.21 sebagai ilustrasi sebelum dilakukan pencarian.
Gambar 3.21 Halaman Pencarian. Sebelum dilakukan pencarian
Setelah kata kunci sudah dimasukkan oleh pengguna maka hasil pencarian dapat ditampilkan. Hasil pencarian tersebut akan menampilkan data gambar, judul dan deskripsi singkat serta fitur mengunduhdokumen, Gambar 3.22.
3.10.1 Perancangan Antar Muka Halaman Upload Dokumen
Pada halaman ini, administrator diminta untuk memasukan judul dan lokasi file dokumen. Administrator dapat menggunakan file explorer untuk mendapatkan path dari file dokumen.
Gambar 3.22 Halaman Menambah Dokumen
3.11 Perancangan Diagram Kelas
Perancangan diagram kelas ini adalah sebagai bentuk gambaran untuk melihat keterhubungan antar kelas pada suat aplikasi. Dalam sistem yang akan dibangun terdapat dua aplikasi yaitu Aplikasi Searching dan Aplikasi Indexing. 3.11.1 Aplikasi Searching
3.11.1.1 Package IR
Gambar 3.25 Diagram UML: Aplikasi Searching: IR 3.11.1.2 Package database
3.11.1.3 Package entities
Gambar 3.27 Diagram UML: Aplikasi Searching: entities 3.11.1.4 Package textoperation
Gambar 3.28 Diagram UML: Aplikasi Searching: textoperation 3.11.1.5 Package tools
3.11.2 Aplikasi Indexing
Aplikasi Indexing adalah sistem yang digunakan sebagai pengindeksan.
3.11.2.1 Package IR
Gambar 3.30 Diagram UML: Aplikasi Indexing: IR
3.11.2.2 Package database
Gambar 3.31 Diagram UML: Aplikasi Indexing: database
3.11.2.3 Package entities
Gambar 3.32 Diagram UML: Aplikasi Indexing: entities
3.11.2.4 Package textoperation
3.11.2.5 Package tools
Gambar 3.34 Diagram UML: Aplikasi Indexing: tools
3.11.2.6 Package theard
58 BAB 4 IMPLEMENTASI
Pada bagian ini membahas mengenai implementasi pada Sistem Pencarian Data Gambar dengan menggunakan metode if-idf.
4.1 Implementasi sql pada basis data
Pada sistem yang akan dibuat dibutuhkan basis data yang mampu menyimpan informasi yang butuhkan. Implementasi basis data ini dibuat berdasarkan dari rancangan rational model. Berikut adalah implementasi basis data dengan pada Oracle XE10g, Code 4.1.
CREATE TABLE "IR"."DOCUMENTS" (
"ID_DOC" VARCHAR2(20 BYTE) NOT NULL ENABLE, "TITLE_DOC" VARCHAR2(200 BYTE),
"LOCATION_DOC" VARCHAR2(1000 BYTE), "STATUS_DOC" NUMBER DEFAULT 0, "UPLOAD_DATE" VARCHAR2(20 BYTE),
CONSTRAINT "DOCUMENT_PK" PRIMARY KEY ("ID_DOC") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE
)
CREATE TABLE "IR"."IMAGES" (
"ID_IMAGE" VARCHAR2(20 BYTE) NOT NULL ENABLE, "LOCATION_IMAGE" VARCHAR2(1000 BYTE),
"ID_DOC" VARCHAR2(20 BYTE),
CONSTRAINT "IMAGES_PK" PRIMARY KEY ("ID_IMAGE") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT )
CREATE TABLE "IR"."INDEKS" (
"ID_DOC" VARCHAR2(20 BYTE), "ID_TERMS" VARCHAR2(20 BYTE), "TF" NUMBER,
"ID_TERMS" VARCHAR2(20 BYTE) NOT NULL ENABLE, "TERMS" VARCHAR2(30 BYTE),
"DF" NUMBER DEFAULT 0, "IDF" NUMBER DEFAULT 0, "NIDF" NUMBER DEFAULT 0,
CONSTRAINT "TERMS_PK" PRIMARY KEY ("ID_TERMS") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE
)
Code 4.1 Implementasi Table untuk Dokumen
4.2 Implementasi Parsing Data Teks dan Data Gambar
Dokumen fotografi memiliki dua elemen, yaitu data gambar dan data teks. Kedua elemen tersebut harus dapat dipisahkan untuk melengkapi proses indexing.
Parsing pada kedua data tersebut menggunakan source code yang sudah
dipublikasikan oleh www.itext.com. Hasil dari parsing data gambar akan menjadi .jpg untuk setiap gambarnya dan data teks akan menjadi .txt , Code 4.2.
public void extractImages(String filename, String result, Images images) throws IOException, DocumentException {
PdfReader reader = new PdfReader(filename);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
MyImageRenderListener listener = new MyImageRenderListener(result, images); for (int i = 1; i <= reader.getNumberOfPages(); i++) {
parser.processContent(i, listener); }
reader.close(); }
PdfReaderContentParser parser = new PdfReaderContentParser(reader); PrintWriter out = new PrintWriter(new FileOutputStream(c_pdf)); // result TextExtractionStrategy strategy;
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); out.println(strategy.getResultantText());
Code 4.2. Implementasi Parsing Data Teks dan Data Gambar
4.3 Implementasi Text Operations
Sistem ini menggunakan proses Text Operations yang didukung oleh kamus untuk mencari akar kata dan kata umum. Dalam sistem ini akar kata disimpan pada basis data dengan tabel dictionary dan daftar kata umum disimpan pada tabel stopword. Berikut adalah implementasi kamus untuk tabel stopwords
dan dictionary, Code 4.3.
CREATE TABLE "IR"."DICTIONARY" (
"ID_DICTIONARY" NUMBER(*,0), "ROOT_WORD" VARCHAR2(20 BYTE) )
CREATE TABLE "IR"."STOPWORDS" (
"ID_STOPWORD" NUMBER(*,0), "STOPWORD" VARCHAR2(20 BYTE) )
Code 4.3 Implementasi table STOPWORDS dan DICTIONARY
Text Operations memiliki tiga tahap yaitu tokenizing, penghapusan
stopword dan stemming. Setiap masukan yang dilakukan oleh pengguna akan
bagaimana proses Text Operations dilakukan. Seluruh rangkaian proses Text
Operations ini akan diimplementasikan pada class Tokenizer, Code 4.4.
→ → →
Gambar 4.1 Rangkain Proses Text Operations
public class Tokenizer {
private List<String> token; private String fileLocation; private List<String> daftarKata;
public Tokenizer(String fileLocation) { this.fileLocation = fileLocation; }
public Tokenizer() { }
public List<String> getToken() throws FileNotFoundException, IOException, SQLException {
String words = null; String line;
BufferedReader bufferedReader = new BufferedReader(new FileReader(fileLocation));
while ((line = bufferedReader.readLine()) != null) { words = words + line + "\n";
}
StringTokenizer stringTokenizer = new StringTokenizer(words);
token = new ArrayList<String>();
RemoveStopword removeStopword = new RemoveStopword(); IndonesianStemmer indonesianStemmer = new IndonesianStemmer(); removeStopword.setListWord(token);
token = removeStopword.getRemovedList();
indonesianStemmer.setWord(token.get(i).replaceAll("[.�,]",
public List<String> getToken(String keyword) throws SQLException { String words = keyword;
StringTokenizer stringTokenizer = new StringTokenizer(words);
token = new ArrayList<String>();
RemoveStopword removeStopword = new RemoveStopword(); IndonesianStemmer indonesianStemmer = new IndonesianStemmer(); removeStopword.setListWord(token);
token = removeStopword.getRemovedList();
List<String> listToRemove = new ArrayList<String>(); for (int i = 0; i < token.size(); i++) {
this.token = token; }
public String getFileLocation() { return fileLocation;
}
public void setFileLocation(String fileLocation) { this.fileLocation = fileLocation;
}
public List getResultToken() throws SQLException, FileNotFoundException, IOException {
Code 4.4 TextOperations
4.3.1 Pemisahan Kata
Proses ini memisahkan data teks menjadi daftar istilah yang disimpan sementara dalam bentuk List<String>. Proses ini juga menghapus karakter khusus dan mentransformasikan setiap istilah ke dalam huruf kecil, Code 4.5
BufferedReader bufferedReader = new BufferedReader(new FileReader(fileLocation));
while ((line = bufferedReader.readLine()) != null) { words = words + line + "\n";
}
StringTokenizer stringTokenizer = new StringTokenizer(words);
token = new ArrayList<String>();
4.3.2 Penghapusan Kata Umum
Proses penghapusan kata umum adalah proses yang melengkapi proses pemisahan kata sebelumnya. Proses ini memeriksa apakah pada daftar istilah sebelumnya terdapat kata umum atau tidak, jika terdapat maka akan dihapus. Hasil dari penghapusan kata ini disimpan sementara dalam bentuk List<String> Code 4.6.
public class RemoveStopword {
private List<String> listWord; private List<Stopword> stopwords;
public RemoveStopword() throws SQLException {
stopwords = DatabaseController.getDatabaseController().get_stopwords(); }
public List<String> getRemovedList() throws SQLException {
List<String> helpers = new ArrayList<String>(); for (int i = 0; i < stopwords.size(); i++) {
public void setListWord(List<String> removedList) throws SQLException { this.listWord = removedList;
}
}
Code 4.6 Implementasi Text Operations, Penghapusan Kata Umum
4.3.3 Stemming
public class IndonesianStemmer {
private String word;
private List<String> dictionaries;
public IndonesianStemmer() throws SQLException {
}
Code 4.7 Implementasi Teks Operations, Stemming
4.4 Implementasi Indexing
Proses indexing pada sistem ini menggunakan daftar istilah yang didapat dari proses Text Operations. Setiap istilah akan ditambahkan pada basis data, Code 4.8.
public class Indexing {
DatabaseController databaseController = DatabaseController.getDatabaseController();
public void indek_term(Tokenizer tokenizer, String id_doc) throws SQLException, FileNotFoundException, IOException {
Indek indek = new Indek(tokenizer.getToken()); Terms terms = new Terms();
Terms bantu = terms.seacrh_byID(list.get(i));
databaseController.updateAllTerm(); databaseController.updateAllIndeks(); }
}
Code 4.8 Implementasi Indexing
4.5 Implementasi Inverted Index
Sebelum proses pencarian dapat dilakukan, maka diperlukan struktur data
Inverted Index untuk mempercepat proses pencarian tersebut, Code 4.9. Inverted
Index pada sistem ini menggunakan struktur Hastable karena struktur tersebut
dapat mencari elemen dengan cepat.
public Hashtable invertedIndex() throws SQLException { double satu = System.nanoTime();
DatabaseController databaseController = DatabaseController.getDatabaseController();
List<Indek> invertedIndexs = databaseController.get_indeks();
Hashtable invertedIndexHashtable = new Hashtable(); for (int i = 0; i < invertedIndexs.size(); i++) {
(invertedIndexHashtable.containsKey(invertedIndexs.get(i).getTerms())) {
invertedIndexHashtable.put(invertedIndexs.get(i).getTerms(), postinglist); } else {
invertedIndexHashtable.put(invertedIndexs.get(i).getTerms(), postinglist); }
}
double dua = System.nanoTime();
System.out.println("Waktu konversi kedalam HashTable dgn metode 2 adalah: " + (dua - satu));
return invertedIndexHashtable; }
Code 4.9 Implementasi InvertedIndex
4.6 Implementasi Searching
Pencarian dokumen fotografi dicari berdasarkan kata kunci yang sudah dimasukkan. Pencari menggunakan struktur data Inverted Index untuk mendapatkan keuntungan dalam percepatan, Code 4.9. Sebagai keluaran untuk hasil pencarian adalah List<Posting> yang sudah diurutkan, List<Posting> dimana sudah menampung segala informasi seperti id_doc
dan w (bobot), Code 4.10.
public List<Posting> search() throws SQLException { List<Posting> searchList = new ArrayList<Posting>();
List<Posting> postingLists = (ArrayList<Posting>) hashtable.get(query.get(i));
Collections.sort(searchList, new ComparatorPosting()); for (int i = 0; i < searchList.size(); i++) { pencarian akan disaring terlebih dahulu untuk mendapat persamaan AND sesuai dengan masukan kata kunci yang diberikan, Code 4.11.
List<Posting> searchANDList = new ArrayList<Posting>();
Collections.sort(searchANDList, new ComparatorPosting()); return searchANDList;
}
Code 4.11 Implementasi Searching, Persamaan AND
4.7 Implemtasi Antar Muka
Sebagai media yang dapat mempermudah pengguna dalam berinteraksi dalam menggunakan sistem maka GUI(Graphical User Interface) dibuat bersadarkan perancangan yang sebelumnya ditentukan.
4.7.1 Halaman Login
Pengguna dapat akses sebagai administrator dengan cara memasukan
username dan password yang sudah ditentukan, Gambar 4.2.
Gambar 4.2 GUI: Halaman Login
4.7.2 Halaman Pencarian
Gambar 4.3 GUI: Halaman Pencarian 1
Saat pengguna sudah memasukan kata kunci, sistem akan memberikan
feedback berupa hasil pencarian. Hasil pencarian tersebut adalah pencarian hanya
memiliki persamaan AND pada kata kunci dalam proses pencarian yang dilakukan, Gambar 4.4.
4.7.3 Halaman Unggah
Agar mudah untuk menambah koleksi dokumen, maka pada Halaman Unggah ini administrator cukup memasukan judul pada dokumen dan destinasi lokasi dokumen, Gambar 4.5
75
BAB 5
ANALISA HASIL
Bagian ini menjelaskan mengenai sistematika dan hasil dari pengujian. 5.1 Analisa Hasil Sistem
Pengujian ini akan dilakukan kepada 5(lima) responden yang sudah memiliki pengetahuan seputar fotografi. Pengujian dilakukan dengan cara menjalankan fitur pencarian. Responden juga mengisikan kuesioner untuk menentukan dokumen yang sesuai dengan kebutuhannya, baik pada hasil pencarian maupun pada seluruh dokumen yang terdapat pada koleksi. Tujuan dari pengujian ini adalah selain mencoba fungsi sistem, pengujian ini juga ingin mencari kedua nilai precision dengan adanya data gambar dan tidak. Diharapkan hasil keluaran dari penelitian ini dapat membantu pengguna dalam memilih dokumen fotografi yang dibutuhkan dengan bantuan data gambar.
5.1.1 Analisa Uji Coba Pengguna
5.1.1.1 Responden Pertama
Responden yang menguji pada Jumat, 14 Juni 2013 dengan keterangan sebagai berikut:
Nama : Denis Darujati Kata Kunci : teknik foto makro
Berikut adalah hasil dari uji coba fitur pencarian dan pengisian kuesioner (terlampir) :
Dokumen ditemukan : 8 (delapan)
Dokumen sesuai dari hasil pencarian : 5 (lima) Dokumen sesuai dari seluruh dokumen : 23
Berikut adalah hasil pencarian yang dilakukan oleh sistem Gambar 5.1.
Gambar 5.1 Hasil Pencarian: Responden Pertama
Setelah dilakukan pengujian dapat dilakukan perhitungan untuk Recalland
Precision guna mencari pergerakan interpolasi dari hasil pengurutan yang
dilakukan oleh sistem dan hasil pengurutan berdasarkan gambar oleh responden. Berikut adalah PrecisionTable menurut kuesioner, Tabel 5.1:
Tabel 5.1 PrecisionTable:Responden Pertama No Urutan Berdasarkan Data
Gambar
ID Dokumen Relevant
1 1 084 X
3 7 046 dapat dijabarkan kembali ke dalam dua tabel perhitungan Recall and Precision
untuk masing-masing pengurutannya. Tabel 5.2a dan Tabel 5.2b akan memberikan dua perhitungan Recall and Precision untuk masing-masing pengurutan, atas adalah perhitungan pengurutan dari sistem dan bawah adalah perhitungan pengurutan dari responden.
Tabel 5.2a RecallandPrecision Pengurutan Sistem: Responden Pertama
Id_doc Recall Precision
1 084 0.043478 1
Tabel 5.2b RecallandPrecision Pengurutan Menggunakan Data Gambar oleh Responden: Responden Pertama
Id_doc Recall Precision