Permainan Catur Harimau Menggunakan Algoritma Negamax Pada Platform Android

(1)

DAFTAR PUSTAKA

Abt, C. C. 1987. Serious Games. University Press of America, Inc.: Boston.

Borouska, P. & Lazanova, M. 2007. Efficiency Of Parallel Minimax Algorithm For Game Tree Search. International Conference On Computer System And Technologies – CompSysTech, pp. 6-14.

Carolus, J. W. T. 2006. Alpha-Beta with Sibling Prediction Pruning in Chess. Thesis. University of Amsterdam Netherlands.

Coppin, B. 2004. Artificial Intelligence Illuminated. Jones and Bartlett Publishers, Inc.: Sudbury.

Departemen Pendidikan dan Kebudayaan. 1980. Permainan Rakyat Daerah Sumatera Barat. Departemen Pendidikan Dan Kebudayaan Proyek Inventarisasi Dan Dokumentasi Kebudayaan Daerah Sumatera Barat: Sumatera Barat.

Diez, S. G., Laforge, J. & Saerens, M. 2012. An Optimally Randomized Minimax Algorithm. Cyber Nostics, IEEE Transactions on 43(1): 385-393.

Elnaggar, A. A., et al. 2014. A Comparative Study of Game Tree Searching Methods. International Journal of Advanced Computer Science and Applications 5(5): 68-77.

James, D. 2013. Android Game Programming For Dummies. John Wiley & Sons, Inc.: New Jersey.

Lim, Y. J. & Lee, W. S. 2006. RankCut – A Domain Independent Forward Pruning Method for Games. Proceedings of the National Conference on Artificial


(2)

Mandziuk, J., Kusiak, M. & Waledzik, K. 2007. Evolutionary-based heuristic generators for checkers and give-away checkers. ExpertSystem 24(4): 189-211

Millington, I. 2006. Artificial Intelligence For Games. Morgan Kaufmann Publishers is an imprint of Elsevier: San Fransisco.

Moriarty, D. E. & Miikkulainen, R. 1995. Discovering Complex Othello Strategies Through Evolutionary Neural Networks. Connection Science 7(3): 195-209

Nurjannah. 2010. Analisis dan Implementasi Algoritma Minimax dengan Optimasi Alpha Betha Prunning pada permainan Five In Row. Skripsi. Ilmu Komputer Universitas Sumatera Utara

Octavianus, K., Octavia, T. & Willy, W. 2015. Penerapan Algoritme Negamax dan Alpha Beta Pruning Pada Permainan Catur 3D Berbasis Desktop. Jurnal. STMIK GI MDP.

Plaat, A., et al. 1995. Bets-First and Depth-First Minimax Search in Practice. Fourteenth International Joint Conference on Artificial Intelligence: 273-279.

Rogers, R. 2011. Learning Android Game Programing. Pearson Education, Inc.: United States.

Shunhua, T. & Miao, C. 2012. Search Algorithm in the Five-piece Chess. Journal of Emerging Trends in Computing and Information Sciences 3(4): 596-599.

Tabibi, O. D., Koppel, M. & Netanyahu, N. S. 2010. Optimizing Selective Search in Chess. Proceedings of the International Conference on Machine Learning (ICML) Workshop on Machine Learning and Games, Haifa, Israel, June 2010.


(3)

Tabibi, O. D. & Netanyahu, N. S. 2008. Extended Null-Move Reductions. Proceedings of the 2008 International Conference on Computers and Games, pp. 205-216.

Tabibi, O. D. & Netanyahu, N. S. 2008. Verified Null-Move Pruning. Journal ref: ICGA Journal, International Computer Games Association 25(3): 153-161. Timothy, R. G. 2014. Implementasi Algortima Minimax dan optimasi Alpha Beta


(4)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Arsitektur Umum

Gambar 3.1 Arsitektur Umum

Pada gambar 3.1 ditunjukan arsitektur umum dari permainan catur harimau. Pertama, user akan membuka aplikasi game dari smartphone. Saat setelah user memilih menu “Play”, maka akan terjadi proses algoritma negamax untuk menentukan langkah-langkah yang akan diambil oleh computer player dalam permainan. Adapun proses yang terjadi pada algoritma negamax adalah:


(5)

3.1.1 Move Generator

Saat permainan dimulai akan dibangun langkah-langkah dalam bentuk pohon pencarian. Setiap node merepresentasikan posisi dari papan. Dimulai dari node root yang merupakan keadaan awal permainan. Cabang-cabangnya menunjukan kemungkinan langkah yang dapat diambil menuju ke posisi (node) berikutnya.

3.1.2 Fungsi Evaluasi

Setelah pohon pencarian terbentuk, untuk menentukan langkah mana yang akan diambil, maka perlu diketahui langkah mana yang lebih baik diantara semua langkah yang ada. Oleh karena itu, langkah selanjutnya adalah memberikan nilai evaluasi pada setiap simpul yang terbentuk yang mewakili nilai dari langkah-langkah yang akan diambil. Hal yang dilakukan fungsi evaluasi adalah menemukan posisi terkini dari papan dan memberikan nilai. Pada algoritma minimax, nilai akan diberikan dari sudut pandang satu pemain, yang berarti computer player, namun karena menggunakan algoritma negamax, maka sudut pandang tidak lagi dari satu pemain, tetapi kedua pemain, dan akan bergantian setiap berganti tahapan antara computer player dan human player.

3.1.3 Memanggil Algoritma Pencarian

Langkah selanjutnya adalah melakukan pencarian menggunakan algoritma negamax. Saat melakukan pencarian, negamax tidak harus memilih nilai maksimal untuk computer player dan nilai minimal untuk human player pada setiap tahapannya, cukup memilih nilai maksimal di setiap tahapnya karena nilai di negasikan dari satu tahap ke tahap lainnya.

Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Sehingga setelah algoritma negamax melakukan proses, maka akan keluar output yaitu langkah yang akan diambil computer player dimana langkah tersebut adalah langkah terbaik yang diambil.


(6)

3.2 Analisis Algoritma Negamax 3.2.1 Pohon Permainan

Pohon permainan akan menggambarkan kondisi permainan yang sedang dihadapi hingga langkah-langkah yang mungkin diambil dalam permainan. Setiap node merepresentasikan posisi dari papan. Dimulai dari node root yang merupakan keadaan awal permainan. Cabang-cabangnya menunjukan kemungkinan langkah yang dapat diambil menuju ke posisi (node) berikutnya.

Penulis akan membuat sebuah pohon permainan untuk sebuah kondisi pada permainan catur harimau. Penulis akan membatasi untuk kedalaman pohon sama dengan tiga. Kedalaman pertama adalah kemungkinan langkah yang dapat diambil bidak harimau, kedalaman kedua giliran kambing dan kedalaman ketiga kembali giliran harimau. Begitu juga dengan cabang pohon, hanya akan ditampilkan tiga cabang pohon saja jika kemungkinan langkah ada lebih dari tiga. Pada gambar 3.2 dapat dilihat posisi permainan catur harimau yang akan dibuat pohon permianannya.

Gambar 3.2 Kondisi Permaian Catur Harimau

Dari kondisi permainan pada gambar 3.2, penulis dapat membuat sebuah pohon permainan yang dapat merepresentasikan permainan. Bidak bewarna merah mewakili bidak harimau dan bidak warna hijau mewakili bidak kambing. Jadi saat ini kondisi permainan ada satu bidak harimau, tiga bidak kambing di papan permainan


(7)

dan satu bidak kambing diluar papan permaianan. Gambar 3.3 merupakan pohon permainan yang diperoleh dari kondisi permainan gambar 3.2.

Gambar 3.3 Pohon Permainan Catur Harimau

Gambar 3.3 menunjukan pohon permainan saat computer player memainkan bidak harimau. Pada gambar 3.3 tampak ada dua kemungkinan langkah yang dapat diambil bidak harimau. Adapun langkahnya yaitu 2-1 (memindahkan bidak dari titik dua ke titik satu) dan 2-4. Jika bidak harimau memilih langkah 2-1, maka kemudian ada tiga kemungkinan langkah yang dapat diambil bidak kambing (yang ditampilkan hanya tiga, kemungkinan langkah sebenarnya ada lebih dari tiga) yaitu L-13 (memasukan satu bidak kambing dari luar papan permainan ke titik 13), 7-8 dan 12-13. Kotak dengan isi titik-titik menandakan ada langkah lain selain dari tiga langkah yang ditampilkan.

Setelah pohon permainan terbentuk, maka langkah selanjutnya yaitu memasukan nilai evaluasi.

3.2.2 Fungsi Evaluasi

Dalam algoritma negamax, tugas dari fungsi evaluasi adalah menemukan posisi terkini dari papan dengan cara memberikan nilai evaluasi pada setiap simpul yang terbentuk yang mewakili nilai dari langkah-langkah yang akan diambil, maka dapat ditentukan pilihan langkah mana yang akan diambil diantara semua langkah yang ada. Fungsi evaluasi akan dihitung dari sudut pandang kedua pemain, bergantian antara computer player dan human player dan mereka akan memilih nilai maksimal untuk


(8)

diri mereka masing-masing. Hanya saja saat giliran human player, nilai akan dikalikan negative.

Penulis memberikan beberapa nilai evaluasi yang akan diberikan dalam permainan catur harimau ini dengan tujuan agar computer player dapat memilih langkah terbaik untuk mendapatkan kemenangan dalam permainan.

3.2.2.1 Nilai Melompat

Untuk bidak harimau, dia memiliki gerakan khusus yaitu melompati bidak kambing yang berguna untuk memakan bidak kambing. Karena kondisi menang diperoleh jika semua bidak kambing habis , maka penulis memberikan nilai +9999 untuk setiap gerakan melompat.

3.2.2.2 Nilai Masuk

Diawal permainan hanya ada delapan bidak kambing dari total 22 bidak kambing yang ada dalam papan permainan. Setiap giliran bidak kambing nantinya, pemain yang menggunakan bidak kambing dapat memasukan bidak kambing lainnya kedalam papan permainan. Oleh karena kesempatan untuk mengepung bidak harimau lawan lebih besar jika dalam papan ada banyak bidak kambing, maka penulis memberikan nilai +9999 untuk setiap gerakan masuk kedalam papan.

3.2.2.3 Nilai Posisi

Untuk menentukan kearah mana langkah yang akan diambil bidak harimau atau ke posisi mana bidak kambing yang masuk akan diletakan, maka perlu diberikan nilai evaluasi untuk setiap kemungkinan posisi pada papan permainan untuk mengevaluasi langkah bidak.

Saat giliran bidak harimau main, gerakan yang di utamakan adalah gerakan melompat untuk memakan bidak kambing, oleh karenanya penulis memberikan nilai +9999 saat bidak harimau melompat. Namun saat tidak ada bidak kambing yang dapat dilompati bidak harimau, maka cara terbaik yaitu memberikan nilai posisi papan untuk setiap kemungkinan langkah yang dapat diambil. Tentu saja langkah terbaik yaitu gerakan mendekati bidak kambing yang dapat dilompati pada giliran berikutnya. Oleh karena itu penulis memberikan nilai posisi seperti pada table 3.1 berikut :


(9)

Tabel 3.1 Nilai Posisi Bidak Harimau Bentuk Formasi Nilai _XOE_ (Horizontal) +500 _EOX_ (Horizontal) +500 |

X

O (Vertikal) E

|

+500

| E

O (Vertikal) X

|

+500

\ X

O (Diagonal) E

\

+500

\ E

O (Diagonal) X

\

+500

Pada table 3.1 diatas, X menunjukan bidak harimau, O menunjukan bidak kambing dan E menunjukan posisi papan yang kosong. Jadi saat penelusuran pada pohon permainan, jika ditemukan posisi seperti salah satu dari formasi diatas, maka akan diberikan nilai +500 pada papan tersebut. Jika ada dua, maka akan ditambahkan lagi +500 menjadi +1000, begitu seterusnya hingga didapat nilai yang paling maksimum yang akan menjadi pilihan langkah terbaik.


(10)

Selanjutnya saat giliran kambing main, maka perlu ditentukan ke titik mana dari papan bidak kambing akan dimasukan, ataupun saat semua bidak kambing sudah dipapan, kearah mana dia akan digerakan. Oleh karenanya perlu diberikan nilai posisi untuk setiap kemungkinan langkah yang dapat diambil. Untuk bidak kambing, langkah terbaik yang dapat diambil tentu saja gerakan menghalangi bidak harimau untuk memakan bidak kambing lainnya. Saat tidak ada bidak harimau yang bisa dihalangi, maka gerakan terbaik yaitu berusaha mengurung bidak harimau agar terpojok dan kehabisan kemungkinan langkah. Oleh karena itu penulis memberikan nilai posisi seperti pada table 3.2 berikut :

Tabel 3.2 Nilai Posisi Bidak Kambing Bentuk Formasi Nilai _XOO_ (Horizontal) +500 _OOX_ (Horizontal) +500 |

X

O (Vertikal) O

|

+500

| O

O (Vertikal) X

|

+500

\ X

O (Diagonal) O

\


(11)

Tabel 3.2 Nilai Posisi Bidak Kambing (lanjutan) Bentuk Formasi Nilai \

O

O (Diagonal) X

\

+500

_XEO_ (Horizontal) +50 _OEX_ (Horizontal) +50 |

X

E (Vertikal) O

|

+50

| O

E (Vertikal) X

|

+50

\ X

E (Diagonal) O

\

+50

\ O

E (Diagonal) X

\

+50

_XO_ (Horizontal) +5 _OX_ (Horizontal) +5


(12)

Tabel 3.2 Nilai Posisi Bidak Kambing (lanjutan) Bentuk Formasi Nilai |

X (Vertikal) O

|

+5

|

O (Vertikal) X

|

+5

\

X (Diagonal) O

\

+5

\

O (Diagonal) X

\

+5

Tabel 3.2 menampilkan nilai posisi jika giliran main bidak kambing. X menunjukan bidak harimau, O menunjukan bidak kambing dan E menunjukan papan yang kosong. Nilai tertinggi diberikan saat posisi _XOO_ baik horizontal, vertikal ataupun diagonal karna posisi itu kita anggap bidak kambing menghambat bidak harimau untuk memakan bidak kambing yang ditengah. Kemudian jika tidak ada bidak harimau yang ingin dihambat langkahnya maka akan diutamakan posisi _XEO_ baik horizontal, vertikal ataupun diagonal yaitu saat bidak kambing ingin mengurung bidak harimau tapi tidak membuat bidak harimau dapat memakan bidak kambing. Jika tidak bisa lagi membuat posisi seperti diatas, maka kemungkinan yang ada hanyalah bidak harimau sudah terkepung, tinggal mengisi titik-titik yang kosong agar tidak dapat bergerak lagi. Posisi _XO_ baik horizontal, vertikal ataupun diagonal diberi nilai terkecil agar tidak melebihi nilai yang lain karena bukan posisi yang menjadi prioritas utama.


(13)

Pada algoritma negamax, nilai evaluasi akan dilihat dari sudut pandang kedua pemain dan akan bergantian di setiap giliranya. Pertama, penulis akan memperlihatkan pemberian nilai evaluasi untuk bidak harimau di kedalaman 1. Gambar 3.4 akan menunjukan pohon permainan yang telah diberikan nilai evaluasi.

Gambar 3.4 Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 1

Hanya ada dua kemungkinan langkah yang bisa diambil harimau pada papan permainan di gambar 3.2, langkah 2-1 dan 2-4. Jika bidak harimau mengambil langkah a akan membentuk formasi _XOE_ sehingga mendapatkan nilai 500. Sedangkan langkah b adalah gerakan melompat sehingga mendapatkan nilai 9999. Selanjutnya penulis akan memperlihatkan pemberian nilai evaluasi untuk bidak harimau di kedalaman 2. Gambar 3.5 akan menunjukan pohon permainan yang telah diberikan nilai evaluasi.

Gambar 3.5 Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 2

Jika bidak harimau memilih langkah a ataupun b, maka ada beberapa kemungkinan langkah yang dapat diambil bidak kambing. Pada kedalaman 2 adalah langkah yang diambil bidak kambing, yang berarti human player. Maka nilai akan dikalikan negative agar tetap mencari nilai maksimal saat penelusuran oleh algoritma negamax. Langkah c ada 2 nilai evaluasi yang sesuai dengan keadaan papan. Pertama langkah masuknya bidak kambing dari luar papan ke titik 13, maka nilai evaluasi


(14)

nilai kembali ditambah -500. Sehingga total nilai evaluasi untuk titik c menjadi -10499. Untuk langkah d membentuk formasi _XO_ sehingga nilai evaluasi menjadi -5. Langkah d hanya membentuk formasi _XOO_ sehingga nilai evaluasi langkah d menjadi -500. Sedangkan untuk langkah f adalah langkah memasukan bidak kambing ke titik 2 sehingga nilai evaliasi ditambah -9999. Tidak ada formasi yang terbentuk sehingga tidak ada penambahan nilai lainnya. Untuk langkah g dan h tidak membentuk formasi apapun sehingga hanya diberi nilai 0. Untuk kedalaman 2 ini, nilai evaluasi haruslah berada pada leaf node pohon agar algoritma negamax dapat berjalan. Oleh karena itu langkah selanjutnya menjumlahkan nilai evaluasi di setiap node menuju leaf node mereka masing-masing.

Gambar 3.6 Pohon Permainan dengan Nilai Evaluasi pada Leaf Node

Pada gambar 3.6 telah tampak bahwasanya nilai evaluasi telah berada pada leaf node pohon. Langkah selanjutnya memanggil algoritma negamax.

3.2.3 Algoritma Negamax

Pada gambar 3.4 telah ditunjukan nilai evaluasi pada pohon permainan untuk bidak harimau pada kedalaman 1. Karena kedalamannya hanya satu, maka langsung dapat dilihat bahwasanya nilai terbesar yaitu langkah b, 2-4. Proses perubahan nilai dapat dilihat pada gambar 3.7.

Gambar 3.7 Proses Perubahan Nilai Node menggunakan Algoritma Negamax pada Kedalaman 1


(15)

Gambar 3.6 telah menunjukan nilai evaluasi untuk bidak harimau dengan kedalaman 2. Algoritma negamax akan menelusuri pohon permainan dari simpul paling terdalam di sebelah kiri terlebih dahulu. Gambar 3.8 menunjukan bagaimana algoritma negamax menemukan langkah dalam permainan untuk bidak harimau dengan kedalaman 2.

Gambar 3.8 Proses Perubahan Nilai Node Menggunakan Algoritma Negamax pada Kedalaman 2

Di kedalaman 2 untuk naik ke kedalaman 1, nilai akan dikalikan negative terlebih dahulu. Setelah dikalikan negative maka didapat bahwasanya posisi c adalah posisi dengan nilai terbesar, maka naiklah nilai dari posisi c ke posisi a. Begitu juga untuk cabang sebelah kanan, posisi g dan h sama-sama memiliki nilai -9999, maka yang naik ke posisi b adalah nilai g yang lebih dahulu ditemukan. Selanjutnya yang menentukan langkah mana yang dipilih, pada kedalaman 1 di cari lagi nilai terbesar. Untuk naik ke kedalaman 0 maka nilai kembali dikalikan negative terlebih dahulu, maka didapatlah bahwasanya posisi b memiliki nilai terbesar yaitu 9999, maka langkah terbaik adalah langkah b.

3.3 Perancangan Sistem

Pada bagian ini penulis akan menguraikan gambaran aplikasi yang akan dirancang sebagai tahapan sebelum penerapan dan pengimplementasian pada android,

3.3.1 Flowchart Aplikasi

Flowchart merupakan diagram yang memperlihatkan bagaimana suatu sistem berjalan apakah itu program, input ataupun output. Gambar 3.9 memperlihatkan bagaimana


(16)

Gambar 3.9 Flowchart Aplikasi

Untuk lebih jelasnya, alur aplikasi permainan catur harimau dapat dipaparkan sebagai berikut :

1. User menjalankan aplikasi permainan dan akan muncul tampilan awal yaitu menu utama dari permainan yang terdiri dari tiga pilihan yaitu main, panduan dan tentang.

2. Jika user memilih menu main, maka akan muncul tampilan pilihan bidak. Disini user dapat memilih apakah akan memainkan bidak harimau atau kambing. Setelah memilih salah satu bidak, akan muncul pemilihan level, dimana user dapat memilih antara level mudah dan level susah. Seteleh


(17)

memilih level akan muncul tampilan papan permainan dan user pun dapat memulai permainan. Setelah selesai, jika user memenangkan permainan, akan muncul pesan bahwasanya user menang, namun jika user kalah akan muncul pesan user kalah. Jika user ingin kembali bermain maka akan kembali ke tampilan pilih bidak, namun jika tidak, akan kembali ke tampilan menu utama.

3. Jika user memilih menu panduan, maka user akan masuk ke tampilan bantuan. Jika sudah selesai dan ingin kembali, maka akan kembali ke tampilan menu utama.

4. Jika user memilih menu tentang, maka user akan masuk ke tampilan tentang. Jika sudah selesai dan ingin kembali, maka akan kembali ke tampilan menu utama.

5. Jika user tidak memilih salah satu dari ke tiga menu, maka user dapat keluar dari aplikasi permainan.

3.3.2 Pemodelan Visual menggunakan UML

Unified Modeling Language (UML) digunakan untuk mendesain dan merancang aplikasi permainan catur harimau. UML yang digunakan adalah use case diagram dan activity diagram.

Use case bekerja dengan cara mendeskripsikan bagaimana interaksi antara user yang merupakan pengguna dengan sistem. Dalam use case dikenal istilah actor. Untuk sistem yang akan kita bangun, actor adalah pemain. Kemudian untuk mendapatkan use case dari actor, maka ditentukan terlebih dahulu interaksi apa saja yang dapat dilakukan user kepada sistem.

Activity diagram adalah teknik untuk mendeskripsikan proses dan aliran kerja dari sebuah masalah. Dalam hal ini, hal yang perlu dideskripsikan adalah interaksi antara actor dan sistem.

Gambar 3.10 menunjukan use case dari aplikasi berasarkan actor dan use case yang telah dijabarkan sebelumnya.


(18)

Gambar 3.10 Use Case Aplikasi

3.3.2.1 Use Case Mulai Permainan

Berikut table 3.3 adalah tampilan table dokumentatif dari use case mulai permainan.

Tabel 3.3 Tabel Dokumentatif Use Case Mulai Permainan Use case Mulai Permainan

Actors Pemain

Brief Description Use case ini untuk mendeskripsikan permainan baru Pre-condition Pemain memilih menu mulai permainan pada menu utama Flow of Events Kegiatan Aktor Respon Sistem

1. Pilih menu mulai permainan pada halaman utama 3. Pilih bidak

5. Pilih level

2. Menampilkan tampilan pilih bidak

4. Menampilkan tampilan pilih level

6. Mulai permainan

Post-condition Permainan dimulai dengan level dan pilihan bidak sesuai dengan pilihan pemain

Penulis mendeskripsikan activity diagram dari use case mulai permainan pada gambar 3.11.


(19)

Gambar 3.11 Activity Diagram Mulai Permainan

3.3.2.2Use Case Bermain

Berikut table 3.4 adalah tampilan table dokumentatif dan activity diagram dari use case bermain.

Tabel 3.4 Tabel Dokumentatif Use Case Bermain

Use case Bermain

Actors Pemain

Brief Description Use case ini untuk mendeskripsikan jalannya permainan Pre-condition Pemain berada di halaman permainan baru dan papan

permainan sudah ditampilkan

Flow of Events Kegiatan Aktor Respon Sistem 1. Player1 memulai

permainan

5. Papan permainan diupdate

2. Update papan permainan

3. Mengevaluasi langkah bidak

4. Mengenerate langkah player2

6. Jika permainan berakhir akan muncul pesan Post-condition Tampilan pesan menang atau kalah pemain


(20)

Penulis mendeskripsikan activity diagram dari use case mulai permainan pada gambar 3.12.

Gambar 3.12 Activity diagram bermain

3.3.3 Perancangan Antarmuka

Pada tahap ini akan dirancang tampilan antarmuka permainan catur harimau. Permainan catur harimau ini akan terdiri dari beberapa halaman yaitu diantaranya halaman menu utama, halaman pilih bidak, halaman pilih level, halaman bantuan, halaman tentang, dan halaman bermain.

3.3.3.1 Hamana Utama

Halaman utama merupakan halaman yang pertama kali muncul saat kita membuka aplikasi. Di halaman ini terdapat menu lain yang dapat dipilih user yaitu menu main, bantuan dan tentang. Dihalaman ini juga terdapat button untuk keluar permainan. Rancangan antarmuka halaman utama dapat dilihat pada gambar 3.13.


(21)

Gambar 3.13 Tampilan Halaman Utama Keterangan:

1. Catur Harimau merupakan nama dari aplikasi permainan.

2. Tombol main untuk memulai permainan baru. Saat dipilih terlebih dahulu akan masuk kehalaman pilih bidak.

3. Tombol bantuan untuk masuk ke halaman melihat bantuan yang berisi cara dan aturan bermain.

4. Tombol tentang untuk masuk ke halaman melihat tentang yang berisi tentang pengembang aplikasi dan info lainnya.

5. Tombol exit untuk keluar dari aplikasi permainan.

3.3.3.2 Halaman Pilih Bidak

Halaman pilih bidak adalah halaman untuk memilih bidak yang akan dipakai user. Ada dua jenis bidak yaitu bidak harimau dan bidak kambing. Jika user memilih bidak harimau, maka AI akan memainkan bidak kambing, begitu sebaliknya. Rancangan antarmuka pilih bidak dapat dilihat pada gambar 3.14.


(22)

Keterangan:

1.Pilih bidak merupakan judul dari halaman.

2.Jika ingin memainkan bidak harimau, maka pilih tombol harimau. 3.Jika user ingin memainkan bidak kambing, maka pilih tombol kambing.

4.Tombol lanjut untuk melanjutkan ke halaman selanjutnya, yaitu halaman pilih level.

3.3.3.3 Halaman Pilih Level

Halaman pilih level adalah halaman untuk memilih tingkat kesulitan permainan. Level permainan terdiri dari dua level yaitu mudah dan susah. Rancangan antarmuka pilih level dapat dilihat pada gambar 3.15.

.

Gambar 3.15 Tampilan Halaman Pilih Level Keterangan:

1.Pilih level merupakan judul dari halaman.

2.Jika ingin bermain dengan level mudah, maka pilih tombol mudah. 3.Jika ingin bermain dengan level susah, maka pilih tombol susah.

4.Tombol lanjut untuk melanjutkan ke halaman selanjutnya, yaitu halaman permainan.

3.3.3.4 Halaman Bermain

Halaman bermain adalah halaman untuk memainkan permainan. Rancangan antarmuka halaman bermain dapat dilihat pada gambar 3.16.


(23)

Gambar 3.16 Tampilan Halaman Bermain Keterangan :

1. Tempat letak bidak kambing yang belum masuk ke papan permainan. 2. Papan permainan.

3. Tombol pause untuk membuat jeda pada permainan. Juga akan muncul pilihan apakah ingin melanjutkan jeda atau mengakhiri permainan. Jika memilih mengakhiri permainan, maka akan kembali tampilan halaman utama.

4. Menampilkan giliran siapa yang sedang bermain, apakah giliran bidak harimau atau bidak kambing.

5. Menampilkan jumlah bidak kambing yang tersisa.

3.3.4 Storyboard Permainan

Storyboard permainan menampilkan gambaran urutan interaksi permainan catur harimau serta menunjukan aturan dari permainan catur harimau.

3.3.4.1Storyboard Halaman Utama


(24)

Tabel 3.5 Storyboard Halaman Utama

Tampilan Keterangan

Saat membuka aplikasi permainan, maka akan masuk ke tampilan halaman utama dari permainan catur harimau.

Navigasi

Button main untuk memulai permainan. Saat di tekan akan masuk ke halaman pilih bidak

Button bantuan untuk melihat tampilan bantuan. Tampilan bantuan berisi informasi cara dan aturan bermain.

Button tentang untuk melihat tampilan tentang. Tampilan tentang berisi informasi pengembang aplikasi.

Button exit untuk keluar dari permainan.

3.3.4.2Storyboard Pilih Bidak

Tabel 3.6 memperlihatkan bagaimana storyboard dari pilih bidak. Tabel 3.6 Storyboard Pilih Bidak

Tampilan Keterangan

Setelah menekan tombol main akan masuk ke halaman pilih bidak. Pada halaman ini user akan memilih akan memainkan bidak apa. Jika memilih harimau, maka agen akan memainkan bidak kambing dan sebaliknya. Setelah memilih salah satu bidak, maka akan lanjut ke halaman pilih level.


(25)

Tabel 3.6 Storyboard Pilih Bidak (lanjutan) Navigasi

Ada 2 pilihan bidak, harimau dan kambing. Setelah memilih salah satu, tekan tombol lanjut dan akan masuk ke halaman selanjutnya yaitu pilih level.

3.3.4.3Storyboard Pilih Level

Tabel 3.7 memperlihatkan bagaimana storyboard dari pilih level. Tabel 3.7 Storyboard Pilih Level

Tampilan Keterangan

Selanjutnya memilih level permainan. Ada dua pilihan level, yaitu mudah dan susah. Perbedaan dari kedua level ini ada pada ukuran papan permainan serta jumlah bidak yang dimainkan. Untuk level mudah, ukuran papannya 4x4 dimana setiap 2x2 kotaknya diberi tanda silang, sehingga ada 25 titik yang dapat di tempati bidak. Untuk jumlah bidaknya ada satu bidak harimau dan 22 bidak kambing. Sedangkan level susah berukuran 6x6 dimana setiap 2x2 kotaknya diberi tanda silang, sehingga ada 49 titik yang dapat di tempati bidak. Untuk jumlah bidaknya ada tiga bidak harimau dan 43 bidak kambing.

Navigasi

Ada 2 pilihan level, mudah dan susah. Setelah memilih salah satu, tekan tombol lanjut dan akan masuk ke halaman selanjutnya yaitu halaman permainan sesuai dengan bidak dan level yang dipilih..

3.3.4.4Storyboard Permainan Level Mudah


(26)

Tabel 3.8 Storyboard Permainan Level Mudah

Tampilan Keterangan

1 Tampilan awal permainan untuk level mudah.

Pertama tersusun tiga bidak harimau dan 8 bidak kambing. Sedangkan diluar papan permainan ada 14 bidak kambing yang menunggu untuk masuk ke papan permainan.

2 Yang melangkah pertama kali selalu bidak

harimau, siapapun yang memainkannya, apakah user ataupun agen. Ada dua cara bidak harimau dapat melangkah, pertama melompati bidak kambing seperti gambar disamping sehingga bidak kambing yang dilompati mati. Kedua bergerak pada satu titik yang berdekatan.

3 Setelah bidak harimau melangkah, maka gantian

bidak kambing yang melangkah. Untuk bidak kambing, setiap gilirannya haruslah memasukan satu bidaknya ke papan permainan. Setelah semua bidak masuk ke papan permainan, barulah bidak kambing dapat bergerak pada satu titik yang berdekatan.

4 Setelah bidak kambing melangkah, kembali

giliran harimau dan begitu seterusnya. Bidak harimau tidaklah harus melompat pada saat gilirannya melangkah, walaupun memiliki kesempatan untuk itu. Tapi memiliki pilihan dapat hanya bergerak pada satu titik yang berdekatan.


(27)

Tabel 3.7 Storyboard Permainan Level Mudah (lanjutan)

Tampilan Keterangan

5 Untuk menang, bidak harimau haruslah

memakan semua bidak kambing.

6 Untuk menang, bidak kambing haruslah

mengurung bidak harimau sehingga tidak dapat bergerak lagi.

Navigasi

Papan permainan tempat kita menjalankan bidak. Kotak panjang diatas papan permainan adalah tempat bidak kambing menunggu untuk masuk ke papan permainan. Kotak bertuliskan Hariamu/Kambing menunjukan giliran siapa saat ini yang sedang bermain. Kotak bertuliskan x22 menunjukan jumlah bidak kambing yang masih hidup dan akan berkurang setiap bidak harimau melompati bidak kambing. Tombol pause jika ditekan akan meberi jeda permainan. Jika melanjutkan permainan akan kembali ke halaman permainan, jika tidak maka akan keluar permainan dan kembali ke halaman utama.

3.3.4.5Storyboard Permainan Level Susah


(28)

Tabel 3.9 Storyboard Permainan Level Susah

Tampilan Keterangan

1 Tampilan awal permainan untuk level susah.

Pertama tersusun satu bidak harimau di tengah papan permainan dan 8 bidak kambing mengelilingi bidak harimau tadi. Karena level susah, ada dua bidak harimau lagi yang berada di papan permainan. Sedangkan diluar papan permainan ada 35 bidak kambing yang menunggu untuk masuk ke papan permainan.

2 Yang melangkah pertama kali selalu bidak

harimau, siapapun yang memainkannya, apakah user ataupun agen. Ada dua cara bidak harimau dapat melangkah, pertama melompati bidak kambing seperti gambar disamping sehingga bidak kambing yang dilompati mati. Kedua bergerak pada satu titik yang berdekatan.

3 Setelah bidak harimau melangkah, maka gantian

bidak kambing yang melangkah. Untuk bidak kambing, setiap gilirannya haruslah memasukan satu bidaknya ke papan permainan. Setelah semua bidak masuk ke papan permainan, barulah bidak kambing dapat bergerak pada satu titik yang berdekatan.

4 Untuk menang, bidak harimau haruslah


(29)

Tabel 3.9 Storyboard Permainan Level Susah (lanjutan)

Tampilan Keterangan

5 Untuk menang, bidak kambing haruslah

mengurung bidak harimau sehingga tidak dapat bergerak lagi.

Navigasi

Papan permainan tempat kita menjalankan bidak. Kotak panjang diatas papan permainan adalah tempat bidak kambing menunggu untuk masuk ke papan permainan. Kotak bertuliskan Hariamu/Kambing menunjukan giliran siapa saat ini yang sedang bermain. Kotak bertuliskan x43 menunjukan jumlah bidak kambing yang masih hidup dan akan berkurang setiap bidak harimau melompati bidak kambing. Tombol pause jika ditekan akan meberi jeda permainan. Jika melanjutkan permainan akan kembali ke halaman permainan, jika tidak maka akan keluar permainan dan kembali ke halaman utama.


(30)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Implementasi dari sistem harus sesuai dengan analisis dan perancangan sistem. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang berjalan sesuai dengan yang diinginkan, dan pengujian sistem dilakukan untuk membuktikan kebenaran proses berpikir agen cerdas yang berjalan pada sistem.

4.1 Implementasi Sistem

4.1.1 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang digunakan dalam implementasi permainan catur harimau adalah sebagai berikut :

1.Prosesor Pentium(R) Dual-Core CPU 2.Memory 1 GB

3.Hardisk 250 GB

4.Mobile Intel(R) 4 Series Express Chipset Family

4.1.2 Spesifikasi Perangkat Lunak

Spesifikasi perangkat lunak yang digunakan untuk pengimplementasian permainan catur harimau menggunakan sistem operasi windows 7 32-bit. Implementasi menggunakan bahasa pemrograman java menggunakan eclipse juno. Permainan catur harimau nantinya dijalankan pada perangkat android yaitu smartphone Samsung Galaxy Fame.


(31)

4.1.3 Hasil Eksekusi Aplikasi

Berikut adalah hasil eksekusi dari permainan catur harimau pada smartphone Samsung Galaxy Fame.

4.1.3.1Tampilan Splash Screen

Saat menjalankan aplikasi, akan muncul tampilan splash screen seperti pada gambar 4.1.

Gambar 4.1. Tampilan Splash Screen 4.1.3.2 Tampilan Menu Utama

Setelah tampilan splash screen selesai, maka akan langsung muncul tampilan menu utama dari aplikasi permainan catur harimau. Tampilan dapat dilihat pada gambar 4.2.


(32)

Ada tiga menu utama pada halaman awal permainan. Yaitu play, help dan about. Dan ada satu tombol exit untuk keluar permainan. Tombol play berfungsi untuk memulai permainan. Sedangkan tombol help untuk menampilkan cara dan aturan main. Dan tombol about akan menampilkan tentang pengembang aplikasi dari permainan.

4.1.3.3Tampilan Halaman Bantuan

Jika tombol help di tekan, akan masuk ke halaman bantuan. Halaman bantuan terdiri dari 5 halaman dimana kita dapat menekan next untuk lanjut, previous untuk kembali dan home untuk kembali ke halaman menu utama. Halaman bantuang berisi informasi cara bermain serta aturan permainan catur harimau. Berikut tampilan halaman bantuan dapat dilihat pada gambar 4.3.

Gambar 4.3. Tampilah Halaman Bantuan 4.1.3.4Tampilan Halaman Tentang

Jika menekan tombol about, akan masuk ke halaman tentang dimana halaman tentang berisi informasi pengembang aplikasi dari permainan catur harimau. Berikut tampilan halaman tentang dapat dilihat pada gambar 4.4.


(33)

Gambar 4.4. Tampilan Halaman Tentang 4.1.3.5 Tampilan Halaman Play

Untuk memulai permainan, pemain harus menekan tombol play. Saat tombol play ditekan, pertama akan masuk ke halaman pilih bidak. Disini pemain akan memilih, menggunakan bidak harimau atau menggunakan bidak kambing. Berikut tampilan halaman pilih bidak dapat dilihat pada gambar 4.5.

Gambar 4.5. Tampilan Halaman Pilih Bidak

Jika dipilih harimau, maka pemain akan memainkan bidak harimau, begitupun sebaliknya. Setelah dipilih, akan lanjut ke halaman pilih level. Ada dua level permainan catur harimau. Pertama mudah dan kedua susah. Tampilan pilih level dapat dilihat pada gambar 4.6.


(34)

Gambar 4.6. Tampilan Halaman Pilih Level

Setelah memilih level, akan masuk ke halaman permainan. Jika memilih level mudah, maka akan muncul halaman permainan seperti gambar 4.7. Dan jika memilih level susah akan muncul halaman permainan seperti pada gambar 4.8.

Gambar 4.7. Tampilan Halaman Permainan Level Mudah


(35)

Penjelasan dari tampilan halaman permainan sebagai berikut :

Gambar 4.9. Penjelasan Tampilan Permainan Catur Harimau

1.Nomor 1 adalah tempat bidak kambing yang masih hidup dan dapat dimasukan ke dalam papan permainan.

2.Nomor 2 adalah papan permainan.

3.Nomor 3 menampilkan giliran siapa yang sedang bermain. 4.Nomor 4 menampilkan jumlah bidak kambing yang masih hidup. 5.Nomor 5 menampilkan status dari permainan, jika ada peringatan akan

dimunculkan pada kotak ini.

6.Nomor 6 adalah tombol pause. Saat di tekan akan muncul peringatan apakah akan melanjutkan permainan atau tidak. Jika tidak maka akan keluar dari permainan dan kembali ke halaman awal.

Jika permainan selesai, maka akan muncul notifikasi apakah akan melanjutkan permainan atau tidak. Jika melanjutkan, akan kembali ke halaman pilih bidak namun jika tidak akan kembali ke halaman awal. Gambar 4.10 menunjukan tampilan notifikasi disaat permainan berakhir.


(36)

Gambar 4.10. Tampilan Notifikasi Game Over 4.2 Pengujian Sistem

4.2.1 Pengujian Aplikasi

Pengujian aplikasi merupakan pengujian terhadap aplikasi yang telah dibuat, apakah berjalan dengan baik dan sesuai dengan yang diharapkan. Metode yang digunakan pada pengujian ini adalah black box, yaitu pengujian yang dilakukan dengan hanya melihat tampilan aplikasi yang terlihat oleh user tanpa perlu mengetahui bagaimana cara kerja sistem tersebut. Berikut ini adalah pengujian aplikasi pada tiap prosesnya. 4.2.1.1Tampilan Halaman Utama

Tabel 4.1 memperlihatkan hasil evaluasi pada tampilan halaman utama. Tabel 4.1 Hasil Evaluasi Tampilan Halaman Utama

No Sasaran Pengujian Hasil Status

1 Uji button play, help, dan about

Button dapat diklik dan berjalan sesuai fungsinya yaitu masuk ke masing-masing tampilan halaman

Baik

2 Uji button exit Button dapat diklik dan berjalan sesaui fungsinya yaitu keluar dari permainan


(37)

4.2.1.2Play

Tabel 4.2 memperlihatkan hasil evaluasi pada tampilan play. Tabel 4.2 Hasil Evaluasi Proses Play

No Sasaran Pengujian Hasil Status

1 Uji pilihan bidak Bidak yang digunakan user sesuai dengan apa yang di pilih pada halaman pilih bidak

Baik

2 Uji pilihan level Level yang dipilih sesuai dengan apa yang dipilih pada halaman pilih level

Baik

3 Uji tampilan awal Halaman play ditampilkan pertama kali sesuai dengan peraturan dari permainan catur harimau

Baik

4 Uji tampilan bidak Bidak harimau ditampilkan dengan gambar harimau dan bidak kambing ditampilkan dengan gambar kambing

Baik

5 Uji turn, status dan jumlah bidak kambing

Turn yang ditampilkan sesuai dengan turn siapa yang saat ini jalan. Status juga di tampilkan sebagaimana seharusnya. Jumlah bidak kambing yang tersisa sesuai dengan apa yng ditampilakan pada kolom sisa bidak kambing

Baik

6 Uji gerakan bidak Bidak dapat diletakan di tempat manapun di papan permainan sesuai aturan permainan

Baik

7 Uji button pause Button dapat diklik dan berjalan sesaui fungsinya yaitu membuat jeda sementara permainan yang sedang berjalan

Baik

8 Uji akhir permainan Message dialog tampil saat permainan berakhir


(38)

4.2.1.3Help

Tabel 4.3 memperlihatkan hasil evaluasi pada tampilan help. Tabel 4.3 Hasil Evaluasi Tampilan Help

No Sasaran Pengujian Hasil Status

1 Uji tampilan help Tampilan help ditampilkan dengan baik dan benar

Baik

2 Uji button next, previous dan home

Button dapat diklik dan berjalan sesuai fungsinya yaitu lanjut kehalaman berikut untuk next, kembali ke halaman sebelumnya untuk previous dan kembali ke halaman menu utama untuk home

Baik

4.2.1.4About

Tabel 4.4 memperlihatkan hasil evaluasi tampilan about.

Tabel 4.4 Hasil Evaluasi Tampilan About

No Sasaran Pengujian Hasil Status

1 Uji tampilan about Tampilan about ditampilkan dengan baik dan benar

Baik

2 Uji button home Button dapat diklik dan berjalan sesuai fungsinya yaitu kembali ke halaman menu utama

Baik

4.2.2 Pengujian Agen

Pengujian agen dilakukan untuk mengetahui apakah algoritma negamax sudah berjalan dengan baik pada agen. Pengujian akan dilakukan untuk setiap level yaitu mudah dan susah pada masing-masing bidak, harimau maupun kambing. Pengujian akan dilakukan sebanyak 10 langkah untuk melihat apakah langkah yang dipilih agen sesuai dengan apa yang diharapkan.


(39)

4.2.2.1Pengujian Agen Pertama

Pengujian agen pertama yaitu pada bidak kambing dengan level mudah dapat dilihat pada table 4.5.

Tabel 4.5 Pengujian Agen Pertama

No Langkah User Keterangan Langkah Agen

1 User akan jalan pertama.

User memakan bidak kambing diatasnya. Agen memilih memasukkan bidak ke titik [2,2] dan membentuk formasi _XOO_ dengan tujuan menghambat bidak harimau untuk memakan bidak kambing di titik [2,1] dan [2,3].

2 User memilih menjalankan

bidak dari [2,0] ke titik [4,2]. Agen kembali menghambat user dengan memasukkan bidak ke titik [2,0].

3 User menjalankan bidak

dari [0,2] ke titik [1,2] dengan tujuan mengarah ke titik tengah agar bidak kambing yang bisa dimakan lebih banyak. Agen memilih menutupi langkah user dengan memasukkan bidak ke titik [0,2].


(40)

Tabel 4.5 Pengujian Agen Pertama (lanjutan)

No Langkah User Keterangan Langkah Agen

4 User memilih memakan

bidak kambing di titik [1,1] dengan menjalankan bidak dari [1,2] ke titik [1,0]. Agen memasukkan bidak ke titik [3,0].

5 User menggerakkan bidak

dari titik [4,2] ke titik [3,1] karena tidak ada bidak kambing yang dapat dimakan user. Agen memasukkan bidak ke titik [4,2].

6 User menggerakkan bidak

dari [3,1] ke titik [1,1] memakan bidak kambing di titik [2,1]. Agen memasukkan bidak ke titik [1,2] dengan tujuan mengepung bidak harimau.

7 User menggerakkan bidak

dari [1,1] ke titik [0,1] agar dapat memakan bidak kambing di titik [0,2]. Agen memasukkan bidak kambing ke titik [0,3] untuk menghambat bidak harimau di titik [0,1] memakan bidak kambing di titik [0,2].


(41)

Tabel 4.5 Pengujian Agen Pertama (lanjutan)

No Langkah User Keterangan Langkah Agen

8 User menggerakan bidak

dari [2,4] ke titik [3,4] karena tidak ada bidak kambing yang dapat dimakan oleh bidak harimau. Karena tidak ada ancaman, maka kambing memasukkan bidak ke titik [1,4] untuk mengepung bidak harimau.

9 User menggerakkan bidak

dari [3,4] ke titik [3,2]. Agen memasukkan bidak kambing ke titik [0,4].

10 User menggerakkan bidak

dari [1,0] ke titik [1,1]. Agen memasukkan bidak ke titik [4,4].

Pada pengujian agen pertama ini, agen cukup cerdas dengan menghambat langkah harimau untuk memakan bidaknya serta memojokan bidak harimau agar bidak kambing menang setelah bidak harimau tidak dapat bergerak lagi.

4.2.2.2Pengujian Agen Kedua

Pengujian agen kedua yaitu pada bidak kambing dengan level susah dapat dilihat pada table 4.6.


(42)

Tabel 4.6 Pengujian Agen Kedua

No Langkah User Keterangan Langkah Agen

1 User menggerakkan bidak

dari [3,3] ke titik [1,1] dan memakan satu bidak kambing di titik [2,2]. Agen memasukkan bidak ke titik [3,3] dengan tujuan menghambat gerak 2 bidak harimau dan membentuk dua formasi _XOO_.

2 User menggerakkan bidak

dari [5,3] ke titik [3,1] dan memakan satu bidak kambing di titik [4,2]. Agen memasukkan bidak kambing ke titik [2,2]. Walaupun langkah agen membentuk formasi _XOO_, tapi ada langkah lain yang seharusnya diambil yaitu menghalangi langkahh user di titik [1,3] untuk memakn bidak kambing di titik [2,4].

3 User memakan bidak

kambing dengan

menggerakkan bidak dari [1,3] ke titik [3,5]. Agen memasukkan bidak ke titik [1,3].


(43)

Tabel 4.6 Pengujian Agen Kedua (lanjutan)

No Langkah User Keterangan Langkah Agen

4 User bergerak dari [3,5] ke titik [5,3]. Karena tidak ada gerakan yang mau dihambat bidak kambing, agen pun memasukkan bidak ke titik [1,2].

5 User menggerakkan bidak

kambing dari [3,1] ke titik [4,2] dengan tujuan mendekati bidak kambing di titik [4,3] untuk dimakan. Agen menghambat gerak user dengan memasukkan bidak kambing ke titik [2,4].

6 User memakan bidak

kambing dititik [4,3] dengan menggerakkan bidak dari [4,2] ke titik [4,4]. Agen memasukkan bidak kambing ke titik [4,3]

7 User menggerakkan bidak

harimau dari [1,1] ke titik [0,2]. Agen memasukkan bidak kambing ke titik [4,3] dengan tujuan menghambat bidak harimau di titik [4,4].


(44)

Tabel 4.6 Pengujian Agen Kedua (lanjutan)

No Langkah User Keterangan Langkah Agen

8 User memakan bidak

kambing di titik [4,2] dengan menggerakkan bidak dari [5,3] ke titik [3,1]. Agen memasukkan bidak kambing ke titik [4,2] untuk menghambat bidak harimau di titik [4,3] .

9 User menggerakkan bidak

dari [3,1] ke titik [5,3] dan memakan bidak di titik [4,2] dengan. Agen memasukkan bidak kambing ke titik [4,2].

10 User pun menggerakkan

bidak harimau dari [4,4] ke titik [3,5] Agen menghamabt gerak harimau di titik [5,3] dengan memasukkan bidak kambing ke titik [3,1].

Pada pengujian agen kedua, agen sedikit kesulitan menghambat gerak 3 bidak harimau yang dijalankan user. Sehingga walau sudah menghambat satu langkah harimau untuk memakan tetap ada bidak harimau lain yang memiliki langkah bisa memakan bidak kambing lainnya.

4.2.2.3Pengujian Agen Ketiga

Pengujian agen ketiga yaitu pada bidak harimau dengan level mudah dapat dilihat pada table 4.7.


(45)

Tabel 4.7 Pengujian Agen Ketiga

No Langkah Agen Keterangan Langkah User

1 Agen menggerakkan bidak

dari [2,2] ke titik [0,2] dan memakan bidak kambing di titik [1,2]. User memasukkan bidak kambing ke titik [4,2].

2 Agen memakan bidak

kambing di titik [2,3] dengan menggerakkan bidak harimau dari [2,4] ke titik [2,2]. User kembali menghambat gerak agen dengan memasukkan bidak ke titik [4,4].

3 Agen menggerakkan bidak

dari [2,2] ke titik [4,0] dan memakan bidak kambing di titik [3,1]. User memasukkan bidak ke titik [2,4].

4 Agen memakan bidak

kambing dengan

menggerakkan bidak dari [2,0] ke titik [2,2]. User memasukkan bidak ke titik [0,4].

5 Agen menggerakkan bidak

dari [0,2] ke titik [2,0]. User memasukkan bidak kambing ke titik [4,1].


(46)

Tabel 4.7 Pengujian Agen Ketiga (lanjutan)

No Langkah Agen Keterangan Langkah User

6 Agen menggerakkan bidak

dari [2,2] ke titik [2,3]. User memasukkan bidak kambing ke titik [4,3].

7 Agen memakan bidak

kambing di titik [1,3] dengan menggerakkan bidak dari [2,3] ke titik [0,3]. User memasukkan bidak kambing ke titik [2,2].

8 Agen menggerakkan bidak

dari [2,0] ke titik [2,1]. User memasukkan bidak kambing ke titik [2,3].

9 Agen menggerakkan bidak

dari [0,3] ke titik [1,3]. User memasukkan bidak kambing ke titik [3,1].

10 Agen menggerakkan bidak

dari [1,3] ke titik [1,4]. User memasukkan bidak kambing ke titik [3,4].

Agen cukup pintar memilih langkah untuk menghambat gerakan user memakan bidak kambing sehingga user cukup kesulitan memakan semua bidak kambing yang ada.


(47)

4.2.2.4Pengujian Agen Keempat

Pengujian agen keempat yaitu pada bidak harimau dengan level susah dapat dilihat pada table 4.8

Tabel 4.8 Pengujian Agen Keempat

No Langkah Agen Keterangan Langkah User

1 Agen menggerakkan bidak

dari [3,3] ke titik [1,1] dan memakan bidak kambing di titik [2,2]. User menghambat langkah bidak harimau dengan memasukkan bidak kambing ke titik [3,5].

2 Agen memakan bidak

kambing di titik [2,3] dengan menggerakkan bidak ke titik [3,3]. User menghambat gerak 2 bidak

harimau dengan

memasukkan bidak kambing ke titik [3,1].

3 Agen kembali memakan

bidak kambing dengan menggerakkan bidak dari [3,3] ke titik [5,5]. User menghambat gerak harimau di titik [5,3] dengan memasukkan bidak kambing ke titik [3,3].


(48)

Tabel 4.8 Pengujian Agen Keempat (lanjutan)

No Langkah Agen Keterangan Langkah User

4 Agen menggerakkan bidak

harimau ke titik [2,2]. User menghambat gerakan

tersebut dengan

memasukkan bidak kambing ke titik [4,4].

5 Agen menggerakkan bidak

dari [2,2] ke titik [4,0]. Ingin menghambat gerakan bidak harimau di titik [5,3], user memasukkan bidak kambing ke titik [3,1].

6 Agen memakan bidak

kambing dengan

menggerakkan bidak dari [4,0] ke titik [2,2]. User memasukkan bidak kambing ke titik [4,5].

7 Agen memakan bidak

kambing di titik [4,2] dengan menggerakkan bidak dari [5,3] ke titik [3,1]. User memasukkan bidak kambing ke titik [5,2].


(49)

Tabel 4.8 Pengujian Agen Keempat (lanjutan)

No Langkah Agen Keterangan Langkah User

8 Agen mendekati bidak

kambing di titik [5,2] dengan bergerak dari [2,2] ke titik [4,2] dan memakan satu bidak kambing di titk [3,2]. User menghambat gerak bidak harimau dengan memasukkan bidak kambing ke titik [6,2].

9 Agen yang tidak dapat

melakukan gerakan memakan menggerakkan bidak dari [4,2] ke titik [5,3]. User kembali menghambat gerakan

tersebut dengan

memasukkan bidak ke titik [5,1].

10 Agen kembali melakukan

gerakan dari [3,1] ke titik [4,2]. User kembali menghambat gerakan dengan memasukkan bidak ke titik [6,0].

Agen cukup handal dalam bermain, melakukan gerakan memakan, ataupun mencoba memakan, namun masih kesulitan mengalahkan User yang dengan sigap melakukan gerakan menghambat.


(50)

Secara keseluruhan, dapat disimpulkan dari hasil pengujian, agen berjalan sesuai dengan yang diinginkan dengan menerapkan algoritma negamax. Jarang ditemukan gerakan tidak berarti saat melawan User.

4.2.3 Pengujian Kehandalan Agen

Pada tahap ini akan dilakukan pengujian seberapa handal agen melawan user dalam bermain. Kehandalan aplikasi dilihat dari berapa kali agen (AI) dapat mengalahkan user dalam bermain.

Pengujian dilakukan kepada 10 orang partisipan yang bermain permainan catur harimau dan memainkan setiap bidak pada setiap level. Berikut adalah hasil pengujian kehandalan aplikasi ditampilkan pada table 4.9.

Tabel 4.9 Hasil Pengujian Tingkat Kehandalan Agen No Bidak Level Jumlah Menang Jumlah Kalah

1 Kambing Mudah 4 6

2 Harimau Mudah 2 8

3 Kambing Susah 3 7

4 Harimau Susah 2 8

Dari hasil pengujian dapat dilihat bahwasanya agen terkuat ada pada agen yang menjalankan bidak kambing pada level mudah dengan total kemenangan 40%. Selain itu dapat kita lihat juga bahwasanya agen yang memainkan bidak kambing lebih hebat dibandingkan agen yang memainkan bidak harimau. Untuk bidak harimau, baik level mudah maupun susah sama-sama memiliki tingkat kemenangan 20%.

Berdasarkan tabel diatas tingkat kemenangan agen dapat dilihat pada pada gambar 4.11.


(51)

(52)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil dari pembahasan dan penelitian yang telah dipaparkan pada bab sebelumnya, maka dapat diambil kesimpulan sebagai berikut :

1. Aplikasi catur harimau berjalan dengan baik pada smartphone dengan platform android.

2. Algoritma negamax berjalan baik saat diterapkan pada permainan catur harimau. 3. Saat menjalankan bidak kambing, agen lebih maksimal menemukan langkah

terbaik dibandingkan saat agen memainkan bidak harimau.

5.2 Saran

Berikut adalah beberapa saran yang dapat dijadikan pertimbangan untuk penelitian selanjutnya :

1. Sebaiknya perlu dikembangankan aplikasi serupa namun dengan variasi pilihan lawan.

2. Sebaiknya diterapkan fungsi evaluasi yang lebih baik sehingga dapat seimbang antara agen memainkan bidak harimau dan agen memainkan bidak kambing.


(53)

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


(54)

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.


(55)

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,


(56)

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


(57)

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


(58)

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


(59)

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


(60)

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


(61)

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.


(62)

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.


(63)

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.


(64)

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.


(65)

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.


(66)

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.

BAB 3. ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan mengenai analisis algoritma negamax untuk pencarian langkah terbaik bagi AI dan perancangan aplikasi pada permainan catur harimau pada platform android.


(67)

BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan implementasi dari analisis yang dilakukan dan pengujian terhadap aplikasi.

BAB 5. KESIMPULAN DAN SARAN

Bab ini menguraikan rangkuman dari masing-masing sub-sub bab yang ada serta memberi saran agar bermanfaat untuk pengembangan dari sistem ini selanjutnya.


(1)

DAFTAR ISI

Halaman

Persetujuan iii

Pernyataan iv

Ucapan Terima Kasih v

Abstrak vii

Abstract viii

Daftar Isi ix

Daftar Tabel xii

Daftar Gambar xiii

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi 3

1.7 Sistematikan Penulisan 4

BAB 2 LANDASAN TEORI 6

2.1 Game 6

2.2 Kecerdasan Buatan pada Game 7

2.3 Algoritma 8

2.4 Algoritma pada Board Game 9

2.5 Algoritma Minimax 10

2.6 Algoritma Negamax 11

2.7 Android 12

2.8 Catur Harimau 12

2.9 Penelitian Terdahulu 14

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 16


(2)

3.1.1 Move generator 17

3.1.2 Funsi Evaluasi 17

3.1.3 Memanggil Algoritma pencarian 17

3.2 Analisis Algoritma Negamax 18

3.2.1 Pohon Permainan 18

3.2.2 Fungsi Evaluasi 19

3.2.2.1 Nilai Melompat 20

3.2.2.2 Nilai Masuk 20

3.2.2.3 Nilai Posisi 20

3.2.3 Algoritma negamax 26

3.3 Perancangan Sistem 27

3.3.1 Flowchart Aplikasi 27

3.3.2 Pemodelan Visual menggunakan UML 29 3.3.2.1 Use Case Mulai Permainan 30 3.3.2.2 Use Case Bermaian 31 3.3.3 Perancangan Antarmuka 32

3.3.3.1 Halaman Utama 32

3.3.3.2 Halaman Pilih Bidak 33 3.3.3.3 Halaman Pilih level 34

3.3.3.4 Halaman Bermain 34

3.3.4 Storyboard Permainan 35

3.3.4.1 Storyboard Halaman Utama 35 3.3.4.2 Storyboard Pilih Bidak 36 3.3.4.3 Storyboard Pilih Level 37 3.3.4.4 Storyboard Permainan Level Mudah 37 3.3.4.5 Soryboard Permainan Level Susah 39

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 42

4.1 Implementasi Sistem 42

4.1.1 Spesifikasi Perangkat Keras 42 4.1.2 Spesifikasi Perangkat Lunak 42 4.1.3 Hasil Eksekusi Aplikasi 43 4.1.3.1 Tampilan Splash Screen 43


(3)

4.1.3.2 Tampilan Menu Utama 43 4.1.3.3 Tampilan Hamalam Bantuan 44 4.1.3.4 Tampilan Halaman Tentang 44 4.1.3.5 Tampilan Halaman Play 45

4.2 Pengujian Sistem 48

4.2.1 Pengujian Aplikasi 48

4.2.1.1 Tampilan Halaman Utama 48

4.2.1.2 Play 49

4.2.1.3 Help 50

4.2.1.4 About 50

4.2.2 Pengujian Agen 50

4.2.2.1 Pengujian Agen Pertama 51 4.2.2.2 Pengujian Agen Kedua 53 4.2.2.3 pengujian Agen Ketiga 56 4.2.2.4 Pengujian Agen Keempat 59 4.2.3 Pengujian Kehandalan Agen 62

BAB 5 KESIMPULAN DAN SARAN 64

5.1 Kesimpulan 64

5.2 Saran 64


(4)

DAFTAR TABEL

Hal.

Tabel 2.1. Penelitian Terdahulu 14

Tabel 3.1. Nilai Posisi Bidak Harimau 21

Tabel 3.2. Nilai Posisi Bidak Kambing 22

Tabel 3.3. Tabel Dokumentatif Use Case Mulai Permainan 30 Tabel 3.4. Tabel Dokumentatif Use Case Bermain 31

Tabel 3.5 Tabel Storyboard Halaman Utama 36

Tabel 3.6 Tabel Storyboard Pilih Bidak 36

Tabel 3.7 Tabel Storyboard Pilih Level 37

Tabel 3.8 Tabel Storyboard Permainan Level Mudah 37 Tabel 3.9 Tabel Storyboard Permainan Level Susah 39 Tabel 4.1. Hasil Evaluasi Tampilan Halaman Utama 48

Tabel 4.2. Hasil Evaluasi Proses Play 49

Tabel 4.3. Hasil Evaluasi Tampilan Help 50

Tabel 4.4. Hasil Evaluasi Tampilan About 50

Tabel 4.5. Pengujian Agen Pertama 51

Tabel 4.6. Pengujian Agen Kedua 54

Tabel 4.7. Pengujian Agen Ketiga 57

Tabel 4.8. Pengujian Agen Keempat 59


(5)

DAFTAR GAMBAR

Hal. Gambar 2.1. Struktur Kecerdasan Buatan pada Game 8 Gambar 2.2. Pohon Permainan dari Permainan Tic Tac Toe 10 Gambar 2.3. Ilustrasi Kerja Algoritma Minimax 11 Gambar 2.4. Ilustrasi Kerja Algoritma Negamax 12

Gambar 2.5 Papan Permainan Catur Harimau 13

Gambar 3.1. Arsitektur umum 16

Gambar 3.2. Kondisi Permainan Catur Harimau 18

Gambar 3.3. Pohon Permainan Catur Harimau 19

Gambar 3.4. Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 1 25 Gambar 3.5. Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 2 25 Gambar 3.6. Pohon permainan dengan Nilai Evaluasi pada Leaf Node 26 Gambar 3.7. Proses Perubahan Nilai Node menggunakan Algoritma

Negamax pada Kedalaman 1 26

Gambar 3.8. Proses Perubahan Nilai Node menggunakan Algoritma

Negamax pada Kedalaman 2 27

Gambar 3.9. Flowchart Aplikasi 28

Gambar 3.10. Use Case Aplikasi 30

Gambar 3.11. Activity Diagram Mulai Permainan 31

Gambar 3.12. Activity Diagram Bermain 32

Gambar 3.13. Tampilan Halaman Utama 33

Gambar 3.14. Tampilan Halaman Pilih Bidak 33

Gambar 3.15. Tampilan Halaman Pilih Level 34

Gambar 3.16. Tampilan Halaman Bermain 35

Gambar 4.1. Tampilan Splash Screen 43

Gambar 4.2. Tampilan Halaman Menu Utama 43

Gambar 4.3. Tampilan Halaman Bantuan 44


(6)

Gambar 4.5. Tampilan Halaman Pilih Bidak 45

Gambar 4.6. Tampilan Halaman Pilih Level 46

Gambar 4.7. Tampilan Halaman Permainan Level Mudah 46 Gambar 4.8. Tampilan Halaman Permainan Level Susah 46 Gambar 4.9. Penjelasan Tampilan permainan Catur Harimau 47

Gambar 4.10. Tampilan Notifikasi Game Over 48