implementasi pembentukan kalimat valid pada sistem chatbot
Post on 02-Jan-2022
7 Views
Preview:
TRANSCRIPT
Implementasi Pembentukan Kalimat Valid Pada
Sistem Chatbot
TUGAS AKHIR
Disusun dalam rangka memenuhi salah satu persyaratan
Untuk menyelesaikan program Strata-1 Departemen Teknik Informatika
Fakultas Teknik Universitas Hasanuddin
Makassar
Disusun Oleh
ARMIANI PUTRI
D42114016
DEPARTEMEN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS HASANUDDIN
MAKASSAR
2018
ii
iii
ABSTRAK
Bahasa sebagai bagian terpenting dalam kehidupan manusia untuk
berkomunikasi dalam bentuk tulisan maupun lisan. Sehingga dalam
percakapan secara tertulis belum tahu persis dengan baik dan benar dalam
tata Bahasa Indonesia yang mulai dilupakan akibat perkembangan Bahasa
populer. User sering mencampurkan tata Bahasa tanpa memperhatikan
kalimat yang digunakan. Selain itu, dalam percakapan sering dilakukan
kesalahan dengan mempersingkat kata sehingga dapat menyebabkan arti
kata tersebut tidak sesuai dengan yang diinginkan oleh user dalam
percakapan. Oleh sebab itu, maka penulis beinisiatif untuk menerapkan
proses pembentukan kalimat valid pada sistem chatbot yang bertujuan untuk
mempermudah apabila user menggunakan kata singkatan maupun
kesalahan pengetikan (typo) dalam percakapan menggunakan chatbot.
Sistem diimplementasikan menggunakan Algoritma Levenshtein dalam
pengkoreksian kata yang mengandung unsur kesalahan dengan
menggunakan metode Approximate String Matching yang berfungsi untuk
menghitung jumlah proses yang dibutuhkan dan membanding antara kata
target yang memenuhi dengan memilih bobot yang terkecil. Pada proses
pengujian yang dilakukan menghasilkan tingkat akurasi tertinggi 90% dari
empat pengujian dengan data sebanyak 40 kalimat.
Keywords : Bahasa Indonesia, Algoritma Levenshtein, Approximate
String Matching, Typographical Error, Chatbot
iv
KATA PENGANTAR
Assalamu Alaikum Wr. Wb.
Dengan memanjatkan puji syukur kehadirat Tuhan Yang Maha Esa yang telah
melimpahkan segala rahmat-Nya kepada penulis sehingga Tugas Akhir dengan judul
“IMPLEMENTASI PEMBENTUKAN KALIMAT VALID PADA SISTEM CHATBOT” dapat
diselesaikan sebagai salah satu syarat dalam menyelesaikan jenjang Strata-1 pada
Departemen Teknik Informatika Fakultas Teknik Universitas Hasanuddin.
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) Allah SWT atas segala kuasa-Nya.
2) Kedua Orang tua saya, Bapak M. Arsyad dan Ibu Hasmida M, yang selalu
memberikan dukungan, doa, dan semangat serta selalu sabar dalam
mendidik saya sejak kecil serta saudara saya Armansyah dan Nur Aliyah
Zhakina;
3) Bapak Dr. Amil Ahmad Ilham, ST., M.IT, selaku Ketua Departemen
Teknik Informatika Fakultas Teknik Universitas Hasanuddin;
4) Bapak Dr. Amil Ahmad Ilham, ST., M.IT, selaku pembimbing 1 dan Bapak
Dr. Eng. Zulkifli Tahir, S.T., M.Sc, yang selalu menyediakan waktu,
tenaga, perhatian, pikiran dan ide dalam penyusunan Tugas Akhir;
v
5) Bapak dan Ibu Dosen serta Staf Departemen Teknik Informatika
Universitas Hasanuddin;
6) Terima kasih untuk teman- teman Sarjana Sukses, Winda Astiyanti, Saqiraz
Nurbaitil Atik Cahyati, Fitriani Idrus, Nurindasari, Rizka Iriyanti.
7) Keluarga LAB Cloud Computing Unhas yang telah memberikan dukungan
dan diskusi progress penyusunan dalam Tugas Akhir;
8) Terima kasih kepada teman kost seperjuangan saya, Adzhani Riska Putri,
Riska Savitri, Tiwi Nursafitri, Winda Astiyanti;
9) Terima kasih kepada Trio Gowa, Zulfahmi Haeril, Muh. Fachrial, dan
David Renhard;
10) Keluarga Twister atas doa dan semangat yang siberikan selama ini;
11) Terima kasih kepada teman SMA saya, Nur Permatasari, Rita Wahdania
Saragi, Nurul Octaviani, Andi Fitratul Ramadhani, yang sampai sekarang
memberikan motivasi dan semangat;
12) Kepada teman pasangan Tugas Akhir saya Muh. Aryandi yang selalu
membantu dan memberikan solusi dalam penyusunan Tugas Akhir;
13) Keluarga angkatan 2014 Departemen Teknik Informatika FT UH atas
semua bantuan dan semangat yang diberikan selama ini;
14) Teman-teman Rectifier FT UH atas dukungan dan semangat yang diberikan
selama ini;
15) Orang-orang berpengaruh lainnya yang tanpa sadar telah menjadi inspirasi
penulis.
vi
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, Agustus 2018
Penulis
vii
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 .............................................................................. 3
1.3 Tujuan Penelitian .............................................................................. 3
1.4 Manfaat Penelitian ........................................................................... 4
1.5 Batasan Masalah Penelitian .............................................................. 4
1.6 Sistematika Penulisan ........................................................................ 5
BAB II TINJAUAN PUSTAKA ................................................................................... 6
viii
2.1 Pengertian Kalimat ............................................................................. 6
2.2 Teks .................................................................................................... 7
2.3 Kata Baku Bahasa Indonesia ............................................................... 8
2.4 Typographical Error ............................................................................ 8
2.5 Algoritma Levenshtein ....................................................................... 9
2.6 Langkah – Langkah Algoritma Levenshtein ........................................ 10
2.7 Approximate String Matching ............................................................ 12
2.8 MySQL ................................................................................................ 14
2.9 Bahasa Pemprograman ...................................................................... 15
2.10 XAMPP ............................................................................................. 19
BAB III METODOLOGI PENELITIAN ........................................................................ 21
3.1 Tahapan Penelitian............................................................................. 21
3.2 Waktu dan Lokasi Penelitian ............................................................. 22
3.3 Pengumpulan Data ............................................................................ 22
3.4 Instrumen Penelitian .......................................................................... 22
3.5 Perancangan Implementasi Sistem .................................................... 23
3.6 Analisis Kinerja Sistem ........................................................................ 28
BAB IV HASIL DAN PEMBAHASAN ......................................................................... 31
4.1 Hasil Penelitian ................................................................................... 31
ix
4.2 Pembahasan ...................................................................................... 49
BAB V PENUTUP ................................................................................................... 53
A. Kesimpulan ......................................................................................... 53
B. Saran ................................................................................................... 54
DAFTAR PUSTAKA ................................................................................................ 55
LAMPIRAN ............................................................................................................ 57
x
DAFTAR GAMBAR
Nomor halaman
Gambar 2.1 Pseudocode Algoritma Levenstein Distance ................................... 12
Gambar 2.2 MySQL (My Strukture Query Language ) ........................................ 14
Gambar 2.3 PHP (Perl Hypertext Preprocessor) ....................................... 15
Gambar 2.4 JavaScript ............................................................................... 17
Gambar 2.5 XAMPP................................................................................... 19
Gambar 3.1 Diagram tahapan penelitian .................................................... 21
Gambar 3.2 Proses input - output ............................................................... 23
Gambar 3.3 Proses kalimat ......................................................................... 24
Gambar 3.4 Flowxhart Levenshtein ........................................................... 26
xi
DAFTAR TABEL
Nomor halaman
Tabel 3.1 Tabel Matriks Edit Distance ........................................................ 29
Tabel 4.1 Proses peleburan kalimat / tokonezing ......................................... 31
Tabel 4.2 Proses identifikasi kesalahan kata ................................................ 32
Tabel 4.3 Matriks Edit Distance .................................................................. 32
Tabel 4.4 Jumlah Data Uji .......................................................................... 34
Tabel 4.5 Rincian Hasil pengujian sistem pada kalimat pertanyaan............ 36
Tabel 4.6 Rincian Hasil pengujian sistem pada kalimat pertanyaan............ 39
Tabel 4.7 Rincian Hasil pengujian sistem pada kalimat pertanyaan............ 42
Tabel 4.8 Rincian hasil pengujian sistem dengan data uji chatbot .............. 45
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Bahasa sebagai bagian penting dari kehidupan manusia untuk
berkomunikasi, dalam bentuk tulisan maupun lisan. Dalam penulisan tata bahasa
Indonesia memiliki dua klasifikasi kata berdasarkan tata ejaannya yaitu, kata baku
dan kata tidak baku. Penggunaan kata baku itu sendiri digunakan pada situasi yang
formal, sedangkan kata tidak baku sering digunakan dalam percakapan sehari-hari.
Faktor kebiasaan inilah, yang membuat seseorang sulit untuk membedakan mana
yang menjadi kalimat baku dan tidak baku.
Trend komunikasi telah berkembang sangat pesat dengan berkembangnya
teknologi saat ini. Dimana komunikasi dapat melalui aplikasi messenger atau video
call. Seperti yang telah kita ketahui saat ini, banyak pengguna dalam melakukan
percakapan tertulis belum tahu persis dengan baik dan benar tata bahasa Indonesia.
Mereka sering melakukan kesalahan dengan mencampurkan bahasa baku dan
bahasa populer atau mempersingkat kata karena kurangnya pemahaman mereka
tentang tata bahasa.
Menurut CEO Octane Al Matt Schicht, Chatbot merupakan sebuah layanan
yang didukung sebuah peraturan (mekanisme program) atau kecerdasan buatan
yang berinteraksi dengan pengguna melalui antarmuka chatting. Chatbot akan
menjadi salah satu trend teknologi paling atraktif. Salah satu yaitu chatbot dalam
pendidikan yang akan menjadi alat pembelajaran yang sangat berguna.
2
Dalam chatbot itu sendiri dilakukan percakapan antar manusia dan
computer, sehingga diperlukan metode. Metode yang digunakan yaitu Natural
Language Processing (Pemrograman Bahasa Alami) yang merupakan pembuatan
program yang memiliki kemampuan untuk memahami bahasa manusia. Tujuan dari
pemrograman bahasa alami adalah melakukan proses pembuatan model komputasi
dari bahasa sehingga dapat terjadi suatu interaksi antara manusia dan komputer
dengan perantara bahasa alami (Nisa,dkk. 2015).
Salah satu kesalahan dalam suatu penulisan yaitu typographical error.
Typographical error merupakan kesalahan yang terjadi pada saat proses mengetik
teks dan dapat mengubah arti dari suatu kata bahkan arti dari suatu kalimat.
Kesalahan penulisan pada umumnya disebabkan karena kedekatan letak keyboard,
slip jari, ataupun dua karakter yang letaknya tertukar (Arina,dkk. 2018).
Akibat dari kesalahan ketik atau lebih dikenal dengan sebutan typo tersebut,
menyebabkan kerugian yang berakibat fatal. Dimana salah satu website
Liputan6.com memberikan informasi bahwa “Gara-Gara Typo Bikin Rugi Jutaan
Dolar, 7 Kasus Ini Buktinya”. Dalam informasi tersebut mengatakan bahwa dengan
satu huruf maupun tanda baca yang memiliki kesalahan dapat menyebabkan
perusahaan atau suatu buku merugi yang sangat tinggi. Dimana salah satunya
kesalahan ketik pada mata uang di sebuah negara. Pada tahun 2008, Chile salah
menuliskan nama negaranya sendiri pada mata uang yang menjadi ‘Cile’.
Kesalahan tersebut baru diketahui dan dilaporkan secara resmi pada akhir 2009.
3
Dari kesalahan itu, perusahaan melakukan pemecatan secara massal dan segera
menyimpan koin yang memiliki kesalahan tersebut.
Sehingga, menurut Al-Ma’ruf dkk (dalam Nugrahani 2015) kesalahan-
kesalahan berbahasa Indonesia pada umumnya dapat dikategorikan dalam tiga hal,
yaitu (1) kesalahan karena struktur (tata bahasa), (2) diksi (pilihan kata), (3)
kesalahan karena kerancuan logika, dan (4) kesalahan karena ejaan.
Sehingga berdasarkan uraian tersebut penulis melakukan penelitian yang
diberi judul “Implementasi Pembentukan Kalimat Valid Pada Sistem Chatbot”.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas, penulis merumuskan permasalahan yaitu :
1. Bagaimana metode mengubah kata singkat pada sistem chatbot ?
2. Bagaimana mengimplementasikan pembentukan kalimat valid pada sistem
chatbot ?
1.3 Tujuan Penelitian
Tujuan dari penulisan ini adalah :
1. Untuk mengetahui metode yang dilakukan dalam mengubah kata singkat
pada sistem chatbot.
2. Untuk mengetahui suatu kalimat valid atau tidak sesuai pertanyaan yang
diinput pada sistem chatbot.
4
1.4 Manfaat Penelitian
Manfaat dari tugas akhir ini adalah :
1. Untuk memudahkan sistem chatbot dalam mendapatkan jawaban yang
diinginkan oleh user.
2. Mempermudah user dalam penginput kalimat pertanyaan pada sistem
chatbot tanpa harus menggunakan kalimat yang yang tidak singkat atau
terstruktur.
1.5 Batasan Masalah Penelitian
Batasan masalah dalam penelitian ini adalah :
1. Kata yang diidentifikasi berupa kata dalam bahasa Indonesia.
2. Tidak dapat mengidentifikasi berupa perhitungan.
3. Menggunakan kalimat pertanyaan.
4. Inputan berupa kata singkatan.
5. Belum dapat mengidentifikasi simbol, karakter, dan lain-lain.
6. Database tentang pembelajaran Biologi Sekolah Menengah Atas (SMA).
5
1.6 Sistematika Penulisan
Untuk mempermudahkan penulisan agar pembahasan yang disajikan lebih
sistematis, maka laporan ini dibagi dalam lima bab, isi masing-masing diuraikan
secara singkat dibawah ini :
BAB I PENDAHULUAN
Bab ini berisikan latar belakang, rumusan masalah, tujuan penelitian,
manfaat penelitian, batasan masalah dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini berisi landasan teori yang berhubungan dengan pengkoreksian
kesalahan pengejaan dan metode yang digunakan.
BAB III METODOLOGI PENELITIAN
Bab ini berisi implementasi, dan penerapan algoritma yang diterapkan.
BAB IV HASIL DAN PEMBAHASAN
Bab ini dibahas tentang hasil penelitian dan pembahasan.
BAB V PENUTUP
Bab ini berisi kesimpulan yang didapatkan dari hasil penelitian dan saran-
saran untuk pengembangan selanjutnya.
6
BAB II
TINJAUAN PUSTAKA
2.1. Pengertian Kalimat
Arti kalimat secara leksikal atau arti kamus bahasa Indonesia adalah:
a. Kalimat adalah susunan kata atau kelompok kata yang teratur dan
mengandung maksud atau pikiran yang jelas.
b. Kalimat adalah satuan bahasa yang berdiri sendiri dan tidak merupakan
bagian dari kesatuan yang lebih besar yang lain yang diakhiri dengan
intonasi final, terdiri atas satu atau lebih klausa.
c. Kalimat adalah kesatuan ujar yang mengungkapkan suatu konsep pikiran,
perasaan dan perkataan.
d. Kalimat adalah satuan bahasa terkecil, dalam wujud lisan atau tulisan yang
mengungkapkan pikiran yang utuh. Dalam wujud lisan kalimat diucapkan
dengan suara naik turun, dan keras lembut, disela jeda, dan diakhiri dengan
intonasi akhir. Dalam wujud tulisan berhuruf latin kalimat dimulai dengan
huruf kapital dan diakhiri dengan tanda titik. (.), tanda tanya (?) dan tanda
seru (!).
Berikut ini ada beberapa pengertian yang dikemukakan oleh para ahli mengenai
arti dari kalimat:
a. Menurut Cook, 1971; Elson dan Picket, 1969
Kalimat merupakan satuan bahasa yang secara relative dapat berdiri-sendiri,
mempunyai pola intonasi akhir dan terdiri-dari atau klausa.
7
b. Menurut Bloomfield, 1955
Kalimat adalah suatu bentuk linguistis, yang tidak termasuk ke dalam suatu
bentuk yang lebih besar karena merupakan suatu konstruksi gramatikal.
c. Menurut Hockett, 1985
Menyatakan bahwa kalimat adalah suatu konstitut atau bentuk yang bukan
konstituen; suatu bentuk gramatikal yang tidak termasuk ke dalam konstruksi
gramatikal lain.
d. Menurut Lado (1968)
Mengatakan bahwa kalimat adalah satuan terkecil dari ekspresi lengkap.
Pendapat lado dipertegas lagi oleh Sutan Takdir Alisyahbana (1978) yang
mengatakan bahwa kalimat adalah satuan bentuk bahasa yang terkecil, yang
mengucapkan suatu pikiran yang lengkap.
e. Menurut Ramlan (1996)
Mengatakan bahwa kalimat adalah satuan gramatikal yang dibatasi oleh adanya
jeda panjang yang diserta nada akhir turun atau naik. (Gatot,dkk. 2002 )
2.2. Teks
Dalam teori Bahasa apa yang dinamakan teks tidak lebih dari himpunan huruf
yang membentuk kata dan kalimat, dirangkai dengan sistem tanda yang disepakati
oleh masyarakat sehingga sebuah teks ketika dibaca bisa mengungkapkan makna
yang dikandungnya (Riadi, 2015).
8
2.3. Kata Baku Bahasa Indonesia
Bahasa baku merupakan salah satu bentuk ragam bahasa yang tercermin dari
penggunaan kaidah yang benar meliputi ejaan, lafal, struktur dan pemakaiannya.
Bahasa baku digunakan dalam situasi resmi yang menjadi acuan atau model oleh
masyarakat pemakai bahasa. Bahasa Indonesia baku termasuk salah satu ragam
bahasa Indonesia yang bentuk bahasanya telah diterima, difungsikan dan dipakai
sebagai model oleh masyarakat Indonesia secara luas. Oleh karena itu kata baku
dalam bahasa baku sangat penting penggunaannya (Yeny.2015).
2.4. Typographical Error
Typographical error merupakan kesalahan yang terjadi pada saat proses
mengetik teks dan dapat mengubah arti dari suatu kata bahkan arti dari suatu
kalimat. Istilah ini mencakup kesalahan karena kegagalan mekanis atau slip tangan
atau jari, dan juga timbul akibat ketidaktahuan penulis seperti kesalahan ejaan.
Typographical error dapat disebabkan misalnya, jari menekan dua tombol
keyboard yang berdekatan secara bersamaan. Typographical error ini bervariasi
mulai dari kesalahan ketik bisa sampai kesalahan dalam tatanan bahasa yang
digunakan atau bahkan pengertian dari kata tersebut. Kesalahan-kesalahan tersebut
dikategorikan ke dalam 2 jenis yaitu non-word error dan realword error. Non-word
error adalah error yang tidak terdapat makna didalamnya sedangkan pada real-
word error, kata yang tertulis bernilai benar atau bisa disebut mempunyai arti dalam
kamus namun tidak dimaksudkan dalam kalimat tersebut maupun mempunyai arti
9
yang berbeda dan bahkan kalimat tersebut memiliki tata bahasa yang salah
(Naradhipa et al., 2011).
2.5 Algoritma Levenshtein
Algoritma Levenshtein distance ditemukan oleh ilmuan asal Rusia bernama
Vladimir Levenshtein pada tahun 1963, algoritma ini juga disebut dengan algoritma
edit distance. Perhitungan edit distance didapatkan dari matriks yang digunakan
untuk menghitung jumlah perbedaan string antara dua string. Sebagai contoh hasil
penggunaan algoritma ini, string “komputer” dan “computer” memiliki distance 1
karena hanya perlu dilakukan satu operasi saja untuk mengubah satu string ke string
yang lain. Dalam kasus dua string di atas, string “computer” dapat menjadi
“komputer” hanya dengan melakukan satu penukaran karakter “c” menjadi “k”.
Algoritma Levenshtein distance digunakan secara luas dalam berbagai bidang,
misalnya mesin pencari, pengecek ejaan (spell checking), pengenal pembicaraan
(speech recognition), pengucapan dialek, analisis DNA, pendeteksi pemalsuan, dan
lain-lain. Algoritma ini menghitung jumlah operasi string paling sedikit yang
diperlukan untuk mentransformasikan suatu string menjadi string yang lain.
Algoritma Levenshtein distance bekerja dengan menghitung jumlah minimum
pentranformasian suatu string menjadi string lain yang meliputi penghapusan,
penyisipan, dan penukaran. Selisih perbedaan antar string dapat diperoleh dengan
memeriksa apakah suatu string sumber sesuai dengan string target. Nilai selisih
perbedaan ini disebut juga edit distance atau jarak Levenhstein. Jarak Levenshtein
antar string “s” dan string “t” tersebut adalah fungsi D yang memetakan (s,t) ke
suatu bilangan real nonnegatif, sebagai contoh diberikan dua buah string s =
10
s(1)s,(2),s(3),...,s(m) dan t = t(1),t(2),t(3),...,t(n) dengan | s | = m dan | t | = n
sepanjang alfabet V berukuran r sehingga “s” dan “t” anggota dari V*. s(j) adalah
karakter pada posisi ke-j pada string “s ” dan t(i) adalah karakter pada posisi ke-i
pada string “t”. D(s,t) adalah banyaknya operasi minimum dari operasi
penghapusan, penyisipan dan penukaran untuk menyamakan string s dan t. Pada
implementasi pencocokan antar string, ketiga operasi tersebut dapat dilakukan
sekaligus untuk menyamakan string sumber dengan string target (Ardi, dkk. 2016).
2.6 Langkah – Langkah Algoritma Levenshtein
Pada dasarnya, algoritma ini menghitung jumlah minimum pentransformasian suatu
string menjadi string lain yang meliputi penggantian, penghapusan, dan penyisipan.
Algoritma ini digunakan untuk mengoptimalkan pencarian tersebut karena sangat
tidak efisien jika dilakukan pencarian setiap kombinasi operasi-operasi string
tersebut. Oleh karena itu, algoritma ini tergolong program dinamis dalam pencarian
nilai minimal tersebut. Dalam algoritma ini, dilakukan penyeleksian panjang kedua
string terlebih dahulu. Jika salah satu atau kedua string merupakan string kosong,
jalannya algoritma ini berhenti dan memberikan hasil edit distance yang bernilai
nol atau panjang string yang tidak kosong. Jika panjang string keduanya tidak nol,
setiap string memiliki sebuah karakter terakhir, misalnya c1 dan c2 (Muhammad
Bahari Ilmi, dkk).
Misalnya bagian string pertama tanpa c1 adalah s1 dan bagian string kedua
tanpa c2 adalah s2, dapat dikatakan penghitungan yang dilakukan adalah cara
mentransformasikan s1+c1 menjadi s2+c2. Jika c1 sama dengan c2, dapat diberikan
11
nilai cost 0 dan nilai edit distance-nya adalah nilai edit distance dari
pentransformasian s1 menjadi s2. Jika c1 berbeda dengan c2, dibutuhkan
pengubahan c1 menjadi c2 sehingga nilai cost-nya 1. Akibanya, nilai edit distance-
nya adalah nilai edit distance dari pentransformasian s1 menjadi s2 ditambah 1.
Kemungkinan lain adalah dengan menghapus c1 dan mengedit s1 menjadi s2+c2
sehingga nilai edit distance-nya dari pentransformasian s1 menjadi s2+c2 ditambah
1. Begitu pula dengan penghapusan c2 dan mengedit s1+c1 menjadi s2. Dari
kemungkinan tersebut, dicarilah nilai minimal sebagai nilai edit distance. Untuk
lebih jelasnya, dapat dilihat pada pseudocode berikut ini. Di bawah ini digunakan s
sebagai string sumber dan t sebagai string target. Pseudocode ini berupa suatu
fungsi yang nilai kembaliannya adalah nilai edit distance (Bernardio. 2009 ).
12
Gambar 2.1. Pseudocode Algoritma Levenstein Distance (Muhammad Bahari
Ilmi, dkk)
2.7 Approximate String Matching
Dalam metode ini, dilakukan suatu penghitungan perbedaan antara dua
string. Penghitungan tersebut meliputi tiga operasi string seperti di bawah ini.
function levDis (s1 : string, s2 : string) : integer kamus
i, j, cost : integer
m : array [0 .. s1.length, 0 .. s2.length] of integer algoritma
for i ←0 to s1.length do
for j ← 0 to s2.length do
if i = 0 then
m[i,j] ← j {perbandingan dengan kosong}
else if j = 0 then
m[i,j] ← i {perbandingan dengan kosong}
else {implementeasi pemrograman dinamis}
if s1[i] = s2[j] then
cost ← 0
else
cost ← 1
m[i,j] = minimum (
m[i-1, j-1] + cost, {substitusi}
m[i-1,j] + 1, {penghapusan}
m[i ,j-1] + 1, {penambahan}
)
return m[s1.length, s2.length]
13
Untuk contoh yang akan digunakan, diasumsikan S adalah string sumber pencarian
dan T adalah string yang ingin dicari.
1. Operasi Penghapusan
Misalnya S = memori dan T = meri. Penghapusan dilakukan untuk karakter m
pada lokasi ke-3 dan o pada lokasi ke-4. Dua operasi penghapusan tersebut
menunjukkan transformasi S ke T yang diilustrasikan sebagai berikut.
1 2 3 4 5 6
T = m e - - r i
S = m e m o r i
2. Operasi Penyisipan
Misalnya S = brian dan T = barisan. Operasi sisip dilakukan dengan
menyisipkan a dan s pada posisi 2 dan 5 yang dapat ditunjukkan sebagai berikut.
1 2 3 4 5 6 7
T = b a r i s a n
S = b – r i – a n
a s
3. Operasi Penggantian
Misalnya S = perasa dan T = pewara. String T ditransformasikan menjadi S
dengan melakukan penggantian (subtitusi) pada posisi ke-3 dan ke-5. Huruf r dan s
pada S digantikan dengan w dan r pada T. Prosesnya dapat ditunjukkan sebagai
berikut.
1 2 3 4 5 6
T = p e w a r a
14
S = p e r a s a
w r
Ketiga operasi di atas dapat digunakan dalam contoh berikut ini. Misalnya T =
abrakadabra dan S = avrakhadabah. S dapat ditransformasikan menjadi T sebagai
berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13
T = a b r a k - a d a b r a -
S = a v r a k h a d a b - a h
b r
Operasi yang dilakukan yaitu:
1. mengganti v pada posisi 2
2. menghapus h pada posisi 6
3. menyisipkan r pada posisi 11
4. menghapus h pada posisi 13
Secara keseluruhan terdapat 4 operasi, yaitu 1 penggantian, 2 penghapusan, dan
1 penyisipan (Bernardino. 2009).
2.8. MySQL
Gambar 2.2. MySQL (My Strukture Query Language) (M. Rudyanto Arief,
2011)
15
MySQL (My Strukture Query Language) adalah sistem manajemen database
relasi (relation data-base Management system) yang bersifat “terbuka” (open
Source). Terbuka maksudnya adalah MySQL dapat digunakan oleh siapa saja, baik
versi kode program aslinya maupun versi binernya (executable program) dan bisa
digunakan secara gratis baik untuk dimodifikasi sesuai dengan kebutuhan
seseorang maupun sebagai suatu program aplikasi komputer.
MySQL merupakan database yang pertama kali didukung oleh bahasa
pemrograman script untuk internet (PHP dan Perl). MySQL lebih sering digunakan
untuk membangun aplikasi berbasis web. Umumnya pengembangan aplikasi
menggunakan bahasa pemrograman script PHP (M. Rudyanto Arief, 2011).
2.9. Bahasa Pemprograman
2.9.1. PHP
Gambar 2.3. PHP (Perl Hypertext Preprocessor) (Eka. 2016)
PHP (Perl Hypertext Preprocessor) Menurut Hidayatullah dan Kawistara
(2014:231), PHP singkatan dari Perl Hypertext Preprocessor yaitu bahasa
pemrograman web server-side yang bersifat open source. PHP merupakan script
yang berintergrasi dengan HTML dan berada pada server (server side HTML
embedded scripting). PHP adalah script yang digunakan untuk membuat halaman
16
web dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman
itu diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima client
selalu yang terbaru atau up to date. Semua script PHP dieksekusi pada server
dimana script tersebut dijalankan. Pengertian PHP menurut Kristanto (2010:9),
“PHP adalah bahasa pemrograman yang digunakan secara luas untuk penanganan
pembuatan dan pengembangan sebuah web dan bisa digunakan pada HTML”. PHP
merupakan singkatan dari “PHP : Perl Hypertext Preprocessor”, dan merupakan
bahasa yang disertakan dalam dokumen HTML sekaligus bekerja di sisi server
(server-server HTML-embedded scripting). Artinya sintaks dan perintah yang
diberikan akan sepenuhnya dijalankan di server tetapi disertakan pada halaman
HTML biasa, sehingga scriptnya tak tampak disisi client. PHP dirancang untuk
dapat bekerja sama dengan database server dan dibuat sedemikian rupa sehingga
pembuatan dokumen HTML yang dapat mengakses database menjadi begitu
mudah. Tujuan dari bahasa scripting ini adalah untuk membuat aplikasi dimana
aplikasi tersebut dibangun oleh PHP pada umumnya akan memberikan hasil kepada
web browser, tetapi proses keseluruhannya dijalankan di server. Adapun kelebihan-
kelebihan dari PHP yaitu:
a. PHP merupakan sebuah bahasa script yang tidak melakukan sebuah kompilasi
dalam penggunaannya. Tidak seperti halnya bahasa pemrograman aplikasi yang
lainnya.
b. PHP dapat berjalan pada web server yang dirilis oleh Microsoft, seperti IIS atau
PWS juga pada apache yang bersifat open source.
17
c. Karena sifatnya yang open source, maka perubahan dan perkembangan
interpreter pada PHP lebih cepat dan mudah, karena banyak milis-milis dan
developer yang siap membantu pengembanganya.
d. Jika dilihat dari segi pemahaman, PHP memiliki referensi yang begitu banyak
sehingga sangat mudah untuk dipahami.
e. PHP dapat berjalan pada 3 (tiga) operasi sistem, yaitu: Linux, unux, dan
windows, dan juga dapat dijalankan secara runtime pada suatu console.
f. PHP bersifat bebas dipakai (free) (Eka. 2016).
2.9.2. JavaScript
Gambar 2.4. JavaScript ( Hendro. 2007 )
JavaScript digunakan oleh milyaran aplikasi web yang ada untuk desain,
validasi data, deteksi browser, membuat cookie, dan lain-lain. JavaScript
merupakan scripting language yang paling populer pada pemrograman web atau
internet. JavaScript dapat bekerja atau dieksekusi pada berbagai jenis browser
18
seperti Internet Explorer, Firefox, Netscape, dan Opera. JavaScript didesain untuk
menambah interaktifitas dari sebuah aplikasi web.
Kode JavaScript biasanya disisipkan pada sebuah halaman HTML atau dapat
juga disimpan pada file terpisah dan dipanggil dari sebuah halaman HTML yang
membutuhkannya. Untuk menyisipkan JavaScript pada halaman HTML digunakan
tag <script>.
<html>
<body>
<script type=”text/javascript”>
document.write(“Hello World!”);
</script>
</body>
</html>
JavaScript juga dapat disisipkan pada tag <head> dari sebuah halaman HTML.
JavaScript yang disisipkan pada tag <body> seperti contoh di atas, akan dieksekusi
saat halaman HTML tersebut dipanggil. Sedangkan JavaScript yang disisipkan
pada tag <head> akan dieksekusi jika dipanggil.
<html>
<head>
<script type=”text/javascript”>
19
function message()
{
alert(“Hello Welcome to Javascript!”)
} </script>
</head>
<body >
<input type=”button” value=”Click Me”
onclick=”message()”>
</body>
</html>
( Hendro. 2007 )
2.10. XAMPP
Gambar 2.5. XAMPP ( Eka. 2016 )
20
Menurut Wicaksono (2008:7) menjelaskan bahwa “XAMPP adalah sebuah
software yang berfungsi untuk menjalankan website berbasis PHP dan
menggunakan pengolah data MYSQL di komputer lokal”. XAMPP berperan
sebagai server web pada komputer lokal. XAMPP juga dapat disebut sebuah Cpanel
server virtual, yang dapat membantu melakukan preview sehingga dapat
dimodifikasi website tanpa harus online atau terakses dengan internet. Sebagai
informasi kata XAMPP merupakan singkatan dari: X: berarti program ini dapat
dijalankan diberbagai platform, misalnya Windows, Linux, mac OS, dan Solaris.
A: Apache, merupakan aplikasi web server, dan bertugas untuk menghasilkan
halaman web yang benar kepada user berdasarkan kode PHP yang dituliskan oleh
pembuat halaman web. Jika diperlukan juga berdasarkan kode PHP yang dituliskan,
maka dapat saja suatu database diakses terlebih dahulu (misalnya dalam MySQL)
untuk mendukung halaman web yang dihasilkan. M: MySQL, merupakan aplikasi
database server. Pengembangnya disebut Structured Query Language (SQL). SQL
merupakan bahasa terstruktur yang digunakan untuk mengolah database beserta
isinya. Pengguna dapat memanfaatkan MySQL untuk menambahkan, mengubah
dan menghapus data yang berada dalam database. P: PHP, bahasa pemrograman
lainnya yang serupa, dan lain sebagainya ( Eka. 2016 ).
21
BAB III
METODOLOGI PENELITIAN
3.1. Tahapan Penelitian
Tahapan pada penelitian ditunjukkan pada gambar 3.1
Gambar 3.1. Diagram tahapan penelitian
Tahapan secara garis besar dijelaskan sebagai berikut :
1. Tahap pertama yang dilakukan dalam penelitian tersebut, memasukkan inputan
berupa kalimat.
2. Setelah inputan kalimat telah dimasukkan, maka tahapan selanjutnya
normalisasi kalimat. Dalam tahapan ini menggunakan beberapa proses dan
metode algoritma yang terkait dalam cara kerja yang dibutuhkan untuk
mengkoreksi kalimat.
3. Setelah dilakukan proses normalisasi maka output yang diberikan kalimat valid
hasil dari algoritma tersebut.
Kalimat Input Normalisasi Kalimat Kalimat Valid
22
3.2. Waktu dan Lokasi Penelitian
Waktu penelitian dilakukan semenjak di setujuinya proposal penelitian pada bulan
Desember 2017. Dan lokasi penelitian dilakukan di Laboratorium Departemen Teknik
Informatika Fakultas Teknik Universitas Hasanuddin.
3.3. Pengumpulan Data
Metode yang digunakan dalam pengumpulan data adalah studi pustaka mengenai
kata dasar dalam bahasa Indonesia dan mengenai metode dan algoritma yang
digunakan dalam pembentukan kalimat valid pada sistem chatbot.
Database indek untuk pengkoreksian kata, menggunakan database dari pertanyaan-
pertanyaan dari sistem chatbot dengan data sebanyak 955 kata.
3.4. Instrumen Penelitian
Instrumen yang digunakan dalam penelitian ini meliputi :
1. Software :
a. Sublime Text 3
b. Framework CodeIgniter
c. Firefox
d. XAMPP
e. Javascript
f. PHP
23
2. Hadware
a. Lenovo G40-80
3.5. Perancangan Implementasi Sistem
Rancangan sistem ini bertujuan untuk memberikan gambaran terhadap sistem yang
akan dibuat, serta memperjelas detail dan alur dari sistem. Dalam perancangan ini
menggunakan flowchart.
3.5.1. Proses Input – Output
Berikut adalah flowchart dari proses input - output secara umum. Pada proses ini
terdapat beberapa metode dan algoritma dalam pengkoreksian kalimat menjadi valid.
Untuk lebih jelasnya dapat dilihat pada gambar 3.2.
Gambar 3.2. Proses Input – Output
Kalimat valid
Mulai
Proses Kalimat
Pengkoreksian Kata
24
3.5.2. Proses Kalimat
Langkah pertama adalah proses kalimat, setelah user memasukkan inputan kalimat
pada sistem maka proses yang dilakukan adalah peleburan atau tokonezing setiap
kalimat menjadi kata untuk mempermudah sistem dalam mengidentifikasi kesalahan
penulisan pada setiap kata tersebut. Untuk lebih jelasnya tentang proses kalimat dapat
dilihat pada flowchart gambar 3.3.
3.5.3. Pengkoreksian Kata
Proses ini untuk mengkoreksi kata yang salah menjadi kata yang benar. Langkah
yang dilakukan yaitu, mengidentifikasi setiap kata untuk dicek ke database index.
Apabila kata tidak teridentifikasi kedalam database maka kata tersebut dinyatakan oleh
sistem kata salah atau terjadinya kesalahan pengetikan. Sehingga proses yang
dilakukan dengan Algoritma Levenshtein. Algoritma Levenshtein digunakan untuk
mengukur keterbedaan jarak antara dua sekuens. Levenshtein Distance antara dua
string ditentukan berdasarkan jumlah minimum perubahan / pengeditan yang
diperlukan untuk melakukan tranformasi dari satu bentuk string ke bentuk string yang
lain. Pada proses Algoritma Levenshtein digunakan metode Approximate String
Matching untuk melakukan 3 macam operasi yaitu penghapusan, penyisipan, dan
pergantian. Algoritma ini berjalan mulai dari pojok kiri atas sebuah array dua dimensi
Proses Kalimat Peleburan Kalimat
(tokenizing-> Kata
Gambar 3.3. Proses kalimat
25
yang telah diisi sejumlah karakter string awal dan string target dan diberikan nilai cost.
Nilai cost pada ujung kanan bawah menjadi nilai edit distance yang menggambarkan
jumlah perbedaan dua string. Berikut flowchart algoritma Levenshtein pada gambar
3.4.
26
Kata
Tentukan string Source s dan String Target t
Panjang s = n
Panjang t = m
n = 0
?
m = 0 ?
Buat matriks
0-m baris
0-n baris
Cek s[i] untuk j=0 -n
Cek t[j] unutk j=0-m
s[i] = t[j]
Cost = 1 d[i,j]=min
d[i-1,j]+1,
d[i,j-1]+1,
d[i-1,j-1]+cost
Cost = 0
Display d (n,m)
Display n
Display m
YA
TIDAK
TIDAK
YA
YA
TIDAK
Gambar 3.4. Flowchart Levenshtein
Output
27
Langkah – langkah algoritma ini adalah :
1. Misalkan kata pertama adalah source = s, dan kata kedua adalah target =t.
2. Tentukan n sebagai panjang dari s.
3. Tentukan m sebagai panjang dari t.
4. Jika n=0, return m dan stop.
5. Jika m=0, return n dan stop.
6. Buat matriks yang berisi 0 sampai m baris dan 0 sampai n kolom.
7. Periksa setiap karakter dari s (i dari 1 sampai n) dan dari t (j dari sampai m).
8. Jika s[i] sama dengan t[i], maka cost = 0, jika berbeda cost = 1.
9. Tentukan sel d[i,j] dari matriks yang sama dengan angka terendah dari :
a. d[i-1,j]+1, (penghapusan)
b. d[i,j-1]+1, (penambahan)
c. d[i-1,j-1]+cost (penyisipan)
10. Setelah selesai, maka jarak akan didapatkan dari sel d [n,m].
3.5.4. Kalimat Valid
Setelah melakukan proses tersebut maka dihasilkan kalimat yang tidak singkat atau
kalimat valid.
28
3.6. Analisis Kinerja Sistem
Pada sistem e-teacher sebelumnya dalam mengklasifikasi inputan pertanyaan user
harus menggunakan kalimat baku. Sehingga apabila user menginput pertanyaan
kalimat yang tidak sempurna atau kalimat singkat maka sistem tersebut tidak dapat
memberikan jawaban yang sesui terkait dengan pertanyaan yang diberikan oleh user.
Dimana, untuk membuat sistem dapat mengerti dilakukan dengan menambahkan
beberapa algoritma dan proses sehingga sistem mengerti.
a. Proses Kalimat
Tahap pertama adalah tokenizing kalimat menjadi kata. Proses kalimat ini untuk
mengetahu kasalahan yang ada pada inputan pertanyaan dari user.
Inputan : “ Jlaskan tentang biologi ?”
Tokenizing : “ Jlaskan(0) tentang(1) biologi(2) ?(3)”
b. Pengkoreksian Kata
Selanjutnya, setiap kata yang telah di tokenizing akan dibandingkan ke dalam
database indek. Dimana untuk mengetahui adakah kata terdapat pada database
tersebut. Pada proses ini menggunakan algoritma levenshtein.
29
Tabel 3.1. Tabel Matriks Edit Distance
J E L A S K A N
0 1 2 3 4 5 6 7 8
J 1 0 1 2 3 4 5 6 7
L 2 1 1 1 2 3 4 5 6
A 3 2 2 2 1 2 3 3 4
S 4 3 3 3 2 1 2 3 4
K 5 4 4 4 3 2 1 2 3
A 6 5 5 5 3 3 2 1 2
N 7 6 6 6 4 4 3 2 1
Tabel di atas adalah matriks yang menunjukkan bagaimana pencarian nilai
“distance” untuk perbaikan string “jlaskan” menjadi “jelaskan”.
Apabila dilakukan pengecekan pada matriks yang terlihat pada tabel tersebut
terutama pada bagian yang berwarna kuning pada bagian yang dicek pertama
kali, terdapat karakter “J” pada string 1 dan string 2 karena itu diberi nilai “0”
yang artinya tidak ada operasi penambahan karena karakter yang sama pada
bagian tersebut.
Pada langkah berikutnya, dilakukan penyisipan yakni antara karakter “J”
dengan “E”, karena karakter tidak sama dilakukan operasi penambahan menjadi
30
1. Penambahan akan dilakukan dengan cara melihat nilai terendah antara x,y,
dan z sesui operasi karakter yang dilakukan.
Begitu pula pada bagian berikutnya, apabila karakter pada kedua string adalah
sama maka operasi penambahan tidak dilakukan tetapi mengambil nilai
minimum antara x,y, dan z. Dari proses pencarian nilai “distance”-nya, didapat
bahwa jumlah modifikasi minimum yang dilakukan untuk mengubah string
“Jlaskan” menjadi “Jelaskan” adalah sebanyak 1 operasi yaitu : penambahan
karakter “e”.
c. Kalimat Valid
Kalimat yang telah diproses dan output yang dihasilkan kalimat yang tidak
singkat.
31
BAB IV
HASIL DAN PEMBAHASAN
4.1. Hasil Penelitian
4.1.1. Hasil Operasi Normalisasi Kalimat
1. Proses Kalimat
Tahap pertama adalah melakukan peleburan atau tokonezing pada kalimat yang
diinputkan oleh user menjadi kata. Dalam proses ini, untuk mempermudah sistem
dalam mengidentifikasi kesalahan penulisan pada setiap kata yang di input. Untuk lebih
jelasnya dapat dilihat pada simulasi berikut :
Misalkan, user menginput kalimat pertanyaan yaitu “sbtkan tga mikrosop
elektron”. Maka proses yang dilakukan yaitu meleburkan kalimat menjadi kata. Pada
tahap ini, kalimat akan diubah dari string menjadi array yang ditunjukkan pada tabel
4.1
Tabel 4.1. Proses peleburan kalimat / tokonezing
Inputan Sbtkan Tga Mikrosop Elektron
Tokonezing Sbtkan
(0)
Tga
(1)
Mikrosop
(2)
Elektron
(3)
Pada Tabel 4.1 dapat dilihat bahwa kalimat yang ditokonezing ini untuk
mempermudah dalam mengidentifikasi kata tersebut untuk di cocokkan ke database
apabila ditemukan kata yang tidak sesuai.
32
2. Pengkoreksian Kata
Tahap selanjutnya, pengkoreksian kata yang telah di tokonezing dan di cocokkan
ke database indeks. Apabila kata tidak ditemukan di database indek maka kata tersebut
teridentifikasi sebagai kata singkat atau kesalahan pengetikan teks. Maka proses yang
dilakukan untuk mengubah kata singkat atau kesalahan pengetikan teks tersebut
menggunakan algoritma levenshtein yang ditunjukkan pada tabel 4.2.
Tabel 4.2. Proses identifikasi kesalahan kata
Inputan Sbtkan Tga Mikrosop Elektron
Proses
Identifikasi
Sbtkan
(2)
Tga
(1)
Mikrosop
(1)
Elektron
(0)
Misalnya kata “Sbtkan” maka akan dilakukan proses perbaikan menjadi
“Sebutkan”. Pada proses ini, dilakukan 2 proses penambahan karakter huruf “e”
dengan “u”. Cara yang dilakukan untuk mengetahui bahwa kata tersebut melakukan
proses 2, dapat dilihat di pada tabel 4.3.
Tabel 4.3. Matriks Edit Distance
S E B U T K A N
0 1 2 3 4 5 6 7 8
S 1 0 1 2 3 4 5 6 7
B 2 1 1 1 2 3 4 5 6
T 3 2 2 2 2 2 3 4 5
K 4 3 3 3 3 3 2 3 4
A 5 4 4 4 4 4 3 2 3
N 6 5 5 5 5 5 4 3 2
33
Tabel di atas adalah matriks yang menunjukkan bagaimana pencarian nilai
“distance” untuk perbaikan string “sbtkan” menjadi “sebutkan”.
Apabila dilakukan pengecekan pada matriks yang terlihat pada tabel tersebut
terutama pada bagian yang berwarna kuning pada bagian yang dicek pertama
kali, terdapat karakter “S” pada string 1 dan string 2 karena itu diberi nilai “0”
yang artinya tidak ada operasi penambahan karena karakter yang sama pada
bagian tersebut.
Pada langkah berikutnya, dilakukan penyisipan yakni antara karakter “S”
dengan “E”. karena karakter tidak sama dilakukan operasi penambahan menjadi
1. Penambaha n akan dilakukan dengan cara melihat nilai terendah antara x,y,
dan z sesui operasi karakter yang dilakukan.
Begitu pula pada bagian berikutnya, apabila karakter pada kedua string adalah
sama maka operasi penambahan tidak dilakukan tetapi mengambil nilai
minimum antara x,y, dan z. Dari proses pencarian nilai “distance”-nya, didapat
bahwa jumlah modifikasi minimum yang dilakukan untuk mengubah string
“sbtkan” menjadi “sebutkan” adalah sebanyak 2 operasi yaitu : penambahan
karakter “e” dan karakter “u”.
Kemudian dilakukan metode Approximate String Matching yang melakukan 3
proses sesuai dengan kebutuhan atau proses yang dilakukan. Operasi yang dilakukan
ada tiga yaitu penghapusan, penyisipan, dan penggantian karakter huruf. Pada contoh
kata “Sbtkn” dilakukan proses penambahan karakter huruf “e” dengan “u”. Pada proses
34
ini diberikan batasan dalam menentukan berapa kali proses yang dilakukan pada kata
yang mengalami kesalahan. Jika kata yang mengalami kesalahan dengan bobot kecil
dari 3 (< 3) maka data dapat mempermudah proses tersebut dalam memilih atau
menseleksi kata target yang memenuhi dengan cara membandingkan bobot terkecil di
kata target tersebut.
4.1.2. Hasil Pengujian Sistem
Data yang digunakan untuk menguji sistem ini menggunakan data uji / testing
yang telah di skenariokan. Keakuratan dalam pengujian sistem akan diuji dengan
kalimat pertanyaan yang benar sebelum diuji dengan kesalahan teks dalam suatu
pertanyaan sehingga diperoleh hasil seberikut :
Pengujian ini bertujuan untuk menguji keakuratan sistem dalam memperbaiki
kalimat pertanyaan yang salah menjadi valid.
Pada pengujian ini, penulis melakukan pengujian pada sistem terhadap empat
kategori kalimat pertanyaan yaitu satu kata salah, dua kata salah, semua kata salah dan
data kata salah dari inputan chatbot. Pengujian sistem ini dilakukan untuk menemukan
kesalahan-kesalahan atau kekurangan pada perangkat lunak yang diuji.
Tabel 4.4. Jumlah Data Uji
KATEGORI DATA UJI
Satu kata salah 10
Dua kata salah 10
35
KATEGORI DATA UJI
Semua kata salah 10
Inputan kata chatbot 10
JUMLAH 40
Dari tabel 4.4 dapat dijelaskan bahwa dalam pengujian menggunakan data uji 40.
Adapun teknik dalam pengujian yang dilakukan yaitu pengujian akurasi sistem.
Pengujian dilakukan untuk memeriksa secara singkat untuk mengetahui tingkat
keakuratan sistem. Pada pengujian akurasi sistem yang akan diuji dengan menghitung
jumlah Autocorrection sistem dimana inputan yang diperiksa dengan hasil dari sistem
lalu dibagi jumlah kunci jawaban dan dikali 100%. Rumus untuk menguji akurasi
sistem tersebut dengan formula (1) yaitu :
a) Pengujian 1 : pengujian dengan inputan satu kata salah
Pada pengujian, penulis melakukan pengujian pada sistem dengan inputan satu
kata salah dalam kalimat pertanyaan tersebut.
Tabel 4.5. Rincian Hasil pengujian sistem pada kalimat pertanyaan
X 100%
Jumlah Autocorrection Sistem Akurasi =
Kunci Jawaban
............................ (1)
36
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
1
jalskan yang
dimaksud
dengan sel
hewan
jelaskan yang
dimaksud dengan sel
hewan
jelaskan yang
dimaksud
dengan sel
hewan
Valid
2
sebutkan tiga
type leukoplas
berdasarkan
fungsinya
sebutkan tiga tipe
leukoplas berdasarkan
fungsinya
sebutkan tiga
tipe leukoplas
berdasarkan
fungsinya
Valid
3
mengapa otot
disebut sebagai
alat gerak aktf
mengapa otot disebut
sebagai alat gerak aktif
mengapa otot
disebut sebagai
alat gerak aktif
Valid
4
apa fngs kantung
udara pada aves
apa fungsi kantung
udara pada aves
apa fungsi
kantung udara
pada aves
Valid
5
sbtkn ciri jamur
secara umum
sebutkan ciri jamur
secara umum
sebutkan ciri
jamur secara
umum
Valid
37
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
6
dimana ltk
jaringan
parenkim pada
tumbuhan
dimana litik jaringan
parenkim pada
tumbuhan
dimana letak
jaringan
parenkim pada
tumbuhan
Tidak Valid
7
jlsk empat
peranan virus
yang
menguntungkan
jelaskan empat
peranan virus yang
menguntungkan
jelaskan empat
peranan virus
yang
menguntungkan
Valid
8
bgmn cara
bakteri
memperoleh
makanan
jelaskan
bagian cara bakteri
memperoleh makanan
jelaskan
bagaimna cara
bakteri
memperoleh
makanan
jelaskan
Valid
9
sbtn empat
peranan bakteri
yang
menguntungkan
sebutan empat peranan
bakteri yang
menguntungkan
sebutkan empat
peranan bakteri
yang
menguntungkan
Tidak Valid
38
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
10
apa yang
dimksud dengan
difusi terbantu
apa yang dimaksud
dengan difusi terbantu
apa yang
dimaksud
dengan difusi
terbantu
Valid
Dari tabel 4.5 dapat dijelaskan dari 10 pertanyaan yang diinputkan dengan setiap
kata memiliki satu kata salah dan yang berhasil dinyatakan valid sebanyak 2
pertanyaan.
Rumus untuk menguji akurasi sistem dengan menggunakan formula (1) adalah :
=
= 80%
Dari hasil pengujian yang telah dilakukan, penulis dapat menyimpulkan bahwa
apabila kalimat pertanyaan yang diinputkan memiliki kesalahan kata maka sistem akan
melakukan pengkoreksian terhadap kata yang mengandung kesalahan.
b) Pengujian 2 : pengujian dengan inputan dua kata salah
Setelah melakukan pengujian dengan satu kata salah, penulis menggunakan data
yang sama dengan pengujian inputan dua kata salah dalam kalimat pertanyaan tersebut.
8 X 100%
10 ............................. (1)
39
Pengujian ini bertujuan apakah sistem tersebut dapat mengkoreksi selain dengan satu
kata yang salah.
Tabel 4.6. Rincian Hasil pengujian sistem pada kalimat pertanyaan
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
1
jalskan yang
dimaksud
dengan sel hwn
jelaskan yang dimaksud
dengan sel hewan
jelaskan yang
dimaksud
dengan sel
hewan
Valid
2
sebutkan tiga
type leukoplas
brdsrkn
fungsinya
sebutkan tiga tipe
leukoplas berdasarkan
fungsinya
sebutkan tiga
tipe leukoplas
berdasarkan
fungsinya
Valid
3
mgp otot disebut
sebagai alat
gerak aktf
mirip otot disebut
sebagai alat gerak aktif
Mengapa otot
disebut
sebagai alat
gerak aktif
Valid
4
apa fngs kntg
udara pada aves
apa fungsi kantung
udara pada aves
apa fungsi
kantung
udara pada
aves
Valid
40
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
5
sbtkn ciri jamur
scr umum
sebutkan ciri jamur
secara umum
sebutkan ciri
jamur secara
umum
Valid
6
dmn ltk
jaringan
parenkim pada
tumbuhan
dan litik jaringan
parenkim pada tumbuhan
Dimana letak
jaringan
parenkim
pada
tumbuhan
Tidak Valid
7
jlsk empat
peranan virus
yang
mnguntngkan
jelaskan empat peranan
virus yang
menguntungkan
jelaskan
empat
peranan virus
yang
menguntung
kan
Valid
8
bgimna cara
bakteri
memprlh
makanan
bagaimana cara bakteri
memperoleh makanan
bagaimana
cara bakteri
memperoleh
makanan
Valid
41
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
9
sbtkn empat
prnn bakteri
yang
menguntungkan
sebutkan empat
peranan bakteri yang
menguntungkan
sebutkan
empat
peranan
bakteri yang
menguntungk
an
Valid
10
apa yang
dimksd dengan
difusi trbnt
apa yang dimaksud
dengan difusi terbantu
apa yang
dimaksud
dengan difusi
terbantu
Valid
Dari tabel 4.6 dapat dijelaskan bahwa 10 data uji yang sama dengan memberikan
dua kata salah untuk pengkoreksian kata mendapatkan hasil bahwa kata yang dikoreksi
oleh sistem dengan yang diinginkan oleh user sebanyak 1 kalimat.
Rumus untuk menguji akurasi sistem dengan formula (1) adalah :
=
= 90%
9 X 100%
10 ....................... (1)
42
c) Pengujian 3 : pengujian dengan inputan semua kata salah
Setelah melakukan pengujian dengan satu kata salah dan dua kata salah, penulis
menggunakan data yang sama dengan pengujian inputan semua kata salah dalam
kalimat pertanyaan tersebut. Pengujian ini bertujuan apakah sistem tersebut dapat
mengkoreksi selain dengan satu kata yang salah dan dua kata salah.
Tabel 4.7. Rincian Hasil pengujian sistem pada kalimat pertanyaan
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
1
jalskan yg dmksd
dgn sl hwn
jelaskan yang dimaksud
dan sel hewan
jelaskan yang
dimaksud
dengan sel
hewan
Valid
2
sbtkn tga type
laeukopls brdsrkn
fngsnya
sebutkan tiga tipe
leukoplas berdasarkan
fungsinya
sebutkan tiga
tipe
leukoplas
berdasarkan
fungsinya
Valid
3
mngp orot disbt
sbgi alt grk aktf
mengapa otot disebut
sebagai alat gerak aktif
mengapa otot
disebut
sebagai alat
gerak aktif
Valid
43
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
4
ap fngs kntg udra
pd avs
apa fungsi kantung
udara pada aves
apa fungsi
kantung
udara pada
aves
Valid
5
sbtkn cr jmr scr
uum
sebutkan ciri jamur
secara umum
sebutkan ciri
jamur secara
umum
Valid
6
dmn ltk jrngan
prnkinm pda
tmbhn
dan litik jaringan
parenkim pada
tumbuhan
Dimana letak
jaringan
parenkim
pada
tumbuhan
Tidak Valid
7
jlskn empt prnan
vrs yg
mnguntngkn
jelaskan empat peranan
virus yang
menguntungkan
jelaskan
empat
peranan virus
yang
menguntung
kan
Valid
44
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
8
bgimn cr bktri
memplrh mknn
bagian ciri bakteri
memperoleh makanan
Bagaimana
cara bakteri
memperoleh
makanan
Valid
9
sbtkn empt prnn
bktri yg
mengntungkn
sebutkan empat peranan
bakteri yang
menguntungkan
sebutkan
empat
peranan
bakteri yang
menguntung
kan
Valid
10
ap yg dimksd
dngan dfsi trbnt
apa yang dimaksud
dengan difusi terbantu
apa yang
dimaksud
dengan difusi
terbantu
Valid
45
Dari tabel 4.7 dapat dijelaskan bahwa 10 data uji yang sama dengan memberikan
semua kata salah untuk pengkoreksian kata sebanyak tiga kalimat. Untuk mengetahui
tingkat akurasi dari sistem dengan meggunakan rumus formula (1) sebagai berikut :
=
= 90%
4.1.3. Hasil Pengujian dengan Chatbot
Pada pengujian ini, penulis melakukan pengujian dari data chatbot yang tidak
dapat memberikan jawaban yang sesuai apabila user menginput kalimat pertanyaan
yang tidak baku. Sehingga data kalimat yang tidak teridentifikasi di chatbot tersebut
akan di uji pada sistem tersebut untuk menjadi kalimat yang baku sehingga chatbot
dapat mengerti pertanyaan yang diberikan oleh user. Selain itu, dalam pengujian ini
penulis menggunakan data uji dari chatbot untuk mengetahui keakuratan sistem
tersebut sehingga diperoleh hasil berikut :
Tabel 4.8. Rincian hasil pengujian sistem dengan data uji chatbot
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
1
sebtkn klsfksi
sistem kingdom
sebutkan klasifikasi
sistem kingdom
sebutkan
klasifikasi
Valid
9 X 100%
10
....................... (1)
46
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
sistem
kingdom
2
sbtkn cnth dari
kngdom pda hwn
di bologi
sebutkan contoh dari
kingdom pada hewan di
biologi
sebutkan
contoh dari
kingdom
pada hewan
di biologi
Valid
3
Ap yg dimksud
dgan sistem monra
Apa yang dimaksud
dengan sistem monera
Apa yang
dimaksud
dengan
sistem
monera
Valid
4
cntoh mkhlk hdp
dri kngdom
monera
contoh makhluk hidup
dari kingdom monera
contoh
makhluk
hidup dari
kingdom
monera
Valid
47
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
5
ap yg dmksd
dngan klsfiksi
mkhluk hdp
apa yang dimaksud
dengan klasifikasi
makhluk hidup
apa yang
dimaksud
dengan
klasifikasi
makhluk
hidup
Valid
6
jlskn tongktan
klsifiksi mkhluk
hdp
jelaskan tingkatan
klasifikasi makhluk
hidup
jelaskan
tingkatan
klasifikasi
makhluk
hidup
Valid
7
jlskn thpan
klsifiksi mkhluk
hdp
jelaskan tahapan
klasifikasi makhluk
hidup
jelaskan
tahapan
klasifikasi
makhluk
hidup
Valid
48
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
8
sbtkn cri dari
klasifiksi mkhluk
hdp brdasrkan
perbdaan
sebutkan ciri dari
klasifikasi makhluk
hidup berdasarkan
perbedaan
sebutkan ciri
dari
klasifikasi
makhluk
hidup
berdasarkan
perbedaan
Valid
9
sbtkan smua ciri
dari klsifiksi
mkhluk hdp
sebutkan semula ciri
dari klasifikasi makhluk
hidup
sebutkan
semua ciri
dari
klasifikasi
makhluk
hidup
Tidak valid
10
jlskan glongan
klsfikasi sistem
buatan pda mkhluk
hdip
jelaskan bergolongan
klasifikasi sistem batang
pada makhluk hidup
jelaskan
golongan
klasifikasi
sistem
buatan pada
Tidak valid
49
No Pertanyaan Autocorrection Sistem
Kunci
Jawaban
Keterangan
makhluk
hidup
Dari tabel 4.8 dapat dijelaskan bahwa 10 data yang diuji untuk pengkoreksian
didapat dari data user dalam menginput di sistem chatbot yang mengandung unsur
kesalahan sehingga chatbot tidak memahami pertanyaan tersebut dan diuji pada sistem
validasi kalimat mmeberikan tingkat keberhasilan sebanyak 8 kalimat. Rumus untuk
menguji akurasi sistem tersebut dengan formula (1) adalah :
=
= 80%
4.2. Pembahasan
Hasil rata-rata akurasi dari sistem pembetukan kalimat valid dengan beberapa
skenario yaitu user menginput satu kata salah, menginput dua kata salah, dan mengiput
semua kata salah. Skenario dalam pemgujian ini bertujuan untuk mengetahui akurasi
sistem apabila diinputkan kata yang salah. Dari kata yang teridentifikasi maka
dilakukan proses dengan menggunakan algoritma Levenshtein sebagai pengkoreksian
kata
8 X 100%
10 ....................... (1)
50
Dari hasil skenario yang diuji tingkat akurasi yang capai yaitu, skenario untuk
satu kata salah dengan hasil akurasi 80% dengan data uji 10 pertanyaan, kemudian
skenario dua kata salah dengan hasil akurasi 90% dengan data uji yang sama, dan
skenario terakhir semua kata salah dengan tingkat akurasi 90% dengan data uji yang
sama.
Selain data uji skenario yang dilakukan, penulis melakukan pengujian dari data
chatbot untuk memperkuat tingkat akurasi sistem. Data dari chatbot itu sendiri
digunakan karena user yang menginput pertanyaan tersebut dan chatbot tidak dapat
mengidentifikasi pertanyaan mereka. Karena pada chatbot itu sendiri memiliki
keterbatasan yaitu tidak dapat membaca pertanyaan apabila kalimat tidak baku.
Sehingga, chatbot tidak dapat memberikan jawaban yang sesui apabila user menginput
pertanyaan yang tidak baku. Tingkat akurasi yang dihasilkan dari data uji chatbot yaitu
80% dengan 10 pertanyaan. Hasil dari ketiga uji data skenario dan uji pada chatbot
yang dihasilkan tidak mencapai 100% karena data yang diuji pada sistem tersebut
memilki keterbatasan pada kamus data kata.
Pada sistem tersendiri, telah sesuai aturan cara menggunakan algoritma yang
digunakan. Tetapi hal yang dapat menyebabkan akurasi tersebut adalah pada database
dan kata yang diinput ambigu. Apabila database yang digunakan terlalu banyak sistem
dapat memberikan jawaban yang tidak sesuai dengan prediksi user. Sehingga apabila
didalam database, kata target dengan kata input yang memiliki bobot yang sama akan
bebeda hasil sistem dengan keiingin user. Jadi, apabila menggunkan databse yang
51
terlalu besar dapat menyebabkan sistem berbeda pendapat dengan user. Dan untuk kata
yang ambigu, sistem akan tidak mengerti dengan keiingin user apabila kata tersebut
tidak sesuai atau tidak ada kata target yang memenuhi dengan keiingin user.
Pada data sebelumnya, didapatkan tingkat hasil akurasi yang tidak mencapai
100% dikarenakan parameter handle sebelumnya yang digunakan 1,2,3 dimana bobot
1 merupakan penambahan, bobot 2 untuk penggantian, dan bobot 3 penghapusan.
Misalkan, user input kata “adl” dan keinginan user “adalah” tetapi output dari sistem
“ada”. Penyebab sistem memberikan jawaban tersebut karena kata “ada” memiliki
bobot penggantian nilai 2 dengan karakter huruf “a”, sedangkan untuk kata “adalah”
bobot perubahan dengan penambahan 3 karakter huruf “a”, “a”, dan “h”. Sehingga
bobot dengan nilai terkecillah yang dikatakan oleh sistem yang menjadi kata target.
Apabila, kata input dengan kata target tidak sesuai dengan keiinginan user itu
disebabkan sistem mengambil keputusan dari bobot terkecil yang memenuhi target
dimana sesuai dengan alur kerja Algoritma Levenshtein.
Sehingga dilakukan perubahan parameter handle untuk meningkatkan tingkat
akurasi sistem dalam mencapai keingan user. Parameter handle yang digunakan
sekarang pada sistem yaitu 1,4,3 dimana 1 merupakan bobot penambahan, 4
merupakan bobot penggantian, dan 3 merupakan bobot penghapusan. Jadi, jika user
menginput kata “adl” maka sistem memberikan output “adalah” dengan proses
sebagai berikut. Nilai bobot untuk kata target “adalah” menjadi 3 bobot karena
penambahan 3 karakter huruf, sedangkan nilai bobot untuk kata target “ada” menjadi
52
4 karena penggantian 1 karakter huruf. Sehingga input dan ouput dari sistem sesuai
dengan keiinginan user. Dengan mengubah parameter handle tersebut tingkat akurasi
meningkat dari tingkat akurasi sebelumnya.
53
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil penelitian sebagaimana telah diuraikan dalam bab
sebelumnya, maka dapat disimpulkan sebagai berikut :
1. Kata-kata yang salah pada kalimat yang diinput oleh user dapat diperbaiki
dengan menggunakan Algoritma Levenstein.
2. Pembuatan sistem pembentukan kalimat valid menggunakan beberapa
algoritma dan metode berhasil dibuat dengan tingkat akurasi sebesar 90%
hasil akurasi tidak mencapai 100%, karena kata yang di uji oleh sistem dan
database diindeks terbatas. Semakin banyak data kata yang tersimpan pada
database indeks maka tingkat akurasi sistem akan semakin tinggi.
3. Sistem ini dapat berdiri sendiri sebagai alat untuk memperbaiki kata yang
salah dan diintegrasikan pada sistem lain yang berbasis pengkoreksian
kata.
5.2 Saran
Hasil dari penelitian akhir ini belum sempurna, oleh karenanya untuk
meningkatkan hasil yang dicapai dapat dilakukan :
1. Kekurangan sistem ini adalah hanya dapat mengkoreksi yang terdapat pada
database indeks dan mengambil kata target yang sesui dengan perintah di
sistem yaitu mengambil bobot terkecil dari kata target yang diberikan.
54
Sehingga diharapkna agar dapat dikembangkan agar sistem tersebut dapat
menentukan kata target yang diberikan oleh sistem sesuai dengan
keiinginan user yaitu pendalaman pada algoritma levenstein itu sendiri dan
peningkatan kata pada database.
2. Pada penampilan interface yang kurang menarik, sehingga kedepannya
untuk meningkatkan sistem tersebut untuk memperbarui interface.
3. Pada sitem validasi kalimat dalam mengupdate database tersendiri belum
bisa. Karena sistem akan bekerja dua kali. Database yang digunakan ada
dua yaitu database untuk melakukan proses algoritma levenshtein dan
database update yang didalamnya ada kolom data singkat dengan tidak
singkat. Adapun kekurangan dari sistem tersebut yaitu apabila database
semakin banyak maka algoritma levenshtein susah dalam menseleksi kata
target yang sesuai dengan keiinginan user. Sehingga diperlukan teknologi
pengembangan yang kompleks dalam menseleksi database contohnya big
data.
55
DAFTAR PUSTAKA
Adiwidya, Bernardino Madaharsa Dito. 2009. Algoritma Levenshtein Dalam
Pendekatan Approximate String Matching. Bandung : Institut Teknologi
Bandung.
Arief, M.R. 2011. Pemrograman Web Dinamis Menggunakan PHP Dan MySQL.
Yogyakarta : Andi Offset.
Dwipayana, Gatot. dkk. 2002. Intisari Bahasa Indonesia: Graha Cipta Pustaka,
Bandung.
Fahma, Ariani Indana., Imam Cholissodin., Rizal Setya Perdana. 2018. Identifikasi
Kesalahan Penulisan Kata (Typographical Error) pada Dokumen
Berbahasa Indonesia Menggunakan Metode N-gram dan Levenshtein
Distance. Universitas Brawijaya.
Fridayanthie, Eka Wida., Tias Mahdiati. 2016. Rancang Bangun Sistem Informasi
Permintaan Atk Berbasis Intranet (Studi Kasus: Kejaksaan Negeri
Rangkasbitung). Tangerang : AMIK BSI Tangerang
Gurning, Ardi Isbad Amar., Zarnelly., Arabiatul Adawiyah. 2016. Penerapan Fuzzy
String Matching Pada Aplikasi Pencarian Tugas Akhir Mahasiswa Jurusan
Sistem Informasi Berbasis Web (Studi Kasus: Fakultas Sains Dan Teknologi
Uin Suska Riau). Riau : UIN Suska Riau.
56
Ilmy, Muhammad Bahari., Nitia Rahmi., Roland L Bu’ulolo. Penerapan Algoritma
Levenshtein Distance untuk Mengoreksi Kesalahan Pengejaan pada Editor
Teks. Bandung : Institut Teknologi Bandung.
Lisnawati, Yulia. 2017. “Gara – Gara Typo Bikin Rugi Jutaan Dolar, 7 Kasus Ini
Buktinya”, https://www.liputan6.com/citizen6/read/3107438/gara-gara-
typo-bikin-rugi-jutaan-dolar-7-kasus-ini-buktinya, diakses pada 25 Januari
2018 pukul 20.15.
Nugrahani, Farida., Ali Imron Al-Ma’ruf. 2015. Metode Penulisan Karya Ilmiah.
Yogyakarta: Nuansa Aksara.
Naradhipa, A.R., Kamayani, M., Reinanda, R., Simbolon, S., Soleh, M.Y. dan
Purwarianti, A., 2011. Application of Document Spelling Checker for Bahasa
Indonesia. ICACSIS, hal.249–252.)
Riadi. M., 2015. Pengertian dan Kriteria Teks. [online] Tersedia di:
<http://www.kajianpustaka.com/2015/09/pengertian-dan-kriteriateks.html>
[Diakses 2 Februari 2018].
Rochmawati, Yeny., Retno Kusumanigrum. 2015. Studi Perbandingan Algoritma
Pencarian String dalam Metode Approximate String Matching untuk
Identifikasi Kesalahan Pengetikan Teks. Semarang : Universitas
Diponegoro.
Tampake, Hendro Steven. 2007. Penggunaan AJAX pada Pengembangan Aplikasi
Web. Salatiga : Universitas Kristen Satya Wacana.
57
LAMPIRAN
58
Algoritma Levenstein
public function validasi()
{
$this->load->view('forum/validasi');
}
public function indexing_proses()
{
$pilihan = [];
$pilihan_fix = [];
$inputan = $this->input->post('input_tanya'); //
$data_input = explode(' ', $inputan); //tokonezing berdasarkan
kalimat inputan
$result = $this->Forum_models->tabel_indeks();//
//leveshtein "pengkoreksian kata"
59
for ($i=0; $i < count($data_input); $i++) { //
foreach ($result as $results) { //menglooping
$lev = levenshtein($data_input[$i], $results->kata , 1
, 4, 3); //penambhan, penggantian, penghapusan
if ($lev < 3) { // approximate
$pilihan[] = array($lev , $data_input[$i],
$results->kata);
}else{
if ($lev < 6) {
$pilihan[] = array($lev , $data_input[$i], $results-
>kata);
}else{
$pilihan[] = array($lev , $data_input[$i],
$data_input[$i]);
}
}
}
if (sizeof($pilihan) > 1) { // total array (sourting)
for ($k=0; $k < sizeof($pilihan); $k++) {
60
for ($j=0; $j < (sizeof($pilihan) - 1); $j++) {
if ($pilihan[$j][0] >
$pilihan[$j+1][0]) {
$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;
}
}
}
61
$pilihan_fix[] = array($pilihan[0][0] , $pilihan[0][1] ,
$pilihan[0][2] );
}else{
$pilihan_fix[] = array($pilihan[0][0] , $pilihan[0][1]
, $pilihan[0][2] );
}
$pilihan = [];
}
echo json_encode($pilihan_fix);
}
public function indexing_proses_valid()
{
$result = $this->Forum_models->indexing_proses_valid();
echo json_encode($result);
}
public function indeks_tabel()
{
62
$validIndex = false;
$result = $this->Forum_models->indeks_tabel();
foreach ($result as $results) {
$data = explode(' ', $results->tanya);
for ($i=0; $i < count($data); $i++) {
$tabel_indeks[$i] = $this->Forum_models-
>tabel_indeks();
foreach ($tabel_indeks[$i] as $tabelList) {
if ($tabelList->kata == $data[$i]) {
$validIndex = false;
}
}
if ($validIndex === true) {
$this->Forum_models-
>cekKataDiIndeks($data[$i]);
}
$validIndex = true;
63
}
}
echo json_encode($data);
}
Tampilan Validasi Kalimat
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="assets/desain.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></scri
pt>
<head>
<title>Validasi Kalimat</title>
</head>
64
<body>
<div class="jumbotron text-center">
<h1>Validasi Kalimat </h1>
<form class="form-inline">
<div class="input-group">
<input type="text" class="form-control" size="50" placeholder="Masukkan
Pertanyaan " id="input_tanya" required>
<div class="input-group-btn">
<button id="btn_tanya" type="button" class="btn btn-
danger">Submite</button>
</div>
</div>
</form>
<div id="loading" style="display: none;">loading</div>
</div>
<div class="container">
65
<div class="levehstein" style="display: none;" style="table-layout:
center">
<div class="col-sm-4" >
<h3>Proses Leveshtein </h3>
<table id="levTable" class="table table-hover" > </table>
</div>
</div>
</div>
<div id="struktur"></div>
<!-- <div id="validasi_kalimat_before" style="text-align: center"
style="vertical-align: middle">
</div> -->
<div id="validasi_kalimat" style="text-align: center" style="vertical-align:
middle" ></div>
<!-- <span id="validasi_kalimat_cek"></span> -->
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
66
<script type="text/javascript">
var recek;
$('#btn_tanya').on('click' , function(e) {
$('#loading').show();
$('.levehstein').show();
$('.nafiez').show();
$('.cyk').show();
e.preventDefault();
var selesai_button = {
'input_tanya' : $('#input_tanya').val(),
'<?php echo $this->security->get_csrf_token_name(); ?>':
'<?php echo $this->security->get_csrf_hash(); ?>'
}
var htmlObj = '';
var htmlRecek = '';
var htmlValid = '';
var recek_all = [];
$.ajax({
67
url: '<?php echo site_url() ?>Forum/indexing_proses/',
data: selesai_button,
type: 'post',
document.getElementById('validasi_kalimat').innerHTML = validasi_kalimat;
document.getElementById('validasi_kalimat_before').innerHTML =
$('#input_tanya').val();
}
});
})
</script>
<!-- untuk indeks data -->
<script type="text/javascript">
$('#indeks_data').on('click', function() {
$.ajax({
url: '<?php echo site_url() ?>Forum/indeks_tabel/',
type: 'post',
success: function(data){
68
alert('sukses melakukan indeks kata')
}
});
})
</script>
</body>
</html>
top related