IMPLEMENTASI NATURAL LANGUAGE PROCESSING
PADA CHATBOT PERIBAHASA
INDONESIA
SKRIPSI
DEWI WIRANDA SARI
141401133
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018
Universitas Sumatera Utara
IMPLEMENTASI NATURAL LANGUAGE PROCESSING
PADA CHATBOT PERIBAHASA
INDONESIA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer
DEWI WIRANDA SARI
141401133
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara ABSTRAK
Chatbot Natural language Processing (NLP) memberikan solusi padapermasalahan belum tersedianya media interaktif untuk pencarian makna peribahasa Indonesia, pencarian penggalan kata dari peribahasa dan pencarian peribahasa melalui artinya. Tujuan dari bidang NLP adalah melakukan proses pembuatan model komputasi dari bahasa sehingga dapat terjadi suatu interaksi antara manusia dengan komputer dengan perantara bahasa alami. Inputan pengguna akan diproses menggunakan metode text mining. Respon yang dihasilkan merupakan pencocokan pattern pada knowledge base dengan menggunakan algoritma boyermoore dan menghasilkan respon balasan yang dianggap paling cocok. Algoritma boyer moore hanya dapat menangani keyword yang tepat sesuai knowledge base. Selain itudigunakan algoritma levenshtein distance sebagai spelling correction yang digunakan jika terjadi kesalahan pengetikan pada masukkan pengguna dengan cara membandingkan dua buah string dan mengambil nilai perbedaan yang terkecil. Pada penelitian ini dapat disimpulkan bahwa sistem ini dapat digunakan sebagai media interaktif untuk mendapatkan informasi peribahasa Indonesia dengan persentase keberhasilan chatbot sebesar 83,3% dimana hasil yang diperoleh dari respon chatbot tergantung pada kelengkapan kata kunci. Tingkat kesulitan pada pembuatan sistem lebih ke penyesuaian inputan pengguna dengan knowledge base.
Katakunci: Natural Language Processing, Algoritma Boyer Moore, Chatbot, TextMining, Peribahasa Indonesia,Algoritma Levenshtein Distance, PHP.
Universitas Sumatera Utara NATURAL LANGUAGE PROCESSING IMPLEMENTATION TO INDONESIAN PROVERB CHATBOT
ABSTRACT
Natural language Processing (NLP) Chatbot provides a solution on the issue of unavailability of interactive media to search for meaning Indonesian proverb, to search part of word from proverbs and to search proverb from it means. The goal of NLP is to model the computation process on languages so it could enable an interaction between a user and computer with natural language as its medium. User’s input will be processed using text mining method. The resulting response is a pattern matching with the knowledge base by using the Boyer-Moore algorithm and generates the most matching response. Boyer-Moore algorithm could only handle the exact keyword which is matching the knowledge base. In addition to the system, Levenshtein distance algorithm is used as a spelling correction which is used when there are typos from user’s input by comparing two strings and picks its smallest difference value. From this research, it can be The conclusion from this research is this system can be used as an interactive media to get information about Indonesian proverb with chatbot’s success rate up to 83,3% where the results are obtained from the response of a chatbot that depends on the entire keywords. The level of difficulty in creating the system are more to the adjustment of user input with the knowledge base.
Keywords: Natural Language Processing, Boyer Moore Algorithm, Chatbot, Text Mining, Indonesian Proverb, Algoritma Levenshtein Distance, PHP.
Universitas Sumatera Utara DAFTAR ISI
Halaman
Persetujuan ii Pernyataan iii Penghargaan iv Abstrak vi Abstract vii Daftar Isi viii Daftar Tabel x Daftar Gambar xi
Bab 1 Pendahuluan 1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Penelitian 2 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 3 1.6. Metodologi Penelitian 3 1.7. Sistematika Penulisan 4
Bab 2 Landasan Teori 2.1. Chatbot 6 2.2. Natural Language Processing 7 2.3. Text Mining 8 2.4. String Matching 10 2.5.1. Algoritma Boyer Moore 11 2.5. Algoritma Levenshtein Distance 15 2.6. Penelitian yang Relevan 16
Bab 3 Analisis dan Perancangan Sistem 3.1. Analisis Sistem 18 3.1.1. Analisis Masalah 18 3.1.2. Analisis Sumber Data Peribahasa Indoesia 19 3.1.3. Diagram Sistem 20 3.1.4. Analisis Data untuk Knowledge Base 21 3.1.5. Analisis Case Folding 53 3.1.6. Analisis Tokenizing 53 3.1.7. Analisis Filtering 54 3.1.8. Analisis Kebutuhan Sistem 55 3.1.8.1. Kebutuhan Fungsional 55 3.1.8.2. Kebutuhan Non-Fungsional Sistem 55 3.2. Pemodelan 56 3.2.1. Use Case Diagram 56 3.2.2. Activity Diagram 57 3.2.3. Sequence Diagram 58 3.2.4. Flowchart 59
Universitas Sumatera Utara 3.2.5. Pseudocode 63 3.3 Perancangan Sistem 65
Bab 4 Implementasi dan Pengujian Sistem 4.1. Implementasi 68 4.1.1. Implementasi Knowledge Base 68 4.1.2. Halaman Cover 69 4.1.3. Halaman Chat 70 4.1.4. Implementasi Metode dan Algoritma 70 4.2. Pengujian Sistem 73
Bab 5 Kesimpulan dan Saran 5.1. Kesimpulan 84 5.2. Saran 84
Daftar Pustaka 86
LAMPIRAN Listing Program A-1 Daftar Riwayat Hidup B-1
Universitas Sumatera Utara DAFTAR TABEL
Halaman Tabel 3.1 Daftar Peribahasa Indonesia 22 Tabel 3.2 Daftar Kata Sapaan 44 Tabel 3.3 Daftar stopword 46 Tabel 3.4 Tabel Transisi 48 Tabel 3.5 Tabel Transisi Filtering 49 Tabel 3.6 Tabel Use Case Proses Input Kalimat 52 Tabel 3.7 Pseudocode Suffix 63 Tabel 3.8 Pseudocode prebmGs 64 Tabel 3.9 Pseudocode prebmBc 64 Tabel 3.10 Pseudocode Boyer Moore 64 Tabel 3.11 Pseudocode Levenshtein 65 Tabel 4.1 Pencocokan Boyer Moore pertama 72 Tabel 4.2 Pencocokan Boyer Moore kedua 72 Tabel 4.3 Pencocokan Boyer Moore ketiga 72 Tabel 4.4 Hasil Pengujian Menanyakan Arti Peribahasa Indonesia 73 Tabel 4.5 Hasil Pengujian Menyapa Chatbot 74 Tabel 4.6 Hasil Pengujian Melengkapi Penggalan Peribahasa 75 Tabel 4.7 Hasil Pengujian Mencari Peribahasa Melalui Artinya 76 Tabel 4.8 Database Pencocokan 1 78 Tabel 4.9 Tabel Pencocokan 1 78 Tabel 4.10 Database Pencocokan 2 79 Tabel 4.11 Tabel Pencocokan 2.1 79 Tabel 4.12 Tabel Pencocokan 2.2 79 Tabel 4.13 Tabel Pencocokan 2.3 79
Universitas Sumatera Utara DAFTAR GAMBAR
Halaman Gambar 2.1 Tahap Text Mining 9 Gambar 2.2 Tahap Case Folding 9 Gambar 2.3 Tahap Tokenizing 10 Gambar 3.1 Diagram Ishikawa untuk Analisis Masalah Sistem 19 Gambar 3.2 Kamus Lengkap 2200 Peribahasa Indonesia 19 Gambar 3.3 Website Peribahasa Indonesia 20 Gambar 3.4 Diagram Umum Chatbot 21 Gambar 3.5 Analisis Case Folding 53 Gambar 3.6 Tahap Tokenizing 53 Gambar 3.7 Tahap Filtering 54 Gmabar 3.8 Use Case Diagram Sistem 49 Gambar 3.9 Activity Diagram Sistem 58 Gambar 3.10 Sequence Diagram Sistem 59 Gambar 3.11 Flowchart Sistem Gambaran Umum Chatbot 60 Gambar 3.12 Flowchart Algoritma Boyer Moore 61 Gambar 3.13 Flowchart Pemeriksaan Spelling Correction 62 Gambar 3.14 Rancangan Antarmuka Halaman Cover 65 Gambar 3.15 Rancangan Antarmuka Halaman Chat 66 Gambar 4.1 Database Peribahasa 68 Gambar 4.2 Database Kata Sapa 69 Gambar 4.3 Database Stopword 69 Gambar 4.4 Halaman Cover 70 Gambar 4.5 Halaman Chat 70 Gambar 4.6 Diagram Preprocessing 71 Gambar 4.7 Pengujian Boyer Moore 1 77 Gambar 4.8 Pengujian Boyer Moore 2 78 Gambar 4.9 Pengujian Boyer Moore 3 80 Gambar 4.10 Pengujian Boyer Moore 4 81 Gambar 4.11 Pengujian Levenshtein Distance 81
Universitas Sumatera Utara BAB 1 PENDAHULUAN
1.1. Latar Belakang Peribahasa merupakan kelompok kata yang mempunyai susunan yang tetap dan mengandung nasihat, prinsip hidup atau aturan tingkah laku yang biasanya digunakan pada kehidupan masyarakat jaman dulu. Dahulu, peribahasa dianggap cara yang paling mudah untuk memberikan nasihat, teguran maupun sindiran. Saat ini, peribahasa masih lestari dalam bentuk lisan maupun tulisan. Dalam bentuk tulisan peribahasa masih dapat ditemukan pada kata pengantar sebuah karya ilmiah, slogan maupun media cetak. Peribahasa yang masih sering digunakan antara lain tak ada gading yang tak retak, sedikit demi sedikit, lama – lama kian membukit. Pergantian masa mempengaruhi peribahasa yang ditandai dengan hilangnya sebagian kecil peribahasa. Seringnya peribahasa Indonesia yang jarang terdengar dan terbaca tidak diketahui artinya oleh masyarakat. Di era digital saat ini, pengguna tentunya menginginkan sebuah media informasi yang interaktif dan dapat menggunakan bahasa alami (dalam hal ini bahasa Indonesia) untuk pencarian informasi.
Dalam pencarian informasi peribahasa Indonesia, seseorang dapat menggunakan kamus peribahasa Indonesia baik berbentuk cetak maupun digital atau mencari di mesin pencari seperti Google. Seiring dengan perkembangan zaman dan peningkatan teknologi, kamus peribahasa Indonesia versi cetak sudah mulai ditinggalkan oleh masyarakat. Kamus cetak dianggap bukan cara yang efektif untuk menemukan arti peribahasa karena harus membuka lembar demi lembar untuk menemukan arti peribahasa Indonesia. Untuk itu, diperlukan media informasi peribahasa Indonesia yang interaktifdengan menggunakan bahasa sehari-hari yaitu implementasi Natural Language Processing (NLP) pada chatbot. Denganchatbot dapat memudahkan pengguna untuk mencari dan memahami arti dari peribahasa yang sudah sangat jarang didengar. Dibanding kamus digital ataupun mesin pencari, chatbot memiliki banyak kelebihan yaitu chatbot dapat memberikan respon yang cepat terhadap setiap pertanyaan dan memberikan kemudahan dalam berinteraksi. Selain itu, chatbot dapat menangani query pada knowledge base. Ketika sistem diberitahu untuk mengeksekusi suatu topik, ia mulai mengeksekusi aturan ditopik itu
Universitas Sumatera Utara sampai menghasilkan keluaran. Di dalam topik, aturannyadieksekusi secara berurutan baris perbaris (Emanuela, H and Traian, R, 2013).
Sistem ini dibangun agar pengguna dapat mencari tahu tentang peribahasa dengan cara tanya jawab kepada chatbot.Respon yang dihasilkan merupakan hasil pemindaian kata kunci pada inputan user dan menghasilkan respon balasan yang dianggap paling cocok dari database, sehingga percakapan yang terjadi seakan-akan dilakukan oleh dua pribadi manusia yang saling berkomunikasi. Saat ini, aplikasi chatbot berkembang pesat akan tetapi belum ada chatbot yang bertemakan peribahasa Indonesia. Chatbot tersebut hanya digunakan untuk tujuan tertentu seperti Frequently Ask Question (FAQ), Call Center Cerdas maupun sebagai media hiburan.
1.2. Rumusan Masalah Peribahasa merupakan suatu kekayaan sastra Indonesia yang harus dilestarikan, namun seiiring perkembangan zaman penggunaan peribahasa sudah mulai ditinggalkan. Salah satu permasalahannya belum tersedianya media interaktif untuk pencarian makna peribahasa Indonesia, pencarian peribahasa melalui penggalan peribahasa, pencarian peribahasa melalui artinya. Kamus digital tidak begitu efektif diterapkan untuk pencarian peribahasa serta media interaktif karena kamus seyogyanya merupakan kumpulan kata yang dicari maknanya dengan susunan alphabet. Untuk itu pada penelitian ini kami membangun chatbot peribahasa Indonesia yang mampu memberikan solusi untuk permasalahan ini.
1.3. Batasan Masalah Agar fokus penelitian tidak menyimpang dari rumusan masalah yang telah ditetapkan, maka dibuat batasan masalah sebagai berikut:
1. Chatbot hanya melayani percakapan dalam bahasa Indonesia. 2. Topik pembicaraan hanya dibatasi seputar peribahasa Indonesia. 3. Diberikan kemampuan dasar untuk merespon mengenai sapaan. 4. Pada database hanya terdapat 500 peribahasa. 5. Implementasi Natural Language Processing menggunakan metode Text Mininguntuk memproses masukan untuk mendapatkan keyword, pencocokan keyword menggunakan Algoritma Boyer Moore dan menggunakan Algoritma Levenshtein Distance sebagai Spelling Correction. 6. Chatbot tidak dapat melakukan pembaruan pengetahuan secara otomatis.
Universitas Sumatera Utara 7. Bahasa pemrograman yang digunakan adalah PHP dan MySql sebagai penyimpanan knowledge base.
1.4. Tujuan Penelitian Tujuan yang akan dicapai dalam penelitian ini adalah:
1. Menerapkan pendekatan Natural Language Processingpada aplikasi chatbotsehingga pengguna dapat bertanya menggunakan bahasa sehari-hari. 2. Memberikan informasi mengenai peribahasa Indonesia kepada pengguna dengan media yang interaktif.
1.5. Manfaat Penelitian Adapun manfaat dari penelitian ini adalah :
1. Penelitian ini diharapkan mampu membantu pengguna mencari informasimengenai peribahasa Indonesia. 2. Penelitian ini diharapkan memudahkan pengguna untuk mencari informasi mengenai peribahasa Indonesia.
1.6. Metodologi Penelitian
Penelitian ini dilakukan dengan menerapkan beberapa metode penelitian sebagai berikut:
1. Studi Literatur Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian ini.
2. Analisis dan Perancangan Pada tahap ini digunakan untuk mengolah data dari hasil studi literatur yangkemudian dilakukan analisis dan perancangan sistem. Kemudian sistemdirancang dengan membuat gambaran sistem menggunakan flowchart, UML,dan user interface.
Universitas Sumatera Utara 3. Implementasi Sistem Pada tahap ini perancangan diimplementasikan dalam pembuatan suatuaplikasi berbasis webdengan menggunakan Bahasa Pemrograman PHP danmenggunakan DBMS MySqlsebagai knowledge base. 4. Pengujian Sistem Pada tahap ini akan dilakukan pengujian kinerja sistem yang telah dikembangkan.
5. Dokumentasi Sistem Pada tahap ini dilakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).
1.7. Sistematika Penulisan Penyusunan skripsi ini dibagi ke dalam beberapa bab sesuai dengan pokok permasalahan yang dibahas. Adapun sistematika dalam penulisan skripsi ini adalah sebagai berikut:
BAB 1 PENDAHULUAN
Pada Bab ini akan dijelaskan latar belakang masalah dari penelitian yang dilakukan, batasan penelitian, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
BAB 2 TINJAUAN PUSTAKA
Pada Bab ini akan dijelaskan teori-teori dasar yang mendukung penelitian seperti Chatbot, Natural Language Processing,Text Mining, Algoritma Boyer Moore dan Algoritma Levenshtein Distance.
BAB 3 ANALISIS DAN PERANCANGAN
Pada Bab ini akan dijelaskan analisis serta perancangan Aplikasi ChatbotPeribahasa Indonesia. Model Unified Modeling Language (UML)yang
Universitas Sumatera Utara digunakan antara lain adalah use case diagram, activity diagram, sequence diagramdan perancangan tampilan antarmuka sistem.
BAB 4 IMPLEMENTASI DAN PENGUJIAN APLIKASI
Pada bab ini membahas tentang hasil implementasi dan pengujian sistem serta pembahasan dari hasil yang diperoleh.
BAB 5 KESIMPULAN DAN SARAN
Pada Bab ini akan dijelaskan hasil penelitian yang berisi kesimpulan dan saran yang nantinya akan dikembangkan atau melanjutkan penelitian yang berkaitan dengan masalah dalam penelitian ini.
Universitas Sumatera Utara BAB 2 TINJAUAN PUSTAKA
2.1. Chatbot
Chatbotterdiri dari dua kata yaitu “chat” dan “bot”. Chat yang berarti percakapan sedangkan bot diambil dari kata “robot”. Dengan kata lain, chatbot merupakan robot virtual atau mesin yang dapat melakukan percakapan dengan pengguna melalui sebuah media seperti web chat, messenger, forum web atau bahkan melalui suara seperti telepon. Menurut Fatimah Choirunnisa (2014) Chatbot adalah salah satu sistem cerdas yang dihasilkan dari Pemrosesan Bahasa Alami atau Natural Language Processing (NLP) yang merupakan salah satu cabang dari Kecerdasan Buatan atau Artificial Intelligence (AI).
Pada mulanya, chatbot diuji melalui test yang disebut turing test.Turing Test merupakan sebuah metode pengujian kecerdasan yang dibuat oleh Alan Turing. Proses uji ini melibatkan seorang penanya (manusia) dan dua obyek yang ditanyai. Yang satu adalah seorang manusia dan yang satunya adalah sebuah mesin yang akan diuji. Penanya tidak dapat melihat langsung kepada obyek yang ditanyai. Penanya diminta untuk membedakan mana jawaban komputer dan mana jawaban manusia berdasarkan jawaban kedua obyek tersebut. Jika penanya tidak dapat membedakan mana jawaban mesin dan mana jawaban manusia maka Turing berpendapat bahwa mesin yang diuji tersebut dapat diasumsikan Cerdas (Kristanto, Andri. 2004).
Chatbot yang dikenal sebagai chatbot intelejensia buatan pertama adalah chatbot Eliza. Eliza dikembangkan oleh profesor MIT bernama Joseph Weizenbaum pada tahun 1966(Fatima, 2014). Eliza merupakan chatbot yang berprofesi sebagai psikiater. Eliza yang berperan sebagai psikolog dapat menjawab pertanyaan pasien atau menjawab dengan pertanyaan kembali.
Chatbot merupakan sistem yang diciptakan manusia untuk dapat berkomunikasi dengan manusia. Chatbotdirancang untuk dapat berkomunikasi langsung dengan
Universitas Sumatera Utara manusia menggunakan bahasa sehari-hari. Chatbot dapat memberikan respon sesuai dengan inputan yang diberikan pengguna menggunakan bahasa manusia.
Meskipun banyak bots yang tampaknya dapat menginterpretasikan dan menanggapi masukan dari manusia, sebenarnya bots tersebut hanyamenganalisis kata kunci dalam masukan dan membalasnya dengan kata kunci yang paling cocok, atau pola kata-kata yang paling mirip dari basis data tekstual (Elisabet& Irawan, 2015).
2.2. Natural Languge Processing
Natural language processing atau pengolahan bahasa alami biasanya disingkat dengan NLP, merupakan bidang kecerdasan buatan dimana komputer didesain untuk dapat berkomunikasi dengan manusia menggunakan bahasa alami, seperti Bahasa Indonesia. NLP tidak bertujuan untuk mentransformasikan bahasa yang diterima dalam bentuk teks atau suara menjadi data digital dan/atau sebaliknya pula; melainkan bertujuan untuk memahami arti dari kalimat yang diberikan dalam bahasa alami dan memberikan respon yang sesuai, misalnya dengan melakukan suatu aksi tertentu atau menampilkan data tertentu (Fendy Ridwan, 2013).
Menurut Ema Utami dan Sri Hartati (2007) terdapat beberapa karakteristik yang menyulitkan pemrosesan bahasaalami diantaranya adalah: 1. Sering terjadi ambiguitas dalam bahasa alami seperti kata “bisa” dalam bahasa Indonesia yang memiliki banyak arti . 2. Jumlah kosa kata dalam bahasa alami sangat banyak dan berkembang pesat dari waktu ke waktu.
Dalam melakukan proses NLP terdapat lima langkah yaitu Lexical Analysis, Syntax Analysis, Semantic Analysis, Discourse Integration dan Pragmatics Analysis. Pada lexical analysis, mengidentifikasi dan menganalisis text atau kalimat menjadi kata per kata. Kedua, syntax analysis, yaitu menganalisis kata-kata dalam kalimat berdasarkan tata bahasa atau grammar. Ketiga, semantic analysis, dimana pada langkah tersebut dilakukan penentuan makna dari sebuah kata. Keempat, discouse integration, yaitu menganalisis kalimat sebelumnya yang akan memepengaruhi kalimat selanjutnya.
Universitas Sumatera Utara Sedangkan yang terakhir, pragmatics analysis merupakan proses penggalian makna atau informasi yang lebih dalam dari teks.
Pengolahan bahasa alami, lebih dari sekedar analisis ucapan. Ada berbagai pendekatan untuk mengolah bahasa alami, yaitu (Expertsystem, 2016): 1. Pendekatan simbolis (Symbolic Approach), yaitu pendekatan yang didasarkan pada aturan manusia dan leksikon. Dengan kata lain, dasar di balik pendekatan ini adalah aturan ucapan yang diterima secara umum dalam bahasa tertentu dan dicatat oleh pakar linguistik untuk diikuti sistem komputer. 2. Pendekatan statistik (Statistical Approach), yaitu pendekatan yang didasarkan pada contoh fenomena linguistik yang dapat diamati. 3. Pendekatan koneksionis (Connectionist Approach), yaitu pendekatan yang kombinasi dari pendekatan simbolis dan statistik.
2.3. Text Mining
Text Mining merupakan proses pencarian pola atau penggalian informasi baru. Tujuan dari text mining adalah menemukan informasi yang penting dari teks dengan mengubah teks menjadi data yang dapat digunakan untuk analisis yang lebih lanjut (Elisabet, 2015). Secara umum tahapan yang dilakukan pada text mining, yaitucase folding,tokenizing, filtering, stemming, tagging dan analyzing.
Universitas Sumatera Utara
Gambar 2.1 Tahap Text Mining a. Case Folding Case Folding merupakan proses penghilangan karakter selain huruf ‘a’ sampai ‘z’. Karakter seperti tanda ‘.’, ’,’ ,’:’ dan lain sebagainya akan di hilangkan. Proses case folding dapat dilihat pada Gambar 2.2.
Gambar 2.2Tahap Case Folding
Universitas Sumatera Utara b. Tokenizing Tokenizing adalah proses mengurai kalimat menjadi kata-kata yang menyusunnya. Pada tahap ini juga dilakukan proses merubah semua huruf menjadi huruf kecil. Hanya huruf ‘a’ sampai ‘z’ yang diterima. Proses Tokenizing seperti Gambar 2.3.
Gambar 2.3 Tahap Tokenizing c. Filtering Filtering merupakan tahap pengambilan kata – kata penting dari hasil proses tokenizing. Pada tahap filtering terdapat dua algoritma yang dapat digunakan yaitu algoritma stoplist/stopword (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Contoh stopwords adalah “apa”, “di”, pada” dan seterusnya. Jika terdapat kata stoplist dalam kalimatmaka kata-kata tersebut akan di-remove dari kalimat sehingga kata-kata yang tersisa di dalam deskripsi di anggap sebagai kata-kata penting atau keywords.
2.4. String Matching
String Matching (Pencocokan string) merupakan metode yang digunakan untuk pencocokan dua buah string, dimana string pendek (pattern) dengan string lebih yang lebih panjang (teks) (Charras, C & Lecroq, T, 2004). Cara kerja untuk mencari pattern yang cocok dengan teks adalah dengan mencoba mencari di setiap posisi awal dari teks dan mengabaikan pencarian secepat mungkin jika karakter yang salah ditemukan (Knuth, 1977). Proses pertama adalah menyelaraskan bagian paling kiri dari pattern dengan teks. Kemudian dibandingkan karakter yang sesuai dari teks dan pattern. Setelah seluruhnya cocok maupun tidak cocok dari pattern, window digeser ke kanan sampai posisi ( − +1) pada teks.
𝑛𝑛 𝑚𝑚
Universitas Sumatera Utara
2.4.1. Algoritma Boyer Moore
Algoritma Boyer Moore merupakan algoritma pencocokan string yang paling efiesien. Algoritma ini mencocokan karakter mulai dari karakter paling kanan hingga karakter paling kiri pada pola (pattern). Jika terjadi ketidakcocokan (mismatch), maka akan dicek nilai pergeserannya berdasarkan tabel bad character shift dan good suffix shif. Algoritma Boyer-Moore menggunakan dua buah tabel untuk mengolah informasi saat terjadi kegagalan pencocokan pattern. Tabel pertama disebut badcharacter shift juga sering disebut occurrence heuristic (OH). Tabel kedua disebut dengan istilah good suffix shift juga disebut match heuristic (MH) (Charras & Lecroq, 2004)
Secara sistematis, langkah-langkah yang dilakukan Algoritma Boyer Moore pada saat mencocokkan string: 1. Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks. 2. Dari kanan ke kiri, algorima ini akan mencocokan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi: a) Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). b) Semua karakter di pattern cocok kemudian algoritma akan memberitahukanpenemuan diposisi ini. 3. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai penggeserangood suffix dan penggeseran bad-character, lalu mengulangi langkah 2 sampai patternberada di ujung teks (Susanto, 2014).
Perhitungan dengan algoritma Boyer-Moore dapat dilihat pada contoh berikut ini. Contoh : Pattern (y) = “asa” → n = 3 Text (x) = “putus asa” a. Perhitungan pergeseran bad-character i 0 1 2
c a s a
Universitas Sumatera Utara bmBc [c] 2 1 0
Nilai pergeseran pada tabel didapat dengan perhitungan sebagai berikut : bmBc[y[i]] = n – 1 – i bmBc[y[0]] = 3– 1 – 0 = 2 bmBc[y[1]] = 3– 1 – 1 = 1 bmBc[y[2]] = 3– 1 – 2 = 0 Dan untuk karakter selain yang terdapat pada pattern, karakter tersebut bernilai sejumlah karakter pattern yaitu 3.Jika ada karakter yang berulang ambil nilai BmBcterkecil, dalam kasus ini adalah karakter “a” yang bernilai 2 dan 0. Maka jadikan karakter “a” bernilai 0.
i 0 1 2
c a s a
bmBc [c] 0 1 0
b. Perhitungan nilaiSuffix
i 0 1 2
c a s a
Suff (i) 1 0 3
Langkah-langkah untuk menghitung nilai Suffix adalah sebagai berikut : 1. Isi kolom Suffix paling kanan dengan nilai n yaitupanjang karakter pattern i 0 1 2
c a s a
Suff (i) 3
2. Membandingkan karakter dari kanan ke kiri
Universitas Sumatera Utara Bandingkan karakter a dan s jika tidak cocok maka beri nilai 0 Bandingkan karakter a dan a jika cocok maka jangan beri nilai i 0 1 2
c a s a
Suff (i) 0 3
3. Pengisian kolom yang tidak bernilai dilakukan dengan memakai rumusi – i – s . s adalah nilai berapa kali pergeseran karakter yang sama.i – (i – s) = 1 – (1 – 1) = 1 i 0 1 2
c a s a
Suff (i) 1 0 3
d. Perhitungan pergeseran good suffix i 0 1 2
c a s a
bmGs 1 0 3
Langkah-langkah untuk menghitung nilai bmGs adalah sebagai berikut : 1. Isi bmGs sesuai dengan panjang karakter yaitu 3. i 0 1 2
c a s a
Suff (i) 1 0 3
bmGs 3 3 3
2. Lakukan pengecekan dari kanan, lakukan pengecekan hingga i = 0 i = 2, jika i + 1 = 3 dan ternyata Suffix bernilai 3 maka tandai kolom i = 1, jika i + 1 = 2 dan ternyata Suffix bernilai 0 maka jangan beri tanda pada
Universitas Sumatera Utara kolom i = 0, jika i + 1 = 1 dan ternyata Suffix bernilai 1 maka tandai kolom i 0 1 2
c a s a
Suff (i) 1 0 3
bmGs 3 3 3
3. Masukkan rumus n– 1 – i pada nilai yang telah diberi ceklisn – 1 – i = 3 – 1 – 2 = 0. Karena hasilnya 0 maka tidak melakukan perhitungann – 1 – i = 3 – 1 – 1 = 1. Karena hasilnya 1 maka perhitungan indeks 0 saja. 4. Ubahlah nilai indeks 0 dengan rumus n- 1 – i,n- 1 – i = 3 – 1 – 0 = 2
i 0 1 2
c a S a
Suff (i) 1 0 3
bmGs 2 3 3
5. Lakukan pengecekan sampai n– 2 = 3 – 2 = 1, artinya menghitung indeks dari0 sampai 1 6. Masukkan rumus n – 1 – suffix untuk mengisi kolom bmGs i = 0 3 – 1 – 0 = 2, 2 adalah nilai i yang akan diisi pada kolom bmGs n – 1 – i = 3 – 1 – 0 = 2 i 0 1 2
c a S a
Suff (i) 1 0 3
bmGs 2 3 2
Universitas Sumatera Utara i = 1 3 – 1 – 1 = 1, 1 adalah nilai i yang akan diisi pada kolom bmGs n – 1 – i = 3 – 1 – 1 = 1 i 0 1 2
c a S a
Suff (i) 1 0 3
bmGs 2 1 2
Contoh implementasi pencarian pada teks proses ke-1 Teks p u t u s a s a
Pattern a s a
Indeks 0 1 2 bmBc = t ; (teks) = 3 bmGs = indeks (2); pattern = 2 3 > 2 dengan begitu pattern digeser 3 karakter
Contoh implementasi pencarian pada teks proses ke-2 Teks p u t u s a s a
Pattern a s a
Indeks 0 1 2 bmBc = spasi; (teks) = 3 bmGs = indeks (2); pattern = 2 3 > 2 dengan begitu pattern digeser 3 karakter
Contoh implementasi pencarian pada teks proses ke-3 Teks p u t u s a s a
Pattern a s a
Universitas Sumatera Utara Indeks 0 1 2 semua karakter telah cocok, artinya pattern telah ditemukan di dalam teks.
2.5. Algoritma Levenshtein Distance
Algoritma Levenshtein Distance atau Edit Distancemerupakan salah satu algoritma yang digunakan untuk mengukur kesamaan antara dua string. Algoritma ini ditemukan oleh Vladimir Losifovich Levenshtein yang merupakan ilmuan dari Rusia pada tahun 1965. Sebagai contoh hasil penggunaan algoritma ini, string “algoritma” dan “algorithm” memiliki perbedaan 2 karena perbedaan antara kedua string terletak di huruf yang kedelapan dan kesembilan. Dalam kasus dua string di atas, string “algorithm” dapat menjadi “algoritma” hanya dengan melakukan dua penukaran karakter “h” menjadi “m” dan karakter “m” menjadi “a”.
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 stringpaling sedikit yang diperlukan untuk mentransformasikan suatu stringmenjadi stringyang lain (Adiwidya, 2009).
Selisih perbedaan antar stringdapat diperoleh dengan memeriksa apakah suatu stringsumber sesuai dengan stringtarget. Nilai selisih perbedaan ini disebut juga Editdistance/ jarak Levenhstein. Jarak Levenshtein antar strings dan stringt tersebut adalah fungsi D yang memetakan (s,t) ke suatu bilangan real nonnegatif, sebagai contoh diberikan dua buah strings = 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 strings dan t(i) adalah karakter pada posisi ke-i pada stringt. Sehingga jarak Levenshtein dapat didefinisikan sebagai (Primadani, 2014).
D(s,t) = d(s1,t1)+d(s2,t2)+...+d(s1,t1) (1)
Universitas Sumatera Utara D(s,t) = ( , ) (2) 𝑖𝑖=1
dimana �𝑖𝑖 𝑑𝑑 : 𝑠𝑠𝑠𝑠 𝑡𝑡𝑡𝑡 si, ti €V untuk i = 1,2,…,l
d( si, ti ) = 0 jika si = ti dan
d( si, ti ) = 1 jika si ≠ ti D( s, t) adalah banyaknya operasi minimum dari operasi penghapusan, penyisipan dan penukaran untuk menyamakan strings dan t. Pada implementasi pencocokan antar string, ketiga operasi tersebut dapat dilakukan sekaligus untuk menyamakan string sumber dengan stringtarget seperti pada contoh berikut ini. Jika diberikan string sumber (S) = “algorithm” dan (T) = “algoritma” merupakan stringtarget, dengan | s | = 9, | t | = 9, maka proses pencocokan string dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 9 T = a l g o r i t m a S = a l g o r i t hm ma
Pada contoh di atas terlihat bahwa proses penukaran karakter ‘h’ pada indeks ke-8, ‘m’ pada indeks ke-9. Maka jarak Levenshtein antara s dan t adalah sebagai berikut : 9 D(s,t) = ( , ) =1
�𝑖𝑖 = 𝑑𝑑 d(𝑠𝑠𝑠𝑠 a,a𝑡𝑡𝑡𝑡 ) + d( l,l ) + d( g,g ) + d( o,o ) + d( r,r ) + d( i,i ) + d( t,t) + d( m,h ) + d( a,m ) = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 = 2 Sehingga jarak Levenshtein antara string s dan t adalah D(s,t) = 2.
2.6. Penelitian yang relevan Berikut ini beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh penulis antara lain adalah sebagai berikut: 1. Hadi Suhendro (2014), dalam skripsi yang berjudul Pembangunan Aplikasi Chatbot Dokter Virtual dengan Pendekatan Natural Language Processing (Studi Kasus di Klinik dr. Iin Hartinah Kabupaten Cirebon) Menyatakan bahwa dengan pendekatan Natural Language Processing pada aplikasi dokter virtual percakapan dan diskusi yang terjadi layaknya manusia dengan manusia.
Universitas Sumatera Utara 2. Fendy Ridwan (2014), dalam skripsi yang berjudul Pembangunan Aplikasi Natural Language Processing untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia) Menyatakan bahwa aplikasi chatbot dapat memberikan layanan informasi pada suatu bidang sehingga pencarian informasi lebih interaktif. 3. Elisabet Nila S. C. P (2013), dalam skripsi yang berjudul Rancang Bangun Aplikasi Chatbot Informasi Objek Wisata Kota Bandung dengan Pendekatan Natural Language Processing (Studi Kasus di Dinas Kebudayaan dan Pariwisata Kota Bandung) menyatakan bahwa dengan menggunakan metode text mining sebagai penalaran kalimat, lebih mudah dalam pencarian keyword (pattern) 4. Teuku Ighfar Hajar (2015), dalam skripsi yang berjudul Implementasi Algoritma Levenshtein Distance dan Boyer Moore untuk fitur Autocomplete dan Autocorrect pada aplikasi katalog perpustakaan daerah Aceh Timur Menyatakan bahwa Algorima Boyer Moore termasuk algoritma string matching yang paling efisien dibandingkan algoritma-algoritma string matching lainnya karena sifatnya efisien maka banyak dikembangkan algoritma string matching dengan bertumpu pada konsep algoritma Boyer Moore dansemakin kecil nilai jarak levenshtein yang diperoleh dari proses maka dianggap semakin mendekati atau mirip(Hajar, T.I. 2015). 5. Mego Suntoro (2015) dalam skripsi yang berjudul Implementasi Algoritma Pecocokan String Boyer-Moore dalam Pembuatan Contact Manager Pada platform android Menyatakan bahwa Algoritma Boyer Moore pergeseran Bad Character paling baik digunakan dari pada pergeseran Good Suffix (Suntoro, M. 2015).
Universitas Sumatera Utara BAB 3
ANALISIS DAN PERANCANGAN SISTEM
4.1. Analisis Sistem Analisis sistem bertujuan untuk melakukan identifikasi dan evaluasi persoalan- persoalan yang akanmuncul dalam pembuatan sistem, hal ini dilakukan agar pada saat proses perancanganaplikasi tidak terjadi kesalahan yang berarti, sehingga sistem yangdirancang dapat berjalan dengan baik, tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga,selesai tepat pada waktu yang telah ditentukan serta dapat ditemukan kelebihan dan kelemahan pada sistem.
4.1.1. Analisis Masalah Permasalahan utama dalam penelitian ini adalah ketidak efektifan kamus cetak dan kamus digital serta mesin pencari yang digunakan untuk mencari informasi dari peribahasa Indonesia. Dimana, jika menggunakan kamus cetak pengguna harus membuka lembar demi lembar untuk mencari peribahasa, jika menggunakan kamus digital pengguna harus menggunakan keyword yang cocok agar peribahasa dapat ditemukan dan jika menggunakan mesin pencari pengguna harus memasukan keyword kemudian memilih link yang sesuai dari beberapa link yang tersedia. Oleh karena itu, pengguna tentunya menginginkan sebuah sistem yang lebih efektif dan interaktif , yang tentunya dapat mempermudah pengguna.
Dengan adanya NLP, maka dapat dibangun sebuah sistem berbasiskan web yang lebih interaktif yang dinamakan chatbot. Chatbot merupakan salah satu cabang ilmu kecerdasan buatan yang dapat membantu pengguna melakukan percakapan dengan bahasa sehari-hari. Pengguna dapat melakukan tanya jawab kepada chatbot untuk mendapatkan informasi mengenai arti dari peribahasa.
Universitas Sumatera Utara Untuk mengidentifikasi masalah tersebut digunakan diagram Ishikawa (fishbone diagram).
Gambar 3.1 Diagram Ishikawa untuk Analisis Masalah Sistem
4.1.2. Analisis Sumber Data Peribahasa Indonesia Sumber data diperoleh dari buku Kamus Lengkap 2200 Peribahasa Indonesia karya LH. Santoso yang diterbitkan oleh Pustaka Agung Harapan Surabaya dan media online atau yang biasa disebut website yang dapat diakses melalui alamat www.kateglo.com. Secara umum, referensi peribahasa yang dapat digunakan pengguna tidak efektif untuk mencari tahu arti peribahasa, pencarian penggalan kata peribahasa dan pencarian peribahasa melalui artinya.
Universitas Sumatera Utara
Gambar 3.2 Kamus Lengkap 2200 Peribahasa Indonesia
Pada Gambar 3.2 Kamus tersebut dirasa sudah tidak efektif lagi bagi pengguna, dimana pengguna harus membuka lembar demi lembar untuk dapat menemukan peribahasa yang dicari.
Gambar 3.3 Website Peribahasa Indonesia
Universitas Sumatera Utara
Gambar 3.3 menunjukkan bahwa sistem tersebut dirasa belum efektif bagi pengguna, dimana pengunjung mendapatkan informasi peribahasa dengan mencari di halaman tampilan peribahasa satu persatu atau mencari peribahasa melalui kotak pencarian yang tersedia, namun pengguna tidak dapat melakukan pencarian peribahasa melalui arti peribahasa dan tidak dapat menangani kesalahan ejaan.
4.1.3. Diagram Sistem
Sistem terdiri atas 3 bagian penting, yaitu bagian kalimat input,bagian untuk mengolah kalimat input, dan bagian untuk pengelolaan knowledge base. Pada saat chatbot pertama kali dijalankan, maka akan muncul halaman chatbot yang mengharuskan penggunamemasukkan kalimat agar dapat melakukan percakapan. Kemudian input yang masih dalam bentuk kalimat akan diolah dan dicari pola yang cocok dengan knowledge baseyang dimiliki oleh chatbot. Jika pola sudah ditemukan, maka proses selanjutnya adalah mencari jawaban dari input tersebut. Jika pola tidak ditemukan, sistem akan menggunakan spelling correction. Setelah jawaban ditemukan maka chatbot akan menampilkan jawaban pada chatbox sebagai respon.
Gambar 3.4 DiagramUmumSistem
4.1.4. Analisis Data untuk Knowlegde Base
Universitas Sumatera Utara Sebagaimana telah dijelaskan pada batasan masalah sebelumnya terdapat 500 peribahasa pada database dan chatbot diberikan kemampuan untuk merespon sapaan. Adapun detail informasi yang terdapat pada knowledge base adalah sebagai berikut :
Tabel 3.1 DaftarPeribahasa Indonesia
Id Input Respon
Orang yang mau enaknya sendiri Ada uang abang disayang tak ada 1 tanpa menghiraukan kepentingan uang abang melayang orang lain
Orang yang tidak tetap 2 Bagai abu diatas tanggul kedudukannya
3 Mengabui mata orang Menipu atau memperbodoh orang
Mencampuri sesuatu urusan yang 4 Terpegang di abu dingin menyusahkan atau mencelakakan diri sendiri
Meminta pertolongan kepada orang 5 Berdiang di abu dingin miskin (dan pasti tidak mendapat apa-apa)
Dalam pertengkaran, menang atau 6 Menang jadi arang kalah jadi abu kalah sama-sama menderita
7 Ada ubi ada talas Ada budi ada balas
Dimana banyak kenikmatan, disitu 8 Ada gula ada semut banyak yang berdatangan
Janganlah menghambur-hamburkan Ketika ada jangan dimakan bila habis 9 uang simpanan, agar kelah tidak maka dimakan menderita kesusahan sendiri
10 Harap pada yang ada cemas pada Orang yang kurang kesabaran
Universitas Sumatera Utara yang tiada
kalau tak ada rejeki yang banyak, 11 asal ada kecil pun pada yang sedikitpun sudah mencukupi
12 ada udang dibalik batu ada maksud yang tersembunyi
adat sepanjang jalan cupak sepanjang segala sesuatu harus dikerjakan 13 betung menurut adat istiadat yang berlaku
seseorang yang tidak 14 adat rimba raya siapa berani ditaati mempergunakan akalnya, hanya mempergunakan kekerasan
hidup hendaknya selalu menurut adat 15 hidup dikandung adat (kebiasaan) yang baik
segala perbuatan atau pekerjaan adat bersendi syarak syarak bersendi 16 hendaknya selalu mengingat aturan adat adat dan agama
adat atau kebiasaaan yang tetap atau 17 adat lama pusaka usang tidak berubah sejak dahulu hingga sekarang
bila meminta hendaknya kepada adat teluk timbunan kapal adat 18 orang yang kaya dan bila bertanya gunung tepatan kabut hendaknya kepada orang pandai
orang muda haruslah bersabar bila adat muda menanggung rindu adat menginginkan sesuatu, dan orang tua 19 tua menahan ragam pun harus sabar pula bila menghadapi kesukaran
Kehidupan manusia hendaknya 20 adat hidup tolong menolong selalu bekerja sama dalam segala hal
Universitas Sumatera Utara 21 mengadu ujung penjahit menguji kecerdasan masing-masing
seorang yang selalu tenang dalam 22 seperti air dengan kolam pembawaannya maupun tingkah lakunya
bila orang membuka aib keluarga menepuk air didulang terpercik muka 23 sendiri, sama halnya dengan sendiri membuka aib sendiri
pemberian yang kurang berharga 24 seperti air pembasuh kaki atau murahan
orang yang sombong biasanya 25 air beriak tanda tak dalam kurang ilmu
orang yang pendiam biasanya banyak 26 air tenang menghanyutkan ilmu atau membahayakan
bila terjadi perselisihan, keluarga 27 air besar batu bersibak akan bercerai-berai untuk mencari keselamatan
kebaikan yang dibalas dengan 28 air susu dibalas dengan air tuba kejahatan
bila terjadi perselisihan keluarga air sama air kelak menjadi satu 29 akan mudah berbaik kembali, atau sampah itu ke tepi juga bersatu kembali
orang yang sedang marah dapat air yang dingin juga dapat 30 diredakan dengan kelembutan atau memadamkan api kata-kata yang lemah lembut
Universitas Sumatera Utara
keadaan manusia tak akan tetap 31 air pun ada pasang surutnya (kadang kala senang, kadang kala sedih)
orang yang sedang menderita air diminum rasa duri nasi dimakan 32 kesusahan, makan atau melakukan rasa sekam apapun serba tak enak
bila bertambah pekerjaan, akan 33 tambah air tambah sagu bertambah pula upah atau gajinya
34 bagai air di daun talas orang yang tidak tetap pendiriannya
air tenang jangan disangka tiada orang yang diam jangan dikira tidak 35 berbuaya berani
memberi pekerjaan kepada orang 36 bagai kambing dihalau ke air yang tak suka mengerjakannya
sekali air basah sekali tepian setiap ada pergantian pemimpin, 37 beranjak selalu ada perubahan aturan
negeri atau daerah yang aman, rakyat 38 air jernih ikannya jinak menjadi tenang dan makmur
meminta kembali hal atau barang 39 menjilat air ludah sendiri yang telah diberikan kepada orang lain
orang akan mendapat rejeki dimana 40 ada air ada ikan ia tinggal dan berada
hendak mencuci aib, tetapi bahkan 41 membasuh muka dengan air liur menambahnya
42 sambil menyelam minum air mengerjakan suatu pekerjaan, dapat pula menyelesaikan pekerjaan atau
Universitas Sumatera Utara masalah yang lain
orang yang baik-baik biasanya akan dari telaga yang jernih, tak akan 43 mempunyai keturunan anak yang mengalir air yang keruh baik pula
menjual harta benda hanya untuk 44 tak air hujan ditampung mencapai suatu keinginan sendiri
sukar sekali memberi nasehat kepada 45 bagai air titik ke batu orang jahat
melakukan perbuatan atau pekerjaan 46 bagai mencincang air yang sia-sia
kehidupan dan kematian ditentukan 47 sebelum ajal berpantang mati oleh Tuhan
berguru kepalang ajar bagai bunga kita belajar haruslah bersungguh- 48 kembang tak jadi sungguh, jangan setengah-setengah
dangkal telah keseberangan dalam telah diketahui benar isi hati atau 49 telah keajukan perangainya
baru akan mulai melakukan 50 belum diajun sudah bertarung pekerjaan, sudah mendapatkan kemalangan
orang cerdik cendekia, (biasanya 51 lubuk akal tepian ilmu sebagai) tempat meminta nasehat
tak ada sesuatu yang terus menjadi akal tak sekali tiba, runding tak 52 sempurna, mesti secara berangsur- sekali datang angsur
53 telah berurat berakar sudah tak dapat di ubah lagi
54 jika tak ada rotan akarpun jadi kalau tak ada yang baik, yang kurang
Universitas Sumatera Utara baikpun berguna
orang pandai selalu menang dalam 55 akal akar berpulas tak patah pertengkaran
ada aku dipandang hadap, tiada aku berhadapan baik, tetapi dibelakang 56 dipandang belakang jahat perbuatannya
biar mahal harnya asal dapat dipakai 57 alah membeli menang memakai lebih lama
walaupun sudah kalah, namun masih 58 alah sabung menang sorak juga berani menyombongkan diri
orang lama dapat didesak oleh orang 59 alah limau oleh benalu pendatang baru
kebaikan harus dibalas dengan 60 alang berjawab tepuk terbalas kebaikan, kejahatan harus dibalas dengan kejahatan pula
kita yang menanggung segala 61 menjadi alas bubur resikonya
mengatakan sesuatu hal haruslah 62 dialas bagai memengat dipikirkan terlebih dahulu
untuk hadiah sebagai jasa yang telah 63 menjadi alas cakap diperbuat
64 mengaji alif-alif baru mulai belajar dari tingkat dasar
mengerjakan sesuatu pekerjaan 65 berbilang dari esa mengaji dari alif hendaknya dimulai dari permulaan atau menurut aturan
segala sesuatu hendaknya 66 jaman beralih musim bertukar disesuaikan dengan perkembangan jaman
Universitas Sumatera Utara tidur orang alim itu senantiasa tidur orang alim lebih baik dari pada 67 dengan kebaikan jua, tetapi puasa puasa orang jahil orang jahat itu dengan kejahatan
melakukan sesuatu dengan 68 main tedeng alng-aling sembunyi-sembunyi
69 alu patah lesung hilang menderita kemalangan terus-menerus
jika diselesaikan dengan cara halus 70 habis mengalur makan beralu-alu tidak berhasil, barulah ditempuh jalan kekerasan
yang diamalkan sudah pecah, yang 71 maksudnya sudah terlaksana dimaksud sudah sampai
ampang sampai ke seberang dinding mengerjakan sesuatu janganlah 72 sampai ke langit kepalang tanggung
belum berhasil sudah mengharap 73 belum beranak sudah berbesan yang bukan-bukan
74 pandang anak pandang menantu mencari menantu harus sepadan
kasihan anak tangan tangankan jika sayang dengan anak, kita harus 75 kasihan bini tinggal tinggalkan memarahi bila ia berbuat salah
menganggap sudah menguasai 76 belum beranak sudah ditimang sesuatu, tetapi syarat-syarat belum mencukupi
bila orang terkena hina, kaumnya 77 tercencang pun bergerak andilau akan ikut merasa terhina atau tersinggung
memikirkan yang bukan-bukan 78 angan-angan mengikat tubuh akhirnya susah sendiri
79 mabuk angan angan menginginkan sesuatu yang tak
Universitas Sumatera Utara mungkin tercapai
banyak sekali yang diusahakan, 80 angan lalu padam tertumbuk tetapi modal atau syaratnya yang tidak ada
81 air susu dibalas dengan air tuba kebaikan dibalas dengan kejahatan
air yang dingin juga dapat orang yang sedang marah dapat 82 memadamkan api diredakan hanya dengan kelembutan
keadaaan manusia tak akan tetap 83 air pun ada pasang surutnya (kadang sedang, kadang sedih)
kehidupan dan kematian ditentukan 84 sebelum ajal berpantang mati oleh Tuhan
berguru kepalang ajar bagai bunga kita belajar haruslah bersungguh- 85 kembang tak jadi sungguh, jangan setengah-setengah
baru akan mulai melakukan 86 belum diajun sudah bertarung pekerjaan, sudah dapat kemalangan
orang cerdik cendekia biasanya 87 lubuk akal tepian ilmu sebagai tempat meminta nasehat
kalau tak ada yang baik, yang kurang 88 jika tak ada rotan akarpun jadi baikpun berguna
mengharapkan pertolongan kepada 89 bergantung pada akar lapuk orang yang tak sanggup menolong
ada aku dipandang hadap tiada aku berhadapan baik, tetapi dibelakang 90 dipandang belakang jahat perbuatannya
mengerjakan sesuatu tak akan 91 alah bisa karena biasa merasakan kesukaran, bila sudah dikerjakan berkali-kali
Universitas Sumatera Utara biar mahal harganya asal dapat 92 alah membeli menang memakai dipakai lebih lama
walaupun sudah kalah namun masih 93 alah sabung menang sorak juga berani menyombongkan diri
orang lama dapat didesak oleh 94 alah limau oleh benalu pendatang baru
kebaikan harus dibalas dengan 95 alang berjawab tepuk terbalas kebaikan, kejahatan harus dibalas dengan kejahatan pula
mengatakan sesuatu hal haruslah 96 dialas bagai memengat dipikirkan terlebih dahulu
mengerjakan sesuatu pekerjaan 97 berbilang dari esa mengaji dari alif hendaknya dimulai dari permulaan atau menurut aturan
segala sesuatu hendaknya 98 jaman beralih musim bertukar disesuaikan degan perkembangan jaman
berkawan dengan orang alim menjadi kita berkawan haruslah pandai- 99 alim berkawan dengan pencuri pandai memilih menjadi pencuri
melakukan sesuatu dengan 100 main tedeng aling aling sembunyi-sembunyi
101 alu patah lesung hilang menderita kemalangan terus menerus
bagai guna guna alu sesudah sesuatu yang tak berguna lagi 102 menumbuk dicampakkan biasanya ditinggalkan begitu saja
tumbuh pada alur sudah ditumput 103 mengerjakan sesuatu pekerjaan tumbuh pada jalan sudah ditempuh hendaklah menurut apa yang telah
Universitas Sumatera Utara ditentukan
jika diselesaikan dengan cara halus 104 habis mengalur maka beralu alu tidak berhasil, barulah ditempuh jalan kekerasan
ampang sampai keseberang dinding mengerjakan sesuatu janganlah 105 sampai ke langit kepalang tanggung
belum berhasil sudah mengharapkan 106 belum beranak sudah berbesan yang bukan-bukan
107 pandang anak pandang menantu mencari menantu harus sepadan
kasihan anak tangan tangan kan jika sayang dengan anak, kita harus 108 kasihan bini tinggal tinggal kan memarahi bila ia berbuat salah
109 anak baik menantu molek mendapat keuntungan yang berganda
bila orang terkena hina, kaumnya 110 tercencang pun bergerak andilau akan ikut merasa terhina atau tersinggung
memikirkan yang bukan-bukan 111 angan angan mengikat tubuh akhirnya susah sendiri
112 angan lalu pahat tertumbuk keinginan besar, tetapi modal tak ada
banyak sekali yang diusahakan, 113 angan lalu padam tertumbuk tetapi modal atau syaratnya yang tidak ada
orang yang berkumpul beramai - 114 bagai anai anai bubus ramai karena adanya pertunjukan
115 ada angin baik ada harapan baik
berjalan - jalan untuk menghirup 116 makan angin udara segar
Universitas Sumatera Utara kemana angin deras disitu orang yang tidak mempunyai 117 condongnya pendirian tetap
118 angguk bukan geleng iya lain di mulut lain di hati
orang yang baik rupa, tetapi jelek 119 angkuh terbawa tampan tinggal tingkahnya
120 angus tiada berapi karam berair ditimpa musibah terus menerus
121 sudah dianjung dihempaskan sudah diangkat, kemudian dihinakan
mengerjakan sesuatu yang tak 122 bagai antan pencukil duri mungkin berhasil
waktu seribu anjing menyalak perkataan orang kecil tidak 123 gunung bolehkan runtuh mempengaruhi orang besar
orang yang sombong disanjung 124 anjing ditepuk menjungkit ekor sedikit sudah bangga
sama-sama tidak kenal takut atau 125 anjing galak babi berani pemberani
biarpun rintangan menghadapi 126 anjing menggonggong kafilah berlalu rencana jalan terus
orang yang gelisah minta 127 seperti anjing terpegang ekor pertolongan kesana kemari
anjing diberi makan nasi bilakah tak ada gunanya menanam kebaikan 128 kenyang kepada orang jahat
129 seperti anjing dengan kucing selalu bermusuhan
130 anjing menjalak tiada menggigit mulut besar, tetapi penakut
131 bagai anjing beranak enam orang yang tamak
Universitas Sumatera Utara anjing itu jika dipukul sekalipun orang jahat akan mengulang 132 berulang juga ia ke tempat yang kejahatan, meskipun sering dihukum banyak tulang
baru akan memulai pekerjaan, sudah 133 baru dianjur sudah bertarung lebih dulu mendapat rintangan
tiada merasa sadar perkataan yang 134 tiada tahu antah terkunyah tidak patut diucapkan
135 tiada berpisah antah dan beras tiada tentu lawan atau kawan
antah berkumpul sama antah beras setiap orang akan mencari teman 136 berkumpul sama beras yang sederajat, agar mudah bergaul
datang tak berjemput pulang tak tidak diperlakukan sebagaimana 137 diantar mestinya
terantuk batu dihindari terantuk kata orang yang bijaksana selalu dipikir 138 dipikiri dalam berbuat sesuatu
kejahatan yang tidak kelihatan, 139 seperti api dalam sekam karena dirahasiakan
jawaban yang tidak sesuai dengan 140 jauh panggang dari api persoalan
ingin ternama, kemudian melakukan 141 meletakkan api di bubungan perbuatan yang sangat berbahaya bagi diri sendiri
dipelihara tidak, dibuangpun tidak ( diapit tidak bersangit ditambat tidak 142 memelihara sesuatu atau isteri yang bertali tidak dihiraukan)
terapung tak hanyut terendam tak sesuatu perkara yang belum ada 143 basah kesputusannya
144 terapung sama hanyut terendam sama selalu sehidup semati, dan sehina
Universitas Sumatera Utara basah semalu
145 menantikan ara tak bergetah mengharapkan sesuatu yang mustahil
146 utang kayu ara utang yang tak akan terbayar lagi
orang yang bergembira karena 147 elok ara di hari panas tercapai cita-citanya
cita-cita sama, tetapi berbeda cara 148 arah bertukar jalan mencapainya
melakukan sesuatu sudah menurut 149 bearak arak tidak berlari sebagaimana mestinya
150 patah arang sudah tiada harapan lagi
151 arang dimuka arang dikening orang yang mendapat malu besar
152 membasuh arang dimuka menghilang malu
arang itu jika dibasuh dengan air orang yang dasarnya jahat itu sukar 153 mawar sekalipun tidak akan putih untuk diperbaiki
sesuatu yang dapat dipergunakan, 154 colek colek ganti asah walaupun hanya bersifat sementara saja
155 diasak kayu dicabut mati sesuatu yang tetap, dan tak berubah
kelakuan seseorang dapat 156 usul menunjukkan asal menunjukkan dari mana asal keturunannys
biarpun jauh tempat tinggalnya, asam digunung garam dilaut bertemu 157 kalau memang sudah jodohnya pasti dalam belanga akan menjadi suami istri
158 bagai melihat asam keinginan yang sangat besar
Universitas Sumatera Utara 159 bagai melihat asam keinginan yang sangat besar
sudah dapat diketahui seluk-beluknya 160 sudah tahu asam garamnya atau keadaan yang sebenarnya
sudah tidak ada cacat dan celanya 161 sudah seasam segaram lagi
162 belum dipanjat asap kemenyan belum pernah kawin
perihal orang miskin yang tidak 163 tungkunya tak berasap memasak
164 menggantang asap mengukir langit pekerjaan yang sia-sia
merasai atau merasakan asinnya 165 orang yang telah banyak pengalaman garam
selalu dalam keadaan yang berlainan 166 asing lubuk asing ikannya atau berbeda
lain tujuan, lain pula yang dapat 167 asing maksud asing sampai dicapainya
mencampur adukkan yang baik 168 atap ijuk kerabung upih dengan yang buruk akhirnya menjadi jelek
jangan melihat ke atas melihat jangan memperbandingkan orang 169 kebawah yang kaya dengan kita
170 seperti aur ditarik sungsang pekerjaan yang sulit diselesaikan
mendapatkan keuntungan lebih apa 171 aur ditanam, betung tumbuh yang diharapkan
orang yang selalu menderita 172 aus telunjuk mencolek ragam kemiskinan
173 awak menangis diberi pisang memberi kesenangan kepada orang
Universitas Sumatera Utara yang sedang susah
awak yang tiada pandai menari untuk menutupi kebodohannya, 174 dikatakan lantai yang terjungkat dicarinya alasan pada orang lain
seseorang yang mengatakan 175 awak sakit daging menimbun kekurangan, padahal banyak harta
176 awal dikenal akhir tidak tiada menimbang baik buruknya
mengharapkan keuntungan, akhirnya 177 ayam ditambat disambar elang rugi yang diperoleh
seseorang yang merasa sama dengan 178 seperti babi merasa gula orang besar atau berpangkat
179 menanti batu terapung mengharap yang tak mungkin terjadi
orang tua yang membuang anaknya, 180 badak makan anak karena takut hancur kehormatannya
janganlah dengan sengaja mencari 181 anak badak dihambat hambat malapetaka
hancur badan dikandung tanah budi budi bahasa yang baik itu tidak akan 182 baik tekenang jua dilupakan selama-lamanya
orang yang kecil akan meniru-niru 183 main badar main gerundang perbuatan orang besar akhirnya susah sendiri
besar pendapatan, besar pula besar kayu besar bahannya kecil 184 pengeluaran, kecil pendapatan kecil kayu kecil bahannya pula pengeluaran
bahasa dan bangsa tidak diperjual kita akan dihormati orang lain, jika 185 belikan budi bahasa kita baik
186 tangan mencencang bahu memikul orang yang bertanggung jawab atas
Universitas Sumatera Utara perbuatannya
187 dahulu bajak daripada jawi pekerjaan yang tak menurut aturan
barang yang tanggung, tak dapat 188 bahan baji oleh keledai dipergunakan
189 menyingsing lengan baju bekerja keras
orang yang dalam kebingungan tak 190 bagai kebakaran janggut keruan
janganlah sengaja mencari 191 bala lalu dibawah singgah malapetaka
orang akan lupa bahaya, tetapi jerat tak melupakan balam tetapi 192 bahaya takkan lupa dengan balam melupakan jerat mangsanya
193 balik dibelakang lain bicara orang yang mengingkari janji
194 bagai baling baling di atas bukit mudah kena pengaruh
melakukan usaha yang tidak sesuai 195 musim kemarau menghilirkan baluk lagi dengan waktu atau keadaannya
orang yang lemah-lembut, tetapi tak 196 seperti pohon bambu ditiup angin mudah kena pengaruh
pekerjaan yang hanya menderita 197 upah lalu bandar tak masuk kerugian saja
setinggi tinggi terbang bangau kemana saja kita merantau, akhirnya 198 jatuhnya kepelimbahan juga akan kembali juga ketempat semula
menceritakan keahlian diri sendiri 199 menjemur bangkai ke atas bukit kepada orang lain
200 bangsat tak tahu disukainya orang kecil berlagak seperti orang besar dan tak menginsafi akan
Universitas Sumatera Utara kekurangannya
orang yang tidak mempunyai tempat 201 bertiraikan banir tinggal yang tetap
orang laki-laki yang kawin dengan 202 lepas bantal berganti tikar keluarga isterinya yang telah meninggal
tak ada gunanya mengajar anak yang 203 terajar pada banteng pincang keras kepala
cukup dan tidaknya tergantung 204 banyak habis sedikit sedang kepada boros dan hematnya seseorang
sebagai duduk di atas bara, duduk 205 serba salah salah tegakpun salah
orang yang tak tahu atau mengenal 206 tak tahu di basa basi sopan santun
menderita kesusahan bertumpuk- 207 sudah basah kehujanan tumpuk
kita harus berusaha mengerjakan berjalan sampai ke batas berlayar 208 ssesuatu untuk mencapai suatu sampai ke pulau maksud
209 tak payah basuh kaki tangan barang murah dan mudah didapat
mengerjakan pekerjaan yang mudah 210 menggolekkan batang terguling sekali
kita harus bekerja keras untuk berjalan sampai ke batas berlayar 211 mencapai cita-cita (mengerjakan sampai ke pulau sesuatu haruslah sampai tuntas)
Universitas Sumatera Utara dari keluarga yang baik itu, bila umpama batik lasum makin dimasuh 212 dididik terus menerus yang baik akan makin berbau menjadi lebih baik lagi
213 tiada berbau telunjuk saja tidak percaya kepada cerita orang
hendaklah kita selalu berbudi bahasa berkata di bawah bawah mandi di serta bertingkah laku yang halus 214 hilir hilir terhadap siapapun, agar orang sayang kepada kita
bayang bayang sepanjang badan perbuatan kita harus sesuai dengan 215 selimut sepanjang tubuh kemampuan kita sendiri
216 makan bayang marah di dalam hati
anak perempuan yang menjelang 217 beban sudah di pintu dewasa sudah pantas untuk berumah tangga
membantu musuh untuk 218 menjual bedil kepada lawan membinasakannya
219 sebagai membekali budak lari rugi dua kali
bagai belacan dikerat dua yang pergi menderita air dari dua jurusan atau 220 busuk yang diam anyir arah
bersuara keras atau mempunyai 221 suara membelah bumi pengaruh yang besar
orang bodoh sekalipun, bila rajin belakang parang lagi bila diasah 222 belajar pasti akan dapat menjadi niscaya tajam pandai
orang bodoh telah menjadi orang 223 belalang telah menjadi elang besar
224 bagai belanda minta tanag diberi orang tamak, diberi sedikit minta
Universitas Sumatera Utara sejengkal hendak seharta banyak
225 matahari bagai membelah benak hari yang sangat panas
orang yang memperlihatkan 226 harimau menunjukkan belangnya kekuasaanya
berusaha mendapatkan sesuatu, 227 memancing dalam belanga sesungguhnya sudah tahu akan menjadi miliknya
punggur tumbang belatuk seseorang yang terlibat dalam 228 menumpang mati persoalan, padahal ia tidak berbuat
membeli tak memakai memasak tak kita yang bersusah payah tetapi orang 229 memakan lain yang beruntung
segala sesuatu yang tak akan 230 turun ijuk turun beliung ditangguhkan
pindah dari suatu tempat ke tempat 231 dari semak kebelukar lain yang sama-sama jeleknya
232 belut kena ranjau orang cerdik kena tipu orang lain
perihal anak angkat mengalahkan 233 alah benali oleh benalu anak kampung
dalam hal ketiadaan, apa yang ada 234 tak benang batu di gelas dipakai
seseorang pedagang yang berpegang 235 naik juga benderanya peranan
jika benih yang baik jatuh kelaut keturunan orang yang baik, kemana 236 menjadi pulau ia pergi akan tetap baik juga
berani mengerjakan pekerjaan yang 237 berani malu takut mati terlarang, akhirnya menyesal
Universitas Sumatera Utara simpanlah rahasia orang lain, supaya 238 ada beras taruh didalam padi dia tidak kecewa
berat sama dipikul ringan sama sama-sama menderita dan sama-sama 239 dijinjing berbahagia
suami istri, bila siang bertengkar berek berek laga siang malam 240 tetapi kalau malam tidur bersama- sekelapan sama
berudu besar dikubangan, buaya kekuasaan tiap-tiap orang itu 241 besar dilautan ditempatnya masing-masing
orang yang kesakitan selalu berkeluh 242 bagai beruk kena ipuh kesah
besar pendapat, besar pula 243 besar periuk besar keraknya pengeluaran
sedencing bagai besi seciap bagai 244 seia-sekata, senasib sepenanggungan ayam
supaya selamat janganlah 245 baik jadi ayam betina supaya selamat menyombongkan diri
246 diberi betis hendak paha diberi sedikit minta yang banyak
orang hina menjadi mulia, lalu 247 bungkuk baru betul berbuat yang bukan-bukan
248 bagai membela betung berat sebelah
249 biang menanti tembuk perkara yang hampir putus
250 biawak kudung masuk kampung tersesat di daerah pertahanan musuh
apa yang dikatakan tida keluar dari 251 hanya sampai dibibir saja isi hatinya
252 banyak bicara sedikit kerja orang yang banyak bicaranya,
Universitas Sumatera Utara biasanya sedikit sekali kerjanya
menderita kesusahan karena 253 beranak tiada berbidan kebodohannya
menunggu nasib karena sudah tidak 254 biduk tiris menanti karam ada daya uapaya lagi
kebaikan yang kita berikan kepada menaburkan bijan ke tasik tiada akan 255 orang yang tak tahu diri tiada tumbuh gunanya
256 bagai meremas biji cempedak orang yang pandai, dukar dikalahkan
mengerjakan sesuatu harus kita mulai 257 berbilang dari esa mengaji dari alif dari permulaan, berangsur-angsur sampai selesai
bila hanya menurutkan hawa nafsu 258 ikut hati mati ikut sara binasa belaka akhirnya akan celaka
mengajar binatang dengan pukulan, binatang tahan palu manusia tahan 259 tetapi kalau manusia cukup dengan kias sindiran
istri meninggal dapat diganti, tetapi hilang bini boleh dicari hilang budi 260 akal yang hilang mendatangkan badan celaka celaka
orang yang berlagak pandai dan tak bingung tak dapat diajar cerdik tak 261 mau mendengarkan nasihat orang dapat diikut lain
262 ia mendapat bintang ia mendapatkan juara
dua orang yang tampan, tetapi 263 bak birah dengan keladi hatinya berlainan
264 pisau senjata tiada bisa bisa lagi dilukai dengan kata-kata lebih sakit
Universitas Sumatera Utara mulut manusia daripada tikam dengan pisau
orang yang malu tak dapat bagai si bisu berasi terasa ada 265 mengeluarkan isi hatinya, meskipun terkatakan tidak tahu apa yang akan dikatakan
sedang menghadapi kesulitan yang 266 sebagai bisul hampir memecah hampir dapat diatasi
pemimpin selalu diturutkan anak 267 bondong air bondong ikan buahnya
diaman buah masak disitu burung bila kita banyak rejeki, banyak 268 banyak tampil kawan yang berdatangan
membuang jauh jauh menggantung jika mengadili seseorang hendaklah 269 tinggi tinggi seadil-adilnya
berbuat baik secukupnya, jangan berbuat baik pada padai berbuat jahat 270 berlebihan jauhkanlah dirimu dari jangan sekali perbuatan kejahatan
lepas dari mulut buaya masuk ke 271 sama-sama berbahaya dalam mulut harimau
272 nasi telah menjadi bubur sesuatu yang tak dapat diperbaiki lagi
orang yang gemar berteriak-teriak, 273 bagai anai anai bubus terutama diluar rumah
274 bagai budak sapu ingus orang yang mendapat malu
jatuh kehormatannya, karena 275 sebab budi boleh kedapatan perbuatannya yang jelek
mengebat erat erat membuhul mati bila membuat perjanjian, hendaklah 276 mati diatur sebaik-baiknya
jika keras mengerjakan sesuatu 277 kalau pandai maniti buih selamat pekerjaan yang sukar pasti akan
Universitas Sumatera Utara badan keseberang terlaksana apa yang diharapkan
278 sebagai bujang dengan gadis malu-malu tapi mau
279 seperti bujuk lepas dari bubu cepat-cepat menghilang
kehendak yang keras tak ada yang 280 terbujur lalu terbelintang patah menghambat
ke bukit sama mendaki ke lurah sama sama-sama senang dan sama-sama 281 nenuruni susah
karena memilih-milih, akhirnya 282 bayak dipilih dapat buku mendapatkan yang buruk
putri yang cantik dengan didampingi 283 bagai bulan dipagar bintang kawan-kawannya yang cantik pula
284 bagai bulan kesiangan muka yang pucat karena kurang tidur
285 kerbau pembulang tali orang yang tak berpendirian tetap
bulat telah dapat digulingkan pipih 286 mufakat yang telah ditetapkan telah dapat dilayangkan
287 berbulu mata melihat ulat sangat benci sekali melihatnya
orang yang terlalu ramai bila sedang 288 bagai buluh dibakar berbicara
289 bumi mana yang tak kena hujan manusia mana yang tak pernah khilaf
bukan salah bunda mengandung 290 menyesali nasib yang malang salah oleh badan buruk pinta
berbuat kebaikan terhadap orang 291 bagai membuang bunga ke jirat yang tak tahu tentang budi
burung gagak itu jikalau dimandikan 292 orang yang jahat itu walaupun dengan air mawar sekalipun tidaklah
Universitas Sumatera Utara akan putih warnya dinasehati, tetapi akan berbuat jahat
orang yang tak pernah menyatakan 293 buruk siku tentang kebaikan atau pemberian orang lain
yang busuk itu lama lama berbau perbuatan jahat itu lama kelamaan 294 juga akan ketahuan juga
orang yang miskin menjadi sombong 295 orang buta mendapat tongkat karena baru mendapat kemuliaan
tidak pernah akan keurangan suatu 296 pecah buyung tempayan ada apa (terutama perempuan atau istri)
siapa yang makan cabe dialah terasa barang siapa berani berbuat, harus 297 pedas berani menanggung akibatnya
orang yang berselisih dengan 298 cabik cabik bulu ayam keluarganya, tak lama lagi akan baik kembali
mencacakkan seperti lembing 299 tegak dan terdiam karena terhenyak tergadai
orang kecil meniru kelakuan orang 300 cacing hendak menjadi ular naga besar
calak calak ganti asah menunggu menunggu-nunggu yang lebih 301 tukang belum tiba pandai, sambil mengerjakan sesuatu
campak bunga di balas dengan 302 kebaikan dibalas dengan kejahatan campak tahi
seperti orang memakan candu perbuatan yang telah menjadi 303 dengan candu sampai mati kebiasaan, sukar untuk meninggalkan
304 cekel berhabis lapuk berteduh berlaku kikir tak baik, sebab
Universitas Sumatera Utara akhirnya akan habis juga hartanya
305 bagai cekur jerangan di ubun ubun masih terlalu muda
306 bagai cembul dengan tutupnya sudah amat sesuai atau cocok
seorang saja makan cempedak semua seorang saja yang berbuat salah, satu 307 kena getahnya keluarga dianggap salah
mengerjakan sesuatu harus mencencang berlandasan, melompat 308 menyiapkan terlebih dulu apa yang bersetumpu diperlukan, agar jangan sia-sia
dimana cendawan tumbuh di situ dimana perkara itu timbul distulah 309 tembilang terentak penyelesaiannya
bila sedang diberi kekuasaan, lalu 310 burung elang cengkreram anak ayam berbuat sewenang-wenang
pekerjaan yang dikerjakan tergesa- 311 terlampau cepat jadi lambat gesa, akhirnya jadi lambat
orang yang pandai menutupi siapa cerdik tinggal naik siapa calak 312 kesalahannya, sehingga orang menang berhitung percaya bahwa ia benar
313 jangan bercermin air keruh jangan meniru perbuatan yang buruk
seciap bagai ayam sedencing bagai mengerjakan sesuatu dengan cara 314 besi bersama-sama
315 seperti cina karam percakapan yang sangat ramai
316 seperti cincin dengan permata sesuai benar dalam segala hal
mati terhormat atau dengan nama 317 mati berkafan cindai baik/harum
cinta itu tidak memandang bangsa, 318 cinta itu buta derajat dan harta
Universitas Sumatera Utara sudah dikuasai oleh orang lain, 319 termakan cirit terendang karena terkena guna-guna
320 bagai tercocok hidung orang yang kena tipu mentah-mentah
menjadi miskin atau hina/turun 321 jatuh coloknya derajat
mengambil contoh kepada yang sesuatu yang baik pada waktu silam, 322 sudah mengambil tuah kepada yang hendaklah dipakai sebagai teladan menang
323 condong yang akan menimpa suatu perbuatan yang membahayakan
bila berbuat salah, harus mau 324 sudah cotoj melantingkan membetulkannya
cuaca di langit tanda akan panas barang sesuatu, pasti ada tanda 325 gabah di hulu tanda akan hujan kekhususannya
siapa yang kena cubit akan merasa siapa yang kena sindiran berarti 326 pedih dialah orang yang bersalah
cupak sepanjang betung adat kita mengerjakan sesuatu haruslah 327 sepanjang jalan menurut aturan yang telah ada
328 dabik menampung darah orang yang sangakat loba atau tamak
329 membusungkan dada orang yang angkuh sombong
menghambur-hamburkan harta benda 330 dahan pembaji batang majikannya atau pemimpinnya
biar dahi berluluk asal tanduk biar menderita bagaimanapun, 331 mengena asalkan maksudnya dapat tercapai
yang dahulu mendapat yang pimpinan yang pertama bijaksana, 332 kemudian ketinggalan tetapi penggantinya bodoh
333 dalam lautan dapat diduga dalam hati kita tak dapat mengetahui isi hati
Universitas Sumatera Utara siapa yang tahu orang lain
jika tak lalu dandang di air di gurun segala daya upaya dipergunakan 334 dirangkakkan untuk menyampaikan maksudnya
mendapat sama berlaba kehilangan 335 seia dan sekata sama merugi
masih sangat muda, kurang 336 darah setampuk pinang pengalaman
datang tampak muka pergi tampak datang dan pergi harus sama-sama 337 punggung menunjukkan lagi
mendapat bahaya yang tidak 338 jatuh pada yang datar disangka-sangka, karena dianggap biasa
339 bersembunyi di balik daun sehelai pekerjaan yang sia-sia
sekali merengkuh dayung dua tiga menyelesaikan dua, tiga pekerjaan 340 pulau terlampaui dalam satu waktu
meminta dedak kepada orang minta pertolongan kepada orang 341 mengubik yang tak mampu
pimpinan yang terjerumus karena 342 dedap di bawah cengkering perbuatan bawahannya
perselisihan dalam keluarga yang 343 degar degar merpati berakibat merepotkan keluarga itu sendiri
344 seperti delima merekah bibirnya merah dan bagus
orang yang tak mau mengindahkan 345 didengar ada dipakai tidak nasehat
346 sambil berdendang biduk hilir melakukan dua pekerjaan dalam satu
Universitas Sumatera Utara waktu
pekerjaan yang tergesa-gesa akan 347 deras datang dalam kena merugikan juga
348 habis destar kopiah luluh banyak memberikan kerugian
perkara yang sudah tidak dapat 349 bagai denai gajah lalu ditutup-tutupi
sudah tidak menurutkan nasihat 350 didengar ada dipakai tidak orang lagi
diam dibandar tak meniru diam di orang yang tinggal dinegeri tetapi tak 351 laut asin tidak menurut adat kebiasaan yang ada
orang yang miskin itu tak berdaya, 352 kalau tak beriam baiklah diam terimalah seadanya
353 bagai diiris dengan sembilu sesuatu yang sangat menyedihkan
kaki mendorong lidah mendorong segala janji harus ditepati, karena 354 emas pdahannya janji sama halnya dengan utang
355 dalam dua tengah tiga orang yang tak dapat dipercaya
bergirang hari sebelum maksud 356 belum duduk belunjur dulu tercapai
suami istri yang sangat elok dan 357 bagai dulang dengan tudung saji cocok
mau bersuka ria tetapi tak mau keluar 358 dunia diadang saku saku dijahit uang
orang yang pandai tak usah diberi 359 adakah duri dipertajam nasehat
mendapatkan keuntungan yang besar, 360 mendapat durian runtuh tanpa susah payah
Universitas Sumatera Utara 361 dilepas tetapi dipegang ekor menyuruh dengan setengah hati
sepantun elang dengan ayam lambat jangan dibiarkan bujang bergaul 362 laun disambar juga dengan gadis, akibatnya kurang baik
orang yang selalu baik budi elok bahasa akan hidup elok budi bahasanya akan disayang selama 363 akan bekal mati hidup, bahkan setelah matipun akan selalu dipuji juga
364 bagai emak mandul baru beranak sangat sayang terhadap anaknya
karena orang miskin, ia disangka 365 emas disangka loyang orang jahatm, padahal baik budinya
berbau bagai embacang berjejak terdapat tanda-tanda untuk 366 bagai berkik membuktikan kejahatan
seseorang kasih sayang yang tidak 367 seperti embun diujung rambut menetap pada orang
persengketaan yang telah empang sampai keseberang dinding 368 memutuskan persaudaraan selama- sampai kelangit lamanya
sesuatu yang sama saja atau tiada 369 pergi berempap pulang eban bedanya
menderita kecelakaan yang terus 370 sudah diempas dihela pula menerus
kalau baik maka sangat baik, kalau 371 pahit bagai empedu jahat makan terlalu jahat
enak makan dikunyah enak kata sesuatu hal haruslah diperhitungkan 372 diperkataan terlebih dahulu
jika orang hina dina mati tidak 373 mati enau tinggal di rimba dikenang orang
Universitas Sumatera Utara menyembunyikan sesuatu yang 374 mengendap di balik lalang sehelai mudah diketahui orang
bila sedang tidak menyukai sesuatu, 375 enggan seribu daya mau sepatah kata akan banyak memberi alasan
376 seperti pipit dengan burung enggang jodoh yang tidak sepadan
seperti pucuk eru kemaba angin keras 377 orang yang tidaj tetap pendiriannya ke situlah condongnya
berbuat tak kepalang tanggung, 378 esa hilang kedua terbilang sehingga maksud dapat tercapai
379 tak ada gading yang tak retak tak ada sesuatu yang sempurna
380 bagai gadis jolong bersubang sombong karena sudah menjadi kaya
suaminya hitam dan buruk, tetapi 381 bagai gagak mengggonggong telur istinya cantik
382 seperti sirih pulang ke gagangnya telah kembali ke asalnya atau aslinya
sedang memperlihatkan 383 seperti buku gaharu keunggulannya
gajah berjuang sama gajah pelanduk kalau orang-orang besar berselisih, 384 mati ditengah tengah sasarannya kepada orang-orang kecil
perbuatan tak berguna, tentu akan bergalah hilir tertawa buaya bersuluh 385 dicemoohkan oleh orang yang di bulan terang tertawa harimau berakal
lain yang dimaksud lain pula yang 386 asing biduk galang diletak dikerjakan
melakukan perkerjaan yang ringan, 387 bagai menyandang galas tiga tetapi sukar dikerjakan
388 gali lubang tutup lubang mencari pinjaman untuk membayar
Universitas Sumatera Utara utang
389 gamak gamak seperti menyambal baru dalam taraf percobaan
orang yang mengerjakan sesuatu orang penggamang mati jatuh orang 390 haruslah berani dan jangan takut- pendingin mati hanyut takut
segala sepak terjangnya, tak pernah 391 keluar ganjil masuk tak genap dibenarkan atau tak ada gunanya
392 bagai menggantang anak ayam pekerjaan yang sulit dikerjakan
selalu ada penggantinya (bila ada 393 patah tumbuh hilang berganti yang hilang)
anggota keluarga atau istri yang tak 394 bergantung tak bertali terurus
garam di laut asam di gunung perjodohan tidak mengindahkan jauh 395 akhirnya bertemu dalam belaga dekat keadaan
cita-cita ada tetapi bekal kurang 396 hendak menggaruk tiada berkuku mencukupi
orang yang menurutkan hawa 397 diturutkan gatal tiba ditulang nafsunya saja, akhirnya menyesal
tiap perkataan pasti ada jawabnya, 398 gayung disambut kata dijawab tetapi hendaknya didengarkan terlebih dahulu
tak pernah masuk gelanggang 399 sangat canggung/kaku bergung
kecil kita panggil namanya, setelah 400 kecil bernama besar bergelar besar dipangkatnya
401 geleng bagai sepasung kenyang orang yang selalu bergembira
Universitas Sumatera Utara seakan-akan tidak kurang suatu apa
orang yang banyak cakapnya, 402 tinggi gelepur rendah laga biasanya tak pandai
menerima sesuatu tak bisa 403 bagai gembala diberi keris mempergunakannya
orang yang berharga dalam 404 masuk genap keluar ganjil pergaulan
bagaimana bunyi gendang begitulah mengerjakan sesuatu harus menurut 405 tarinya peraturan yang telah ada
barang yang telah ada kemudian tiba- 406 burung tergenggam terlepas tiba hilang
sesuatu yang telah diputuskan tak 407 genting putus biang tembuk dapat diubah lagi
mendapatkan untung dari dua belah 408 seperti gergaji bermata dua pihak
409 geruh tak mencium bau celaka akan tiba sewaktu-waktu
suatu perkara yang sudah semakin 410 bagai getah dibawa ke semak berbaur
jangan mengajar kepada orang jangan mengajar orang yang bergigi 411 pandai dengan pengetahuan yang makan bubur gampang
412 gila di abun abun mengharapkan sesuatu yang mustahil
jika orang asing telah kembali, 413 teras berunjam gubal melayang penghuni akan (menengah) kembali
dimana banyak penghasilan, disitu 414 ada gula ada semut banyak orang berdatangan
Universitas Sumatera Utara gulai sedap nasi mentah nasi sedap sesuatu yang kurang memuaskan, 415 gulai mentah karena ada-ada saja kekurangannya
416 tak tahu membalas guna tidak mengenal (membalas) budi
membanggakan harta benda yang 417 gung gung pesuk telah tiada
mengharapkan keuntungan yang mengharapkan guntur dilangit air 418 besar, yang belum pasti keuntungan ditempayan dicurahkan yang telah ada dilepaskan
maksud hati memeluk gunung apa cita-cita tinggi tetapi tak mampu 419 daya tangan tak sampai untuk melaksanakannya
mengerjakan sesuatu pekerjaan 420 biar lambat asal selamat hendaklah berhati-hati, dan tidak perlu tergesa-gesa agar selamat
tajamnya perkataan orang yang 421 seperti gunting makan di ujung bijaksana itu tidak tampak karena tutur katanya
mengharapkan sesuatu yang besar mengharapkan guntur di langit air 422 dan belum tentu hasilnya yang ditempayan ditumpahkan dikuasai ditinggalkan
guru kencing berdiri murid kencing guru harus memberi contoh yang 423 berlari baik, supaya muridnya meniru
tak ada guruh bagai orang pekak tak orang yang bodoh tidak mengerti 424 ada kilat bagai orang buta perkataan sindiran
berusaha dengan sungguh-sungguh 425 menjangkau habis tangan atau sekuat tenaga
sariat palu menalu hakekat balas kebaikan seseorang harus kita balas 426 membalas dengan kebaikan juga
Universitas Sumatera Utara yang hampa biar terbang yang bernas yang tidak berguna biasanya tidak 427 biar tinggal dihiraukan lagi
428 hangat hangat cirit ayam kemauan yang tidak begitu kuat
hangus tiada berapi hanyut tiada menderita kesusahan yang amat 429 berair sangat
celaka karena takut kepada sesuatu 430 takut hantu terpeluk bangkai yang sebenarnya tidak ada
terapung tak hanyut terendam tak 431 perkara yang tiada berkesudahan basah
nilai barang akan bergantung kepada 432 ada rupa ada harga keadaan barangnya sendiri
waktu yang baik tidak dimanfaatkan hari pagi dibuang buang hari petang 433 tetapi setelah terdesak baru bekerja dikejar kejar keras-keras
434 harimau ditakuti karena giginya orang ditakuti karena kekuasaannya
sedang menyelidiki keeratan 435 mencari yang sehasta sejengkal hubungan keluarga
hati gajah sama dilapah hati kuman 436 perbuatan yang sangat adil sama dicecah
harus pandai menjaga hawa nafsu 437 hawa berpantang kerendahan karena jahat
menderita berbagai kesusahan yang 438 sudah diheban dihela pula terus menerus
harus selalu berusaha agar jangan ingat sebelum kena hemat sebelum 439 terlambat mendapat celaka atau habis kesusahan
Universitas Sumatera Utara orang bodoh akan selalu ikut apa 440 seperti kerbau dicolok hilang yang dikatakan orang lain
hidup dikandung adat mati hidup harus menurut kehendak adat 441 dikandung tanah yang ada
teguh hatinya untuk menghadapi 442 pertama hilang kedua terbilang syatu pekerjaan yang berbahaya, terutama untuk kepentingan umum
ke hulu kena bubu ke hilir kena bahaya bila sudah datang tak dapat 443 tengkalak dielakkan lagi
dalam menghadapi masalah penting dekat mencari hindu jauh mencari 444 atau sulit terlebih dahulu mendekat suku keluarga
pantang mundur dalam mencapai 445 hitam tanpa tempa putih tahan sesah kemauan hati
446 sebagai menghitung bulu kambing melakukan pekerjaan yang sia-sia
447 menanti hujan dimusim kemarau mengharapkan yang mustahil terjadi
kesenangan atau kekayaan harus kita berakit rakit kehulu berenang renang 448 mulai dari kesengsaraan terlebih ke tepian dahulu
mengatakan kemegahan yang tanpa 449 dikatakan huma lebar bukti
tak ada gunanya menunjukkan 450 apa guna merak mengingau di hutan keahlian di depan orang bodoh (dan tak berpengalaman)
hulu mujur pandai bertengkar hulu 451 pandai hidup dan pandai pula bergaul baik pandai memakai
452 kasih ibu sepanjang jalan kasih anak kasih sayang ibu tak terbatas, tetapi
Universitas Sumatera Utara sepanjang galah cinta anak sangat terbatas
setiap orang wajib melakukan usaha 453 ikhtiar menjalani untung menyudahi sekuat-kuatnya, berhasil tidaknya tergantung pada nasib
perantau telah pulang kekampung 454 seperti ikan pulang kelubuk halamannya lagi
ikat boleh diubah takut bagaimana 455 tabiat sesorang sukar sekali diubah mengubahnya
agar tidak celaka, jangan hendaknya 456 ikut hati akan mati menurutkan hawa nafsu belaka
menunjukkan ilmu kepada orang 457 melakukan pekerjaan sia-sia menetek
458 seperti inai dengan kuku selalu bersatu, sukar dipisahkan
459 indah kabar dari rupa berita lebih bagus pada kenyataannya
perkara yang sangat sukar 460 tidak terindang dedak basah diselesaikan
461 telah menjadi indorus sudah dalam keadaan kalah
hendaklah kita pandai mengambil kalau pandai berinduk semang lebih 462 hati majikan, supaya ia sayang serasi induk kandung kepada kita
sebelum mengerjakan sesuatu harus ingat sebelum kena hemat sebelum 463 kita teliti terlebih dahulu supaya habis berhasil baik
kata-kata baik itu meskipun intan itu jika keluar dari mulut anjing 464 dikeluarkan oleh orang hina tetap sekalipun akan tetap intan juga baik juga
Universitas Sumatera Utara yang baik kita pakai dan yang buruk 465 buang sampah tinggal intinya kita tinggalkan
seiring bertukar jalan seia bertukar perkataan yang berlainan tetapi 466 sebut maksudnya sama
467 bagai diiris dengan sembilu sakit hati yang sangat pedih
468 buang kulit tampaklah isi terus terang
469 seperti itik pulang petang jalannya tak benar
habis air habislah kayu jagung tua usaha yang mendatangkan rugi 470 tak hendak masak belaka
471 jahit sudah kelindan putus selesai secara sempurna
siapa yang berkemauan, hendaknya 472 siapa jala siapa terjun melakukan usaha
mengatakan sesuatu haruslah berjalan selangkah surut berkata dipikirkan terlebih dahulu supaya tak 473 sepata dipikirkan ada hal-hal yang kurang menyenangkan
474 bagai jampuk kesiangan dalam keadaan kebingungan
kita harus menepati janji sebab janji 475 janji ditepati ikrar dimuliakan adalah sebagai hutang
sangat bersedih karena kelakukan 476 makan hati berulam jantung anaknya
tegak meninjau jarah duduk meraut orang yang sangat rajin, ada saja 477 ranjau yang dikerjakan
mencela orang lain, padahal dirinya 478 jaras dikatakan raga jarang sendiri masih ada celanya
479 sia sia menjaring angin melakukan pekerjaan yang tak
Universitas Sumatera Utara membawa hasil apa-apa
jika permintaan yang besar 480 lurus jarum lurus kelindan dikabulkan tentu permintaan yang kecil akan dikabulkan juga
481 jatuh terhimpit jenjang menderita kesusahan yang beruntun
482 jauh panggang dari api tidak ada sangkut-pautnya
hanya orang bijaksanalah yang tahu 483 jauhari pula yang mengenal manikam akan manfaat ilmu
sangat gelisah karena kurang 484 bagai jawi terkurung kebebasan
melakukan suatu pekerjaan yang sia- 485 mencari jejak di dalam air sia belaka
segala sesuatu yang serba 486 jelatang di hulu air menyusahkan
baru saja memulai pekerjaan, sudah 487 jemur terkekar ayam ada hasilnya
mengerjakan pekerjaan harus 488 berjenjang naik, bertetangga turun menurut aturan yang ada
berlebih-lebihan, karena membesar- 489 cakapan sejengkal dibawa sehasta besarkan perkara kecil
barang siapa menjerumuskan orang 490 tahan jerat sorong kepala lain, ia sendiri akan terjerumus juga
dalam keadaan yang bagaimanapun 491 tongkat patah terjermang harus melakukan usaha, tidak boleh berputus asa
492 jinak jinak merpati nampaknya mau, tetapi setelah
Universitas Sumatera Utara didekati lari
ringan sama dijinjing berat sama persahabatan yang karib, suka duka 493 dipukul bersama-sama
membuang harta (dan tenaga) yang 494 membuang bunga ke jirat sia-sia
seperti gadis jolong bersubang 495 orang yang sangat sombong bujang jolong berkeris
sebelum mengerjakan pekerjaan, 496 telah dijual maka dibeli hendaknya dipikirkan secara masak- masak
497 dari juang turun ke sampan sedang turun pangkat atau derajat
pekerjaan telah selesai, baru ingat 498 menegakkan juek juek cara mengerjakannya
kabar jauh dengar-dengaran kalau kabar yang kita terima harus kita 499 dekat pikir pikiri selidiki terlebih dahulu
jangan disesal gunung berlari hilang hal yang sudah pasti, kerjakanlah 500 kabut tampaklah dia dengan sabar
Tabel 3.2 Daftar Kata Sapaan
Id Kata sapa Kata respon
1 hai hai juga
2 halo hai
3 kabar hari baik, kamu?
4 baik juga Alhamdulillah
5 Assalammualaikum Waalaikumsalam
Universitas Sumatera Utara 14 seperti apa lagi lanjutannya ?
15 sehat kesehatan memang harus dijaga
22 selamat pagi selamat pagi juga
23 selamat siang selamat siang juga
24 selamat sore ngapain kamu sore ini?
selamat malam juga, jangan 25 selamat malam begadang ya.
4.1.5. Analisis Case Folding
Case Folding merupakan proses menghilangkan karakter yang terdapat pada kalimat. Hanya huruf ‘a’ sampai ‘z’ saja yang diterima. Ilustrasi analisis case folding dapat dilihat pada Gambar 3.5.
Apa sih arti ada gula ada semut ?
Apa sih arti ada gula ada semut
Gambar 3.5. Analisis Case Folding
4.1.6. Analisis Tokenizing
Tokenizing merupakan proses penguraian kalimat menjadi kata-kata yang menyusunnya. Proses ini dilakukan agar sistem mengerti dengan masukan pengguna.
Berikut merupakan langkah-langkah umum tokenizing dalam contoh kalimat (pertanyaan) yang berisi kata-kata “Apa sih arti ada gula ada semut ” yang dapat dilihat pada Gambar 3.6.
1. Membagi setiap kata dalam teks, dan mengubahnya menjadi huruf kecil. 2. Hasilnya adalah kata-kata yang merupakan penyusun kalimat yang dimasukkan. apa Apa sih arti ada gula sih ada semut arti
ada Universitas Sumatera Utara
Gambar 3.6. Tahap Tokenizing 4.1.7. Analisis Filtering
Filtering merupakan tahap pengambilan kata – kata penting dari hasil proses tokenizing. Bisa dengan menggunakan stop list (membuang kata yang kurang penting) atau word list (menyimpan kata yang penting). Pada sistem ini menggunakan metode stopword yaitu menghilangkan kata yang tidak penting melalui pengecekan kata-kata hasil tokenizing. Jika terdapat dalam stopword maka kata tersebut akan dihapus sehingga kata-kata yang tersisa adalah kata yang dianggap penting atau keywords (pattern). Langkah-langkah pada proses filtering adalah sebagai berikut :
1. Dilakukan pengecekan apa kata hasil tokenizing sama dengan tabel stopword atau tidak 2. Jika token sama dengan tabel stopword maka akan dihapus. 3. Jika token tidak sama dengan tabel stopword maka token tersebut dianggap kata penting (keyword). Contoh dari tahap filtering terdapat pada Gambar 3.7 sebagai berikut :
apa ada sih gula arti ada
ada
Gambar 3.7 Tahap Filtering
Daftar tabel stopword dapat dilihat pada Tabel 3.3.
Tabel 3.3 Daftar stopword
Id Kata Id Kata Id Kata
Universitas Sumatera Utara 1 apa 21 peribahasa 41 artinya
2 arti 22 hi 42 bagaimana
3 sih 23 tuh 43 kata
4 kenapa 24 ya 44 nya
5 mau 25 orang 45 lanjut
6 aku 26 yang 46 lanjutkan
7 dong 27 atau 47 dan
8 maksud 28 sesuatu 48 ada
9 lagi 29 sama 49 nih
10 untuk 30 apakah
11 nanya 31 agar
12 kamu 32 segala
13 kau 33 adalah
14 berapa 34 adakah
15 tau 35 maksudnya
16 tanya 36 gak
17 jawab 37 tahu
18 ini 38 tidak
19 kalau 39 kalau
20 tentang 40 peribahasanya
4.1.8. Analisis Kebutuhan Sistem Analisis Kebutuhan Sistem meliputi analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.
4.1.8.1. Kebutuhan Fungsional Sistem Kebutuhan fungsional yang harus dimiliki oleh Chatbot Peribahasa Indonesia adalah: 1. Sistem dapat menerima input kalimat dari pengguna.
Universitas Sumatera Utara 2. Sistem dapat mengetahui input kalimat merupakan sapaan, peribahasa atau stopword. 3. Sistem dapat menampilkan respon yang sesuai berdasarkan inputan pengguna.
4.1.8.2. Kebutuhan Non-Fungsional Sistem Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut : 1. Sistem memiliki tampilan yang menarik. 2. Sistem harus mudah digunakan sehingga dapat dioperasikan dengan baik oleh pengguna.
4.2. Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya.
Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain dan merancangChatbot Peribahasa Indonesia. Model UML yang digunakan antara lain use case diagram, activity diagram, dan sequence diagram.
4.2.1. Use Case Diagram Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi yang terjadi antara pengguna dengan sistem. Use Case Diagram dari sistem yang akan dibangun dalam dilihat pada Gambar 3.8.
Universitas Sumatera Utara
Gambar 3.8Use Case DiagramChatbot Pada Gambar 3.10 terlihat bahwa terdapat user yang akan melakukan percakapan dengan chatbot. Terlebih dahulu, user harus memilih tombol masuk agar dapat berbicara dengan sistem. Kemudian user menginputkan kalimat atau pertanyaan kedalam box pesan untuk melakukan percakapan dengan sistem. Sistem akan menampilkan respon yang tepat kepadausera sesuai dengan inputan dari user.
Tabel 3.6. Tabel Use Case Proses Input Kalimat
Name Input Kalimat / Pertanyaan
Actors User
Description Use Case ini mendeskripsikan tombol masuk agar dapat melakukan input kalimat
Basic Flow Pengguna menekan tombol masuk
Alternate Flow -
Pre Condition Pengguna belum menekan tombol masuk
Post Condition Pengguna dapat melakukan penginputan kalimat
Tabel 3.7. Tabel Use Case Proses Input Kalimat
Name Input Kalimat / Pertanyaan
Universitas Sumatera Utara Actors User
Description Use Case ini mendeskripsikan proses penginputan kalimat untuk mendapat respon dari sistem
Basic Flow Pengguna menginput kalimat
Alternate Flow -
Pre Condition Pengguna belum menginput kalimat
Post Condition Pengguna mendapatkan respon dari sistem
4.2.2. Activity Diagram
Activity diagram adalah diagram yang menggambarkan aktivitas dalam sebuah sistem yang sedang berjalan. Activity diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.9.
Gambar 3.9Activity DiagramSistem
Universitas Sumatera Utara Didalam Activity diagram pada Gambar 3.11dapat dijelaskan bahwa penggunaterlebih dahulu membuka aplikasi sistem chatbot. Kemudian sistem akan menampilkan antarmuka halaman cover, dimana pada halaman cover terdapat tombol masuk. Pengguna menekan tombol masuk, maka sistem akan menampilkan antarmuka halaman chat. Pada halaman chat, pengguna dapat memasukkan kalimat yang kemudian akan ditampilkan oleh sistem respon dari input kalimat tersebut.
4.2.3. Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek pada sistem dalam sebuah urutan waktu atau rangkaian waktu. Sequencediagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.10
Gambar 3.10 Sequence Diagram Sistem
4.2.4. Flowchart
Universitas Sumatera Utara Flowchart merupakan suatu bagan dengan simbol tertentu yang menggambarkan suatu proses dalam suatu program. Berikut adalah flowchart pada Chatbot Peribahasa Indonesia yang dapat dilihat pada Gambar 3.11.
Gambar 3.11Flowchart Gambaran UmumSistem
Gambar 3.11Menggambarkan alur sistem secara umum pada chatbot, dimana pengguna pertama kali memasukkankalimat untuk berkomunikasi dengan chatbot. Selanjutnya inputan pengguna dilakukan proses preprocessing, kemudian hasil
Universitas Sumatera Utara preprocessing dilakukan pencarian yang cocok dengan algoritma boyer moore. Jika dapat ditemukan dengan boyer moore, maka hasilnya akan ditampilkan sebagai respon. Jika tidak, maka dilakukan pencarian yang cocok dengan menggunakan algoritma levenshtein distance. Jika cocok, maka sistem akan menampilkan respon dan jika tidak di temukan maka sistem akan menampilkan respon default.
Gambar 3.12Flowchart Algoritma Boyer Moore
Gambar 3.12Menggambarkan alur proses pencarian Algoritma Boyer Moore, dimana proses awal input berupa dari hasil preprocessing. Proses pencarian dimulai dari karakter paling kanan ke kiri pattern. Setiap karakter akan dibandingkan satu per satu dengan knowledge base. Jika terjadi ketidakcocokan, maka akan dicek nilai pergeseran yang dilakukan dengan melihat ke tabel bad-charactershift dan good-suffix shift.sNilai terbesar yang didapat di antara kedua tabel tersebut akan diambil dan
Universitas Sumatera Utara pergeseran akan dilakukan sesuai dengan nilai tersebut. Dan jika terjadi kecocokan maka mengeluarkan hasil pencarian dan selesai.
Gambar 3.13Flowchart pemeriksaan Spelling Corecction
Gambar 3.13Menggambarkan langkah pertama sistem mengambil kalimat yang telah diproses dari proses preprocessing. Kemudian, dilakukan pemeriksaan dengan algoritma levenshtein distance berdasarkan data yang ada pada knowledge base.Proses
Universitas Sumatera Utara dilakukan hingga semua data telah diperiksa. Jika semua data telah di periksa, maka sistem akan mengambil nilai yang memiliki perbedaan terkecil. Dan sistem akan menampilkan respon ke pengguna.
4.2.5. Pseudocode Algoritma Boyer Moore memiliki empat fungsi yaitu fungsi suffix, fungsi prebmGs (pre Good-suffix shift), fungsi prebmBc (pre Bad-character suffix) dan fungsi BM(pencarian Boyer Moore). Pseudocode untuk masing-masing fungsi ditunjukkanpada Tabel 3.8, 3.9, 3.10, dan 3.11.Fungsi pseudocode Algoritma Levenshtein Distance dapat dilihat pada Tabel 3.12.
procedure suffixes (x:array of char, m:integer, suff:array of
integer)
Deklarasi :
f, g, i : integer
Algoritma :
suff[m - 1] := m
g := m - 1
for i:= m-2 downto 0 do
If (i > g && suff[i + m - 1 - f] < i - g)
suff[i] := suff[i + m - 1 - f]
Tabel 3.8Pseudocode Suffix
Universitas Sumatera Utara procedure preBmGs (x:array of char, m:integer, bmGs:array of integer)
Deklarasi : i, j : integer suf : array of integer
Algoritma :
suffixes(x, m, suff)
For i := 0 to m-1 do
bmGs[i] := m
EndFor
j := 0
For i := m-1 downto -1 do
Tabel 3.9 Pseudocode prebmGs
procedure preBmBc (x:array of char, m:integer, bmBc :array of integer)
Deklarasi : i : integer
Algoritma :
i 0 2 Tabel 3.10Pseudocode prebmBc
Universitas Sumatera Utara procedure BM (x:array of char, m:integer, y:array of char,
n:integer)
Deklarasi :
i, j : integer
bmGs, bmBc : array of integer
Algoritma :
preBmGs(x, m, bmGs)
preBmBc(x, m, bmBc)
j := 0
While (j <= n - m)
Tabel 3.11 Pseudocode Boyer Moore
int LevenshteinDistance(char s[1..m], char t[1..n])
Deklarasi :
int d[0..m, 0..n]
for i from 0 to m
d[i, 0] := i
for j from 0 to n
d[0, j] := j
for i from 1 to m
for j from 1 to n
Tabel 3.12 Pseudocode Levenshtein
4.3. Perancangan Sistem
Proses perancangansistem adalah proses yang cukup penting dalam perancangan tampilan antarmuka sistem.Sebuah antarmuka harus dirancang dengan memperhatikan
Universitas Sumatera Utara
faktor pengguna sehingga sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna. Pada sistem terdapat dua tampilan yaitu tampilan halaman cover dan tampilan halaman chat.
Gambar 3.14 Rancangan Antarmuka Halaman Cover Keterangan :
1. Textfield Menampilkan judul skripsi. 2. Textfield Menampilkan nama penelitian. 3. Textfield Menampilkan nama penulis. 4. Textfield Menampilkan nim penulis. 5. Form Menampilkan logo jurusan penulis. 6. Textfield Menampilkan nama fakultas dan prodi. 7. ButtonKirim Berupa tombol yang berfungsi untuk masuk ke halaman berikutnya.
Universitas Sumatera Utara
Gambar 3.15RancanganAntarmuka Halaman Chat Keterangan :
1. BoxChat Box ini ditujukan untuk menampilkan percakapan antara pengguna dan bot. 2. FormChat Form ini ditujukan untuk inputan kalimat dari pengguna. 3. ButtonKirim Berupa tombol yang berfungsi untuk memproses inputan pengguna.
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman PHP dan menggunakan databaseMySQL sebagai penyimpanan data yang dibutuhkan chatbot. Pada sistem ini terdapat 2 tampilan halaman, yaitu Halaman Cover dan Halaman Chatbot.
4.1.1 Implementasi Knowledge Base Penyimpanan knowledge baseyang digunakan dalam pembuatan sistemini menggunakan database MySql. Adapun implementasi knowledge base dalam sistem ini adalah sebagai berikut : a. Knowledge Base Peribahasa Indonesia
Gambar 4.1 Database Peribahasa
Universitas Sumatera Utara b. Knowledge Base Kata Sapa
Gambar 4.2 Database Kata Sapa c. Knowledge Base Stopword
Gambar 4.3 Database Stopword 4.1.2 Halaman Cover Halaman Covermerupakan halaman yang pertama kali muncul pada saat sistem dibuka. Halaman Coverdapat dilihat pada Gambar 4.4.
Universitas Sumatera Utara
Gambar 4.4Halaman Cover
4.1.3 Halaman Chat Halaman Chat berfungsi untuk melakukan percakapan antara pengguna dengan bot. Halaman Chat dapat dilihat pada Gambar4.5.
Gambar 4.5 Halaman Chat
Universitas Sumatera Utara 4.1.4 Implementasi Metode dan Algoritma Implementasi metode dan algoritma dilakukan dengan pengkodeannya dalam bentuk program. Dalam implementasi ini, input pengguna adalah “Apa sih peribahasa yang ada kata bulu ????”. Berikut ini adalah implementasi metode dan algoritma yang digunakan untuk menyelesaikan kalimat input user. a. Metode Text Mining
Gambar 4.6 Diagram Preprocessing Pada Gambar 4.6 menjelaskan kalimat input user yaitu “Apa sih peribahasa yang ada kata bulu????”. Kemudian menampilkan hasil dari case folding yaitu menghilangkan karakter selain a-z serta mengubahnya menjadi huruf kecil, sehingga kalimat menjadi “apa sih peribahasa yang ada kata bulu”. Hasil dari case foldingakan di tokenizing hasilnya. Setelah menjadi token – tokendilakukan proses filtering yaitu penghapusan kata yang tidak penting berdasarkan kata-kata stopword yang berada di knowledge
Universitas Sumatera Utara base. Hasil filtering didapatkan kata “bulu”, karena tidak terdapat pada daftar kata stopword. Dimana kata “bulu” tersebut menjadi keyword yang akan dicari kecocokkannya dengan knowledge base peribahasa.
b. Algoritma Boyer Moore I. Pencocokkan pattern pada awal teks.
Tabel 4.1 Pencocokan Boyer Moore pertama
II. Pencocokkan karakter per karakter dari kanan kekiri. Karakter di patterndan di teks dibandingkan tidak cocok.
Tabel 4.2 Pencocokan Boyer Moore kedua
III. Karakter di pattern cocok kemudian algoritma akan memberitahukan penemuan diposisi ini. c a b i k b u l u a y a m b u l u Tabel 4.3 Pencocokan Boyer Moore ketiga
Dari Tabel 4.1, dapat dilihat bahwa karakter terakhir dari pattern adalah huruf “u” yang dicocokan dengan huruf “i” pada kata “cabik bulu ayam”. Karena huruf “u” dan “i” berbeda, maka akan dilakukan pencocokan huruf “i” dengan seluruh karakter pada pattern. Namun, pada pattern tidak terdapat huruf “i”, maka dilakukan pergeseran ke kanan sesuai dengan panjang karakter pada pattern yaitu sebanyak empat yang dapat dilihat pada Tabel 4.2. Setelah dilakukan pergeseran maka dicocokkan kembali karakter terakhir pada pattern yaitu huruf “u” dengan huruf “u” pada teks. Karena pada patternterdapat huruf “u” yang lain, maka patternakan bergeser sedemikian rupa
Universitas Sumatera Utara sehingga huruf “u” kedua pada pattern memiliki posisi yang sejajar dengan posisi dengan posisi huruf “u” pada teks yang dapat dilihat pada Tabel 4.3. Setelah itu dilakukan kembali pencocokan terakhir pada pattern, yaitu huruf “u” yang terletak sejajar dengan huruf “u” pada teks, karena karakter tersebut sama maka dicocokkan kembali karakter yang berbeda disebelah kiri huruf “u” sehingga keseluruhan karakter pada pattern ditemukan dalam teks.
4.2 Pengujian Sistem Pengujian sistem dilakukan untuk memastikan sistem yang telah dibangun dapat berjalan dengan baik sesuai dengan analisis dan perancangan. Pengujian sistem ini terletak pada proses pencarian jawaban atas masukan pertanyaan oleh pengguna sesuai batasan masalah. Berikut ini merupakan pengujian bagaimana sistem berjalan pada chatbot ini berdasarkan implementasi natural language processing dengan metode Text Mining, algoritma Boyer Moore dan algoritma Levenshtein Distance yang dapat dilihat pada Tabel 4.4, 4.5, 4.6dan 4.7.
Tabel 4.4 Hasil Pengujian Menanyakan Arti Peribahasa Indonesia
No Inputan User Respon Chatbot Hasil Percakapan 1 apakah arti belum belum beranak sudah SESUAI beranak sudah berbesan berbesan artinya belum ? berhasil sudah mengharapkan yang bukan- bukan 2 apa arti peribahasa kasih ibu sepanjang jalan SESUAI kasih ibu sepanjang kasih anak sepanjang galah jalan, kasih anak artinya kasih sayang ibu tak spanjang galah ? terbatas, tetapi cinta anak sangat terbatas 3 ada udang dibalik batu ada udang dibalik batu SESUAI artinya apa ya? artinya ada maksud yang tersembunyi
Universitas Sumatera Utara 4 mau tanya nih apa arti alah bisa karena biasa SESUAI alah bisa karena biasa ? artinya mengerjakan sesuatu tak akan merasakan kesukaran, bila sudah dikerjakan berkali-kali 5 arti telah dijual maka telah dijual maka dibeli SESUAI dibeli apa? jawab dong artinya sebelum ... mengerjakan pekerjaan, hendaknya dipikirkan secara masak-masak 6 maksud cinta itu buta cinta itu buta yang artinya SESUAI adalah ? cinta itu tidak memandang bangsa, derajat dan harta 7 adakah arti delima seperti delima merekah SESUAI merekah ? memiliki arti bibirnya merah dan bagus 8 hangat-hangat tai ayam hangat hangat cirit ayam SESUAI maksudnya apa ya ? yang artinya kemauan yang tidak begitu kuat 9 tau gak arti jinak-jinak jinak jinak merpati yang SESUAI merpatii ? artinya nampaknya mau, tetapi setelah didekati lari 10 kasih tau dong arti nasi nasi telah menjadi bubur SESUAI telah jadi bubur .. yang artinya sesuatu yang tak dapat diperbaiki lagi
Pada Tabel 4.4 dapat terlihat hasil pengujian menanyakan arti peribahasa Indonesia dari sepuluh pola pertanyaan yang diambil dapat menampilkan respon yang sesuai dengan masukan dari pengguna.
Tabel 4.5 Hasil Pengujian Menyapa Chatbot
No Inputan User Respon Chatbot Hasil
Universitas Sumatera Utara 1 asalammualaikum Waalaikumsalam SESUAI 2 hai bot Hai SESUAI 3 bagaimana kabarmu? Makan bayang yang artinya TIDAK marah didalam hati SESUAI 4 selamat pagi bot Selamat pagi juga SESUAI 5 bagaimana kabarmu hari Baik, kamu ? SESUAI ini ? 6 apa kabar ? Kabar jauh dengar-dengaran TIDAK kalau dekat pikir pikiri SESUAI memiliki arti kabar yang kita terima harus kita selidiki terlebih dahulu 7 apakah kamu sehat ? Kesehatan memang harus SESUAI dijaga 8 apa kabarmu sehat ? Baik, kamu ? SESUAI 9 apa kabarmu baik ? Ada angin baik yang artinya TIDAK ada harapan baik SESUAI 10 selamat malam mblo Selamat malam, jangan SESUAI begadang ya
Pada Tabel 4.5 dapat terlihat hasil pengujian memasukkan kata sapaan dari sepuluh pola yang dimasukkan hanya dapat menampilkan tujuh respon yang sesuai dengan masukan dari pengguna.
Tabel 4.6 Hasil Pengujian Melengkapi Penggalan Kata Peribahasa
No Inputan User Respon Chatbot Hasil 1 apa peribahasa yang ada jika tak ada rotan akarpun SESUAI kata rotan? jadi memiliki arti kalau tak ada yang baik, yang kurang baikpun berguna
Universitas Sumatera Utara
2 Lanjutkan peribahasa anjing menggonggong SESUAI anjing menggonggong ... kafilah berlalu memiliki arti biarpun rintangan menghadapi rencana jalan terus 3 peribahasa jilat ludah menjilat air ludah sendiri SESUAI sendiri yang artinya meminta kembali hal atau barang yang telah diberikan kepada orang lain 4 peribahasa yang ada kata Aku nggak ngerti maksud TIDAK anak dan menantu kamu. Sepertinya aku butuh SESUAI belajar lagi 5 peribahasa yang ada kata Air susu dibalas dengan air SESUAI susu tuba memiliki arti kebaikan yang dibalas dengan kejahatan
Pada Tabel 4.6 dapat terlihat hasil pengujian melengkapi penggalan kata peribahasa dari lima pola yang dimasukkan hanya dapat menampilkan tiga respon yang sesuai dengan masukan dari pengguna.
Tabel 4.7 Hasil Pengujian Mencari Peribahasa Melalui Artinya
No Inputan User Respon Chatbot Hasil 1 apakah peribahasa yang Belum dipanjat asam SESUAI artinya belum pernah kemenyan kawin ? 2 peribahasa untuk orang Seperti pucuk eru kemaba SESUAI yang tidak tetap angin keras ke situlah
Universitas Sumatera Utara pendiriannya condongnya 3 orang yang punya maksud Ada udang dibalik batu SESUAI tersembunyi 4 peribahasa orang yang Aku nggak ngerti maksud TIDAK membuka aib keluarganya kamu. Sepertinya aku butuh SESUAI sendiri belajar lagi 5 peribahasa "orang yang Orang yang bodoh tidak SESUAI bodoh tidak mengerti mengerti perkataan sindiran sindiran" apa ?
Pada Tabel 4.7 dapat terlihat hasil pengujian mencari peribahasa Indonesia melalui artinya dari lima pola yang dimasukkan hanya dapat menampilkan empat respon yang sesuai dengan masukan dari pengguna. a. Pengujian Boyer Moore Pertama
Gambar 4.7 Pengujian Boyer Moore 1
Universitas Sumatera Utara Pada Gambar 4.7 terlihat bahwa pengujian Boyer Moore menggunakan pattern“terpegang di abu dingin” sesuai dengan teks target yang akan ditampilkan sebagai respon sistem. Dimana respon yang ditampilkan adalah “terpegang di abu dingin memiliki arti mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri”. Dapat dilihat pada knowledge base, sistem hanya melakukan pencarian pada kolom input. Sistem sudah dipaketkan, jadi bilamana terpilih salah satu diantara kolom, Misalkan; pada pencarian teks “terpegang di abu dingin”, maka sepaket dengan
Id Input Respon 4 terpegang di abu dingin Mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri
“terpegang di abu dingin” adalah “mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri”, maka sistem akan mengeluarkan kata – kata tersebut. Berikut merupakan table data pada proses pencarian pattern “terpegang di abu dingin” yang dapat dilihat pada Tabel 4.8. Tabel 4.8 Database Pencocokan 1 T t e r p e g a n g d i a b u d i n g i n P t e r p e g a n g d i a b u d i n g i n Adapun proses pencocokan string pada Gambar 4.3 dapat diilustrasikan sebagai berikut :
Tabel 4.9 Tabel Pencocokan 1
Dari Tabel 4.9, dapat dilihat bahwa karakter terakhir dari pattern adalah huruf “n” yang dicocokan dengan huruf “n” pada teks “terpegang di abu dingin”. Karena karena semua karakter cocok, maka ditemukanlah pattern“terpegang di abu dingin”. b. Pengujian Boyer Moore Kedua
Universitas Sumatera Utara
Gambar 4.8 Pengujian Boyer Moore 2 Pada Gambar 4.8 terlihat bahwa pengujian Boyer Moore menggunakan pattern“abu dingin” sesuai dengan teks target yang akan ditampilkan sebagai respon sistem. Dimana respon yang ditampilkan adalah “terpegang di abu dingin memiliki arti mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri”. Dapat dilihat pada knowledge base, dimana pattern “abu dingin” terdapat pada dua teks yaitu “terpegang di abu dingin”yang telah dipaketkan dengan “mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri” dan “berdiang di abu dingin” yang telah dipaketkan dengan “meminta pertolongan kepada orang miskin (dan pasti tidak mendapat apa-apa)”, namun sistem hanya akan mengeluarkan teks yang pertama kali dicocokan dan sesuai dengan pattern yaitu “berdiang di abu dingin”. Berikut merupakan table data pada proses pencarian pattern “abu dingin” yang dapat dilihat pada Tabel 4.10. Tabel 4.10 Database Pencocokan 2 Id Input Respon 4 terpegang di abu dingin mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri 5 berdiang di abu dingin meminta pertolongan kepada orang miskin (dan pasti tidak mendapat apa-apa) Adapun proses pencocokan string pada Gambar 4.4 dapat diilustrasikan sebagai berikut :
Tabel 4.11 Tabel Pencocokan 2.1
T t e r p e g a n g d i a b u d i n g i n P a b u d i n g i n
Universitas Sumatera Utara Tabel 4.12 Tabel Pencocokan 2.2
T t e r p e g a n g d i a b u d i n g i n P a b u d i n g i n
Tabel 4.13 Tabel Pencocokan 2.3
T t e r p e g a n g d i a b u d i n g i n P a b u d i n g i n
Dari Tabel 4.11, dapat dilihat bahwa karakter terakhir dari pattern adalah huruf “n” yang dicocokan dengan karakter “spasi” pada kata “terpegang abu dingin”. Karena huruf “n” dan “spasi” berbeda, maka akan dilakukan pencocokan karakter “spasi” dengan seluruh karakter pada patterndari kanan ke kiri. Pada pattern, terdapat karakter “spasi” lain, sehingga karakter “spasi” yang lain pada pattern di sejajarkan dengan “spasi” pada teks yang dapat dilihat pada Tabel 4.12. Setelah dilakukan pergeseran maka dicocokkan kembali karakter terakhir pada pattern yaitu huruf “n” dengan huruf “u” pada teks. Karena huruf “n” dan “u” berbeda, maka akan dilakukan pencocokan karakter “u” dengan seluruh huruf pada pattern. Pada pattern ditemukan huruf “u”, maka dilakukan pergeseran ke kanan dengan mensejajarkan huruf “u” pada teks yang dapat di lihat pada Tabel 4.13. Karena karakter tersebut sama maka dicocokkan kembali karakter yang berbeda disebelah kiri huruf “u” sehingga keseluruhan karakter pada pattern ditemukan dalam teks. c. Pengujian Boyer Moore Ketiga
Universitas Sumatera Utara
Gambar 4.9 Pengujian Boyer Moore 3 Pada Gambar 4.9 terlihat bahwa pengujian Boyer Moore menggunakan pattern“bagai megang abu dingin” tidak sesuai dengan teks target yang akan ditampilkan sebagai respon sistem. Dapat dilihat pada knowledge base, dimana pattern “bagai megang abu dingin” tidak ditemukan, walaupun terdapat kemiripan pada teks “terpegang di abu dingin”. d. Pengujian Boyer Moore Keempat
Universitas Sumatera Utara Gambar 4.10 Pengujian Boyer Moore 4 Pada Gambar 4.10 terlihat bahwa pengujian Boyer Moore menggunakan pattern“abu dinginnnn” tidak sesuai dengan teks target yang akan ditampilkan sebagai respon sistem. Dapat dilihat pada knowledge base, dimana pattern “abu dinginnnn” tidak ditemukan, walaupun terdapat kemiripan pada teks yaitu “terpegang di abu dingin”dan “berdiang di abu dingin”.
e. Pengujian Menggunakan Algoritma Levenshtein Distance
Gambar 4.11 Pengujian Levenshtein Distance Pada Gambar 4.11 terlihat bahwa pengujian Levenshtein Distancemenggunakan pattern“memegang di abu dingin” sesuai dengan teks target yang akan ditampilkan sebagai respon sistem. Dimana respon yang ditampilkan adalah “terpegang di abu dingin memiliki arti mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri”. Dapat dilihat pada knowledge base, sistem hanya melakukan pencarian pada kolom input. Pada pencarian teks“memegang di abu dingin”, tidak terdapat pada database namun terdapat kemiripan dapat dilihat pada Tabel 4.16 teks “terpegang di abu dingin”yang telah dipaketkan dengan“mencampuri sesuatu urusan yang menyusahkan atau mencelakakan diri sendiri” dan “berdiang di abu dingin” yang telah dipaketkan dengan “meminta pertolongan kepada orang miskin (dan pasti tidak mendapat apa- apa)”, akan tetapi teks yang ditampilkan merupakan teks yang memiliki perbedaan
Universitas Sumatera Utara terkecil yaitu “terpegang di abu dingin”. Maka proses spelling correction dapat diilustrasikan sebagai berikut : a. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 T = - m e m e g a n g - d i – a b u – d i n g in S = t e r p e g a n g - d i - a b u – d i n g i n Maka jarak Levenshtein Distanceantara s dan t adalah sebagai berikut ini : 23 D(s,t) = ( , ) =1
�𝑖𝑖 𝑑𝑑 𝑠𝑠𝑠𝑠 𝑡𝑡𝑡𝑡 = d( t,- ) + d( e,e ) + d( r,e ) + d( p,m ) + d( e,e ) + d( g,g ) + d(a,a) +
d( n,n ) + d( g,g )+ d( -,- ) + d( d,d ) + d( i,i ) + d( -,- ) + d( a,a ) +
d( b,b ) + d( u,u )+ d( -,- ) + d( d,d ) + d( i,i ) + d( n,n ) + d( g,g ) +
d( i,i ) + d( n,n )
= 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 +
0 + 0 + 0 + 0 + 0
= 4 b. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 T = m e m e g a n g - d i – a b u – d i n gin S = b e r d i a n g - d i - a b u – d i n g i n Maka jarak Levenshtein Distanceantara s dan t adalah sebagai berikut ini : 22 D(s,t) = ( , ) =1
�𝑖𝑖 𝑑𝑑 𝑠𝑠𝑠𝑠 𝑡𝑡𝑡𝑡 = d( b,m ) + d( e,e ) + d( r,m ) + d( d,e ) + d( i,g ) + d( a,a ) + d(n,n) +
d( -,- ) + d( d,d ) + d( i,i ) + d( -,- ) + d( a,a ) + d( b,b ) + d( u,u )+
d( -,- ) + d( d,d ) + d( i,i ) + d( n,n ) + d( g,g ) +
d( i,i ) + d( n,n )
= 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 +
0 + 0 + 0 + 0 + 0
Universitas Sumatera Utara = 5
Dari perhitungan yang dilakukan diperoleh nilai Levenshtein Distance yang terkecil adalah 4, maka yang ditampilkan oleh sistem adalah “terpegang di abu dingin”.
Dari 30 kalimat yang telah diuji, didapatkan 25 kalimat yang menampilkan respon sesuai dengan knowledge base . Dengan menggunakan rumus berikut,
25 Presentase keberhasilan = x 100 % = x100 = 83,3 %
𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 ℎ 𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 30 𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗𝑗 ℎ 𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘 𝑢𝑢𝑢𝑢𝑢𝑢 Maka persentase keberhasilan sistem chatbot ini sebesar 83,3 %.
Hasil pengujian pada Tabel 4.4, 4.5, 4.6dan 4.7, membuktikan bahwa implementasi NLP dengan metode text mining, algoritma boyer moore dan algoritma levenshtein distance mampu membantu dan memudahkan pengguna untuk mencari informasi tentang peribahasa Indonesia. Namun, hasil persentase sebesar 83,3% juga membuktikan bahwa sistem ini masih memerlukan penyempurnaan. Kelengkapan kata kunci dan penyesuaian data pada knowledge base sangat berpengaruh pada keberhasilan sistem ini yang dapat dilihat pada Tabel 4.5 pada baris 5, 6, 7, 8, 9 dimana untuk mendapatkan respon dari bertanya kabar banyak respon yang ditampilkan.
Hasil pengujian pada algrotima boyer moore menunjukkan bahwa pencocokan keyword dengan teks pada knowledge base harus tepat, tidak boleh ada kekurangan ataupun kelebihan satu hurufpun. Namun, hal tersebut dapat diatasi dengan algoritma levenshtein distance dengan menghitung perbedaan terkecil antara keyword dan teks. Secara teori hasil perhitungan spelling correction menggunakan algoritma levenshtein distance sudah tepat. Namun, secara kinerja sistem, respon yang diharapkan tidak sesuai, maka perlu dilakukan penanganan lebih lanjut agar respon yang dihasilkan sesuai dengan yang diharapkan pengguna.
Universitas Sumatera Utara BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem chatbot Peribahasa Indonesia maka kesimpulan yang didapat adalah sebagai berikut:
1. Natural Language Processing dapat diterapkan dengan metode Text Mining, Algoritma Boyer Moore dan Algoritma Levenshtein Distance pada chatbot Peribahasa Indonesia sehingga mampu memberikan respon yang sesuai dengan inputan pengguna sebagaimana terlihat dari hasil uji coba persentase sebesar 83,3%. 2. Algoritma Boyer Moore hanya dapat menangani keyword yang tepat (tidak kurang atau lebih satu huruf) untuk dapat menemukan respon yang sesuai serta respon yang diperoleh dari respon chatbot tergantung pada kelengkapan kata kunci. 3. Algoritma Levenshtein Distance dapat digunakan sebagai spelling correction. Namun, untuk dapat menemukan respon yang sesuai harus dilakukan penanganan lebih lanjut. 4. Tingkat kesulitan pada pembuatan sistem lebih ke penyesuaian inputan pengguna dengan knowledge base. 5. Sistem ini dapat digunakan sebagai media interaktif untuk mendapatkan informasi peribahasa Indonesia.
5.2 Saran Adapun saran yang dapat diberikan untuk mengembangkan penelitian ini adalah sebagai berikut : 1. Sebaiknya sistem ini ditambahkan speech recognition agar chatbot semakin interaktif serta dapat menyesuaikan dengan perkembangan jaman. 2. Untuk pengembangan tahap selanjutnya, diharapkan sistem ini mampu menangani penyesuaian masukkan dengan knowledge base. 3. Untuk pengembangan tahap selanjutnya, diharapkan sistem ini mampu melakukan pembaruan pengetahuan secara otomatis. DAFTAR PUSTAKA
Universitas Sumatera Utara Adiwidya, B.M.D. 2009. Algoritma Levenshtein dalam Pendekatan Approximate String Matching. Bandung : Institut Teknologi Bandung. Charras, C and Lecroq, T. 2004. Handbook of Exact String Matching Algorithm. London : King’s College Publication. Dahiya, M. 2017. A Tool of Conversation : Chatbot. International Journal of Computer Science and Engineering 5(5) : 2347-2693. Emanuela, H and Traian, R. 2013. Designing a Chat-bot that Simulates anHistorical Figure. International Conference on Control Systems and Computer Science : 582-589. Expertsystem. 2016. Natural Language Processing and Text Mining. Fatima, Choirunnisa. 2014. Pencocokan String pada Aplikasi Chatbot Sederhana. Bandung : Institut Teknologi Bandung. Hajar, Teuku Ighfar. 2015. Implementasi Algoritma Levenshtein Distance dan Boyer Moore untuk fitur Autocomplete dan Autocorrect pada aplikasi katalog perpustakaan daerah Aceh Timur. Skripsi. Universitas Sumatera Utara. Harahap, B. S. 2013. Implementasi Algoritma Cocke-Younger-Kasami (CYK) dan Levenshtein untuk Mengoreksi Kesalahan Pengejaan Kalimat Bahasa Inggris. Skripsi. Universitas Sumatera Utara. Knuth, D.E. et al. 1977. Fast pattern matching in strings. SIAM J Comput 6. Kristanto, Andri. 2004. Kecerdasan Buatan. Yogyakarta: Graha Ilmu. Kusrini, Luthfi Taufiq Emha. 2009. Algoritma Data Mining. Yogyakarta : Penerbit Andi. P, Elisabet Nila S. C. 2013. Rancang Bangun Aplikasi Chatbot Informasi Objek Wisata Kota Bandung dengan Pendekatan Natural Language Processing. Skripsi. Universitas Komputer Indonesia. Primadani, Yuli. 2014. Simulasi Algoritma Levenshtein Distance untuk Fitur Autocomplete pada Aplikasi Katalog Perpustakaan. Skripsi. Universitas Sumatera Utara. Ridwan, Fendy. 2013. Pembangunan Aplikasi Natural Language Procesing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia). Skripsi. Universitas Komputer Indonesia. Shaalan, Khaled. 2010. Rule-based Approach in Arabic Natural Language Processing. International Journal on Information and Communication Technologies 3(3) : 11-19. Shah,R., Lahoti, S and K, Lavanya. An Intelligent Chat-bot using Natural Language Processing. International Journal of Engineering Research 6(5) : 281-286. Simarmata, Janner. 2006. Pengenalan Teknologi Komputer dan Informasi. Yogyakarta : Andi.
Universitas Sumatera Utara Siswanto. 2002. Kecerdasan Tiruan. Jakarta : Universitas Budi Luhur. Suhendro, Hadi. 2014. Pembangunan Aplikasi Chatbot Dokter Virtual dengan Pendekatan Natural Language Processing (Studi Kasus di Klinik dr. Iin Hartinah Kabupaten Cirebon). Skripsi. Universitas Komputer Indonesia. Suntoro, Mego. 2015. Implementasi Algoritma Pecocokan String Boyer-Moore dalam Pembuatan Contact Manager. Skripsi. Universitas Sumatera Utara. Susanto. 2014. Perancangan Aplikasi Kamus Istilah Latin Hewan dan Tumbuhan dengan Menerapkan Algoritma Boyer-Moore Berbasis Mobile. Jurnal Informasi dan Teknologi Ilmiah (INTI) 4(3) : 88-90. Utami, E dan Hartati, S. 2007. Pendekatan Metode Rule Based dalam Mengalihbahasakan Teks Bahasa Inggris ke Teks Bahasa Indonesia. Jurnal Informatika 8(1) : 42 – 53.
Universitas Sumatera Utara LAMPIRAN A : LISTING PROGRAM
// Source Code Koneksi.php
$koneksi=new PDO('mysql:host=localhost;dbname=peribahasa','root','');
function db_select($koneksi){
$query = $koneksi->prepare("SELECT * FROM chatbot");
$query->execute();
while($row=$query->fetch()){
$id = $row['id'];
$pesan = $row['pesan'];
$waktu = $row['waktu'];
$return_arr[] = array("id" => $id,
"pesan" => $pesan,
"waktu" => $waktu);
}
return $return_arr;
}
function select_stopword($koneksi){
$data = array();
$query = $koneksi->prepare("SELECT * FROM stopword");
$query->execute();
while($row=$query->fetch()){
$kata = $row['kata'];
Universitas Sumatera Utara array_push($data, $kata);
}
return $data;
}
function select_kamus($koneksi){
$data = array();
$query = $koneksi->prepare("SELECT * FROM kamus");
$query->execute();
while($row=$query->fetch()){
$data[] = array(
"id" => $row['id'],
"input" => $row['input'],
"respon" => $row['respon'],
);
}
return $data;
}
function select_sapaan($koneksi){
$data = array();
$query = $koneksi->prepare("SELECT * FROM sapaan");
$query->execute();
while($row=$query->fetch()){
$data[] = array(
"id" => $row['id'],
"ktsapa" => $row['ktsapa'],
"ktrespon" => $row['ktrespon']
);
}
return $data;
Universitas Sumatera Utara }
function select_peribahasa($koneksi, $id){
$data = array();
$query = $koneksi->prepare("SELECT * FROM sinonim where id='".$id."'");
$query->execute();
while($row=$query->fetch()){
$data[] = array(
"id" => $row['id'],
"kata1" => $row['kata1'],
"kata2" => $row['kata2']
);
}
return $data;
}
}catch(PDOException $e){
echo "Koneksi Database gagal ".$e->getMessage();
exit;
}
?>
// Source Code ajaxku.js
$(document).ready(function()
{
//load pesan
function ambilpesan()
{
$(".boxpesan").load("ambil.php");
var con = document.getElementById("boxpesan");
Universitas Sumatera Utara con.scrollTop = con.scrollHeight;
} setInterval(ambilpesan,1000);
//kirim pesan chat
$("#formpesan").submit(function()
{
var pesan=$(".input-xlarge").val();
$.ajax({
url : 'kirim.php',
type : 'POST',
data : 'pesan='+pesan,
success : function(pesan)
{
if(pesan=="terkirim")
{
$(".input-xlarge").val("");
}
else
{
return false;
}
},
});
return false;
});
//load pesan chat function ambilpesan()
{
$("#boxpesan").load("ambil.php");
var con = document.getElementById("boxpesan");
Universitas Sumatera Utara con.scrollTop = con.scrollHeight;
}
setInterval(ambilpesan,1000);
});
// Source Code Kirim.php
$stopwords = select_stopword($koneksi);
$kamus = select_kamus($koneksi);
$sapaan = select_sapaan($koneksi);
date_default_timezone_set("Asia/Jakarta");
if(isset($_POST['pesan']))
{
$id=$_SESSION['id'];
$pesan=strip_tags($_POST['pesan']);
$waktu = date("Y-m-d H:i:s");
//Tokenization
$nlp = new NLP();
$hasil_token = $nlp->preproses($pesan);
$penggalan = preg_split("/[\s,]+/", $hasil_token);
$jml = count($penggalan) - 1;
Universitas Sumatera Utara
//-----mulai proses filtering------
$query = $koneksi->prepare( "SELECT * FROM stopword");
$query->execute();
while ($row = $query->fetch()) {
$stopword[] = trim($row['kata']);//trim untuk menghapus kata
}
for ($i = 0; $i <= $jml; $i++) {
if (in_array($penggalan[$i], $stopword)) {
unset($penggalan[$i]);
}
}
$output = implode(" ", $penggalan);
//----akhir proses filtering------
//fungsi mencari peribahasa
$ketemu = false;
if(!$ketemu){
$i = 0;
$index_ketemu;
$respon;
$input;
while(!$ketemu && $i < sizeof($kamus) && $output != null){
$token_kamus = $nlp->preproses($kamus[$i]["input"]);
$tes = $nlp->SearchString($output,$token_kamus);
if($tes){
$ketemu = true;
$index_ketemu = $i;
$peribahasa = $kamus[$index_ketemu]["input"]." memiliki arti ".$kamus[$index_ketemu]["respon"];
}
$i++;
Universitas Sumatera Utara }
//fungsi levenshtein peribahasa
if(!$tes){
$terkecil=-1;
$sql=$koneksi->prepare("SELECT input,respon from kamus");
$sql->execute();
while($data=$sql->fetch()){
$kata=$data['input'];
$katarp=$data['respon'];
$lev = levenshtein($output, $kata);
if ($lev <= $terkecil || $terkecil < 0) {
$terdekat = $kata;
$responnya = $katarp;
$terkecil = $lev;
}
}
if($output) {
$hasil = $terdekat." yang artinya ".$responnya;
}
}
}
//cek kalimat dengan sapaan
$kt=false;
$j=0;
$kt_ketemu;
if($ketemu==false){
while($j < sizeof($sapaan) && $output != null){
$token_kt = $nlp->preproses($sapaan[$j]["ktsapa"]);
$tes1 = $nlp->SearchString($output,$token_kt);
if($tes1){
$kt=true;
Universitas Sumatera Utara $kt_ketemu = $j;
$sapa=$sapaan[$kt_ketemu]["ktrespon"];
}
$j++;
}
if(!$tes1){
$terkecil1=-1;
$sql1=$koneksi->prepare("SELECT ktsapa, ktrespon from sapaan");
$sql1->execute();
while($data1=$sql1->fetch()){
$kata1=$data1['ktsapa'];
$katarp1=$data1['ktrespon'];
$lev = levenshtein($output, $kata1);
if ($lev <= $terkecil1 || $terkecil1 < 0) {
$terdekat1 = $kata1;
$responnya1 = $katarp1;
$terkecil1 = $lev;
}
}
if($output) {
$hasil1 = $responnya1;
}
}
}
//cek kalimat dari arti
if($kt==false){
$terkecil2=-1;
$sql2=$koneksi->prepare("SELECT * from kamus");
$sql2->execute();
while($data2=$sql2->fetch()){
Universitas Sumatera Utara $kata2=$data2['respon'];
$katarp2=$data2['input'];
$lev = levenshtein($output, $kata2);
if ($lev == 0) {
$terdekat2 = $kata2;
$terkecil2 = 0;
$responnya2 = $katarp2;
break;
}
if ($lev <= $terkecil2 || $terkecil2 < 0) {
$terdekat2 = $kata2;
$responnya2 = $katarp2;
$terkecil2 = $lev;
}
}
if($output) {
$hasil2 = $responnya2;
}
}
//klasifikasi peribahasa
/* $cek_sinonim=false;
$f = 0;
$index_kategori;
$kategori="";
$ktkategori = true;
$kategorikt = $koneksi->prepare("SELECT * FROM sinonim where kata2 = '".$output."'");
$kategorikt->execute();
if($ktsambung==false){
while($row =$kategorikt->fetch(PDO::FETCH_ASSOC)){
$cek_sinonim = false;
$arr[] = $row['id'];
Universitas Sumatera Utara $rand = array_rand($arr);
$hasil_rand = $arr[$rand];
$kategori = select_peribahasa($koneksi,$hasil_rand)[0]['kata1'];
if(isset($kategori)){
while(!$cek_sinonim && $f < sizeof($kamus) && $kategori != null){
$token_ks = $nlp->tokenizer($kamus[$f]["respon"]);
$tes = $nlp->SearchString($token_ks,$kategori);
if($tes){
$cek_sinonim = true;
$index_kategori = $f;
}
$f++;
}
}
}
}*/
//hasil respon dari pengecekan
if($pesan==""){
$respon="";
}else if($ketemu){
$respon = $peribahasa;
}else if($terkecil>0 && $terkecil<9){
$respon = $hasil;
}else if($kt){
$respon = $sapa;
}else if($terkecil1>0 && $terkecil1<8){
$respon = $hasil1;
}else if($kte){
Universitas Sumatera Utara $respon = $kategori;
}else if($terkecil2>0 && $terkecil2<15){
$respon = $hasil2;
}else if($cek_sinonim){
$respon = $kamus[$index_kategori]["input"]." artinya ".$kamus[$index_kategori]["respon"];
}else{
$respon = "Aku nggak ngerti maksud kamu. Sepertinya aku butuh belajar lagi";
}
json_encode($respon);
$masukan=$koneksi->prepare("insert into chatbot (id,pesan,output,waktu) values (:id,:pesan,:output,:waktu) ");
$masukan->BindParam(":id",$id);
$masukan->BindParam(":pesan",$pesan);
$masukan->BindParam(":output",$respon);
$masukan->BindParam(":waktu",$waktu);
$masukan->execute(); if($masukan->rowCount()==1)
{
print "terkirim";
} else
{
print "gagal";
}
}
?>
// Source Code NLP.php
Universitas Sumatera Utara
class NLP{
public function preproses($kalimat) {
//----mulai case folding----
$kalimat = preg_replace('/[?!:.,()*\"£€\$\\n]|[- ]|\'/','', $kalimat);
$kalimat = str_replace('/', '', $kalimat);
$kalimat = str_replace(' ', ' ', $kalimat);
$kalimat = trim(preg_replace('!\s+!', ' ', $kalimat));
$kalimat = strtolower($kalimat);
//----akhir case folding----
return $kalimat;
}
private function badCharHeuristic($str, $size, &$badchar){
for ($i = 0; $i < 256; $i++)
$badchar[$i] = -1;
for ($i = 0; $i < $size; $i++)
$badchar[ord($str[$i])] = $i;
}
function suffixes($str, $size, &$suffixes)
{
$suffixes[$size - 1] = $size;
$g = $size - 1;
for ($i = $size - 2; $i >= 0; --$i) {
if ($i > $g && $suffixes[$i + $size - 1 - $f] < $i - $g) {
$suffixes[$i] = $suffixes[$i + $size - 1 - $f];
Universitas Sumatera Utara } else {
if ($i < $g) {
$g = $i;
}
$f = $i;
while ($g >= 0 && $str[$g] == $str[$g + $size - 1 - $f]) {
$g--;
}
$suffixes[$i] = $f - $g;
}
}
}
function goodSuffixes($str, $size, &$goodchar)
{
$suff = array();
$this -> suffixes($str, $size, $suffixes);
for ($i = 0; $i < $size; $i++) {
$goodchar[$i] = $size;
}
for ($i = $size - 1; $i >= 0; $i--) {
if ($suffixes[$i] == $i + 1) {
for ($j = 0; $j < $size - $i - 1; $j++) {
if ($goodchar[$j] == $size) {
$goodchar[$j] = $size - $i - 1;
}
}
Universitas Sumatera Utara }
}
for ($i = 0; $i < $size - 2; $i++) {
$goodchar[$size - 1 - $suffixes[$i]] = $size - $i - 1;
}
}
public function SearchString($str, $teks) {
$m = strlen($teks);
$n = strlen($str);
$i = 0;
$result = array();
$this->badCharHeuristic($teks, $m, $badchar);
$this->goodSuffixes($teks, $m, $goodchar);
$s = 0;
while ($s <= ($n - $m))
{
$j = $m - 1;
while ($j >= 0 && $teks[$j] == $str[$s + $j])
$j--;
if ($j < 0)
{
$arr[$i++] = $s;
$s += ($s + $m < $n) ? $m - $badchar[ord($str[$s + $m])] : 1;
}
else
Universitas Sumatera Utara $s += max($goodchar[$j], $j - $badchar[ord($str[$s + $j])]);
}
for ($j = 0; $j < $i; $j++)
{
$result[$j] = $arr[$j];
}
return $result;
}
function levenshteinD($thiss = "", $that = "") {
// memeriksa apakah kedua kata sama
if ($thiss === $that)
return 0;
// dimensi matrix
$m = strlen($thiss);
$q = strlen($that);
// memulai membuat matrix
// kiri atas di inisialisasikan dengan nilai 0
$matrix[0][0] = 0;
//membuat array dari setiap huruf
for ($i = 1; $i <= $m; $i++) {
$matrix[$i][0] = $i;
if ($i != $m && substr($thiss, $i) === substr($that, $i))
return $i;
Universitas Sumatera Utara }
for ($i = 1; $i <= $q; $i++) {
$matrix[0][$i] = $i;
if ($i != $q && substr($thiss, $i) === substr($that, $i))
return $i;
}
// membandingkan seluruh matrix dimulai dari kiri atas untuk menemukan nilau minimum
for ($i = 1; $i <= $m; $i++) {
$piece = substr($thiss, $i - 1, 1);
for ($j = 1; $j <= $q; $j++) {
$minimum = $m + $q;
if ( ($matrix[$i - 1][$j] + 1) < $minimum)
$minimum = $matrix[$i - 1][$j] + 1;
if ( ($matrix[$i][$j - 1] + 1) < $minimum)
$minimum = $matrix[$i][$j - 1] + 1;
if ($piece === substr($that, $j - 1, 1))
$extraCost = 0;
else
$extraCost = 1;
if ( ($matrix[$i - 1][$j - 1] + $extraCost) < $minimum)
$minimum = $matrix[$i - 1][$j - 1] + $extraCost;
Universitas Sumatera Utara $matrix[$i][$j] = $minimum;
}
}
// memberikan nilai terendah pada elemen paling kanan bawah
return $matrix[$m][$q];
}
}
Universitas Sumatera Utara CURRICULUM VITAE
------
Data Pribadi Nama : Dewi Wiranda Sari Tempat/Tanggal Lahir: Medan / 30 April 1996 Tinggi/Berat Badan : 163 cm / 55 kg Agama : Islam Kewarganegaraan : Indonesia Alamat Sekarang : Jl. H.M Joni no 21, Medan Alamat Orang Tua : Jl. H.M Joni no 21, Medan Telp/ Hp : 081776922175 Email : [email protected]
------
Riwayat Pendidikan
[2010 – 2014] : S1 Ilmu Komputer Universitas Sumatera Utara, Medan
[2006 – 2009] : SMA Plus Taruna Andalan
[2003 – 2006] : SMP Taruna Andalan
[1997 – 2003] : SD Taruna Andalan
------
Keahlian/Kursus Keahlian Komputer
Pemrograman : PHP, HTML
Database : MySQL, Microsoft Access Multimedia
Universitas Sumatera Utara
Perkantoran : Adobe Photoshop, Coreldraw, Adobe Illustrator
: Microsoft Office ------
Pengalaman Organisasi
[2007 - 2008] Pramuka
[2009 - 2010] Pengurus OSIS SMP Taruna Andalan
[2012 – 2013] Bendahara OSIS SMA Taruna Andalan
[2012 – 2013] Pengurus Pusat Informasi Konseling (PIK) Remaja
[2015 – 2016] Anggota Bidang Dana dan Usaha IMILKOM USU
------
Pengalaman Kepanitiaan [2014] Bendara Computer Science Anniversary (CSA) ke 13
[2014] Anggota Dana Acara Science Competition & Festival Budaya
Nusantara 2014
[2015] Anggota Acara Olimpiade USU 2015
[2015] Wakil Bendahara Science Competition & Festival Budaya Nusantara
2016
[2015] Anggota Konsumsi Ilkomp Goes to School (IGTS) IMILKOM 2015
[2012] Anggota Peralatan PMB IMILKOM 2012
[2016] Ketua Dana Penerimaan Mahasiswa Baru (PMB) IMILKOM 2016
[2017] Anggota Konsumsi Artechno 2017
------
Pengalaman Kerja
[2017] Program Magang di Badan Penyelenggara Jaminan Sosial (BPJS) Ketenagakerjaan Cab. Medan
Universitas Sumatera Utara
------
Seminar
[2014]Seminar Nasional Literasi Informasi (SENARAI) 2014.
[2015] Seminar Nasional “TECHNO PRENEURSHIP” dalam rangka menjadi
Technopreneur sukses di usia muda.
[2017] Seminar Nasional “Melalui Inovasi Teknologi untuk menciptakan
Mahasiswa Kreatif dan Mandiri”.
[2018] Seminar Nasional IT Fest 2018 “Applied Big Data in Goverment,
Banking, and E-Commerce”.
Universitas Sumatera Utara
Universitas Sumatera Utara