• Tidak ada hasil yang ditemukan

Penerapan Algoritma Monte Carlo Tree Search pada Permainan Halma

N/A
N/A
Protected

Academic year: 2017

Membagikan "Penerapan Algoritma Monte Carlo Tree Search pada Permainan Halma"

Copied!
79
0
0

Teks penuh

(1)

DAFTAR PUSTAKA

Arneson, B., Hayward, R. B., & Henderson, P. 2010. Monte Carlo Tree Search in Hex.

IEEE Transactions on Computational Intelligence and AI in Games 2(4):

251-258.

Auer, P., Cesa-Bianchi, N., & Fischer, P. 2002. Finite-Time Analysis Of The Multiarmed Bandit Problem. Machine Learning 47(2-3): 235-256.

Bell, G. I. 2009. The Shortest Game of Chinese Checkers and Related Problems.

Integers : Electronic Journal of Combinatorial Number Theory 9(1):17-39.

Browne, C. B., Powley, E., Whitehouse, D., Lucas, S. M., Cowling, P. I., Rohlfshagen, P., & Colton, S. 2012. A Survey Of Monte Carlo Tree Search Methods. IEEE

Transactions on Computational Intelligence and AI in Games 4(1): 1-43.

Chaslot, G. 2010. Monte-Carlo Tree Search. Tesis. Universiteit of Maastricht.

Chaslot, G., Bakkes, S., Szita, I. & Spronck, P. 2008. Monte-Carlo Tree Search: A New Framework for Game AI. Proceedings of the Fourth Artificial Intelligence and

Interactive Digital Entertainment Conference, pp 216-217.

Chaslot, G., Winands, M., Uiterwijk, J., van den Herik, H., & Bouzy, B. 2007. Progressive Strategies for Monte-Carlo Tree Search. In Proceedings of the 10th

Joint Conference on Information Sciences (JCIS 2007), pp. 655-661.

(2)

Elnaggar, A. A., Abdel, M., Gadallah, M., & El-Deeb, H. 2014. A Comparative Study Of Game Tree Searching Methods. International Journal of Advanced

Computer Science and Applications 5(5): 68-77.

Gelly, S., Kocsis, L., Schoenauer, M., Sebag, M., Silver, D., Szepesvári, C., & Teytaud, O. 2012. The Grand Challenge of Computer Go: Monte Carlo Tree Search and Extensions. Communications of the ACM 55(3): 106-113.

Indah, M. N. 2011. Aplikasi Permainan Halma Secara Multiplayer Dengan Metode Depth First Search. PETIR : Jurnal Pengkajian dan Penerapan Teknik Informatika 4(1):15-23.

Kocsis, L., & Szepesvári, C. 2006. Bandit Based Monte-Carlo Planning. European

Conference on Machine Learning, pp. 282-293

Lieyanda, V. 2011. Penerapan Algoritma Greedy untuk Permainan Halma. Makalah Strategi Algoritma. Institut Teknologi Bandung.

Magnuson, M. 2015. Monte Carlo Tree Search and Its Applications. Scholarly

Horizons: University of Minnesota, Morris Undergraduate Journal 2(2): 1-6.

Millington, I. & Funge, J. 2009. Artificial intelligence for games. 2nd Edition. Morgan Kaufmann: Amsterdam.

Nijssen, J. P. A. M. 2007. Playing Othello Using Monte Carlo. Strategies 22:1-9.

Russell, S. & Norvig, P. 1995. A Modern Approach. Artificial Intelligence. Prentice-Hall: New Jersey.

(3)

Schaeffer, J. 2000. The Games Computers (and People) Play. Advances in Computers

52:189-166.

Schwab, B. 2009. AI Game Engine Programming. Nelson Education: Canada.

Turocy, T. L. & von Stengel, B. 2001. Game Theory. CDAM Research Report.

Van der Kleij, A. A. J. 2010. Monte Carlo Tree Search And Opponent Modeling Through Player Clustering In No-Limit Texas Hold’em Poker. Tesis. University of Groningen, The Netherlands.

Walker, D. 2011.Halma, Grasshopper & Chinese Checkers. Traditional Board Game Series.

Winands, M. H., Bjornsson, Y., & Saito, J. T. 2010. Monte Carlo Tree Search in Lines of Action. IEEE Transactions on Computational Intelligence and AI in Games

(4)

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Arsitektur Umum

Dalam penelitian ini digunakan arsitektur umum yang berfungsi untuk mengatur proses-proses yang berlangsung selama aplikasi permainan Halma dijalankan. Adapun arsitektur umum dari sistem yang akan dibangun dapat dilihat pada Gambar 3.1.

Gambar 3.1. Arsitektur Umum

Arsitektur umum pada Gambar 3.1 memperlihatkan user sebagai humanplayer

bermain sebagai pemain pertama yang memindahkan pion. Setelah pion user berpindah, maka kondisi permainan pun berubah. Kemudian AI menentukan langkah pion

Proses

Pencarian langkah pion dengan MCTS

Kondisi Permainan Saat itu

Tree Policy

Default Policy

Cari jalur langkah pion dengan DFS

AI memindahkan pion Backpropagation

(5)

berdasarkan kondisi permainan saat itu dengan mencari setiap kemungkinan langkah yang tersedia.

Proses yang dilakukan AI untuk bermain dimulai dari proses pencarian langkah pion yang dilakukan oleh algoritma MCTS. Proses pencarian algoritma MCTS dilakukan secara berulang selama batas x yang ditentukan. Proses pencarian dimulai dari tree policy (selection dan expansion), default policy (simulation), kemudian

backpropagation. Setelah proses tersebut berakhir, maka dilakukan pemilihan final move dari hasil evaluasi MCTS yang diperoleh. Selanjutnya pencarian jalur langkah pion yang terpilih menuju posisi langkah terpilih ditentukan oleh algoritma DFS.

Permainan antara user dan AI terus berlangsung hingga akhir permainan. Akhir permainan Halma adalah saat salah satu pemain dapat menyusun seluruh pion ke daerah seberang. Jika hal itu terjadi, maka pemain tersebut dinyatakan sebagai pemenangnya.

3.2. Analisis

Tahap analisis merupakan tahapan yang menjelaskan cara kerja algoritma-algoritma yang digunakan untuk menyelesaikan permainan Halma.

3.2.1.Ilustrasi Permainan Halma

Ilustrasi permainan Halma digunakan untuk membantu dalam tahap analisis yang akan dilakukan. Pada penelitian ini, bentuk papan permainan Halma yang digunakan berbentuk persegi ukuran 16×16, seperti yang terdapat pada Gambar 2.6. Karena permainan Halma ini sangat bergantung pada posisi pion, maka bentuk papan permainan Halma tersebut dapat direpresentasikan pada bidang koordinat titik (x,y) yang menjadi titik posisi pion atau langkah yang akan diambil pion.

(6)

15

Gambar 3.2. Ilustrasi Permainan Halma Sebagian pada Bidang Koordinat

Terdapat 8 arah langkah yang dapat dilakukan pion Halma, seperti yang diperlihatkan pada Gambar 3.3. Arah langkah pion dapat dilakukan ke arah atas, bawah, kanan, kiri, kanan-atas, kanan-bawah, kiri-atas, dan kiri-bawah.

Gambar 3.3. Delapan Arah Langkah Pion Halma

Terdapat 3 jenis langkah pion Halma yang harus memenuhi kondisi berikut ini : 1. Langkah biasa, yaitu langkah ke segala arah sekali jika ada daerah kosong

disekitar pion.

2. Langkah lompatan sekali, jika hanya ada satu pion yang dapat dilompati.

A B D F

(7)

3. Langkah lompatan berkali-kali, dilakukan selama masih ada satu pion yang

Gambar 3.4. Langkah-Langkah yang Dapat Dilakukan Pion A

Pada Gambar 3.4 diberikan contoh dari ketiga jenis langkah pion Halma yang dapat dilakukan pion A pada posisi (7,6). Langkah pion diberi label dengan kombinasi huruf sesuai dengan label huruf pion dan angka urut yang berbeda tiap posisi langkah pion. Ketiga jenis langkah pion A dikelompokkan pada Table 3.1.

Tabel 3.1. Keterangan Langkah Pion A Jenis Langkah Posisi Langkah Langkah biasa A1(6,7); A6(8,6); A8(7,5);

A9(6,5); A10(6,6)

Langkah lompatan sekali A2(7,8); A3(9,8); A7(9,4) Langkah lompatan berkali-kali A4(9,10); A5(11,10)

(8)

3.2.2. Analisis Algoritma MCTS pada Permainan Halma

Algoritma MCTS digunakan untuk memilih pion yang ingin digerakkan dan menentukan langkah tujuan pion berdasarkan strategi yang digunakan. Strategi yang dimaksud adalah tree policy (penentuan skor permainan), default policy (penentuan langkah simulasi) dan pemilihan langkah akhir (finalmove). Strategi tersebut kemudian dimasukkan dalam proses pencarian algoritma MCTS.

3.2.2.1. Strategi Penentuan Skor Permainan

Penentuan skor permainan Halma dilakukan pada saat treepolicy yang meliputi tahap

selection dan expansion. Skor permainan ditentukan berdasarkan pada posisi pion. Semakin dekat posisi pion dengan posisi tujuan, maka semakin besar skor yang diberikan. Skor ini akan menentukan kemenangan yang diperoleh.

Pemberian skor permainan Halma tergantung pada daerah posisi pion dan jarak posisi pion dengan titik tujuan terjauh. Untuk menghitung jarak antara titik posisi pion dengan titik tujuan terjauh digunakan rumus perhitungan jarak titik pada bidang koordinat sebagai berikut.

Jp/l = √ x2 - x1 2 + (y2 - y1)2

Dimana : Jp/l = jarak posisi pion/langkah dengan titik tujuan terjauh (x1,y1) = posisi pion atau posisi langkah pion

x2,y2 = titik tujuan terjauh (15,15)

Penentuan skor permainan Halma mengikuti kondisi berikut ini : 1. Setiap pion yang berada di daerah tujuan diberi skor +450 2. Setiap pion yang berada di daerah asal diberi skor -450.

3. Jumlah pion diantara daerah asal dan tujuan dikalikan dengan +(450 - Jp2). 4. Jika seluruh pion sudah berada di daerah tujuan maka diberi skor +100000000.

3.2.2.2. Strategi Langkah Simulasi

Pada saat proses simulasi, langkah yang dilakukan berdasarkan default policy yang ditetapkan. Defaultpolicy langkah simulasi MCTS pada penelitian ini tidak dilakukan secara purerandom tetapi menggunakan strategi yang bersifat heuristik.

(9)

Setiap langkah permainan Halma saat simulasi akan diberikan weight

berdasarkan posisi dan langkah pion. Berikut ini ketentuan pemberian weight untuk langkah simulasi :

1. Jika posisi pion berada di daerah tujuan dan langkah yang akan dilakukan berada di luar daerah tujuan maka diberi weight -1000.

2. Jika posisi pion tidak berada di daerah tujuan dan langkah yang akan dilakukan berada di dalam daerah tujuan maka langkah tersebut diberi weight +1000. 3. Jika posisi pion berada di daerah tujuan dan langkah yang akan dilakukan

berada di daerah tujuan diberikan weight = 0.

4. Jika posisi pion tidak berada di daerah tujuan dan langkah pion tidak berada daerah tujuan maka weight yang diberikan menggunakan rumus berikut :

Jp2 - Jl

Dimana : Jp dan Jl mengikuti persamaan 3.1.

5. Jika tinggal satu pion yang tidak berada di daerah tujuan dan langkah yang dapat dilakukan pion berada di daerah tujuan, maka weight yang diberikan sebesar +100000000.

3.2.2.3. Proses Pencarian dengan Algoritma MCTS

Proses algoritma pencarian MCTS dilakukan secara berulang-ulang hingga batas yang ditentukan. Batasan dapat berupa jumlah iterasi, waktu, atau memori. Batasan yang digunakan dalam penelitian ini adalah jumlah iterasi. Semakin banyak jumlah iterasi maka semakin baik hasil evaluasi dari simulasi yang diperoleh. Namun, proses akan sedikit lebih lama sesuai dengan banyaknya kemungkinan state yang ada pada suatu permainan (Chaslot, 2010).

Analisa algoritma MCTS kali ini dilakukan pada contoh kondisi (state) permainan Halma yang dapat dilihat pada Gambar 3.5. Analisa cukup dilakukan untuk 2 pemain pada kondisi permainan sebagian saja, mengingat state permainan Halma yang sangat banyak. Gambar 3.5 mengilustrasikan state sebagian permainan Halma dengan jumlah pion tiap pemain 6 buah beserta titik koordinat dari sisi pion merah. Label huruf mewakili pion sedangkan label huruf dan angka mewakili langkah yang dapat diambil pion tersebut.

(10)

15 F8 A1 A2 A3

Gambar 3.5. State Permainan Halma Sebagian

Pencarian langkah pion pada permainan Halma melewati 4 tahap algoritma MCTS yaitu selection, expansion, simulation, dan backpropagation. Pada saat proses pencarian, algoritma MCTS membangun tree berdasarkan kondisi permainan saat itu. Setiap node merepresentasikan langkah-langkah yang dapat dilakukan pion. Berikut ini akan diuraikan keempat tahap pencarian algoritma MCTS tersebut untuk penentuan langkah pion pada permainan Halma :

1. Selection

Tahap pertama yaitu tahap selection, tree ditelusuri secara rekursif dan memilih node

yang belum dikunjungi secara random. Jika seluruh child node sudah pernah dikunjungi, maka dipilih child node yang memiliki skor terbesar secara random.

(11)

= Root Node

Gambar 3.6 memperlihatkan node yang merepresentasikan sebagian langkah yang dapat dilakukan pion A, B, C, D, dan seterusnya. Pemilihan node terbaik berdasarkan skor yang tertinggi. Skor tersebut juga akan digunakan dalam perhitungan rumus UCB. Berikut ini perhitungan skor yang dilakukan untuk setiap node :

a. A3 (15,15)

- Skor pion di daerah tujuan = 2 × 450 = 900, yaitu pion A dan F - Skor pion di antara daerah asal dan tujuan, yaitu pion B, C, D, E.

B = 450 - JB 14,112 = 450- 15 - 14 2 + 15 - 11 22 = 450 - 17 = 433 - Skor pion di antara daerah asal dan tujuan yaitu pion B = 433,

C3 = 450 - JC3 10,11 2 = 450- √ 15 - 10 2 + 15 - 11 2

2

(12)

D = 344, dan E = 350.

dapat dilihat pada Gambar 3.7.

= Root Node

Gambar 3.7. Pemilihan Node D3

(13)

15 G7

Gambar 3.8. State Permainan Node D3 (10,10)

2. Expansion

Selanjutnya, tahap expansion menambahkan node baru pada node yang terpilih. Node

yang ditambahkan adalah langkah-langkah yang mungkin dilakukan oleh pemain selanjutnya. Berdasarkan state permainan pada Gambar 3.8, semua node langkah pion kuning akan ditambahkan ke node D3, termasuk node I2. Perhatikan Gambar 3.9.

= Root Node

Gambar 3.9. Penambahan Node Baru

(14)

Gambar 3.10 memperlihatkan state permainan node I2 beserta titik koordinat dari sisi pion kuning. Perpindahan pion I dari posisi awal (7,6) menuju posisi tujuan I2 (7,8). Selain itu, Gambar 3.10 menunjukkan sebagian kemungkinan langkah yang dapat dilakukan pion merah yang akan digunakan untuk analisa pada proses selanjutnya yaitu simulation.

Gambar 3.10. State Expansion Node Langkah I2 (7,8)

3. Simulation

Proses simulation dilakukan dari node yang ditambahkan. Proses simulation dilakukan hingga gerakan kedua. Sehingga jumlah langkah simulasi 3 kali untuk 2 pemain dan 7 kali untuk 4 pemain. Simulasi tidak memungkinkan untuk dilakukan hingga akhir permainan dikarenakan kemungkinan state permainan Halma yang sangat banyak. Pada Gambar 3.11 dapat dilihat proses simulation pada tree dengan 2 pemain.

(15)

C3

Gambar 3.11. Langkah Simulasi hingga 2 kali Gerakan Pion Merah

Defaultpolicy saat proses simulation menggunakan strategi simulasi yang sudah

ditentukan sebelumnya. Hanya 4 langkah terbesar saja yang akan dipilih secara acak. Semua kemungkinan langkah disortir membesar kemudian dipilih secara acak 4 index

array yang terbesar. Misalnya, kemungkinan langkah ada 16, maka index array yang

dipilih adalah {12,13,14,15} secara acak.

Sebagai contoh analisis dalam menentukan 4 langkah terbaik akan dihitung untuk satu kemungkinan langkah pada setiap pion saja yaitu A7, B3, C4, D3, E3, F2 yang ditunjukkan pada Gambar 3.10, sebagai berikut :

a. Langkah A7 memiliki weight -1000 karena pion A berada didalam daerah tujuan dan langkah A7 keluar dari daerah tujuan.

(16)

c. Langkah C4, D3, dan E1 memiliki weight yang menggunakan persamaan 3.2 dan perhitungan jarak pion menggunakan persamaan 3.1. Perhitungan weight

langkah-langkah tersebut adalah sebagai berikut.

- C (9,10) → C4 (11,10) langkah yang F2 berada di daerah tujuan.

(17)

C3

Gambar 3.12. Langkah Simulasi Pertama Node C4 Dipilih secara Acak

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Gambar 3.13. State Permainan Simulasi Pertama C (11,10)

(18)

Perhitungan yang sama dilakukan untuk menentukan langkah pion kuning selanjutnya pada langkah G3, H1, I2, J3, K3, L3 yang dapat dilihat pada Gambar 3.13, sebagai berikut :

a. Langkah L3 memiliki weight = 0. b. Langkah K3 memiliki weight +1000.

c. Langkah G3, H1, I2, J3 memiliki weight yang menggunakan persamaan 3.2 dan perhitungan jarak pion menggunakan persamaan 3.1. Perhitungan weight

langkah-langkah tersebut adalah sebagai berikut.

- G (2,2) → G3 (3,3)

(19)

K3} = {0, 123; 154,21, 174,80; 354,97; 1000}. Maka diambil 4 langkah terbesar yaitu J3, H1, G3, K3, kemudian dipilih secara acak dari ke-4 langkah tersebut. Perhatikan Gambar 3.14 langkah acak yang dipilih adalah node langkah G3.

C3

Gambar 3.14. Langkah Simulasi Kedua Node G3 Dipilih secara Acak

State permainan untuk langkah simulasi kedua yang dipilih secara acak yaitu

(20)

15 F5 F1 A2 A3

Gambar 3.15. State Permainan Simulasi Kedua G (3,3)

Selanjutnya perhitungan yang sama untuk langkah simulasi ketiga untuk pion merah : a. Langkah B2 memiliki weight +1000

(21)

Jl= √ 15-8 2+ 15-10 2= √49+25= √74= 8,60

Dari perhitungan yang telah dilakukan, weight yang didapatkan untuk masing-masing langkah diurutkan dari yang terendah hingga tertinggi yaitu {F4, A2, C4, D10, E3, B2} = {-1000; 0; 46,83, 58,60; 109,43; 1000}. Maka diambil 4 langkah terbesar yaitu C4, D10, E3, B2, kemudian dipilih secara acak dari ke-4 langkah tersebut. Perhatikan Gambar 3.16 langkah acak yang dipilih adalah node langkah D10.

C3

(22)

Perubahan State permainan untuk langkah simulasi ketiga dapat dilihat pada

Gambar 3.17. State Permainan Langkah Simulasi Ketiga D10 (8,10)

Pada Gambar 3.17 memperlihatkan state permainan pada langkah simulasi ketiga. Perpindahan pion D berawal dari posisi (10,10) menuju posisi tujuan D10 (8,10). Setelah proses simulasi selesai dilakukan, kemudian dihitung skor permainan yang akan digunakan pada tahap backpropagation untuk pemain pion merah berdasarkan state

permainan pada Gambar 3.17 berikut :

- Skor pion di daerah tujuan = 2 x 450 = 900 yaitu pion A dan F

- Skor pion yang berada di antara daerah asal dan tujuan yaitu pion B = 433,

(23)

4. Backpropagation

Proses selanjutnya adalah backpropagation yaitu skor dari node-node yang disimulasikan dirata-ratakan untuk memperbaharui statistik skor hingga ke node parent-nya secara rekursif sampai node paling atas (tidak sampai root node). Maka didapatkan rata-rata skor akhir node D3̅̅̅̅ = ∑NWD3

D3 =

2468 + … + …

ND3 . Dimana ND3 adalah jumlah childnode yang dikunjungi dan ∑WD3 adalah jumlah skor yang didapat dari semua childnode D3.

Proses pembaharuan statistik skor dari childnode menuju nodeparent-nya dapat dilihat pada Gambar 3.18. Skor dari childnode I2 yang dihitung serta childnode lainnya juga diperbaharui hingga ke nodeparent-nya yaitu D3. Dari node D3, setiap skor dari

child node dirata-ratakan dan menjadi skor node parent D3. Setelah proses

backpropagation, proses pencarian algoritma MCTS kembali dilakukan berulang

hingga batasan yang ditentukan.

Gambar 3.18. Update Statistik Skor hingga ke Node Parent

3.2.2.4. Pemilihan Final Move

(24)

yang memiliki skor evaluasi tertinggi, yang disebut juga dengan MaxChild. Pemilihan

finalmove pada node dengan skor tertinggi dapat dilihat pada Gambar 3.19.

= Root Node

Gambar 3.19. Pemilihan Final Move dengan Skor Tertinggi

3.2.3. Analisis Algoritma DFS

Jika langkah pion yang ditentukan algoritma MCTS merupakan langkah lompatan berkali-berkali. Maka jalur langkah yang ditempuh pion ditentukan oleh algoritma DFS. Pada penelitian ini tidak mencari jalur langkah terpendek yang dapat ditempuh pion dalam langkah lompatan berkali-kali.

Urutan pengecekan algoritma DFS dimulai dari arah atas, bawah, kanan, kiri, kanan-atas, kiri-atas, kanan-bawah, kiri-bawah. Pengecekan dilakukan untuk melihat langkah yang diizinkan yaitu langkah lompatan saja. Proses pencarian langkah lompatan berkali-kali dilakukan pada contoh kondisi Gambar 3.20, dimana pion A akan digerakkan menuju posisi A10.

Gambar 3.20. Langkah Lompatan Berkali-kali Pion A

A

(25)

Berdasarkan Gambar 3.20, langkah-langkah yang dapat dilakukan pion A ditampilkan dengan label A1 hingga A12. Posisi langkah yang akan dipilih AI untuk melangkah untuk pion A adalah posisi A12, yang merupakan langkah lompatan berkali-kali. Proses pencarian jalur langkah pion A menuju posisi A12 menggunakan algoritma DFS digambarkan pada searchtree pada Gambar 3.21.

A

A7 A6

A6 A11 A12

A11 A12

A5

A8 A9

Gambar 3.21. Search Tree Algoritma DFS untuk Langkah A Menuju Posisi A12

Berikut ini penjelasan dari proses pencarian jalur langkah pion A menuju posisi A10 dengan algoritma DFS :

1. Dari posisi A sebagai rootnode bangkitkan childrennode sesuai dengan urutan pengecekan 8 arah. Ditemukan langkah lompatan berturut-turut dari A5, A7, dan A6 menjadi childrennode.

2. Dari root node kunjungi child node A5. Bangkitkan children node A5 sesuai urutan pengecekan. Ditemukan langkah lompatan A8.

3. Kunjungi node A8 dan bangkitkan childrennode-nya. Node A8 tidak memiliki

childrennode dan bukan solusi, maka kembali ke rootnode untuk mengunjungi

childnode selanjutnya yaitu node A7.

(26)

5. Dari node A7 kunjungi node A6. Ditemukan solusi pada node A6 dan bangkitkan children node-nya sesuai urutan pengecekan. Ditemukan children node A11 dan A12.

6. Dari node A6 kunjungi node A11 dan bangkitkan childrennode nya. Node A11 tidak memiliki children node dan bukan solusi, maka kembali ke parentnode

A6 untuk mengunjungi node A12.

7. Node A12 tidak memiliki childrennode dan ditemukan solusi pada node A12. Dari proses pencarian yang digambarkan pada Gambar 3.21, didapatkan jalur penelusuran node yaitu A-A5-A8-A5-A-A7-A6-A11-A12, dari root node dipilih jalur langkah node A7, dimana jalur langkah yang akan ditempuh pion A menuju posisi A12 yaitu A-A7-A6-A11-A112, dapat dilihat pada Gambar 3.22.

A

Gambar 3.22. Jalur Langkah Lompatan Berkali-kali Pion A

3.3. Perancangan

Tahap perancangan sistem dilakukan sebagai tahap persiapan sebelum tahap penerapan dan pengujian sistem. Pada bagian ini penulis menguraikan bagan alir (flowchart) sistem, pemodelan visual menggunakan UML, dan perancangan antarmuka aplikasi.

3.3.1. Pemodelan Visual dengan UML

Dalam tahap pemodelan ini digunakan bahasa visual Unified Modelling Language

(UML), berupa diagram Use Case dan diagram Activity.

A

(27)

3.3.1.1. Diagram Use Case

Diagram Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Berikut ini diagram UseCase dari sistem yang akan dibangun.

Gambar 3.23. Diagram Use Case

Diagram Use Case pada Gambar 3.23 memperlihatkan bahwa user dapat memilih permainan baru (NewGame), melihat cara bermain (HowtoPlay), dan melihat informasi aplikasi (About). Setelah memilih permainan baru, user kemudian memilih bermain dengan 2 pemain (TwoPlayers) atau 4 pemain (FourPlayers). User kemudian dapat bermain dengan AI sesuai dengan jumlah pemain yang dipilih.

Pada saat bermain, user dapat melihat langkah yang diizinkan. Agar AI dapat bermain, AI terlebih dahulu mengevaluasi langkah menggunakan algoritma MCTS. Kemudian AI melakukan pencarian jalur langkah oleh algoritma DFS. Langkah user juga dicek jalur langkahnya oleh AI.

3.3.1.2. Diagram Activity

Diagram Activity memodelkan urutan aktivitas dalam sebuah proses dalam sistem yang sedang dirancang. Manfaat dari diagram ini yaitu untuk membantu memahami proses secara keseluruhan. Pemodelan diagram Activity memodelkan aktifitas yang terjadi saat

user memilih New Game serta saat user dan AI bermain. Berikut ini adalah diagram

(28)

1. Diagram Activity NewGame dengan TwoPlayers

Diagram Activity ini menunjukkan bagaimana user memulai permainan baru dengan 2 pemain yaitu antara user dan AI.

Gambar 3.24. Diagram Activity New Game dengan Two Players

2. Diagram Activity NewGame dengan FourPlayers

Diagram Activity ini menunjukkan bagaimana user memulai permainan baru dengan 4 pemain yaitu antara 1 user dan 3 AI.

(29)

3. Diagram ActivityUser Bermain

Diagram Activity ini menggambarkan aktivitas saat giliran user bermain. User

bermain dengan memilih pion yang ingin digerakkan dan memilih posisi langkah pion yang ditampilkan oleh sistem. Kemudian AI mencari jalur langkah dan menggerakkan pion menuju posisi langkah yang dipilih user. Jika permainan berakhir, yaitu didapatkan pemenangnya, maka sistem akan menampilkan hasil permainan yaitu nama pemenang. Sedangkan, jika permainan belum berakhir maka sistem memberi giliran ke AI untuk bermain.

(30)

4. Diagram Activity AI Bermain

Diagram Activity ini menggambarkan aktivitas saat giliran AI bermain. AI bermain dengan mengecek kondisi permainan kemudian mengevaluasi setiap langkah yang tersedia dan menentukan posisi langkah pion. Kemudian AI mencari jalur langkah dan menggerakkan pion menuju posisi langkah yang dipilih AI. Jika permainan berakhir, maka sistem akan menampilkan hasil permainan yaitu nama pemenang. Sedangkan, jika permainan belum berakhir maka sistem memberi giliran ke user

untuk bermain.

(31)

3.3.2. Flowchart Aplikasi

Flowchart aplikasi memperlihatkan bagaimana proses interaksi yang dapat dilakukan

user terhadap aplikasi permainan yang dibuat.

Gambar 3.28. Flowchart Aplikasi

3.3.3. Perancangan Antarmuka

Pada tahap ini dilakukan perancangan antarmuka (interface) aplikasi permainan Halma. Antar muka aplikasi yang dirancang terdiri atas tampilan utama, tampilan game mode

dan tampilan bermain.

3.3.3.1. Tampilan Utama

(32)

New Game

How to Play

About

HALMA

1

4

2

3

Gambar 3.29. Rancangan Tampilan Utama

Keterangan :

1. Gambar dengan tulisan ‘Halma’ menunjukkan nama aplikasi permainan.

2. Tombol ‘NewGame’ untuk memulai permainan baru dengan pilihan mode

permainan pada tampilan GameMode.

3. Tombol ‘HowtoPlay’ memperlihatkan cara bermain dan tujuan permainan.

4. Tombol ‘About’ memperlihatkan informasi mengenai pengembangan aplikasi.

3.3.3.2.Tampilan Game Mode

(33)

Two Players

Four Players

Back

Game Mode

1

4

2

3

Gambar 3.30. Rancangan Tampilan Game Mode

Keterangan :

1. Gambar dengan tulisan ‘Game Mode’ menunjukkan nama tampilan.

2. Tombol ‘Two Players’ untuk memulai permainan dengan 1 AI

3. Tombol ‘Four Players’ untuk memulai permainan dengan 3 AI.

4. Tombol ‘Back’ untuk kembali ke tampilan utama.

3.3.3.3. Tampilan Game

(34)

End Game 1

2

3 4 6

5 Total turns :

7

8

9

10 11

Gambar 3.31. Rancangan Tampilan Game

Keterangan :

1. Papan permainan Halma

2. Daerah asal pion merah / daerah tujuan pion kuning sebagai AI 1/3. 3. Daerah asal pion biru / daerah tujuan pion hijau.

4. Daerah asal pion kuning / daerah tujuan pion merah. 5. Daerah asal pion hijau / daerah tujuan pion biru.

6. Tampilan informasi pemain 1 dengan pion merah yaitu user. 7. Tampilan informasi pemain 2 dengan pion biru/kuning yaitu AI 1. 8. Tampilan informasi pemain 3 dengan pion kuning/hijau yaitu AI 2. 9. Tampilan informasi pemain 4 dengan pion hijau yaitu AI 3.

(35)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1.Implementasi

Tahap implementasi merupakan tahapan dalam membuat dan menjalankan aplikasi sesuai dengan hasil analisis dan perancangan sistem sebelumnya. Implementasi sistem dilakukan untuk mengetahui sistem yang dirancang dapat berjalan sesuai dengan yang diinginkan

4.1.1. Spesifikasi Perangkat Keras

Perangkat keras yang digunakan dalam membangun dan menjalankan aplikasi permainan Halma memiliki spesifikasi sebagai berikut :

1. Prosesor : Intel(R) Core(TM)i5-2410M CPU @ 2.30GHz 2. RAM : 2,7 GB

3. Harddisk : 500 GB 4. Monitor : 12”

5. Resolusi : 1366 x 768

4.1.2. Spesifikasi Perangkat Lunak

Aplikasi permainan Halma ini dibuat dengan bahasa program Java dan game engine LibGDX. Perangkat lunak yang digunakan dalam membangun dan menjalankan aplikasi permainan Halma adalah Netbeans IDE pada sistem operasi Windows 8.1 Pro 32 bit.

4.1.3. Hasil Eksekusi Aplikasi

(36)

4.1.3.1. Tampilan Utama

Saat mulai menjalankan aplikasi, akan muncul tampilan utama yang dapat dilihat pada Gambar 4.1. Tampilan ini berisi 3 pilihan menu yaitu New Game untuk memulai permainan baru, How to Play untuk mengetahui cara bermain, dan About untuk mengetahui informasi mengenai aplikasi.

Gambar 4.1. Tampilan Utama

4.1.3.2. Tampilan Game Mode

Tampilan Game Mode muncul setelah memilih tombol New Game pada tampilan utama. Pada tampilan ini user dapat memilih mode permainan dengan memilih menu

TwoPlayers untuk bermain dengan 1 AI atau FourPlayers untuk bermain dengan 3 AI.

(37)

Gambar 4.2. Tampilan Game Mode

4.1.3.3. Tampilan Game

Tampilan Game merupakan tampilan dimana user dan AI bermain. Untuk jumlah 2 pemain maka tampilan permainan seperti diperlihatkan pada Gambar 4.3 (a). Pion user

berwarna merah dan bermain dengan pion AI berwarna kuning yang letakknya saling berseberangan.

(38)

(a)

(b)

(39)

4.2. Pengujian

Tahap pengujian merupakan tahap dimana aplikasi dan AI akan diuji untuk mengetahui apakah sesuai dengan hasil analisis dan perancangan yang dilakukan sebelumnya.

4.2.1. Pengujian Proses Bermain

Pengujian ini dilakukan untuk menunjukkan proses bermain dari awal hingga akhir sehingga dapat diketahui proses bermain berjalan sesuai dengan yang diharapkan. Untuk memulai bermain user memilih menu New Game, kemudian memilih jumlah pemain. Pengujian proses bermain dilakukan untuk jumlah 2 pemain.

Pion user berwarna merah dan mendapatkan giliran yang pertama. Posisi pion

user berseberangan dengan pion kuning. Panel info yang diberi garis tepi sesuai warna pion pemain, menunjukkan giliran pemain saat itu. User memilih pion dengan mengklik kanan pada pion yang ingin dipindahkan. Maka langkah yang diizinkan untuk pion yang dipilih muncul dengan kotak berwarna biru muda, seperti diperlihatkan pada Gambar 4.4.

Gambar 4.4. Kotak Biru Menunjukkan Langkah yang Diizinkan

(40)

Gambar 4.5. Pion User Berpindah

Pada Gambar 4.5 panel info Moves bertambah 1 setelah pemain melakukan langkah. Status saat giliran pemain adalah Playing sedangkan jika bukan giliran pemain maka status pemain adalah Waiting seperti yang diperlihatkan panel info pemain AI.

Total turns saat awal permainan dimulai dari 1. Selanjutnya pemain AI akan langsung

bermain dengan memindahkan pionnya, yang dapat dilihat pada Gambar 4.6.

Panel info pemain AI berubah dengan diberi warna garis tepi panel sesuai warna pion. Status pemain juga berubah menjadi Playing sedangkan status user menjadi

Waiting. Moves pada panel info pemain AI juga terhitung 1. Thinkingtime menghitung

(41)

Gambar 4.6. Giliran Pemain AI Memindahkan Pion

Kemudian permainan berlangsung pada giliran-giliran berikutnya. Pada Gambar 4.7 dapat dilihat langkah lompatan yang dilakukan pemain user dan AI.

Gambar 4.7. Langkah Lompatan Pion User dan AI

Pada Gambar 4.7 dapat dilihat informasi pada panel info pemain juga berubah.

(42)

time pemain AI berubah menjadi 66 ms, menunjukkan proses menentukan langkah pion bertambah lama. Total turns menjadi 5 yang artinya total giliran hingga pemain selanjutnya adalah giliran ke-5.

Setelah beberapa giliran hingga pertengahan permainan, dapat dilihat pada Gambar 4.8 sebaran pion pemain AI mengarah ke daerah tujuan. Hal ini dikarenakan penentuan langkah pion AI menggunakan algoritma MCTS sesuai dengan strategi perhitungan jarak yang mengarah ke titik tujuan terjauh.

Gambar 4.8. Sebaran Pion AI Mengarah ke Daerah Tujuan

Pada Gambar 4.8 menunjukkan Moves ke 24 dengan total giliran 49, pion AI dan user sudah berada di tengah papan permainan. AI cenderung meninggalkan pion dibelakangnya dan lebih memilih langkah terjauh. Thinking time AI saat tengah permainan juga semakin lama yaitu 206 ms. Hal ini menunjukkan semakin banyak langkah yang tersedia semakin lama pula waktu proses algoritma MCTS

(43)

Gambar 4.9. Dialog Konfirmasi End Game

Jika user ingin mengakhiri permainan maka panel akhir permainan akan muncul dan menentukan pemenang dari score jumlah pion di daerah tujuan paling banyak. Pada Gambar 4.10 menunjukkan pemain user sebagai pemenangnya karena pion user di daerah tujuan ada 9 lebih banyak dari jumlah pion pemain AI yaitu 8. Total turns saat permainan diakhiri pada giliran ke 127.

(44)

Gambar 4.10. Panel Akhir Permainan Halma Belum Selesai

(45)

4.2.2. Pengujian Batas Jumlah Iterasi MCTS

Batas iterasi proses algoritma MCTS yang digunakan dalam penelitian ini adalah jumlah iterasi. Pengujian batas iterasi dilakukan untuk melihat total giliran paling sedikit yang diperoleh dari jumlah iterasi yang diuji. Pengujian dilakukan 10 kali antara AI dengan AI masing-masing untuk tiap jumlah iterasi 70, 100, 250, dan 500 pada mode permainan Two Players dan Four Players. Hasil pengujian batas iterasi dapat dilihat pada Tabel 4.1.

Tabel 4.1. Hasil Pengujian Batas Iterasi (a) Two Players dan (b) Four Players (a)

(46)

4.2.3. Pengujian Kemampuan AI terhadap User

Pengujian kemampuan antara user sebagai human player dan AI yang menggunakan algoritma MCTS dalam menyelesaikan permainan Halma dilakukan 10 kali masing-masing untuk mode permainan TwoPlayers dan FourPlayers. Batas iterasi MCTS yang digunakan berupa jumlah iterasi sebanyak 500 kali. Hasil pengujian untuk mode permainan TwoPlayers dapat dilihat pada Tabel 4.2.

Tabel 4.2. Hasil Pengujian Kemampuan AI terhadap User pada Mode Two Players terlama diperoleh dari kemenangan AI sebanyak 152. Total giliran terpendek diperoleh dari kemenangan AI sebanyak 116 giliran. Total giliran terpendek yang diperoleh tidak berbeda jauh dengan total giliran terpendek yang diperoleh pada pengujian batas iterasi sebelumnya yaitu 113.

(47)

Tabel 4.3. Hasil Pengujian Kemampuan AI terhadap User pada Mode Four banyak dari mode TwoPlayers. Sehingga peluang pemain AI memenangkan permainan sebesar 80%. Total giliran terlama diperoleh dari kemenangan AI sebanyak 265 giliran. Total giliran terpendek sebanyak 195 giliran diperoleh dari kemenangan AI. Total giliran terpendek tidak berbeda jauh dengan total giliran terpendek yang diperoleh pada pengujian batas iterasi sebelumnya yaitu 192.

(48)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil pembahasan dari penelitian yang telah dilakukan, maka dapat diambil kesimpulan sebagai berikut :

1. Algoritma Monte Carlo Tree Search (MCTS) dapat diterapkan untuk menentukan langkah pion Halma sehingga permainan Halma dapat diselesaikan dengan jumlah 2 pemain atau 4 pemain.

2. Strategi pemberian skor dan strategi langkah simulasi berdasarkan posisi pion dan jarak posisi pion dengan posisi tujuan terjauh cukup efektif digunakan saat proses algoritma MCTS mencari langkah terbaik pion Halma.

3. Berdasarkan pengujian yang dilakukan, AI dapat menyelesaikan permainan Halma dengan total giliran terpendek sebanyak 113 giliran untuk 2 pemain dan 192 giliran untuk 4 pemain.

4. Berdasarkan pengujian yang dilakukan, AI dapat memenangkan permainan lebih banyak dari pemain manusia.

5.2. Saran

Saran yang dapat penulis berikan untuk penelitian selanjutnya adalah :

1. Penyelesaian permainan Halma dengan algoritma MCTS dapat dibandingkan dengan algoritma pencarian klasik lain seperti algoritma Alpha-Beta.

2. Algoritma MCTS diharapkan dapat diterapkan pada varian permainan Halma dengan kompleksitas yang lebih tinggi, misalnya untuk jumlah 6 pemain dengan bentuk papan permainan bintang segi enam.

(49)

2.1.Game

Game atau permainan merupakan sebuah sistem yang melibatkan pemain dalam suatu permasalahan dengan aturan tertentu sehingga menciptakan hasil yang dapat diukur (Salen & Zimmerman, 2003). Sebagai sistem, game menyediakan situasi dimana pemain dapat berinteraksi. Game memerlukan satu atau lebih pemain untuk menyelesaikan suatu permasalahan yang dibuat. Permasalahan dalam game dibuat dengan berbagai bentuk yang dapat diselesaikan secara kerjasama atau kompetitif. Bagian penting lainnya dari game adalah aturan yang dibuat untuk memberi batas apa yang pemain bisa lakukan dan yang tidak. Pada akhir permainan, pemain menerima hasil menang / kalah atau skor dalam bentuk angka.

Russel & Norvig (1995) mendeskripsikan sebuah game sebagai jenis masalah pencarian dengan komponen-komponen berikut:

a. The initial state¸ yaitu keadaan awal permainan, posisi pemain dan pemain yang

pertama melangkah.

b. Set of operators, yang mendefinisikan langkah-langkah yang diizinkan untuk pemain.

c. Terminal test, yang menentukan akhir dari permainan. Keaadaan permainan

berakhir disebut juga terminal state.

d. Utility function atau payoff function, yang memberikan nilai numerik untuk hasil suatu game. Hasil game berupa menang, kalah, atau seri diwakili berturut-turut dengan nilai +1, -1, 0.

2.1.1. Game Theory

Gametheory adalah ilmu yang mempelajari pengambilan keputusan oleh pemain dalam

(50)

merumuskan, membangun, menganalisa, dan memahami skenario yang strategis. Objek penelitian dari game theory adalah game, yang merupakan model baku dari situasi interaktif dengan melibatkan beberapa pemain (Turocy & von Stengel, 2001).

Menurut Milington dan Funge (2009), game theory mengklasifikasi game

berdasarkan kriteria berikut ini : a. Jumlah pemain

Dalam game theory, biasanya sebuah permainan dimainkan oleh minimal 2 pemain.

b. Tujuan

Sebagian besar game strategis bertujuan untuk mendapatkan kemenangan. Pemain dapat dikatakan menang jika pemain lainnya kalah. Hal ini disebut juga

zero-sum game yaitu kemenangan seorang pemain adalah kekalahan bagi pemain lainnya. Sedangkan untuk non zero-sum game, semua pemain dapat menang atau kalah.

c. Informasi

Sebuah game disebut perfect information jika keadaan permainan dari awal hingga akhir diketahui sepenuhnya oleh setiap pemain. Sedangkan keadaan permainan yang hanya sebagian dapat diamati oleh pemain disebut dengan

imperfectinformation.

Konsep game theory dapat ditemukan pada permainan yang berbasis giliran seperti yang terdapat pada jenis permainan papan. Contoh dari jenis permainan ini adalah Catur, Checkers, Go, dan Halma. Permainan-permainan ini memenuhi kriteria dalam game theory yaitu two-player, zero-sum, dan perfect information. Sehingga analisa dapat dilakukan dengan mudah menggunakan teknik pencarian.

2.2.Kecerdasan Buatan dalam Game

(51)

Gambar 2.1. Model AI dalam Game (Millington & Funge, 2009)

Berdasarkan Gambar 2.1. tugas AI dalam game dibagi menjadi 3 bagian yaitu kemampuan untuk memindahkan karakter (movement), kemampuan untuk membuat keputusan (decision making), dan kemampuan untuk berpikir taktis atau strategis

(strategy). Dua bagian pertama berisikan algoritma yang bekerja pada karakter-karakter

dasar, dan bagian terakhir beroperasi secara keseluruhan. Ketiga bagian AI ini menjadi penunjang dalam merancang suatu game (Millington & Funge, 2009).

Membangun program untuk game dengan kinerja tinggi menjadi salah satu keberhasilan besar AI. Hal ini disebabkan sebagian besar keberhasilan telah tercapai dalam permainan papan tradisional seperti Backgammon, Catur, Checkers, Othello, dan

Scrabble, di mana komputer dapat bermain lebih baik dari pemain terbaik manusia. Keberhasilan tersebut dicapai oleh beberapa peneliti yang ingin menangani masalah yang menantang dengan penekanan pada hasil sistem (Schaeffer, 2000).

2.3.Game Tree Search

Salah satu teknik yang biasa digunakan game komputer khususnya game yang bersifat

(52)

Gambar 2.2. Game Tree pada Game Tic-Tac-Toe

Game tree pada Gambar 2.2. menunjukkan hal berikut ini (Elnaggar, et al. 2014) :

 Setiap node merepresentasikan sebuah state (keadaan) permainan.

Root node merepresentasikan state awal permainan.

 Semua cabang yang diberikan node merepresentasikan semua langkah yang diizinkan untuk node tersebut.

 Cabang node disebut juga dengan childnode sedangkan node yang merupakan asal dari cabang node disebut juga dengan parentnode.

Node yang tidak memiliki turunan disebut leafnode.

Berdasarkan ilustrasi pada Gambar 2.2, pemain X melakukan langkah pertamanya, maka dari itu state permainan disesuaikan dengan gametree. Terdapat lima kotak yang tersedia, maka ada lima langkah yang dapat dilakukan pemain X. Dengan demikian kelima edges (garis penghubung) menghubungkan root ke node lainnya yang mewakili state permainan yang dicapai dengan setiap langkah yang dibuat. Pemain X dan pemain O bermain secara bergantian hingga leafnode, dimana salah satu pemain mengisi tiga kotak berturut-turut, dicapai. Leafnode pada gametree parsial ini ditandai

dengan “Win” atau “Lose” sesuai dengan perspektif pemain X (van der Kleij, 2010).

Tic-Tac-Toe merupakan game yang berbasis giliran, maka sistem hanya berubah

(53)

langkah yang pemain dapat lakukan. Dalam beberapa permainan (seperti Halma), ada ratusan hingga ribuan langkah yang mungkin pemain dapat lakukan. Hal ini dikarenakan banyaknya node dan jumlah langkah berbeda yang dapat diambil oleh setiap pemain. Beberapa posisi papan dapat mencapai kondisi dimana tidak terdapat lagi langkah yang memungkinkan. Kondisi ini disebut terminal position dan menyatakan akhir dari sebuah permainan (Millington & Funge, 2009).

Umumnya, game tree dapat digambarkan dalam bentuk abstrak tanpa mengikutkan diagram papan. Game tree ini hanya menampilkan nilai yang dimiliki setiap node dan simbol-simbol pendukung lainnya.

Gambar 2.3. Game Tree dalam Bentuk Abstrak (Millington & Funge, 2009)

2.4.Monte Carlo Tree Search (MCTS)

Monte Carlo Tree Search (MCTS) merupakan algoritma pencarian best-first yang

menggabungkan metode Monte Carlo dengan searchtree (Magnuson, 2015). Metode

Monte Carlo merupakan metode yang menggunakan simulasi acak secara berulang

untuk mendapatkan hasil yang terbaik. Dalam MCTS, simulasi acak digunakan untuk memperluas game tree. Kemudian game tree digunakan untuk menentukan langkah selanjutnya. Berbeda dengan teknik pencarian klasik lainnya (seperti Minimax), metode MCTS tidak memerlukan sebuah fungsi evaluasi posisional tetapi berdasarkan explorasi acak pada ruang pencarian (Chaslot, et al. 2008).

(54)

 Skor permainan dibatasi, artinya ada definisi yang jelas antara menang, kalah, dan seri.

 Informasi permainan diberikan, artinya semua aturan dan keadaan papan diketahui oleh semua pemain.

 Simulasi dibatasi berakhir relatif cepat, dengan kata lain panjang permainan dibatasi.

Algoritma MCTS membangun searchtree secara iterative hinggga batasan yang ditetapkan (berupa waktu, memori, atau jumlah iterasi) tercapai. Sehingga pencarian dihentikan dan mengembalikan hasil terbaik dari root. Setiap node dalam tree

merepresentasikan state dari domain yang dihubungkan ke child node yang merepresentasikan ke tindakan yang mengarah ke state berikutnya. Proses pencarian MCTS dilakukan dengan 4 tahap utama yaitu selection, expansion, simulation, dan

backpropagation. Tahap pencarian algoritma MCTS tersebut dapat dikelompokkan

pada 2 policy berikut ini (Browne, et al. 2012) :

1. Treepolicy, yaitu strategi dalam memilih dan membuat leafnode dari node-node

yang tersedia pada gametree (selection dan expansion).

2. Default policy, yaitu strategi dalam melakukan simulasi dari node yang

diberikan untuk menghasilkan nilai estimasi (simulation)

Tahap backpropagation sendiri tidak menggunakan policy atau strategi, tetapi memperbaharui statistik node untuk menambah informasi dalam treepolicy.

Gambar 2.4. Proses Pencarian MCTS (Browne, et al. 2012)

(55)

1. Selection

Pada tahap selection, tree ditelusuri mulai dari rootnode dengan menggunakan strategi

selection di setiap node untuk memilih tindakan selanjutnya. Strategi selection

digunakan untuk menyeimbangkan antara exploitasi node dengan nilai estimasi tertinggi dan explorasi node dengan nilai perkiraan yang tidak pasti. Exploitasi artinya pencarian tree diperdalam ke child node yang terbaik. Sedangkan explorasi berarti bahwa lebih banyak childnode yang digunakan dalam rangka meningkatkan kepastian

childnode yang terbaik.

Dalam penelitian ini, salah satu strategi selection yang efektif digunakan adalah algoritma Upper Confidence Bounds applied to Trees (UCT). Algoritma UCT menggunakan rumus Upper Confidence Bounds (UCB) dalam tahap selection. Rumus ini disusun oleh Auer dkk. (2002) dan pertama kali diterapkan pada tahap pemilihan

node MCTS oleh Kocsis dan Szepesvari (2006). Algoritma UCT memilih node terbaik berdasarkan hasil perhitungan rumus UCB terdapat pada persamaan 2.1.

UCB = WNi

C= konstanta explorasi = √2

N = jumlah kunjungan nodeparent.

2. Expansion

Pada tahap expansion, dilakukan penambahan node baru ke search tree sebagai child

dari node yang ditemukan pada tahap sebelumnya. Node ini harus sesuai dengan langkah yang diizinkan untuk dieksplorasi.

3. Simulation

Selanjutnya, simulasi atau disebut juga playout dilakukan dari node yang baru ditambahkan. Simulasi dapat dilakukan secara pure-random atau menggunakan beberapa strategi random yang sederhana. Strategi simulasi acak dapat menggunakan fungsi heuristic untuk memberikan weight pada langkah yang paling menjanjikan.

(56)

4. Backpropagation

Setelah simulasi mencapai akhir permainan, hasil dari simulasi kemudian diperbarui pada tree. Dimulai dari node baru yang disimulasikan hingga ke parent node. Kunjungan node bertambah satu dan rasio menang/kalah diubah sesuai dengan rata-rata hasil yang dikeluarkan.

Setelah proses MCTS dilakukan berulang dan batasan yang ditentukan tercapai, selanjutnya dilakukan adalah pemilihan final move dalam permainan sebenarnya. Mekanisme pemilihan finalmove dapat dilakukan dengan 3 cara berikut ini (Chaslot, et al. 2007) :

1. MaxChild, pemilihan childnode dengan skor tertinggi.

2. RobustChild, pemilihan childnode paling sering dikunjungi

3. Max-RobustChild, pemilihan childnode dengan skor tertinggi dan paling sering dikunjungi.

2.5.Depth-First Search (DFS)

Algoritma pencarian yang biasa digunakan adalah algoritma Depth-First Search. Disebut depth-first karena proses pencarian ini mengikuti jalur terdalam lebih dahulu sebelum pindah ke jalur berikutnya. Teknik pencarian ini termasuk dalam teknik pencarian buta (blind search) karena tidak ada informasi yang diberikan pada ruang pencarian (Coppin, 2004). Prinsip algoritma ini diilustrasikan pada Gambar 2.5.

(57)

Berdasarkan Gambar 2.5, proses DFS dilakukan pada semua childnode sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari root node Ake level yang lebih tinggi. Proses ini diulangi terus hingga ditemukan solusi yaitu node J. Sehingga urutan penelusuran node menjadi A-B-D-G-D-H-D-B-A-C-E-I-E-J.

Keuntungan dari metode DFS ada 2 yaitu tidak membutuhkan memori yang besar dan dapat menemukan solusi tanpa harus menguji lebih banyak lagi ruang keadaan. Sedangkan kelemahan dari metode DFS yaitu memungkinkan tidak ditemukan tujuan yang diharapkan. Selain itu metode ini hanya akan mendapat 1 solusi pada setiap pencarian (Russel & Norvig, 1995).

2.6.Halma

Permainan Halma ditemukan oleh Dr. George Howard Monks diantara tahun 1883 dan 1884. Saudara George, Robert Monks pada tahun 1883 atau 1884 menulis surat kepada

saudaranya dan mendeskripsikan permainan Inggris ‘Hoppity’. G.W. Monks

mengambil beberapa ketentuan dari Hoppity dan membangun Halma. Dr. Thomas Hill sekitar tahun 1818, membantu dalam merancang permainan ini. Dr. Thomas Hill menamakan permainan ini ‘Halma’ yang berasal dari bahasa Yunani yang artinya melompat (Walker, 2011). Papan permainan Halma awal ditemukan berbentuk persegi, dapat dilihat pada Gambar 2.6.

(58)

Permainan Halma dapat dimainkan oleh 2 atau 4 pemain. Setiap pemain memiliki jumlah pion 13 buah dengan warna yang berbeda-beda. Objektif dari permainan Halma adalah memindahkan semua pion dari tempat asal ke tempat tujuan yang terletak di seberangnya. Pemain yang dinyatakan menang adalah permain pertama yang berhasil memindahkan semua pion ke daerah tujuan. Aturan cara bermain Halma adalah sebagai berikut (Lieyanda, 2011) :

 Mulai melangkahkan pion dengan arah yang diizinkan secara bergiliran.

 Pion boleh hanya bergerak satu langkah ke kotak kosong ke arah kiri atas, kiri bawah, kanan atas, kanan bawah, samping kanan, samping kiri, atau melompati pion di depannya.

 Lompatan dapat terus dilakukan selama masih ada pion yang dapat dilompati.

 Langkahkan pion menuju ke arah segitiga seberang dan disusun secara tepat agar area segitiga terisi dengan penuh.

 Pemenang adalah yang paling cepat memindahkan semua pion ke segitiga seberang.

2.7.Penelitian Terdahulu

Penelitian pada permainan Halma sebelumnya dilakukan oleh Bell (2009) untuk mencari permainan dengan giliran terpendek menggunakan teknik pencarian Breadth

First Iterative Deepening A*. Hasilnya permainan terpendek dapat dilakukan dalam 30

putaran. Pada penelitian lainnya, Indah (2011) menggunakan algoritma Depth First

Search (DFS) hanya untuk mendeteksi langkah-langkah yang dibolehkan. Sedangkan,

Lieyanda (2011) merancang AI dengan mengimplementasikan algoritma Greedy pada permainan Halma berdasarkan lompatan terjauh atau pion belakang. Penggunaan algoritma Greedy pada permainan Halma tidak memberikan hasil yang cukup optimal. Penelitian mengenai penerapan algoritma MCTS pada jenis permainan papan dilakukan oleh Gelly dkk. (2012). Algoritma MCTS berhasil diterapkan pada permainan Go sehingga dapat mengalahkan pemain Go profesional. Sedangkan pada penelitian lain (Nijssen, 2007), algoritma MCTS cukup dapat bermain pada permainan

(59)

Tabel 2.1. Penelitian Terdahulu

No. Peneliti (Tahun) Metode dan Kasus Keterangan 1. Meilia Nur Indah

Algoritma Greedy pada permainan Halma bentuk bintang.

Algoritma Greedy tidak memberikan hasil yang 5. Pim Nijssen (2007) Algoritma MCTS pada

permainan Othello.

(60)

BAB 1 PENDAHULUAN

1.1.Latar Belakang

Dalam ilmu komputer, Artificial Intelligence atau AI adalah salah satu bidang yang penting untuk dipelajari. Objek awal penelitian AI yang sangat dikenal adalah permainan. AI dirancang dalam suatu permainan agar komputer dapat memainkan permainan dengan cerdas sesuai dengan tujuan permainan tersebut. Penerapan AI pada permainan telah banyak dilakukan oleh para peneliti pada berbagai jenis permainan. Khususnya untuk jenis permainan papan, seperti penelitian yang telah dilakukan pada permainan Catur, Go, dan Checkers. Penelitian tersebut memberikan hasil yang memuaskan, yang berarti AI dapat bermain lebih baik dari pemain manusia (Schaeffer, 2010).

Dalam game theory, permainan papan yang bersifat zero-sum dan perfect

information biasanya menggunakan algoritma pencarian pada pohon permainan untuk

mencari langkah pion yang terbaik. Salah satu algoritma pohon pencarian yang dikenal baik dalam permainan adalah algoritma Minimax. Pada permainan Catur, algoritma Minimax, dapat berjalan dengan optimal, tetapi tidak cukup optimal untuk permainan Go dikarenakan kompleksitas permainan Go yang tinggi (Chaslot, 2010).

Algoritma baru kemudian diusulkan yaitu algoritma Monte Carlo Tree Search

(MCTS). Algoritma MCTS adalah algoritma yang memilih langkah terbaik berdasarkan hasil simulasi permainan. Algoritma MCTS dapat diterapkan pada beberapa jenis permainan seperti jenis permainan papan. Hasil yang paling baik sejauh ini telah diperoleh pada permainan Go, dimana algoritma MCTS mengungguli semua teknik pencarian klasik lain (Chaslot, et al. 2008). Seperti penelitian yang dilakukan oleh Gelly, et al. (2012) algoritma MCTS berhasil diterapkan pada permainan Go

dengan melakukan beberapa peningkatan pada algoritma MCTS. Pada penelitian lain, algoritma ini berhasil diterapkan pada permainan Othello (Nijssen, 2007), Hex

(61)

Algoritma MCTS pada penelitian ini, penulis ingin terapkan pada permainan papan lainnya yaitu Halma. Permainan Halma cukup dikenal dan digemari oleh masyarakat karena konsep permainannya yang mudah dimengerti dan tidak memiliki terlalu banyak peraturan. Pemain hanya perlu memindahkan seluruh pion miliknya dari daerah asal ke daerah tujuan. Langkah pion bisa berupa satu langkah biasa ke segala arah dan langkah lompatan sekali atau lompatan berkali-kali jika ada satu pion disebelahnya. Pemain yang lebih dahulu memindahkan seluruh pion ke daerah lawan dinyatakan sebagai pemenang.

Permainan Halma termasuk permainan yang memiliki kompleksitas yang tinggi dikarenakan banyaknya kemungkinan langkah yang dapat dilakukan pion. Permasalahan lainnya adalah langkah penyelesaian permainan Halma sangat bergantung pada posisi pion lawan. Oleh karena itu, diperlukan suatu pendekatan untuk menyelesaikan permasalahan tersebut.

Penelitian pada permainan Halma sebelumnya, Indah (2011) menggunakan algoritma Depth First Search (DFS) hanya untuk mendeteksi langkah-langkah yang dibolehkan. Penelitian lainnya, Lieyanda (2011) merancang AI dengan mengimplementasikan algoritma Greedy pada permainan Halma berdasarkan lompatan terjauh atau pion belakang. Penggunaan algoritma Greedy pada permainan Halma tidaklah memberikan hasil yang cukup optimal. Sedangkan, Bell (2009) mencari permainan dengan giliran terpendek pada permainan Halma menggunakan teknik pencarian Breadth First Iterative Deepening A*. Hasilnya permainan terpendek dapat dilakukan dalam 30 putaran.

Pada penelitian kali ini, penulis ingin merancang permainan Halma yang dapat dimainkan oleh satu user sebagai human player melawan satu atau tiga AI yang menggunakan algoritma MCTS. Algoritma lain juga akan digunakan dalam membantu menyelesaikan permainan Halma ini. Dengan melakukan penelitian ini, diharapkan algoritma MCTS dapat menentukan langkah pion Halma dengan baik sehingga seluruh pion dapat mengisi daerah tujuan lebih dahulu dari pemain lainnnya.

1.2.Rumusan Masalah

(62)

1.3.Batasan Masalah

Agar penelitian ini terarah, batasan masalah yang akan dibahas adalah : 1. Jumlah pemain ada 2 dan 4 dengan masing-masing jumlah pion 13. 2. Papan permainan Halma bentuk persegi ukuran 16×16.

3. Hanya 1 user yang dapat bermain sebagai human player.

4. Pion merah selalu bermain pada giliran pertama. Giliran bermain berlawanan arah jarum jam.

1.4.Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menentukan langkah pion pada permainan Halma menggunakan algoritma Monte Carlo Tree Search.

1.5.Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini bagi pengguna adalah untuk mengasah strategi pengguna dalam bermain Halma dengan pemain komputer yang kompetitif. Selain itu, untuk menambah wawasan ilmu pengetahuan bagi penulis dan pembaca tentang penggunaan algoritma Monte Carlo Tree Search dalam menentukan langkah pion pada permainan Halma sehingga penelitian ini dapat dijadikan referensi untuk penelitian selanjutnya.

1.6.Metodologi Penelitian

Metodologi untuk menyelesaikan penelitian ini adalah sebagai berikut : 1. Studi Literatur

Pada tahap ini dilakukan studi literatur mengenai permainan Halma dan algoritma MCTS dari berbagai buku, jurnal, maupun internet.

2. Analisis

Pada tahap ini akan dilakukan analisis mengenai penerapan algoritma MCTS dan algoritma DFS pada permainan Halma.

3. Perancangan dan Implementasi

(63)

4. Pengujian

Pada tahap ini dilakukan pengujian sistem untuk melihat kinerja dari algoritma MCTS. Pada tahap ini user mencoba melawan satu pemain AI, selanjutnya melawan 3 pemain AI.

5. Dokumentasi

Pada tahap ini dilakukan dokumentasi hasil dari penerapan algoritma MCTS pada permainan Halma.

1.7.Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang penelitian ini dilakukan, perumusan masalah, batasan-batasan masalahnya, tujuan dan manfaat penelitian, metodologi penelitian, dan sistematika penulisan dari penyusunan skripsi ini.

BAB 2 LANDASAN TEORI

Bab ini menjelaskan mengenai landasan teori yang diperoleh dari acuan yang mendasari dalam melakukan kegiatan penelitian pada tugas akhir ini.

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menjelaskan mengenai analisis algoritma MCTS untuk pencarian langkah pion pada permainan Halma dan algoritma DFS serta perancangan aplikasinya.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

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

BAB 5 KESIMPULAN DAN SARAN

(64)

ABSTRAK

Penerapan Artificial Intelligence (AI) telah berhasil dilakukan pada berbagai jenis permainan, khususnya pada jenis permainan papan seperti Catur, Go dan Checkers. Pada penelitian ini, AI dirancang pada permainan papan lainnya yaitu Halma. Permainan Halma dapat dimainkan oleh 2 atau 4 pemain pada bidang persegi ukuran 16 × 16 dengan jumlah pion 13 untuk masing-masing pemain. Tujuan dari permainan Halma adalah untuk memindahkan seluruh pion pemain dari daerah asal menuju daerah tujuan diseberangnya. Pemain yang lebih dahulu memindahkan seluruh pion miliknya ke daerah tujuan dinyatakan sebagai pemenangnya. Langkah pion Halma dapat berupa langkah biasa atau langkah lompatan ke segala arah tergantung pada posisi pion dengan posisi pion lainnya. Dalam penyelesaian permainan Halma, diperlukan suatu pendekatan untuk mencari langkah pion dengan sedikit pergerakan. Metode yang digunakan untuk menentukan langkah pion Halma adalah algoritma Monte Carlo Tree

Search (MCTS). Algoritma MCTS merupakan algoritma pencarian yang melakukan

simulasi permainan untuk mendapatkan langkah yang terbaik. Dalam proses pencarian algoritma MCTS pada permainan Halma ini, digunakan strategi pemberian skor dan strategi langkah simulasi berdasarkan posisi pion dan perhitungan jarak dengan posisi tujuan terjauh. Dari pengujian yang dilakukan, algoritma MCTS dapat menyelesaikan permainan Halma lebih baik dari pemain manusia dengan total giliran paling sedikit sebanyak 113 untuk 2 pemain dan 192 untuk 4 pemain.

(65)

IMPLEMENTATION OF MONTE CARLO TREE SEARCH IN HALMA GAME

ABSTRACT

The implementation of Artificial Intelligence (AI ) has been successfully performed on various types of games, especially on board games like Chess, Go and Checkers. In this research, AI is applied on another board game namely Halma. The Halma game can be played by two or four players on a square field size 16 × 16 with a 13 of pawns for each player. The purpose of the game is to move the entire player pawns from the origin area to the opposing destination. The player who moved all his pawns first to the goal area declared as the winner. Halma pawns step can be a regular step or a jump step in any direction depending on the position of the pawn with another pawn position. In the finishing of the game Halma, an approach to search pawn move with little movement is needed. The method used to determine the steps of Halma pawns are Monte Carlo Tree Search (MCTS) algorithm. MCTS algorithm is a search algorithm to simulate the game to get the best move. In the search process of MCTS on this Halma game, scoring and simulation step strategies is used based on the position of the pawns and the calculation of the distance to the farthest destination position. Based on the tests, the MCTS algorithm can finish the Halma game better than a human player with the fewest total of the turns at 113 turns for 2 players and 192 turns for 4 players.

(66)

SKRIPSI

VINCENTIUS 111402075

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(67)

PENERAPAN ALGORITMA MONTE CARLO TREE SEARCH PADA PERMAINAN HALMA

SKRIPSI

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

VINCENTIUS 111402075

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(68)

PERSETUJUAN

Judul : PENERAPAN ALGORITMA MONTE CARLO TREE

SEARCH PADA PERMAINAN HALMA

Kategori : SKRIPSI

Nama : VINCENTIUS

Nomor Induk Mahasiswa : 111402075

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Sarah Purnamawati, ST., M.Sc Dr. Erna Budhiarti Nababan, M.IT NIP. 19830226 201012 2 003 NIP. -

Diketahui/disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

(69)

PERNYATAAN

PENERAPAN ALGORITMA MONTE CARLO TREE SEARCH PADA PERMAINAN HALMA

SKRIPSI

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

Medan, 21 November 2016

(70)

UCAPAN TERIMA KASIH

Puji Syukur penulis ucapkan ke hadirat Tuhan Yang Maha Esa, yang masih memberikan kesempatan dan kesehatan kepada penulis sehingga skripsi ini dapat diselesaikan sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Teknologi Informasi di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Dalam proses penulisan skripsi ini, penulis banyak mengalami kesulitan dan hambatan, namun berkat bantuan dan bimbingan dari berbagai pihak yang diberikan kepada penulis, hingga akhirnya penulis dapat menyelesaikan skripsi ini. Pada kesempatan ini penulis ingin mengucapkan banyak terima kasih yang sebesar-besarnya kepada :

1. Bapak Prof. Dr. Runtung Sitepu, SH., M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Muhammad Anggia Muchtar, ST., MM.IT selaku Ketua Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.

4. Bapak Mohammad Fadly Syahputra, B.Sc., M.Sc.IT selaku Sekretaris Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.

5. Ibu Dr. Erna Budhiarti Nababan, M.IT selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

6. Ibu Sarah Purnamawati, ST., M.Sc selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

7. Bapak Ainul Hizriadi, S.Kom., M.Sc selaku Dosen Pembanding I yang telah memberikan kritik dan saran kepada penulis dalam penyempurnaan skripsi ini. 8. Ibu Ulfi Andayani, S.Kom., M.Kom selaku Dosen Pembanding II yang telah

Gambar

Gambar 3.5. State Permainan Halma Sebagian
Gambar 3.9. Penambahan Node Baru
Gambar 3.10. State Expansion Node Langkah I2 (7,8)
Gambar 3.15. State Permainan Simulasi Kedua G (3,3)
+7

Referensi

Dokumen terkait

untuk mempromosikan dan/atau melindungi citera perusahaan atau produk individualnya, 4) Personal Selling : Interaksi langsung dengan calon pembeli atau lebih

Berdasarkan hasil analisis data yang telah dilakukan, maka dapat disimpulkan bahwa terdapat hubungan negatif dan signifikan antara kecerdasan emosional dengan

Data teknis ini akan dibandingkan dengan hasil pengolahan data antropometri Lebar Pinggul mahasiswa Program Studi Teknik Industri Unsika. Hasil pengolahan data Lebar

Penelitian ini dilatarbelakangi oleh belum optimalnya Strategi Pengembangan Destinasi Wisata Situs Astana Gede Kawali Oleh Dinas Pariwisata Kabupaten Ciamis. Hal ini

Walaupun baru ditetapkan pada tahun 1945, sesungguhnya nilai-nilai yang terkandung di dalam Pancasila disarikan dan digali dari nilai-nilai budaya yang telah ada

Pencemaran air adalah masuknya atau dimasukkannya makhluk hidup, zat, energi, dan atau komponen lain ke dalam air dan atau berubahnya tatanan air oleh kegiatan manusia,

Even Ryld wasn't able to do that, and since the furry animal was in front of him and at least a little off its guard, the weapons master stepped in to attack again-and again

Tinggi tanaman, jumlah anakan, panjang akar, berat kering akar, dan berat kering tajuk pada Pulu Lotong dan Pulu Mandoti yang diberi perlakuan cendawan endofit