PERANGKAT LUNAK SIMULASI PENYELESAIAN SECARA VISUAL MASALAH STATE AND SPACE DENGAN STUDI KASUS FARMER’S PROBLEM’
Oleh : Iwan Abadi, Ir., M.M.
Abstract - 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 problema yang terdapat dalam state and space ini adalah Farmer’s problem (problema petani) yang dapat dideskripsikan suatu ruang keadaan, menetapkan satu atau lebih keadaan awal, menetapkan satu atau lebih tujuan, serta menetapkan kumpulan aturan.
Farmer’s problem ini merupakan salah satu contoh permasalahan dalam State and Space pada bidang studi Artificial Intelligence. Problema 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 (JumlahKambing, JumlahSerigala, JumlahSayuran, JumlahBoat). Kemudian, baru dilanjutkan dengan mendeskripsikan keadaan awal (initial state) pada kedua daerah yaitu daerah asal dan daerah tujuan serta sasaran (goal state) pada kedua daerah.
Kata Kunci : State and Space, rule, Former’s Problem, Artificial Intellegence 1. Pendahuluan
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 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 problema yang terdapat dalam state and space ini adalah Farmer’s problem (problema petani) yang dapat didekripsikan sebagai berikut, seorang petani akan menyeberangkan seekor kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit yang melalui sungai. Rakit hanya mampu 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 dan hanya petani yang dapat mengemudikan rakit.
Problema ini akan dimodifikasi sehingga dapat digunakan untuk menyelesaikan semua persoalan yang hampir mirip dengan problema ini. Problema 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 variabel-variabel yang terdapat dalam
problema ini. Misalkan variabel yang terdapat dalam Farmer’s problem adalah petani, kambing, serigala dan sayur-sayuran. Kemudian, tentukan aturan-aturan yang terdapat dalam problema, dalam Farmer’s problem terdapat aturan bahwa serigala akan memakan kambing apabila petani tidak berada di tempat, kambing akan memakan sayuran apabila petani tidak berada di tempat, dan hanya petani yang dapat mengemudikan rakit. Kondisi awal adalah semua variabel masih terdapat pada tepi sungai kiri dan kondisi tujuan adalah semua variabel berada pada tepi sungai sebelah kanan. Problema diselesaikan
dengan menggunakan bantuan pohon pelacakan. Kondisi-kondisi (state) yang mungkin digambarkan
dalam struktur pohon dengan dimulai dari kondisi awal (start state) sebagai akar dari pohon. Proses dilanjutkan dengan menggambarkan kondisi (state) berikutnya yang dapat dibentuk dari state tersebut. Proses berlanjut hingga didapatkan kondisi tujuan (goal state) atau tidak terdapat kondisi baru yang dapat dikembangkan.
2. Batasan Masalah
Batasan masalah yang dibahas adalah :
1. Aturan-aturan yang digunakan juga dapat ditentukan sendiri yaitu aturan yang memenuhi format berikut,
a. Item1 akan memakan / menyerang / memukul Item2, apabila Item3 dan Item4 tidak
berada di tempat.
b. Item_X dapat mengemudikan rakit.
2. Solusi permasalahan juga dapat dicari secara manual.
3. Masalah state and space dibatasi pada beberapa variabel yang ada di daerah asal, akan
diseberangkan ke daerah tujuan menurut aturan-aturan yang ditentukan.
3. Metodologi Penyelesaian Masalah
Metodologi yang digunakan dalam penyelesaian masalah, yaitu;
a. Membaca dan mempelajari buku – buku yang berhubungan dengan Artificial Intelligence
(AI).
b. Merancang interface untuk perangkat lunak bantu penyelesaian.
c. Merancang suatu perangkat lunak bantu penyelesaian masalah State and Space.
4. Space and State Problem
Sistem yang menggunakan kecerdasan buatan akan mencoba untuk memberikan output berupa
solusi dari suatu masalah berdasarkan kumpulan pengetahuan yang ada.
Gambar Sistem yang menggunakan AI
Pada gambar di atas, 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 masalah yang sesuai. 3. Merepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah tersebut.
4. Memilih teknik penyelesaian masalah yang terbaik.
5. Masalah Petani, Kambing, Srigala dan Sayura-Sayuran
Masalah petani, kambing, serigala dan sayur-sayuran sering juga disebut dengan Farmer’s Problem. Illustrasi 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.
Penyelesaian:
A. Identifikasi ruang keadaan.
Permasalahan ini dapat dilambangkan dengan (petani, kambing, serigala, sayuran, rakit). Sebagai contoh: Daerah asal (1,0,1,1,1) berarti pada daerah asal tidak ada kambing, ada petani, ada serigala, ada sayuran dan ada rakit.
B. Keadaan awal dan tujuan.
- Keadaan awal, pada kedua daerah:
Daerah asal: (1,1,1,1,1) dan daerah seberang (0,0,0,0,0). - Tujuan pada kedua daerah:
Daerah asal: (0,0,0,0,0) dan daerah seberang (1,1,1,1,1). C. Aturan-aturan.
Terdapat beberapa aksi atau kondisi yang dapat terjadi pada Farmer’s Problem. Aksi atau kondisi ini tidak diperkenankan untuk melanggar aturan-aturan yang terdapat pada Farmer’s Problem.
Tabel 1. Aksi-aksi pada Farmer’s Problem
Aksi ke- Aturan
1 Petani dan kambing menyeberang.
2 Petani dan sayuran menyeberang.
3 Petani dan serigala menyeberang.
4 Petani dan kambing kembali.
5 Petani dan sayuran kembali.
7 Petani kembali.
Tabel 2. Aturan-aturan pada Farmer’s Problem
Aturan Keterangan Aturan
1 Jika petani tidak ada, maka kambing akan memakan
sayur-sayuran.
2 Jika petani tidak ada, maka serigala akan memakan
kambing.
3 Hanya petani yang dapat mengemudikan rakit.
D. Solusi.
Salah satu solusi yang bisa ditemukan pada Farmer’s Problem dapat dilihat pada tabel berikut.
Tabel 3. Contoh solusi pada Farmer’s Problem
Daerah Asal Daerah Seberang Aksi yang diambil
(1,1,1,1) (0,0,0,0) 1 (Petani dan kambing menyeberang)
(0,0,1,1) (1,1,0,0) 7 (Petani kembali)
(0,1,1,1) (1,0,0,0) 2 (Petani dan serigala menyeberang)
(0,0,0,1) (1,1,1,0) 3 (Petani dan sayuran menyeberang)
(0,0,1,0) (1,1,0,1) 4 (Petani dan kambing kembali)
(1,1,1,0) (0,0,0,1) 2 (Petani dan serigala menyeberang)
(1,0,0,0) (0,1,1,1) 7 (Petani kembali)
(1,1,0,1) (0,0,1,0) 3 (Petani dan sayuran menyeberang)
(1,0,0,0) (0,1,1,1) 7 (Petani kembali)
(1,1,0,0) (0,0,1,1) 1 (Petani dan kambing menyeberang)
(0,0,0,0) (1,1,1,1,1) SOLUSI
6. Karakteristik Pengguna
NO PENGGUNA MINIMAL KEAHLIAN
1 User Dapat menggunakan dan mengoperasikan computer
7. Fasilitas Perangkat Lunak
NO YANG DISEDIAKAN SUB
1 Menu Pilihan Menu Inputan Problem
Menu Inputan Variable Menu Inputan Rule
2 Menu Solusi Menu Solusi AI
Menu Solusi Manual
3 Penyelesaian Masalah Secara Keseluruhan
8. Kebutuhan Fungsioanal
Kebutuhan fungsional berisi spesifikasi fungsi yang harus dipenuhi perangkat lunak sesuai dengan keinginan pemakai. Adapun kebutuhan fungsional untuk Perangkat Lunak Simulasi Penyelesaian Masalah (PLSPM) ini adalah perangkat lunak harus mampu:
1. Memverifikasi menu yang dipilih oleh user.(Req. PLSPM -01) 2. Mengelola data input PLSPM :
b. Mengelola data inputan variabel. (Req. PLSPM -03) c. Mengelola data inputan rule. (Req. PLSPM -04) 3. Menampilkan data inputan:
a. Menampilkan inputan masalah. (Req. PLSPM -05)
b. Menampilkan inputan variabel. (Req. PLSPM -06)
c. Menampilkan inputan rule. (Req. PLSPM -07)
4. Menampilkan pilihan solusi:
a. Menampilkan solusi AI. (Req. PLSPM - 08)
b. Menampilkan solusi Manual. (Req. PLSPM - 09)
5. Menampilkan penyelesaian masalah. (Req.PLSPM-10)
9. Diagram Use Case
User Pilih Menu penyelesaian masalah input variabel input problem input rule solusi AI solusi manual
High Level Use Case
Nomor : HLUC – 01
Nama : Pilih Menu
Kegunaan :Menjelaskan proses pemilihan, pengolahan dan penyajian dari pemilihan menu
selanjutnya
Deskripsi : 1. User memilih menu yang akan dipilih
2. Sistem menampilkan menu pilihan untuk dipilih oleh user
Nomor : HLUC – 02
Nama : Penyelesaian masalah
Kegunaan : Menjelaskan proses pemilihan, pengolahan dan penyajian solusi dari pemilihan
masalah
Aktor : User
Deskripsi : 1. User menginputkan masalah, variabel dan rule yang akan diselesaikan secara
visualisasi
2. Sistem menampilkan penyelesaian masalah dengan solusi AI atau dengan solusi Manual
Nomor : HLUC – 03
Nama : Input problem
Kegunaan :Menjelaskan proses penginputan masalah
Aktor : User
Deskripsi : Pemakai memilih masalah yang akan ditampilkan solusinya
Nomor : HLUC – 04
Nama : Input variabel
Kegunaan :Menjelaskan proses pemilihan masalah dan memasukkan variabel masalah
Aktor : User
Nomor : HLUC – 05
Nama : Input rule
Kegunaan : Menjelaskan proses aturan pada pemilihan masalah
Aktor : User
Deskripsi : Pemakai memproses aturan yang akan di pakai
Nomor : HLUC – 06
Nama : Solusi AI
Kegunaan : Menampilkan penyelesaian masalah secara solusi AI
Aktor : User
Deskripsi :Pemakai dapat memilih dan menyelesaikan masalah dengan menggunakan solusi AI
Nomor : HLUC – 07
Nama : Solusi Manual
Kegunaan : Menampilkan penyelesaian masalah secara solusi manual
Aktor : User
Deskripsi :Pemakai dapat memilih dan menyelesaikan masalah dengan menggunakan solusi AI
10. Class
Tabel Identifikasi kelas
NO NAMA KELAS
1 Inputan 2 Problem 3 Tambang
4 Rakit 5 Variabel 6 Rule 7 Solusi 8 Solusi AI 9 Solusi Manual
Berikut adalah gambaran kelas pada Perangkat Lunak
Inputan solusi Solusi AI Solusi manual Problem Tambang Rakit Variabel Rule
11. Atribut dan Layanan
Atribut adalah data yang dimiliki oleh suatu objek dalam kelas. Sedangkan layanan (operasi) adalah fungsi atau transformasi yang mungkin dapat diaplikasikan ke/oleh suatu objek dalam kelas. Tabel dibawah ini yang menjelaskan atribut dan layanan pada Perangkat Luank yang dibangun
Tabel Atribut dan Layanan
No Nama Objek Atribut Layanan
1 Inputan IDInput Pilih_input(), masukkan_input(),
tampil_input()
namaProblem pilihalat Databaru_problem(), Hapus_dt_problem(), Tampil_dt_problem(). 3 Tambang problemID namaProblem Tampil_problem() Tampil_solusi() 4 Rakit problemID namaProblem Tampil_problem() Tampil_solusi() 5 Variabel problemID variabelID namavariabel driver Simpan_dt_variabel(), Databaru_variabel(), Hapus_dt_variabel(), Tampil_dt_variabel(). 6 Rule problemID variabel1 ttacked variabel2 variabel3 variabel4 Simpan_dt_rule(), Databaru_rule(), Hapus_dt_rule(), Tampil_dt_rule(). 7 Solusi problemID variabelID namavariabel driver Tampil_solusiAI() Tampil_solusiManual()
variabelID namavariabel driver Tampil_rule() Tampil_problem() Tampil_solusiAI()
9 Solusi Manual problemID
variabelID namavariabel driver Tampil_variabel() Tampil_rule() Tampil_problem() Tampil_solusimanual() 12. Struktur Hirarki
Untuk mengatur, menyederhanakan, mengoperasikan objek-objek yang sudah diidentifikasi melalui konsep agregasi dan pewarisan maka dibuat struktur dan hirarki. Pada analisis Perangkat Lunak ini ditemukan adanya struktur dan hirarki pada objek input, dan solusi.
a. Struktur dan Hirarki Pada Objek Inputan
Gambar dibawah ini merupakan struktur dan hirarki yang terdapat dalam tahap analisis, dimana objek Inputan, objek inputan problem, objek inputan variabel dan inputan rule merupakan struktur “generalization—specification”.
Inputan
Input Problem Input Rule Input Variabel
Gambar Struktur dan Hirarki pada Objek Inputan
b. Struktur dan Hirarki Pada Objek Poblem
Gambar dibawah ini merupakan struktur dan hirarki yang terdapat dalam tahap analisis, dimana objek problem, rakit, tambang merupakan struktur “generalization—specification”.
Problem
Tambang Rakit
Gambar Stuktur dan hirarki pada objek Problem, rakit dan tambang
c. Struktur dan Hirarki Pada Objek Solusi
Gambar dibawah ini merupakan struktur dan hirarki yang terdapat dalam tahap analisis, dimana objek solusi, solusi AI, solusi manual merupakan struktur “generalization—specification”.
Solusi
Solusi AI
Solusi Manual
Gambar Struktur dan hirarki pada objek solusi, solusiAI dan solusiManual
13. Model Hubungan Objek
Pada model hubungan objek akan dijelaskan hubungan antar objek yang saling berinteraksi satu sama lainnya.
Inputan
Input Problem Input Rule Input Variabel
Solusi Solusi Manual Solusi AI User Menu mengaktifkan mengaktifkan mengaktifkan 1 1 1 1 1 1
Gambar Model Hubungan Objek
14. Diagram Sekuens
a. Diagram Sekuene untuk Model Pesan
Actor/user :Sistem ' ' ' pilih_menu() olah_dt_inputproblem() olah_dt_inputvariabel() olah_dt_inputrule() tampil_dt_inputproblem() tampil_dt_inputvariabel() tampil_dt_inputrule() pilih_solusi() tampil_solusiAI() tampil_solusiManual() tampil_penyelesaianmasalah()
b. Diagram Sekuens untuk Layanan Olah dt_inputproblem()
Actor/user
:Menu :Formmain :inputproblem
pilih_menu() menu() olah_input() simpan _input() hapus_input() input_baru() proses_simpan_input() proses_baru()
c. Diagram Sekuens untuk Layanan Olah dt_inputvariabel
Actor/user
:Menu :Formmain :inputvariabel
pilih_menu() menu() olah_input() simpan _input() hapus_input() input_baru() proses_simpan_input() proses_baru()
d. Diagram Sekuens untuk Layanan Olah dt_inputrule()
Actor/user
:Menu :Formmain :inputrule
pilih_menu() menu() olah_input() simpan _input() hapus_input() input_baru() proses_simpan_input() proses_baru()
e. Diagram Sekuens Untuk Tampil dt_inputproblem()
Actor/user
:Menu :Formmain :inputproblem
pilih_menu() menu()
tampil()
f. Diagram Sekuens Untuk Tampil dt_inpuvariabel()
Actor/user
:Menu :Formmain :inputvariabel
pilih_menu() menu()
tampil()
get_inputvariabel()
g. Diagram Sekuens Untuk Tampil dt_inputrule()
Actor/user
:Menu :Formmain :inputrule
pilih_menu() menu()
tampil()
get_inputrule()
h. Diagram Sekuens Untuk Tampil solusiAI()
Actor/user
:Menu :Formmain :solusiAI
pilih_menu() menu()
tampil()
i. Diagram Sekuens Untuk Tampil solusiManual()
Actor/user
:Menu :Formmain :solusiManual
pilih_menu() menu()
tampil()
get_solusiManual()
j. Diagram Sekuens Untuk tampil_penyelesaianmasalah()
Actor/user
:Menu :Formmain :penyelesaian masalah
pilih_menu() menu()
tampil()
get_masalah()
15. Diagram Aktivitas
a. Diagram Aktivitas Untuk Layanan Olah dt_inputproblem()
Menu
mengelola data inputan
simpan dt input baru
simpan dt input problem
dt baru
pengisian dt baru
simpan dt input problem
hapus dt hapus dt end end end lengkap tidak lengkap cek data tidak data simpan hapus baru cek data tidak data tidak lengkap ada cek lengkap lengkap cek data ada No Start salah pilihan menu Benar
Menu
mengolah data inputan
Start
Pilih menu
Benar
Hapus Salah
Simpan dt input baru
simpan dt inputvariabel No End End Lengkap tidak ada cek data tidak Lengkap dt baru pengisian dt baru simpan dt inputVariabel End Lengkap cek data ada cek data Simpan baru tidak ada tidak Lengkap Hapus dt hapus dt ada cek data
c. Diagram Aktivitas Untuk Layanan Olah dt_inputrule() Menu
mengolah data inputan Start
Pilih menu
Benar
Hapus Salah
Simpan dt input baru
simpan dt inputrule No End End Lengkap tidak ada cek data tidak Lengkap dt baru pengisian dt baru simpan dt inputRule End Lengkap cek data ada cek data Simpan baru tidak ada tidak Lengkap Hapus dt hapus dt ada cek data
d. Diagram Aktivitas Untuk Layanan Tampil dt_inputproblem() Menu tampil dt inputProblem Start Pilih menu Benar Salah end
e. Diagram Aktivitas Untuk Layanan Tampil dt_inputvariabel()
Menu tampil dt inputVariabel Start Pilih menu Benar Salah end
f. Diagram Aktivitas Untuk Layanan Tampil dt_inputrule()
Menu tampil dt inputRule Start Pilih menu Benar Salah end
g. Diagram Aktivitas Untuk Tampil solusiAI() Menu Tampil SolusiAI Start Pilih menu Benar End Salah
h. Diagram Aktivitas Untuk Tampil solusiManual()
Menu Tampil SolusiManual Start Pilih menu Benar End Salah
i. Diagram Aktivitas Untuk Tampil penyelesaianmasalah()
Menu
Tampil Penyelesaian Masalah Start
Pilih menu
Benar
End Salah
16. Implementasi
a. Implementasi Objek
Tabel Implementasi Objek
Objek Hasil Implementasi Fungsi
Form menu Halaman menu Memberikan menu piliha kepada user
untuk memilih form selanjutnya
Main Halaman utama Memberikan menu pilihan untuk memilih
data input dan solusi yang akan dipilih serta menampilkan penyelesaian masalah secara keseluruhan
Input problem Halaman olah data input problem
Untuk menampilkan data input problem, pilihan simpan, baru dan hapus
Input variable Halaman olah data input variable
Untuk menampilkan data input variabel, pilihan simpan, baru dan hapus
Input rule Halaman olah data input
rule
Untuk menampilkan data input rule, pilihan simpan, baru dan hapus
Solusi AI Halaman penyelesaian
masalah
Untuk menampilkan penyelesaian masalah secara Solusi AI
Solusi Manual Halaman penyelesaian
masalah
Untuk menampilkan penyelesaian masalah secara Solusi Manual
b. Implementasi Layanan
Implementasi Layanan Form Input Data
Tabel Implementasi Layanan Input Data
Layanan Hasil Implementasi Fungsi
Olah_dt_inputproblem() Function
olah_dt_inputproblem()
Menampilkan halaman untuk mengolah data inputproblem
Olah_dt_inputvariabel() Function
olah_dt_inputvariabel()
Menampilkan halaman untuk mengolah data inputvariabel
Olah_dt_inputrule() Function olah_dt_inputrule() Menampilkan halaman
inputrule
Implementasi Layanan Form Menu
Tabel Implementasi Layanan Form Menu
Layanan Hasil Implementasi Fungsi
Masuk_menu() Function masuk_menu() Menampilkan halaman
pilihan menu yang akan dipilih
Tampil_ inputproblem () Function tampil_ inputproblem ($problemID)
Menampilkan halaman input inputproblem
Tampil_ inputvariabel() Function tampil_ inputvariabel
($problemID, $variabelID)
Menampilkan halaman input inputvariabel
Tampil_ inputrule () Function tampil_ inputrule
($problemID)
Menampilkan halaman input inputrule
Implementasi Layanan Objek Input Problem
Tabel Implementasi Layanan Objek Input Problem
Layanan Hasil Implementasi Fungsi
baru_ inputproblem () Function baru_ inputproblem
($problemID, $namaproblem)
Menampilkan halaman untuk menambah data input problem
proses_baru_ inputproblem () Function baru_ inputproblem
($problemID, $namaproblem)
Untuk mengetahui apakah data input problem sudah ada atau belum
Simpan_inputproblem() Function simpan_
inputproblem ($problemID, $namaproblem)
Menampilkan halaman untuk menambah data input problem proses_simpan_ inputproblem () Function proses_simpan_ inputproblem ($problemID, $namaproblem)
Untuk mengetahui apakah data input problem berhasil disimpan atau tidak
hapus_inputproblem() Function hapus_ inputproblem
($problemID)
Untuk mengetahui apakah data yang dihapus berhasil dihapus atau tidak
get_dt_ inputproblem () Function get_dt_ inputproblem ($problemID, $namaproblem)
Untuk mengambil data input problem
tampil_dt_ inputproblem () Function tampil_dt_
inputproblem ($problemID, $namaproblem)
Halaman untuk menampilkan data input
problem
Implementasi Layanan Objek Input Variabel
Tabel Implementasi Layanan Objek input variabel
Layanan Hasil Implementasi Fungsi
baru_ inputvariabel () Function baru_ inputvariabel
($problemID, $variabelID, $namavariabel,$driver)
Menampilkan halaman untuk menambah data input variabel
proses_baru_ inputvariabel () Function baru_ inputvariabel ($problemID, $variabelID, $namavariabel,$driver)
Untuk mengetahui apakah data input variabel sudah ada atau belum
Simpan_inputvariabel() Function simpan_
inputvariabel ($problemID, $variabelID,
$namavariabel,$driver)
Menampilkan halaman untuk menambah data input variabel proses_simpan_ inputvariabel () Function proses_simpan_ inputvariabel ($problemID, $variabelID, $namavariabel,$driver)
Untuk mengetahui apakah data input variabel berhasil disimpan atau tidak
hapus_inputvariabel() Function hapus_ inputvariabel
($problemID)
Untuk mengetahui apakah data yang dihapus berhasil dihapus atau tidak
get_dt_ inputvariabel () Function get_dt_ inputvariabel
($problemID, $variabelID, $namavariabel,$driver)
Untuk mengambil data input variabel
tampil_dt_ inputvariabel () Function tampil_dt_
inputvariabel ($problemID, $variabelID,
$namavariabel,$driver)
Halaman untuk menampilkan data input
Implementasi Layanan Objek Input Rule
Tabel Implementasi Layanan Objek input rule
Layanan Hasil Implementasi Fungsi
baru_ inputrule () Function baru_ inputrule
($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Menampilkan halaman untuk menambah data input rule
proses_baru_ inputrule () Function baru_ inputrule
($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Untuk mengetahui apakah data input rule sudah ada atau belum
Simpan_inputrule() Function simpan_ inputrule
($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Menampilkan halaman untuk menambah data input rule
proses_simpan_ inputrule () Function proses_simpan_
inputrule ($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Untuk mengetahui apakah data input rule berhasil disimpan atau tidak
hapus_inputrule() Function hapus_ inputrule
($problemID)
Untuk mengetahui apakah data yang dihapus berhasil dihapus atau tidak
get_dt_ inputrule () Function get_dt_ inputrule
($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Untuk mengambil data input rule
tampil_dt_ inputrule () Function tampil_dt_ inputrule
($problemID, $variabel1,$ attackid, $variabel2, $variabel3, $variabel4)
Halaman untuk menampilkan data input
c. Implementasi struktur data
Tabel Struktur Data Tabel Problem
No. Atribut Tipe Lebar Kunci Keterangan
1. ProblemID Char 10 * No masalah
2. NamaProblem Varchar 25 Nama
masalah
3 Pilihalat Varchar 20 Pilih penyebranganalat
Tabel Struktur Data Tabel Variabel
No. Atribut Tipe Lebar Kunci Keterangan
1. ProblemID Char 10 * No masalah
2. VariabelID Char 10 No variabel
3. NamaVariabel Varchar 25 NamaVariabel
4. Driver Yes/No - Pengemudi
Tabel Struktur Data Tabel Rule
No. Atribut Tipe Lebar Kunci Keterangan
1. ProblemID Char 10 * No masalah
2. Variabel1 Varchar 25 Variabel pertama
3. AttackID Char 15 No serangan
4. Variabel2 Varchar 25 Variabel kedua
5. Variabel3 Varchar 25 Variabel ketiga
17. Kesimpulan
Setelah menyelesaikan perangkat lunak bantu penyelesaian masalah state and space, maka dapat ditarik kesimpulan sebagai berikut:
1. Masalah state and space dibatasi pada beberapa variabel yang ada di daerah asal, akan diseberangkan ke daerah tujuan menurut aturan-aturan yang ditentukan.
2. Aturan-aturan yang digunakan juga dapat ditentukan sendiri yaitu aturan yang memenuhi
format berikut,
a. Item1 akan memakan / menyerang / memukul Item2, apabila Item3 dan Item4 tidak
berada di tempat.
b. Item_X dapat mengemudikan rakit.
3. Perangkat lunak menampilkan semua pergerakan (secara bertahap) dari solusi yang
didapatkan, sehingga solusi akan terlihat lebih jelas.
DAFTAR PUSTAKA
[1]. Alan M. Davis, “Software Requirements”, Prentice Hall International, 1993
[2]. Eric J. Braude, “Software Engineering an Object Oriented Perspective”, John Wiley & Sons,
Inc, 2001
[3]. Roger S. Pressman, “Software Engineering”, Sixth Edition, McGraw-Hill, 2005
[4]. Suyanto, ST., Msc, “Artificial Intelligence”, Penerbit INFORMATIKA, 2007