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