Strategi Langkah Simulasi Analisis

20 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 final move. Strategi tersebut kemudian dimasukkan dalam proses pencarian algoritma MCTS. 3.2.2.1. Strategi Penentuan Skor Permainan Penentuan skor permainan Halma dilakukan pada saat tree policy 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. J pl = √ x 2 - x 1 2 + y 2 - y 1 2 Dimana : J pl = jarak posisi pionlangkah dengan titik tujuan terjauh x 1 , y 1 = posisi pion atau posisi langkah pion x 2 , y 2 = 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 - J p 2 . 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. Default policy langkah simulasi MCTS pada penelitian ini tidak dilakukan secara pure random tetapi menggunakan strategi yang bersifat heuristik. 3.1 21 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 : J p 2 - J l Dimana : J p dan J l 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. 3.2 22 15 F8 A1 A2 A3 14 F7 F6 A8 A4 13 A6 A5 12 A7 B1 B2 B3 11 C1 C2 C3 B8 B4 10 D2 D3 B7 B6 B5 9 C4 8 D1 E2 D4 7 E8 D5 D6 6 E7 D11 D7 5 D10 D9 D8 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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. A F B D E C G I H J L K 23 = Root Node C3 B3 D3 ... A3 = Node Pion Merah = Visited Gambar 3.6. Penelusuran 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 - J B 14,11 2 = 450 - √ 15 - 14 2 + 15 - 11 2 2 = 450 - 17 = 433 C = 450 - J C 9,10 2 = 450 - √ 15 - 9 2 + 15 - 10 2 2 = 450 - 61 = 389 D = 450 - J D 10,6 2 = 450 - √ 15 - 10 2 + 15 - 6 2 2 = 450 - 106 = 344 E = 450 - J E 9,7 2 = 450 - √ 15 - 9 2 + 15 - 7 2 2 = 450 - 100 = 350 - Maka jumlah skor node A3 = 900 + 433 + 389 + 344 + 350 = 2416. b. B3 15,12 - Skor pion di daerah tujuan = 3 × 450 = 1350, yaitu pion A, B, dan F - Skor pion di antara daerah asal dan tujuan yaitu pion C = 389, D = 344, dan E = 350. - Maka jumlah skor node B3 = 1350 + 389 + 344 + 350 = 2433. c. C3 10,11 - Skor pion di daerah tujuan = 2 × 450 = 900, yaitu pion A dan F. - Skor pion di antara daerah asal dan tujuan yaitu pion B = 433, C3 = 450 - J C3 10,11 2 = 450 - √ 15 - 10 2 + 15 - 11 2 2 = 450 - 41 = 409, 24 D = 344, dan E = 350. - Maka jumlah skor node C3 = 900 + 433 + 409 + 344 + 350 = 2436. d. D3 10,10 - Skor pion di daerah tujuan = 2 × 450 = 900, yaitu pion A dan F. - Skor pion di antara daerah asal dan tujuan yaitu pion B = 433, C = 389, D3 = 450 - J D3 10,10 2 = 450 - √ 15 - 10 2 + 15 - 10 2 2 = 450 - 50 = 400, dan E = 350. - Maka jumlah skor node D3 = 900 + 433 + 389 + 400 + 350 = 2472. Setelah seluruh node dikunjungi dan dihitung setiap skornya, maka node D3 dipilih karena memiliki skor yang tertinggi sebesar 2471. Pemilihan node pada tree dapat dilihat pada Gambar 3.7. = Root Node C3 B3 D3 ... A3 = Node Pion Merah = Node Selection = Visited Gambar 3.7. Pemilihan Node D3 Perubahan state permainan setelah node D3 dipilih dapat dilihat pada Gambar 3.8. Perpindahan pion D berawal dari posisi asal 10,6 menuju posisi tujuan yaitu D3 dengan titik koordinat 10,10. Selain itu, Gambar 3.8 memperlihatkan titik koordinat dari sisi pion merah dan langkah-langkah yang diizinkan untuk pion kuning. Langkah- langkah pion kuning ini kemudian akan digunakan pada tahap selanjutnya. 25 15 G7 14 G5 G6 13 G4 G8 12 G3 G2 G1 11 H5 I9 H6 10 I6 H4 9 H3 I8 8 I4 J4 H1 7 I2 I1 6 J2 5 4 K5 K6 L7 3 L5 K4 K8 2 L4 K2 K1 1 K3 L2 L1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 C3 B3 D3 ... A3 = Node Pion Merah = Selected = Visited I2 ... ... = Node Pion Kuning = Expanded Gambar 3.9. Penambahan Node Baru A F B D E C G I H J L K 26 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. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 15 F3 A1 A2 A3 14 F2 F1 A8 A4 1 13 A6 A5 2 12 A7 B1 B2 B3 3 11 C1 C2 C3 D3 B8 B4 4 10 D8 C4 B7 B6 B5 5 9 C6 D6 D5 6 8 E1 E2 7 7 E7 I2 E3 8 6 E6 E5 E4 9 5 10 4 11 3 12 2 13 1 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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. A F B D E C G I H J L K 27 C3 B3 D3 ... A3 H2 I2 ... = Simulation Move = Root Node = Node Pion Merah = Selected = Visited = Node Pion Kuning = Expanded Gambar 3.11. Langkah Simulasi hingga 2 kali Gerakan Pion Merah Default policy 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. b. Langkah B3 memiliki weight +1000 karena pion B berada diluar daerah tujuan dan langkan B3 memasuki daerah tujuan. 28 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 J p = √ 15 - 9 2 + 15 - 10 2 = √36 + 25 = √61 J l = √ 15 - 11 2 + 15 - 10 2 = √16 + 25 = √41 = 6,40 Maka, weight C4 = 61 + 6,40 = 65,40 - D 10,10 → D3 11,11 J p = √ 15 - 10 2 + 15 - 10 2 = √25 + 25 = √50 J l = √ 15 - 11 2 + 15 - 11 2 = √16 + 16 = √32 = 5,65 Maka, weight D3 = 50 + 5,65 = 55,65 - E 9,7 → E1 8,8 J p = √ 15 - 9 2 + 15 - 7 2 = √36 + 8 = √44 J l = √ 15 - 8 2 + 15 - 8 2 = √49 + 49 = √98 = 9,89 Maka, weight E1 = 44 + 9,89 = 53,89 d. Langkah F2 memiliki weight = 0 karena pion F berada di daerah tujuan dan langkah yang F2 berada di daerah tujuan. Dari perhitungan yang telah dilakukan didapatkan weight untuk masing-masing langkah diurutkan dari yang terendah hingga tertinggi yaitu {A7, F2, E1, D3, C4, B3} = {-1000; 0; 46,83; 53,89; 65,40; 1000}. Maka diambil 4 langkah terbesar yaitu E1, D3, C4, B3, kemudian dipilih secara acak dari ke-4 langkah tersebut. Perhatikan Gambar 3.12, langkah acak yang dipilih adalah node langkah C4. State permainan untuk langkah simulasi pertama yang dipilih secara acak yaitu node C4 dapat dilihat pada Gambar 3.13, beserta titik koordinat baik dari sisi pion kuning dan pion merah. Perpindahan pion C berawal dari posisi 9,10 menuju posisi tujuan C4 11,10. Selain itu, Gambar 3.13 memperlihatkan langkah-langkah yang diizinkan untuk pion kuning untuk dianalisis pada proses simulasi selanjutnya. 29 C3 B3 D3 ... A3 H2 I2 ... D3 E1 B3 C4 = Simulation Move = Root Node = Node Pion Merah = Selected = Visited = Node Pion Kuning = Expanded 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 15 G7 14 G5 G6 1 13 G4 G8 2 12 G3 G2 G1 B3 3 11 H6 4 10 H4 H5 5 9 J5 H8 H7 6 8 I5 J4 H1 7 7 I4 J1 8 6 J3 I2 I1 9 5 10 4 K5 K6 L6 11 3 L4 K4 K8 12 2 L3 K2 K1 13 1 K3 L2 L1 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Gambar 3.13. State Permainan Simulasi Pertama C 11,10 A F B D E C G I H J L K 30 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 J p = √ 15 - 2 2 + 15 - 2 2 = √169 + 169 = √338 J l = √ 15 - 3 2 + 15 - 3 2 = √144 + 144 = √288 = 16,97 Maka, weight G3 = 338 + 16,97 = 354,97 - H 6,6 → H1 5,7 J p = √ 15 - 6 2 + 15 - 6 2 = √81 + 81 = √162 J l = √ 15 - 5 2 + 15 - 7 2 = √100 + 64 = √164 = 12,80 Maka, weight H1 = 162 + 12,80 = 174,80 - I 7,8 → I2 7,9 J p = √ 15 - 7 2 + 15 - 8 2 = √64 + 49 = √113 J l = √ 15 - 7 2 + 15 - 9 2 = √64 + 36 = √100 = 10 Maka, weight I2 = 113 + 10 = 123 - J 6,7 → J3 8,9 J p = √ 15 - 6 2 + 15 - 7 2 = √81 + 64 = √145 J l = √ 15 - 8 2 + 15 - 9 2 = √49 + 36 = √85 = 9,21 Maka, weight J3 = 145 + 9,21 = 154,21 Dari perhitungan yang telah dilakukan, weight yang didapatkan untuk masing- masing langkah diurutkan dari yang terendah hingga tertinggi yaitu {L3, I2, J3, H1, G3, 31 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 B3 D3 ... A3 H2 I2 ... D3 ... E1 B3 ... J3 H1 G3 ... ... C4 K3 = Simulation Move = Root Node = Node Pion Merah = Selected = Visited = Node Pion Kuning = Expanded Gambar 3.14. Langkah Simulasi Kedua Node G3 Dipilih secara Acak State permainan untuk langkah simulasi kedua yang dipilih secara acak yaitu node langkah G3 dapat dilihat pada Gambar 3.15 beserta titik koordinat dari sisi pion merah. Perpindahan pion G berawal dari posisi 2,2 menuju posisi tujuan G3 3,3. Selain itu, pada Gambar 3.15 memperlihatkan langkah-langkah yang dapat dilakukan pion merah beserta titik koordinat dari sisi pion merah dan pion kuning. Langkah- langkah pion merah akan dihitung untuk langkah simulasi terakhir pion merah. Perhitungan langkah simulasi pion merah akan dilakukan untuk langkah A2, B1, C4, D10, E3, F4. 32 15 F5 F1 A2 A3 14 F4 F3 F2 A4 13 A7 A6 A5 12 B1 B2 B3 11 D1 C1 C2 C3 B8 B4 10 D10 D9 C4 B7 B6 B5 9 D6 D5 C5 8 D7 D8 7 E7 E3 6 E6 E5 E4 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 b. Langkah F4 memiliki weight -1000 c. Langkah A2 memiliki weight = 0 d. Langkah C4, D10, E3 dihitung menggunakan persamaan 3.1 dan 3.2 sebagai berikut. - C 11,10 → C4 12,10 J p = √ 15 - 11 2 + 15 - 10 2 = √16 + 25 = √41 J l = √ 15 - 12 2 + 15 - 10 2 = √9 + 25 = √34 = 5,83 Maka, weight C4 = 41 + 5,83 = 46,83 - D 10,10 → D10 8,10 J p = √ 15 - 10 2 + 15 - 10 2 = √25 + 25 = √50 A F B D E C G I H J L K 33 J l = √ 15 - 8 2 + 15 - 10 2 = √49 + 25 = √74 = 8,60 Maka, weight D10 = 50 + 8,60 = 58,60 - E 9,7 → E3 10,7 J p = √ 15 - 9 2 + 15 - 7 2 = √36 + 64 = √100 J l = √ 15 - 10 2 + 15 - 7 2 = √25 + 64 = √89 = 9,43 Maka, weight E3 = 100 + 9,43 = 109,43 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 B3 D3 ... A3 H2 I2 ... D3 ... E1 B3 ... J3 H1 G3 ... ... C4 K3 = Simulation Move = Root Node = Node Pion Merah = Selected = Visited = Node Pion Kuning = Expanded ... ... C4 B2 E3 D10 Gambar 3.16. Langkah Simulasi Ketiga Node D10 Dipilih secara Acak 34 Perubahan State permainan untuk langkah simulasi ketiga dapat dilihat pada Gambar 3.17. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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, C = 450 - J C 11,10 2 = 450 - √ 15 - 11 2 + 15 - 10 2 2 = 450 - 41 = 409, D = 450 - J D 8,10 2 = 450 - √ 15 - 8 2 + 15 - 10 2 2 = 450 - 74 = 376, dan E = 350. - Maka jumlah skor hasil simulasi node I2 = 900 + 433 + 409 +376+ 350 = 2468 A F B D E C G I H J L K 35 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 ̅̅̅̅ = ∑ W D3 N D3 = 2468 + … + … N D3 . Dimana N D3 adalah jumlah child node yang dikunjungi dan ∑ W D3 adalah jumlah skor yang didapat dari semua child node D3. Proses pembaharuan statistik skor dari child node menuju node parent-nya dapat dilihat pada Gambar 3.18. Skor dari child node I2 yang dihitung serta child node lainnya juga diperbaharui hingga ke node parent-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. C3 B3 ... A3 ... 2468 ... ... ... ... ... 2468 2468 = Backpropagate Score = Root Node = Node Pion Merah = Selected = Visited = Node Pion Kuning = Expanded Gambar 3.18. Update Statistik Skor hingga ke Node Parent 3.2.2.4. Pemilihan Final Move Setelah proses pencarian MCTS dilakukan berulang selama batas yang ditentukan, maka tahap terakhir adalah pemilihan final move dari root node berdasarkan child node 36 yang memiliki skor evaluasi tertinggi, yang disebut juga dengan Max Child. Pemilihan final move pada node dengan skor tertinggi dapat dilihat pada Gambar 3.19. = Root Node C3 B3 D3 ... A3 = Final Move = Visited 8675 6789 8583 3567 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. A11 A12 A9 A6 A10 A1 A2 A7 A7 A6 A4 A5 A8 Gambar 3.20. Langkah Lompatan Berkali-kali Pion A A 37 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 search tree 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 root node bangkitkan children node sesuai dengan urutan pengecekan 8 arah. Ditemukan langkah lompatan berturut-turut dari A5, A7, dan A6 menjadi children node. 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 children node-nya. Node A8 tidak memiliki children node dan bukan solusi, maka kembali ke root node untuk mengunjungi child node selanjutnya yaitu node A7. 4. Ditemukan solusi pada node A7, bangkitkan children node-nya sesuai urutan pengecekan. Ditemukan langkah lompatan yaitu A6 dan A9. 38 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 children node nya. Node A11 tidak memiliki children node dan bukan solusi, maka kembali ke parent node A6 untuk mengunjungi node A12. 7. Node A12 tidak memiliki children node 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 39 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 Use Case 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 New Game, melihat cara bermain How to Play, dan melihat informasi aplikasi About. Setelah memilih permainan baru, user kemudian memilih bermain dengan 2 pemain Two Players atau 4 pemain Four Players. 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 Activity pada sistem yang akan dibangun. 40 1. Diagram Activity New Game dengan Two Players 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 New Game dengan Four Players Diagram Activity ini menunjukkan bagaimana user memulai permainan baru dengan 4 pemain yaitu antara 1 user dan 3 AI. Gambar 3.25. Diagram Activity New Game dengan Four Players 41 3. Diagram Activity User 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. Gambar 3.26. Diagram Activity User Bermain 42 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. Gambar 3.27. Diagram Activity AI Bermain 43 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 Tampilan utama merupakan tampilan awal user membuka aplikasi permainan Halma. Tampilan ini memberikan beberapa tombol pilihan bagi user yaitu New Game, How to Play , dan About. 44 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 ‘New Game’ untuk memulai permainan baru dengan pilihan mode permainan pada tampilan Game Mode. 3. Tombol ‘How to Play’ memperlihatkan cara bermain dan tujuan permainan. 4. Tombol ‘About’ memperlihatkan informasi mengenai pengembangan aplikasi. 3.3.3.2. Tampilan Game Mode Tampilan Game Mode menampilkan dua tombol untuk memilih permainan dengan jumlah 2 atau 4 pemain. Selain itu, terdapat tombol Back untuk kembali ke tampilan utama. Rancangan tampilan Game Mode dapat dilihat pada Gambar 3.30. 45 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 Tampilan game merupakan tampilan saat permainan berlangsung, dapat dilihat pada Gambar 3.31. Tampilan ini dapat dibagi menjadi 2 bagian utama. Bagian pertama dari nomor 1 hingga 5, menampilkan papan permainan dan bagian kedua dari nomor 4 hingga nomor 11, menampilkan informasi pemain yang menampilkan informasi permainan yang terjadi pada setiap pemain berupa langkah, skor, dan sebagainya. 46 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 13. 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 birukuning yaitu AI 1. 8. Tampilan informasi pemain 3 dengan pion kuninghijau yaitu AI 2. 9. Tampilan informasi pemain 4 dengan pion hijau yaitu AI 3. 10. Tombol End Game memberi pilihan untuk mengakhiri permainan. 11. Label yang menghitung total giliran permainan.

BAB 4 IMPLEMENTASI DAN PENGUJIAN