• Tidak ada hasil yang ditemukan

Sistem pemerolehan informasi data gambar pada dokumen fotografi menggunakan struktur data inverted index dan poembobotan TF-IDF.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem pemerolehan informasi data gambar pada dokumen fotografi menggunakan struktur data inverted index dan poembobotan TF-IDF."

Copied!
127
0
0

Teks penuh

(1)

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

(2)

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

(3)
(4)
(5)
(6)

vi

HALAMAN MOTO

About the money,

(7)

vii

HALAMAN PERSEMBAHAN

(8)

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.

(9)

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.

(10)
(11)

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.

(12)
(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

xx

Tabel 5.8a RecallandPrecision Pengurutan Sistem: Responden Ketiga ... 87 Tabel 5.8b RecallandPrecision Pengurutan Menggunakan Data Gambar

(21)

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

(22)

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.

(23)

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

(24)

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

(25)

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

(26)

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.

(27)

Berisi kesimpulan dan saran dari pembuatan program mesin pencari dokumen fotografi

(28)

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.

(29)

Gambar 2.1 Proses Menuju Pengindeksan (Baeza, 1999)

(30)

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 )

(31)

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

(32)

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.

(33)

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:

(34)

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

(35)

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-

(36)

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

(37)

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.

(38)

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

(39)

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

(40)

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

(41)

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)

(42)

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.

(43)
(44)

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

(45)

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.

(46)

Gambar 3.1 Peta Sistem Keseluruhan

3.4 Model Use Case

(47)

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.

(48)

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

(49)

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:

(50)

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.

(51)

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.

(52)

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.

(53)

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.

(54)

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.

(55)

3.5.5 Diagram Aktivitas Logout

Administrator dapat menghentikan tugasnya menambah dokumen dengan cara menekan tombol „logout’, Gambar 3.7.

(56)

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.

(57)

3.6.2 Diagram Kolaborasi Menambah Dokumen

Pada Gambar 3.9 menunjukkan bahwa administrator menambah dokumen baru ke dalam basis data.

(58)

3.6.3 Diagram Kolaborasi Mencari Dokumen

Pada Gambar 3.10 menunjukkan bahwa proses pencarian menggunakan struktur data inverted index berdasarkan kata kunci pengguna.

(59)

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

(60)

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.

(61)

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.

(62)

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.

(63)

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.

(64)

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

(65)

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

(66)

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

(67)

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:

(68)

4 IDF NUMBER - inverse document

Berikut adalah tabel perancangan implementasi untuk tabel Indeks beserta tipe data dan ukuran field yang dimiliki, Table 3.4:

(69)

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

(70)

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

(71)

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.

(72)

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

(73)

3.11.1.1 Package IR

Gambar 3.25 Diagram UML: Aplikasi Searching: IR 3.11.1.2 Package database

(74)

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

(75)

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

(76)

3.11.2.3 Package entities

Gambar 3.32 Diagram UML: Aplikasi Indexing: entities

3.11.2.4 Package textoperation

(77)

3.11.2.5 Package tools

Gambar 3.34 Diagram UML: Aplikasi Indexing: tools

3.11.2.6 Package theard

(78)

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 )

(79)

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

(80)

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

(81)

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

(82)

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++) {

(83)

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

(84)

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

(85)

public class IndonesianStemmer {

private String word;

private List<String> dictionaries;

public IndonesianStemmer() throws SQLException {

(86)
(87)
(88)

}

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

(89)

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++) {

(90)

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

(91)

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.

(92)

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

(93)

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.

(94)

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

(95)

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

(96)

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

(97)

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

Gambar

Gambar 2.2 Konsep Sistem Pemerolehan Informasi (Baeza, 1999)
Tabel 2.1 Kombinasi awalan akhiran yang tidak diijinkan
Tabel 2.3 Jenis awalan berdasarkan tipe awalannya
Gambar 2.5 Proses Pengindeksan
+7

Referensi

Dokumen terkait

Peneliti berasumsi bahwa hal tersebut dikarenakan responden telah mempelajari dan mengakses teori teori keperawatan khususnya patient safety , tetapi dalam

Pada tahun 1513, Demak mengerahkan kekuatan 100 kapal perang dengan ribuan prajurit untuk bergabung dengan pasukan dari Banten, Palembang, Aceh dan Johor.. Armada Demak mengambil

Hasil penelitian ini adalah citra Landsat MSS, TM dan ETM+ dengan menggunakan band tunggal pada saluran 4 pada TM dan ETM+ serta saluran 7 pada MSS yang mampu

Aktivitas antioksidan dari asam fenolat ampas teh hitam dengan perlakuan yang berbeda, yaitu: ekstrak kasar, asam fenolat bebas, asam fenolat ikatan ester dan asam fenolat ikatan

Dampak baik dari apa yang telah dilaksanakan dari program tersebut masyarakat luas dapat dengan mudah mengetahui letak-letak tempat umum seperti kantor desa

4) Pengusul yang proposalnya dinyatakan lulus untuk didanai, akan mengikat perjanjian atau kontrak dengan pengelola anggaran PHK-PKPD FKUB. Kontrak yang dilakukan juga

Sebagai untuk siswa SMP/MTs dan sumbangan pemikiran bagi guru matematika tentang pentingnya mengetahui pengaruh penggunaan lembar kerja terstruktur terhadap hasil

Hasil analisis data pada komplikasi di ginjal didapatkan tidak adanya perbedaan proporsi komplikasi ginjal dengan hipertensi derajat 1 dan 2 (p=0,310). Hasil ini didukung