BAB II 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.
4. Menganalisis jumlah yang tidak diketahui, dengan asumsi input yang dimodelkan.
Universitas Sumatera Utara
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
Graf adalah himpunan benda-benda yang disebut simpul vertex atau node yang 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 gelang loop. Graf G didefinisikan sebagai pasangan himpuna V,E.
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.
Universitas Sumatera Utara
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 sederhanaG
1,
Graf Ganda G
2
, Graf SemuG
3
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.
Gambar 2.2 Graf tidak berarah Munir, 2009
Universitas Sumatera Utara
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 Graf tak-berbobot adalah graf yang setiap sisinya tidak memiliki bobot.
Graph 2.5 Graf tak berbobot Munir, 2009.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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 heuristiknode { dx = absnode.x - goal.x
dy = absnode.y - goal.y return D dx + dy
}
Universitas Sumatera Utara
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 8D.
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 heuristiknode { dx = absnode.x - goal.x
dy = absnode.y - goal.y return D dx + dy + D2 - 2 D mindx, dy
}
Universitas Sumatera Utara
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 2D 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 menggunakan sistem operasi ini, seperti HTC, Samsung, dan lain sebagainya. Google
pun juga merilis ponsel dengan nama Google Nexus One. Fenomena ini tentu function heuristik node {
dx = abs node.x - goal.x dy = abs node.y - goal.y
return D sqrt dx dx + dy dy }
Universitas Sumatera Utara
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 GPUGraphic 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 UIUser Interface. Bose, 2013.
Universitas Sumatera Utara
3. Penelitian yang Relevan
Berikut ini beberapa penelitian tentang desain analisis dan algoritma yang berkaitan dengan Algoritma A.
No NamaTahun
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
Abased 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].
Universitas Sumatera Utara
BAB I PENDAHULUAN