Universitas Sumatera Utara
Universitas Sumatera Utara
SKRIPSI
SKRIPSI
PERSETUJUAN
Diluluskan di
Medan, 10 Agustus 2018
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
PERNYATAAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
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.
Penulis
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.
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.
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
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
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
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Listing Program ............................................................................. A-1
Lampiran 2 Curriculum Vitae ........................................................................... B-1
PENDAHULUAN
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.
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.
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.
Manfaat yang diperoleh dari penelitian ini adalah meningkatkan efisiensi pencarian
informasi obat dengan adanya knowledge base yang dibentuk dengan ontologi dan RDF
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.
LANDASAN TEORI
• 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).
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
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 :
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
xlmns:prefix= “URI”
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
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
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
<?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
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.
• 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.
• 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.
• 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>
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
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++
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.
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.
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.
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.
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.
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:
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.
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.
sebagai class yang tidak memiliki subclass. Rancangan class, subclass dan hierarkinya
dapat digambarkan oleh gambar 3.3.
• 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.
• 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
• 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.
Apa
apa
Obat
obat
Untuk
untuk
Penyakit
penyakit
Demam
demam berdarah
Berdarah
Pengobatan Obat
Penyakit Sakit
Apakah Apa
• 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.
• 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.
SELECT ?nama
WHERE
{
<http://example.org#penyakit> <http://example.org#namaPenyakit > ?nama .
}
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.
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.
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
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
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.
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.
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
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.
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
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.
Obat Penyakit:group a
streptococcus infections
group b streptococcus
clindamycin untuk infections
5 SESUAI
penyakit apa malaria
staphylococcal
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.
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.
Gambar 4.18 Pencarian Obat BPOM Berdasarkan Keluhan pada Penelitian Terdahulu
Hasil pencarian pada penelitian terdahulu jika memilih pencarian berdasarkan keluhan
“batuk”, dapat dilihat pada gambar 4.19.
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.
Pada penelitian terdahulu jika mencari obat berdasarkan namanya akan muncul informasi
seperti pada gambar 4.21
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.
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.
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.
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.
LAMPIRAN 1
LISTING PROGRAM
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]
?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.
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)
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
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