Anda di halaman 1dari 86

IMPLEMENTASI RESOURCE DESCRIPTION FRAMEWORK DALAM

SEMANTIC WEB BERBASIS ONTOLOGI PADA SISTEM


PENCARIAN INFORMASI OBAT

SKRIPSI

PATRICIA YVETTE CLARISA SIPAHUTAR


141401086

PROGRAM STUDI S1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


IMPLEMENTASI RESOURCE DESCR IPTION FRAMEWORK DALAM
SEMANTIC WEB BERBAS IS ONTOLOGI PADA S ISTEM
PENCARIAN INFORMASI OBAT

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah


Sarjana Ilmu Komputer

PATRICIA YVETTE CLARISA SIPAHUTAR


141401086

PROGRAM STUDI S1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


ii

PERSETUJUAN

Judul : IMPLEMENTASI RESOURCE DESCRIPTION


FRAMEWORK DALAM SEMANTIC WEB
BERBASIS ONTOLOGI PADA SISTEM
PENCARIAN INFORMASI OBAT
Kategori : SKRIPSI
Nama : PATRICIA YVETTE CLARISA SIPAHUTAR
Nomor Induk Mahasiswa : 141401086
Program Studi : SARJANA (S-1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
UNIVERSITAS SUMATERA UTARA

Diluluskan di
Medan, 10 Agustus 2018

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Elviwani ST, S.Kom, M.Kom Amalia, ST., M.T


NIP. 197508182017062001 NIP. 197812212014042001

Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M. Kom


NIP. 196203171991031001

Universitas Sumatera Utara


iii

PERNYATAAN

IMP LEMENTAS I R ESOURCE DESCR IPTION FR AMEWORK


DALAM SEMANTIC WEB BER BAS IS ONTO LOG I PADA
S ISTEM PENC AR IAN INFORMAS I OBAT

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Agustus 2018

Patricia Yvette Clarisa Sipahutar


141401086

Universitas Sumatera Utara


iv

UCAPAN TERIMA KASIH

Puji dan syukur ke hadirat Tuhan Yesus Kristus atas rahmat, tuntunan dan
penyertaanNya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini
sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1
Ilmu Komputer Universitas Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar-besarnya
kepada:
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Opim Sitompul, M.Sc., selaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu
Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara.
4. Bapak Herriyance, S.T., M.Kom selaku Sekretaris Program Studi S1 Ilmu
Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara serta sebagai Dosen Pembanding I yang telah memberikan
kritik dan saran dalam penyempurnaan skripsi ini.
5. Ibu Amalia, S.T., M.T selaku Dosen Pembimbing I yang senantiasa
memberikan bimbingan, saran, serta motivasi kepada penulis dalam
pengerjaan skripsi ini.
6. Ibu Elviwani S.T, S.Kom, M.Kom selaku Dosen Pembimbing II yang
senantiasa memberikan bimbingan , masukan dan dukungan kepada penulis
dalam pengerjaan skripsi ini.
7. Bapak Sajadin Sembiring, S.Si, M.Comp.Sc selaku Dosen Pembanding II
yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Ibu Dian Rachmawati S.Si, M.Kom selaku Dosen Pembimbing Akademik,
yang selalu membimbing, memberikan arahan serta motivasi kepada
penulis selama masa perkuliahan.

Universitas Sumatera Utara


v

9. Seluruh dosen serta staff pegawai di Program Studi S1 Ilmu Komputer


Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera
Utara.
10. Kedua orang tua penulis Arnold Sipahutar dan Jenni Barus, yang senantiasa
mendoakan serta memberikan motivasi bagi penulis selama pengerjaan
skripsi ini, serta adik Regina Lois Priscilla Sipahutar, yang selalu
memberikan doa dan dukungan kepada penulis.
11. Bibi tua, Rika Eliana, S.Psi, M.Psi yang selalu memberi arahan kepada
penulis, serta Kevin dan Kiel yang memberikan bantuan kepada penulis
dalam pengerjaan skripsi ini.
12. Sahabat – sahabat terkasih semasa kuliah, Rizky Maulidya Afifa, Rika
Angriani, Fitri Cinthia Dwi Iswari Prawira, Sasmita Azzahra, Meisy Putri
Ananda, yang selalu menjadi sumber dukungan, pencerahan, hiburan dan
motivasi bagi penulis selama masa perkuliahan dan pengerjaan skripsi.
13. Richard Septian, S.Ked, sebagai narasumber dalam skripsi ini.
14. Teman-teman Stambuk 2014 kuliah terkhusus Kom B 2014 yang tidak
dapat disebutkan satu-persatu, yang telah sama-sama berjuang dalam masa
perkuliahan dan pengerjaan skripsi.
15. Dan semua pihak yang telah membantu dan tidak dapat disebutkan satu per
satu.
Semoga Tuhan memberikan berkat kepada seluruh pihak yang telah
memberikan dukungan dan bantuan kepada penulis dalam pengerjaan skripsi
ini.
Medan, Agustus 2018

Penulis

Universitas Sumatera Utara


vi

ABSTRAK

Penelitian ini bertujuan untuk merancang data obat dengan skema ontologi dan
menampilkan hubungan informasi dengan informasi lainnya melalui media chatbot.
Beragamnya informasi yang beredar tidak menjamin diperolehnya hasil pencarian yang
relevan dengan kebutuhan pengguna. Search engine konvensional sangat membantu
dalam pencarian informasi tetapi tidak dapat memahami makna dari informasi yang
diperoleh dan hubungannya dengan informasi lain. Hubungan dan makna dari suatu
informasi dapat dipahami oleh mesin dengan penggunaan teknologi semantik yaitu
ontologi. Ontologi digunakan untuk merepresentasikan semantik metadata dari suatu
informasi. Informasi yang dibangun dengan pemodelan ontologi akan membantu dalam
pencarian informasi yang relevan dengan kebutuhan pengguna. Hasil pencarian
menggunakan ontologi sebagai basis pengetahuan dapat menampilkan informasi suatu
penyakit dan hubungannya dengan obat – obat yang terkait dengan pengobatan penyakit
tersebut. Penelitian ini dapat dimanfaatkan sebagai referensi dalam pencarian informasi
obat dan hubungannya dengan suatu penyakit atau dengan obat lain yang berhubungan.

Keyword: semantic web, web semantik, ontologi

Universitas Sumatera Utara


vii

AN IMPLEMENTATION OF RESOURCE DESCRIPTION FRAMEWORK ON


ONTOLOGY BASED SEMANTIC WEB IN MEDICINE INFORMATION
SEARCHING SYSTEM

ABSTRACT

This research has a purpose to design medicine data based on ontology scheme and to
display the relationship between information through chatbot as search media. The
diversity of information does not guarantee a relevant search result with the user’s
needs. A conventional search engine would be substantially beneficial in searching for
information yet could not able to comprehend the meaning of found information and its
relationship with other information. Machine could understand the relationship and
meaning of information through the implementation of semantic technology which is
ontology. Ontology is implemented in order to represent semantic metadata of an
information. The information designed with ontology model would be very assistive in
searching for information that is relevant with the user’s needs. The result of
implementing ontology as knowledge base may display the information of a disease and
its relationship with medicine used as the medication for such particular disease. This
research could be used as a reference in search of medicine information and its
relationship with a particular disease or with other related medicine.

Universitas Sumatera Utara


viii

DAFTAR ISI

Halaman
PERSETUJUAN ............................................................................................................ ii
PERNYATAAN ........................................................................................................... iii
UCAPAN TERIMA KASIH ......................................................................................... iv
ABSTRAK .................................................................................................................... vi
ABSTRACT ................................................................................................................. vii
DAFTAR ISI ............................................................................................................... viii
DAFTAR GAMBAR ..................................................................................................... x
DAFTAR TABEL ........................................................................................................ xii
DAFTAR LAMPIRAN ............................................................................................... xiii
BAB 1 PENDAHULUAN ............................................................................................ 1
1.1 Latar Belakang Masalah ....................................................................................... 1
1.2 Rumusan Masalah ................................................................................................ 2
1.3 Batasan Masalah ................................................................................................... 3
1.4 Tujuan Penelitian.................................................................................................. 3
1.5 Manfaat Penelitian................................................................................................ 3
1.6 Metodologi Penelitian .......................................................................................... 4
1.7 Sistematika Penulisan ........................................................................................... 5
BAB 2 LANDASAN TEORI ....................................................................................... 6
2.1 Semantic Web ....................................................................................................... 6
2.2 Uniform Resource Identifier................................................................................. 7
2.3 Extensible Markup Language............................................................................... 7
2.4 Resource Description Framework ....................................................................... 9
2.5 Ontologi .............................................................................................................. 13
2.6 Algoritma Knuth Morris Pratt ............................................................................ 17
2.7 Tool Ontologi ..................................................................................................... 21
2.8 Penelitian yang Relevan ..................................................................................... 24
BAB 3 ANALISIS DAN PERANCANGAN ............................................................ 25
3.1 Analisis Sistem ................................................................................................... 25
3.2 Arsitektur Umum................................................................................................ 27

Universitas Sumatera Utara


ix

3.3 Flowchart Sistem ............................................................................................... 36


BAB 4 IMPLEMENTASI DAN PENGUJIAN ........................................................ 38
4.1 Implementasi Ontologi ....................................................................................... 38
4.2 Implementasi Chatbot ........................................................................................ 46
4.3 Pengujian Sistem ................................................................................................ 47
BAB 5 KESIMPULAN DAN SARAN ...................................................................... 61
5.1 Kesimpulan......................................................................................................... 61
5.2 Saran ................................................................................................................... 62
DAFTAR PUSTAKA ................................................................................................. 63

Universitas Sumatera Utara


x

DAFTAR GAMBAR

Halaman
Gambar 2.1 Layer Arsitektur Semantic Web (Sumber W3C) ........................................ 6
Gambar 2.2 Prolog XML ............................................................................................... 8
Gambar 2.3 XML dengan atribut ................................................................................... 9
Gambar 2.4 Format penulisan prefix ............................................................................. 9
Gambar 2.5 Format penulisan namespace ..................................................................... 9
Gambar 2.6 RDF Triples ................................................................................................ 9
Gambar 2.7 Contoh dokumen RDF berdasarkan tabel subjek – predikat – objek ....... 10
Gambar 2.8 Bentuk penulisan triples dalam dokumen RDF ....................................... 11
Gambar 2.9 Definisi elemen owl:Ontology ................................................................. 15
Gambar 2.10 Definisi class pada OWL ....................................................................... 15
Gambar 2.11 Definisi Object Property pada OWL ..................................................... 16
Gambar 2.12 Definisi Datatype Property pada OWL ................................................. 16
Gambar 2.13 Definisi individual pada OWL ............................................................... 16
Gambar 3.1 Diagram Ishikawa .................................................................................... 25
Gambar 3.2 Arsitektur umum sistem ........................................................................... 27
Gambar 3.3 Class, subclass dan hierarkinya .............................................................. 29
Gambar 3.4 Rancangan property pada class ................................................................ 29
Gambar 3.5 Rancangan indviduals dan individuals properties ................................... 30
Gambar 3.6 Proses Case Folding................................................................................. 31
Gambar 3.7 Proses Tokenizing ..................................................................................... 32
Gambar 3.8 Proses Phrase Detection .......................................................................... 32
Gambar 3.9 Proses Stemming ...................................................................................... 32
Gambar 3.10 Pseudocode Fungsi Pinggiran Algoritma KMP ..................................... 33
Gambar 3.11 Pseudocode Algoritma KMP.................................................................. 34
Gambar 3.12 Contoh SPARQL Query......................................................................... 35
Gambar 3.13 Flowchart umum sistem......................................................................... 37
Gambar 4.1 Halaman Protégé 5.2 ................................................................................ 38
Gambar 4.2 Class pada Protégé ................................................................................... 39

Universitas Sumatera Utara


xi

Gambar 4.3 Class dan subclass pada Protégé .............................................................. 39


Gambar 4.4 Object properties pada Protégé ................................................................ 40
Gambar 4.5 Datatype Property pada Protégé .............................................................. 41
Gambar 4.6 Individuals class generik pada Protégé .................................................... 42
Gambar 4.7 Individuals class penyakit tropis pada Protégé ........................................ 42
Gambar 4.8 Implementasi object dan datatype properties pada individual typhus ..... 43
Gambar 4.9 Visualisasi Data Ontologi Obat dan Penyakit .......................................... 44
Gambar 4.10 Triples Data Filariasis ............................................................................ 44
Gambar 4.11 Graph Data Filariasis ............................................................................. 45
Gambar 4.12 Halaman utama chatbot ......................................................................... 46
Gambar 4.13 Halaman About pada Chatbot ................................................................ 46
Gambar 4.14 Pengujian inputan sistem ....................................................................... 47
Gambar 4.15 Pengujian Preprocessing Text ................................................................ 50
Gambar 4.16 Data JSON hasil kueri ............................................................................ 51
Gambar 4.17 Pengujian Hasil Pencarian...................................................................... 51
Gambar 4.18 Pencarian Obat BPOM Berdasarkan Keluhan pada Penelitian Terdahulu
...................................................................................................................................... 57
Gambar 4.19 Hasil Pencarian Berdasarkan Keluhan pada Penelitian Terdahulu ........ 58
Gambar 4.20 Hasil Pencarian Informasi tentang Batuk ............................................... 58
Gambar 4.21 Hasil Pencarian Penelitian Terdahulu berdasarkan Nama Produk ......... 59
Gambar 4.22 Hasil Pencarian Informasi Obat Albendazole ........................................ 59
Gambar 4.23 Hasil Pencarian Informasi Produk Albendazole .................................... 60

Universitas Sumatera Utara


xii

DAFTAR TABEL

Halaman
Tabel 2.1 Contoh subjek – predikat – objek ................................................................ 10
Tabel 2.2 Representasi Grafis Beberapa Elemen OWL ............................................... 22
Tabel 3.1 Contoh data triples rdf ................................................................................. 35
Tabel 3.2 Contoh hasil query SPARQL ....................................................................... 35
Tabel 4.1 Hasil Pengujian Menanyakan Informasi Penyakit ....................................... 52
Tabel 4.2 Hasil Pengujian Menanyakan Informasi Obat ............................................. 54

Universitas Sumatera Utara


xiii

DAFTAR LAMPIRAN

Halaman
Lampiran 1 Listing Program ............................................................................. A-1
Lampiran 2 Curriculum Vitae ........................................................................... B-1

Universitas Sumatera Utara


BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Beragamnya informasi yang beredar di internet tidak menjamin informasi obat yang
diperoleh benar dan sesuai dengan kebutuhan pengguna. Secara umum, pengguna
menggunakan search engine berbasis keyword dalam melakukan pencarian informasi
obat. Search engine berbasis keyword sangat membantu dalam pencarian informasi di
internet, tetapi tidak memahami makna dari istilah dan ungkapan yang digunakan pada
halaman web dan hubungannya, contohnya jika pengguna mencari informasi mengenai
asetaminofen, pada search engine berbasis keyword, maka hasil pencarian banyak
berupa artikel spam result, sedangkan pada search engine berbasis semantic web hasil
pencarian lebih spesifik terkait asetaminofen. Dalam beberapa hal, satu kata dapat
memiliki banyak makna dan beberapa kata dapat memiliki makna yang sama, dalam hal
ini jika pengguna ingin mencari suatu kata tertentu maka search engine dapat
menimbulkan kekeliruan dalam pencariannya dan pengguna tidak memperoleh hasil
pencarian yang relevan. Search engine berbasis keyword bergantung kepada keyword
dan page ranking algorithm dalam pencariannya sehingga akan menampilkan banyak
halaman web dengan keyword tersebut yang mungkin tidak relevan dengan kebutuhan
pengguna (Malve & Chawan, 2015). Hal ini dikarenakan makna dari konten web tidak
dapat diakses oleh mesin (Antoniou & Van Harmelen, 2004) sehingga diperlukan
teknologi yang dapat memahami makna dari konten – konten web dan hubungannya
dengan query yang dicari oleh pengguna, yaitu semantic web.

Universitas Sumatera Utara


2

Semantic web merupakan sebuah sistem yang memungkinkan mesin untuk memahami
dan merespons permintaan kompleks manusia berdasarkan maknanya. Pemahaman
tersebut memerlukan informasi yang terstruktur secara semantik (Choudhury, 2014),
seperti Resource Description Framework (RDF) dan ontologi. RDF digunakan untuk
merepresentasikan data dan hubungan antar data, dalam hal ini data obat yang
digunakan bersumber dari RDF yang telah tersedia, yang memiliki data mengenai
informasi obat, informasi penyakit dan relasi antara kedua informasi tersebut. Dalam
memperluas hubungan antar data dalam RDF, digunakan ontologi. Ontologi digunakan
untuk mendeskripsikan semantik data dan hubungannya (Malve & Chawan, 2015).
Dalam semantic web ontologi sangat berguna dalam organisasi dan navigasi halaman
web serta dalam meningkatkan akurasi pencarian web (Antoniou & Van Harmelen,
2004). Ontologi dapat diimplementasikan dalam dua cara, yaitu perancangan ontologi
dan penggunaan ontologi yang sudah tersedia. Perancangan ontologi dilakukan jika
vocabulary yang diperlukan untuk merepresentasikan data belum tersedia, sementara
penggunaan ontologi yang sudah ada sangat berguna agar data yang direpresentasikan
dapat digunakan pada berbagai aplikasi, dikarenakan menggunakan kamus yang sama
dan dapat dipahami oleh mesin.

1.2 Rumusan Masalah

Berdasarkan latar belakang, search engine berbasis keyword tidak selalu menampilkan
hasil pencarian obat yang relevan dan sesuai dengan kebutuhan pengguna, hal ini
disebabkan search engine tersebut hanya bergantung kepada keyword dan page ranking
algorithm, sehingga hasil pencarian lebih banyak berupa spam result yang tidak sesuai
kebutuhan pengguna. Berdasarkan hal tersebut, rumusan masalah dalam penelitian ini
adalah cara mendapatkan informasi obat yang akurat dan sesuai kebutuhan pengguna
dengan semantic web berbasis ontologi yang dirancang menggunakan RDF yang telah
tersedia.

Universitas Sumatera Utara


3

1.3 Batasan Masalah

Batasan masalah yang digunakan dalam penelitian ini adalah:


1. Penelitian terfokus kepada perancangan data informasi obat dengan skema ontologi,
bukan pengembangan ontologi.
2. Sistem yang dibangun berbasiskan web dengan chatbot sebagai media
pencariannya.
3. Sumber data dalam penelitian menggunakan RDF yang telah tersedia.
4. Informasi obat dibatasi pada obat penyakit tropis saja.
5. Pemodelan data dengan skema ontologi dilakukan secara manual menggunakan
Protégé.
6. Bahasa pemrograman yang digunakan adalah bahasa Python.

1.4 Tujuan Penelitian

Tujuan yang ingin dicapai dalam penelitian ini adalah:


1. Diperoleh basis pengetahuan melalui perancangan data informasi obat dengan
skema ontologi melalui RDF yang telah ada
2. Diperoleh sistem berbasis chatbot untuk pencarian informasi obat

1.5 Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini adalah meningkatkan efisiensi pencarian
informasi obat dengan adanya knowledge base yang dibentuk dengan ontologi dan RDF

Universitas Sumatera Utara


4

1.6 Metodologi Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah:


1. Studi Pustaka
Pada tahap ini dilakukan pengumpulan referensi terkait semantic web, RDF, Ontologi,
XML, chatbot serta data informasi obat, kemudian dilakukan pembelajaran dari
referensi tersebut yang dapat berasal dari buku, jurnal, artikel, situs internet.
2. Analisa dan Perancangan Sistem
Pada tahap ini dilakukan analisa terkait hal apa saja yang diperlukan dalam penelitian
ini untuk dirancang dalam sebuah diagram alir (flowchart), serta dilakukan perancangan
data dengan skema ontologi dan perancangan chatbot.
3. Implementasi
Pada tahap ini, hal yang sudah dirancang pada diagram alir (flowchart)
diimplementasikan menjadi sebuah aplikasi berupa website.
4. Pengujian
Pada tahap ini dilakukan proses pengujian terhadap sistem sesuai dengan kebutuhan
yang telah ditetapkan sebelumnya serta memastikan program yang dibuat berjalan
seperti yang diharapkan.
5. Dokumentasi
Pada tahap ini dilakukan proses dokumentasi seluruh proses yang terkait dalam
penelitian dalam bentuk skripsi.

Universitas Sumatera Utara


5

1.7 Sistematika Penulisan

Sistematika penulisan skripsi ini dibagi menjadi lima bab, yaitu sebagai berikut:

BAB 1 PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan tugas akhir,
rumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Pada bab ini dibahas mengenai teori – teori dasar tentang konsep
semantic web dan ontologi secara umum seperti pengertian, komponen,
kegunaan. Teori – teori ini akan menjadi acuan dalam perancangan
sistem.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisi analisis sistem dan penjelasan arsitektur umum sistem
yang akan dibangun.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisikan deskripsi implementasi sistem, hasil pengujian sistem
yang telah dibangun sesuai dengan analisis yang telah dilakukan.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisikan kesimpulan atas keseluruhan isi serta saran-saran dari
penulis.

Universitas Sumatera Utara


BAB 2

LANDASAN TEORI

2.1 Semantic Web

Semantik merupakan cabang linguistik yang mempelajari tentang makna (Ayuningtyas,


2009) , sehingga semantic web merupakan “Web of meanings” yaitu web yang dapat
memahami makna. Makna tersebut dipahami oleh mesin menggunakan metadata.
Metadata adalah data tentang data. Dalam semantic web, metadata berfungsi untuk
menangkap sebagian makna dari data, hal inilah yang disebut semantic dalam semantic
web (Antoniou & Van Harmelen, 2004).

2.1.1 Tujuan Semantic Web


Ide dasar semantic web adalah untuk mendefinisikan struktur data dan menghubungkan
mereka dengan tujuan untuk pencarian yang lebih efektif, otomatisasi, integrasi, dan
penggunaan kembali informasi dalam berbagai aplikasi (Choudhury, 2014).

2.1.2 Arsitektur Semantic Web


Prinsip – prinsip semantic web diimplementasikan dalam layer – layer teknologi dan
standar web sebagai berikut :

Gambar 2.1 Layer Arsitektur Semantic Web (Sumber W3C)

Universitas Sumatera Utara


7

• Layer Unicode dan Uniform Resource Identifier (URI) berfungsi sebagai penyedia
mekanisme identifikasi unik terhadap seluruh sumber daya yang ada pada semantic
web
• Layer Extensible Markup Language (XML), Namespace (NS) dan XML Schema
berfungsi dalam penyusunan informasi secara terstruktur.
• Layer Resource Description Framework (RDF) dan RDF Schema menyediakan
pemodelan data untuk merepresentasikan dan mendeskripsikan informasi sumber
daya web.
• Layer Ontologi menyediakan vocabulary yang lebih banyak dan kompleks dalam
mendeskripsikan suatu sumber daya (Badron et all, 2017).
• Layer Logic dan Proof menyediakan rules yang berfungsi untuk menerapkan
penalaran otomatis untuk membuat kesimpulan baru. Mesin dapat melakukan
deduksi apakah sumber daya tertentu memenuhi persyaratan dengan menggunakan
sistem penalaran tertentu (Aghei et al, 2010).
• Layer Trust memastikan kualitas informasi pada web dan memastikan resource
yang menyediakan informasi telah tepat (Aghei et al, 2010).

2.2 Uniform Resource Identifier

URI merupakan rangkaian karakter unik yang digunakan untuk mengidentifikasi


sumber daya (Choudhury, 2014). Sebuah URI dapat berupa Uniform Resource Locator
(URL) atau Uniform Resource Name (URN). Penggunaan URI untuk mengidentifikasi
objek – objek dan relasinya sangatlah penting, karena URI memungkinkan skema
penamaan global dan unik sehingga mengurangi permasalahan homonim yang banyak
terjadi pada representasi data (Antoniou & Van Harmelen, 2004).

2.3 Extensible Markup Language

XML merupakan bahasa markup yang digunakan untuk menuliskan dokumen web
terstruktur dengan vocabulary yang ditetapkan oleh pengguna. Sama seperti Hypertext
Markup Language (HTML), dokumen XML juga menggunakan tag. HTML dan XML
masing–masing dapat merepresentasikan informasi, tetapi dokumen HTML memiliki
tujuan untuk menampilkan informasi saja, sehingga data dan cara data tersebut
dipresentasikan bersatu, sedangkan dokumen XML memisahkan data dengan

Universitas Sumatera Utara


8

presentasinya sehingga dokumen XML lebih mudah untuk dipahami oleh mesin
dibandingkan dengan HTML (Antoniou & Van Harmelen, 2004).
Dokumen XML terdiri dari prolog, elemen dan epilog.
• Prolog
Prolog terdiri dari deklarasi XML seperti berikut :

<?xml version=“1.0” encoding=“UTF-16”?>

Gambar 2.2 Prolog XML


Gambar 2.2 menandakan bahwa dokumen adalah dokumen XML, dan
mendefinisikan versi serta encoding karakter yang digunakan.
• Elemen
Elemen XML merepresentasikan hal – hal yang akan dideskripsikan dalam
dokumen XML. Sebuah elemen terdiri dari tag pembuka, konten dan tag penutup.
Konten dari elemen dapat berupa teks, elemen lain, ataupun kosong. Sebagai
contoh:
▪ Elemen dengan konten teks
<obat> Parasetamol </obat>
▪ Elemen dengan konten elemen lain
<obat>
<namaObat> Parasetamol </namaObat>
</obat>
▪ Elemen kosong
</obat></obat> atau dapat disingkat menjadi <obat/>
• Epilog
Epilog merupakan bagian terakhir dalam dokumen XML yang sifatnya opsional.
Biasanya berupa komentar atau instruksi.
• Atribut
Elemen kosong belum tentu tidak memiliki informasi, dikarenakan elemen tersebut
mungkin memiliki atribut. Atribut adalah pasangan name-value dalam tag pembuka
elemen, sebagai contoh:

<obat noRegis=“1234” namaObat=“parasetamol”/>

Gambar 2.3 XML dengan atribut

Universitas Sumatera Utara


9

2.3.1 Namespace
Namespace digunakan untuk mengidentifikasi dan membedakan elemen – elemen
XML dari kamus yang berbeda, karena elemen XML dari kamus yang berbeda dapat
memiliki nama yang sama tetapi dengan makna yang berbeda. Cara membedakan
elemen – elemen tersebut adalah dengan menggunakan prefix untuk setiap schema.

prefix:name

Gambar 2.4 Format penulisan prefix


Namespace dideklarasikan di dalam elemen, dan dapat digunakan dalam elemen
tersebut dan elemen child nya. Namespace dideklarasikan sebagai berikut

xlmns:prefix= “URI”

Gambar 2.5 Format penulisan namespace

2.4 Resource Description Framework

RDF merupakan standar pemodelan data yang dibentuk oleh W3C untuk
merepresentasikan informasi sehingga dapat dipahami oleh komputer dan dapat di
proses dengan banyak cara (Yu, 2014). Menurut Taye (2011) , RDF adalah bahasa yang
digunakan untuk menyediakan standar metadata untuk sumber daya yang ada pada web.
RDF dapat merepresentasikan data dan melakukan pertukaran pengetahuan pada web.
RDF dikembangkan untuk dimengerti oleh komputer, memfasilitasi interoperabilitas,
dalam kata lain RDF adalah framework untuk menggunakan dan merepresentasikan
metadata serta mendeskripsikan semantik dari informasi yang dapat diakses oleh mesin.
RDF memiliki 3 komponen yaitu subjek, predikat dan objek . Komponen – komponen
tersebut diberi istilah triples / statement.

Predikat
Subjek Objek

Gambar 2.6 RDF Triples

Subjek dan objek adalah dua sumber daya, dan predikat adalah hubungan antara kedua
hal tersebut (Yu, 2014). RDF menggunakan URI untuk mengidentifikasi sumber daya
dan menjelaskan hubungan antar sumber daya (Antoniou & Van Harmelen, 2004). RDF

Universitas Sumatera Utara


10

memiliki kamus istilah tersendiri yang dibentuk dari kumpulan URI yang diberi makna
khusus. Istilah – istilah tersebut adalah sebagai berikut:
• Nama sintaks:
rdf:RDF, rdf:Description, rdf:ID, rdf:about, rdf:parseType, rdf:resource, rdf:li,
rdf:nodeID, rdf:datatype
• Nama kelas:
rdf:Seq, rdf:Bag, rdf:Alt, rdf:Statement, rdf:Property, rdf:XMLLiteral, rdf:List
• Nama properti:
rdf:subject, rdf:predicate, rdf:object, rdf:type, rdf:value, rdf:first, rdf:rest_n
• Nama sumber daya:
rdf:nil

Berikut merupakan contoh dokumen RDF:


Tabel 2.1 Contoh subjek – predikat – objek
Subjek Predikat Objek
obat:Paracetamol obat:jenisObat obat:generik
obat:Paracetamol obat:nomorRegistrasi GBL9020910937A1

<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:obat="http://www.example.com/obat#">
<rdf:Description
rdf:about="http://www.example.com/obat#Paracetamol">
<obat:jenisObat
rdf:resource="http://www.example.com/obat#generik"/>
<obat:nomorRegistrasi>GBL9020910937A1</obat:nomorRegistrasi>
</rdf:Description>
</rdf:RDF>

Gambar 2.7 Contoh dokumen RDF berdasarkan tabel subjek – predikat – objek

Pada gambar 2.7, baris pertama dari contoh menandakan bahwa dokumen
menggunakan format XML. Baris kedua adalah elemen rdf:RDF, yang menandakan
bahwa dokumen XML tersebut merepresentasikan model data RDF, yang berakhir
dengan tag </rdf:RDF>. Baris ketiga dan keempat menggunakan namespace dengan

Universitas Sumatera Utara


11

atribut xmlns. Baris ketiga menandakan bahwa prefix rdf: digunakan untuk
merepresentasikan namespace RDF dengan URI http://www.w3.org/1999/02/22-rdf-
syntax-ns#, dan baris keempat menandakan bahwa prefix obat: merepresentasikan
namespace dengan URI http://www.example.com/obat. Setiap istilah yang berawal
dengan rdf: atau obat: berasal dari vocabulary yang terkandung dalam namespace prefix
tersebut. Tag rdf:Description digunakan untuk mendeskripsikan sumber daya yang
menggunakan atribut rdf:about untuk menentukan sumber daya yang akan dijelaskan.
Tag obat:enisObat adalah sebuah predikat yang memiliki nilai sumber daya lain,
sehingga digunakan rdf:resource untuk mengidentifikasi sumber daya tersebut dengan
merujuk kepada URI nya. Predikat dapat juga mengandung nilai literal seperti pada
baris 9.

Dari pembahasan gambar 2.7, baris 5 – 10 dapat dilihat sebagai berikut:

<rdf:Description rdf:about="URI subjek">


<predikat rdf:resource="URI objek"/>
<predikat> nilai</predikat>
</rdf:Description>

Gambar 2.8 Bentuk penulisan triples dalam dokumen RDF

2.4.1 RDF Schema


RDF Schema (RDFS) merupakan rekomendasi dari W3C dan merupakan bahasa
representasi pengetahuan yang dapat digunakan untuk membangun kosakata untuk
mendeskripsikan kelas, subkelas dan properti dari sumber daya RDF. RDFS berfungsi
untuk mendeskripsikan kelas dan properti dengan cara yang spesifik dan untuk
menentukan hubungan antara properti dan kelas tersebut, yang memungkinkan
kombinasi antar kelas, properti atau nilai. Dengan kata lain, RDFS digunakan untuk
mendefinisikan kamus RDF (Taye, 2011).
Istilah dalam RDFS dapat dibagi menjadi beberapa bagian berdasarkan tujuannya (Yu,
2014):
• Kelas
Bagian ini digunakan untuk mendefinisikan kelas. Beberapa istilah yang terdapat
dalam bagian ini adalah rdfs:Resource, rdfs:Class, rdfs:Literal, rdfs:Datatype.

Universitas Sumatera Utara


12

• Properti
Bagian ini digunakan untuk menjelaskan properti, Beberapa istilah pada bagian ini
adalah rdfs:range, rdfs:domain, rdfs:subClassOf, rdfs:subPropertyOf, rdfs:label dan
rdfs:comment
• Utilitas
Bagian ini digunakan untuk hal – hal bermacam – macam. Istilah yang terdapat pada
bagian ini adalah rdfs:seeAlso dan rdfs:isDefinedBy.

2.5 Ontologi

Ontologi merupakan istilah filosofi yaitu ilmu yang mempelajari tentang suatu hal
(Taye,2011). Menurut Ayuningtyas (2009), Ontologi adalah ilmu yang menjelaskan
jenis – jenis entitas di dunia dan hubungannya. Dalam disiplin ilmu lain, seperti
software engineering dan artificial intelligence, ontologi didefinisikan sebagai
spesifikasi formal dari konseptualisasi bersama. Dasar dari definisi tersebut adalah
(Taye, 2011):
• Seluruh pengetahuan dalam ontologi harus memiliki spesifikasi, contohnya pada
tipe data dan batasannya
• Sebuah ontologi adalah konseptualisasi, yang memiliki arti bahwa ontologi
memiliki konsep yang dapat dipahami secara universal.
• “bersama” menandakan kesepakatan mengenai makna dalam sebuah domain.
Dengan kata lain, sebuah ontologi harus terdiri dari pengetahuan yang disepakati
bersama dan diterima oleh komunitas.

2.5.1 Komponen Ontologi


Ontologi terdiri dari empat komponen utama, yaitu concepts, instances, relations dan
axioms (Taye, 2011) :
• Concept atau class adalah sebuah grup abstrak, himpunan atau kumpulan dari objek.
Concept merupakan dasar sebuah domain dan biasanya merepresentasikan sebuah
grup atau class dengan anggota yang memiliki sifat yang sama. Menurut
Ayuningtyas (2009), concept direpresentasikan sebagai “super-class” yang
memiliki subclasses yang menjelaskan concept yang lebih spesifik.

Universitas Sumatera Utara


13

• Instance atau individiual merupakan komponen paling dasar pada ontologi yang
digunakan untuk merepresentasikan elemen pada suatu concept.
• Relation (disebut juga sebagai properties atau slot), digunakan untuk
mengekspresikan hubungan antara dua concept dalam suatu domain.
• Axiom digunakan untuk memberikan batasan pada nilai – nilai dari concept atau
instance.

2.5.2 Manfaat Ontologi


Manfaat penggunaan Ontologi adalah sebagai berikut (Yu, 2014):
• Menyediakan pemahaman umum mengenai konsep – konsep penting tertentu dalam
domain.
• Menyediakan istilah yang dapat digunakan ketika membentuk dokumen RDF dalam
domain.
• Menyediakan cara untuk menggunakan kembali domain pengetahuan
• Menjelaskan suatu domain secara eksplisit
• Menyediakan cara penulisan pengetahuan dan semantik yang dapat dimengerti
mesin
• Memungkinkan pemrosesan mesin skala besar secara otomatis

2.5.3 Ontology Web Language


OWL adalah bahasa ontologi untuk semantik web. OWL merupakan bahasa yang tidak
hanya untuk menampilkan informasi, tetapi untuk memproses informasi juga
(Ayuningtyas, 2009). OWL adalah ekstensi dari RDFS. OWL memiliki fungsi yang
mirip dengan RDFS, yaitu untuk mendefinisikan ontologi yang mengandung kelas,
properti dan hubungannya untuk sebuah domain aplikasi spesifik (Yu, 2014), tetapi
OWL memiliki sintak yang lebih kuat dengan interpretasi mesin dan vocabulary yang
lebih banyak (Taye, 2011). Beberapa vocabulary yang ada pada OWL adalah among
others, relasi antar class, kardinalitas, kesamaan, karakteristik property, enumerated
classes.
OWL dibagi menjadi tiga sub-bahasa yang penggunaannya disesuaikan dengan
kebutuhan, antara lain (Ayuningtyas, 2009):

Universitas Sumatera Utara


14

• OWL Full
OWL Full menggunakan seluruh primitif bahasa OWL, dan diperuntukkan bagi
penggunaan yang maksimum dengan kebebasan sintaksis
• OWL Lite
OWL Lite merupakan versi OWL paling sederhana yang menyediakan klasifikasi
hierarki dan batasan sederhana.
• OWL DL
OWL DL menggunakan description logic dalam merepresentasikan relasi antara
objek dan propertinya. OWL DL mendukung konstruksi seluruh OWL dengan
batasan tertentu
Dokumen OWL biasanya disebut dengan Ontologi OWL dan merupakan sebuah
dokumen RDF. Ontologi OWL dimulai dengan kumpulan dari pernyataan yang
digabung dalam elemen owl:Ontology, yang terdiri dari komentar, versi dan penyertaan
ontologi lain, seperti berikut :

<owl:Ontology rdf:about="http://www.example.com">
<rdfs:comment>Contoh Ontologi</rdfs:comment>
<owl:priorVersion rdf:resource="http://www.exampe.com/uni-ns-old"/>
<owl:imports rdf:resource="http://www.example.com/obat"/>
<rdfs:label>Ontologi Obat</rdfs:label>
</owl:Ontology>

Gambar 2.9 Definisi elemen owl:Ontology


Kelas didefinisikan dengan elemen owl:Class, contohnya jika kita ingin mendefinisikan
kelas obat generik adalah sebagai berikut:

<owl:class rdf:about "http://www.example.com#generik">


<rdfs:subClassOf rdf:resource=" http://www.example.com #obat"/>
</owl:class>

Gambar 2.10 Definisi class pada OWL


Properti dalam OWL dibagi menjadi dua:
• Properti objek, yang menghubungkan antar objek

<owl:ObjectProperty rdf:ID=" http://www.example.com#pengobatan">


<rdfs:domain rdf:resource=" http://www.example.com #penyakit"/>
<rdfs:range rdf:resource=" http://www.example.com #obat"/>
</owl:ObjectProperty>

Gambar 2.11 Definisi Object Property pada OWL

Universitas Sumatera Utara


15

• Properti tipe data, yang menghubungkan objek dengan tipe data

<owl:DatatypeProperty rdf:ID=" http://www.example.com#NoRegistrasi">


<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>

Gambar 2.12 Definisi Datatype Property pada OWL

Individual dalam OWL didefinisikan sebagai berikut :

<owl:NamedIndividual rdf:about=" http://www.example.com#abreva">


<rdf:type rdf:resource=" http://www.example.com#merk"/>
<owl:sameAs rdf:resource=" http://www.example.com#docosanol"/>
<ontologi:obatPenyakit rdf:resource="http://www.example.com#herpes-
simplex"/>
<rdfs:label>abreva</rdfs:label>
</owl:NamedIndividual>
Gambar 2.13 Definisi individual pada OWL

Universitas Sumatera Utara


16

2.6 Algoritma Knuth Morris Pratt

Algoritma Knuth Morris Pratt (KMP) merupakan algoritma string matching yang
mencari kemunculan suatu pattern dalam teks. Algoritma KMP melakukan pergeseran
berdasarkan informasi pattern dan tidak per karakter. Informasi pattern tersebut
diperoleh dengan melakukan tahap preprocessing yang disebut dengan fungsi
pinggiran. Fungsi pinggiran bergantung pada karakter pada pattern bukan karakter pada
teks. Metode dari fungsi pinggiran adalah melakukan pengecekan secara bertahap
terhadap setiap karakter pattern dengan menghitung panjang maksimal karakter
pinggiran yang sama. Hasil pengecekan akan dimasukkan ke dalam array (Pradnyana,
2011).
Contoh penggunaan fungsi pinggiran adalah :
Misalkan pattern “AABACAA”
• Pencarian pertama yaitu “A”, tidak ada karakter yang sama sehingga nilainya 0.
• Pencarian kedua yaitu “AA” memiliki 1 karakter yang sama pada ujung pattern
sehingga nilainya 1.
• Pencarian ketiga yaitu “AAB” tidak ada karakter yang sama pada ujung pattern,
sehingga nilainya 0.
• Pencarian keempat yaitu “AABA” memiliki 1 karakter yang sama pada ujung
pattern, sehingga diberi nilai 1.
• Pencarian kelima yaitu “AABAC” tidak ada karakter yang sama pada ujung pattern
sehingga nilainya 0
• Pencarian keenam yaitu “AABACA” memiliki 1 karakter yang sama pada ujung
pattern, sehingga diberi nilai 1.
• Pencarian ketujuh yaitu “AABACAA” memiliki 2 karakter yang sama pada ujung
pattern, sehingga diberi nilai 2.
Dari hasil pencarian tersebut, dihasilkan array sebagai berikut :
0 1 0 1 0 1 2

Universitas Sumatera Utara


17

Array dari hasil fungsi pinggiran akan digunakan untuk menentukan pergeseran pada
algoritma KMP. Contoh implementasi algoritma KMP adalah sebagai berikut:
txt = “AABCBBAABACAAAA”
pat = “AABACAA”
lps = 0 1 0 1 0 1 2

i = 0; j = 0
A A B C B B A A B A C A A A A
A A B A C A A
txt[0] dan pat[0] match, i++, j++
i=1,j=1
A A B C B B A A B A C A A A A
A A B A C A A
txt[1] dan pat[1] match, i++,j++
i=2;j=2
A A B C B B A A B A C A A A A
A A B A C A A
txt[2] dan pat[2] match, i++, j++
i=3;j=3
A A B C B B A A B A C A A A A
A A B A C A A
txt[3] dan pat[3] tidak match dan j > 0, sehingga j = lps[j-1] = lps[2] = 0
i=3;j=0
A A B C B B A A B A C A A A A
A A B A C A A
txt[3] dan pat[0] tidak match dan j=0 , sehingga i++
i=4;j=0
A A B C B B A A B A C A A A A
A A B A C A A
txt[4] dan pat[0] tidak match dan j=0 , sehingga i++

Universitas Sumatera Utara


18

i=5;j=0
A A B C B B A A B A C A A A A
A A B A C A A
txt[5] dan pat[0] tidak match dan j=0 , sehingga i++
i=6;j=0
A A B C B B A A B A C A A A A
A A B A C A A
txt[6] dan pat[0] match, i++, j++
i=7;j=1
A A B C B B A A B A C A A A A
A A B A C A A
txt[7] dan pat[1] match, i++, j++
i=8;j=2
A A B C B B A A B A C A A A A
A A B A C A A
txt[8] dan pat[2] match i++, j++
i=9;j=3
A A B C B B A A B A C A A A A
A A B A C A A
txt[9] dan pat[3] match, i++, j++
i=10;j=4
A A B C B B A A B A C A A A A
A A B A C A A
txt[10] dan pat[4] match, i++, j++
i=11;j=5
A A B C B B A A B A C A A A A
A A B A C A A
txt[11] dan pat[5] match, i++, j++
i=12;j=6
A A B C B B A A B A C A A A A
A A B A C A A
txt[12] dan pat[6] match, dan j = panjang pattern, pattern ditemukan.

Universitas Sumatera Utara


19

Setelah pattern ditemukan, pencarian tetap berlanjut dengan me reset nilai j, j = lps[j-
1] = lps[5] = 1
i=13;j=1
A A B C B B A A B A C A A A A
A A B
txt[13] dan pat[1] match, i++,j++
i=14;j=2
A A B C B B A A B A C A A A A
A A B
txt[14] dan pat[2] tidak match, j = lps[j-1] = lps[1] = 1
i=14;j=1
A A B C B B A A B A C A A A A
A A
txt[14] dan pat[1] match, pencarian berhenti pada indeks txt terakhir.

Universitas Sumatera Utara


20

2.7 Tool Ontologi

2.7.1 Protégé OWL


Protégé dikembangkan oleh Stanford Center for Biomedical Informatics Research. c
merupakan editor ontologi yang bersifat open source untuk membentuk model domain
dan aplikasi dengan knowledge base ontologi. Salah satu editor dalam Protégé adalah
Protégé OWL. Protégé OWL memungkinkan pengguna untuk membangun ontologi
untuk semantic web. Protégé OWL mendukung OWL Classes, Properties, Instances dan
Reasoning.

2.7.2 Openlink Virtuoso


Openlink virtuoso adalah server lintas platform yang skalabel, yang menggabungkan
manajemen data relasional, graph dan dokumen dengan web application server dan
platform fungsional web services. Virtuoso mendukung SPARQL untuk melakukan
kueri RDF yang tersimpan dalam Triple Store Virtuoso.

2.7.3 RDFLib
RDFLib merupakan library Python open source untuk bekerja dengan RDF. RDFLib
memiliki RDF / XML parser / serializer yang sesuai dengan spesifikasi sintaksis
XML/RDF. RDFLib dapat digunakan untuk beberapa hal, yaitu mengubah dokumen
RDF menjadi RDF graph, melakukan query SPARQL serta membentuk dan mengakses
triples.

2.7.4 SPARQLWrapper
SPARQLWrapper adalah tool untuk melakukan SPARQL query. Tujuan dari
SPARQLWrapper adalah mengubah SPARQL query menjadi bentuk protokol HTTP
GET dan mengirimkannya pada endpoint SPARQL kemudian mengubah hasil
SPARQL menjadi format yang lebih mudah dikelola.

Universitas Sumatera Utara


21

2.7.5 Visual Notation for OWL Ontologies (VOWL)


VOWL adalah plugin yang tersedia di dalam protégé untuk melakukan visualisasi grafis
dari data ontologi yang telah dibentuk. VOWL menyediakan bentuk bentuk grafis dari
komponen – komponen yang terdapat dalam OWL. Beberapa bentuk grafis dari elemen
OWL dapat dilihat pada tabel 2.2.

Tabel 2.2 Representasi Grafis Beberapa Elemen OWL


Elemen Bentuk Grafis Deskripsi
Lingkaran berwarna
biru terang dengan
owl:Class
label yang terletak di
bagian tengah.
Lingkaran dengan
bentuk yang lebih kecil
owl:Thing berwarna netral dengan
garis putus – putus dan
berlabel “Thing”.
Garis lurus solid
dimulai dari domain
dengan kepala anak
panah berwarna hitam
rdfs:domain, menunjuk range.
rdfs:range Bentuk ini muncul
bersama kombinasi
property yang domain
dan range nya telah
terdefinisi.
Representasi property
dengan menunjukkan
owl:ObjectProperty, label property dalam
sebuah kotak berwarna
biru terang.

Universitas Sumatera Utara


22

Representasi property
dengan menunjukkan
label property dalam
owl:DatatypeProperty
sebuah kotak berwarna
hijau sebagai warna
datatype property.
Garis putus – putus
dimulai dari subclass
dengan kepala anak
panah berwarna netral
rdfs:subClassOf menunjuk superclass.
Label “Subclass of”
berada di tengah untuk
merepresentasikan
hubungan semantiknya.
Kotak berwarna kuning
sebagai representasi
Datatype dengan
border solid. Label dari
rdfs:datatype
bentuk ini berisi
datatype seperti string
,boolean, dan
dateTime.

Universitas Sumatera Utara


23

2.8 Penelitian yang Relevan

Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh
penulis antara lain adalah sebagai berikut:
1. Penelitian yang telah dilakukan Nuriana Ayuningtyas ( 2009 ) dengan judul
“Implementasi Ontologi Web dan Aplikasi Semantik untuk Sistem Sitasi Jurnal
Elektronik Indonesia”. Kesimpulan yang didapat dari penelitian tersebut adalah
semantik web memberi keuntungan berupa pencarian informasi yang lebih singkat.
2. Penelitian yang telah dilakukan J. Lehmann, dkk (2015) dengan judul “DBpedia –
A large-scale, multilingual knowledge base extracted from Wikipedia”. Penelitian
ini menjelaskan mengenai pengembangan DBpedia sebagai bentuk semantic web
dari Wikipedia.
3. Penelitian yang telah dilakukan oleh Resti Ekaningtyas, M. A. Ineke Pakereng dan
Henry ( 2014 ) yaitu “Aplikasi Pencarian Produk Obat-obatan yang Beredar Sesuai.
Standar BPOM Berbasis Web Semantik”. Penelitian ini menyimpulkan bahwa
pencarian dengan ontologi memberikan informasi yang lebih relevan dan tepat.
4. Penelitian yang telah dilakukan G. Kobilarov (2009) dengan judul “Media Meets
Semantic Web – How the BBC Uses DBpedia and Linked Data to Make
Connections”. Penelitian ini menjelaskan integrasi data dan menghubungkan
dokumen dalam domain BBC dengan menggunakan teknologi semantic web.
5. Penelitian yang dilakukan C. Bizer (2009) dengan judul “DBpedia - A
crystallization point for the Web of Data” yang menjelaskan DBpedia knowledge
base yang membantu mengoptimalkan pencarian informasi.

Universitas Sumatera Utara


BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem adalah proses mengidentifikasi dan mendefinisikan suatu masalah yang
mungkin terjadi pada suatu sistem yang akan dibangun untuk mengetahui kebutuhan yang
diperlukan oleh sistem agar dapat berjalan sesuai dengan tujuannya. Terdapat beberapa
langkah dalam analisis sistem, yaitu:

3.1.1 Analisis Masalah


Analisis masalah bertujuan untuk mengidentifikasi dasar dari dibangunnya suatu sistem
sehingga sistem tersebut dapat berjalan sesuai dengan tujuannya. Permasalahan utama
dalam penelitian ini adalah hasil pencarian obat penyakit tropis pada website konvensional
tidak selalu menampilkan data sesuai dengan kebutuhan pengguna. Untuk mengidentifikasi
masalah tersebut digunakan diagram Ishikawa seperti gambar 3.1.

Gambar 3.1 Diagram Ishikawa

Universitas Sumatera Utara


25

3.1.2 Analisis Kebutuhan Sistem


Analisis kebutuhan sistem terbagi menjadi dua, yaitu kebutuhan fungsional dan kebutuhan
non – fungsional.

3.1.2.1 Kebutuhan Fungsional Sistem


Kebutuhan fungsional menjelaskan proses – proses yang dapat dijalankan oleh sistem.
Kebutuhan fungsional yang dapat dilakukan oleh sistem adalah:
1. Sistem dapat menerima inputan pengguna.
2. Sistem dapat melakukan preprocessing text inputan pengguna.
3. Sistem dapat menampilkan hasil pencarian yang relevan dengan inputan pengguna.

3.1.2.2 Kebutuhan Non-Fungsional Sistem


Kebutuhan non – fungsional menjelaskan kebutuhan yang diperlukan untuk mendukung
kinerja sistem. Kebutuhan non – fungsional dari sistem ini adalah:
1. Sistem mudah digunakan dan mudah dipelajari oleh pengguna.
2. Sistem yang dibangun memiliki waktu yang singkat untuk proses pencarian.

Universitas Sumatera Utara


26

3.2 Arsitektur Umum

Implementasi semantic web berbasis ontologi dalam penelitian ini terdiri dari beberapa
tahap. Tahap pertama adalah memperoleh dataset berupa RDF mengenai data obat penyakit
tropis, kemudian dilakukan perancangan data dengan skema ontologi berdasarkan
dokumen RDF tersebut. Hasil dari perancangan data tersebut akan digunakan dalam sistem
pencarian dengan media chatbot. Arsitektur umum penelitian ini dapat dijelaskan oleh
gambar 3.2.

Gambar 3.2 Arsitektur umum sistem

Universitas Sumatera Utara


27

3.2.1 Dataset
Dataset yang digunakan dalam penelitian ini berupa dokumen RDF mengenai data obat
penyakit tropis yang terdiri dari 28 penyakit tropis, 13337 data obat BPOM, dan 211 data
obat drugs.com. BPOM adalah Lembaga yang bertugas mengawasi peredaran obat – obatan
dan makanan di Indonesia. Drugs.com merupakan ensiklopedia farmasi online yang
menyediakan informasi obat yang berasal dari Cerner Multum, Micromedex from Truven
Health Analytics, Wolters Kluwer Health, U.S. Food and Drug Administration (FDA),
A.D.A.M., Stedmans, AHFS, Harvard Health Publications, Mayoclinic, North American
Compendiums, dan Healthday. Data yang diperoleh dari BPOM dan Drugs.com merupakan
data yang valid karena berasal dari sumber yang terpercaya. Dataset yang diperoleh akan
dikembangkan kembali menjadi bentuk ontologi.

3.2.2 Perancangan Data dengan Skema Ontologi


Proses perancangan data dengan skema ontologi adalah inti dari penelitian ini. Ontologi
adalah sebuah ilmu yang menjelaskan suatu entitas dan hubungan antar entitas. Ontologi
memiliki vocabulary yang lebih luas dalam menjelaskan sesuatu dibandingkan dengan
RDF, maka dari itu dokumen RDF yang diperoleh akan diubah menjadi dokumen ontologi.
Perancangan ontologi tersebut terdiri dari beberapa tahap (Ayuningtyas, 2009):

• Menentukan Domain Ontologi


Domain yang melingkupi ontologi ini adalah medis, karena melingkupi informasi penyakit
tropis dan obat terkait dengan penyakit tropis.

• Mendefinisikan Class, Subclass dan Hierarkinya


Definisi Class, subclass dan penyusunan hierarkinya menggunakan proses pengembangan
top-down yang dimulai dengan pendefinisian konsep paling umum, kemudian dilanjutkan
dengan pendefinisian konsep yang lebih spesifik. Pendefinisian class paling umum pada
penelitian ini adalah class penyakit, obat dan produk, kemudian pada class penyakit
didefinisikan subclass yang lebih spesifik yaitu penyakit tropis, sedangkan pada class obat
didefinisikan subclass generik dan merk sebagai subclass yang lebih spesifik dan produk

Universitas Sumatera Utara


28

sebagai class yang tidak memiliki subclass. Rancangan class, subclass dan hierarkinya
dapat digambarkan oleh gambar 3.3.

Gambar 3.3 Class, subclass dan hierarkinya

• Mendefinisikan Property
Property menjelaskan hubungan antar elemen dalam ontologi. Property terbagi atas dua,
yaitu Object Property dan Datatype Property. Object Property menghubungkan dua
individual, sementara Datatype Property menghubungkan individual dengan datatype
value seperti integer, string, dateTime. Property yang digunakan dalam penelitian ini
adalah property memilikiPengobatan dan property obatPenyakit. Property
memilikiPengobatan berfungsi untuk menjelaskan hubungan penyakit dengan obat,
property obatPenyakit digunakan dalam menjelaskan hubungan obat dengan penyakit yang
berkaitan dan property produkobat digunakan untuk menjelaskan hubungan obat dan
produknya.

Gambar 3.4 Rancangan property pada class

Universitas Sumatera Utara


29

• Mendefinisikan Individuals serta individuals properties


Individuals dalam ontologi merupakan elemen paling dasar dalam hierarki ontologi yang
merepresentasikan elemen suatu class. Rancangan individual beserta property dalam
penelitian ini dapat ditunjukkan oleh gambar 3.5. Subclass Penyakit Tropis memiliki
individual berupa jenis – jenis penyakit tropis yang memiliki property memilikiPengertian
yang bertipe data string, Subclass Generik memiliki individual berupa jenis – jenis obat
generik. Subclass Merk memiliki individual berupa jenis – jenis obat merek, dan Class
Produk memiliki data literal yaitu nomor registrasi, nama produk, bentuk sediaan,
komposisi, kemasan dan pendaftar yang memiliki property tipe data string, sedangkan
untuk data tanggal terbit memiliki property tipe data dateTime.

Gambar 3.5 Rancangan indviduals dan individuals properties

Universitas Sumatera Utara


30

3.2.3 Preprocessing Text


Pengguna akan menggunakan chatbot sebagai antarmuka aplikasi dalam penelitian ini.
Chatbot akan menerima inputan berupa satu kalimat kemudian pada kalimat tersebut akan
dilakukan preprocessing dengan tahapan case folding, tokenizing, phrase detection
stemming dan filtering, sehingga diperoleh keyword – keyword yang dapat dipahami oleh
chatbot untuk diproses.

• Case Folding
Case folding adalah proses penyamaan case dalam sebuah dokumen. Contohnya terdapat
pada gambar 3.6 di mana setiap kata dengan huruf kapital dikonversi menjadi bentuk
lowercase.

Apa apa
Obat obat
Untuk untuk
Penyakit penyakit
Demam demam
Berdarah berdarah

Gambar 3.6 Proses Case Folding

• Tokenizing
Tokenizing adalah proses memecah teks menjadi kata – kata, istilah, simbol atau elemen
lain yang disebut token (Vijayarani & Janani, 2016). Proses tokenizing dapat dilihat pada
gambar 3.7.

Universitas Sumatera Utara


31

Gambar 3.7 Proses Tokenizing


• Phrase Detection
Phrase detection digunakan untuk menemukan 2 kata atau lebih yang merupakan frasa.
Frasa adalah gabungan dua kata atau lebih yang bersifat nonpredikatif. Contoh dari phrase
detection ditunjukkan oleh gambar 3.8.

Apa
apa
Obat
obat
Untuk
untuk
Penyakit
penyakit
Demam
demam berdarah
Berdarah

Gambar 3.8 Proses Phrase Detection


• Stemming
Stemming adalah proses pencarian kata dasar dari kata hasil tokenizing. Contoh dari proses
stemming ditunjukkan oleh gambar 3.9.

Pengobatan Obat
Penyakit Sakit
Apakah Apa

Gambar 3.9 Proses Stemming

Universitas Sumatera Utara


32

• Filtering
Filtering merupakan proses pengambilan kata – kata penting dari hasil stemming. Proses
filtering mengunakan stopword yang telah disusun sesuai dengan dokumen RDF. Proses
filtering pada penelitian ini menggunakan algoritma KMP. Algoritma KMP adalah
algoritma string matching untuk menemukan kemunculan suatu pattern pada teks.
Algoritma KMP terdiri dari 2 tahap, yaitu tahap preprocessing dengan fungsi pinggiran dan
tahap pencarian pattern. Pseudocode Algoritma KMP ditunjukkan oleh gambar 3.10 dan
gambar 3.11.

Function hitungPinggiran (input pat:string, m:integer, lps:array[1..m] of integer, output


lps:array[1..m] of integer)
Deklarasi:
len, i : integer
Algoritma
len ← 0
i←1
lps[0]
while ( i < M )do
if pat[i] == pat[len] do
len+=1
lps[i] ← len
i← i+1
else
if len != 0 do
len ← lps[len-1]
else
lps[i] ← 0
i ← i+1

Gambar 3.10 Pseudocode Fungsi Pinggiran Algoritma KMP

Universitas Sumatera Utara


33

Function KMPSearch (input pat:string, teks:string)


Deklarasi:
M : integer
N : integer
i,j : integer
lps ← array[1..M] of integer
Algoritma:
M = len(pat)
N = len(teks)
lps ← [0]*M
j←0
hitungPinggiran(pat,M,lps)
i←0
while ( i < N ) do
if pat[j] == txt[i]:
i ← i+ 1
j ← j+1
if j == M:
print( ‘pattern ditemukan pada indeks’, i-j)
j ← lps[j-1]

elif i<N and pat[j] != txt[i]:


if j != 0:
j ← lps[j-1]
else:
i ← i+1

Gambar 3.11 Pseudocode Algoritma KMP

Universitas Sumatera Utara


34

• SPARQL Query
SPARQL merupakan akronim rekursif dari SPARQL Protocol and RDF Query Language.
SPARQL digunakan untuk melakukan query dan memanipulasi RDF Graph. Contoh dari
SPARQL query ditunjukkan oleh gambar 3.12.

Tabel 3.1 Contoh data triples rdf


S p O
<http://example.org#penyakit> <http://example.org#namaPenyakit> “Malaria”
<http://example.org#penyakit> <http://example.org#namaPenyakit> “Anthrax”

SELECT ?nama
WHERE
{
<http://example.org#penyakit> <http://example.org#namaPenyakit > ?nama .
}

Gambar 3.12 Contoh SPARQL Query

Tabel 3.2 Contoh hasil query SPARQL


Nama
Malaria
Anthrax

Universitas Sumatera Utara


35

3.3 Flowchart Sistem

Flowchart sistem digambarkan oleh gambar 3.13. Tahap pertama sistem yaitu pengguna
memasukkan inputan berupa kalimat untuk berkomunikasi dengan chatbot, kemudian akan
dilakukan pengecekan apakah inputan kosong atau tidak. Inputan yang tidak kosong akan
melewati tahap preprocessing text, pertama case folding untuk menyamakan case inputan,
setelah itu inputan akan dilakukan tokenizing untuk memecah text berdasarkan kata
penyusunnya. Hasil token kemudian akan dilakukan phrase detection untuk
menggabungkan token – token yang merupakan frase, hasil inputan yang telah dilakukan
phrase detection kemudian dilakukan stemming untuk mendapatkan kata dasar dari kata –
kata yang masih berupa kata berimbuhan. Setelah seluruh inputan diubah menjadi kata
dasarnya, dilakukan proses filtering dengan algoritma KMP untuk melakukan seleksi kata
– kata tidak penting, sehingga yang tersisa hanyalah keyword. Keyword yang diperoleh
kemudian dikuerikan dengan SPARQL kemudian hasil kueri ditampilkan sebagai hasil
pencarian sebagai respons kepada pengguna.

Universitas Sumatera Utara


36

Gambar 3.13 Flowchart umum sistem

Universitas Sumatera Utara


BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Ontologi

Tahapan implementasi ontologi menggunakan perangkat lunak Protégé 5.2. Protégé adalah
editor ontologi dengan Bahasa OWL yang menyediakan komponen - komponen seperti
class, properties dan instance untuk merancang data dengan skema ontologi. Halaman
antarmuka Protégé 5.2 dapat dilihat pada gambar 4.1.

Gambar 4.1 Halaman Protégé 5.2

4.1.1 Mendefinisikan class, subclass dan hirarki


Pendefinisian class, subclass dan hierarkinya menggunakan metode top-down yaitu
dimulai dengan definisi class paling umum dan diikuti dengan definisi subclass yang lebih
spesifik. Class paling umum adalah class obat, class penyakit dan class produk.
• Class obat berfungsi sebagai pengelompokan seluruh jenis obat

Universitas Sumatera Utara


38

• Class penyakit berfungsi sebagai pengelompokan seluruh jenis penyakit


• Class produk berfungsi sebagai pengelompokan seluruh produk obat BPOM
Gambaran hierarki class dapat dilihat pada gambar 4.2.

Gambar 4.2 Class pada Protégé

Selanjutnya, class dijelaskan dengan lebih khusus dengan pengunaan subclass sesuai
gambar 4.3.
• Subclass generik berfungsi sebagai pengelompokan obat – obat generik
• Subclass merk berfungsi sebagi pengelompokan obat – obat bermerk
• Subclass penyakit tropis berfungsi sebagai pengelompokan penyakit tropis

Gambar 4.3 Class dan subclass pada Protégé

Universitas Sumatera Utara


39

4.1.2 Mendefinisikan properties


Properties yang diimplementasikan menggunakan object properties dan datatype
properties. Object properties menjelaskan hubungan antar instance. Implementasi
properties dalam penelitian ini digambarkan oleh gambar 4.4.
• Properties “Memiliki pengobatan” menjelaskan hubungan antara individual dalam
class penyakit dengan individual dalam class obat.
• Properties “Obat penyakit” menjelaskan hubungan antara individual dalam class obat
dengan individual dalam class penyakit.
• Properties “produkobat” menjelaskan hubungan antara individual dalam class obat
dengan individual dalam class produk.

Gambar 4.4 Object properties pada Protégé

Universitas Sumatera Utara


40

Datatype properties menjelaskan individual dengan datatype berupa value. Implementasi


datatype properties digambarkan oleh gambar 4.5.
• Property “pengertian” digunakan untuk menjelaskan pengertian dari individual dalam
class penyakit yang diberi tipe data string.
• Property “no_registrasi” digunakan untuk menjelaskan nomor registrasi individual
dalam class produk yang diberi tipe data string
• Property “t_terbit” digunakan untuk menjelaskan nomor tanggal terbit registrasi
individual dalam class produk yang diberi tipe data dateTime
• Property “nama_produk” digunakan untuk nama produk individual dalam class produk
yang diberi tipe data string
• Property “kemasan” digunakan untuk menjelaskan kemasan individual dalam class
produk yang diberi tipe data string
• Property “bentuk sediaan” digunakan untuk menjelaskan bentuk sediaan individual
dalam class produk yang diberi tipe data string
• Property “komposisi” digunakan untuk menjelaskan komposisi individual dalam class
produk yang diberi tipe data string
• Property “pendaftar” digunakan untuk menjelaskan pendaftar individual dalam class
produk

Gambar 4.5 Datatype Property pada Protégé

Universitas Sumatera Utara


41

4.1.3 Mendefinisikan individuals dan individuals properties


Tahap terakhir dalam implementasi ontologi adalah mendefinisikan individuals dan
properties nya. Implementasi individuals dapat dilihat pada gambar 4.6 dan gambar 4.7.
Gambar 4.6 menunjukkan individuals yang telah didefinikasn pada class generik, dan
gambar 4.7 menunjukkan individuals yang telah didefinisikan pada class penyakit tropis.

Gambar 4.6 Individuals class generik pada Protégé

Gambar 4.7 Individuals class penyakit tropis pada Protégé

Universitas Sumatera Utara


42

Implementasi properties pada individuals dapat dilihat pada gambar 4.7. Gambar 4.7
menjelaskan tentang individual “typhus” yang memiliki types “penyakit tropis” sehingga
menjelaskan bahwa typhus adalah salah satu penyakit tropis. “same individual as”
menandakan bahwa typhus sama dengan individual demam tifoid, tipus, tifoid dan typhoid,
kemudian individual “typhus” memiliki annotation rdfs:label yaitu “typhus” serta object
properties “Memiliki pengobatan” dan memiliki datatype properties “pengertian”.

Gambar 4.8 Implementasi object dan datatype properties pada individual typhus

Data yang telah dimodelkan menggunakan skema ontologi dapat divisualisasikan


menggunakan VOWL. Hasil visualisasi VOWL dapat dilihat pada gambar 4.9 halaman 43.
Gambar 4.9 menggambarkan hierarki class yaitu class penyakit, obat dan produk yang
merupakan subclass dari owl:Thing, kemudian penyakit tropis dan penyakit umum sebagai
subclass dari class penyakit, generik dan merk sebagai subclass dari class obat. Hubungan
antara class obat dan penyakit dijelaskan oleh object properties obat_penyakit dan
memiliki_pengobatan. Hubungan antara class obat dan produk dijelaskan oleh object
properties produkobat. Hubungan antara class dengan data yang berisi nilai literal
didefinisikan oleh beberapa datatype properties yaitu pengertian, no_registrasi, pendaftar,
nama_produk, kemasan, komposisi, bentuk_sediaan yang memiliki tipe data string, serta
t_terbit yang memilik tipe data dateTime.

Universitas Sumatera Utara


43

Gambar 4.9 Visualisasi Data Ontologi Obat dan Penyakit


Berikut merupakan visualisasi triples dan graph dari salah satu data yang terdapat dalam
ontologi obat dan penyakit yang telah diimplementasikan. Gambar 4.10 menunjukkan
triples dari individual filariasis dalam dokumen ontologi. Triples berikut menjelaskan
hubungan individual filariasis dan individual atau data literal lain dengan penghubung
properties dalam bentuk tabel.

Gambar 4.10 Triples Data Filariasis

Universitas Sumatera Utara


44

Gambar 4.11 merupakan graph dari data triples pada gambar 4.10. Gambar 4.11
menjelaskan hubungan individual filariasis dengan individual atau data literal lain dalam
bentuk grafik. Individual digambarkan dalam bentuk lingkaran berisi URI individual
tersebut, kemudian properties digambarkan dengan tanda panah menunjuk kepada
individual atau data literal, label URI properties berada pada tengah tanda panah dan diberi
warna merah, kemudian data literal digambarkan dalam bentuk persegi.

Gambar 4.11 Graph Data Filariasis

Universitas Sumatera Utara


45

4.2 Implementasi Chatbot

4.2.1 Halaman Utama Chatbot


Chatbot merupakan antarmuka aplikasi dalam penelitian ini. Implementasi chatbot
mengunakan microframework flask dan python sebagai bahasa pemrogramannya. Pada
halaman utama terdapat area inputan yang berfungsi untuk menerima inputan pengguna
dan button kirim untuk melakukan proses pada inputan tersebut.

Gambar 4.12 Halaman utama chatbot


4.2.2 Halaman About
Gambar 4.13 merupakan halaman about pada Chatbot

Gambar 4.13 Halaman About pada Chatbot

Universitas Sumatera Utara


46

4.3 Pengujian Sistem

Pengujian sistem dilakukan untuk mengetahui apakah sistem yang dibangun dapat berjalan
dengan baik dan hasil pencarian relevan dengan inputan yang diberikan pengguna.
Pengujian dilakukan pada algoritma KMP dan proses pencarian keyword pada ontologi.
Kriteria pengujian sebagai berikut:
1. Pengguna dapat melakukan input kalimat.
2. Sistem dapat melakukan preprocessing text sehingga memperoleh keyword.
3. Sistem dapat menampilkan hasil pencarian sesuai dengan inputan pengguna.
4. Pengujian sistem dilakukan dengan laptop sistem operasi windows 8.1 dengan
RAM 4gb.

4.3.1 Pengujian inputan sistem


Pada halaman utama chatbot, pengguna dapat mengetikkan inputan pada bagian cari
informasi obat, kemudian menekan button kirim atau menekan enter pada keyboard untuk
mengirimkan inputan ke sistem. Contoh penginputan pada sistem dapat dilihat pada gambar
4.14.

Gambar 4.14 Pengujian inputan sistem

Universitas Sumatera Utara


47

4.3.2 Pengujian preprocessing text pada sistem


Ketika pengguna menekan button kirim atau enter pada keyboard, maka inputan akan
dikirimkan ke sistem untuk diproses dengan tahap preprocessing text yaitu case folding,
tokenizing, phrase detection, stemming dan filtering.
Teks yang akan diuji adalah “Apa Sih Obatnya Kaki GAjah ??”. Tahapan pemrosesan teks
adalah sebagai berikut :
▪ Case Folding : “apa sih obatnya kaki gajah ??”
▪ Tokenizing : “apa” “sih” “obatnya” “kaki” “gajah”
▪ Phrase Detection : “apa” “sih” “obatnya” “kaki-gajah”
▪ Stemming : “apa” “sih” “obat” “kaki-gajah”
▪ Filtering :
Contoh penggunaan algoritma KMP pada sistem
Pattern : “apa”
Kamus : [‘antara’,’apa’]
1. Fungsi Pinggiran :
a p a
0 0 1
Array lps= [0,0,1]
2. Fungsi KMP :
• Pengecekan pada indeks kamus pertama
a. i=0, j=0
a n t a r a
a p a
pat[0] dan txt[0][0] match,
i++, j++
b. i=1, j=1
a n t a r a
a p a
pat[1] dan txt[0][1] tidak match
karena j != 0 maka j = lps[j-1] = lps[0] = 0

Universitas Sumatera Utara


48

c. i=1, j=0
a n t a r a
a p a
pat[0] dan txt[0][1] tidak match
karena j = 0, i++
d. i=2, j=0
a n t a r a
a p a
pat[0] dan txt[0][2] tidak match
karena j=0, i++
e. i=3, j=0
a n t a r a
a p a
pat[0] dan txt[0][3] match
i++, j++
f. i=4, j=1
a n t a r a
a p a
pat[1] dan txt[0][4] tidak match
Karena j != 0, j = lps[j-1] = lps[0] = 0
g. i=4, j=0
a n t a r a
a p
pat[0] dan txt[0][4] tidak match
Karena j=0, i++
h. i=5,j=0
a n t a r a
a
pat[0] dan txt[0][5] match
iterasi pada kamus indeks pertama selesai, pattern tidak match

Universitas Sumatera Utara


49

• Pengecekan pada indeks kamus kedua


i. i=0,j=0
a p a
a p a
pat[0] dan txt[1][0] match
i++, j++
j. i=1, j=1
a p a
a p a
pat[1] dan txt[1][1] match
i++, j++
k. i=2,j=2
a p a
a p a
Nilai J sama dengan Panjang pattern yaitu 2, sehingga pattern ditemukan pada indeks
kamus kedua. Maka dari itu pattern akan dihapus dari teks inputan pengguna.

Kata – kata selanjutnya dari hasil stemming akan di proses dengan algoritma KMP untuk
pengecekan apakah kata tersebut termasuk kata – kata tidak penting, sehingga didapatkan
hasil filtering berupa “obat”, “kaki-gajah”
Berikut merupakan hasil dari preprocessing text pada sistem.

Gambar 4.15 Pengujian Preprocessing Text

Universitas Sumatera Utara


50

4.3.3 Pengujian sistem dalam menampilkan hasil pencarian


Keyword yang diperoleh dari hasil preprocessing text akan dikuerikan dengan SPARQL ke
ontologi yang telah diupload ke dalam Virtuoso QuadStore. Hasil kueri akan berupa JSON
seperti gambar 4.16. JSON akan diparsing oleh sistem untuk ditampilkan sebagai hasil
pencarian.

Gambar 4.16 Data JSON hasil kueri

Gambar 4.17 Pengujian Hasil Pencarian

Universitas Sumatera Utara


51

4.3.4 Pengujian Sistem dalam melakukan pencarian


Hasil pengujian pencarian informasi menggunakan chatbot dapat dilihat pada tabel 4.1 dan
tabel 4.2.

Tabel 4.1 Hasil Pengujian Menanyakan Informasi Penyakit


No. Inputan Pengguna Respon Chatbot Hasil Percakapan
Pengertian: penyakit yang
menyebar melalui gigitan
nyamuk yang sudah terinfeksi
parasit. Infeksi malaria bisa
terjadi hanya dengan satu
gigitan nyamuk. Jika tidak
ditangani dengan benar,
penyakit ini bisa menyebabkan
1 apa itu malaria ? kematian. SESUAI
Pengobatan: aralen
aralen phosphate
artemether/lumefantrine
atovaquone
atovaquone/proguanil
cardioquin
oraxyl
vibra-tabs
vibramycin
Pengobatan: cimetidine
apa pengobatan demam famotidine
2 nizatidine SESUAI
kuning ?
ranitidine
yellow-fever-vaccine
Pengobatan: paracetamol
acetaminophen
3 apa obat untuk demam actiprofen SESUAI
cetafen
ibuprofen
Pengertian: penyakit yang
dapat membuat suhu tubuh
coba jelaskan tentang penderita menjadi sangat tinggi
4 dan pada umumnya disertai SESUAI
demam berdarah
sakit kepala, nyeri sendi, otot,
dan tulang, serta nyeri di
bagian belakang mata.

Universitas Sumatera Utara


52

Penyakit demam dengue


disebabkan oleh virus dengue
yang penyebarannya terjadi
melalui gigitan nyamuk Aedes
aegypti dan Aedes albopictus

Sama dengan: dengue fever


Pengertian: infeksi yang
disebabkan oleh cacing filaria.
Penyakit ini dapat menyerang
hewan maupun manusia.
Parasit filaria memiliki ratusan
jenis, tapi hanya 8 spesies yang
dapat menyebabkan infeksi
penjelasan tentang pada manusia.
5 SESUAI
filariasis
Sama dengan: kaki gajah

Pengobatan: albendazole
albenza
ivermectin
mebendazole
stromectol
penyakit dengan
6 Obat Penyakit:fever SESUAI
pengobatan paracetamol
Pengertian: infeksi virus yang
ditandai dengan ruam merah
pada kulit. Rubella umumnya
menyerang anak-anak dan
remaja. Menurut data WHO,
pada tahun 2016 di Indonesia
7 sakit rubella itu apa ya? terdapat lebih dari 800 kasus SESUAI
rubella yang sudah
terkonfirmasi melalui
pemeriksaan laboratorium.

Pengobatan: BayGam
GamaSTAN S/D
immune globulin intramuscular
8 apa obat tipus ? Pengobatan: chloramphenicol SESUAI
doxycycline
Sama dengan: typhoid
9 tipus sama dengan apa? typhus SESUAI
demam tifoid
tifoid

Universitas Sumatera Utara


53

Pengertian: kondisi keracunan


serius yang disebabkan oleh
racun yang dihasilkan bakteri
Clostridium botulinum.
Kondisi ini cukup langka, tapi
racun yang dihasilkan oleh
bakteri ini dikenal sebagai
salah satu racun yang paling
10 botulisme itu apa ya? berbahaya dan mematikan. SESUAI

Sama dengan: botulism

Pengobatan: babybig
botulism antitoxin
botulism immune globulin
penicillin g potassium
penicillin g sodium
pfizerpen

Pada tabel 4.1 dapat terlihat hasil pengujian menanyakan informasi penyakit dari sepuluh
pola pertanyaan yang diambil dapat menampilkan respons berupa hasil pencarian yang
sesuai dengan inputan dari pengguna.

Tabel 4.2 Hasil Pengujian Menanyakan Informasi Obat

No. Inputan Pengguna Respon Chatbot Hasil Percakapan


Sama dengan: brodspec
panmycin
sumycin
tetracap
Obat Penyakit: brucellosis
jelaskan tentang rickettsial infection
1 Inhalation Bacillus Anthracis SESUAI
vibramycin !
lyme disease
malaria
Produk BPOM terkait: soltrali
itracycline
ovabiotic
ovacyclin
apa produk dari obat Obat Penyakit:kaki gajah
2 TIDAK SESUAI
albenza ? filariasis

Universitas Sumatera Utara


54

obat ranitidine untuk


3 Obat Penyakit:yellow fever SESUAI
penyakit apa?
Sama dengan: paracetamol
cetafen
tylenol
4 paracetamol untuk apa Obat Penyakit: demam SESUAI
headache
Produk BPOM terkait:
paracetamol
panadol
Sama dengan: cleocin-pediatric
cleocin phospate
clindamycin

Obat Penyakit:group a
streptococcus infections
group b streptococcus
clindamycin untuk infections
5 SESUAI
penyakit apa malaria
staphylococcal

Produk BPOM terkait: biodasi


ethida
clinium
libroda
clinatic
6 obat herpes dan campak No Answer Found TIDAK SESUAI
omeprazole untuk sakit Obat Penyakit:helicobacter
7 SESUAI
apa pylori infection
acyclovir untuk Obat Penyakit:herpes simplex
8 SESUAI
pengobatan apa ? varicella zoster
gentamicin sama dengan
9 Sama dengan: garamycin SESUAI
obat apa
Nomor Registrasi:
dkl0033401101a1
Tanggal Terbit: 2014-11-10
doxycycline produknya Nama Produk: soltrali
10 SESUAI
apa Bentuk Sediaan: kapsul 500
mg
Komposisi: tetracycline
hydrochloride

Universitas Sumatera Utara


55

Kemasan: dus, 10 strip @ 10


capsul
Pendaftar: solas langgeng
sejagtera - indonesia - -

Nomor Registrasi:
dkl0033401101a1
Tanggal Terbit: 2014-11-10
Nama Produk: soltrali
Bentuk Sediaan: kapsul 500
mg
Komposisi: tetracycline
hydrochloride
Kemasan: dus, 10 strip @ 10
capsul
Pendaftar: solas langgeng
sejagtera - indonesia - -

Pada tabel 4.2 dapat terlihat hasil pengujian menanyakan informasi obat dari sepuluh pola
pertanyaan yang diambil dapat menampilkan delapan respons berupa hasil pencarian yang
sesuai dengan inputan dari pengguna.
Dari 20 kalimat yang telah diuji, didapatkan 18 kalimat yang menampilkan respons sesuai
dengan kebutuhan pengguna. Untuk menghitung persentase keberhasilan, digunakan rumus
berikut :
𝑗𝑢𝑚𝑙𝑎ℎ 𝑘𝑒𝑏𝑒𝑟ℎ𝑎𝑠𝑖𝑙𝑎𝑛 18
𝑃𝑒𝑟𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝑘𝑒𝑏𝑒𝑟ℎ𝑎𝑠𝑖𝑙𝑎𝑛 = × 100% = × 100% = 90%
𝑗𝑢𝑚𝑙𝑎ℎ 𝑘𝑎𝑙𝑖𝑚𝑎𝑡 𝑢𝑗𝑖 20
Maka persentase keberhasilan sistem chatbot ini sebesar 90%.
Hasil pengujian pada tabel 4.1 dan 4.2 membuktikan bahwa tahap preprocessing text yang
terdiri dari proses case folding, tokenizing, phrase detection, stemming dan filtering
mampu menghasilkan keyword untuk kemudian dikuerikan dengan SPARQL ke ontologi
untuk memperoleh informasi mengenai obat dan penyakit. Namun persentase keberhasilan
sebesar 90% menunjukkan bahwa sistem ini masih memerlukan penyempurnaan.
Kelengkapan kamus stopword, serta pemilihan query yang bersesuaian dengan keyword
sangat mempengaruhi hasil pencarian. Hal ini dapat ditunjukkan pada tabel 4.2 pada baris
2 dan 6, di mana hasil pencarian tidak bersesuaian dengan inputan pengguna.

Universitas Sumatera Utara


56

Hasil pengujian pada pencarian informasi obat dan penyakit menunjukkan bahwa data obat
dan penyakit yang dirancang dengan skema ontologi telah mampu menjelaskan suatu
informasi dan hubungan – hubungan yang berkaitan dengan suatu informasi. Hal ini dapat
ditunjukkan pada tabel 4.1 yang dapat menampilkan pengertian, penyakit yang sama serta
pengobatan dari inputan yang diberikan pengguna, dan pada tabel 4.2 yang dapat
menampilkan produk obat yang sama, produk BPOM terkait , serta hubungan obat dengan
penyakit dari inputan yang diberikan pengguna.

4.3.5 Perbandingan dengan Penelitian Terdahulu


Hasil penelitian dari sistem yang dibangun dapat dibandingkan dengan penelitian terdahulu
dengan judul “Aplikasi Pencarian Produk Obat-obatan yang Beredar Sesuai. Standar
BPOM Berbasis Web Semantik”. Hasil dari penelitian tersebut dapat melakukan pencarian
berdasarkan keluhan, nama produk dan nomor registrasi seperti pada gambar 4.18.

Gambar 4.18 Pencarian Obat BPOM Berdasarkan Keluhan pada Penelitian Terdahulu

Universitas Sumatera Utara


57

Hasil pencarian pada penelitian terdahulu jika memilih pencarian berdasarkan keluhan
“batuk”, dapat dilihat pada gambar 4.19.

Gambar 4.19 Hasil Pencarian Berdasarkan Keluhan pada Penelitian Terdahulu

Perbandingan hasil pencarian pada penelitian terdahulu dan penelitian ini dapat dilihat pada
gambar 4.19 dan 4.20. Pada penelitian terdahulu jika dilakukan pencarian obat berdasarkan
keluhan “batuk”, maka akan muncul informasi obat yang memiliki indikasi batuk,
sedangkan pada penelitian ini, akan ditampilkan pengertian dari batuk, penyakit yang sama
dengan batuk dan pengobatan dari penyakit tersebut, seperti gambar 4.20.

Gambar 4.20 Hasil Pencarian Informasi tentang Batuk

Universitas Sumatera Utara


58

Pada penelitian terdahulu jika mencari obat berdasarkan namanya akan muncul informasi
seperti pada gambar 4.21

Gambar 4.21 Hasil Pencarian Penelitian Terdahulu berdasarkan Nama Produk

Sedangkan pada penelitian ini jika dicari obat “albendazole” maka akan menampilkan hasil
pencarian berupa obat yang sama dengan albendazole serta penyakit dan obat BPOM yang
terkait dengan obat tersebut seperti gambar 4.22.

Gambar 4.22 Hasil Pencarian Informasi Obat Albendazole

Universitas Sumatera Utara


59

Hasil pencarian berdasarkan nama produk pada penelitian terdahulu menampilkan


informasi obat yang tersedia dari BPOM, sedangkan pada penelitian ini hasil pencarian
dapat menampilkan hubungan obat dengan penyakit tropis terkait dan produk BPOM
terkait. Pada penelitian ini untuk menampilkan informasi lengkap mengenai produk obat
seperti gambar 4.21, digunakan kata kunci “produk” seperti pada gambar 4.23.

Gambar 4.23 Hasil Pencarian Informasi Produk Albendazole

Universitas Sumatera Utara


BAB 5

KESIMPULAN DAN SARAN

Berdasarkan implementasi didapatkan beberapa kesimpulan, yaitu:


5.1 Kesimpulan

1. Perancangan data dengan skema ontologi dapat diimplementasikan sesuai dengan


perancangan.
2. Penggunaan semantic web berbasis ontologi memberikan hasil pencarian informasi
yang sesuai dengan inputan pengguna dengan persentase keberhasilan sebesar 90%.
3. Implementasi chatbot dapat melakukan case folding, tokenizing, phrase detection
stemming dan filtering terhadap inputan pengguna.
4. Keyword yang dihasilkan oleh preprocessing text menghasilkan keyword yang dapat
digunakan untuk pencarian informasi menggunakan SPARQL
5. Tingkat kesulitan pada pembangunan sistem adalah pada penyesuaian keyword dengan
query SPARQL.
6. Sistem ini dapat digunakan sebagai referensi untuk mendapatkan informasi obat dan
penyakit tropis berbahasa Indonesia

Universitas Sumatera Utara


61

5.2 Saran

Beberapa saran yang dapat menjadi pertimbangan dalam mengembangkan penelitian ini
adalah:
1. Untuk pengembangan selanjutnya, diharapkan sistem dapat menangani penyesuaian
terhadap hubungan SPARQL dengan proses Natural Language Processing untuk
mendapatkan query yang sesuai dengan inputan yang diberikan pengguna.
2. Untuk pengembangan selanjutnya, diharapkan sistem dapat melakukan pembaruan data
ontologi secara otomatis.
3. Dalam tahap preprocessing text, sebaiknya ditambahkan proses spelling correction
agar lebih baik dalam pemrosesan inputan jika terdapat kesalahan pengetikan.
4. Untuk pengembangan selanjutnya, sebaiknya chabot dapat memahami percakapan
sehari – hari agar lebih interaktif.

Universitas Sumatera Utara


62

DAFTAR PUSTAKA

Aghei, S. Nematbakhsh, M. & Farsani, H.K. 2012. Evolution of the World Wide Web :
From Web 1.0 to Web 4.0. International Journal of Web & Semantic Technology
3(1): 1–10.
Antoniou, G. & van Harmelen,F. 2004. A Semantic Web Primer. 2nd Edition. The
MIT Press: Massachusetts.
Ayuningtias, A. 2009. Implementasi Ontologi Web dan Aplikasi Semantik untuk Sistem
Sitasi Jurnal Elektronik Indonesia. Skripsi. Universitas Indonesia.
Badron, Y.M., Agus, F. & Hatta, H. R. 2017. Studi Tentang Pemodelan Ontologi Web
Semantik dan Prospek Penerapan pada Bibliografi Artikel Jurnal Ilmiah. Prosiding
Seminar Ilmu Komputer dan Teknologi Informasi, pp.164 – 169.
Bizer, C., dkk. 2009. DBpedia - A crystallization point for the Web of Data. Web
Semantics: Science, Services and Agents on the World Wide Web 7: 154–165.
Choudhury, N. 2014. World Wide Web and Its Journey from Web 1.0 to Web 4.0.
International Journal of Computer Science and Information Technologies 5(6):
8096–8100.
Kobilarov, G., dkk. 2009. Media Meets Semantic Web – How the BBC Uses DBpedia and
Linked Data to Make Connections. Prosiding. ESWC 2009 Heraklion Proceedings
of the 6th European Semantic Web Conference on The Semantic Web: Research
and Applications, pp. 723 – 737.
Lehmann, J., 2015. DBpedia – A large-scale, multilingual knowledge base extracted from
Wikipedia. Semantic Web 6: 167 – 195.
Malve, A. & Chawan, P. M. 2015. A Comparative Study of Keyword and Semantic
based Search Engine. International Journal of Innovative Research in
Science, Engineering and Technology 4(11): 11156–11161.
Pradnyana, I. N. P. 2011. Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik
Kompresi Data. Makalah IF3051-Strategi Algoritma. Institut Teknologi Bandung.

Universitas Sumatera Utara


63

R Ekaningtyas. 2014. Aplikasi Pencarian Produk Obat-obatan yang Beredar Sesuai Standar
BPOM Berbasis Web Semantik. Skripsi. Universitas Kristen Satya Wacana.
Taye, M. M. 2011. Web-Based Ontology Languages and its Based Description Logics. The
Research Bulletin of Jordan ACM 2(1): 1–9.
Vijayarani, S., & Janani, R. 2016. Text Mining: Open Source Tokenization Tools – An
Analysis. Advanced Computational Intelligence: An International Journal (ACII)
3(1): 37-47.
Yu, Liyang. 2014. A Developer’s Guide to the Semantic Web. 2nd Edition. Springer :
Atlanta.

Universitas Sumatera Utara


A-1

LAMPIRAN 1

LISTING PROGRAM

a. Fungsi hitung LPSArray

def hitungPinggiran(pat, M, lps):


x=0
i=1
while i < M:
if pat[i]==pat[x]:
x += 1
lps[i] = x
i += 1
else:
if x != 0:
x = lps[x-1]
else:
lps[i] = 0
i += 1

b. Fungsi KMP search

def KMPSearch(pat2, txt):


kata = pat2.split()
cleaned=[]
for q in range (len(kata)):
pat = kata[q]
M = len(pat)
N = len(txt)
lps = [0]*M
j=0
f=0
hitungPinggiran(pat, M, lps)
for x in range(N):
if pat[0]==txt[x][0]:
i=0
NN = len(txt[x])
while i < NN :

Universitas Sumatera Utara


A-2

if pat[j] == txt[x][i]:
i += 1
j += 1

if j == M:
if(pat == txt[x]):
j=0
f+=1
j = lps[j-1]

elif i < NN and pat[j] != txt[x][i]:


if j != 0:
j = lps[j-1]
else:
i += 1
if f==0:
cleaned.append(pat)
return(cleaned)

c. Pemrosesan kata dan Penkuerian pada web


@app.route('/')
def home():
return render_template("index.html")
@app.route('/about')
def about():
return render_template("about.html")
data = {
"results": {
"value": "No answer"
}
}
@app.route("/get")
def get_bot_response():
variable=""
userText = request.args.get('msg')
if(userText.strip() == ""):
return json.dumps(data)
tokened = tokenizer.tokenize(str.lower(userText)) # case folding dan tokenizing
mwed = Mwtokenizer.tokenize(tokened) # multiword grouping
stemmed = stemmer.stem(" ".join(mwed))
listKata = KMPSearch(stemmed,txt)
strList = " ".join(listKata)

Universitas Sumatera Utara


A-3

for kata in list(listKata):


if(kata == "obat"):
d1= re.search("(\w+) obat", strList)
d2 = re.search("obat (\w+)", strList)
if(d1!= None and d1.group(1) in kamusPenyakit):
variable = "med:pengobatan"
listKata.remove('obat')
elif(d2!= None and d2.group(1) in kamusPenyakit):
variable = "med:pengobatan"
listKata.remove('obat')
elif(d1!= None and d1.group(1) =="sama"):
variable="owl:sameAs"
listKata.remove('obat')
elif(d2!= None and d2.group(1) =="sama"):
variable = "owl:sameAs"
listKata.remove('obat')
else:
variable = "med:obatPenyakit"
listKata.remove('obat')
elif(kata in d.keys()):
variable = (d.get(kata))
listKata.remove(kata)
if(listKata != []):
ob = listKata[0]
sparql.setQuery("""PREFIX med:<http://localhost/ontologi#>
SELECT ?labelp WHERE {
?class rdf:type ?classp.
?classp rdfs:label ?labelp.
?class rdfs:label ?label.
filter(regex(str(?label),\""""+ob+"""\"))}
""")
sparql.setReturnFormat(JSON)
res2 = sparql.query().convert()
if(variable == ""):
queryString ="""
PREFIX med: <http://localhost/ontologi#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?arti ?labelp ?label WHERE{
{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?object1.
?object1 ?p ?object.
?object rdfs:label ?label.

Universitas Sumatera Utara


A-4

?p rdfs:label ?labelp.}
UNION{
med:"""+ob+""" med:pengertian ?arti.
med:pengertian rdfs:label ?labelp
}
}
"""
elif(variable == "owl:sameAs"):
queryString ="""
PREFIX med: <http://localhost/ontologi#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?labelp ?label WHERE{
med:"""+ob+""" ("""+variable+"""|^"""+variable+""") ?object.
?object rdfs:label ?label.
"""+variable+""" rdfs:label ?labelp.}
"""
elif(variable == "med:pengertian"):
queryString= """
PREFIX med: <http://localhost/ontologi#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?labelp ?arti WHERE{
med:"""+ob+""" med:pengertian ?arti.
med:pengertian rdfs:label ?labelp
}"""
elif(variable == "med:produkObat"):
queryString ="""
PREFIX med: <http://localhost/ontologi#>
SELECT ?label ?labelp WHERE{
{med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:nama_produk ?label.
med:nama_produk rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:komposisi ?label.
med:komposisi rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.

Universitas Sumatera Utara


A-5

?ob2 med:kemasan ?label.


med:kemasan rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:pendaftar ?label.
med:pendaftar rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:no_registrasi ?label.
med:no_registrasi rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:t_terbit ?label.
med:t_terbit rdfs:label ?labelp
}
UNION{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?ob.
?ob med:produkObat ?ob2.
?ob2 med:bentuk_sediaan ?label.
med:bentuk_sediaan rdfs:label ?labelp
}
}
"""
else:
queryString ="""
PREFIX med: <http://localhost/ontologi#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?labelp ?label WHERE{
med:"""+ob+""" (owl:sameAs|^owl:sameAs)* ?object1.
?object1 """+variable+"""+ ?object.
?object rdfs:label ?label.
"""+variable+""" rdfs:label ?labelp.}
"""
sparql.setQuery(queryString)
sparql.setReturnFormat(JSON)
res = sparql.query().convert()

Universitas Sumatera Utara


A-6

if(res['results']['bindings']!=[]):
return json.dumps(res)
else:
return json.dumps(data)
else:
return json.dumps(data)

if __name__ == '__main__':
app.run(debug=True)

Universitas Sumatera Utara


Taman Setiabudi Indah Blok
TT No. 23 Medan
+62 852 613 613 00
Patricia.ycss@ymail.com
https:/www.linkedin.com/i
n/patricia-sipahutar

PATRICIA YVETTE CLARISA SIPAHUTAR


EDUCATION
• High School | SMA Negeri 1 Medan
2011 – 2014
• Bachelor of Computer Science | Universitas Sumatera Utara
2014 – 2018
GPA : 3.83

EXPERIENCE
• Internship | PT. Telekomunikasi Indonesia, Tbk. DIVRE 1, Medan Region
07 AUGUST 2017 – 28 AUGUST 2018
• Web Development
Real – Time device tracking display with Google Maps API
• Android Mobile Development
Developing android app to scan barcode
Improving geolocation positioning app for automatic data insertion through
background services

Universitas Sumatera Utara


B-2

ORGANIZATION EXPERIENCE
Volunteer | Sahabat Beasiswa untuk Negeri 2014
Committee Treasurer | Sahabat Beasiswa untuk Negeri 2015
Staff of Research and Technology Division |
PEMA Fasilkom – TI USU
2015 – 2016
Head of Academic Counseling in Reasearch and Technology Division |
PEMA Fasilkom – TI USU
2016 – 2017

SKILLS
Android Development – Advanced Python – Advanced
Web Development – Advanced Java – Intermediate
Data Science – Basic C# – Intermediate
Semantic Web – Basic MySQL – Advanced
LANGUAGE
• Indonesia (Native)
• English
SEMINAR, WORKSHOP, TRAINING
Seminar Nasional Literasi Informasi
USU | 1 Desember 2014, Medan – Indonesia
Workshop on Social Entrepreneurship
Asean Young Sociopreneur Program | 17 September 2015, Yogyakarta –
Indonesia
Game Development using Unity
Microsoft Student Partner | 7 November 2015, Medan – Indonesia
Leadership Development Training
AFS Bina Antarbudaya | 20 November 2016, Medan – Indonesia
Global Inspiring Seminar of Indonesia Next Program 2016
Telkomsel | 14 November 2016, Medan – Indonesia
Workshop “An Introduction to Design Thinking and Product
Development”
The Collab Folks | 5 April 2017, Singapore
Seminar Nasional Artechno
Artechno | 10 – 12 Oktober 2017, Medan – Indonesia

Universitas Sumatera Utara


B-3

Educational Trip to Digital Companies in Singapore with PT. Telkomsel


Telkomsel | 3 – 8 April 2017, Singapore
Android Basic: User Interface & Android Basic: User Input
Google Developers | April – May 2017, Medan – Indonesia
Professional Certification Development Program conducted by
IndonesiaNEXT 2017
Telkomsel | 3 Oktober 2017, Medan – Indonesia
HONORS AND AWARDS
Semifinalist Asean Young Sociopreneurship Program 2015
August 2015
Microsoft Technology Associate: Database Fundamentals – Microsoft
Nov 2016 – Lifetime
Licence F888-9126
Microsoft Technology Associate: Software Development Fundamentals –
Microsoft
Nov 2016 – Lifetime
Licence F888-0494
Associate Android Developer – Google Developers
May 2018 – May 2021
License 11580763
ICT Project Manager – Lembaga Sertifikasi Profesi Informatika
Dec 2016 – Dec 2019
License 62020 2139 0000221 2016
The Best 12 Talents Telkomsel Indonesia Next 2016
November 2016
Udacity Associate Android Fast Track Scholarship
June – October 2017
Top 25 Asean Young Sociopreneurship Program 2017
September 2017
Finalist Artechno Bisnis TIK
Oktober 2017
Bertelsmann Data Science Challenge Scholarship
May – August 2018

Universitas Sumatera Utara

Anda mungkin juga menyukai