• Tidak ada hasil yang ditemukan

Permainan Catur Harimau Menggunakan Algoritma Negamax Pada Platform Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Permainan Catur Harimau Menggunakan Algoritma Negamax Pada Platform Android"

Copied!
10
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Game

Game adalah kegiatan yang berlangsung antara dua orang atau lebih yang membuat

keputusannya sendiri untuk meraih tujuan (Clark C, 1987). Orang telah memainkan game pada komputer selama komputer itu sendiri sudah ada. Game itu sendiri

memiliki 4 atribut utama (Rick Rogers, 2011) :

1. Tujuan. Game harus memiliki tujuan untuk dicapai oleh pemain. Tujuannya haruslah menantang namun dapat dicapai.

2. Aturan. Game haruslah memiliki aturan yang diikiti oleh semua pemain. 3. Umpan balik. Game itu sendiri haruslah memberi tau pemain apakah

mereka bermain dengan baik atau tidak.

4. Pemain. Game haruslah ada pemain yang memainkan game.

Ada banyak jenis game seperti skill atau action game, adventure game, simulation game, puzzle game, strategy game, dan masih banyak lagi.

Strategy game adalah game yang membutuhkan kemampuan merancang dan

melaksanakan sebuah strategi untuk menyelesaikan masalah. Adapan contoh strategy game adalah turn-based games dimana didalamnya termasuk game tradisional yang

umumnya berjenis board game.

Board game adalah permainan yang menggunakan papan sebagai tempat

(2)

2.2 Kecerdasan Buatan pada Game

Kecerdasan buatan (Artificial Intelligence) adalah salah satu cabang dari ilmu komputer yang mempelajari bagaimana cara agar sebuah sistem menjadi cerdas dan dapat bertingkah laku seperti manusia sehingga dapat memecahkan suatu masalah.

Kecerdasan buatan juga melibatkan penggunaan algoritma-algoritma pada sistem komputer untuk menyelesaikan masalah tersebut. Sistem komputer yang dirancang itu tentu saja tidak di desain dengan tujuan berkelakuan sama seperti manusia, tetapi dibuat dengan tujuan agar sistem tersebut dapat menghasilakan sebuah fungsi yang berguna (Ben Coppin, 2004).

Oleh karena itu, saat ini kita sudah dapat membuat sebuah program komputer yang memiliki kemampuan berfikir seperti manusia untuk menyelesaikan banyak masalah. Masalah-masalah seperti mengenal wajah seseorang, atau berbicara layaknya manusia, dan masalah complex lainnya dapat terwujud dengan memanfaatkan kecerdasan buatan yang menggunakan algoritma yang cocok untuk mewujudkan itu semua.

Kecerdasan Buatan telah banyak diimplementasikan dalam menciptakan sebuah game agar bertingkah laku realistis dengan memanfaatkan metode-metode yang ada. Metode yang diterapkan bertujuan untuk menemukan langkah terbaik dalam merencanakan pengambilan keputusan untuk sebuah permaianan (Diez et al., 2012).

Saat ini tentu saja sebagian besar permainan modern memanfaatkan kecerdasan buatan dan dari masa ke masanya terus berkembang. Yang dibutuhkan game dari kecerdasan buatan itu sendiri dapat dirangkum dalam tiga hal berikut, yaitu

(3)

Gambar 2.1 Struktur Kecerdasan Buatan pada Game (Millington, 2006)

Struktur kecerdasan buatan dapat dibagi menjadi tiga bagian, movement (pergerakan), decision making (pengambilan keputusan), dan strategy (strategi). Dua bagian pertama (movement dan decision making) bekerja pada per-karakter yang ada pada game, sedangkan bagian strategy bekerja pada keseluruhan permainan. Tidak semua permainan membutuhkan ketiga bagian tersebut. Contohnya pada board game, hanya membutuhkan bagian ketiga, yaitu strategy. Movement artinya diperlukan sebuah algoritma yang membuat keputusan untuk melakukan sebuah gerakan. Sedangkan decision making diperlukan sebuah algoritma untuk memberi tahu langkah apa yang harus dilakukan selanjutnya oleh karakter dan tentunya setiap karakter memiliki batasannya masing-masing untuk mengambil sebuah keputusan. Dan bagian strategy berarti algoritma yang digunakan diterapkan pada seluruh karakter

permainan, bukan algoritma yang hanya mengontrol satu karakter, tapi melibatkan pengontrolan seluruh grup karakter. Walaupun setiap karakter pada grup karakter memiliki pergerakan dan cara pengambilan keputusan yang berbeda-beda untuk setiap karakter, tapi tetap saja sebenarnya pergerakan seluruh bagian game dikontrol oleh strategi grup yang sama.

2.3 Algoritma

(4)

memenangkan permainan, atau algoritma untuk menentukan langkah selanjutnya yang harus diambil karakter, dan masih banyak contoh lainnya.

Algoritma membutuhkan struktur data untuk menyimpan data yang akan dipergunakan algoritma untuk diolah agar manghasilkan suatu solusi dari sebuah masalah.

Algotitma banyak digunakan untuk menyelesaikan berbagai masalah pada computer science yang banyak diimplementasikan pada aplikasi seperti database

system, expert system, robot control system, dan lain-lain. Pada sebuah game system,

dibutuhkan mesin pencari pada inti aplikasinya. Ada banyak algoritma pencarian yang telah digunakan untuk meningkatkan efisiensi pencarian seperti branch and bound, alpha-beta pruning, algoritma minimax, dan lain-lain (Borovska & Lazarova, 2007).

2.4 Algoritma pada Board Game

Board game dijalankan dengan menerapkan algoritma turn-based yang biasanya

hanya dimainkan oleh dua orang pemain yang bermain secara bergantian. Agar menang kita harus membuat lawan kita menjadi kalah. Jika menang kita mendapat point +1, dan lawan kita yang kalah akan mendapat poin -1. Ini disebut juga dengan zero-sum game (Millington, 2006). Tidak peduli cara apa yang diambil, apakah

mencoba untuk menang atau membuat lawan menjadi kalah akan menghasilkan hasil yang sama.

Board game juga adalah permainan dengan perfect information. Perfect

information berarti tidak ada informasi yang disembunyikan oleh kedua pemain (Carolus, 2006). Tidak seperti dalam permainan kartu, contohnya poker, yang mana salah satu pemain tidak mengetahui informasi kartu lawan, begitu juga sebaliknya. Perfect information membuat kedua pemain mengetahui mengenai permainan yang

akan dimainkan. Kedua pemain tahu hasil yang akan dicapai terhadap suatu langkah yang akan diambil, atau juga langkah selanjutnya yang bisa diambil setelah sebelumnya melakukan suatu langkah. Yang tidak diketahui hanyalah langkah yang akan diambil lawan. Namun tetap saja akan diketahui kemungkinan-kemungkinan langkah yang akan diambil lawan dan dampak untuk langkah kita selanjutnya.

Pada dasarnya, algoritma minimax memiliki konsep pencarian dengan teknik Depth First Search (DFS). DFS akan membuat semua kemungkinan langkah dalam

(5)

tercipta akibat langkah yang dibuat oleh parent node sampai akhirnya didapat salah satu pemain yang memenangkan permainan (Timothy, 2014). Pada gambar 2.2 ditunjukan bagaimana pohon permainan untuk permainan tic tac toe.

Gambar 2.2 Pohon Permainan dari Permainan Tic Tac Toe (Borovska & Lazarova, 2007)

Setiap permainan turn-based dapat direpresentasikan dalam bentuk pohon permainan. Gambar 2.2 menunjukan pohon permainan dari permainan tic tac toe untuk dua langkah pertamanya. Setiap node pada pohon menunjukan posisi papan permainan dan setiap cabangnya menunjukan langkah yang dapat diambil. Jumlah cabang untuk setiap papannya adalah sama dengan jumlah dari langkah yang dapat diambil. Ada saatnya pada suatu posisi papan tidak ada lagi langkah yang bisa diambil. Itu berarti telah mencapai akhir permainan dan point akhir akan diberikan pada setiap pemain. Pada zero-sum games, point akhir setiap pemain jika ditambahkan akan sama dengan nol.

2.5 Algoritma Minimax

Algoritma minimax adalah algoritma pohon permainan yang dibagi menjadi dua bagian, dimana pemain pertama merupakan computer player dan pemain kedua merupakan human player. Minimax akan mencari jalan terbaik untuk computer player dan human player akan memainkan permainan dengan jalan terbaiknya sendiri. Dapat diartikan bahwa minimax akan memaksimalkan nilai jika langkah diambil untuk computer player dan meminimalkan nilai jika langkah diambil untuk human player

(6)

Jadi pada minimax, jika computer player memilih langkah yang akan diambil, minimax akan memilih langkah dengan keuntungan terbesar karena minimax akan

memaksimalkan nilai akhir computer player. Sedangkan saat human player jalan, tentu akan memilih langkah yang akan merugikan computer player atau dapat dikatakan human player akan meminimalkan nilai akhir dari computer player.

Minimax tentu saja diperuntukan untuk mencari nilai terbaik dalam permainan

berbasis zero-sum. Maksudnya, jika misalkan computer player yang mendapatkan nilai, maka human player akan mengalami kehilangan nilai dengan jumlah yang sama dengan nilai yang didapat computer player, atau sebaliknya (Plaat et al., 2012). Gambar 2.3 menunjukan bagaimana ilustrasi kerja dari algoritma minimax.

Gambar 2.3 Ilustrasi Kerja Algoritma Minimax (Ben Coppin, 2004)

2.6 Algoritma Negamax

Algoritma minimax dilihat berdasarakan sudut pandang computer player, sehingga minimax dapat mengetahui di setiap tahapan, dia harus memaksimalkan nilai atau

meminimalkan nilai tergantung tahapan tersebut milik computer player atau human player. Cara ini dapat diperbaharui dengan cara setiap ingin naik ke tahap selanjutnya

kita negasikan nilainya dan memilih nilai maksimal. Sudut pandangnya pun berubah, karena setiap pemain memilih langkah dengan nilai maksimal, maka sudut pandang berubah disetiap gilirannya. Cara ini dapat disebut algoritma negamax.

(7)

mencari nilai minimal (Elnaggar et al., 2014). Hal ini dapat ditunjukan dengan menggunakan relasi matematika berikut:

Max (a, b) == -Min (-a, -b)

Pada gambar 2.4 akan ditunjukan bagaimana ilustrasi kerja dari algoritma negamax.

Gambar 2.4 Ilustrasi Kerja Algoritma Negamax (Millington, 2006)

2.7 Android

Android adalah sistem operasi mobile dan platform yang didasari oleh linux kernel versi 2.6 dan tersedia secara bebas untuk penggunaan commercial ataupun noncommercial. dan bersifat open source.

Saat kita ingin membuat game menggunakan android, platform pada android memiliki beberapa kemudahan (Derek James, 2013), yaitu:

1. Android adalah open platform, yang artinya android tidak membatasi apa yang kita bisa akses atau apa yang bisa kita lakukan.

2. Android adalah mobile platform yang paling cepat berkembang, yang artinya lebih banyak orang yang akan mengunduh dan memainkan game kita.

2.8 Catur Harimau

(8)

Permainan catur harimau dimainkan oleh dua pemain, satu pemain menjalankan biji harimau sebanyak 3 buah, dan pemain lain menjalankan biji kambing sebanyak 22 buah. Bentuk papan permainannya sendiri adalah persegi yang umumnya berukuran 30 cm x 30 cm. Persegi itu dibagi lagi menjadi kotak-kotak kecil berukuran 7.5 cm x 7.5 cm. Dan untuk setiap empat kotaknya di beri tanda silang. Gambar 2.8 memperlihatkan bentuk dari papan permainan dari permainan catur harimau.

Gambar 2.5 Papan Permainan Catur Harimau (Departemen Pendidikan dan Kebudayaan, 1980) Adapun cara bermainnya adalah:

1. Pertama-tama pemain harus menentukan terlebih dahulu ingin memainkan bidak apa, hariamu atau kambing. Dan bidak akan berganti untuk setiap pemain di ronde berikutnya. Setelah ditentukan, masing-masing pemain siap untuk memulai permainan.

2. Di awal permainan, diletakan terlebih dahulu ke tiga bidak harimau di titik tengah dari papan dan delapan bidak kambing mengelilingi bidak harimau tadi. Sedangkan 14 bidak kambing lainnya menunggu diluar papan untuk masuk ke papan permainan.

(9)

tempat yang diinginkan pemain. Setelah semua bidak kambing masuk, barulah kambing dapat bergerak dengan aturan yang sama dengan bidak harimau yaitu bergerak pada satu garis lurus.

4. Harimau dapat memakan kambing dengan cara melompati bidak kambing pada satu garis lurus tempat ia berada.

Yang akan keluar sebagai pemanang pada satu ronde yaitu:

1. Bidak kambing, apabila kambing dapat mengurung semua harimau sehingga tidak dapat bergerak lagi.

2. Bidak harimau, apabila bidak kambing sudah habis dimakan bidak harimau.

Sedangkan yang akan keluar sebagai pemenang permainan adalah siapa yang berhasil memenangkan permaianan sebanyak 2 kali dalam 3 ronde yang dilakukan, dan jika salah satu pemain menang dua kali berturut-turut maka ia lah pemenangnya.

2.9 Penelitian Terdahulu

Belum ada penelitian sebelumnya yang membahas tentang permainan catur harimau namun sudah banyak penerapan algoritma pada beberapa board game jenis lainnya. Penelitian terdahulu dapat dilihat pada tabel 2.1.

Tabel 2.1 Penelitian Terdahulu

No Peneliti Tahun Keterangan

1 David E. Moriarty &

(10)

Tabel 2.1 Penelitian Terdahulu (lanjutan)

No Peneliti Tahun Keterangan

3 Tan Shunhua & Chen Miao

2012 Metode : Minimax dengan optimasi Alpha-Beta

Algoritma minimax dengan optimasi alpha-beta diterapkan pada permainan

catur. Penelitian dilakukan pada pohon permainan untuk lima langkah pertama. 4 Kevin Octavianus, Trie

Octavia & Willy

2015 Metode : Negamax dengan optimasi Alpha-Beta

Algoritma negamax dengan optimasi alpha-beta diterapkan pada permainan

Gambar

Gambar 2.1 Struktur Kecerdasan Buatan pada Game (Millington, 2006)
Gambar 2.2 Pohon Permainan dari Permainan Tic Tac Toe (Borovska &
Gambar 2.3 menunjukan bagaimana ilustrasi kerja dari algoritma minimax.
Gambar 2.4 Ilustrasi Kerja Algoritma Negamax (Millington, 2006)
+4

Referensi

Dokumen terkait

dengan arah jarum jam. 3) Permainan dimulai pada saat pemain yang mendapat giliran memilih biji yang akan dijalankan pada salah satu dari enam lubang berisi batu