• Tidak ada hasil yang ditemukan

Implementasi question answering system Bahasa Indonesia berbasis mobile domain farmasi obat-obatan

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi question answering system Bahasa Indonesia berbasis mobile domain farmasi obat-obatan"

Copied!
128
0
0

Teks penuh

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

NIM : 10109924

Tempat/tgl lahir : Garut, 17 Januari 1987 Jenis kelamin : Pria

Alamat : Jl. Titiran no.27 Bandung

Agama : Islam

Email : nurha07@gmail.com

RIWAYAT PENDIDIKAN

1993 – 1999 SD Negeri 1 Malangbong, Garut 1999 – 2002 SLTP Negeri 1 Malangbong, Garut 2002 – 2005 SMF Bumi Siliwangi, Bandung 2009 – 2014 Universitas Komputer Indonesia

(5)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ADI MUHAMMAD NURA

10109924

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(6)

iii

karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Implementasi Question Answering System Bahasa Indonesia Berbasis Mobile

Domain Farmasi Obat-Obatan” untuk memenuhi salah satu syarat kelulusan program studi Strata I program studi Teknik Informatika.

Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan, bantuan dan masukan dari berbagai pihak. Untuk itu, penulis ingin mengucapkan terimakasih yang sebesar-besarnya kepada:

1. Dr. Ir. Eddy Soeryanto Soegoto, M.Sc selaku Rektor Universitas Komputer Indonesia (UNIKOM).

2. Prof. Dr. Ir. Denny Kurniadie, M.Sc selaku Dekan Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia (UNIKOM).

3. Bapak Irawan Afrianto, S.T., M.T. selaku Ketua Program Studi Teknik Informatika Universitas Komputer Indonesia (UNIKOM).

4. Bapak Alif Finandhita S.Kom selaku dosen wali IF17K.

5. Bapak Edi Mulyana, M.T. selaku pembimbing yang telah memberikan arahan dan bimbingannya.

6. Bapak Galih Hermawan, S.Kom., M.T., selaku reviewer.

7. Kedua orang tua serta kakak-kakak yang selalu mendukung saya secara materil dan moril.

8. Kepada Nisa nurul inayah yang selalu ada dan mendukung, juga teman-teman seperjuangan seperti Nurul, Eka, Desy, Angga, Asep, Andri, Chandra dan semua teman-teman IF-17K/2009 yang selalu memberikan dukungan, semangat dan motivasi dalam pengerjaan tugas akhir ini. 9. Dan seluruh teman-teman yang tidak dapat disebutkan satu persatu,

(7)

khususnya dan semua yang berkepentingan pada umumnya.

Bandung, 22 Februari 2014

(8)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... xi

DAFTAR TABEL ... xiv

DAFTAR SIMBOL ... xvi

DAFTAR LAMPIRAN ... xx

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Identifikasi Masalah ... 2

1.3. Maksud dan Tujuan ... 3

1.4. Batasan Masalah ... 3

1.5. Metode Penelitian ... 4

1.5.1. Teknik pengumpulan data ... 4

1.5.2. Model pembuatan perangkat lunak ... 5

1.6. Sistematika Penulisan ... 6

BAB 2 TINJAUAN PUSTAKA ... 9

2.1. Closed Domain Question Answering System ... 9

2.2. Skema Question Answering ... 11

2.3. Pendekatan Dan Metode Dalam Question Answering... 11

2.3.1. Komponen Question Analyzer ... 12

(9)

2.4.1.1 Use Case Diagram ... 22

2.4.1.2 Class Diagram ... 23

2.4.1.3 Sequence Diagram ... 23

2.4.1.4 Activity Diagram ... 25

2.5 Mobile Android ... 26

2.5.1 Arsitektur Pada Android ... 30

2.5.1.1 Linux kernel... 31

2.5.1.2 Libraries ... 32

2.5.1.3 Android Runtime ... 33

2.5.1.4 Framework Aplikasi ... 33

2.5.1.5 Applications ... 34

2.5.2 XML pada Android ... 34

2.6 Java ... 35

2.7 Database (Basis data) ... 36

2.7.1 Entity Relationship Diagram (ERD) ... 37

2.8 Object Oriented Programming (OOP) ... 37

2.8.1 Konsep Objek ... 38

2.8.2 Konsep Kelas ... 38

2.8.3 Kelas Konstruktor ... 38

2.8.4 Enkapsulasi ... 38

2.8.5 Pewarisan ... 39

(10)

vii

2.9.3 Eclipse ... 41

2.9.4 Android Development Tools (ADT) ... 41

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 43

3.1 Analisis Masalah ... 43

3.1.1 Analisis Masalah Pada Question Answering System ... 43

3.1.1.1 Analisis Pada Komponen Question Analyzer ... 46

3.1.1.1.1 Penentuan Tipe Pertanyaan / Question Type... 46

3.1.1.1.2 Pemilihan Kata Kunci Dan Penentuan Topik Pertanyaan ... 50

3.1.1.1.3 Analisis Solusi Untuk Komponen Question Analyzer ... 50

3.1.1.2 Analisis pada komponen answer finder ... 53

3.1.1.2.1 Penentuan Corpus ... 53

3.1.1.2.2 Pencarian Dan Pengembalian Jawaban Dari Corpus... 54

3.1.1.2.3 Analisis Solusi Untuk Komponen Answer Finder ... 55

3.2 Penelitian Dan Kajian Terkait. ... 56

3.2.1 Pendekatan Machine Learning Untuk Question Answering Dalam Bahasa Indonesia ... 56

3.2.2. Question Answering System Dan Penerapannya Pada Alkitab ... 58

3.2.3. Eksperimen non-factoid question answering pada NTCIR-6: menuju answer type detection untuk real world questions ... 61

3.3. Analisis Sistem ... 64

3.3.1. Deskripsi Umum Sistem ... 64

(11)

3.3.6. Analisis Data Untuk Database/Corpus ... 68

3.3.6.1. Analisis basis data ... 68

3.4. Analisis Kebutuhan Non Fungsional ... 69

3.4.1. Analisis Kebutuhan Perangkat Lunak ... 70

3.4.2. Analisis Kebutuhan Perangkat Keras ... 70

3.4.3. Analisis Pengguna (user) ... 70

3.5. Analisis Kebutuhan Fungsional ... 71

3.5.1. SKPL (Spesifikasi Kebutuhan Perangkat Lunak) ... 72

3.5.2. Use Case Diagram ... 73

3.5.2.1. Use Case Diagram ... 73

3.5.2.2. Use Case Scenario ... 74

3.5.2.3. Activity Diagram ... 78

3.5.3. Class Diagram ... 82

3.5.4. Sequence Diagram ... 83

3.5.4.1. Sequence Diagram About ... 83

3.5.4.2. Sequence Diagram Home ... 83

3.5.4.3. Sequence diagram memasukan pertanyaan ... 84

3.5.4.4. Sequence Diagram Question Analyzer ... 84

3.5.4.5. Sequence Diagram Answer Finder ... 85

3.6. Perancangan Sistem ... 85

3.6.1 Perancangan Database ... 85

(12)

ix

3.6.2.2 Perancangan Antarmuka Hasil Jawaban ... 89

3.6.2.3 Perancangan Antarmuka halaman About ... 90

3.6.2.4 Perancangan Pesan aplikasi ... 90

3.6.3 Jaringan Semantik ... 91

3.6.4 Perancangan Method ... 91

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 93

4.1. Implementasi ... 93

4.1.1. Implementasi Perangkat Keras ... 93

4.1.2. Implementasi Perangkat Lunak... 93

4.1.3. Implementasi Basis Data... 93

4.1.4 Implementasi Antarmuka ... 95

4.2 Pengujian... 96

4.2.1 Rencana Pengujian ... 96

4.2.2 Skenario pengujian Blackbox ... 97

4.2.2 Kasus dan Hasil Pengujian... 97

4.2.2.1 Pengujian Aplikasi question answering berbasis mobile Android ... 97

4.2.3 Kesimpulan hasil pengujian Blackbox ... 98

4.2.4 Pengujian akurasi jawaban dari aplikasi question answering ... 98

4.2.5 Kesimpulan akurasi jawaban yang dikembalikan oleh aplikasi ... 102

4.2.6 Kasus dan Hasil Pengujian Beta ... 103

4.2.7 Kesimpulan Hasil Pengujian Beta ... 104

(13)
(14)

113

Answering : Overview of Methods for Information Access. Department of Linguistic and Phililigy Uppsala University. 2010

[2] Toto, S.N., Nanang G., Metode Penelitian Kuantitatif. Jakarta:Pustaka setia, 2012.

[3] Pressman. Roger S, software Engineering – A practitioner’s Approach (7th Edition), McGraw-Hill Higher Education, 2010.

[4] Kangavari, M.R., Ghandchi, S., Golpour, M. Information Retrieval : Improving Question Answering Systems by Query Reformulation and

Answer Validation. World Academy of Science, Engineering and Technology. 2008.

[5] Prabawa, W. Tugas Akhir: Studi Dan Implementasi List Question Answering System Untuk Bahasa Indonesia. Bandung: Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2011.

[6] Harabagiu, S. M., Maiorano, S. J., & Pasca, M. A. Experiments With Open-Domain Textual Question Answering. Dallas: Department of Computer Science and Engineering, Southern Methodist University. 2000.

[7] Fukumoto, J. Question Answering System for Non-factoid Type Question and Automatic Evaluation based on BE Method. Proceedings of NTCIR-6 Workshop Meeting. Tokyo, Japan. 2007.

[8] Zulen, A. A. Tugas Akhir : Studi dan Implementasi Pendekatan Monolingual pada question Answering Bahasa Indonesia untuk tipe

(15)

[10] Purwarianti, A., Tsuchiya, M., & Nakagawa, S. A Machine Learning Approach for Indonesian Question Answering System. Proceeding of the IASTED International Conference on Artificial Intelligence and Its

Application (AIA 2007). Innsbruck, Austria. 2007.

[11] Harabagiu, S. M., Maiorano, S. J., & Pasca, M. A. Open-Domain Textual Question Answering Techniques. Natural Language Engineering, volume 9. 2001.

[12] Larasati, S. D., & Manurung, R. Towards a Semantic Analysis of Bahasa Indonesia for Question Answering. Proceedings of the 10th Conference of the Pacific Association for Computational Linguistics. Melbourne, Australia. 2007.

[13] Mahendra, R., Larasati, S. D., & Manurung, R. Extending an Indonesian Semantic Analysis-based Question Answering System with Linguistic and World Knowledge Axioms. Proceedings of 22nd Pacific Asia Conference on Language, Information, and Computation. Cebu, Philippines. 2008. [14] Salton, G., Wong, A., & Yang, C. S. A Vector Space Model for Automatic

Indexing. 1975.

[15] Mizuno, J., Akiba, T., Fuuji, A., & Itou, K. Non-Factoid Question Answering Experiments at NTCIR-6: Towards Answer Type Detection for Real World Questions. Proceedings of NTCIR-6 Workshop Meeting. Tokyo, Japan. 2007.

[16] Watson, I., & Marir, F. Case-Based Reasoning : A review. The Knowledge Engineering Review, 327-254. 1994.

[17] Dharwiyanti, Sri dan Wahono, Satria , Pengantar Unified Modelling Language (UML) 2003.

(16)

115 Yogyakarta: Andi, 2009.

[22] Suarga, Dasar Pemrograman Komputer dalam Bahasa Java, Yogyakarta: Andi, 2012.

[23] A. Kadir, Pengenalan Sistem Informasi, Yogyakarta: Andi, 2002.

[24] Wicaksono, A. F., & Purwarianti, A. HMM-Based Part-Of-Speech Tagger for Bahasa Indonesia. Proceeding of the Fourth International MALINDO Workshop (MALINDO2010). Jakarta: Indonesia. 2006.

[25] Adriani, M., J., Nazief, B., Tabaghoghi, S., & Williams, H. E. Stemming Indonesian: A confix-stripping approach. ACM Transactions on Asian Language Information Processing (TALIP), 1-33. 2007.

[26] Gunawan & Gita, L. Question Answering System Dan Penerapannya Pada Alkitab. Jurnal informatika vol.7. Surabaya. 2006.

(17)

1.1. Latar Belakang Masalah

Pengetahuan farmasi khususnya obat-obatan yang digunakan untuk menyembuhkan orang sakit saat ini menjadi satu kebutuhan tersendiri untuk masyarakat yang ingin tahu lebih tentang obat yang digunakannya agar tidak salah informasi. Tidak sedikit orang yang harus mendatangi apotek atau klinik terlebih dahulu hanya untuk menanyakan tentang suatu obat baik itu indikasi ataupun dosisnya juga tentang istilah-istilah farmasi atau kedokteran. Ada juga yang harus pergi ke toko buku atau perpustakaan hanya untuk mencari informasi tentang obat yang dimaksud. Pada era media internet saat ini pun, banyak yang mencoba mencarinya di mesin pencari seperti Google dan tidak jarang hanya menemukan jawaban dalam bahasa inggris dan istilah-istilah farmasi atau kedokteran yang tidak dimengerti. Lalu, dengan terlalu banyaknya informasi di internet menyebabkan user harus memilih dan mencari lagi tentang informasi yang sesuai dengan kebutuhannya. Selain itu juga, referensi yang tepat guna dan lengkap tentang obat untuk masyarakat Indonesia di internet masih terhitung sedikit.

Internet telah berkembang menjadi salah satu media elektronik yang menyediakan informasi yang luas mengenai segala bidang kehidupan. Oleh karena ketersediaan informasi yang memadai dan cara akses yang begitu mudah, sebagian besar masyarakat di dunia kerap kali memanfaatkan internet untuk memenuhi kebutuhan informasinya terutama akses internet di smartphone karena sifatnya yang mobile atau mudah dibawa kemana-mana dan memang kebanyakan orang sekarang sudah tidak bisa dipisahkan lagi dengan perangkat bergeraknya.

(18)

dimana belum tentu seluruhnya diperlukan pengguna, hal ini tentu tidak efisien baik dari segi waktu maupun dari segi keakuratan jawaban yang diinginkan. Maka dari itu berkembanglah teknologi question answering system (QAS). QA system

adalah sebuah sistem komputer yang dapat menjawab pertanyaan yang diajukan dalam bahasa alami (natural language) dengan memanfaatkan berbagai teknik pemrosesan bahasa alami (natural language processing) yang dapat memberikan jawaban spesifik dan jelas sesuai dengan apa yang diperlukan oleh user[1].

Adapun satu aplikasi berbasis mobile Android yang penulis temukan di Android market atau Google Play yang bisa menjadi salah satu referensi informasi obat-obatan dan berbahasa Indonesia. Aplikasi tersebut merupakan aplikasi kamus yang diambil dari buku ISO yang bernama ISO medicine. ISO medicine mempunyai data yang cukup lengkap tentang obat-obatan yang beredar di Indonesia dan bisa menjadi salah satu referensi aplikasi mobile tentang obat-obatan di Indonesia. Secara fungsional, ISO medicine cukup bisa memberikan informasi yang penggunanya perlukan namun ISO medicine memiliki terlalu banyak menu atau pilihan untuk mendapatkan informasi yang diinginkan dan masih terlihat kurang menarik baik secara tampilan maupun fiturnya.

Berdasarkan kondisi di atas, maka diperlukan suatu aplikasi berbasis mobile

yang bisa memberikan informasi farmasi khususnya obat-obatan yang mudah, cepat, tepat guna, menarik, dan bisa dilakukan dimana saja serta berbahasa Indonesia agar mudah dimengerti oleh masyarakat Indonesia.

1.2. Identifikasi Masalah

Berdasarkan latar belakang masalah diatas, maka permasalahan yang diangkat dalam tulisan ini adalah:

1. Masih jarang adanya referensi lengkap tentang kefarmasian khususnya obat-obatan dalam bahasa Indonesia di Internet ataupun aplikasi mobile.

(19)

kebutuhan. Hal ini tentu menjadi tidak efisien baik dari segi waktu maupun dari segi keakuratan jawaban yang diinginkan.

3. Masih jarang tersedia aplikasi berbasis mobile android yang berbahasa Indonesia dan khusus memberikan informasi tentang obat-obatan yang beredar di Indonesia dan yang bisa dengan spesifik memberikan jawaban atau informasi yang tepat diperlukan oleh user dan mudah digunakan.

1.3. Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian tugas akhir ini adalah untuk mengimplementasikan Question Answering System

pada mobile android dengan domain kefarmasian obat-obatan.

Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah:

1. Untuk menyediakan referensi lengkap tentang kefarmasian khususnya obat-obatan pada perangkat mobile dan berbahasa Indonesia.

2. Untuk membuat suatu sistem pencarian dengan pengembalian jawaban lebih spesifik yg bisa memberikan informasi yang sesuai pertanyaan user dan sesuai apa yang dibutuhkan.

3. Menyediakan aplikasi berbasis mobile android dan berbahasa Indonesia yang mengimplementasikan question answering system dan memberikan informasi obat-obatan kepada masyarakat di Indonesia.

1.4. Batasan Masalah

Batasan masalah dari tugas akhir ini adalah:

1. Tipe masukan pertanyaan dalam bahasa Indonesia yang jelas dan berupa teks. 2. Informasi obat-obatan atau perkiraan jawaban yang diberikan terbatas pada

(20)

3. Menggunakan metode Matching Pattern dalam sistem question answering ini. 4. Dilihat dari jawaban yang dikembalikan, QA system yang digunakan hanya

mengembalikan jenis jawaban factoid dan non factoid.

5. Keluaran dari aplikasi ini berupa teks.

1.5. Metode Penelitian

Metodologi yang digunakan dalam penelitian tugas akhir ini adalah metode analisis deskriptif, yaitu metode penelitian yang dimaksudkan untuk mengumpulkan informasi mengenai status suatu gejala yang ada, yaitu keadaan gejala menurut apa adanya pada saat penelitian dilakukan[2].

1.5.1. Teknik pengumpulan data

Teknik pengumpulan data dilakukan untuk memperoleh hasil penelitian yang valid. Teknik pengumpulan data yang dilakukan adalah sebagai berikut.

a. Studi lapangan 1. Wawancara

Teknik pengumpulan data dengan mengadakan tanya jawab secara langsung yang ada kaitannya dengan kebutuhan informasi tentang farmasi khususnya obat-obatan yang mudah didapat di masyarakat pada umumnya. 2. Observasi

Observasi adalah teknik pengumpulan data dengan cara melibatkan pewawancara (observer) dalam kegiatan objek yang diobservasi, dalam hal ini melakukan pengamatan terhadap sistem question answering yang telah ada

b. Kajian Pengetahuan / Studi Literatur

(21)

1.5.2. Model pembuatan perangkat lunak

Tahapan dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall karena menghasilkan sistem yang terstruktur dengan baik ditiap prosesnya. Adapun proses-proses yang terdapat dalam model

waterfall dapat dilihat pada gambar 1.1 berikut:

Gambar 1.1 waterfall [3]

Adapun penjelasan dari gambar 1.1 mengenai tahap-tahap pembangunan perangkat lunak yang digunakan diantaranya adalah sebagai berikut:

1. Requirements definition

(22)

2. System and software design

Merupakan tahap desain yang dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.

3. Implementation and unit testing

Merupakan tahap desain program yang diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun lansung diuji secara unit.

4. Integration and system testing

Merupakan tahap penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

5. Operation and maintenance

Merupakan tahap mengoperasikan program di lingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

1.6. Sistematika Penulisan

Sistematika penulisan proposal penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut:

BAB I PENDAHULUAN

(23)

BAB II LANDASAN TEORI

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan.

BAB III ANALISIS MASALAH DAN PERANCANGAN

Berisi analisis kebutuhan untuk sistem yang akan dibangun sesuai dengan metode pengembangan metode perangkat lunak yang digunakan. Sedangkan perancangan sistem berupa tahapan-tahapan yang dilakukan dalam perancangan struktur antar muka untuk aplikasi yang akan dibangun.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Berisi hasil implementasi analisis dari perancangan sistem yang dilakukan, serta hasil pengujian sistem untuk mengtahui apakah aplikasi yang dibangun sudah memenuhi kebutuhan.

BAB V KESIMPULAN DAN SARAN

(24)
(25)

2.1. Closed Domain Question Answering System

Closed Domain Question Answering System merupakan sistem pemrosesan teks yang digunakan untuk menjawab pertanyaan dengan format bahasa sehari-hari yang diberikan oleh pengguna dari sistem. Question Answering System

kemudian mengekstraksi jawaban dari koleksi dokumen yang terbatas[4].

Bila dilihat dari jenis pertanyaan yang diberikan dan jawaban yang dikembalikan, QAS dapat dibagi menjadi lima jenis [5], yaitu:

1. Factoid, pertanyaan dengan jawaban berupa sebuah fakta singkat yang biasanya terdiri dari beberapa kata saja.

Contoh: pertanyaan : “siapakah presiden pertama Republik Indonesia?”

Jawaban: “Soekarno”

2. Non factoid, pertanyaan dengan jawaban fakta yang cukup panjang yang biasanya terdiri dari satu klausa atau lebih.

3. Definition, pertanyaan yang menanyakan definisi dari sesuatu. Contoh: pertanyaan : “apakah ular itu?”

Jawaban : “ular adalah reptil yang tak berkaki dan bertubuh panjang”

4. How, pertanyaan yang menanyakan cara.

(26)

Jawaban : “cara menggunakan sedotan adalah dengan memasukan sedotan ke air, kemudian hisap dari ujung lubangnya”

5. Why, pertanyaan mengenai penyebab.

Contoh: pertanyaan : “mengapa indonesia miskin?”

Jawaban : “banyak pejabat yang koruptor”

6. Hypothetical, pertanyaan hipotesis yaitu penjelasan yang belum bisa dibuktikan.

Contoh: pertanyaan: “bila seluruh hutan habis menjadi pemukiman manusia, apa yang akan terjadi?”

Jawaban: “aneka ragam flora dan fauna yang berhabitat di hutan tersebut akan punah”

7. List, pertanyaan dengan jawaban berupa daftar atau beberapa jawaban lebih dari satu.

Contoh: pertanyaan : “apa saja tim yang memenangkan liga champion 3 tahun terakhir?”

Jawaban : “Barcelona, inter milan, Bayern Muenchen”

8. Yes / No, pertanyaan yang jawabannya terdiri dari dua jawaban “ya” atau

“tidak”.

Contoh: pertanyaan : “apakah Soeharto adalah presiden ke 2 Republik Indonesia?”

Jawaban : “ya”

(27)

Jawaban : “menurut beberapa orang, mengerjakan skripsi itu sangat susah karena banyak yang tidak lulus karena belum sanggup mengerjakannya”

2.2. Skema Question Answering

Pada umumnya sistem QA terdiri atas tiga komponen utama[6], yaitu question analyzer, passage retriever, dan answer finder.

1. Question analyzer

Komponen ini berfungsi untuk menentukan beberapa informasi yang dapat diperoleh dari kalimat pertanyaan masukan, antara lain: tipe jawaban yang diharapkan / EAT (Expected answer type) dan kata-kata kunci. Kata-kata kunci yang dihasilkan oleh komponen ini selanjutnya akan digunakan oleh komponen passage retriever untuk mengambil dokumen-dokumen yang diperkirakan mengandung jawaban dari pertanyaan.

2. Passage retriever

Komponen ini berfungsi untuk menemukan / mengambil dokumen-dokumen (atau bagian dari dokumen-dokumen) yang kemungkinan mengandung jawaban dari pertanyaan yang diberikan berdasarkan kata kunci yang dihasilkan oleh komponen question analyzer. Komponen ini menggunakan metode information retrieval (IR) untuk mengambil dokumen-dokumen tersebut.

3. Answer finder

(28)

2.3. Pendekatan Dan Metode Dalam Question Answering

Pendekatan dan metode yang dibahas dalam subbab ini difokuskan pada pendekatan yang digunakan untuk QA yang dapat menangani pertanyaan terstruktur. Pembahasan mengenai pendekatan dan metode dalam QA ini akan dibagi menjadi tiga bagian sesuai dengan komponen yang ada pada sistem QA yaitu question analyzer, passage retriever, dan answer finder.

2.3.1 Komponen Question Analyzer

Komponen ini berfungsi untuk mengklasifikasikan jenis pertanyaan dan menentukan informasi-informasi yang dibutuhkan dari pertanyaan yang dimasukkan tersebut. Informasi tersebut misalnya Expected Answer Type (EAT), kata-kata kunci, fokus/topik pertanyaan dan informasi lain yang dapat digunakan untuk membantu proses di komponen selanjutnya.

Beberapa metode yang dapat digunakan untuk komponen question analyzer antara lain:

1. Question pattern matching [7] [8] [9], 2. Machine learning [10],

3. Parsing [11],

4. Analisis semantik [12] [13].

1. Question pattern matching

(29)

Tabel 2.1 contoh pattern untuk pertanyaan factoid dan non-factoid [9]

Question type Question pattern

Non-factoid

Definition [what]+[is]+ <term> Reason [why]+<term>

Relationship [what]+[is]+[relationship]+<entity-1>+[and]+<entity-2> Biography [who]+[is]+<person>

Event [what]+[is/are]+<event> Method [how]+[to]+[use+do]+<term>

Factoid

Person [who]+[is]+<point-to-person> Location [where]+[is]+<point-to-location> Date [when]+<point-to-time>;[what]+[time] Organization [what/which]+<organization>

quantity [how]+[many+much]+<point-to-quantity>

2. Machine Learning

(30)

antara lain kata tanya, preposisi, kandidat EAT, WordNet distance, dan bi-gram frequency. Contoh penggunaan dan penerapan dapat dilihat pada tabel 2.2.

Tabel 2.2 Rule untuk menentukan kandidat EAT [10]

Kata tanya preposisi frase Kandidat EAT

Kapan Date

Berapa Date, quantity, name

Siapa Person, organization, location, name Mana Di, ke, dari PN Location, organization

Apa Not blank NP Location, organization, name, date Apa/mana blank NP Organization, location, name, person

3. Parsing

Pada metode parsing, dilakukan proses pada kalimat pertanyaan yang menjadi masukan. Dari kalimat ini kemudian dihasilkan parse tree yang menunjukan struktur kalimat ini dan posisi dari masing-masing kata (penyusun kalimat) tersebut. Kemudian parse tree yang dihasilkan akan dicocokkan dengan struktur kalimat yang ada pada koleksi dokumen. Berikut contoh parse tree yang dihasilkan dari sebuah kalimat pada gambar 2.1.

(31)

4. Analisis Semantik

Pada metode analisis semantik, dihasilkan representasi semantik dari kalimat yang diberikan. Komponen yang khusus menangani pembentukan representasi semantik dari kalimat tersebut biasanya adalah semantic analyzer. Komponen ini menghasilkan representasi semantik dari parse tree yang dihasilkan sebelumnya. Gambar 2.2 adalah contoh representasi semantik dari kalimat pernyataan “presiden mengumumkan susunan kabinet baru kepada wartawan di istana” dan kalimat pertanyaan “siapa mengumumkan susunan kabinet baru?”.

Gambar 2.2 Contoh representasi semantik [12] 2.3.2 Komponen Passage Retriever

(32)

sebagai query pencarian pada mekanisme IR yang kemudian digunakan untk mencari dokumen yang mengandung term dari query tersebut. Pada metode ruang vektor ini, query dan dokumen direpresentasikan sebagai vektor-vektor. Kedekatan antara dua vektor disebut dengan similarity atau kemiripan. Kemiripan tersebut dihitung dengan rumus kosinus. Semakin dekat jarak kedua vektor, semakin besar kemiripannya maka semakin relevan dokumen tersebut. Untuk mengukur tingkat kerelevanan dokumen-dokumen tersebut digunakan pembobotan yang biasanya menggunakan term frequency (TF), inverse document frequency(IDF), dan normalisasi. Berikut persamaan (2.1) yang digunakan untuk menghitung similarity [14]

Persamaan (2.1)

Similarity

keterangan:

sim(Q,D) = similarityvektor query dan vektor dokumen wqi = bobot term i dalam query

wdi = bobot term i dalam dokumen r = jumlat term di query

s = jumlah term di dokumen 2.3.3 Komponen Answer Finder

Komponen ini berfungsi untuk menemukan kandidat-kandidat jawaban dari dokumen atau bagian dokumen yang berhasil diambil/ditemukan oleh komponen

passage retriever. Kandidat jawaban kemudian akan diurutkan berdasarkan aturan tertentu.

(33)

machine learning/pembelajaran mesin [15], dan analisis semantik [12]. Pada pendekatan pencocokan pola digunakan aturan berdasarkan surface expression pattern dan linguistic clue. Surface expression pattern adalah pola tertentu yang disusun oleh kata-kata tertentu yang sering muncul berdasarkan jenis pertanyaannya, misalnya definition, why, reason, how, dsb. Sedangkan linguistic clue adalah petunjuk-petunjuk bahasa yang dapat membantu mengidentifikasi posisi atau klasifikasi kalimat. Beberapa contoh penerapan metode pattern matching untuk tipe pertanyaan non-factoid adalah sebagai berikut:

1. Untuk tipe pertanyaan definition, contoh pola yang digunakan dapat dilihat pada tabel 2.3 berikut ini.

Tabel 2.3 Contoh pola untuk pertanyaan Definition

Pattern

<keyword> + [is/are] + <answer>

<keyword> + [mean/means] + <answer> <answer>(<keyword>)

2. Untuk tipe pertanyaan reason, contoh pola yang digunakan dapat dilihat pada tabel 2.4 berikut ini.

Tabel 2.4 Contoh pola untuk pertanyaan reason

Pattern

(34)

3. Untuk tipe pertanyaan how, contoh pola yang digunakan dapat dilihat pada tabel 2.5 berikut ini.

Tabel 2.5 contoh pola untuk pertanyaan how

Pattern

<step> + <keyword> + <answer> [to do] + <keyword> + <answer>

Pada pendekatan pembelajaran mesin, salah satu aturan yang dapat digunakan adalah menentukan apakah tipe pertanyaan dengan tipe kandidat jawaban sama atau tidak. Jika tipe jawaban dan tipe kandidat jawaban cocok, maka kandidat jawaban itu dapat dimasukkan sebagai jawaban dari pertanyaan tersebut, dengan syarat topiknya sama. Algoritma pembelajaran mesin yang biasa dipakai adalah

Support Vector Machine (SVM). Pencocokan tipe ini dapat dilakukan setelah masing-masing tipe dari pertanyaan dan jawaban diklasifikasikan secara terpisah atau dapat dilakukan langsung dalam satu proses. Ilustrasi dari penggunaan metode ini dapat dilihat pada gambar 2.3 berikut.

Gambar 2.3 Ilustrasi konstruksi penentuan jawaban dengan menggunakan

(35)

Pada pendekatan analisis semantik, sistem harus diberikan “pengetahuan” terlebih dahulu berupa kalimat pernyataan. Kalimat pernyataan ini akan diproses ke dalam representasi semantik, kemudian “dicocokkan” dengan representasi semantik dari kalimat-kalimat pernyataan yang ada. Penjelasan dapat dilihat pada gambar 2.4.

Gambar 2.4 Contoh representasi semantik [12]

2.4 Unified Modeling Language (UML)

(36)

2.4.1 Diagram UML

UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu :

1. Use case Diagram untuk memodelkan proses bisnis

2. Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam

aplikasi

3. Sequence Diagram untuk memodelkan pengiriman pesan (message) antar

objects

4. Collaboration Diagram untuk memodelkan interaksi antar objects 5. State Diagram untuk memodelkan perilaku objects di dalam sistem

6. Activity Diagram untuk memodelkan perilaku Use cases dan Objects di dalam

sistem

7. Class Diagram untuk memodelkan struktur kelas 8. Object Diagram untuk memodelkan struktur object

9. Component Diagram untuk memodelkan komponen object 10. Deployment Diagram untuk memodelkan distribusi aplikasi

Menurut Dharwiyanti [17], UML menyediakan 8 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:

1. Use case Diagram untuk menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”.

2. Sequence Diagram untuk menggambarkan interaksi antar objek di dalam dan

di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa

(37)

3. Collaboration Diagram menggambarkan interaksi antar objek seperti

sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message.

4. Statechart Diagram untuk menggambarkan transisi dan perubahan keadaan

(dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.

5. Activity Diagram Activity diagrams menggambarkan berbagai alur aktivitas

dalam sistem yang sedang dirancang, bagaimana masing-masing alur berawal,

decision yang mungkin terjadi, dan bagaimana mereka berakhir.

6. Class Diagram untuk menggambarkan struktur dan deskripsi class, package

dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

7. Component Diagram untuk menggambarkan struktur dan hubungan antar

komponen piranti lunak, termasuk ketergantungan(dependency) di antaranya.

8. Deployment Diagram untuk menggambarkan detail bagaimana komponen

dideploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Untuk pengembangan aplikasi dalam penelitian ini akan digunakan 4 macam UML diagram, yaitu :

(38)

2.4.1.1Use Case Diagram

Use case mengidentifikasi dan menjelaskan fungsi sistem dari perspektif pengguna luar dan dengan cara dan terminologi yang mereka mengerti. Secara akurat dan menyelesaikan permintaan ini, pengguna tingkat tinggi terlibat yang merupakan ahli subjek materi yang memiliki pengetahuan tentang proses business

atau peristiwa.

Gambaran use case diwakili oleh sebuah elips horizontal dengan nama muncul kasus penggunaan di atas, bawah, atau di dalam elips. sebuah use case mewakili tujuan tunggal dari sistem yang menggambarkan urutan kegiatan dan interaksi pengguna dalam usaha mencapai tujuan. Pembuatan use case telah terbukti menjadi teknik yang sangat baik untuk lebih memahami dan dokumen persyaratan sistem. Use case sendiri adalah tidak dianggap sebagai persyaratan fungsional, tetapi cerita (skenario). Use case menceritakan terdiri dari satu atau lebih persyaratan.

Use case diagram terdiri atas diagram untuk proses dan aktor. Aktor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi. Proses merepresentasikan operasi-operasi yang dilakukan oleh aktor. Proses digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Aktor yang melakukan operasi dihubungkan dengan garis lurus ke use case.

(39)

2.4.1.2Class Diagram

Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan.

Menurut Roger S. Pressman [3], Class diagram digunakan untuk memodelkan kelas-kelas, termasuk atribut dan operasinya serta hubungan dan asosiasinya dengan kelas lainnya. Class diagram menyediakan sebuah gambaran statis atau struktural dari sebuah sistem. Class diagram tidak memperlihatkan komunikasi dinamis antar objek dari kelas yang ada dalam diagram.

Gambar 2.7 Contoh Class Diagram

2.4.1.3Sequence Diagram

Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar

(40)

Sequence diagram adalah diagram yang menggambarkan interaksi antara aktor dan sistem untuk sebuah skenario use case. Sequence diagram menggambarkan bagaimana objek saling berinteraksi satu sama lain melalui messages dalam eksekusi dari sebuah use case atau operasi. Diagram ini menggambarkan langkah-langkah pesan dikirim dan diterima antara objek [17].

Gambar 2.8 Contoh Sequence Diagram

Berikut ini merupakan macam-macam notasi dari sequence diagram:

1. Actor: dilambangkan dengan gambar actor dari use case. 2. System: dilambangkan dengan sebuah kotak.

3. Lifelines: garis putus-putus vertikal, yang merupakan perpanjangan dari actor

(41)

4. Activation bars: sebuah bar yang mengindikasikan periode waktu kapan

partisipan aktif di dalam interaksi.

5. Input messages: panah horizontal dari actor menuju sistem yang

mengindikasikan pesan masuk.

6. Output messages: panah horizontal dari sistem menuju actor, ditunjukkan

dengan panah bergaris putus-putus. 2.4.1.4Activity Diagram

Activity diagram, secara grafis digunakan untuk menggambarkan rangkaian aliran aktivitas baik proses bisnis atau use case. Diagram ini juga dapat digunakan untuk memodelkan aksi yang akan dilakukan saat sebuah operasi dieksekusi, dan memodelkan hasil dari aksi tersebut.

Gambar 2.9 Contoh Activity diagram

Berikut ini merupakan notasi dari ActivityDiagram:

1. Initial node: menunjukan permulaan dari progres, dilambangkan dengan

(42)

2. Actions: dilambangkan dengan sebuah kotak dengan ujung membulat

merepresentasikan setiap langkah individual. Urutan dari aksi membentuk keseluruhan dari aktivitas yang ditunjukkan oleh diagram.

3. Flow: dilambangkan dengan panah yang mengindikasikan progres melalui

actions. Setiap panah tidak diperlukan kata untuk mengidentifikasikannya kecuali untuk menentukan pilhan.

4. Decision: dilambangkan dengan lambang wajik. Terdapat satu panah yang

masuk dan terdapat 2 atau lebih panah yang keluar dari pilihan wajik. Setiap panah terdapat keterangan yang menerangkan kondisi.

5. Merge: dilambangkan dengan lambang wajik, terdapat 2 atau lebih panah

yang masuk namun hanya satu panah yang keluar.

6. Fork: dilambangkan dengan kotak garis warna hitam, dimana hanya satu

panah yang masuk, namun terdapat dua atau lebih panah yang keluar.

7. Join: dilambangkan dengan kotak garis warna hitam seperti fork, namun

terdapat dua atau lebih panah yang masuk dan satu panah yang keluar.

8. Activity final: menunjukkan akhiran dari suat progress, dilambangkan dengan

suatu lingkaran solid dilingkari oleh lingkaran kosong. 2.5 Mobile Android

Android merupakan sebuah platform yang merupakan produk dari Open Handset Alliance yang dipimpin oleh Google. Kelompok ini terdiri dari operator selular, produsen perangkat handset, produsen komponen, solusi perangkat dan penyedia platform dan perusahaan pemasaran[18].

Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan

(43)

mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Quacomm, T-Mobile, dan Nvidia.

Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler.

Sekitar september 2007 Google mengenalkan Nexus One, salah satu jenis

smartphone yang menggunakan Android sebagai sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada Januari 2008. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communication, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sonny Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka Android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru [18]. Versi-versi dari android:

1. Android versi 1.1

(44)

terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.

2. Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, 16 Gestures, dan Text-tospeech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA).

3 Android versi 2.0/2.1 (Eclaire)

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan user interface dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.

4. Android versi 2.2 (Froyo: Frozen Yoghurt)

Android Froyo yaitu android versi 2.2 diluncurkan pada tanggal 20 Mei 2010, dengan perubahan terhadap versi android sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.

5. Android Gingerbread 2.3

(45)

dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

6. Android HoneyComb 3.0/3.1

Android HoneyComb dirancang khusus untuk tablet, disini anda dapat melihat tablet yang memakai android untuk OS beserta harga tablet. Android versi ini mendukung ukuran layar yang lebih besar. User interface pada

HoneyComb juga berbeda karena sudah didesain untuk tablet. HoneyComb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan HoneyComb adalah Motorola Xoom. Perangkat tablet dengan platform Android 3.0 akan segera hadir di Indonesia. Perangkat tersebut bernama Eee Pad Transformer produksi dari Asus. Rencana masuk pasar Indonesia pada Mei 2011.

7. Android Ice Cream Sandwich (ICS) 4.0

Android Ice Cream Sandwich diumumkan pada tanggal 19 Oktober 2011, membawa fitur HoneyComb untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC.

8. Android versi 4.1 (Jelly Bean)

Sampai tulisan ini di tulis Versi Android Jelly Bean adalah versi Android yang terbaru. Android Jelly Bean yaang diluncurkan pada acara Google I/O lalu membawa sejumlah keunggulan dan fitur baru. Penambahan baru diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat.Tak ketinggalan Google Now juga menjadi bagian yang diperbarui. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga.

(46)

a. Framework Aplikasi yang mendukung penggantian komponen dan

reusable.

b. Mesin Virtual Dalvik berjalan diatas Linux kernel dan dioptimalkan untuk perangkat mobile.

c. Integrated browser berdasarkan open source engine WebKit.

d. Grafis yang dioptimalkan dan didukung oleh library grafis 2D yang terkostumisasi, grafis 3D berdasarkan spesifikasi openGL ES 1,0 (Opsional akselarasi hardware).

e. SQLite untuk penyimpanan data.

f. Media support yang mendukung audio, video, dan gambar (MPGE, H.264, MP3, AAC, AMR, JPG, PNG, GIF).

g. GSM Telephony (tergantung hardware).

h. Bluetooth, EDGE, 3G, GPS, dan WIFI (tergantung hardware).

i. Lingkungan Development yang lengkap dan kaya termasuk perangkat

emulator, tools untuk debugging, profil dan kinerja memori, dan plugin

untuk Eclips IDE.

j. Multi-touch, kemampuan layaknya handset modern yang dapat

menggunakan dua jari atau lebih untuk berinteraksi dengan perangkat. k. Market, Seperti kebanyakan Handphone yang memiliki tempat penjualan

aplikasi, market pada android merupakan katalog aplikasi yang dapat di

download dan di install pada Handphone melalui internet. Ada beberapa batasan dalam pengembangan aplikasi mobile, yaitu.

1. Sumber daya yang terbatas. 2. Keterbatasan koneksi internet. 3. Processor, memory dan baterai. 2.5.1 Arsitektur Pada Android

Sistem operasi Android memiliki 4 lapisan (layer) yang merupakan komponen

system Android. Gambar di halaman selanjutnya merupakan lapisan arsitektur

(47)

Gambar 2.10 Overview dari arsitektur Android [19]

Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari system operasi. Berikut ini susunan dari lapisan – lapisan tersebut dilihat dari lapisan dasar hingga lapisan teratas.

2.5.1.1Linux kernel

Tumpukan paling bawah pada arsitektur Android ini adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun system Android, yang mencakup memory management, security setting, power management dan beberapa driver hardware. Kernel berperan sebagai abstraction layer antara

hardware dan keseluruhan software. Sebagai contoh : HTC GI dilengkapi dengan kamera. Kernel Android terdapat driver kamera yang memungkinkan pengguna mengirimkan perintah kepada hardware kamera.

(48)

dalam manajemen memori dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, WiFi, Flash Memory, audio dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.

2.5.1.2Libraries

Bertempat di level yang sama dengan android runtime adalah libraries. Android menyertakan satu set library-library dalam bahasan C/C++ yang digunakan oleh berbagai komponen yang ada pada sistem android. Kemampuan ini dapat diakses oleh programmer melewati android application framework. Sebagai contoh android mendukung pemutaran format audio, video dan gambar.

Berikut beberapa core library tersebut:

1. System C Library– variasi dari implemetasi standard C sistem library

(libc) milik BSD, dioptimasi untuk piranti embedded berbasis linux. 2. Media Libraries – berdasarkan packet video‟s openCORE, library

-library ini mendukung playback dan recording dari berbagai format audio dan video popular, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG.

3. Surface Manager – Mengelola atau mengatur akses pada display dan lapisan composites 2D dan grafis 3D dari berbagai aplikasi.

4. LibWebCore – web browser engine modern yang mensupport android

browser maupun embeddable web view.

5. SGL – Mendasari grafis 2D

6. 3D libraries– implementasi berdasarkan OpenGL ES 1.0 APIs, library

ini menggunakan perangkat keras akselerasi 3D dan pengoptimalan 3D

software rasterizer.

(49)

8. SQLite – mesin database yang kuat dan ringan tersedia untuk semua aplikasi.

Library - library tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi android 1.5 pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan NDK (Native Development Toolkit).

2.5.1.3Android Runtime

Lapisan berikutnya adalah android runtime yang berisi core libraries dan dalvik virtual machine. Core libraries mencakup serangkaian inti library java, artinya android menyertakan satu set library-library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library-library dasar bahasa pemprograman java. Dalvik adalah java virtual machine yang memberikan kekuatan pada sistem android. Dalvik VM ini di optimalkan untuk telepon seluler. Setiao aplikasi yang berjalan pada android berjalan pada prosesnya sendiri, dengan instance dari dalvik virtual machine. Dalvik telah dibuat sehingga sebuah piranti yang memakainya dapat menjalankan multi virtual machine dengan efisien. Dalvik VM dapat mengeksekusi file dengan format .dex (Dalvik Executable) yang telah dioptimasi untuk menggunakan minimal memory footprint. Virtual machine ini register-based, dan menjalankan class-class yang decompile menggunakan “dx” tool yang telah disertakan. Dalvik virtual machine menggunakan kernel linux untuk menjalankan fungsi – fungsi seperti threading dan low level memory management.

2.5.1.4Framework Aplikasi

(50)

Programmer mendapatkan akses penuh untuk memanfaatkan API (Android Protocol Interface) yang juga digunakan core applications. Arsitektur aplikasi didesain untuk menyederhanakan pemakaian kembali komponen – komponen, dimana setiap aplikasi dapat menunjukkan kemampuannya dan aplikasi lain dapat memakai kemampuan tersebut. Mekanisme yang sama memungkinkan pengguna mengganti komponen yang dikehendaki. Di dalam semua aplikasi terdapat servis dan sistem yang meliputi :

a. Satu set Views yang dapat digunakan untuk membangun aplikasi meliputi lists, grids, textboxes, buttons, dan embeddable web browser. b. Content Providers yang memungkinkan aplikasi untuk mengakses data

dari aplikasi lain misalnya contact atau membagi data yang dimiliki.

c. Resources Manager, menyediakan akses ke non-code resources

misalnya localized strings, graphics dan layoutfiles.

d. Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts pada status bar.

e. Activity Manager yang mengatur life cycle dari aplikasi dan menyediakan common navigation backstack.

2.5.1.5Applications

Di lapisan teratas terdapat aplikasi itu sendiri. Di lapisan inilah dapat ditemukan fungsi-fungsi dasar smartphone seperti menelepon dan mengirim pesan singkat, menjalankan web browser, mengakses daftar kontak, dan lain-lain. Sebagian penggunan pada lapisan inilah yang paling sering diakses, dimana pengaksesan fungsi-fungsi dasar tersebut melalui user interface.

2.5.2 XML pada Android

XML (Extensible Markup Language) adalah bahasa markup yang mendefinisikan seperangkat aturan untuk encoding dalam dokumen yang bersifat

(51)

1. Berkas Android Manifest

Setiap aplikasi android harus memiliki berkas ini (dengan nama AndroidManifest.xml) pada direktori root. Pada berkas ini berisi informasi penting tentang aplikasi untuk sistem android.

2. Layout

Android menyediakan kosakata XML sederhana yang sesuai dengan kelas View dan subclass-nya, seperti untuk widget dan layout.

3. Database

Database XML adalah persistensi data perangkat lunak sistem yang memungkinkan data yang akan disimpan dalam format XML. Data ini kemudian dapat dilihat, diekspor dan serialisasi ke dalam format yang diinginkan. XML database biasanya berhubungan dengan dokumen berorientasi database.

2.6 Java

Menurut definisi yang diberikan oleh Sun MicroSystem, JAVA adalah bahasa pemrograman yang simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dan

dynamic.

Java bahasa yang simple: Rancangan bahasa java dibuat sedemikian rupa sehingga dengan cepat dapat dikenali dan dipahami oleh pemrogram pemula sekalipun karena mirip dengan bahasa C/C++ dan yang kedua lebih sederhana dari C/C++ dalam beberapa hal yang sulit pada C/C++ sudah tidak ada pada Java, misalnya pemakaian pointer.

Java adalah bahasa yang object oriented: Konsep objek diterapkan pada pembuatan program Java, bahkan java menggunakan konsep objek secara murni.

(52)

Java adalah bahasa yang robust: rancangan java dibuat sedemikian rupa hingga mengurangi kemungkinan menjadi beku (freeze) ketika dijalankan.

Java adalah bahasa yang secure: secara otomatis java menerapkan pengamanan terhadap aplikasi sehingga mengurangi kemungkinan terjadinya serangan dari pengguna jaringan.

Java adalah bahasa yang architecture neutral: program java yang telah dikompilasi dapat dijalankan

Java adalah bahasa yang portable: program java sangat mudah dipindahkan dari satu mesin ke mesin lain tanpa harus dikompilasi ulang.

Java adalah bahasa yang high-performance: pada hakikatnya program C yang telah dikompilasi berjalan jauh lebih cepat dari Java, namun hasil kompilasi ini belum tentu bisa jalan pada computer yang berbeda arsitektur.Program java dikompilasi menjadi bytecode yang bisa jalan diberbagai mesin, namun ketika dijalankan bytecode ini harus diterjemahkan oleh JVM ke dalam bahasa mesin yang sesuai, sehingga lebih lambat dari C, namun karena java dapat digunakan pada jaringan computer yang kenyataannya tidak terlalu cepat karena hambatan saluran komunikasi maka program Java masih terasa cukup cepat.

Java adalah bahasa yang multithreaded: Java dirancang untuk menangani berbagai aplikasi yang berjalan secara bersamaan, misalnya memainkan lagu, sambil melakukan download. Kejadian ini disebut dengan multithreaded.

Java adalah bahasa yang dynamic: bahasa java dirancang untuk beradaptasi dengan lingkungan yang dapat berubah dengan cepat[20].

2.7 Database (Basis data)

Database adalah kumpulan file-file yang saling berelasi sehingga membentuk satu bangunan data, relasi tersebut biasa ditunjukan dengan kunci dari tiap file yang ada. Satu database menunjukkan satu kumpulan data yang dipakai dalam lingkup perusahaan, instansi. Bila terdapat file yang tidak dapat dipadukan atau dihubungkan dengan file lainnya berarti file tersebut bukanlah kelompok dari satu

(53)

1. Entity: orang, tempat, kejadian atau konsep yang informasinya direkam. Pada

bidang Administrasi Siswa misal entitynya adalah siswa, buku, pembayaran, dan nilai test.

2. Attribute: Setiap entity mempunyai attribute atau sebutan untuk mewakili

suatu entity. Seorang siswa dapat dilihat dari attributenya, misalnya nama, nomor siswa, alamat. Attribute juga disebut juga sebagai data elemen, data

field, atau data item.

3. Data Value (nilai atau isi data): data aktual atau informasi yang disimpan pada

tiap data elemen atau attribute.

4. Record/tuple: kumpulan elemen yang saling berkaitan menginformasikan

tentang suatu entity secara lengkap.

5. File: Kumpulan record sejenis yang mempunyai panjang elemen yang sama,

attribute yang sama, namun berbeda beda data valuenya. 2.7.1 Entity Relationship Diagram (ERD)

Pemodelan awal basis data yang paling banyak digunakan adalah menggunakan ERD. ERD ang digunakan untuk menggambarkan data dalam bentuk entitas, atribut dan hubungan antarentitas [22]. Model ini dinyatakan dalam bentuk diagram. Perlu diketahui bahwa ERD tidak mencerminkan bentuk fisik yang nantinya akan disimpan dalam database, melainkan hanya bersifat konseptual.

2.8 Object Oriented Programming (OOP)

(54)

2.8.1 Konsep Objek

Objek dalam pengertian sehari-hari adalah benda, baik yang secara fisik dapat diketahui keberadaannya maupun yang bersifat khayal (virtual). Contohnya, kamera, kalkulator, ponsel, ide, gagasan, dan sebagainya.

Objek dalam pemrograman (soft object) adalah suatu komponen dari suatu sistem yang dibangun, misalnya objek matematis, objek jendela (windows), objek tombol, objek kotak gambar, objek kotak teks, dsb [20].

2.8.2 Konsep Kelas

Setiap objek memiliki suatu kelompok. Kelompok ini dalam konsep OOP disebut “kelas” atau “class”. Misalnya Toyota, Daihatsu, dan Honda adalah termasuk kelompok “mobil”. Kelas adalah pemodelan dari objek yang berisi informasi (aturan) tentang sifat karakteristik (data) dan tingkah laku (method) yang dimiliki oleh objek tersebut [20].

Dalam suatu kelas terdapat dua hal: sifat-sifat (attribute/field/property) dan fungsi (method) atau kelakuan (behavior). Misalnya kelas mobil memiliki atribut warna body, jumlah tempat duduk, ukuran ban, dsb, kemudian terdapat fungsi seperti pengapian, pengisian aki, percepatan (accelerator), rem, dsb. Pada tingkat pemrograman suatu atribut bisa berupa definisi suatu varabel/field atau definisi fungsi, sedangkan kelakuan bisa berupa implementasi dari suatu fungsi.

Sifat-sifat dari suatu kelas bisa diwariskan (inheritance) ke sub-kelasnya, misal sub-kelas mobil sedan mewarisi atribut dari kelas mobil. Fungsi-fungsi kelas juga dapat diwariskan bilamana perlu.

2.8.3 Kelas Konstruktor

Konstruktor adalah suatu fungsi khusus yang diberi nama sama dengan nama kelasnya. Pemberian nilai pada atribut kelas dapat dilakukan pada saat objek didefinisikan melalui kelas konstruktor (class constructor).

2.8.4 Enkapsulasi

(55)

pada sehingga data tidak dapat diakses secara langsung oleh pihak di luar objek [24]. Akses terhadap kelas bergantung pada modifier yang diberikan pada kelas dan isinya. Ada tiga macam modifier yang biasa digunakan, yaitu:

1. Public, berarti dapat diakses secara bebas baik dari dalam maupun dari luar

kelas.

2. Private, berarti akses sangat terbatas, hanya dari dalam kelas itu sendiri, tidak

bisa dari luar.

3. Protected, berarti akses terbatas, hanya diberikan pada sub-kelas, dan dari

dalam kelas.

Enkapsulasi memberi jaminan pada kelas objek agar tidak diganggu oleh pemrogram kecuali yang disediakan untuknya. Dengan demikian program akan lebih bersih dari gangguan meupun kesalahan, termasuk kesalahan dalam pemakaian objek. Contoh enkapsulasi:

class belajar{ public String x =”Pintar”; private

String y = “Java”;

protected String z = “OOP”; }

2.8.5 Pewarisan

Peristiwa pemakaian kelas objek dengan parameter-parameter lokal yang sesuai dengan definisi antarmuka objek dapat dipandang sebagai pewarisan

(inheritance) sifat-sifat objek ke program klien. Dengan kata lain pewarisan merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain [8]. Sebagai contoh disediakan objek bingkai atau frame dengan antarmuka seperti height (tinggi) dan width (lebar).

(56)

Contoh pewarisan:

public class binatang{

protected String makanan; public void makan(){

System.out.println(“makan”.+this.makanan);} }

Public class singa extends binatang{

Public void daging(){

System.out.println(this.makanan + “daging”); } }

2.8.6 Polimorfisme

Polimorfisme adalah sifat dari kelas objek yang memungkinkan beberapa fungsi dapat memiliki nama yang sama walaupun isi fungsi tersebut berbeda. Sebagai contoh, fungsi konstruktor suatu kelas circle tetapi dengan parameter berbeda, circle dengan parameter x, circle dengan parmeter x,y, dan circle dengan parameter x,y,z. Jadi setiap kelas mempunyai parameter yang berbeda dan dapat digunakan sesuai kebutuhannya masing-masing.

2.9 Tools Pendukung Pembuatan Aplikasi Android

2.9.1 Java Development Kit (JDK)

JDK adalah software development kit merupakan seperangkat kode, library, form dan paket yang berguna untuk membuat aplikasi atau applet java. Di dalam JDK terdapat Java Runtime Environment (JRE) yang akan memproses byte code yang dihasilkan dari interpenter java. Tugas dari interpenter java ini adalah untuk mengcompile source.java menjadi source.class yang selanjutnya source.class

inilah yang akan dijalankan oleh JRE. 2.9.2 Software Development Kit (SDK)

(57)

terminal android seperti terminal pada system operasi linux, dan command yang terdapat dalam adb shell sendiri seperti command linux pada umumnya.

2.9.3 Eclipse

Eclipse adalah sebuah Integrated Development Environment (IDE) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse :

1. Multi-platform : Target sistem operasi eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.

2. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman

Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.

3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.

Secara standar Eclipse selalu dilengkapi dengan Java Development Tools (JDE), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program Java, dan Plug-in Development Environment (PDE) untuk 27 mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman Java. Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT (C/C++ Development Tools).

2.9.4 Android Development Tools (ADT)

(58)
(59)

Bab ini berisi analisis masalah yang menjadi fokus dalam pembangunan sistem question answering dan juga alternatif pendekatan yang digunakan sebagai solusi dari masalah-masalah yang ada. Pembahasan akan dimulai dengan menganalisis masalah yang mungkin ditemui dalam setiap komponen dan metode atau pendekatan yang mungkin dilakukan pada komponen-komponen tersebut. 3.1Analisis Masalah

Tingkat kebutuhan masyarakat Indonesia akan informasi yang mudah didapatkan semakin meningkat. Termasuk didalamnya adalah informasi tentang dunia farmasi, khususnya informasi mengenai obat-obatan yang beredar di Indonesia. Ada banyak buku referensi yang bisa dijadikan acuan untuk mendapatkan informasi yang lengkap tentang obat-obatan, salah satunya adalah buku ISO (Informasi Spesialite Obat Indonesia). Namun di era sekarang yang sudah serba digital dengan tuntutan informasi yang lebih mudah diakses, buku bukan lagi menjadi pilihan pertama.

Internet telah menjadi pilihan utama dalam mencari informasi, termasuk informasi tentang kefarmasian. Namun dengan melimpahnya informasi yang ada di internet, maka perlu waktu lagi untuk mencari informasi yang tepat diperlukan. Oleh karenanya, muncul suatu sistem tanya jawab atau Question Answering System (QAS) yang bisa menjawab kebutuhan informasi penggunanya dengan cepat dan mudah serta lebih menarik.

3.1.1 Analisis Masalah Pada Question Answering System

Pada tugas akhir ini, sistem question answering yang dibangun adalah sistem

(60)

pengetahuan obat-obatan di Indonesia dengan bahasa Indonesia di Internet ternyata masih sedikit sekali tersedianya situs atau aplikasi mobile yang khusus memuat lengkap seputar obatan, adapun pengetahuan kefarmasian obat-obatan yang lengkap tersedia pada buku, salah satunya terdapat pada buku ISO (informasi Spesialite Obat). Isi dari buku ISO ini adalah informasi dari setiap merk obat lengkap dengan isi zat aktif, penggolongan obat, kegunaan obat dan dosis yang tentu berguna untuk pengguna obat dan oleh tenaga kefarmasian.

Mengacu pada penelitian yang dilakukan oleh mizuno dkk.[15], Dalam penelitian tersebut didapatkan bahwa di dunia nyata, pertanyaan yang terlihat seperti factoid ternyata mendapatkan jawaban yang memiliki penjelasan seperti pada pertanyaan non-factoid. Oleh karena itu dalam penelitian tersebut dikembangkan sistem QA yang dapat menjawab pertanyaan seperti pada dunia nyata (real world question) dan yang dinamakan universal question answering[15]. Hal ini membuat penulis ingin mengimplementasikan sistem

Question Answering yang dapat menjawab pertanyaan seperti pada dunia nyata (real world question) namun spesifik hanya pada domain kefarmasian obat-obatan.

Berdasarkan studi literatur yang telah diuraikan pada BAB 2, dapat disimpulkan bahwa terdapat tiga pendekatan dalam mencari jawaban atas pertanyaan pada sistem QA, yaitu:

1. Jawaban diekstrak atau diambil dari dokumen yang diperkirakan relevan dengan query atau pertanyaan yang diajukan.

2. Jawaban ditelusuri dari basis data jawaban yang saling berhubungan. Seperti halnya yang digunakan pada metode analisis semantik.

3. Jawaban diambil dari kasus yang paling mirip dengan pertanyaan yang diajukan.

Gambar

Gambar 2.1 Contoh parse tree dari sebuah kalimat [13]
Gambar 2.8 Contoh Sequence Diagram
Tabel 3.1 Daftar aturan pola EAT
Gambar 3.6 Konfigurasi metode 1 UQA [15]
+7

Referensi

Dokumen terkait

7 Pada komunitas jual beli online yang ada di lingkungan Universitas Telkom yang ditunjukan oleh tabel 1.2, FORUM JUAL BELI PENDIDIKAN TELKOM adalah yang paling

Penelitian ini bertujuan untuk mendeskripsikan skor hasil belajar pada aspek kognitif dengan empat indikator yaitu pengetahuan, pemahaman, penerapan dan analisis, antara peserta didik

Menimbang, bahwa berdasarkan fakta – fakta yang terungkap dipersidangan bahwa 1 (satu) unit sepeda motor Honda Vario warna pink, yang diambil oleh terdakwa bersama Rian (DPO)

Kegiatan kita hari ini pun, kegiatan-kegiatan sebelumnya yang sudah kita laksanakan selama tiga bulan ini, tiada lain untuk memastikan bahwa sekali rencana induk itu kita tanda

Berdasarkan pengertian di atas, maka dapat disimpulkan bahwa sistem informasi akuntansi adalah suatu kumpulan sumber daya yang diatur untuk memproses data dan transaksi

Kecepatan aliran keluar merupakan fungsi akar kuadrat dari ketinggian air, jadi untuk tangki 1 kecepatan alirannya adalah sedangkan untuk tangki 2

Penjualan kredit adalah penjualan yang pembayarannya tidak diterima sekaligus (tidak langsung lunas) atau pembayaran yang dilakukan beberapa kali yaitu cicilan atau dibayar

 Dengan java versi 5, cara paling mudah untuk mendapatkan input dari console adalah dengan menggunakan Scanner class.  Untuk menampilkan output ke console adalah menggunakan