• Tidak ada hasil yang ditemukan

SISTEM TANYA JAWAB DENGAN MENGGUNAKAN KOLEKSI DOKUMEN CERITA WAYANG Skripsi

N/A
N/A
Protected

Academic year: 2019

Membagikan "SISTEM TANYA JAWAB DENGAN MENGGUNAKAN KOLEKSI DOKUMEN CERITA WAYANG Skripsi"

Copied!
186
0
0

Teks penuh

(1)

DOKUMEN CERITA WAYANG

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika

Oleh :

Angela Ami Asmarani

NIM : 055314057

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2009

(2)

USING WAYANG STORY DOCUMENTS

A Thesis

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree In Department of Informatics Engineering

By :

Angela Ami Asmarani

Student ID : 055314057

INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

YOGYAKARTA 2009

(3)

SISTEM TANYA JAWAB DENGAN MENGGUNAKAN KOLEKSI

DOKUMEN CERITA WAYANG

Oleh :

Angela Ami Asmarani

NIM : 055314057

Telah Disetujui oleh :

Pembimbing

Sri Hartati Wijono, S.Si., M.Kom Tanggal …. Agustus 2009

(4)

DOKUMEN CERITA WAYANG

Yang dipersiapkan dan disusun oleh :

Angela Ami Asmarani

NIM : 055314057

Telah dipertahankan di depan Tim Penguji

Pada tanggal 16 Juni 2009

Dan dinyatakan memenuhi syarat.

Susunan Tim Penguji

Tanda Tangan

Ketua : Alb. Agung Hadhiatma, S.T., M.T. _ _ _ _ _ _ _ _ _

Sekretaris : Sri Hartati Wijono, S.Si., M.Kom _ _ _ _ _ _ _ _ _

Anggota : Puspaningtyas Sanjoyo Adi, S.T., M.T. _ _ _ _ _ _ _ _ _

Yogyakarta,……….

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan,

(Yosef Agung Cahyanta, S.T, M.T.)

(5)

Skripsi ini kupersembahkan untuk :

untuk Tuhan Yang Maha Menakjubkan, yang selalu penuh kejutan dan selalu membuatku terkejut dengan seluruh keajaiban semestanya, baik ketika mataku terbuka maupun tertutup.

untuk keluargaku yang juga menakjubkan, untuk semua dukungan dan kehangatan

untuk almamaterku,

untuk Indonesia dan kebudayaannya,

dan, untuk setiap orang yang mampelajari Information Retrieval

(6)

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya/bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 11 Agustus 2009

Penulis

Angela Ami Asmarani

(7)

UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Angela Ami Asmarani

NIM : 055314057

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul :

SISTEM TANYA JAWAB DENGAN MENGGUNAKAN KOLEKSI

DOKUMEN CERITA WAYANG

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan

kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan

dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,

mendistribusikannya secara terbatas, dan mempublikasikannya di internet dan media

lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun

memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai

penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yogyakarta, 11 Agustus 2009

Penulis,

Angela Ami Asmarani

(8)

Sistem tanya jawab adalah sistem yang menerima pertanyaan dari user dalam

bahasa alami, dan mengembalikan teks pendek sebagai jawabannya. Sistem

memperoleh jawaban dari koleksi dokumen (corpus) yang dimilikinya. Sistem tanya jawab terdiri atas beberapa tahap pemrosesan antara lain: analisa pertanyaan,

preprocessing koleksi dokumen, pencarian kandidat dokumen, dan ekstraksi jawaban. Skripsi ini membahas pembuatan sistem tanya jawab yang menggunakan

koleksi dokumen cerita wayang, sehingga pertanyaan user juga dibatasi seputar cerita wayang. Dalam menjawab pertanyaan, sistem menggunakan metode pembobotan

kueri dan formula scoring untuk me-ranking kandidat jawaban.

Sistem ini dapat menerima pertanyaan seputar cerita wayang yang dibatasi pada

lima tipe jawaban yaitu Person, Location, Relation, Weapon, dan Number. Diujicobakan pada 100 pertanyaan, sistem mampu menjawab 22 pertanyaan dengan

tepat, atau tingkat keberhasilannya adalah 22%.

(9)

Question answering system is a system that receives a user’s question in a

natural language, and returns short text as an answer. System retrieves the answer

from its corpus. Question answering system consists of some processing state i.e:

question analysis, document collection preprocessing, candidate document searching,

and answer extraction.

This paper discusses about the making of question answering system using

wayang story documents as the corpus, so that user’s question is about wayang stories

only. In answering the question, system uses query weight method and scoring

formula to rank candidate answers.

This system can receive questions around wayang story but the questions are

limited by five type of answer: Person, Location, Relation, Weapon, and Number.

Being tested on 100 questions, the system could answer 22 questions correctly. In

other words, the level of success is 22%.

(10)

Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan segala

karunia-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “Sistem

Tanya Jawab dengan Menggunakan Koleksi Dokumen Cerita Wayang”.

Dalam kesempatan ini, penulis ingin mengucapkan terima kasih yang

sebesar-besarnya kepada semua pihak yang turut memberikan dukungan, semangat dan

bantuan hingga selesainya skripsi ini :

1. Ibu Sri Hartati Wijono, S.Si., M.Kom atas semua bantuan, bimbangan,

kesabaran, waktu, dan semangat yang telah ibu berikan, membuat skripsi ini

dapat terselesaikan. Apa jadinya semua ini tanpa bantuan ibu?

2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. sebagai Kaprodi dan sebagai

dosen penguji, atas saran dan kritikan yang diberikan.

3. Bapak Alb. Agung Hadhiatma, S.T., M.T. dan sebagai dosen penguji, atas

saran dan kritikan yang diberikan.

4. Seluruh Dosen TI yang selama empat tahun ini telah membagikan ilmunya

yang sangat berguna kepada penulis.

5. Laboran Laboratorium Komputer yang telah membantu mempersiapkan

jalannya pendadaran.

6. Seluruh Staff Universitas Sanata Dharma, yang atas kerja kerasnya, membuat

perkuliahan menjadi terasa nyaman.

(11)

Aquino Adam Nurcahyo, kakakku, Agatha Uni Asmarani, atas kasih sayang,

perhatian, dukungan, semangat dan doa yang mengiringi proses pembuatan

skripsi ini.

8. Linus Wedar Duanto, Fenti Iskandari, dan Agnes Tyas, yang sangat banyak

membantu dalam proses pembuatan skripsi ini, atas dukungan, semangat, dan

bantuan.

9. Serta semua pihak yang telah membantu kelancaran dalam penulisan tugas

akhir ini. Penulis mengucapkan banyak terima kasih.

Yogyakarta, Agustus 2009

Penulis

(12)

HALAMAN JUDUL BAHASA INDONESIA ... i

HALAMAN JUDUL BAHASA INGGRIS ... ii

HALAMAN PERSETUJUAN PEMBIMBING ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... vi

HALAMAN PERSETUJUAN PUBLIKASI... vii

ABSTRAK ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR TABEL ... xvii

DAFTAR GAMBAR ... xviii

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah ... 3

1.4 Tujuan dan Manfaat ... 4

1.5 Metodologi Penelitian ... 4

1.6 Sistematika Penulisan ... 5

(13)

2.1 Information Retrieval... 7

2.2 Sistem Tanya Jawab... 9

2.3 Ad Hoc Retrieval ... 10

2.4 Kueri... 10

2.5 Segmentasi ... 12

2.6 Stemming... 12

2.7 Parsing... 15

2.8 Stopword, Stoplist, dan StopwordRemoval... 15

2.9 Indexing... 16

2.10 Ranking... 16

2.11 Diagram Aliran Data ... 18

2.12 Perl dan XAMPP... 20

BAB III ANALISA DAN DESAIN SISTEM 3.1. Perancangan Sistem ... 25

3.1.1.Preproses (Proses 1) ... 27

a. Segmentasi dokumen (Sub Proses 1.1P)... 29

b. Pembuatan file kosakata (Sub Proses 1.2P) ... 29

c. Pembuatan file Token (Proses 1.3P) ... 32

d. StemmingFile (Sub Proses 1.4P) ... 33

e. Stemming Koleksi(Sub Proses 1.5P) ... 36

(14)

g. Membuat File Stoplist (Sub Proses 1.7P) ... 39

h. RemoveStopword (Sub Proses 1.8P) ... 40

i. Parsing / Tagging (Sub Proses 1.9P) ... 41

j. Pembuatan Passage (Sub Proses 1.10P) ... 43

3.1.2.Indexing (Proses 2)... 48

a. Pembuatan FileIndex Dokumen (Sub Proses 2.1P) ... 49

b. Pembuatan FileIndexPassage (Sub Proses 2.3P ... 51

3.1.3.Pengolahan Pertanyaan dan Pencarian Jawaban (Proses 3)... 51

a. Analisa Pertanyaan (Sub Proses 3.1) ... 52

b. Pencarian dan Ranking Dokumen (Sub Proses 3.2)... 57

c. Pencarian dan RankingPassage (Sub Proses 3.3) ... 58

d. Ekstraksi Jawaban (Sub Proses 3.4)... 60

3.1.4.Kamus Data... 70

3.2. Diagram Berjenjang Sistem ... 78

3.3. Desain Antar Muka ... 79

BAB IV IMPLEMENTASI 4.1Implementasi Fisik ... 82

4.1.1 Struktur File pada Folder Preproses... 83

4.1.2 Struktur File pada Folder Index ... 88

4.1.3 Struktur File pada Folder Koleksi ... 90

4.2Implementasi Program ... 96

(15)

4.2.2 Program Stem File ... 97

4.2.3 Program Stem Koleksi ... 99

4.2.4 Program Pembuatan Stoplist ... 100

4.2.5 Program Stopword Removal ... 101

4.2.6 Program Parsing ... 101

4.2.7 Program Pembuatan Passage... 102

4.2.8 Program Pembuatan Index Dokumen ... 105

4.2.9 Program Pembuatan Index Passage ... 106

4.2.10 Program Analisa Pertanyaan ... 107

4.2.11 Program Pencarian dan Ranking Dokumen ... 109

4.2.12 Program Pencarian dan Ranking Passage ... 110

4.2.13 Program Ekstraksi Jawaban ... 112

4.3Implementasi Antarmuka ... 116

4.3.1 Halaman Home / Form Pertanyaan ... 116

4.3.2 Halaman Jawaban... 117

4.3.3 Halaman Tentang Sistem ... 118

4.3.4 Halaman Kredit ... 119

4.3.5 Halaman Cara Kerja Sistem ... 120

4.3.6 Halaman Evaluasi ... 120

BAB V ANALISA HASIL IMPLEMENTASI 5.1Hasil Implementasi ... 121

(16)

BAB IV KESIMPULAN DAN SARAN

6.1Kesimpulan ... 126

6.2Saran... 127

DAFTAR PUSTAKA ... 128

LAMPIRAN

(17)

Tabel 1: inflectional pasrticles... 13

Tabel 2 : inflectional possessive pronouns ... 13

Tabel 3 : first order of derivational prefixes... 14

Tabel 4 : second order of derivational prefixes... 14

Tabel 5 : derivational suffixes... 15

Tabel 3.1.3 Tabel kata passage ... 65

Table 3.1.4 Kamus Data... 70

(18)

Gambar 2.1.a : Diagram proses Pemerolehan Informasi ... 8

Gambar 2.6.a desain Stemming ... 13

Gambar 2.11.a contoh DAD... 18

Gambar 2.11.b contoh DAD... 20

Gambar 3.1.a diagram konteks system ... 25

Gambar 3.1.b Diagram Aliran Data level 1 ... 26

Gambar 3.1.1.a DAD level 2 proses 1 ... 28

Gambar 3.1.1.b Flowchart Pembuatan File Kosakata ... 31

Gambar 3.1.1.c desain Stemming ... 34

Gambar 3.1.1.d desain proses Stemming ... 35

gambar 3.1.1e flowchart proses parsing ... 42

gambar 3.1.1.f gambar flowchart pembuatan passage ... 45

Gambar 3.1.1.g gambar file-file preproses ... 47

Gambar 3.1.1.h koleksi-koleksi dokumen ... 48

gambar 3.1.2.a DAD level 2 Proses 2 ... 49

gambar 3.1.2.b Flowchart pembuatan file index ... 50

Gambar 3.1.3.a DAD level 2 proses 3 ... 52

gambar 3.1.3.b DAD level 3 proses 3.1 ... 53

gambar 3.1.3.c Flowchart pengelompokkan pertanyaan jawaban ... 55

Gambar 3.1.3.d DAD level 3 proses 3.2 ... 57

(19)

gambar 3.1.3.f Flowchart skor passage 1... 61

gambar 3.1.3.g Flowchart skor passage 2 ... 62

gambar 3.1.3.h Flowchart skor passage 3... 63

gambar 3.1.3.i Flowchart skor kandidat 1... 67

gambar 3.1.3.j Flowchart skor kandidat 2 ... 68

Gambar 3.3.a Diagram berjenjang ... 78

Gambar 3.4.a Form pertanyaan ... 79

Gambar 3.4.b Jawaban Pertanyaan ... 79

Gambar 3.4.c tampilan Tentang program. ... 79

Gambar 3.4.d tampilan Kredit ... 80

Gambar 3.4.e tampilan Bagaimana Sistem bekerja ... 80

Gambar 3.4.f halaman evaluasi ... 81

Gambar 4.1.a implementasi program... 82

Gambar 4.1.b folder file ... 83

Gambar 4.1.1a folder preproses ... 83

Gambar 4.1.1.b folder sinonim ... 85

Gambar 4.1.1.c folder token ... 86

Gambar 4.1.1.d folder stem ... 87

Gambar 4.1.1.e folder suffix ... 88

Gambar 4.1.2.a. folder index ... 89

Gambar 4.1.3.a folder koleksi ... 90

(20)

Gambar 4.1.3.c folder koleksi-segmen ... 92

Gambar 4.1.3.d folder koleksi-parsing ... 94

Gambar 4.1.3e folder koleksi-passage ... 95

Gambar 4.3.1.a halaman home ... 116

Gambar 4.3.1.b form pertanyaan ... 117

Gambar 4.3.2.a halaman jawaban ... 117

Gambar 4.3.3.a halaman tentang ... 118

Gambar 4.3.4.a halaman kredit system... 119

Gambar 4.3.5.a halaman cara kerja system ... 120

Gambar 4.3.6.a halaman evaluasi... 120

(21)

PENDAHULUAN

1.1LATAR BELAKANG

Dengan adanya komputer dan internet, pertukaran informasi dapat terjadi dengan sangat cepat, dan saat ini, informasi sudah menjadi sebuah kebutuhan.

Informasi yang dapat kita peroleh sangat banyak, tetapi hanya beberapa informasi

saja yang diperlukan, dan sering terjadi kesulitan dalam mencari informasi yang

dibutuhkan dari miliaran informasi yang ada di internet. Untuk itulah maka diciptakan mesin pencari. Mesin pencari adalah sebuah sistem yang dirancang

untuk membantu seseorang menemukan file-file yang disimpan dalam komputer

maupun di dalam server.

Saat ini dengan adanya mesin pencari, pencarian dokumen yang dibutuhkan

dapat dilakukan dengan memasukkan kata-kata kunci dari dokumen yang

dimaksud. Kemudian, mesin pencari akan mengembalikan informasi mengenai

dokumen-dokumen yang relevan terhadap kata kunci yang diberikan. Tetapi,

seringkali, yang dibutuhkan bukanlah sebuah dokumen, melainkan hanya

sebagian dari dokumen itu. Misalnya saat ingin mengetahui “siapa yang menculik

Sinta?”. Bila menggunakan mesin pencari untuk menemukan jawaban dari

pertanyaan tersebut, maka mesin pencari akan mengembalikan

dokumen-dokumen Ramayana. Dokumen tersebut harus dibaca untuk mendapatkan

jawaban atas pertanyaan, padahal yang diinginkan hanyalah kata “Rahwana”,

(22)

bukan keseluruhan cerita Ramayana. Untuk menjawab permasalahan itu, maka

dibutuhkan Sistem Tanya Jawab.

Sistem Tanya Jawab menerima masukan berupa pertanyaan dengan bahasa

natural, atau bahasa sehari-hari, kemudian memproses pertanyaan tersebut

menjadi sebuah kueri, kueri tersebut digunakan untuk mencari jawaban pada

koleksi dokumen.

Saat ini sudah banyak penerapan Sistem Tanya Jawab, baik Sistem Tanya

Jawab dengan tema tertentu maupun Sistem Tanya Jawab secara umum. Beberapa

yang sudah dikerjakan di Indonesia adalah Sistem Tanya Jawab Alkitab[Gu] yang

menggunakan koleksi dokumen Alkitab berbahasa Inggris untuk mendapatkan

jawaban dari pertanyaan yang diberikan. Pertanyaannya pun juga berkisar

mengenai Alkitab dan menggunakan bahasa Inggris.

Sistem Tanya Jawab yang umum, biasanya menggunakan koleksi dokumen

dari world wide web, dan pertanyaannya pun dapat apa saja. Dalam skripsi ini, Tema yang dipilih adalah cerita wayang, sementara untuk koleksi dokumennya

menggunakan koleksi dokumen cerita wayang dari penyimpanan lokal (tidak

menggunakan koleksi dari world wide web). Skripsi ini memilih tema tersebut dengan harapan dapat lebih fokus dalam menangani pertanyaan dan pencarian

(23)

1.2RUMUSAN MASALAH

Dari latar belakang masalah di atas dapat dirumuskan menjadi beberapa

masalah sebagai berikut :

1. Bagaimana memproses pertanyaan menjadi sebuah kueri?

2. Bagaimana mencari dokumen yang relevan dengan kueri?

3. Bagaimana mengekstrak jawaban dari dokumen yang relevan?

1.3BATASAN MASALAH

1. Sistem ini hanya menggunakan koleksi dokumen teks cerita wayang

berbahasa Indonesia, yaitu cerita Mahabarata dan Ramayana yang disimpan di

penyimpanan local (bukan world wide web).

2. Pertanyaan yang diajukan menggunakan bahasa Indonesia dengan kalimat

sederhana.

3. Pertanyaan yang diajukan berkisar tentang cerita wayang.

4. Jawaban pertanyaan dibatasi pada tipe person, tempat, jumlah (angka), relasi, dan senjata.

5. Jawaban pertanyaan terdiri dari satu atau dua kata.

6. Untuk lebih memahami konteks, ditambahkan potongan cerita dimana

jawaban berada.

7. Sistem ini merupakan sistem Ad Hoc, dimana koleksi dokumen tidak bertambah, hanya pertanyaannya saja yang berubah.

(24)

9. Skripsi ini terfokus pada pembuatan sistem tanya jawab, sehingga pembuatan

website tidak dibahas secara detail.

1.4TUJUAN DAN MANFAAT

Tujuan dari pembuatan skripsi ini adalah membuat sebuah sistem yang

mampu menerima masukan berupa pertanyaan dalam bahasa natural dan

memberikan jawaban yang sesuai.

Manfaat dari pembuatan skripsi ini adalah untuk mengenalkan cerita wayang.

1.5METODOLOGI PENELITIAN

1. Studi pustaka mengenai Sistem Tanya Jawab, Information Retrieval dan Perl. 2. Mengumpulkan koleksi dokumen cerita wayang dalam bahasa Indonesia.

3. Membuat contoh kueri (pertanyaan) dari koleksi dokumen tersebut.

4. Pembuatan sistem menggunakan metode waterfall. Langkah-langkahnya yaitu:

• Perancangan sistem

• Implementasi Sistem

• Melakukan uji coba dengan sample kueri yang sudah dikumpulkan.

(25)

1.6SISTEMATIKA PENULISAN

BAB I PENDAHULUAN

Bab I berisi tentang penjelasan awal masalah, masalah apa yang dihadapai,

rumusan masalah, batasan masalah, dan metode penelitian.

BAB II LANDASAN TEORI

Bab II berisi landasan-landasan teori yang akan mendunkung pembuatan

skripsi antara lain mengenai Information Retrieval, Sistem Tanya Jawab, dan fungsi-fungsi bahasa Perl yang akan di gunakan dalam pembuatan program.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab III berisi tentang analisis dan perancangan sistem yang akan dibuat,

Diagram Alir Data, flowchart, diagram berjenjang, dan disain user interface.

BAB IV IMPLEMENTASI SISTEM

Bab IV berisi pembuatan dan implementasi sistem, bahasan script (kode program) yang digunakan.

BAB V ANALISA HASIL IMPLEMENTASI

Bab V berisi penerapan dan pengujian sistem beserta hasil evaluasi sistem.

(26)

Bab V berisi kesimpulan dari keseluruhan pembuatan sistem dan saran

(27)

LANDASAN TEORI

2.1 Information Retrieval

Definisi Pemerolehan Informasi atau Information Retrieval (IR) adalah menemukan sebuah material atau informasi dari sebuah koleksi dokumen

berskala besar yang tidak terstruktur yang dapat memenuhi sebuah kebutuhan

informasi. IR digunakan untuk mengatasi "banjir informasi".

Aplikasi-Aplikasi IR antara lain digunakan untuk:

1. mesin pencari pada internet.

2. Automatic summarization, merupakan sistem yang dapat membuat sebuah ringkasan dari sebuah dokumen atau lebih.

3. Document classification, adalah sistem yang memilah-milah sekumpulan dokumen ke dalam klasifikasinya.

4. Recommender systems, adalah sistem yang memberikan rekomendasi berdasarkan data yang ada.

5. Question answering, adalah sistem yang menerima pertanyaan dan mencari jawabannya pada koleksi dokumen yang dimilikinya.

Proses dalam IR secara umum dapat dijelaskan pada gambar 2.1

(28)

User

Indexing DB Manager Module

Index

Gambar 2.1.a : Diagram proses Pemerolehan Informasi

Penjelasan proses Pemerolehan Informasi:

Dari sisi database, database diproses sebagai berikut :

1. Text database, melalui DB Manager Module diolah dalam proses text

operation.

2. Hasil dari text operation digunakan dalam proses indexing

3. Proses indexing menghasilkan sebuah fileindex.

Dari sisi user:

1. User menginputkan kebutuhan user

(29)

3. Kebutuhan user yang telah diolah kemudian dibuat menjadi kueri. 4. Dilakukan pencarian dengan menggunakan kueri pada fileindex. 5. Hasil dari pencarian kemudian di ranking dan ditampilkan pada user. 6. Pemerolehan informasi juga memungkinkan terjadinya feedback dari

user. Feedback ini kemudian digunakan untuk pembuatan kueri.

2.2 Sistem Tanya Jawab

Sistem tanya jawab (QA) adalah salah satu jenis Information Retrieval. Sistem ini mampu me-retrieve jawaban dari pertanyaan yang diajukan dalam

bahasa alami dari koleksi dokumen yang dimilikinya (dapat juga dari world

wide web). Dari seluruh jenis aplikasi Information Retrieval, QA merupakan aplikasi yang paling banyak menggunakan pemrosesan bahasa alami, dan

diyakini merupakan generasi berikutnya dari mesin pencari.

Berdasarkan koleksi dokumennya, QA terbagi menjadi dua :

Closed-domain question answering : merupakan QA system yang

menangani pertanyaan dengan domain tertentu, contohnya adalah bidang

otomotif, kesehatan, alkitab dan lain-lain. QA system dengan closed-domain dapat dikatakan lebih mudah, karena pemrosesan bahasa alaminya dapat mengenali istilah-istilah dalam domain tersebut.

Open-domain question answering : merupakan QA system yang

(30)

dan pengetahuan tentang dunia. Selain itu, dibandingkan dengan

closed-domain, Open-domain menangani koleksi data yang jauh lebih banyak untuk menemukan jawaban.

Proses dari QA system antara lain adalah :

1. Pemrosesan Kueri

2. Pencarian Dokumen

3. Ekstraksi Jawaban

2.3 Ad Hoc Retrieval

Merupakan tipe retrival dimana koleksi dokumen tetap sementara kueri

berubah-ubah.

2.4 Kueri

Kueri adalah bentuk lain dari pertanyaan atau kebutuhan. Kueri dalam IR

adalah kueri yang hasilnya memungkinkan untuk diurutkan (ranked). Ada

beberapa jenis kueri, di antaranya adalah Keyword-Based Querying, Pattern

Matching, dan Structural Queries.

Keyword-Based Querying adalah kueri yang terdiri dari kata kunci-kata kunci dari dokumen yang akan dicari. Keyword-Based Querying populer karena intuitive, ekspresinya mudah , dan memudahkan ranking secara cepat. Kueri ini dapat terdiri dari satu kata kunci atau beberapa susunan kata kunci yang

(31)

1. Single-word Queries

Pada kueri ini, sebuah dokumen dianggap merupakan sekumpulan

kata-kata, tidak memperhatikan kalimat atau konteks di mana suatu kata

berada. Hasil dari kueri ini adalah dokumen-dokumen yang setidaknya

memiliki atau mengandung paling tidak satu kata dari kata-kata kunci

pada kueri. Hasilnya di-ranking berdasarkan banyaknya jumlah kata kunci kueri yang ditemukan dalam dokumen itu dengan menggunakan

metode statistik “term frequency” yang akan menghitung berapa kali kata itu muncul dalam sebuah dokumen, dan “inverse document

frequency” yang akan menghitung jumlah dokumen yang mengandung kata-kata tersebut.

2. Context Queries

Context Queries memiliki dasar bahwa kata-kata yang kemunculannya dekat satu sama lain mungkin lebih tinggi tingkat relevansinya

dibandingkan bila kata-kata itu muncul secara terpisah. Context Queries

dibagi menjadi Phrase Query dan Proximity Query. Phrase Query

adalah kueri yang mengijinkan kata-kata tersebut muncul dengan jarak

yang dekat atau jarak minimum yang ditentukan. Proximity adalah kueri yang memperbolehkan jarak maksimum dari kemunculan kata-kata

(32)

3. Boolean Queries

Boolean Queries merupakan kueri yang paling tua. Terdiri dari kata-kata kunci dan operator Boolean yang bekerja sebagai operand. Operator yang biasa digunakan adalah operator OR, AND, dan BUT.

2.5 Segmentasi

Segmentasi adalah membagi sesuatu menjadi bagian-bagian yang lebih kecil

dengan aturan tertentu.

2.6 Stemming

Stemming adalah proses penghilangan prefiks dan sufiks dari sebuah kata untuk

mendapatkan kata dasarnya. Stemming dilakukan atas dasar asumsi bahwa

kata-kata yang memiliki kata-kata dasar yang sama memiliki makna yang serupa sehingga

dokumen-dokumen yang di dalamnya terdapat kata-kata dengan kata dasar yang

sama juga relevan dengan kuerinya. Terdapat beberapa metode untuk melakukan

Stemming diantaranya adalah metode Porter, Lovins, Dawson, dan Krovetz. Ada

juga algoritma Proter Stemmer yang telah dimodifikasi untuk Bahasa Indonesia.

Porter Stemmer for Bahasa Indonesia dikembangkan oleh Fadillah Z. Tala pada

tahun 2003. Implementasi Porter Stemmer for Bahasa Indonesia berdasarkan

English Porter Stemmer yang dikembangkan oleh W.B. Frakes pada tahun 1992.

Karena bahasa Inggris datang dari kelas yang berbeda, beberapa modifikasi telah

(33)

bahasa Indonesia.

Desain Porter Stemmer for Bahasa Indonesia dapat dilihat pada gambar 2.8.a

Gambar 2.6.a desain Stemming

Pada gambar 2.8.a terlihat beberapa langkah ‘removal’ menurut aturan yang ada

pada tabel 1 sampai dengan tabel 5.

(34)

Tabel 2 : kelompok rule kedua : inflectional possessive pronouns

Tabel 3 : Kelompok rule ketiga : first order of derivational prefixes

(35)

Tabel 5 : Kelompok rule kelima : derivational suffixes

2.7 Parsing

Untuk pemrosesan, dokumen dipilah menjadi unit-unit yang lebih kecil

misalnya berupa kata, frasa atau kalimat. Unit pemrosesan tersebut disebut

sebagai token. Parsing merujuk pada proses pengenalan token yang terdapat dalam rangkaian teks. Oleh karena itu bagian dasar dalam parsing adalah algoritma pengambil token dari teks yang disebut tokenizer. Proses ini memerlukan pengetahuan bahasa untuk menangani karakter-karakter khusus,

serta menentukan batasan satuan unit dalam dokumen.

2.8 Stopword, Stoplist, dan StopwordRemoval

Stopwords adalah kata-kata yang tidak signifikan dalam sebuah dokumen seperti kata-kata “dan”, “hingga”, “di”, “ke”, “dari”. Stoplist adalah daftar

(36)

2.9 Indexing

Indexing adalah membuat sebuah struktur data dari seluruh dokumen untuk mempercepat proses pencarian. Indeks biasanya digunakan untuk koleksi

dokumen yang bersifat semi-statis. Semi-statis maksudnya adalah koleksi

dokumen tersebut dapat bertambah atau berubah jumlahnya namun dalam

interval waktu tertentu, tidak berubah setiap detik.

Salah satu metode indexing adalah : InvertedFiles (inverted index)

Inverted files adalah mekanisme dalam mengindeks sebuah koleksi dari dokumen teks yang bertujuan untuk mempercepat proses pencarian. Struktur

inverted file terbagi menjadi dua elemen : vocabulary dan occurrences.

Vocabulary adalah kumpulan dari kata yang berbeda yang terdapat di dalam teks. Occurrences adalah daftar dari semua posisi teks dimana kata-kata tersebut muncul.

2.10 Ranking

Dalam skripsi ini ranking adalah proses mengurutkan sekumpulan dokumen berdasarkan tingkat relevansinya terhadap kueri. Salah satu metodenya adalah

dengan menggunakan Term Frequency digabungkan dengan Inverse

Document Frequency.

(37)

Inverse document frequency (idf) adalah inverse document frequency dari suatu kata.

Rumus dalam penggunaan tf*idf adalah :

Dimana :

Wij = weight (bobot) dari kata i pada dokumen j

tfij = jumlah kemunculan kata I pada dokumen j

idfi = inverse document frequency dari kata i

N = jumlah seluruh dokumen

dfi = jumlah dokumen yang mengandung kata i

kemudian tingkat similiaritinya dihitung dengan menggunakan Similarity

Measure-Inner Product dengan rumus:

Dimana :

Sim (dj, q) = tingkat kesamaan dokumen j terhadap kueri

dj = dokumen j

q = kueri

t = terms (jumlah kata dalam kueri)

(38)

Wiq = bobot kata i pada kueri

2.11 Diagram Aliran Data [Whitten]

Diagram Aliran Data adalah suatu model proses yg digunakan utk

menggambarkan aliran data yg melalui sebuah sistem dan bagaimana proses

atau kerja yg dilakukan oleh sistem.

Sinonimnya adalah bubble chart, transformation graph, dan process model.

Gambar 2.11.a contoh DAD

Simbol dalam Diagram Aliran Data

Data flow

(39)

Menggambarkan data yang bergerak atau berpindah. Sebuah data

flow dapat juga digunakan untuk merepresentasikan pembuatan (creation), pembacaan (reading), penghapusan (deletion) atau perubahan (updating) data dalam sebuah file atau database

(disebut sebagai sebuah data store).

• External Agent

Orang di luar sistem yang berinteraksi dengan sistem

Data store

Melambangkan sebagai database atau file.

• Proses

Melambangkan sebuah proses.

(40)

Menyatukan beberapa aliran data ataupun untuk memecah aliran

data menjadi beberapa lairan data yang asalnya dari satu aliran data.

Gambar 2.11.b contoh DAD

2.12 Perl dan XAMPP

Perl adalah bahasa pemrograman yang dapat digunakan untuk lintas platform. Bahasa pemrograman ini di buat oleh Larry Wall dan pertama kali dirilis pada

tahun 1987. Perl merupakan software open source dibawah Artistic License

atau GNU General Public License (GPL).

Bahasa ini dapat digabungkan dengan HTML, XML, dan bahasa mark-up

lainnya, selain itu bahasa ini mendukung pemrograman secara procedural

maupun object-oriented. Interpreter Perl dapat digabungkan dengan sistem lain.

Perl merupakan bahasa pemrograman web yang populer untuk kemampuan

(41)

dengan web server untuk mempercepat proses, kecepatannya mencapai 2000% dari penggunaan bahasa lain. Untuk menggabungkan Interpreter Perl dengan Apache web server, dapat digunakan mod_perl.

XAMPP adalah aplikasi gabungan dari empat software server, yaitu web

server Apache, MySQL, PHP, dan Perl. XAMPP sudah memiliki fasilitas Perl,

ter Perl berada.

Un er sintaksnya adalah :

karakter ‘$’. Untuk

variabel array, dalam menggunakan awalan karakter ‘@’,

$_angka = 10;

namun secara default belum terkoneksi, untuk mengoneksikannya dilakukan

dengan mengubah konfigurasi mod_perl. Selain itu, modul-modul Perl yang

terdapat dalam XAMPP dapat di tambahi dengan modul-modul yang

diperlukan yang belum ada di XAMPP.

Suatu file Perl selalu diawali dengan sintaks: #!/usr/local/bin/perl

Yang merupakan path menuju tempat interpre

tuk menampilkan tulisan di lay

print "Hello, World!\n";

Variabel-variabel dalam Perl selalu diawali dengan

pendeklarasian

kemudian baru diakses dengan menggunakan karakter ‘$’. Untuk variable

hash, dalam pendeklarasiannya menggunakan awalan karakter ‘%’, kemudian

baru diakses dengan menggunakan karakter ‘$’ Untuk komentar

menggunakan tanda ‘#’.

(42)

@nilai = (10, 7, 6 # mencetak '6'

, 5, 9, 8);

’, 10, ‘nilai2’, 20}; ’};

Op menggunakan If dan else.

Perulangan dapat digunakan dengan statement for, foreach maupun while.

foreach () {# statemen}

Me

maka harus file dibuka dengan fungsi open, contoh:

ariable $fh adalah filehandle yang diperlukan untuk membaca dan menutup

jutnya setiap baris dibaca dengan operator <>. sebagai berikut: print $prima1[2];

%hash = {‘nilai1 Print $hash{‘nilai1

erator kondisional dalam Perl

if ( kondisi1) {# statemen} elsif (kondisi2) {

# statemen

} elsif (kondisi3) { # statemen

} else { # statemen }

for ( ; ; ) { # statemen }

while(kondisi) {# statemen }

mbaca dari file teks

Sebelum file dapat dibaca

open($fh, '/etc/passwd');

V

(43)

while($line = <$fh>) { # memproses $line }

Setelah selesai file ditutup dengan fungsi close, contoh: close($fh);

Menulis ke file teks

Perintah yang sama dengan program di atas dapat digunakan untuk menulis ke

file. Pertama, file dibuka dengan mode 'tulis': open($fh, “> /path/ke/file”);

selanjutnya dapat ditulis dengan perintah print, menggunakan file handle, sbb: print $fh “baris teks yang ditulis ...\n”;

Seperti halnya dalam hal membaca, maka filehandle harus ditutup dengan close.

Berikut ini contoh membaca dari file dan menulis ke file baru, atau mengcopy

file:

# mengcopy /etc/profile $fnam = '/etc/profile';

$fbaru = '/home/copyprofile';

open($fh1, $fnam) or die “gagal baca $fnam, $!”;

open($fh2, “>$fbaru”) or die “gagal menulis $fbaru, $!”; while($line = <$fh1>) {

print $fh2 $line; }

(44)

close($fh2);

Ekspresi “or die ... “ digunakan sebagai error handler jika file tidak dapat dibuka. Variabel khusus $! digunakan untuk menampilkan pesan error dari

(45)

ANALISA DAN DESAIN SISTEM

3.1. Perancangan Sistem

Sistem tanya jawab wayang ini menerima input pertanyaan dalam Bahasa Indonesia berupa teks dan memberi output berupa jawaban dalam bentuk teks singkat beserta potongan dokumen tempat ditemukannya jawaban. Secara umum, diagram

konteksnya seperti pada gambar 3.1.a

Gambar 3.1.a diagram konteks sistem

Dalam sistem ini hanya terdapat satu tipe pengguna, yaitu user yang memanfaatkan sistem ini untuk bertanya seputar wayang. Sistem tanya jawab wayang ini

merupakan bagian dari IR dengan tipe Ad Hoc, di mana hanya pertanyaannya saja yang berubah, sementara bagian koleksi tetap, maka dari itu tidak terdapat user

yang memiliki akses untuk menambah koleksi.

Sebelum sebuah sistem tanya jawab dapat menjawab pertanyaan, perlu dilakukan

pengolahan pada koleksi dokumen. Pengolahan ini disebut tahap preproses. Setelah

dilakukan tahap preproses maka akan dilakukan proses indexing, yang akan memudahkan dan mempercepat proses pencarian untuk menemukan jawaban. Baru

setelah itu, sistem tanya jawab dapat menggunakan koleksi untuk menemukan

jawaban dari pertanyaan user. Gambar 3.1.b Diagram Aliran Data (DAD) level 1

(46)

akan menjelaskan proses-proses ini.

Gambar 3.1.b Diagram Aliran Data level 1

Tahap preproses mengubah koleksi dokumen wayang yang masih mentah menjadi

dokumen yang terstruktur. Tahap ini menghasilkan beberapa file preproses yang akan digunakan pada tahap indexing. Tahap preproses akan dibahas pada sub bab 3.1.1

Tahap indexing adalah tahap dimana file-file koleksi di-index untuk mempercepat proses pencarian jawaban. Tahap ini menggunakan file koleksi dan file preproses yang akan menghasilkan file index. Tahap indexing akan dibahas pada sub bab 3.1.2

(47)

3.1.1. Preproses (Proses 1)

Karena sistem ini bertipe Ad Hoc, maka tahap preproses ini hanya dilakukan satu kali saja, setelah itu dapat dilakukan proses tanya berulang-ulang.

Tahap preproses terdiri dari segmentasi dokumen, pembuatan file kosakata,

file token, stopword removal, Stemming dan parsing, dan pembuatan

passage.

Diagram Alir Data level 2 untuk tahap preproses digambarkan pada Gambar

(48)
(49)

a. Segmentasi dokumen (Sub Proses 1.1P)

Koleksi yang dimiliki sistem ini terdiri dari dokumen-dokumen cerita

yang panjang setiap dokumennya berbeda-beda. Dokumen yang

memiliki jumlah kalimat atau kata yang banyak, akan dibagi menjadi

beberapa dokumen. Pembagian menjadi beberapa dokumen ini akan

dilakukan secara manual. Pembagian ini tidak berdasarkan pada jumlah

paragraf maupun kalimat. Pembagian dilakukan perbabak cerita, di mana

suatu babak biasanya memiliki subyek tertentu. Bila menggunakan

pembagian perjumlah paragraf, paragraf satu dan yang lainnya mungkin

memiliki satu subyek yang sama yang hanya di ceritakan pada paragraf

pertama, sehingga bila paragraf kedua dipisah dari paragraf pertama,

maka pragraf ini akan kehilangan subyeknya. Setelah dibagi ke dalam

beberapa bagian, seluruh koleksi akan diberi nama file berupa angka dari 1 sampai N (jumlah seluruh dokumen). Jumlah dokumen tersebut

disimpan dalam sebuah file index.txt sebagai file info.

Input-an untuk proses ini adalah koleksi dokumen wayang hasil scan dan

output-nya adalah koleksi dokumen wayang yang telah disegmentasi.

b. Pembuatan file kosakata (Sub Proses 1.2P)

(50)

Daftar kosakata dapat diambil dari Kamus Besar Bahasa Indonesia

(KBBI), namun tidak semua kosakata yang ada dalam KBBI digunakan

dalam koleksi dokumen. Maka dari itu, akan lebih relevan bila daftar

kosakata diambil dari kosakata yang digunakan dalam koleksi.

Proses ini membuat daftar seluruh kosakata yang ada dalam koleksi

dokumen. Input-an dari proses ini adalah koleksi hasil segmentasi dan

(51)
(52)

File ini akan disimpan dalam nama kosakata.txt dengan format sebagai berikut:

kosakata1:cacah_kosakata1 kosakata2:cacah_kosakata2

Contoh isi file kosakata.txt adalah sebagai berikut:

Abadi:120 Abu:53

c. Pembuatan file Token (Proses 1.3P)

Seperti yang telah dijelaskan pada pembatasan masalah, bahwa topik

pertanyaan dibatasi pada person, tempat, senjata, jumlah(angka) dan

relasi, maka kosakata tersebut merupakan kosakata yang merupakan

kandidat jawaban yang disebut sebagai token. File ini akan berguna dalam proses parsing atau yang juga biasa disebut sebagai tagging atau

tokenisasi.

(53)

yang telah dibuat dalam proses sebelumnya. Input dari sub proses ini adalah file kosakata. Output-nya adalah file token person.txt, tempat.txt, senjata.txt, angka.txt, dan relasi.txt.

Setiap filenya memiliki format yang sama yaitu :

kosakata1:cacah_kosakata1 kosakata2:cacah_kosakata2

Contohnya pada person.txt adalah

arimbi:98 arjuna:230

d. StemmingFile (Sub Proses 1.4P)

Proses Stemming ini menggunakan file suffix yang sudah disiapkan terlebih dahulu secara manual. Proses ini melakukan operasi stem pada

file-file kosakata, antara lain : file kosakata, person, senjata, relasi, tempat, dan angka. Tujuan proses stem ini adalah untuk mendapatkan kata dasar dari setiap kosakata yang ada. Stem juga dilakukan pada file

(54)

koleksi 1.5P) seluruh kata yang ada di dokumen akan di stem, termasuk kata-kata atau nama-nama yang merupakan kata-kata token. Bila file-file

token tidak di-stem, maka akan terjadi ketidakkonsistenan data.

Proses stem-nya menggunakan porter stemmer yang telah dijelaskan pada bab II. Pada Gambar3.1.1c diperlihatkan flowchart proses

Stemming.

Gambar 3.1.1.c desain Stemming

Dalam proses pembuatan file kosakata, bila terdapat kata “rumahku” dan “rumah”, kedua kata tersebut dianggap berbeda. Sementara, setelah

(55)

“rumah”, dan dianggap sama dengan kata yang kedua. Kedua kata

tersebut harus digabungkan, dan jumlah (cacah) katanya harus

dijumlahkan, maka dari itu, proses Stemming file keseluruhan digambarkan pada flowchart pada gambar 3.1.1d

(56)

Contoh file sebelum di stem : arjuna:1028

akankah:301 akan:200 anak:459 ... ...

Setelah dilakukan proses stem : arjuna:1028

akan:501 anak:459 ... ...

e. Stemming Koleksi(Sub Proses 1.5P)

Proses Stemming pada koleksi dilakukan seperti pada proses Stemming file , hanya saja input-annya adalah koleksi dokumen tanpa stopword

dan output-nya adalah koleksi hasil Stemming. Contoh dokumen sebelum di-stem:

Abimanyu Terjebak Perangkap Mahadigda. Dia putra Arjuna yang lahir dari cintanya yang pertama kepada seorang wanita yang bernama Sumbadra putri Raja Basudewa dari Dewi Badraini. Abimanyu kekasihnya satria muda usia, sopan tutur bahasanya, hormat kepada orang tua dan tak segan menolong sesamanya...

(57)

Contoh dokumen setelah di-stem:

abimanyu jebak angkap mahadigda

dia putra arjuna yang lahir dari cinta yang tama pada seorang wanita yang nama sumbadra putri raja basudewa dari dewi badrain. abimanyu kasih satria muda usia, sopan tutur bahasa, hormat pada orang tua dan tak segan tolong sesama....

...

f. Pembuatan File Sinonim(Sub Proses 1.6P)

Pada proses ini akan dibuat dua buah file yaitu file sinonim kata dan file

sinonim kueri.

Dalam Bahasa Indonesia terdapat kata-kata yang berbeda tetapi memiliki

arti yang sama. Kata-kata ini dapat digunakan untuk membuat kueri,

agar dokumen-dokumen yang memiliki kata yang sama artinya juga

ditemukan.

Selain kata-kata dalam Bahasa Indonesia, juga terdapat istilah wayang

yang memiliki arti yang sama atau cara penulisan yang berbeda, seperti

penulisan ‘Kurawa’ ada yang menulis ‘Korawa’, ada yang menulis

‘Kurowo’. Secara umum penulisannya adalah ‘Kurawa’. Kata-kata

tersebut juga akan dimasukkan dalam file sinonim kata.

(58)

Karena koleksi yang dimiliki adalah dokumen-dokumen cerita sastra,

maka jarang ditemui bahasa yang memiliki arti langsung. Contohnya

adalah kueri “Siapa ayah gatotkaca?” dalam koleksi tidak ditemukan

dokumen yang mengandung “ayah gatotkaca adalah Bima”. Dalam

koleksi lebih banyak ditemukan dokumen-dokumen yang mengandung :

“Bima menikah dengan Hidimbi. Dari perkawinan mereka, lahirlah

seorang putera yang diberi nama Gatotkaca.”

“Ghattotkacha adalah seorang tokoh dalam wiracarita Mahabarata yang

dikenal sebagai putra Bimasena atau Wrekodara dari keluarga

Pandawa.”

Dari dua kalimat tersebut kata ‘ayah’ maupun ‘bapak’ tidak ditemukan,

padahal kedua kalimat tersebut mengandung jawaban dari pertanyaan

user. Dalam domain ini, hubungan ayah anak lebih sering dinyatakan dalam kata ‘putera’ atau ‘putra’ atau dapat juga diberi sinonim ‘anak’,

sehingga dalam pembentukkan kuerinya, kata ‘ayah’, ‘putra’, maupun

‘anak’ diikutsertakan. Begitu juga dengan hubungan relasi kakek dan

cucu, suami dan istri.

Kata-kata yang seperti ini akan dimasukkan dalam file sinonim kueri. Saat pembentukan kueri kata-kata yang memiliki sinonim ini akan

diikutsertakan.

(59)

sinonimkueri.txt dengan format yang sama yaitu :

kosakata1, sinonim1_kosakata1, sinonim2_kosakata1,….. kosakata2, sinonim1_kosakata2

Contoh pada sinonim kata:

arjuna, harjuna, arjuno …. putra, putera, anak

Contoh pada sinonim kueri:

Suami, istri Ayah, anak

g. Membuat File Stoplist (Sub Proses 1.7P)

(60)

berikut :

Pertama, file stem kosakata dibersihkan terlebih dahulu dari kata-kata yang terdapat pada file-filestem token. Hal ini dilakukan agar kata-kata token tidak dianggap sebagai stopword.

Kedua, hitung jumlah kosakta yang tersisa dari proses pertama.

Kemudian, jumlahkan seluruh cacah setiapkata. Setelah mendapatkan

jumlahkata dan jumlah seluruh cacah kata, kita dapat mencari rata-rata

kemunculan setiap kata :

Rata-rata kemunculan kata = jumlah seluruh cacah kata dibagi dengan

jumlah seluruh kata yang ada.

Ketiga, setiap kata yang kemunculan (dilihat dari cacah katanya) lebih

dari 5 (lima) kali kemunculan kata rata-rata, akan dianggap sebagai

stopword.

Kata-kata yang dianggap stopword disimpan di dalam file stoplist.txt

h. RemoveStopword (Sub Proses 1.8P)

Proses ini menghilangkan stopword pada koleksi dokumen dan filestem

kosakata, caranya adalah membuka setiap file koleksi yang ada, dan menghapus setiap kata yang termasuk dalam stoplist. Hasil dari proses

ini adalah koleksi hasil removestopword dan file katakunci. Dokumen awal (dari koleksi stem):

(61)

abimanyu kasih satria muda usia, sopan tutur bahasa, hormat pada orang tua dan tak segan tolong sesama..

Dokumen setelah stopword removal

abimanyu jebak angkap mahadigda. putra arjuna lahir cinta tama wanita nama sumbadra putri raja basudewa dewi badrain. abimanyu kasih satria muda usia, sopan tutur bahasa, hormat tua segan tolong sesama..

i. Parsing / Tagging (Sub Proses 1.9P)

Proses parsing adalah memberi tag pada kata-kata yang penting yang nantinya setelah diberi tag disebut dengan token. Pemberian tag ini membuat format file dokumen menjadi format XML. Formatnya adalah sebagai berikut :

<?XML VERSION =”1.0” ?> <document no=” ”>

<paragraf> <kalimat>

<person> </person> <tempat> </tempat> <relasi> </relasi> <senjata> </senjata> <angka> </angka>

</kalimat> </paragraf> </document>

(62)

dokumen tersebut memiliki kata yang terdapat dalam file person. Untuk pemberian tag person, tempat dan lain-lain dapat menggunakan file-file

token yang sudah dikelompokkan. Prosesnya ditunjukkan dalam gambar

flowchart 3.1.1e

(63)

Contoh sebuah file dokumen yang telah di parsing adalah sebagai berikut: <?XML VERSION =”1.0” ?>

<document no=”54”> <paragraf>

<kalimat> <person> Arjuna </person> karakter mulia, jiwa satria, iman kuat, tahan goda dunia, gagah berani, rebut jaya beri juluk <person> Dananjaya </person>. </kalimat> <kalimat> Musuh takluk, ia beri juluk <person>Parantapa</person>, arti takluk musuh. </kalimat> <kalimat> turun <person> Kuru </person> silsi Dinasti <person> Kuru </person>, ia juluk <person> Kurunandana </person>, arti putera sayang <person> Kuru </person>. </kalimat> <kalimat> Ia nama <person> Kuruprawira </person>, arti satria Dinasti <person> Kuru </person> baik, arti harfiah Perwira <person> Kuru </person>.</kalimat>

</paragraf> </document>

Input dari proses ini adalah file koleksi dokumen yang telah di-stem dan

file-file token. Output-nya adalah koleksi hasil parsing dengan format XML.

j. Pembuatan Passage (Sub Proses 1.0P)

Setelah dilakukan proses pemberian tag, selanjutnya dokumen-dokumen tersebut dipecah lagi menjadi passage-passage. Passage akan digunakan dalam mempersempit pencarian jawaban dalam proses ekstraksi jawaban.

Passage dipecah berdasarkan paragraf. Satu paragraf akan menjadi satu

(64)

maka akan dipecah lagi menjadi beberapa passage dengan maksimal jumlah kalimat adalah 10. Langkah-langkah pembuatan passage

digambarkan dalam gambar 3.1.1f.

(65)

Filepassage akan diberinama dengan format

No_dokumen_awal-no_passage_dari_dokumen

Contohnya bila passage itu berasal dari dokumen no 54 dan passage itu merupakan passage pertama dari dokumen tersebut, makan nama filenya adalah

54-1.xml

Passage akan di simpan dalam format seperti berikut ini: <?XML VERSION =”1.0” ?>

<passage docno=“ “ no=” ”>

<kalimat>

<person> </person> <tempat> </tempat> <relasi>

</relasi> <senjata> </senjata> <angka> </angka>

</sentence>

</passage>

Contoh sebuah passage :

<?XML VERSION =”1.0” ?> <passage docno=“54“ no=”7”>

(66)

Kuruprawira </person>, arti satria Dinasti <person> Kuru </person> baik, arti harfiah Perwira <person> Kuru </person>.</sentence> </passage>

Input-an dari proses ini adalah koleksi dokumen hasil parsing dan

output-nya adalah koleksi passage.

(67)

Gambar 3.1.1.g gambar file-file preproses

(68)

Gambar 3.1.1.h koleksi-koleksi dokumen

Tidak semua dari file-file atau koleksi ini akan digunakan. File-file atau koleksi yang akan digunakan akan terlihat pada proses 3. Selain dari file

atau koleksi yang digunakan di proses 3, file-file dan koleksi tersebut dapat dihapus.

3.1.2. Indexing (Proses 2)

Proses index terdiri dari empat sub proses yang dapat dilihat pada gambar 3.1.2.a

(69)

a. Pembuatan FileIndex Dokumen (Sub Proses 2.1P)

File index akan berisi kata kunci, jumlah munculnya katakunci dalam seluruh koleksi, jumlah dokomen yang mengandung kata kunci tersebut

dan dokumen apa saja yang mengandung kata kunci tersebut dan jumlah

munculnya dalam dokumen itu.

Format filenya adalah sebagai berikut :

kosakata1:jml_kosakata:jml_dokumen&doc:jml_kosakata;…;… kosakata2:jml_kosakata:jml_dokumen&doc:jml_kosakata;…;…

Contoh

Arjuna:20:5&6:10;9:4;13:2;15:4 Arimbi:10:3&3:2;4:5;7:3

Langkah-langkah pembuatan file index ini akan ditunjukkan pada

(70)

gambar 3.1.2.b Flowchart pembuatan file index

Input-an dari proses ini adalah file preindex dan koleksi hasil parsing.

(71)

b. Pembuatan FileIndexPassage (Sub Proses 2.3P)

Proses ini sama dengan proses pembuatan file index dokumen, hanya saja, yang di-index kali ini bukanlah dokumen melainkan passage. Cara pembuatan file index ini juga sama dengan cara pembuatan file index

dokumen, begitu juga dengan format file-nya. File index passage ini akan digunakan saat merankingpassage pada proses 3. Input dari proses ini adalah file pre-index dan koleksi passage, output-nya adalah file

indexpassage.

3.1.3. Pengolahan Pertanyaan dan Pencarian Jawaban (Proses 3)

Proses pengolahan pertanyaan dan Pencarian Jawaban adalah proses utama

dari Sistem tanya jawab. Proses ini berhubungan langsung dengan user, namun proses ini tidak dapat berjalan bila tidak dilakukan preproses dan

indexing. Proses ini akan dijalankan setiap user mengajukan pertanyaan. Terdapat empat sub proses dalam proses ini yang dapat dilihat pada gambar

(72)

Gambar 3.1.3.a DAD level 2 proses 3

a. Analisa Pertanyaan (Sub Proses 3.1)

Terdapat empat buah sub proses dalam proses ini yang dapat dilihat pada

(73)

gambar 3.1.3.b DAD level 3 proses 3.1

1. Pengelompokan Pertanyaan (Sub Proses 3.1.1P)

Pada blok proses ini terjadi proses pengelompokan pertanyaan.

Setiap pertanyaan akan dikelompokkan berdasarkan kata tanyanya :

Apa

Mewakili pertanyaan mengenai senjata, dan hubungan

Contoh pertanyaannya adalah :

Senjata apa yang Arjuna dapat dari dewa Indra?

Apa hubungan Pandu dan Kunti?

Siapa

Mewakili pertanyaan mengenai person

(74)

Siapa yang menculik Sinta?

Siapa ayah Gatotkaca?

Di mana

Mewakili pertanyaan mengenai tempat / lokasi

Contoh pertanyaannya adalah :

Di mana Yudhistira moksa?

Berapa

Mewakili pertanyaan mengenai jumlah / tanggal

Contoh pertanyaannya adalah :

Berapa jumlah pasukkan pandawa saat berperang di kuruksetra?

Abimanyu tewas pada hari keberapa dalam perang di kuruksetra?

Bila ada pertanyaan yang tidak menggunakan kata tanya diatas maka

dianggap bahwa “sistem tidak mampu atau belum mendukung

pertanyaan user”.

(75)

gambar 3.1.3.c Flowchart pengelompokkan pertanyaan jawaban

2. Stemming (Sub Proses 3.1.2P)

Stemming pada proses ini langkah-langkahnya sama dengan proses

Stemming pada proses 1.4.1P.

(76)

3.1.2P dan output-nya adalah pertanyaan yang telah di Stemming

menuju ke proses 3.1.4P

3. Stopword removal (Sub Proses 3.1.3P)

Stopword removal dilakukan dengan cara yang sama dengan proses 1.3.3P.

Input-an proses ini adalah pertanyaan tanpa kata tanya dari proses 3.1.1P, output-nya adalah pertanyaan tanpa stopword menuju ke proses 3.1.4P

4. Pembuatan Kueri (Sub Proses 3.1.4P)

Pembuatan kueri dilakukan dengan melihat pada file sinonim kueri dan file sinonim kata. Urutan pembuatannya adalah :

1. seluruh kata kunci diberi bobot 4.

2. kemudian seluruh kata kunci dicari persamaan kuerinya

dengan melihat file sinonim kueri. Kata-kata sinonim tersebut ditambahkan pada kata kunci, tetapi dengan bobot lebih kecil,

yaitu 1.

3. setelah itu, dengan menggunakan sinonim kata, apakah ada

kata-kata dalam pertanyaan yang memiliki sinonim, bila ada

masukkan juga sinonimnya sebagai kata kunci kueri dengan

bobot 1.

contohnya adalah pertanyaan “Siapa ayah gatotkaca?” Setelah

(77)

“ayah gatotkaca”.

1. setelah ditambah dengan sinonim kueri maka akan

menghasilkan : ayah, gatotkaca, anak.

2. kemudian dengan melihat pada sinonim kata, maka akan

menjadi : ayah, gatotkaca, anak, bapak, wrekudara, putra.

b. Pencarian dan Ranking Dokumen (Sub Proses 3.2)

Terdapat dua buah sub proses dalam proses ini yang dapat dilihat pada

gambar 3.1.3.c

Gambar 3.1.3.d DAD level 3 proses 3.2

1. Pencarian dokumen (Sub Proses 3.2.1P)

Proses ini menerima input-an berupa kueri dari proses 3.1, kueri tersebut kemudian di lakukan pada file index. Contoh setelah kueri dilakukan pada file index adalah sebagai berikut:

Ayah:5:2&2:2;6:3

Gatotkaca:4:3&1:2;5:1;6:1 Anak:12:3&2:3;6:7;9:2 Bapak:1:1&2:1

(78)

Putera:3:2&7:1;9:1 Putra3:1&10:3

Hasil pencarian dokumen tersebut kemudian digunakan untuk proses

berikutnya

2. Ranking dokumen (Sub Proses 3.2.2P)

Setelah mendapatkan dokumen yang relevan, maka akan dibuat

ranking relevansi dari tiap dokumen. Ranking dibuat melihat jumlah kata kunci yang terdapat pada dokumen itu dan dihitung

menggunakan perhitungan TF-IDF. Hasil perhitungan TF-IDF setiap

kata kunci kemudian dikalikan dengan bobotnya. Setelah selesai

dihuting, kemudian diurutkan yang terbersar dan diambil 10

dokumen teratas.

Output proses ini adalah urutan dokumen yang relevan terhadap pertanyaan.

c. Pencarian dan RankingPassage (Sub Proses 3.3)

Terdapat dua buah sub proses dalam proses ini yang dapat dilihat pada

(79)

gambar 3.1.3.e DAD level 3 proses 3.3

1. Pencarian Passage (Sub Proses 3.3.1P)

Dalam proses ini yang dilakukan adalah sama dengan yang

dilakukan pada proses 3.2.1P yaitu pencarian, bedanya pada proses

ini index yang digunakan adalah index passage. Contoh hasil dari kueri pada index passage:

Ayah:2:5&2-1:2;6-1:1;6-2:3

Gatotkaca:4:4&1-1:2;5-1:1;6-1:1;6-2:1 Anak:3:12&2-1:3;6-1:7;9-1:2

Bapak:1:1&2-2:1 Wrekudara:1:1&9-3:1 Putera:2:3&7-4:1;9-3:1 Putra:1:3&10-2:3

Dari setiap kata kunci akan didapatkan baris index yang berisi

passage mana saja yang mengandung kata tersebut. Passage-passage

ini kemudian diperiksa dengan top-10 ranking dokumen hasil dari

(80)

passage itu akan dibuang.

Passage-passage yang merupakan bagian dari top-10 ranking dokumen akan digunakan untuk proses selanjutnya.

2. RankingPassage (Sub Proses 3.3.2P)

Setelah mendapatkan sekumpulan passage yang mengandung kandidat jawaban, kemudian passage ini di ranking juga menggunakan metode TF-IDF yang kemudian dikalikan dengan

bobot kata kuncinya. Input dari proses ini adalah kandidat passage

yang relevan. Output dari proses ini adalah urutan passage yang mengandung kandidat jawaban.

d. Ekstraksi Jawaban (Sub Proses 3.4)

Proses ini menerima input-an berupa urutan passage yang mengandung kandidat jawaban dari proses 3.3 dan jenis pertanyaan dari proses 3.1.

Ekstraksi jawaban dilakukan dengan memberikan skor pada setiap

passage berdasarkan :

1. Passage akan mendapatkan skor tambahan 1, bila memiliki

(81)

gambar 3.1.3.f Flowchart skor passage 1

Contoh :

Pertanyaan : “Apa hubungan subali dan sugriwa?”

Pertanyaan diatas akan dikategorikan sebagai pertanyaan mengenai

“relation”, maka QToken = “relation”.

Contoh passage yang ditemukan :

Passage 110-5 :

<?XML VERSION ="1.0" ?> <passage docno=110 no=5>

<sentence> sungguh hati <person>subal</person> <person>sugriwa</person> angkat goa

<location>kiskenda</location>..</sentence>

<sentence> mulut gua <person>subal</person> pesan <relation>adik</relation> waspada jaga

jaga..</sentence>

<sentence> apabila cair darah warna merah seluruh musuh sirna muka..</sentence>

Di mana :

QToken = token dari

pengelompokan

pertanyaan

Pi = Passsage ke i

(82)

<sentence> apabila genang darah putih alir gua

<person>sugriwa</person> utup pintu gua..</sentence>

<sentence> <person>sugriwa</person> sanggup <person>subal</person> labrak

<person>maesasura</person>

<person>lembusura</person>.</sentence>

</passage>

Maka passage ini akan mendapat skor +1, Spi += 1.

2. Bila di dalam passage terdapat kata kunci kueri, maka passage

akan mendapatkan skor 1 untuk setiap kata kunci yang ada.

gambar 3.1.3.g Flowchart skor passage 2

Contoh pada passage 110-5 di atas, terdapat kata “subali” dan sugriwa”, tetapi tidak terdapat kata ”hubungan”, maka passage akan mendapatkan skor +2.

Di mana :

Q = kata kunci kueri

Qj = kata kunci kueri ke j

Pi = Passsage ke i

SPi = Skor Passage i

3. Bila dalam satu kalimat terdapat kata kunci kueri yang berbeda,

(83)

1.

Di mana :

P = Passage

Q = kata kunci kueri

Si = Kalimat dari Passage i

Sik = Kalimat ke k dari

Passage ke i

Qj = kata kunci kueri ke j

SPi = Skor Passage i

gambar 3.1.3.h Flowchart skor passage 3

Contoh pada passage 110-5 di atas, pada kalimat ke-1 dan kalimat ke-5, dalam satu kalimat terdapat lebih dari 1 kata kunci kueri. Maka

(84)

passage ini mendapat skor +2.

Skor total dari passage 110-5 ini adalah 1+2+2 = 5.

Untuk setiap kandidat dalam passage juga diberi penilaian dengan ketentuan :

1. Setiap kandidat jawaban (token yang sesuai dengan jenis pertanyaan),

dihitung jaraknya dengan setiap kata kunci kueri yang terdapat

dalam passage tersebut. Jaraknya dihitung secara absolute (tidak ada negative). Jarak kandidat jawaban dengan setiap kata kunci dihitung

dari jumlah kata yang ada diantara kandidat dan kata kunci. Jarak

tersebut kemudian dibagi dengan bobot katakunci. Setelah itu

dijumlah dengan seluruh jarak kata kunci yang ada, kemudian dibagi

dengan kuadrat kata kunci yang ditemukan.

(

C

Q

BQ

)

n

DCil = Jarak kandidat dan kata kunci kueri

Cil = Kandidat passage i ke l

Qim = Kata kunci kueri pada passage i ke m

BQim = Bobot kata kunci kueri pada passage i ke m

n = jumlah kata kunci kueri yang terdapat dalam passage i Contoh :

(85)

1 2 3 4 5 6 7

sungguh Hati subal sugriwa angkat goa kiskenda

8 9 10 11 12 13 14

mulut Gua subal pesan adik waspada jaga

15 16 17 18 19 20 21

jaga Apabila cair darah warna merah seluruh

22 23 24 25 26 27 28 musuh Sirna muka apabila genang darah putih

29 30 31 32 33 34 35

alir Gua sugriwa utup pintu gua sugriwa

36 37 38 39 40

sanggup Subal labrak maesasura lembusura Tabel 3.1.3 Tabel kata passage

Pada array passage 110-5 dapat dilihat bahwa kandidat jawaban yang

ditemukan adalah ”adik” pada array index 12. Selain itu ditemukan

juga kata kunci kueri pada array indeks 3, 4, 10, 31, 35, dan 37.

Sehingga bila dimasukkan ke dalam rumus akan menjadi :

Cil = Kandidat passage i ke l

Kata kunci kueri yang terdapat pada pertanyaan akan mendapat

(86)

hasil pencarian sinonim, bobotnya yaitu 4.

BQ110-5 1 = 4

BQ110-5 2 = 4

BQ110-5 3 = 4

BQ110-5 4 = 4

BQ110-5 5 = 4

BQ110-5 6 = 4

n = jumlah kata kunci kueri yang terdapat dalam passage i

n = 6.

Sehingga :

DC110-5 1 = ( (| C110-5 1 - Q110-5 1| / BQ110-5 1) + (| C110-5 1 - Q110-5 2| /

BQ110-5 2) + (| C110-5 1 - Q110-5 3| / BQ110-5 3) + (| C110-5 1 -

Q110-5 4| / BQ110-5 4) + (| C110-5 1 - Q110-5 5| / BQ110-5 5) + (|

C110-5 1 - Q110-5 6| / BQ110-5 6)) / n2

DC110-5 1 = ( (| 12 - 3 | / 4 ) + (| 12 - 4 | / 4 ) + (| 12 - 10 | / 4 ) + (| 12 -

31 | / 4 ) + (| 12 - 35 | / 4 ) + (| 12 - 37 | / 4 )) / 62

DC110-5 1 =( (9/4) + (8/4) + (2/4) + (19/4) + (23/4) + (25/4)) / 36

DC110-5 1 =( 2.25 + 2 + 0.5 + 4.75 + 5.75 + 6.25) / 36

DC110-5 1 = 21.5 / 36

DC110-5 1 = 0.597

(87)

dibagi dengan kuadrat jumlah kandidat jawaban sama.

Di mana :

Cij = Kandidat passage i ke j

Cik = Kandidat passage i ke k

gambar 3.1.3.i Flowchart skor kandidat 1

Untuk contoh menggunakan passage 110-5, karena tidak terdapat kandidat jawaban sama, maka :

DCij = DCij

DC110-5 1 = 0.597

3. Kemudian skor setiap kandidat jawaban dibagi dengan skor

passagenya.

SP

DC

SC

i il il =

Di mana :

SCil = Skor kandidat passage i ke l

Gambar

Gambar 2.1.a : Diagram proses Pemerolehan Informasi
Tabel 1: kelompok rule pertama : inflectional particles
Tabel 3 : Kelompok rule ketiga : first order of derivational prefixes
Gambar 2.11.a contoh DAD
+7

Referensi

Dokumen terkait

Penulisan Tugas Akhir ini bertujuan untuk mengetahui bagaimana proses pembuatan database koleksi menggunakan software Sistem Informasi Peroustakaan (SIPRUS) di Pusat

Tujuan umum dari penulisan Tugas Akhir ini adalah membangun perangkat lunak sistem temu kembali informasi untuk pencarian dokumen-dokumen teks yang berupa abstrak Tugas

Tujuan dari pengolahan data ini untuk mengetahui tingkat kemampuan siswa pada saat proses belajar mengajar pada pembelajaran menyimak informasi dari teks yang dibacakan

Untuk itu dibutuhkan suatu metode atau teknik yang dapat meningkatkan proses pencarian dokumen tersebut salah satu cara yaitu dengan menerapkan teknik AJAX pada fitur

Data Jumlah Dokumen Elektronik (Sistem Perpustakaan Online STMIK TIME)?. Tabel: Jumlah Koleksi Dokumen Elektronik Yang Dipublikasikan

Algoritma Kumar-Hassebrook digunakan untuk menghasilkan keluaran (output) berupa dokumen teks bahasa jawa dalam pencarian informasi menggunakan STKI bahasa Jawa dengan

Gambar 3.4 adalah use-case diagram untuk proses temu kembali informasi di mana pengguna yang akan melakukan pencarian dokumen harus memasukkan kata kunci lokasi

Tujuan penelitian ini adalah membuat sebuah sistem yang dapat mengklasifikasikan dokumen secara otomatis menggunakan algoritma cosine similarity dalam proses pengklasterannya dan