Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia)

 47  166  217  2017-04-25 15:57:40 Laporkan dokumen yang dilanggar
PEMBANGUNAN APLIKASI NATURAL LANGUAGE PROCESSING UNTUK PEMBUATAN CHAT BOT BERBASIS WEB (DI UNIVERSITAS KOMPUTER INDONESIA) SKRIPSI Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia FENDY RIDWAN 10107395 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA BANDUNG 2012 ABSTRAK PEMBANGUNAN APLIKASI NATURAL LANGUAGE PROCESSING UNTUK PEMBUATAN CHAT BOT BERBASIS WEB (DI UNIVERSITAS KOMPUTER INDONESIA) Oleh Fendy Ridwan 10107395 Bahasa alami (natural language) merupakan media yang digunakan manusia untuk saling berkomunikasi antar sesama. Namun saat ini, dengan menggunakan teknologi, terutama dalam bidang kecerdasan buatan dapat menjadikan bahasa yang digunakan manusia sebagai media komunikasi dengan komputer. NLP (Natural language Processing) merupakan salah satu bidang kecerdasan buatan. Tujuan dari bidang NLP ini adalah melakukan proses pembuatan model komputasi dari bahasa sehingga dapat terjadi suatu interaksi antara manusia dengan komputer dengan perantara bahasa alami. Salah satu aplikasi penerapan natural language processing adalah chat bot. Chat bot merupakan sebuah program komputer yang dirancang untuk mensimulasikan sebuah percakapan atau komunikasi yang interaktif kepada pengguna (manusia) melalui bentuk teks. Respon yang dihasilkan merupakan pemindaian atau pencocokan pattern di database pada inputan pengguna dengan menggunakan algoritma brute force dan menghasilkan respon balasan yang dianggap paling cocok dari database sehingga percakapan yang terjadi seakanakan dilakukan oleh dua pribadi manusia yang saling berkomunikasi. Dengan menggunakan chat bot diharapakan dapat menggantikan pekerjaan operator yang memiliki jumlah dan waktu yang terbatas dalam memberikan informasi. Untuk pengembangan sistem lebih lanjut, perlu diperhatikan pada beberapa hal seperti penambahan data brain file yaitu pattern dan responnya serta penerapan metode penalaran yang lebih baik. Kata Kunci : Bahasa alami (natural language), kecerdasan buatan, chat bot, NLP (Natural Language Processing, algoritma brute force. i ABSTRACT DEVELOPMENT OF NATURAL LANGUAGE PROCESSING APPLICATION FOR MAKING CHAT BOT IN WEB BASED IN INDONESIA COMPUTER UNIVERSITY By Ridwan Fendy 10107395 Natural language is one media used by human to communicate between human. However, at this time, with technology especially in (AI) artificial intelligence, could make natural language as median to communicate between human and computer. NLP (Natural Language Processing) is one branch of artificial intelligence. The purpose of this field is making process computation model from language, so that would be happened interaction between human and computer with natural language as median. One of application that implements natural language processing is chat bot. Chat bot is application of computer program that is designed to simulates an interactive conversation or interactive communication to user (human) from the text. The response is resulted from scanning of matching a pattern in a database on user input with using brute force algorithm and it replies from pattern that is considered most matched from database so that the conversation seemed to be done by two personal human communicate each other. By using chat bot expected could replace provider's job as operator that has limit time and amount in giving information. For further system development need to be considered on several thing such as addition of brain file data that consist of key word pattern and it's response and implementation of better methods of reasoning. Keyword : Artificial Intelegence, chat bot, NLP (Natural Language Processing), brute force algoritm. ii KATA PENGANTAR Assalamu‟alaikum Wr. Wb., Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi dan tugas akhir yang berjudul “Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat bot Berbasis Web Di universitas Komputer Indonesia”. Penulis menyadari bahwa hasil penelitian ini masih banyak kekurangan dan masih jauh dari kesempurnaan, oleh karena itu saran dan kritik yang sifatnya membangun akan penulis terima dengan senang hati. Dalam kesempatan ini, dengan segala kerendahan hati penulis ingin mengucapkan terima kasih yang sebesarbesarnya kepada : 1. Bapak Dr. Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor Universitas Komputer Indonesia. 2. Bapak Prof. Dr. Ir Denny Kurniadie, M.Sc. selaku Dekan Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. 3. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia sekaligus pembimbing yang telah memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam mengerjakan laporan tugas akhir. iii 4. Bapak Andri Heryandi, S.T., M.T. selaku dosen reviewer dan Bapak Adam Mukharil Bachtiar, S.Kom selaku dosen penguji tiga. 5. Bapak Eko Budi Setiawan, S.Kom., selaku dosen wali kelas IF-9 angkatan 2007. 6. Keluargaku tercinta Bapak dan Ibu yang telah memberikan doa dan dukungan baik secara moril maupun materil serta cinta kasih yang tiada henti yang diberikan kepada penulis untuk keberhasilan penulis. 7. Adik-adikku Fenny dan Cindy, terima kasih atas bantuan, dukungan, motivasi dan semangat bagi penulis. Semoga atas bantuan serta dukungannya diberikan balasan yang baik oleh Allah SWT. Akhir kata penulis berharap skripsi dan tugas akhir ini dapat berguna baik bagi Penulis maupun bagi pihak-pihak lain yang memerlukannya, serta dapat menjadi pendorong bagi penelitian lainnya untuk mengembangkan serta menambah ilmu pengetahuan yang berhubungan dengan judul skripsi dan tugas akhir ini. Wassalamu‟alaikum Wr.Wb. Bandung, Agustus 2012 Penulis Fendy Ridwan 10107395 iv DAFTAR ISI LEMBAR JUDUL ABSTRAK ......................................................................................................... i ABSTRACT ........................................................................................................ ii KATA PENGANTAR ....................................................................................... iii DAFTAR ISI ...................................................................................................... v DAFTAR TABEL ............................................................................................. x DAFTAR GAMBAR ......................................................................................... xii DAFTAR SIMBOL ........................................................................................... xvi DAFTAR LAMPIRAN ..................................................................................... xvii BAB 1 PENDAHULUAN ................................................................................. 1 1.1 Latar Belakang Masalah ..................................................................... 1 1.2 Identifikasi Masalah ........................................................................... 3 1.3 Maksud dan tujuan ............................................................................. 3 1.4 Batasan Masalah ................................................................................. 4 1.5 Metodologi Penelitian ........................................................................ 4 1.6 Sistematika Penulisan ......................................................................... 8 BAB 2 LANDASAN TEORI ............................................................................10 2.1 Landasan Teori ...................................................................................10 2.1.1 Kecedasan Buatan...............................................................................10 2.1.2 Konsep Kecerdasan Buatan ................................................................12 v 2.1.3 Pattern Matching ................................................................................13 2.1.3.1 Algoritma Brute Force ........................................................................14 2.1.4 Aplikasi Kecerdasan Buatan ...............................................................15 2.1.5 Tujuan Kecerdasan Buatan .................................................................17 2.1.6 Chat Bot ..............................................................................................18 2.1.7 Bahasa Alami (Natural language) ......................................................20 2.1.7.1 Pengertian Natural Language processing .........................................21 2.1.7.2 Question answering system (QA system) ...........................................24 2.1.8 Scanner (Analisis Leksikal) ................................................................25 2.1.9 Parser (Analisis Sintaksis) ..................................................................27 2.1.9.1 Bottom-up Parsing ..............................................................................28 2.1.9.2 Top-Down Parsing ..............................................................................28 2.1.10 Pohon Sintaks .....................................................................................32 2.1.11 Analisis Semantik ...............................................................................33 2.1.12 Turing Test..........................................................................................33 2.2 Perangkat Lunak .................................................................................34 2.3 Metode Analisis yang Digunakan.......................................................34 2.3.1 Flowchart ............................................................................................34 2.3.2 DFD (Data Flow Diagram) ................................................................35 2.3.3 Kamus Data (Data Dictionary) ..........................................................37 2.3.4 ERD (Entity Relationship Diagram) ..................................................38 2.4 Perangkat Lunak Pengembang ...........................................................39 2.4.1 PHP .....................................................................................................39 vi 2.4.2 MySQL ...............................................................................................39 2.5 Basis Data ...........................................................................................41 2.5.1 Tujuan Basis Data ...............................................................................41 2.5.2 Keuntungan Basis Data ......................................................................42 BAB 3 ANALISIS DAN PERANCANGAN SISTEM ...................................43 3.1 Analisis Sistem ...................................................................................43 3.1.1 Analisis Masalah ................................................................................43 3.1.2 Analisis Masukan ...............................................................................47 3.1.2.1 Stemming ............................................................................................47 3.1.3 Analisis Data ......................................................................................48 3.1.4 Model Kerja Sistem Program .............................................................49 3.1.4.1 Prosedur Tiara ....................................................................................49 3.1.4.2 Model Kerja Global Bot Program ......................................................51 3.1.4.3 Analisis Parsing ..................................................................................53 3.1.4.4 Flowchart Penulusuran Pattern ...........................................................56 3.1.4.5 Flowchart Algoritma Brute Force ......................................................58 3.1.4.6 Contoh Implementasi Algoritma Brute Force ....................................60 3.1.5 Analisis Basis Data .............................................................................64 3.1.6 Analisis Kebutuhan Nonfungsional ....................................................65 3.1.6.1 Analisis Perangkat Keras ....................................................................65 3.1.6.2 Analisis Perangkat Lunak ...................................................................65 3.1.6.3 Analisis pengguna ..............................................................................66 vii 3.1.7 Analisis Kebutuhan Fungsional ..........................................................66 3.1.7.1 Diagram Konteks ................................................................................66 3.1.7.2 DFD (Data Flow Diagram) .................................................................67 3.1.8 Spesifikasi Proses ...............................................................................66 3.1.9 Kamus Data ........................................................................................89 3.1.10 Perancangan Basis Data......................................................................92 3.1.10.1 Skema Relasi ....................................................................................92 3.1.10.2 Perancangan Struktur Tabel..............................................................92 3.1.11 Perancangan Struktur Menu ...............................................................95 3.1.12 Perancangan AntarMuka ....................................................................90 3.1.12.1Perancangan Antarmuka Superadmin ...............................................90 3.1.12.2Perancangan Anatarmuka Admin ......................................................107 3.1.12.3Perancangan Antarmuka Pengunjung ................................................107 3.1.12.4Perancangan Pesan ............................................................................109 3.1.13 Jaringan Semantik ..............................................................................110 3.1.14 Perancangan Prosedural ......................................................................112 BAB 4 IMPLEMENTASI DAN PENGUJIAN ...............................................128 4.1 Implementasi ...........................................................................................128 4.1.1 Perangkat Lunak Yang Digunakan .........................................................128 4.1.2 Perangkat Keras Yang Digunakan ..........................................................129 4.1.3 Implementasi Database ...........................................................................129 4.1.4 Implementasi Antarmuka ........................................................................132 viii 4.2 Pengujian Perangkat Lunak .....................................................................133 4.2.1 Pengujian Alpha ......................................................................................133 4.2.1.1 Skenario Pengujian Alpha .......................................................................134 4.2.1.2 Kasus dan Hasil Pengujian (Black Box Testing) .....................................135 4.2.1.2.1 Pengujian Halaman Pengunjung ..........................................................135 4.2.1.2.2 Pengujian Login Petugas ......................................................................137 4.2.1.2.3 Pengujian Logout .................................................................................137 4.2.1.2.4 Pengujian Pengolahan Data Petugas ....................................................138 4.2.1.2.5 Pengujian Pengolahan Data Bot_resp ..................................................140 4.2.1.2.6 Pengujian Pengolahan Data Nokey_respon .........................................142 4.2.1.2.7 Pengujian Pengolahan Data Catatan_percakapan ................................144 4.2.1.2.8 Pengujian Pengolahan Data Filter ........................................................145 4.2.1.3 Kasus dan Hasil Pengujian (White box Testing) .....................................147 4.2.1.4 Kesimpulan Pengujian Alpha ..................................................................155 4.3 Pengujian Beta ..............................................................................................156 4.3.1 Wawancara .................................................................................................156 4.3.2 Kuesioner ...................................................................................................157 BAB 5 KESIMPULAN DAN SARAN .............................................................163 5.1 Kesimpulan ...................................................................................................163 5.2 Saran ..............................................................................................................164 DAFTAR PUSTAKA ........................................................................................165 ix BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Informasi merupakan bagian penting yang tidak dapat dipisahkan dari kehidupan sehari-hari, sehingga manusia berupaya membuat alat bantu agar informasi yang disampaikan dapat lebih cepat dan efektif. Pada tempat observasi penelitian, penyampaian informasi melalui layanan operator service dengan aplikasi chatting umumnya dilakukan oleh dua individu yaitu pengunjung web dan operator, akan tetapi hanya melalui kerja operator service penyampaian informasi dirasa kurang efektif bagi pengunjung yang ingin mendapatkan informasi yang cepat tanpa keterbatasan waktu. Selain itu juga, jumlah operator yang terbatas dengan jumlah pengunjung web yang lebih banyak menjadi suatu kendala bagi pengunjung web dan operator. Untuk itu diperlukan suatu alat media layanan informasi yang dapat merespon setiap pertanyaan pengunjung tanpa ada keterbatasan waktu dan jumlah operator, yaitu chat bot yang juga dapat memberikan nilai tambah bagi perusahaan melalui aplikasi yang interaktif dan unik sehingga menarik minat pengunjung. Kecerdasan buatan atau artificial intelligence (AI) merupakan suatu teknik yang memungkinkan mesin untuk berpikir dan dapat mengambil keputusan sendiri. Dengan menggunakan kecerdasan buatan maka tidaklah mustahil akan ada mesin yang benar-benar mampu berpikir, bertindak, mendengar, melihat, dan berbicara layaknya manusia. 1 2 Salah satu dari artificial intelegence (AI) adalah Natural Language Processing (NLP) yang berhubungan dengan pemrosesan bahasa alami yang bertujuan melakukan proses pembuatan model komputasi dari bahasa, sehingga dapat terjadi suatu interaksi antara manusia dengan komputer dengan perantaraan bahasa alami. Model komputasi ini dapat berguna untuk mempermudah komunikasi antara manusia dengan komputer dalam pencarian informasi. Bentuk implementasi dari aplikasi Natural Language Processing ini salah satunya adalah chat bot. Chat bot merupakan program komputer yang dirancang untuk mensimulasikan sebuah percakapan atau komunikasi yang interaktif kepada user (manusia) melalui bentuk teks, audio, maupun video. Respon yang dihasilkan merupakan hasil pemindaian kata kunci pada inputan user dan menghasilkan respon balasan yang dianggap paling cocok dari database tentunya, sehingga percakapan yang terjadi seakan-akan dilakukan oleh dua pribadi manusia yang saling berkomunikasi. Dengan dilatarbelakangi dengan pentingnya akan penggunaan bahasa alami berbasiskan web dalam penyampaian informasi, maka penulis mengambil topik tersebut dalam penelitian yang penulis beri judul ”Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat bot Berbasis Web”. 3 1.2 Identifikasi Masalah Berdasarkan uraian latar belakang masalah yang telah dikemukakan, maka identifikasi masalahnya adalah bagaimana menerapkan Natural Language Processing agar komputer dapat memahami suatu pertanyaan atau pernyataan yang diinputkan pengguna dalam bentuk bahasa sehari-hari ke dalam aplikasi chat bot berbasis web ini. 1.3 Maksud dan Tujuan 1.3.1 Maksud Maksud dari penelitian ini adalah membangun aplikasi Natural Language Processing (NLP) untuk pembuatan Chat Bot berbasis web dan menerapkan salah satu bidang pengetahuan yaitu kecerdasan buatan dalam aplikasi ini. 1.3.2 Tujuan Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah : 1. Menerapkan pendekatan Natural Language Processing pada aplikasi chatbot sehingga percakapan yang terjadi layaknya percakapan antara manusia dengan manusia. 2. Membuat sebuah aplikasi chat bot yang memiliki kecerdasan sendiri yang menggunakan bahasa alami dalam berkomunikasi dengan lawan bicara (user) secara online, sehingga user dapat melakukan chatting kapan saja. 3. Memberikan informasi mengenai perkuliahan akademik di Universitas Komputer Indonesia dengan lebih interaktif dan menarik. 4 1.4 Batasan Masalah Dalam penelitian ini, penulis membatasi masalah sebagai berikut : 1. Percakapan hanya dapat dilakukan dalam bahasa indonesia. 2. Dalam percakapan, Chat Bot hanya menanggapi percakapan dalam bahasa alami dan tidak melayani inputan berupa karakter-karakter khusus. 3. Topik pembicaraan hanya dibatasi mengenai informasi perkuliahan di Universitas Komputer Indonesia. 4. Diberikan kemampuan dasar untuk merespon mengenai sapaan, profil chatbot, kalimat pujian, dan kata-kata kasar seperti ejekan. 5. Chat bot diberikan kemampuan untuk belajar (learning) sehingga pengetahuan Chat Bot dapat ditanamkan melalui pengelolaan admin. 6. Aplikasi ini dibangun menggunakan bahasa pemograman PHP dan Javacript yang terstruktur dan untuk penyimpanan database menggunakan MYSQL, serta software pendukung yang digunakan seperti Macromedia Dreamweaver 8 sebagai software editor HTML. 1.5 Metodologi Penelitian Metodologi penelitian yang penulis maksud adalah segala hal yang berhubungan dengan metode-metode yang penulis gunakan dalam melakukan penelitian ini dengan cara melakukan pendekatan terhadap metode-metode yang telah ada. Metode sendiri merupakan cara-cara yang penulis lakukan dalam penelitian dan penyusunan skripsi ini. Penulis menggunakan metode-metode yang diuraikan di bawah ini. 5 1.5.1 Metode Penelitian Metode penelitian yang dipakai oleh penulis adalah metode penelitian deskriptif. Dalam metode penelitian ini digunakan teknik-teknik analisis, klasifikasi masalah, survei, studi literatur terhadap masalah-masalah yang berhubungan dengan skripsi yang penulis susun, wawancara (interview) dengan narasumber, observasi, dan teknik test terhadap objek penelitian yang telah ada seperti chat bot ELIZA, ASRI, dan MILA. Dengan metode deskriptif, data yang telah penulis kumpulkan mula-mula disusun, dijelaskan, dianalisis, dan kemudian diimplementasikan dalam sebuah perangkat lunak. 1.5.1 Tahap Pengumpulan Data Tahap pengumpulan data dapat diperoleh secara langsung dari objek penelitian. Cara-cara yang mendukung untuk mendapatkan data primer adalah sebagai berikut : a. Studi pustaka Studi ini dilakukan dengan cara mempelajari, meneliti dan menelaah berbagai literatur-literatur yang bersumber dari buku-buku, teks, jurnal ilmiah, situr-situs di internet, dan bacaan-bacaan yang ada kaitannya dengan topik penelitian. b. Studi lapangan Studi ini dilakukan dengan cara mengunjungi tempat yang akan diteliti dan pengumpulan data dilakukan secara langsung. hal ini meliputi : 6 1. Wawancara Wawancara yaitu teknik pengumpulan data dengan cara mengadakan tanya jawab secara langsung dengan narasumber yang terkait dengan permasalahan yang diambil untuk memperoleh data dan informasi. 2. Observasi Observasi yaitu teknik pengumpulan data dengan cara melakukan pengamatan secara langsung terhadap objek permasalahan yang diambil. 1.5.3 Tahap pengembangan Perangkat Lunak Tahap pengembangan perangkat lunak dalam pembuatan aplikasi ini menggunakan metode waterfall. Tahapan-tahapan yang terdapat dalam model waterfall (Gambar 1.1) adalah sebagai berikut : 1. Pengumpulan data Kegiatan yang dilakukan adalah mengumpulkan kebutuhan secara lengkap untuk selanjutnya menuju tahap analisis. 2. Analisis Setelah data terkumpul, dilakukan analisis yang berkaitan dengan proses dan data yang diperlukan oleh sistem serta keterkaitannya. 3. Perancangan Pada tahap ini diberikan gambaran umum yang jelas dan rancang bangun yang lengkap tentang sistem yang akan dikembangkan kepada pihak-pihak yang terlibat dalam pengembangan sistem. 7 4. Pengkodean Setelah tahap perancangan sistem, selanjutnya dilakukan penterjemahan kode program yang dimengerti oleh mesin. Pada tahap ini dilakukan pembuatan komponen-komponen sistem yang meliputi implementasi modul-modul program, antarmuka dan basis data. 5. Pengujian Melakukan pengujian secara formal terhadap kode program yang telah dibuat untuk memastikan semua kebutuhan atau persyaratan telah terpenuhi. 6. Pemeliharaan Setelah menerapkan langkah-langkah tersebut, dilakukan evaluasi terhadap system yang baru untuk melihat apakah sistem telah memenuhi tujuan yang ingin dicapai. Perubahan bisa terjadi karena adanya error, perubahan lingkungan sistem,dsb. Gambar 1.1 Metode Waterfall 8 1.6 Sistematika Penulisan Penyusunan skripsi ini penulis bagi ke dalam beberapa bab secara sistematis sesuai dengan pokok-pokok permasalahan yang dibahas. Adapun sistematika penulisan secara umum adalah sebagai berikut: BAB I : PENDAHULUAN Bab ini menjelaskan secara singkat mengenai latar belakang masalah, identifikasi masalah, maksud dan tujuan, metodologi penelitian, batasan masalah, serta sistematika penulisan. BAB II : LANDASAN TEORI Pada bab ini berisi tentang analisis kebutuhan dalam membangun aplikasi ini yang sesuai dengan metode pembangunan perangkat lunak yang digunakan. Selain itu terdapat juga perancangan antarmuka untuk aplikasi yang akan dibagnun sesuai dengan hasil analisis BAB III : ANALISIS DAN PERANCANGAN SISTEM Bab ini menerangkan analisis yang dilakukan terhadap cara kerja aplikasi yang dibuat. Bab ini juga membahas mengenai lingkungan bahasa pemrograman yang digunakan dan perancangan chat bot dalam tahapan-tahapan yang sistematis. BAB IV : IMPLEMENTASI SISTEM Pada bab ini berisi tentang analisis kebutuhan dalam membangun aplikasi ini yang sesuai dengan metode pembangunan perangkat lunak yang digunakan. Selain itu terdapat juga perancangan 9 antarmuka untuk aplikasi yang akan dibangun sesuai dengan hasil analisis. BAB V : KESIMPULAN DAN SARAN Bab ini terdiri dari kesimpulan dan saran yang berisikan hal-hal terpenting yang penulis bahas dan kemudian dibuat kesimpulan. Bab ini juga berisi saran-saran yang penulis berikan untuk pengembangan chat bot selanjutnya. BAB II LANDASAN TEORI 2.1 Landasan Teori Landasan teori merupakan penjelasan berbagai konsep dasar dan teori- teori yang berkaitan dalam pembangunan aplikasi Natural language Processing untuk pembuatan chat bot berbasis web. 2.1.1 Kecerdasan Buatan Kecerdasan Buatan adalah salah satu cabang Ilmu pengetahuan berhubungan dengan pemanfaatan mesin untuk memecahkan persoalan yang rumit dengan cara yang lebih manusiawi. Hal Ini biasanya dilakukan dengan mengikutI atau mencontoh karakteristik dan analogi berpikir dari kecerdasan atau Inteligensia manusia, dan menerapkannya sebagai algoritma yang dikenal oleh komputer. Dengan suatu pendekatan yang kurang lebih fleksibel dan efisien dapat diambil tergantung dari keperluan, yang mempengaruhi bagaimana wujud dari perilaku kecerdasan buatan. AI biasanya dihubungkan dengan Ilmu Komputer, akan tetapi juga terkait erat dengan bidang lain seperti Matematika, Psikologi, Pengamatan, Biologi, Filosofi, dan yang lainnya. Kemampuan untuk mengkombinasikan pengetahuan dari semua bidang ini pada akhirnya akan bermanfaat bagi kemajuan dalam upaya menciptakan suatu kecerdasan buatan. Pengertian lain dari kecerdasan buatan adalah bagian ilmu komputer yang membuat agar mesin komputer dapat melakukan pekerjaan seperti dan sebaik 10 11 yang dilakukan manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia. Menurut beberapa ahli kecerdasan buatan didefinisikan sebagai berikut : 1. Menurut Rich and knight [1991] [10] : ”Kecerdasan buatan (artificial intellegence) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia”. 2. Menurut Andri Kristanto (2003) : Kecerdasan buatan merupakan bagian dari ilmu pengetahuan komputer yang khusus ditujukan dalam perancangan otomatisasi tingah laku cerdas dalam sistem kecerdasan komputer. Kecerdasan buatan dilihat dari berbagai sudut pandang adalah sebagai berikut : 1. Sudut pandang Kecerdasan (Intellegence) Kecerdasan buatan adalah bagaimana membuat mesin yang ”cerdas” dan dapat melakukan hal-hal yang sebelumnya dapat dilakukan oleh manusia. 2. Sudut pandang Penelitian Studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dilakukan oleh manusia. 12 2.1.2 Konsep Kecerdasan Buatan Ada beberapa konsep yang harus dipahami dalam kecerdasan buatan, diantaranya (kusrini, 2006) : 1. Turing Test – Metode Pengujian Kecerdasan 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. 2. Pemrosesan Simbolik Komputer semula didesain untuk memproses bilangan atau angkaangka (pemrosesan numerik). Sementara manusia dalam berfikir dan menyelesaikan masalah lebih bersifat simbolik, tidak didasarkan pada sejumlah rumus atau melakukan komputasi matematika. Sifat penting dari AI adalah bahwa AI merupakan bagian dari ilmu komputer yang melakukan proses secara simbolik dan non-algoritmik dalam penyelesaian masalah. 13 3. Heuristic Istilah heuristic diambil dari bahasa Yunani yang berarti menemukan. Heuristic merupakan suatu strategi untuk melakukan proses pencarian (search) ruang problem secara selektif, yang memandu proses pencarian yang kita lakukan disepanjang jalur yang memiliki kemungkinan sukses paling besar. 4. Penarikan Kesimpulan (Inferencing) AI mencoba membuat mesin memiliki kemampuan berfikir atau mempertimbangkan (reasoning). Kemampuan berfikir (reasoning) termasuk didalamnya proses penarikan kesimpulan (inferencing) berdasarkan fakta-fakta dan aturan dengan menggunakan metode heuristic atau pencarian lainnya. 5. Pencocokan Pola (Pattern Matching) AI bekerja dengan metode pencocokan pola (pattern matching) yang berusaha untuk menjelaskan objek, kejadian (event) atau proses, dalam hubungan logika atau komputasional. 2.1.3 Pattern Matching Pattern Matching atau Pencocokan Pola adalah suatu metode yang digunakan untuk mencocokan suatu pola tertentu (kumpulan huruf) dengan suatu kumpulan kata (teks) atau string. Pada bidang sains komputer metode pattern matching sangat banyak digunakan antara lain Editor Teks, Mesin Pencari Web, Analisis Gambar dan lain-lain. String dapat kita asumsikan 14 sebagai kumpulan dari beberapa karakter yang membentuk suatu kesatuan. (Budiasa, 2009). 2.1.3.1 Algoritma Brute Force Algoritma Brute Force merupakan algoritma pencocokan string dengan melakukan pencarian semua kemunculan string pattern yang berada di string teks. Cara Kerja Algoritma Brute Force : 1. Mula-mula pattern dicocokan pada awal teks. 2. Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam pattern dengan karakter yang bersesuaian di dalam teks sampai : a. Semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau b. Dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil) 3. Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2. Persoalan pencarian string dirumuskan sebagai berikut : 1. Teks (text), yaitu (long) string yang panjangnya n karakter 2. Pattern, yaitu string dengan m karakter (m < n) yang akan dicari di dalam teks. Contoh cara kerja algoritma Brute Force ini adalah sebagai berikut : 15 · Teks : AABD CAECCA ABDABCABC BBABCABE · Pattern : ABCABE Gambar 2.1 Contoh Algoritma Brute Force 2.1.4 Aplikasi Kecerdasan Buatan Kecerdasan buatan berupa aplikasi-aplikasi yang dapat diterapkan pada komputer besar (main frame), komputer mikro, atau personal computer (PC). Beberapa aplikasi kecerdasan buatan diantaranya sebagai berikut : 1. General problem solving Adalah suatu tahapan proses atau langkah-langkah yang berurutan untuk mencapai suatu tujuan, dengan cara melacak dan mengkombinasikan berbagai cara atau metode sehingga menghasilkan solusi terbaik. 16 2. Expert system atau sistem pakar Adalah suatu program yang bertindak sebagai penasehat atau konsultan pintar dengan mengambil pengetahuan yang disimpan dalam domain tertentu. Seorang pemakai yang belum berpengalaman dalam mendiagnosa suatu masalah dapat memecahkan masalah yang sulit dan mengambil keputusan dengan benar. 3. Vision Merupakan aplikasi yang dapat mengenali gambar yang diterimanya dari kamera, scanner, dan alat input lainnya dengan cara mencocokan dan melacak gambar apa yang diterimanya melalui kamera atau scanner sebagai masukan. 4. Natural Language Processing atau pengolahan bahasa alami Merupakan salah satu cabang dari artificial intellegence (AI) yang berhubungan dengan pemrosesan bahasa alami oleh komputer yang mencakup metode-metode speech recognition, speech synthesizer (text-tospeech), parsing, penterjemahan bahasa, QA system, dan kemampuan bahasa alami lainnya pada sebuah mesin atau komputer. 5. Robotics Pada aplikasi robotics kecerdasan buatan bertindak seolah-olah melakukan pekerjaan fisik yang biasa dikerjakan manusia, bahkan robot dapat melakuakn pekerjaan yang tidak dapat dilakukan oleh manusia atau berbahaya bagi manusia. Semua tindakan dirancang dan disusun dalam 17 satu urutan atau algoritm tertentu. Dengan bantuan robot, pekerjaan yang berulang kali dan rumit dapat dilakukan dengan baik. 6. Education Merupakan aplikasi kecerdasan buatan dalam bidang pendidikan yang bertindak sebagai partner bagi pelajar atau mahasiswa dalam mempelajari suatu bidang. 2.1.5 Tujuan Kecerdasan Buatan Tujuan dari kecerdasan buatan menurut Winston dan Prendergast : 1. Membuat mesin menjadi lebih pintar (tujuan utama) 2. Memahami apa itu kecerdasan (tujuan ilmiah) 3. Membuat mesin lebih bermanfaat (tujuan entrepreneurial) Dua bagian utama yang dibutuhkan untuk aplikasi kecerdasan buatan seperti yang terlihat pada Gambar 2.1 Proses Motor inferensi adalah : a. Basis Pengetahuan (Knowledge Base) berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya. b. Motor Inferensi (Inference Engine) adalah kemampuan menarik kesimpulan berdasarkan pengalaman. Gambar 2.2 Proses Motor Inferensi 18 2.1.6 Chat Bot Chat Bot adalah sebuah program komputer yang dirancang untuk mensimulasikan sebuah percakapan atau komunikasi yang interaktif kepada user (manusia) melalui bentuk teks, suara, dan atau visual. Percakapan yang terjadi antara komputer dengan manusia merupakan bentuk respon dari program yang telah dideklarasikan pada database program pada komputer. Respon yang dihasilkan merupakan hasil pemindaian kata kunci pada inputan user dan menghasilkan respon balasan yang dianggap paling cocok, atau pola kata-kata yang dianggap paling mendekati, dari database tentunya. Dalam bahasa sehariharinya Chat Bot merupakan Aplikasi atau Program komputer yang dirancang untuk meniru manusia itu sendiri, batasan yang diambil dari Chat Bot adalah mampu meniru komunikasi manusia. Jadi jika manusia sedang bercakap-cakap dengan program ini, seakan-akan ada 2 pribadi manusia yang saling berkomunikasi. Nyatanya tidak, manusia berkomunikasi dengan Bot. Bot sudah dirancang untuk merespon segala jenis pertanyaan dan pernyataan yang diinputkan oleh manusia (user). Hal ini terjadi karena sebelumnya sudah dideklarasikan pada database, berupa entitas-entitas kata, pola kalimat, dan berbagai jenis pernyataan dan pertanyaan. Bot biasa digunakan dalam IRC (Internet Chat Groups) di mana bot tersebut melakukan berbagai fungsi seperti menyapa partisipan baru dan memonitor penggunaan kata-kata yang tidak pantas. Sekarang ini, bot dapat mengumpulkan informasi, mengolah informasi tersebut, dan memberikan respon terhadap pengguna dan event yang terjadi di internet. Beberapa jenis bot bekerja 19 secara silent di internet tanpa sepengetahuan kita namun ada pula bot yang bekerja secara interaktif yang dapat kita ajak berbicara yaitu chat bot. Chat bot adalah sebuah simulator percakapan yang berupa program komputer yang dapat berdialog dengan penggunanya dalam bahasa alami. Karena chat bot hanya sebuah program, dan bukan robot (chat bot tidak memiliki tubuh dan tidak memiliki mulut sehingga tidak dapat berbicara seperti manusia), maka yang dimaksud dengan dialog antara manusia sebagai pengguna dengan chat bot dilakukan dengan cara mengetik apa yang akan dibicarakan dan chat bot akan memberikan respon. Orang yang membuat dan mengembangkan program chat bot disebut bot master. Chat bot yang pertama adalah ELIZA yang dibuat pada tahun 1964 sampai 1966 oleh Professor Joseph Weizenbaum di MIT (Massachusetts Institute of Technology), dengan tujuan untuk mempelajari komunikasi natural language antara manusia dengan mesin. Eliza bertindak seolah-olah dia adalah seorang psikolog yang dapat menjawab pertanyaan-pertanyaan dari pasien dengan jawaban yang cukup masuk akal atau menjawabnya dengan pertanyaan balik. ELIZA adalah pelopor atau dapat disebut sebagai nenek moyangnya chat bot. ELIZA (juga dikenal sebagai Dr. Eliza) terkenal sebagai program chat yang “memiliki profesi” sebagai seorang psikiater. ELIZA mensimulasikan percakapan antara seorang psikiater dengan pasiennya menggunakan metode biasa yang dapat mencerminkan perasaan pasien dengan mengajukan pertanyaan-pertanyaan seperti: "How do you ...", "Why do you feel like ...", "What do you think about ...". 20 Program ini akan mencari pola kata-kata tertentu pada input yang diberikan oleh pengguna, dan kemudian memberikan output yang sesuai. ELIZA dapat memberikan respon yang tepat hanya jika pernyaataan pengguna ditulis dalam ejaan yang benar. Meskipun begitu, pengguna dapat berbicara secara santai dengan ELIZA. ALICE (Artificial Linguistic Internet Computer Entity) adalah sebuah program chat bot yang diciptakan oleh Dr. Richard Wallace. ALICE mampu menciptakan suasana seperti komunikasi antara dua manusia seperti biasanya, ALICE bahkan dapat berbohong, menyebarkan gosip, dan mengetahui banyak kejadian yang terjadi di dunia nyata. Ada banyak lagi chat bot lain yang menarik seperti Erin the Bartender, Madame Celeste, Mega HAL, dan lain-lain. 2.1.7 Bahasa Alami (Natural Language) Pada prinsipnya bahasa alami adalah suatu bentuk representasi dari suatu pesan yang ingin dikomunikasikan antar manusia. Bentuk utama representasinya adalah berupa suara/ucapan (spoken language), tetapi sering pula dinyatakan dalam bentuk tulisan. Bahasa dapat dibedakan menjadi (1) Bahasa Alami, dan (2) Bahasa Buatan. Bahasa alami adalah bahasa yang biasa digunakan untuk berkomunikasi antar manusia, misalnya bahasa Indonesia, Sunda, Jawa, Inggris, Jepang, dan sebagainya. 21 Bahasa buatan adalah bahasa yang dibuat secara khusus untuk memenuhi kebutuhan tertentu, misalnya bahasa pemodelan atau bahasa pemrograman komputer. Chomsky adalah orang yang pertama kali merepresentasikan bahasa sebagai rangkaian simbol. Chomsky berhasil memperlihatkan bahwa bahasa apapun dapat direpresentasikan dengan suatu cara yang universal. Pemikiran Chomsky yang merepresentasikan bahasa sebagai kumpulan simbol-simbol dan aturan yang mengatur susunan simbol-simbol tersebut telah membuka peluang untuk melakukan pemrosesan bahasa secara simbolik dengan teknologi komputer, sehingga melahirkan bidang ilmu Natural Language Processing (NLP). Linguistik adalah bidang ilmu yang khusus mengkaji tentang bagaimana bahasa distrukturkan dan digunakan. Bidang ilmu ini salah satunya membahas tentang perbendaharaan kata dan leksikon. Perbendaharaan kata adalah sekumpulan kata-kata dan frase-frase yang digunakan dalam bahasa tertentu. Sebagai bagian dari pengkajian bahasa, linguis mendefinisikan semua kata-kata dan frase-frase yang digunakan secara umum kemudian mengorganisasikannya ke dalam sebuah leksikon. Leksikon adalah kamus yang mendaftar kata-kata bahasa itu secara alfabet. 2.1.7.1 Pengertian Natural Language Processing Pengolahan bahasa alami (NLP) adalah bidang ilmu komputer dan linguistik berkaitan dengan interaksi antara komputer dan manusia. Seluler 22 generasi bahasa sistem komputer yang mengubah informasi dari database ke dalam bahasa manusia yang dapat dibaca. Natural language processing, biasanya disingkat dengan NLP, mencoba membuat komputer mampu memahami suatu perintah yang dituliskan dalam bentuk bahasa sehari-hari dan diharapkan komputer juga merespon dalam bahasa yang mirip dengan bahasa natural. Setelah komputer bisa memahami perintah dalam bahasa natural, maka diharapakan sistem komputer juga dapat memberikan respon dalam bahasa natural pula. Sebuah sistem natural language harus memperhatikan pengetahuan terhadap bahasa itu sendiri baik dari segi kata yang digunakan bagaimana katakata tersebut digabung untuk menghasilkan suatu kalimat, apa arti suatu kata, apa fungsi sebuah kata dalam sebuah kalimat dan sebagainya. Natural Language processor tidak memperdulikan bagaimana suatu kalimat diinputkan ke komputer. Tugasnya adalah mengekstrak informasi dari kalimat. Inti dari sistem NLP adalah parser. Parser adalah bagian dari program atau system yang membaca setiap kalimat, kata demi kata, untuk menentukan “what is what”. 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. Untuk mencapai tujuan ini dibutuhkan tiga tahap proses. Proses yang pertama ialah parsing atau analisa sintaksis yang memeriksa kebenaran struktur kalimat berdasarkan suatu grammar 23 (tata bahasa) dan lexicon (kosa kata) tertentu. Proses kedua ialah semantic interpretation atauinterpretasi semantik yang bertujuan untuk merepresentasikan arti dari kalimat secara context-independent Sedangkan proses ketiga ialah untuk keperluan lebih lanjut. contextual interpretation atau interpretasi kontekstual yang bertujuan untuk merepresentasikan arti secara context dependent dan menentukan maksud dari penggunaan kalimat. Gambaran organisasi dari sebuah sistem NLP yang lengkap ditunjukkan pada gambar 2.3. Gambar 2.3 Organisasi Sebuah Sistem NLP 24 2.1.7.2 Question Answering System (QA System) Question answering system (QA system) adalah sistem yang mengijinkan user menyatakan kebutuhan informasinya dalam bentuk natural language question (pertanyaan dalam bahasa alami), dan mengembalikan kutipan teks singkat atau bahkan frase sebagai jawaban. Ketersediaan sumber informasi yang luas dan bervariasi, serta adanya perkembangan yang pesat dari teknik Natural Language Processing (NLP), Information Extraction (IE), dan Information Retrieval (IR) sangat mempengaruhi perkembangan dari QA system, yang mana dulunya hanya dapat menjawab pertanyaan-pertanyaan yang terbatas pada suatu bidang (domain) tertentu dengan berdasarkan pada sumber informasi yang terstruktur seperti database, hingga kini dapat menjawab berbagai jenis pertanyaan dengan bersumber pada informasi dari sebuah koleksi teks yang tidak terstruktur. Umumnya arsitektur question answering system yang berbasis teks dibangun atas enam tahapan proses, yaitu analisis pertanyaan, preprocessing koleksi dokumen, pemilihan kandidat dokumen, analisis kandidat dokumen, ekstraksi jawaban, dan pemberian respon. Aplikasi-aplikasi QA system (baik yang dapat diakses melalui internet maupun tidak) yang dikembangkan dengan ciri khasnya masing-masing memiliki urutan proses yang tidak jauh berbeda satu dengan lainnya. Jawaban yang dikembalikan oleh sebuah QA system sebagai respon terhadap pertanyaan perlu dievaluasi untuk menilai performansi sistem. 25 2.1.8 Scanner (Analisis Leksikal) ` Scanner merupakan salah satu bagian dari kompilator bahasa pada komputer yang bertugas melakukan analisis leksikal. Analisis leksikal adalah proses pengidentifikasian semua besaran yang membangun suatu bahasa pada program sumber. Scanner menerima input berupa stream karakter kemudian memilah program sumber menjadi satuan leksik yang disebut dengan token. Token ini akan menjadi input bagi parser. Tugas dari scanner adalah sebagai berikut: 1. Melakukan pembacaan kode sumber dengan merunut karakter demi karakter 2. Mengenali besaran leksik 3. Mentransformasikan menjadi sebuah token dan menentukan jenis tokennya. 4. Mengirimkan token 5. Membuang/mengabaikan blank dan komentar dalam program 6. Menangani kesalahan 7. Menangani table symbol Di dalam aplikasi NLP sistem cerdas yang akan dibuat, yang dimaksud dengan program sumber yang diolah oleh scanner adalah berupa kalimat input dari pengguna dalam bentuk sms. Ketika scanner menerima input berupa stream karakter kemudian memilah menjadi satuan leksik, satuan leksik tersebut terdiri atas simbol-simbol satuan yang jika dikombinasikan akan mempunyai arti yang berbeda-beda. Simbol- 26 simbol yang bisa dipergunakan dalam sebuah bahasa tentunya terbatas jumlahnya, yang membentuk sebuah himpunan dan disebut sebagai abjad (alphabet). Tata bahasa (grammatika) adalah sekumpulan dari himpunan variabelvariabel, simbol-simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan-aturan produksi. Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau token. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa berupa tak berhingga hingga kalimat. Simbol-simbol berikut adalah symbol terminal : 1. huruf kecil alphabet, misalnya :a, b, c 2. symbol operator, misalnya : +, -, dan „ 3. symbol tanda baca, misalnya : (, ), dan ; Sedangkan simbol-simbol berikut adalah simbol non terminal : 1. huruf besar awal alphabet, misalnya : A, B, C 2. huruf S sebagai simbol awal Pada saat scanner membaca input, tools yang digunakan untuk menggambarkan perpindahan dari posisi satu ke posisi lainnya adalah diagram transisi. 27 Gambar 2.4 Diagram transisi Keterangan : 2.1.9 Parser (Analisis Sintaksis) Parser atau syntactic analyzer pada kompilator bahasa pemrograman berfungsi untuk memeriksa kebenaran kemunculan setiap token. Pada QA system, fungsi dari parser ini agak berbeda karena token yang akan diolah semua memiliki tipe yang sama yaitu berupa kata (word). Urutan kemunculan token yang berupa kata-kata tersebut akan diolah dengan mengacu pada brain file agar 28 didapatkan makna kalimat yang sesungguhnya. Dengan kata lain, tahap analisa semantik terjadi di bagian brain file. Kemampuan dari parser untuk mengolah token dan bekerja sama dengan brain file inilah yang paling menentukan tingkat kecerdasan dari sebuah chat bot. 2.1.9.1 Bottom-Up Parsing Metode ini melakukan penelusuran dari leaf/daun menuju ke root/puncak. Gramatika yang dipakai akan lebih banyak bercabang ke arah simbol nonterminal. Hal lain yang juga berkaitan erat dengan proses parsing adalah kamus atau leksikon yang digunakan. Dalam leksikon disimpan daftar kata yang dapat dikenali sebagai simbol terminal dalam grammar dan informasi yang diperlukan untuk tiap kata tersebut untuk proses parsing yang bersangkutan. Bottom Up parser yaitu mencari dari simbol – simbol terminal menuju ke arah pembentukan simbol awal S. 2.1.9.2 Top-Down Parsing Memulai pemeriksaan dari simbol awal S dan mencoba untuk mencari bentuk simbol terminal berikutnya yang sesuai dengan jenis kata dari kalimat masukan. Ada 2 kelas metoda parsing top-down, yaitu kelas metoda dengan backup dan kelas metoda tanpa backup. Contoh metoda kelas dengan backup adalah metoda Brute-Force, sedangkan contoh metoda kelas tanpa backup adalah metoda recursive descent. 29 1. Metode Brute-Force Metode Brute Force memilih aturan produksi mulai dari kiri. Apabila terjadi kalahan pada saat parsing misalnya string tidak sesuai, maka dilakukan baktrack/backup. Metode ini membuat pohon parsing secara top down yaitu degan cara mencoba segala kemungkinan untuk setiap simbol non-terminal. Contoh suatu bahasa dengan aturan produksi sebagai berikut: S aAd | aB A b|c B ccd | ddc Misal akan dilakukan parsing untuk string ‟accd‟. Maka analisis sintaks terhadap string tersebut dengan menggunakan metode Brute Force adalah: 30 Gambar 2.5 Metode Brute Force 31 2. Metode Recursive-Descent Metode Recursive-Descent adalah kelas metoda parsing yang tidak menggunakan produksi alternatif ketika hasil akibat penggunaan sebuah produksi tidak sesuai dengan simbol input. Jika produksi A mempunyai dua buah ruas kanan atau lebih maka produksi yang dipilih untuk digunakan adalah produksi dengan simbol pertama ruas kanannya sama dengan input yang sedang dibaca. Jika tidak ada produksi yang demikian maka dikatakan bahwa parsing tidak dapat dilakukan. Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika terdapat dua atau lebih produksi dengan ruas kiri yang sama maka karakter pertama dari semua ruas kanan produksi tersebut tidak boleh sama. Ketentuan ini tidak melarang adanya produksi yang bersifat rekursi kiri. Contoh suatu bahasa dengan aturan produksi sebagai berikut: Misal akan dilakukan parsing terhadap string ‟ac‟. Maka analisis sintaks terhadap string tersebut dengan menggunakan metode recursive descent adalah: Gambar 2.6 Metode recursive descent 32 2.1.10 Pohon Sintaks Pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki satu simpul (node)/vertex disebut akar (root) dan dari situ memiliki lintasan ke setiap simpul. Pohon sintaks/pohon penurunan (syntax tree/derivation tree/ parse tree) berguna untuk menggambarkan bagaimana memperoleh suatu string dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Setiap simbol variabel akan diturunkan menjadi terminal, sampai tidak ada yang belum tergantikan. Gambar 2.2 memberikan contoh sebuah tree yang menguraikan kalimat dalam bahasa Inggris. The quick brown fox jumped over the lazy dog the quick brown jumped over the fox lazy dog Gambar 2.7 Pohon Sintaks 33 Proses penurunan atau parsing bisa dilakukan dengan cara: 1. Penurunan terkiri (leftmost derivation): simbol variabel terkiri yang diperluas terlebih dulu 2. Penurunan terkanan (rightmost derivation): simbol variabel terkanan yang diperluas terlebih dulu. 2.1.11 Analisis Semantik Analisis semantik merupakan kelanjutan dari proses scanning dan parsing. Fungsi dari analisis semantik adalah untuk menentukan makna dari serangkaian instruksi yang terdapat dalam program sumber atau masukan dari penguna. Penganalisa semantik harus mampu menentukan aksi atau respon apa yang yang akan dilakukan terhadap instruksi yang diberikan. 2.1.12 Turing Test Turing Test adalah usulan untuk mengetes kemampuan sebuah mesin untuk melakukan percakapan seperti manusia. Digambarkan oleh Alan Turing di Koran pada 1950 „Mesin komputasi dan kecerdasan‟. Hasilnya sebagai berikut : seorang manusia penilai melakukan percakapan bahasa alami dengan dua pihak lain, satu manusia dan satunya lagi mesin, jika penilai tidak dapat mengatakan yang mana mesin dan yang mana manusia, maka mesin tersebut telah berhasil melalui test tersebut. Diasumsikan bahwa baik manusia dan mesin mencoba untuk terlihat seperti manusia. Untuk menjaga test diatur lebih sederhana dan universal ( 34 secara eksplisit menguji kemampuan bahasa mesin), percakapan biasanya dibatasi dengan teks saja. 2.2 Perangkat Lunak Perangkat Lunak (software) merupakan suatu program yang dibuat oleh pembuat program untuk menjalankan perangkat keras komputer. Perangkat Lunak adalah program yang berisi kumpulan instruksi untuk melakukan proses pengolahan data. Software sebagai penghubung antara manusia sebagai pengguna dengan perangkat keras komputer, berfungsi menerjemahkan bahasa manusia ke dalam bahasa mesin sehingga perangkat keras komputer memahami keinginan pengguna dan menjalankan instruksi yang diberikan dan selanjutnya memberikan hasil yang diinginkan oleh manusia tersebut. Perangkat lunak terdiri dari kode-kode yang dibuat atau ditulis dalam bahasa pemrograman tertentu. Banyak bahasa pemrograman yang dapat dijadikan alat bantu untuk merancang sebuah perangkat lunak antara lain bahasa PASCAL, C, C++, BASIC, Java, HTML, PHP, JavaScript, AIML, dan bahkan tersedia tool yang berbasis grafis seperti Visual Basic, Visual C++, Borland Delphi, dan masih banyak lagi tool dan bahasa pemrograman lainnya. 2.3 Metode Analisis Yang digunakan 2.3.1 Flowchart Flowchart merupakan gambaran dalam bentuk diagram alir dari algoritma- algoritma dalam suatu program, yang menyatakan arah alur program tersebut. Hal 35 tersebut memungkinkan untuk memecah proses menjadi kejadian-kejadian individual atau aktifitas untuk menunjukan secara singkat hubungan diantaranya. Konstruksi flowchart memungkinkan pengertian lebih baik kepada proses dan pengertian yang lebih baik terhadap proses akan membawa kepada perbaikan pengembangan suatu sistem. Adapun simbol-simbol yang digunakan dalam flowchart, dapat dilihat dalam daftar simbol. 2.3.2 DFD (Data Flow Diagram) DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana data tersebut akan disimapan. DFD merupakan alat yang digunakan pada metodologi pengembangan sistem yang terstruktur, selain itu merupakan alat yang cukup popular dikarenakan dapat menggambarkan arus data dalam didalam sistem secara jelas dan terstruktur. Dalam mengembangkan suatu aliran data atau proses yang terjadi di dalam sistem data flow diagram menggunakan simbol-simbol yang memiliki arti tersendiri dalam menerangkan: a. Eksternal Entity Eksternal entity dapat merupakan kesatuan (entity) dilingkungan luar sistem yang dapat berupa orang, organisasi atau sistem lainnya, yang memberikan inputoutput dari sistem. 36 b. Data Flow Arus data ini mengatur diantara proses, simpan data, dan kesatuan luar. Arus data ini menujukkan arus data yang dapat berupa masukan sistem atau hasil proses sistem. c. Proses Untuk physical data flow diagram (PDFD), data dilakukan oleh orang, mesin atau komputer. Sedangkan untuk logical data flow diagram (LDFD), suatu proses hanya menujukkan proses dari komputer. d. Penyimpanan Data Simpanan data (data store) merupakan tempat penyimpanan data. Simpanan data dari DFD disimbolkan dengan sepasang garis horizontal paralel. Konsep dasar DFD dapat dilakukan dengan analisa Top Down, yaitu pemecahan sistem yang besar menjadi beberapa sub-sub sistem yang lebih kecil DFD terdiri dari : a. Context Diagram Diagram konteks yaitu diagram yang menunjukkan batas dan jangkauan dari sistem informasi yang dibuat. Merupakan gambaran sistem secara garis besar dengan entitas-entitas yang ada dan hanya memperlihatkan kelompok data input dan output. Konteks diagram merupakan level teratas dari diagram arus data . Diagram konteks adalah diagram tingkat atas yang merupakan diagram global dari sistem informasi yang menggambarkan aliran-aliran data dari entitas-entitas yang masuk dan yang keluar dari sistem. 37 b. Middle Level Merupakan pemecahan dari tiap–tiap proses yang mempunyai fungsi sama. Pada middle level diagram 1 dipecah menjadi diagram 2,3,4 dan seterusnya yang merupakan penguraian dari diagram konteks. c. Lowest Level (DFD Level Terendah), Diagram yang menunjukkan proses yang lebih detail dari level sebelumnya.Merupakan pemecahan dari data flow yang ada pada middle level. Pemecahan tersebut masih tetap mempunyai fungsi yang sama dari level sebelumnya. Untuk Lowest Level, pemberian nomor diagram terdiri dari bagian middle level. 2.3.3 Kamus Data (Data Dictionary) Kamus data adalah katalog fakta tentang data dan kebutuhan-kebutuhan informasi dari suatu sistem informasi. Dengan adanya kamus data, analisis sistem dapat mdendefinisikan data yang mengalir di dalam sistem dengan lengkap. Pada tahap perancangan sistem, kamus data dapat digunakan untuk merancang input, output, dan merancang database program. Kamus data dibuat berdasarkan arus data yang ada. 38 2.3.4 ERD (Entity Relationship Diagram) Model E-R didasarkan pada persepsi bahwa dunia nyata merupakan sekumpulan dari sejumlah objek dasar (entitas) dan relasi antar objek-objek data tersebut. Diagram yang menggambarkan struktur lojik keseluruhan basis data, simbol yang digunakan adalah Persegi empat, merepresentasikan himpunan entitas (untuk entitas lemah diberi garis ganda), Elips, merepresentasikan atribut, Wajik, merepresentasikan himpunan keterhubungan, Garis, menghubungkan simbol-simbol pada diagram. Label dari persegi empat, elips, dan wajik menunjukkan nama, Kardinalitas pemetaan dinyatakan dengan 2 cara : [Korth] garis berarah (1) dan garis tidak berarah (Banyak), [Date] menuliskan kardinalitasnya pada garis dan Peran dapat dituliskan sebagai label dari garis. Pemakaian elemen-elemen dalam ERD ada tiga diantaranya sebagai berikut: 1. Entity (Entitas) adalah sebuah objek yang dapat dibedakan dari objekobjek lainnya, yang memiliki sejumlah property atau atribut, dimana setiap atribut memiliki sekumpulan nilai yang diizinkan yang disebut domain, himpunnan entitas yaitu kumpulan jumlah entitas yang memiliki tipe yang sama dan sebuah basis data mengandung sekumpulan himpunan entitas yang masing-masingnya memiliki sejumlah entitas dari tipe yang sama. 2. Relationship (relasi) merupakan hubungan antar entitas yaitu sebuah relasi menggambarkan suatu asosiasi antar sejumlah entitas, himpunan relasi (Relationsip set) adalah kumpulan sejumlah relasi yang memiliki tipe yang 39 sama yang merupakan relasi matematis terhadap dua atau lebih himpunan entitas : {(e1, e2,…, en) ( e1 E1, e2 E2 ,…, en En)}, Jumlah entitas terlihat dalam 2 buah relasi disebut derajat. Kebanyakan relasi yang muncul adalah relasi binary, ada beberapa yang ternary, lebih dari itu sangat jarang, Fungsi sebuah entitas di dalam relasi disebut peran (role) dan Sebuah relasi dapat memiliki atribut. 2.4 Perangkat Lunak Pengembang 2.4.1 PHP PHP adalah bahasa scripting server – side, artinya bahasa yang digunakan pada server dengan tanpa perlu melakukan kompilasi tetapi cukup menuliskan tulisan dalam bentuk ASCII-nya saja. PHP sangat mirip dengan bahasa C, juga mempunyai karakteristik yang mirip dengan Perl. PHP dapat digunakan untuk mengolah data dari berbagai macam database, contoh struktur bahasa PHP adalah sebagai berikut : 2.4.2 MySQL MySQL merupakan susunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structure Query Language). Kendala dari suatu sistem database (DBMS) dapat diketahui dari cara kerja optimezernya dalam melakukan perintah-perintah SQL yang dibuat user ataupun program-program aplikasinya” 40 KAD[8]. Sebagai database server, MySQL dapat dikatakan lebih unggul dibanding database server lainnya dalam query data. MySQL adalah salah satu dari sekian banyak sistem database yang merupakan terobosan solusi yang tepat dalam aplikasi database. MySQL adalah multi user database yang menggunakan bahasa Strucktured Query Language (SQL). MySQL mampu menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL yaitu TcX, mengaku menyimpan data lebih dari 40 database, 10.000 tabel dan sekitar 7 juta baris, totalnya kurang lebih 100 Gigabyte data. SQL adalah bahasa standar yang digunakan untuk mengakses database server. Bahasa ini pada awalnya dikembangkan oleh IBM, namun telah diadopsi 25 dan digunakan sebagai standar industri. Dengan menggunakan SQL, proses akses database menjadi lebih user friendly dibandingkan dengan menggunakan dBASE atau Clipper yang masih menggunakan perintah - perintah pemrograman.MySQL merupakan software database yang paling populer di lingkungan Linux, kepopuleran ini karena ditunjang performa query dari databasenya yang saat ini bisa dikatakan paling cepat dan jarang bermasalah. MySQL ini juga sudah dapat berjalan pada lingkungan Windows. Perintah untuk mengelola database dibagi menjadi 3 (tiga ) kelompok, diantaranya : 1. Perintah untuk mendefinisikan data/DDL (Data Definition Language). 2. Perintah untuk memanipulasi data/DML (Data Manipulation Language). 3. Perintah untuk mengendalikan data/DCL (Data Control Language). 41 2.5 Basis Data Basis data terdiri dari dua kata yaitu basis dan data. Basis dapat diartikan sebagai gudang tempat berkumpul. Sedangkan data adalah represebtasi fakta dunia nyata yang mewakili objek seperti manusia, barang, hewan, peristiwa konsep, yang nyatakan dalam bentuk angka, huruf, simbol teks, gambar, bunyi atau kombinasinya. Basis data dapat didefinisikan dari beberapa sudut pandang diantaranya sebagai berikut : 1. Sekumpulan data persistence (data disimpan defile sekunder atau data yang tahan lama) yang saling terkait, menggambarkan suatu organisasi (enterprise). 2. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasikan sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 3. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikina rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 4. Kumpulan file atau arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. 2.5.1 Tujuan basis data Tujuan basis data adalah sebagai berikut : 42 1. Kemudahan dan kecepatan dalam pengambilan kembali data atau arsip. 2. Efisiensi ruang dan waktu 3. Keakuratan data 4. Ketersediaan untuk proses pengambilan data yang diperlukan setiap saat 5. Kelengkapan data-data yang diperlukan atau yang tersimpan 6. Keamanan data 7. Kebersamaan 2.5.2 Keuntungan Basis data 1. Mereduksi redudansi yang akibatnya mengurangi inkonsistensi. 2. Data dapat dishare antar aplikasi. 3. Standarisasi data dapat dilakukan. 4. Batasan security dapat diterapkan. 5. Mengelola integritas (keterjaminan akurasi) data. 6. Menyeimbangkan kebutuhan yang saling konflik. 7. Independensi data (objektif DBS) : kekebalan aplikasi terhadap perubahan struktur penyimpanan dan teknik pengaksesan data (basis data harus dapat berkembang tanpa mempengaruhi aplikasi yang telah ada). BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem Analisis dilakukan dengan tujuan untuk mengidentifikasi dan mengevaluasi seluruh komponen yang terkait dengan sistem yang akan dibangun. Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan pada tahap ini akan menyebabkan kesalahan pada tahap selanjutnya. Tahap analisis sistem dilakukan dengan cara menguraikan suatu sistem yang utuh kedalam bagianbagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan sehingga ditemukan kelemahan dan keuntungan pada sistem tersebut, sehingga dalam membangun aplikasi menjadi lebih mudah dari hasil analisis sistem yang lama. Analisis sistem ini akan menghasilkan beberapa data dan fakta yang akan dijadikan bahan uji dan analisis menuju pengembangan dan penerapan sebuah aplikasi sistem yang diusulkan. 3.1.1 Analisis Masalah Permasalahan utama pada tempat penelitian adalah ketidak efektifan aplikasi chatting yang digunakan, dimana pengguna pencari informasi menggantungkan informasi yang didapat dari operator yang online. Hal ini dapat menyebabkan penundaan penyampaian informasi dari operator ke pengguna pencari informasi atau bahkan pertanyaan yang diajukan tidak dijawab oleh operator, karena banyaknya pengguna yang bertanya. 43 44 Selain itu aplikasi chat bot yang pernah ada di tempat penelitian yaitu chat bot MILA, tidak berbasiskan web, sehingga penyampaian informasi hanya dibatasi di sekitar lingkungan UNIKOM saja. Gambar 3.1 Skema Knowledge Based System Pada Chat Bot MILA Dari gambar diatas dapat dijelas sebagai berikut : 1. Pengguna menginputkan string bahasa alami ke program chat bot yang berada dilingkungan Universitas Komputer Indonesia. 2. Program memproses data input dari pengguna menjadi bahasa yang dapat dimengerti oleh komputer. 3. Program komputer menyesuaikan input pengguna dengan pattern dari database. 4. Program chat bot memberikan respon ke pengguna. Sedangkan dalam membangun sebuah perangkat lunak Natural Language Processing untuk pembuatan aplikasi chat bot berbasis web ini terdapat beberapa permasalahan yang harus ditangani adalah sebagai berikut : 1. Menjadikan bahasa alami atau bahasa yang dipakai oleh manusia sebagai bahasa perantara yang menghubungkan interaksi antara manusia dengan komputer (chat bot). 45 2. Pemrosesan bahasa alami yang dapat memahami kalimat yang mempunyai ambiguitas. Ambiguitas kalimat dapat terjadi saat dua kalimat atau lebih yang berbeda memiliki arti yang sama. Masalah utama yang menyebabkan terjadinya ambiguitas pada kalimat adalah saat ini penggunaan bahasa Indonesia tidak selalu terpaku pada pola yang baku. Maksud dari pernyataan ini adalah dalam kehidupan pergaulan sehari-hari pada saat ini para pengguna bahasa Indonesia tidak terlalu terpaku pada susunan subjek, predikat, ataupun objek (S,P,O), selain itu penggunaan sinonim atau kata-kata yang memiliki bentuk berbeda namun memiliki arti yang sama atau mirip sering kali digunakan. Dengan adanya kebebasan berbahasa seperti ini memungkinkan terbentuk banyak pola kalimat baru yang sebenarnya memiliki maksud atau arti yang sama. Contoh dari kasus ini adalah sebagai berikut: Tabel 3.1 Penggunaan ambiguitas kalimat dan sinonim. Input Respon Siapa nama kamu ? Nama aku T-ara Nama kamu siapa ? Nama aku T-ara Kamu siapa ? Nama aku T-ara Siapa kamu ? Nama aku T-ara Panggilan kamu apa ya ? Nama aku T-ara Aku panggil kamu apa ya ? Nama aku T-ara 46 3. Dalam sebuah percakapan antara chat bot dengan pengguna mungkin saja alur pembicaraan menjadi sangat meluas. Dikarenakan terbatasnya pengetahuan pada brain file maka diperlukan kemampuan bagi chat bot untuk mengalihkan topik pembicaraan sehingga pengguna tidak membicarakan hal-hal yang tidak dikuasai chat bot. 4. Agar interaksi antara pengguna dengan chat bot layaknya berinteraksi antar sesama manusia, diperlukan kemampuan bagi chat bot untuk memberikan respon yang berbeda dan merespon pertanyaan atau pernyataan yang sama dari pengguna. Contoh dari kasus ini adalah sebagai berikut : Apa kabar ? Kabarku baik-baik saja. Apa kabar ? ....? Apa kabar ? Mengapa kamu mengulangi perkataanmu ? Ok Ok. Apa kabar ? Baik-baik saja. Dari percakapan di atas dapat dilihat bahwa chat bot memberikan respon terhadap pertanyaan ”Apa kabar ?” yang diulang beberapa kali dengan mengomentari atau bertanya kembali inputan yang sama dari 47 pengguna. Selain itu chat bot akan memberikan respon yang berbeda dari pertanyaan tersebut. Dengan adanya kemampuan chat bot untuk merespon pertanyaan atau pernyataan yang sama dari pengguna seperti contoh di atas, maka chat bot tidak akan terkesan statis dan pengguna tidak akan merasa bosan. 5. Kepintaran chat bot ditentukan melalui pengetahuan (Knowledge) yang ada dalam brain file. Semakin banyak pengetahuan yang ada dalam brain file maka akan semakin pintar chat bot tersebut. Maka diperlukan sebuah proses learning agar brain file pada chat bot agar pengetahuan chat bot dapat dimanipulasi. 3.1.2 Analisis Masukan Pada pembuatan chat bot berbasis web berbahasa indonesia ini, ada beberapa hal yang tidak dapat diimplementasikan kedalam sistem, seperti penggunaan stemming. 3.1.2.1 Stemming Stemming merupakan suatu proses untuk menemukan kata dasar dari sebuah kata dengan menghilangkan imbuhan dari kata tersebut. Penggunaan imbuhan pada suatu kata dalam aturan tata bahasa indonesia dirasa penting karena suatu kata akan memiliki makna yang berbeda dengan kata dasarnya misalnya kata perwalian dengan wali memiliki makna yang berbeda, perwalian merupakan kata kerja, sedangkan wali merupakan pelaku. Oleh karena itu proses 48 menghilangkan imbuhan pada suatu kata atau disebut dengan Stemming tidak cocok diterapkan pada aplikasi chat bot. 3.1.3 Analisis Data Sebagaimana telah dijelaskan pada batasan masalah, chat bot mampu untuk memberikan data atau informasi seputar lingkungan jurusan Teknik Informatika. Adapun detail informasi yang dapat diberikan oleh chat bot adalah sebagai berikut: 1. Informasi umum mengenai UNIKOM seperti : a. Kepanjangan UNIKOM, visi, misi, tujuan dan motto UNIKOM b. Ruangan-ruangan yang ada di gedung UNIKOM. c. Fakultas dan program studi yang ada. d. Nama rektor dan nama dekan setiap fakultas. 2. Informasi seputar perkuliahan di UNIKOM a. Penilaian prestasi akademik mahasiswa. b. Informasi mengenai alih jurusan dan alih program studi. c. Informasi mengenai batas waktu studi. d. Informasi mengenai pindahan dari perguruan/ institusi lain. e. Informasi mengenai perwalian. f. Persyaratan jumlah sks yang dapat diambil. g. Standarisasi kelulusan dan yudisium kelulusan. h. Sanksi-sanksi akademik. i. Informasi mengenai tidak aktif kuliah dan aktif kembali. j. Ketentuan dan prosedur pindah jurusan. 49 k. Ketentuan dan prosedur pengunduran diri. l. Ketentuan dan prosedur cuti akademik. m. Informasi dan prosedur registrasi. n. Kode etik mahasiswa UNIKOM 3.1.4 Model Kerja Sistem Program Perancangan bot program merupakan salah satu bagian penting dalam pembuatan chat bot berbasis web ini, pada tahap ini digambarkan bagaimana sebuah aplikasi berjalan. 3.1.4.1 Prosedur Tiara Prosedur TIARA (Technology of Automatic Responses) merupakan prosedur utama di mana semua dialog dengan lawan bicaranya dilakukan. Berikut adalah Gambar 3.2 dari prosedur dari program chat bot Tiara : 50 Start Tampilkan halaman Home Input kata Tekan enter Panggil bot program Tampilkan Respon Ya Input lagi Tidak Tekan Tombol Help Tekan Tombol About Tampil halaman help Tampil halaman about Selesai Gambar 3.2 Model Prosedur Tiara 51 3.1.4.2 Model Kerja Global Bot Program Pada bagian ini merupakan gambaran bagaimana bot program menangani percakapan antara pengguna dengan chat bot, sehingga aplikasi dapat berjalan dengan baik. Inputan yang diberikan oleh pengguna berupa bahasa alami (Natural Language) akan melalui proses parsing yaitu memecah kalimat menjadi tokentoken array, kemudian bot program akan mencari pola kalimat atau pattern (keyword) yang sesuai dengan database (brain file) untuk menentukan respon yang tepat untuk disampaikan kepada pengguna. Bot program terlebih dahulu akan memerisa apakah inputan pengguna sama dengan yang sebelumnya atau tidak jika pengguna menginputkan kalimat yang sama maka bot program akan meresponnya, kemudian jika tidak ditemukan pola kalimat atau pattern yang dimaksud, maka bot program akan memberikan respon atau menanyakan kembali apa yang ditanyakan pengguna, untuk mengalihkan topik pembicaraan. Pada perancangan bot program Tiara ini juga diberikan kemampuan bagi chat bot untuk menambah respon baru, jika pola kalimat atau pattern tidak ada dalam brain file. Berikut adalah flowchart rancangan global chat bot Tiara : 52 Start Terima input pengguna Panggil fungsi pengalih respon kemudian simpan input pengguna kedalam catatan_percakapan Solusi pencocokan pattern dengan teks Tidak Cek pattern dalam brain file Berikan respon pengalih ke pengguna Ada Cek input user yang baru diinputkan dengan input user sebelumnya Input respon baru ? Ya Ya Sama Panggil fungsi untuk Input yang sama Olah data respon baru oleh admin/ Botmaster Cek pola input user Simpan hasil input bersama dengan respon ke dalam brain file Tidak sama Ambil Respon yang sesuai Tampilkan respon Tidak Input lagi tidak Percakapan selesai Gambar 3.3 Rancangan Global Chat Bot T-ARA 53 3.1.4.3 Analisis Parsing Proses parsing (penguraian kalimat) merupakan proses yang dilakukan untuk menterjemahkan masukan dari pengguna agar dapat dimengerti oleh sistem. Secara default, seluruh kalimat masukan pengguna yang dimasukan akan dianggap sebagai kata-kata yang harus ada pada data yang akan dicari. Misal pengguna memasukan kalimat sebagai berikut : Penggunaan bahasa alami Maka sistem akan melakukan pencarian data pada dokumen yang memiliki kata bahasa atau alami. Artinya jika terdapat dokumen yang mengandung kata bahasa inggris maka dokumen tersebut dianggap sesuai dengan yang dicari pengguna, karena mengandung kata bahasa. Hal ini membuat pengguna yang ingin mencari informasi mengenai bahasa alami akan mendapatkan hasil yang tidak sesuai dengan yang diinginkan. Jika pengguna ingin melakukan proses pencarian yang lebih spesifik, agar informasi yang didapat lebih tepat sasaran, maka pengguna haru mengikuti aturan proses penguraian kalimat yang dimiliki sistem, yaitu : a-z,’ ’,A-Z,0-9 Q0 a-z,’ ’,A-Z,0-9 Q1 Gambar 3.4 Finite State Automata Proses Parsing 54 Konfigurasi FSA diatas secara formal dinyatakan sebagai berikut : Q = {Q0, Q1} ∑ = {a-z,‟ „,A-Z,0-9} S = Q0 F = {Q1} Fungsi transisi yang ada sebagai berikut : (Q0, a-z|‟ „|A-Z|0-9) = Q1 (Q1, a-z|‟ „|A-Z|0-9) = Q1 Fungsi tersebut bisa disajika dalam table transisi berikut : Table 3.2 Tabel Transisi  a-z|‟ „|A-Z|0-9 Q0 Q1 Q1 Q1 Dari diagram state gambar 3.4, didapat aturan produksi sebagai berikut: S -> aA..zA| AA..ZA | 0A-9A|A|a..Z|A..Z|0..9| A -> aA..zA| AA..ZA |0A-9A| A|a..Z|A..Z|0..9| Dimana secara formal dapat ditulis : V = {S, A} T = {a-z,‟ „ A-Z,0-9} P = {S->aA..zA|AA..ZA|0A..9A|A|a..Z|A..Z|0..9|, A->aA..zA| AA..ZA |0A..9A|A|a..Z|A..Z|0..9|} S=S 55 Aturan produksi diatas menggunakan left to right sehingga jika pengguna memasukan pertanyaan “hai juga”, maka proses akan dilakukan dari depan (left) ke belakang (right), seperti berikut: : S -> hA S -> haA S -> haiA S -> hai A S -> hai jA S -> hai juA S -> hai jugA S -> hai jugaA S -> hai juga Pada proses di atas setiap kalimat atau kata akan dipecah menjadi perbagian karakter dalam bentuk array. 56 3.1.4.4 Flowchart Penulusuran Pattern Pencarian pattern dilakukan saat chat bot menerima inputan berupa teks dari pengguna. Dimana list_pattern didefinisikan sebagai daftar pattern yang ada dalam database, P merupakan pattern, S merupakan banyaknya pattern yang ada, dan bestKey diinisialisasikan sebagai variable kosong. Berikut ini flowchart bagaimana sistem melakukan penulusuran pattern pada database. Start Terima input dari pengguna, kemudian tentukan panjang teks tidak ibestKey.length) Cari pattern berikutnya I = I +1 ya bestKey =thisKey Tidak belum List pattern kata kunci habis sKeyWord =bestKey Respons bot Selesai Gambar 3.5 Flowchart Penulusuran Pattern 57 1. Sistem akan membandingkan semua pattern yang ada dalam database satu persatu dengan teks pengguna. 2. Pencocokan pattern pada teks dilakukan dengan menggunakan algoritma brute force 3. Jika ditemukan kecocokan pattern pada teks, maka langkah berikutnya adalah 5a. 4. Bandingkan pattern berikutnya. 5. Jika ditemukan kecocokan pattern pada teks maka lakukan : a. Isi variable thisKey dengan pattern yang baru ditemukan. b. Bandingkan panjang karakter isi variable thisKey dengan panjang karakter isi variable bestKey. c. Jika panjang karakter isi variable thisKey lebih besar maka pindahkan isi variable thisKey ke variable bestKey (jika perbandingan panjang karakter variable thisKey dengan variable bestKey sama besar maka karakter pattern yang dipilih berdasarkan urutan paling akhir dari database (descending)). 6. Jika tidak ditemukan ketidakcocokan dengan pattern dengan teks maka lakukan pencocokan pattern berikutnya. 7. Jika list pattern berikutnya masih ada ulangi langkah 4, jika semua pattern sudah diperiksa maka variable bestKey yang ditemukan adalah keyword. 58 3.1 4.5 Flowchart Algoritma Brute Force Salah satu algoritma dalam penyelesaian aplikasi chat bot ini adalah algoritma Brute Force. Dimana N didefinisikan sebagai panjang teks dan M didefinisikan sebagai panjang pattern. Start S=0 Pencocokan pattern dilakukan pada awal teks S ≤ (n-m) and ketemu = false ya Tidak J=1 J ≤ m and P[j] = T[s+j] ya ya J=M Ketemu Tidak Selesai tidak J=J+1 S=S+1 Gambar 3.6 Flowchart Algoritma Brute Force 59 Cara Kerja Algoritma Brute Force : 1. Mula-mula pattern dicocokan pada awal teks. 2. Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam pattern dengan karakter yang bersesuaian di dalam teks sampai : a. Semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau b. Dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil) 3. Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2. 60 3.1.4.6 Contoh Implementasi Algoritma Brute Force Berikut ini merupakan contoh bagaimana sistem berjalan pada aplikasi chat bot ini. Dimana isi brain file memiliki 3 pattern dan teks dari pengguna adalah ”SIAPA REKTOR UNIKOM YAH”. Diketahui : Teks yang diinputkan pengguna : ”SIAPA REKTOR UNIKOM YAH”. Daftar Pattern dapat dilihat pada tabel 3.3 : Tabel 3.3 Tabel Daftar Pattern Yang Ada Dalam Database 1. Sistem akan membandingkan semua pattern yang ada dalam database satupersatu dengan teks pengguna, pencocokan pattern dengan teks dilakukan dengan algoritma brute force. 2. Pada implementasi algoritma brute force, perulangan satu pattern dilakukan dengan perhitungan (panjang karakter teks – panjang karakter pattern) + 1. Contoh : Teks : ”SIAPA REKTOR UNIKOM YAH”, panjang karakter adalah 23 dari teks 61 a. Pencarian Untuk Pattern Pertama Yaitu ”REKTOR” Diketahui : Panjang karakter ”REKTOR” adalah 6. Banyak perulangan adalah (panjang karakter teks - panjang karakter pattern) + 1 sehingga (23 - 6) + 1 = 18 Tabel 3.4 Tabel Contoh Implementasi Algoritma Brute Force Pencarian Pattern 1 1. Pada pencarian ditemukan pattern ”REKTOR” pada teks sehingga simpan pattern pada variabel thisKey. thisKey ← “REKTOR”. 2. Bandingkan panjang karakter isi variabel bestKey dengan isi variabel thisKey (nilai pertama bestKey adalah ” ”). 3. Karena panjang karakter thisKey lebih besar dibandingkan panjang karakter bestKey, maka isi variabel bestKey dengan thisKey. 4. Sehingga bestKey ← “REKTOR”. 62 b. Pencarian Untuk Pattern Kedua Yaitu ”REKTOR UNIKOM” Diketahui : Panjang karakter ”REKTOR UNIKOM” adalah 13. Banyak perulangan adalah (panjang karakter teks - panjang karakter pattern) + 1 sehingga (23 - 13) + 1 = 11 Tabel 3.5 Tabel Contoh Implementasi Algoritma Brute Force Pencarian Pattern 2 1. Pada pencarian ditemukan pattern”REKTOR UNIKOM” pada teks sehingga simpan pattern pada variabel thisKey. thisKey ← “REKTOR UNIKOM”. 2. Kemudian bandingkan panjang karakter yang dimiliki variabel bestKey dengan variabel thisKey (nilai bestKey yang ada adalah ”REKTOR”). 3. Karena panjang karakter thisKey lebih besar dibandingkan panjang karakter bestKey, maka isi variabel bestKey dengan thisKey. 4. Sehingga bestKey ← “REKTOR UNIKOM”. 63 c. Pencarian Untuk Pattern Ketiga Yaitu ”SINGKATAN UNIKOM” Diketahui : Panjang karakter ”SINGKATAN UNIKOM” adalah 13. Banyak perulangan adalah (panjang karakter teks - panjang karakter pattern) + 1 sehingga (23 - 16) + 1 = 8 Tabel 3.6 Tabel Contoh Implementasi Algoritma Brute Force Pencarian Pattern 3 Pada pencarian tidak ditemukan pattern ”SINGKATAN UNIKOM” pada teks. Maka pattern ”SINGKATAN UNIKOM” tidak diinputkan pada variabel thisKey. Sehingga nilai bestKey tetap ”REKTOR UNIKOM”. bestKey ← ”REKTOR UNIKOM”. Karena semua pattern sudah dibandingkan dengan teks maka nilai bestKey terakhir yang didapatkan dari proses diatas adalah keyword dari teks pengguna. sKeyword ← bestKey sKeyword ← ”REKTOR UNIKOM” 64 3.1.5 Analisis Basis Data Analisis basis data adalah kegiatan menganalisis data yang akan diolah dan disimpan dalam database. Dalam analisis ini direpresentasikan dari mana data berasal dan atribut dari data tersebut. Basis data merupakan kumpulan data yang saling berkaitan satu dengan lainnya yang direalisasikan dengan relation key yang digambarkan dalam entity relationship diagram (ERD). Adapun ERD yang terbentuk adalah sebagai berikut Tb_stoplist Id_stoplist input Catatan_percakapan N N Mengelola mengelola 1 1 Kata_kunci Id_admin Bot_resp N Mengelola 1 User 1 Mengelola respons N noKey_Respon Gambar 3.7 ERD Aplikasi Natural Language Processing Chat Bot Berbasis Web 65 3.1.6 Analisis Kebutuhan Nonfungsional Kebutuhan non fungsional adalah usulan yang direkomendasikan kepada pengguna agar perangkat lunak yang akan dibangun menjadi user friendly dan perangkat keras yang mendukung secara maksimal terhadap kinerja perangkat lunak. 3.1.6.1 Analisis Perangkat Keras Perangkat keras adalah seluruh komponen atau unsur peralatan yang digunakan untuk menunjang pembangunan aplikasi. Adapun perangkat keras yang digunakan untuk pemakaian aplikasi ini secara optimal memerlukan spesifikasi minimum komputer sebagai berikut : 1. Processor dengan kecepatan minimal 1 GHz+ Motherboard 2. Kapasitas Hardisk minimal 40 GB 3. VGACard minimal 64 MB 4. RAM minimal 256 MB 5. Monitor 6. Lan Card 10/100 Mbps 7. Koneksi internet minimal 64 Kbps 8. Mouse 9. Keybord 3.1.6.2 Analisis Perangkat Lunak Spesifikasi perangkat lunak yang dibutuhkan agar aplikasi dapat berjalan adalah sebagai berikut : 1. WAMP Server sebagai Web Server 2. Adobe Dreamweaver sebagai editor PHP 3. MySQL sebagai DBMS 66 4. Tool antarmuka design Microsoft Visio 2007 5. Google Chrome sebagai browser 3.1.6.3 Analisis Pengguna Analisis pengguna aplikasi ini memiliki karakteristik antara lain : 1. Admin a. Memiliki hak akses terhadap keseluruhan aplikasi b. Terbiasa menggunakan komputer c. Menguasai bahasa pemograman PHP dan Javascript 2. Masyarakat umum a. User hanya menginputkan teks untuk berinteraksi dengan chat bot 3.1.7 Analisis Kebutuhan Fungsional 3.1.7.1 Diagram Konteks Diagram konteks adalah diagram yang menggambarkan masukan, proses dan keluaran secara umum yang terjadi pada sistem. Diagram konteks untuk aplikasi Natural Language Processing pada chat bot berbasis web dapat digambarkan sebagai berikut : 67 SuperAdmin Data_login_superadmin Data_admin Data_bot_resp, Data_nokey_respon Data_tb_stoplist Data_catatan_percakapan Info_login_superadmin Info_admin Info_bot_resp Info_nokey_respon Info_tb_stoplist Info_catatan_percakapan Data_text pengunjung Pengunjung Info_bot_resp Info_nokey_respon Pembangunan aplikasi Natural Language Processing untuk pembuatan chatbot berbasis web Data_login_admin Data_bot_resp, Data_nokey_respon Data_tb_stoplist Data_catatan_percakapan Info_login_admin Info_bot_resp Info_nokey_respon Info_tb_stoplist Info_catatan_percakapan Admin Gambar 3.8 Diagram Konteks 3.1.7.2 DFD (Data Flow Diagram) Data Flow Diagram merupakan suatu media yang digunakana untuk menggambarkan aliran data yang mengalir pada suatu sistem. DFD aplikasi natural language processing untuk pembuatan chat bot yang diusulkan terdiri dari beberapa bagian, berikut data flow diagram selengkapnya : 68 1. DFD Level 0 Data login superadmin Info_login_admin Data Login admin Info login superadmin 1.0 Login Info_login_superadmin Data Login Superadmin Data login superadmin Info_login admin Info_admin Info admin 2.0 Pengolahan Data admin Data admin Data admin Admin Data login Info_bot_resp, Info_noKey_respon, Info_catatan_percakapan Info tb_stoplist Super Admin Data_Bot_Resp Info_bot_resp 3.0 Pengolahan Data brain file · · · Bot_resp Data_bot_resp Data_noKey_respon Data_catatan_percakapan Data_NoKey_respon Info_NoKey_respon NoKey_respon Tb_stoplist Data_Catatan_percakapan Info_bot_resp, Info_Nokey_respon, Info_catatan_percakapan Info_catatan_percakapan Admin Catatan_percakapan · · · Data_bot_resp Data_noKey_respon Data_catatan_percakapan Info_bot_resp Data_catatan_Percakapan Pengunjung data_text pengunjung 4.0 NLP Info_noKey_respon Info tb_stoplist Info_bot_resp Info_nokey_resp Gambar 3.9 DFD Level 0 69 2. DFD Level 1 Proses 1 (Pengolahan Data Admin) Data_admin Info_admin 2.1 Tambah data admin Data_admin Info_admin Admin Data_admin Super admin Data_admin Info_admin 2.2 Edit data admin Info_admin Data_admin Info_admin admin Data_admin diedit Info_admin Data admin 2.3 Hapus data admin Data admin Data admin Info admin Gambar 3.10 DFD Level 1 Pengolahan Data Admin 70 3. DFD Level 1 Proses 3 (Pengolahan Data Brainfile) Info_bot_resp Data_bot_resp Info_bot_resp 3.1 Pengolahan Data bot_resp Data_bot_resp Data_noKey_respon Super admin Info_bot_resp Bot_resp Data_noKey_respon Info_noKey_respon Data tb_stoplist 3.2 Pengolahan Data noKey_respon Info_noKey_respon noKey_respon Data_catatan_percakapan Data_catatan_percakapan Info_catatan_percakapan 3.3 Pengolahan data catatan_percakapan Info_catatan_percakapan Catatan_perkapan Info tb_stoplist Data input text pengunjung Data_bot_resp Pengunjung Data tb_stoplist Info tb_stoplist 3.4 Pengolahan data tb_stoplist Data tb_stoplist Info_tb_stoplist admin Data_noKey_respon Info_noKey_respon Data_catatan_percakapan Info_catatan_percakapan Gambar 3.11 DFD Level 1 Proses 3 (Pengolahan Data Brain File) Tb_stoplist 71 4. DFD Level 2 Proses 3.1 (Proses Pengolahan Data Bot_resp) Data_bot_resp Info_bot_resp Data_BotResp Info_bot_resp 3.1.1 Tambah data bot_resp Data_bot_resp Info_bot_resp Data_bot_resp Data_bot_resp Super admin Data_bot_resp 3.1.2 Cari data bot_resp Info _bot_resp Bot_resp Data_bot_resp Info_bot_resp Data_bot_resp 3.1.3 Edit data bot_resp Info__bot_resp Data_bot_resp Info_bot_resp 3.1.4 Hapus data bot_resp Data_bot_resp Data_bot_resp admin Info_bot_resp Info_bot_resp Gambar 3.12 DFD Level 2 Proses 3.1 (Proses Pengolahan Data Bot_resp) 72 5. DFD Level 2 Proses 3.2 (Proses Pengolahan Data NoKey_Respon) Data_noKey_respon Info_noKey_respon Data_noKey_respon 3.2.1 Tambah data noKey_respon Data noKey_respon Data_noKey_respon Data noKey_respon 3.2.2 Cari data noKey_respon Info_noKey_respon Super admin noKey_respon Data_noKey_respon Info_noKey_respon 3.2.3 Edit data noKey_respon Info_noKey_respon Info_noKey_respon Data_noKey_respon Data_noKey_respon Data_noKey_respon admin 3.2.4 Hapus data noKey_respon Data_noKey_respon Info_noKey_respon Info_noKey_respon Data_noKey_respon Info_noKey_respon Gambar 3.13 DFD Level 2 Proses Pengolahan Data NoKey_Respon 73 6. DFD Level 2 Proses 3.3 (Pengolahan Data Catatan Percakapan) Data_bot_resp Superadmin Info__bot_resp Info_bot_resp Data_bot_resp Admin Info_bot_resp 3.3.1 Tambah data bot_resp, dan Hapus data catatan_percakapan Data catatan_percakapan Info_catatan percakapan Info__catatan percakapan Data catatan_percakapan Data_BotResp Bot_resp Info_catatan percakapan 3.3.2 Hapus data catatan_percakapan Data_catatan Catatan_percakapan Info_catata percakapan Gambar 3.14 DFD Level 2 Proses 3.4 (Proses Learning) 74 DFD Level 2 Proses 3.4 (Proses Pengolahan Data Tb_stoplist) 7. Data_tb_stoplist Info_tb_stoplist 3.4.1 Tambah data tb_stoplist Data_tb_stoplist Info_tb_stoplist Data_tb_stoplist Info_tb_stoplist Info_tb_stoplist 3.4.2 Edit data tb_stoplist Info_tb_stoplist Super admin tb_stoplist Data_tb_stoplist Info_tb_stoplist 3.4.3 Hapus data tb_stoplist Data_tb_stoplist Data_tb_stoplist Info_tb_stoplist Data_tb_stoplist admin Info tb_stoplist Gambar 3.15 DFD Level 2 (Proses Pengolahan Data Tb_stoplist) 3.1.8 Spesifikasi Proses 3.7 Tabel Spesifikasi Proses No. 1. Proses Keterangan No.Proses 1.0 Nama Proses Login Source (sumber) Superadmin, Admin Input Data login superadmin, data login admin Output Info login superadmin, info admin 75 Destination (tujuan) Superadmin, Admin Logika Proses 2. 1. sistem menampilkan form login 2. superadmin atau admin mengisi data login pada form login 3. apabila data login valid sistem akan menampilkan halaman akun superadmin untuk superadmin sedangkan untuk admin sistem akan menampilkan halaman akun admin 4. apabila data login tidak valid, sistem akan menampilkan pesan kesalahan dan meminta superadmin atau admin untuk memasukan kembali data login pada form login No. Proses 2.0 Nama Proses Pengolahan Data Admin Source Superadmin Input Data admin output Info Admin Destination Superadmin Logika Proses 1. Superadmin memilih menu pengolahan data admin yang terdiri dari : a. Tambah b. Edit c. Hapus 2. superadmin memilih menu 3. jika superadmin memilih tambah maka ke proses 2.1 4. jika superadmin memilih edit maka ke proses 2.2 5. jika superadmin memilih hapus maka ke proses 2.3 76 3. No. Proses 3.0 Nama Proses Pengolahan Data Brainfile Source Superadmin, Admin Input - Data Bot_resp Data NoKey_respon Data catatan_percakapan Data tb_stoplist Ouput - Info Bot_resp Info NoKey_Respon Info catatan_percakapan Info tb_stoplist Destination Superadmin, admin Logika Proses 4. 1. User memilih menu data brainfile yang terdiri dari a. Pengolahan data bot_resp b. Pengolahan data nokey_resp c. Pengolahan data catatan_percakapan d. Pengolahan data tb_stoplist No. Proses 4.0 Nama Proses NLP Source Pengujung web Input Data text pengunjung Output info Bot_resp, info nokey_resp Destination catatan_percakapan Logika proses 1. Sistem menampilkan halaman depan pengunjung 2. Pengunjung menginputkan data text di 77 bagian form untuk chatting 3. Jika text yang diinputkan memilki pattern maka tampilkan info bot_resp 4. Jika text yang diinputkan tidak memiliki pattern tampilkan info nokey_resp 5. No. Proses 2.1 Nama Proses Tambah Data Admin Source Superadmin Input Data Admin Output Informasi admin yang telah ditambah Destination Superadmin Logika Proses 6. 1. 2. 3. 4. 5. Sistem menampilkan form tambah admin Superadmin mengisi data admin baru Superadmin mengklik tombol simpan Validasi data admin Jika data admin yang dimasukan valid maka tampilkan pesan data sudah tersimpan 6. Jika data admin yang dimasukan tidak valid maka tampilkan pesan galat No. Proses 2.2 Nama Proses Edit Data Admin Source Superadmin Input Data admin Output Informasi admin yang telah diedit Destination Superadmin 78 Logika Proses 1. Anggota sudah login sebagai admin atau superadmin 2. Jika login sebagai superadmin maka data profile semua dapat diubah 3. Jika login sebagai admin maka data yang diubah hanya data profile admin yang login saja. 4. Anggota memilih menu edit profile 5. Apabila data tidak kosong maka data baru akan disimpan didalam database 6. Apabila data ada yang kosong maka akan ada informasi data tidak boleh kosong dan data yang kosong harus diisi 7. Sistem menampilkan info profile anggota yang telah diubah 6. 7. No. Proses 3.1 Nama Proses Pengolahan Data Bot_resp Source Superadmin, Admin Input Data Bot_resp Output Info Bot_resp Destination Superadmin, admin Logika Proses 1. Superadmin atau admin memilih menu pengolahan data bot_resp yang terdiri dari : a. b. c. d. Tambah Cari Edit Hapus 2. Jika superadmin atau admin memilih tambah maka ke proses 3.1.1 3. Jika superadmin atau admin memilih cari maka ke proses 3.1.2 4. Jika superadmin atau admin memilih ubah maka ke proses 3.1.3 79 5. Jika superadmin atau admin memilih hapus maka ke proses 3.1.4 No. Proses 3.2 Nama Proses Pengolahan Data Nokey_respon Source Superadmin, admin Input Data Nokey_respon yang akan ditambah, diedit, dan dihapus Output Informasi Nokey_respon yang telah ditambah, diedit, dan dihapus 8. Destination Superadmin, Admin Logika Proses 1. superadmin atau admin memilih menu pengolahan nokey_respon yang terdiri dari : a. b. c. d. Tambah Cari Edit Hapus 2. Jika superadmin atau admin menekan tambah maka ke proses 3.2.1 3. Jika superadmin atau admin menekan cari maka ke proses 3.2.2 4. Jika superadmin atau admin menekan edit maka ke proses 3.2.3 5. Jika superadmin atau admin menekan hapus maka ke proses 3.2.4 No. Proses 3.3 Nama Proses Pengolahan data Catatan_percakapan 80 Source 9. Input 1. Data text pengunjung web 2. Data catatan_percakapan yang akan diedit dan dihapus di proses learning Output 1. Informasi catatan_percakapan yang sudah ditambah oleh pengunjung 2. Informasi yang sudah diedit dan dihapus oleh admin Destination Logika Proses 10. Pengunjung, Superadmin, Admin Superadmin, Admin 1. sistem menampilkan halaman utama pengunjung 2. Pengunjung menginputkan text di dalam form 3. jika input text yang dimasukan pengunjung tidak mempunyai pattern kemudian tambah input text pengunjung ke catatan_percakapan 4. Data catatan_percakapan yang ada, diedit untuk dimasukan kedalam Bot_resp, kemudian data yang diedit akan terhapus setelah masuk Bot_resp. No. Proses 3.1.1 Nama Proses Tambah Data Bot_resp Source Superadmin, Admin Input Data Bot_resp Output Info Bot_resp Destination Superadmin, Admin Logika Proses 1. sistem menampilkan form isi data bot_resp baru. 2. Superadmin atau admin mengisi data 81 bot_resp . 3. Superadmin atau admin mengklik tombol simpan. 4. Validasi data yang diisi user. 5. Jika data yang dimasukan valid simpan data 6. Jika data yang dimasukan tidak valid tampilkan alert data yang dimasukan tidak valid. 12. No. Proses 3.1.2 Nama Proses Cari Data Bot_resp Source Superadmin, Admin Input Data Bot_resp Output Info Bot_resp Destination Superadmin, Admin Logika Proses 1. sistem menampilkan halaman bot_resp. 2. Superadmin atau admin mengisi form untuk kata yang dicari. 3. Superadmin atau admin mencari berdasarkan pattern atau respons. 4. Superadmin atau admin mencari berdasarkan topic yang dipilih. 5. Tekan tombol cari. 6. Sistem akan memberikan info bot_resp yang dicari. No. Proses 3.1.3 Nama Proses Edit data Bot_resp Source Superadmin, Admin 82 13. Input Data Bot_resp Output Informasi Bot_resp yang sudah diedit Destination Superadmin, Admin Logika Proses 14. 1. sistem berada dihalaman bot_resp 2. Superadmin atau admin memilih data yang akan diubah 3. Klik tombol edit 4. Sistem akan menampilkan form edit bot_resp 5. Superadmin memasukan data bot_resp yang akan diubah 6. Sistem menyimpan data bot_resp yang sudah diubah ke database 7. Sistem menampilkan data bot_resp yang sudah diubah No. Proses 3.1.4 Nama Proses Hapus data Bot_resp Source Superadmin, Admin Input Data Bot_resp Output Info_Bot_resp Destination Superadmin, Admin Logika Proses 1. Sistem berada pada halaman bot_resp 2. Superadmin atau admin memilih data yang akan dihapus 3. Superadmin atau admin mengklik tombol hapus 4. Sistem menampilkan alert untuk menanyakan kepada superadmin atau admin untuk cek data yang akan dihapus 5. Sistem menampilkan info data bot_resp 83 yang sudah dihapus 15. 16. No. Proses 3.2.1 Nama Proses Tambah Data Nokey_respon Source Superadmin, Admin Input Data Nokey_respon Output Info_Nokey_resp Destination Superadmin, Admin Logika Proses 1. sistem menampilkan form isi data nokey_resp baru. 2. Superadmin atau admin mengisi data nokey_resp. 3. Superadmin atau admin mengklik tombol simpan. 4. Validasi data yang diisi user. 5. Jika data yang dimasukan valid simpan data 6. Jika data yang dimasukan tidak valid tampilkan alert data yang dimasukan tidak valid. No. Proses 3.2.2 Nama Proses Cari Data Nokey_respon Source Superadmin, Admin Input Data_Nokey_resp Output Info_Nokey_respon Destination Superadmin, Admin Logika Proses 1. sistem menampilkan halaman nokey_respons. 84 2. Superadmin atau admin mengisi form untuk kata yang dicari. 3. Superadmin atau admin mencari berdasarkan respons. 4. Superadmin atau admin mencari berdasarkan topic yang dipilih. 5. Tekan tombol cari. 6. Sistem akan memberikan info nokey_respons yang dicari. 17. No. Proses 3.2.3 Nama Proses Edit data Nokey_respon Source Superadmin, Admin Input Data_Nokey_resp Output Info_Nokey_resp Destination Superadmin, Admin Logika Proses 1. sistem berada dihalaman nokey_respons 2. Superadmin atau admin memilih data yang akan diubah 3. Klik tombol edit 4. Sistem akan menampilkan form edit nokey_respons 5. Superadmin memasukan data nokey_respons yang akan diubah 6. Sistem menyimpan data nokey_respons yang sudah diubah ke database Sistem menampilkan data bot_resp yang sudah diubah No. Proses 3.2.4 85 18. Nama Proses Hapus data Nokey_respon Source Superadmin, Admin Input Data_Nokey_resp Output Info_Nokey_resp Destination Superadmin, Admin Logika Proses 1. Sistem berada pada halaman nokey_respons 2. Superadmin atau admin memilih data yang akan dihapus 3. Superadmin atau admin mengklik tombol hapus 4. Sistem menampilkan alert untuk menanyakan kepada superadmin atau admin untuk cek data yang akan dihapus 5. Sistem menampilkan info data nokey_respons yang sudah dihapus No. Proses 3.3.1 Nama Proses Source Tambah data bot_resp dan hapus data catatan_percakapan Superadmin, Admin Input Data_Bot_resp Output Informasi Bot_resp yang telah ditambah dari data catatan_percakapan 19. Destination Logika Proses Superadmin, Admin 1.Sistem menampilkan halaman catatan_percakapan 2.Superadmin atau admin memilih data percakapan kemudian klik edit 3.Sistem menampilkan form tambah bot_resp 86 dengan kata_kunci dari input catatan_percakapan 4.User mengklik tombol simpan 5.Validasi data yang sudah ditambahkan ke bot_resp 6.Jika data bot_resp valid simpan data dan hapus data catatan_percakapan yang telah ditambah ke bot_resp 7. Jika tidak valid tampilkan pesan data yang dimasukan tidak valid No. Proses 3.3.2 Nama Proses Hapus data catatan _percakapan Source Superadmin, Admin Input Data_catatan_percakapan Output Informasi data catatan_percakapan yang telah dihapus Destination 20. Logika Proses No. Proses Superadmin, Admin 1.sistem menampilkan halaman catatan_percakapan 2.Superadmin atau admin memilih data catatan_percakapan yang akan dihapus 3.Sistem menampilkan pesan apakah data yang dipilih yakin akan dihapus 4.Jika yakin dihapus tampilkan info catatan_percakapan telah dihapus 5. Jika tidak maka sistem menampilkan halaman catatan_percakapan kembali 3.4.1 87 21. 22 Nama Proses Tambah Data Tb_stoplist Source Superadmin, Admin Input Data_tb_stoplist Output Info_tb_stoplit Destination Superadmin, Admin Logika Proses 1. sistem menampilkan form isi data Tb_stoplist baru. 2. Superadmin atau admin mengisi data Tb_stoplist. 3. Superadmin atau admin mengklik tombol simpan. 4. Validasi data yang diisi user. 5. Jika data yang dimasukan valid simpan data 6. Jika data yang dimasukan tidak valid tampilkan alert data yang dimasukan tidak valid. No. Proses 3.4.2 Nama Proses Edit data tb_stoplist Source Superadmin, Admin Input Data_tb_stoplist Output Info_tb_stoplist Destination Superadmin, Admin Logika Proses 1. sistem berada dihalaman tb_stoplist 2. Superadmin atau admin memilih data yang akan diubah 3. Klik tombol edit 4. Sistem akan menampilkan form edit tb_stoplist 5. Superadmin memasukan data tb_stoplist 88 yang akan diubah 6. Sistem menyimpan data tb_stoplist yang sudah diubah ke database 7. Sistem menampilkan data tb_stoplist yang sudah diubah 23 No. Proses 3.4.3 Nama Proses Hapus data tb_stoplist Source Superadmin, Admin Input Data_tb_stoplist Output Info_tb_stoplist Destination Superadmin, Admin Logika Proses 1. Sistem berada pada halaman tb_stoplist 2. Superadmin atau admin memilih data yang akan dihapus 3. Superadmin atau admin mengklik tombol hapus 4. Sistem menampilkan alert untuk menanyakan kepada superadmin atau admin untuk cek data yang akan dihapus 5. Sistem menampilkan info data tb_stoplist yang sudah dihapus 89 3.1.9 Kamus Data Kamus data merupakan deskripsi formal mengenai seluruh elemen yang tercakup dalam DFD. Kamus data untuk diagram arus data pada sistem aplikasi Natural Language Processing untuk pembuatan chat bot berbasis web adalah : 3.8 Tabel Kamus Data Nama aliran Data Data Admin Where used/how used Proses 1.0 Login Proses 2.0 Pengolahan data admin Proses 2.1 Tambah Admin Proses 2.2 Edit Admin Keterangan Berisi seluruh data admin yang digunakan sebagai untuk fungsi-fungsi yang ada dalam sistem Struktur data Id_user+nama_lengkap+password+level Deskripsi Id_user=[A-Z | a-z | 0-9] Nama_lengkap=[A-Z | a-z] Password= [A-Z | a-z | 0-9 | simbol] Level=[A-Z | a-z] Simbol= [!|@|#|$|%|^|&|*|(|)|_|+|}|{|?|>|<|.|,|;|:] Nama aliran data Data Bot_resp Where used / how used Proses 3.0 Pengolahan data brainfile Proses 3.1 Pengolahan data Bot_resp Proses 3.1.1 Tambah data Bot_resp Proses 3.1.2 Cari data Bot_resp 90 Proses 3.1.3 Ubah data Bot_resp Proses 3.1.4 Hapus data Bot_resp Proses 3.3.1 Tambah Data Bot_resp Keterangan Data ini berisi seluruh data Bot_resp yang digunakan sebagai informasi yang ingin ditampilkan Struktur data kata_kunci+respons+id_topic+id_admin+nomor Deskripsi Kata_kunci=[A-Z | a-z | 0-9] Respons=[A-Z | a-z | 0-9] Id_topic=[0-9] Id_Admin =[A-Z | a-z | 0-9] Nomor =[0-9] Nama aliran data Data Nokey_respons Where used / how used Proses 3.0 Pengolahan data brainfile Proses 3.2 Pengolahan data Nokey_respons Proses 3.2.1 Tambah data Nokey_respons Proses 3.2.2 Cari data Nokey_respons Proses 3.2.3 Ubah data Nokey_respons Proses 3.2.4 Hapus data Nokey_respons Keterangan Data ini berisi seluruh data Nokey_respons yang digunakan sebagai informasi yang ingin ditampilkan Struktur data respons+id_topic+id_user Deskripsi Respons=[A-Z | a-z | 0-9] Id_topic=[0-9] id_user =[A-Z | a-z | 0-9] 91 Nama aliran data Data Catatan_percakapan Where used / how used Proses 3.0 Pengolahan data brainfile Proses 3.3 Pengolahan data catatan_percakapan Proses 4.0 NLP Proses 3.3.1 Tambah data Bot_resp dari data catatan_percakapan Proses 3.3.2 Hapus data catatan_percakapan yang sudah diproses Keterangan Berisi data input dari pengunjung yang tidak diketahui patternnya oleh bot program Struktur data Input + tanggal + id_admin Deskripsi Input=[A-Z | a-z | 0-9 | simbol] Tanggal=[0-9] Id_admin = [A-Z | a-z | 0-9] Simbol=[!|@|#|$|%|^|&|*|(|)|_|+|}|{|?|>|<|.|,|;|:] Nama aliran Data Data tb_stoplist Where used/how used Proses 3.0 Pengolahan Data Brain file Proses 4.0 NLP Proses 3.4 Pengolahan data tb_stoplist Proses 3.4.1 Tambah data Tb_stoplist Proses 3.4.2 Edit data Tb_stoplist Proses 3.4.3 Hapus data Tb_stoplist Keterangan Berisi seluruh data tb_stoplist yang digunakan sebagai untuk fungsi-fungsi yang ada dalam sistem 92 Struktur data Id_stoplist+stoplist+id_admin Deskripsi Id_stoplist=[0-9] stoplist=[A-Z | a-z | 0-9] id_admin =[A-Z | a-z | 0-9] 3.1.10 Perancangan Basis Data Perancangan basis data yaitu perancangan yang bisa menciptakan atau merancang kumpulan data yang terhubung dan tersimpan secara bersama-sama. 3.1.10.1 Skema Relasi Skema relasi menggambarkan hubungan antar data, arti data dan batasannya dijelaskan dengan baris dan kolom. catatan_percakapan PK input FK1 tanggal id_admin noKey_respons PK respons FK1 id_topic id_user bot_resp PK user kata_kunci PK FK1 respons id_admin id_topic nomor id_admin nama_lengkap password level tb_stoplist PK id_stoplist FK1 stoplist id_admin Gambar 3.16 Skema Relasi 3.1.10.2 Perancangan Struktur Tabel Tabel adalah sekumpulan data informasi spesifik tentang subjek tertentu yang disusun dalam bentuk kolom dan baris. Tabel adalah komponen utama dan 93 pertama dari sebuah database. Struktur tabel untuk setiap tabel yang terdapat dalam database aplikasi Natural Language Processing untuk pembuatan chat bot berbasis web adalah : 1. Tabel User Tabel admin digunakan untuk mencatat data penting yang merupakan identitas admin. Secara umum, struktur tabel yang akan digunakan untuk mencatat data user dapat dilihat pada tabel 3.5 Berikut : Tabel 3.9 Tabel Admin Nama Field Tipe Size Keterangan Id_admin Varchar 50 Primary Key Nama_lengkap Varchar 50 Password Varchar 50 Level Varchar 30 2. Tabel Bot_resp Tabel Bot_resp digunakan untuk mencatat data penting yang menyimpan pengetahuan dari chat bot. Secara umum, struktur tabel yang akandigunakan untuk mencatat data Bot_resp dapat dilihat pada tabel 3.6 : 94 Tabel 3.10 Tabel Bot_resp Nama Field Kata_kunci Tipe Size Keterangan varchar 300 Primary Key Respons Text Id_topic Integer 30 Id_admin Varchar 100 Nomor integer 50 3. Tabel Nokey_respons Tabel nokey_respons digunakan untuk mencatat data penting yang menyimpan respon-respon yang tidak memakai pattern untuk merespon inputan pengguna dalam chatting. Secara umum, struktur tabel yang akan digunakan untuk mencatat data Bot_resp dapat dilihat pada tabel 3.7 : Tabel 3.11 Nokey_respons Nama Field Tipe Size Keterangan Respon varchar 450 Primary Key Id_topic integer 10 Id_user Varchar 100 4. Tabel catatan_percakapan Tabel catatan_percakapan digunakan untuk mencatat semua percakapan dengan pengguna yang tidak ditemukan pattern pada proses mencocokan data. Secara umum, struktur tabel yang akan digunakan untuk mencatat data catatan_percakapan dapat dilihat pada tabel 3.8 : 95 Tabel 3.12 Tabel Catatan_percakapan Nama Field Tipe Size Keterangan Input varchar 450 Primary Key Tanggal Timestamp Id_admin Varchar 50 5. Tabel Tb_stoplist Tabel tb_stoplist digunakan untuk tempat penyimpanan kata–kata yang dianggap tidak perlu, sehingga inputan pengguna yang mengandung kata yang ada dalam tabel tb_stoplist akan difilter. Tabel 3.13 Tabel Tb_stoplist Nama Field Tipe Size Keterangan Id_stoplist integer 10 Primary Key Stoplist Varchar 50 Id_admin Varchar 50 3.1.11 Perancangan Struktur Menu Dalam pembuatan suatu sistem informasi diperlukan suatu struktur menu yang berisikan mengenai menu dan submenu. Berikut ini struktur menu dari sistem aplikasi natural language processing untuk pembuatan chat bot berbasis web 96 a. Perancangan Struktur Menu Superadmin Login Home Edit Profil Login Data Nokey_respon Data Botresp Tambah Edit Hapus Tambah Edit Data Catatan_percakapan Hapus Edit Hapus 3.17 Struktur Menu Superadmin b. perancangan Sturktur Menu Admin Login Home Edit Profil Login Tambah Data Nokey_respon Data Botresp Admin Edit Tambah Edit Hapus Tambah Edit Data Catatan_percakapan Hapus Gambar 3.18 Perancangan Struktur Menu Admin Edit Hapus 97 c. Perancangan Struktur Menu Pengunjung Menu Home Help Gambar 3.19 Perancangan Struktur Menu Pengunjung About 98 3.1.12 Perancangan Antarmuka Perancangan antarmuka (interface) menggambarkan bagaimana perangkat lunak berkomunikasi dengan dirinya sendiri dengan sistem yang berinteroperasi dengannya, dan dengan manusia yang menggunakannya. 3.1.12.1 Perancangan Antarmuka Superadmin A01 Navigasi : 1. Klik Loginjika data login benaer maka akan muncul A02 2. Jika username dan password salah atau tidak diisi akan muncul P1 Username Password Login Gambar 3.20 Antarmuka Superadmin A01 Login 99 A02 Home Logout Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Informasi Data Admin Yang Login Edit Navigasi : 1. Klik Home maka akan muncul A02 2. Klik Tombol Edit untuk menuju ke tampilan A03 3. Klik Tombol Data Admin untuk A04 4. Klik Tombol data respons untuk ke tampilan A07 5. Klik Tombol NoKey Respons untuk ke tampilan A10 6. Klik Tombol Catatan Percakapan untuk ke tampilan A13 7. Klik Tombol Data filter untuk ke A15 8. Klik Tombol Logout untuk ke tampilan A01 Gambar 3.21 Antarmuka Superadmin A02 Menu Utama Superadmin A03 Home Logout Managemen Data Brainfile Edit Profil Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Username Password Confirm Password Nama Lengkap Update Navigasi : 1 Klik tombol update untuk menyimpada data perubahan admin 2. Klik tombol batal jika batal merubah data admin 3. Jika Username,atau nama lengkap Kosong maka akan muncul pesan P2 Batal Gambar 3.22 Antarmuka Superadmin A03 Edit Profil Login 100 A04 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout DATA ADMIN Tambah No. Username Password 1. Fendi Nama Lengkap Level 21232f297 Fendi Ridwan Aksi superadmin edit Navigasi : 1. klik tombol tambah untuk untuk ke tampilan A05 2. klik tombol edit untuk ke tampilan A06 3. Klik Home akan muncul A02 4. Klik tombol logout superadmin akan menuju tampilan A01 Gambar 3.23 Antarmuka Superadmin A04 Data Admin A05 Home Logout TAMBAH DATA ADMIN Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Username Password Confirm Password Nama Lenkap Level Simpan V Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. klik tombol simpan untuk menyimpan data admin baru 4. klik tombol batal untuk batal menambah data admin 5. Jika data masih ada yang kosong maka akan muncul pesan P3 Batal Gambar 3.24 Antarmuka Superadmin A05 Tambah Data Admin 101 A06 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. Klik tombol update untuk mengubah data admin 4. klik tombol batal untuk batal mengubah data admin 5.jika user, nama lengkap, dan level kosong maka akan muncul P3 Logout EDIT DATA ADMIN Username Password Confirm Password Nama Lenkap Level Update Fendi Fendi Ridwan Superadmi V Batal Gambar 3.25 Antarmuka Superadmin A06 Edit Data Admin A07 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter DATA RESPONS Logout Pilih topik Tambah No. Pattern & Respons 1. Nama kamu Nama aku T-Ara V Cari topik admin umum Fendi Aksi Hapus |Edit Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. klik tombol tambah untuk untuk ke tampilan A08 4. klik tombol edit untuk ke tampilan A09 5. klik tombol cari untuk menampilkan data yang dicari Gambar 3.26 Antarmuka Superadmin A07 Data Respons 102 A08 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout TAMBAH DATA RESPON Pattern Navigasi : 1. klik tombol simpan untuk manambah data respon 2. klik tombol batal untuk batal menambah data respon 3. jika data masih ada yang kosong saat disimpan maka akan muncul pesan P5 Respon V Topic Simpan Batal Gambar 3.27 Antarmuka Superadmin A08 Tambah Data Respons A09 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter EDIT DATA RESPON Pattern Nama kamu, siapa kamu Respon Nama aku T-ara Topic Umum V Update Logout Navigasi : 1. klik tombol update untuk mengubah data admin 2. klik tombol batal untuk batal mengubah data admin 3. Jika data masih ada yang kosong saat di update maka akan muncul pesan P5 Batal Gambar 3.28 Antarmuka Superadmin A09 Edit Data Respons 103 A10 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter DATA RESPONS TANPA PATTERN Logout Pilih topik Tambah V Cari No. Respons topik admin 1. umum Fendi Nama aku T-Ara Aksi Hapus |Edit Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. klik tombol tambah untuk untuk ke tampilan A11 4. klik tombol edit untuk ke tampilan A12 5.klik tombol cari untuk menampilkan data yang dicari Gambar 3.29 Antarmuka Superadmin A10 Data Respon Tanpa Pattern A11 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout TAMBAH DATA RESPON TANPA PATTERN Respon Topic Simpan V Navigasi : 1. klik tombol simpan untuk manambah data respon tanpa pattern 2. klik tombol batal untuk batal menambah data respon pattern 3. Jika data masih ada yang kosong saat disimpan maka akan muncul pesan P6 Batal Gambar 3.30 Antarmuka Superadmin A11 Tambah Data Respon Tanpa Pattern 104 A12 Home EDIT DATA RESPON TANPA PATTERN Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data FIlter Logout Respon Topic update Halo Sapaan V Batal Navigasi : 1. klik tombol update untuk mengubah data respon tanpa pattern 2. klik tombol batal untuk batal mengubah data respon pattern 3. Jika data ada yang kosong saat diupdate maka akan muncul pesan P6 4. Jika respon diawali atau diakhiri tanda koma maka akan muncul pesan P8 Gambar 3.31 Antarmuka Superadmin A12 Edit Data Respon Tanpa Pattern A13 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout CATATAN PERCAKAPAN No. Respons Tanggal 1. 2012-06-01 04:54:36 Nama aku T-Ara Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. klik tombol Edit untuk untuk ke tampilan A14 Aksi Hapus |Edit Gambar 3.32 Antarmuka Superadmin A13 Data Catatan Percakapan 105 A14 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout PROSES LEARNING TAMBAH DATA RESPON Pattern Aloha Navigasi : 1. klik tombol simpan untuk manambah data respon 2. klik tombol batal untuk batal menambah data respon 3. Jika data masih ada yang kosong saat disimpan maka akan muncul pesan P7 Respon V Topic Simpan Batal Gambar 3.33 Antarmuka Superadmin A14 Proses Learning Tambah Data Respon A15 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout DATA FILTER Tambah filter No. Kata yang ingin difilter admin Aksi 1. Fendi Hapus|Edit Dari Navigasi : 1. Klik Home akan muncul A02 2. Klik Logout untuk ke tampilan A01 3. klik tombol Tambah untuk untuk ke tampilan A16 4. klik tombol Edit untuk ke tampilan A17 Gambar 3.34 Antarmuka Superadmin A15 Data Filter 106 A16 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter Logout TAMBAH DATA FILTER Kata yang difilter Simpan Batal Navigasi : 1. klik tombol simpan untuk manambah data respon tanpa kata kunci 2. klik tombol batal untuk batal menambah data respon kata kunci 3. Jika data masih ada yang kosong saat disimpan maka akan muncul pesan P7 Gambar 3.35 Antarmuka Superadmin A16 Tambah Data Filter A17 Home Managemen Data Brainfile Data Admin Data Respons No Key Respon Catatan Percakapan Data Filter EDIT DATA FILTER Kata yang difilter DARI Simpan Batal Logout Navigasi : 1. klik tombol simpan untuk mengubah data kata yang difilter 2. klik tombol batal untuk batal menambah data kata yang difilter 3. Jika data masih ada yang kosong saat disimpan maka akan muncul pesan P7 Gambar 3.36 Antarmuka Superadmin A17 Edit Data Filter 107 3.1.12.2Perancangan Antarmuka Admin B01 Home Navigasi : 1. Klik Home maka akan muncul A02 2. Klik Tombol Edit untuk menuju ke tampilan A03 3. Klik Tombol Data Admin untuk A04 4. Klik Tombol data respons untuk ke tampilan A07 5. Klik Tombol NoKey Respons untuk ke tampilan A10 6. Klik Tombol Catatan Percakapan untuk ke tampilan A13 7. Klik Tombol Data filter untuk ke A15 8. Klik Tombol Logout untuk ke tampilan A01 Logout Managemen Data Brainfile Data Topic Data Respons No Key Respon Catatan Percakapan Data Filter Informasi Data Admin Yang Login Edit Gambar 3.37 Antarmuka Admin B01 Menu Utama Admin 3.1.12.3 Perancangan Antamuka Pengunjung C01 Logo Unikom Nama Chat bot Home Gambar Model Help About Navigasi : 1. Input text pada text box input untuk berbincang dengan chat bot kemudia tekan enter atau tekan tombol kirim 2. Klik Home untuk ke tampilan C01 3. Klik tombol Help untuk untuk menuju ke tampilan C02 4. Klik tombol About untuk menuju ke tampilan C03 Text box output bot Text box ouput pengguna Text box input Kirim Footer Gambar 3.38 Antarmuka Pengunjung C01 Halaman Depan Pengunjung 108 C02 Logo Unikom Nama Chat bot Home Gambar Model Help About Navigasi : 1. Klik tombol home untuk ke tampilan C01 2. Klik Help untuk ketampilan C02 3. klik tombol About untuk menuju ke tampilan C03 Informasi Help Footer Gambar 3.39 Antarmuka Pengunjung C02 Halaman Help C03 Logo Unikom Nama Chat bot Home Gambar Model Help About Navigasi : 1. Klik tombol home untuk ke tampilan C01 2. klik tombol Help untuk menuju ke tampilan C02 3. Klik About untuk ke tampilan C03 Informasi About Footer Gambar 3.40 Antarmuka Pengunjung C03 Halaman About 109 3.1.12.4 Perancangan Pesan Perancangan pesan yang akan dibuat pada Aplikasi Natural Language Processing untuk pembuatan chat bot dapat dilihat pada gambar : Gambar 3.41 Perancangan Pesan 110 3.1.13 Jaringan Semantik Jaringan semantic yang terbentuk pada Aplikasi Natural Language Processing untuk pembuatan chat bot berbasis web ini adalah : a. Jaringan Semantik Superadmin P2 P2,P3 P2,P3 A05 A03 A06 P9, P10 A04 A16 A01 A02 A15 A17 P5,P6 A07 A13 A08 A10 A09 P5,P6 A14 A12 A11 P7,P8 P5,P6 P7,P8 Gambar 3.42 Jaringan Semantik Superadmin 111 b. Jaringan Semantik admin P2 P9,P10 A03 6 A1 P9,P10 A15 A17 A01 A02 P5,P6 A07 A13 A08 A10 A 09 P5,P6 A14 A12 A11 P7,P8 P5,P6 P7,P8 Gambar 3.43 Jaringan Semantik Admin 112 c. Jaringan Semantik Pengunjung C02 C01 C03 Gambar 3.44 Jaringan Semantik Pengunjung 3.1.14 Perancangan Prosedural Perancangan procedural merupakan perancangan yang dilakukan untuk menetapkan detail algoritma yang akan dinyatakan kedalam suatu program. Adapun perancangan procedural untuk Aplikasi Natural language Processing untuk pembuatan chat bot berbasis web yang akan dibangun sebagai berikut : 113 1. Prosedural login merupakan prosedur yang terjadi ketika Superadmin, Admin mulai mengakses Aplikasi. Mulai Username Dan password Membandingkan username dan password dengan data yang ada di database Data Login Valid Tidak Tampil pesan “Password atau Username salah, silahkan ulangi lagi” Ya Menu Utama Menampilkan halaman menu superadmin Menampilkan halaman menu admin Selesai Gambar 3.45 Tampilan Flowchart Login 114 2. Pengolahan Data Admin a. Prosedur Tambah Data Admin Mulai Tambah admin Pengecekan Data kosong Tampil pesan “Maaf kolom tidak boleh ada yang kosong” Ya Data kosong Tidak Tampil pesan “Username yang anda pilih sudah ada” Ya Cek username Data username sudah ada di database Tampil Pesan “Maaf confirm password tidak sama dengan password yang anda masukan” Tidak Cek password dan confirm password Data password dan confirm password sama Tidak Simpan data admin Data admin tersimpan Selesai Gambar 3.46 Flowchart Tambah Data Admin 115 b. Prosedur Ubah Data Admin Mulai Ubah admin Tampil Pesan “Maaf confirm password tidak sama dengan password yang anda masukan” Cek data admin yang diiubah Tampil pesan “Maaf kolom tidak boleh ada yang kosong” Tidak Ya Data admin lengkap ? Ya Cek password dan confirm password admin yang diubah Data Password dan confirm password yang diubah sama ? Ya Simpan data admin Data admin tersimpan Selesai Gambar 3.47 Tampilan Flowchart Ubah Data Admin 116 c. Prosedural Hapus Data Admin Mulai Data admin yang dicari Pencarian data admin yang dicari Data ditemukan Ya Data admin yang akan dihapus hapus data admin Tampil pesan “Yakin data akan dihapus?” tidak Data admin dihapus Tidak ya Data admin telah dihapus Selesai Gambar 3.48 Tampilan Flowchart Hapus Data Admin 117 3. Pengolahan Data Bot_resp a. Prosedur Tambah Data Bot_resp Mulai Tambah bot_resp Cek data bot_resp baru yang diinputkan Tampil pesan “kolom tidak boleh ada yang kosong” Tidak Tampil pesan “Maaf pattern yang anda masukan sudah ada” Ya Seluruh data respon sudah diisi Ya Cek data field pattern baru yang diinputkan Simpan data bot_resp Data field pattern sudah ada di database Tidak Data bot_resp tersimpan Selesai Gambar 3.49 Tampilan Flowchart Tambah Data Bot_resp 118 b. Prosedur Ubah Data Bot_resp Mulai Data bot_resp yang dicari Pencarian data respon yang dicari Data ditemukan Ya Data bot_resp yang akan diubah Cek data respon Tidak Tampil pesan “Data tidak ditemukan” Seluruh data respon tidak ada yang kosong Tidak Tampil pesan “Kolom tidak boleh ada yang kosong” ya Ubah data bot_resp Data bot_resp telah diubah Selesai Gambar 3.50 Tampilan Flowchart Edit Data Bot_resp 119 c. Prosedur Hapus Data Bot_resp Mulai Data bot_resp yang dicari Pencarian data bot_resp yang dicari Data ditemukan Ya Data bot_resp yang akan dihapus hapus data bot_resp Tampil pesan “yakin data akan dihapus?” tidak Data bot_resp dihapus Tidak ya Data bot_resp telah dihapus Selesai Gambar 3.51 Flowchart Hapus Data Respon 120 4. Pengolahan Data Nokey_respons a. Prosedur Tambah Data Nokey_respons Mulai Tambah nokey_respon Tampil pesan “Maaf respon yang anda masukan sudah ada” Periksa data nokey_respon Ya Pesan data nokey_respon tidak lengkap Tidak Data nokey_respon lengkap ? Ya Cek data field respon pada nokey_respon di database Data field respon sudah ada Tidak Simpan data nokey_respon Data nokey_respon tersimpan Selesai Gambar 3.52 Tampilan Flowchart Tambah Data Nokey_respons 121 b. Prosedur Edit Data Nokey_respon Mulai Data nokey_respon yang dicari Pencarian data nokey_respon yang dicari Data ditemukan Ya Data nokey_respon yang akan diubah Tidak Cek data nokey_respon Tampil pesan “Data tidak ditemukan” Data nokey_respon lengkap Tidak Tampil pesan “Kolom tidak boleh ada yang kosong” ya Ubah data nokey_respon Data nokey_respon telah diubah Selesai Gambar 3.53 Tampilan Flowchart Edit Data Nokey_respons 122 c. Prosedur Hapus Data Nokey_respons Mulai Data nokey_respon yang dicari Pencarian data nokey_respon yang dicari Data ditemukan Ya Data nokey_respon yang akan dihapus hapus data nokey_respon Pesan apakah data nokey_respon dihapus ? Tidak Data nokey_respon berhasil dihapus tidak ya Data nokey_respon telah dihapus Selesai Gambar 3.54 Tampilan Flowchart Hapus Data Nokey_respons 123 5. Pengolahan Data Catatan Percakapan a. Prosedur Edit Catatan Percakapan Mulai Edit Data catatan_percakapan untuk ditambah pada respon Tampil pesan “Maaf pattern yang anda masukan sudah ada” Periksa data Ya Pesan data respon tidak lengkap tidak Data respon lengkap ? Ya Cek data field pattern baru yang diinputkan Data field pattern sudah ada di database? Tidak Simpan data respon Data respon tersimpan Hapus data catatan_percakapan Data catatan_percakapan terhapus Selesai Gambar 3.55 Tampilan Flowchart Edit Data Catatan Percakapan 124 b. Prosedur Hapus Data Catatan_percakapan Mulai Data catatan_percakapan yang akan dihapus hapus data catatan_percakapan Tampil pesan “yakin data akan dihapus?” Data catatan_percakapan berhasil dihapus tidak ya Data catatan_percakapan telah dhapus Selesai Gambar 3.56 Tampilan Flowchart Hapus Data Catatan Percakapan 125 6. Pengolahan Data Filter a. Prosedur Tambah Data Filter Mulai Tambah Filter Tampil pesan “Data filter yang dimasukan sudah ada” Periksa data Filter Tidak Pesan data filter tidak lengkap Tidak Seluruh data filter sudah diisi Cek field data filter yang diinputkan Data field filter sudah ada? Ya Simpan data filter Data Fitler disimpan Selesai Gambar 3.57 Tampilan Flowchart Tambah Data Filter 126 b. Prosedur Edit Data Filter Mulai Data filter yang dicari Pencarian data filter yang dicari Data ditemukan Ya Data filter yang akan diubah Cek data filter Tidak Data filter sudah diisi Tampil pesan “Data tidak ditemukan” Tidak Tampil pesan “Kolom tidak boleh ada yang kosong” ya Ubah data flter Data filter telah diubah Selesai Gambar 3.58 Tampilan Flowchart Edit Data Filter 127 c. Prosedure Hapus Data Filter Mulai Data filter yang dicari Pencarian data filter yang dicari Data ditemukan Ya Data filter yang akan dihapus hapus data filter Pesan apakah data filter dihapus ? tidak Data filter berhasil dihapus Tidak ya Data filter telah dihapus Selesai Gambar 3.59 Tampilan Flowchart Hapus Data Filter BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1 Implementasi Sistem Tahap implementasi merupakan tahap penciptaan perangkat lunak, tahap kelanjutan dari kegiatan perancangan sistem. Tahap ini merupakan tahap dimana sistem siap untuk dioperasikan, yang terdiri dari penjelasan mengenai lingkungan implementasi, dan implementasi program. 4.1.1 Perangkat Lunak Yang Digunakan Spesifikasi perangkat lunak yang digunakan dalam membangun aplikasi natural language processing untuk pembuatan chat bot berbasis web adalah sebagai berikut: Tabel 4.1 Implementasi spesifikasi Perangkat lunak No Perangkat Lunak Keterangan 1 Sistem Operasi Windows 7 2 Bahasa Pemrograman PHP, Javascript 3 DBMS MySQL 4 Web browser Google chrome 5 Code editor Adobe Dreamweaver 8 6 DFD modeler Microsoft Visio 2007 128 129 4.1.2 Perangkat Keras Yang Digunakan Spesifikasi perangkat keras yang digunakan dalam pembangunan aplikasi natural language processing untuk pembuatan chat bot berbasis web adalah tercantum pada tabel 4.2 sebagai berikut : Tabel 4.2 Implementasi spesifikasi perangkat keras Perangkat Spesifikasi Processor Kecepadan 2.4 GHz RAM 2 GHz Harddisk 320 Gb Monitor Resolusi 1366 x 768 VGA 4.1.3 256Mb Implementasi Database Langkah pertama dalam pembuatan aplikasi ini yaitu pembuatan databasenya berikut adalah tabel-tabel yang dibentuk : Tabel 4.3 Nama tabel beserta file implementasinya No Nama Tabel Nama file 1. User User.sql 2. Bot_resp Bot_resp.sql 3. Nokey_resp Nokey_resp.sql 4. Catatan_percakapan Catatan_percakapan.sql 5. Tb_stoplist Tb_stoplist.sql 130 1. Tabel User Tabel ini berfungsi untuk menyimpan data identitas user yang akan digunakan pada proses login. CREATE TABLE IF NOT EXISTS `user` ( `id_admin` varchar(50) NOT NULL, `nama_lengkap` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `level` varchar(30) NOT NULL, PRIMARY KEY (`id_admin`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 2. Tabel Bot_resp Tabel ini berfungsi untuk menyimpan yang digunakan untuk mencocokan data pada saat program menerima input dari pengguna : CREATE TABLE IF NOT EXISTS `bot_resp` ( `pattern` varchar(300) NOT NULL, `respons` text NOT NULL, `id_topic` varchar(30) NOT NULL, `id_admin` varchar(100) NOT NULL, `nomor` int(50) NOT NULL, PRIMARY KEY (`kata_kunci`), CONSTRAINT bot_resp_ibfk_1 FOREIGN KEY (id_admin) REFERENCES user(id_admin) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 131 3. Tabel Nokey_respons Tabel ini berfungsi untuk menyimpan respons yang tidak memerlukan pattern. CREATE TABLE IF NOT EXISTS `nokey_respon ` ( `input` varchar(300) NOT NULL, `id_topic` varchar(30) NOT NULL, `id_user` varchar(100) NOT NULL PRIMARY KEY (`input`), CONSTRAINT nokey_respons_ibfk_1 FOREIGN KEY (id_user) REFERENCES user(id_admin) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 4. Tabel Catatan_percakapan Tabel ini berfungsi untuk menyimpan tabel catatan percakapan yang terjadi dengan pengguna, jika bot tidak menyimpan pattern yang ada di tabel bot_resp. CREATE TABLE IF NOT EXISTS `catatan_percakapan` ( `input` varchar(450) NOT NULL, `tanggal` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY `input` (`input`), CONSTRAINT catatan_percakapan_ibfk_2 FOREIGN KEY (id_admin)REFERENCES user(id_admin) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 132 5. Tabel Tb_stoplist Tabel ini berfungsi untuk menyimpan data kata-kata yang akan difilter pada proses pencocokan string. CREATE TABLE IF NOT EXISTS `tb_stoplist` ( `id_stoplist` int(10) NOT NULL AUTO_INCREMENT, `stoplist` varchar(50) NOT NULL, PRIMARY KEY (`id_stoplist`), CONSTRAINT tb_stoplist_ibfk_1 FOREIGN KEY (id_admin) REFERENCES user(id_admin) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; 4.1.4 Implementasi Antarmuka Implementasi antarmuka dilakukan dengan setiap tampilan program yang dibangun dan pengkodeannya dalam bentuk file program. Berikut ini adalah implementasi antarmuka untuk pengguna. Adapun untuk tampilan implementasi pembangunan aplikasi natural language processing untuk pembuatan chat bot berbasis web akan dilampirkan pada halaman lampiran. Tabel 4.4 Implementasi antar muka Menu Deskripsi Nama File Form Login File program untuk menangani login admin cek_login.php Menu Utama File yang menampilkan menu utama admin media.php Bot_resp Digunakan untuk melihat, menambah, merubah, dan bot_resp.php 133 menghapus data bot_resp nokey_respon Digunakan untuk melihat, menambah,merubah, dan menghapus data nokey_resp bot_resp2.php catatan_percakapan Digunakan untuk melihat, merubah, dan menghapus data catatan_percakapan catatan_percakapan.php filter Digunakan untuk melihat, menambah, merubah dan menghapus data filter filter.php 4.2 Pengujian Perangkat Lunak Pengujian sistem merupakan hal terpenting yang bertujuan untuk menemukan kesalahan – kesalahan atau kekurangan – kekurangan pada perangkat lunak yang diuji. Pengujian bermaksud untuk mengetahui perangkat lunak yang dibuat sudah memenuhi kriteria yang sesuai dengan tujuan perancangan perangkat lunak tersebut. Pengujian perangkat lunak ini menggunakan pengujian black box. Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. 4.2.1 Pengujian alpha Pengujian dilakukan terhadap aplikasi untuk memastikan bahwa aplikasi dapat berjalan dengan benar sesuai dengan kebutuhan dan tujuan yang diharapkan. Pengujian alpha berfokus pada persyaratan fungsional perangkat lunak. 134 4.2.1.1 Skenario Pengujian Alpha Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi natural language processing untuk chat bot ini. Skenario pengujian yang akan dilakukan pada aplikasi ini selengkapnya dapat dilihat pada tabel 4.5 dan tabel 4.6 : Tabel 4.5 Skenario Pengujian aplikasi Pengunjung Komponen yang diuji Skenario Pengujian NLP (Natural Language Pencocokan pattern Processing) dengan teks Penanganan pattern yang tidak ditemukan (unknown keyword) dan Penanganan pengulanan input user (user repition) Help Jenis Pengujian White Box Menampilkan halaman help Menampilkan halaman about About White Box Black Box Black Box Tabel 4.6 Skenario Pengujian Aplikasi Superadmin Komponen yang diuji Skenario Pengujian Login Verifikasi data login petugas Jenis Pengujian Black Box Logout Menghapus session user Black Box Pengolahan data petugas Tambah data petugas Black Box Ubah data petugas Black Box Hapus data petugas Black Box Tambah data Bot_resp Black Box Cari data Bot_resp Black Box Edit data Bot_resp Black Box Pengolahan data bot_resp 135 Nokey_resp Catatan_percakapan Filter Hapus data bot_resp Black Box Tambah data nokey_resp Black Box Cari data nokey_resp Black Box Ubah data nokey_resp Black Box Hapus data nokey_resp Black Box Tambah data Black Box Catatan_percakapan Cari data Catatan_percakapan Black Box Ubah data Catatan_percakapan Hapus data Catatan_percakapan Tambah data Filter Black Box Ubah data Filter Black Box Hapus data Filter Black Box Black Box Black Box 4.2.1.2 Kasus Dan Hasil Pengujian (Black Box Testing) 4.2.1.2.1 Pengujian Halaman Pengunjung Berikut ini merupakan pengujian halaman pengunjung seperti pada tabel 4.7 dibawah ini: Tabel 4.7 Pengujian Halaman Pengunjung Kasus dan Hasil Uji Benar (Data Benar) NLP Pencocokan pattern dengan teks Data Masukan Data teks pengguna „apakah kamu chat bot?‟ Yang diharapkan Sistem merespon pernyataan, atau pertanyaan pengguna Pengamatan Dapat dilihat pada sub bab 4.2.1.3 kasus dan hasil 136 Kesimpulan pengujian (white box testing) Penanganan pattern yang tidak ditemukan (unknown keyword) dan Penanganan pengulanan input user (user repition) Data Masukan Data teks pengguna yang tidak memiliki pattern dalam database atau data teks pengguna yang sama dengan teks sebelumnya Yang diharapkan Sistem akan memberikan respon alih topik jika pattern tidak ditemukan atau memberikan respon user repeat jika teks pengguna sama dengan sebelumnya Pengamatan Dapat dilihat pada sub bab 4.2.1.3 kasus dan hasil pengujian (white box testing) Kesimpulan Halaman help Data Masukan Data link help Yang Diharapkan Pengamatan Sistem menampilkan form halaman help Kesimpulan Diterima Dapat menampilkan form halaman help Halaman About Data Masukan Data link about Yang Diharapkan Pengamatan Sistem menampilkan form halaman about Kesimpulan Diterima Dapat menampilkan form halaman about 137 4.2.1.2.2 Pengujian Login Petugas Berikut dapat dilihat pengujian login petugas pada tabel 4.8 dibawah ini: Tabel 4.8 Pengujian login superadmin Kasus dan Hasil Uji Benar (Data Benar) Username : superadmin; Password : 1234 Data Masukan Yang diharapkan Data login dimasukan, username: Superadmin dan password :1234 Lalu klik tombol login akan dilakukan proses pengecekan data login. Apabila data login benar maka superadmin dapat menjalankan sistem Pengamatan Dapat mengisi data login sesuai dengan yang diharapkan Kesimpulan Diterima Kasus dan Hasil Uji Benar (Data Salah) Data Masukan Username : superadmin; Password : admin Yang diharapkan Data login tidak terdaftar dan menampilkan pesan kesalahan Pengamatan Username tidak dapat melakukan login menampilkan pesan kesalahan login. Sesuai dengan yang diharapkan Kesimpulan Diterima 4.2.1.2.3 Pengujian Logout Berikut dapat dilihat pengujian dari logout pada tabel 4.9 dibawah ini: Tabel 4.9 Pengujian Logout Kasus dan Hasil Uji Benar (Data Salah) Data link Logout Data Masukan Yang diharapkan Dapat keluar dan menghapus session pengguna Pengamatan Superadmin atau admin keluar dari aplikasi Kesimpulan Diterima 138 4.2.1.2.4 Pengujian Pengolahan Data Petugas Berikut dapat dilihat pengujian dari edit profil admin pada tabel 4.10 dibawah ini: Table 4.10 Tabel Pengujian Pengohalan Data Petugas Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Kasus dan Hasil Uji Benar (Data Benar) Tambah Data Mengisi atribut data petugas yang telah disediakan dengan data yang benar Username : Maya Password : admin Confirmasi password : admin Level : admin Klik simpan, data petugas yang baru akan masuk ke database, maka akan langsung tampil pada table petugas Data berhasil disimpan kedalam database Diterima Ubah Data Mengubah atribut data petugas yang sudah ada dalam database dengan data yang benar Username : Maya Password : passadmin Confirmasi password : passadmin Level : superadmin Proses mengubah data petugas benar, klik simpan, data petugas yang telah diubah masuk ke database Data yang diubah berhasil disimpan kedalam database Diterima Hapus Data Memilih atribut data petugas yang telah disediakan untuk dihapus Klik hapus, data petugas yang akan dihapus dari database, maka akan terjadi perubahan data petugas pada 139 Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan tabel user. Data berhasil dihapus dari database Diterima Kasus dan Hasil Uji Benar (Data Salah) Tambah Data Mengisi atribut data petugas yang telah disediakan dengan data yang salah Username : Password : admin Confirmasi password : confadmin Level : admin Proses pemasukan data gagal, data ada belum terisi, password dan confirmasi password tidak sama. Proses pemasukan data gagal dan menampilkan pesan kesalahan Diterima Ubah Data Mengubah atribut data petugas yang sudah ada dalam database dengan data yang salah Username : Maya Password : passadmin Confirmasi password : passadminabcd Level : superadmin Proses pemasukan data gagal dan menampilkan pesan kesalahan Data yang diubah gagal disimpan dan menampilkan pesan kesalahan Diterima Hapus Data Menghapus atribut data petugas yang sudah ada dalam database dengan cara yang salah Proses penghapusan data gagal Proses penghapusan data gagal dan menampilkan pesan Diterima 140 4.2.1.2.5 Pengujian Pengolahan Data Bot_resp Berikut dapat dilihat pengujian dari tambah data bot_resp pada tabel 4.11 dibawah ini: Tabel 4.11 Pengujian Tambah Bot_resp Kasus dan Hasil Uji Benar (Data Benar) Tambah Data Mengisi atribut data bot_resp yang Data Masukan telah disediakan dengan data yang benar pattern : „singkatan unikom‟ respons : „universitas komputer indonesia‟ Klik simpan, data bot_resp yang baru Yang diharapkan akan masuk ke database, maka akan langsung tampil pada table bot_resp Data berhasil disimpan kedalam Pengamatan database Diterima Kesimpulan Cari data Mengisi data bot_resp yang akan dicari Data Masukan yang sudah ada dalam database Klik simpan, data bot_resp yang baru Yang diharapkan akan masuk ke database, maka akan langsung tampil pada table bot_resp Data berhasil ditampilkan Pengamatan Diterima Kesimpulan Ubah Data Mengubah data bot_resp yang sudah Data Masukan ada dalam database dengan data yang benar pattern:‟terima-kasih‟ Respons:‟kembali‟ Proses mengubah data bot_resp benar, Yang diharapkan klik simpan, data bot_resp yang telah diubah masuk ke database Data yang diubah berhasil disimpan Pengamatan kedalam database Diterima Kesimpulan Hapus Data Memilih atribut data bot_resp yang Data Masukan telah disediakan untuk dihapus 141 Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Klik hapus, data bot_resp yang akan dihapus dari database, maka akan terjadi perubahan data bot_resp pada tabel bot_resp. Data berhasil dihapus dari database Diterima Kasus dan Hasil Uji Benar (Data Salah) Tambah Data Mengisi atribut data bot_resp yang telah disediakan dengan data yang salah (data atribut tidak diisi dengan lengkap) Proses pemasukan data gagal, data ada belum terisi. Proses pemasukan data gagal dan menampilkan pesan kesalahan Diterima Ubah Data Mengubah data bot_resp yang sudah ada dalam database dengan data yang salah (mengosongkan field) Proses pemasukan data gagal dan menampilkan pesan kesalahan Data yang diubah gagal disimpan dan menampilkan pesan kesalahan Diterima Hapus Data Menghapus atribut data bot_resp yang sudah ada dalam database dengan cara yang salah Proses penghapusan data gagal Proses penghapusan data gagal dan menampilkan pesan Diterima 142 4.2.1.2.6 Pengujian Pengolahan Data Nokey_respons Berikut dapat dilihat pengujian pengolahan data nokey_resons pada tabel 4.12 dibawah ini: Tabel 4.12 Pengujian pengolahan data nokey_respons Kasus dan Hasil Uji Benar (Data Benar) Tambah Data Data Masukan Yang diharapkan Mengisi atribut data nokey_respons yang telah disediakan dengan data yang benar respons : „seperti-itu? „ Klik simpan, data nokey_respons yang baru akan masuk ke database, maka akan langsung tampil pada table nokey_respons Pengamatan Data berhasil disimpan kedalam database Kesimpulan Diterima Cari data Data Masukan Mengisi data nokey_respons yang akan dicari yang sudah ada dalam database Yang diharapkan Klik simpan, data nokey_respons yang baru akan masuk ke database, maka akan langsung tampil pada table nokey_respons Pengamatan Data berhasil ditampilkan Kesimpulan Diterima Ubah Data Data Masukan Mengubah data nokey_respons yang sudah ada dalam database dengan data yang benar Respons : „mengapa ada berkata seperti-itu?‟ Yang diharapkan Proses mengubah data nokey_respons 143 benar, klik simpan, data nokey_respons yang telah diubah masuk ke database Data yang diubah berhasil disimpan Pengamatan kedalam database Diterima Kesimpulan Hapus Data Memilih atribut data nokey_respons Data Masukan yang telah disediakan untuk dihapus Klik hapus, data petugas yang akan Yang diharapkan dihapus dari database, maka akan terjadi perubahan data nokey_respons pada tabel nokey_respons . Data berhasil dihapus dari database Pengamatan Diterima Kesimpulan Kasus dan Hasil Uji Benar (Data Salah) Tambah Data Mengisi atribut data nokey_respons Data Masukan yang telah disediakan dengan data yang salah (data atribut tidak diisi dengan lengkap) Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Proses pemasukan data gagal, data ada belum terisi. Proses pemasukan data gagal dan menampilkan pesan kesalahan Diterima Ubah Data Mengubah data nokey_respons yang sudah ada dalam database dengan data yang salah (mengosongkan field) Proses pemasukan data gagal dan menampilkan pesan kesalahan Data yang diubah gagal disimpan dan menampilkan pesan kesalahan Diterima Hapus Data Menghapus atribut data nokey_respons yang sudah ada dalam database dengan cara yang salah Proses penghapusan data gagal Proses penghapusan data gagal dan menampilkan pesan Diterima 144 4.2.1.2.7 Pengujian Pengolahan Data Catatan_percakapan Berikut dapat dilihat pengujian dari pengolahan data catatan_percakapan pada tabel 4.13 dibawah ini: Tabel 4.13 Pengujian Pengolahan Data Catatan_percakapan Kasus dan Hasil Uji Benar (Data Benar) Tambah Data Mengisi data catatan_percakapan yang Data Masukan telah disediakan dengan data yang benar Klik simpan, data catatan_percakapan Yang diharapkan yang baru akan masuk ke database, maka akan langsung tampil pada table catatan_percakapan Data berhasil disimpan kedalam Pengamatan database Diterima Kesimpulan Ubah Data Mengubah atribut data Data Masukan catatan_percakapan yang sudah ada dalam database dengan data yang benar Proses mengubah data Yang diharapkan catatan_percakapan benar, klik simpan, data catatan_percakapan yang telah diubah masuk ke database Data yang diubah berhasil disimpan Pengamatan kedalam database Diterima Kesimpulan Hapus Data Memilih data catatan_percakapan yang Data Masukan telah disediakan untuk dihapus Klik hapus, data catatan_percakapan Yang diharapkan yang akan dihapus dari database, maka akan terjadi perubahan data catatan_percakapan pada tabel catatan_percakapan . Data berhasil dihapus dari database Pengamatan Diterima Kesimpulan Kasus dan Hasil Uji Benar (Data Salah) Tambah Data Mengisi atribut data petugas yang telah Data Masukan disediakan dengan data yang salah 145 Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan 4.2.1.2.8 Proses pemasukan data gagal, data ada belum terisi, password dan confirmasi password tidak sama. Proses pemasukan data gagal dan menampilkan pesan kesalahan Diterima Ubah Data Mengubah data catatan_percakapan yang sudah ada dalam database dengan data yang salah Proses pemasukan data gagal dan menampilkan pesan kesalahan Data yang diubah gagal disimpan dan menampilkan pesan kesalahan Diterima Hapus Data Menghapus data catatan_percakapan yang sudah ada dalam database dengan cara yang salah Proses penghapusan data gagal Proses penghapusan data gagal dan menampilkan pesan Diterima Pengujian Pengolahan Data Filter Berikut dapat dilihat pengujian pengolahan data filter pada tabel 4.14 dibawah ini: Tabel 4.14 Pengujian pengolahan data filter Kasus dan Hasil Uji Benar (Data Benar) Tambah Data Mengisi data filter yang telah Data Masukan disediakan dengan data yang benar Klik simpan, data filter yang baru akan Yang diharapkan masuk ke database, maka akan langsung tampil pada table filter Data berhasil disimpan kedalam Pengamatan database Diterima Kesimpulan Ubah Data Mengubah atribut data filter yang sudah Data Masukan ada dalam database dengan data yang 146 Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan Data Masukan Yang diharapkan Pengamatan Kesimpulan benar Proses mengubah data filter benar, klik simpan, data filter yang telah diubah masuk ke database Data yang diubah berhasil disimpan kedalam database Diterima Hapus Data Memilih data filter yang telah disediakan untuk dihapus Klik hapus, data filter yang akan dihapus dari database, maka akan terjadi perubahan data catatan_percakapan pada tabel filter . Data berhasil dihapus dari database Diterima Kasus dan Hasil Uji Benar (Data Salah) Tambah Data Mengisi atribut data filter yang telah disediakan dengan data yang salah Proses pemasukan data gagal, data ada belum terisi, password dan confirmasi password tidak sama. Proses pemasukan data gagal dan menampilkan pesan kesalahan Diterima Ubah Data Mengubah data filter yang sudah ada dalam database dengan data yang salah Proses pemasukan data gagal dan menampilkan pesan kesalahan Data yang diubah gagal disimpan dan menampilkan pesan kesalahan Diterima Hapus Data Menghapus data filter yang sudah ada dalam database dengan cara yang salah Proses penghapusan data gagal Proses penghapusan data gagal dan menampilkan pesan Diterima 147 4.2.2 Kasus dan Hasil Pengujian (White Box Testing) Berikut ini merupakan pengujian untuk kasus pencocokan pattern kata kunci dengan teks, penanganan pattern yang tidak ditemukan (unknown keyword) dan penanganan pengulanan input user (user repition) dalam aplikasi Natural Language Processing ini yang sudah dibangun dengan menggunakan metode white box testing berdasarkan skenario pengujian aplikasi yang terdapat pada tabel 4.5 yang sudah dijabarkan. 1. Pengujian Pencocokan Pattern Dengan Teks (white box) Menguji apakah pencocokan pattern diterapkan sudah berjalan sesuai dengan yang diharapkan. Berikut ini merupakan pengujian algorima brute force yang diterapkan pada pencocokan pattern dengan menggunakan metode white box. a. Algoritma Yang Akan Di Uji Berikut ini adalah pengujian algoritma brute force dalam pencocokan pattern dengan teks pengguna. 1. 2. for i=0 to size do vInput ← input.list[i] bInput ← vInput.length 3. for j=0 to bTeks-bInput do s ← 0 4. While(s ≤ bInput)and(vInput[s] = T[s + j])then 5. s ← s +1 6. End while 7. If s = bInput then 8. Ketemu[j] ← true thisKey ← vInput[j] 9. End if 10. If thisKey > bestKey then 11. bestKey ← thisKey 12. End if 148 13. End for 14. End for 15. sKeyWord = bestKey b. Flow Graph Pencarian Pattern Dengan Algoritma Brute Force 1 2 3 4 5 6 7 8 9 10 11 12 13 14,15 Gambar 4.1 Flow Graph Pencarian Pattern Dengan Algoritma Brute force 149 Keterangan : = Menggambarkan Kondisi = Menggambarkan Aksi c. Cyclomatic Complexity V(G) E =18, N = 14 V(G) = E – N + 2 V(G) = 18 – 14 + 2 V(G) = 4 + 2 = 6 Keterangan : E = Jumlah aksi N = Jumlah kondisi d. Independent Path Path 1 =(1) – (14,15) Path 2 =(1) –(2) –(3) – (13) –(1) – (14,15) Path 3 =(1)-(2)-(3)-(4)-(6)-(7)-(9)-(10)-(12)-(3)-(13)-(1)-(14,15) Path 4 =(1)-(2)-(3)-(4)-(6)-(7)-(8)-(9)-(10)-(11)-(12)-(3)-(13)-(1)-(14,15) Path 5 =(1)-(2)-(3)-(4)-(5)-(4)-(6)-(7)-(9)-(10)-(12)-(3)-(13)-(1)-(14,15) Path 5 =(1)-(2)-(3)-(4)-(5)-(4)-(6)-(7)-(8)-(9)-(10)-(11)-(12)-(3)-(13)-(1)(14,15) 150 e. Graph Matriks Tabel 4.15 Graph Matriks Pencocokan Pattern Dengan Teks Keterangan : 1. Baris dan kolom merepresentasikan simpul 2. Nilai 1 merepresentasikan adanya keterhubungan antar simpul. Tabel 4.16 Tabel Hasil Uji Pencocokan Pattern Dengan Teks Kasus dan Hasil Uji No. Path 1 Butir uji Node (n), input kondisi Pengamatan Pencocokan pattern dengan teks, pattern ditemukan pada teks (1)-(2)-(3)-(4)(6)-(7)-(8)-(9)(10)-(11)-(12)(3)-(13)-(1)(14,15) Menampilkan respon bot_resp Kesimpulan Path dikerjakan 151 seluruh karakter teks telah dicocokan dengan pattern ditemukan pada teks (1)-(2)-(3)-(4)(5)-(4)-(6)-(7)(8)-(9)-(10)(11)-(12)-(3)(13)-(1)(14,15) Menampilkan respon bot_resp Path dikerjakan Pencocokan pattern dengan teks, pattern tidak ditemukan pada teks. (1)-(2)-(3)-(4)(6)-(7)-(9)(10)-(12)-(3)(13)-(1)(14,15) Menampilkan respon alih respon Path dikerjakan 4. Seluruh karakter teks telah dicocokan, pattern tidak ditemukan pada teks (1)-(2)-(3)-(4)(5)-(4)-(6)-(7)(9)-(10)-(12)(3)-(13)-(1)(14,15) Menampilkan respon alih respon Path dikerjakan 5. Perulangan karakter pattern pada setiap karakter teks (1)-(2)-(3)(13)-(1)(14,15) Pada semua karakter teks telah dicocokan dengan pattern Path dikerjakan (1)-(14,15) 6. Akhir penulusuran pattern Semua pattern dalam Path database telah dikerjakan ditelusuri 2. 3. 152 2. Pengujian penanganan pengulangan inputan user (user repetition) dan pattern yang tidak ditemukan (unknown keyword) dalam teks. a. Pengujian Algoritma Berikut ini pengujian dari penanganan pengulanan inputan user (user repetition) dan pattern yang tidak ditemukan (unknown keyword) 1. if(sResponse.length > 0 ) then 2. response_list = noKey 3. sResponse = select_response(response_list) 4. 5. Else if(sInput.length > 0 and sInput = sPrevInput)then if(nrepeatCount = 2) then 6. sResponse = select_response(inputRepeat) 7. response_list = inputRepeat 8. 9. 10. else find_response(); end if 11. end if 153 b. Flow Graph Penanganan User Repeation dan Unknown Keyword 1 2 4 5 3 6 8 7 9 10 11 Gambar 4.2 Flow Graph Penanganan User Repeation dan Unknown Keyword Keterangan : = Menggambarkan Kondisi = Menggambarkan Aksi c. Cyclomatic Complexity V(G) E =12, N = 11 V(G) = E – N + 2 V(G) = 12 – 11 + 2 V(G) = 1 + 2 = 3 154 Keterangan : E = Jumlah aksi N = Jumlah kondisi d. Independent Path Path 1 = (1) – (2) –(3) –(11) Path 2 = (1) –(4) –(5) –(6) –(7) –(10) –(11) Path 3 = (1) –(4) –(5) –(8) –(9) –(10) –(11) e. Graph Matriks Tabel 4.17 Graph Matriks Penanganan User Repeation dan Unknown Keyword Keterangan : 1. Baris dan kolom merepresentasikan simpul 2. Nilai 1 merepresentasikan adanya keterhubungan antar simpul. 155 f. Hasil Uji Penanganan User Repeation dan Unknown Keyword Tabel 4.18 Tabel Hasil Uji Penanganan User Repition dan Unknown Keyword Kasus dan Hasil Uji Node (n), input kondisi No. Path Butir uji 1 Penanganan Respon untuk pattern yang tidak diketahui pada teks (1)-(2)-(3)(11) Menampilkan Path respon alih topik dikerjakan 2 Penanganan respon untuk input repetition (1)-(4)-(5)(6)-(7)-(10)(11) Menampilkan respon untuk input repetition Path dikerjakan 3 Menampilkan respon untuk pattern yang diketahui (1)-(4)-(5)(8)-(9)-(10)(11) Menampilkan data respon bot_resp Path dikerjakan 4.2.3 Pengamatan Kesimpulan Kesimpulan Pengujian Alpha Berdasarkan hasi pengujian alpha (fungsional) dengan kasus uji diatas dapat ditarik kesimpulan bahwa pembangunan sistem aplikasi natural language processing untuk pembuatan chat bot berbasis web bebas kesalahan penulisan dan secara fungsional mengeluarkan hasil yang sesuai dengan yang diharapkan. 156 4.3 Pengujian Beta Pengujian beta merupakan pengujian yang dilakukan secara objektif, dimana dilakukan pengujian secara langsung terhadap pengguna dengan menggunakan kuesioner mengenai kepuasan pengguna atas aplikasi yang telah dibangun. Adapun metode penilaian pengujian yang digunakan adalah metode kuantitatif berdasarkan data dari pengguna. 4.3.1 Wawancara Wawancara yang dilakukan menggunakan lima buah pertanyaan terbuka mengenai aplikasi chat bot pada perusahaan tempat observasi penelitian kepada petugas operator yang biasa melayani dalam penyampaian informasi melalui chatting. Berikut adalah hasil wawancara yang telah dilakukan. 1. Pertanyaan : “Menurut pendapat anda, apakah aplikasi chat bot dapat menjadi media promosi bagi perusahaan ?” Jawaban : “Iya bisa” Kesimpulan : Aplikasi ini bisa menjadi media promosi bagi perusahaan. 2. Pertanyaan :”Menurut pendapat anda, dengan aplikasi chat bot ini dapat memberikan solusi kepada pengguna yang ingin mencari informasi ?” Jawaban : “iya dapat, namun data informasi mengenai perusahaan harus ditambah dahulu.” Kesimpulan : Data mengenai perusahaan dari aplikasi ini perlu ditambah dan perlu sistem penalaran yang lebih baik. 3. Pertanyaan :”Apakah aplikasi chat bot ini dapat mempermudah pekerjaan operator dalam menyampaikan informasi?” 157 Jawaban : ”Bisa saja, karena aplikasi ini dapat dipakai pengguna setiap saat, tetapi informasi yang disampaikan harus bisa dijawab”. Kesimpulan : Aplikasi ini dapat mempermudah pekerjaan operator jika informasi dapat tersampaikan. 4. Pertanyaan : “Menurut pendapat anda, perintah atau intruksi yang disediakan aplikasi chat bot yang dibangun mudah digunakan dan mudah dipelajari ?” Jawaban : “Untuk cara penggunaan perintah dan intruksi sangat mudah digunakan dan dipelajari”. Kesimpulan : Aplikasi chat bot ini mudah digunakan dan dipelajari. 5. Pertanyaan : ”Apakah menurut anda, apakah aplikasi ini menyenangkan dan interaktif ?” Jawaban : “Iya, karena di aplikasi ini dapat berbincang seperti yang dilakukan manusia, dan kalau bisa tampilannya dibuat semenarik mungkin.” Kesimpulan : Aplikasi chat bot ini lebih menyenangkan dan interaktif, namun tampilan antarmuka harus dibuat lebih menarik lagi. 4.3.2 Kuesioner Pengujian beta dengan kuesioner dilakukan dengan memberikan kuesioner kepada 30 Masyarakat Umum (Pengguna) khususnya yang sudah terbiasa dengan teknologi internet. Pengujian ini dilakukan supaya dapat mengetahui sejauh mana sistem yang dibangun, apakah sudah sesuai dengan tujuannya yaitu membangun 158 aplikasi chat bot yang dapat berinteraksi layaknya manusia, dan memberikan informasi mengenai unikom. Dari hasil kuesioner tersebut akan dilakukan perhitungan untuk dapat diambil kesimpulannya terhadap penilaian dari aplikasi tersebut. (Lembaran kuesioner dilampirkan) Adapun beberapa poin pertanyaan yang diteliti adalah : 1. Saat berinteraksi dengan chat bot, anda sempat berpikir yang menjawab adalah manusia. 2. Melakukan chatting dengan chat bot lebih menarik dibanding dengan aplikasi chat biasa. 3. Aplikasi chat bot dapat menjadi media promosi bagi perusahan untuk menarik pengunjung web. 4. Aplikasi chat bot ini sudah dapat memberikan informasi sesuai dengan yang dimaksud pengunjung. 5. Chat bot dapat menggantikan pekerjaan operator dalam memberikan informasi. Berdasarkan data hasil kusioner tersebut, dapat dicari prosentase masingmasing jawaban dengan menggunakan rumus : Y = P/Q * 100% Keterangan : P = Banyaknya jawaban responden tiap soal. Q = Jumlah responden Y = Nilai prosentase 159 Berikut ini adalah hasil prosentase masing-masing jawaban yang sudah dihitung nilainya dengan menggunakan rumus diatas. Kuisioner ini diujikan kepada 30 orang. 1. Saat berinteraksi dengan chat bot, anda sempat berpikir yang menjawab adalah manusia. Tabel 4.19 Hasil pengujian kuesioner soal nomor 1 Pertanyaan 1 No. Keterangan Responden Prosentase (%) 1 Sangat Setuju 2 6.7% 2 Setuju 22 73,3% 3 Biasa Saja 3 10 4 Tidak Setuju 3 10 5 Sangat Tidak Setuju 0 0 30 100 Jumlah Berdasarkan hasil prosentase diatas maka dapat disimpulkan sebanyak 2 orang atau 6,7% menyatakan sangat setuju, 22 orang atau 73,3% menyatakan setuju, 3 orang atau 10 % menyatakan biasa saja, dan 3 orang atau 10% menyatakan tidak setuju bahwa aplikasi ini dapat menirukan percakapan seperti yang dilakukan manusia. 2. Melakukan chatting dengan chat bot lebih menarik dibanding dengan aplikasi chat biasa. 160 Tabel 4.20 Hasil pengujian kuesioner soal nomor 2 Pertanyaan 2 No. Keterangan Responden Prosentase (%) 1 Sangat Setuju 3 10 2 Setuju 21 60 3 Biasa Saja 6 20 4 Tidak Setuju 0 0 5 Sangat Tidak Setuju 0 0 30 100 Jumlah Berdasarkan hasil prosentase diatas maka dapat disimpulkan sebanyak 3 atau 30% menyatakan sangat setuju dan 21 orang atau 60% menyatakan setuju bahwa chat bot ini lebih menarik dibanding dengan aplikasi chat biasa. 3. Aplikasi chat bot dapat menjadi media promosi bagi perusahan untuk menarik pengunjung web. Tabel 4.21 Hasil pengujian kuesioner soal nomor 3 Pertanyaan 3 No. Keterangan Responden Prosentase (%) 1 Sangat Setuju 6 20 2 Setuju 18 60 3 Biasa Saja 6 20 4 Tidak Setuju 0 0 5 Sangat Tidak Setuju 0 0 30 100 Jumlah 161 Berdasarkan hasil prosentase diatas maka dapat disimpulkan sebanyak 6 orang atau 20% menyatakan sangat setuju dan 18 orang atau 60% menyatakan setuju, dan 6 orang atau 20% menyatakan biasa saja bahwa chat bot dapat menjadi media promosi bagi perusahaan untuk menarik pengunjung web. 4. Aplikasi chat bot ini sudah dapat memberikan informasi sesuai dengan yang dimaksud pengunjung. Tabel 4.22 Hasil pengujian kuesioner soal nomor 4 Pertanyaan 4 No. Keterangan Responden Prosentase (%) 1 Sangat Setuju 0 0 2 Setuju 15 50 3 Biasa Saja 10 33.3 4 Tidak Setuju 5 16,7 5 Sangat Tidak Setuju 0 0 30 100 Jumlah Berdasarkan hasil prosentase diatas maka dapat disimpulkan sebanyak 15 orang atau 50% menyatakan setuju, 10 orang atau 33.3% menyatakan biasa saja dan 5 orang atau 16.7% menyatakan tidak setuju bahwa aplikasi chat bot ini sudah dapat memberikan informasi sesuai dengan yang dimaksud pengunjung. 5. Chat bot dapat menggantikan pekerjaan operator dalam memberikan informasi. 162 Tabel 4.23 Hasil pengujian kuesioner soal nomor 5 Pertanyaan No. 5 Keterangan Responden Prosentase (%) 1 Sangat Setuju 3 10 2 Setuju 20 66.7 3 Biasa Saja 0 0 4 Tidak Setuju 7 23.3 5 Sangat Tidak Setuju 0 0 30 100 Jumlah Berdasarkan hasil prosentase diatas maka dapat disimpulkan sebanyak 3 orang atau 10 % menyatakan sangat setuju, 20 orang atau 66.7% menyatakan dan 7 orang atau 23.3% menyatakan tidak setuju bahwa chat bot menggantikan pekerjaan operator. Kesimpulan Pengujian Beta Berdasarkan pengujian beta diatas, bahwa dapat diambil kesimpulan bahwa: 1. Pengguna lebih tertarik dengan penggunaan chat bot yang lebih interaktif. 2. Percakapan yang terjadi antara chat bot dengan pengguna sudah hampir mendekati percakapan yang dilakukan antara dua individu manusia. 3. Aplikasi ini masih memerlukan proses penalaran mengenai input pengguna yang lebih baik. 4. Aplikasi ini juga dapat menarik pengunjung web bagi perusahaan terkait. BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan Berdasarkan hasil implementasi dan pengujian yang telah dilakukan pada aplikasi natural language processing untuk pembuatan chat bot berbasis web ini maka dapat diambil kesimpulan sebagai berikut: 1. Dengan menerapakan pendekatan Natural Language Processing pada aplikasi chat bot percakapan yang terjadi layaknya dilakukan antara manusia dengan manusia. 2. Percakapan dilakukan melalui akses internet sehingga pengguna dapat melakukan percakapan dengan chat bot kapan dan dimana saja. 3. Aplikasi chat bot ini memberikan layanan informasi dalam suatu bidang sehingga pencarian informasi menjadi lebih interaktif, khusunya dalam informasi seputar akademik universitas komputer Indonesia. 5.2 Saran Penulis telah melakukan penelitian, desain, perancangan, dan melakukan implementasi sebuah sistem cerdas untuk pembuatan aplikasi chat bot ini agar percakapan yang terjadi lebih natural (alami). Hasilnya mungkin saja masih jauh dari yang diharapkan. Oleh karena itu, penuli akan memberikan beberapa saran bagi anda yang hendak mengembangkan teknologi sistem cerdas ini lebih lanjut. 163 164 Berikut ini beberapa saran untuk pengembangan lebih lanjut, yaitu sebagai berikut : 1. Kepintaran chat bot ditentukan oleh banyaknya brain file sehingga perbanyak data responsnya. 2. Pada sistem aplikasi chat bot ini belum mengunakan jumlah kemiripan pattern terbesar atau pattern dengan nilai terbesar dengan teks yang diinputkan pengguna dalam proses pengambilan keputusan responnya sehingga chat bot dapat memberikan respon yang lebih akurat. 3. Agar pengguna dapat mengira chat bot adalah manusia maka diperlukan beberapa tambahan fungsi seperti mengingat nama pengguna sebelumnya, mengingat respon yang pernah dikatakan pengguna, atau yang lainya yang dapat menjadikan chat bot lebih terlihat manusiawi. DAFTAR PUSTAKA [1] Wiswakarma, Komang, (2009). Membuat Katalog Online Dengan PHP & CSS, Lokomedia, Yogyakarta. [2] Sugiyono, (2009). Metode Penelitian Kuantitatif, Kualitatif Dan R&D, Alfabeta, Bandung. [3] Zulkifri Amsyah, (2005), Manajemen Sistem Informasi, PT Gramedia Pustaka Utama, Jakarta. [4] Kurniawan, Rulianto, (2007), 54 Trik Tersembunyi PHP, Maxikom, Palembang. [5] Kadir, Abdul, (2002). ”Dasar Pemrograman Web Dinamis Menggunakan PHP”, Yogyakarta, ANDI. [6] Hakim, Lukmanul, (2008). Membongkar Trik Rahasia Para Master PHP, Lokomedia, Yogyakarta. [7] Kusumadewi, Sri (2003). Artificial Intelegence (Teknik dan Aplikasinya), Graha Ilmu, Yogyakarta, [8] Utdirartatmo, Firar (2001). Teknik Kompilasi, J&J Learning, Yogyakarta. [9] http://10106365.blog.unikom.ac.id/mengenal-chat-bot.qz [06/02/201211:02] [10] http://zulidamel.files.wordpress.com/2007/11/bagan-alir.pdf [08/03/201207:37] [11] http://sisfo08.blog.com/2011/10/diagram-konteks [08/03/2012 07:37] [12] http://tiaraantik.com/google-info/sejarah-pengertian-internet.html [07/05/12 07:30] 165 BIODATA PENULIS Nama : Fendy Ridwan Nim : 10107395 Tempat / Tgl Lahir : Cianjur, 12 Mei 1988 Jenis Kelamin : Laki-laki Alamat : Jl. Landbau , Rt.02/08 No.77A 43253 Cipanas- Cianjur. Telepon : 085659069264 Email : f3n_wan@yahoo.co.id Pendidikan 1. 1994 – 1995 : TK Perwari Cipanas. 2. 1995 – 2001 : SD Mardiyuana Cipanas. 3. 2001 – 2004 : SMP Mardiyuana Cipanas. 4. 2004 – 2007 : SMA Pasundan 1 Cianjur 5. 2007 - 2012 : Program Studi S1 Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia Nim Nama Pembimbing Penguji 1 Penjuji 2 : : : : : 10107395 Fendy Ridwan Mira Kania Sabariah, S.T.,M.T. Andri Heryandi, S.T., M.T. Adam Mukharil Bachtiar, S.KOM  Kebutuhan manusia akan informasi yang cepat  Penggunaan aplikasi pada tempat observasi penelitian harus dilakukan minimal oleh 2 individu.  Keterbatasan waktu dan jumlah operator.  Aplikasi pencarian informasi dapat lebih interaktif dan menarik perhatian  Maksud  Tujuan Membangun aplikasi Natural Language Processing (NLP) untuk pembuatan Chat Bot berbasis web Menerapkan pendekatan Natural Language Processing pada aplikasi Chat Bot Membuat aplikasi yang memiliki kecerdasan sendiri dalam berkomunikasi. Dapat memberikan informasi lebih menarik dan interaktif. Percakapan hanya dapat dilakukan dalam bahasa indonesia. Hanya menanggapi percakapan dalam bahasa alami (tidak menanggapi karakter khusus) Menanggapi sapaan, profil chat bot, kalimat pujian, dan kata-kata kasar (ejekan) Kepintaran chat bot dapat ditanamkan melalui pengelolaan admin Menggunakan bahasa pemograman PHP dan Javascript Menyimpanan database menggunakan MYSQL Dreamweaver 8 sebagai software editor HTML  Sistem aplikasi chat saat ini, dilakukan dengan membutuhkan operator yang mempunyai keterbatasan waktu dan jumlah.  Skema sistem pada Chat bot MILA 2. 1.3.Pengguna Program Program memproses komputer menginputkan menyesuaikan datastring input bahasa dari input pengguna alami pengguna kemenjadi program dengan 4. Program chat bot memberikan respon ke pengguna. bahasa chat kata bot kunci yang yang dari dapat berada database. dimengerti dilingkungan oleh komputer. UNIKOM.  Masalah-masalah yang timbul saat pembuatan chat bot antara lain :  1. Kemampuan Memproses Bahasa Alami.  2. Alur Pembicaraan yang Dapat Meluas.  3. Respon yang dinamis  Merespon pernyataan dan pertanyaan yang sama.  4. Kepintaran Chat Bot yang ditentukan oleh  pengetahuan pada Brainfile (database) Start  Prosedur Tiara Tampilkan halaman Home Input kata Tekan enter Panggil bot program Tampilkan Respon Ya Input lagi Tidak Tekan Tombol Help Tekan Tombol About Tampil halaman help Tampil halaman about Selesai  Model Kerja Global Bot Program a-z,’ ’,A-Z,0-9 Q0 a-z,’ ’,A-Z,0-9 Q1  Didapat aturan produksi sebagai berikut :  Penulusuran pattern kata kunci dilakukan saat chat bot menerima inputan berupa teks dari pengguna.  Berikut adalah flowchart dari penulusuran pattern kata kunci : Implementasi algoritma brute force dilakukan saat pencarian pattern kata kunci pada teks. Berikut adalah flowchart dari algoritma Brute Force :  Input Pengguna adalah  SIAPA NAMA KAMU YAH  Pattern Kata Kunci :  Sistem akan membandingkan semua pattern kata kunci yang ada satu-persatu dengan teks pengguna 1. Pencarian Pattern Kata Kunci Pertama yaitu NAMA Pattern Kata Kunci NAMA ditemukan isi variabel thisKey = NAMA  Kemudian bandingkan panjang karakter thisKey dengan bestKey. Karena thisKey > bestKey maka bestKey = thisKey (bestKey = NAMA") 2. Pencarian Pattern Kata Kunci Kedua Yaitu NAMA KAMU Pattern kata kunci NAMA KAMU ditemukan pada teks : isi variabel thisKey dengan pattern kata kunci NAMA KAMU  Kemudian bandingkan panjang karakter thisKey dengan panjang karakter bestKey karena thisKey > bestKey maka : bestKey = thisKey (bestKey = NAMA KAMU") 3. Pencarian Pattern Kata Kunci Kedua Yaitu SAMA Tidak ditemukan pattern kata kunci SAMA pada teks. Nilai bestKey tetap NAMA KAMU Semua pattern kata kunci sudah dibandingkan, sehingga sistem pattern NAMA KAMU sebagai kata kunci dari teks. sKeyWord = bestKey (sKeyWord = NAMA KAMU )  Entity Relation Ship (ERD) Tb_stoplist Id_stoplist input Catatan_percakapan N Mengelola mengelola 1 1 Kata_kunci Id_admin Bot_resp N Mengelola 1 User 1 Mengelola respons N noKey_Respon  Diagram Konteks SuperAdmin Data_login_superadmin Data_admin Data_bot_resp, Data_nokey_respon Data_tb_stoplist Data_catatan_percakapan Info_login_superadmin Info_admin Info_bot_resp Info_nokey_respon info_nokey_respon Info_catatan_percakapan Data_login_admin Data_bot_resp, Data_nokey_respon Data_tb_stoplist Data_catatan_percakapan Data_text pengunjung Pembangunan aplikasi Natural Language Processing untuk pembuatan chatbot berbasis web Pengunjung Info_bot_resp Info_nokey_respon Data Catatan_percakapan Admin Info_login_admin Info_bot_resp Info_nokey_respon Info_tb_stoplist Info_catatan_percakapan Info text pengunjung Catatan_percakapan catatan_percakapan PK noKey_respons input PK tanggal FK1 id_admin respons id_topic FK1 id_user bot_resp PK kata_kunci user PK id_admin respons FK1 id_admin id_topic nomor nama_lengkap password level tb_stoplist PK id_stoplist stoplist FK1 id_admin  Berikut adalah flowchart login ketika superadmin dan superadmin mulai mengkases aplikasi Komponen yang diuji NLP (Natural Language Processing) Skenario Pengujian Jenis Pengujian Pencocokan pattern kata kunci dengan teks White Box Penanganan pattern kata kunci yang tidak ditemukan (unknown keyword) dan Penanganan pengulanan input user (user repition) White Box Help Menampilkan halaman help Black Box About Menampilkan halaman about Black Box  Algoritma yang diuji  Flow Graph  Cyclomatic Complexity V(G) E =15, N = 13 V(G) = E – N + 2 V(G) = 15 – 13 + 2 V(G) = 2 + 2 = 4 Keterangan : E = Jumlah aksi N = Jumlah kondisi  Independent Path Path 1 =(1) – (14) –(15) Path 2 =(1) –(2) –(3) – (13) –(1) – (14) –(15) Path 3 =(1)-(2)-(3)-(4)-(6)-(7)-(8,9,10)-(11)-(12)-(3)-(13)-(1)(14)-(15) Path 4 =(1)-(2)-(3)-(4)-(5)-(4)-(6)-(7)-(8,9,10)-(11)-(12)-(3)(13)-(1)-(14)- (15)  Graph Matriks  Algoritma yang diuji :  Flow Graph  Cyclomatic Complexity V(G) E =12, N = 11 V(G) = E – N + 2 V(G) = 12 – 11 + 2 V(G) = 1 + 2 = 3 Keterangan : E = Jumlah aksi N = Jumlah kondisi  Independent Path Path 1 = (1) – (2) –(3) –(11) Path 2 = (1) –(4) –(5) –(6) –(7) –(10) –(11) Path 3 = (1) –(4) –(5) –(8) –(9) –(10) –(11)  Graph Matriks  Aplikasi chat bot dapat melakukan percakapan yang terjadi layaknya dilakukan seperti manusia  Percakapan dilakukan tanpa adanya batasan waktu  Aplikasi chat bot ini memberikan layanan informasi dalam suatu bidang sehingga pencarian informasi menjadi lebih interaktif, khusunya dalam informasi seputar akademik universitas komputer Indonesia.
Informasi dokumen
Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia) 4.5 Flowchart Algoritma Brute Force Algoritma Brute Force Pattern Matching Analisis Masalah Analisis Sistem Analisis Semantik Turing Test Bottom-Up Parsing Top-Down Parsing Chat Bot Landasan Teori DFD Data Flow Diagram DFD Level 1 Proses 3 Pengolahan Data DFD Level 2 Proses 3.1 Proses Pengolahan Data Bot_resp DFD Level 2 Proses 3.2 Proses Pengolahan Data NoKey_Respon Tabel User Flowchart Metode Analisis Yang digunakan Flowchart Penulusuran Pattern Model Kerja Sistem Program Identifikasi Masalah Batasan Masalah Sistematika Penulisan Implementasi Database Implementasi Sistem Kamus Data Data Dictionary Kecerdasan Buatan Landasan Teori Keuntungan Basis data Basis Data Konsep Kecerdasan Buatan Aplikasi Kecerdasan Buatan Latar Belakang Masalah PENDAHULUAN Model Kerja Global Bot Program Analisis Parsing Pencarian Untuk Pattern Pencarian Untuk Pattern Kedua Yaitu ”REKTOR UNIKOM” Pengertian Natural Language Processing PHP MySQL Perangkat Lunak Pengembang Prosedur Tiara Model Kerja Sistem Program Scanner Analisis Leksikal Pohon Sintaks Tabel Bot_resp Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia) Tabel Nokey_respons Tabel Catatan_percakapan Tabel Tb_stoplist Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia) Tahap pengembangan Perangkat Lunak Tujuan basis data Basis Data Tujuan Kecerdasan Buatan Landasan Teori
Dokumen baru
Aktifitas terbaru
Penulis
123dok avatar

Berpartisipasi : 2016-09-17

Dokumen yang terkait

Pembangunan Aplikasi Natural Language Process..

Gratis

Feedback