i
IMPLEMENTASI ALGORITMA LRTA* PADA PENCARIAN
RUTE TERPEDEK DALAM SEBUAH GAME
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1
Teknik Informatika Universitas Muhammadiyah Malang
Oleh:
Chikita Sari Mawardy NIM. 09560372
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2013
ii
LEMBAR PERSETUJUAN
IMPLEMENTASI ALGORITMA LRTA* PADA PENCARIAN RUTE TERPENDEK DALAM SEBUAH GAME
TUGAS AKHIR
Oleh :
Chikita Sari Mawardy 0 9 5 6 0 3 7 2
Telah Direkomendasikan Untuk Diajukan Sebagai Judul Tugas Akhir Di Teknik Informatika Universitas Muhammadiyah Malang
Menyetujui, Pembimbing I
Yuda Munarko, S.Kom., M. Sc. NIP : 10806110443
Pembimbing II
Yufis Azhar, S.Kom NIDN : 0728088701
iii
LEMBAR PENGESAHAN
IMPLEMENTASI ALGORITMA LRTA* PADA PENCARIAN RUTE TERPENDEK DALAM SEBUAH GAME
TUGAS AKHIR
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata Satu Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh : Chikita Sari Mawardy
0 9 5 6 0 3 7 2
Tugas Akhir ini telah diuji dan dinyatakan lulus oleh tim penguji pada tanggal 26 Juli 2013
Mengetahui/Menyetujui
Penguji I Penguji II
Lailatul Husniyah, S.ST Dhebys Suryani, S.Kom NIDN : 0730108401 NIDN : 0706118303
Mengetahui
Ketua Jurusan Teknik Informatika
Eko Budi Cahyono, S.Kom, MT NIP : 108.9504.0330
iv
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini:
Nama : Chikita Sari Mawardy Tempat / Tgl Lahir : Blitar, 9 Mei 1992 NIM : 0 9 5 6 0 3 7 2
Fakulats / Jurusan : Teknik / Teknik Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “IMPLEMENTASI ALGORITMA LRTA* PADA PENCARIAN RUTE TERPENDEK DALAM SEBUAH GAME” beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun keseluruhan, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko/sanksi yang berlaku.
Malang, 26 Juli 2013 Yang Membuat Pernyataan
Chikita Sari Mawardy
Mengetahui, Dosen Pembimbing I
Yuda Munarko, S.Kom., M. Sc. NIP : 10806110443
Dosen Pembimbing II
Yufis Azhar, S.Kom NIDN : 0728088701
v ABSTRAKSI
Masalah yang sering dijumpai dalam bidang kecerdasan buatan adalah masalah pencarian jarak atau rute terpendek. Permasalah ini harus diselesaikan dengan metode dan algoritma pencarian yang tepat dan optimal. Secara luas, algoritma pencarian adalah algoritma yang menerima masukan suatu masalah dan menghasilkan solusi untuk masalah tersebut. Metode pencarian dikatakan penting karena setiap state (keadaan) menggambarkan langkah-langkah dalam menyelesaikan suatu permasalahan.
Algoritma LRTA* (Learning Real-Time A*) adalah algoritma learning real-time heuristic pertama yang terbaik dan populer. Algoritma ini dapat digunakan dalam pemecahan masalah pencarian rute terpendek. Algoritma LRTA* dapat melakukan planning dan action execution dalam waktu yang konstan. Algoritma ini mencari rute terpendek menuju titik goal dengan cara meng-update current node ke node baru yang paling dekat. Prosedur ini dilakukan berulang-ulang hingga agen mencapai titik goal. LRTA* menentukan aksi agen selanjutnya dengan waktu yang konstan, inilah mengapa algoritma ini disebut on-line, real-time search algorithm.
Dalam proyek akhir ini dibuat sebuah game sederhana yaitu game Mouse Maze, yang bertujuan untuk mengimplementasi dan menguji algoritma LRTA*. Pada game Mouze Maze ini, terdapat dua aktor yaitu mouse (agen) dan cheese (titik goal). Diberikan sebuah field beserta halangan (obstacle) berupa dinding untuk menghalang-halangi jalan agen menuju goal. Algoritma LRTA* membantu agen untuk melewati semua halangan melalui jalur terpendek dengan cara memilih node satu dan node selanjutnya untuk mencapai titik goal.
vi
ABSTRACT
Problems that mostly encountered in artificial intelligence field are path finding problem. This problem could be solved with appropriate methods and optimal search algorithms. Broadly, search algorithm is algorithm that receive input of a problem and produce a solution for it. Search method is important because each state (condition) describing the steps in solving a problem.
LRTA * (Learning Real-Time A *) algorithm is the first, best and popular algorithms learning real-time heuristic. This algorithm can be used to solve shortest route search problems. LRTA * algorithm can do action planning and execution in constant time. These algorithms look for the shortest route to goal point by updating the current node to a new node that is closest. This procedure was repeated until the agent reaches the goal point. LRTA * determine the next action of an agent with a time constant, this is why this algorithm called on-line, real-time search algorithm.
In this final project created a simple game, Mouse Maze game, which is aimed to implement and test the algorithm LRTA *. In Mouze Maze game, there are two actors, mouse (agent) and cheese (goal point). Given a field with obstacles in the form of a wall to obstruct roads leading agency goals. LRTA * algorithm helps agents to pass all obstacles with shortest path by selecting the one node and the next node to reach the goal point.
vii
KATA PENGANTAR
Puji syukur kehadirat Allah SWT, yang telah memberi kekuatan dan petunjuk serta melimpahkan rahmat, dan hidayah-Nya, sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul “IMPLEMENTASI ALGORITMA LRTA* PADA PENCARIAN RUTE TERPENDEK DALAM SEBUAH GAME”. Dengan menyadari adanya keterbatasan kemampuan, pengetahuan, referensi dan pengalaman, Tugas Akhir ini masih jauh dari sempurna. Untuk itu saran dan masukkan untuk kesempurnaan sangat penulis harapkan.
Akhir kata penulis berharap semoga Tugas Akhir ini dapat bermanfaat dan menjadi tambahan ilmu pengetahuan.
Malang, 26 Juli 2013
viii
LEMBAR PERSEMBAHAN
Syukur Alhamdulillah atas kehadirat Allah SWT dengan limpahan hidayah dan rahmad-Nya, shalawat serta salam senantiasa tercurahkan kepada junjungan Nabi besar Rasullullah Muhammad SAW. Tiada kata selain puji syukur dan terima kasih karena penulis dapat menyelesaikan Tugas Akhir ini. Oleh karena itu, dengan rendah hati penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada:
1. Kedua orang tua tercinta Bapak Widji Hirsumardani Unus dan Ibu Siti Maryunah, yang senantiasa tanpa lelah mendo’akan dan memberi dukungan, semoga berkah dan rahmad-Nya selalu menyertai beliau setiap waktu;
2. Bapak Yuda Munarko, S.Kom., M.Sc. dan Bapak Yufis Azhar, S.Kom., selaku dosen pembimbing dalam tugas akhir. yang selalu membimbing dengan kesabaran dan mengarahkan pemahaman;
3. Bapak Eko Budi Cahyono, S.Kom., M.T. selaku Ketua Jurusan Teknik Informatika, Fakultas Teknik, Universitas Muhammadiyah Malang; 4. Bapak/Ibu Dosen Fakultas Teknik, Universitas Muhammadiyah
Malang yang senantiasa menjadi pendidik tanpa tanda jasa;
5. Seluruh teman-temanku tersayang dari kelas IT H 2009 UMM a.k.a IT(H)igh Quality Class, terimakasih telah menjadi sumber semangat yang tak pernah padam.
6. Sri Wahyu Ningsih, mas Edo Yudhistira, Nurul Kurniawan Pradana Putra, teman-teman seperjuangan dalam menjalani kerja parttime di BAA UMM, terimakasih telah senantiasa menemani, menghibur dan menghadapiku dengan sabar.
7. Bapak Dr. Dwi Priyo Utomo, M.Pd, Bapak Irdji’i dan seluruh Karyawan di Biro Admisnistrasi Akademik (BAA), terimakasih atas kesabaran dan motivasi yang terus menerus diberikan.
8. Deo Sanda Pratama Putra, sahabat baikku, terimakasih telah mensupport, membantu dan mendampingi serta mendengarkan keluh kesah sejak pengajuan proposal hingga tugas akhir ini selesai dikerjakan.
ix
9. Teman-Teman Mahasiswa Teknik Informatika angkatan 2009;
10. Dan seluruh pihak yang tidak bisa disebutkan satu persatu, yang telah banyak membantu selama ini.
Semoga segala bantuan, motivasi, dan do’a yang diberikan kepada penulis diridhoi dan mendapat imbalan yang berlipat ganda dari Allah SWT, Amiin ya Rabbal’alamin.
x DAFTAR ISI
Lembar Persetujuan ... i
Lembar Pengesahan ... ii
Lembar Pernyataan ... iii
Abstraksi ... iv
Abstract ... vi
Kata Pengantar ... vi
Lembar Persembahan ... vii
Daftar Pustaka ... ix
Daftar Gambar... xiii
Daftar Tabel ... xivii
BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Tujuan ... 3 1.4 Batasan Masalah ... 3 1.5 Metodologi ………...…….. ... 4 1.5.1 Studi Literarur ... 4 1.5.2 Implementasi . ... 4
1.5.3 Pengujian dan Evaluasi ... 4
1.5.4 Pembuatan Laporan ... 5
1.6 Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 6
2.1 Kecerdasan Buatan ... 6
2.2 Algoritma Dalam Pemrograman ... 7
2.2.1 Konsep Dasar Algoritma ... 8
2.2.2 Struktur Hubungan Algoritma... 9
xi
2.3 Algoritma Learning Real-Time A* (LRTA*) ... 12
2.4 Game Mouse Maze ... 15
2.5 Bahasa Pemrograman Java ... 16
2.5.1 Pengertian dan Karakteristik Java ... 16
BAB III ANALISA DAN PERANCANGAN SISTEM ... 19
3.1 Analisa Sistem ... 19
3.1.1 Spesifikasi Perangkat Lunak ... 19
3.1.2 Fungsionalitas Sistem ... 19
3.1.3 Flowchart Sistem ... 20
3.1.4 Analisa Algoritma LRTA* ... 20
3.1.5 Use Case Diagram ... 21
3.2 Perancangan Sistem ... 22
3.2.1 Perancangan Environment Game ... 22
3.2.2 Menyiapkan Karakter ... 22
3.3 Cara Kerja Sistem ... 23
3.3.1 Activity Diagram ... 23
3.3.2 Class Diagram ... 24
BAB IV IMPLEMENTASI DAN HASIL PENGUJIAN ... 26
4.1 Implementasi Sistem ... 26
4.1.1 Pembuatan Map Game ... 26
4.1.2 Pengimplementasian Script LRTA* ke Dalam Kode ... 28
4.1.3 Implementasi Algoritma LRTA* ke Objek Mouse ... 31
4.2 Pengujian Sistem ... 32
4.2.1 Skenario Pertama (Goal Tidak Bergerak) ... 32
4.2.2 Skenario Kedua (Goal Bergerak) ... 34
4.2.3 Skenario Ketiga (Dua Rute Dengan Nilai Heuristik Yang Sama) ... 36
BAB V KESIMPULAN DAN SARAN ... 40
5.1 Kesimpulan ... 40
5.2 Saran ... 40
xii
DAFTAR GAMBAR
Gambar 1. 1 Preview Game Mouse Maze ... 4
Gambar 2. 1 Struktur Hubungan Algoritma... 9
Gambar 2. 2 Pseudocode Algoritma LRTA* ... 13
Gambar 2. 3 Penggambaran Sebuah State ... 13
Gambar 2. 4 Pencarian LRTA* dengan Minimal Lookahed ... 14
Gambar 2. 5 Pencarian LRTA* dengan Maximal Lookahead ... 14
Gambar 2. 6 Game Mouze Maze Sederhana... 15
Gambar 3. 1 Flowchart Sistem ... 20
Gambar 3. 2 Pseudocode Algoritma LRTA* ... 21
Gambar 3. 3 Flowchart Algoritma LRTA* ... 21
Gambar 3. 4 Use Case Game Mouse Maze ... 22
Gambar 3. 5 Environment Game Mouse Maze... 22
Gambar 3. 6 Karakter Mouse (LRTA* Object) ... 23
Gambar 3. 7 Karakter Cheese (Moving Target) ... 23
Gambar 3. 8 Activity Diagram Game Mouse Maze ... 24
Gambar 3. 9 Class Diagram Game Mouse Maze ... 25
Gambar 4. 1 Potongan Kode Untuk Meload Map ... 26
Gambar 4. 2 Rancangan Map Game Dengan Notepad ... 27
Gambar 4. 3 Potongan Kode Untuk Menampilkan Map Game ... 27
Gambar 4. 4 Potongan Kode Pembuatan Map ... 28
Gambar 4. 5 Potongan Kode Inisialisasi Awal ... 28
Gambar 4. 6 Potongan Kode Menentukan Heuristik Awal ... 29
Gambar 4. 7 Potongan Kode Mengecek Perubahan Heuristik... 29
Gambar 4. 8 Potongan Kode Method LookHeadUpdate() ... 29
Gambar 4. 9 Potongan Kode Method hMin() ... 30
Gambar 4. 10 Potongan Kode Pergerakan Mouse ke Kiri dan ke Kanan jika terdepat tembok ... 31
Gambar 4. 11 Potongan Kode Pergerakan Mouse ke Atas dan ke Bawah jika terdepat tembok ... 31
Gambar 4. 12 Potongan Kode Menjalankan Algoritma LRTA* Dalam Game ... 31
xiii
Gambar 4. 14 Nilai Heuristik Awal Setiap Node... 32
Gambar 4. 15 Perubahan Nilai Heuristik Pada Node... 33
Gambar 4. 16 Jalur yang Dilalui Mouse Menuju Cheese(Titik Goal) ... 33
Gambar 4. 17 Screencapture Pergerakan Awal Mouse... 33
Gambar 4. 18 Screencapture Pergerakan Akhir Mouse ... 34
Gambar 4. 19 Nilai Heuristik Awal Setiap Node... 34
Gambar 4. 20 Perubahan Nilai Heuristik Pada Node... 35
Gambar 4. 21 Perubahan Nilai Heuristik Node Ketika Cheese Dipindah ... 35
Gambar 4. 22 Jalur Baru yang Dilalui Mouse menuju Cheese (Titik Goal) ... 35
Gambar 4. 23 Screencapture Pergerakan Mouse Jika Cheese Diubah Posisinya .. 36
Gambar 4. 24 Screencapture Titik Awal Mouse dan Cheese ... 36
Gambar 4. 25 Screencapture Rute yang Mungkin Dilalui Mouse Menuju Cheese ... 37
Gambar 4. 26 Screencapture Rute yang Dilalui Mouse Menuju Cheese Ketika Sistem Dijalankan ... 37
Gambar 4. 27 Screencapture Pergerakan Mouse Menuju Cheese Melalui Rute Pertama ... 37
Gambar 4. 28 Screencapture Titik Awal Mouse dan Cheese ... 38
Gambar 4. 29 Screencapture Rute yang Mungkin Dilalui Mouse Menuju Cheese ... 38
Gambar 4. 30 Screencapture Rute yang Dilalui Mouse Menuju Cheese Ketika Sistem Dijalankan ... 38
Gambar 4. 31 Screencapture Pergerakan Mouse Menuju Cheese Melalui Rute Pertama ... 39
xiv
DAFTAR TABEL
Tabel 2. 1 LRTA* Dengan Lookahed of One vs. A* Dalam Path-Finding ... 15