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 permainannya. Salah satu contoh board game yang terkenal adalah catur yang mana program permainan catur telah menjadi landasan untuk banyak penelitian pada program board game lainnya.
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 kemampuan untuk menggerakan karakter, kemampuan untuk membuat keputusan akan bergerak kemana karakter tersebut, dan kemampuan karakter untuk dapat berfikir secara logis dan strategis. Gambar 2.1 akan memperlihatkan struktur dari kecerdasan buatan pada game.
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
Algoritma adalah proses yang di lakukan langkah demi langkah yang menghasilkan sebuah solusi untuk menyelesaikan masalah pada kecerdasan buatan (Millington,
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 bentuk pohon dimana cabang-cabangnya merupakan kemungkinan langkah yang
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 (Elnaggar et al., 2014).
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.
Perbedaan dari algoritma negamax dan minimax adalah negamax hanya menggunakan fungsi maksimal dan tidak seperti algoritma minimax yang menggunakan kedua fungsi yaitu fungsi maksimal dan fungsi minimal. Ini dapat dilakukan dengan menegasikan nilai yang dikembalikan dari point lawan daripada
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
Permainan Catur Harimau adalah permainan tradisional masyarakat Sumatera Barat yang dimainkan oleh masyarakat, baik di desa bahkan dikota sekalipun. Adapun alasan kenapa dinamakan catur harimau adalah karena salah satu biji yang digunakan pada permainan ada yang berfungsi sebagai harimau yang menangkap semua mangsanya. Selain itu juga karena awal pemikiran di ciptakan permainan ini adalah untuk menyiapkan sisasat menjebak harimau dalam kehidupan sehari-hari
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.
3. Masing-masing pemain akan bergantian menjalankan bidaknya. Pertama-tama yang bergerak adalah bidak harimau. Setelah harimau bergerak, apakah dia memakan kambing atau bergerak pada satu garis lurus, maka gantian pemain yang memegang bidak kambing memasukan satu bidak kambing ke papan permainan diletakan di
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 & Risto Miikkulainen
1995 Metode : Alpha-Beta
Alpha-Beta adalah algoritma pruning untuk mempercepat pencarian. Algoritma diterapkan pada permainan Othello.
2 Jacek Mandziuk, Magdalena Kusiak & Karol Waledzik
2007 Metode : Heuristic
Algoritma heuristic diterapkan pada permainan checkers.
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 catur berbasi desktop dengan animasi 3D.
BAB 1
PENDAHULUAN
1.1Latar Belakang
Permainan catur harimau adalah salah satu permainan tradisional berjenis board game dari Indonesia tepatnya berasal dari daerah Sumatera Barat. Permainan ini menggunakan papan persegi berukuran 4x4 kotak dimana setiap 2x2 kotaknya diberi tanda silang. Permainan ini dimainkan oleh dua pemain, dimana pemain pertama menggunakan harimau sebagai bidaknya dan pemain kedua menggunakan kambing sebagai bidaknya. Agar menang, pemain pertama yang menggunakan bidak harimau haruslah menghabisi semua bidak kambing lawan, sedangkan pemain kedua yang menggunakan bidak kambing, haruslah mematikan langkah dari pemain pertama yang menggunakan bidak harimau tadi.
Pengguna smartphone saat ini sudah sangat meningkat tajam, bahkan hingga akhir tahun 2014, total penjualan smartphone di dunia mencapai 1,75 milyar (Diambil dari dazeinfo.com). Hal ini memperlihatkan orang lebih sering menghabiskan waktu luangnya untuk memainkan smartphone mereka. Begitu juga halnya dalam bermain game. Sekarang orang lebih senang memainkan game dari smartphone mereka masing-masing daripada memainkannya secara manual, yang membutuhkan peralatan khusus sebelum dapat memainkan game tersebut. Android adalah mobile platform yang paling cepat perkembangannya sehingga pengguna smartphone dengan platform android sudah tersebar di seluruh belahan dunia. Lebih dari 300 juta orang di dunia memiliki device android dan lebih dari 850.000 device baru teraktifasi setiap harinya (James, 2013). Permainan catur harimau ini juga dapat dibuat dalam bentuk mobile game sehingga dapat dimainkan di smartphone dengan platform android.
Dengan menerapkan kecerdasan buatan, permainan catur harimau dapat dimainkan di smartphone. Penelitian mengenai permainan catur harimau ini sendiri belum pernah dilakukan. Namun sudah banyak penelitian yang menggunakan board game jenis lain diantaranya David dan Risto yang menerapkan neural network menggunakan algoritma alpha-beta pada permainan othello (Moriarty & Miikkulainen, 1995). Penelitian lainnya seperti yang dilakukan oleh Jacek dan kawan-kawan yang menerapkan algoritma heuristic pada permaianan chekers (Mandziuk et al, 2007). Ada juga Tan dan Chen yang melakukan penelitian dengan menerapkan algoritma minimax dengan optimasi alpha-beta pada permainan catur (Shunhua & Miao, 2012).
Pada penelitian kali ini, penulis akan menerapkan algoritma negamax. Algoritma negamax merupakan bentuk sederhana dari algoritma minimax dimana algoritma negamax hanya menggunakan fungsi maksimal, tidak seperti minimax yang menggunakan fungsi maksimal dan minimal untuk menemukan langkah terbaik. Negamax juga bentuk optimasi dari minimax. Negamax sendiri memiliki langkah penelusuran, prosedur dan hasil yang sama dengan minimax. Optimasi yang dilakukan dalam bentuk coding yang ditulis, yang berarti mengoptimasi kinerja proses, memperkecil bug serta memudahkan pemeliharaan. Penelitian sebelumnya yang menggunakan algoritma negamax adalah penelitian yang dilakukan oleh Kevin dan kawan-kawan dimana mereka menerapkan algoritma negamax dengan optimasi alpha beta pruning pada permainan catur 3D berbasis desktop (Octavianus et al, 2015).
Oleh karena itu, penulis mengajukan penelitian dengan judul “PERMAINAN
CATUR HARIMAU MENGGUNAKAN ALGORITMA NEGAMAX PADA PLATFORM ANDROID”.
1.2Rumusan Masalah
Pengguna smartphone dengan platform android di dunia terus meningkat dari tahun ke tahun membuat game banyak dimainkan dalam bentuk mobile game. Agar dapat memainkan game pada smartphone, di terapkan ilmu kecerdasan buatan agar user dapat melawan computer player saat bermain. Oleh karena itu, adapun rumusan masalah dari penelitian ini adalah bagaimana membangun kecerdasan buatan yang kompetitif untuk melawan human player pada permainan catur harimau.
1.3Batasan Masalah
Pada penelitian ini akan dibatasi ruang lingkup pembahasannya, yaitu : 1. Permainan dibuat dalam bentuk 2 dimensi.
2. Jumlah pemain adalah dua pemain, dimana pemain pertama adalah human player dan pemain kedua adalah computer player.
3. Permainan terdiri dari dua tingkatan, mudah dan susah.
4. Permainan tidak membutuhkan koneksi internet (dimainkan secara offline).
1.4Tujuan Penelitian
Tujuan dari penelitian ini adalah merancang permainan catur harimau pada smartphone dengan platform android menggunakan algoritma negamax.
1.5Manfaat Penelitian
Manfaat dari penelitian ini adalah :
1. Untuk menambah ilmu pengetahuan dibidang kecerdasan buatan tentang bagaimana pengimplementasian algoritma negamax.
2. Sarana pelestarian budaya lokal.
3. Memperkenalkan pada masyarakat secara digital salah satu permainan tradisional yaitu permainan catur harimau.
4. Sebagai referensi bagi peneliti selanjutnya yang akan melakukan penelitian dibidang kecerdasan buatan, khususnya kecerdasan buatan pada board game.
1.6. Metodologi Penelitian
Metodologi penelitian yang digunakan untuk menyelesaikan tugas akhir ini adalah sebagai berikut :
1. Studi Literatur
Pada tahap ini dilakukan studi literatur mengenai permainan catur harimau serta algoritma negamax dari berbagai buku, jurnal maupun internet.
2. Analisis
Pada tahap ini dilakukan analisis penerapan algoritma negamax pada permainan catur harimau.
3. Perancangan dan Implementasi Sistem
Pada tahap ini dilakukan perancangan sesuai dengan hasil dari analisis sistem serta mengimplementasikan hasil dari analisis dan perancangan ke dalam sistem.
4. Pengujian
Pada tahap ini dilakukan pengujian sistem apakah aplikasi berjalan sesuai dengan tujuan penelitian atau tidak.
5. Penyusunan Laporan
Pada tahap ini dilakukan dokumentasi hasil penerapan negamax pada permainan catur harimau yang bertujuan untuk menunjukkan hasil penelitian ini.
1.7 Sistematika Penulisan
Adapun bagian utama dari sistematika penulisan skripsi ini yaitu :
BAB 1. PENDAHULUAN
Bab ini berisi latar belakang diangkatnya judul skripsi, perumusan masalah yang diambil, batasan-batasan masalahnya, tujuan dan manfaat penelitian, metodologi penulisan, serta sistematika penulisan dari penyusunan skripsi ini.
BAB 2. LANDASAN TEORI
Bab ini menjelaskan mengenai landasan teori dari penelitian.