Naskah publikasi amikom chatbot

Embed Size (px)

Citation preview

  • 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