BAB 3
ANALISIS DAN PERANCANGAN APLIKASI
3.1 Analisis Kebutuhan Aplikasi
Analisis sistem adalah proses menentukan kebutuhan sistem, apa yang harus dilakukan sistem untuk memenuhi kebutuhan klien user Sutopo, 2001. Tahapan
analisis kebutuhan merupakan tahap awal untuk membangun sebuah sistem atau aplikasi. Dengan adanya analisis ini diharapkan agar nantinya dihasilkan aplikasi yang
baik dan sesuai dengan kebutuhan.
3.1.1 Representasi Lingkungan
Lingkungan merupakan tempat agen melakukan interaksi. Lingkungan permainan Five in Row berupa papan board yang direpresentasikan sebagai berikut.
10 9
8 7
6 5
4 3
2 1
2 3
4 5
6 7
8 9
10
Gambar 3.1 Papan Five in Row
Universitas Sumatera Utara
3.1.1 Representasi Material
Material permainan Five in Row yang berupa kepingan piece direpresentasikan sebagai berikut: No piece = 0, User piece = 1, dan Computer piece = 2. Kepingan
pemain user piece akan berwarna hitam, sedangkan kepingan komputer computer piece akan berwarna putih.
2 1
1 2
1 1
1 1
2 2
1 2
2 2
1 1
2 2
Gambar 3.2 Representasi Material
3.1.2 Flowchart Aplikasi
Flowchart diagram alir merupakan diagram yang memperlihatkan aliran kontrol seluruh sistem termasuk program, input, output, dan database Whitten, 1998.
Dengan adanya flowchart, maka runtutan proses berjalannya suatu aplikasi dapat dilihat lebih jelas.
Universitas Sumatera Utara
Start Interface Aplikasi
Mulai Bermain?
User Piece
Computer Piece
Permainan Berakhir?
New Game?
Stop Pilih Level?
Exit? About
Tampilan Game Play Five In Row Yes
yes
no No
yes
no
yes no
yes
no yes
no
Gambar 3.3 Flowchart Aplikasi Five in Row
Untuk lebih jelasnya, proses aplikasi Five in Row akan dipaparkan sebagai berikut. 1.
User menjalankan aplikasi permainan, kemudian komputer akan
membangkitkan interface papan permainan sekaligus level default, yaitu 2. 2.
Jika user langsung ingin bermain melawan komputer maka silakan meletakkan keping piece pada kotak yang diinginkan. Setelah itu komputer akan
membangkitkan gerakan kemudian menampilkan posisi computer piece yang akan membendung gerakan user.
3. Selama permainan berlangsung komputer akan membangkitkan fungsi
terminal test untuk mengecek apakah permainan telah berakhir atau belum.
Universitas Sumatera Utara
Apabila belum permainan akan terus berlanjut. Jika permainan telah berakhir maka user boleh memilih untuk memulai permainan baru ataupun tidak.
4. Level default adalah level 2, namun user boleh memilih level permainan sesuai
keinginan. Level dua dijadikan default sebab level satu dirasa terlalu mudah untuk dikalahkan.
5. Jika user ingin mengetahui informasi mengenai Five in Row, user dapat
memilih menu about.
3.1.3 Analisis Algoritma
Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk membangun aplikasi ini adalah Minimax dan Alpha Beta Pruning. Algoritma
Minimax tidak digunakan secara tunggal sebab algoritma tersebut dirasa kurang efisien. Minimax akan mengevaluasi seluruh node yang ada pada pohon pencarian
satu persatu hingga selesai, sedangkan jumlah node yang akan dievaluasi tidaklah sedikit. Berikut adalah tabel jumlah node yang akan dievaluasi menurut tingkat
kedalamannya, dimana branching factor b adalah jumlah pergerakan maksimum masing-masing node dan depth d adalah kedalaman pohon pencarian.
Tabel 3.1 Hubungan Kedalaman dan Jumlah Node
Kedalaman Jumlah node Ob
d
1 100
2 10000
3 1000000
4 100000000
5 10000000000
Ukuran papan permainan Five in Row adalah 10 x 10 yang berarti berjumlah 100 kotak. Dengan demikian jumlah pergerakan maksimum yang dimiliki masing-
masing node adalah 100, sebab Five in Row tidak memiliki illegal move seperti halnya permainan catur ataupun Othello. Yang dimaksud dengan illegal move adalah gerakan
ilegal atau batasan pergerakan pemain, misalnya kuda hanya boleh melangkah sesuai
Universitas Sumatera Utara
dengan huruf L pada catur. Jumlah pergerakan maksimum ini akan dijadikan percabangan pada pohon pencarian.
Dengan adanya Alpha Beta Pruning diharapkan waktu pencarian akan jauh lebih singkat karena tujuan utama dari algoritma ini adalah mengabaikan subtree atau
percabangan yang tidak mempengaruhi hasil akhir. Berikut beberapa ketentuan dalam algoritma Alpha Beta Pruning.
1. Alpha α merupakan nilai batas bawah maksimum atau nilai terbaik
sementara pada max. Alpha digunakan pada node min dan diset pada node max.
2. Beta β merupakan nilai batas atas minimum atau nilai terbaik sementara pada
min. Beta digunakan pada node max dan diset pada node min. 3.
Max bertujuan untuk memaksimalkan nilai dengan cara memilih node anak dengan nilai paling besar. Nilai awal max adalah –
∞ dan akan bertambah seiring dengan pencarian.
4. Min bertujuan untuk meminimalkan nilai dengan cara memilih node anak
dengan nilai paling kecil. Nilai awal min adalah + ∞ dan akan berkurang
seiring dengan berjalannya pencarian. 5.
Max adalah agen yang mewakili komputer, sedangkan min adalah agen yang mewakili gerakan lawan dalam hal ini user.
Berikut adalah pseudocode algoritma Minimax dengan optimasi Alpha Beta Pruning.
int alphaBetaMax int alpha, int beta, int depthleft { if depthleft == 0 return evaluate;
for all moves { score = alphaBetaMin alpha, beta, depthleft - 1 ;
if score = beta return beta; beta-cutoff
if score alpha alpha = score; Alpha bertindak sebagai max
} return alpha;
}
int alphaBetaMin int alpha, int beta, int depthleft { if depthleft == 0 return -evaluate;
for all moves { score = alphaBetaMax alpha, beta, depthleft - 1 ;
if score = alpha
Universitas Sumatera Utara
return alpha; alpha-cutoff if score beta
beta = score; beta bertindak sebagai Min }
return beta; }
Berikut adalah flowchart algoritma Minimax dengan optimasi Alpha Beta Pruning.
Start
Terminal State?
Successor
Node = MaxNode
α ß Max
α ≥ β β
ß Min
β ≤ α
Hitung Value
Stop
Tidak
Ya Ya
Tidak
Tidak Tidak
Ya
Ya
Gambar 3.4 Flowchart Algoritma Minimax dengan Optimasi Alpha Beta Pruning
Flowchart di atas memperlihatkan bagaimana algoritma Minimax dan Alpha Beta Pruning mengevaluasi setiap node pada pohon permainan.
Pada awal permainan akan diperiksa terlebih dahulu apakah node yang diperiksa merupakan terminal state atau tidak, jika ya maka fungsi evaluasi akan
Universitas Sumatera Utara
mengevaluasi nilai yang diperoleh dan menghentikan pencarian. Sebaliknya jika tidak maka successor akan dibangkitkan untuk mengevaluasi node anak yang ada pada
kedalaman selanjutnya.
Jika yang dievaluasi adalah node max maka nilai node tersebut akan diperiksa. Jika nilainya maksimal maka akan ditetapkan menjadi α. Apabila nilai α lebih besar
atau sama dengan β, maka evaluasi dihentikan. Dengan demikian node di bawahnya
tidak perlu dievaluasi.
Sebaliknya jika yang dievaluasi adalah node min maka akan terus diperiksa selama nilai β tidak lebih kecil atau sama dengan α. Apabila nilai β ditemukan bernilai
lebih kecil atau sama dengan nilai α maka evaluasi dihentikan.
Berikut ini akan dipaparkan tahapan optimasi Alpha Beta Pruning secara singkat.
1. Dapatkan nilai Alpha dan Beta. Alpha adalah nilai maksimum yang
ditemukan. Beta adalah nilai minimum yang ditemukan. 2.
Pada node max, sebelum mengevaluasi node anak, bandingkan terlebih dahulu nilai yang didapatkan dengan nilai Beta. Jika nilainya lebih besar, batalkan
pencarian untuk node tersebut. 3.
Pada node min, sebelum mengevaluasi node anak bandingkan terlebih dahulu nilai yang didapatkan dengan nilai Alpha. Jika nilainya lebih kecil, batalkan
pencarian untuk node tersebut.
Algoritma Minimax ini bersifat depth first search, yang berarti proses pengecekan akan dilakukan hingga ke kedalaman tertentu sesuai level permainan
kemudian beralih ke tingkat atas. Untuk lebih jelasnya proses depth first search akan digambarkan sebagai berikut.
Universitas Sumatera Utara
-10 -3
1 10
5 -3
3 1
A
B C
D
E F
G H
I J
K L
M N
O P
Q R
S T
19
21 20
24 25
32 31
28 29
34 35 1
2 7
3 14
4 5
6 8
13
12 11
9 10
15
16
17 18
23
22 38
26 37
27 30
33 36
Gambar 3.5 Proses Pencarian Depth First Search
Awal pencarian akan dimulai dari node root yaitu node A, dimana node ini memiliki tiga anak yaitu node B, node C dan node D. Yang pertama diperiksa adalah
node B beserta turunannya yaitu node E dan node F, namun node E yang memiliki anak node K dan L harus dievaluasi terlebih dahulu kemudian nilai dikembalikan ke
node E, lalu node E mengembalikan nilai pada node induknya yaitu node B. Karena node B masih memiliki node anak yang belum diperiksa maka proses evaluasi terus
berlangsung terhadap node F beserta turunannya. Setelah seluruh cabang pada node B selesai diperiksa maka nilai akan dikembalikan kepada node A. Demikian seterusnya
hingga proses pencarian seluruh pohon selesai dijalankan. Proses evaluasi pohon pencarian sesuai dengan arah dan nomor pada anak panah.
Universitas Sumatera Utara
Gambar 3.6 Diagram Pohon Pencarian
Diagram di atas memperlihatkan bahwa pada baris max nilai alpha α selulu - ∞, sedangkan pada baris min nilai beta β selalu +∞. Sebenarnya nilai α dan β yang
terdapat pada diagram di atas bukanlah nilai alpha dan beta selama proses berlangsung. Nilai di atas hanya memperlihatkan bahwa pada node max fungsi
evaluasi hanya boleh mengubah nilai alpha dan sebaliknya pada node min fungsi evaluasi hanya boleh mengubah nilai beta.
Untuk lebih jelasnya mengenai proses evaluasi pada pohon tersebut, akan dipaparkan lebih lanjut dalam bentuk tabel berikut ini.
Universitas Sumatera Utara
Tabel 3.2 Proses Pencarian Alpha Beta Pruning No
Node Yang
dievaluasi Node yang
dipanggil Nilai α Nilai β
Nilai Node
Fungsi Keterangan
1. A
B -
∞ +
∞ -
Node A B, - ∞, +∞
Pada awal permainan nilai α = -∞ sedangkan nilai β = +∞.
2. B
E -
∞ +
∞ -
Node B E, - ∞, +∞
3. E
K -
∞ +
∞ 3
Node E K, - ∞, +∞
Nilai 3 ditetapkan menjadi nilai α
4. E
L 3
+ ∞
3 Node E L, 3, +
∞ Nilai node L node K, dengan demikian node E
max tetap akan memiliki nilai 3. 5.
E Selesai
α = 3 β = +∞ E = 3
Node E telah selesai dievaluasi, dengan demikian proses akan beralih ke tingkat atas
yaitu node B. 6.
B F
- ∞
3 3
Node B F, - ∞, 3
Nilai 3 yang diperoleh dari node E diset menjadi nilai β, sedangkan nilai α kembali menjadi -∞.
Universitas Sumatera Utara
No. Node
yang di evaluasi
Node yang dipanggil
Nilai α Nilai β Nilai
Node Fungsi
Keterangan
7. F
M -
∞ 3
5 Node F M, -
∞, 3 Nilai 5 berasal dari node M yang kemudian
ditetapkan menjadi nilai α. 8.
F Selesai
α = 5 β = 3
F = 5 Node
N tidak perlu diperiksa sebab nilai α ≥ β. α = 5 sedangkan β = 3.
9. B
Selesai -
∞ β = 3
B = 3 Nilai 3 diperoleh dari node E yang bernilai lebih
kecil dari node F. 10.
A C
3 +
∞ Node A C, 3, +
∞ Nilai node A sementara adalah 3.
11. C
G 3
+ ∞
G = 1 Node C G, 3, +
∞ Node G bernilai 1.
12. C
Selesai α = 3
β = 1 C = 1
Node H tidak perlu diperiksa karena didapati bahwa node C node B.
13. A
D 3
+ ∞
A = 3 D = -
Node A D, 3, + ∞
Node A masih bernilai 3 karena node C node B, sehingga tidak mempengaruhi nilai awal.
14. D
I 3
+ ∞
D = - Node D I, 3, +
∞
Tabel 3.2 Proses Pencarian Alpha Beta Pruning Sambungan
Universitas Sumatera Utara
No. Node
yang di evaluasi
Node yang dipanggil
Nilai α Nilai β Nilai
Node Fungsi
Keterangan
15. I
O 3
+ ∞
I = 1 Node I O, 3, +
∞ Nilai 1 diperoleh dari node O, kemudian
ditetapkan menjadi nilai α. 16.
I P
3 +
∞ I = 1
Node I P, 3, + ∞
Nilai node I tetap 1.
17. I
Selesai α = 1
+ ∞
I = 1
18. D
Selesai β = 1
D = 1 Node J tidak perlu diperiksa karena node D
node B 19.
A Selesai
α = 3 β = +∞ 3
Jadi, fungsi evaluasi mendapatkan nilai 3 untuk node A.
Tabel 3.2 Proses Pencarian Alpha Beta Pruning Sambungan
Universitas Sumatera Utara
3.1.4 Nilai Formasi
Nilai formasi mutlak diperlukan sebagai bobot dari pohon pencarian yang akan dibangkitkan. Nilai formasi merupakan nilai yang diperoleh berdasarkan jumlah
keping yang ada dalam satu baris, kolom ataupun diagonal pada papan permainan. Dua atau tiga buah kepingan yang berada pada satu baris ataupun kolom tentunya
berbeda nilainya dengan keping tunggal, begitu pula halnya dengan sederetan kepingan yang tidak terbendung lawan tentunya memiliki nilai lebih unggul
dibandingkan dengan yang terbendung. Berikut adalah tabel nilai formasi pada permainan Five in Row dengan ‘X’ adalah user piece dan ‘O’ adalah computer
piece.
Tabel 3.3 Nilai Formasi Nama Formasi
Nilai Bentuk Formasi
Comp_capped2 5
_OOX_ User_capped2
5 _XXO_
Comp_uncapped2 10
_OO_ User_uncapped2
10 _XX_
Comp_capped3 20
_OOOX User_capped3
30 _XXXO
Comp_uncapped3 100
_OOO_ User_uncapped3
120 _XXX_
Comp_capped4 500
_OOOOX User_capped4
500 _XXXXO
Nilai formasi tersebut diperoleh dengan mempertimbangkan prioritas formasi yang akan dipilih oleh agen, misalnya apabila ditemukan formasi
comp_uncapped3 dan user_uncapped3 tentunya harus diprioritaskan penutupan pada formasi user_uncapped3 sebab dikhawatirkan user dapat memenangkan
permainan terlebih dahulu karena mendapat giliran pertama melangkah.
Universitas Sumatera Utara
3.1.5 Fungsi Evaluasi
Fungsi evaluasi berfungsi sebagai penghitung nilai dari setiap node yang terdapat pada pohon permainan. Nilai yang telah didapat akan dijadikan acuan pergerakan
selanjutnya. Formasi yang dibentuk oleh keping permainan akan menghasilkan nilai yang akan dijadikan bobot nilai pohon.
Secara matematik, fungsi evaluasi diekspresikan sebagai berikut: ����� = �
1
�
1
� + �
2
�
2
� + … + �
�
�
�
� = � �
�
�
�
�
� �=1
Dalam catur, w adalah bobot tiap buah catur dan f adalah jumlah buah catur tersebut pada papan catur. Sedangkan dalam Five in Row, w adalah bobot formasi
dan f adalah jumlah formasi yang terbentuk. ����� = �
�2
. �
�2
+ �
�� 2
. �
�� 2
+ �
�3
. �
�3
+ �
�� 3
. �
�� 3
+ �
�4
. �
�4
Dimana C
2
adalah capped2, UC
2
adalah uncapped2, C
3
adalah capped 3, UC
3
adalah uncapped3 dan C
4
J I
H G
F E
D C
B A
1 2
3 4
5 6
7 8
9 10
adalah capped4. Berikut adalah contoh perhitungan fungsi evaluasi pada aplikasi ini.
Gambar 3.7 Posisi Permainan Sementara
Universitas Sumatera Utara
Yang pertama kali dilakukan adalah pemeriksaan formasi keping putih computer piece. Pada baris B terdapat 3 keping putih, namun ini tidak bisa
dihitung sebagai solusi sebab telah terbendung oleh keping hitam. Begitu pula dengan diagonal yang diisi pada kotak F5, G6, H7 dan I8 yang tidak bisa
dianggap solusi. 1.
Pada baris F terdapat uncapped2 yaitu F3 dan F5. Nilainya = 5. 2.
Pada kolom 3 terdapat capped2 yaitu F3 dan C3. Nilainya = 5. 3.
Pada kolom 5 terdapat capped2 yaitu E5 dan F5. Nilainya = 5. 4.
Pada kolom 7 terdapat capped4 yaitu F7, D7, C7, B7. Nilainya = 500. 5.
Pada diagonal terdapat uncapped2 yaitu G6 dan F7. Nilainya = 5. 6.
Diagonal lain terdapat capped2 yaitu E5 dan C3. Nilainya = 5. 7.
Keping B6 dan C7 juga membentuk capped2. Nilainya = 5.
Dengan demikian jumlah uncapped2 ada 2 formasi, capped2 ada 4 formasi dan capped4 1 formasi. Maka jumlah valuenya adalah:
Value
Max
= 25 + 45+ 500 = 530.
Sekarang akan dicari value dari keping hitam atau user piece. Seperti langkah di atas, pertama kali harus dilakukan evaluasi posisi.
1. Pada baris D terdapat capped2 yaitu D5 dan D6. Nilainya = 5.
2. Pada kolom 4 terdapat uncapped2 yaitu C4 dan E4. Nilainya = 5.
3. Pada diagonal terdapat capped2 yaitu F6 dan G7. Nilainya = 5.
4. Pada diagonal lain terdapat uncapped2 yaitu C5 dan D6. Nilainya = 5.
Maka jumlah formasi capped2 ada 2, begitu pula dengan formasi uncapped2. Sehingga jumlah valuenya adalah:
Value
Min
= 25 + 25 = 20
Universitas Sumatera Utara
Sehingga value total: Value
Total
= 530 – 20 = 490
Yang artinya posisi di atas sangat menguntungkan bagi pemain putih computer. Jika giliran putih bermain, maka tidak diragukan lagi formasi capped4 akan
segera dijadikan formasi kemenangan. Sebaliknya apabila giliran hitam maka user akan segera mengambil tindakan dengan menutup kotak E7 dengan keping hitam
sehingga jalan kemenangan putih tertutup.
3.1.6 Proses Evaluasi Formasi
Proses untuk mendapat bobot nilai pada pohon permainan tidaklah singkat. Mulanya komputer akan menelusuri kemungkinan pergerakan langkah yang akan
dilakukan dan asumsi pergerakan lawan. Kemudian hasil dari formasi yang terbentuk dari masing-masing kemungkinan akan dihitung sesuai dengan fungsi
evaluasi. Berikut akan dibahas sebuah contoh kasus proses evaluasi formasi yang terdapat pada pohon permainan Five in Row.
Gambar 3.8 Contoh Kondisi Permainan
Gambar di atas adalah sebuah keadaan yang terjadi pada pertengahan permainan yang akan dibahas proses evaluasinya. Posisi seperti gambar di atas
akan dijadikan root pada pohon permainan yang selanjutnya akan ditelusuri kemungkinan pergerakannya.
Universitas Sumatera Utara
Gambar 3.9 Analisis Pohon Permainan
Universitas Sumatera Utara
Gambar di atas memperlihatkan pohon permainan dimana posisi teratas merupakan root atau posisi awal yang akan dievaluasi, sedangkan kedalaman
pertama adalah beberapa asumsi gerakan user min yang dievaluasi oleh komputer dan kedalam kedua adalah langkah-langkah yang diambil oleh
komputer max.
Gambar bintang berwarna hitam merupakan kemungkinan pergerakan langkah yang dilakukan oleh lawan user, dan gambar bintang berwarna merah
merupakan kemungkinan langkah yang diambil oleh komputer. Tentu saja jumlah node yang diperiksa sebenarnya lebih banyak, namun pada gambar di atas hanya
ditampilkan beberapa node sebagai contoh.
Berikutnya, masing-masing kondisi pada kedalaman kedua dihitung nilainya value berdasarkan fungsi evaluasi yang ada, dengan memperhatikan
seluruh formasi yang terbentuk seperti yang terlihat pada tabel 3.3. Pada contoh di atas, kedalaman kedua merupakan terminal state yang ada pada permainan level
dua. Apabila user memilih level tiga, berarti terminal state-nya adalah kedalaman ketiga dan seterusnya. Berikut adalah hasil penghitungan value dari masing-
masing kondisi.
Tabel. 3.4 Value Tiap Node No.
Node yang Dievaluasi Value
1. -570
2. -630
Universitas Sumatera Utara
Tabel. 3.4 Value Tiap Node Sambungan No.
Node yang Dievaluasi Value
3. -95
4. -165
5. -145
6. -170
7. -190
Apabila dilihat dari hasil perhitungan value di atas, maka peluang komputer menang relatif kecil bila dibandingkan dengan peluang kemenangan
user dengan asumsi user bermain secara maksimal.
Nilai-nilai yang telah didapat di atas kemudian dijadikan sebagai bobot dari masing-masing node pada pohon pencarian tersebut. Dengan adanya bobot
dari masing-masing node maka proses penelusuran pohon pencarian mulai
Universitas Sumatera Utara
dilakukan, disinilah letak tugas dari algoritma Minimax dan Alpha Beta Pruning. Minimax dan Alpha Beta Pruning akan menelusuri node-node tersebut hingga
diperoleh hasil maksimal yang terdapat pada pohon permainan.
Namun ada kalanya terdapat beberapa kondisi yang perlu dilakukan beberapa pengecualian, misalnya ada kondisi permainan yang memiliki value total
yang sama, sehingga agen harus mengambil keputusan yang tepat dengan melakukan memilih prioritas. Berikut adalah beberapa parameter yang perlu
diterapkan untuk kondisi khusus. 1.
Apabila ada dua value yang sama, dan keduanya merupakan nilai terbaik maka agen akan memilih node yang terlebih dahulu didapatkan atau
ditelusuri. 2.
Jika agen menemukan formasi empat, misalnya comp_capped4 atau comp_uncapped4, maka tidak perlu lagi dilakukan penghitungan value.
Agen akan langsung membentuk Five In Row.
3.2 Perancangan Aplikasi