• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

Bab ini membahas tentang teori penunjang serta penelitian sebelumnya yang berhubungan dengan permainan Babylon Tower serta algoritma-algoritma yang dapat diterapkan untuk mengatasi permasalahan dalam permainan puzzle.

2.1. Babylon Tower

Babylon Tower merupakan sliding piece puzzle yang terdiri dari enam buah cakram yang disusun menumpuk ke atas menyerupai menara, dimana setiap cakramnya dapat diputar terhadap poros tengahnya. Di sepanjang sisi setiap cakram terdapat enam kolom bola kecil dengan enam jenis warna yang berbeda. Tingkat kecerahan warna bola pada setiap kolom semakin berkurang dari bawah ke atas, dimana bola-bola yang paling cerah terletak pada cakram terbawah dan bola-bola yang paling pucat terletak pada cakram teratas. Pada cakram terbawah terdapat sebuah pegas yang memungkinkan salah satu dari dua bola yang terletak saling berseberangan untuk ditekan masuk ke dalam cakram menghasilkan sebuah celah yang dapat ditempati oleh sebuah bola yang lain. Celah yang terdapat pada suatu kolom memungkinkan bola-bola yang terdapat pada kolom tersebut dapat digeser naik atau turun ke cakram yang lain, sehingga celah tersebut juga berpindah ke cakram yang lain. Dengan memutar cakram, bola-bola serta celah yang terdapat pada cakram tersebut berpindah ke kolom yang lain. Salah satu metode yang dapat digunakan untuk menyelesaikan Babylon Tower adalah column by column (Scherpuis, 2015).

Berikut ini adalah langkah-langkah untuk menyelesaikan Babylon Tower menggunakan algoritma column by column:

a. Posisikan setiap bola sehingga pada setiap kolom hanya terdapat bola-bola dengan warna yang sejenis.

i. Tentukan warna bola untuk setiap kolom.

(2)

iii. Cari sebuah bola dari kolom lain yang memiliki warna yang dibutuhkan oleh kolom yang memuat celah.

iv. Geser bola-bola pada kolom yang memuat celah hingga posisi cakram yang memuat celah tepat berada di atas atau di bawah cakram yang memuat bola yang dibutuhkan.

v. Putar cakram yang memuat celah hingga celah tersebut tepat berada di atas atau di bawah posisi bola yang dibutuhkan.

vi. Geser bola yang dibutuhkan ke atas atau ke bawah menutupi celah tersebut. vii. Putar cakram yang memuat bola yang dibutuhkan kembali ke posisi semula,

sehingga bola yang dibutuhkan berada pada kolom sesuai dengan warna yang ditentukan.

viii. Ulangi langkah (ii) sampai (vii) hingga setiap kolom hanya memiliki bola-bola dengan warna yang sejenis.

b. Urutkan posisi bola dari bawah ke atas sesuai dengan tingkat kecerahan warna bola pada setiap kolom, kecuali untuk dua cakram teratas.

i. Tentukan salah satu kolom yang akan diurutkan terlebih dahulu.

ii. Tekan salah satu bola ke dalam cakram untuk membuat sebuah celah pada kolom yang tidak sedang diurutkan.

iii. Tentukan salah satu bola yang belum terurut dan hendak diurutkan.

iv. Geser bola-bola pada kolom yang memuat celah hingga posisi cakram yang memuat celah tepat berada di atas atau di bawah cakram yang memuat bola yang ingin diurutkan.

v. Putar cakram yang memuat celah hingga celah tersebut tepat berada di atas atau di bawah posisi bola yang ingin diurutkan.

vi. Geser bola yang ingin diurutkan ke atas atau ke bawah menutupi celah tersebut.

vii. Putar cakram yang memuat bola yang ingin diurutkan kembali ke posisi semula, sehingga bola tersebut berada dalam urutan yang sesuai.

viii. Ulangi langkah (iii) sampai (vii) untuk mengurutkan empat bola pada empat cakram terbawah. Sedangkan dua bola pada dua cakram teratas boleh dalam keadaan teurut atau tidak.

(3)

c. Tukar posisi dua bola yang belum terurut pada dua cakram teratas. i. Hitung jumlah kolom yang belum terurut pada dua bola teratasnya.

ii. Apabila jumlahnya ganjil, putar cakram yang paling atas sejauh 60 derajat. Kemudian ulangi langkah-langkah pada tahap (a) untuk mengembalikan posisi bola pada kolom yang benar.

iii. Apabila jumlahnya sudah genap, tentukan dua kolom yang posisi bolanya ingin ditukar, dan buat sebuah celah pada kolom yang lain.

iv. Lakukan langkah-langkah sesuai dengan diagram berikut untuk menukar posisi dua bola yang belum terurut pada dua cakram teratas.

Diagram tersebut menggambarkan posisi bola pada dua cakram teratas dari tiga kolom yang terlibat, yaitu dua kolom yang posisi bolanya ingin ditukar serta satu kolom lain yang memuat celah. A, a dan B, b masing-masing menyatakan warna bola dimana huruf yang sama menyatakan jenis warna yang sama dengan tingkat kecerahan yang berbeda. Huruf kapital menyatakan warna yang paling pucat. Sedangkan huruf Z menyatakan warna bola dari kolom lain yang memuat celah dan spasi menyatakan sebuah celah. Perlu diperhatikan pula bahwa ketiga kolom tersebut tidak harus terletak berdampingan. Langkah tersebut tetap dapat dilakukan apabila terdapat kolom lain di antara kolom-kolom yang terlibat.

v. Ulangi langkah (iii) sampai (iv) hingga semua posisi bola terurut.

2.2. Game Architecture

Game merupakan simulasi komputer yang bersifat real-time, dinamis dan interaktif, sehingga waktu memainkan peranan yang sangat penting dalam sebuah game (Gregory, 2009). Secara spesifik, game berada dalam kategori yang disebut real-time software application. Real-time software maksudnya adalah aplikasi komputer dimana proses-proses yang terjadi di dalamnya sangat bergantung terhadap waktu. Setiap data yang diproses dalam real-time software akan memiliki kendala terhadap perubahan

(4)

waktu dalam game. Sebagai kesimpulan, game merupakan aplikasi interaktif yang bergantung terhadap waktu, terdiri dari simulator dunia virtual yang mengolah data real-time, menampilkan hasilnya secara visual, serta mengontrol mekanisme sehingga pemain dapat berinteraksi dengan dunia game (Sanchez & Dalmau, 2004).

Setiap real-time software terdiri dari tiga jenis proses yang berjalan dalam waktu yang bersamaan. Yang pertama adalah keadaan (state) dari dunia game yang harus dikomputasi secara konstan. Yang kedua adalah interaksi yang dilakukan oleh pemain terhadap dunia game. Yang ketiga adalah state yang dihasilkan harus dapat disampaikan sebagai output kepada pemain, output dapat berupa tampilan, audio, maupun bentuk output lainnya yang memungkinkan (Sanchez & Dalmau, 2004).

Dalam graphical user interface (GUI) yang sering ditemukan pada sistem operasi Windows atau Macintosh, sebagian besar isi tampilannya bersifat statis. Hanya bagian kecil dari window yang tampilannya secara aktif berubah-ubah pada waktu tertentu. Karena hal tersebut, GUI ditampilkan pada layar dengan teknik yang disebut rectangle invalidation, dimana hanya sebagian kecil dari layar yang isinya berubah yang perlu diubah tampilannya. Game 2D pada awalnya menggunakan teknik yang serupa untuk meminimalisir jumlah pixel yang perlu ditampilkan.

Namun, tampilan grafis pada game 3D real-time diimplementasi dengan cara yang sama sekali berbeda. Seluruh isi yang ditampilkan pada layar akan berubah secara terus menerus ketika pemain bergerak dalam lingkungan 3D, sehingga konsep rectangle invalidation tidak dapat lagi diterapkan. Sebagai gantinya, sebuah ilusi dari gerakan dapat dihasilkan dengan cara yang hampir sama dengan cara menghasilkan ilusi gerakan pada sebuah film, yaitu dengan menampilkan kepada penonton rangkaian gambar diam yang bergantian secara cepat dan berurutan. Untuk menghasilkan tampilan gambar diam yang bergantian secara cepat, dibutuhkan sebuah loop. Dalam real-time software, hal tersebut disebut juga sebagai render loop (Gregory, 2009).

2.3. Struktur Data dan Algoritma dalam Game

Struktur data merupakan unsur penyusun dalam rekayasa perangkat lunak. Setiap aplikasi harus mengatur dan memanipulasi data dengan cara yang benar untuk

(5)

melaksanakan tugasnya. Dalam video game modern, data tersebut digunakan untuk menciptakan pengalaman interaktif yang kompleks dimana pemain dapat mengalami berbagai jenis pengalaman yang berbeda (Sherrod, 2007).

2.3.1. Struktur Data dan Algoritma

Sebuah struktur data menyatakan bagaimana data disusun dalam memori dan dapat dioperasikan menggunakan berbagai jenis algoritma. Salah satu struktur data paling dasar yang digunakan secara umum dalam pemrograman adalah array. Sebuah array termasuk struktur data karena menyatakan bagaimana data disusun dalam memori dan dapat dioperasikan dengan berbagai jenis algoritma, seperti insertion, deletion, searching, sorting terhadap array.

Struktur data juga dapat dipandang sebagai sebuah struktur yang merepresentasikan berbagai jenis objek nyata. Struktur data juga dapat berupa sekumpulan objek yang berisi objek-objek lainnya. Sedangkan algoritma merupakan barisan kode program yang memanipulasi data dalam struktur data (Sherrod, 2007).

2.3.2. Struktur Data dalam Game

Struktur data membentuk fondasi dari berbagai jenis teknik yang diterapkan dalam video game modern dan merupakan elemen penting untuk menciptakan berbagai jenis pengalaman bermain yang diharapkan oleh pemain. Struktur data sendiri merupakan susunan dari data di dalam memori, tetapi ketika dikombinasikan dengan algortima-algoritma tertentu, data tersebut dapat diproses serta digunakan secara efisien dan efektif. Struktur data dan algoritma dalam pengembangan game sering digunakan untuk mempercepat proses yang terjadi terhadap data yang dibutuhkan dalam game (Sherrod, 2007).

Sangat jarang sebuah game hanya membutuhkan variabel tunggal untuk menyimpan suatu data. Dalam game, selalu dibutuhkan struktur data untuk menyimpan sekumpulan elemen yang sifatnya mirip. Terdapat berbagai jenis struktur data yang berbeda yang dapat digunakan untuk mencapai hal tersebut. Struktur data yang paling sederhana adalah static array yang memungkinkan developer untuk

(6)

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).

(7)

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

(8)

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.

(9)

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

Search merupakan hal yang umum dan sering ditemukan dalam kecerdasan buatan, yang merupakan model teoritis yang diterapkan dalam problem solving, aplikasi, dan bahasa pemrograman (Luger & Stubblefield, 2009).

Blind search disebut juga Uninformed search merupakan strategi pencarian solusi dimana dalam proses pencariannya, tidak terdapat informasi tambahan tentang keadaan yang akan terjadi selanjutnya dari suatu langkah yang diambil. Blind search hanya mampu men-generate langkah-langkah selanjutnya dan menentukan apakah solusi sudah tercapai atau belum dari suatu langkah yang diambil. Blind search tidak mampu menentukan langkah mana yang lebih menguntungkan atau lebih menjanjikan untuk mencapai solusi (Russell & Norvig, 2010). Beberapa algoritma pencarian yang termasuk dalam blind search antara lain breadth-first search, depth-first search, iterative deepening search dan sebagainya.

2.5.1 Breadth-First Search

Breadth-first search merupakan strategi pencarian sederhana yang dilakukan dengan men-generate terlebih dahulu node-node baru (successor) yang merupakan cabang dari node pertama (root). Kemudian masing-masing node baru tersebut akan men-generate lagi successor-nya, dan seterusnya. Node yang akan di-generate successor-nya terlebih dahulu adalah node yang belum memiliki successor dan berada pada tingkat kedalaman yang paling dangkal.

(10)

Breadth-first search akan selalu menemukan solusi apabila pencarian dilakukan pada pohon pencarian yang memuat solusi pada salah satu node pada tingkat kedalaman d yang terbatas serta memiliki branching factor b yang terbatas. Ketika node yang memuat solusi di-generate untuk pertama kalinya, maka dapat dipastikan bahwa node tersebut merupakan solusi yang paling singkat. Hal ini dikarenakan semua node pada tingkat kedalaman yang lebih dangkal telah di-generate terlebih dahulu dan tidak menemui solusi yang diinginkan. Solusi yang ditemukan merupakan solusi yang optimal apabila biaya (cost) yang dibutuhkan tidak berkurang untuk melalui node pada kedalaman yang lebih dalam (Russell & Norvig, 2010). Contoh breadth-first search yang diterapkan pada permainan Babylon Tower dapat dilihat pada gambar 2.3.

Gambar 2.3. Breadth-first search pada permainan Babylon Tower

Namun, breadth-first search memiliki kelemahan dari segi penggunaan memori. Apabila proses pencarian dilakukan terhadap pohon pencarian yang setiap node-nya memiliki jumlah successor sebanyak b, pada root-nya akan di-generate node baru sebanyak b pada kedalaman pertama. Setiap node yang baru akan men-generate lagi node-nya masing-masing sebanyak b, sehingga pada kedalaman kedua terdapat node sebanyak . Setiap node baru pada kedalaman kedua akan

(11)

men-ketiga, dan seterusnya. Apabila solusi pencarian terdapat pada kedalaman d, maka dalam kondisi terburuk (worst case), dimana solusi terdapat pada node terakhir pada kedalaman d, jumlah node yang di-generate adalah

Jumlah memori yang dibutuhkan untuk menjalankan algoritma breadth-first search menjadi masalah yang lebih besar dibandingkan waktu yang diperlukan (Russel & Norvig, 2010). Jumlah memori yang dibutuhkan juga merupakan kelemahan yang paling besar dalam algoritma breadth-first search. Breadth-first search yang diterapkan dalam kebanyakan kasus akan menghabiskan memori yang tersedia dalam waktu yang singkat (Korf, 1985). Namun breadth-first search juga membutuhkan waktu yang cukup lama untuk melakukan pencarian karena lama waktu yang diperlukan untuk mencari semua node pada setiap tingkat kedalaman akan mengalami peningkatan secara eksponensial karena jumlah node yang juga meningkat secara eksponensial (Russell & Norvig, 2010).

2.5.2. Depth-First Search

Depth-first search mampu menghindari masalah keterbatasan memori yang terjadi pada algoritma breadth-first search (Korf, 1085). Depth-first search akan selalu melalui salah satu cabang dari pohon pencarian dan mengikutinya hingga menemui solusi. Apabila cabang yang dilalui tidak menemui solusi, maka pencarian akan mundur satu langkah dan dilanjutkan dengan cabang lainnya (Luger, 2009).

Depth-first search akan selalu men-generate node-node baru dari node yang paling dalam pada pohon pencarian walaupun masih terdapat node lain pada kedalaman yang lebih dangkal yang belum memiliki successor. Pencarian akan langsung dilakukan hingga tingkat yang paling dalam dimana node pada kedalaman tersebut tidak memiliki successor-nya lagi. Apabila solusi belum ditemukan, pencarian akan dilanjutkan pada node terdalam yang masih memiliki successor lain yang belum pernah dicari. Contoh depth-first search yang diterapkan pada permainan Babylon Tower dapat dilihat pada gambar 2.4.

(12)

Gambar 2.4. Depth-first search pada permainan Babylon Tower

Lama waktu yang dibutuhkan dalam depth-first search dibatasi oleh ukuran kedalaman pohon pencarian. Depth-first search mungkin saja men-generate semua node dalam pohon pencarian sebanyak , dimana m merupakan kedalaman

(13)

maksimum dari pohon pencarian. Nilai m bisa jauh lebih besar daripada nilai d (kedalaman minimum yang memuat solusi) atau tak terhingga apabila pohon pencarian tidak memiliki kedalaman yang terbatas (setiap node selalu memiliki successor).

Depth-first search memiliki kelebihan dibandingkan breadth-first search dalam hal penggunaan memori. Pohon pencarian pada depth-first search hanya perlu menyimpan jalur dari root menuju node pada kedalaman yang sedang dijelajahi serta node-node lain yang belum diekspansi pada kedalaman yang sama. Setiap node yang sudah pernah dijelajahi dapat langsung dihapus dari memori. Pada pohon pencarian dengan branching factor b dan kedalaman maksimum m, depth-first search memerlukan memori untuk menampung node sebanyak (Russell & Norvig, 2010).

2.6. Kecerdasan Buatan dalam Game

Salah satu tantangan terbesar dari kecerdasan buatan adalah untuk menciptakan general intelligence, sebuah agent yang mampu unggul dalam banyak bidang. Ruang lingkup kecerdasan buatan terutama bertujuan untuk menciptakan agent yang mampu membuat keputusan yang baik. Dalam konteks game, hal tersebut saling relevan, dimana pemain harus membuat banyak keputusan yang tepat untuk mencapai hasil yang diinginkan, seperti untuk mengalahkan lawan atau mendapatkan skor tertinggi (Levine, et al. 2013).

Pac-Man [Midway Games West, Inc., 1979] merupakan salah satu game pertama yang menerapkan kecerdasan buatan (Artificial Intelligence) di dalam game-nya. Game Pac-Man tersebut masih menggunakan AI yang sangat sederhana untuk menentukan arak gerak dari keempat monster-nya (ghost). Setiap monster tersebut dapat bergerak mendekati (mengejar) pemain atau menjauhi pemain. AI dalam game tidak mengalami banyak perubahan hingga pertengahan dekade 1990-an. Perkembangan AI dalam game pada masa tersebut hanya mengalami sedikit kemajuan dibandingkan dengan AI yang diterapkan dalam game Pac-Man. Sejak pertengahan dekade 1990-an, AI mulai menjadi salah satu unsur yang diperhatikan dan dikembangkan oleh perusahaan pengembang game.

(14)

Goldeneye 007 [Rare Ltd., 1997] berhasil menunjukkan kepada gamer bahwa AI dapat meningkatkan pengalaman bermain yang ditawarkan dalam sebuah game. Goldeneye 007 menambahkan sebuah sistem simulasi yang disebut sense simulation system, yang memungkinkan karakter untuk merespon terhadap karakter-karakter lain di sekitarnya. Creatures [Cyberlife Technology Ltd., 1997] menerapkan AI yang sangat kompleks di dalam game-nya, yaitu menggunakan neural network untuk setiap karakternya.

Saat ini telah terdapat beraneka ragam jenis AI yang diterapkan dalam game. Jenis AI yang diterapkan dalam suatu game berbeda-beda tergantung pada genre game itu sendiri. Misalnya dalam game balapan, AI yang diterapkan mampu memperhitungkan jalur tersingkat yang mungkin dilalui dalam arena balap. Bahkan saat ini masih terdapat banyak genre game yang masih menggunakan AI yang sederhana seperti yang digunakan dalam Pac-Man karena memang itulah AI yang paling sesuai untuk game tersebut.

AI dalam kebanyakan game saat ini dialamatkan pada tiga kebutuhan dasar sebagai berikut:

i. kemampuan untuk menggerakan karakter.

ii. kemampuan untuk membuat keputusan, seperti langkah mana yang akan diambil.

iii. kemampuan untuk berpikir secara taktis dan strategis. (Millington & Funge, 2009).

2.7. Penelitian Terdahulu

Banyak penelitian yang telah dilakukan untuk menyelesaikan berbagai jenis game puzzle dengan menggunakan berbagai jenis algoritma. Korf & Felner (2007) mengembangkan beberapa algoritma pencarian yang bersifat heuristik untuk mengatasi masalah dalam permainan four-peg Towers of Hanoi. Beberapa algoritma tersebut antara lain frontier search, disk-based search, parallel processing, pattern database heuristic dan breadth-first heuristic search. Dengan mengkombinasikan algoritma-algoritma tersebut, Korf dan Felner berhasil menemukan solusi yang optimal untuk four-peg Towers of Hanoi dengan jumlah cakram hingga 30 buah.

(15)

Jing et al. (2009) melakukan penelitian terhadap metode yang dapat diterapkan dalam permainan Japanese puzzle atau dikenal juga sebagai nonogram. Untuk menyelesaikan Japanese puzzle secara manual, tahap pertama dapat dilakukan secara logika dengan menentukan cell yang akan diwarnai. Kemudian, sisanya dapat diselesaikan melalui tebakan atau dengan menguji satu-persatu cell mana saja yang perlu diwarnai. Metode yang dapat diterapkan dalam Japanese puzzle tersebut terdiri dari dua tahap. Pada tahap pertama, beberapa aturan logika akan dijalankan untuk menentukan cell-cell yang akan diwarnai. Pada tahap kedua, algoritma depth-first search akan dijalankan untuk menyelesaikan cell-cell yang tersisa. Penelitian terhadap Japanese puzzle juga pernah dilakukan oleh Stefani et al. (2012) dengan menggunakan metode rule-based dan algoritma best-first search. Dari hasil penelitian tersebut, semakin besar ukuran puzzle yang digunakan, maka semakin lama pula waktu yang dibutuhkan untuk menyelesaikan puzzle tersebut.

Panov & Koceski (2014) menggunakan pendekatan heuristik yang diterapkan dalam permainan Kakuro. Algoritma yang digunakan dalam penelitian ini adalah Self-Adapting Harmony Search (SAHS). Hasil penelitian ini menunjukkan bahwa SAHS mampu menemukan bilangan-bilangan yang dapat ditempatkan pada posisi yang benar pada puzzle Kakuro dengan penggunaan waktu yang efisien. Algoritma SAHS dapat ditingkatkan apabila dilakukan tahap perhitungan terlebih dahulu untuk menentukan kombinasi penjumlahan bilangan yang dapat menghasilkan bilangan yang diinginkan.

Abdel-Raouf et al. (2014) menggunakan algoritma chaotic harmony search untuk mengembangkan algoritma flower pollination yang diterapkan dalam permainan Sudoku. Dalam penelitian ini, algoritma tersebut diuji dengan sekumpulan soal Sudoku dengan tingkat yang sulit. Dari hasil pengujian tersebut, algoritma yang digunakan mampu menemukan jalan yang lebih baik untuk menemukan solusi.

Gambar

Gambar 2.1. Game tree pada Tic-Tac-Toe (Millington & Funge, 2009)
Gambar 2.2. Search tree pada permainan Babylon Tower
Gambar 2.3. Breadth-first search pada permainan Babylon Tower
Gambar 2.4. Depth-first search pada permainan Babylon Tower

Referensi

Dokumen terkait

Faktor penghambat akses JKN pada PSP adalah rendahnya pengetahuan mengenai prosedur pendaftaran dan portabilitas JKN, kekhawatiran keberlanjutan pembayaran iuran, persepsi

Komposit sandwich merupakan material yang tersusun dari tiga material atau lebih yang terdiri dari flat composite atau plat sebagai skin (lapisan permukaan) dan core pada bagian

Berdasarkan realisasi Anggaran Pendapatan dan Belanja Daerah (APBD), menunjukan bahwa kemampuan keuangan yang berasal PAD dalam memberikan kontribusi terhadap APBD

Teknologi CDMA menggunakan SSD_B dan algoritma CAVE untuk mengenerate Private Long Code Mask (diturunkan dari nilai intermediate yang disebut Voice Privacy Mask, yang

Bahwa Rekomendasi Panwaslu Kabupaten Jayapura bersifat segera sehingga Termohon menindak lanjutinya dengan Surat Keputusan Komisi Pemilihan Umum Kabupaten Jayapura

Puskesmas Pembantu dengan kunjungan tertinggi adalah Puskesmas Pembantu Karang anyar sebesar 1.812 Pasien dengan rata-rata kunjungan 906 pasien per bulan dan Puskesmas pembantu

Penelitian ini bertujuan untuk menganalisa pengaruh gaya kepemimpinan,keterampilan dan kesejahteraan kerja terhadap kinerja karyawan PT Nojorono Tobacco Internasional

Untuk beretika, akuntan juga harus ditanamkan sejak dini, seperti halnya pancasila yang telah diajarkan sejak masih SD dengan nama Pendidikan Kewarganegaraan,