Pembangunan Aplikasi Bantu Kecerdasan Buatan Pembelajaran Dan Penyelesaian Pada Permasalahan Ruang Keadaan (State And Space)
(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 JUDULLEMBAR 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 SolusiData Solusi Lihat Variabel Data Variabel
Lihat Problem Info COntrol Data Problem Folder Gambar Teori Data Teori Data Teori Data Variabel Data Variabel
(6)