Pembangunan Aplikasi Natural Language Processing Untuk Pembuatan Chat Bot Berbasis Web (Di Universitas Komputer Indonesia)
(2)
(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
(3)
(4)
(5)
i
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
seakan-akan 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
(6)
ii
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.
(7)
iii 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 sebesar-besarnya 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.
(8)
iv
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
(9)
v
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
(10)
vi
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.1Pengertian 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.2Top-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
(11)
vii
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
(12)
viii
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
(13)
ix
4.2 Pengujian Perangkat Lunak ...133
4.2.1 Pengujian Alpha ...133
4.2.1.1Skenario Pengujian Alpha ...134
4.2.1.2Kasus 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.3Kasus dan Hasil Pengujian (White box Testing) ...147
4.2.1.4Kesimpulan 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
(14)
1
1.1Latar 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.
(15)
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
(16)
1.2Identifikasi 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.3Maksud dan Tujuan 1.3.1 Maksud
Maksud dari penelitian ini adalah membangun aplikasi Natural Language
Processing (NLP) untuk pembuatan ChatBot 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
(17)
1.4Batasan 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 ChatBot 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.5Metodologi 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.
(18)
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 :
(19)
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.
(20)
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.
(21)
1.6Sistematika 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
(22)
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
(23)
10
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
(24)
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.
(25)
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 angka-angka (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.
(26)
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
(27)
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.
(28)
· 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.
(29)
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-to-speech), 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
(30)
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.
(31)
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 sehari-harinya 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
(32)
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 ...".
(33)
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.
(34)
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
(35)
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 kata-kata tersebut digabung untuk menghasilkan suatu kalimat, apa arti suatu kata-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
(36)
(tata bahasa) dan lexicon (kosa kata) tertentu. Proses kedua ialah semantic
interpretation atauinterpretasi semantik yang bertujuan untuk merepresentasikan arti dari kalimat secara context-independent untuk keperluan lebih lanjut. Sedangkan proses ketiga ialah 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.
(37)
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
(38)
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 token
-nya.
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.
(39)
Simbol-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 variabel-variabel, 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.
(40)
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
(41)
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 non-terminal. 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
(42)
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
(43)
(44)
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:
(45)
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
<sentence>
<subject> <predicate>
<noun phrase> <verb phrase>
<noun phrase>
<adjective> <verb> <adverbial phrase>
the <adjective> <noun phrase> jumped <preposition> <noun phrase>
<adjective> <noun phrase>
<noun> brown
quick
fox
over <adjective> <noun phrase>
the <adjective> <noun phrase>
lazy <noun>
dog
(46)
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
(47)
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
(48)
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 input-output dari sistem.
(49)
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 flowdiagram (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.
(50)
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.
(51)
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
objek-objek 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
(52)
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
(53)
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).
(54)
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
(55)
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).
(56)
43
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 bagian-bagian 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.
(57)
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
(58)
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
(59)
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 :
<Pengguna> Apa kabar ?
<Bot > Kabarku baik-baik saja.
<Pengguna> Apa kabar ? <Bot > ....?
<Pengguna> Apa kabar ?
<Bot > Mengapa kamu mengulangi perkataanmu ?
<Pengguna> Ok <Bot > Ok.
<Pengguna> Apa kabar ?
<Bot > Baik-baik saja.
Dari percakapan di atas dapat dilihat bahwa chat bot memberikan
respon terhadap pertanyaan ”Apa kabar ?” yang diulang beberapa kali
(60)
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
(61)
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.
(62)
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
(63)
Start
Panggil bot program Tampilkan halaman Home
Input lagi
Ya
Selesai
Tekan Tombol Help Tekan Tombol About
Tidak Input kata
Tekan enter
Tampilkan Respon
Tampil halaman help Tampil halaman about
(64)
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 token
-token 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
(65)
Start
Solusi pencocokan pattern dengan teks
Cek pattern dalam brain file Percakapan selesai Ada Tidak Ya tidak Ambil Respon yang sesuai Input lagi
Panggil fungsi pengalih respon kemudian simpan input pengguna
kedalam catatan_percakapan
Input respon baru ?
Tidak
Olah data respon baru oleh admin/
Botmaster Ya
Simpan hasil input bersama dengan respon ke dalam
brain file Cek input user
yang baru diinputkan dengan
input user sebelumnya
Cek pola input user
Tidak sama Panggil fungsi
untuk Input yang sama Sama Tampilkan respon Berikan respon pengalih ke pengguna Terima input pengguna
(66)
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 :
Q0 a-z,’ ’,A-Z,0-9
a-z,’ ’,A-Z,0-9
Q1
(67)
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|<space>A|a..Z|A..Z|0..9|<space> A -> aA..zA| AA..ZA |0A-9A| <space>A|a..Z|A..Z|0..9|<space>
Dimana secara formal dapat ditulis : V = {S, A}
T = {a-z,‟ „ A-Z,0-9}
P = {S->aA..zA|AA..ZA|0A..9A|<space>A|a..Z|A..Z|0..9|<space>, A->aA..zA| AA..ZA |0A..9A|<space>A|a..Z|A..Z|0..9|<space>} S = S
(68)
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.
(69)
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
i < S
P = List_pattern[i] ya
Pencocokan pattern yang ada dalam teks dengan algoritma
brute force
Pattern cocok dengan teks
Cari pattern berikutnya
I = I +1 tidak Selesai ya tidak Respons bot Terima input dari pengguna,
kemudian tentukan panjang teks
thisKey = P
If(thisKey.length >bestKey.length) bestKey =thisKey ya sKeyWord =bestKey List pattern kata kunci habis belum Tidak
(70)
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
(71)
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
J = 1 ya
J ≤ m and P[j] = T[s+j]
J = J + 1 tidak
J = M ya
S = S + 1
Ketemu ya
Selesai Tidak
Tidak
(72)
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,
(73)
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
satu-persatu 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 dari teks
(74)
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.
(75)
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.
(76)
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
(77)
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
Kata_kunci respons
N
Mengelola 1 Mengelola
1 Mengelola
noKey_Respon
Bot_resp User 1 N
Id_admin 1
mengelola N N
Tb_stoplist Id_stoplist input Catatan_percakapan
(78)
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
(1)
(2)
(3)
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)
(4)
(5)
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.
(6)