• Tidak ada hasil yang ditemukan

Permainan Catur Harimau Menggunakan Algoritma Negamax Pada Platform Android

N/A
N/A
Protected

Academic year: 2017

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

Copied!
83
0
0

Teks penuh

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

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

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

(4)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Arsitektur Umum

Gambar 3.1 Arsitektur Umum

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

(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

(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

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

(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

(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

(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

(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

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

(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

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

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

(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

(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

(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

(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

(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

(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

(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

(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

(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

[image:31.595.260.375.248.420.2]

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

[image:31.595.259.374.564.737.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

[image:32.595.259.373.335.511.2]

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

(33)
[image:33.595.259.373.79.257.2]

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

[image:33.595.259.373.417.591.2]
(34)
[image:34.595.259.373.80.256.2]

Gambar 4.6. Tampilan Halaman Pilih Level

[image:34.595.261.371.367.537.2]

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

[image:34.595.261.371.578.743.2]
(35)
[image:35.595.259.372.114.286.2]

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.

(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

[image:36.595.259.374.82.257.2]

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

[image:38.595.119.516.172.361.2]

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

[image:38.595.120.516.476.608.2]

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

(39)

4.2.2.1Pengujian Agen Pertama

[image:39.595.111.525.188.735.2]

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

(40)
[image:40.595.111.523.107.770.2]

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

(41)
[image:41.595.111.524.108.562.2]

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

(42)
[image:42.595.108.522.107.716.2]

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

(43)
[image:43.595.111.523.109.682.2]

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

(44)
[image:44.595.112.524.109.553.2]

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

(45)
[image:45.595.100.533.109.771.2]

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

(46)
[image:46.595.101.531.112.632.2]

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

(47)

4.2.2.4Pengujian Agen Keempat

[image:47.595.106.531.183.714.2]

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

(48)
[image:48.595.104.531.109.680.2]

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

(49)
[image:49.595.103.532.110.634.2]

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

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

[image:50.595.163.471.356.465.2]

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

(51)
[image:51.595.131.502.83.304.2]
(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.

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

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

(55)
[image:55.595.191.446.90.261.2]

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

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

(57)
[image:57.595.165.471.171.281.2]

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

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

[image:58.595.190.448.311.456.2]

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.

(59)

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

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

[image:59.595.242.389.195.283.2]

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

(60)
[image:60.595.215.417.229.426.2]

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.

(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

(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

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

(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

(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

(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

(67)

BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM

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

BAB 5. KESIMPULAN DAN SARAN

(68)

ABSTRAK

Permainan catur harimau adalah permainan berjenis board game yang membutuhkan strategi dan ketermpilan dari kedua pemain untuk memenangkan permainan dengan cara menghabisi semua bidak kambing untuk pemain yang menggunakan bidak harimau dan mematikan langkah bidak harimau untuk pemain yang menggunakan bidak kambing. Permainan catur harimau ini dirancang pada smartphone dengan platform android yang penggunanya terus meningkat dari tahun ketahun sehingga orang lebih banyak menggunakan smartphone masing-masing untuk bermain game. Agar user dapat bermain game pada smartphone, maka penulis mengimplementasikan algoritma negamax pada permainan catur harimau ini. Algoritma negamax merupakan algoritma pohon pencarian yang akan melakukan penelusuran pada setiap node hingga ditemukan nilai maksimum. Algoritma negamax merupakan bentuk sederhana dari algoritma minimax yang hanya menggunakan fungsi maksimal untuk mencari nilai maksimum, tidak seperti minimax yang menggunakan dua buah fungsi yaitu maksimal dan minimal sehingga penulisan code lebih sederhana. Permainan catur harimau ini dapat berjalan dengan baik pada smartphone dengan platform android.

(69)

CATUR HARIMAU GAME USING NEGAMAX ALGORITHM ON ANDROID PLATFORM

ABSTRACT

Catur harimau game is one of the board games which uses strategy and skill from both players to win the game by eliminating all of the goat pieces for tiger piece player and stop all tiger piece moves for the goat one. Catur harimau game is built on smartphone with android platform which statistic states that the users are increasing from time to time, so people use smartphone to play a game more often. In order the user can play a game on their smartphone, author implements negamax algorithm on catur harimau game. Negamax algorithm is a three search algorithm that excecutes all of the nodes until finding the maximum score. Negamax algorithm is a simple form from minimax algorithm that only uses maximal function to find the best score, unlike minimax that uses two functions, which are minimal function and maximal function in order to simplify the code. This game works well on smartphone with android platform.

(70)

PERMAINAN CATUR HARIMAU MENGGUNAKAN ALGORITMA NEGAMAX PADA PLATFORM ANDORID

SKRIPSI

DENO SUMARTA 111402040

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(71)

PERMAINAN CATUR HARIMAU MENGGUNAKAN ALGORITMA NEGAMAX PADA PLATFORM ANDORID

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

DENO SUMARTA 111402040

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(72)

PERSETUJUAN

Judul : PERMAINAN CATUR HARIMAU MENGGUNAKAN

ALGORITMA NEGAMAX PADA PLATFORM

ANDROID

Kategori : SKRIPSI

Nama : DENO SUMARTA

Nomor Induk Mahasiswa : 111402040

Program Studi : S1 TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Diketahui/ disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

Muhammad Anggia Muchtar, ST., MM.IT NIP. 19800110 200801 1 010

Pembimbing 2

Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc NIP. 19860303 201012 1 004

Pembimbing 1

(73)

-PERNYATAAN

PERMAINAN CATUR HARIMAU MENGGUNAKAN ALGORITMA NEGAMAX PADA PLATFORM ANDORID

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Juni 2016

(74)

UCAPAN TERIMA KASIH

Segala puji dan syukur penulis sampaikan kepada Tuhan Yang Maha Esa yang telah memberikan berkat-Nya yang melimpah sehingga penulis dapat menyelesaikan skripsi i

Gambar

Gambar 4.1. Tampilan Splash Screen
Gambar 4.3. Tampilah Halaman Bantuan
Gambar 4.5. Tampilan Halaman Pilih Bidak
Gambar 4.7. Tampilan Halaman Permainan Level Mudah
+7

Referensi

Dokumen terkait

Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa implementasi algoritma Minimax pada permainan congklak dapat menghasilkan langkah terbaik.. Permainan congklak

Algoritma ini menggunakan teknik depth-first search untuk melakukan proses pencarian dengan tingkat kedalaman yang terbatas dan fungsi evaluasi yang digunakan adalah

Kesimpulan merupakan ringkasan yang diambil dari pembahasan perangkat lunak yang dibuat, dimana perangkat lunak yang dibuat adalah penerapan algoritma negamax pada

Algoritma ini menggunakan teknik depth-first search untuk melakukan proses pencarian dengan tingkat kedalaman yang terbatas dan fungsi evaluasi yang digunakan adalah

Jika pada algoritma Dijkstra pencarian yang dilakukan bergantung pada cost sebenarnya dari sebuah simpul yaitu g(n), pada Greedy Best First Search fungsi evaluasi

Hasil yang diperoleh dari aplikasi yang dibangun yaitu penerapan algoritma Greedy yang dipadukan fungsi prioritas dapat membangun AI yang kompetitif untuk

Dari pengujian terhadap algoritma Minimax yang telah dilakukan oleh penulis pada aplikasi permainan catur sederhana, maka didapatkan hasil yang telah dirangkum

Yang harus dilakukan adalah memberikan nilai evaluasi pada setiap bidak dengan cara memperhitungkan beberapa factor diantaranya adalah jumlah papan, 3 daerah petak,