Evaluasi dan Usaha Optimalisasi Algoritma Depth First Search dan Breadth First Search dengan Penerapan pada Aplikasi Rat Race dan Web Peta.
ABSTRACT
In a Rat Race game, there is only one way in and one way out. The objective of this game is to find the shortest way to reach the finish. We use a rat character in this game, so the rat must walk automatically through the maze and try to find the way out to reach finish. We use some of artificial intelligence algorithm so the rat not walking brutally through the maze. It has some rule in this game, the rat only can step into 4 directions up, down, left, right and each time the rat step into direction it will be count. The objective of this application is to make the rat character becoming a smart rat that can walk, see, and have a good memory about the maze. There is 2 algorithm which are used to fulfill the objective of this game, i.e. Depth First Search algorithm and Breadth First Search algorithm. Depth First Search algorithm has a backtracking algorithm inside of it so the algorithm can make the rat become smarter. Breadth First Search algorithm in this game also has a backtracking function but using the bidirectional search algorithm to help find a path for backtracking function. So, this application implement 2 algorithm to make the rat can finish the objective. The new application must fix the algorithm so the rat can find the finish faster and smarter. In Depth First Search algorithm we fix backtracking function so the rat not check for the finish again when the rat using backtracking function. In Breadth Firtst Search algorithm we fix the way tree being generate. The level on the tree will up only if the rat find more than 1 way to go or meet intersection. The result are in the new application for the Breadth First Search algorithm has a fewer step than the old one. For the Depth First Search algorithm, the goal checking mechanism has fewer steps than the old one. There’s also a new application called “Web Peta” that implement Depth First Search algorithm. The objective of the application is to find a shortest route from one place in the map to other place in the map. The second objective is to find alternative route. The implementation of Depth First Search algorithm prove that this algorithm can be implement not only in game application, but also the algorithm can be use in the routing application.
Keyword: Algorithm, Depth First Search, Breadth First Search, backtracking, Maze, Rat Race, Web Peta.
(2)
ABSTRAK
Rat Race adalah permainan labirin dimana hanya terdapat satu jalan masuk dan satu jalan keluar. Tujuan dari permaianan ini adalah untuk mencari jalan keluar dari dalam labirin. Dalam permainan ini digunakan karakter tikus, tikus harus bisa berjalan didalam labirin untuk mencari jalan keluar. Dalam permainan ini digunakan algoritma yang menerapkan kecerdasan buatan, hal ini bertujuan agar tikus tidak hanya asal berjalan saja di dalam labirin. Dalam permainan ini terdapat beberapa aturan yaitu tikus hanya bisa berjalan ke empat arah atas, bawah, kiri dan kanan. Tiap kali tikus melangkah akan dihitung. Tujuan dari aplikasi ini adalah membuat karakter tikus menjadi pintar, dapat melihat, berjalan dan mengingat labirin ataupun langkah yang telah diambilnya. Terdapat dua algoritma yang digunakan dalam aplikasi ini, Depth First Search dan Breadth First Search. Algoritma Depth First Search memiliki fungsi backtracking untuk membuat karakter tikus menjadi lebih pintar. Breadth First Search juga memiliki fungsi backtracking tetapi dengan bantuan algoritma bidirectional search, yang bertujuan menemukan rute. Pada aplikasi yang baru, perbaikan dilakukan agar tikus dapat mencari jalan keluar dengan lebih cepat dan pintar. Perbaikan pada algoritma Depth First Search dilakukan pada fungsi backtracking. Pada fungsi ini pengecekan tujuan yang dilakukan oleh tikus dikurangi, karena sebelumnya telah dilakukan pengecekan tujuan. Jadi pengecekan tujuan tidak dilakukan berulang-ulang. Pada algoritma Breadth First Search perbaikan dilakukan pada cara tikus melihat dan membuat pohon pencarian. Level pada pohon pencarian baru akan bertambah jika tikus menemukan persimpangan. Hasil perbaikan pada algoritma Breadth First Search menghasilkan jumlah langkah yang lebih sedikit dibandingkan dengan algoritma yang lama. Pada algoritma Depth First Search pengecekan tujuan menjadi lebih sedikit. Selain itu terdapat aplikasi lain yang dinamakan “Web Peta”. Aplikasi ini bertujuan menerapkan algoritma pencarian pada peta jalan. Aplikasi dapat mencari rute terpendek dan rute alternatif dari satu tempat ke tempat lain didalam peta menggunakan algoritma Depth First Search. Aplikasi ini menunjukan bahwa algoritma pencarian dalam hal ini Depth First Search dapat diterapkan pada aplikasi lain selain Rat Race.
Kata kunci: Algoritma, Depth First Search, Breadth First Search, backtracking, maze, Rat Race, Web Peta.
(3)
DAFTAR ISI
LEMBAR PENGESAHAN ... i
PERNYATAAN ORISINALITAS LAPORAN ... ii
KATA PENGANTAR ... iii
LEMBAR PERNYATAAN PERSETUJUAN KARYA ILMIAH ... iv
ABSTRACT ... v
ABSTRAK ... vi
DAFTAR ISI ... vii
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
DAFTAR SIMBOL ... xiv
BAB I PERSYARATAN PRODUK... 1
1.1. Tujuan Pembuatan Sistem ... 1
1.1.1. Ruang Lingkup Proyek ... 1
1.1.2. Sistematika Laporan ... 2
1.2. Gambaran Sistem Keseluruhan ... 2
1.2.1. Perspektif Produk ... 2
1.2.2. Fungsi Produk ... 3
1.2.3. Karakteristik Pengguna ... 3
1.2.4. Batasan-Batasan ... 4
1.2.5. Asumsi dan Ketergantungan ... 5
1.2.6. Penundaan Persyaratan ... 5
BAB IISPESIFIKASI PRODUK ... 6
2.1. Persyaratan Antarmuka Eksternal ... 6
2.1.1. Antarmuka Dengan Pengguna ... 6
(4)
2.1.3. Antarmuka Perangkat Lunak... 7
2.1.4. Antarmuka Komunikasi ... 8
2.2. Fitur Produk Perangkat Lunak ... 8
2.2.1. Aplikasi Rat Race ... 8
2.2.1.1. Depth First Search ... 8
2.2.1.2. Breadth First Search ... 11
2.2.1.3. Pengukuran Memori ... 18
2.2.2. Aplikasi Web Peta ... 19
2.2.2.1. Pencarian Rute ... 19
BAB III DESAIN PERANGKAT LUNAK ... 22
3.1. Identifikasi Kebutuhan Sistem ... 22
3.2. Overview Sistem ... 23
3.3. Desain Perangkat Lunak ... 24
3.3.1. Use Case Diagram ... 24
3.3.2. Activity Diagram ... 26
3.3.3. Sequence Diagram ... 29
3.3.4. Class Diagram ... 31
3.3.5. Entity Relationship Diagram ... 33
3.4. Desain Arsitektur Perangkat Lunak ... 35
3.4.1. Komponen Perangkat Lunak ... 35
3.4.2. Konsep Eksekusi ... 35
3.4.3. Desain Antarmuka ... 36
BAB IV PENGEMBANGAN SISTEM ... 38
4.1. Perencanaan Tahap Implementasi ... 38
4.1.1. Implementasi Komponen Perangkat Lunak ... 38
4.1.2. Keterkaitan Antar Komponen Perangkat Lunak ... 40
(5)
4.2.1. Implementasi Bottom Up ... 40
4.2.1.1. Aplikasi Rat Race ... 40
4.2.1.2. Aplikasi Web Peta ... 46
4.2.2. Debugging ... 48
4.3. Ulasan Realisasi Fungsionalitas ... 49
4.4. Ulasan Realisasi Antarmuka Pengguna ... 51
BAB V TESTING DAN EVALUASI SISTEM ... 53
5.1. Rencana Pengujian Sistem Terimplementasi ... 53
5.1.1. Test Case ... 53
5.1.1.1. Aplikasi Rat Race ... 53
5.1.1.2. Analisis Big Oh ... 60
5.1.1.3. Aplikasi Web Peta ... 66
5.1.2. Uji Fungsionalitas Komponen Perangkat Lunak ... 70
5.2. Perjalanan Metodologi Pengujian ... 71
5.2.1. White Box ... 71
5.2.2. Black Box ... 72
5.3. Ulasan Hasil Evaluasi ... 73
BAB VI KESIMPULAN DAN SARAN ... 75
6.1. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi ... 75
6.2. Keterkaitan antara Saran dengan Hasil Evaluasi ... 76
6.3. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan ... 76
DAFTAR PUSTAKA ... 78
LAMPIRAN ... 79
A. KODE PROGRAM ... 79
Depth First Search ... 79
Breadth First Search ... 83
(6)
Web Peta... 86 B. DAFTAR ISTILAH ... 92
(7)
DAFTAR TABEL
Tabel 4.1 Variabel yang digunakan dalam class Depth First Search ... 40
Tabel 4.2 Metoda yang digunakan dalam class Depth First Search ... 41
Tabel 4.3 Variabel tambahan yang digunakan dalam class Breadth First Search ... 42
Tabel 4.4 Variabel yang digunakan dalam class Bidirectional Search ... 42
Tabel 4.5 Metoda yang digunakan dalam class Bidirectional Search ... 42
Tabel 4.6 Variabel yang digunakan dalam class Kaki ... 43
Tabel 4.7 Metoda yang digunakan dalam class Kaki ... 43
Tabel 4.8 Variabel yang digunakan dalam class Mata ... 44
Tabel 4.9 Variable yang digunakan dalam class otak ... 44
Tabel 4.10 Metoda yang digunakan dalam class Otak ... 45
Tabel 4.11 Variabel yang digunakan dalam class Soal ... 45
Tabel 4.12 Metoda yang digunakan dalam class Soal ... 45
Tabel 4.13 Variabel yang digunakan dalam class Memori ... 46
Tabel 4.14 Metoda yang digunakan dalam class Memori ... 46
Tabel 4.15 Variabel yang digunakan dalam class depthFirstSearch ... 46
Tabel 4.16 Metoda yang digunakan dalam class depthFirstSearch ... 47
Tabel 4.17 Metoda yang digunakan dalam class Koneksi ... 47
Tabel 4.18 Realisasi Fungsionalitas Aplikasi Rat Race ... 49
Tabel 4.19 Realisasi Fungsionalitas Aplikasi Web Peta ... 50
Tabel 5.1 Analisis Big Oh: function dfs ... 60
Tabel 5.2 Analisis Big Oh: function tujuan ... 61
Tabel 5.3 Analisis Big Oh: function isi Stack ... 61
Tabel 5.4 Analisis Big Oh: function jalan ... 62
Tabel 5.5 Analisis Big Oh: function isi antrian ... 65
Tabel 5.6 Hasil pengujian aplikasi Rat Race ... 73
(8)
DAFTAR GAMBAR
Gambar 2.1 Pohon Depth First Search ... 8
Gambar 2.2 Pohon Breadth First Search ... 11
Gambar 2.3 Pohon Bidirectional Search ... 12
Gambar 2.4 Contoh Soal 5 x 5 ... 13
Gambar 2.5 Pohon BFS lama ... 13
Gambar 2.6 Pohon BFS baru ... 14
Gambar 3.1 Use Case Diagram Aplikasi Rat Race... 24
Gambar 3.2 Use Case Diagram Aplikasi Web Peta ... 25
Gambar 3.3 Activity Diagram Depth First Search Aplikasi Rat Race ... 26
Gambar 3.4 Activity Diagram Breadth First Search Aplikasi Rat Race ... 27
Gambar 3.5 Activity Diagram Aplikasi Web Peta ... 28
Gambar 3.6 Sequence Diagram Depth First Search Aplikasi Rat Race ... 29
Gambar 3.7 Perbedaan Sequence Diagram Breadth First Search ... 30
Gambar 3.8 Sequence Diagram Aplikasi Web Peta ... 31
Gambar 3.9 Class Diagram Aplikasi Rat Race ... 32
Gambar 3.10 Class Diagram Aplikasi Web Peta ... 33
Gambar 3.11 Entity Relationship Diagram Aplikasi Web Peta ... 34
Gambar 3.12 Penamaan peta ... 34
Gambar 3.13 Komponen Perangkat Lunak Aplikasi Rat Race ... 35
Gambar 3.14 Desain Antarmuka Aplikasi Rat Race ... 36
Gambar 3.15 Desain Antarmuka Aplikasi Web Peta ... 37
Gambar 4.1 Package Diagram ... 40
Gambar 4.2 Realisasi Antarmuka Pengguna Aplikasi Rat Race ... 51
Gambar 4.3Realisasi Antarmuka Pengguna Aplikasi Web Peta ... 52
Gambar 5.1 Hasil Pengujian fitur DFS lama pada labirin 5x5 ... 54
Gambar 5.2 Hasil Pengujian fitur DFS baru pada labirin 5x5 ... 55
Gambar 5.3 Hasil Pengujian fitur DFS lama pada labirin 20x20 ... 56
Gambar 5.4 Hasil Pengujian fitur DFS baru pada labirin 20x20 ... 57
Gambar 5.5 Hasil pengujian fitur BFS lama pada labirin 5 x 5 ... 58
Gambar 5.6 Hasil pengujian fitur BFS baru pada labirin 5 x 5 ... 58
(9)
Gambar 5.8 Hasil pengujian fitur BFS baru pada labirin 20 x 20 ... 60
Gambar 5.9 Peta Bandung untuk aplikasi Web Peta ... 67
Gambar 5.10 Hasil aplikasi Web Peta: rute A menuju C ... 68
Gambar 5.11 Hasil aplikasi Web Peta: rute C menuju B ... 69
Gambar 5.12 Hasil Aplikasi WebPeta: rute B emnuju C ... 70
(10)
DAFTAR SIMBOL
SIMBOL GAMBAR
KETERANGAN
Use Case Diagram Aktor
Use case <<include>>
Extend <<extend>>
Include Sistem
Batasan sistem
Activity Diagram Kondisi Awal
Kondisi Akhir Aksi Pilihan
Alur
Sequence Diagram Masa hidup object
Aktivasi
Pesan
Pesan balasan
(11)
SIMBOL GAMBAR
KETERANGAN
Pesan balasan ke diri
sendiri
Pesan asynchrounus
Class Diagram Class diagram
uses Entity Relationship
Diagram Entitas bernilai banyak
Entitas Tabel relasi
(12)
BAB I
PERSYARATAN PRODUK
Bagian pertama pada laporan ini akan menggambarkan tujuan dari pembuatan sistem, sistematika dari penulisan laporan ini. Selain itu juga terdapat gambaran sistem secara keseluruhan, dimana akan dijelaskan mengenai karakteristik dari pengguna dan juga gambaran tentang aplikasi ini. Adapun tujuan utama aplikasi ini adalah mengoptimalisasi algoritma yang ada pada aplikasi Rat Race. Penjelasan pun akan lebih banyak mengedepankan langkah-langkah dalam melakukan optimalisasi. Pada bagian ini juga akan dibahas penerapan lain dari algoritma yang terdapat pada aplikasi Rat Race pada aplikasi Web Peta.
Bagian pertama ini juga akan menjelaskan tentang batasan-batasan dari aplikasi ini baik aplikasi utama yaitu Rat Race dan juga aplikasi kedua yaitu Web Peta. Selain hal-hal diatas, akan dibahas juga mengenai asumsi-asumsi yang digunakan dalam pengembangan sistem dan juga penundaan persyaratan.
1.1. Tujuan Pembuatan Sistem 1.1.1. Ruang Lingkup Proyek
Optimalisasi algoritma Depth First Search dan Breadth First Search pada aplikasi ini akan memperbaiki algoritma yang sudah ada sebelumnya untuk mencapai hasil yang optimal. Selain itu juga akan dilakukan perhitungan-perhitungan mengenai pemakaian resources dari aplikasi ini untuk kemudian ditentukan kriteria dan batasan-batasan optimal dari aplikasi ini. Optimalisasi dari kedua algoritma diharapkan akan menghasilkan algoritma yang lebih baik dilihat dari jumlah langkah yang dibutuhkan, penggunaan memori, dan perhitungan secara teoritis menggunakan Big Oh (analisis algoritma untuk mengetahui kompleksitas asimptotik).
Pada aplikasi peta, penerapan algoritma difokuskan pada bagaimana cara untuk dapat mencari rute terpendek dan rute alternatif dalam peta. Aplikasi merupakan simulasi untuk menerapkan algoritma pencarian dengan kasus mencari rute pada peta.
(13)
1.1.2. Sistematika Laporan
BAB I berisi mengenai tujuan dari pembuatan aplikasi, ruang lingkup, perspektif produk yang akan menggambarkan mengenai aplikasi yang akan dibuat. Didalamnya juga dibahas mengenai fungsi dari produk dan sebagainya.
BAB II berisi mengenai antarmuka baik itu dengan pengguna, antarmuka perangkat keras yang digunakan, perangkat lunak yang digunakan, dan juga akan dibahas mengenai fitur-fitur yang terdapat dalam aplikasi.
BAB III berisi desain dari perangkat lunak yang dibuat, desain dibuat dengan menggunakan UML 2.0 hal, karena pendekatan yang digunakan adalah pendekatan berorientasi objek.
BAB IV berisi mengenai keterkaitan antar komponen perangkat lunak, didalam bagian ini juga akan dijelaskan mengenai implementasi dalam pembuatan perangkat lunak. Selain itu juga ulasan fungsionalitas aplikasi akan dibahas dalam bagian ini.
BAB V berisi mengenai pengujian yang dilakukan terhadap aplikasi dan juga pengujian terhadap fungsionalitas dari komponen-komponen yang terdapat pada kedua aplikasi.
BAB VI berisi mengenai kesimpulan yang dapat diambil dari hasil evaluasi terhadap pengujian yang dilakukan terhadap aplikasi. Pada bagian ini juga terdapat saran dan rencana implementasi agar saran tersebut dapat diterapkan.
1.2. Gambaran Sistem Keseluruhan 1.2.1. Perspektif Produk
Aplikasi ini adalah optimalisasi dari aplikasi sebelumnya. Pada aplikasi Rat Race perbaikan terletak pada pendekatan bahasa pemrograman, jalannya algoritma itu sendiri dan dalam pembuatan kode program. Dalam aplikasi Rat Race akan diterapkan penggunaan bahasa pemrograman dengan pendekatan berorientasi obyek. Selain itu juga, akan dilakukan analisa terhadap penggunaan resources yang ada sehingga bisa menemukan batasan-batasan optimal untuk kemudian diterapkan pada aplikasi ini. Perbaikan kode program juga akan dilakukan agar menghasilkan algoritma yang lebih baik dilihat dari jumlah langkah yang dibutuhkan, penggunaan memori, dan perhitungan secara teoritis menggunakan Big Oh.
(14)
Algoritma pencarian yang ada akan diterapkan juga dalam aplikasi Web Peta. Aplikasi ini akan menampilkan peta jalan dengan lokasi-lokasi didalamnya. Bentuk dari peta itu sendiri adalah berupa gambar yang akan dibagi-bagi lagi besarnya seperti pembagian berdasarkan garis lintang dan garis bujur, dengan tujuan untuk memudahkan menampilkannya dalam bentuk web dan menerapkan algoritma pencarian. Algoritma pencarian akan diterapkan untuk mencari rute terpendek dari satu titik ke titik yang lain pada peta.
1.2.2. Fungsi Produk
Fungsi dari aplikasi Rat Race adalah:
• Membuat tikus memiliki kemampuan untuk berjalan.
• Membuat tikus memiliki kemampuan untuk melihat keadaan disekitarnya.
• Membuat tikus memiliki kemampuan untuk mengingat jalan dan soal.
• Membuat tikus memiliki kemampuan untuk memilih jalan yang tepat.
• Membuat tikus mampu untuk menemukan jalan keluar dengan cepat dan tepat.
• Membuat aplikasi ini mencapai batasan optimal yang ditentukan.
Sedangkan fungsi dari aplikasi Web Peta adalah:
• Menerapkan algoritma Depth First Search pada aplikasi web.
• Menampilkan rute dari satu tempat ke tempat lain yang dituju.
• Aplikasi dapat menemukan rute terpendek yang harus dilalui untuk mencapai
tujuan.
• Aplikasi dapat menemukan rute alternatif untuk mencapai tujuan.
1.2.3. Karakteristik Pengguna
Pengguna dari aplikasi ini adalah mahasiswa dan dosen jurusan Teknik Informatika Universitas Kristen Maranatha. Keahlian yang dibutuhkan adalah mampu mengoperasikan komputer berbasis Windows XP Professional dan juga Microsoft Visual Studio 2005 untuk menjalankan aplikasi Rat Race. Untuk menjalankan aplikasi Web Peta kemampuan yang dibutuhkan adalah mampu menggunakan web browser seperti internet explorer.
(15)
1.2.4. Batasan-Batasan
Pada Aplikasi Rat Race:
• Menggunakan bahasa pemrograman C#.
• Tool yang digunakan adalah Microsoft Visual Studio 2005.
• Sistem penanganan error tidak terlalu difokuskan tetapi akan dibuat error
handling seminimal mungkin.
• Hanya melakukan optimalisasi algoritma pada permainan Rat Race.
• Tidak membuat tampilan grafis.
• Menggunakan algoritma Depth First Search.
• Menggunakan algoritma Breadth First Search.
• Menggunakan algoritma Bidirectional Search untuk melakukan fungsi
backtracking.
Pada Aplikasi Web Peta:
• Menggunakan bahasa pemrograman PHP 5.
• Tool yang digunakan adalah Macromedia Dreamweaver 8.
• Menggunakan server Apache versi 2.2.4.
• Menggunakan database MySQL versi 5.0.33.
• Tool yang digunakan untuk mengolah database adalah phpmyadmin 2.9.2.
• Browser yang digunakan adalah Internet Explorer 6.0.
• Besarnya peta yang dipakai berukuran 5 x 5 pecahan gambar.
• Peta pada aplikasi ini berupa gambar yang dipotong-potong menjadi beberapa
gambar.
• Aplikasi ini dapat mencari rute terpendek berdasarkan banyaknya potongan
gambar yang harus dilalui.
• Aplikasi ini dapat mencari rute alternatif tetapi tidak bisa memilih rute mana
(16)
1.2.5. Asumsi dan Ketergantungan
Asumsi-asumsi yang digunakan dalam pembuatan aplikasi Rat Race adalah:
• Tikus dapat berjalan sejauh satu langkah demi satu langkah ke arah atas, bawah,
kiri dan kanan.
• Tikus tidak dapat berjalan secara diagonal.
• Tikus dapat melihat sejauh satu langkah ke arah atas, bawah, kiri dan kanan.
• Tikus tidak dapat melihat secara diagonal.
• Tikus tidak memiliki pengetahuan tentang soal.
• Tikus memiliki kemampuan mengingat terbatas pada soal yang sedang
dijalankan, jika dijalankan berikutnya ingatan yang dimiliki oleh tikus akan digantikan oleh ingatan yang baru.
• Labirin hanya memiliki satu jalan masuk dan satu jalan keluar.
Sedangkan asumsi dan ketergantungan dari aplikasi Web Peta adalah:
• Algoritma pencarian yang digunakan adalah algoritma yang memiliki performa
paling optimal antara algoritma Depth First Search dan Breadth First Search.
• Peta diasumsikan sebagai soal dalam aplikasi ini.
• Posisi start tikus diasumsikan posisi awal pada aplikasi ini.
• Jalan keluar diasumsikan sebagai tujuan pada aplikasi ini.
• Panjang jalan dalam setiap pecahan gambar peta diasumsikan memiliki besar
yang sama.
• Tidak perlu untuk menjalani pecahan gambar satu per satu seperti dalam
aplikasi Rat Race, karena jumlah langkah dalam aplikasi ini tidak dihitung, tetapi hanya dibutuhkan rute terpendek.
1.2.6. Penundaan Persyaratan
Komunikasi dengan aplikasi soal pada aplikasi rat race dapat dilakukan jika aplikasi soal telah lengkap dan selesai.
(17)
BAB VI
KESIMPULAN DAN SARAN
Bab ini berisi mengenai kesimpulan yang dapat diambil berdasarkan dari pengujian yang telah dilakukan terhadap aplikasi baik aplikasi Rat Race atau aplikasi Web Peta. Dari kesimpulan yang diambil tersebut itu juga terdapat saran-saran terhadap aplikasi yang ada. Rencana pengimplementasian saran tersebut juga dibahas dalam bab ini. Rencana implementasi bertujuan agar dapat mengetahui bagaimana saran tersebut dapat diterapkan
6.1. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi
Perbaikan yang telah dilakukan pada algoritma Depth First Search dan Breadth First Search menghasilkan output pemakaian memori yang lebih kecil dibandingkan dengan aplikasi sebelumnya. Pada perbaikan algoritma Depth First Search proses pengecekan tujuan menjadi lebih sedikit dibandingkan dengan algoritma sebelumnya. Pada perbaikan algoritma Breadth First Search jumlah langkah yang dibutuhkan untuk menemukan tujuan lebih sedikit dibandingkan dengan algoritma yang sebelumnya. Perbaikan terhadap kedua algoritma tersebut berjalan dengan baik, hasil yang ingin dicapai yaitu perbaikan jumlah langkah pada algoritma Breadth First Search, perbaikan pada saat backtracking pada algoritma Depth First Search, dan juga pemakaian memori yang lebih kecil berhasil dicapai. Tetapi walaupun perbaikan algoritma telah dilakukan, pencarian dengan metoda Depth First Search masih lebih unggul dibandingkan dengan pencarian dengan metoda Breadth First Search. Walaupun jumlah langkah yang ditempuh oleh tikus dengan metoda Breadth First Search untuk mencapai tujuan berkurang sekitar setengah dari pencarian yang lama, tetapi jumlah langkah yang dibutuhkan masih terlalu banyak dibandingkan dengan pencarian dengan algoritma Depth First Search, baik algoritma yang lama atau yang telah diperbaiki.
Pada Aplikasi Web Peta, pencarian dengan menggunakan algoritma Depth First Search ternyata bisa diterapkan dan dapat berjalan dengan baik. Aplikasi juga bisa mengenali jalan satu arah ataupun dua arah, tetapi pencarian rute terpendek masih menggunakan asumsi bahwa tiap potongan gambar memiliki panjang yang sama, sebagai contoh: potongan gambar 1-1 memiliki panjang jalan 10m maka potongan gambar yang lain juga memiliki panjang jalan yang sama.
(18)
6.2. Keterkaitan antara Saran dengan Hasil Evaluasi
Pada aplikasi Rat Race, langkah yang diambil oleh tikus dapat dibilang sebagai suatu kebiasaan baik pada algoritma yang lama maupun pada algoritma yang baru. Sebagai contoh, saya bukanlah seorang kidal, maka saya selalu terbiasa menulis dengan tangan kanan saya, saya selalu menulis dengan tangan kanan karena sudah menjadi kebiasaan saya pada akhirnya. Analogi tersebut juga pada aplikasi Rat Race terjadi pada waktu proses mengisi antrian ataupun stack. Tikus memiliki kebiasaan untuk melihat keatas dulu, baru ke bawah, kemudian kiri dan terakhir kanan. Sehingga untuk berjalan pun tikus terbiasa untuk berjalan selalu keatas dulu, baru ke bawah, dan seterusnya. Tikus dapat menemukan jalan keluar lebih baik jika tikus dapat menentukan dia harus ke atas atau kebawah atau kekiri atau mungkin juga ke kanan. Bukan hanya tergantung dari kebiasaan yang dimiliki oleh tikus.
Pada aplikasi Web Peta, panjang jalan tiap-tiap jalan memiliki besarnya masing-masing, jika ternyata panjang jalannya berbeda aplikasi akan menganggapnya memiliki besar yang sama sehingga rute terpendek yang dihasilkan oleh aplikasi belum tentu akurat. Karenanya dibutuhkan satu informasi tambahan yang menandakan berapa panjang jalan dari masing-masing potongan gambar. Hal ini akan dapat memaksimalkan pencarian rute terpendek agar menghasilkan output yang lebih akurat. Selain itu proses pembuatan pecahan gambar pada aplikasi ini cukup sulit. Gambar yang ada harus dipecah-pecah dengan koordinat x dan y, kemudian dibuat pecahan gambar untuk rute jalan. Proses pembuatan gambar pada aplikasi Web Peta dapat dipermudah sehingga tidak menjadi telalu rumit untuk dikembangkan.
6.3. Rencana
Perbaikan/Implementasi terhadap Saran yang
Diberikan
Pada aplikasi Rat Race dibutuhkan informasi tambahan agar tikus dapat menentukan dia akan melangkah ke arah mana terlebih dahulu, misalnya : pada soal terdapat keju, dan tikus memiliki indera pembauan sehingga bisa mendeteksi dimana letak kejunya. Selain itu juga proses random dapat dicoba ketika tikus akan melangkah atau melihat, sehingga tikus tidak selalu melangkah berdasarkan kebiasaan.
Pada aplikasi Web Peta, perlu tambahan satu buah atribut pada tabel map_contents yang isinya merupakan panjang jalan dari masing-masing potongan gambar. Dengan adanya atribut ini proses pencarian rute terpendek dapat berjalan lebih
(19)
akurat. Selain itu untuk mempermudah dalam proses pembuatan gambar peta, mungkin dapat menggunakan bantuan aplikasi lain. Sebagai contoh menggunakan open street map, atau aplikasi untuk web lainnya yang memiliki fungsi yang sama.
(20)
DAFTAR PUSTAKA
[Cor88] Cormen, Thomas H. dkk. Introduction To Algorithms
[Dia06] Diablo, Senior. 2006. Beginners Guide to Pathfinding Algoritm. Available from: http://ai-depot.com/Tutorial/PathFinding-Blind.html
[Jes03] Jesse, Michael dan James A.Schardt. 2003. UML 2 For Dummies. Wiley
Publishing
[Ken06] Kendall, Graham. 2006. Defining and Implementing Search. Available from:
http://www.cs.nott.ac.uk/~gxk/courses/g5aiai/003blindsearches/implement.htm
[Lug88] Luger, George F. 1988. Artificial Intelligence Structures and Strategies for
Complex Problem Solving. Pearson Education Limited.
[Mun03] Munir, Rinaldi. 2003. Diktat Kuliah Matematika Diskrit. Departemen Teknik Informatika Institut Teknologi Bandung.
[Rus03] Russell, Stuart J., Peter Norvig. 2003. Artificial Intelligence a Modern
Approach. Prentice Hall.
[Wat05] Watson, Mark. 2005. Practical Artificial Intelligence Programming in Java. Available from: http://www.markwatson.com
(1)
1.2.4. Batasan-Batasan
Pada Aplikasi Rat Race:
• Menggunakan bahasa pemrograman C#.
• Tool yang digunakan adalah Microsoft Visual Studio 2005.
• Sistem penanganan error tidak terlalu difokuskan tetapi akan dibuat error handling seminimal mungkin.
• Hanya melakukan optimalisasi algoritma pada permainan Rat Race. • Tidak membuat tampilan grafis.
• Menggunakan algoritma Depth First Search. • Menggunakan algoritma Breadth First Search.
• Menggunakan algoritma Bidirectional Search untuk melakukan fungsi backtracking.
Pada Aplikasi Web Peta:
• Menggunakan bahasa pemrograman PHP 5.
• Tool yang digunakan adalah Macromedia Dreamweaver 8. • Menggunakan server Apache versi 2.2.4.
• Menggunakan database MySQL versi 5.0.33.
• Tool yang digunakan untuk mengolah database adalah phpmyadmin 2.9.2. • Browser yang digunakan adalah Internet Explorer 6.0.
• Besarnya peta yang dipakai berukuran 5 x 5 pecahan gambar.
• Peta pada aplikasi ini berupa gambar yang dipotong-potong menjadi beberapa gambar.
• Aplikasi ini dapat mencari rute terpendek berdasarkan banyaknya potongan gambar yang harus dilalui.
• Aplikasi ini dapat mencari rute alternatif tetapi tidak bisa memilih rute mana yang terbaik.
(2)
kiri dan kanan.
• Tikus tidak dapat berjalan secara diagonal.
• Tikus dapat melihat sejauh satu langkah ke arah atas, bawah, kiri dan kanan. • Tikus tidak dapat melihat secara diagonal.
• Tikus tidak memiliki pengetahuan tentang soal.
• Tikus memiliki kemampuan mengingat terbatas pada soal yang sedang dijalankan, jika dijalankan berikutnya ingatan yang dimiliki oleh tikus akan digantikan oleh ingatan yang baru.
• Labirin hanya memiliki satu jalan masuk dan satu jalan keluar.
Sedangkan asumsi dan ketergantungan dari aplikasi Web Peta adalah:
• Algoritma pencarian yang digunakan adalah algoritma yang memiliki performa paling optimal antara algoritma Depth First Search dan Breadth First Search. • Peta diasumsikan sebagai soal dalam aplikasi ini.
• Posisi start tikus diasumsikan posisi awal pada aplikasi ini. • Jalan keluar diasumsikan sebagai tujuan pada aplikasi ini.
• Panjang jalan dalam setiap pecahan gambar peta diasumsikan memiliki besar yang sama.
• Tidak perlu untuk menjalani pecahan gambar satu per satu seperti dalam aplikasi Rat Race, karena jumlah langkah dalam aplikasi ini tidak dihitung, tetapi hanya dibutuhkan rute terpendek.
1.2.6. Penundaan Persyaratan
Komunikasi dengan aplikasi soal pada aplikasi rat race dapat dilakukan jika aplikasi soal telah lengkap dan selesai.
(3)
BAB VI
KESIMPULAN DAN SARAN
Bab ini berisi mengenai kesimpulan yang dapat diambil berdasarkan dari pengujian yang telah dilakukan terhadap aplikasi baik aplikasi Rat Race atau aplikasi Web Peta. Dari kesimpulan yang diambil tersebut itu juga terdapat saran-saran terhadap aplikasi yang ada. Rencana pengimplementasian saran tersebut juga dibahas dalam bab ini. Rencana implementasi bertujuan agar dapat mengetahui bagaimana saran tersebut dapat diterapkan
6.1. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi
Perbaikan yang telah dilakukan pada algoritma Depth First Search dan Breadth First Search menghasilkan output pemakaian memori yang lebih kecil dibandingkan dengan aplikasi sebelumnya. Pada perbaikan algoritma Depth First Search proses pengecekan tujuan menjadi lebih sedikit dibandingkan dengan algoritma sebelumnya. Pada perbaikan algoritma Breadth First Search jumlah langkah yang dibutuhkan untuk menemukan tujuan lebih sedikit dibandingkan dengan algoritma yang sebelumnya. Perbaikan terhadap kedua algoritma tersebut berjalan dengan baik, hasil yang ingin dicapai yaitu perbaikan jumlah langkah pada algoritma Breadth First Search, perbaikan pada saat backtracking pada algoritma Depth First Search, dan juga pemakaian memori yang lebih kecil berhasil dicapai. Tetapi walaupun perbaikan algoritma telah dilakukan, pencarian dengan metoda Depth First Search masih lebih unggul dibandingkan dengan pencarian dengan metoda Breadth First Search. Walaupun jumlah langkah yang ditempuh oleh tikus dengan metoda Breadth First Search untuk mencapai tujuan berkurang sekitar setengah dari pencarian yang lama, tetapi jumlah langkah yang dibutuhkan masih terlalu banyak dibandingkan dengan pencarian dengan algoritma Depth First Search, baik algoritma yang lama atau yang telah diperbaiki.Pada Aplikasi Web Peta, pencarian dengan menggunakan algoritma Depth First Search ternyata bisa diterapkan dan dapat berjalan dengan baik. Aplikasi juga bisa mengenali jalan satu arah ataupun dua arah, tetapi pencarian rute terpendek masih menggunakan asumsi bahwa tiap potongan gambar memiliki panjang yang sama, sebagai contoh: potongan gambar 1-1 memiliki panjang jalan 10m maka potongan gambar yang lain juga memiliki panjang jalan yang sama.
(4)
6.2. Keterkaitan antara Saran dengan Hasil Evaluasi
Pada aplikasi Rat Race, langkah yang diambil oleh tikus dapat dibilang sebagai suatu kebiasaan baik pada algoritma yang lama maupun pada algoritma yang baru. Sebagai contoh, saya bukanlah seorang kidal, maka saya selalu terbiasa menulis dengan tangan kanan saya, saya selalu menulis dengan tangan kanan karena sudah menjadi kebiasaan saya pada akhirnya. Analogi tersebut juga pada aplikasi Rat Race terjadi pada waktu proses mengisi antrian ataupun stack. Tikus memiliki kebiasaan untuk melihat keatas dulu, baru ke bawah, kemudian kiri dan terakhir kanan. Sehingga untuk berjalan pun tikus terbiasa untuk berjalan selalu keatas dulu, baru ke bawah, dan seterusnya. Tikus dapat menemukan jalan keluar lebih baik jika tikus dapat menentukan dia harus ke atas atau kebawah atau kekiri atau mungkin juga ke kanan. Bukan hanya tergantung dari kebiasaan yang dimiliki oleh tikus.
Pada aplikasi Web Peta, panjang jalan tiap-tiap jalan memiliki besarnya masing-masing, jika ternyata panjang jalannya berbeda aplikasi akan menganggapnya memiliki besar yang sama sehingga rute terpendek yang dihasilkan oleh aplikasi belum tentu akurat. Karenanya dibutuhkan satu informasi tambahan yang menandakan berapa panjang jalan dari masing-masing potongan gambar. Hal ini akan dapat memaksimalkan pencarian rute terpendek agar menghasilkan output yang lebih akurat. Selain itu proses pembuatan pecahan gambar pada aplikasi ini cukup sulit. Gambar yang ada harus dipecah-pecah dengan koordinat x dan y, kemudian dibuat pecahan gambar untuk rute jalan. Proses pembuatan gambar pada aplikasi Web Peta dapat dipermudah sehingga tidak menjadi telalu rumit untuk dikembangkan.
6.3. Rencana
Perbaikan/Implementasi terhadap Saran yang
Diberikan
Pada aplikasi Rat Race dibutuhkan informasi tambahan agar tikus dapat menentukan dia akan melangkah ke arah mana terlebih dahulu, misalnya : pada soal terdapat keju, dan tikus memiliki indera pembauan sehingga bisa mendeteksi dimana letak kejunya. Selain itu juga proses random dapat dicoba ketika tikus akan melangkah atau melihat, sehingga tikus tidak selalu melangkah berdasarkan kebiasaan.
Pada aplikasi Web Peta, perlu tambahan satu buah atribut pada tabel map_contents yang isinya merupakan panjang jalan dari masing-masing potongan gambar. Dengan adanya atribut ini proses pencarian rute terpendek dapat berjalan lebih
(5)
akurat. Selain itu untuk mempermudah dalam proses pembuatan gambar peta, mungkin dapat menggunakan bantuan aplikasi lain. Sebagai contoh menggunakan open street map, atau aplikasi untuk web lainnya yang memiliki fungsi yang sama.
(6)
[Dia06] Diablo, Senior. 2006. Beginners Guide to Pathfinding Algoritm. Available from: http://ai-depot.com/Tutorial/PathFinding-Blind.html
[Jes03] Jesse, Michael dan James A.Schardt. 2003. UML 2 For Dummies. Wiley Publishing
[Ken06] Kendall, Graham. 2006. Defining and Implementing Search. Available from: http://www.cs.nott.ac.uk/~gxk/courses/g5aiai/003blindsearches/implement.htm [Lug88] Luger, George F. 1988. Artificial Intelligence Structures and Strategies for
Complex Problem Solving. Pearson Education Limited.
[Mun03] Munir, Rinaldi. 2003. Diktat Kuliah Matematika Diskrit. Departemen Teknik Informatika Institut Teknologi Bandung.
[Rus03] Russell, Stuart J., Peter Norvig. 2003. Artificial Intelligence a Modern Approach. Prentice Hall.
[Wat05] Watson, Mark. 2005. Practical Artificial Intelligence Programming in Java. Available from: http://www.markwatson.com