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