menyimpan sekumpulan elemen yang tidak akan berubah selama siklus hidup game. Selanjutnya terdapat linked list yang merupakan pengembangan dari static array,
dimana terdapat beberapa kelebihan yang memungkinkan ukuran list untuk bertambah maupun berkurang secara dinamis. Selain itu, terdapat pula tree yang merupakan
struktur data yang terdiri dari sekumpulan node, dimana setiap node menyimpan informasi yang relevan serta memiliki pointer yang menghubungkan node yang satu
dengan node lainnya dalam sebuah tree Sanchez Dalmau, 2004. Running time dari sebuah algoritma atau operasi struktur data secara khusus
bergantung pada sejumlah faktor. Apabila sebuah algoritma diterapkan dalam sebuah game, dapat dipelajari running time-nya dengan mengeksekusi game tersebut dengan
input yang bervariasi dan mencatat lama waktu yang dibutuhkan dalam setiap eksekusi. Pengukuran seperti itu dapat dilakukan secara akurat dengan menggunakan
fungsi perhitungan waktu eksekusi yang telah tersedia dalam sistem pada bahasa pemrograman atau sistem operasi dimana algoritma tersebut ditulis Goodrich
Tamassia, 2015.
2.4. Path Finding
Untuk menyelesaikan suatu masalah ketika tidak terdapat algortima yang jelas untuk melakukan perhitungan terhadap solusi yang valid, maka dapat digunakan metode
path finding. Terdapat dua jenis pendekatan path finding yang saling berhubungan yaitu game tree dan search tree. Kedua jenis pendekatan tersebut bergantung kepada
struktur umum yang disebut state tree, dimana root node merepresentasikan keadaan state awal serta percabangannya merepresentasikan langkah-langkah yang
memungkinkan yang mengubah state sebelumnya menjadi state yang baru Heineman, et al, 2009.
Tree dapat digunakan untuk menjaga hirarki data, serta beberapa jenis tree juga memiliki kemampuan untuk melakukan proses pencarian secara cepat,
menyisipkan data secara cepat, menghapus data secara cepat, dan mengubah ukuran tree secara cepat. Tree juga mampu menyimpan data yang telah terurut secara mudah
Sherrod, 2007.
Universitas Sumatera Utara
2.4.1. Game Tree
Game tree digunakan dalam permaian yang terdiri dari dua orang pemain yang menentukan langkahnya secara bergantian serta berusaha untuk mengalahkan pemain
lainnya. Terdapat banyak kemungkinan state yang dapat terjadi dimana salah satu pemain dapat memenangkan permainan. Selain itu terdapat juga beberapa
kemungkinan state dimana permainan berakhir imbang atau tidak terdapat pemenang. Algoritma path finding akan memaksimalkan peluang seorang pemain untuk
memenangkan permainan atau memaksa permainan untuk berakhir imbang Heineman, et al, 2009.
Turn-based game adalah salah satu jenis game yang dapat direpresentasikan sebagai game tree, khusunya board game. Gambar 2.1 menunjukkan bagian dari game
tree untuk game Tic-Tac-Toe. Setiap node merepresentasikan posisi papan dan setiap cabang merepresentasikan salah satu langkah yang mungkin diambil.
Gambar 2.1. Game tree pada Tic-Tac-Toe Millington Funge, 2009
Setiap pemain melangkah melalui salah satu node dari setiap level pada game tree mulai dari node yang paling atas root. Karena Tic-Tac-Toe termasuk turn-based
game, maka posisi papan hanya akan berubah apabila salah satu pemain melangkah. Jumlah cabang dari setiap papan node sama dengan jumlah langkah yang mungkin
diambil oleh pemain. Dalam game Tic-Tac-Toe, jumlah cabangnya adalah sembilan untuk pemain yang melangkah pada putaran pertama, kemudian delapan untuk pemain
selanjutnya, dan seterusnya. Dalam kebanyakan game lainnya, jumlah cabang dari setiap node dapat mencapai ratusan bahkan ribuan. Hal ini dikarenakan terdapat
Universitas Sumatera Utara
banyak sekali langkah berbeda yang mungkin diambil oleh setiap pemain. Beberapa posisi papan dapat mencapai kondisi dimana tidak terdapat lagi langkah yang
memungkinkan. Kondisi ini disebut terminal position dan menyatakan akhir dari sebuah permainan Millington Funge, 2009.
2.4.2. Search Tree
Search tree digunakan dalam permainan dimana permain tunggal diberikan tugas untuk menyelesaikan permainan, dimulai dari keadaan awal yang diberikan, dengan
serangkaian langkah yang dapat diambil. Dalam kebanyakan kasus, terdapat tepat satu goal state yang hendak dicapai.
Gambar 2.2. Search tree pada permainan Babylon Tower
Contoh game yang dapat direpresentasikan berupa search tree adalah Babylon Tower. Untuk memulai permainan Babylon Tower, salah satu bola harus ditekan
masuk untuk menciptakan sebuah celah. Celah yang terdapat pada Babylon Tower dapat dipindahkan dengan cara menggeser bola-bola pada kolom yang memiliki celah
atau memutar cakram yang memiliki celah.
Universitas Sumatera Utara
Tujuan dari permainan Babylon Tower adalah untuk menentukan langkah dari keadaan awal Babylon Tower yang telah diacak untuk mencapai goal state. Search
tree dari bagian permainan Babylon Tower dapat digambarkan seperti pada gambar 2.2. Dalam search tree, tidak terdapat pemain lawan yang mengambil langkah, tetapi
search tree memiliki kemiripan dengan game tree. Search tree juga memiliki keadaan awal initial state serta serangkaian langkah yang mengubah state selama permainan
berlangsung hingga ditemukan goal state Heineman, et al, 2009.
2.5. Blind Search