aplikasi permainan semut mencari permen dengan

advertisement
APLIKASI PERMAINAN SEMUT MENCARI PERMEN
DENGAN MENGGUNAKAN METODE
SEARCH TREE
SKRIPSI
Oleh:
JHONSEN
NIM.1144042
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK TIME
MEDAN
2015
ABSTRAK
Search tree adalah suatu metode pelacakan yang dapat diterapkan untuk mencari
solusi pada bidang ilmu Artificial Intelligence (AI). Salah satu contoh persoalan
AI yang memerlukan penerapan search tree adalah dalam pencarian lintasan yang
dapat dilalui oleh seekor semut. Deskripsi dari permasalahan ini adalah sebagai
berikut, diketahui seekor semut akan bergerak dari suatu titik (x,y) ke titik A(m,n).
Semut hanya boleh membelok atau melintas pada titik-titik grid dan selalu
melangkah horizontal ataupun vertikal. Pencarian solusi dari permasalahan ini
menggunakan metode breadth first search (BFS). Langkah awal adalah membuat
search tree dari masalah yang dimasukkan. Pencarian dimulai dari posisi awal
sebagai node akar, selanjutnya metode BFS mencari solusi dengan
mengembangkan node akar ke level-level berikutnya, semua pergerakan yang
mungkin, tidak melanggar ketentuan dan menghasilkan kondisi baru
dikembangkan semaksimal mungkin. Pencarian berakhir apabila tidak ada lagi
node atau kondisi baru yang dapat dikembangkan. Semua node yang merupakan
posisi tujuan merupakan solusi. Hasil penelitian ini adalah sebuah perangkat lunak
dapat digunakan untuk bermain ‘Permainan Semut Mencari Permen’ pada sebuah
komputer.
Kata Kunci: Semut mencari permen, search tree, metode breadth first search
(BFS)
i
ABSTRACT
A search tree is a tree data structure in whose nodes data values are stored
from some ordered set, in such a way that in-order traversal of the tree visits the
nodes in ascending order of the stored values. This means that for any internal
node containing a value y, the values x stored in its left sub tree satisfy x ≤ y, and
the values y stored in its right sub tree satisfy v ≤ y. Each sub tree of a search tree
is by itself again a search tree.
One of those AI problems that need the implementation of search tree is a
problem for seeking the path for an ant. The problem could be described as
follow, an ant wants to move from start point, to destination point,. This
destination point could represent candy, sugar, etc. The ant could only moves in
grid points and always moves horizontally or vertically. The ant could passed the
path that has been passed before. To increase the complexity of problem, we could
add several barriers, which will be represented by water and the range of the
should be limited.
The result of this research is software for playing ant seeking candy in
computer.
Keywords: Ant seeking candy, search tree, breadth first search (BFS)
ii
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan
kesehatan kepada saya penulis dan berkat kebajikan yang telah diperbuat selama
ini sehingga saya dapat menjelaskan skripsi yang merupakan salah satu
pemenuhan kurikulum program studi Teknik Informatika pada STMIK TIME
Medan. Adapun judul dari skripsi ini adalah “Aplikasi Permainan Semut
Mencari Permendengan Menggunakan Metode SearchTree”.
Dalam penyusunan skripsi ini, penulis banyak menerima bantuan, baik
bimbingan maupun petunjuk serta saran nasehat dari berbagai pihak.
Melalui kesempatan ini,penulis ingin menyampaikan rasa terima kasih
yang sebesar – besarnya kepada :
1.
Bapak Erwin Panggabean, M.Kom, selaku Dosen Pembimbing I yang telah
membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
2.
Bapak Huliman, M.Kom, selaku Dosen Pembimbing IIyang telah membantu
dan membimbing penulis dalam menyelesaikan skripsi ini.
3.
Bapak Simon Kanggali, selaku Ketua Yayasan STMIK TIME Medan.
4.
Bapak Prof. Chainur Arrasyid, S.H, selaku Ketua BPH STMIK TIME Medan.
5.
Bapak Prof.Harlem Marpaung, Ph.D, selaku Ketua STMIK TIME Medan.
6.
Bapak Jackri Hendrik, S.T, M.Kom, selaku Puket I STMIK TIME Medan.
7.
Bapak Hendri, M.Kom, selaku Ketua Program Studi Teknik Informatika
STMIK TIME Medan.
iii
8.
Seluruh Dosen STMIK TIME Medan, yang telah banyak memberikan ilmu
pengetahuan kepada penulis selama perkuliahan.
9.
Kedua orang tua tercinta dan teman-teman yang telah membantu baik dari
segi moril maupun material hingga selesainya penyusunan skripsi ini.
Meskipun telah disusun, penulis menyadari bahwa isi dan teknik penulisan
skripsi ini masih memerlukan perbaikan untuk menyempurnakannya baik dari segi
tata bahasa manapun materi yang terkandung didalamnya. Oleh karena itu, setiap
kritik dan saran akan dijadikan bahan perbaikan untuk penulisan selanjutnya.
Medan, April 2015
Penulis
Jhonsen
iv
DAFTAR ISI
ABSTRAK ..........................................................................................................
i
ABSTRACT.......................................................................................................... ii
KATA PENGANTAR ......................................................................................... iii
DAFTAR ISI ....................................................................................................... v
DAFTAR GAMBAR ........................................................................................... viii
DAFTAR TABEL ............................................................................................... x
DAFTAR LAMPIRAN ....................................................................................... xi
BAB I
PENDAHULUAN ......................................................................... 01
1.1. Latar belakang masalah ........................................................... 01
1.2. Identifikasi masalah ................................................................. 02
1.3. Batasan masalah ...................................................................... 02
1.4. Tujuan dan manfaat penelitian ................................................. 03
1.5. Sistematika penulisan .............................................................. 04
BAB II
LANDASAN TEORI .................................................................... 05
2.1. Artificial Intelligence (AI) ....................................................... 05
2.1.1. Sejarah AI ..................................................................... 8
2.1.2. Perbedaan antara AI dan Kecerdasan Alami .................. 10
2.1.3. Ruang Lingkup AI pada Aplikasi Komersial ................. 11
2.1.4. Komputasi AI dan Komputasi Konvensional ................. 14
2.1.5. Soft Computing ............................................................ 14
2.2. Representasi Pengetahuan ....................................................... 16
v
2.2.1. List ............................................................................... 18
2.2.2. Skema ........................................................................... 19
2.2.3. Struktur Pohon .............................................................. 19
2.2.4. Sistem Produksi ............................................................ 21
2.3. State Space and Search Problema ............................................. 23
2.4. Metode Pencarian .................................................................... 24
2.4.1. Breadth-First Search .................................................... 25
2.4.2. Depth-First Search ....................................................... 26
2.4.3. Pencarian Heuristik (Heuristic Search) ......................... 27
2.5. Pencarian Lintasan Pada Bidang Kartesian .............................. 29
2.6. Model Waterfall ....................................................................... 33
BAB III
METODE PENELITIAN ............................................................. 35
3.1. Tempat dan jadwal penelitian ................................................. 35
3.2. Kerangka kerja ....................................................................... 35
3.2.1. Pengumpulan Data ........................................................ 36
3.2.2. Analisa sistem ............................................................... 37
3.2.3. Perancangan sistem ....................................................... 37
3.2.4. Pembangunan sistem ..................................................... 38
3.2.5. Uji coba sistem ............................................................. 38
BAB IV
ANALISA DAN PERANCANGAN ............................................. 39
4.1. Analisa .................................................................................. 39
4.2. Perancangan ........................................................................... 52
4.2.1. Form ‘Login’ ................................................................ 53
4.2.2. Form ’Main’ ................................................................. 54
vi
4.2.3. Form ‘Bermain’ ............................................................ 55
4.2.4. Form ‘User’ .................................................................. 56
4.2.5. Form ‘Skor Tertinggi’ ................................................... 57
4.2.6. Form ‘Mengenai Pembuat’ ........................................... 58
BAB V
HASIL DAN PEMBAHASAN ..................................................... 59
5.1. Hasil ........................................................................................ 59
5.2. Pembahasan ............................................................................. 65
BAB V1
KESIMPULAN DAN SARAN ..................................................... 67
6.1. Kesimpulan .............................................................................. 67
6.2. Saran ........................................................................................ 67
DAFTAR PUSTAKA
LAMPIRAN
vii
DAFTAR GAMBAR
Gambar 2.1.
Sistem yang menggunakan AI ........................................................ 7
Gambar 2.2.
Contoh List .................................................................................... 18
Gambar 2.3.
Contoh Pohon ................................................................................ 19
Gambar 2.4.
Bagan Sistem Produksi ................................................................... 22
Gambar 2.5.
Metode Breadth-First Search ......................................................... 25
Gambar 2.6.
Metode Depth-First Search ............................................................ 27
Gambar 2.7.
Solusi Lintasan-1 ........................................................................... 30
Gambar 2.8.
Solusi Lintasan-2 ........................................................................... 30
Gambar 2.9.
Solusi Lintasan-3 ........................................................................... 30
Gambar 2.10. Solusi Lintasan-4 ........................................................................... 31
Gambar 2.11. Solusi Lintasan-5 ........................................................................... 31
Gambar 2.12. Solusi Lintasan-6 ........................................................................... 31
Gambar 2.13. Solusi Lintasan-7 ........................................................................... 32
Gambar 2.14. Solusi Lintasan-8 ........................................................................... 32
Gambar 2.15. Solusi Lintasan-9 ........................................................................... 32
Gambar 2.16. Solusi Lintasan-10 ......................................................................... 33
Gambar 2.17. The Classic Life Cycle .................................................................... 34
Gambar 3.1.
Kerangka kerja penelitian ............................................................... 36
Gambar 4.1.
Contoh struktur pohon pelacakan dengan metode BFS ................... 47
Gambar 4.2.
Kriteria solusi paling optimum ....................................................... 48
Gambar 4.3.
Langkah-langkah solusi paling optimum terhalang oleh rintangan .. 49
Gambar 4.4.
Solusi paling optimum-1 ................................................................ 50
Gambar 4.5.
Solusi paling optimum-2 ................................................................ 51
Gambar 4.6.
Solusi tidak optimum-1 .................................................................. 51
Gambar 4.7.
Solusi tidak optimum-2 .................................................................. 52
Gambar 4.8.
Rancangan Form ‘Login’ ............................................................... 53
Gambar 4.9.
Rancangan Form ‘Main’ ................................................................ 54
Gambar 4.10. Rancangan Form ‘Bermain’ ............................................................ 55
viii
Gambar 4.11. Rancangan Form ‘Pilihan Pemain’ .................................................. 56
Gambar 4.12. Rancangan Form ‘Skor Tertinggi’ .................................................. 57
Gambar 4.13. Rancangan Form ‘Mengenai Pembuat’ ........................................... 58
Gambar 5.1.
Tampilan Login .............................................................................. 59
Gambar 5.2.
Tampilan Awal .............................................................................. 60
Gambar 5.3.
Tampilan Nama Pemain ................................................................. 60
Gambar 5.4.
Tampilan Tambah Pemain .............................................................. 61
Gambar 5.5.
Tampilan Permainan ...................................................................... 62
Gambar 5.6.
Tampilan Permainan Ketika Berhasil Memenangkan Permainan .... 63
Gambar 5.7.
Tampilan Pesan Pemberitahuan Bahwa Permainan Berakhir .......... 64
Gambar 5.8.
Tampilan Skor Tertinggi ................................................................. 64
Gambar 5.9.
Tampilan Mengenai Pembuat ......................................................... 65
ix
DAFTAR TABEL
Tabel 2.1
AI Vs. Pemrograman Konvensional .................................................. 14
Tabel 2.2
Hubungan Antara Unsur-Unsur Pokok dalam Soft Computing............ 15
Tabel 3.1
Daftar Waktu dan Kegiatan Penelitian ............................................... 35
x
DAFTAR LAMPIRAN
Lampiran 1. Listing Program CD
Lampiran 2. Surat Keputusan Dosen Pembimbing Skripsi
Lampiran 3. Daftar Riwayat Hidup Mahasiswa
Lampiran 4. Listing Program
Lampiran 5. Kartu Bimbingan
xi
BAB I
PENDAHULUAN
1.1
Latar Belakang Masalah
Pohon pelacakan adalah suatu pohon yang dapat diterapkan untuk
menyelesaikan persoalan pada bidang ilmu Artificial Intelligence (AI), dimana
akar dari pohon berupa keadaan awal dari permasalahan dan cabang (dahan)
berupa keadaan-keadaan yang mungkin terjadi dari keadaan sebelumnya serta
daun merupakan keadaan akhir dari permasalahan tersebut. Keadaan-keadaan
akhir tersebut dapat merupakan solusi dari permasalahan ataupun mungkin saja
tidak ada yang dapat dijadikan solusi dari permasalahan.
Salah satu contoh persoalan AI yang memerlukan penerapan pohon
pelacakan adalah dalam mencari lintasan yang dapat dilalui oleh seekor semut
pada bidang Kartesian. Persoalan ini dapat dideskripsikan sebagai berikut.
Diketahui seekor semut akan bergerak dari titik pusat (0,0) ke titik A(m,n). Semut
tersebut hanya boleh membelok pada titik-titik grid dan selalu melangkah sejajar
dengan sumbu-x atau sumbu-y. Semut tersebut tidak boleh melintasi titik yang
telah pernah dilaluinya. Setelah itu, disediakan sederetan ketentuan yang
membatasi pergerakan semut tersebut. Yang menjadi permasalahannya adalah
bagaimana bentuk lintasan-lintasan yang dapat dilalui oleh semut tersebut dengan
menggunakan ketentuan-ketentuan yang telah ditetapkan tersebut.
Dalam bidang ilmu AI, Persoalan ini sangat menantang dan sangat
menarik untuk dipelajari. Oleh karena itu, penulis mengambil skripsi dengan judul
1
2
“Aplikasi Permainan Semut Mencari Permen dengan Menggunakan Metode
Search Tree”.
1.2
Identifikasi Masalah
Berdasarkan latar belakang pemilihan judul, maka yang menjadi
permasalahan adalah penerapan metode search tree dalam menyelesaikan
persoalan pencarian lintasan yang dapat dilalui oleh seekor semut.
1.3
Batasan Masalah
Ruang lingkup permasalahan dalam merancang perangkat lunak ini
dibatasi sebagai berikut.
1. Ukuran daerah yang dapat ditelusuri dimulai dari 5 x 5 satuan dan maksimal
10 x 10 satuan.
2. Pada daerah penelusuran akan terdapat halangan (rintangan) yang berupa
genangan air.
3. Perangkat lunak dapat menampilkan semua solusi-solusi yang mungkin.
4. Jika tidak terdapat solusi, maka perangkat lunak akan menampilkan pesan
pemberitahuan.
5. Bahasa pemrograman yang digunakan untuk membangun sistem adalah
Microsoft Visual Basic 2010.
6. Database digunakan untuk menyimpan data ‘Pemain’ dan ‘Skor Tertinggi’.
3
1.4
Tujuan dan Manfaat Penelitian
Tujuan penyusunan skripsi ini adalah untuk merancang suatu perangkat
lunak yang dapat menyelesaikan persoalan pencarian lintasan yang dapat dilalui
oleh seekor semut menggunakan metode search tree.
Manfaat dari penyusunan skripsi ini, yaitu :
1. Bagi penulis
a. Untuk menambah wawasan dan pengetahuan penulis mengenai metode
search tree dan penerapannya dalam mencari solusi dari ‘Permainan
Semut Mencari Permen’.
b. Untuk meningkatkan kemampuan penulis mengenai cara pembuatan
aplikasi dengan menggunakan Microsoft Visual Basic.NET 2010.
2. Bagi pembaca
a. Aplikasi dapat digunakan sebagai sarana hiburan yang cukup menarik
untuk mengisi waktu senggang.
b. Laporan penelitian dapat dijadikan sebagai referensi dalam pengembangan
perangkat lunak permainan lainnya.
3. Bagi STMIK TIME
a. Untuk membantu pemahaman mata kuliah AI, terutama mengenai
penerapan pohon pelacakan.
b. Perangkat lunak dapat digunakan sebagai fasilitas pendukung dalam proses
belajar mengajar.
4
1.5
Sistematika Penulisan
Rincian isi dari laporan skripsi ini meliputi beberapa BAB, yaitu:
BAB I
PENDAHULUAN
Bab ini membahas latar belakang masalah, identifikasi masalah,
batasan masalah, tujuan dan manfaat serta sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini berisi tentang Artificial Intelligence (AI), representasi
pengetahuan, state space and search problema, metode pencarian,
pencarian lintasan pada bidang Kartesian dan model Waterfall.
BAB III
METODE PENELITIAN
Bab ini berisi pembahasan jadwal penelitian, kerangka peneliti,
metode pengumpulan data, dan alur kerja program.
BAB IV
ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi pembahasan masalah serta rancangan tampilan form
yang terdapat pada program yang akan dibuat.
BAB V
HASIL DAN PEMBAHASAN
BAB ini berisi tampilan output program dan penjabaran mengenai
kelebihan dan kelemahan program yang dibuat.
BAB VI
KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran untuk pengembangan
perangkat lunak ke depannya.
BAB II
LANDASAN TEORI
2.1
Artificial Intelligence (AI)
Artificial Intelligence (AI) disebut juga dengan kecerdasan buatan. AI
merupakan salah satu bagian ilmu komputer yang mempelajari tentang bagaimana
cara membuat agar komputer dapat melakukan pekerjaan seperti yang dilakukan
oleh manusia.
Menurut Suyanto (2011:2), sebagian kalangan menerjemahkan AI sebagai
berikut:
kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau
intelijensia buatan. Pada buku ini, istilah AI sengaja tidak diterjemahkan
ke Bahasa Indonesia karena istilah tersebut sudah sangat akrab bagi orang
Indonesia. Begitu juga dengan singakatan istilah tersebut, yaitu AI, sudah
sangat melekat di berbagai media ilmiah maupun non ilmiah.
Menurut Sutojo, et al. (2011:1), kecerdasan buatan berasal dari Bahasa
Inggris AI atau disingkat AI, yaitu:
intelligence adalah kata sifat yang berarti cerdas, sedangkan artificial
artinya buatan. Kecerdasan buatan yang dimaksud disini merujuk pada
mesin yang mampu berpikir, menimbang tindakan yang akan diambil, dan
mampu mengambil keputusan seperti yang dilakukan oleh manusia.
Menurut Desiani dan Arhami (2006:1), AI atau kecerdasan buatan dapat
didefinisikan sebagai:
cabang dari ilmu komputer yang konsern dengan pengautomatisasi tingkah
laku cerdas. Pernyataan tersebut juga dapat dijadikan definisi dari AI.
Definisi ini menunjukkan bahwa AI adalah bagian dari komputer sehingga
harus didasarkan pada sound theoretical (teori suara) dan prinsip-prinsip
aplikasi dari bidangnya.
5
6
Menurut Siswanto (2010:1), “AI definisinya adalah proses dimana
peralatan mekanik dapat melaksanakan kejadian-kejadian dengan menggunakan
pemikiran atau kecerdasan seperti manusia”.
Menurut Suparman dan Marlan (2007:1), “AI merupakan subbidang
pengetahuan komputer yang khusus ditujukan untuk membuat software dan
hardware yang sepenuhnya bias menirukan beberapa fungsi otak manusia”.
Menurut
Kristanto
(2004:2),
AI
atau
kecerdasan
buatan
dapat
didefinisikan sebagai berikut:
bagian dari ilmu pengetahuan komputer yang khusus ditujukan dalam
perancangan otomatisasi tingkah laku cerdas dalam sistem kecerdasan
komputer. Sistem memperlihatkan sifat-sifat khas yang dihubungkan
dengan kecerdasan dalam kelakuan atau tindak-tanduk yang sepenuhnya
bias menitukan beberapa fungsi otak manusia, seperti pengertian Bahasa,
pengetahuan, pemikiran, pemecahan masalah dan lain sebagainya.
Tujuan dari AI adalah untuk memecahkan persoalan dunia nyata (bersifat
praktis) dan memahami intelligence (bersifat memahami). AI merupakan salah
satu bagian ilmu komputer yang mempelajari tentang bagaimana cara membuat
agar komputer dapat melakukan pekerjaan seperti yang dilakukan oleh manusia.
Pada awalnya, 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, tetapi, komputer dimanfaatkan 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
7
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.
Komputer juga harus diberi bekal pengetahuan dan mempunyai
kemampuan untuk menalar, agar komputer bisa bertindak seperti dan sebaik
manusia. Untuk itu pada AI, komputer dibekali dengan kedua komponen tersebut
agar komputer bisa menjadi mesin yang pintar. Untuk menciptakan aplikasi
kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan, yaitu:
1. Basis Pengetahuan (Knowledge Base)
Menurut Kusumadewi (2003:3), “basis pengetahuan berisi fakta-fakta,
teori, pemikiran, dan hubungan antara satu dengan yang lainnya”.
2. Motor Inferensi (Inference Engine)
Menurut Kusumadewi (2003:3), “motor inferensi merupakan kemampuan
menarik kesimpulan berdasarkan pengalaman, atau dapat juga disebut
dengan penalaran”.
Skema Sistem yang menggunakan AI dapat dilihat pada Gambar 2.1.
Gambar 2.1 Sistem yang menggunakan AI
Sumber : Kusumadewi, 2003
8
Definisi AI dapat dipandang dari berbagai sudut pandang, yaitu:
1. Sisi kecerdasan.
AI akan membuat mesin menjadi ‘cerdas’ (mampu berbuat seperti apa
yang dilakukan oleh manusia).
2. Sisi penelitian.
AI adalah suatu studi bagaimana membuat agar komputer dapat
melakukan sesuatu sebaik yang dikerjakan oleh manusia.
3. Sisi bisnis.
AI adalah kumpulan peralatan yang sangat powerful dan metodologis
dalam menyelesaikan masalah-masalah bisnis.
4. Sisi pemrograman.
AI meliputi studi tentang pemrograman simbolik, penyelesaian masalah
(problem solving), dan pencarian (searching).
(Kusumadewi, 2003)
2.1.1 Sejarah AI
Menurut Kusumadewi (2003:5), 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 mesin tersebut menyamar seolah-olah sebagai
seseorang di dalam suatu permainan yang mampu memberikan respon terhadap
serangkaian pertanyaan yang diajukan. Turing beranggapan bahwa, jika mesin
9
dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan
orang lain, maka dapat dikatakan bahwa mesin tersebut cerdas, seperti layaknya
manusia.
AI termasuk bidang ilmu yang relatif muda. AI 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 AI, yaitu
mengetahui dan memodelkan proses-proses berpikir manusia dan mendesain
mesin agar dapat menirukan kelakuan mesin tersebut.
Beberapa program AI yang mulai dibuat pada tahun 1956-1966, antara lain:
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. (Kusumadewi, 2003)
10
2.1.2 Perbedaan antara AI dan Kecerdasan Alami
Menurut Kusumadewi (2003:3), jika dibandingkan dengan kecerdasan
kecerdasan yang dimiliki oleh manusia (kecerdasan alami), AI memiliki beberapa
keuntungan secara komersial antara lain:
1. AI lebih bersifat permanen.
Kecerdasan alami akan cepat mengalami perubahan. Hal ini dimungkinkan
karena sifat manusia yang pelupa. AI tidak akan berubah sepanjang sistem
komputer dan program tidak diubah.
2. AI lebih mudah diduplikasi dan disebarkan.
Mentransfer pengetahuan manusia dari satu orang ke orang lain membutuhkan
proses yang sangat lama, dan keahlian itu juga tidak akan pernah dapat
diduplikasi dengan lengkap. Oleh karena itu, jika pengetahuan terletak pada
suatu sistem komputer, pengetahuan tersebut dapat disalin dari komputer
tersebut dan dapat dipindahkan dengan mudah ke komputer yang lain.
3. AI lebih murah dibanding dengan kecerdasan alami.
Menyediakan layanan komputer akan lebih mudah dan lebih murah
dibandingkan dengan harus mendatangkan seseorang untuk mengerjakan
sejumlah pekerjaan dalam jangka waktu yang sangat lama.
4. AI bersifat konsisten.
Hal ini disebabkan karena AI adalah bagian dari teknologi komputer.
sedangkan kecerdasan alami akan senantiasa berubah-ubah.
11
5. AI dapat didokumentasi.
Keputusan yang dibuat oleh komputer dapat didokumentasi dengan mudah
dengan cara melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami
sangat sulit untuk didokumentasi.
6. AI dapat mengerjakan pekerjaan jauh lebih cepat dibanding dengan
kecerdasan alami.
7. AI dapat mengerjakan pekerjaan lebih baik dibanding dengan kecerdasan
alami.
Sedangkan keuntungan dari kecerdasan alami adalah:
1. Kreatif.
Kemampuan untuk menambah ataupun memenuhi pengetahuan itu sangat
melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah
pengetahuan harus dilakukan melalui sistem yang dibangun.
2. Kecerdasan alami memungkinkan orang untuk menggunakan pengalaman
secara langsung. sedangkan pada kecerdasan buatan harus berkerja dengan
input-input simbolik.
3. Pemikiran manusia dapat digunakan secara luas, sedangkan AI sangat
terbatas. (Sandi, 2008)
2.1.3 Ruang Lingkup AI pada Aplikasi Komersial
Menurut Kusumadewi (2003:6), makin pesatnya perkembangan teknologi
menyebabkan adanya perkembangan dan perluasan lingkup yang membutuhkan
kehadiran AI. Karakteristik ‘cerdas’ sudah mulai dibutuhkan di berbagai disiplin
ilmu dan teknologi. AI tidak hanya dominan di bidang ilmu komputer
12
(informatika), namun juga sudah merambah di berbagai disiplin ilmu yang lain.
Irisan antara psikologi dan AI melahirkan sebuah area yang dikenal dengan nama
cognition & psycolinguistics. Irisan antara teknik elektro dengan AI melahirkan
berbagai ilmu, seperti pengolahan citra, teori kendali, pengenalan pola, dan
robotika.
Dewasa ini, AI juga memberikan konstribusi yang cukup besar di bidang
manajemen. Adanya sistem pendukung keputusan dan Sistem Informasi
Manajemen (SIM) juga tidak terlepas dari andil AI.
Adanya irisan penggunaan AI di berbagai disiplin ilmu tersebut
menyebabkan cukup rumitnya untuk mengklasifikasikan AI menurut disiplin ilmu
yang menggunakannya. Untuk memudahkan hal tersebut, maka pengklasifikasian
lingkup AI didasarkan pada output yang diberikan, yaitu pada aplikasi komersial.
Lingkup utama dalam AI adalah:
1. Sistem pakar (Expert System). Pada system pakar, komputer digunakan
sebagai sarana untuk menyimpan pengetahuan para pakar. Dengan demikian,
komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan
meniru keahlian yang dimiliki oleh pakar.
2. Pengolahan bahasa alami (Natural Language Processing). Dengan pengolahan
bahasa alami ini, diharapkan user dapat berkomunikasi dengan komputer
dengan menggunakan bahasa sehari-hari.
3. Pengenalan ucapan (Speech Recognition). Melalui pengenalan ucapan,
diharapkan manusia dapat berkomunikasi dengan komputer menggunakan
suara.
13
4. Robotika & sistem sensor (Robotics & Sensory Systems).
5. Computer Vision, mencoba untuk dapat menginterpretasikan gambar atau
objek-objek tampak melalui komputer.
6. Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai
tutor yang dapat melatih dan mengajar.
7. Game Playing.
Beberapa karakteristik yang ada pada sistem yang menggunakan AI adalah
pemrogramannya yang cenderung bersifat simbolik ketimbang algoritmik,
bisa mengakomodasi input yang tidak lengkap, bisa melakukan inferensi dan
adanya pemisahan antara kontrol dengan pengetahuan.
Namun, seiring dengan perkembangan teknologi, muncul beberapa
teknologi yang juga bertujuan untuk membuat agar komputer menjadi cerdas
sehingga dapat menirukan kerja manusia sehari-hari.
Teknologi ini juga mampu mengakomodasi adanya ketidakpastian dan
ketidaktepatan data input. Dengan didasari pada teori himpunan, maka pada tahun
1965, muncul Fuzzy Logic. Kemudian pada tahun 1975, John Holland
mengatakan bahwa setiap problem berbentuk adaptasi (alami maupun buatan)
secara umum dapat diformulasikan dalam terminologi genetika. Algoritma
genetika ini merupakan simulasi proses evolusi Darwin dan operasi genetika atas
kromosom.
14
2.1.4 Komputasi AI dan Komputasi Konvensional
Menurut Kusumadewi (2003:4), pada awal diciptakannya, komputer hanya
diperuntukkan sebagai alat hitung atau komputasi konvensional. Untuk itu, ada
beberapa perbedaan antara komputasi yang dilakukan pada AI dengan komputasi
konvensional tersebut. Perbedaan komputasi AI dengan komputasi konvensional
dapat dilihat pada Tabel 2.1.
Tabel 2.1 AI Vs. Pemrograman Konvensional
Dimensi
Komputasi
Konvensional
Komputasi AI
Pemrosesan
Mengandung konsepkonsep 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 menalar
Ya
Tidak
(Kusumadewi, 2003)
2.1.5 Soft Computing
Menurut Kusumadewi (2003:7), Soft computing dapat didefinisikan
sebagai berikut:
koleksi dari beberapa metodologi yang bertujuan untuk mengeksploitasi
adanya toleransi terhadap ketidaktepatan, ketidakpastian dan kebenaran
parsial untuk dapat diselesaikan dengan mudah, robustness, dan biaya
penyelesaiannya murah. Definisi ini pertama kali diungkapkan oleh Prof.
Lotfi A. Zadeh pada tahun 1992.
15
Soft computing merupakan inovasi baru dalam membangun sistem cerdas.
Sistem cerdas ini merupakan sistem yang memiliki keahlian seperti manusia pada
domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja lebih baik jika
terjadi perubahan lingkungan. Unsur-unsur pokok dalam Soft Computing adalah:
1. Sistem Fuzzy (mengakomodasi ketidaktepatan).
2. Jaringan Syaraf (menggunakan pembelajaran).
3. Probabilistic Reasoning (mengakomodasi ketidakpastian).
4. Evolutionary Computing (optimasi).
Keempat unsur tersebut bukan merupakan pesaing antara satu dengan lainnya,
namun diantaranya bisa saling melengkapi. Bahkan, pada kenyataannya, biasanya
unsur-unsur pokok tersebut akan digunakan secara sinergis ketimbang dikerjakan
secara sendiri-sendiri. Sehingga, Zadeh juga mendefinisikan bahwa soft
computing itu merupakan hubungan antara logika fuzzy, neuro-computing,
probabilistic reasoning, dan algoritma genetik. Tabel 2.2 menunjukkan hubungan
antara fuzzy/probabilistic-reasoning, jaringan syaraf tiruan dan AI konvensional.
Tabel 2.2 Hubungan Antara Unsur-Unsur Pokok dalam Soft Computing
Pembela
jaran
Fuzzy/probabilistic
Tidak
reasoning
Jaringan Syaraf
Ya
Tiruan
Sistem
Ya
Evolusioner
Sistem AI
Tidak
Konvensional
(Kusumadewi, 2003)
Ekstraksi
Pengetahuan
Operasi
real-time
Representasi
Pengetahuan
Optimasi
Ya
Ya
simbolik/
numerik
Tidak
Tidak
Ya
numerik
Tidak
Tidak
Tidak
numerik
Ya
Ya
Tidak
simbolik/
numerik
Tidak
Karakteristik Soft Computing adalah :
16
a. Soft computing memerlukan keahlian manusia, apabila direpresentasikan
dalam bentuk aturan (IF-THEN).
b. Mode komputasinya diilhami oleh proses biologis.
c. Soft computing merupakan teknik optimasi baru.
d. Soft computing menggunakan komputasi numeris.
e. Soft computing memiliki toleransi kegagalan (meskipun kualitasnya
berangsur-angsur memburuk).
2.2
Representasi Pengetahuan
Menurut Suparman dan Marlan (2007:35), dua bagian terbesar yang
membangun AI adalah basis pengetahuan dan mekanisme/mesin inferensi.
Pangkalan pengetahuan berisi fakta-fakta tentang objek dalam domain yang
ditentukan dan saling berhubungan satu sama lain. Seluruh program AI
difokuskan pada domain tertentu. Pangkalan pengetahuan juga berisi pikiran,
teori, prosedur praktis dan saling berhubungan. Pangkalan pengetahuan
membentuk sumber sistem inteligensia dan digunakan oleh mekanisme inferensi
untuk melakukan penalaran dan menarik kesimpulan.
Mekanisme inferensi, adalah suatu rangkaian prosedur yang digunakan
untuk menguji pangkalan pengetahuan dengan cara yang sistematik pada saat
menjawab pertanyaan, memecahkan persoalan atau membuat keputusan dalam
suatu domain, Mekanisme inferensi melakukan pelacakan melalui pangkalan
pengetahuan untuk mencari jawaban dan solusinya.
Langkah pertama dalam membuat program AI adalah membangun
pangkalan pengetahuan. Agar komputer bisa bertingkah laku seperti seorang
17
inteligensia, maka ia harus mempunyai pengetahuan terlebih dahulu tentang
sesuatu domain tertentu. Sebenarnya pengetahuan itu sudah ada. Apakah ia masih
berada dalam otak seseorang atau beberapa orang pakar, atau mungkin masih
dalam bentuk buku, artikel, memo dan prosedur, yang penting semuanya harus
sudah terstruktur. Proses pengumpulan dan pengorganisasian pengetahuan disebut
rekayasa pengetahuan. Hal inilah yang paling sulit dan memerlukan waktu yang
banyak dalam proses pembuatan program AI. Sebelum melakukan rekayasa
pengetahuan, maka pengetahuan tersebut harus diformat terlebih dahulu ke dalam
bentuk yang paling tepat agar mudah menyimpan dan menggunakannya dalam
komputer.
Sebenarnya
berbagai
representasi
skema
pengetahuan
itu
sudah
dikembangkan sejak bertahun-tahun yang lalu. Representasi skema ini
mempunyai dua karakteristik umum. Pertama, bisa diprogram dengan bahasa
komputer yang ada dan disimpan dalam memori. Kedua, dirancang agar faktafakta dan pengetahuan lainnya yang terkandung di dalamnya bisa digunakan
untuk penalaran.
Pangkalan pengetahuan berisi data struktur yang bisa dimanipulasi oleh
sistem inferensi, yang merupakan bagian utama program AI. Sistem inferensi
menggunakan teknik pelacakan dan pencocokan pola (pattern matching) dalam
pangkalan pengetahuan agar bisa menjawab pertanyaan, menarik kesimpulan atau
tugas-tugas lainnya yang bersifat inteligensia. (Sandi, 2008)
18
2.2.1 List
Menurut Suparman dan Marlan (2007:48), “list adalah serangkaian jenis
barang-barang tertulis yang berhubungan”. Hal ini bisa merupakan suatu daftar
(list) nama orang yang dikenal, barang-barang yang akan dibeli di toko, hal-hal
yang akan dikerjakan minggu ini, atau produk-produk berbagai jenis barang
dalam katalog, dan banyak lagi cara untuk mendaftarkan berbagai jenis barang
atau hal lainnya. List biasanya digunakan untuk merepresentasikan hirarki
pengetahuan dimana objek dikelompokkan, dikategorikan atau digabungkan
sesuai dengan urutannya atau hubungannya.
Objek dibagi dalam kelompok atau jenis yang sama. Kemudian hubungan
ditampilkan dengan menghubungkan satu sama lain. Bentuk yang paling
sederhana adalah List, tapi bila ada dua list atau lebih yang berkaitan harus
digabungkan, maka perlu dibuat suatu hirarki. Untuk mengidentifikasikannya, list
dapat diberi nama misalnya List A dengan dua atau tiga elemen, maka dapat
dilihat satu elemen dalam satu list, dan nama list lain mengandung sub-elemen.
Contoh sederhana dari sebuah list dapat dilihat pada gambar 2.2 berikut ini.
Gambar 2.2 Contoh List
Sumber: Suparman dan Marlan, 2007
19
2.2.2 Skema
Skema dapat juga disebut dengan frame. Banyak pengetahuan yang
digunakan dalam proses penalaran sehari-hari yang sudah pasti dan dikenal
dengan baik. Hal ini didasarkan kepada berbagai penampilan situasi dan objekobjek khusus, seperti pengalaman biasa yang konvensional, dan proses yang tak
bervariasi. Pengetahuan semacam ini disebut sebagai pengetahuan stereotype dan
direpresentasikan ke dalam sistem skema. Skema adalah satu metode
pengorganisasian, presentasi dan penggunaan pengetahuan stereotype agar
komputer bisa menalar.
2.2.3 Struktur Pohon
Menurut Suparman dan Marlan (2007:49), “struktur pohon adalah struktur
grafik
hirarki”.
Struktur
ini
merupakan
cara
yang
sederhana
untuk
menggambarkan list hirarki pengetahuan lainnya. Contoh struktur pohon
ditunjukkan oleh gambar 2.3 berikut ini.
Gambar 2.3 Contoh Pohon
Struktur ini terdiri dari node-node yang mencakup nama list dan ark yang
menunjukkan hubungan antar node. Struktur atau grafik ini disebut pohon karena
20
mempunyai cabang-cabang. Tapi cabang dari pohon yang terbalik, berbeda
dengan
pohon
yang
sebenarnya.
Pohon
sangat
umum
dipakai
untuk
menggambarkan pengetahuan yang akan digunakan dalam AI.
Contoh aplikasi pohon yang dapat dilihat sehari-hari adalah pengelolaan
file dalam direktori penyimpanan. Pohon merupakan struktur data yang memiliki
suatu struktur hirarki pada sekumpulan elemen, dan memiliki hubungan satu ke
banyak (one to many relationship) seperti yang kita lihat dalam struktur organisasi
sebuah perusahaan atau daftar isi sebuah buku.
Dalam struktur organisasi, dapat dilihat bahwa ada level atas biasanya
hanya ada satu pimpinan tertinggi. Pada level berikutnya diisi oleh beberapa orang
dengan jabatan yang berbeda tetapi dalam tingkatan yang sama. Selanjutnya dapat
dipecah lagi ke level berikutnya sampai struktur dapat memenuhi fungsi dan
tujuan organisasi. Biasanya satu atasan memiliki beberapa bawahan yang berada
dalam ruang lingkup wewenang dan tugas atasan. Begitu juga dalam daftar isi
buku, dimana satu buku terdiri dari beberapa bab dan setiap terdiri dari beberapa
sub bab, satu sub bab terdiri dari beberapa sub sub bab dan seterusnya. Dengan
demikian hirarki dapat kita anggap sebagai “terdiri dari” atau “bawahan” atau
“diawasi” dari atas ke bawah. Salah satu keuntungan pohon dibandingkan dengan
struktur data linier adalah waktu cari sebuah node maksimum (dapat) lebih kecil
dari n jika jumlah data = n.
Sebuah pohon dapat mempunyai hanya sebuah simpul tanpa sebuah sisi
pun. Dengan kata lain, jika G = (V, E) adalah pohon, maka V tidak boleh berupa
himpunan kosong, namun E boleh kosong. Pohon juga seringkali didefinisikan
sebagai graf tak-berarah dengan sifat bahwa hanya terdapat sebuah lintasan unik
21
antara setiap pasang simpul. Selain itu, di dalam pohon jumlah sisinya adalah
jumlah simpul dikurangi satu.
Secara sederhana, sebuah pohon bisa didefenisikan sebagai kumpulan dari
elemen – elemen yang disebut dengan node / vertex (simpul) dimana salah satu
node disebut dengan root (akar), dan sisa node lain terpecah menjadi himpunan
yang saling tidak berhubungan satu sama lain dan disebut dengan subpohon
(pohon bagian). Jika dilihat pada setiap subpohon maka subpohon juga
mempunyai root dari subpohon-nya masing – masing.
Dengan melihat istilah dasar di atas, maka sebuah pohon secara rekursif
dapat didefenisikan sebagai berikut :
1. Sebuah node tunggal adalah sebuah pohon.
2. Jika terdapat sebuah node N dan beberapa subpohon N1, N2, N3, …, Nk
maka dari node N dan subpohon yang ada dapat dibentuk sebuah pohon
yang mempunyai root pada node N.
2.2.4 Sistem Produksi
Menurut Kusumadewi (2003:86), sistem produksi (Production System)
secara umum terdiri dari komponen-komponen sebagai berikut :
1. Ruang keadaan, yang berisi keadaan awal, tujuan dan kumpulan aturan
yang digunakan untuk mencapai tujuan.
2. Strategi kontrol, yang berguna untuk mengarahkan bagaimana proses
pencarian akan berlangsung dan mengendalikan arah eksplorasi.
Gambar 2.4 menunjukkan bagan sistem produksi.
22
Gambar 2.4 Bagan Sistem Produksi
Sumber: Kusumadewi, 2003
Sistem produksi ini merupakan salah satu bentuk representasi pengetahuan
yang sangat populer dan banyak digunakan. Representasi pengetahuan dengan
sistem produksi pada dasarnya berupa aplikasi aturan (rule) yang berupa :
1. Antecedent, yaitu bagian yang mengekspresikan situasi atau premis.
2. Konsekuen, yaitu bagian yang menyatakan suatu tindakan tertentu atau
konklusi yang diterapkan jika suatu situasi atau premis bernilai benar.
Konsekuensi atau konklusi baru dinyatakan benar, jika bagian antecedent
pada sistem tersebut juga benar atau sesuai dengan aturan tertentu.
Apabila pengetahuan direpresentasikan dengan aturan, maka ada 2 metode
penalaran yang dapat digunakan, yaitu :
1. Forward Reasoning (penalaran maju). Pelacakan dimulai dari keadaan
awal dan kemudian dicoba untuk mencocokkan dengan tujuan yang
diharapkan.
2. Backward Reasoning (penalaran mundur). Penalaran ini dimulai dari
tujuan atau hipotesa, baru dicocokkan dengan keadaan awal atau faktafakta yang ada.
Ada beberapa faktor yang mempengaruhi pemilihan backward atau
forward dalam memilih metoda penalaran, antara lain :
23
a. Banyaknya keadaan awal dan tujuan. Jika jumlah keadaan awal lebih kecil
daripada tujuan, maka digunakan penalaran forward. Sebaliknya, jika
jumlah tujuan lebih banyak daripada keadaan awal, maka dipilih penalaran
backward.
b. Rata-rata jumlah node yang dapat diraih secara langsung dari suatu node.
Lebih baik dipilih yang jumlah node tiap cabangnya lebih sedikit.
c. Apakah program perlu untuk menanyakan user untuk melakukan
justifikasi terhadap proses penalaran ? Jika ya, maka lebih baik jika dipilih
arah yang lebih memudahkan user.
d. Bentuk kejadian yang akan memicu penyelesaian masalah. Jika kejadian
berupa fakta baru, maka lebih baik dipilih penalaran forward. Namun, jika
kejadian berupa query, maka lebih baik digunakan penalaran backward.
2.3
State Space and Search Problema
State adalah representasi suatu keadaan pada suatu saat ataupun dekripsi
konfigurasi sistem. State space adalah semua state (keadaan) yang mungkin, dan
biasanya digambarkan sebagai jaringan dengan verteks merupakan state dan edge
merupakan perubahan yang mungkin.
Dekripsi formal suatu masalah adalah:
1. Definisikan state space.
2. Tentukan initial state dalam goal state.
3. Tentukan operator-operator.
Representasi state space memungkinkan definisi formal suatu masalah
sebagai persoalan mengubah status dengan menggunakan sekumpulan operator
24
(rule) dan juga mendefinisikan masalah sebagai search yaitu mencari lintasan di
dalam state space dari initial state ke goal state.
Dalam hipotesis sistem simbol Newell dan Simon, yang menyatakan
bahwa masalah-masalah dapat dipecahkan dengan melakukan pencarian (search)
dari antara pilihan-pilihan yang ada, terdukung oleh pandangan cara penyelesaian
manusia yang bisa dilakukan. Manusia umumnya mempertimbangkan sejumlah
alternatif strategi dalam menyelesaikan suatu masalah, dalam permainan catur
misalnya, seorang pemain mempertimbangkan sejumlah kemungkinan tentang
langkah-langkah berikutnya, memilih yang terbaik menurut kriteria tertentu
seperti kemungkinan respon lawannya, atau memilih sejumlah langkah menurut
suatu
strategi global yang dirancangnya.
Seorang pemain
catur juga
memperhitungkan pencapaian jangka pendek (seperti siasat untuk memperoleh
keuntungan materi atau kualitas). Aspek tingkah laku cerdas yang mendasari
teknik penyelesaian problema seperti dalam catur ini disebut proses pencarian
ruang keadaan (space state search).
(http://duniainformatikaindonesia.blogspot.com/2013/03/problema-state-spaceand-search-masalah.html)
2.4
Metode Pencarian
Menurut Kusumadewi (2003:23), “hal terpenting dalam menentukan
keberhasilan sistem yang berdasarkan AI adalah kesuksesan dalam pencarian dan
pencocokan”. Pada dasarnya, terdapat 2 (dua) teknik pencarian dan pelacakan
yang digunakan, yaitu:
1. Pencarian buta (blind search), dapat dibagi menjadi:
25
a. Breadth-First Search
b. Depth-First Search
2. Pencarian Terbimbing (Heuristic Search)
2.4.1 Breadth-First Search
Menurut Sri Kusumadewi (2003:23), “pada metode ini, semua node pada
level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada
level n+1 (level berikutnya)”. Pencarian dimulai dari node akar terus ke level ke-1
dari kiri ke kanan, kemudian berpindah ke level-2 dan seterusnya. Pohon
dikembangkan hingga ditemukannya solusi. Gambar 2.5 menunjukkan prosedur
breadth-first search.
Keadaan Awal
B
D
E
C
F
G
H
I
Gambar 2.5 Metode Breadth-First Search
Sumber: Kusumadewi, 2003
Keuntungan dari metode ini adalah tidak akan menemui jalan buntu. Jika
terdapat lebih dari satu solusi, maka breadth-first search akan menemukannya.
Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
26
Sedangkan kelemahan dari metode ini adalah membutuhkan memori yang
cukup banyak, karena menyimpan semua node dalam satu pohon dan
membutuhkan waktu yang cukup lama, karena akan menguji semua node pada
level-n untuk mendapatkan solusi pada level ke- (n + 1).
2.4.2 Depth-First Search
Menurut Kusumadewi (2003:26), “Depth-first search merupakan teknik
penelusuran data pada node-node secara vertikal dan sudah terdefinisikan secara
mendalam”. Proses pemeriksaan akan bergerak turun jika node yang diperiksa
saat ini tidak sesuai dengan tujuan. Node tidak akan dikembangkan ke samping
walaupun node masih mempunyai beberapa node anak yang dapat dikembangkan.
Node anak baru dikembangkan lagi setelah selesainya pencarian mendalam
terhadap node anak yang sebelumnya telah dikembangkan. Proses ini diulangi
terus hingga didapatkan solusi.
Keuntungan dari metode ini adalah membutuhkan memori yang relatif
kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus
menguji lebih banyak lagi dalam ruang keadaan.
Sedangkan kelemahan dari metode ini adalah memungkinkan tidak
ditemukannya tujuan yang diharapkan dan hanya akan mendapatkan 1 solusi pada
setiap pencarian. Gambar 2.6 menunjukkan prosedur depth-first search.
27
Keadaan Awal
B
C
E
D
Gambar 2.6 Metode Depth-First Search
Sumber: Kusumadewi, 2003
Pada gambar 2.6, pencarian dimulai dari keadaan awal kemudian
dilanjutkan dengan mengembangkan node B, node C dan node D. Ketika
diketahui node D bukan merupakan solusi dan tidak dapat mengembangkan node
anak lagi, pencarian dikembalikan ke node parent, dan mengecek apakah ada
node anak yang dapat dikembangkan lagi. Apabila ada, maka pencarian dilakukan
ke level bawah lagi. Pencarian dilakukan terus hingga ditemukan solusi.
2.4.3 Pencarian Heuristik (Heuristic Search)
Menurut Suparman dan Marlan (2007:84), “Heuristic search adalah suatu
istilah yang berasal dari bahasa Yunani yang berarti menemukan/menyingkap”.
Heuristic merupakan suatu perbuatan yang membantu kita menemukan jalan
28
dalam pohon pelacakan yang menuntut kita kepada suatu solusi masalah.
Heuristic dapat diartikan juga sebagai suatu kaidah yang merupakan
metode/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.
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.
29
2.5
Pencarian Lintasan Pada Bidang Kartesian
Salah satu permasalahan yang dapat diangkat menjadi topik pembahasan
AI adalah pencarian lintasan pada bidang kartesian. Permasalahan ini menerapkan
metode pohon pelacakan untuk mencari solusi yang mungkin.
Permasalahan ini dapat didekripsikan sebagai berikut, diketahui seekor
semut akan bergerak dari titik pusat (0,0) ke titik A(m,n) pada bidang kartesian.
Semut tersebut hanya boleh membelok pada titik-titik grid dan selalu melangkah
sejajar dengan sumbu-x atau sumbu-y (horizontal atau vertikal). Semut tersebut
tidak boleh melintasi lintasan yang telah pernah dilaluinya dan tidak boleh
melintasi titik yang telah pernah dilaluinya. Setelah itu, disediakan sederetan
ketentuan yang membatasi pergerakan semut tersebut. Pertanyaannya adalah
bagaimana bentuk lintasan-lintasan (yang mungkin) yang dapat dilalui oleh semut
tersebut dengan menggunakan ketentuan-ketentuan yang telah ditetapkan di atas.
Implementasi pohon pelacakan adalah sebagai berikut. Pertama-tama,
disetting keadaan awal sebagai root node (node akar). Selanjutnya, dilakukan
pengembangan node-node anak yang mungkin menuju keadaan tujuan dengan
mematuhi
dan
tidak
melanggar
aturan
yang
ada.
(http://duniainformatikaindonesia.blogspot.com/2013/03/pencarian-lintasan-padabidang-kartesian.html)
Sebagai contoh, titik yang dituju semut adalah titik(m, n) = (3, 2). Aturan,
semut hanya boleh bergerak pada kuadran I (sumbu x positif dan sumbu y positif),
pergerakan semut tidak boleh melewati batas maksimal, x = 3 dan y = 2, maka
dengan pohon pelacakan, diperoleh pergerakan yang mungkin menuju keadaan
tujuan ditunjukkan oleh gambar 2.7 sampai gambar 2.16 berikut.
30
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.7 Solusi Lintasan-1
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.8 Solusi Lintasan-2
3
2
1
-4
-3
-2
-1
1
2
3
-1
-2
-3
Gambar 2.9 Solusi Lintasan-3
4
31
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.10 Solusi Lintasan-4
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.11 Solusi Lintasan-5
3
2
1
-4
-3
-2
-1
1
2
3
-1
-2
-3
Gambar 2.12 Solusi Lintasan-6
4
32
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.13 Solusi Lintasan-7
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.14 Solusi Lintasan-8
3
2
1
-4
-3
-2
-1
1
2
3
-1
-2
-3
Gambar 2.15 Solusi Lintasan-9
4
33
3
2
1
-4
-3
-2
-1
1
2
3
4
-1
-2
-3
Gambar 2.16 Solusi Lintasan-10
2.6
Model Waterfall
Waterfall model membutuhkan suatu pendekatan yang sistematis dan
berurutan. Tahapan dari Classic Life Cycle adalah sebagai berikut:
1. Rekayasa Sistem
Hubungan antara perangkat lunak dengan perangkat keras, manusia dan
databasenya.
2. Analisis
Memahami kebutuhan perangkat lunak, fungsi-fungsi, unjuk kerja dan
antarmuka yang diperlukan.
3. Perancangan
Tahapan yang berfokus pada empat atribut dari program, yaitu : struktur
data, arsitektur perangkat lunak, detil suatu prosedur, dan karakteristik
antarmuka.
4. Pembuatan Program
Aktivitas yang mengubah hasil rancangan menjadi bentuk yang dapat
dimengerti komputer, biasanya dalam bentuk program.
34
5. Pengujian
Setelah pengkodean selesai, maka akan dilakukan pengujian program.
Pengujian dilakukan untuk menemukan kesalahan serta memastikan
keluaran yang dihasilkan sesuai dengan yang diinginkan.
6. Pemeliharaan
Suatu perangkat lunak akan mengalami perubahan sejalan dengan
perubahan waktu. Pembaharuan, penambahan fungsi, dan peningkatkan
kinerja perangkat lunak akan terus dilakukan untuk meningkatkan efisiensi
dan efektivitas bagi pengguna.
Hubungan (keterkaitan) antara tahapan-tahapan di atas dapat digambarkan
seperti gambar 2.17.
Gambar 2.17 The Classic Life Cycle
BAB III
METODE PENELITIAN
3.1 Tempat dan Jadwal Penelitian
Penelitian ini dimulai dari Nopember 2014 dan berakhir pada April 2015.
Penelitian dilakukan di dunia maya. Penelitian ditujukan untuk mengumpulkan
data yang diperlukan dalam proses perancangan dan pembuatan sistem. Berikut
ini dijabarkan jadwal penelitian yang dapat dilihat pada Tabel 3.1.
Tabel 3.1. Daftar Waktu dan Kegiatan Penelitian
Waktu
Kegiatan
Nopember 2014
Desember 2014
1
1
2
3
4
2
3
4
Januari 2015
1
2
3
Februari 2015
4
1
2
3
4
Maret 2015
1
2
3
April 2015
4
1
2
Identifikasi Masalah
Pengumpulan Data
Analisa Sistem
Perancangan Sistem
Pembangunan Sistem
Uji Coba Sistem
Penulisan Laporan Skripsi
3.2 Kerangka Kerja
Adapun tahapan dan langkah-langkah pengembangan perangkat lunak ini
dapat digambarkan dalam bentuk diagram seperti diperlihatkan pada Gambar 3.1
berikut.
35
3
4
36
Identifikasi Masalah
Pengumpulan Data
Analisa Sistem
Perancangan Sistem
Pembangunan Sistem
Uji Coba Sistem
Gambar 3.1. Kerangka Kerja Penelitian
3.2.1 Pengumpulan Data
Di tahap pertama, penulis mengumpulkan bahan-bahan yang diperlukan
dalam penyusunan skripsi. Bahan tersebut dikumpulkan dari buku dan sumbersumber lainnya di internet.
Gambar yang diperlukan dalam pembuatan perangkat lunak diambil dari
gambar themes dari Microsoft Power Point yang diubah warna latarnya dan juga
beberapa gambar yang bersumber dari internet dan di-edit dengan menggunakan
aplikasi Adobe Photoshop C.S. Selain itu, juga digunakan beberapa gambar
clipart yang diunduh dari internet.
37
3.2.2 Analisa Sistem
Tahap berikutnya ialah menganalisa kebutuhan-kebutuhan sistem.
Perangkat dan teknik-teknik tertentu akan membantu penganalisa menentukan
kebutuhan. Perangkat yang dimaksud ialah penggunaan Diagram Aliran Data
(DAD) untuk menyusun daftar input, proses, dan output sistem dalam bentuk
grafik terstruktur.
3.2.3 Perancangan Sistem
Penganalisa sistem akan menggunakan informasi yang terkumpul
sebelumnya untuk mencapai desain sistem logis. Penganalisa merancang prosedur
data-entry sedemikian rupa sehingga data yang dimasukkan ke dalam sistem
informasi benar-benar akurat. Selain itu, penganalisa menggunakan teknik-teknik
bentuk dan perancangan layar tertentu untuk menjamin keefektifan input sistem.
Setelah itu, akan dirancang input dan output sistem serta rancangan user interface
dan database.
Perangkat keras dan perangkat lunak yang digunakan untuk menjalankan
aplikasi ini memiliki spesifikasi sebagai berikut :
1.
Prosesor Intel(R) Core(TM) i3.
2.
Memory 2048 MB.
3.
Monitor dengan resolusi 1366 × 768 pixel.
4.
Keyboard dan Mouse.
5.
Harddisk 256GB
6.
Speaker
38
Perangkat lunak ini direkomendasikan untuk dijalankan di sistem operasi
Microsoft Windows 7. Software pendukung yang digunakan yaitu Microsoft.NET
Framework 3.5.
3.2.4 Pembangunan Sistem
Permainan ini dibuat dengan menggunakan bahasa pemrograman
Microsoft Visual Basic.NET dengan koneksi database menggunakan Microsoft
Access 2007. Perangkat lunak ini dirancang dengan menggunakan beberapa objek
dasar seperti:
1. Label, yang digunakan untuk menampilkan keterangan.
2. TextBox, yang digunakan sebagai tempat penginputan data.
3. Button, yang digunakan sebagai tombol eksekusi.
4. Timer, yang digunakan untuk melakukan pengaturan tampilan waktu.
5. ComboBox, yang digunakan untuk menyediakan pilihan.
6. RadioButton, yang digunakan untuk menyediakan pilihan.
3.2.5 Uji Coba Sistem
Sebelum sistem dapat digunakan, maka harus dilakukan pengujian terlebih
dulu. Hal ini akan menghemat biaya bila dapat mengetahui adanya masalah
sebelum sistem tersebut ditetapkan. Sebagian pengujian dilakukan oleh
pemrogram sendiri. Jika terdapat kesalahan (bug), maka program diperbaiki
sampai berjalan sebagaimana mestinya.
BAB IV
ANALISA DAN PERANCANGAN
4.1.
Analisa
Pencarian lintasan yang dapat dilalui oleh seekor semut pada bidang
kartesian dapat dilakukan dengan bantuan pohon pelacakan. Deskripsi dari
permasalahan ini adalah sebagai berikut: Diketahui seekor semut akan bergerak
dari suatu titik (x,y) ke titik A(m,n). Semut hanya boleh membelok atau melintas
pada titik-titik grid dan selalu melangkah sejajar dengan sumbu-x atau sumbu-y.
Semut tidak boleh melintasi lintasan yang telah pernah dilaluinya atau melintasi
titik yang telah pernah dilaluinya. Setelah itu, disediakan sederetan ketentuan
yang membatasi pergerakan semut tersebut. Ketentuan yang membatasi adalah
batas pergerakan maksimum semut yang diperbolehkan, posisi-posisi titik
rintangan dimana semut tidak boleh melintas dan hanya melintasi kuadran yang
diperbolehkan untuk melintas.
Solusi dari permasalahan ini bisa lebih dari satu dan perangkat lunak
dituntut untuk mampu menampilkan semua lintasan yang dapat dilalui semut dari
posisi awal ke posisi tujuan dengan mematuhi ketentuan-ketentuan yang berlaku.
Karena solusi yang didapatkan bisa lebih dari satu, maka metode pencarian yang
digunakan untuk mencari solusi permasalahan ini adalah metode breadth-first
search (BFS).
Dimulai dari posisi awal sebagai node akar, selanjutnya metode BFS
mencari solusi dengan mengembangkan node akar ke level-level berikutnya,
semua pergerakan yang mungkin, tidak melanggar ketentuan dan menghasilkan
35
36
kondisi baru dikembangkan semaksimal mungkin. Pencarian berakhir apabila
tidak ada lagi node atau kondisi baru yang dapat dikembangkan. Semua node
yang merupakan posisi tujuan merupakan solusi. Adapun pergerakan semut yang
diperbolehkan adalah:
1. Bergerak ke kanan (x + 1).
2. Bergerak ke kiri (x – 1).
3. Bergerak ke atas (y + 1).
4. Bergerak ke bawah (y – 1).
5. Semua pergerakan semut di atas legal apabila mematuhi ketentuan-ketentuan
sebagai berikut:
a. Tidak melintasi posisi titik rintangan.
b. Tidak melintasi posisi titik yang sudah pernah dilalui sebelumnya.
c. Tidak melebihi batas pergerakan maksimum semut (x atau y).
d. Tidak melintasi kuadran yang tidak diperbolehkan untuk melintas.
Kuadran yang dimaksud adalah kuadran I (dimana x bernilai positif
dan y bernilai positif), kuadran II (dimana x bernilai negatif dan y
bernilai positif), kuadran III (dimana x bernilai negatif dan y bernilai
negatif) dan kuadran IV (dimana x bernilai positif dan y bernilai
positif).
Berikut adalah algoritma pencarian solusi pergerakan semut:
1. Set posisi awal semut.
a.
Ant(0).X = PosisiAwal.X.
b.
Ant(0).Y = PosisiAwal.Y.
c.
Ant(0).StepX = 0.
37
d.
Ant(0).StepY = 0.
e.
Ant(0).Gerakan = “”.
f.
Ant(0).Sebelum = -1.
g.
Ant(0).Tujuan = False.
2. nIndex = -1.
3. Lakukan perulangan algoritma berikut sampai (nIndex = ukuran array
variabel ‘Ant’) atau (proses dibatalkan oleh user).
a.
nIndex = nIndex + 1.
b.
Jika Ant(nIndex).Tujuan = False (bukan posisi tujuan), maka lanjutkan
ke algoritma berikutnya. Jika tidak, kembali ke poin a.
c.
Untuk nTemp = 1 sampai 4, lakukan looping dari poin d sampai poin g.
d.
Jika nTemp = 1 (gerakan semut vertikal ke atas), maka:
i. PosTemp.X = Ant(nIndex).X.
ii. PosTemp.Y = Ant(nIndex).Y + 1.
iii. PosTemp.StepX = Ant(nIndex).StepX.
iv. PosTemp.StepY = Ant(nIndex).StepY + 1.
v. Jika CekPosisi(PosTemp) = True, maka lanjutkan ke algoritma
berikutnya. Jika tidak, maka keluar dan lanjutkan algoritma ke poin
e.
vi. bTemp1 = False.
vii. nTemp2 = nIndex.
viii. Cek apakah posisi sudah pernah dilalui sebelumnya. Selama
nTemp2 > -1 dan bTemp1 = False, maka:
38
1)
bTemp1
=
(Ant(nTemp2).X
=
PosTemp.X
And
Ant(nTemp2).Y = PosTemp.Y).
2)
nTemp2 = Ant(nTemp2).Sebelum.
ix. Jika bTemp1 = False (posisi belum pernah dilewati), maka lanjutkan
ke algorimta berikutnya. Jika tidak, maka maka keluar dan lanjutkan
algoritma ke poin e.
x. Bentuk sebuah posisi baru dengan menambah jumlah array variabel
‘Ant’ dengan 1 dan set propertinya sebagai berikut:
1)
.X = PosTemp.X.
2)
.Y = PosTemp.Y.
3)
.StepX = PosTemp.StepX.
4)
.StepY = PosTemp.StepY.
5)
.Gerakan = “Y,+”.
6)
.Sebelum = nIndex
7)
.Tujuan = (PosTemp.X = PosisiTujuan.X And PosTemp.Y =
PosisiTujuan.Y).
8)
e.
Jika .Tujuan = True maka nPeny = nPeny + 1.
Jika nTemp = 2 (gerakan semut vertikal ke bawah), maka:
i. PosTemp.X = Ant(nIndex).X.
ii. PosTemp.Y = Ant(nIndex).Y - 1.
iii. PosTemp.StepX = Ant(nIndex).StepX.
iv. PosTemp.StepY = Ant(nIndex).StepY + 1.
39
v. Jika CekPosisi(PosTemp) = True, maka lanjutkan ke algoritma
berikutnya. Jika tidak, maka keluar dan lanjutkan algoritma ke poin
f.
vi. bTemp1 = False.
vii. nTemp2 = nIndex.
viii. Cek apakah posisi sudah pernah dilalui sebelumnya. Selama
nTemp2 > -1 dan bTemp1 = False, maka:
1)
bTemp1
=
(Ant(nTemp2).X
=
PosTemp.X
And
Ant(nTemp2).Y = PosTemp.Y).
2)
nTemp2 = Ant(nTemp2).Sebelum.
ix. Jika bTemp1 = False (posisi belum pernah dilewati), maka lanjutkan
ke algorimta berikutnya. Jika tidak, maka maka keluar dan lanjutkan
algoritma ke poin f.
x. Bentuk sebuah posisi baru dengan menambah jumlah array variabel
‘Ant’ dengan 1 dan set propertinya sebagai berikut:
1)
.X = PosTemp.X.
2)
.Y = PosTemp.Y.
3)
.StepX = PosTemp.StepX.
4)
.StepY = PosTemp.StepY.
5)
.Gerakan = “Y,-”.
6)
.Sebelum = nIndex
7)
.Tujuan = (PosTemp.X = PosisiTujuan.X And PosTemp.Y =
PosisiTujuan.Y).
8)
Jika .Tujuan = True maka nPeny = nPeny + 1.
40
f.
Jika nTemp = 3 (gerakan semut horizontal ke kanan), maka:
i. PosTemp.X = Ant(nIndex).X + 1.
ii. PosTemp.Y = Ant(nIndex).Y.
iii. PosTemp.StepX = Ant(nIndex).StepX + 1.
iv. PosTemp.StepY = Ant(nIndex).StepY.
v. Jika CekPosisi(PosTemp) = True, maka lanjutkan ke algoritma
berikutnya. Jika tidak, maka keluar dan lanjutkan algoritma ke poin
g.
vi. bTemp1 = False.
vii. nTemp2 = nIndex.
viii. Cek apakah posisi sudah pernah dilalui sebelumnya. Selama
nTemp2 > -1 dan bTemp1 = False, maka:
1)
bTemp1
=
(Ant(nTemp2).X
=
PosTemp.X
And
Ant(nTemp2).Y = PosTemp.Y).
2)
nTemp2 = Ant(nTemp2).Sebelum.
ix. Jika bTemp1 = False (posisi belum pernah dilewati), maka lanjutkan
ke algorimta berikutnya. Jika tidak, maka maka keluar dan lanjutkan
algoritma ke poin g.
x. Bentuk sebuah posisi baru dengan menambah jumlah array variabel
‘Ant’ dengan 1 dan set propertinya sebagai berikut:
1)
.X = PosTemp.X.
2)
.Y = PosTemp.Y.
3)
.StepX = PosTemp.StepX.
4)
.StepY = PosTemp.StepY.
41
5)
.Gerakan = “X,+”.
6)
.Sebelum = nIndex
7)
.Tujuan = (PosTemp.X = PosisiTujuan.X And PosTemp.Y =
PosisiTujuan.Y).
8)
g.
Jika .Tujuan = True maka nPeny = nPeny + 1.
Jika nTemp = 4 (gerakan semut horizontal ke kiri), maka:
i. PosTemp.X = Ant(nIndex).X - 1.
ii. PosTemp.Y = Ant(nIndex).Y.
iii. PosTemp.StepX = Ant(nIndex).StepX + 1.
iv. PosTemp.StepY = Ant(nIndex).StepY.
v. Jika CekPosisi(PosTemp) = True, maka lanjutkan ke algoritma
berikutnya. Jika tidak, maka keluar dan lanjutkan algoritma ke poin
4.
vi. bTemp1 = False.
vii. nTemp2 = nIndex.
viii. Cek apakah posisi sudah pernah dilalui sebelumnya. Selama
nTemp2 > -1 dan bTemp1 = False, maka:
1)
bTemp1
=
(Ant(nTemp2).X
=
PosTemp.X
And
Ant(nTemp2).Y = PosTemp.Y).
2)
nTemp2 = Ant(nTemp2).Sebelum.
ix. Jika bTemp1 = False (posisi belum pernah dilewati), maka lanjutkan
ke algorimta berikutnya. Jika tidak, maka maka keluar dan lanjutkan
algoritma ke poin 4.
42
x. Bentuk sebuah posisi baru dengan menambah jumlah array variabel
‘Ant’ dengan 1 dan set propertinya sebagai berikut:
1)
.X = PosTemp.X.
2)
.Y = PosTemp.Y.
3)
.StepX = PosTemp.StepX.
4)
.StepY = PosTemp.StepY.
5)
.Gerakan = “X,-”.
6)
.Sebelum = nIndex
7)
.Tujuan = (PosTemp.X = PosisiTujuan.X And PosTemp.Y =
PosisiTujuan.Y).
8)
Jika .Tujuan = True maka nPeny = nPeny + 1.
4. Ambil semua posisi yang merupakan posisi tujuan.
a.
Untuk nTemp1 = 0 sampai jumlah array pada variabel ‘Ant’, lakukan
perulangan pada algoritma poin b.
b.
Jika Ant(nTemp1).Tujuan = True, maka tambahkan jumlah array
variabel 'X' dengan 1 dan lakukan algoritma berikut.
i. nIndex = -1.
ii. nTemp2 = nTemp1.
iii. Selama nTemp2 >= 0, maka set nIndex = nIndex + 1, tambah
variabel array 'Step' pada properti variabel 'Ant' dengan 1, set
.Step(nIndex)
=
Ant(nTemp2).Sebelum.
Ant(nTemp2)
dan
nTemp2
=
43
5. Ambil semua langkah-langkah penyelesaian:
a.
Untuk nTemp1 = 0 sampai jumlah array pada variabel ‘X’, lakukan
perulangan pada algoritma poin b.
b.
Jika Ant(nTemp1).Tujuan = True, maka sesuaikan jumlah array variabel
SolusiPeny(nTemp1).Step dengan jumlah array Step pada variabel ‘X’.
c.
Untuk
nTemp2
SolusiPeny(nTemp1).
=
0
sampai
Step(nTemp2)
SolusiPeny(nTemp1),
=
set
X(nTemp1)
.Step(UBound(SolusiPeny(nTemp1).Step) - nTemp2).
Contoh struktur pohon pelacakan yang dikembangkan berdasarkan metode
pencarian BFS dapat dilihat pada gambar 4.1.
Gambar 4.1 Contoh struktur pohon pelacakan dengan metode BFS
Dari solusi-solusi yang ditemukan, terdapat solusi yang optimum. Dalam
implementasinya, solusi optimum merupakan langkah penyelesaian terpendek
(shortest path) yang ditemukan dengan menggunakan pohon pelacakan. Dalam
kasus pergerakan semut, solusi paling optimum (pergerakan terpendek tanpa
halangan) dapat
ditentukan kriterianya. Misalkan, apabila posisi awal semut
adalah (x1, y1) dan posisi tujuan semut adalah (x2, y2) maka solusi paling optimum
(langkah terpendek) menuju posisi tujuan dapat dihitung dengan rumus: (abs(x2 –
44
x1), abs(y2 – y1)). Ini artinya, pergerakan sepanjang sumbu x (horizontal) adalah
sebesar abs(x2 – x1) langkah dan pergerakan sepanjang sumbu y (vertikal) adalah
sebesar abs(y2 – y1). Misalkan posisi awal semut adalah (-1, -2) dan posisi tujuan
semut adalah (4, 5), maka solusi yang paling optimum adalah solusi yang
memiliki kriteria sebagai berikut.
1. Pergerakan sepanjang sumbu x (horizontal) adalah abs(4 - (- 1)) = 5 langkah.
2. Pergerakan sepanjang sumbu y (vertikal) adalah abs(5 - (- 2)) = 7 langkah.
Kriteria solusi paling optimum dapat dilihat pada gambar 4.2 berikut.
Gambar 4.2 Kriteria solusi paling optimum
45
Gambar 4.3 Langkah-langkah solusi paling optimum terhalang oleh
rintangan
Namun apabila, terdapat halangan pada pergerakan semut yang
menyebabkan semua solusi paling optimum tidak dapat dilewati, seperti
ditunjukkan oleh gambar 4.3, maka kriteria untuk solusi optimum tersebut tidak
berlaku. Oleh karena itu, solusi optimum adalah solusi terpendek yang ditemukan
oleh pohon pelacakan dan tidak ada kriteria yang dapat merumuskan bahwa suatu
solusi merupakan solusi yang paling optimum.
Di dalam perangkat lunak, untuk mencari atau mendapatkan solusi yang
paling optimum, maka pergerakan maksimum semut dibatasi dengan rumus di
atas dan tidak terdapat halangan yang membatasi semua pergerakan semut yang
ada.
Agar lebih jelas, perhatikan contoh dari permasalahan berikut.
a. Posisi awal semut: (2,1).
b. Posisi tujuan semut: (5,5).
46
c. Pergerakan maksimum semut, x = 6 dan y = 6.
d. Posisi rintangan, yaitu:
i.
Rintangan-1: (2,3).
ii.
Rintangan-2: (4,3).
iii.
Rintangan-3: (3,5).
e. Semua kuadran boleh dilalui oleh semut.
f. Solusi paling optimum adalah solusi yang memiliki kriteria berikut:
i.
Pergerakan sepanjang sumbu x = abs(5 – 2) = 3.
ii.
Pergerakan sepanjang sumbu y = abs(5 – 1) = 4.
Maka sesuai dengan metode pencarian yang digunakan dan ketentuan yang
berlaku, terdapat 306 buah solusi. Contoh dua solusi paling optimum dapat dilihat
pada gambar 4.4 dan gambar 4.5 berikut.
Gambar 4.4 Solusi paling optimum-1
47
Gambar 4.5 Solusi paling optimum-2
Solusi pada gambar 4.4 dan gambar 4.5 merupakan solusi paling optimum
karena merupakan solusi dengan pergerakan terpendek (shortest path) dan
memenuhi kriteria rumus solusi paling optimum, yaitu mempunyai pergerakan
sumbu x sebanyak 3 langkah dan sumbu y sebanyak 4 langkah.
Contoh dua solusi tidak optimum dapat dilihat pada gambar 4.6 dan
gambar 4.7 berikut.
Gambar 4.6 Solusi tidak optimum-1
48
Gambar 4.7 Solusi tidak optimum-2
Solusi pada gambar 4.6 dan gambar 4.7 bukan merupakan solusi optimum
karena bukan merupakan langkah terpendek (shortest path). Solusi pada gambar
4.6 memiliki 9 pergerakan sedangkan solusi pada gambar 4.7 memiliki 11
pergerakan.
4.2.
Perancangan
Perangkat lunak ini dirancang dengan menggunakan bahasa pemrograman
Microsoft Visual Basic.NET 2010 dengan beberapa komponen standar seperti:
1. Picture Box, sebagai komponen untuk menampilkan gambar.
2. Button, sebagai tombol.
3. Text Box, sebagai tempat input.
4. Label, sebagai komponen untuk menampilkan informasi.
5. List Box, sebagai komponen untuk menampilkan list data.
6. Check box, sebagai komponen untuk memilih.
Perangkat lunak ini memiliki 6 (enam) buah form, yaitu:
1. Form Login.
2. Form Main.
49
3. Form Bermain.
4. Form User.
5. Form High Score.
6. Form Mengenai.
4.2.1 Form Login
Form ini berfungsi sebagai tempat pengisian data nama user dan password
agar dapat menggunakan permainan. Rancangan tampilan form Login dapat
dilihat pada gambar 4.8.
Gambar 4.8 Rancangan Form Login
Keterangan:
1 : textbox ’Nama User’, yang digunakan sebagai tempat pengisian nama user.
2 : textbox ’Kata Sandi’, yang digunakan sebagai tempat pengisian kata sandi
user.
3 : tombol ’OK’, untuk mengecek data nama user dan kata sandi yang
50
dimasukkan. Apabila data user valid, maka sistem akan menampilkan form
Awal.
4 : tombol ’Batal’, untuk menutup form.
4.2.2 Form Main
Form Main merupakan form utama atau form inti dari perangkat lunak.
Pada form terdapat beberapa link yang dapat digunakan untuk mengakses semua
form yang terdapat pada perangkat lunak. Rancangan tampilan dari form main ini
dapat dilihat pada gambar 4.9.
1
2
Nama Pemain
X
Aplikasi Permainan Semut Mecari Permen
Dengan Metode Search Tree
Pilih Pemain
3
Permainan
4
Skor Tertinggi
Mengenai Pembuat
5
6
Gambar 4.9 Rancangan Form Main
Keterangan :
1 : label ‘Nama Pemain’ yang berfungsi untuk menampilkan nama pemain yang
dipilih.
2 : picturebox ‘X’ yang berfungsi untuk menutup perangkat lunak.
3 : link label ‘Nama Pemain’ yang berfungsi untuk menampilkan form ‘Pilih
51
Pemain’.
4 : link label ‘Permainan’ yang berfungsi untuk menampilkan form ‘Permainan’.
5 : link label ‘Daftar Skor Tertinggi’ yang berfungsi untuk menampilkan form
‘Skor Tertinggi’.
6 : link label ‘Mengenai Pembuat’ yang berfungsi untuk menampilkan form
‘Mengenai Pembuat’.
4.2.3 Form Bermain
Form bermain berfungsi sebagai tempat bermain ‘Permainan Semut
Mencari Permen’. Rancangan tampilan dari form bermain ini dapat dilihat pada
gambar 4.10.
Gambar 4.10 Rancangan Form Bermain
Keterangan :
1 : label yang merupakan daerah tampilan nilai yang diperoleh pemain.
2 : label yang merupakan daerah tampilan sisa waktu untuk bermain.
52
3 : label yang merupakan daerah tampilan jumlah langkah yang telah dilalui.
4 : daerah permainan.
5 : label yang merupakan daerah tampilan level permainan.
6 : tombol ‘Keluar’, untuk menutup form ‘Bermain’ dan kembali ke form ‘Main’.
4.2.4 Form User
Form ini berfungsi sebagai tempat pemilihan nama pemain yang akan
bermain kuis. Nama pemain ini akan diperlukan pada saat penyimpanan daftar
nilai tertinggi yang diperoleh pemain ke dalam database. Selain itu, pada form ini
juga disediakan fasilitas untuk menambah nama pemain baru. Rancangan
tampilan dari form Pilihan Pemain ini dapat dilihat pada gambar 4.11.
Gambar 4.11 Rancangan Form Pilihan Pemain
Keterangan :
1 : listbox ‘Nama Pemain’ berfungsi untuk menampilkan daftar nama pemain
yang tersimpan dalam database.
2 : tombol ‘Tambah’ yang berfungsi untuk menambah nama pemain baru.
3 : tombol ‘Pilih’ yang berfungsi untuk menyimpan nama pemain yang dipilih ke
dalam memori sementara, sehingga dapat digunakan pada form ‘Bermain’.
53
4 : tombol ‘Hapus’ yang berfungsi untuk menghapus nama pemain yang dipilih.
5 : tombol ‘Batal’ yang berfungsi untuk menutup form dan kembali ke form
Main.
4.2.5 Form Skor Tertinggi
Form ini berfungsi untuk menampilkan sepuluh nilai tertinggi yang
diperoleh pemain. Rancangan tampilan dari form ‘Skor Tertinggi’ ini dapat dilihat
pada gambar 4.12.
Gambar 4.12 Rancangan Form Skor Tertinggi
Keterangan:
1. Tabel sepuluh nilai tertinggi.
2. Tombol ‘Hapus’, diklik apabila ingin mengosongkan atau menghapus daftar
sepuluh nilai tertinggi yang tersimpan pada database.
3. Tombol ‘Keluar’, diklik apabila ingin menutup form dan kembali ke form
‘Utama’.
54
4.2.6 Form Mengenai Pembuat
Form ini berfungsi untuk menampilkan data pribadi dari pembuat
perangkat lunak (programmer). Rancangan tampilan dari form ‘Mengenai
Pembuat’ ini dapat dilihat pada gambar 4.13.
2
1
3
Tutup Form
4
Gambar 4.13 Rancangan Form Mengenai Pembuat
Keterangan :
1 : picturebox yang merupakan gambar icon software.
2 : label yang berisi judul skripsi.
3 : label yang berisi nama dan nim programmer.
4 : tombol ‘Tutup Form’, untuk menutup form ‘Mengenai Pembuat’ dan kembali
ke form ‘Main’.
BAB V
HASIL DAN PEMBAHASAN
5.1.
Hasil
Untuk menjalankan aplikasi ‘Permainan Semut Mencari Permen’ dengan
menggunakan metode search tree, maka dapat mengklik file ‘Ant Seeking
Candy.exe’ sehingga sistem akan menampilkan tampilan awal pada gambar 5.1
berikut.
Gambar 5.1 Tampilan Login
Pada tampilan login, user diminta untuk mengisikan nama pemain dan
kata sandi yang valid agar dapat menggunakan permainan sehingga sistem akan
menampilkan tampilan awal pada gambar 5.2 berikut.
59
60
Gambar 5.2 Tampilan Awal
Untuk bermain ‘Permainan Semut Mencari Permen’, maka pertama kali
harus memilih nama ‘Pemain’ terlebih dahulu dengan mengklik link ‘Pilih
Pemain’, sehingga sistem akan menampilkan form Nama Pemain pada gambar 5.3
berikut.
Gambar 5.3 Tampilan Nama Pemain
61
Pemain dapat mengisi nama pemain baru dan mengklik tombol ‘OK’
untuk menyimpan data nama pemain ke dalam database. Untuk memilih nama
pemain, maka pemain dapat memilih pada daftar nama dan mengklik tombol
‘Pilih’ sehingga sistem akan menyimpan nama pemain yang dipilih ke dalam
memori sementara dan menutup form Pilih pemain serta kembali ke tampilan
awal.
Untuk menambah pemain baru, maka pemain dapat mengklik tombol
‘Tambah’ sehingga sistem akan menampilkan input box tambah pemain seperti
terlihat pada gambar 5.4 berikut.
Gambar 5.4 Tampilan Tambah Pemain
Setelah itu, pemain dapat bermain ‘Permainan Semut Mencari Permen’
dengan mengklik link ‘Permainan’, sehingga sistem akan menampilkan form
permainan pada gambar 5.5 berikut.
62
Gambar 5.5 Tampilan Permainan
Pemain dapat menggeser semut ke kiri, ke kanan, ke atas dan ke bawah
dengan menekan tombol ‘A’ untuk bergeser ke kiri, ‘D’ untuk bergeser ke kanan,
‘W’ untuk bergeser ke atas dan ‘S’ untuk bergeser ke bawah. Pemain harus
menyelesaikan permainan dalam waktu 20 detik, yaitu menggerakkan semut
menuju ke permen berbentuk hati berwarna biru.
Apabila pemain berhasil menggerakkan semut mencapai posisi permen
maka pemain akan memenangkan level yang bersangkutan dan permen akan
63
dilanjutkan ke level berikutnya. Tampilan form ketika pemain berhasil
memenangkan permainan dapat dilihat pada gambar 5.6.
Gambar 5.6 Tampilan Permainan Ketika Berhasil Memenangkan Permainan
Apabila pemain tidak berhasil menggerakkan semut menuju ke permen
dalam batasan waktu yang ditentukan maka permainan berakhir. Sistem akan
menampilkan pesan pemberitahuan seperti terlihat pada gambar 5.7 berikut.
64
Gambar 5.7 Tampilan Pesan Pemberitahuan Bahwa Permainan Berakhir
Apabila permainan berakhir ataupun pemain mengakhiri permainan, maka
sistem akan menampilkan form ‘Skor Tertinggi’ seperti terlihat pada gambar 5.8
berikut.
Gambar 5.8 Tampilan Skor Tertinggi
Terakhir, pemain dapat menampilkan informasi mengenai pembuat
perangkat lunak dengan mengklik link ‘Mengenai Pembuat’ sehingga sistem akan
menampilkan form mengenai seperti terlihat pada gambar 5.9 berikut.
65
Gambar 5.9 Tampilan Mengenai Pembuat
5.2.
Pembahasan
Beberapa informasi yang dapat diperoleh dari perangkat lunak, yaitu:
1. Metode search tree dapat digunakan untuk mengecek solusi persoalan lintasan
yang mungkin dari titik awal ke titik tujuan.
2. Aplikasi menyediakan sebuah interface untuk bermain ‘Permainan Semut
Mencari Permen’ pada sebuah komputer.
Sedangkan, kelemahan dari ‘Permainan Semut Mencari Permen’ dengan
menggunakan metode search tree ini yaitu:
1. Perangkat lunak tidak dapat dimainkan pada jaringan komputer ataupun
internet.
2. Perangkat lunak tidak menyediakan fasilitas save dan perancangan tempat
bermain (board), sehingga user tidak dapat merancang board yang diinginkan
dan tidak dapat menyimpan data game terakhir.
66
3. Perangkat lunak tidak menyediakan multimedia seperti menambahkan efek
animasi.
4. Kualitas animasi pergerakan semut masih kurang bagus / menarik.
BAB VI
KESIMPULAN DAN SARAN
6.1.Kesimpulan
Berdasarkan hasil penelitian, penulis dapat mengambil beberapa
kesimpulan berikut:
3. Aplikasi menyediakan sebuah interface untuk bermain ‘Permainan Semut
Mencari Permen’ pada sebuah komputer.
4. Metode search tree dapat digunakan untuk mengecek solusi persoalan lintasan
yang mungkin dari titik awal ke titik tujuan.
6.2.Saran
Penulis ingin memberikan beberapa saran sehubungan dengan pengembangan
perangkat lunak, seperti:
5. Perangkat lunak dapat dikembangkan dengan merancang permainan agar
dapat dimainkan pada jaringan komputer ataupun internet.
6. Perangkat lunak dapat dikembangkan menjadi perangkat lunak berbasis
multimedia dengan menambahkan efek animasi.
7. Dipertimbangkan untuk menambahkan metode pencarian lain yang terdapat
dalam ilmu AI.
8. Kualitas animasi pergerakan semut dapat ditingkatkan dengan menggunakan
aplikasi adobe flash.
9. Perangkat lunak dapat dikembangkan dengan fasilitas perancangan board dan
save.
67
DAFTAR PUSTAKA
Desiani, A., & Arhami, M., 2006, Konsep Kecerdasan Buatan, Penerbit Andi,
Yogyakarta.
Kristanto, A., 2004, Kecerdasan Buatan, Edisi Pertama, Penerbit Graha Ilmu,
Yogyakarta.
Kusumadewi, S., 2003, Artificial Intelligence (Teknik dan Aplikasinya), Edisi
Pertama, Penerbit Graha Ilmu, Yogyakarta.
Sandi, S., 2008, Aritificial Intelegencia, Penerbit Andi, Yogyakarta.
Siswanto, 2010, Kecerdasan Tiruan, Edisi Kedua, Penerbit Graha Ilmu,
Yogyakarta.
Suparman & Marlan, 2007, Komputer Masa Depan, Penerbit Andi, Yogyakarta.
Sutojo, T., Mulyanto, E., & Suhartono, V., 2011, Kecerdasan Buatan, Penerbit
Andi, Yogyakarta.
Suyanto, 2011, Artificial Intelligence, Penerbit Informatika Bandung, Bandung.
http://duniainformatikaindonesia.blogspot.com/2013/03/pencarian-lintasan-padabidang-kartesian.html
http://duniainformatikaindonesia.blogspot.com/2013/03/problema-state-spaceand-search-masalah.html
Download