Pembangunan Aplikasi Bantu Kecerdasan Buatan Pembelajaran Dan Penyelesaian Pada Permasalahan Ruang Keadaan (State And Space)

(1)

(2)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

ARI WIBOWO

10107371

PROGRAM STUDI S1

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG

2012


(3)

(4)

(5)

i

ABSTRAK

PEMBANGUNAN APLIKASI BANTU KECERDASAN BUATAN PEMBELAJARAN DAN PENYELESAIAN

PADA PERMASALAHAN RUANG KEADAAN (STATE AND SPACE)

Oleh

ARI WIBOWO 10107371

Permasalahan ruang keadaan merupakan salah satu permasalahan yang dipelajari dalam bidang ilmu kecerdasan buatan. Permasalahn ruang keadaan membahas tentang suatu ruang yang berisi semua keadaan yang mungkin. Kriteria permasalahan ini identik dengan permasalahan tempat, kondisi dan waktu. Salah satu permasalahan umum yang terdapat dalam ruang keadaan ini adalah Farmer’s problem (permasalahan petani) yang dapat dideskripsikan sebagai berikut, seorang petani akan menyeberangkan seekor kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit yang melalui sungai.

Penyelesaian permasalahan ini menggunakan metode Searching yaitu pencarian melebar pertama (Breadth-First Search), dimana dalam langkah penyelesaiannya menggunakan pohon pelacakan terpendek. Pada metode ini dapat diterapkan dalam sebuah algoritma pemrograman komputer, sehingga dapat dibuatkan perangkat lunak komputer atau aplikasi yang dapat membantu pembelajaran dan penyelesaian permasalahan ruang keadaan.

Pada tugas akhir ini, perangkat lunak atau aplikasi yang dirancang adalah aplikasi yang dibangun untuk membantu akademisi dalam mempelajari dan menyelesaikan contoh kasus permasalahan ruang keadaan. Representasi pengetahuan yang digunakanadalah tabel keputusan, pohon pelacakan serta aturan kaidah produksi berbentuk IF-THEN-ELSE. Metode pencariannya menggunakan Breadh First Search.

Berdasarkan hasil pengujian, aplikasi ini dapat membantu akademisi dalam mempelajari dan menyelesaikan permasalahan ruang keadaan. Informasi dikemas dalam sebuah simulasi sehingga menghasilkan tampilan kombinasi penyelesaian serta hasil akhirnya yaitu solusi akhir tercapai.

Kata Kunci : kecerdasan buatan, permasalahan ruang keadaan, breadth-first search.


(6)

ii

LEARNING AND COMPLETION PROBLEMS IN THE EVENT

(STATE AND SPACE)

By

ARI WIBOWO 10107371

Problems of state space is one of the problems studied in the field of artificial intelligence. Problem discuss the state space of a space that contains all possible states. Criteria for this problem is identical to the problems of the place, and time conditions. One of the problems that are common in this state space is the Farmer's problem that can be described as follows, a farmer will take across a goat, a wolf and vegetables with a raft through the river.

Completion of this problem using a method first searches the search widened (Breadth-First Search), where in the step tracking solution using the shortest tree. In this method can be applied in a computer programming algorithm, so it can be created for a computer or application software that can help learning and solving problems of state space.

On this thesis, software or applications that are built applications designed to help scholars in the study and solve the problem state space case. Knowledge representation digunakanadalah decision tables, trees and tracking rules in the form of production rules of IF-THEN-ELSE. Search method using Breadh First Search.

Based on the results of testing, this application can help academics in studying and solving the problems the state space. Information is packaged in a simulation that produces a combination of display resolution and the end result is the final solution is reached.

Keywords : artificial intelligence, problem state space, breadth-first


(7)

iii

Dengan segala kerendahan hati dan puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan kekuatan dan kesabaran sehingga penulis dapat menyelesaikan Skripsi yang berjudul “Aplikasi Bantu Kecerdasan Buatan Pada Permasalahan Ruang Keadaan”.

Skripsi ini disusun untuk melengkapi persyaratan dalam menyelesaikan program studi Strata Satu (S1) pada Jurusan Teknik Informatika Universitas Komputer Indonesia (UNIKOM) Bandung.

Selama penyusunan dan penulisan Skripsi ini tentunya tidak terlepas dari bantuan dan bimbingan dari berbagai pihak, baik dalam bentuk moril maupun materil. Selanjutnya ucapan terima kasih yang tulus penulis sampaikan kepada semua pihak yang dengan keikhlasan hati banyak memberikan bantuan untuk kelancaran studi dan penyusunan Skripsi, yaitu kepada yang terhormat :

1. Orang tua tercinta dan keluarga besar yang telah banyak membantu dan memberikan dukungannya semoga perlindungan dan keselamatan dari Allah SWT selalu menyertai;

2. Dr. Ir. Eddy Soeryanto Soegoto selaku rektor Universitas Komputer Indonesia;

3. Mira Kania Sabariah, S.T., M.T. selaku Ketua Juruan Teknik Informatika Universitas Komputer Indonesia;


(8)

iv

5. Nelly Indriani W, S.si., M.T. selaku Penguji 1; 6. Galih Hermawan, S.Kom., M.T. selaku Penguji 3;

7. Eko Budi Setiawan, S.Kom. selaku dosen wali Kelas IF-9 2007;

8. Seluruh staf Dosen Jurusan Teknik Informatika Universitas Komputer Indonesia;

9. Sekretariat Jurusan Teknik Informatika Universitas Komputer Indonesia;

10.Rekan-rekan IF9 2007 yang senantiasa memberikan semangat dan motivasi;

11.Keluarga besar KSR PMI UNIKOM yang senantiasa memberikan semangat dan motivasi;

12.Semua pihak yang tidak dapat penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam penyusunan Skripsi ini masih banyak kekurangan dan masih jauh dari kesempurnaan karena keterbatasan kemampuan maupun pengetahuan penulis. Untuk itu penulis mengharapkan saran dan kritik yang sifatnya membangun dari semua pihak. Besar harapan penulis, semoga Skripsi ini dapat bermanfaat bagi kita semua, khususnya bagi Mahasiswa Unikom Jurusan Teknik Informatika.

Wassalamualaikum Wr. Wb.

Bandung, Maret 2012


(9)

v

DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

ABSTRAK...i

ABSTRACT...ii

KATA PENGANTAR...iii

DAFTAR ISI...v

DAFTAR TABEL...ix

DAFTAR GAMBAR...x

DAFTAR LAMPIRAN...xi

BAB 1PENDAHULUAN...1

1.1 Latar Belakang Masalah...1

1.2 Perumusan Masalah...3

1.3 Maksud dan Tujuan...3

1.4 Batasan Masalah...4

1.5 Metodologi Penelitian...6

1.6 Sistematika Penulisan...8

BAB 2TINJAUAN PUSTAKA...10

2.1 Artificial Intelligence (AI) ...10


(10)

vi

2.1.2Definisi AI...11

2.1.3AI dari Berbagai Sudut Pandang...13

2.1.4Komputasi AI dan Komputasi Konvensional...15

2.2 Representasi Pengetahuan ...16

2.2.1Logika...16

2.3 Masalah Ruang Keadaan (Space and Search Problem)...18

2.4 Metode Pencarian dan Pelacakan ...19

2.4.1Pencarian Buta (BlindSearch)...19

2.4.1.1Pencarian Melebar Pertama (Breadth-First Search)...19

2.4.1.2Pencarian Mendalam Pertama (Depth-First Search)...21

2.4.2Pencarian Heuristik (HeuristicSearch)...23

2.4.2.1Generate and Test...24

2.4.2.2Hill Climbing...25

2.4.2.3Best First Search...27

2.4.2.4Simulated Annealing...28

2.5 Rekaya Perangkat Lunak...30

2.5.1 Pengertian Rekayasa Perangkat Lunak...30

2.5.2Tujuan Rekayasa Perangkat Lunak...31

2.5.3Ruang Lingkup Rekayasa Perangkat Lunak...32

2.5.4Rekayasa Perangkat Lunak Dan Disiplin Ilmu Lain...33


(11)

vii

2.5.6Metode Rekayasa Perangkat Lunak...36

2.5.7Tahapan Rekayasa Perangkat Lunak...38

2.6 Microsoft Visual Basic 6.0...41

BAB 3ANALISIS DAN PERANCANGAN...44

3.1 Analisis Sistem...44

3.1.1Analisis Masalah...44

3.1.2Analisis Data...45

3.1.2.1Data Masukan...45

3.1.2.2Analisis Metode Penyelesaian...46

3.1.3Analisis Informasi...54

3.1.4Analisis Fungsional...55

3.1.4.1ERD dan Skema Relasi...55

3.1.4.2 Diagram Konteks...57

3.1.4.3Data Flow Diagram (DFD)...58

3.1.4.4Spesifikasi Proses...64

3.1.4.5Struktur tabel...71

3.1.5Analisis Kebutuhan Non-Fungsional...73

3.1.5.1Analisis Perangkat Keras...73

3.1.5.2Analisis Pengguna...74

3.2 Perancangan Perangkat Lunak...74


(12)

viii

3.2.2Perancangan Antar Muka...75

BAB 4IMPLEMENTASI DAN PENGUJIAN...86

4.1 Implementasi Sistem...86

4.1.1Implementasi Perangkat Keras...87

4.1.2Implementasi Perangkat Lunak...87

4.1.3Implementasi Basis Data...88

4.1.4Implementasi Form...89

4.1.5Implementasi Antarmuka...91

4.1.6 Implementasi Algoritma Pohon Pelacakan...99

4.2 Pengujian WhiteBox...107

4.2.1Diagram Alir...107

4.2.2Algoritma Program...108

4.2.3Matriks Grafik...109

4.2.4Kesimpulan Hasil Pengujian WhiteBox...111

4.3 Pengujian Black Box...111

4.3.1Rencana Pengujian...111

4.3.2Kasus dan Pengujian Alpha...112

4.3.2.1Pengujian Melihat Teori...112

4.3.2.2Pengujian Pengolahan Problem...114

4.3.2.3Pengujian Pengolahan Variabel...115


(13)

ix

4.3.2.5Pengujian Melihat Solusi...119

4.3.3Kesimpulan Hasil Pengujian Alpha...122

4.3.4Pengujian Betha...122

4.3.5Kesimpulan Pengujian Betha...125

BAB 5KESIMPULAN DAN SARAN...126

5.1Kesimpulan...126

5.2Saran...127


(14)

1 1.1 Latar Belakang Masalah

Kecerdasan Buatan atau Artificial Intelligence (AI) merupakan salah satu bagian ilmu komputer yang mempelajari tentang bagaimana cara membuat agar komputer dapat melakukan pekerjaan seperti yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan umat 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.

Salah satu teori kecerdasan buatan yang dibahas yaitu mengenai permasalahan Ruang Keadaan (State and Space). Kasus ruang keadaan sering kita jumpai dalam kehidupan sehari-hari, terutama pada permasalahan yang membutuhkan aturan-aturan tertentu untuk menyelesaikan permasalahan, dan salah satu pendekatan terbaik untuk menyelesaikan permasalahan tersebut yaitu dengan menggunakan permasalahan State and Space yang dibahas dalam bidang keilmuan kecerdasan buatan.

State merupakan representasi suatu keadaan pada suatu saat ataupun deskripsi konfigurasi sistem. State and space adalah semua state yang mungkin, dan biasanya digambarkan sebagai jaringan dengan verteks merupakan state dan


(15)

edge merupakan perubahan yang mungkin. Representasi state and space memungkinkan definisi formal suatu masalah sebagai persoalan dengan mengubah status dengan menggunakan sekumpulan operator (rule) dan juga mendefinisikan masalah sebagai search yaitu mencari lintasan di dalam state and space dari initial state ke goal state. Salah satu permasalahan umum yang terdapat dalam state and space ini adalah Farmer’s problem (permasalahan petani) yang dapat dideskripsikan sebagai berikut, seorang petani akan menyeberangkan seekor kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit yang melalui sungai.

Permasalahan ini akan dimodifikasi sehingga dapat digunakan untuk menyelesaikan semua persoalan yang hampir mirip dengan permasalahan ini. Permasalahan ini dapat diselesaikan dengan menggunakan tahapan-tahapan berikut ini, tahapan pertama dimulai dari identifikasi ruang keadaan (state and space) yaitu dengan mendeklarasikan permasalahan ini dengan menentukan jumlah variabel yang ada dalam permasalahan ini, dilanjutkan dengan mendeskripsikan keadaan awal (initial state) pada kedua daerah yaitu daerah asal dan daerah tujuan serta sasaran (goal state) pada kedua daerah. Setelah itu, ditentukan aturan-aturan yang terdapat dalam permasalahan. Kemudian, permasalahan dapat diselesaikan dengan menggunakan bantuan pohon pelacakan. Kondisi-kondisi (state-state) yang mungkin digambarkan dalam suatu pohon biner dengan dimulai dari mendeklarasikan kondisi awal (start state) sebagai akar dari pohon biner. Proses dilanjutkan dengan menggambarkan kondisi (state)


(16)

berikutnya dari state tersebut hingga didapatkan kondisi yang diinginkan (goal state).

Berdasarkan uraian di atas, penulis ingin membangun suatu aplikasi

dengan judul “Pembangunan Aplikasi Bantu Kecerdasan Buatan Pembelajaran dan Penyelesaian Pada Permasalahan Ruang Keadaan (State

And Space) ”.

1.2 Perumusan Masalah

Berdasarkan uraian latar belakang masalah yang dikemukakan, maka dapat dirumuskan permasalahan sebagai berikut:

1. Bagaimana membangun aplikasi bantu sebagai media pembelajaran kecerdasan buatan pada permasalahan ruang keadaan.

2. Bagaimana membangun aplikasi bantu yang dapat mensimulasikan langkah penyelesaian permasalahan ruang keadaan.

3. Bagaimana membangun aplikasi yang menyediakan input dinamis oleh user untuk menambahkan kasus permasalahan-permasalahan ruang keadaan.

1.3 Maksud dan Tujuan

Adapun maksud penyusunan penelitian ini yaitu membantu pemahaman mengenai ruang keadaan (state and space) pada kecerdasan buatan dan aplikasi juga dapat digunakan sebagai media pendukung dalam proses belajar mengajar kecerdasan buatan.


(17)

Adapun tujuan penyusunan penelitian ini yaitu :

1. Membangun suatu aplikasi bantu kecerdasan buatan pembelajaran pada permasalahan ruang keadaan.

2. Membangun aplikasi untuk mensimulasikan langkah penyelesaian kasus-kasus yang menyerupai permasalahan dan aturan ruang keadaan.

3. Menyediakan aplikasi bantu kecerdasan yang dinamis, dimana user dapat memasukkan kasus permasalahan ruang keadaan yang ingin diselesaikan.

1.4 Batasan Masalah

Permasalahan yang akan dibahas mencakup beberapa hal yang dibatasai dalam ruang lingkup sebagai berikut :

1. Membangun aplikasi kecerdasan buatan sebagai media pembelajaran dan penyelesaian masalah ruang keadaan (State and Space) dengan menggunakan bahasa pemrograman Visual Basic 6.0.

2. Aplikasi berbentuk simulator yang menghasilkan suatu bentuk pemahaman mengenai permasalahan ruang keadaan.

3. Aplikasi menampilkan teori dasar dan manual mengenai permasalahan State and Space.

4. Problem atau kasus yang akan digunakan untuk mensimulasikan permasalahan ruang keadaan yaitu permasalahan tempat, kondisi, dan waktu. Seperti kasus yang sudah umum yaitu Farmers Problem, kemudian disertakan juga contoh kasus lainnya yang banyak disimulasikan dalam Game logic yaitu Family Crossing Problem, Angry Father dan juga permasalahan yang mirip yang telah dimodifikasi sendiri, dan dalam hal


(18)

ini penyelesaian permasalahan seperti kombinasi cannibal missionaries tidak disediakan dalam aplikasi.

5. Problem baru selain contoh diatas dapat diinputkan oleh user secara dinamis dengan memasukkan keadaan awal dari permasalahan, serta menginputkan variabel sendiri.

6. Aplikasi mencari dan menampilkan langkah penyelesaian terpendek (shortest path).

7. Metode penyelesaian menggunakan metode pencarian melebar pertama (Breadth-First Search) karena pencarian solusi ini tidak akan menemui jalan buntu, jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum (Shortest path) akan ditemukan dan yang dipilih. Karena sesuai dengan batasan masalah pada poin sebelumnya yaitu aplikasi mencari dan menampilkan langkah penyelesaian terpendek.

8. Jika tidak terdapat solusi, maka aplikasi akan menampilkan pesan kesalahan (error message) yang menandakan bahwa problem dan aturan yang dibuat oleh user melalui inputan tidak memenuhi format pada batasan masalah di poin 4.

9. Langkah penyelesaian dapat dijalankan secara manual maupun secara otomatis oleh aplikasi.


(19)

1.5 Metodologi Penelitian

Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :

1. Tahap pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini yaitu dengan Studi Literatur yaitu pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

2. Tahap pembuatan perangkat lunak.

Teknik analisis data dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya:

a. Rekayasa Perangkat Lunak (System Engineering)

Merupakan tahapan yang pertama kali dilakukan yaitu merumuskan sistem yang akan dibangun. Hal ini bertujuan agar pengembang benar-benar memahami sistem yang akan dibangun dan langkah-langkah serta kebijakan apa saja yang berkaitan dengan pengembangan sistem.

b. Analisis Kebutuhan (Requirements Analysis)

Melakukan analisis terhadap permasalahan yang dihadapi dan menetapkan kebutuhan perangkat lunak.

c. Perancangan (Design)


(20)

selama tahapan analisis kebutuhan. Hasil akhirnya berupa spesifikasi rancangan yang rinci sehingga mudah diwujudkan pada saat pemrograman.

d. Implementasi (Coding)

Pengkodean yang mengimplementasikan hasil perancangan kedalam kode atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan bahasa pemrograman tertentu.

e. Pengujian (Testing)

Melakukan pengujian yang menghasilkan kebenaran program. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan sudah diuji dan memastikan apakah hasil yang diinginkan sudah tercapai atau belum.

f. Perawatan (Maintenance)

Menangani perangkat lunak yang sudah selesai agar dapat berjalan dengan lancar dan terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan.


(21)

Requirements Definition

System and Software Design

Implementation and Unit Testing

Integration and System Testing

Operation and Maintenance

Gambar 1.1 Model Proses Waterfall (Sommerville, 2001)

1.6 Sistematika Penulisan

Sistematika penulisan ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika yang digunakan sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, perumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini menguraikan tentang tinjauan instansi, serta teori-teori yang menunjang dalam analisis, perancangan,dan pembangunan sistem.


(22)

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menjelaskan mengenai analisis yang dilakukan untuk dapatmerealisasikan sistem yang akan dibangun, serta menggambarkanperancangan aplikasi yang akan dibuat berdasarkan analisis sistem yang telah dilakukan.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi tentang implementasi aplikasi hasil perancangan yang telah dilakukan, serta pengujian terhadap sistem tersebut.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi rangkuman atau kesimpulan dari hasil analisis dan saran yang diperlukan untuk pengembangan aplikasi yang telah dibangun.


(23)

10

2.1 Artificial Intelligence (AI)

2.1.1 Sejarah AI

Kecerdasan buatan atau AI termasuk bidang ilmu yang relatif muda. Pada tahun 1950-an para ilmuan dan peneliti mulai memikirkan bagaimana caranya agar mesin dapat melakukan pekerjaannya seperti yang bisa dikerjakan oleh manusia. Alan Turing, seorang matematikawan dari Inggris pertama kali mengusulkan adanya tes untuk melihat bisa tidaknya sebuah mesin dikatakan cerdas. Hasil tes tersebut kemudian dikenal dengan Turing Test, dimana si mesin tersebut menyamar seolah-oleh sebagai seseorang di dalam suatu permainan yang mampu memberikan respon terhadap serangkaian pertanyaan yang diajukan. Turing beranggapan bahwa, jika mesin dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang lain, maka dapat dikatakan bahwa mesin tersebut cerdas, seperti layaknya manusia [1].

AI itu sendiri dimunculkan oleh seorang profesor dari Massachusetts Institute of Technology yang bernama John McCarthy pada tahun 1956 pada Darmouth Conference yang dihadiri oleh para peneliti AI. Pada konferensi tersebut juga didefinisikan tujuan utama dari kecerdasan buatan, yaitu mengetahui dan memodelkan proses-proses berpikir manusia dan mendesain mesin agar dapat menirukan kelakuan mesin tersebut.


(24)

Beberapa program AI yang mulai dibuat pada tahun 1956-1966, antara lain [1] :

1. Logic Theorist, diperkenalkan pada Dartmouth Conference, program ini dapat membuktikan teorema-teorema matematika.

2. Sad Sam, diprogram oleh Robert K. Lindsay (1960). Program ini dapat mengetahui kalimat-kalimat sederhana yang ditulis dalam bahasa Inggris dan mampu memberikan jawaban dari fakta-fakta yang didengar dalam sebuah percakapan.

3. ELIZA, diprogram oleh Joseph Weizenbaum (1967). Program ini mampu melakukan terapi terhadap pasien dengan memberikan beberapa pertanyaan dan jawaban.

2.1.2 Definisi AI

Kecerdasan buatan atau AI adalah salah satu bagian ilmu komputer yang mempelajari tentang bagaimana cara membuat agar komputer dapat melakukan pekerjaan seperti yang dilakukan oleh manusia. Tujuan dari AI adalah untuk memecahkan persoalan dunia nyata (bersifat praktis) dan memahami intelijensia (bersifat memahami) [1].

AI merupakan salah satu bagian ilmu komputer yang mempelajari tentang bagaimana cara membuat agar komputer dapat melakukan pekerjaan seperti yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan zaman, maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk


(25)

dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia.

Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di dunia ini karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan permasalahan. Namun bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan menalar yang baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula, dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik.

Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar. Untuk itu pada artificial intelligence, akan mencoba untuk memberikan beberapa metode untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang pintar.


(26)

2.1.3 AI dari Berbagai Sudut Pandang

AI dapat dilihat dari berbagai sudut pandang [3], antara lain: 1. Sudut pandang kecerdasan

AI akan membuat mesin menjadi „cerdas‟ (mampu berbuat seperti apa

yang dilakukan oleh manusia). 2. Sudut pandang penelitian

AI adalah suatu studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia.

Domain yang sering dibahas oleh para peneliti meliputi:

a. Mundane task

- Persepsi (vision & speech).

- Bahasa alami (understanding, generation & translation). - Pemikiran yang bersifat commonsense.

- Robot control. b. Formal task

- Matematika (geometri, logika, kalkulus integral, pembuktian). - Permainan / games.

c. Expert task

- Analisis finansial. - Analisis medikal.

- Analisis ilmu pengetahuan.

- Rekayasa (desain, pencarian kegagalan, perencanaan manufaktur)


(27)

3. Sudut pandang bisnis.

AI adalah kumpulan peralatan yang sangat powerful dan metodologis dalam menyelesaikan masalah-masalah bisnis.

4. Sudut pandang pemograman.

AI meliputi studi tentang pemograman simbolik, penyelesaian masalah (problem solving) dan pencarian (searching).

Untuk menciptakan aplikasi AI ada 2 bagian utama yang sangat dibutuhkan [3] yaitu:

1. Basis Pengetahuan (Knowledge Base), berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan yang lainnya.

2. Motor Inferensi (Inference Engine), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.

Basis Pengetahuan

KOMPUTER Input:

masalah, pertanyaan,

dll

Motor Inferensi

Output: jawaban,

solusi.


(28)

2.1.4 Komputasi AI dan Komputasi Konvensional

Seperti telah diketahui sebelumnya, bahwa pada awal diciptakannya, komputer hanya diperuntukkan sebagai alat hitung (komputasi konvensional). Untuk itu, ada beberapa perbedaan antara komputasi yang dilakukan pada AI dengan komputasi konvensional tersebut. Perhatikan tabel berikut [3].

Tabel 2.1. AI Vs. Pemograman konvensional

Dimensi AI Pemograman

Konvensional Pemrosesan Mengandung konsep-konsep

simbolik Algoritmik

Sifat Input Bisa tidak lengkap Harus lengkap

Pencarian Kebanyakan bersifat heuristik Biasanya didasarkan pada algoritma

Keterangan Disediakan Biasanya tidak

disediakan

Fokus Pengetahuan Data dan informasi

Struktur Kontrol dipisahkan dari pengetahuan

Kontrol terintegrasi dengan informasi (data)

Sifat output Kuantitatif Kualitatif Pemeliharaan

& update Relatif mudah Sulit Kemampuan


(29)

2.2 Representasi Pengetahuan

Untuk menyelesaikan suatu permasalahan dalam AI, dibutuhkan pengetahuan yang cukup. Tidak hanya itu, sistem juga harus memiliki kemampuan unuk menalar. Basis pengetahuan dan kemampuan untuk melakukan penalaran merupakan bagian terpenting dari sistem yang menggunakan AI. Meskipun suatu sistem memiliki banyak pengetahuan, namun apabila tidak memiliki kemampuan untuk menalar, tentu akan menjadi percuma saja. Demikian pula sebaliknya, apabila suatu sistem memiliki kemampuan yang sangat handal untuk menalar, namun basis pengetahuan yang dimilikinya tidak cukup, maka solusi yang diperoleh pun menjadi tidak maksimal.

2.2.1 Logika

Logika adalah bentuk representasi pengetahuan yang paling tua. Pada dasarnya, proses logika adalah proses membentuk kesimpulan atau menarik suatu inferensi berdasarkan fakta yang telah ada. Input dari proses logika berupa premis atau fakta-fakta yang diakui kebenarannya sehingga dengan melakukan penalaran pada proses logika dapat dibentuk suatu inferensi atau kesimpulan yang benar pula.

Proses

Logika

Input: Premis

atau Fakta

Output: Inferensi

atau Konklusi


(30)

Ada 2 penalaran yang dapat dilakukan untuk mendapatkan konklusi [3]:

1. Penalaran Deduktif.

Penalaran dimulai dari prinsip umum untuk mendapatkan konklusi yang lebih khusus.

Contoh:

Premis Mayor : Jika hujan turun, saya tidak akan berangkat kuliah. Premis Minor : Hari ini hujan turun.

Konklusi : Hari ini saya tidak akan berangkat kuliah. 2. Penalaran Induktif.

Penalaran dimulai dari fakta-fakta khusus untuk mendapatkan kesimpulan umum.

Premis-1 : Aljabar adalah pelajaran yang sulit.

Premis-2 : Geometri adalah pelajaran yang sulit.

Premis-3 : Kalkulus adalah pelajaran yang sulit.


(31)

2.3 Masalah Ruang Keadaan (Space and Search Problem)

Sistem yang menggunakan kecerdasan buatan akan mencoba untuk memberikan output berupa solusi dari suatu masalah berdasarkan kumpulan pengetahuan yang ada.

Sistem yang menggunakan AI

MASALAH

Basis Pengetahuan

Inference Engine

SOLUSI

Gambar 2.3. Sistem yang menggunakan AI [3]

Pada Gambar 2.3, input yang diberikan pada sistem yang menggunakan kecerdasan buatan berupa masalah. Pada sistem harus dilengkapi dengan sekumpulan pengetahuan yang ada pada basis pengetahuan. Sistem harus memiliki inference engine agar mampu mengambil kesimpulan berdasarkan fakta atau pengetahuan. Output yang diberikan berupa solusi masalah sebagai hasil dari inferensi.

Secara umum, untuk membangun suatu sistem yang mampu menyelesaikan masalah, perlu dipertimbangkan 4 hal:

1. Mendefinisikan masalah dengan tepat. Pendefinisian ini mencakup spesifikasi yang tepat mengenai keadaan awal dan solusi yang diharapkan. 2. Menganalisis masalah tersebut serta mencari beberapa teknik penyelesaian


(32)

3. Merepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah tersebut.

4. Memilih teknik penyelesaian masalah yang terbaik.

2.4 Metode Pencarian dan Pelacakan

Hal terpenting dalam menentukan keberhasilan sistem yang berlandaskan kecerdasan buatan adalah kesuksesan dalam pencarian dan pencocokan. Pada dasarnya ada 2 teknik pencarian dan pelacakan yang digunakan, yaitu pencarian buta (blind search) dan pencarian terbimbing (heuristic search).

2.4.1 Pencarian Buta (Blind Search)

2.4.1.1Pencarian Melebar Pertama (Breadth-First Search)

Pada metode Breadth-First Search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya [3]. Demikian seterusnya hingga ditemukannya solusi.

A

D E F G H I

B C


(33)

Algoritma :

1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan awal.

2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai atau Node_List dalam keadaan kosong :

a. Hapus elemen pertama dari Node_List, sebut dengan nama D. Jika Node_List kosong, keluar.

b. Pada setiap langkah yang aturannya cocok dengan D, kerjakan : 1) Aplikasikan aturan tersebut untuk membentuk suatu keadaan baru 2) Jika keadaan awal adalah tujuan yang diharapkan, sukses dan

keluar.

3) Jika tidak demikian, tambahkan keadaan awal yang baru tersebut pada akhir Node_List.

Keuntungan dari metode ini:

1. Tidak akan menemui jalan buntu.

2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

Kelemahan dari metode ini:

1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon.

2. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk mendapatkan solusi pada level ke- (n + 1).


(34)

2.4.1.2Pencarian Mendalam Pertama (Depth-First Search)

Pencarian dengan metode Depth-First Search (DFS) dilakukan dari node awal secara mendalam hingga yang paling akhir (dead-end) atau sampai ditemukan. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu dikunjungi. Gambaran pencarian DFS dapat dilihat pada gambar 2.4 [3].

A

B

C F

G

H I

D E

Gambar 2.5. Pencarian mendalam pertama (Depth-First Search) [3]

Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.


(35)

Algoritma :

1. Jika keadaan awal merupakan tujuan, keluar (Sukses).

2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai keadaan sukses atau gagal :

a. Bangkitkan successor D dari keadaan awal. Jika tidak ada successor, maka akan terjadi kegagalan.

b. Panggil Depth-first search dengan D sebagai keadaan awal.

c. Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah-2.

Keuntungan dari metode DFS :

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

2. Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan, sehingga tidak memboros waktu

untuk melakukan sejumlah besar keadaan „dangkal‟ dalam permasalahan graf/

pohon.

Kelemahan dari metode DFS:

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan. 2. Hanya akan mendapatkan satu solusi pada setiap pencarian.


(36)

2.4.2 Pencarian Heuristik (Heuristic Search)

Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang diperlukan. Kelemahan ini sebenarnya dapat diatasi jika ada informasi tambahan dari domain yang bersangkutan.

Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani yang berarti menemukan/ menyingkap. Heuristic adalah suatu perbuatan yang membantu kita menemukan jalan dalam pohon pelacakan yang menuntut kita kepada suatu solusi masalah. Heuristic dapat diartikan juga sebagai suatu kaidah yang merupakan metoda/ prosedur yang didasarkan kepada pengalaman dan praktek, syarat, trik atau bantuan lainnya yang membantu mempersempit dan memfokuskan proses pelacakan kepada suatu tujuan tertentu.

Heuristic dapat digunakan pada beberapa kondisi berikut ini : 1. Mengatasi combinatorial explosion

Ada masalah yang kemungkinan arah penyelesaiannya berkembang pesat (bersifat faktorial) sehingga menimbulkan combinatorial explosion. Heuristic merupakan cara untuk menentukan kemungkinan arah penyelesaian masalah secara efisien.

2. Solusi paling optimal mungkin tidak diperlukan

Dalam suatu keadaan, mungkin lebih baik mendapatkan solusi yang mendekati optimal dalam waktu yang singkat daripada solusi yang paling optimal dalam waktu yang lama.


(37)

3. Pada umumnya hasilnya cukup baik

Sekalipun tidak optimal biasanya mendekati optimal.

4. Membantu pemahaman bagi orang yang menyelesaikan persoalan

Banyak alternatif heuristic yang dapat diterapkan dalam suatu percobaan. Orang yang menyelesaikan persoalan tersebut akan lebih mengerti persoalannya jika mencoba heuristic yang diterapkannya.

Metode-metode yang termasuk ke dalam teknik pencarian yang berdasarkan pada fungsi heuristik adalah : Generate and Test, Hill Climbing, Best First Search, Simulated Annealing.

2.4.2.1Generate and Test

Strategi bangkitkan dan uji (generate and test) merupakan pendekatan yang paling sederhana dari semua pendekatan yang akan dibicarakan. Pendekatan ini meliputi langkah–langkah sebagai berikut :

1. Buatlah/ bangkitkan sebuah solusi yang memungkinkan. Untuk sebuah problema hal ini dapat berarti pembuatan sebuah titik khusus dalam ruang problema.

2. Lakukan pengujian untuk melihat apakah solusi yang dibuat benar–benar merupakan sebuah solusi, dengan cara membandingkan titik khusus tersebut dengan goal-nya (solusi).

3. Jika telah diperoleh sebuah solusi, langkah– langkah tersebut dapat dihentikan. Jika belum kembalilah ke langkah pertama.


(38)

Jika pembangkitan atau pembuatan solusi– solusi yang dimungkinkan dapat dilakukan secara sistematis, maka prosedur ini akan dapat segera menemukan solusinya (bila ada). Namun, jika ruang problema sangat besar, maka proses ini akan membutuhkan waktu yang lama.

Metode generate and test ini kurang efisien untuk masalah yang besar atau kompleks.

2.4.2.2Hill Climbing

Hill climbing (mendaki bukit) merupakan salah satu variasi metode buat dan uji (generate and test) dimana umpan balik yang berasal dari prosedur uji digunakan untuk memutuskan arah gerak dalam ruang pencarian (search). Dalam prosedur buat dan uji yang murni, respon fungsi uji hanyalah ya atau tidak. Dalam prosedur Hill Climbing, fungsi uji dikombinasikan dengan fungsi heuristik yang menyediakan pengukuran kedekatan suatu keadaan yang diberikan dengan tujuan (goal).

Prosedur Hill Climbing :

1. Buatlah solusi usulan pertama dengan cara yang sama seperti yang dilakukan dalam prosedur buat dan uji (generate and test). Periksalah apakah solusi usulan itu merupakan sebuah solusi. Jika ya, berhentilah. Jika tidak, kita lanjutkan ke langkah berikutnya.

2. Dari solusi ini, terapkan sejumlah aturan yang dapat diterapkan untuk membuat sekumpulan solusi usulan yang baru.


(39)

Untuk setiap elemen kumpulan solusi tersebut, lakukanlah hal-hal berikut ini :

1. Kirimkanlah elemen ini ke fungsi uji. Jika elemen ini merupakan sebuah solusi, berhentilah.

2. Jika tidak, periksalah apakah elemen ini merupakan yang terdekat dengan solusi yang telah diuji sejauh ini. Jika tidak, buanglah.

3. Ambilah elemen terbaik yang ditemukan di atas dan pakailah sebagai solusi usulan berikutnya. Langkah ini bersesuaian dengan langkah dalam ruang problema dengan arah yang muncul sebagai yang tercepat dalam mencapai tujuan.

4. Kembalilah ke langkah 2.

Masalah-masalah yang mungkin timbul pada prosedur Hill Climbing :

- Maksimum lokal adalah suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum lebih baik dari suatu keadaan lain yang jauh letaknya darinya.

- Daratan (Plateau) adalah suatu daerah datar dari ruang pencarian (search) dimana semua himpunan keadaan tetangganya memiliki nilai yang sama. - Punggung (Ridge) adalah suatu daerah ruang pencarian (search) yang

lebih tinggi daripada daerah sekitarnya, namun tidak dapat dibalikkan oleh langkah–langkah tunggal ke arah manapun.


(40)

Solusinya:

- Melakukan langkah balik (backtracking) ke simpul yang lebih awal dan mencoba bergerak ke arah yang lain.

- Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang pencarian yang baru.

- Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini bersesuaian dengan bergerak ke beberapa arah sekaligus.

2.4.2.3Best First Search

Pencarian terbaik pertama (Best First Search) merupakan suatu cara yang menggabungkan keuntungan atau kelebihan dari pencarian Breadth-First Search dan Depth-First Search.

Pada setiap langkah proses pencarian terbaik pertama, kita memilih node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node-node/simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya.

Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan [2] :

f’(n) = g(n) + h’(n) ... ( i )

f‟(n) = prakiraan cost dari initial ke goal g(n) = cost dari initial state ke current state


(41)

h‟(n) = prakiraan cost dari current state ke goal state

Gambar 2.6. Ilustrasi Pencarian Terbaik Pertama (Best-First Search) [2]

2.4.2.4Simulated Annealing

Simulated Annealing (SA) memanfaatkan analogi cara pendinginan dan pembekuan metal menjadi sebuah struktur Kristal dengan energy minimal. Dengan Probabilitas tertentu SA mungkin bisa keluar dari jebakan Local Minimum. SA menggunakan sebuah rumus probabilitas yang memungkinkannya bisa keluar dari Local Minimum. Ketika new state tidak lebih baik dari current state, maka new state tersebut masih mungkin dipilih dengan probabilitas sebagai berikut [4] :

p(ΔE)=

е

-ΔE/T ...( ii )

Fungsi tersebut diadopsi dari ilmu fisika, dimana fungsi ini merepresentasikan distribusi Boltzman dari energy dalam sistem termodinamik,


(42)

sehingga didapat persamaan probabilitas dari level energi yang diberikan dalam sistem pada temperature T [2].

Gambar 2.7. SA [2]

Pada level 1, SA memilih A meskipun nilai f-nya lebih besar daripada nilai f pada simpul S, dengan probabilitas tertentu. Akhirnya , SA berhasil menemukan solusi optimum di level 2.


(43)

2.5 Rekaya Perangkat Lunak

2.5.1 Pengertian Rekayasa Perangkat Lunak

Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.

Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O‟Brien, 1999).

Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program

komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas,

mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.


(44)

2.5.2 Tujuan Rekayasa Perangkat Lunak

Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini.

Gambar 2.8. Tujuan RPL(Abran et.al., 2004).

Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah:

a. memperoleh biaya produksi perangkat lunak yang rendah.

b. menghasilkan pereangkat lunak yang kinerjanya tinggi, handal dan tepat waktu.

c. menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.


(45)

2.5.3 Ruang Lingkup Rekayasa Perangkat Lunak

Ruang lingkup RPL dapat digambarkan sebagai berikut:

Gambar 2.9 Ruang lingkup RPL (Abran et.al., 2004).

- software Requirements berhubungan dengan spesifikasi kebutuhan dan

persyaratan perangkat lunak .

- software desain mencakup proses penampilan arsitektur, komponen, antar

muka, dan karakteristik lain dari perangkat lunak.

- software construction berhubungan dengan detail pengembangan

perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.

- software testing meliputi pengujian pada keseluruhan perilaku perangkat

lunak.

- software maintenance mencakup upaya-upaya perawatan ketika perangkat


(46)

- software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.

- software engineering management berkaitan dengan pengelolaan dan

pengukuran RPL, termasuk perencanaan proyek perangkat lunak

- software engineering tools and methods mencakup kajian teoritis tentang

alat bantu dan metode RPL

- software engineering process berhubungan dengan definisi, implementasi

pengukuran, pengelolaan, perubahan dan perbaikan proses RPL

- software quality menitik beratkan pada kualitas dan daur hidup perangkat

lunak

2.5.4 Rekayasa Perangkat Lunak Dan Disiplin Ilmu Lain

Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer.

Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar dibawah ini


(47)

Gambar 2.10. Keterkaitan RPL dengan bidang ilmu lain (Denning, 2000)

- Bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis

- Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit

- Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif

- Bidang ilmu ergonomika menyangkut hubungan ( interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer

- Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan, pemodelan, simulasi, proses, dan operasi bisnis


(48)

2.5.5 Perkembangan Rekayasa Perangkat Lunak

Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif muda dan akan terus berkembang.

Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :

Tabel 2.2. Perkembangan Rekayasa Perangkat Lunak Tahun Kejadian

1940an Komputer pertama yang membolehkan pengguna menulis kode program langsung

1950an Generasi awal interpreter dan bahasa macro Generasi pertama compiler

1960an Generasi kedua compiler Komputer mainframe mulai dikomersialkan Pengembangan perangkat lunak pesanan

Konsep Software Engineering mulai digunakan

1970an Perangkat pengembang perangkat lunak Perangkat minicomputer komersial

1980an Perangkat Komputer Personal (PC) komersial Peningkatan permintaan perangkat lunak


(49)

1990an Pemrograman berorientasi obyek (OOP) Agile Process

dan Extreme Programming Peningkatan drastis

kapasitas memori Peningkatan penggunaan internet

2000an Platform interpreter modern (Java, .Net, PHP, dll) Outsourcing

2.5.6 Metode Rekayasa Perangkat Lunak

Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut

System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini :


(50)

- Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas

- Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing – maintenance.

- Stakeholder berperan sangat penting dalam keseluruhan tahapan

pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.

- Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.

- Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di-rupiah-kan. Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya,

peningkatan keuntungan organisasi, peningkatan “image” organisasi dan lain-lain.


(51)

2.5.7 Tahapan Rekayasa Perangkat Lunak

Meskipun dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design

– coding(construction) – testing – maintenance.

1. Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan.

Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.

2. Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem yang mentransformasikan data menjadi informasi (Harris, 2003). Model proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses. Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow Diagram/ DFD). DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi.

3. Desain perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis komputer. Disain perangkat lunak sering juga disebut sebagai physical design. Jika tahapan


(52)

analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak.

Output utama dari tahapan disain perangkat lunak adalah spesifikasi disain. Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun. Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini. Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya.

Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface yang mencakup desain input, output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis. 4. Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke

dalam kode-kode program komputer.

5. Pengujian sistem melibatkan semua kelompok pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan


(53)

terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima perangkat lunak tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.

6. Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu perawatan perangkat lunak. Ada beberapa tipe perawatan yang biasa dikenal dalam dunia perangkat lunak seperti terlihat pada diagram di Gambar di bawah ini :

Gambar 2.12. Tipe-tipe perawatan (Whitten et al, 2004).

- Tipe perawatan corrective dilakukan jika terjadi kesalahan atau biasa dikenal sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki kode program, menambah bagian yang dirasa perlu atau malah menghilangkan bagian-bagian tertentu.

- Tipe perawatan routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan.


(54)

- Tipe perawatan sistem upgrade dilakukan jika ada perubahan dari komponen-komponen yang terlibat dalam perangkat lunak tersebut. Sebagai contoh perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan perangkat lunak harus diupgrade.

2.6 Microsoft Visual Basic 6.0

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan

Integrated Development Environment (IDE) visual untuk membuat program

aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM) [5]. .

Visual Basic merupakan turunan bahasa BASIC dan menawarkan

pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda [5].

Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Dalam sebuah


(55)

survey yang dilakukan pada tahun 2005, 62% 6 pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java.

Bill Gates, pendiri Microsoft, memulai bisnis softwarenya dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS. Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler).

Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode terkompilasi atau kode yang harus diinterpretasi sebagai hasil executable dari kode VB. Sayangnya, meskipun sudah terkompilasi jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan. Namun karakteristik bahasa terkompilasi tetap muncul.

Visual Basic merupakan bahasa yang mendukung OOP, namun tidak sepenuhnya. Beberapa karakteristik obyek tidak dapat dilakukan pada Visual

Basic, seperti Inheritance tidak dapat dilakukan pada class module.

Polymorphism secara terbatas bisa dilakukan dengan mendeklarasikan class module yang memiliki Interface tertentu. Visual Basic (VB) tidak bersifat case sensitif.


(56)

Visual Basic menjadi populer karena kemudahan desain form secara visual dan adanya kemampuan untuk menggunakan komponen-komponen ActiveX yang dibuat oleh pihak lain. Namun komponen ActiveX memiliki masalahnya tersendiri yang dikenal sebagai DLL hell. Pada Visual Basic .NET, Microsoft mencoba mengatasi masalah DLL hell dengan mengubah cara penggunaan komponen (menjadi independen terhadap registry).


(57)

44 3.1 Analisis Sistem

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya..

3.1.1 Analisis Masalah

Permasalahan ruang keadaan merupakan salah satu permasalahan yang terdapat dalam kehidupan sehari-hari yang dipelajari dalam cabang ilmu kecerdasan buatan. Salah satu metode penyelesaian yang diulas dalam keilmuan kecerdasan buata yaitu metode pencarian buta denga menggunakan Breadth-first search.

Permasalahan ini kerap dibahas secara teoritis dalam dunia pendidikan sehingga tidak sedikit dari kalangan pelajar sulit untuk memahami langkah penyelesaian dari permasalahan tersebut, serta dari kalangan pengajar yang kesulitan untuk memvisualisasikan langkah penyelesaian secara simulasi disamping langkah penyelesaian secara teoritis. Permasalahan ini juga banyak dikupas secara teoritis, dan juga divisualisasikan ke dalam bentuk game. Namun perpaduan kedua cara tersebut belum ada, bahkan mengupas materi pembelajaran


(58)

langkah penyelesaiannya belum tersajikan secara komputasi sistem kecerdasan buatan, sehingga pemahaman tentang metode penyelesaian permasalahan ruang keadaan menggunakan breadth-first search kurang terbantukan.

3.1.2 Analisis Data 3.1.2.1Data Masukan

Data masukan dari aplikasi bantu kecerdasan buatan pembelajaran dan penyelesaian pada permasalahan ruang keadaan yang digunakan terdiri dari data teori dan materi pembelajaran, data Problem, data Variabel, data Control. Rincian data di atas adalah sebagai berikut:

- Data teori dan materi pembelajaran merupakan data-data mengenai pembelajaran serta pemahaman langkah peyelesaian secara teoritis. Data ini merupakan data statis yang tidak dapat dirubah oleh user.

- Data Problem merupakan data permasalahan yang akan diselesaikan dan disimulasikan. Problem yang akan dikaji yaitu permasalahan farmer problems yang merupakan salah satu kasus dalam permasalahan ruang keadaan (State and Space). Data problem ini akan dimodifikasi sesuai dengan data masukan dari user, tentunya problem yang memiliki kemiripan pola dan prosedur kasus yang akan diselesaikan yaitu farmer problem, seperti cannibal missionaries, family problems.

- Data Variabel merupakan pendefinisian dari variabel apa saja yang terlibat dalam problem.

- Data Control yaitu merupakan strategi kontrol apa saja yang harus diperhatikan oleh variabel untuk menyelesaikan problem.


(59)

3.1.2.2Analisis Metode Penyelesaian 1.Searching

Masalah utama dalam membangun sistem berbasis AI adalah bagaimana mengkonversi situasi yang diberikan ke dalam situasi lain yang diinginkan menggunakan sekumpulan operasi tertentu, sehingga permasalahan ruang keadaan dapat diselesaikan.

Salah satu contoh permasalahan ruang keadaan yang dibahas adalah masalah petani, kambing, serigala dan sayur-sayuran yang sering juga disebut dengan Farmer’s Problem. Ilustrasi dari permasalahan ini adalah sebagai berikut, seorang petani akan menyeberangkan seekor kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit melalui sungai. Rakit hanya bisa memuat petani dan satu penumpang yang lain (kambing, serigala atau sayur-sayuran). Jika ditinggalkan oleh petani tersebut, maka sayur-sayuran akan dimakan oleh kambing dan kambing akan dimakan oleh serigala.

Untuk dapat menyelesaikan permasalahan diatas diperlukan tiga langkah berikut :

a. Definisikan ruang masalah, keadaan awal (initial state) dan keadaan tujuan (goal state).

Setiap keadaan dari Farmer’s Problem dapat direpresentasikan dengan (kambing, petani, serigala, sayur-sayuran) dan posisi rakit.


(60)

Keadaan awal dan keadaan tujuan dapat direpresentasikan sebagai berikut :

1) Keadaan awal (start state): a) Daerah kiri = (1,1,1,1). b) Daerah kanan = (0,0,0,0) c) Posisi rakit berada di kiri.

Artinya, terdapat kambing, petani, serigala dan sayur-sayuran di daerah kiri.

2) Keadaan tujuan (goal state): a) Daerah kiri = (0,0,0,0). b) Daerah kanan = (1,1,1,1) c) Posisi rakit berada di kanan.

Artinya, terdapat kambing, petani, serigala dan sayur-sayuran di daerah kanan.

b. Definisikan aturan produksi

Setelah keadaan awal dan keadaan tujuan sudah didefinisikan pada langkah pertama, langkah kedua yaitu mendefinisikan aturan produksi yang berlaku, mendefinisikan Variabel, Aturan (rule), dan strategi kontrol.

Tabel 3.1. Variabel Farmer’s Problem

Variabel ID Nama Variabel Bisa mengemudikan rakit (Driver)


(61)

P Petani Ya

SR Serigala Tidak

SY Sayur-sayuran Tidak

Tabel 3.2. Control Farmer’s Problem

No Control

1 Kambing akan memakan sayur-sayuran apabila Petani tidak berada di tempat. 2 Serigala akan memakan Kambing apabila Petani tidak berada di tempat.

Dari variabel dan control yang terdapat pada Farmer’s Problem, kita dapat menyimpulkan aksi-aksi apa saja yang dapat dilakukan dengan tetap mematuhi kontrol yang ada. Aksi-aksi yang dapat dilakukan dapat dilihat pada Tabel 3.3.

Tabel 3.3. Tabel Aksi-aksi yang dapat terjadi pada Farmer’s Problem

Aksi ke- Aturan

1 Petani dan kambing menyeberang. 2 Petani dan serigala menyeberang. 3 Petani dan sayur-sayuran menyeberang. 4 Petani dan kambing kembali.

5 Petani dan serigala kembali. 6 Petani dan sayur-sayuran kembali. 7 Petani kembali.


(62)

Pencarian solusi dari permasalahan di atas adalah dengan menggunakan bantuan pohon pelacakan dengan penjelasan sebagai berikut :

1.Akar dari pohon merupakan keadaan awal.

2.Akar pohon kemudian membentuk cabang-cabang baru dengan melakukan semua aksi-aksi yang dapat terjadi pada keadaan awal. 3.Keadaan-keadaan baru yang dihasilkan merupakan cabang baru

dari pohon.

4.Proses pengembangan dan pencarian dilanjutkan dengan membentuk keadaan baru (cabang baru) dari cabang-cabang yang sudah ada hingga didapatkan solusi.

5.Proses pembentukan keadaan baru juga melakukan prosedur pengecekan apakah keadaan tersebut sudah pernah dibentuk sebelumnya pada pohon.

6.Apabila sudah ada, maka cabang baru tidak dibentuk dan apabila tidak, maka cabang baru dibentuk.

7.Apabila tidak ada cabang yang dapat dikembangkan lagi dan ternyata belum ditemukan solusi, maka permasalahan yang sedang diselesaikan tidak memiliki solusi.

c. Memilih metode pencarian yang tepat

Metode pencarian yang dipergunakan yaitu metode pencarian buta (Blind Search) yaitu metode Breadth-First Search (BFS).


(63)

2.Metode Breadth-First Search (BFS)

Metode pencarian Breadth-First Search (BFS) dipilih karena memiliki kelebihan menemukan solusi dan solusi yang diambil yaitu solusi minimum yang terpendek.

Berikut ini merupakan struktur pohon pelacakan untuk mencari solusi


(64)

Daerah Kiri : 0.0,1,1 Daerah Kanan : 1,1,0,0

Daerah Kiri : 0,1,1,1 Daerah Kanan : 1,0,0,0

Daerah Kiri : 0,0,1,0 Daerah Kanan : 1,1,0,1 Daerah Kiri : 0,0,0,1

Daerah Kanan : 1,1,1,0

Keadaan sudah dibentuk sehingga tidak

bisa dilanjtkan Daerah Kiri : 1,1,0,1

Daerah Kanan : 0,0,1,0

Daerah Kiri : 0,0,0,0 Daerah Kanan : 1,1,1,1

Daerah Kiri : 1,1,0,0 Daerah Kanan : 0,0,1,1

Daerah Kiri : 1,0,0,0 Daerah Kanan : 0,1,1,1

Daerah Kiri : 1,1,1,1 Daerah Kanan : 0,0,0,0

Aksi 1

Aksi 3

Aksi 4 Aksi 4

Aksi 2 Aksi 3

Aksi 7

Aksi 1 Aksi 7

Gambar 3.1. Struktur pohon pelacakan solusi 1 untuk Farmer’s Problem dengan menggunakan Breadth First search


(65)

Dari struktur pohon pelacakan yang dikembangkan pada gambar 3.1, didapatkan solusi seperti terlihat pada tabel 3.4.

Tabel 3.4. Tabel Solusi Farmer’s Problem Daerah

Kiri

Aksi

Posisi Rakit

Daerah Kanan

(1,1,1,1) - KIRI (0,0,0,0)

(0,0,1,1) Aksi ke-1 (Petani dan kambing menyeberang) KANAN (1,1,0,0) (0,1,1,1) Aksi ke-7 (Petani kembali) KIRI (1,0,0,0) (0,0,0,1) Aksi ke-2 (Petani dan serigala menyeberang) KANAN (1,1,1,0) (1,1,0,1) Aksi ke-4 (Petani dan kambing kembali) KIRI (0,0,1,0) (1,0,0,0) Aksi ke-3 (Petani dan sayuran menyeberang) KANAN (0,1,1,1) (1,1,0,0) Aksi ke-7 (Petani kembali) KIRI (0,0,1,1) (0,0,0,0) Aksi ke-1 (Petani dan kambing menyeberang) KANAN (1,1,1,1)

Pencarian solusi pada struktur pohon pelacakan menggunakan metode pencarian melebar pertama (breadth-first search), sehingga solusi yang didapatkan adalah merupakan solusi terpendek.


(66)

Daerah Kiri : 0.0,0,1 Daerah Kanan : 1,1,0,0

Daerah Kiri : 0,1,1,1 Daerah Kanan : 1,0,0,0

Daerah Kiri : 0,0,1,0 Daerah Kanan : 1,1,0,1

Daerah Kiri : 0,0,0,1 Daerah Kanan : 1,1,1,0

Daerah Kiri : 1,1,1,0 Daerah Kanan : 0,0,0,1

Keadaan sudah dibentuk sehingga tidak

bisa dilanjtkan

Daerah Kiri : 0,0,0,0 Daerah Kanan : 1,1,1,1

Daerah Kiri : 1,1,0,0 Daerah Kanan : 0,0,1,1

Daerah Kiri : 1,0,0,0 Daerah Kanan : 0,1,1,1

Daerah Kiri : 1,1,1,1 Daerah Kanan : 0,0,0,0

Aksi 1 Aksi 3 Aksi 4 Aksi 4 Aksi 2 Aksi 2 Aksi 7 Aksi 1 Aksi 7

Gambar 3.2. Struktur pohon pelacakan solusi 2 untuk Farmer’s Problem dengan menggunakan Breadth First Search


(67)

Dari struktur pohon pelacakan yang dikembangkan pada Gambar 3.2 didapatkan solusi seperti terlihat pada tabel 3.5.

Tabel 3.5. Tabel Solusi Farmer’s Problem Daerah

Kiri

Aksi

Posisi Rakit

Daerah Kanan

(1,1,1,1) - KIRI (0,0,0,0)

(0,0,1,1) Aksi ke-1 (Petani dan kambing menyeberang) KANAN (1,1,0,0) (0,1,1,1) Aksi ke-7 (Petani kembali) KIRI (1,0,0,0) (0,0,0,1) Aksi ke-3 (Petani dan sayuran menyeberang) KANAN (1,1,1,0) (1,1,0,1) Aksi ke-4 (Petani dan kambing kembali) KIRI (0,0,1,0) (1,0,0,0) Aksi ke-2 (Petani dan serigala menyeberang) KANAN (0,1,1,1) (1,1,0,0) Aksi ke-7 (Petani kembali) KIRI (0,0,1,1) (0,0,0,0) Aksi ke-1 (Petani dan kambing menyeberang) KANAN (1,1,1,1)

Pencarian solusi pada struktur pohon pelacakan menggunakan metode pencarian melebar pertama (breadth-first search), sehingga solusi yang didapatkan adalah merupakan solusi terpendek.

3.1.3 Analisis Informasi

Output yang akan diperoleh dari hasil inputan data yang telah dijalankan yaitu berupa materi pembelajaran dan pemahaman tentang permasalahan ruang keadaan (state and space), serta solusi dari langkah penyelesaian yang dijalankan oleh sistem baik secara manual maupun secara otomatis melalui aplikasi simulator.


(68)

3.1.4 Analisis Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik.

3.1.4.1ERD dan Skema Relasi

Gambar 3.3. ERD

Memiliki

Control

Problem 1 Memiliki N Variabel

1

N

ProblemID

Variabel AttackID Nama

Driver Nama

VariabelID

Variabel Variabel

Variabel

ProblemID

ProblemID

VariabelID AttackID


(69)

Problem

PK ProblemID

Nama Problem

Variabel

PK VariabelID

Nama Variabel Driver

FK ProblemID

Control

PK AttackID

FK ProblemID

Variabel1 Variabel2 Variabel3 Varibel4


(70)

3.1.4.2Diagram Konteks

Diagram konteks merupakan alat untuk struktur analisis. pendekatan struktur

ini untuk menggambarkan sistem secara garis besar atau secara keseluruhan.

Aplikasi Bantu Kecerdasan Buatan Pembelajaran dan Penyelesaian Pada Permasalahan Ruang Keadaan (State

and Space) User

Data Problem Data Control Data Variabel Data Teori

Info Problem Info Control Info Variabel Info Teori

Data Solusi

Info Solusi


(71)

3.1.4.3Data Flow Diagram (DFD)

Data Flow Diagram merupakan suatu media yang digunakan untuk

menggambarkan aliran proses aplikasi. DFD aplikasi bantu kecerdasan buatan pembelajaran dan penyelesaian permasalahan ruang keadaan (state and space) terdiri dari : 2.0 Kelola Problem User 3.0 Kelola Variabel 1.0 Lihat Teori 4.0 Kelola Control Tabel Problem Tabel Variabel Tabel Control 5.0 Lihat Solusi Data Teori Info Teori Data Problem Info Problem Data Variabel Info Variabel Data Control Cari Solusi Info Solusi Data Problem Data Problem Data Variabel Data Variabel Data Control Data Control Data Solusi

Data Solusi Lihat Variabel Data Variabel

Lihat Problem Info COntrol Data Problem Folder Gambar Teori Data Teori Data Teori Data Variabel Data Variabel


(72)

1. DFD level 2 Proses 1 Lihat Teori

DFD level 2 Proses 1 merupakan proses pengguna untuk melihat materi dan teori tentang Breadth-First Search dan Teori State and Space. Materi dan teori tidak disimpan didalam database melainkan disimpan di folder dalam bentuk gambar.

User

1.1 Lihat Teori BFS

1.2 Lihat Teori State and Space Data BFS

Info BFS

Data State and Space Info State and Space

1.3 Lihat Contoh Soal Data Contoh Soal

Info Contoh Soal

Folder Gambar Data BFS

Data State And Space

Data BFS

Data State and Space

Data Contoh Soal Data Contoh Soal


(73)

2. DFD Level 2 Proses 2 Kelola Problem

DFD Level 2 Proses 2 adalah proses dimana pengguna mengelola problem proses yang dijalankan yaitu menambah, edit serta menghapus problem dari table database Problem.

User

2.1 Tambah Problem

2.2 Edit Problem Data Problem

Info Problem

Data Problem

Info Problem

2.3 Hapus Problem Info Hapus

Data Problem

Tabel Problem Data Problem

Data Problem Data Problem

Data Problem

Data Problem

Data Problem


(74)

3. DFD Level 2 Proses 3 Kelola Variabel

DFD Level 2 Proses 3 adalah proses dimana pengguna mengelola variabel. Proses yang dijalankan yaitu menambah, edit serta menghapus variabel dari table database Variabel.

User

3.1 Tambah Variabel

3.2 Edit Variabel Data Variabel

Info Variabel

Data Variabel

Info Variabel

3.3 Hapus Variabel Info Variabel

Data Variabel

Tabel Variabel Data Variabel

Data Variabel Data Variabel

Data Variabel

Data Variabel

Data Variabel


(75)

4. DFD Level 2 Proses 4 Kelola Control

DFD Level 2 Proses 4 adalah proses dimana pengguna mengelola control. Proses yang dijalankan yaitu menambah, edit serta menghapus control dari table database control.

User

4.1 Tambah Control

4.2 Edit Control Data Control

Info Control

Data Control

Info Control

4.3 Hapus Control Info Control

Data Control

Tabel Control Data Control

Data Control Data Control

Data Control

Data Control

Data Control


(76)

5. DFD Level 2 Proses 5 Lihat Solusi

DFD Level 2 Proses 5 adalah proses dimana pengguna dapat melihat hasil dari solusi yang didapat melalui kombinasi yang diperoleh dari sistem yang diambil dari tabel variabel, tabel Problem, tabel Control.

User 5.1

Lihat Solusi Data Solusi

Info Solusi

Tabel Variabel Data Variabel

Data Variabel

Tabel Control Data Control Data Control

Tabel Problem

Data Problem Data Problem


(77)

3.1.4.4Spesifikasi Proses

Spesifikasi proses merupakan deskripsi dari setiap elemen proses yang terdapat dalam program, yang meliputi nama proses, input, output dan keterangan dari proses. Berikut ini spesifikasi proses yang berjalan :

Tabel 3.6. Spesifikasi Proses

No Proses Keterangan

1

No. Proses 1.0

Nama Proses Lihat Teori

Source (sumber) User

Input

- Data Teori Breadth-First Search

- Data Teori State and Space

- Data Contoh Soal Output

- Info Teori Breadth-First Search

- Info Teori State and Space

- Info Contoh Soal Destination

(tujuan)

User

Logika Proses

1. User memilih menu utama State and Space

2. User memilih submenu Materi -> State and Space, BFS.

3. User memilih submenu Contoh Soal 4. Sistem melakukan proses menampilkan

data Breadth First Search, State and Space, dan Contoh Soal, data diambil dari folder images yaitu berupa file *.jpg

5. User melihat data teori yang ditampilkan sistem


(78)

Nama Proses Kelola Problem

Source (sumber) User

Input - Data Problem

Output - Info Problem

Tujuan User

Logika Proses

1. User memilih menu utama File

2. User memilih submenu New ->

Problem

3. Sistem menampilkan form dan data

Problem

4. User melihat data problem

3

No. Proses 3.0

Nama Proses Kelola Variabel

Source (sumber) User

Input - Data Variabel

Output - Info Variabel

Destination (tujuan)

User

Logika Proses

1. User memilih menu utama File

2. User memilih submenu New -> Variabel

3. Sistem menampilkan form dan data Variabel

4. User melihat data Variabel

4

No. Proses 4.0

Nama Proses Kelola Control

Source (sumber) User


(79)

Output - Info Control Destination (tujuan) User Logika Proses Begin

1. User memilih menu utama File

2. User memilih submenu New -> Control

3. Sistem menampilkan form dan data Control

4. User melihat data Control

5

No. Proses 1.1

Nama Proses Lihat Teori BFS

Source (sumber) User

Input -- Pilih menu Pilih menu Materi State and Space

- Pilih menu BFS

Output - Tampilan Teori BFS Destination

(tujuan)

User

Logika Proses 1. User memilih menu BFS

2. Sistem melakukan proses pemanggilan data materi BFS dari folder images

3. Sistem menampilkan materi BFS 4. User melihat data materi BFS

6

No. Proses 1.2

Nama Proses Lihat Teori State and Space

Source (sumber) User

Input -- Pilih menu Pilih menu Materi State and Space - Pilih menu State and Space


(80)

Destination (tujuan)

User

Logika Proses 1. User memilih menu State and Space 2. Sistem melakukan proses pemanggilan

data materi State and Space dari folder

images

3. Sistem menampilkan materi State and Space

4. User melihat data materi State and Space

7

No. Proses 1.3

Nama Proses Lihat Contoh Kasus

Source (sumber) User

Input -- Pilih menu Pilih menu Contoh Kasus State and Space

Output - Tampilan Form Contoh Kasus

Destination (tujuan)

User

Logika Proses 1. User memilih menu Contoh Kasus 2. Sistem melakukan proses pemanggilan

data Contoh Kasus dari folder images

3. Sistem menampilkan data Contoh Kasus

4. User melihat data materi Contoh Kasus

8

No. Proses 2.1

Nama Proses Tambah Problem

Source (sumber) User

Input - Data Problem

Output - Info Problem

Destination (tujuan)

User


(81)

2. User memasukkan data problem 3. Sistem menyimpan data problem 4. Sistem menampilkan data problem 5. User melihat data problem

9

No. Proses 2.2

Nama Proses Edit Problem

Source (sumber) User

Input - Data Problem

Output - Info Problem

Destination (tujuan)

User

Logika Proses 1. User memilih menu edit

2. Sistem menyimpan data yang telah di edit

3. Sistem menampilkan data problem 4. User melihat data problem

10

No. Proses 2.3

Nama Proses Hapus Problem

Source (sumber) User

Input - Data Problem yang akan dihapus

Output -- Peringatan menghapus problem Info Problem Destination

(tujuan)

User

Logika Proses 1. User memilih menu Hapus

2. Sistem menampilkan data problem


(82)

Nama Proses Tambah Variabel

Source (sumber) User

Input - Data Variabel

Output - Info Variabel

Destination (tujuan)

User

Logika Proses 1. User milih menu baru

2. User memasukkan data variabel 3. Sistem menyimpan data variabel 4. Sistem menampilkan data variabel 5. User melihat data variabel

12

No. Proses 3.2

Nama Proses Edit variabel

Source (sumber) User

Input - Data Variabel

Output - Info Variabel

Destination (tujuan)

User

Logika Proses

1. User memilih menu edit

2. Sistem menyimpan data Variabel yang telah di edit

3. Sistem menampilkan data Variabel 4. User melihat data Variabel

13

No. Proses 3.3

Nama Proses Hapus variabel

Source (sumber) User


(83)

Output

- Peringatan menghapus variabel - Info variabel

Destination (tujuan)

User

Logika Proses

1. User memilih menu Hapus

2. Sistem menampilkan data Variabel

14

No. Proses 4.1

Nama Proses Tambah Control

Source (sumber) User

Input - Data Control

Output - Info Control

Destination (tujuan)

User

Logika Proses 1. User milih menu baru

2. User memasukkan data Control 3. Sistem menyimpan data Control 4. Sistem menampilkan data Control 5. User melihat data Control

15

No. Proses 4.2

Nama Proses Edit Control

Source (sumber) User

Input - Data Control

Output - Info Control

Destination (tujuan)

User

Logika Proses

1. User memilih menu Control

2. Sistem menyimpan data Control yang telah di edit

3. Sistem menampilkan data Control 4. User melihat data Control


(84)

16

No. Proses 4.3

Nama Proses Hapus Control

Source (sumber) User

Input - Data Control yang akan dihapus

Output

- Peringatan menghapus Control - Info Control

Destination(tujuan) User

Logika Proses

1. User memilih menu Hapus

2. Sistem menampilkan data Control

3.1.4.5Struktur tabel

Dalam database, aplikasi memiliki 3 buah tabel, yaitu: 1. Tabel Problem.

Tabel ini berisi nama problem atau permasalahan yang pernah didaftarkan.

Struktur tabel adalah:

Tabel 3.7. Struktur Tabel Problem

No. Field Name Data Type Field Size

1. ProblemID Text 10


(1)

Kiri : 1,1,1,1

Kanan : 0,0,0,0

Kiri : 0,0,1,1

Kanan : 1,1,0,0

Kiri : 0,1,1,1

Kanan : 1,0,0,0

Kiri : 0,0,0,1

Kanan : 1,1,1,0

Kiri : 0,0,1,0

Kanan : 1,1,0,1

Kiri : 1,1,0,1

Kanan : 0,0,1,0

Kiri : 1,0,0,0

Kanan : 0,1,1,1

Kiri : 1,1,0,0

Kanan : 0,0,1,1

Kiri : 0,0,0,0

Kanan : 1,1,1,1

Keadaan Sudah

dibentuk

sehingga tidak

dapat

dilanjutkan

P

OHON

P

ELACAKAN

K

ASUS


(2)

(3)

ERD

Memiliki

Control

Problem

Memiliki

Variabel

1

N

1

N

ProblemID

Variabel1

AttackID

Nama Problem

Driver

Nama Variabel

VariabelIDD

Variabel2

Variabel3

Variabel4

ProblemID

ProblemID

VariabelID

AttackID


(4)

D

IAGRAM

K

ONTEKS

Aplikasi Bantu Kecerdasan Buatan

Pembelajaran dan Penyelesaian Pada

Permasalahan Ruang Keadaan (State

and Space)

User

Data Problem Data Control Data Variabel Info Teori

Info Problem Info Control Info Variabel Info Teori

Info Solusi


(5)

DFD L

EVEL

1

2.0 Kelola Problem User 3.0 Kelola Variabel 1.0 Lihat Teori 4.0 Kelola Control Tabel Problem Tabel Variabel Tabel Control 4.0 Lihat Solusi Data Teori Info Teori Data Problem Info Problem Data Variabel Info Variabel Data Control Cari Solusi Info Solusi Data Problem Data Problem Data Variabel Data Variabel Data Control Data Control Data Solusi

Data Solusi Lihat Variabel Data Variabel

Lihat Problem Info COntrol Data Problem Folder Gambar Teori Data Teori Data Teori Data Variabel Data Variabel


(6)