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

(1)

(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)