Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

135
Perancangan E-Teacher pada Chatbot sebagai layanan tanya jawab akademik TUGAS AKHIR Disusun dalam rangka memenuhi salah satu persyaratan Untuk menyelesaikan program Strata-1 Departemen Teknik Informatika Fakultas Teknik Universitas Hasanuddin Makassar Disusun Oleh : MUH. ARYANDI D42114301 DEPARTEMEN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS HASANUDDIN MAKASSAR 2018

Transcript of Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Page 1: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Perancangan E-Teacher pada Chatbot sebagai layanan tanya jawab akademik

TUGAS AKHIR

Disusun dalam rangka memenuhi salah satu persyaratan

Untuk menyelesaikan program Strata-1 Departemen Teknik Informatika

Fakultas Teknik Universitas Hasanuddin

Makassar

Disusun Oleh :

MUH. ARYANDI

D42114301

DEPARTEMEN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS HASANUDDIN

MAKASSAR

2018

Page 2: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...
Page 3: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

ABSTRAK

Interaksi dengan guru saat ini merupakan salah satu cara untuk membuat

siswa bisa belajar dengan interaktif. Keperluan siswa akan belajar sangat beragam.

Ada yang belajar setelah pulang sekolah , ada pula yang belajar di malam hari

karena berbagai kesibukan. Internet sesungguhnya dapat bermanfaat bagi semua

orang karena fungsinya sebagai informasi tanpa batas. Semua orang pada dasarnya

membutuhkan informasi.

Manfaat Internet di bidang pendidikan, siswa dapat dengan mandiri

memanfaatkan situs-situs pendidikan secara berulang-ulang tanpa terikat oleh jam

pelajaran yang terbatas di kelas. Internet dapat dijadikan sebagai sumber belajar

bagi siswa, baik di kelas dalam mengerjakan tugas-tugas dari guru, maupun di

rumah, atau di mana saja yang dapat mengakses internet secara mandiri. Maka

dibutuhkan sistem untuk dapat menjawab pertanyaan siswa terkait pelajaran yang

bisa diakses setiap saat. Teknologi yang digunakan untuk mengimplementasinya

adalah dengan algoritma TF-IDF dan metode crawling sebagai dasar pembuatan

system chatbot ini.

Pada proses pengujian yang dilakukan menghasilkan tingkat akurasi dalam

memberikan jawaban berdasarkan pertanyaan yang di input oleh 20 user dengan

tingkat akurasi 97.25%.

Kata kunci : chatbot, Algoritma TF-IDF , E-Teacher, web crawler.

Page 4: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

KATA PENGANTAR

Assalamu Alaikum Wr. Wb.

Puji dan syukur penulis panjatkan atas kehadirat Allah SWT karena berkat

Rahmat dan Karunia-Nya sehingga Tugas Akhir yang berjudul

“PERANCANGAN E-Teacher pada CHATBOT SEBAGAI LAYANAN

TANYA JAWAB PELAJARAN AKADEMIK” ini dapat diselesaikan sebagai

salah satu syarat dalam menyelesaikan jenjang Strata-1 pada Departemen Teknik

Informatika Fakultas Teknik Universitas Hasanuddin.

Penyusunan penelitian ini disajikan hasil suatu penelitian yang menyangkut

judul yang telah diangkat dan telah melalui proses pencarian dari berbagai sumber

baik jurnal penelitian, prosiding pada seminar-seminar nasional/internasional, buku

maupun dari situs-situs di internet.

Penulis menyadari bahwa dalam penyusunan dan penulisan skripsi ini tidak

lepas dari bantuan, bimbingan serta dukungan dari berbagai pihak, dari masa

perkuliahan sampai dengan masa penyusunan tugas akhir, sangatlah sulit untuk

menyelesaikan tugas akhir ini. Oleh karena itu, penulis dengan senang hati

menyampaikan terima kasih kepada:

1) Tuhan Yang Maha Esa atas semua berkat, karunia serta pertolongan-Nya

yang telah diberikan kepada kami disetiap langkah dalam pembuatan

program hingga penulisan laporan skripsi ini.

Page 5: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

2) Kedua Orang tua penulis, Bapak dan Ibu serta saudara-saudara penulis,

yang selau memberikan dukungan, doa, dan semangat serta selalu sabar

dalam mendidik penulis sejak kecil;

3) Bapak Amil Ahmad Ilham, ST., M.IT., Ph.D., selaku pembimbing 1 dan

bapak Dr. Eng. Zulkifli Tahir, S.T., MSc. selaku pembimbing II yang selalu

menyediakan waktu, tenaga, pikiran dan perhatian yang luar biasa untuk

mengarahkan penulis dalam penyusunan tugas akhir;

4) Bapak Amil Ahmad Ilham, ST., M.IT., Ph.D selaku Ketua Departemen

Teknik Informatika Fakultas Teknik Universitas Hasanuddin atas

bimbingannya selama masa perkuliahan penulis;

5) Staf Program Studi Teknik Informatika Universitas Hasanuddin.

6) Teman-teman Mahasiswa Program Studi Teknik Informatika 2014

Universitas Hasanuddin.

7) Teman-teman Komunitas Programmer Makassar yang senantiasa

memberikan dukungan kepada penulis dalam penyusunan tugas akhir.

8) Sekolah Koding yang menjadi wadah belajar bagi penulis dalam

menyelesaikan tugas akhir.

9) Makassar Digital Valley (MDV) yang telah menjadi tempat untuk belajar

dan berdiskusi untuk menyelesaikan penyusunan tugas akhir bagi penulis.

10) Serta seluruh pihak yang tak sempat kami sebutkan satu persatu yang telah

banyak meluangkan tenaga, waktu, dan pikiran selama penyusunan laporan

skripsi ini.

Page 6: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Akhir kata, penulis berharap semoga Allah SWT. berkenan membalas

segala kebaikan dari semua pihak yang telah banyak membantu. Semoga Tugas

Akhir ini dapat memberikan manfaat bagi pengembangan ilmu. Aamiin.

Wassalam

Makassar, Juli 2018

Penulis

Page 7: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

DAFTAR ISI

halaman

HALAMAN JUDUL .................................................................................. i

LEMBAR PENGESAHAN ....................................................................... ii

ABSTRAK ................................................................................................... iii

KATA PENGANTAR ................................................................................ iv

DAFTAR ISI ............................................................................................... vii

DAFTAR GAMBAR .................................................................................. ix

DAFTAR TABEL ....................................................................................... x

BAB I PENDAHULUAN ............................................................................ 1

1.1 Latar Belakang ........................................................................... 1

1.2 Rumusan Masalah ...................................................................... 2

1.3 Tujuan Penelitian ...................................................................... 3

1.4 Manfaat Penelitian ................................................................... 3

1.5 Batasan Masalah Penelitian ...................................................... 3

1.6 Sistematika Penulisan ............................................................... 4

BAB II TINJAUAN PUSTAKA ................................................................ 6

Page 8: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

2.1 Konsep Dasar Sistem ................................................................. 6

2.2 Algoritma TF-IDF ...................................................................... 11

2.3 Web Crawling ............................................................................ 13

2.4 Bahasa Pemrograman ................................................................. 14

2.5 Database .................................................................................... 24

2.6 Keyword Matching ..................................................................... 30

2.7 Chatbot ....................................................................................... 31

BAB III METODOLOGI PENELITIAN .................................................... 32

3.1 Tahapan Penelitian ..................................................................... 32

3.2 Waktu dan Lokasi Penelitian .................................................... 35

3.3 Pengumpulan Data .................................................................... 35

3.4 Instrumen Penelitian .................................................................. 36

3.5 Perancangan Implementasi Sistem ............................................ 37

3.6 Analisis Kinerja Sistem .............................................................. 42

BAB IV HASIL DAN PEMBAHASAN ..................................................... 57

4.1 Hasil Penelitian .......................................................................... 57

4.2 Pembahasan ............................................................................... 68

Page 9: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB V PENUTUP ..................................................................................... 70

A. Kesimpulan ................................................................................ 70

B. Saran ........................................................................................... 71

DAFTAR PUSTAKA ................................................................................. 72

LAMPIRAN ................................................................................................ 73

DAFTAR GAMBAR

Nomor halaman

Gambar 2.1 Cara kerja aplikasi web dengan PHP ....................................... 17

Gambar 2.2 Kode Vue.js .............................................................................. 22

Gambar 2.3 Jenjang database ....................................................................... 25

Gambar 3.1 Diagram tahapan penelitian ..................................................... 32

Gambar 3.2 Gambaran Umum Cara kerja system ....................................... 34

Gambar 3.3 Soucecode pengecekan di database ......................................... 34

Gambar 3.4 Data dalam database di phpmyadmin ...................................... 36

Gambar 3.5 Blok diagram tahap Pencocokan kata ...................................... 37

Gambar 3.6 Proses crawling pada website .................................................. 42

Gambar 3.7 Flowchart dari proses pemberian jawaban dari input user ....... 44

Gambar 3.8 Flowchart dari proses matching TF-IDF .................................. 45

Gambar 3.9 Pseudecode dari proses matching TF-IDF ............................... 46

Gambar 3.10 Flowchart dari proses crawling website ................................. 54

Page 10: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

DAFTAR TABEL

Nomor halaman

Tabel 3.1 Total pembobotan antara kata input dan tiga record ................... 41

Tabel 3.2 Total nilai pembobotan untuk inputan pertanyaan user terhadap record

pertanyaan .................................................................................................... 50

Tabel 3.3 Perhitungan setiap recotd pertanyaan .......................................... 51

Tabel 3.4 Hasil pembobotan dengan proses filtering ................................... 56

Tabel 4.1 Hasil pegujian pencocokan user dengan database ...................... 60

Tabel 4.2 Hasil akurasi ................................................................................ 65

Tabel 4.3 Hasil proses pengujian crawling .................................................. 66

Tabel 4.4 Hasil akurasi ................................................................................ 67

Page 11: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB I

PENDAHULUAN

I.1 Latar Belakang

Interaksi dengan guru saat ini merupakan salah satu cara untuk

membuat siswa bisa belajar dengan interaktif. Keperluan siswa dalam

belajar akan sangat beragam. Ada yang belajar setelah pulang sekolah, dan

belajar di malam hari karena berbagai kesibukan. Internet dapat bermanfaat

bagi semua orang karena fungsinya sebagai informasi tanpa batas dan

semua orang pada dasarnya membutuhkan informasi.

Manfaat Internet di bidang pendidikan, siswa dapat mandiri dengan

memanfaatkan situs-situs pendidikan secara berulang-ulang tanpa terikat

oleh jam pelajaran yang terbatas dikelas. Internet dapat dijadikan sebagai

sumber belajar bagi siswa, baik dikelas dalam mengerjakan tugas-tugas dari

guru, maupun di rumah, atau di mana saja yang dapat mengakses internet

secara mandiri. Maka dibutuhkan sistem untuk dapat menjawab pertanyaan

siswa terkait pelajaran yang bisa diakses setiap saat. Teknologi yang bisa

digunakan adalah chatbot.

Chatbot / convensational agent merupakan program software yang

dirancang untuk mensimulasikan percakapan dengan cara mengirim pesan

dan sistem mengirim kembali respon spesifik berdasarkan query yang

Page 12: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

dikirim. Jika query yang dikirim dan tidak di ketahui oleh sistem chatbot

maka akan dilakukan proses untuk mencari jawaban diluar dari data yang

dimiliki oleh sistem chatbot tersebut dengan teknik crawling/scrapping.

Dengan menggunakan web crawler yang bertujuan untuk melintasi

struktur hypertext dari web, dimulai dari sebuah alamat awal (yang disebut

seed) dan secara rekursif mengunjungi alamat web di dalam halaman web.

Web Crawler melakukan indexing kepada tiap halaman yang nantinya

digunakan sebagai sumber referensi tanpa harus menelusuri lagi, ketika

query pertanyaan yang sama dikirim kembali.

Melihat dari hal-hal diatas berkembangnya teknologi dapat kita

selaraskan dengan permasalahan yang terkait dengan pelajaran sekolah.

Penulis tertarik untuk mengimplementasikan e-Teacher pada chatbot yang

akan dibuat dalam bentuk website interaktif menggunakan metode web

crawling dan Algoritma Term Frequency dan Invers Document

Frequency(TF-IDF) agar dapat dimanfaatkan oleh siswa untuk bertanya

terkait pelajaran di sekolahnya. Judul yang penulis ambil untuk tugas akhir

ini adalah “PERANCANGAN SISTEM CHATBOT SEBAGAI LAYANAN

TANYA JAWAB PELAJARAN AKADEMIK”.

I.2 Rumusan Permasalahan

Berdasarkan latar belakang diatas, penulis merumuskan permasalahan

yaitu:

Page 13: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

1. Bagaimana penerapan sistem chatbot pada layanan tanya jawab ?

2. Bagaimana proses yang ada pada chatbot untuk mengeluarkan

jawaban sesuai dengan pertanyaan dari user ?

3. Bagaimana mengimplementasikan metode Web Crawler pada sistem

chatbot dalam mengambil data dari beberapa website untuk menjawab

pertanyaan yang diberikan oleh user ?

I.3 Tujuan Penelitian

Tujuan akhir dari penelitian ini yaitu :

1. Untuk mengetahui penerapan sistem chatbot pada layanan tanya

jawab.

2. Untuk mengetahui proses yang ada pada chatbot untuk menjawaban

sesuai dengan pertanyaan dari user.

3. Untuk mengimplementasikan metode Web Crawler pada aplikasi

chatbot yang menjawab pertanyaan yang diberikan oleh user.

I.4. Manfaat Penelitian

Dengan dilakukannya penelitian ini, diharapkan manfaat yang

didapatkan antara lain :

1. Dengan chatbot ini , siswa dapat bertanya terkait pelajaran akademik

kapanpun dan dimanapun

2. Dengan chatbot ini , siswa mampu mendapatkan informasi yang dicari

terkait pelajaran akademik dengan mudah dan cepat

Page 14: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

I.5 Batasan Masalah

Untuk kemudahan dan lebih terperincinya pembahasan penulisan,

permasalahan yang dibahas dalam tugas akhir ini dibatasi pada :

1. Sistem chatbot ini bersifat Knowladge base dimana pertanyaan sudah

disediakan di dalam basis data

2. Pertanyaan hanya dapat ditanyakan terkait mata pelajaran non

perhitungan / dalam hal ini pelajaran biologi di tingkatan SMA

3. Sistem chatbot ini dirancang hanya pada fitur chat yang di masukkan

menggunakan bahasa yang baku / tidak singkat dan terstruktur.

4. Jika tidak menemukan jawaban di sistem chatbot, maka akan

dilakukan web crawling pada website di belajaronlineku.com/forum.

1.6 Sistematika Penulisan

Laporan Tugas Akhir ini dibagi dalam lima bab yang tersusun secara

sistematis, yaitu:

BAB I PENDAHULUAN

Bab ini menjelaskan tentang latar belakang pengambilan topik

Sistem dan web crawling yang berbasis website pembelajaran sebagai

skripsi, perumusan masalah, tujuan penelitian, batasan masalah, metode

penulisan dan sistematika penulisan.

Page 15: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB II LANDASAN TEORI

Bab ini akan membahas mengenai penjelasan-penjelasan umum

mengenai teori-teori yang berkaitan seperti konsep dasar dan pengertian

tentang Sistem chatbot dan web crawling yang berbasis website

pembelajaran menggunakan Algoritma Term Frequency dan Invers

Document Frequency(TF-IDF) untuk melakukan pembobotan dan

Algoritma Bubble Sort untuk memilih .

BAB III METODOLOGI PENELITIAN

Dalam bab ini membahas mengenai perancangan Sistem chatbot

pada website pembelajaran dengan metode pembobotan kata menggunakan

algoritma Term Frequency dan Invers Document Frequency(TF-IDF) , dan

metode web crawling . Disini akan dibahas berbagai aspek yang perlu

dipertimbangkan dalam pembuatan aplikasi berbasis web tersebut dan

konsep perancangannya.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi contoh eksekusi program serta hasil pengujian dalam

bentuk hasil kuesioner.

BAB V PENUTUP

Bab ini berisi tentang kesimpulan dan saran dari penelitian yang

dilakukan.

Page 16: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB II

LANDASAN TEORI

2.1. Konsep Dasar Sistem

Konsep dasar sistem terbagi menjadi beberapa bagian yaitu pengertian

sistem, karakteristik sistem dan klasifikasi sistem.1

a. Pengertian Sistem

Menurut Satzinger, Jackson dan Burd (2010) mendefinisakan sistem

sebagai sekumpulan komponen yang saling berhubungan dan bekerja

bersama untuk mencapai suatu tujuan2. Menurut Jerry FitzGerald

(2008) sistem didefinisikan sebagai berikut:

“Suatu sistem adalah suatu jaringan kerja dari prosedur- prosedur

yang saling berhubungan, berkumpul bersama-sama untuk melakukan

suatu kegiatan atau menyelesaikan suatu sasaran tertentu”.3

Sedangkan sistem yang lebih menekankan pada elemen

didefinisikan oleh Ladjamudin (2005) sebagai berikut:

“Sistem merupakan suatu bentuk integrasi antara satu komponen

dengan komponen lainnya, karena sistem memiliki sasaran yang

berbeda untuk setiap kasus yang terjadi yang ada didalam sistem

tersebut” 2

Page 17: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Dari definisi diatas, dapat disimpulkan bahwa sistem adalah

kumpulan elemen-elemen atau sub-sub yang saling berintegrasi dan

saling berhubungan satu sama lain membentuk satu kesatuan utuh

untuk melaksanakn suatu fungsi guna mencapai suatu tujuan tertentu3.

b. K arakteristik Sistem

Karakteristik sistem menurut Ladjamudin (2005) antara lain

sebagai berikut : 2

a) Komponen Sistem

Suatu sistem terdiri dari sejumlah komponen yang saling

berinteraksi, yang artinya saling bekerjasama membentuk

suatu kesatuan. Komponen-komponen sistem atau elemen-

elemen sistem dapat berupa suatu subsistem atau bagian-

bagian dari sistem. Setiap subsistem mempunyai karakteristik

dari sistem yang menjalankan suatu fungsi tertentu dan

mempengaruhi proses sistem secara keseluruhan. 2

b) Batasan Sistem

Batasan sistem (boundary) merupakan daerah yang

membatasi antara suatu sistem dengan sistem yang lainnya

atau dengan lingkungan luarnya. Batas sistem ini

memungkinkan suatu sistem dipandang sebagai suatu

kesatuan. 2

c) Lingkungan luar sistem

Page 18: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Lingkungan luar (environment) dari sistem adalah apapun

di luar batas dari sistem yang mempengaruhi operasi sistem.

Lingkungan luar sistem dapat bersifat menguntungkan dan

dapat juga bersifat merugikan. Lingkungan luar yang

menuntungkan merupakan energi dari sistem dan dengan

demikian harus tetap dijaga dan dipelihara, sedangkan

lingkungan luar yang merugikan harus ditahan dan

dikendalikan karena kalau tidak akan mengganggu

kelangsungan hidup dari sistem. 2

d) Penghubung Sistem

Penghubung (interface) sistem merupakan media yang

menghubungkan antara satu subsistem dengan subsistem

yang lainnya. Dengan penghubung satu subsistem dapat

berinteraksi dengan subsistem yang lainnya membentuk satu

kesatuan. 2

e) Masukan Sistem

Masukan (input) sistem adalah energi yang dimasukkan

ke dalam sistem. Masukan dapat berupa perawatan dan

masukan sinyal maintenance input yang merupakan energi

yang dimasukkan agar sistem dapat berjalan serta sinyal input

yang merupakan energi yang diproses untuk mendapatkan

keluaran sistem berupa informasi. 2

Page 19: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

f) Keluaran Sistem

Keluaran (output) sistem adalah hasil dari energi yang

diolah dan diklasifikasikan menjadi keluaran yang

berguna. 2

g) Pengolahan Sistem

Pengolahan sistem merupakan suatu bagian yang

mengolah masukan (input) dan memprosesnya agar menjadi

output informasi yang berguna. 2

h) Sasaran sistem

Suatu sistem pasti mempunyai tujuan (goal) atau sasaran

(objective). Sasaran dari sistem sangat menentukan masukan

(input) yang dibutuhkan sistem dan keluaran (output) yang

dihasilkan dari sistem. Suatu sistem dikatakan berhasil bila

mengenai sasaran atau tujuannya. 2

c. Klasifikasi Sistem

Sistem dapat diklasifikasikan dari beberapa sudut padang, yaitu: 3

Page 20: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

1. Sistem diklasifikasikan sebagai sistem abstrak (abstract

system) dan sistem fisik (physical system).

Sistem abstrak adalah sistem yang berupa pemikiran atau ide-

ide yang tidak tampak secara fisik, misalnya seperti sistem

teologia yang merupakan sistem yang berupa pemikiran-

pemikiran hubungan antaran manusia dan Tuhan. Sedangkan

sistem fisik adalah sistem yang ada secara fisik, misalnya

seperti sistem komputer, sistem akutansi, sistem produksi dan

lain sebagainya. 3

2. Sistem diklasifikasikan sebagai sistem alamiah (natural

system) dan sistem buatan manusia (human made system)

Sistem alamiah adalah sistem yang terjadi melalui proses

alam, tidak dibuat oleh manusia, misalnya seperti sistem

perputaran bumi. Sedangkan sistem manusia adalah sistem

yang dirancang oleh manusia, misalnya seperti sistem

informasi yang merupakan sistem yang melibatkan interaksi

antara manusia dan komputer (human-machine system). 3

3. Sistem diklasifikasikan sebagai sistem tertentu (deterministic

system) dan sistem tak tentu (probabilistic system)

Sistem tertentu adalah sistem yang beroperasi dengan tingkah

laku yang sudah dapat diprediksi, interaksi diantara bagian-

bagiannya dapat dideteksi dengan pasti, sehingga keluaran

dari sistem dapat diramalkan. Sistem komputer merupakan

Page 21: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

salah satu contoh dari sistem tertentu yang tingkah lakunya

dapat dipastikan berdasarkan program-program yang

dijalankan. Sedangkan sistem tak tentu adalah sistem yang

kondisi masa depannya tidak dapat di prediksi karena

mengandung unsur probabilitas. 3

4. Sistem diklasifikasikan sebagai sistem tertutup (closed

system) dan sistem terbuka (open system)

Sistem tertutup adalah sistem yang tidak berhubungan dan

tidak terpengaruh dengan lingkungan luarnya, sistem ini

bekerja otomatis tanpa campur tangan dari pihak lainnya.

Secara teoritis sistem tertutup ini ada, tetapi kenyataannya

tidak ada sistem yang benar-benar tertutup, yang ada

hanyalah relatively closed system (secara relatif tertutup).

Sedangkan sistem terbuka adalah sistem yang berhubungan

dan terpengaruh dengan lingkungan luar atau subsistem yang

lainnya, sistem ini menerima masukan dan menghasilkan

keluaran untuk lingkungan luar atau subsistem yang lain.

Karena sistem ini sifatnya terbuka dan terpengaruh dengan

lingkungan luar maka sistem ini harus memiliki sistem

pengendalian yang baik. Sistem yang baik harus dirancang

sedemikian rupa, sehingga relatif tertutup karena sistem

tertutup akan bekerja secara otomatis dan terbuka hanya

untuk pengaruh yang baik saja. 3

Page 22: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

2.2. Algoritma TF-IDF

Algoritma TF-IDF (term frequency – inverse document frequency)

merupakan algoritma dengan metode pembobotan yang menggabungkan

metode TF (term frequency) dan metode IDF (inverse document

frequency). 4

Metode TF (term frequency) merupakan pengukuran yang paling

sederhana dalam pembobotan. Pada metode ini, masing-masing term

diasumsikan mempunyai proporsi kepentingan sesuai jumlah terjadinya

(munculnya) dalam teks (dokumen). Term frequency dapat memperbaiki

nilai recall pada information retrival, tetapi tidak selalu memperbaiki nilai

precision. Hal ini di sebabkan term yang frequent cenderung muncul di

banyak teks, sehingga term-term tersebut memiliki kekuatan pembeda

(keunikan) yang kecil.4

Metode IDF (inverse document frequency) adalah metode

pembobotan term yang lebih condong (fokus) untuk memperhatikan

kemunculan term pada keseluruhan kumpulan teks. Pada IDF, term yang

jarang muncul pada keseluruhan koleksi teks dinilai lebih berharga. Nilai

kepentingan tiap term diasumsikan berbanding terbalik dengan jumlah

teks yang mengandung term tersebut. 4

Pada term frequency (tf), terdapat beberapa jenis formula yang

digunakan, yaitu: 4

Page 23: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

a. Tf biner (binery tf), yang hanya memperhatikan apakah suatu kata

ada atau tidak ada dalam dokumen, jika ada diberi nilai satu, jika

tidak diberi nilai nol.

b. Tf murni (raw tf), nilai tf diberikan berdasarkan jumlah kemunculan

suatu kata di dokumen. Contohnya jika muncul lima kali maka kata

tersebut akan bernilai lima.

c. Tf logaritmik, hal ini untuk menghindari dominansi dokumen yang

mengandung sedikit kata dalam query, namun mempunyai frekuensi

yang tinggi.

d. Tf normalisasi, menggunakan perbandingan antara frekuensi sebuah

kata dengan jumlah keseluruhan kata pada dokumen.

Berdasarkan jenis formula diatas, perhitungan bobot TF menggunakan

formula 1 menjadi sebagai berikut : 4

𝑤"# = 𝑡𝑓"# ∗ (log ∗-./0

+ 1) .........................................(1).

2.3. Web Crawling

Web Crawler adalah suatu program atau script otomat yang relatif

simple, dengan metode tertentu melakukan scan atau “crawl” ke semua

halaman-halaman internet untuk membuat index dari data yang dicari.

Nama lain untuk web crawl adalah web spider, web robot, bot, crawl dan

automatic indexer.5

Page 24: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Web crawl dapat digunakan untuk beragam tujuan. Penggunaan yang

paling umum terkait dengan search engine. Search engine menggunakan

web crawl untuk mengumpulkan informasi mengenai apa yang ada di

halaman - halaman web public. Tujuan utamanya adalah mengumpukan

data sehingga ketika pengguna internet mengetikkan kata pencarian di

komputer, search engine dapat dengan segera menampilkan website yang

relevan. Cara kerja dari web crawler adalah sebagai berikut :5

1. Mesin pencari web bekerja dengan cara menyimpan informasi tentang

banyak halaman web, yang diambil langsung dari WWW. Halaman ini

diambil dengan web crawler — browser web otomatis yang mengikuti

setiap pranala yang dilihatnya. Isi setiap halaman lalu dianalisis untuk

menentukan cara mengindeksnya (misalnya, kata-kata diambil dari

judul, subjudul, atau field khusus yang disebut meta tag). Data tentang

halaman web disimpan dalam sebuah database indeks untuk digunakan

dalam pencarian selanjutnya.

2. Mesin pencari juga menyimpan dan memberikan informasi hasil

pencarian berupa pranala yang merujuk pada file, seperti file audio, file

video, gambar, foto dan sebagainya.

3. Ketika seorang pengguna mengunjungi mesin pencari dan memasukkan

query, maka kata kunci pada mesin mencari indeks dan memberikan

daftar halaman web yang paling sesuai dengan kriterianya.

2.4. Bahasa Pemograman

Page 25: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer,

adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini

merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk

mendefinisikan program komputer. Adapun bahasa pemrograman yang

digunakan dalam pengerjaan sistem ini adalah: hypertext markup language

(HTML) dan PHP.

2.4.1. Hypertext Markup Language (HTML)

a. Penamaan Dokumen HTML

Tidak ada aturan yang baku untuk penamaan dokumen HTML. Artinya, kita

bebas memilih nama untuk dokumen tersebut. Hanya ekstensinya saja yang

perlu untuk diperhatikan. Suatu file teks akan dianggap sebagai dokumen

HTML jika memiliki ekstensi “.htm” atau “.html”. Maka setiap membuat

dokumen HTML, harus menyimpan ke dalam salah satu ekstensi tersebut,

misalnya Katalog.htm, Produk.htm, Servis.html, Kontak.html, dan lain

sebagainya. 6

b. Struktur HTML Document

Document HTML dapat di bagi mejadi dua bagian yaitu bagaian header

(kepala) dan body (badan). Setiap document HTML harus di awali dan di tutup

dengan tag HTML seperti : <HTML></HTML>, tag HTML memberi tahu

browser bahwa yang di dalam kedua tag adalah document HTML. 7

a. HEAD

Page 26: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Bagian header dari document HTML diapit oleh tag

<HEAD></HEAD>, di dalam bagian ini biasanya dimuat tag TITLE

yang menampilkan judul dari halaman pada browser. Selain itu

bookmark juga megunakan tag TITLE untuk memberi mark suatu

website. Browser menyimpan “titile” sebagai bookmark dan juga untuk

keperluan pencarian (searching) biasanya title digunakan sebagai

keyword. Header juga memuat tag META yang biasanya di gunakan

untuk menentukan informasi tertentu mengenai document HTML, anda

bisa menentukan author, keywords, dan lainnya pada tag META. 7

b. BODY

Document body digunakan untuk menampilkan text, image link dan

semua yang akan di tampilkan pada web page. 7

2.4.2. PHP Hypertext Preprocessor (PHP)

PHP adalah bahasa scripting yang menyatu dengan HTML dan

dijalankan pada server side. Artinya semua sintaks yang kita berikan akan

sepenuhnya dijalankan pada server sedangkan yang dikirimkan ke browser

hanya hasilnya. 8

Ketika dipanggil dari web browser, program yang ditulis dengan

PHP akan diparsing di dalam web server oleh interpreter PHP dan

diterjemahkan ke dalam dokumen HTML, yang selanjutnya akan

ditampilkan kembali ke web browser. Pada proses program PHP dilakukan

Page 27: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

di lingkungan web server. PHP dikatakan sebagai bahasa sisi server (server-

side). Oleh sebab itu, kode PHP tidak akan terlihat pada saat user memilih

perintah “View Source” pada web browser9. Dalam PHP setiap nama

variable diawali tanda dollar ($). Misalnya nama variable a dalam PHP

ditulis dengan $a. Jenis suatu variable ditentukan pada saat jalannya

program dan tergantung pada konteks yang digunakan. 8

A. Cara Kerja PHP

Cara kerja aplikasi web yang ditulis dengan PHP dapat diilustrasikan

dengan gambar dibawah ini.

Berikut adalah keterangan dari gambar di atas: 10

1. User menulis www.abcd.com/catalog.php ke dalam address bar dari

web browser (IE, Mozilla Firefox, Opera, dll).

2. Web browser mengirimkan pesan diatas ke komputer server

(www.abcd.com) melalui internet, meminta halaman catalog.php.

Gambar 2.1. Cara kerja aplikasi web dengan PHP10

Page 28: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

3. Web server (misalnya Apache), program yang berjalan di komputer

server, akan menangkap pesan tersebut, lalu meminta interpreter PHP

(program lain yang juga berjalan di komputer server) untuk mencari

file catalog.php dalam disk drive.

4. Interpreter PHP membaca file catalog.php dari disk drive.

5. Interpreter PHP akan menjalankan perintah-perintah atau kode PHP

yang ada dalam file catalog.php. Jika kode dalam file catalog.php

melibatkan akses terhadap database (misalnya MySQL) maka

interpreter PHP juga akan berhubungan dengan MySQL untuk

melaksanakan perintah-perintah yang berkaitan dengan database.

6. Interpreter PHP mengirimkan halaman dalam bentuk HTML ke

apache.

7. Melalui internet, apache mengirimkan halaman yang diperoleh dari

interpreter PHP ke komputer user sebagai respon atas permintaan

yang diberikan.

8. Web browser dalam komputer user akan menampilkan halaman yang

dikirim oleh apache.

B. Struktur Kontrol

a. IF

Konstruksi IF digunakan untuk melakukan eksekusi suatu statement

secara bersyarat.

b. WHILE

Page 29: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Arti dari statemant while adalah memberikan perintah untuk menjalankan

statement dibawahnya secara berulang-ulang, selama syaratnya terpenuhi.

10

c. FOR

Cara penulisan statement FOR adalah sebagai berikut:

for (ekspresi1; ekspresi2 ; ekspresi3) statement

ekspresi1 menunjukkan nilai awal untuk suatu variable,

ekspresi2 menunjukkan syarat yang harus terpenuhi untuk

menjalankan statement,

ekspresi3 menunjukkan pertambahan nilai untuk suatu variable. 11

d. SWITCH

Statement SWITCH digunakan untuk membandingkan suatu variable

dengan beberapa nilai serta menjalankan statement tertentu jika nilai

variable sama dengan nilai yang dibandingkan. Struktur Switch adalah

sebagai berikut: 11

switch (variable)

case nilai:

statement

case nilai:

Page 30: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

statemant

case nilai:

statement

e. REQUIRE

Statement Require digunakan untuk membaca nilai variable dan

fungsi-fungsi dari sebuah file lain. Cara penulisan statement Require

adalah : require(namafile); statement require tidak dapat dimasukkan

diadalam suatu struktur looping misalnya while atau for. Karena hanya

memperbolehkan sekali saja pemangggilan file yang sama. 10

f. INCLUDE

Statement include akan menyertakan isi suatu file tertentu. Include

dapat diletakkan didalam suatu looping misalkan dalam statement for atau

while. 10

C. Kelebihan PHP

Beberapa kelebihan PHP dibandingkan dengan bahasa

pemrograman yang lain, yaitu: 8

2. PHP mudah dibuat dan memiliki kecepatan akses tinggi.

3. PHP dapat berjalan pada web server yang berbeda dan dalam

sistem operasi yang berbeda pula. PHP dapat berjalan di sistem

operasi UNIX, Windows, Windows NT, dan Macintosh.

Page 31: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

4. PHP diterbitkan secara gratis (open source).

5. PHP juga dapat berjalan pada web server Microsoft Personal Web

Server, Apache, IIS, Xitami dan sebagainya.

6. PHP termasuk bahasa yang bersifat embedded (bisa diletakkan

atau ditempel pada tag HTML).

7. PHP termasuk server side programming.

2.4.3. Javascript (JS)

JavaScript adalah bahasa pemrograman web yang bersifat Client

Side Programming Language. Client Side Programming Language adalah

tipe bahasa pemrograman yang pemrosesannya dilakukan oleh client.

Aplikasi client yang dimaksud merujuk kepada web browser seperti Google

Chrome dan Mozilla Firefox.12

Bahasa pemrograman Client Side berbeda dengan bahasa

pemrograman Server Side seperti PHP, dimana untuk server side seluruh

kode program dijalankan di sisi server.

Untuk menjalankan JavaScript, kita hanya membutuhkan aplikasi

text editor dan web browser. JavaScript memiliki fitur: high-level

programming language, client-side, loosely tiped dan berorientasi objek.

JavaScript pada awal perkembangannya berfungsi untuk membuat interaksi

antara user dengan situs web menjadi lebih cepat tanpa harus menunggu

Page 32: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

pemrosesan di web server. Sebelum javascript, setiap interaksi dari user

harus diproses oleh web server.

Bayangkan ketika kita mengisi form registrasi untuk pendaftaran

sebuah situs web, lalu men-klik tombol submit, menunggu sekitar 20 detik

untuk website memproses isian form tersebut, dan mendapati halaman yang

menyatakan bahwa terdapat kolom form yang masih belum diisi.

Untuk keperluan seperti inilah JavaScript dikembangkan.

Pemrosesan untuk mengecek apakah seluruh form telah terisi atau tidak,

bisa dipindahkan dari web server ke dalam web browser.

2.4.4. VUEJS

Vue.js (https://vuejs.org/) yang membawa tagline “The Progressive

JavaScript Framework” merupakan javascript framework yang membantu

dalam membuat sebuah website / aplikasi yang membutuhkan banyak

interaksi di dalamnya, biasanya berupa Single Page Application. Vue.js

merupakan framework javascript yang paling diminati karena kemudahan

dalam mempelajari dan mengimplementasikan di dalam website/aplikasi.

Vue.js seperti framework Javascript modern lainnya juga mengusung

konsep component based dimana setiap blok layout dianggap sebagai

komponen yang independen dan memiliki style serta fungsi sendiri yang

terisolir sehingga mudah untuk digunakan ulang oleh setiap halaman

website. Setiap komponen tersebut nantinya akan disusun menjadi blok-

Page 33: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

blok yang saling terkait dan membangun sebuah tampilan utuh sebuah

halaman website. 13

Menggunakan komponen berarti akan membuat custom tag di

HTML template, secara mudah komponen di Vue.js bisa dibuat sederhana

dengan kode berikut :

Gambar 2.2. Kode Vue.js

2.4.5. Laravel

Laravel merupakan framework PHP yang menekankan pada

kesederhanaan dan fleksibilitas pada desainnya. Laravel dirilis dibawah

lisensi MIT dengan sumber kode yang disediakan di Github. Sama seperti

framework PHP lainnya, Laravel dibangun dengan basis MVC (Model-View

Controller). Laravel dilengkapi command line tool yang bernama “Artisan”

yang bisa digunakan untuk packaging bundle dan instalasi bundle.

Framework Laravel dibuat oleh Taylor Otwell, proyek Laravel dimulai pada

April 2011. 14

Awal mula proyek ini dibuat karena Otwell sendiri tidak

menemukan framework yang up-to-date dengan versi PHP.

Mengembangkan framewrok yang sudah ada bukan merupakan ide yang

Page 34: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

bagus karena keterbatasan sumber daya. Dikarenakan beberapa

keterbatasan tersebut, Otwell membuat sendiri framework dengan nama

Laravel. Oleh karena itu Laravel menisyaratkan PHP versi 5.3 keatas.

(Rohman, 2014). Laravel merupakan framework aplikasi web yang

ekspresif dan sintaks yang elegan. Laravel berusaha mencoba menjadi

framework yang mudah digunakan dengan mengurangi tugas-tugas umum

yang sering digunakan dalam sebagian besar proyek - proyek web seperti

otentikasi, routing, session, dan caching. Laravel membuat proses

development yang menyenangkan bagi pengembang tanpa mengurangi

fungsionalitas aplikasi. Dengan harapan, pengembang dapat membuat

rangkaian kode-kode terbaik. Laravel berusaha untuk menggabungkan yang

terbaik dari apa yang ada dalam framework web lain, termasuk framework

yang menggunakan bahasa lain, seperti Ruby on Rails, ASP.NET MVC, dan

Sinatra. Laravel merupakan framework yang mudah diakses, powerful dan

menyediakan tools yang diperlukan untuk skala aplikasi besar. Laravel juga

merupakan sebuah aplikasi luar biasa dari sebuah kumpulan program

kontrol, sistem migrasi yang ekspresif dan dukungan tools yang dibutuhkan

dalam menguji aplikasi yang terintegrasi dengan beberapa aplikasi lainnya.

2.5 Database

Kumpulan dari item data yang saling berhubungan satu dengan yang

lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur

tertentu, tersimpan di hardware komputer dan dengan software untuk

Page 35: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

melakukan manipulasi untuk kegunaan tertentu. Kegunaan dari database

sebagai berikut 15:

• Salah satu komponen penting dalam sistem informasi, karena

merupakan dasar dalam menyediakan informasi

• Menentukan kualitas informasi : akurat, tepat pada waktunya dan

relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif

dibandingkan dengan biaya mendapatkannya.

• Mengurangi duplikasi data (data redudancy)

• Hubungan data dapat ditingkatkan (data relatability)

• Mengurangi pemborosan tempat simpanan luar

Dalam database dikenal beberapa jenjang data sbb :

Database

Field

Record

Filedata/item

Characters

Gambar 2.3. Jenjang Database 15

Page 36: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

• Characters : merupakan bagian data yang terkecil, dapat berupa

karakter numerik, huruf ataupun karakter-karakter khusus (special

characters) yang membentuk suatu item data / field 15.

• Field : merepresentasikan suatu atribut dari record yang

menunjukkan suatu item dari data, seperti misalnya nama, alamat

dan lain sebagainya. Kumpulan dari field membentuk suatu record.

Ø field name: harus diberi nama untuk membedakan field yang

satu dengan lainnya

Ø field representation: tipe field (karakter, teks, tanggal, angka,

dsb), lebar field (ruang maksimum yang dapat diisi dengan

karakter-karakter data) 15.

Ø field value: isi dari field untuk masing-masing record.

• Record : Kumpulan dari field membentuk suatu record. Record

menggambarkan suatu unit data individu yang tertentu. Kumpulan

dari record membentuk suatu file. Misalnya file personalia, tiap-tiap

record dapat mewakili data tiap-tiap karyawan15.

• File: File terdiri dari record-record yang menggambarkan satu

kesatuan data yang sejenis. Misalnya file mata pelajaran berisi data

tentang semua mata pelajaran yang ada15.

• Database : Kumpulan dari file / tabel membentuk suatu database15

2.5.1 Tipe File Database

Dalam database dikenal 5 (lima) jenis tipe file dengan definisi sebagai berikut 15:

Page 37: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

1. File Induk (master File)

a. file induk acuan (reference master file) : file induk yang recordnya

relatif statis atau nilai yang jarang berubah. Misalnya file daftar gaji,

file mata pelajaran15.

b. file induk dinamik (dynamic master file): file induk yang nilai dari

recordnya sering berubah atau sering dimutakhirkan (update)

sebagai hasil dari suatu transaksi. Misalnya file induk data barang,

yang setiap saat harus di up-date bila terjadi transaksi15.

2. File Transaksi (transaction file)

File ini bisa disebut file input; digunakan untuk merekam data hasil dari

transaksi yang terjadi. Misalnya file penjualan yang berisi data hasil

transaksi penjualan15.

3. File Laporan (Report file)

File ini bisa disebut output file, yaitu file yang berisi informasi yang

akan ditampilkan15.

4. File Sejarah (history file)

File ini bisa disebut file arsip (archival file) merupakan file yang berisi

data masa lalu yang sudah tidak aktif lagi, tetapi masih disimpan sebagai

arsip15.

5. File Pelindung (backup file)

File ini merupakan salinan dari file yang masih aktif di dalam database

pada suatu saat tertentu. File ini digunakan sebagai pelindung atau

Page 38: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

cadangan bila file database yang aktif mengalami kerusakan atau

hilang15.

2.5.2 MySQL

MySQL adalah sebuah program database server yang mampu

menerima dan mengirimkan data sangat cepat, multi user serta

menggunakan peintah dasar SQL (Structured Query Language). MySQL

merupakan dua bentuk lisensi, yaitu FreeSoftware dan Shareware.

MySQL yang biasa digunakan adalah MySQL FreeSoftware yang

berada dibawah Lisensi GNU/GPL ( General Public License ). 16

MySQL merupakan sebuah database server yang free, artinya bebas

menggunakan database untuk keperluan pribadi atau usaha tanpa harus

membeli atau membayar lisensinya. Selain database server, MySQl

merupakan program yang dapat mengakses suatu database yang berposisi

sebagai Server, yang berarti program yang posisinya sebagai Client. Jadi

MySQL adalah sebuah database yang dapat digunakan sebagai Client

maupun server. Database MySQL merupakan suatu perangkat lunak yang

berbentuk database relasional atau disebut Relational Database

Management System (RDBMS ) yang menggunakan suatu bahasa

permintaan yang bernama SQL (Structured Query Language ). 16

SQL (Structured Query Language) adalah sebuah bahasa

permintaan database yang terstruktur. Bahasa SQL ini dibuat sebagai

bahasa yang dapat merelasikan beberapa tabel dalam database maupun

Page 39: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

merelasikan antar database. SQL dibagi menjadi tiga bentuk query, yaitu:

16

A. DDL ( Data Definition Language )

DDL adalah sebuah metode Query SQL yang berguna untuk

mendefinisikan data pada sebuah database, Query yang dimiliki DDL

adalah: 4

• CREATE : Digunakan untuk membuat database dan Tabel

• Drop : Digunakan untuk menghapus Tabel dan database.

• Alter : Digunakan untuk melakukan perubahan struktur tabel yang telah

dibuat, baik menambah Field (Add), mengganti nama field (Change)

ataupun menamakannya kembali (Rename), dan menghapus Field

( Drop ).

B. DML ( Data Manipulation Language )

DML adalah sebuah metode query yang dapat digunakan apabila

DDL telah terjadi,sehingga fungsi dari query DML ini untuk melakukan

manipulasi database yang telah dibuat. Query yang dimiliki DML adalah:

16

• INSERT : Digunakan untuk memasukkan data pada tabel database

• UPDATE : Digunakan untuk pengubahan terhadap data yang ada pada

tabel database.

• DELETE : Digunakan untuk penghapusan data pada tabel database

C. DCL ( Data Control Language )

Page 40: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

DCL adalah sebuah metode query SQL yang digunakan untuk

memberikan hakotorisasi dalam mengakses database, mengalokasikan

space, pendefinisian space, dan pengauditan penggunaan database. Query

yang dimiliki DCL adalah: 16

• GRANT : Untuk mengizinkan user mengakses tabel dalam database.

• REVOKE : Untuk membatalkan izin hak user, yang ditetapkan oleh

perintah GRANT.

• COMMIT : Mentapkan penyimpanan database.

• ROLLBACK : Membatalkan penyimpanan database edited.

2.5.3 Masuk ke MySQL

Untuk membuat koneksi ke server, diperlukan program MySQL

Client. Setelah menginstal perangkat lunak MySQL server baik pada

Windows atau produk yang lain dengan Unix. Kemudian instalkan

program pada tempat yang sama sesuai dengan program server yang di

instal. Pada Linux : default direktori /usr/local/mysql/bin sedangkan

Windows, dikenal dengan mysql.exe dan terletak pada default direktori

C:\mysql\bin. Adapun metode yang d i p i l i h sesuai dengan sistem

operasi yang digunakan, t a h a p t e r a k h i r akan berakhir pada deretan

perintah siap untuk menjalankan program MySQL Client untuk koneksi

ke server MySQL. 16

Page 41: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

2.6 Keyword Matching

Keyword matching menurut Dictionary of Algorithm and Data

Structures, National Institute of Standard and Technology (NIST) adalah

proses untuk menemukan pola atau pattern susunan karakter string didalam

bagian dari isi teks. Keyword matching atau bisa disebut juga string

matching merupakan bagian penting dari sebuah proses pencarian string

(string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah

string dalam dokumen tergantung dari metode string matching yang

diterapkan. Salah satu metode string matching yaitu Approximate String

Matching yang mencocokkan string dengan membedakan susunan karakter

dalam string yang dicocokkan, memiliki jumlah, maupun urutan karakter

dalam suatu string. Banyak algoritma yang bisa digunakan untuk string

matching dengan metode ini, misalnya Brute Force Algorithm,

Backtracking Algorithm, Greedy Algorithm, dan lain-lain.4

2.7 Chatbot

Chatbot adalah karakter bahasa alami yang berkomunikasi dengan

penggunanya, atau orangorang yang sedang chatting di messenger, web

instan, email, usenet, forum web, atau bahkan melalui komunikasi suara

seperti telepon. Chatbot juga kadang-kadang disebut chat robot, bot,

chatterbot, botchatting, chatterbox, V-Host, V-People, agent, dan manusia

virtual. Sebuah chatbot dapat dikaitkan dengan sebuah avatar, animasi yang

juga dapat mencakup sintesis pidato sehingga chatbot mungkin muncul

lebih hidup melalui animasi virtual reality dan suara. Sebuah chatbot juga

Page 42: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

dapat memiliki teknologi pengenalan suara, sehingga bot hanya melalui

teks. Chatbot memiliki botmaster, yaitu orang di belakang layar yang

bertanggung jawab untuk menciptakan kepribadian bot dan melepaskannya

ke tempat umum melalui internet. Membuat bot lebih seperti menciptakan

karakter untuk sebuah novel atau skenario daripada seperti menulis sebuah

program computer.17

Page 43: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB III

METODOLOGI PENELITIAN

3.1. Tahapan Penelitian

Tahapan pada penelitian ini sebagaimana ditunjukkan pada gambar 3.1.

Gambar 3.1. Diagram tahapan penelitian

Tahapan secara garis besar dijelaskan sebagai berikut :

1. Pada studi literatur, pencarian penelitian dilakukan terkait sistem pencocokan

pola teks menggunakan algoritma keyword matching. Pada tahap ini dilakukan

pencarian dokumentasi hasil penelitian-penelitian sebelumnya yang terkait

dengan topik penelitian.

2. Pada tahap ini, dilakukan penetapan berbagai kebutuhan penelitian dan

disiapkan guna untuk menunjang penelitian dan pembuatan sistem.

1.Studiliteraturterkait

2.Identifikasikebutuhanpenelitian

3.Memasukkan

datapertanyaandidatabase

4.Prosesanalisa

pertanyaaninputanuser

5.ImplementasiAlgoritmaTF-IDF

7.Crawlingwebsiteuntuk

mencarijawabandiluar

database

8.KesimpulanPenelitian

Page 44: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

3. Setelah menyiapkan kebutuhan penelitian, pengambilan data yang berupa soal

yang memiliki jawaban sebagai bahan untuk pengujian sistem.

4. Mengecek proses pemberian jawaban dari input user yang ada di record

database. Jika inputan tidak ada di database maka dilakukan proses pembobotan

kata inputan terhadap semua record di database.

5. Pada proses pencocokan kata di inputan dan record di database menggunakan

algoritma TF-IDF. Algoritma ini memberikan sebuah pembobotan setiap kata

yang ada di teks. Data akan di bobot untuk menentukan apakah pertanyaan

tersebut sesuai dengan output yang akan diberikan.

6. Jika proses pencocokan data dari inputan user tidak ada di dalam database. Maka

pencarian jawaban akan dilakukan diluar dari database menggunakan teknik

web crawling. Web crawling bertugas untuk melakukan scan / pemindaan ke

halaman website dengan mengambil semua data dari tag HTMLnya. Dengan

memanfaatkan atribut yang ada di dalam halaman website, maka dapat

mengambil teks yang ada di dalam halaman tersebut.

7. Setelah melakukan tahapan-tahapan di atas, diperolehlah kesimpulan

berdasarkan penelitian yang telah dilakukan.

Page 45: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Gambar 3.2. Gambaran Umum Cara kerja sistem

Dari Gambar 3.2 diatas dapat dijelakan bahwa penelitian ini terbagi menjadi

beberapa tahapan untuk menghasilkan output berupa jawaban dari input pertanyaan

user. Tahap pertama, data inputan dari user akan dicek terlebih dahulu di dalam

database dengan menggunakan query seperti berikut :

Gambar 3.3. soucecode pengecekan di database

Jika proses query dilakukan tidak menemukan inputan yang sama dari

pertanyaan di dalam database maka hasil pencarian bernilai 0, maka dilakukan

pencarian dengan cara membobotkan setiap kata dari inputan user untuk

dicocokkan di database.

Ya

Page 46: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Dalam melakukan pembobotan , algoritma yang digunakan adalah TF-IDF.

Apabila pembobotan lebih dari 1 record yang memiliki bobot, maka dilakukan

proses sorting berdasarkan bobot. Semakin besar bobot maka semakin besar record

tersebut sebagai output / jawaban. Sebaliknya, jika tidak ada satupun yang terbobot

maka dilakukan proses crawling untuk mencari jawaban diluar dari database.

Pada proses crawling, akan ada proses scan ke halaman website lain.

Dimana tag HTML dihalaman website tersebut akan di ambil berdasarkan class dan

id yang ditargetkan. Setelah dilakukan scan maka dilakukan pembobotan seperti

proses sebelumnya untuk menentukan output/jawaban di dalam proses crawling

tersebut.

3.2. Waktu dan Lokasi Penelitian

Waktu penelitian dilakukan selama dua bulan, dimulai sejak di setujuinya

proposal penelitian ini pada bulan Maret 2018. Lokasi penelitian dilakukan di

Laboratorium SEIS Departemen Teknik Informatika Universitas Hasanuddin.

3.3. Persiapan Data

Data yang disiapkan yaitu data-data pertanyaan dan jawaban yang di ambil

dari berbagai referensi buku dan internet untuk dimasukkan ke dalam database.

Data tersebut diproses sesuai inputan dari user untuk dijadikan output/jawaban.

Untuk menguji tingkat keakuratan sistem dalam menjawab pertanyaan,

maka data yang digunakan sebanyak 400 data.

Page 47: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Gambar 3.4. Data dalam database di phpmyadmin

3.4. Instrumen Penelitian

Instrumen yang digunakan dalam penelitian ini meliputi :

1. Software

a. Mac OS X High Sierra

b. Atom Text Editor

c. Framework PHP(Laravel)

d. Framework Javascript (VUEjs)

e. BOTMAN

f. XAMPP

g. Git dan

h. Web Browser

2. Hardware

a. Macbook Pro

b. Modem

Page 48: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

c. Printer

3.5. Perancangan Implementasi Sistem

Rancangan sistem ini bertujuan untuk memberikan gambaran terhadap

sistem yang akan dibuat dan dikembangkan, serta untuk memperjelas detail dan alur

proses dari sistem. Dalam perencangan sistem ini terbagi menjadi dua langkah

secara garis besar yaitu tahap pencocokan kata dan proses crawling.

3.5.1 Pencocokan Kata

Blok diagram untuk pencatatan dapat dilihat pada gambar 3.5. berikut:

Gambar 3.5. Blok diagram tahap Pencocokan kata

a. Tahap pertama adalah user memberikan inputan berupa pertanyaan.

b. Setelah dilakukan proses penginputan pertanyaan maka terlebih

dahulu dilakukan pengecekan query pada database dengan sesuai

inputan user. Jika query ada maka proses selesai dan langsung

memberikan output jawaban yang ada di database. Sebaliknya, jika

tidak ada maka dilakukan proses pembobotan setiap kata di

pertanyaan di database, artinya setiap kata akan dilakukan proses

pencocokan terhadap kata yang ada di setiap record di database.

InputUser Prosespencocokan

Kata

Prosespembobotan

Kata

OutputJawaban

berdasarkanbobotterbesar

Page 49: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

c. Berikutnya, data yang memiliki bobot dari proses sebelumnya akan

dilakukan pembobotan untuk setiap kata di record database yang

akan dijumlahkan disetiap kata untuk mendapatkan bobot total pada

setiap record tersebut. Rumus algoritma TF-IDF untuk

membobotkan suatu teks terdiri dari 2 tahap yaitu;

1. Proses Filtering

Pada proses ini, inputan user dibagi menjadi dua kata yaitu kata yang penting dan

kata yang kurang penting. Proses ini sangat dibutuhkan untuk meningkatkan akurasi

pembobotan. Pada proses pembobotan dibutuhkan kata yang penting karena kata

yang tidak penting dimasukkan ke dalam pembobotan, maka besar kemungkinan

jawaban yang diberikan oleh output tidak sesuai dengan input yang diberikan.

Maksud dari kata yang tidak penting adalah di, jelaskan , ke , pergi , termasuk tanda

baca yang terdapat di setiap record walaupun record tersebut tidak memiliki

kesamaan dengan pertanyaan yang di input oleh user. Setelah melakukan proses

filtering, maka kata-kata yang penting disimpan dan dilakukan proses selanjutnya

yaitu pembobotan kata menggunakan algoritma TF-IDF.

2. Proses pembobotan kata

Pada proses pembobotan kata, algoritma yang digunakan yaitu algoritma TF-

IDF. Algoritma ini sangat cocok dalam melakukan pembobotan dalam sekala yang

banyak. Rumus untuk menentukan bobot adalah sebagai berikut

𝑤"# = 𝑡𝑓"#𝑥(𝑙𝑜𝑔-./0

+ 1)…………………………..(2)

Page 50: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Keterangan :

• Wij adalah bobot term (tj) terhadap dokumen (di).

• tfij adalah jumlah kemunculan term (tj) dalam dokumen (di).

• D adalah adalah jumlah semua dokumen yang ada dalam database.

• dfj adalah jumlah dokumen yang mengandung term (tj) (minimal ada satu

kata yaitu term (tj)).

Untuk menghitung tf menggunakan konsep TF BINARY, dimana sebanyak

apapun kata dari inputan user yang muncul pada record dari database hanya akan

terhitung 1 poin pada saat pembobotan.

Berapapun besar nilai tfij, apabila D = dfj, maka akan didapatkan hasil 0

(nol), dikarenakan hasil dari log 1, untuk perhitungan IDF. Untuk itu dapat

ditambahkan nilai 1 pada sisi IDF. Berikut merupakan contoh kasus yang

menggunakan 2 tahap diatas.

Misalnya,

Query : Jelaskan yang dimaksud dengan kingdom monera mirip hewan.

Sehingga didapatkan query terms (Q):

- Jelaskan

- Yang

- Dimaksud

- Dengan

- Kingdom

Page 51: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

- Monera

- Mirip

- Hewan

Untuk contoh record pertanyaan di database terdapat:

Record 1 (d1) = Sebutkan contoh dari kingdom pada hewan di biologi

Record 2 (d2) = apa yang dimaksud dengan kingdom monera

Record 3 (d3) = penjelasan kingdom monera mirip hewan yang ada di

pelajaran biologi

Jadi total jumlah record yang ada di dalam database (D) = 3

Untuk setiap query pertanyaan dan record pada database, dilakukan

pemotongan string berdasarkan tiap kata dalam menyusunnya, menghilangkan

tanda baca, angka dan stopword. Setelah melalui proses ini, maka kata sebutkan,

contoh, dari, apa, yang, dimaksud dengan, jelaskan, penjelasan, di pada ketiga

dokumen dihapus sehingga ketiga record di database tersebut menyisakan kata

sebagai berikut :

Record 1 (d1) = kingdom hewan biologi

Record 2 (d2) = kingdom monera

Record 3 (d3) = kingdom monera mirip hewan pelajaran biologi

Semakin besar nilai perhitungan bobot yang diperoleh maka semakin tinggi

tingkat kemiripian record pada database terhadap inputan user. Contoh untuk

Page 52: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

perhitungan bobot (w) term query kingdom dalam record 2 (d2) = kingdom biologi,

yaitu: kingdom muncul pada record pertama, di record ketiga dan kedua muncul

kata kingdom, maka query kingdom pada semua record di database memiliki

pembobotan sebesar 1, total record database sebanyak tiga record (D)=3, dari

ketiga dokumen tersebut, kata kingdom muncul pada semua dokumen. sehingga

total record yang mengandung kata kingdom adalah tiga dokumen (df)=3.

Berikut tabel total pembobotan antara kata dari inputan user terhadap ketiga

record yang ada di dalam database.

Tabel 3.1. Total pembobotan antara kata input dan tiga record

Dari hasil tabel 3.1 pembobotan query dari inputan pertanyaan user yakni Jelaskan

yang dimaksud dengan simbiosis mutualisme akan mirip dengan record

database yang ketiga. Karena keluaran/jawaban dari inputan user adalah jawaban

dari record pertanyaan ketiga.

Page 53: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

3.5.2 Proses Crawling Website

Proses crawling merupakan tahap akhir dari sistem apabila inputan user

yang dilakukan pembobotan didalam database masih tidak di temukan / total data

pembobotannya adalah 0. Maka dilakukan proses pencarian jawaban diluar dari

database, proses tersebut menggunakan web crawling. Konsep ini menggunakan

teknik pencarian teks berdasarkan tag HTML yang ada di halaman. Selain itu, class

dan id yang menentukan filter yang sesuai dengan yang dicari.

Gambar 3.6. Proses crawling pada website

Seperti yang dilihat pada gambar 3.6, metode crawling mengambil semua

tag HTML yang terdapat pada website tersebut. Kemudian tag HTML yang telah

didapat itu difilter sesuai dengan apa yang di inginkan dengan menggambil class

atau id yang ditargetkan.

3.6 Analisis Kinerja Sistem

3.6.1 Awalan Chat

Pada chatbot, user dapat melakukan percakapan pada sistem dengan

berbagai kata sapaan seperti hai, hallo, assalamualaikum. Dalam membalas

percakapan sistem akan bersifat acak. Semakin banyak user menyapa, maka bot

akan memberikan respon untuk memberikan pertanyaan kepadanya. Selain

Page 54: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

menyapa bot dapat memberikan pertanyaan dengan berterima kasih atau

menunjukkan bahwa jawaban yang diberikan kurang jelas.

3.6.2 Proses Menjawab Pertanyan

Pada proses menjawab pertanyaan yang diinput oleh user dilakukan dua

tahap yaitu, mencocokkan pertanyaan yang diinput oleh user dengan database

menggunakan algoritma TF-IDF dan apabila data tidak ada di database maka

dilakukan proses crawling untuk mencari jawaban di luar dari database. Sebelum

memasuki proses ini, proses yang dilakukan adalah proses pencocokan biasa,

dengan mencocokan inputan utuh user ke dalam database. Jika inputannya ada/

cocok di salah satu record database, maka hasil output / jawaban diberikan ke user.

Jika pada proses langsung tersebut tidak ditemukan pertanyaan yang sesuai, maka

dilakukan pembobotan setiap kata yang di input oleh user yang membobot setiap

pertanyaan yang ada di dalam database dengan menggunakan algoritma TF-IDF.

Page 55: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Berikut flowchart terkait cara menjawab sistem

Gambar 3.7. Flowchart dari proses pemberian jawaban dari input user

3.6.2.1 Proses Matching Text Menggunakan Algoritma TF-IDF

Pada proses pencocokan teks didatabase berdasarkan inputan user ke dalam

sistem dilakukan berbagai hal untuk menemukan pola jawabann. Cara yang dipilih

adalah pembobotan kata menggunakan algoritma TF-IDF. Proses ini digunakan

Page 56: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

ketika tidak ada jawaban dari inputan user di database. Pertama, sistem memanggil

database untuk mengambil semua pertanyaan-pertanyaan yang ada di dalam

database. Kemudian setiap record yang ada di dalam database akan dibandingkan

dengan pertanyaan inputan di user.

Gambar 3.8. Flowchart dari proses matching TF-IDF

Jika kata di record sama dengan kata di inputan user, maka dilakukan proses

pembobotan kata. Proses pembobotan memiliki aturan yaitu dengan memberikan

pembobotan yang berbeda setiap kata berdasarkan kepentingan kata tersebut.

Page 57: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Misalnya, jika kata sama adalah kata yang tidak terlalu berpengaruh dipertanyaan

seperti Jelaskan , pengertian , sebutkan , apa , yang , dimaksud , dengan , dll. Maka

tidak dilakukan pembobotan / diberikan pembobotan senilai 0, karena kata tersebut

tidak merujuk ke pertanyaan yang spesifik. Akan tetapi , jika kata dari pertanyaan

tersebut adalah poin penting untuk mendapatkan jawaban. Maka akan dilakukan

pembobotan bernilai 1. Berikut pseudecode tentang penggunaan TF-IDF pada

system

Deklarasi

status , apakahTelahMasuk: boolean

angka, poin , kemunculandiDokumen ,nomorHasils3 ,pembobotanTFIDF nomorHasils ,nomorHasilsFix : integer

pilihan_crawl, tfKemunculan, tfKemunculanAll : array

{proses pemilahan kata untuk menentukan kecocokan data yang di input dengan yang ada di database}

for each hasil from database do

for i ← 0 to i < count(jumlah kata di database pertanyaan)

if input_kata_user ← kata_di_database

if kata telah dicek

return tfKemunculanAll += 1

else

return tfKemunculanAll = 1

end if

end for

end for

Page 58: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

{proses untuk memilah kata yang tidak perlu untuk di bobot}

foreach kata yang ada didatabase

for j←0 to j < count(Kdata) {Kdata = kata di database validasi}

if input_kata_user ← kata_di_database

if kata telah dicek

return tfKemunculan += 1

else

return tfKemunculan = 1

end if

end for

end foreach

{proses pembobotan kata untuk output dari inputan user}

if j ← Tmax {Tmax = maksimum total kata pertanyaan}

if empty(tfKemunculan) {dicek apakah tfKemunculan tidak kosong}

for o ← 0 to count(TkataDB) {total kata pertanyaan di database}

if kata di database ← tfKemunculan

tfFix ←tfKemunculan;

idf ← log10(Tpertanyaan / Tmuncul)

{Tpertanyaan = total pertanyaan didatabase , Tmuncul = kemunculan kata pada database}

tf_idf ← tfFix x idf

pembobotanTFIDF ← tf_idf

end if

Page 59: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

{masukkan data pertanyaan dan nilai bobotnya di database}

pilihan ← array(pembobotanTFIDF)

end for

end if

end if

{mengurutkan hasil pembobotan untuk menentukan jawabannya}

for i ← 1 to n - 1 do

for k ← n downto i + 1 do

if L[k] < L[k-1] then {pertukarkan L[k] dengan L[k-1]}

temp ← L[k]

L[k] ← L[k-1]

L[k-1] ← temp

Endif

Endfor

Endfor

Gambar 3.9. Pseudecode dari proses matching TF-IDF

Setelah melakukan pembobotan setiap kata, maka dilakukan pembobotan

secara keseluruhan untuk setiap record dengan menggunakan rumus algoritma TF-

IDF. Tujuannya adalah untuk menentukan record yang memiliki kecocokan

terbesar dari pertanyaan yang di input oleh user. Semakin besar nilai pembobotan,

maka kecocokan dengan inputan user akan semakin mirip. Kecocokan yang

Page 60: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

memiliki nilai bobot paling besar dipilih untuk dijadikan sebagai output / jawaban

untuk user. Metode pengurutan menggunakan quick sort yang cocok untuk

mengurutkan data dengan cepat.

Berikut contoh pembobotan yang dilakukan pada setiap kata di record

database dan setiap kata di input pertanyaan oleh user.

Query / Inputan = pengertian kingdom monera mirip hewan pada

klasifikasi makhluk hidup

Record 1 (d1) = sebutkan klasifikasi system kingdom

Record 2 (d2) = siapa yang memperkenalkan klasifikasi kingdom makhluk

hidup

Record 3 (d3) = Sebutkan contoh dari kingdom pada hewan di biologi

Record 4 (d4) = apa yang dimaksud dengan kingdom monera

Record 5 (d5) = penjelasan kingdom monera mirip hewan yang ada di

pelajaran klasifikasi biologi

Record 6 (d6) = penjelasan kingdom monera mirip tumbuhan yang ada di

pelajaran klasifikasi biologi

Record 7 (d7) = contoh makhluk hidup dari kingdom monera

Record 8 (d8) = apa yang dimaksud dengan klasifikasi makhluk hidup

Record 9 (d9) = sebutkan tujuan dari klasifikasi makhluk hidup

Page 61: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Record 10 (d10) = manfaat dari klasifikasi makhluk hidup

Record 11 (d11) = jelaskan tata nama ilmiah makhluk hidup

Record 12 (d12) = sebutkan semua ciri - ciri dari klasifikasi makhluk hidup

Record 13 (d13) = sebutkan ciri - ciri dari klasifikasi makhluk hidup

berdasarkan persamaan

Record 14 (d14) = sebutkan ciri - ciri dari klasifikasi makhluk hidup

berdasarkan perbedaan

Record 15 (d15) = sebutkan ciri - ciri dari klasifikasi makhluk hidup

berdasarkan morfologi

Record 16 (d16) = sebutkan ciri - ciri dari klasifikasi makhluk hidup

berdasarkan anatomi

Record 17 (d17) = jelaskan tingkatan klasifikasi makhluk hidup

Record 18 (d18) = jelaskan tahapan klasifikasi makhluk hidup

Record 19 (d19) = jelaskan golongan klasifikasi system alami pada makhluk

hidup

Record 20 (d20) = jelaskan golongan klasifikasi system buatan pada makhluk

hidup

Record 21 (d21) = apa yang dimaksud kingdom / regnum pada klasifikasi

makhluk hidup

Page 62: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Record 22 (d22) = apa yang dimaksud filum / divisio pada klasifikasi makhluk

hidup

Record 23 (d23) = apa yang dimaksud kelas pada klasifikasi makhluk hidup

Record 24 (d24) = apa yang dimaksud ordo pada klasifikasi makhluk hidup

Record 25 (d25) = apa yang dimaksud famili pada klasifikasi makhluk hidup

Record 26 (d26) = apa yang dimaksud genus pada klasifikasi makhluk hidup

Record 27 (d27) = apa yang dimaksud spesies pada klasifikasi makhluk hidup

Proses selanjutnya adalah melakukan proses filtering untuk menghilang

kata-kata yang tidak penting untuk diberikan pembobotan. Maka kata-kata di input

dan record akan melakukan pembobotan sebagai berikut :

Query / Inputan = kingdom monera mirip hewan klasifikasi makhluk hidup

Record 1 (d1) = klasifikasi system kingdom

Record 2 (d2) = memperkenalkan klasifikasi kingdom makhluk hidup

Record 3 (d3) = contoh kingdom pada hewan di biologi

Record 4 (d4) = kingdom monera

Record 5 (d5) = kingdom monera mirip hewan pelajaran klasifikasi biologi

Record 6 (d6) = kingdom monera mirip tumbuhan pelajaran klasifikasi biologi

Record 7 (d7) = contoh makhluk hidup kingdom monera

Page 63: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Record 8 (d8) = klasifikasi makhluk hidup

Record 9 (d9) = tujuan klasifikasi makhluk hidup

Record 10 (d10) = manfaat klasifikasi makhluk hidup

Record 11 (d11) = tata nama ilmiah makhluk hidup

Record 12 (d12) = semua ciri klasifikasi makhluk hidup

Record 13 (d13) = ciri klasifikasi makhluk hidup berdasarkan persamaan

Record 14 (d14) = ciri klasifikasi makhluk hidup berdasarkan perbedaan

Record 15 (d15) = ciri dari klasifikasi makhluk hidup berdasarkan morfologi

Record 16 (d16) = ciri dari klasifikasi makhluk hidup berdasarkan anatomi

Record 17 (d17) = tingkatan klasifikasi makhluk hidup

Record 18 (d18) = tahapan klasifikasi makhluk hidup

Record 19 (d19) = golongan klasifikasi system alami makhluk hidup

Record 20 (d20) = golongan klasifikasi system buatan makhluk hidup

Record 21 (d21) = kingdom / regnum klasifikasi makhluk hidup

Record 22 (d22) = filum / divisio klasifikasi makhluk hidup

Record 23 (d23) = kelas klasifikasi makhluk hidup

Record 24 (d24) = ordo klasifikasi makhluk hidup

Page 64: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Record 25 (d25) = famili klasifikasi makhluk hidup

Record 26 (d26) = genus klasifikasi makhluk hidup

Record 27 (d27) = spesies klasifikasi makhluk hidup

Setelah melakukan filtering, maka dilakukan pembobotan dari hasil filtering

kata yang tidak penting. Rumus yang digunakan adalah rumus dari algoritma TF-

IDF untuk pembobotan. Contohnya pada inputan user untuk pembobotan inputan

user dengan record pertama (d1) yang ada di database.

Inputan user / query = kingdom monera mirip hewan klasifikasi makhluk hidup

Record 1 (d1) = klasifikasi system kingdom

Kata yang sama antara query dan record adalah dua kata, yaitu kingdom dan

klasifikasi TF, dengan menggunkan sifat BINARY yaitu sebanyak apapun kata

dari inputan user yang muncul di record database. Maka pembobotan tetap

terhitung 1, jika tidak ada maka terhitung 0. Pada kasus ini, kata kingdom dan

klasifikasi diberikan bobot masing-masing 1. Total kemunculan kingdom

dikeseluruhan record yang akan di berikan pembobotan adalah 8 record maka df

dari kingdom adalah 8 sedangkan df dari klasifikasi adalah 24. Untuk IDF yang

didapatkan maka hasil pembagian total record (27 record) yang akan dibobot dan

disimbolkan D dan total kemunculan kata disimbolkan df kemudian hasil tersebut

dilogaritmakan dengan basis 10.

Page 65: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Tabel 3.2. Total nilai pembobotan untuk inputan pertanyaan user terhadap

record pertanyaan

Untuk kata kingdom :

TF = 1

df= 8

IDF = log10(27/8) = 0.528274

W1 = TF*(IDF+1)

W1 = 1 * (0.528274 + 1)

W1 = 1.528274

Untuk kata klasifikasi :

TF = 1

df= 24

IDF = log10(27/24) = 0.0511525

W2 = TF*(IDF+1)

W2 = 1 * (0.0511525+ 1)

W2 = 1.0511525

Wtot = W1 + W2

Wtot = 1.528274 + 1.0511525

Wtot = 2.5794263

Maka total nilai pembobotan untuk inputan pertanyaan user terhadap record

pertanyaan pertama (d1) adalah 2.5794263.

Berikut table 3.3 perhitungan lengkap untuk setiap record pertanyaan yang ada

di dalam database.

Page 66: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Tabel 3.3. Perhitungan setiap recotd pertanyaan

Q kingd

om

mone

ra mirip

hew

an

klasifika

si

makhlu

k hidup

T

F

d1 1 0 0 0 1 0 0

d2 1 0 0 0 1 1 1

d3 1 0 0 1 0 0 0

d4 1 1 0 0 0 0 0

d5 1 1 1 1 1 0 0

d6 1 1 1 0 1 0 0

d7 1 1 0 0 0 1 1

d8 0 0 0 0 1 1 1

d9 0 0 0 0 1 1 1

d10 0 0 0 0 1 1 1

d11 0 0 0 0 1 1 1

d12 0 0 0 0 1 1 1

d13 0 0 0 0 1 1 1

d14 0 0 0 0 1 1 1

Page 67: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

d15 0 0 0 0 1 1 1

d16 0 0 0 0 1 1 1

d17 0 0 0 0 1 1 1

d18 0 0 0 0 1 1 1

d19 0 0 0 0 1 1 1

d20 0 0 0 0 1 1 1

d21 1 0 0 0 1 1 1

d22 0 0 0 0 1 1 1

d23 0 0 0 0 1 1 1

d24 0 0 0 0 1 1 1

d25 0 0 0 0 1 1 1

d26 0 0 0 0 1 1 1

d27 0 0 0 0 1 1 1

df 8 4 2 2 24 22 22

D/df 3.375 6.75 13.5 13.5 1.125 1.22727

3

1.227

273

Page 68: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

IDF 0.528

274

0.82

930

1.13

033

1.13

03

0.051152

5

0.08894

1

0.088

941

IDF+1 1.528

274

1.82

930

2.13

033

2.13

03

1.051152

5

1.08894

1

1.088

941 SUM (W)

Q kingd

om

mone

ra mirip

hew

an

klasifika

si

makhlu

k hidup

W

=

T

F

*

(I

D

F

+

1)

d1 1.528

274 0 0 0

1.051152

5 0 0 2.5794263

d2 1.528

274 0 0 0

1.051152

5

1.08894

1

1.088

941

4.75730846

6

d3 1.528

274 0 0

2.13

03 0 0 0

3.65860754

6

d4 1.528

274

1.82

930 0 0 0 0 0 3.35757755

d5 1.528

274

1.82

930

2.13

033

2.13

03

1.051152

5 0 0

8.66939760

9

d6 1.528

274

1.82

930

2.13

033 0

1.051152

5 0 0

6.53906384

1

Page 69: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

d7 1.528

274

1.82

930 0 0 0

1.08894

1

1.088

941

5.53545971

7

d8 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d9 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d10 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d11 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d12 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d13 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d14 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d15 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

Page 70: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

d16 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d17 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d18 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d19 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d20 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d21 1.528

274 0 0 0

1.051152

5

1.08894

1

1.088

941

4.75730846

6

d22 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d23 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d24 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

Page 71: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

d25 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d26 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

d27 0 0 0 0 1.051152

5

1.08894

1

1.088

941

3.22903468

9

Dari hasil pembobotan diatas , maka record d5 memiliki pembobotan lebih tinggi

dari yang lainnya. Maka keluaran jawaban dari input pertanyaan yang dimasukkan

oleh user adalah jawaban dari record d5

Jika pertanyaan yang di input oleh user telah diproses di database dan

setelah di proses tidak ada data/pertanyaan yang sesuai (dalam hal ini tidak ada

satupun nilai pembobotan disetiap record). Maka tahap selanjutnya yang akan

dilakukan adalah proses crawling/ mencari data di luar dari system database yang

nantinya bisa menjawab pertanyaan user.

3.6.2.2 Proses Crawling Website

Pada proses crawling pencarian data tidak dilakukan pada database sistem

melainkan di halaman yang ditargetkan untuk melakukan crawling.

Page 72: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Gambar 3.10. Flowchart dari proses crawling website

Pada tahap ini, sistem mengambil tag HTML pada website yang ingin di

crawling berdasarkan domain yang di targetkan. Setelah menargetkan domain yang

ingin di crawling data tersebut, proses selanjutnya melakukan filter tag-tag HTML

berdasarkan tag class dan id yang sudah tentukan. Selanjtnya, menyimpan text ke

dalam tag yang telah difilter sebelumnya ke dalam sebuah array, pada simulasi

disini menyimpan 2 jenis teks, yaitu teks untuk pertanyaan yang akan melakukan

proses pencocokan inputan dari user. Proses pencocokan sama seperti pencocokan

inputan user dan database. Pada proses ini, menampung jawaban yang akan

digunakan ketika pertanyaannya terpilih sebagai jawaban yang diberikan oleh user.

Berikut contoh pembobotan yang dilakukan pada setiap hasil crawling dan

setiap kata di input pertanyaan user.

Page 73: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Query / Inputan = jelaskan yang dimaksud dengan system pemerintahan

parlementer secara umum

Record 1 (d1) = pengertian umum system pemerintahan presidensial

Record 2 (d2) = pengertian umum system pemerintahan parlementer

Record 3 (d3) = perbedaan system pemerintahan parlementer

Record 4 (d4) = negara yang menerapkan system pemerintahan parlementer

Record 5 (d5) = negara yang menerapkan system pemerintahan presidensial

Record 6 (d6) = lembaga yang ada di system pemerintahan di indonesia

Sama seperti proses sebelumnya kata dicocokkan dengan record pada

database. Proses selanjutnya melakukan proses filtering untuk menghilang kata-

kata yang tidak penting untuk diberika pembobotan. Maka kata-kata di inputan dan

record yang akan dilakukan pembobotan adalah sebagai berikut :

Query / Inputan = system pemerintahan parlementer secara umum

Record 1 (d1) = secara umum system pemerintahan presidensial

Record 2 (d2) = secara umum system pemerintahan parlementer

Record 3 (d3) = perbedaan system pemerintahan parlementer presidensial

Record 4 (d4) = negara menerapkan system pemerintahan parlementer

Record 5 (d5) = negara menerapkan system pemerintahan presidensial

Page 74: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Record 6 (d6) = lembaga system pemerintahan Indonesia

Dari hasil filtering diatas maka diperoleh hasil pembobotan pada table 3.4

seperti dibawah.

Tabel 3.4. Hasil pembobotan dengan proses filtering

Q sistem pemerin

tahan

parlement

er secara umum

T

F

d1 1 0 0 1 1

d2 1 0 1 1 1

d3 1 0 1 0 0

d4 1 1 1 0 0

d5 1 1 0 0 0

d6 1 1 0 0 0

df 6 3 3 2 2

D/df 1 2 2 3 3

IDF 0 0.30102

9 0.301029

0.4771

2

0.4771212

5

IDF+

1 1

1.30102

9

1.3010299

9

1.4771

2

1.4771212

5

SUM

(W)

Page 75: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

W

=

T

F

*

(I

D

F

+

1)

d1 1 0 0 1.4771

2

1.4771212

5

3.95424250

9

d2 1 0 1.3010299

9

1.4771

2

1.4771212

5

5.25527250

5

d3 1 0 1.3010299

9 0 0

2.30102999

6

d4 1 1.30102

9

1.3010299

9 0 0

3.60205999

1

d5 1 1.30102

9 0 0 0

2.30102999

6

d6 1 1.30102

9 0 0 0

2.30102999

6

Dari proses perhitungan pembobotan tersebut dapat diambil keluaran dengan

pembobotan tertinggi yaitu record kedua (d2) sebagai jawaban dari input

pertanyaan user, setelah melakukan crawling.

Page 76: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB IV

HASIL DAN PEMBAHASAN

4.1 Hasil Penelitian

4.1.1 Hasil Proses Chatbot

Pada proses chatbot, penulis melakukan beberapa skenario pertanyaan yang

akan dijawab oleh sistem tersebut. Pada kasus ini, sistem penulis menginputkan

pertanyaan tetapi pertanyaan yang diinput beragam soal yang akan ditanyakan

seperti penjelasan, contoh, dan detail. Kemudian menginput tentang perbedaan dan

persamaannya, dan sekaligus perbandingan / persamaan dari dua pertanyaan dalam

satu inputan. Berikut hasil skenario yang diberikan.

● Hasil pertama

Menginputkan satu pertanyaan yang akan dijawab oleh sistem. Pertanyaan

tersebut diolah dalam beberapa metode yang akan dijawab oleh sistem berupa

output jawaban.

● Hasil kedua

Menginput satu pertanyaan beserta contoh dan penjelasan yang lebih detail

terkait pertanyaan tersebut.

● Hasil ketiga

Menginput satu pertanyaan ditambahkan dengan contoh dan penjelasan

yang lebih detail. Kemudian pertanyaan selanjutnya berbeda dari pertanyaan

Page 77: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

pertama. Jika pada proses user menginput ke sistem bahwa akan bertanya lebih

dari satu kali, maka sistem memberikan respon pertama yaitu apakah

pertanyaan user yang kedua berhubungan dengan inputan user selanjutnya.

Jika berhubungan, maka sistem menyimpan pertanyaan pertama ke dalam

historyn yang akan digunakan untuk menanyakan perbandingan ataupun

persamaan dengan soal yang selanjutnya.

● Hasil keempat

Menginput satu pertanyaan, kemudian menambahkan pertanyaan lagi,

setelah pertanyaan yang di input oleh user, maka inputan sebelumnya akan

tersimpan di history. Kemudian jika user melakukan inputan untuk pertanyaan

perbedaan ataupun persamaan maka sistem akan memberikan perbedaan /

persamaan dari dua inputan user tersebut. Terkhusus untuk persamaan, jika

keduanya tidak memiliki persamaan maka diberikan respon output / jawaban

tersebut tidak memiliki persamaan.

● Hasil kelima

Menginput pertanyaan yang bertujuan untuk membedakan dua

pembahasan yang berbeda oleh user. Pada proses ini, sistem akan mengenali

satu per satu dari pembahasan yang input. Selanjutnya, sistem membagi proses

tersebut dan mengubahnya menjadi query kemudian didapatkan jawabannya

setiap query yang di satukan untuk dijadikan sebuah output.

● Hasil keenam

Page 78: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Menginput pertanyaan yang bertujuan untuk mencari persamaan dari dua

pembahasan yang di input oleh user secara bersamaan. Prosesnya mirip dengan

mencari perbedaan, tetapi proses tersebut akan mengambil output dari table

yang khusus untuk persamaan setiap pembahasan. Jika setiap query tidak

memiliki persamaan satu sama lain. Maka keluaran dari sistem mengatakan

bahwa dua pembahasan tersebut tidak memiliki persamaan.

● Hasil ketujuh

Pada proses menggabungkan antara inputan user setiap pertanyaan,

kemudian menentukan perbedaan dan juga persamaan, lalu dapat menginput

pertanyaan terkait satu pembahasan dengan menambahkan contoh dan juga

detailnya. Pada proses ini dapat dilihat bagaimana sistem dapat menentukan

historynya pada setiap soal yang terus di input. Jika sistem mengidentifikasikan

pertanyaan diluar dari perbedaan dan persamaan. Maka, history dari sistem

tersebut hanya dapat mengingat satu pertanyaan sebelum saja.

4.1.2 Hasil Proses Pengujian Record Pada Database

User menginput di halaman chat terkait pertanyaan yang diperlukan dan

dijawab oleh sistem. Sehingga, ada beberapa tahapan yang akan dilakukan yaitu

mengecek langsung di database dengan menggunakan query biasa dan tahapan

melakukan pencocokan kata pada inputan user terhadap setiap record yang ada di

database. Pada pengujian ini user menginput pertanyaan sebanyak 30 secara

langsung yang akan diuji tingkat akurasi apabila menggunakan query sederhana dan

menggunakan metode pencocokan data. Melalui hasil pengujian ini maka

Page 79: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

memberikan tingkat akurasi terhadap penggunaan sistem. Setelah,melihat tingkat

akurasi dalam pencocokan data pertanyaan yang di input oleh user dan yang

terdapat di record database.

4.1.2.1 Hasil Pengujian Pencocokan Input User Dengan Database Secara

Langsung

Pada tahap ini, inputan dari user langsung dicek pada database menggunakan

query biasa yaitu,

Select * from database where inputan_user = record_database

Setelah melakukan query diatas maka setiap record di database diperiksa

setiap recordnya untuk mencari pertanyaan yang sama.

Tabel 4.1. Hasil pegujian pencocokan user dengan database

Pertanyaan Jawaban Valid

sebutkan klasifikasi

system kingdom

Dalam biologi, kerajaan (bahasa Inggris: Kingdom; Latin: regnum, pl. regna) adalah tingkatan paling atas dari tingkatan klasifikasi makhluk hidup. Khusus dalam sistem tiga domain, kingdom adalah satu tingkat di bawah domain. Sistem klasifikasi yang berkembang saat ini adalah membagi makhluk hidup menjadi lima kingdom. Adapun kelima kingdom ini terdiri dari Monera, Protista, Fungi, Plantae, dan Animalia. Ada empat dasar penempatan makhluk hidup ke dalam salah satu kingdom, yaitu ada atau tidaknya inti sel, banyaknya sel yang tampak, cara

YA

Page 80: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

pembuatan makanan, dan cara gerak makhluk hidup.

siapa yang

memperkenalkan

klasifikasi kingdom

makhluk hidup

C. Linnaeus. Olehnya, kelompok

makhluk hidup diklasifikasikan menjadi

dua kelompok, yakni animalia (hewan)

dan juga vegetabilia (tumbuhan).

Linnaeus memperkenalkan tentang

klasifikasi makhluk hidup dengan urutan

sebagai berikut (tertinggi ke terandah):

Kingdom – Filium (Hewan) / Divisio

(Tumbuhan) – Klass – Ordo – Famiia –

Genus – Spesies

YA

Pertanyaan Jawaban Valid

jelaskan tentang

kingdom monera

Makhluk hidup yang termasuk kelompok

kingdom monera, yaitu bakteri (misalnya

spirillum, basil, dan kokus) dan

sianobakteri (misalnya ganggang biru).

Anggota kingdom ini terdiri dari makhluk

hidup kecil (mikroorganisme) yang bersel

satu dengan struktur tubuh sangat

sederhana. Selnya tidak memiliki

membran inti (prokariotik) yang

YA

Page 81: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

melindungi inti sel. kelompok kingdom

monera hanya dapat dilihat dengan

menggunakan mikroskop.

Monera berkembang biak dengan

membelah diri secara langsung

(amitosis).

jelaskan tentang

kingdom protista

kingdom protista terdiri dari 2 macam :

a) Protista Mirip Hewan Protista adalah

makhluk hidup yang sederhana dan hidup

di tempat yang berair. Protista ada yang

bersel satu dan ada yang bersel banyak.

Anggota protista ada yang menyerupai

tumbuhan, menyerupai hewan, dan

menyerupai jamur. Anggota protista

dikatakan menyerupai tumbuhan karena

memperoleh makanan dengan cara

fotosintesis. Menyerupai hewan dan

jamur karena memperoleh makanan dari

organisme lain. Protista yang menyerupai

hewan di antaranya Amoeba dan

Paramaecium.

b) Protista Mirip Tumbuhan

Jenis Protista yang mirip tumbuhan

adalah Euglena viridis. Euglena viridis

mirip tumbuhan karena dapat membuat

YA

Page 82: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

makanan sendiri melalui proses

fotosintesis. Ciri-ciri Euglena viridis di

antaranya hidup di air tawar, berklorofil,

dan bergerak dengan flagel atau bulu

cambuk.

Pertanyaan Jawaban Valid

jelaskan tentang

kingdom protista mirip

hewan

Pertanyaan untuk Protista Mirip Hewan

Protista adalah makhluk hidup yang

sederhana dan hidup di tempat yang

berair. Protista ada yang bersel satu dan

ada yang bersel banyak. Anggota protista

ada yang menyerupai tumbuhan,

menyerupai hewan, dan menyerupai

jamur. Anggota protista dikatakan

menyerupai tumbuhan karena

memperoleh makanan dengan cara

fotosintesis. Menyerupai hewan dan

jamur karena memperoleh makanan dari

organisme lain. Protista yang menyerupai

hewan di antaranya Amoeba dan

Paramaecium.

YA

Page 83: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Pertanyaan Jawaban Valid

jelaskan tentang

kingdom protista mirip

tumbuhan

Penjelasan untuk Protista Mirip

Tumbuhan

Jenis Protista yang mirip tumbuhan

adalah Euglena viridis. Euglena viridis

mirip tumbuhan karena dapat membuat

makanan sendiri melalui proses

fotosintesis. Ciri-ciri Euglena viridis di

antaranya hidup di air tawar, berklorofil,

dan bergerak dengan flagel atau bulu

cambuk.

YA

jelaskan tentang

kingdom fungi / jamur

Fungi merupakan makhluk hidup kecil

(mikroorganisme) yang berperan sebagai

pemakan (konsumen) dan dekomposer

(pengurai). Fungi memperoleh makanan

dengan cara menyerap (mengabsorpsi)

sisa makhluk hidup yang telah mati.

Makhluk hidup yang termasuk fungi

memiliki ciri berinti sel, berdinding sel,

tidak memiliki klorofil, dan cara

memperoleh makanan dengan saprofit

dan parasit. Beberapa filum atau divisi

yang masuk dalam kingdom fungi adalah:

Divisi Phycomycetes,

Ascomycetes,Basidiomycetes,Deuterom

ycetes

YA

Page 84: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Pertanyaan Jawaban Valid

Jelaskan yang dimaksud

dengan zat makanan

mikro

Zat makanan mikro adalah zat makanan

yang diperlukan tubuh dalam jumlah

yang sedikit, meliputi vitamin dan

mineral

YA

Sebutkan dan jelaskan

tiga contoh penyakit

pada sistem pencernaan

manusia

a. Partotitis atau infeksi pada kelenjar

parotis. Gangguan ini sering disebut

penyakit gondong

b. Kolik adalah rasa nyeri pada perut

karena makan makanan yang

mengandung zat yang merangsang,

seperti cabai atau lada

c. Diare merupakan feses keluar dalam

bentuk encer karena adanya infeksi pada

kolon

YA

Jelaskan yang dimaksud

dengan defekasi

defekasi adalah proses pelepasan feses YA

Sebutkan dan jelaskan

dua jenis gangguan

pencernaan pada

lambung

a. Ulkus (tulang lambung) adalah radang

pada dinding lambung

b. Kolik adalah rasa nyeri pada perut

karena makan makanan yang

mengandung zat yang merangsang,

misalnya cabai dan lada.

YA

Sebutkan 3 ciri

mikroskop elektron

a. menggunakan elektron sebagai

pengganti cahaya YA

Page 85: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

b. bayangan dapat diperbesar hingga

sejuta kali

c. tidak bisa dipakai untuk mengamati

objek yang masih hidup

Apa perbedaan sel

prokariotik dan sel

eukariotik

Sel eukariotik mempunyai membran inti,

sedangkan sel prokariotik punya YA

Sebutkan bagian-bagian

sel bakteri beserta

fungsinya

a. dinding sel, sebagai pelindung dan

pemberi bentuk yang tetap pada sel

b. membran plasma, sebagai pelindung

molekular sel dari lingkungan di

sekitarnya

c. sitoplasma, mengandung enzim-enzim

yang berperan dalam metabolisme sel

d. mesosom, sebagai penghasil energi

e. ribosom, sebagai tempat sintesis

protein

f. DNA, sebagai pembawa informasi

genetik

g. RNA, sebagai pembawa kode-kode

genetik sesuai dengan pesanan DNA

YA

Pertanyaan Jawaban Valid

Sebutkan komponen

utama penyusun

sitoplasma

– cairan sel (sitosol)

YA

Page 86: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

– jaringan benang (filamen) dan serabut

yang saling berhubungan

– substansi simpanan dalam sitoplasma

– organel-organel sel

Sebutkan 3 faktor yang

mempengaruhi spesiasi

– domestikasi

– mekanisme isolasi

– poliploidi

YA

Apa yang dimaksud

dengan domestikasi dan

poliploidi

– Domestikasi merupakan usaha

pembudidayaan hewan dan tumbuhan

liar.

– Poliploidi adalah suatu kondisi pada

organisme tertentu yang memiliki lebih

dari sepasang kromosom.

YA

Jelaskan cabang biologi

ekologi adalah

hubungan timbal balik antara mahluk

hidup dengan lingkungan YA

Sebutkan 4 penyakit

pada tumbuhan yang

disebabkan oleh virus

– CMV menyerang timun

- BMV menyerang buncis

- TMV menyerang tembakau

- WMV menyerang gandum

YA

Page 87: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

jelaskan bakteri

berdasarkan cara

memperoleh makanan

autotrof : yaitu bakteri yang mampu

membuat makanan sendiri

Heterotrof : yaitu bakteri yang tidak

dapat membuat makanan sendiri,

makanan diperoleh dari mahluk hidup

lain.

YA

Tabel 4.2. Hasil akurasi

Total Siswa Jawaban Valid Jawaban Tidak

Valid Nilai

20 389 11 97.25%

Dari hasil yang telah diberikan oleh user, terkait 20 pertanyaan yang secara

acak. Adapun teknik dalam pengujian yang dilakukan yaitu pengujian akurasi

system dalam memberikan jawaban ke user. Berikut perhitungan akurasi

pertanyaan dari user disebut dengan formula (1)

Page 88: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = 𝐽𝑢𝑚𝑙𝑎ℎ𝑝𝑒𝑟𝑡𝑎𝑛𝑦𝑎𝑎𝑛𝑏𝑒𝑛𝑎𝑟

𝑡𝑜𝑡𝑎𝑙𝑝𝑒𝑟𝑡𝑎𝑛𝑦𝑎𝑎𝑛𝑥100%…(1)

Ada beberapa kendala yang terjadi saat melakukan penginputan pertanyaan,

yakni pertanyaan yang diluar dari mata pelajaran biologi dan pertanya yang

menggunakan kosa kata yang kurang jelas. Pada kolom valid memperlihatkan

tingkat akurasi dari jawaban yang diberikan oleh sistem ke user yang melakukan

inputan pertanyaan sebelumnya. Pada pengujian ini, tingkat valid yang didapatkan

dari 20 user yang melakukan inputan sebanyak 20 pertanyaan adalah 97.25%

4.1.3 Hasil Proses Pengujian Crawling

Proses ini dilakukan apabila proses pencocokan data di database tidak

menemukan pertanyaan yang mirip dengan inputan dari user. Jika hal seperti ini

terjadi, maka dilakukan proses crawling atau pengambilan data diluar dari

database, yaitu sistem website yang lain. Hal ini dilakukan untuk memberikan

jawaban ke user dengan mengusahakan lagi mencari di halaman website jika

didalam database tidak menemukan jawaban. Berikut data pengujian yang

dilakukan untuk melihat tingkat akurasi mendapatkan jawaban dengan

menggunakan metode crawling pada website dengan menguji 10 pertanyaan yang

di input oleh user.

Page 89: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Tabel 4.3. Hasil proses pengujian crawling

Pertanyaan Data Crawling yang mirip

berdasarkan TF-IDF

Akurasi jawaban

yang valid

Pengertian data

primer Jelaskan tentang data primer akurat

Pengertian dari data

sekunder Jelaskan tentang data sekunder akurat

Apa yang dimaksud

dengan data primer

georgrafi

Apakah data primer diperlukan

dalam penelitian geografis ? Tidak akurat

Ciri – ciri dari data

sekunder pelajaran

geografi

Apa yang menjadi ciri khas

dalam sebuah penelitian geografi Tidak akurat

Sebutkan manfaat

data sekunder

Apa manfaat menggunakan data

sekunder akurat

Jelaskan unsur

geosfer Sebutkan unsur-unsur geosfer akurat

Page 90: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Jelaskan tentang

pendekatan ruangan

Apakah yang dimaksud dengan

pendekatan keruangan ( Spatial

Approach )

akurat

Kenapa data harus

diverifikasi

Mengapa suatu data perlu

diverifikasi akurat

Jelaskan tentang

pergeseran lempeng

Jelaskan mengapa benua dan

samudra bergeser Tidak akurat

Jelaskan tentang

pergeseran lempeng

Bagaimana cara mengukur

pergeseran lempeng benua atau

samudra

Tidak akurat

Tabel 4.4. Hasil akurasi

Total Siswa Total Akurat

Jawaban

Total Tidak

Akurat Jawaban

Nilai

20 96 26 87%

Tabel diatas merupakan pertanyaan user yang tidak dapat di dalam database

sistem. Sehingga proses yang akan dilakukan menggunakan metode crawling untuk

mendapatkan jawaban dari pertanyaan tersebut. Dari hasil diatas dihitung dengan

Page 91: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

menggunakan formula 1, beberapa pertanyaan yang di input oleh user dan tidak

terdapat didatabase kemudian dilakukan pencarian jawaban dengan metode

crawling memiliki tingkat akurasi 87%. Hal ini disebabkan karena pertanyaan yang

ada diuser terdapat di website yang di crawling. Validasi akurasi jawaban

merupakan bentuk penilaian dari user apakah pertanyaan yang ditanyakan sesuai

dengan yang sistem berikan. Pada pengujian yang tidak akurat dikarenakan

keleluasaan user dalam menginput pertanyaan diluar pelajaran biologi, dimana di

website crawlingnya juga memiliki keterbatasan data pertanyaan.

4.2 Pembahasan

Dari beberapa hasil skenario / proses yang dilakukan dalam menginput

pertanyaan. Penyimpanan inputan sebelumnya berguna dalam hal pengambilan

keputusan untuk inputan selanjutnya, yaitu jika pada inputan selanjutnya user

meminta perbandingan ataupun persamaan dari setiap pembahasan. Maka

diperlukan data sebelumnya untuk melakukannya. Untuk mencari perbedaan dari

pertanyaan sekarang dan juga pertanyaan sebelumnya maka harus dipastikan bahwa

inputan sebelumnya masih ada / tersimpan di dalam history, karena jika tidak maka

keluaran / output di sistem akan mengatakan bahwa tidak ada yang bisa

dibandingkan. Jika diminta persamaan dari kedua pembahasan tersebut, maka

proses yang pertama adalah dengan mencocokkan tipe pembahasan dari setiap

inputan. Jika memiliki tipe pembahasan yang sama, sehingga akan di proses di tabel

persamaan yang sudah disiapkan sebelumnya.

Page 92: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Pada tahap pemilihan jawaban dari inputan yang diberikan oleh user

terhadap tabel database yang telah disiapkan. Dilakukan metode pembobotan kata

dengan menggunakan algoritma TF-IDF. Pada proses pembobotan tersebut akan

dipilih yang kata dari query inputan banyak bobotnya. Semakin banyak bobot yang

ada di query dengan pertanyaan yang sudah ada di database maka semakin besar

pula kesempatan pertanyaan yang didatabase akan menjadi output pada pertanyaan

user tersebut. Dalam hal ini, jika pada kasus yang sama terdapat banyak pertanyaan

yang ada di database yang terbobot, maka akan dilakukan pengurutan sesuai query

yang terbobot paling besar.

Jika pada pertanyaan yang di input oleh user tidak terdapat jawaban di

database. Maka dilakukan tahap crawling, yaitu proses scan di halaman website

untuk nantinya akan dikumpulkan data-data sesuai tag HTML yang telah

ditentukan. Kemudian, hasil data yang dikumpulkan akan dilakukan proses

pembobotan seperti proses sebelumnya yang menggunakan database, semakin

besar hasil pembobotan antara data crawling dengan data inputan user, maka data

tersebut akan di ambil dan dijadikan sebagai output dari pertanyaan user. Akan

tetapi jika jawaban dari proses query inputan user tidak ditemukan lagi. Maka akan

diberikan jawaban default yakni jawaban dari pertanyaan tersebut tidak ditemukan.

Banyak faktor yang mengakibatkan hal ini terjadi yaitu kurangnya data di database,

dan inputan dari user yang tidak bisa dimengerti oleh sistem sehingga sistem tidak

dapat memproses menggunakan metode pembobotan.

Page 93: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil analisis yang telah dilakukan dalam pengujian sistem

chatbot untuk layanan tanya jawab , maka penulis dapat disimpulkan bahwa:

1. Pemilihan jawaban dari database berdasarkan inputan pertanyaan dari

user dapat ditentukan dengan cara dilakukan pembobotan kata

menggunakan metode pencocokan di dalam algoritma TF-IDF.

Pencocokan digunakan untuk mencari kemiripan inputan pertanyaan dari

user terhadap record pertanyaan yang sudah disediakan di database yang

nantinya akan dikeluarkan sebagai jawaban. Didalam sistem ini juga bisa

mencari perbedaan dan persamaan terkait dua pembahasan yang di input

oleh user baik secara bersamaan / dua pembahasan dalam satu input

maupun satu per satu / di input satu pembahasan kemudian di input lagi

pembahasan yang lain.

2. Jika inputan pertanyaan user tidak ditemukan, maka dilakukan proses

crawling pada website forum yang telah ada untuk menentukan tag

HTML yang ingin di crawling / diambil data tagnya. Setelah semua data

dari tag HTML yang ditargetkan selesai, maka dilakukan proses yang

sama seperti pada database yaitu melakukan pembobotan pertanyaan

Page 94: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

dari user terhadap pertanyaan yang di dapat dari hasil crawling dengan

menggunakan metode pencocokan kata di dalam algoritma TF-IDF.

5.2 Saran

Sehubungan dengan selesainya proses pembuatan skripsi ini, penulis

bermaksud menyampaikan beberapa saran kepada para pembaca yakni:

1. Untuk pengembangan kedepannya bisa memberikan proses untuk

melakukan perbandingan dan persamaan dengan sebuah metode agar

nantinya sistem dapat berjalan dengan baik dan dapat berfikir sendiri

untuk mendapatkan jawaban.

2. Sistem yang telah dibuat penulis dapat dikembangkan menjadi suatu

sistem yang lebih terintegrasi dalam hal manajemen dan interaktif agar

bisa dimanfaatkan lebih maksimal oleh user.

3. Proses yang dibutuhkan dalam melakukan semua proses yang ada di

dalam sistem terbilang memakan waktu yang lama. Disarankan untuk

penelitian kedepannya berfokus pada peningkatan kecepatan proses dari

sistem namun tetap mendapatkan hasil akurat yang bagus.

Page 95: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

DAFTAR PUSTAKA

Dharwiyanti, Sri, 2003. Pengantar UML. http://ikc.dinus.ac.id/umum/yanti-

uml.php diakses pada tanggal 28 April 2017

elib.unikom.ac.id/files/disk1/449/jbptunikompp-gdl-etifahnim1-22448-9-13.bab-

i.pdf diakses tanggal 30 April 2017

Pujianto, 2009. Pengertian Sistem dan Analisis Sistem. Universitas Gadjah Mada:

Yogyakarta

Akbar, Martha, 2012. Analisis Perbandinn Metode Pembobotan Kata TF.-IDF dan

TR-RF Terhada Performasi Kategori Teks. Universitas Telkom : Jakarta

Castillo, C. 2004. EffectiveWeb Crawling. (p. i). Dept. of Science: University of

Chile

Hasyim, Nur. 2003. HTML dan CSS. http://ikc.dinus.ac.id/umum/nurhasyim-

htmlcss.php diakses 30 Agutus 2015

http://dir.unikom.ac.id/s1-final-project/fakultas-teknik-dan-ilmu-

komputer/manajemen-informatika/2011/jbptunikompp-gdl-ninarostin-

25930/6-unikom-n-i.pdf/pdf/6-unikom-n-i.pdf diakses 30 April 2017

Widigdo, Anon Kuncoro, 2003. Dasar Pemrograman PHP dan MySQL:

Yogyakarta

A. Goker, D. John. 2009. Information Retrieval : Searching in 21st Century,

Chippenham: Wiley

Page 96: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Raharjo, Budi. Dkk. 2014. Modul Pemrograman WEB (HTML, PHP, & MySQL.

Bandung : Modula.

Heriyanto. 2015. Pencarian Dokumen Teks Arsip Surat dengan Metode Indexing

dan Query. semnasIF 2015 UPN “Veteran” Yogyakarta

Fadli . 2012. “Pengertian Javascript Dan Fungsinya Didalam Pemograman

Situs/Web”. 12 Desember 2017. http://infopengertian.biz/pengertian-

javascript-dan-fungsinya-didalam-pemograman-situsweb.html

Sandi , Anugerah . 2016. “Referensi Belajar Framework VueJS 2” . 20 Desember

2017. https://www.codepolitan.com/referensi-belajar-framework-vuejs-2-

5a123ba594aea

Nugroho , Muchammad Dwi Cahyo .2017. “Pengertian Laravel:Fitur, Kelebihan

dan Kekurangan”. http://www.ayongoding.id/pengertian-laravel/

Irmansayah, Faried. 2003.Pengantar Database : Jakarta

Widigdo, Anon Kuncoro, 2003. Dasar Pemrograman PHP dan MySQL:

Yogyakarta

S. Wallace, Richard. (2010) Pandorabots. [Online]. http://www.pandorabots-

.com/botmaster/en/

Page 97: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

LAMPIRAN

1. SourceCodeBotManLaravel(PHP)

<?php

namespaceApp\Http\Controllers;

useBotMan\BotMan\BotMan;

useIlluminate\Http\Request;

useIlluminate\Support\Facades\DB;

useIlluminate\Support\Facades\Session;

useApp\Conversations\ExampleConversation;

useIlluminate\Foundation\Inspiring;

useBotMan\BotMan\Messages\Incoming\Answer;

useBotMan\BotMan\Messages\Outgoing\Question;

useBotMan\BotMan\Messages\Outgoing\Actions\Button;

useBotMan\BotMan\Messages\Attachments\Image;

useBotMan\BotMan\Messages\Outgoing\OutgoingMessage;

useScrapper;

classBotManControllerextendsController

{

/**

*PlaceyourBotManlogichere.

*/

Page 98: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

publicfunctionhansip()

{

$botman=app('botman');

$botman->hears('{data}',function($bot,$data){

$bot->reply('tes');

});

$botman->listen();

}

publicfunctionhandle()

{

$botman=app('botman');

$botman->hears('{data}',function($bot,$data){

$dataAwalanTanya=0;

$data_sapaan_arr=[];

$list_tdk_penting=[];

//tes

$data_kata_tot=[];

$data_kata_tot1=[];

$contohTanyaList=[];

$detailTanyaList=[];

$daftarTanyaPerbedaan=[];

$perbedaanTanyaList=[];

$kataTdkPenting=DB::table('kt_tdk_penting')->get();

foreach($kataTdkPentingas$kataTdkPentings){

Page 99: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

array_push($list_tdk_penting,$kataTdkPentings->kata);

}

$dataKataTdkPenting=implode('|',$list_tdk_penting);

$db_sapaan=DB::table('tb_sapaan')->get();

foreach($db_sapaanas$sapaan){

array_push($data_sapaan_arr,$sapaan->kata);

}

$data_sapaan=implode('|',$data_sapaan_arr);

$tanyaSpesifikDetail=DB::table('tanya_spesifik')->where('jenis_tanya','detail')->get();

foreach($tanyaSpesifikDetailas$detailTanya){

array_push($detailTanyaList,$detailTanya->tanya);

}

$daftarTanyaDetail=implode('|',$detailTanyaList);

$tanyaSpesifikContoh=DB::table('tanya_spesifik')->where('jenis_tanya','contoh')->get();

foreach($tanyaSpesifikContohas$contohTanya){

array_push($contohTanyaList,$contohTanya->tanya);

}

$daftarTanyaContoh=implode('|',$contohTanyaList);

$perbedaanSpesifikDetail=DB::table('tanya_spesifik')->where('jenis_tanya','perbedaan')->get();

foreach($perbedaanSpesifikDetailas$perbedaanTanya){

array_push($perbedaanTanyaList,$perbedaanTanya->tanya);

}

$daftarTanyaPerbedaan=implode('|',$perbedaanTanyaList);

//endquerypadadatabasedandeklarasivariabel

Page 100: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

if(stristr((string)$data_sapaan,$data,true)&&stristr($data,'bertanya')===false){

if(empty(Session::get('sapaan'))){

Session::put('sapaan',1);

}else{

$nilai=Session::get('sapaan')+1;

Session::put('sapaan',$nilai);

}

if(stristr($data,'assalamualaikum')||stristr($data,'heik')){

$bot->reply('waalaikumsalamwrwb,adayangbisasayabantu?');

}else{

if(Session::get('sapaan')>2){

$bot->reply('janganterusmenyapa,kamusudahkerenkokhehe');

}else{

$jawabChat=$this->jawaban_chat('sapaan');

$bot->reply($jawabChat);

}

}

}elseif(stristr($data,'bertanya')){

$dataExplode=explode('',$data);

if(!empty(Session::get('soal'))){

if(empty(Session::get('bertanyaRelasi'))){

$chatExt=(count($dataExplode)<3)?'pertanyaanandakurangjelas,tapisayakiraandainginbertanya.':'';

$jawabChat=$chatExt.'apakahadahubungannyadengansoalberikutnya?';

Session::put('bertanyaRelasi',true);

}else{

$bot->reply('andatetapbertanyatentangsoalsebelumnya');

$jawabChat='silahkanbertanyaterkaitsoalsebelumnya';

Page 101: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

}else{

$chatExt=(count($dataExplode)<3)?'pertanyaanandakurangjelas,tapisayakiraandainginbertanya.':'';

$jawabChat=$chatExt.''.$this->jawaban_chat('bertanya');

}

$bot->reply($jawabChat);

}elseif(stristr($data,'terimakasih')||stristr('thank|thanks|arigato',$data)){

Session::flush();//janganpakaiflush,hapussajayangmemangutkdihapus

$jawabChat=$this->jawaban_chat('terima_kasih');

$bot->reply($jawabChat);

}elseif(stristr($data,'kurangjelas')||stristr($data,'tidakjelas')||stristr($data,'kurangdimengerti')||stristr($data,'tidakmengerti')){

$jawabChat=$this->jawaban_chat('kritik');

$bot->reply($jawabChat);

}else{//elsebreakdown

if(!empty(Session::get('bertanyaRelasi'))){

if(stristr($data,'ya')){

Session::forget('bertanyaRelasi');

$bot->reply('ok,silahkanbertanyaterkaitsoalsebelumnya');

}elseif(stristr($data,'tidak')){

Session::forget('soal');

Session::forget('bertanyaRelasi');

$bot->reply('tidakyah?oke,silahkanbertanyaterkaitsoalyanglain');

}else{

$bot->reply('mohonjawabdenganbenar,apakahandamaubertanyaterkaitsoalyangsamaatautidak?');

}

}else{

Page 102: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$hasil=explode('',$data);

if(!empty(Session::get('soal'))&&count($hasil)>1){

if(empty(Session::get('soal2'))){//jikasoal2belumada

$hasilSes=explode('',Session::get('soal'));

if(stristr($daftarTanyaContoh,$data)){

Session::put('levelSoal','contoh');

array_push($hasilSes,'contoh');

if(!empty(Session::get('jenis_tanya'))){Session::forget('jenis_tanya');}

$kata_tdk_singkat=$this->levenshteinProses($kataTdkPenting,$hasilSes);

if(count($kata_tdk_singkat)>0){

for($a=0;$a<count($kata_tdk_singkat);$a++){

array_push($data_kata_tot,$kata_tdk_singkat[$a]);

array_push($data_kata_tot1,$kata_tdk_singkat[$a]);

}

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

$bot->reply((string)$pilihan);

}elseif(stristr($daftarTanyaDetail,$data)){

Session::put('levelSoal','detail');

array_push($hasilSes,'detail');

if(!empty(Session::get('jenis_tanya'))){Session::forget('jenis_tanya');}

$kata_tdk_singkat=$this->levenshteinProses($kataTdkPenting,$hasilSes);

if(count($kata_tdk_singkat)>0){

for($a=0;$a<count($kata_tdk_singkat);$a++){

array_push($data_kata_tot,$kata_tdk_singkat[$a]);

array_push($data_kata_tot1,$kata_tdk_singkat[$a]);

}

Page 103: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

$bot->reply((string)$pilihan);

}else{

if(stristr($data,'beda')){

if(!empty(Session::get('jenis_tanya'))){Session::forget('jenis_tanya');}

$kata_tdk_singkat=$this->levenshteinProses($kataTdkPenting,$hasil);

if(count($kata_tdk_singkat)>0){

for($a=0;$a<count($kata_tdk_singkat);$a++){

array_push($data_kata_tot,$kata_tdk_singkat[$a]);

array_push($data_kata_tot1,$kata_tdk_singkat[$a]);

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

$bot->reply(Session::get('jawaban'));

$bot->reply('sedangkan');

$bot->reply((string)$pilihan);

}else{

$bot->reply('pertanyaanandayangkeduatidakjelas');

}

}else{

$pertanyaan1Soal=$this->pertanyaan1Soal($data,$kataTdkPenting,$hasil,$dataKataTdkPenting);

Session::put('soal2',$data);

Session::put('jawaban2',$pertanyaan1Soal);

$bot->reply($pertanyaan1Soal);

}

}

}else{//jikasoal2sudahada

Page 104: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$perbedaan2Soal=DB::table('prefiks_kalimat')->where('jenis_prefiks','perbedaan')->get();

$persamaan2Soal=DB::table('prefiks_kalimat')->where('jenis_prefiks','persamaan')->get();

foreach($perbedaan2Soalas$bedaSoal){

if(stristr($data,$bedaSoal->prefiks)){

$poinBeda=1;

$prefiksSama=$bedaSoal->prefiks;

break;

}else{

$poinBeda=0;

}

}

foreach($persamaan2Soalas$samaSoal){

if(stristr($data,$samaSoal->prefiks)){

$poinSama=1;

$prefiksSama=$samaSoal->prefiks;

break;

}else{

$poinSama=0;

}

}

if($poinBeda==1){

$awweh=$this->perbedaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting);

if($awweh=='kosong'){

//pakaikanlevehsteinuntukmenghilangkankatatidakpenting

$dataPerbedaan='dariduasoaltersebutperbedaanantara'.Session::get('soal').'dengan'.Session::get('soal2').'yaitusebagaiberikut.'.Session::get('jawaban').'sedangkan'.Session::get('jawaban2');

$bot->reply($dataPerbedaan);

}else{

Page 105: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

if($awweh=='2SoalAda'){

$bot->reply('perbedaandari2pernyataandiatasadalah'.Session::get('jawaban').'sedangkan'.Session::get('jawaban2'));

}else{

$bot->reply('tolongberikanduasoaluntukditanyakanperbedaanya');

}

}

}elseif($poinSama==1){

$persamaan=$this->persamaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting);

$bot->reply($persamaan);

}else{

$pertanyaan1Soal=$this->pertanyaan1Soal($data,$kataTdkPenting,$hasil,$dataKataTdkPenting);

Session::forget('soal2');

Session::forget('jawaban2');

Session::put('soal',$data);

Session::put('jawaban',$pertanyaan1Soal);

$bot->reply($pertanyaan1Soal);

}

//endjikasoal2sudahada

}

}else{

//berikanjugapersamaan

$perbedaan2Soal=DB::table('prefiks_kalimat')->where('jenis_prefiks','perbedaan')->get();

$persamaan2Soal=DB::table('prefiks_kalimat')->where('jenis_prefiks','persamaan')->get();

foreach($perbedaan2Soalas$bedaSoal){

if(stristr($data,$bedaSoal->prefiks)){

$poinBeda=1;

$prefiksSama=$bedaSoal->prefiks;

Page 106: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

break;

}else{

$poinBeda=0;

}

}

foreach($persamaan2Soalas$samaSoal){

if(stristr($data,$samaSoal->prefiks)){

$poinSama=1;

$prefiksSama=$samaSoal->prefiks;

break;

}else{

$poinSama=0;

}

}

if($poinBeda==1){

$perbedaan=$this->perbedaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting);

if($perbedaan=='2SoalAda'){

$bot->reply('berikutperbedaandari2soaltersebut');

$bot->reply(Session::get('jawaban'));

$bot->reply('sedangkan');

$bot->reply(Session::get('jawaban2'));

}elseif($perbedaan=='kosong'){

$bot->reply('tolongberikanduasoaluntukditanyakanperbedaanya2'.Session::get('soal').'='.Session::get('soal2'));

}else{

$bot->reply($perbedaan);

}

}elseif($poinSama==1){

Page 107: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$persamaan=$this->persamaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting);

$bot->reply($persamaan);

}

else{

$pertanyaan1Soal=$this->pertanyaan1Soal($data,$kataTdkPenting,$hasil,$dataKataTdkPenting);

Session::put('jawaban',$pertanyaan1Soal);

Session::put('soal',$data);

$bot->reply($pertanyaan1Soal);

}

}

}

}

});

$botman->listen();

}

/*

====================================================================

prosesuntukbertanyaterkait1soaltertentu

====================================================================

*/

publicfunctionpertanyaan1Soal($data,$kataTdkPenting,$hasil,$dataKataTdkPenting)

{

$data_kata_tot=[];

$data_kata_tot1=[];

if(count($hasil)>1){

if(!empty(Session::get('jenis_tanya'))){Session::forget('jenis_tanya');}

Page 108: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$kata_tdk_singkat=$this->levenshteinProses($kataTdkPenting,$hasil);

if(count($kata_tdk_singkat)>0){

for($a=0;$a<count($kata_tdk_singkat);$a++){

array_push($data_kata_tot,$kata_tdk_singkat[$a]);

array_push($data_kata_tot1,$kata_tdk_singkat[$a]);

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

//disinitadisessionputuntuksoaldanjawaban1

return$pilihan;

}else{

$dataHasil='kosong';

$data_testingRequest=$this->requestJawaban($dataHasil);

return$data_testingRequest;

}

}else{

$data_testingRequest=$this->requestJawaban($hasil[0]);

return$data_testingRequest;

}

$data_kata_tot=[];

$data_kata_tot1=[];

}

/*

====================================================================

prosesmelakukanpersamaandari2soal

====================================================================

*/

publicfunctionpersamaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting)

{

Page 109: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$data_kata_tot=[];

$data_kata_tot1=[];

if(stristr($data,'dan')){

$dataBeda='dan';

}elseif(stristr($data,'dengan')){

$dataBeda='dengan';

}elseif(stristr($data,'atau')){

$dataBeda='atau';

}else{

$dataBeda='kosong';

}

if($dataBeda=='kosong'){

return$dataBeda;

}else{

$dataSama=explode($dataBeda,$data);

$dataSamaPertama=$dataSama[0];

$dataSamaKedua=$prefiksSama.''.$dataSama[1];

//prosesdatapembedapertama

$hasilBeda1=explode('',$dataSamaPertama);

Session::put('jenis_tanya','persamaan');

$hasilDataPembeda1=$this->levenshteinProses($kataTdkPenting,$hasilBeda1);

if(count($hasilDataPembeda1)>0){

for($a=0;$a<count($hasilDataPembeda1);$a++){

array_push($data_kata_tot,$hasilDataPembeda1[$a]);

array_push($data_kata_tot1,$hasilDataPembeda1[$a]);

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

Session::put('jawaban',$pilihan);

Page 110: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

Session::put('soal',$dataSamaPertama);

}

//prosesdatapembedakedua

$data_kata_tot=[];

$data_kata_tot1=[];

$hasilBeda2=explode('',$dataSamaKedua);

$hasilDataPembeda2=$this->levenshteinProses($kataTdkPenting,$hasilBeda2);

if(count($hasilDataPembeda2)>0){

for($a=0;$a<count($hasilDataPembeda2);$a++){

array_push($data_kata_tot,$hasilDataPembeda2[$a]);

array_push($data_kata_tot1,$hasilDataPembeda2[$a]);

}

$pilihans=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

Session::put('jawaban2',$pilihans);

Session::put('soal2',$dataSamaKedua);

}

}

if(Session::get('jawaban')==Session::get('jawaban2')){

//masukkedatabase

$jawabanSpesifik=DB::table('persamaan_jawaban')->where('jenis_persamaan',Session::get('jawaban'))->first();

if(!empty($jawabanSpesifik)){

return$jawabanSpesifik->jawab_persamaan;

}else{

return'datakosong';

}

}else{

return'tidakterdapatpersamaanantaraduapernyataantersebut';

}

Page 111: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

/*

====================================================================

prosesmelakukanperbedaandari2soal

====================================================================

*/

publicfunctionperbedaan2soals($data,$kataTdkPenting,$prefiksSama,$dataKataTdkPenting)

{

$data_kata_tot=[];

$data_kata_tot1=[];

if(stristr($data,'dan')){

$dataBeda='dan';

}elseif(stristr($data,'dengan')){

$dataBeda='dengan';

}elseif(stristr($data,'danjuga')){

$dataBeda='danjuga';

}else{

$dataBeda='kosong';

}

if($dataBeda=='kosong'){

return$dataBeda;

}else{

$dataPembeda=explode($dataBeda,$data);

$dataPembedaPertama=$dataPembeda[0];

$dataPembedaKedua=$prefiksSama.''.$dataPembeda[1];

//prosesdatapembedapertama

$hasilBeda1=explode('',$dataPembedaPertama);

Page 112: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

if(!empty(Session::get('jenis_tanya'))){Session::forget('jenis_tanya');}

$hasilDataPembeda1=$this->levenshteinProses($kataTdkPenting,$hasilBeda1);

if(count($hasilDataPembeda1)>0){

for($a=0;$a<count($hasilDataPembeda1);$a++){

array_push($data_kata_tot,$hasilDataPembeda1[$a]);

array_push($data_kata_tot1,$hasilDataPembeda1[$a]);

}

$pilihan=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

Session::put('jawaban',$pilihan);

Session::put('soal',$dataPembedaPertama);

}

//prosesdatapembedakedua

$data_kata_tot=[];

$data_kata_tot1=[];

$hasilBeda2=explode('',$dataPembedaKedua);

$hasilDataPembeda2=$this->levenshteinProses($kataTdkPenting,$hasilBeda2);

if(count($hasilDataPembeda2)>0){

for($a=0;$a<count($hasilDataPembeda2);$a++){

array_push($data_kata_tot,$hasilDataPembeda2[$a]);

array_push($data_kata_tot1,$hasilDataPembeda2[$a]);

}

$pilihans=$this->prosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1);

Session::put('jawaban2',$pilihans);

Session::put('soal2',$dataPembedaKedua);

}

if(empty(Session::get('soal'))||empty(Session::get('soal2'))){

if(empty(Session::get('soal'))&&!empty(Session::get('soal2'))){

$jawabKosong='mohonmaaf,soal|'.Session::get('soal').'|tidakjelasbagikami';

Page 113: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}elseif(!empty(Session::get('soal'))&&empty(Session::get('soal2'))){

$jawabKosong='mohonmaaf,soal|'.Session::get('soal2').'|tidakjelasbagikami';

}else{

$jawabKosong='mohonmaafkeduasoaltidakkamimengertikarenasoalnyatidakterlalujelasbagikami';

}

return$jawabKosong;

}else{

return'2SoalAda';

}

}

}

/*

====================================================================

proseslevenshteinnyauntuknormalisasikalimat

====================================================================

*/

publicfunctionlevenshteinProses($kataTdkPenting,$hasil)

{

$kata_tdk_singkat=[];

$poin=0;

for($i=0;$i<count($hasil);$i++){

foreach($kataTdkPentingas$kt_tdk_penting){

$levTdkPenting=levenshtein($hasil[$i],$kt_tdk_penting->kata,1,3,3);

if($levTdkPenting<5){

$poin=1;

//$bot->reply(''.$hasil[$i].'+'.$kt_tdk_penting->kata.'poinnya'.$levTdkPenting);

}else{

//$bot->reply(''.$hasil[$i].'-'.$kt_tdk_penting->kata.'poinnya'.$levTdkPenting);

Page 114: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

}

if($poin!=1){

$kataDasar=DB::table('indeks')->get();

$shortest=-1;

foreach($kataDasaras$dasarKata){

$cekKata1=preg_replace("/^(di|[ks]e)/",'',$hasil[$i]);

$cekKata=preg_replace('/(i|an)$/','',$cekKata1);

$pjgKataHasil=strlen($hasil[$i]);

$pjgKataDasar=strlen($dasarKata->kata);

if($pjgKataHasil>$pjgKataDasar-3&&$pjgKataHasil<$pjgKataDasar+3){

$lev=levenshtein($cekKata,$dasarKata->kata,1,2,3);

if($lev==0){

$closest=$dasarKata->kata;

$shortest=0;

array_push($kata_tdk_singkat,$closest);

//$bot->reply($hasil[$i].'berubahmenjadi'.$closest.'withpoin'.$lev);

break;

}

if($lev<=$shortest||$shortest<0){

if($lev<5){

$closest=$dasarKata->kata;

array_push($kata_tdk_singkat,$closest);

}

$shortest=$lev;

//$bot->reply($hasil[$i].'berubahmenjadi'.$dasarKata->kata.'dgnpoin'.$lev.'='.$shortest);

}

}

Page 115: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

}

$poin=0;

}

return$kata_tdk_singkat;

}

/*

====================================================================

prosesrequestjawaban/fallback

====================================================================

*/

publicfunctionrequestJawaban($dataHasil)

{

if($dataHasil=='kosong'){

return'kamitelahmecarididatabasekamidansudahmengecekdiluardarisistemkami,tapikamitidakmenemukanjawabanyangandatanyakan,ataumungkintolongtanyakandengankosakatayangmudahdimengerti';

}else{

$b=array(

"mohonmaaf,kata".$dataHasil.'tidakjelasuntukkamijawab',

$dataHasil."yangandamaksudtidakkamimengerti",

"mohonbertanyadenganmemperjelaskata".$dataHasil,

"sayatidaktaumaujawabapakalauhanyakata".$dataHasil

);

$rand_answer_b=array_rand($b,1);

return$b[$rand_answer_b];

}

}

Page 116: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

/*

====================================================================

prosesTF-IDFuntukpembobotankata

====================================================================

*/

publicfunctionprosesTFIDF($data_kata_tot,$dataKataTdkPenting,$data_kata_tot1)

{

$ambilSingkatan=implode('',$data_kata_tot);

$status=false;

$angka=0;

$poin=0;

$kemunculanDiDokumen=0;

$kemunculanKataDiDokumen=[];

$pilihan=[];

$pilihan_crawl=[];

$tfKemunculan=[];

$tfKemunculanAll=[];

$pembobotanTFIDF=0;

if(!empty(Session::get('levelSoal'))){//diatasharusdihandlekalausoalnyabaru

$hasils=DB::table('tanyajawab')->where('tingkat_soal',Session::get('levelSoal'))->get();

$hasils_2=DB::table('tanyajawab')->where('tingkat_soal',Session::get('levelSoal'))->get();

}else{

$hasils=DB::table('tanyajawab')->where('tingkat_soal','jelaskan')->get();

$hasils_2=DB::table('tanyajawab')->where('tingkat_soal','jelaskan')->get();

}

$apakahTelahMasuk=false;

Page 117: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$nomorHasils3=0;

foreach($hasilsas$hasil){

for($i=0;$i<count($data_kata_tot1);$i++){

if(stristr($hasil->tanya,$data_kata_tot1[$i])!==false){

if($apakahTelahMasuk==false){

if(array_key_exists($data_kata_tot1[$i],$tfKemunculanAll)){

$tfKemunculanAll[$data_kata_tot1[$i]]+=1;

}else{

$tfKemunculanAll[$data_kata_tot1[$i]]=1;

}

$apakahTelahMasuk=true;

}

}

$apakahTelahMasuk=false;

}

}

$nomorHasils2=0;$nomorHasils2Fix=0;

foreach($hasils_2as$tambahan){

$tfKemunculan[]=array();

for($j=0;$j<count($data_kata_tot);$j++){

if(stristr($tambahan->tanya,$data_kata_tot[$j])!==false){

//disiniadaperulanganyangmelarangbeberapakatautkdiberikanpembobotan

if(stristr($dataKataTdkPenting,$data_kata_tot[$j])){

if(array_key_exists($data_kata_tot[$j],$tfKemunculan[$nomorHasils2Fix])){

Page 118: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$tfKemunculan[$nomorHasils2Fix][$data_kata_tot[$j]]+=0;

}else{

$tfKemunculan[$nomorHasils2Fix][$data_kata_tot[$j]]=0;

}

}else{

if(array_key_exists($data_kata_tot[$j],$tfKemunculan[$nomorHasils2Fix])){

$tfKemunculan[$nomorHasils2Fix][$data_kata_tot[$j]]+=1;

}else{

$tfKemunculan[$nomorHasils2Fix][$data_kata_tot[$j]]=1;

}

}

}

if($j==count($data_kata_tot)-1){

if(!empty($tfKemunculan[$nomorHasils2Fix])){

for($o=0;$o<count($data_kata_tot);$o++){

if(array_key_exists($data_kata_tot[$o],$tfKemunculan[$nomorHasils2Fix])){

$tfFix=$tfKemunculan[$nomorHasils2Fix][$data_kata_tot[$o]];

$idf=log10(count($hasils)/$tfKemunculanAll[$data_kata_tot[$o]]);

$tf_idf=$tfFix*$idf;

$pembobotanTFIDF+=$tf_idf;

}

}

$pilihan[]=array($tambahan->id,$pembobotanTFIDF,$tambahan->jawab,$tambahan->jenis_persamaan);

$pembobotanTFIDF=0;

$nomorHasils2Fix++;

}

}

}

Page 119: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$nomorHasils2++;

}

if(sizeof($pilihan)>1){

for($i=0;$i<sizeof($pilihan);$i++){

for($j=0;$j<(sizeof($pilihan)-1);$j++){

if($pilihan[$j][1]<$pilihan[$j+1][1]){

$temp1=$pilihan[$j+1][1];

$pilihan[$j+1][1]=$pilihan[$j][1];

$pilihan[$j][1]=$temp1;

$temp2=$pilihan[$j+1][0];

$pilihan[$j+1][0]=$pilihan[$j][0];

$pilihan[$j][0]=$temp2;

$temp3=$pilihan[$j+1][2];

$pilihan[$j+1][2]=$pilihan[$j][2];

$pilihan[$j][2]=$temp3;

$temp4=$pilihan[$j+1][3];

$pilihan[$j+1][3]=$pilihan[$j][3];

$pilihan[$j][3]=$temp4;

}

}

}

if($pilihan[0][1]==0){

$tdkAdaJawaban=array(

"cobatanyakanpertanyaanyangjelas,sayatidakmengertimaksuddaripertanyaanmu",

"mungkinpertanyaannyaharusjelasagarsayadapatmemberikanjawabanyangtepat",

Page 120: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

"maaf,pertanyaanandaambigubagisaya.Cobaberikapertanyaanyangjelas"

);

$rand_answer_tdkAdaJawaban=array_rand($tdkAdaJawaban,1);

return$tdkAdaJawaban[$rand_answer_tdkAdaJawaban];

}else{

if(!empty(Session::get('jenis_tanya'))){

return$pilihan[0][3];

}else{

return$pilihan[0][2];

}

}

}

if(sizeof($pilihan)==1){

if(!empty(Session::get('jenis_tanya'))){

return$pilihan[0][3];

}else{

return$pilihan[0][2];

}

}

if(empty($pilihan)){

$hasilCrawling=$this->crawlingProses($ambilSingkatan,$dataKataTdkPenting);

return(string)$hasilCrawling;

}

}

publicfunctioncrawlingProses($ambilSingkatan,$dataKataTdkPenting)

{

$data_kata_tot=explode('',$ambilSingkatan);

Page 121: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$penambahanCrawling=0;$tfKemunculanAllCrawl=[];$apakahTelahMasukCrawl=false;

$crawler=Scrapper::request('GET','http://localhost/belajaronlineku/forum/');

$url=$crawler->filter('li.list_pertanyaan')->each(function($node){

$pertanyaan=$node->filter('p.pertanyaan')->text();

$jawaban=$node->filter('p.jawaban')->text();

return[

'pertanyaan'=>$pertanyaan,

'jawaban'=>$jawaban

];

$penambahanCrawling+=1;

});

for($a=0;$a<count($url);$a++){

for($i=0;$i<count($data_kata_tot);$i++){

if(stristr($url[$a]['pertanyaan'],$data_kata_tot[$i])!==false){

if($apakahTelahMasukCrawl==false){

if(array_key_exists($data_kata_tot[$i],$tfKemunculanAllCrawl)){

$tfKemunculanAllCrawl[$data_kata_tot[$i]]+=1;

}else{

$tfKemunculanAllCrawl[$data_kata_tot[$i]]=1;

}

$apakahTelahMasukCrawl=true;

}

}

$apakahTelahMasukCrawl=false;

}

Page 122: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

$nomorHasils2Crawl=0;$nomorHasils2FixCrawl=0;$pembobotanTFIDFCrawl=0;$pilihanCrawl=[];

for($b=0;$b<count($url);$b++){

$tfKemunculanCrawl[]=array();

for($j=0;$j<count($data_kata_tot);$j++){

if(stristr($url[$b]['pertanyaan'],$data_kata_tot[$j])!==false){

if(stristr($dataKataTdkPenting,$data_kata_tot[$j])){

if(array_key_exists($data_kata_tot[$j],$tfKemunculanCrawl[$nomorHasils2FixCrawl])){

$tfKemunculanCrawl[$nomorHasils2FixCrawl][$data_kata_tot[$j]]+=0;

}else{

$tfKemunculanCrawl[$nomorHasils2FixCrawl][$data_kata_tot[$j]]=0;

}

}else{

if(array_key_exists($data_kata_tot[$j],$tfKemunculanCrawl[$nomorHasils2FixCrawl])){

$tfKemunculanCrawl[$nomorHasils2FixCrawl][$data_kata_tot[$j]]+=1;

}else{

$tfKemunculanCrawl[$nomorHasils2FixCrawl][$data_kata_tot[$j]]=1;

}

}

}

if($j==count($data_kata_tot)-1){

if(!empty($tfKemunculanCrawl[$nomorHasils2FixCrawl])){

for($o=0;$o<count($data_kata_tot);$o++){

if(array_key_exists($data_kata_tot[$o],$tfKemunculanCrawl[$nomorHasils2FixCrawl])){

$tfFixCrawl=$tfKemunculanCrawl[$nomorHasils2FixCrawl][$data_kata_tot[$o]];

$idfCrawl=log10(count($url)/$tfKemunculanAllCrawl[$data_kata_tot[$o]]);

Page 123: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

$tf_idfCrawl=$tfFixCrawl*$idfCrawl;

$pembobotanTFIDFCrawl+=$tf_idfCrawl;

}

}

$pilihanCrawl[]=array($pembobotanTFIDFCrawl,$url[$b]['jawaban']);

$pembobotanTFIDFCrawl=0;

$nomorHasils2FixCrawl++;

}

}

}

$nomorHasils2Crawl++;

}

if(sizeof($pilihanCrawl)>1){

for($i=0;$i<sizeof($pilihanCrawl);$i++){

for($j=0;$j<(sizeof($pilihanCrawl)-1);$j++){

if($pilihanCrawl[$j][0]<$pilihanCrawl[$j+1][0]){

$temp1=$pilihanCrawl[$j+1][1];

$pilihanCrawl[$j+1][1]=$pilihanCrawl[$j][1];

$pilihanCrawl[$j][1]=$temp1;

$temp2=$pilihanCrawl[$j+1][0];

$pilihanCrawl[$j+1][0]=$pilihanCrawl[$j][0];

$pilihanCrawl[$j][0]=$temp2;

}

}

}

return$pilihanCrawl[0][1];

Page 124: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

//$bot->reply($pilihanCrawl[0][1]);

}elseif(sizeof($pilihanCrawl)==1){

return$pilihanCrawl[0][1];

//$bot->reply($pilihanCrawl[0][1]);

}else{

return'kamitelahmencaridiberbagailuardarireferensikami,tapimasihbelumjugamendapattitikterang.jawabannyasulitdimengertiolehkami';

//$bot->reply('kamitelahmencaridiberbagailuardarireferensikami,tapimasihbelumjugamendapattitikterang.jawabannyasulitdimengertiolehkami');

}

}

publicfunctionjawaban_chat($tipe)

{

$jawab_user=[];

$jawabanChat=DB::table('jawaban_chat')->where('tipe_chat',$tipe)->get();

foreach($jawabanChatas$jawab){

array_push($jawab_user,$jawab->jawaban_chat);

}

$jawabRandom=array_rand($jawab_user,1);

return$jawab_user[$jawabRandom];

//$a=array(

//"hai,selamatdatangdiaidu,adayangbisakamibantu?",

//"selamatdatang,adayanginginsayabantu?",

//"halo,sayaaiduyangakanmembantuandadalamprosestanyajawab",

//"haihai,selamatdatang,semogaharimumenyenangkan",

//);

//$rand_answer_a=array_rand($a,1);

//$bot->reply($a[$rand_answer_a]);

}

Page 125: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

/**

*@return\Illuminate\Contracts\View\Factory|\Illuminate\View\View

*/

publicfunctiontinker()

{

returnview('tinker');

}

/**

*Loadedthroughroutes/botman.php

*@paramBotMan$bot

*/

publicfunctionstartConversation(BotMan$bot)

{

$bot->startConversation(newExampleConversation());

}

}

2. SourceCodeBotManVueJS(Javascript)<template>

<div>

<divclass="arrow"></div>

<ulclass="ChatLog"id="textareaid">

<liclass="ChatLog__entry"v-for="messageinmessages":class="{'ChatLog__entry_mine':message.isMine}">

<imgclass="ChatLog__avatar"src="/logo.png"/>

<pclass="ChatLog__message">

{{message.text}}

Page 126: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

<imgclass="ChatLog__message__image":src="message.attachment.url"v-if="message.attachment.type==='image'"/>

<videocontrolsclass="ChatLog__message__image"height="160"v-if="message.attachment.type==='video'"autoplay="">

<source:src="message.attachment.url"type="video/mp4">

</video>

<audiocontrolsclass="ChatLog__message__image"v-if="message.attachment.type==='audio'"autoplay="">

<source:src="message.attachment.url"type="audio/mp3">

</audio>

</p>

<divv-if="message.original.type==='actions'">

<divclass="btn"v-for="actioninmessage.original.actions"

@click="performAction(action.value,message.original)">

<imgv-if="action.image_url":src="action.image_url"style="max-height:25px"/>

{{action.text}}

</div>

</div>

</li>

</ul>

<inputtype="text"class="ChatInput"@keyup.enter="sendMessage"v-model="newMessage"placeholder="katakansesuatupadaku">

<buttonid="inputChat">Input</button>

</div>

</template>

Page 127: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

<style>

#inputChat{

padding:10px;

border-radius:50%;

width:15%;

height:45px;

float:left;

}

input.ChatAttachment{

width:0.1px;

height:0.1px;

opacity:0;

overflow:hidden;

position:absolute;

z-index:-1;

}

.ChatAttachment+label{

cursor:pointer;

height:25px;

display:inline-block;

border-radius:5px;

background-color:white;

border:none;

padding:10px;

}

input.ChatInput{

width:80%;

Page 128: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

float:left;

height:25px;

border-radius:5px;

border:none;

padding:10px;

}

.btn{

display:block;

padding:5px;

border-radius:5px;

margin:5px;

min-width:100px;

background-color:lightgrey;

}

ul.ChatLog{

list-style:none;

}

.ChatLog{

height:600px;

overflow:scroll;

margin:0auto;

padding:0px!important;

}

.ChatLog.ChatLog__entry{

margin:.5em;

Page 129: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

}

.ChatLog__entry{

display:flex;

flex-direction:row;

align-items:flex-end;

max-width:100%;

}

.ChatLog__entry.ChatLog__entry_mine{

flex-direction:row-reverse;

}

.ChatLog__avatar{

flex-shrink:0;

flex-grow:0;

z-index:1;

height:50px;

width:50px;

border-radius:25px;

}

.ChatLog__entry.ChatLog__entry_mine

.ChatLog__avatar{

display:none;

}

Page 130: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

.ChatLog__entry.ChatLog__message{

position:relative;

margin:012px;

}

.ChatLog__entry.ChatLog__message__image{

max-width:100%;

}

.ChatLog__entry.ChatLog__message::before{

position:absolute;

right:auto;

bottom:.6em;

left:-12px;

height:0;

content:'';

border:6pxsolidtransparent;

border-right-color:#ddd;

z-index:2;

}

.ChatLog__entry.ChatLog__entry_mine.ChatLog__message::before{

right:-12px;

bottom:.6em;

left:auto;

border:6pxsolidtransparent;

border-left-color:#08f;

}

Page 131: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

.ChatLog__message{

background-color:#ddd;

padding:.5em;

border-radius:4px;

font-weight:lighter;

max-width:70%;

}

.ChatLog__entry.ChatLog__entry_mine.ChatLog__message{

border-top:1pxsolid#07f;

border-bottom:1pxsolid#07f;

background-color:#08f;

color:#fff;

}

</style>

<script>

constaxios=require('axios');

exportdefault{

props:{

apiEndpoint:{

default:'/botman',

},

userId:{

default:+(newDate()),

},

Page 132: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

},

data(){

return{

messages:[],

newMessage:null

};

},

mounted(){

//letcontrol=document.getElementById("attachment");

//control.addEventListener("change",()=>{

//constfile=control.files[0];

//if(file){

//lettype=file.type.split('/')[0];

//constreader=newFileReader();

//if(type!=='video'&&type!=='audio'&&type!=='image'){

//type='file';

//}

//reader.addEventListener("load",()=>{

//this._addMessage(null,{

//type,

//url:reader.result

//},true);

//this.callAPI(null,false,type);

Page 133: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

//control.value='';

//},false);

//reader.readAsDataURL(file);

//}

//},false);

},

methods:{

callAPI(text,interactive=false,attachment=null,callback){

letdata=newFormData();

constpostData={

driver:'web',

userId:this.userId,

message:text,

attachment,

interactive,

//attachment_data:document.getElementById('attachment').files[0]

};

Object.keys(postData).forEach(key=>data.append(key,postData[key]));

axios.post(this.apiEndpoint,data).then(response=>{

constmessages=response.data.messages||[];

messages.forEach(msg=>{

this._addMessage(msg.text,msg.attachment,false,msg);

Page 134: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

});

if(callback){

callback(response.data);

}

});

},

performAction(value,message){

this.callAPI(value,true,null,(response)=>{

message.actions=null;

});

},

_addMessage(text,attachment,isMine,original={}){

this.messages.push({

'isMine':isMine,

'user':isMine?' ':' ',

'text':text,

'original':original,

'attachment':attachment||{},

});

varelement=document.getElementById("textareaid");

element.scrollTop=element.scrollHeight;

},

sendMessage(){

letmessageText=this.newMessage;

this.newMessage='';

Page 135: Perancangan E-Teacher pada Chatbot sebagai layanan tanya ...

if(messageText==='clear'){

this.messages=[];

return;

}

this._addMessage(messageText,null,true);

this.callAPI(messageText);

setTimeout(function(){

varelement=document.getElementById("textareaid");

element.scrollTop=element.scrollHeight;

},1000);

}

}

}

</script>