• Tidak ada hasil yang ditemukan

CURRICULUM VITAE

TINJAUAN PUSTAKA

Bab ini akan menjelaskan tentang pembahasan teori-teori algoritma A*.

2.1.Video Game

Video game (permainan video) adalah permainan yang menggunakan interaksi dengan antarmuka pengguna melalui gambar yang dihasilkan oleh piranti video. Permainan video umumnya menyediakan sistem penghargaan misalnya skor yang dihitung berdasarkan tingkat keberhasilan yang dicapai dalam menyelesaikan tugas-tugas yang ada di dalam permainan.

Kata "video" pada "permainan video" pada awalnya merujuk pada piranti tampilan raster. Namun dengan semakin dipakainya istilah "video game", kini kata permainan video dapat digunakan untuk menyebut permainan pada piranti tampilan apapun. Sistem elektronik yang digunakan untuk menjalankan permainan video disebut platform, contohnya adalah komputer, permainan konsol dan smartphone. (Apperley, 2006)

2.2.Desain Analisis Algoritma

Desain Analisis Algoritma merupakan suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah (Levitin, 2011). Untuk menganalisis sebuah algoritma, kita harus mengidentifikasi sumber primer sehingga analisis rinci dapat difokuskan dengan benar. Sebuah analisis lengkap dari waktu berjalan dari algoritma melibatkan langkah- langkah berikut:

1. Melaksanakan algoritma sepenuhnya.

2. Tentukan waktu yang dibutuhkan untuk setiap operasi dasar. Mengidentifikasi jumlah yang tidak diketahui yang dapat digunakan untuk menggambarkan frekuensi pelaksanaan operasi dasar.

3. Mengembangkan model yang realistis untuk input ke program.

5. Hitung total waktu berjalan dengan mengalikan waktu dengan frekuensi untuk setiap operasi, kemudian menambahkan semua produk.

Langkah pertama dalam analisis ini adalah untuk hati-hati menerapkan algoritma pada komputer tertentu. Sebuah implementasi tertentu tidak hanya menyediakan objek konkret untuk belajar, tetapi juga dapat memberikan data empiris yang berguna untuk membantu dalam atau untuk memeriksa analisis.

Langkah berikutnya adalah untuk memperkirakan waktu yang dibutuhkan oleh masing-masing instruksi komponen program. Pendekatan lain adalah dengan hanya menjalankan program untuk input kecil ukuran untuk "estimasi" nilai-nilai konstanta, atau untuk melakukannya secara tidak langsung dalam agregat.

Langkah berikutnya adalah untuk model input ke program, untuk membentuk dasar untuk analisis matematis dari frekuensi instruksi. Nilai dari frekuensi diketahui tergantung pada masukan untuk algoritma: masalah ukuran parameter utama yang digunakan untuk mengungkapkan hasil (Sedgewick, 2013).

2.3.Teori Graf

terhubung oleh sisi (edge) atau busur (arc). Biasanya graf digambarkan sebagai kumpulan titik-titik (melambangkan "simpul") yang dihubungkan oleh garis-garis (melambangkan "sisi") atau garis berpanah (melambangkan "busur"). Suatu sisi dapat menghubungkan suatu simpul dengan simpul yang sama. Sisi yang demikian

dinamakan 2.4. Jenis-Jenis Graf

Jenis graf dibedakan atas 3 karakteristik yaitu, berdasarkan sisi ganda (berdasarkan ada tidaknya suatu gelang), arah (berdasarkan arah dari sisi) , dan berdasarkan pada bobot sisinya (Bondy, 2008).

8

2.4.1.Berdasarkan sisi ganda

Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:

1. Graf sederhana, graf yang tidak mengandung gelang maupun sisi ganda dinamakan graf sederhana.

2. Graf tak-sederhana, graf yang mengandung sisi ganda dinamakan graf tak- sederhana. Ada dua macam graf tak sederhana, yaitu graf ganda dan graf semu. Graf ganda adalah graf yang mengandung sisi ganda. Sebuah graf memiliki sisi ganda jika ada 2 buah simpulyang dihubungkan lebih dari satu sisi. Graf semu adalah graf yang memiliki sisi gelang (loop). Sisi gelang adalah sisi yang menghubungkan sebuah simpul dengan simpul itu sendiri.

Gambar 2.1 Graf sederhana(G1), Graf Ganda (G2), Graf Semu(G3) (Munir, 2009)

2.4.2.Berdasarkan arah

Berdasarkan arah dari sisi, graf dibedakan menjadi 2 jenis : 1. Graf tak-berarah

Graf yang sisinya tidak memiliki orientasi arah disebut graf tak-berarah. Pada graf tak-berarah, urutan pasangan simpul pada sisi tidak diperhatikan. Sebuah sisi e = (u, v) sama dengan e = (v, u).

2. Graf Berarah

Graf yang setiap sisinya memiliki orientasi arah disebuh graf berarah. Pada graf berarah, sebuah sisi dikenal juga sebagai busur (arc). Pada graf berarah, (u, v) dan (v, u) menyatakan dua buah sisi yang berbeda. Pada sebuah sisi (u, v), simpul u menyatakan simpul asal (initial vertex) dan simpul v menyatakan simpul terminal (terminal vertex).

Gambar 2.3 Graf berarah (Munir, 2009)

2.4.3.Berdasarkan bobot

1. Graf berbobot (weighted graph)

Graf berbobot adalah graf yang setiap sisinya memiliki bobot. Bobot pada sisi graf dapat merepresentasikan kapasitas, biaya, atau keuntungan.

Gambar 2.4. Graf berbobot (Munir, 2009)

2. Graf tak-berbobot (unweighted graph)

10

2.5.Pathfinding

Pathfinding adalah suatu metode yang digunakan untuk pencarian jalur yang bertujuan untuk mencapai suatu tempat tujuan dari tempat awal. Cara kerja metode pathfinding adalah dengan mencari sebuah grafik dengan memulai pada satu titik dan menjelajahi node yang berdekatan sampai node tujuan tercapai, umumnya dengan maksud untuk menemukan rute terpendek. Namun, tidak perlu untuk memeriksa semua jalur yang mungkin untuk menemukan satu yang optimal. Dalam sistem-perjalanan routing yang praktis, kompleksitas waktu yang lebih baik dapat dicapai dengan algoritma yang dapat pra-proses grafik untuk mencapai kinerja yang lebih baik. (Deiling, 2009).

2.6.Algoritma A*

Algoritma A* adalah pengembangan dari algoritma Djikstra yaitu suatu algoritma yang bertujuan untuk memproses perencanaan jalur yang efisien di antara beberapa titik (node) dengan menggunakan heuristik. Peter Hart, Nils Nilsson dan Bertram Raphael dari Stanford Research Institute memperkenalkan algoritma ini pada tahun 1968 (Deiling, 2009).

A* menggunakan pencarian terbaik pertama dan menemukan jalan dengan biaya terendah dari node awal yang diberikan ke satu node tujuan. A* melintasi grafik untuk membangun sebuah pohon jalur parsial. Daun pohon ini (disebut set atau pinggiran terbuka) disimpan dalam antrian prioritas yang memerintahkan node daun dengan fungsi biaya, yang menggabungkan perkiraan heuristik dari biaya untuk mencapai tujuan dan jarak yang ditempuh dari node awal. Secara khusus, fungsi biaya:

f (n) = g (n) + h (n).

Di sini, g (n) adalah biaya diketahui mendapatkan dari node awal untuk nilai ini dilacak oleh algoritma. h (n) adalah perkiraan heuristik dari biaya untuk mendapatkan dari n ke setiap node tujuan. Untuk algoritma untuk menemukan jalur terpendek yang sebenarnya, fungsi heuristik harus diterima, artinya tidak pernah overestimates biaya yang sebenarnya untuk sampai ke node tujuan terdekat. Fungsi heuristik adalah spesifik masalah dan harus disediakan oleh pengguna dari algoritma.

Beberapa terminologi dasar yang terdapat pada algoritma A* adalah starting point, simpul (nodes), open list, closed list, harga (cost), halangan (unwalkable).

Starting point adalah sebuah terminologi untuk posisi awal sebuah benda. Simpul adalah petak-petak kecil sebagai representasi dari area pathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga. Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan. Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan. Simpul tujuan yaitu simpul yang dituju. Halangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A. Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah starting point menuju simpul tujuan dengan memperhatikan harga (F) terkecil (Munir, 1998).

2.6.1 Cara Kerja

Dimulai dengan node awal, ia mempertahankan antrian prioritas node yang akan dilalui, dikenal sebagai set atau pinggiran terbuka. Semakin rendah f (x) untuk diberikan simpul x, semakin tinggi prioritas. Pada setiap langkah algoritma, node dengan f (x) nilai terendah akan dihapus dari antrian, f dan g nilai tetangganya diperbarui sesuai, dan tetangga ini ditambahkan ke antrian. Algoritma terus sampai node tujuan memiliki nilai f rendah dari setiap node dalam antrian (atau sampai antrian kosong). (Node Goal dapat melewati beberapa kali jika masih ada node lain dengan nilai f yang lebih rendah, karena dapat menyebabkan jalan yang lebih pendek untuk tujuan.) Nilai f dari tujuannya adalah maka panjang jalur terpendek, karena jam pada tujuannya adalah nol dalam heuristik diterima.

Algoritma yang dijelaskan sejauh memberi kita hanya panjang jalur terpendek. Untuk menemukan urutan yang sebenarnya dari langkah-langkah, algoritma dapat dengan mudah direvisi sehingga setiap node di jalan melacak pendahulunya. Setelah algoritma ini dijalankan, node berakhir akan mengarah ke pendahulunya, dan seterusnya, sampai pendahulunya beberapa node adalah node awal.Selain itu, jika heuristik yang monoton (atau konsisten, lihat di bawah), satu set tertutup node sudah dilalui dapat digunakan untuk membuat pencarian lebih efisien. (Deiling, 2009).

12

2.6.2. Sifat Algoritma A*

A* selesai dan akan selalu mencari solusi jika ada. Jika heuristik fungsi h adalah diterima, artinya tidak pernah overestimates biaya minimal sebenarnya mencapai tujuan, maka A* itu sendiri diterima (atau optimal) jika kita tidak menggunakan satu set tertutup. Jika satu set tertutup digunakan, maka h juga harus monoton (atau konsisten) untuk A* menjadi optimal. Ini berarti bahwa untuk setiap pasangan node yang berdekatan x dan y, di mana d (x, y) menunjukkan panjang dari tepi antara mereka, kita harus memiliki:

Hal ini memastikan bahwa untuk setiap jalur X dari node awal untuk x:

dimana L adalah fungsi yang menunjukkan panjang jalan, dan Y adalah jalan X diperluas untuk mencakup y. Dengan kata lain, tidak mungkin untuk menurunkan (total jarak sejauh + diperkirakan jarak yang tersisa) dengan memperluas jalan untuk memasukkan node tetangga. (Ini analog dengan pembatasan untuk nonnegatif tepi bobot dalam algoritma Dijkstra.) Monotonisitas berarti diterimanya ketika estimasi heuristik setiap node tujuan itu sendiri adalah nol, karena (membiarkan P = (f, v1, v2, ..., vn, g ) menjadi jalur terpendek dari setiap node f ke terdekat g tujuan):

A* juga optimal efisien untuk setiap heuristik h, yang berarti bahwa tidak ada algoritma optimal mempekerjakan heuristik yang sama akan memperluas node kurang dari A*, kecuali jika ada solusi parsial beberapa di mana h persis memprediksi biaya jalur yang optimal. Bahkan dalam kasus ini, untuk setiap grafik terdapat beberapa urutan hubungan melanggar dalam antrian prioritas sehingga A* memeriksa node paling sedikit mungkin (Deiling, 2009).

2.7.Heuristik

Heuristik adalah fungsi optimasi pada algoritma A* dengan cara memberi nilai pada tiap simpul yang memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik, maka A* pasti akan mendapatkan solusi (jika memang ada solusinya). Heuristik

inilah yang membedakan algoritma A* dengan algoritma pathfinding lainnya. Heuristik dapat digunakan untuk mengontrol perilaku A*.

 Pada satu ekstrim, jika h (n) adalah 0, maka hanya g (n) memainkan peran, dan A* berubah menjadi Algoritma Dijkstra, yang dijamin untuk menemukan jalan terpendek.

 Jika h (n) selalu lebih rendah dari (atau sama dengan) biaya pindah dari n ke tujuan, maka A* dijamin untuk menemukan jalan terpendek. Lebih rendah h (n), semakin simpul A* mengembang, membuatnya lebih lambat.

Jika h (n) adalah persis sama dengan biaya pindah dari n ke tujuan, maka A* hanya akan mengikuti jalan terbaik dan tidak pernah memperluas apa pun, sehingga sangat cepat.

 Jika h (n) kadang-kadang lebih besar dari biaya bergerak dari n ke tujuan, maka A* tidak dijamin untuk menemukan jalur terpendek, tetapi dapat berjalan lebih cepat.

 Pada ekstrem yang lain, jika h (n) relatif sangat tinggi untuk g (n), maka hanya h (n) memainkan peran, dan A* berubah menjadi Greedy Best-First-Search.

Heuristik pada Algoritma A* memilki beberapa jenis dibedakan berdasarkan berapa arah yang digunakan, yaitu heuristik Manhattan Distance, Diagona l Distance, dan Euclidian Distance (Peters, 2009)

2.7.1 Manhattan Distance

Manhattan Distance adalah Heuristik standar pada peta grid yang memperkenankan 4 arah gerakan. Fungsi biaya dan menemukan minimum biaya D untuk bergerak dari satu ruang ke ruang yang berdekatan. Dalam kasus sederhana, Anda dapat mengatur D menjadi 1. Heuristik pada grid persegi D kali jarak Manhattan, yaitu :

function heuristik(node) {

dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * (dx + dy) }

14

Cara memilih nilai D adalah gunakan skala yang cocok dengan bobot fungsi. Untuk jalur terbaik, ubah nilai D menjadi bobot terendah diantara petak yang berdekatan (Patel, 2010).

Gambar 2.6. Ilustrasi Manhattan Distance (Patel, 2010).

2.7.2. Diagonal Distance

Diagonal Distance adalah Heuristik pada peta grid yang memungkinkan gerakan diagonal. Jika Manhatan Distance membutuhkan gerakan 4 timur dan 4 utara (8 gerakan) untuk mencapai target, menjadi 8*D.

Namun, pada diagonal distance hanya membutuhkan 4 gerakan (4 timur laut) untuk mencapai target, sehingga heuristik menjadi 4 * D2, di mana D2 adalah biaya bergerak diagonal.

Gambar 2.7. Ilustrasi Heuristik Diagonal Distance (Patel, 2010).

function heuristik(node) { dx = abs(node.x - goal.x) dy = abs(node.y - goal.y)

return D * (dx + dy) + (D2 - 2 * D) * min(dx, dy) }

Di sini menghitung jumlah langkah yang diambil tidak dapat mengambil diagonal, kemudian kurangi langkah-langkah yang disimpan dengan menggunakan diagonal. Ada min (dx, dy) langkah diagonal, dan masing-masing biaya D2 tapi menghemat 2*D langkah non-diagonal. Ketika D = 1 dan D2 = 1, ini disebut jarak Chebyshev. Ketika D = 1 dan D2 = sqrt (2), ini disebut jarak octile (Patel, 2010).

2.7.3 Euclidian Distance

Jika unit dapat bergerak di setiap sudut (bukan arah grid), maka harus menggunakan jarak garis lurus:

Namun, jika hal ini terjadi, maka memiliki masalah dengan menggunakan A* langsung karena fungsi biaya g tidak akan cocok dengan heuristik fungsi h. Karena jarak Euclidean lebih pendek dari Manhattan atau jarak diagona masih akan mendapatkan jalur terpendek, tetapi A* akan memakan waktu lebih lama untuk menjalankan (Patel, 2010).

Gambar 2.8 Ilustrasi Heuristik Euclidian (Patel, 2010).

2.8.Android

Android merupakan sistem operasi mobile berbasis kernel linux yang dikembangkan oleh Android Inc dan kemudian diakusisi oleh Google. Sistem operasi ini bersifat open source sehingga para programmer dapat membuat aplikasi secara mudah. Salah satu keunggulan Android terletak pada bervariasinya merek ponsel yang mengadopsi sistem operasi ini. Oleh karena itu, tidak heran jika kita melihat beragam merek ponsel

function heuristik (node) { dx = abs (node.x - goal.x) dy = abs (node.y - goal.y)

return D * sqrt (dx * dx + dy * dy) }

16

mengakibatkan kita sebagai konsumen memliki banyak pilihan dalam menggunakan ponsel bersistem operasi Android. Tidak sama dengan iPhone yang bentuk persis untuk setiap seri atau Blacberry yang jumlahnya terbatas, ponsel berbasis Android memilik banyak bentuk dan merek (Jubille, 2010).

2.9.Actionscript 3.0

ActionScript adalah bahasa pemrograman berorientasi objek awalnya dikembangkan oleh Macromedia Inc (sekarang diakusisi oleh Adobe Systems). Ini adalah derivasi dari HyperTalk, bahasa scripting untuk HyperCard. Sekarang dialek dari ECMAScript (artinya itu adalah superset dari sintaks dan semantik dari bahasa lebih banyak dikenal sebagai JavaScript), meskipun awalnya muncul sebagai saudara, baik yang dipengaruhi oleh HyperTalk.

ActionScript 3 juga digunakan dengan sistem Adobe AIR untuk pengembangan desktop dan aplikasi mobile. Bahasa itu sendiri adalah open source dalam spesifikasi yang ditawarkan gratis dan kedua kompiler open source (sebagai bagian dari Adobe Flex) dan mesin virtual open source (Mozilla Tamarin) yang tersedia (Spuy, 2010).

2.10. Framework Starling

Starling adalah Framework Actionscript 3 dikembangkan di atas Stage3D API (Application Programming Interface). Starling dirancang untuk pengembangan game, tapi bisa digunakan untuk banyak kasus penggunaan lainnya. Starling memungkinkan untuk menulis aplikasi GPU(Graphic Processing Unit)-accelerated tanpa harus menyentuh level rendah Stage3D API. Kebanyakan pengembang Adobe AIR ingin dapat memanfaatkan akselerasi GPU tanpa perlu menulis framework yang lebih tinggi. (Imbert, 2012).

Starling dikembangkan untuk pengembang ActionScript 3, terutama mereka yang terlibat dalam pengembangan game 2D, sehingga perlu memiliki pemahaman dasar tentang ActionScript 3. Dengan desain ringan, fleksibel, dan sederhana. Starling juga digunakan untuk kasus penggunaan lain seperti pemrograman UI(User Interface). (Bose, 2013).

3. Penelitian yang Relevan

Berikut ini beberapa penelitian tentang desain analisis dan algoritma yang berkaitan dengan Algoritma A*.

No Nama/Tahun Judul Hasil Penelitian

1. Witanti, Wina, (2013) Analisis pengaruh penggunaan nilai Heuristik Terhadap Performansi Algortima A*

Nilai heuristik berpengaruh terhadap performa algoritma A* dalam mencari rute terdekat [15].

2. Cui, Xiao & Shi, H

(2011)

A*based Pathfinding in Modern Computer Games

Cara untuk mengoptimalkan performa pencarian A* adalah dengan meningkatkan fungsi heuristik [4].

3. Rahayu, D. N (2011) Optimasi Rute Perjalanan Ambulance Menggunakan Algoritma A-Star

Lamanya proses pencarian dan banyaknya simpul yang diperiksa untuk pencarian jalan tergantung pada jarak antara titik awal dan titik tujuan [12].

A-1

BAB I PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penelitian judul skripsi “Implementasi algoritma A* berbasis pathfinding dalam pengembangan game menanam pohon”.

1.1. Latar Belakang

Perkembangan ilmu pengetahuan dapat dirasakan dalam berbagai bidang di kehidupan manusia. Perkembangan ilmu pengetahuan juga memicu tumbuhnya teknologi. Perkembangan teknologi ini juga mempengaruhi industri hiburan khususnya dibidang permainan. Dari pesatnya berkembangan pengetahuan dan teknologi, kini permainan dapat dikembangkan ke dalam bentuk digital (video game) yang dapat dimainkan dimana saja.

Pathfinding (Pencarian jalan terdekat) telah dipakai di berbagai bidang ilmu komputer, salah satunya pada bidang game development (pengembangan video game) untuk membuat pergerakan objek dari tempat awal ke tempat tujuan. Seiring perkembangan video game, semakin populer juga pathfinding digunakan di berbagai jenis game, seperti tile based video game. Pathfinding adalah bagaimana mencari rute terpendek diantara dua titik. Salah satu algoritma pathfinding yang paling populer adalah Algoritma A* (A Star).

Konsep dasar A* yaitu berulang kali memeriksa lokasi paling sesuai yang belum dijelajahi. Algoritma ini selesai jika lokasi tersebut adalah tujuan, jika tidak, maka algortima a* akan mencatat tetangga lokasi tersebut bahwa lokasi lainnya akan dijelajahi. Beberapa terminologi dasar yang terdapat pada algoritma A* adalah starting point, simpul (nodes), open list, closed list, harga (cost), halangan (unwalkable) (Munir, 1998).

Kelebihan A* adalah menggunakan heuristik yang berfungsi sebagai optimasi dengan cara memberi nilai pada tiap simpul yang memandu A* untuk mendapatkan solusi yang diinginkan (Munir, 1998).

Berdasarkan penjelasan di atas, penulis akan mengembangkan suatu aplikasi game 2D dengan konsep tile based menggunakan peta grid pada platform Android.

Game yang akan dikembangkan ini memiliki beberapa objek seperti musuh, pelindung, penghalang, pohon, dan tanah. Algoritma A* digunakan untuk menentukan jalan terdekat musuh agar dapat pergi menuju pohon. Selanjutnya pemain (player) harus berusaha melindungi pohon tersebut dari musuh dengan menyentuh musuh atau menggunakan pelindung agar pohon tetap hidup. Game akan berakhir bila musuh berhasil menebang pohon. Dengan adanya penelitiaan ini penulis dapat mengetahui jalan yang akan dilalui musuh untuk menuju pohon serta waktu yang dibutuhkan untuk menempuh jalan tersebut.

1.2. Rumusan Masalah

Bagaimana cara mencari jalan terpendek dalam game menanam pohon dengan menggunakan algoritma A*

1.3 Batasan Masalah

1. Menggunakan Algoritma A*

2. Game Menggunakan grafik 2 dimensi.

3. Game Menggunakan Konsep Tile Based dengan ukuran grid maksimal 16x9 (panjang x lebar).

4. Menggunakan heuristik Manhattan Distance.

5. Player dari game adalah pemain langsung, tanpa menggunakan objek tambahan. Player menggunakan jari untuk memberikan aksi terhadap semua objek pada game.

6. Game terdiri 5 jenis objek, yaitu tanah, penghalang, pohon, musuh, dan pelindung. Tanah adalah jalan kosong. Penghalang adalah objek berupa batu untuk menandakan tanah tidak dapat dilalui. Pohon adalah objek yang harus dilindungi pemain. Musuh adalah objek yang akan menebang pohon. Pelindung adalah objek berupa hewan yang digunakan player untuk melindungi pohon

7. Pohon dan pelindung diletakkan posisinya oleh player. 8. Musuh bisa dikalahkan oleh pemain atau pelindung. 9. Game berakhir ketika musuh berhasil menebang pohon.

3

Framework Starling

11. Game diuji pada perangkat smartphone Android dengan spesifikasi hardware smartphone Android CPU Octa-core 2.0 GHz Cortex-A53 - Redmi Note 2, GPU PowerVR G6200, RAM 2 GB.

1.4 TujuanPenelitian

1. Mengimplementasikan algoritma A* untuk mencari jalan terpendek pada game menanam pohon

2. Mengetahui waktu yang dibutuhkan untuk mencari jalan terpendek dengan menggunakan algoritma A*.

1.5 Manfaat Penelitian

1. Penelitian diharapkan dapat menambah pengetahuan penulis dalam melakukan proses pencarian rute terdekat dengan menggunakan algoritma A*.

2. Penelitian diharapkan dapat membangun dan merancang aplikasi game dengan menggunakan algoritma A*.

3. Penelitian diharapkan dapat bermanfaat untuk proses pengembangan game (Game Development).

4. Penelitian diharapkan sebagai refrensi bagi peneliti lain yang ingin membahas topik yang terkait dengan penelitian ini

1.6 Metodologi Penelitian

Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur

Pada tahap ini dilakukan peninjauan terhadap buku, artikel, jurnal, maupun hasil penelitian terdahulu sebagai referensi yang diperlukan dalam melakukan penelitian. Ini dilakukan untuk memperoleh informasi yang terkait dengan Algoritma A*, pengembangan game, pemrograman Actionsctript 3 untuk pemrograman di android dan Framework Starling

2. Analisis dan Perancangan

Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan analisis dan perancangan menggunakan algoritma A* sehingga menjadi suatu aplikasi yang tersetruktur dan jelas. Proses ini meliputi

pembuatan algoritma program, Use Case Scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan User Interface aplikasi.

3. Implementasi

Algoritma A* berbasis pathfinding diimplementasi dalam pembuatan suatu aplikasi game android dengan menggunakan bahasa pemrograman Actionscipt 3 dan framework Starling.

4. Pengujian

Menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih tedapat error pada aplikasi.

5. Dokumentasi

Pada tahap ini berisi laporan dan kesimpulan akhir dari hasil akhir analisa dan pengujian dalam bentuk skripsi.

1.7 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :

BAB 1 PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penelitian judul skripsi “Implementasi algoritma A* berbasis pathfinding dalam pengembangan game menanam pohon”. Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka,dan sistematika penulisan skripsi.

Dokumen terkait