Path Finding Penerapan Algoritma Column by Column dan Depth-First Search dalam Permainan Babylon Tower

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