Download - Naskah publikasi amikom chatbot
-
7/24/2019 Naskah publikasi amikom chatbot
1/20
PEMANFAATAN STRUCTURED QUERY LANGUAGE
DALAM MEMBANGUN CHATBOTBERBASIS
PATTERN-MATCHING
NASKAH PUBLIKASI
diajukan oleh
Ayu Mutiara Oktavia Dewi
10.11.4391
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTA
YOGYAKARTA
2014
-
7/24/2019 Naskah publikasi amikom chatbot
2/20
NASKAH PUBLIKASI
-
7/24/2019 Naskah publikasi amikom chatbot
3/20
PEMANFAATAN STRUCTURED QUERY LANGUAGEDALAM MEMBANGUN CHATBOTBERBASIS
PATTERN-MATCHING
UTILIZATION OFSTRUCTURED QUERY LANGUAGE
FOR DEVELOPING PATTERN-MATCHING BA SED
CHATBOT
Ayu Mutiara Oktavia DewiBayu Setiaji
Jurusan Teknik InformatikaSTMIK AMIKOM Yogyakarta
ABSTRACT
Chatbot is one of the applications in the field of Natural Language Processing(NLP) which can have a conversation with a human. Chatbot allows interaction betweenhumans and computers can be done with natural language through the medium of writingor sound. One way that is used in text processing in chatbot the pattern matching .Patterns that may be found during the conversation as knowledge stored in plain text ordatabase.
Structured Query Language or SQL is a language used to manipulate data in aRelational Database Management System or RDBMS . Storage of pattern in theknowledge that allows the use of SQL to handle pattern matching process in the chatbotengine.
The results of the research is adabase as a core that contains tables as theknowledge structure and stored programs for pattern matching process . Core can be
used for chatbot application development by using a wide variety of programminglanguages .
Keywords :chatbot, pattern matching, RDBMS, SQL, stored program
-
7/24/2019 Naskah publikasi amikom chatbot
4/20
1
1. Pendahuluan
Chatbot adalah aplikasi yang memungkinkan komunikasi antara mesin dengan
manusia dilakukan menggunaan bahasa alami. Aplikasi ini memiliki pengetahuan yang
sudah terprogram terlebih dahulu. Salah satu cara yang digunakan dalam proses
penelusuran pengetahuan selama proses percakapan adalah dengan pencocokan pola
(pattern-matching). Chatbot akan mencocokkan input kalimat dari lawan bicara (user)
dengan pola (pattern) yang ada dalam pengetahuannya. Setiap pattern berpasangan
dengan respon yang harus diberikan (template). Jika pola cocok maka chatbot akan
memberikan template yang bersesuaian sebagai respon kepada user. Pasanganpattern-
template sebagai pengetahuan utama chatbot tersimpan sebagai plain-text, basis data
(database), atau format yang lain.
Aplikasi BotQA (Utami, 2007) adalah salah satu contoh chatbotstandaloneyang
menggunakan pattern-matching. Aplikasi ini menyimpan pengetahuannya dalam format
plain-text.Selama proses percakapan bila ada patternyang belum dikenali maka secara
otomatis BotQA akan menyimpan sebagai pengetahuan baru.
Contoh lain adalah chatbot berbasis AIML (Artificial Ingelligence Markup
Language) yang memiliki pemrosesan pengetahuan secara modular (Setiaji, 2013).
Sistem ini berupa web service yang dapat diakses oleh banyak client. Pola pola
percakapan sebagai pengetahuan bahasa tersusun dalam format AIML yang tersimpan
dalam database. Sistem ini dapat ditambahkan modul pengetahuan spesifik yang
terpisah. Penggunaan database MySQL dalam chatbot ini hanya sebatas untuk
penyimpanan pengetahuan. Semua kode untuk keperluanpattern-matchingditulis dalam
bahasa PHP sehingga untuk membuat service dalam bahasa yang lain harus ditulis
ulang kodenya.
Penyimpanan pattern-template sebagai pengetahuan dalam Relational Data
Base Management System (RDBMS), atau database, memungkinkan penggunaan
Structured Query Language (SQL) untuk menangani proses pattern-matching. Dalam
RDBMS sudah tersedia banyak built-in function atau procedure dan dapat dibuat user-defined strored program yang dipanggil menggunakan SQL. Hal ini memungkinkan
banyak bahasa pemrograman dapat mengimplementasikannya dengan mudah karena
cukup melakukan query ke database untuk mengirim input user dan menerima respon
yang diberikan.
Hasil akhir penelitian ini adalah sebuah core chatbotberupa databaseyang berisi
tabeltabel sebagai representasi pengetahuan dan sekumpulan strored programuntuk
pemrosesan pattern-matching. Database ini dapat dimanfaatkan oleh banyak bahasa
pemrograman untuk membangun aplikasi chatbotsesuai kebutuhan.
-
7/24/2019 Naskah publikasi amikom chatbot
5/20
2
Berdasar uraian di atas dapat diambil beberapa rumusan masalah sebagai
berikut.
1. Bagaimana merancang dan membuat representasi pengetahuan dalam tabel
tabel di database?
2. Bagaimana memanfaatkan Structured Query Language dalam operasi pattern-
matchingdi database?
3. Bagaimana membangun aplikasi chatbot untuk beberapa bahasa pemrograman
yang memanfaatkan databasesebagai core-nya?
2. Landasan Teori
2.1 Chatbot
Chatterbot atau chatbot secara harfiah berasal dari dua kata yaitu chat yang
berarti obrolan dan bot sebagai singkatan dari kata robot yang berarti pekerja. Dalam
dunia komputer makna dari chat sendiri adalah cara komunikasi yang dilakukan melalui
sarana baris baris tulisan. Sedangkan bot, yang sering dikenal juga sebagai agent,
adalah program yang mengandung sejumlah data yang akan memberi jawaban jika
diberikan masukan (Utami, E, dkk., 2007).
Pada mulanya chatbot adalah program komputer yang mensimulasikan
percakapan secara tertulis yang membuat manusia seakan akan sedang bercakap
cakap dengan orang lain (www.simonlaven.com).
Untuk dapat mengerti bahasa manusia chatbot menggunakan kecerdasan
buatan dalam bentuk engine yang dilengkapi dengan kemampuan komputasi linguistik.
2.2 Pattern Matching
Berdasar pengertian yang tetulis di Wikipedia
(http://en.wikipedia.org/wiki/Pattern_matching, diakses pada November 28, 2013, 18.58)
dikatakan bahwa dalam ilmu komputer, pencocokan pola (pattern-matching atau string-
matching) adalah kegiatan pemeriksaan serangkaian token yang diberikan untuk
menemukan beberapa pola yang konstituen dalam string. Berbeda dengan pengenalan
pola, kecocokan dalam pattern matching harus tepat.
Sebagai contoh adalah fasilitas search pada editor teks. Misalnya akan dicari pola
hai maka akan ditemukan pada kata kata aduhai, Thailand, wahai dan lain lain.
2.3 Bigram
Dalam kamus Oxford bigramadalah kata benda sebagai istilah di bidang linguistik
yang memiliki arti sepasang unit yang tertulis berurutan, berupa huruf, suku kata, atau
-
7/24/2019 Naskah publikasi amikom chatbot
6/20
3
kata. Berikut ini adalah contoh bigramyang merupakan pasangan 2 huruf dari sebuah
string.
string: minnion
bigram: {mi, in, nn, ni, io, on}
2.4 Sentence Similarity Measurement (SSM)
SSM adalah perhitungan tingkat kemiripan antara dua kalimat atau string. Skor
yang dihasilkan dari perhitungan similarityadalah berupa bilangan real 0 sampai 1.
Dalam kaitannya dengan penggunaan bigramdapat dibuat sebuah rumus sederhana
untuk menghitungnya. (Dewi, 2014)
Berikut ini adalah rumus yang digunakan.
()()
()() .......(1)
Penjelasan dari rumus (1) di atas adalah sebagai berikut :
1. b1adalah himpunan bigramyang dihasilkan dari string pertama dan b2adalah
himpunan bigram yang dihasilkan dari string kedua.
2. ( )adalah operasi himpunan untuk jumlah setiap bigramdi b1 yang
merupakan anggota bigram di b2. Demikian sebaliknya untuk ( ).
3. ()adalah jumlah bigramyang ada di b1. Demikian sebaliknya untuk
().
Berikut ini adalah contoh penggunaan rumus (1) di atas :
string1: mutiara
string2: mutiarra
b1 = {mu, ut, ti, ia ar, ra}
b2 = {mu, ut, ti, ia, ar, rr, ra}
= {mu,ut,ti,ia, ar, ra}
= {mu,ut,ti, ia, ar, ra}
Maka diperoleh nilai similarityuntuk string1 dan string2:
2.5 Structured Query Language (SQL)
Structured Query Language(SQL) adalah salah satu bahasa generasi ke-4 yang
awalnya dikembangkan oleh IBM di San Jose Research Laboratory. Berbeda dengan
bahasa pemrograman level ke-3 SQL adalah bahasa yang bersifat request oriented dan
-
7/24/2019 Naskah publikasi amikom chatbot
7/20
4
bersifat non-prosedural sehingga lebih mudah untuk dipelajari karena sintaksis yang
digunakan hampir menyerupai bahasa yang digunakan oleh manusia untuk
berkomunikasi. Oleh karena itu, SQL lebih fleksibel dalam penggunaannya. Selain itu,
SQL juga bersifat non case sensitive. Banyak vendor pembuat DBMS Database
Management System) yang saat ini menggunakan SQL sebagai standarisasi dalam
produk mereka, seperti ORACLE, Microsoft SQL Server, PostGreSQL, dan MySQL.
(Arief, 2006)
3. Perancangan
3.1 Gambaran Umum
Penelitian ini menggunakan skor sentence-similarity measurement untuk
mendapatkan tingkat kemiripan antara input dengan pattern yang semua prosesnya
terpusat di RDBMS.
Sebelum masuk proses perancangan perlu diketahui terlebih dahulu gambaran
umum arsitektur chatbot dalam penelitian ini secara menyeluruh. Skema chatbot dapat
dilihat pada Gambar 1 di bawah ini.
Gambar 1Gambaran umum chatbot
Gambar 3.2 menjelaskan bahwa chatbot terdiri dari core dan interface yang
mengakses core tersebut. Core berada di RDBMS berupa database yang di dalamnya
berisi tabel tabel untuk menyimpan pengetahuan dan interpreter dalam bentuk stored
programyang berisi sekumpulan fungsi dan prosedur untuk keperluan pattern-matching.
Interface dapat berupa aplikasi standalone yang dapat langsung digunakan oleh user
untuk obrolan, atau service yang membutuhkan aplikasi client tambahan untuk
melakukan percakapan dengan user. Aplikasi pada sisi interface dapat dikembangkan
sesuai kebutuhan dan dapat ditulis menggunakan bahasa pemrograman apapun.
chatbot
Core: RDBMS
stored programs
interpreter
tables
table
interface
standalone
service
others..
client
user
user
user
-
7/24/2019 Naskah publikasi amikom chatbot
8/20
5
3.2 Analisis dan Rancangan
3.2.1 Identifikasi Masalah
Fokus penelitian adalah pada pengembangan core chatbot yang berada pada
sisi RDBMS yang meliputi penyimpanan pengetahuan dan proses pattern-matching.
Gambaran umum skema core chatbot berkaitan dengan proses percakapan terlihat
dalam Gambar 2 berikut ini.
Gambar 2 Skema Core
Berdasar Gambar 2 di atas core chatbot terdiri dari beberapa komponen yaitu:
1. tables, berupa tabel tabel utama sesuai skema dan tabel tabel pendukung
yang tidak tergambar dalam skema:a. spellcheck, menyimpan daftar kata salah eja yang mungkin menjadi input
userbeserta pembetulannya.
b. keyword,menyimpan daftar kata kunci yang mungkin ditemukan dalam
input user. Kata kunci digunakan untuk mempersempit jangkauan
pencarianpattern.
c. pattern, menyimpan pasangan pattern-template sebagai pengetahuan
utama. Setiap satu pattern dapat berpasangan dengan satu atau lebih
template demikian sebaliknya setiap satu template dapat berpasangan
dengan satu atau lebih patternsehingga nantinya akan dipecah menjadi
tiga table yaitu;
i. pattern untuk menyimpan pattern yang berisi patternid dan
pattern
ii. template untuk menyimpan template yang berisi templateid dan
template
iii. pattern-template sebagai table yang menghubungkan dua tabel
di atas.
-
7/24/2019 Naskah publikasi amikom chatbot
9/20
6
d. convlog, menyimpan history percakapan yang memuat sessionid, waktu,
input user, dan respon yang diberikan kepada user.
e. session, menyimpan atribut atribut sebuah sesi percakapan meliputi
sessionid, nama user, dan atribut yang lain.
f. array, tabel temporer di luar tabel tabel utama, digunakan sebagai
representasi struktur data array. Tabel ini hanya pendukung untuk
keperluan operasi internal fungsi fungsi yang membutuhkan operasi
array.
g. tid, tabel pendukung untuk proses id generator bagi tabel tabel lain
yang membutuhkan. Berisi id sebagai nama id, counter sebagai
pencacah id, dan rtable sebagai referensi nama tabel yang
menggunakan.
2. stored programs, berupa stored procedure dan stored function untuk keperluan
pattern-matchingterdiri dari:
a. normalizer, berupa fungsi untuk menormalkan input user yaitu
membetulkan ejaan, menghilangkan tanda baca, dan mengubah ke
lower case.
b. matcher, sebagai fungsi utama dalam pattern-matching untuk mencari
template yang sesuai berdasar skor sentence-similarity measurement
antara input dengan pattern. Sebelum proses pattern-matching
dilakukan, terlebih dahulu dilakukan pengambilan kewordterhadap input
sehingga hanyapatternpatterndengan keywordyang sama saja yang
akan dicocokkan.
c. logger, prosedur yang bertugas menyimpan history percakapan yang
berupa input user dan respon yang diberikan.
d. array, berupa sekumpulan fungsi dan prosedur untuk tabel array yang
digunakan untuk operasi internal 3 proses utama yang sudah dijelaskan
sebelumnya. Fungsi dan prosedur array meliputi:
i. array_intersect(), prosedur untuk operasi interseksi 2 array
ii. array_push(),proseduruntuk operasipush elemen ke array
iii. array_pop(), fungsiuntuk operasipopelemen dari array
iv. array_count(), fungsi untuk menghitung jumlah elemen dalam
array
v. array_clear(), prosedur untuk membersihkan isi array
vi. bigram, prosedur untuk menyusun bigram dari suatu string.
-
7/24/2019 Naskah publikasi amikom chatbot
10/20
7
3.3 Rancangan
3.1.1.1 Tabel
Berdasar identifikasi masalah yang sudah dijelaskan pada sub bab sebelumnya
diperoleh beberapa tabel untuk proses normalisasi input dan pattern-matching beserta
tabeltabel pendukung lainnya.
1. Tabel spellcheck, digunakan untuk menyimpan daftar kata salah beserta
pembenarannya.
2. Tabel keyword, menyimpan daftar kata kunci yang mungkin ditemukan pada
input user.
3. Tabelpattern, menyimpanpattern.
4. Tabel template menyimpan template.
5. Tabelpattern_template, sebagai penghubung antara tabelpattern dan template.
6. Tabel convlog, menyimpan history percakapan.
7. Tabel session, menyimpan atributatribut sesi percakapan
8. Tabel array, sebagai representasi struktur data array.
9. Tabel tid, penyimpan pencacah id generator.
Relasi antar tabel yang sudah dideskripsikan di atas digambarkan dalam diagram
ER seperti pada Gambar 3 berikut ini.
Gambar 3Diagram ER
-
7/24/2019 Naskah publikasi amikom chatbot
11/20
8
Gambar 3 di atas menunjukkan bahwa tabel tabel pattern, template,
pattern_template, spellcheck, keywords, session, dan convlog masuk dalam kelompok
tabel utama. Sedangkan sisanya adalah masuk dalam kelompok tabel pendukung.
Diagram ER tersebut dibuat menggunakan MySQL Workbench 6 yang dapat
langsung diimplementasikan ke bentuk tabel melalui forward engineering.
3.1.1.2 Stored Program
3.1.1.2.1 Normalizer
Normalizerdigunakan untuk menormalkan input sebelum diproses oleh matcher.
Proses ini diimplementasikan dalam fungsi normalize(), di dalamnya terdapat 3 sub
proses yaitu:.1. Mark removal, yaitu penghilangan tanda baca berupa titik (.), koma (,), tanda
tanya (?), tanda seru (!), colon (:), dan semicolon (;). Berikut ini adalah
pseudocode mark removal yang diimplementasikan dalam fungsi remmark().
1. FUNCremmark(input: STRING): STRING2. BEGIN
3. REPLACE ? IN input WITH 4. REPLACE ! IN input WITH 5. REPLACE ; IN input WITH 6. REPLACE : IN input WITH 7. REPLACE . IN input WITH 8. REPLACE , IN input WITH
9. remmark input10. END
2. Extraspace removal, yaitu penghilangan spasi yang berlebihan (extraspace).
Extraspace(termasuk tab) akan digantikan dengan spasi tunggal. Bila ada spasi
di awal atau akhir input maka akan dihilangkan. Berikut ini adalah pseudocode
extra spaces removal yang diimplementasikan dalam fungsi remxspaces().
1. FUNCremxspace(input: STRING): STRING2. BEGIN
3. rstr TRIMinput4. REPEAT
5. c rstr REGEXP{\s\s+}6. IFc = TRUETHEN
7. rstr REPLACE{\s\s} INrstrWITH{\s}8. END IF9. UNTIL c = FALSE
10. remxspace rstr11.END
3. Spell correction, yaitu membetulkan kata yang salah tulis dan menggantikannya
dengan kata yang benar. Berikut ini adalah pseudocode spell correction yang
diimplementasikan dalam fungsi spellcorrection().
-
7/24/2019 Naskah publikasi amikom chatbot
12/20
9
1. FUNCspellcorrection(input: STRING): STRING2. BEGIN
3. cstr input
4. RS SELECT missspelling, correction FROM spellcheck5. WHILE NOT EOF(RS) DO6. IF(cstrREGEX RS.missspelling) = TRUETHEN7. REPLACE RS.missspelling INcstrWITHRS.correction8. END IF9. END WHILE
10. spellcorrection cstr11.END
3.2.2.2.2 Matcher
Matcher adalah fungsi utama dalam pattern-matching. Proses pencarian
menggunakan perhitungan skor tertinggi sentence-similarity measurement antara inputdan pattern yang ada. Berikut ini adalah pseudocode matcher yang diimplementasikan
dalam fungsi gettemplate().
1. FUNC gettemplate(input: STRING): STRING2. BEGIN
3. kw getkeyword(input)
4. RS SELECTpattern_id, pattern5. FROMpatternWHEREpattern REGEXPkw
6. idmax
7. simmax 08. WHILE NOT EOF(RS) DO
9. sim similar(input, RS.pattern)
10. IFsim > simmax THEN11. simmax sim
12. idmax RS.pattern_id13. END IF14. END WHILE
15. templ SELECTt.template16. FROMtemplate t, pattern_template pt16. WHEREpt.template_id = t.tempate_idAND17. pt.pattern_id = idmax18.
19. gettemplate templ20. END
Berdasar pseudocode di atas terdapat pemanggilan fungsi similar() untuk
menghitung skor SSM dalam fungsi gettemplate(). Rumus perhitungan skor SSM
menggunakan bigram telah dijelaskan pada bahasan sebelumnya. Berikut ini adalah
pseudocode perhitungan skor SSM yang diimplementasikan dalam fungsi similar().
1. FUNCsimilar(str1: STRING, str2: STRING): FLOAT
2. BEGIN
3. bigram(str1, b1)
4. bigram(str2, b2)
5. array_intersect(b1, b2, b12)
6. array_intersect(b2, b1, b21)
7. c1 array_count(b1)
8. c2 array_count(b2)
-
7/24/2019 Naskah publikasi amikom chatbot
13/20
10
9. c12 array_count(b12)
10. c21 array_count(b21)
11. similar (c12+c21)/(c1+c2)12. END
3.2.2.2.3 Logger
Logger digunakan untuk proses menyimpan history sesi percakapan tiap user.
History percakapan tersimpan dalam tabel log. Proses ini diimplementasikan dalam
prosedur writelog(). Berikut ini adalahpseudocode untuk writelog().
1. PROCwritelog(sessid: STRING, input: STRING, resp:STRING)2. BEGIN
3. INSERT INTOlog(session_id, timestamp, input, response)4. VAlUES(sessid, NOW(), input, resp)5. END
3.2.2.2.4 Controller
Controller adalah penghubung antara core dengan aplikasi pada sisi interface. Di
sini terdapat pemanggilan normalizer, matcher, dan loggersecara berurutan. Berikut ini
adalahpseudocode contoroller yang diimplementasikan dalam fungsi getresponse().
1. FUNCgetresponse(input: STRING, sessid:STRING): STRING2. BEGIN
3. input normalize(input)
4. templ gettemplate(input)5. writelog(sessid, input, templ)
6. getresponse templ7. END
Fungsi getresponse() seperti digambarkan dalam pseudocode di atas akan
dipanggil oleh aplikasi untuk mengirim input dari userdan menerima respon dari core.
4. Pembahasan
4.1 Implementasi
Seluruh rancangan yang berupa tabel tabel dan stored program akan
diimplementasikan dalam RDBMS MySQL versi 5 dengan nama database t iara.
Pembuatan diagram ER untuk perancangan pada bab sebelumnya sampai implementasi
ke dalam database menggunakan tool MySQL Workbench 6. Tampilan MySQL
Workbench 6.
4.1.1 Tabel
Pembuatan table dapat langsung dilakukan dari diagram ER yang sudah dibuat
sebelumnya menggunakan teknik forward engineering. Teknik ini akan men-generate
diagram ER menjadi scriptDDL yang nantinya dapat dieksekusi untuk pembuatan tabel.
Sebelum melakukan forward engineering diagram ER yang sudah dibuat harus dibuka
-
7/24/2019 Naskah publikasi amikom chatbot
14/20
11
terlebih dahulu. Gambar 4 berikut ini adalah tabel tabel yang terbentuk dari proses
forward engineering.
Gambar 4 Tabeltabel Hasil Forward Engineering
Berdasar Gambar 4 di atas terbentuk 10 tabel sebagai representasi pengetahuan
core chatbotbeserta pendukungnya.
4.1.2 Stored Program
Tahap ini adalah proses penulisan kode stored procedure dan stored function
untuk prosespattern-matchingdan pendukungnya sesuai dengan rancangan yang sudah
dibuat sebelumnya. Gambar 5 berikut ini menunjukkan keseluruah stored program yang
sudah tersimpan dalam database.
Gambar 5Stored Programs
-
7/24/2019 Naskah publikasi amikom chatbot
15/20
12
Gambar 5 di atas menunjukkan stored program terdiri dari beberapa function dan
stored procedure yang digunakan dalam prosespattern-matching dan pendukungnya.
4.2 Pengujian
4.2.1 Normalizer
Berikut ini adalah hasil pengujian beberapa stored program dalam normalizer.
Tabel 1Hasil Pengujian Fungsi remmarks()
No Input Hasil
1 Halo, apa kabar Halo apa kabar
2 Sekarang hari apa? Sekarang hari apa
3 Sekarang hari Minggu. Sekarang hari Minggu
4 Senin; Selasa; Rabu Senin Selasa Rabu
5 Tanda Seru!! Tanda Seru6 Next: continue Next continue
7 Under_score Under_score
8 Stripped-line Stripped-line
Tabel 1 di atas menunjukkan bahwa pengujian nomor 7 dan 8 menghasilkan
string yang sama dengan input karena dalam fungsi remmarks() tanda underscore (_)
dan minus (-) tidak dimasukkkan dalam daftar tanda yang dihilangkan.
Tabel 2Hasil Pengujian Fungsi remxspaces()
No Input Hasil
1 Halo, apa kabar Halo,apa kabar2 Halo Halo
Berdasar Tabel 2 di atas fungsi remxspaces()sudah dapat menghilangkan tanda
spasi yang lebih dari satu termasuk tabseperti ditunjukkan pada pengujian nomor 1.
Tabel 3Hasil Pengujian Fungsi spellcorrection()
No Input Hasil
1 Halo pa kbr Halo apa kabar
2 Km sdh tau blum Kamu sudah tahu belum
3 Brp jml bintang di langit Berapa jml bintang di langit
4 Aq ga tau Aku ga tahu
Berdasar Tabel 3 di atas pengujian nomor 3 fungsi spellcorrection() tidak dapat
membetulkan ejaan jml menjadi jumlah karena kata jml dan pembetulannya jumlah
belum tersimpan dalam tabel missspelling.
Tabel 4Hasil Pengujian Fungsi normalize()
No Input Hasil
1 Hai. pa kbr? Hai apa kabar
2 Hitung! Brapa: 2+3 Hitung Berapa 2+3
3 Jarak jauh sekali Jarak jauh sekali
-
7/24/2019 Naskah publikasi amikom chatbot
16/20
13
Berdasar Tabel 4 di atas hasil pengujian identik dengan pengujian pengujian 3 fungsi
sebelumnya.
4.2.2 Matcher
Berikut ini adalah hasil pengujian beberapa stored program dalam matcher.
Tabel 5Hasil Pengujian Fungsi getkeyword()
No Input Hasil
1 Apa kabar kamu [[::]]
2 Sekarang hari apa [[::]]
3 Benarkah 1+1=2 .
4 Di mana ibukota Indonesia .
Berdasar Tabel 5 di atas pengujian nomor 1 dan 2 menghasilkan pola regular
expression. Sedangkan percobaan 3 menghasilkan titik (.) karena dalam string input tidak
ditemukan keywords. Percobaan 4 juga menghasilkan titik (.) walaupun keywords di
mana tersimpan dalam tabel keywords tetapi ketika dicocokkan ulang dengan pattern
pada tabelpatterntidak ditemukanpatternyang mengandung kata di mana.
Tabel 6Hasil Pengujian Fungsi similar()
NoInput
Skor1 2
1 siapa namamu siapa namamu 1
2 siapa namamu namamu siapa 0,818183 siapa namamu siapa nama kamu 0,92000
4 siapa namamu siapa sih namamu 0,88461
5 siapa namamu siapa nama anda 0,80000
6 siapa namamu test 0
Tabel 6 menunjukkan input 1 berupa string yang sama sedangkan input 2 adalah
variasinya. Percobaan 1 menghasilkan skor 1 karena input 1 dan 2 sama persis.
Percobaan 6 menghasilkan skor 0 karena kedua input berbeda sama sekali.
Tabel 7Hasil Pengujian Fungsi gettemplate()
No Input Hasil
1 Apa kabar? Kabar baik
2 Apa kabar? Baik
3 Apa kabar? Alhamdulillah kabar baik
4 Apa kabar? Baik
5 Sekarang hari apa? Hari {day} sepertinya
6 Hari apa sih sekarang? Sekarang hari {day}
7 Di mana ibukota Indonesia? Namaku TIARA
8 Ibukota Indonesia di mana? Namaku TIARA
9 Hitung 4+5! Aku tidak bisa berhitung
10 Kamu pintar No komen
11 Kamu pintar Hmmm..
12 Kamu pintar Pasti
-
7/24/2019 Naskah publikasi amikom chatbot
17/20
14
Berdasar Tabel 7 dapat dilihat bahwa pengujian 1 sampai 4 menghasilkan variasi
respon yang berbeda dari input yang sama. Input pengujian 5 dan 6 berbeda tetapi
mengandung arti yang sama dan menghasilkan respon dengan arti yang sama. String
{day} pada respon pengujian 5 dan 6 adalah variabel yang memiliki nilai hari sekarang.
Pengujian 7 dan 8 menghasilkan respon yang tidak sesuai karena belum ada pattern
bersesuaian yang tersimpan.
4.2.3 General
Pengujian general dilakukan terhadap fungsi getresponse()sebagai fungsi utama
yang digunakan dalam proses chat. Fungsi adalah jembatan antara core dengan user
interface yang ditulis dengan beragam bahasa pemrograman. Pengujian fungsi
getresponse().
Fungsi getresponse() memiliki 2 argumen yaitu identitas sesi percakapan dan
input percakapan. Tabel 8 berikut ini menunjukkan hasil pengujian fungsi getresponse().
Tabel 8Hasil Pengujian Fungsi getresponse()
No Id. Sesi Input Respon
1 XX123 Halo Halo juga
2 XX123 Apa kabar? Kabar baik
3 XX123 Masih ingat namaku? Tentu. Namamu Anonim kan?
4 XX123 Namaku Ayu O ya namamu Ayu
5 XX123 Betul Apanya?
6 XX123 Yang tadi Sudah lupa tuh
7 XX555 Masih ingat namaku kan? Tentu
8 XX555 Siapa coba namaku? Tentu. Kamu Anonim kan?
9 XX555 Namaku Dewi Ketemu lagi Dewi
10 XX555 Ah sudahlah.. Hmm..
11 XX555 Aku mau bertanya Silakan
12 XX555 Sekarang hari apa? Hari Senin sepertinya.
13 XX555 Ngobrol yang lain yuk No komen
14 XX555 Kenapa? Aku biasa dipanggil TIARA
15 XX555 Kenapa? Namaku TIARA
16 XX555 Sudah tau Ya
17 XX555 Bagaimana cuaca Jogja? Sepertinya hari ini Jogja hujan
18 XX555 TIARA cantik No komen..19 XX555 Assalamualaikum Waalaikum salam
20 XX555 Sampai ketemu lagi Waalaikum salam
Tabel 8 di atas menunjukkan simulasi percakapan antara userdengan chatbot.
Tiap user diidentifikasi dengan id sesi. Berikut ini adalah keterangan untuk hasil
pengujian tersebut.
1. Pengujian nomor 3 menghasilkan respon Tentu. Namamu Anonim kan?. Secara
default userdengan id sesi yang belum pernah terdaftar memiliki nama Anonim.
-
7/24/2019 Naskah publikasi amikom chatbot
18/20
15
2. Pengujian nomor 4 dengan input Namaku Ayu akan membuat chatbot
mengganti nama userdengan Ayu untuk id sesi XXX123.
3. Pengujian nomor 8 id sesi berubah XXX555 sehingga ketika diberikan input
yang sama dengan pengujian nomor 3 akan merespon Tentu. Namamu Anonim
kan?.
4. Pengujian nomor 12 menunjukkan bahwa chatbotdapat menyebutkan nama hari
sekarang.
5. Pengujian nomor 14 dan 15 menunjukkan bahwa chatbot kurang tepat dalam
memberikan respon dikarenakan input Kenapa tidak ada dalam pattern, tetapi
matcher tetap memilih satu pattern dengan skor tertinggi nilai similarity-nya
terhadap input Kenapa sehingga templatetemplate yang bersesuaianlah yang
menjadi respon.
6. Pengujian nomor 17 menunjukkan bahwa chatbot dapat menunjukkan cuaca
sekarang. Data cuaca dalam pattern untuk keperluan pengujian sementara
bersifat statis dan bernilai hujan.
7. Pengujian nomor 20 sama seperti keterangan pada nomor 5 di atas.
4.3 Pemanfaatan
Semua tabel dan stored programyang sudah dirancang, diimplementasikan, dan
diuji pada bahasan sebelumnya terpaket dalam database t iara. Database ini adalah core
untuk aplikasi chatbot secara keseluruhan yang dapat ditulis menggunakan berbagai
macam bahasa pemrograman.
Sebelum aplikasi dibuat terlebih dahulu harus sudah terinstal MySQL Server
beserta driverdalam lingkungan pengembangan dan dipastikan sudah dilakukan proses
dumping untuk database t iara.Berikut ini adalah pembahasan tentang pemanfaatan core
chatbotpada bahasa Pascal, PHP, dan Java.
5. Penutup
5.1 Kesimpulan
Berdasar pemaparan yang sudah dibahas pada bab bab sebelumnya dapat
ditarik beberapa kesimpulan sebagai berikut.
1. Perancangan dan pembuatan tabeltabel sebagai representasi pengetahuan di
databasemenggunakan MySQL Workbench 6 dimulai dari pembuatan diagram
ER yang menghasilkan 11 entitas beserta kardinalitasnya. Dari entitas entitas
tersebut dapat secara langsung dibuat tabel tabel menggunakan forward
engineering.
-
7/24/2019 Naskah publikasi amikom chatbot
19/20
16
2. Pemanfaatan Structured Query Language untuk pattern-matching dilakukan
dengan pembuatan stored program. Stored program ini terdiri dari 4 stored
proceduredan 21 stored functionyang semuanya bertugas untuk prosespattern-
matchingdan proses pendukungnya.
3. Pengembangan aplikasi chatbotdalam berbagai bahasa pemrograman dilakukan
dengan cara membuat user interface untuk mengirim input dan menerima
respon. User interface mengakses satu stored function dalam core yaitu
getresponse() yang disediakan untuk keperluan pengiriman input dan
penerimaan respon.
5.2 Saran
Berikut ini adalah beberapa hal yang masih belum dikerjakan dalam penelitian ini
sehingga diharapkan dapat menjadi bahan untuk penelitian selanjutnya.
1. Kode SQL yang digunakan lebih portable sehingga memungkinkan core yang
dihasilkan dapat diimplementasikan dalam banyak RDBMS.
2. Ditambahkan beberapa stored program untuk keperluan manajemen
pengetahuan.
3. Penelitian ini memanfatkan nilai tertinggi perhitungan sentence-similarity
measurementuntuk pengambilan pola yang cocok seingga beberapa pengujian
menunjukkan masih belum valid. Untuk itu perlu diadakan penelitian lanjutan
untuk menentukan validitas nilai yang dihasilkan.
-
7/24/2019 Naskah publikasi amikom chatbot
20/20
17
DAFTAR PUSTAKA
Arief, M. Rudyanto, MT. 2006. Pemrograman Basis Data Menggunakan Transact-SQL
dengan Microsoft SQL Server 2000. Yogyakarta: Penerbit Andi
Desiani, Anita, dkk., 2006. Konsep Kecerdasan Buatan. Yogyakarta: Penerbit Andi
Dewi, Ayu Mutiara Oktavia, Pemanfaatan Sentence-Similarity Measurement untuk
Proses Pencocokan Pola Pada Chatbot Berbasis Pattern-Matching, Buku 1
Prosiding Seminar Nasional Teknologi Informasi dan Multimedia 2014
(Semnasteknomedia 2014), 8 Februari 2014
Raharjo, Budi. 2011. Belajar Otodidak Membuat Database Menggunakan MySQL.
Bandung: Informatika
Setiaji, Bayu, M.Kom. Membangun Chatbot Berbasis AIML dengan Arsitektur
Pengetahuan Modular, Prosiding Seminar Nasional Teknologi Informasi dan
Multimedia 2013 (Semnasteknomedia 2013), 19 Januari 2013
Sutojo, T, S.Si, M.Kom, dkk. 2011. Kecerdasan Buatan. Yogyakarta: Penerbit Andi
Utami, Ema, Dr., S.Si, M.Kom, Aplikasi BotQA Untuk Meningkatkan Cara Interaksi
Manusia dan Mesin, Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI
2007), 16 Juni 2007