• Tidak ada hasil yang ditemukan

Pembangkit Pertanyaan Otomatis Untuk Teks Berbahasa Indonesia Berdasarkan Template Sintaksis

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangkit Pertanyaan Otomatis Untuk Teks Berbahasa Indonesia Berdasarkan Template Sintaksis"

Copied!
116
0
0

Teks penuh

(1)
(2)
(3)
(4)

Nama : Muhammad Raihan Iqbal Tempat, Tanggal Lahir : Jakarta, 17 April 1992

Jenis Kelamin : Laki – laki

Umur : 24 Tahun

Tinggi, Berat Badan : 172 cm, 77 Kg

Agama : Islam

Alamat : Komplek Sanghyang Pancanaka Hill

Jalan Michigan KAV 25, RT 05 RW 04 Kota Cimahi, Kecamatan Cimahi Selatan

Status : Mahasiswa

Email : m.raihan.iqbal@gmail.com

1997 – 1998 : TK Nurul Islam

1998 – 1999 : SD Yaspen Tugu Ibu Depok 1999 – 2002 : SDN Galih Pawarti Baleendah 2002 – 2004 : SDN Pasar Atas Cimahi 2004 – 2007 : SMPN 1 Cimahi

2007 – 2011 : SMK Negeri 1 Cimahi Jurusan Rekayasa Perangkat Lunak 2012 – 2016 : Universitas Komputer Indonesia Kota Bandung

Data Pribadi

(5)

PEMBANGKIT PERTANYAAN OTOMATIS

UNTUK TEKS BERBAHASA INDONESIA

BERDASARKAN TEMPLATE SINTAKSIS

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

MUHAMMAD RAIHAN IQBAL

10112964

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(6)

iii

KATA PENGANTAR

Puji syukur penulis panjatkan ke hadirat Allah SWT. yang telah memberikan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan tugas akhir tepat pada waktunya. Maksud dan tujuan penulis dalam menyusun penulisan tugas akhir ini yaitu untuk memenuhi syarat dalam menyelesaikan program Strata Satu (S1) jurusan Teknik Informatika pada Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia dengan judul Pembangkit Pertanyaan Otomatis Dari Teks Berbahasa Indonesia Berdasarkan Template Sintaksis.

Penulis sangat menyadari bahwa dalam penulisan tugas akhir ini masih jauh dari kesempurnaan, baik dalam metode penulisan, penyajian maupun pembahasan materi, sehingga kiranya masih banyak yang perlu diperbaiki. Oleh karena itu, penulis sangat mengharapkan saran dan kritik yang bersifat membangun sehingga dapat memperbaiki kekurangan di kemudian hari.

Dalam proses penyusunan tugas akhir ini, penulis banyak mendapatkan bantuan dan dukungan dari banyak pihak. Oleh karena itu penulis mengucapkan banyak terima kasih dengan penuh rasa hormat kepada yang terhormat Ibu Ken Kinanti Purnamasari, S.Kom, M.T., selaku dosen pembimbing yang telah meluangkan waktu, tenaga, dan pikirannya untuk membimbing penulis dalam penyusunan tugas akhir ini. Selain itu, penulis juga ingin mengucapkan banyak terima kasih kepada :

1. Yth. Bapak Prof. Dr. Ir. Eddy Suryanto Soegoto, M.Sc, selaku Rektor Universitas Komputer Indonesia.

(7)

iv

3. Yth. Bapak Prof. Dr. Moh Tadjuddin, M.A., selaku Pembantu Rektor II Universitas Komputer Indonesia.

4. Yth. Ibu Dr. Hj. Aaelina Surya, selaku Pembantu Rektor III Universitas Komputer Indonesia.

5. Yth. Bapak Prof. Dr. Ir. Denny Kurniadie, M.Sc. selaku Dekan Fakultas Teknik & Ilmu Komputer Universitas Komputer Indonesia. 6. Yth. Bapak Irawan Afrianto, M.T. selaku ketua program studi Teknik

Informatika Universitas Komputer Indonesia.

7. Yth. Segenap tim dosen dan staf program studi Teknik Informatika Universitas Komputer Indonesia.

Selain itu, penulis ingin mengucapkan terima kasih sebesar-besarnya kepada Ayah dan alm Ibu tercinta, Bang Affan, Teh Maya, Andaningrum, yang telah memberikan doa dan dukungan mental selama ini kepada penulis. Untuk keluarga besar penulis yang selalu mengingatkan penulis untuk menyelesaikan penyusunan tugas akhir ini dan selalu memberikan doa dan dukungan kepada penulis.Terima kasih untuk Mas Wisnu, Mas Indra, Mas Uyab, Mas Yohang, Rayhan, Purwa, Kang Ulle, dari PT Javan Cipta Solusi yang selalu memberi masukan dan dukungan kepada penulis dalam penyusunan tugas akhir. Tidak lupa untuk teman-teman seperjuangan di IF-19K 2012, Yudi, Jade, Ceppy, Hardy, Agus, Nandang, Agung, dan segenap teman-teman di prodi Teknik Informatika yang tidak mungkin penulis sebutkan satu persatu, terima kasih atas semua kerja sama dan dukungan selama ini, penulis mohon maaf bila selama empat tahun ini pernah melakukan kesalahan baik disengaja maupun tidak disengaja. Terima kasih kepada Bapak Robi Irawan, S.Kom yang sudah rela direpotkan oleh kami mahasiswa-mahasiswi kelas karyawan IF-19K 2012.

Bandung, Agustus 2016

(8)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... x

DAFTAR TABEL ... xiii

DAFTAR SIMBOL ... xv

DAFTAR LAMPIRAN ... xx

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Identifikasi Masalah ... 2

1.3 Maksud ... 2

1.4 Tujuan ... 2

1.5 Batasan Masalah ... 2

1.6 Metodologi Penelitian... 3

1.7 Sistematika Penulisan ... 5

BAB 2 LANDASAN TEORI ... 9

2.1 Tata Bahasa ... 9

2.1.1. Jenis Kata ... 9

2.1.2. Kata Tanya ... 11

2.1.2.1. Kata Tanya Apa ... 11

(9)

vi

2.1.2.3. Kata Tanya Mana ... 12

2.1.2.4. Kata Tanya Kapan ... 13

2.1.2.5. Kata Tanya Mengapa ... 13

2.1.2.6. Kata Tanya Bagaimana ... 13

2.1.3. Penggunaan Imbuhan ... 14

2.1.4. Klausa ... 18

2.1.5. Pembentukan Kalimat... 19

2.2 Pre-Processing ... 20

2.2.1. Case Folding... 20

2.2.2. Tokenisasi ... 20

2.2.3. Stemming ... 21

2.2.4. POS Tagging... 23

2.3 Proses Utama ... 23

2.3.1. Analisis Sintaksis ... 23

2.3.2. Pembentukan Pertanyaan (Question Generation) ... 24

2.4 Flowchart... 24

2.5 Unified Modelling Language (UML) ... 26

2.5.1. Use Case Diagram... 26

2.5.2. Activity Diagram... 26

2.5.3. Class Diagram ... 27

2.5.4. Sequence Diagram ... 27

2.6 Bahasa Pemrograman ... 28

2.6.1. Java ... 28

(10)

vii

2.6.3. SQL ... 29

BAB 3 ANALISIS DAN PERANCANGAN ... 31

3.1 Analisis Masalah... 31

3.2 Analisis Solusi ... 31

3.2.1. Analisis Masukan ... 32

3.2.2. Pre-Processing ... 33

3.2.2.1. Case Folding... 33

3.2.2.2. Tokenisasi Kalimat ... 33

3.2.2.3. Tokenisasi Kata ... 34

3.2.2.4. Stemming ... 35

3.2.2.5. Deteksi Jenis Kata (POS Tag) ... 36

3.2.3. Proses Utama ... 38

3.2.3.1. Analisis Sintaksis ... 38

3.2.3.2. Pembangkitan Pertanyaan ... 44

3.4 Analisis Basis Data ... 46

3.4.1 Entity Relationship Diagram ... 47

3.4.2 Kamus Data ERD ... 47

3.5 Analisis Kebutuhan Non Fungsional ... 49

3.5.1 Analisis Perangkat Lunak ... 49

3.5.2 Analisis Perangkat Keras ... 49

3.5.3 Analisis Pengguna ... 49

3.6 Analisis Pengujian ... 50

3.7 Perancangan Sistem ... 52

(11)

viii

3.7.2 Activity Diagram... 55

3.7.3 Class Diagram ... 59

3.7.4 Sequence Diagram ... 59

3.8 Perancangan Basis Data ... 62

3.8.1 Skema Relasi ... 62

3.8.2 Struktur Tabel ... 63

3.9 Perancangan Struktur Menu ... 64

3.10 Perancangan Antar Muka ... 65

3.11 Jaringan Semantik... 70

3.12 Perancangan Prosedural ... 70

3.12.1 Flowchart Sistem Secara Umum ... 70

3.12.2 Flowchart Pre-Processing ... 71

3.12.2.1 Flowchart Case Folding ... 72

3.12.2.2 Flowchart Tokenisasi ... 73

3.12.2.3 Flowchart Stemming ... 75

3.12.2.4 Flowchart Deteksi Jenis Kata ... 77

3.12.2.5 Flowchart Analisis Sintaksis ... 77

3.12.3 Flowchart Pembangkitan Pertanyaan ... 79

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 81

4.1 Implementasi Sistem... 81

4.1.1. Implementasi Perangkat Keras ... 81

4.1.2. Implementasi Perangkat Lunak ... 81

4.1.3. Implementasi Basis Data ... 81

(12)

ix

4.2 Pengujian Sistem ... 92

4.2.1. Pengujian Black Box ... 92

4.2.1.1. Kasus dan Hasil Pengujian Black Box ... 93

4.2.1.2. Kesimpulan Pengujian Black Box ... 99

4.2.2. Pengujian Akurasi... 99

4.2.3. Analisis Hasil Pengujian ... 100

BAB 5 KESIMPULAN DAN SARAN ... 101

5.1 Kesimpulan ... 101

5.2 Saran ... 101

(13)

103

DAFTAR PUSTAKA

[1] Chaer. A, Tata Bahasa Praktis Bahasa Indonesia, Jakarta: Rineka Cipta, 2011. [2] BPP Teknologi, Menuju abad 21: Iptek Pemacu Pembangunan Bangsa, 1993. [3] Augusta. L, Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief & Adriani Untuk Stemming Dokumen Teks Bahasa Indonesia, Bali: Universitas Satya Wacana, 2009.

[4] M. Fowler, UML Distilled Edisi 3, Yogyakarta: ANDI, 2005.

[5] Chaer. A, Sintaksis Bahasa Indonesia (Pendekatan Proses), Jakarta: Rineka Cipta, 2015.

[6] Jurafsky. D S, Speech and Language Processing, Prentice-Hall Inc, 2000. [7] Sukamto. R A, Penguraian Bahasa Indonesia dengan Pengurai Collins, Institut Teknologi Bandung, 2009.

[8] Wicaksono. A F dan Purwarianti. A, HMM Based Part-of-Speech Tagger for Bahasa Indonesia, Jakarta, 2010.

[9] Pisceldo. F, Andriani. M dan Manurung, Probabilistic Part of Speech Tagging for Bahasa Indonesia, Universitas Indonesia, 2007.

[10] Suwarningsih. W, Tantangan dan Peluang pada Question Generation, Institut Teknologi Bandung, 2014.

[11] Heilman.M, Automatic Factual Question Generation from text, Carnegie Mellon University, 2011.

[12] Beulen.K, Automatic Question Generation For Decision Tree Based State Tying, 1998.

[13] Ferdian.F, Implementation of Semantic Analyzer in Indonesian Text-Understanding Evaluation System, Institut Teknologi Bandung, 2012.

[14] Suwarningsih.W, Towards a Framework for an Indonesian Medical Question Generator, Institut Teknologi Bandung, 2015.

[15] Fachrurrozi.M, Sistem Pembangkit Pertanyaan Otomatis Dengan Metode Template-Based, Universitas Sriwijaya, 2013.

[16] Lischner. R, “Case-Folding” dalam Exploring C++ 11, Maryland: Apress, 2014, pp. 111-113.

(14)

[18] Utami. E dan Sukrisno, 10 Langkah Belajar Logika dan Algoritma Menggunakan Bahasa C dan C++ di GNU/Linux, Penerbit Andi, 2006.

[19] Sheldon. R dan Moes. G, Beginning MySQL, Indianapolis: Wiley Publishing, 2005.

[20] Beaulieu. A, Learning SQL, United States of America: O’Reilly Media, 2009 [21] Shalahuddin. M dan Rosa A.S, Pemograman J2ME Belajar Cepat Pemograman Perangkat Telekomunikasi Mobile, Bandung, 2010.

[22] Judd. C.M, Nusairat. J.F, dan Shingler. J, Beginning Groovy and Grails: From Novice to Professional, United States of America, 2008.

[23] Jogiyanto, Analisis dan Desain Sistem Informasi, Yogyakarta: Penerbit Andi Offset, 2005.

[24] Sunjana, Aplikasi Mining Data Mahasiswa Dengan Metode Klasifikasi Decision Tree, Yogyakarta, 2010.

[25] Nazir. Moh, Metode Penelitian, Bogor: Ghalia Indonesia, 2005.

[26] Chen. P, The Entity-Relationship Model – Toward a Unified View of Data, Cambridge, 1976.

[27] Arboleda. C. R, Communications Research, Manila: CFA, 1981.

(15)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Penelitian yang mengangkat masalah-masalah yang berkaitan dengan pemahaman suatu teks sudah banyak dilakukan dengan menggunakan pembangkit pertanyaan atau question generation sebagai solusinya [11] [12] [13] [14] [15]. Penelitian yang telah dilakukan sudah menggunakan teks berbahasa Inggris maupun bahasa Indonesia dengan metode-metode yang berbeda. Untuk penelitian menggunakan teks berbahasa Inggris, metode yang dilakukan adalah diantaranya menggunakan transformasi sintaksis dan metode statistik [11] [12]. Sedangkan penelitian yang menggunakan teks berbahasa Indonesia menggunakan metode analisis semantik dan berbasis template [13] [15]. Selain itu, penelitian pada teks berbahasa Indonesia dilakukan secara spesifik untuk kasus dalam bidang kesehatan [14].

Salah satu yang telah disebutkan pada penelitian teks berbahasa Indonesia adalah penelitian menggunakan metode berbasis template [15]. Penelitian ini menggunakan metode berbasis template dengan cara mencari kata khusus yang telah ditentukan untuk membangkitkan pertanyaan. Kata khusus menggambarkan kalimat jawaban untuk suatu kategori pertanyaan. Kategori pertanyaan yang dimaksud adalah definisi, alasan, dan metode. Dengan menggunakan cara ini, penelitian tersebut dapat menciptakan kalimat tanya non-factoid dengan kata tanya apa yang dimaksud dengan, mengapa, dan bagaimana.

Dari penelitian di atas, diketahui bahwa kalimat pertanyaan yang dapat dibangkitkan adalah kalimat non-factoid. Tetapi masih ada kata tanya yang belum teratasi seperti siapa, apa, mana, dan kapan. Kata-kata tanya tersebut dibutuhkan untuk mengatasi wacana atau teks factoid. Dengan menggunakan metode berbasis template seperti penelitian sebelumnya, penelitian ini akan membangkitkan

(16)

kapan dapat dibangkitkan karena kata tanya tersebut menanyakan fungsi sintaksis dalam suatu kalimat. Contohnya kata tanya siapa yang menanyakan subjek atau objek dalam suatu kalimat. Oleh karena itu, kata tanya siapa, apa, mana, dan kapan, serta mengapa dan bagaimana, dapat dibangkitkan dengan melakukan analisis sintaksis untuk mengetahui fungsi sintaksis dalam suatu kalimat. Hasil pertanyaan yang dibangkitkan perlu diuji dan diukur relevansinya dengan teks masukan untuk mengetahui akurasi dari metode yang digunakan.

1.2 Identifikasi Masalah

Identifikasi masalah berdasarkan yang telah dijelaskan pada latar belakang adalah dibutuhkannya pengukuran relevansi hasil pertanyaan terhadap teks masukan.

1.3 Maksud

Maksud dari penelitian ini yaitu membangun pembangkit pertanyaan otomatis.

1.4 Tujuan

Tujuan dari penelitian ini adalah mengukur relevansi hasil pembangkitan pertanyaan terhadap teks masukan.

1.5 Batasan Masalah

Batasan masalah dari aplikasi yang akan dibangun adalah sebagai berikut: 1. Masukan

a. Masukan berupa file berisi teks bahasa Indonesia dalam bentuk bahasa baku.

b. Ekstensi file masukan adalah .txt.

c. Teks bahasa Indonesia yang menjadi masukan tidak memiliki simbol-simbol seperti simbol-simbol matematis, emoticon, dan sebagainya.

(17)

2. Proses : Predikat yang dapat ditangani hanya berupa kata kerja. 3. Keluaran : Kata tanya yang dibangkitkan adalah siapa, apa, kapan,

mana, mengapa, dan bagaimana.

4. Sumber daya : Basis data kata dasar dan jenis kata dalam Bahasa Indonesia berasal dari Kamus Online Kateglo.

1.6 Metodologi Penelitian

Metodologi penelitian yang digunakan adalah metodologi eksperimen. Eksperimen adalah suatu penelitian yang dengan sengaja peneliti melakukan manipulasi terhadap satu atau lebih variabel dengan suatu cara tertentu sehingga berpengaruh pada satu atau lebih variabel lain yang diukur [27]. Langkah-langkah yang dilakukan pada penelitian ini adalah sebagai berikut.

1. Melakukan kajian secara induktif yang berkait erat dengan permasalahan yang hendak dipecahkan. Penalaran induktif merupakan prosedur yang berpangkal dari peristiwa khusus sebagai hasil pengamatan empirik dan berakhir pada suatu kesimpulan atau pengetahuan baru yang bersifat umum.

2. Mengidentifikasi dan mendefinisikan masalah.

3. Melakukan studi literatur dan beberapa sumber yang relevan. Studi literatur adalah teknik pengumpulan data dengan mengadakan studi penelaahan terhadap buku-buku, literatur-literatur, catatan-catatan, dan laporan-laporan yang ada hubungannya dengan masalah yang dipecahkan [25]. Studi literatur dilakukan untuk mencari apakah ada literatur yang sudah mengatasi masalah yang ditemukan atau pendekatan solusi yang dapat digunakan.

4. Analisis masalah dan solusi. Menganalisa masalah yang teridentifikasi dan melakukan analisa solusi yang dapat dilakukan setelah mencari pendekatan yang lebih baik.

(18)

Pembangunan perangkat lunak menggunakan model prototype. Berikut adalah proses-proses yang terjadi pada model tersebut.

a. Pengumpulan Kebutuhan

Mengidentifikasikan semua kebutuhan, yaitu aturan-aturan tata bahasa Indonesia, literatur, dan jurnal yang berhubungan dengan penelitian yang sedang dilakukan.

b. Desain Prototype

Menganalisa, merancang, dan mendesain sistem yang akan dibuat seperti menganalisa basis data, analisa solusi dari masalah, merancang tampilan antar muka beserta jaringan semantiknya, dan flowchart setiap proses yang dilakukan dalam sistem.

c. Pembangunan Prototype

Hasil pada tahap sebelumnya diimplementasikan pada sistem dengan menggunakan bahasa pemrograman yang digunakan, yaitu Groovy dengan menggunakan framework Grails.

d. Uji Coba Prototype

Prototype yang sudah dibangun akan diujicobakan dengan data uji berupa

data teks berbahasa Indonesia. e. Evaluasi Prototype

(19)

Gambar 1.1 Model Pengembangan Perangkat Lunak Prototype

6. Analisis hasil penelitian. Hasil akhir dari penelitian ini adalah nilai akurasi pada relevansi pertanyaan-pertanyaan yang dibangkitkan dengan teks yang menjadi masukan. Pengukuran dilakukan dengan menghitung pertanyaan-pertanyaan yang relevan dibagi dengan total pertanyaan-pertanyaan yang dibangkitkan.

1.7 Sistematika Penulisan

(20)

BAB 1 PENDAHULUAN

Menguraikan latar belakang masalah tentang penelitian pembangkitan pertanyaan yang pernah dilakukan dalam bahasa Indonesia. Mengidentifikasi masalah yang terdapat pada salah satu penelitian pembangkitan pertanyaan, kemudian menentukan tujuan penelitian terkait dengan permasalahan yang berhasil teridentifikasi. Menguraikan batasan-batasan masalah agar penelitian tidak terlalu melebar. Menentukan metode penelitian yang dipakai dan menjabarkan sistematika penulisan pada penelitian ini.

BAB 2 LANDASAN TEORI

Berfungsi sebagai kamus teori dalam penelitian ini yang menjelaskan teori-teori atau aturan-aturan yang dipakai pada penelitian yang menjadi acuan pada proses analisis dan perancangan. Teori seperti tata bahasa Indonesia, pre-processing yang digunakan, pembentukan pertanyaan, flowchart, pohon

keputusan, UML, dan bahasa pemrograman.

BAB 3 ANALISIS DAN PERANCANGAN

Penjelasan analisis dan perancangan yang dilakukan pada penelitian ini, seperti analisis masalah, analisis solusi, analisis basis data, analisis kebutuhan fungsional dan non fungsional, analisis pengujian, serta perancangan sistem yang mencakup Unified Modelling Language atau UML, perancangan basis data, perancangan prosedural, perancangan struktur menu, perancangan tampilan antar muka, dan jaringan semantik.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

(21)

BAB 5 KESIMPULAN DAN SARAN

(22)
(23)

9

BAB 2

LANDASAN TEORI

2.1 Tata Bahasa

Pembangkitan pertanyaan yang dibangun harus mengikuti tata bahasa

baku Bahasa Indonesia. Tata bahasa baku dapat digunakan sebagai acuan untuk

membentuk kalimat pertanyaan dengan mengetahui jenis kata, bentuk kalimat,

dan struktur kalimat.

2.1.1. Jenis Kata

Dilihat dari konsep makna yang dimiliki dan atau peran yang harus dilakukan, kata-kata dibedakan menjadi 16 (enam belas) jenis [1]. Tetapi jenis kata yang digunakan dalam penelitian ini hanya sembilan jenis, seperti yang telah diperlihatkan pada tabel 2.1 di bawah ini.

Tabel 2.1 Jenis Kata

NO JENIS KATA DEFINISI CONTOH

1 Kata Benda 1. Kata dasar yang dapat diikuti frase

’yang ...’

2. Kata berimbuhan yang berawalan pe-, berakhiran -an, -nya, berimbuhan gabung pe-an, per-an, ke-an

(24)

NO JENIS KATA DEFINISI CONTOH

2. Kata berimbuhan yang berawalan me-,

3. Pada tingkat klausa, dapat menduduki fungsi predikat

1. Rumah besar 2. Pemandangan indah 3. Anak itu nakal 2. Pertama, kedua, ketiga,

... 3. 1, 2, 3, ... 4. I, II, III, ... 6 Kata Penghubung 1. Kata yang digunakan

untuk

(25)

NO JENIS KATA DEFINISI CONTOH 7 Kata Keterangan 1. Kata yang digunakan

untuk memberi 2. Barangkali, mungkin, ... 3. Semoga, moga-moga, ... 4. Seringkali, sesekali, ... 5. Sudah, telah, sedang, ...

Untuk menciptakan kalimat tanya, perlu pendalaman lebih lanjut untuk mengetahui aturan-aturan kata tanya yang akan dipakai pada pembangkitan pertanyaan. Kata tanya yang digunakan adalah Apa, Siapa, Mana, Kapan, Mengapa, dan Bagaimana.

2.1.2.1. Kata Tanya Apa

Kata tanya Apa digunakan dengan aturan :

1. Untuk menanyakan benda atau hal, baik tentang jenisnya maupun namanya, digunakan di depan kata benda atau kata penggantinya

(26)

a. Binatang apa yang berbulu tebal itu? b. Buku apakah yang kau pegang itu?

3. Untuk menyatakan benda digunakan pada awal kalimat dalam kalimat pasif yang memiliki kata penghubung YANG. Dalam hal ini lazim diberi partikel KAH. Contoh :

a. Apa yang diminta anak itu?

b. Apa yang digunakan untuk menulis?

4. Untuk meminta pengakuan ya atau tidak/bukan digunakan :

a. Di muka kalimat verbal, dalam hal ini lazim diberi partikel KAH. Contoh : Apakah kamu mencuri?

b. Di muka kalimat nominal. Di sini pun lazim diberi partikel KAH. Contoh : Apakah orang itu gurumu?

2.1.2.2. Kata Tanya Siapa

Kata tanya Siapa digunakan dengan aturan :

1. Untuk menanyakan nama yang digunakan di depan kata nama yang diikuti dengan kata benda yang menyatakan orang atau kata gantinya. Contoh :

a. Siapa nama anak itu? b. Siapa nama guru itu?

2. Untuk menanyakan identitas orang digunakan :

a. Di depan kata benda yang menyatakan orang (bisanya berawalan pe-). Contoh : Siapa pengarang lagu ini?

b. Di depan frase dengan kata penghubung YANG. Contoh : Siapa yang memecahkan piring?

2.1.2.3. Kata Tanya Mana

Kata tanya Mana dengan fungsi menanyakan ‘tempat keberadaan’ digunakan di depan kata benda. Contoh :

1. Mana buku telepon itu? 2. Mana temanmu? 3. Mana rumahmu?

(27)

Untuk menanyakan tempat keberadaan dengan lebih pasti, di depan kata Mana perlu ditempatkan kata depan Di, Ke, atau Dari.

1. Di mana mereka belajar? 2. Ke mana perginya maling itu? 3. Dari mana uang itu kau dapatkan? 2.1.2.4. Kata Tanya Kapan

Kata tanya Kapan dengan fungsi untuk menanyakan waktu digunakan di depan kalimat berpredikat kata kerja. Contoh :

1. Kapan paman akan datang?

2. Kapan acara wisudamu akan dimulai? 3. Kapan peristiwa itu terjadi?

2.1.2.5. Kata Tanya Mengapa

Kata tanya Mengapa dengan fungsi untuk menyatakan sebab atau alasan digunakan di muka kalimat berpredikat kata kerja atau kata sifat. Contoh :

1. Mengapa kamu tidak datang kemarin? 2. Mengapa anak itu menangis?

2.1.2.6. Kata Tanya Bagaimana

Kata tanya Bagaimana digunakan dengan aturan :

1. Untuk menanyakan keadaan digunakan di depan kata benda. Contoh :

a. Bagaimana cuaca di sana? b. Bagaimana harganya?

2. Untuk menanyakan cara atau proses digunakan di depan kata kerja. Secara bebas boleh disertai kata Cara di antara kata tanya Bagaimana dengan kata kerjanya itu.

a. Bagaimana cara merebus ketupat?

(28)

3. Untuk menanyakan apa yang harus dilakukan oleh atau terhadap sesuatu digunakan di depan kata benda. Dalam hal ini diantara kata tanya Bagaimana itu dengan kata bendanya perlu disisipkan kata depan

Dengan.

a. Kalau kita dapat rumah dinas bagaimana dengan rumah ini?

b. Kalau daerah ini akan dijadikan waduk, bagaimana dengan penduduk di sini?

2.1.3. Penggunaan Imbuhan

Imbuhan dalam suatu kata dapat merubah fungsi, jenis, dan makna pada kata tersebut. Dengan mengetahui perubahan kata yang disebabkan oleh imbuhan, akan membantu mencari pembentukan kalimat tanya yang lebih akurat dan relevan dengan teks. Imbuhan pada Bahasa Indonesia terdiri dari Akhiran, Awalan, dan Imbuhan Gabung. Akhiran, awalan, dan imbuhan gabung yang

dipakai pada penelitian ini dijelaskan pada tabel 2.2, 2.3, dan 2.4.

Tabel 2.2 Akhiran

NO IMBUHAN FUNGSI CONTOH

1 –kan Membentuk Kata Kerja Transitif

Tenangkan dulu anak-anak ini.

2 –i

Membentuk Kata Kerja Transitif

(29)

NO IMBUHAN FUNGSI CONTOH

Sebagai Akhiran :

1. Membentuk kata benda 2. Memberi penekanan /

penegasan

Membentuk kata Kerja Intransitif

Membentuk Kata Kerja Perintah

Membentuk kata kerja aktif transitif dan intranssitif.

Dia menyanyi didepanku.

4

di-Membentuk kata kerja pasif

Dia ditangkap polisi

5

ter-1. Membentuk kata kerja pasif yang menyatakan keadaan.

(30)

NO IMBUHAN FUNGSI CONTOH

2. Membentuk kata kerja

pasif dg arti “tidak disengaja”

3. Membentuk kata benda

dg arti “orang atau sesuatu yang di..”

1. Saya duduk dikursi ketiga.

Siapa penulis buku ini ?

Tabel 2.4 Imbuhan Gabung.

NO IMBUHAN FUNGSI CONTOH

1 ber-kan

(31)

NO IMBUHAN FUNGSI CONTOH

2 ber-an Membentuk kata kerja

intransitif

Mereka berlarian kesana kemari

3 per-kan Membentuk kata kerja Jangan perdulikan diri

ini.

4 per-i

Membentuk Kata Kerja Mereka akan perenglengkapi masalah pertanian.

5 me-kan

Membentuk kata kerja aktif transitif

Pemerintah melebarkan jalan.

6 me-i

Membentuk kata kerja transitif aktif

Bulan menerangi bumi Menerangi artinya membuat jadi terang.

7

memper-Membentuk kata kerja aktif transitif

Jalan tol itu memperlancar arus lalu lintas.

8 memper-kan

Membentuk kata kerja aktif transitif

Mereka masih saja memberdebatkan masalah itu.

9 memper-i

Membentuk kata kerja aktif transitif

Saya akan memperbaiki dulu rumah itu.

10 di-kan

Membentuk kata kerja pasif.

Berita itu disiarkan oleh RRI.

Membentuk kata kerja pasif.

Jalan ini diperlebar oleh pemerintah.

13 diper-kan

Membentuk kata kerja pasif

Mudah-mudahan

(32)

NO IMBUHAN FUNGSI CONTOH

14 diper-i

Membentuk kata kerja pasif

Kami dilengkapi pemerintah dengan senjata.

15 ter-kan

Membentuk kata kerja pasif Keadaan

Akhirnya pekerjaan itu terselesaikan juga.

16 ter-i

Membentuk kata kerja pasif intransitif

Permintaan kami akhirnya terpenuhi juga.

17 ke-an

Membentuk kata benda abstrak dan sejumlah kata

(33)

Klausa yang memiliki fungsi-fungsi sintaksis yang lengkap, yaitu terdapat subjek dan predikat, maka klausa tersebut disebut klausa bebas atau klausa utuh. Sedangkan klausa yang fungsinya tidak lengkap disebut klausa terikat. Contoh

pada kalimat “Saya akan datang kalau diundang.”. Pada kalimat tersebut terdapat dua buah klausa, yaitu :

1. Saya akan datang 2. kalau diundang

Klausa nomor satu memiliki fungsi-fungsi sintaksis yang lengkap dan dapat berdiri sendiri, sehingga klausa tersebut adalah klausa bebas. Sedangkan klausa nomor dua tidak memiliki fungsi sintaksis yang lengkap, yaitu tidak memiliki fungsi subjek. Sehingga klausa nomor dua terikat dengan klausa nomor satu.

Klausa bebas di dalam sebuah kalimat majemuk subordinatif disebut klausa atasan, sedangkan klausa terikat disebut klausa bawahan [5].

2.1.5. Pembentukan Kalimat

Kalimat adalah satuan bahasa yang berisi suatu pikiran atau amanat yang lengkap. Lengkap berarti dalam kalimat tersebut terdapat unsur subjek, predikat, objek, dan keterangan [1]. Menurut strukturnya, sebuah kalimat sederhana dalam bahasa Indonesia memiliki pola sebagai berikut

Tabel 2.5 Kalimat Sederhana Berdasarkan Struktur

NO STRUKTUR CONTOH

1 Subjek + Predikat 1. Ibuku memasak.

2. Kakakku seorang pelajar. 3. Temanku itu baik sekali. 2 Subjek + Predikat + Objek 1. Ayah bermain bola.

2. Ibu menyapu lantai. 3. Aku makan nasi goreng. 3 Subjek + Predikat + Objek +

Keterangan

1. Ayah mengantar adik ke sekolah. 2. Aku makan nasi goreng di pagi

hari

(34)

NO STRUKTUR CONTOH

4 Subjek + Predikat + Objek + Objek 1. Ayah membelikan saya buku. 2. Nuri membacakan adiknya buku

cerita.

3. Ibu membukakan saya pintu.

2.2 Pre-Processing

Pre-processing adalah proses yang dilakukan sebelum memasuki proses utama dalam sistem. Pada sistem pembangkitan pertanyaan ini, hasil akhir dari pre-processing adalah ditemukannya fungsi-fungsi sintaksis dalam suatu kalimat

dan kata dasar beserta imbuhannya dari setiap kata yang ada pada kalimat tersebut. Tahapan pre-processing pada sistem ini adalah case folding, tokenisasi, stemming, dan deteksi jenis kata.

2.2.1. Case Folding

Case folding adalah proses merubah semua huruf dalam teks menjadi huruf kapital atau non-kapital[16]. Fungsi case folding dalam sistem ini adalah mencegah terjadinya kata yang tidak terdeteksi dalam kamus yang disimpan dalam basis data karena kata-kata yang ada di basis data semua memiliki huruf non-kapital.

2.2.2. Tokenisasi

(35)

Gambar 2.1 memperlihatkan tokenisasi pada suatu teks “Budi adalah seorang pelajar”. Hasil tokenisasi pada teks tersebut adalah mendapat empat

token, yaitu Budi, adalah, seorang, dan pelajar.

2.2.3. Stemming

Stemming merupakan suatu proses yang terdapat dalam sistem Information

Retrieval (IR) yang mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata-kata akarnya dengan menggunakan aturan-aturan tertentu[3]. Stemming memiliki tujuan untuk meningkatkan performa IR dengan mentransformasikan kata-kata dalam suatu teks menjadi kata dasarnya. Algoritma Stemming lebih banyak digunakan untuk teks Bahasa Inggris yang memiliki struktur imbuhan lebih mudah untuk diolah, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan teks Bahasa Indonesia memiliki struktur imbuhan yang lebih rumit dan kompleks, yaitu perlu melakukan proses menghilangkan sufiks, prefiks, dan konfiks.

Algoritma stemming untuk teks berbahasa Indonesia, diantaranya: Algoritma Porter, Algoritma Nazief dan Adriani. Berdasarkan hasil penelitian [3], kesimpulan dari perbandingan antara Algoritma Porter dengan Algoritma Nazief dan Adriani, adalah :

1. Algoritma Porter membutuhkan waktu yang lebih singkat dibandingkan Algoritma Nazief & Adriani.

2. Algoritma Porter memiliki persentase keakuratan lebih kecil dibandingkan Algoritma Nazief & Adriani.

No Hasil Tokenisasi

1 Budi

2 adalah

3 seorang

4 pelajar

Budi adalah seorang pelajar

(36)

3. Kamus sangat berpengaruh dalam menggunakan Algoritma Nazief & Adriani. Semakin lengkap kamus yang digunakan, maka semakin akurat hasil yang didapat.

Algoritma Nazief dan Adriani menggunakan basis data yang menyimpan kamus kata dasar untuk pengecekan kata setiap pemotongan imbuhan dilakukan. Berikut adalah alur dari algoritma Nazief dan Adriani.

(37)

Pada gambar 2.2 digambarkan alur dari algoritma Nazief dan Adriani. Terlihat jelas pada gambar tersebut bahwa setiap ada pemotongan yang dilakukan baik itu awalan (prefiks) atau akhiran (afiks) akan selalu ada pemeriksaan kata dalam basis data.

2.2.4. POS Tagging

Part of Speech Tagging (POS-Tagging) adalah suatu proses yang

memberikan label kelas kata secara otomatis pada suatu kata dalam kalimat[6]. Hasil dari POS ini sangat berpengaruh terhadap keluaran dari proses Parsing[7].

Sudah ada banyak penelitian yang dilakukan terkait dengan POS Tagging untuk teks berbahasa Indonesia. Metode-metode yang dipakai dalam penelitian-penelitian tersebut pun memiliki akurasi yang cukup tinggi, diantaranya Brill tagger yang memiliki akurasi 88%[8], Conditional Random Field (CRF) dan

Maximum Entropy Method memiliki akurasi 97,57% [9] dan Hidden Markov

Model yang memiliki akurasi 96,5% [8].

Pada penelitian ini tidak menggunakan POS Tagging secara otomatis karena menggunakan data yang didapatkan dari Kateglo yang telah memiliki jenis kata pada setiap kata dasarnya. Sedangkan untuk jenis kata yang memiliki imbuhan, menggunakan aturan perubahan jenis kata berdasarkan imbuhan.

2.3 Proses Utama

Proses utama adalah proses yang dilakukan untuk mengolah data awal yang telah didapatkan pada pre-processing untuk mendapatkan hasil akhir berupa pertanyaan dan jawaban yang relevan dengan teks masukan. Proses utama yang dilakukan adalah analisis sintaksis dan pembangkitan pertanyaan.

2.3.1. Analisis Sintaksis

Sintaksis adalah cabang linguistik yang bidang kajiannya meliputi satuan lingual berwujud kata, frasa, klausa, kalimat, hingga wacana. Satuan tersebut disebut satuan sintaksis. Istilah sintaksis berasal dari bahasa Yunani, yaitu syntaxis yang berarti susunan atau tersusun secara bersama. Sintaksis berusaha

(38)

tersusun bersama dalam wujud frasa, klausa, kalimat, dan wacana. Hubungan fungsional berarti hubungan saling ketergantungan antara unsur yang satu dengan unsur yang lain [17].

Analisis sintaksis dilakukan dengan menganalisa kalimat beserta klausa yang ada pada kalimat tersebut. Analisa ini akan menghasilkan fungsi-fungsi sintaksis yang dapat membantu untuk membentuk pertanyaan pada proses utama dalam sistem. Fungsi sintaksis meliputi subjek, predikat, objek, pelengkap, dan keterangan [17].

2.3.2. Pembangkitan Pertanyaan (Question Generation)

Pembangkitan pertanyaan atau Question Generation adalah sebuah teknik untuk membangkitkan pertanyaan yang berasal dari sebuah kalimat atau teks dalam bentuk bahasa alami. Garis besar konseptual question generation terdiri dari tiga kategori yaitu berbasis sintaks, berbasis semantik, dan berbasis template. Sistem question generation dalam kategori sintaksis sering menggunakan unsur semantik dan sebaliknya. Sedangkan sistem berbasis template mengunakan beberapa tingkat sintaksis dan/atau informasi semantik. [10]

Banyak penelitian yang mengusulkan algoritma dan pendekatan baru yang aktif menggunakan kalimat dalam dokumen sebagai sumber pertanyaan dan sekaligus memberikan sebuah jawaban. Salah satu pendekatan yang dilakukan peneliti terdahulu adalah bagaimana pengolahan bahasa dengan menggunakan teknik yang secara otomatis untuk menghasilkan pertanyaan-pertanyaan. Di antaranya adalah syntactic transformations untuk kasus input berupa informational text dan dengan menggunakan metode statistik [11][12]. Implementasi dalam teks bahasa Indonesia pun sudah dilakukan, diantaranya menggunakan prosesor semantik, secara khusus diterapkan dalam bidang kesehatan, dan berbasis template [13][14][15].

2.4 Flowchart

Flowchart atau Bagan Alir Program merupakan bagan yang menjelaskan

(39)

untuk menggambarkan proses logika dan algoritma dari sistem pembangkitan pertanyaan. Simbol-simbol yang digunakan telah dijelaskan pada daftar simbol, berikut contoh flowchart pada kehidupan sehari-sehari, yaitu saat ingin melakukan transaksi di teller suatu bank.

Gambar 2.3 Contoh Flowchart

(40)

mendapatkan nomor antrean, nasabah diharuskan mengisi suatu formulir bila diperlukan, contohnya formulir penyetoran atau formulir penarikan. Jika tidak perlu mengisi formulir, maka nasabah langsung menunggu nomor antreannya dipanggil oleh teller. Jika sudah dipanggil, maka nasabah mulai melakukan transaksi dengan teller sampai selesai. Hasil transaksi tersebut akan diberikan oleh teller kepada nasabah baik itu berhasil ataupun tidak.

2.5 Unified Modelling Language (UML)

Unified Modeling Language (UML) adalah adalah keluarga notasi grafis yang membantu dalam menggambarkan dan merancang sistem perangkat lunak terutama yang dibangun dengam menggunakan orientasi objek. Definisi ini adalah definisi yang telah disederhanakan. Pada kenyataannya, pendapat orang-orang berbeda tentang UML berbeda satu sama lain. Hal ini disebabkan oleh sejarah dan perspektif yang berbeda tentang membuat proses rekayasa perangkat lunak yang efektif [4].

Diagram-diagram UML yang digunakan pada sistem ini adalah use case diagram, activity diagram, class diagram, dan sequence diagram.

2.5.1. Use Case Diagram

Use case adalah teknik untuk menggambarkan kebutuhan fungsional dari

sebuah sistem. Use case menggambarkan interaksi antara pengguna dengan sistem, menyediakan sebuah cerita bagaimana sebuah sistem digunakan [4]. Dalam bahasan use case, para pengguna disebut sebagai aktor. Aktor merupakan sebuah peran yang dimainkan seorang pengguna dalam kaitannya dengan sistem. Aktor tidak harus manusia, jika sebuah sistem melakukan sebuah layanan untuk sistem komputer lain, sistem lain tersebut merupakan aktor.

2.5.2. Activity Diagram

Activity diagram adalah teknik untuk menggambarkan logika prosedural,

(41)

peran mirip diagram alir, tetapi perbedaan prinsip antara notasi diagram alir adalah activity diagram mendukung behavior paralel [4]. Node pada sebuah activity diagram disebut sebagai action, sehingga diagram tersebut menampilkan sebuah activity yang tersusun dari action.

2.5.3. Class Diagram

Class diagram menggambarkan jenis-jenis objek yang terdapat pada sistem dan berbagai macam relasi statis yang ada diantara objek-objek tersebut. Class diagram juga menunjukkan properti-properti dan operasi-operasi pada suatu

class dan batasan atau constraint yang berlaku pada cara objek-objek tersebut

saling berhubungan [4].

Multiplicity dari suatu properti adalah indikasi seberapa banyak objek yang

dapat mengisi properti tersebut. Secara umum, multiplicity didefinisikan dengan batas bawah dan batas atas. Batas bawah berupa angka positif dan nol, sedangkan batas atas berupa angka positif dan * (tidak terbatas) [4]. Berikut adalah tabel multiplicity yang terdapat pada class diagram.

Tabel 2.6 Multiplicity

Multiplicity Arti

0..0 Nol

0..1 Nol atau Satu 0..* Nol atau Banyak

1..1 Tepat satu

1. .* Satu atau banyak

2.5.4. Sequence Diagram

Interaction diagrams menggambarkan bagaimana kumpulan objek dapat

berkolaborasi dalam tindakan tertentu. UML mendefinisikan beberapa bentuk interaction diagram, salah satunya yang paling umum adalah sequence diagram.

(42)

Diagram ini menunjukkan sejumlah objek contoh dan pesan-pesan yang melewati objek-objek tersebut dalam suatu use case [4].

2.6 Bahasa Pemrograman

Bahasa pemrograman adalah sekumpulan aturan yang disusun sedemikian rupa sehingga pengguna komputer dapat membuat program komputer berdasarkan aturan tersebut [18]. Ada banyak macam bahasa pemrograman, diantaranya Java, PHP, Phyton, C, C++, dan lain lain. Dalam sistem pembangkitan pertanyaan ini, bahasa pemrograman yang dipakai adalah Java, Groovy, dan MySQL.

2.6.1. Java

Java merupakan bahasa pemrograman yang disusun oleh James Gosling

yang dibantu oleh rekan-rekannya di suatu perusahaan perangkat lunak yang bernama Sun Microsystems, pada tahun 1991. Bahasa pemrograman ini mula-mula diinisialisasi dengan nama Oak, namun pada tahun 1995 diganti namanya menjadi Java. Java adalah nama sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer yang berdiri sendiri ataupun pada lingkungan jaringan [21].

2.6.2. Groovy

Groovy adalah bahasa dinamis baru yang dapat diinterpretasi atau

dikompilasi dan didesain secara spesifik untuk Java platform. Groovy telah terpengaruh oleh bahasa-bahasa seperti Ruby, Phyton, Perl, dan Smalltalk, dan tentu saja Java [22].

Tidak seperti bahasa lain yang porting ke JVM (Java Virtual Machine), Groovy didesain dengan JVM di dalamnya. Sebagai contoh, Groovy bergantung pada Java API daripada memberi suplai kepada API-nya sendiri, sehingga developer tidak perlu memutuskan antara IO package dari Java dan IO method

dari library bahasa pemrograman lainnya [22].

Grails adalah sebuah framework open source yang menggunakan bahasa

(43)

menjadi framework dengan high-productivity dengan mengikuti “coding and invention” paradigma, menyediakan lingkungan pengembagan yang berdiri sendiri. Grails didesain untuk mudah di pelajari, mudah mengembangkan aplikasi dan mudah di rawat. Grails mencoba menawarkan keseimbangan antara konsistensi dan fitur-fitur yang powerful.

Grails adalah salah satu dari sekian banyak framework MVC

(model-view-controller) yang di buat pada platform Java. Karena di bangun pada platform

Java, maka Grails dapat memanfaatkan pustaka-pustaka Java yang telah ada

sebelumnya. Dan dalam membuat Grails, pihak pengembang memanfaatkan Hibernate dan Springs sebagai pondasi dasarnya namun dengan antarmuka yang

lebih sederhana dan konsisten.

2.6.3. SQL

(44)
(45)

31

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Masalah

Penelitian yang sudah pernah membuat sistem ini berhasil menciptakan pembangkitan pertanyaan non-factoid secara otomatis dengan menggunakan tiga jenis kategori, yaitu definisi, alasan, dan metode. Penggunaan kategori tersebut hanya dapat membangkitkan tiga jenis kata tanya, yaitu apa yang dimaksud, mengapa, dan bagaimana. Sedangkan kata tanya umum seperti siapa, apa, mana,

dan kapan tidak dapat dibangkitkan karena kata tanya tersebut menciptakan kalimat tanya factoid.

Untuk membangkitkan kata tanya siapa, apa, mana dan kapan yang belum teratasi pada penelitian sebelumnya, dibutuhkan fungsi sintaksis sebagai target yang ditanyakan. Fungsi-fungsi sintaksis yang dibutuhkan adalah subjek, predikat, objek, dan keterangan. Sebagai contoh, kata tanya siapa membutuhkan target tanya berupa fungsi sintaksis subjek atau objek. Oleh karena itu dibutuhkan analisis sintaksis yang berfungsi untuk mencari fungsi-fungsi sintaksis pada suatu kalimat yang kemudian akan digunakan sebagai acuan template pertanyaan.

Dari hasil pertanyaan dan jawaban yang dibangkitkan oleh sistem, diperlukan perhitungan akurasi relevansi pertanyaan dan jawaban dengan teks masukan untuk menilai tingkat akurasi dari sistem pembangkit pertanyaan otomatis.

3.2 Analisis Solusi

Berdasarkan masalah yang telah dijelaskan, penelitian ini akan menggunakan metode yang mirip tapi ditambah dengan suatu teknik analisis, yaitu analisis sintaksis, agar memungkinkan sistem pembangkitan pertanyaan dapat membangkitkan kalimat pertanyaan factoid dan bentuk kata tanya siapa, apa, kapan, mana, mengapa, dan bagaimana.

(46)

token (kata atau angka) menggunakan tokenisasi. Kumpulan token tersebut yang akan menjadi data awal pembangkitan pertanyaan yang selanjutnya akan dideteksi kata dasar, imbuhan, jenis kata, dan analisis sintaksisnya. Sehingga pada akhirnya akan menciptakan kumpulan pertanyaan yang sesuai dengan soal cerita yang diinput oleh user.

Gambar 3.1 Tahapan Utama Sistem

3.2.1. Analisis Masukan

Input atau masukan dalam sistem ini berupa file yang memiliki extention

(47)

3.2.2. Pre-Processing

Tahap awal yang dilakukan dalam sistem setelah mendapatkan teks soal cerita adalah pre-processing. Pre-processing merupakan tahapan yang sangat penting dalam sistem ini karena menentukan akurasi hasil pertanyaan yang dibangkitkan nanti. Pre-processing dalam sistem ini terdiri dari empat tahap, yaitu case folding, tokenisasi, stemming, dan deteksi jenis kata.

3.2.2.1. Case Folding

Case folding dilakukan untuk merubah huruf kapital menjadi huruf non-kapital. Case folding berfungsi agar mengurangi kesalahan sistem dalam membaca suatu kata saat melakukan pengecekan ke basis data kata dasar, karena kata dasar dalam basis data semuanya menggunakan huruf non-kapital Berikut perubahan teks input sebelum dan sesudah dilakukan case folding.

3.2.2.2. Tokenisasi Kalimat

Teks yang dimasukkan ke dalam sistem berupa kumpulan kalimat, sehingga diperlukan tokenisasi kalimat untuk memisahkan kumpulan kalimat tersebut. Tokenisasi ini dilakukan karena pertanyaan yang akan diciptakan berasal dari per kalimat. Berikut penggambaran tokenisasi kalimat.

kucing itu me ma ka n

(48)

Pada penggambaran di atas, teks masukan yang memiliki dua kalimat dipisahkan menjadi dua string atau data yang berbeda. Pemisahan kalimat ini berdasarkan tanda baca seperti titik, tanda tanya, dan tanda seru.

3.2.2.3. Tokenisasi Kata

Setelah kalimat dipisahkan dalam tokenisasi kalimat, tokenisasi kata dilakukan untuk mendapatkan token dalam bentuk per kata. Berikut penggambaran tokenisasi kata.

Hasil dari tokenisasi kata adalah mendapatkan token-token berupa kata atau angka yang berasal dari satu kalimat. Cara mendapatkan token-token tersebut adalah dengan memisahkan per kata berdasarkan spasi kosong.

No Hasil Tokenisasi Kalimat

1

kucing itu memakan makanannya yang telah diberikan sang majikan.

2 kucing itu kelaparan karena sudah lama tidak makan.

No Hasil Tokenisasi Kata

1 kucing

Gambar 3.3 Tokenisasi Kalimat

(49)

3.2.2.4. Stemming

Stemming dilakukan untuk mencari kata dasar dari token yang telah

didapatkan dari tahap sebelumnya. Tujuan digunakan stemming dalam sistem ini untuk menentukan jenis kata dan menangani perubahan predikat aktif menjadi predikat pasif.

Gambar 3.5 Proses Stemming

Proses stemming dibantu dengan kamus kata dasar yang didapatkan dari Kateglo, sehingga setelah dilakukan proses pemotongan akhiran dan awalan akan dilakukan pengecekan terlebih dahulu ke dalam kamus kata dasar yang sudah ada sebelum ditentukan telah ditemukan kata dasarnya. Proses stemming tersebut melakukan pendekatan algoritma Nazief dan Adriani berdasarkan pertimbangan akurasi yang telah dijelaskan pada sub-bab 2.2.3. Berikut contoh dari input dan output pada tahapan stemming.

Tabel 3.1 Contoh Stemming

Token Kata Dasar Imbuhan

Awalan Akhiran

kucing kucing - -

itu itu - -

memakan makan me -

(50)

Token Kata Dasar Imbuhan

Awalan Akhiran

yang yang - -

telah telah - -

diberikan beri di kan

sang sang - -

majikan majikan - -

Output dari tahapan ini adalah token dengan kata dasar dan imbuhannya bila memang ditemukan.

3.2.2.5. Deteksi Jenis Kata (POS Tag)

Jenis kata dalam sistem pembangkitan pertanyaan ini sangat diperlukan karena digunakan untuk membantu dalam analisis sintaksis. Dengan bantuan jenis kata, fungsi-fungsi sintaksis seperti subjek, predikat, objek, dan keterangan dapat ditemukan. Dengan ditemukannya fungsi-fungsi sintaksis tersebut, berdasarkan penjelasan pada subbab 2.1.4, pembentukan kalimat dapat dilakukan.

(51)

Gambar 3.6 Proses Deteksi Jenis Kata

Berikut contoh kata atau token yang akan dideteksi jenis katanya pada proses deteksi jenis kata yang digambarkan pada Gambar 3.4 dan bagaimana hasil keluaran dari proses tersebut.

Tabel 3.2 Hasil Deteksi Jenis Kata

Kata

(Token)

Kata

Dasar

Jenis Kata

Dasar

Imbuhan Jenis Kata

(Token)

Awalan Akhiran

kucing kucing Kata Benda - - Kata Benda

itu itu Kata Tunjuk - - Kata Tunjuk

memakan makan Kata Kerja me - Kata Kerja

makanannya makan Kata Kerja - an - nya Kata Benda

yang yang Konjungsi - - Konjungsi

telah telah Keterangan - - Keterangan

diberikan beri Kata Kerja di kan Kata Kerja

sang sang Kata Partikel - - Kata Partikel

(52)

Pada Tabel 3.2 data token, kata dasar, dan imbuhan yang sudah didapatkan dalam tahapan tokenisasi dan stemming sebelumnya menjadi input untuk deteksi jenis kata berdasarkan kata dasar dan imbuhan. Kolom jenis kata (token) merupakan jenis kata yang akan digunakan pada tahap selanjutnya, yaitu analisis sintaksis.

3.2.3. Proses Utama

Proses utama adalah proses lanjutan setelah pre-processing selesai dilakukan. Hasil dari pre-processing akan diolah untuk mencari fungsi-fungsi sintaksis seperti subjek, predikat, objek, dan keterangan. Kalimat tanya akan dibangkitkan menggunakan template berdasarkan fungsi-fungsi sintaksis yang telah ditemukan. Proses utama dalam penelitian ini dibagi menjadi dua proses yaitu analisis sintaksis untuk mencari fungsi sintaksis dan pembangkitan pertanyaan untuk membangkitkan pertanyaan berdasarkan template sintaksis.

3.2.3.1.Analisis Sintaksis

Kalimat terdiri dari satu atau lebih klausa yang disambung dengan konjungsi. Klausa memiliki fungsi-fungsi sintaksis yang salah satunya adalah fungsi sintaksis yang sangat penting, yaitu predikat. Predikat penting karena klausa sendiri adalah satuan sintaksis yang bersifat predikatif.

(53)

Gambar 3.7 Proses Analisis Sintaksis

Pencarian fungsi sintaksis setelah terbagi menjadi beberapa klausa dimulai dengan mencari predikat. Karena seperti yang telah dijelaskan sebelumnya, klausa adalah satuan sintaksis yang predikatif, sehingga kehadiran predikat sangat penting dalam klausa itu sendiri.

Token-token yang sudah memiliki informasi kata dasar, imbuhan, dan jenis kata yang telah didapatkan dari tahap-tahap sebelumnya akan dicari jenis kata konjungsi. Jika jenis kata konjungsi ada pada kumpulan token dalam satu kalimat tersebut, maka token-token akan dipisah berdasarkan kata konjungsi yang ditemukan sehingga terbagi menjadi klausa. Setelah klausa ditemukan, maka pencarian fungsi-fungsi sintaksis dapat dilakukan.

(54)

Tabel 3.3 Aturan Pencarian Fungsi Sintaksis

No Fungsi Aturan

1 Predikat Cari kata kerja pada kalimat tersebut dengan ketentuan : 1. Bila kata kerja hanya ada satu, maka jadikan

predikat.

K. Kerja

Contoh : Ibu pergi ke pasar. P

2. Bila kata kerja ada dua, maka ambil kata kerja yang kedua sebagai predikat dan kata kerja pertama sebagai subjek.

K. Kerja K. Kerja

Contoh : Berenang menyehatkan tubuh. S P

Setelah menemukan predikat, maka dilakukan pemeriksaan apakah predikat tersebut predikat aktif atau pasif. Berikut ketentuannya :

1. Bila predikat tersebut memiliki awalan di-, ter-, dan te-, maka predikat tersebut adalah pasif.

Contoh : Tikus dimakan kucing. P. Pasif

2. Bila predikat tersebut tidak memiliki awalan atau memiliki awalan selain ketentuan no 1, maka predikat tersebut adalah aktif.

(55)

No Fungsi Aturan

2 Subjek Lihat kata sebelum predikat dengan ketentuan :

1. Bila kata tersebut adalah kata benda atau kata kerja, jadikan subjek.

K. Benda K. Kerja

Contoh : Kucing memakan makanannya. S P

2. Bila kata tersebut adalah pronomina (kata ganti atau kata tunjuk), maka :

a. Jika tidak ada kata benda sebelum kata ini, jadikan kata ini sebagai subjek.

Pro

Contoh : Dia melempar batu. S P. Aktif

b. Jika ada kata benda sebelum kata ini, jadikan kata benda dan tersebut menjadi subjek. KB Pro

Contoh : Kucing itu memakan makanannya. S P. Aktif

3 Objek Lihat kata setelah predikat dengan ketentuan jika kata tersebut adalah kata benda, kata tunjuk, kata bilangan atau kata ganti, maka jadikan kata tersebut Objek.

KB Contoh : Kucing itu memakan makanannya. P. Aktif O

4 Keterangan Bila saat mendeteksi tiap kata menemukan kata keterangan tempat, cara, waktu, atau akibat, beri tanda bahwa kata tersebut adalah kata keterangan.

K.Ket Contoh : Kucing itu memakan makanannya di teras. Ket. Tempat

(56)

tersebut klausa bebas atau klausa terikat dengan ketentuan yang dijelaskan pada subbab 2.1.4 mengenai klausa bebas dan klausa terikat. Aturan penentuan klausa bebas atau klausa terikat dijelaskan pada tabel 3.4 di bawah ini.

Tabel 3.4 Aturan Penentuan Jenis Klausa

Jenis Klausa Aturan

Klausa Bebas / Klausa Induk

1. Jika konjungsi pada kalimat merupakan konjungsi koordinatif, klausa sudah dipastikan klausa bebas.

2. Jika fungsi sintaksisnya lengkap, klausa tersebut adalah klausa bebas.

Klausa Terikat / Klausa Anak

Klausa anak adalah klausa yang berada setelah konjungsi subordinatif. Berikut adalah beberapa kondisi setelah menemukan klausa anak :

1. Jika tidak memiliki subjek (dilesapkan), subjek klausa anak sama dengan subjek klausa induk.

2. Jika fungsi sintaksis lengkap, lihat posisi klausa. Bila posisi klausa setelah dan bersebelahan dengan konjungsi, maka klausa itu adalah klausa anak.

(57)

Gambar 3.8 Contoh Analisis Sintaksis

Pada contoh di atas, token-token selain token yang memiliki jenis kata konjungsi disatukan menjadi klausa. Token-token yang posisinya berada sebelum kata konjungsi disebut klausa 1, sedangkan token-token yang posisinya berada setelah konjungsi disebut klausa 2. Setelah token-token tersebut terbagi menjadi klausa, maka pencarian fungsi sintaksis dilakukan. Pencarian fungsi sintaksis menggunakan aturan pada tabel 3.3, dimana predikat dicari terlebih dahulu. Setelah mendapatkan predikat, dilakukan pencarian subjek dan objek dengan mencari kata benda yang posisinya berada di sebelum dan setelah predikat. Pada klausa 1 terlihat bahwa Pronomina (Pro) bersatu dengan KB (Kata Benda) menjadi objek karena sesuai aturan pada tabel 3.3. Jika ditemukan kata Pronomina dan kata benda sebelumnya, kedua kata tersebut menjadi subjek.

(58)

induk yang merupakan predikat pasif dapat disimpulkan bahwa subjek dari klausa anak adalah objek dari klausa induk.

3.2.3.2. Pembangkitan Pertanyaan

Setelah tahapan analisis sintaksis selesai dilakukan, maka data yang terkumpul adalah berupa fungsi-fungsi sintaksis dari setiap kata atau kumpulan kata dalam kalimat. Pembangkitan pertanyaan akan membentuk kalimat pertanyaan yang umum dengan memanfaatkan fungsi-fungsi sintaksis tersebut sebagai jawabannya. Kata tanya yang akan dibentuk adalah siapa, apa, mana, kapan, mengapa, dan bagaimana.

Pembangkitan kalimat pertanyaan dibantu dengan menggunakan template berdasarkan fungsi sintaksis yang didapatkan dari hasil analisis sintaksis.

Pada template ini, fungsi sintaksis yang akan ditanyakan akan dihilangkan dari kalimat dan diganti dengan kata tanya. Berikut adalah tabel template pertanyaan yang digunakan untuk membuat pertanyaan.

Tabel 3.5 Template Pertanyaan

Kata Tanya Template Pertanyaan

Siapa Fungsi yang ditanyakan : Subjek

Template: Siapa yang + (Predikat Aktif) + (Objek) + (Keterangan) +

?

Fungsi yang ditanyakan : Objek

Template: Siapa yang + (Predikat Pasif) + (Subjek) + (Keterangan) +

?

Apa Fungsi yang ditanyakan : Subjek

Template: Apa yang + (Predikat Aktif) + (Objek) + (Keterangan) + ?

Fungsi yang ditanyakan : Predikat Aktif

Template: Apa yang + (Subjek) + lakukan pada + (Objek) +

(59)

Kata Tanya Template Pertanyaan

Fungsi yang ditanyakan : Predikat Pasif

Template: Apa yang + (Objek) + lakukan pada + (Subjek) +

(Keterangan) + ?

Fungsi yang ditanyakan : Objek

Template: Apa yang + (Predikat Pasif) + oleh + (Subjek) +

(Keterangan) + ?

Mana Fungsi yang ditanyakan : Ket. Tempat

Template: (Di/Ke/Dari) mana + (Subjek) + (Predikat) + (Objek) + ?

Kapan Fungsi yang ditanyakan : Ket. Waktu

Template: Kapan + (Subjek) + (Predikat) + (Objek) + ?

Mengapa Fungsi yang ditanyakan : Ket. Sebab

Template: Mengapa + (Subjek) + (Predikat) + (Objek) + ?

Bagaimana Fungsi yang ditanyakan : Ket. Cara

Template: Bagaimana + (Subjek) + (Predikat) + (Objek) + ?

Contoh pembangkitan pertanyaan menggunakan template pada tabel 3.4 menggunakan contoh teks masukan digambarkan pada gambar di bawah ini.

(60)

Pada gambar 3.9, terlihat bahwa Klausa 1 memiliki tiga pertanyaan dan Klausa 2 memiliki satu pertanyaan dengan menggunakan aturan template pada tabel 3.4. Untuk lebih jelasnya, dapat dilihat pada tabel di bawah ini.

Tabel 3.6 Contoh Pembangkitan Pertanyaan

Kata Tanya Contoh Pertanyaan

Siapa Fungsi yang ditanyakan : Subjek

Klausa : kucing itu memakan makanannya.

Kalimat Tanya : Siapa yang memakan makanannya?

Jawaban : kucing itu

Fungsi yang ditanyakan : Objek

Contoh Klausa :(makanan kucing itu) telah diberikan sang majikan.

Kalimat Tanya : Siapa yang memberikan makanan kucing itu?

Jawaban : sang majikan.

Apa Fungsi yang ditanyakan : Predikat Aktif

Contoh Klausa : kucing itu memakan makanannya.

Kalimat Tanya : Apa yang kucing itu lakukan pada makanannya?

Jawaban : Kucing itu memakan makanannya.

Fungsi yang ditanyakan : Objek

Contoh Klausa : Kucing itu memakan makanannya.

Kalimat Tanya : Apa yang dimakan oleh kucing itu ?

Jawaban : makanannya

Hasil dari pembangkitan pertanyaan untuk kalimat “kucing itu memakan makanannya yang telah diberikan sang majikan” memiliki empat kalimat pertanyaan yang terdiri dari dua kata tanya, yaitu siapa dan apa.

3.4 Analisis Basis Data

(61)

pertanyaan yang dibuat. Berikut adalah penggambaran basis data yang digambarkan menggunakan Entity Relationship Diagram [26].

3.4.1 Entity Relationship Diagram

Model ERD pada sistem pembangkitan pertanyaan yang akan dibangun adalah sebagai berikut.

Gambar 3.10 Entity Relationship Diagram

3.4.2 Kamus Data ERD

(62)

Tabel 3.7 Kamus Data

Entitas Atribut

soal id, teks, waktu

kalimat id, soal_id, kalimat

klausa id, kalimat_id, jenis_klausa, urutan

pertanyaan id, klausa_id, pertanyaan, status

jawaban id, pertanyaan_id, jawaban

kata_dasar id, katadasar, jsonstr

Entitas kata_dasar adalah entitas yang memiliki data kamus kata dasar yang didapatkan dari kateglo. Atribut jsonstr pada entitas ini berisi data-data yang didapatkan dari kateglo seperti arti kata, jenis kata, sinonim, dan sebagainya. Sedangkan untuk tiga entitas lainnya digunakan untuk menyimpan hasil pertanyaan yang berhasil diciptakan oleh sistem. Entitas soal menyimpan teks yang dimasukkan ke dalam sistem, entitas kalimat menyimpan kalimat-kalimat yang terdapat pada teks, entitas klausa menyimpan jenis-jenis klausa (terikat atau bebas) yang terdapat pada tiap kalimat, dan entitas pertanyaan serta jawaban menyimpan pertanyaan dan jawaban yang berhasil diciptakan.

(63)

3.5 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional dilakukan untuk mengetahui spesifikasi kebutuhan pada sistem yang mencakup kebutuhan perangkat lunak, perangkat keras, dan pengguna.

3.5.1 Analisis Perangkat Lunak

Analisis perangkat lunak dilakukan untuk mengetahui spesifikasi perangkat lunak yang dibutuhkan untuk mendukung sistem dapat digunakan. Spesifikasi minimum perangkat lunak yang direkomendasikan adalah sebagai berikut.

1. Sistem operasi Windows 7. 2. Apache Tomcat 7.

3. Java 7. 4. MySQL.

5. Google Chrome dan Mozilla Firefox sebagai web browser.

3.5.2 Analisis Perangkat Keras

Analisis perangkat keras dilakukan untuk mengetahui spesifikasi perangkat keras yang dibutuhkan agar sistem dapat berjalan dengan baik. Spesifikasi minimum perangkat keras yang direkomendasikan adalah sebagai berikut.

1. Prosesor dengan kecepatan 1 GHz. 2. RAM 1 GB.

3. Harddisk 80 GB. 4. Monitor 15”.

5. Mouse dan Keyboard.

3.5.3 Analisis Pengguna

(64)

karena teks masukan pada sistem ini adalah teks soal cerita bahasa Indonesia. Selain karena teks masukannya adalah teks soal cerita bahasa Indonesia, user bahasa Indonesia dibutuhkan untuk mengevaluasi hasil pertanyaan yang diciptakan untuk menghitung akurasi sistem pembangkit pertanyaan ini. Berikut adalah rincian analisis pengguna pada sistem ini.

Tabel 3.8 Analisis Pengguna

Pengguna Tanggung

(65)

Gambar 3.11 Skema Pengujian Sistem

Perhitungan akurasi pertanyaan yang berhasil diciptakan oleh sistem diambil berdasarkan data hasil evaluasi pertanyaan dengan menjumlahkan pertanyaan yang memiliki status RELEVAN dan membagikannya dengan jumlah total pertanyaan untuk satu teks atau soal. Berikut adalah rumus perhitungannya.

Berikut adalah contoh penggunaan rumus di atas dengan data yang dimasukkan ke dalam sistem.

Tabel 3.9 Contoh Pengujian

Teks Masukan

Kucing itu memakan makanannya yang telah diberikan sang majikan. Sang majikan puas melihat kucingnya makan dengan lahap.

No Pertanyaan Jawaban Status

1 Siapa yang memakan makanannya?

Kucing itu RELEVAN

2 Apa yang dimakan oleh kucing itu?

Makanannya RELEVAN

3 Apa yang diberikan sang majikan?

Telah TIDAK

RELEVAN

(66)

Pada tabel 3.9 ditemukan tiga pertanyaan yang dapat dibangkitkan oleh sistem berdasarkan teks masukannya. Dengan menggunakan rumus akurasi, maka hasil akurasi dari contoh pada tabel 3.9 adalah 2/3 * 100%, sehingga hasilnya adalah 66.67%.

3.7 Perancangan Sistem

Perancangan sistem ini bertujuan untuk menggambarkan bagaimana sistem akan dibangun. Tahapan pemodelan untuk pembuatan sistem pada penelitian ini menggunakan Unified Modeling Language atau yang biasa disingkat menjadi UML. Diagram-diagram yang digunakan dalam merancang sistem adalah use case diagram, activity diagram, class diagram, dan sequence diagram [4].

3.7.1 Use Case Diagram

Aktor dalam sistem ini ada satu, yaitu user yang melakukan input teks pada sistem yang selanjutnya proses pembangkitan pertanyaan akan dilakukan. User pun memberikan penilaian pada pertanyaan yang berhasil diciptakan oleh

sistem pada proses evaluasi pertanyaan untuk mengukur relevansi hasil pertanyaan yang dibangkitkan terhadap teks masukan. Berikut adalah use case diagram pada sistem ini.

Gambar 3.12 Use Case Diagram

(67)

Penjelasan tiap use case akan dijelaskan dalam bentuk use case scenario. Penjelasan dalam skenario meliputi tujuan use case, aktor yang melakukan use case tersebut, dan skenario yang berjalan dalam use case. Berikut adalah use case

scenario untuk use case pre-processing, pembangkitan pertanyaan dan evaluasi

pertanyaan

Tabel 3.10 Use Case Scenario Pre-processing.

Identifikasi

Nama Pre-processing.

Tujuan Mendapatkan kata dasar, imbuhan, dan jenis kata. Deskripsi Proses awal dalam sistem untuk mendapatkan data

yang dibutuhkan pada proses utama. Proses ini mencakup mengunggah file, case folding, tokenisasi, stemming, dan deteksi jenis kata.

Aktor User.

Use Case yang berkaitan

Proses Utama

Skenario Utama

Kondisi Awal Halaman untuk mengunggah file ditampilkan.

Aksi Aktor Reaksi Sistem

1. Klik tombol Cari dan pilih file yang ingin diunggah.

2.Sistem membaca dan memeriksa file yang diunggah.

3.Bila file yang diunggah memiliki tipe ekstensi dan ukuran yang valid, maka proses selanjutnya dapat dilakukan.

4.Melakukan proses case folding. 5.Melakukan proses tokenisasi kalimat. 6.Melakukan proses tokenisasi kata. 7.Melakukan proses stemming.

8.Melakukan proses deteksi jenis kata. Skenario Alternatif

Aksi Aktor Reaksi Sistem

1. Menampilkan pesan bahwa file yang diunggah terlalu besar atau salah tipe ekstensi.

2. Menggunggah kembali file yang memiliki ukuran dan tipe ekstensi yang sesuai.

3. Sistem membaca dan memeriksa file yang diunggah

Gambar

Tabel 2.4 Imbuhan Gabung.
Gambar 2.2 Algoritma Nazief dan Adriani
Gambar 2.3 Contoh Flowchart
Gambar 3.1 Tahapan Utama Sistem
+7

Referensi

Dokumen terkait

4.Injap diperlukan untuk mengawal kadar aliran air,memberhentikan aliran air,melepaskan udara yang terperangkap di dalam paip,mengimbangi tekanan di dalam paip

Dari sudut pandang biaya lingkungan (environmental cost) dan manfaat biaya (cost benefit) pene- rapan akuntansi lingkungan akan meningkatkan usaha pengelolaan lingkungan

Untuk menentukan hal yang paling penting dari pertumbuhan ekonomi di suatu negara ialah dengan memperhitungkan kualitas dan kuantitas sumber daya manusia yang tersedia secara

Perbedaan keinginan dan minat masyarakat mempunyai keinginan membayar zakat karena kepercayaan pada lembaga amil zakat Masjid Al Akbar Surabaya bahwa dana yang di salurkan

Sedangkan fungsi seni dalam pengertian komunikasi adalah, dimana sebuah Sedangkan fungsi seni dalam pengertian komunikasi adalah, dimana sebuah karya seni itu mempunyai pesan

Secara umum hasil penelitian mendukung penelitian sebelumnya yang mengungkapkan bahwa kebun kakao khususnya yang masih mempertahankan tegakan hutan sebagai pohon

Berdasarkan latar belakang diatas, maka rumusan masalah yang dibuat pada penelitian ini adalah “Bagaimana merancang dan mengimplementasikan pendekatan triangular

REKAPITULASI NILAI SEMESATER I ANGKATAN 2008 SEMESTER GANJIL T.A 2008 / 2009..