APLIKASI PERMAINAN CONGKLAK DENGAN MENGGUNAKAN
ALGORITMA
MINIMAX
DAN
ALPHA.BETA PRUNING
Mitha Miranda pratama, Frans panduwinata, Irene Lazarusli Teknik Informatika
Universitas Pelita Harapan
Jl. M.H. Thamrin Boulevard 1 100 Tangerang I 5 g I I
Telp.: +6221-5460901 ext2205, e-mail: [email protected], [email protected]
Abstract
Nowdays,
digital
gameis
played
by
manypeople around the world. On the contrary, most
people
no
longerplay
the traditional game. In Indonesia, congklakis
one
of
the
popular traditional game. To promote a traditional gamein
this era we
haveto
convertit
into
digitalversion, therefore the congklak game application
is developed.
This
application
is
developedwith
enattractive design and in which the player can play against
the
computerwhich
applied artificialintelligence
(AI)
that can make the game morechallenging because the opponent is also able to
'think'. The algorithm used in
AI
is the Minimaxand Alpha-Beta Pruning. The application was
developed using
java
programming language.Testing the bowl value
is
done tofind
the bestbowl value to make the best
AI
and then testingthe AI victory percentage.
The
resultsof
testingthe bowl
value
are 50,30,10, and the results of testing theAI
victorywere 460% (easy level), 600% (moderate level), and
72%
(dfficult
level)Kqtwords: minimax, alpha-beta pruning, game
application.
1.
PENDAIIULUAN
Permainan dengan menggunakan komputer
(digital)
telahmedadi
suatu gayahidup
bagi masyarakat sekarangini.
Tingginya ketertarikanmasyarakat
terhadap permainan
komputertersebut
membuatpara
pembuat
permainanberlomba
-
lomba untuk menciptakan berbagaijenis
permainanyang
dapat menarik
minatpemainnya.
Hal ini
mernbuat
permainantradisional
(non digital)
semakin ditinggalkanmeskipun masih ada yang memainkannya. Salah
satu
jenis
permainan tradisionalyang
hinggasekarang masih Aimmati adalah congklak. Agar permainan tradisional yang dimainkan secara non
digital
dapat menarik minat kebanyakan orangkembali, permainan
ini
perlu
dibuatkan versi digitalnya. Atas dasar pemikiran tersebut makaaplikasi
permainan congklak
ini
dibuat. Permainan congklak yang dimainkan seorang dirimemerlukan
lawan
bermain berupa komputer yang dilengkapi dengan suatu kecerdasan buatan(AI)
di
dalamnya.AI
tersebut
dapat dibuatdengan beberapa tingkat kesulitan untuk menguji keahlian seorang pemain.
2.
METODE
Penelitian
ini
diawali dengan studi pustakauntuk
mendapatkan berbagaiinformasi
yangberhubungan dengan permainan congklak dan
algoritma
Minimax dan
Alpha-Beta pruning,dilanjutkan dengan
memasukkan
unsurkecerdasan buatan
ke
dalam aplikasi permainancongklak,
dan
melakukan pengujian aplikasidengan metode
pengujian
blackbox.Pengembagan perangkat lunak
ini
menggunakanSystem Development
Ltfe
Cycle
(SDLC).Perancangan perangkat lunak yang dilakukan juga
meliputi
penentuan
fimgsi
heuristik
padaalgoritma Minimax, penentuan pemotongan pada
pohon pencarian berdasarkan algoritma
Alpha-Beta
Pruning, dan penerapan kedua algoritma tersebut ke dalam aplikasi yang dibuat. Aplikasi permainan congklak denganAI
dibuat dengantiga tingkat kesulitan, yaitu mudah, sedang, dan
sulit. Pengujian
nilai
mangkuk dilakukan untuk mencari nilai manghtk terbaik agar membuatAI
yang
terbaik
kemudian mengujikan persentase kemenangan AI.SDLC adalah suatu proses
untukmengembangkan suatu sistem melalui
tahapan-tahapan
tertentu.
Tahap-tahapSDLC
adalahperencanaan,
analisis,
perancangan,
danimplementasi. SDLC sangat membantu
di
dalampengembangan
sebuah sistem.
Hal
ini
dikarenakan
SDLC
memberikan pemahamantentang bagaimana merancang sebuah sistem,
membangun
sistem tersebut hingga
tahappenyampaian sistem tersebut kepada pengguna
t1l.
Permainan congklak
adalah suatu permainantradisional
yang cukup populer
di
Indonesia. Permainan ini melibatkan dua orang pemain yang dimainkan pada papan dengan lubang berjumlah 16 buah yangterdiri
atas 14lubang kecil salingberhadapan dan
2
lubang besardi
kedua ujung papan. Biasanya dalam permainanini,
sejeniscangkang
kerang
digunakan sebagai
buicongklak. Papan congklak dapat
dilihat
padagambar
1
[a]. Dari
beberapa aturan permainandan cara bermain congklak yang ada, penelitian
ini
menggunakancara
bermain
dan
aturancongklak Jawa atau dakon [a].
Gambar 1. Papan congklak
Kecerdasan
buatan
merupakan sebuah cabangstudi
ilmu
komputer yang bertujuan membuatkomputer
dapat
menyelesaikan
persoalan-persoalan yang sulit, sehingga terlihat komputerberlaku
cerdasl2l.
Seiring
dengan semakin pesatnya perkembangan teknologi, perkembangandan
pengunaan kecerdasanbuatan
pun
ikutmeningkat.
Hal
ini
terbukti
dari
munculnyabeberapa teknologi yang dibuat dengan harapan
dapat menggantikan tugas-tugas manusia pada
masa depan. Salah satu contohnya adalah jenis permainan komputef yang sebelurnnya dimainkan dengan teman secara langsung, tetapi sekarang dapat dimainkan seorang diri di komputer.
Fungsi
Heuristik.
Salah satu teknik pemecahanmasalah
pada
kecerdasan
buatan
adalahpencarian.
Teknik
pencarian
ini
dapatmenghasilkan solusi untuk suatu masalah dengan mengevaluasi beberapa alternatif solusi yang ada.
Terdapat
beberapa
algoritma
pada
teknikpencarian tersebut,
namun
penelitian
ini
menggunakan algoritma pencarian heuristik.Heuristik
mengutamakan
keseirnbanganantara kecepatan dan ketepatan penemuan solusi.
Metode pencarian secara
heuristik
merupakanteknik pencarian yang mengutamakan pencarian
dengan kemungkinan berhasil
lebih
besar danmengabaikan kemungkinan berhasil lebih kecil.
Waktu pencarian menjadi
lebih
sedikit karenatidak
melakukanpencarian terhadap
semuakemungkinan yang ada. Karena tidak melakukan
pencarian terhadap semua kemungkinan, mungkin
saja
jalur
yang
semula
dianggap
bukan merupakan kemungkinan solusi dibuang; tetapitemyata
jalur
tersebut pada akhirnya memiliki nilai terbesar dibanding jalur lainnya. Oleh karenaitu,
semakin dalam
tingkat
pencarian yangdilakukan
sebandingdengan
semakin
baik pengetahuan akanjalur.
tersebutoptimal
atautidak.
Metode heuristik
tidak
akan
selalumendapatkan solusi paling optimal, tetapi pasti
akan mendapatkan solusi yang dianggap paling baik dalam waktu yang relatif cepat.
Di
dalam
penentuan keputusan langkahminimum dan maksimum dibutuhkan suatu nilai
yang
merepresentasikan
kerugian
ataukeuntungan
yang
akan diperolehjika
langkahtersebut
dipilih.
Oleh
karena
itu,
algoritmaMinimax
menggabungkanfungsi
heuristikdengan
pengetahuanyang
berupa
strategi memenangkan permainan. Strategi ini juga akan diubah ke dalam bentuk fungsi heuristik, sehinggaakan dihasilkan sebuah
nilai
untuk
digunakanpada proses perhitungan
nilai
heuristik simpul.Keluaran proses perhitungan nilai heuristik adalah
nilai untuk setiap simpul. Berdasarkan nilai-nilai
heuristik
ini,
komputer dapat menentukan simpulyang
akandipilih, yaitu
simpul
dengan nilaiheuristik
yang
dapat menuntun permainan kehasil akhir yang menguntungkan komputer.
Algoritma Minimax
merupakan basis semuapermainan
yarlg
berbasis kecerdasan buatanseperti congklak
[b].
Proses utama algoritmaMinimax
adalah
pencarian
nilai
terbaikberdasarkan nilai-nilai yang telah diberikan pada
setiap langkah.
Nilai
terbaik bisa terdapat padaposisi max, ataupttr posisi min. Posisi min
btkan
berarti akan terjebak dalam kondisi minimum, melainkan penandaan
max
danmin
bertrtyuanuntuk memberi identitas langkah pemain.
Di
dalam permainan congklak,min
adalahpemain dan max adalah lawan atau dalam hal
ini
kecerdasan buatan komputer. Dengan asumsi
bahwa pemain akan selalu mengambil langkah
yang paling merugikan lawan, maka
min
akanselalu
mengambil
nilai
heuristik
terkecil.Demikian
juga
denganmax
yang mengambillangkah yang paling
menguntungkan untukkomputer,
maka
mox akan
mengambil nilai heuristik terbesar.Alpha-Beta
Pruning.
Padapohon
pencariandengan
Minimax
dapat
diketahui
bahwapencarian dilakukan terhadap seluruh node yang ada.
Hal
ini
akan membuat waktu proses lamajika pohon pencarian memiliki ukuran yang besar.
Oleh karena
itu,
diperlukan Alpha-Beta Pruning yang digunakan untuk mencari tahujalur
manayang sudah tidak
lagi
berguna atau sudah pastitidak akan lebih baik daripada
jalur
sebelumnyauntuk
kemudiantidak
diperhitungkan jalumya,sehingga pencarian terhadap anak simpul tersebut
pun tidak
perlu
dilakukan.
Hal
ini
tentumempercepat proses pencarian [c].
* y'f ilp}u-Seta
Fq$rhry
3
?
I
Gambar2.
Pohon pencarian dengan algoritmaMinimax dan Alpha-Beta _!runing
Simpul
A
yang sementara bernilai 5 (berasaldari nilai simpul B dan E) menjadi nilai o. Setelah
didapatkan
nilai
sementarasimpul
C
yaitu
8 (berasaldari
nilai
simpul
F)
dan
sebelummelanjutkan pencarian pada simpul G, dilakukan pencarian terlebih dahulu. Karena
nilai
a:5
danB:8,
syarat o2
B tidak terpenuhi; pencarian punditeruskan.
Nilai
sementarasimpul
G
yarrgberasal dari nilai simpul J, yaitu 9, menjadi nilai a
karena simpul G bqrada pada garis MAX. Dengan
nilai
a:9
danB:8,
syarat o>
B terpenuhi, makanode
K
beserta anak-anaknyadipotong
dandibuang
dari
memori. Walaupun menghasilkansolusi yang sama, waktu pencarian solusi dengan menggunakan Minimax dan Alpha-Beta Pruning
lebih
cepat dibandingkan dengan penggunaanalgoritma Minimax saja.
3.
DISKUSI
Rancangan
Tingkat
Permainan. Aplikasi yangmenggunakan algoritma
Minimax dan
Alpha-Beta
Pruningini
dirancang dengan3
tingkatkesulitan permainan, yaitu tingkat mudah, sedang,
dan
sulit
yang
dibedakan berdasarkan tingkatkedalaman pohon pencarian yaitu masing-masing
2,
4,
dan 6. Contoh pada tingkat mudah, aplikasiakan
menghitung kemungkinan langkah yangdapat
dipilih
oleh komputer dan lawan dengantotal
sebanyakdua
langkah kedepan,masing-masing satu langkah. Berdasarkan kemungkinan
yang ada, aplikasi akan memilih langkah yang menghasilkan keuntungan maksimal dan kerugian minimal untuk komputer.
Rancangan
Algoritma Pada
PermainanCongklak.
Rancangan algoritmaMinimax
danAlpha-Beta
Pruning pada aplikasi
permainancongklak
yang
dibuat
ditunjukkanpada
duagarnbar diagram
alir
b'erikutini
(gambar3
dangambar 4). Gambar 3 adalah diagram alir proses
max.
Sirnbol keempatdi
kolom tengah yangbertulisan
"yal
min(hole_cpy,alpha,
beta,depth, maxDepth,
val)"
memanggil proses minyang dijelaskan pada gambar 4. Gambar
4
adalahdiagram alir proses min. Simbol kelima di kolom
tengah
yang
bertulisan"val
:
max(hole_cpy,alpha, beta,
depth+1,
maxDepth,
val)"memanggil proses
max
pada gambar3
untukkasus kedalaman lebih dari satu.
Gambar 3. Diagram
alr
proses Max4.
HASIL
Antar
muka
aplikasi. Gambar5
dan6
adalahgambar contoh tampilan
antar muka
aplikasipermainan congklak yang dibuat.
Pengujian
nilai
mangkuk.
Pengujian
nilaimangkuk bertujuan
untuk
mencari bobot yangdirasa
paling
pasjika
pemain atau komputer menjatuhkanbiji
terakhirnya ke mangkuk. Padaawal pembuatan aplikasi congklak
ini,
dari total98
biji
congklak yang ada (setengahnya yangsejumlah
49), maka
nilai
50
sebagai nilai maagkuk awal merupakan nilai yang cukup tinggiagar komputer
(AD
dapat
memilih
langkahtersebut
atau
menghindari langkah
yangmenyebabkan
pemain
mendapatkan langkah tersebut.Nilai
50
tersebut hanyaberlaku
dikedalaman
pertama
karena
semakin
dalam perhitungan kemungkinan langkah, nilai congklakdapat semakin berkurang karena berpindahnya
beberapa
brji
congklak
ke
dalam
mangkukpemain atau komputer. Oleh karena itu, nilai yang
digunakan pada kedalaman berikutnya adalah 30
dan 10
untuk
kedalamanketiga.
Jika
nilaimangkuk 50,3 0, 1 0 dijumlahkan, maka didapatkan
nilai
90
yang
mendekatijumlah
total
brjicongklak yang digunakan. Jadi,
jika
ada suatulangkah yang
terdiri
atas lubang penyebabbiji
terakhimya berhentidi
mangkuk komputer padamasing-masing kedalaman (pada
tingkat
sulit), maka langkah tersebutmemiliki
nilai val
yangbertambah 90.
Nilai
mangkuk awal yang telahditentukan dengan alasan tersebut (50,30,10) kemudian pada pengujian
ini
dijadikan sebagaipembanding.
Nilai
mangkuklain
yang dipilihadalah 0,0,0; 50,50,50; 98,98,98; serta 20,10,5.
Dasar pengujian
ini
adalah dengan melakukan 5 (lima) langkah awal yang sama dan tiga tingkat kesulitan untuk masing-masing langkah tersebut.Rangkuman
hasil
pengujian ditunjukkan pada tabel berikut ini:Tabel 1. Hasil pengujian nilai mangkuk
"*HL
s0,30,r00,0'0
s0's0,s0 e8,e8'e8 2o,to,s Tingkat Mudah (%) Tingkat Sedang (%) Tingkat sulit (%) 100% 20% 40%Berdasarkan Tabel 1 di atas, dapat dilihat bahwa
persentase kemenangan
untuk
masing-masingtingkat
tidak
sebaik persentasenilai
mangkuk50,30,10. Oleh karena itu, ketiga nilai inilah yang digunakan pada aplikasi permainan congklak ini.
214
Gambar 4. Diagram alir proses Min
Gambar
5.
Tampilan menuGambar 6. Tampilan saat permainan
Pengujian
kemenangan
AI.
pengujian
inidilakukan untuk menguji kemampuan
AI
dengan3
tingkat
kesulitanyang
ada,
yaitu
mudah, sedang, dan sulit. Pada tingkat mudah, pengujian dilakukan kepada 10 orang yang masing-masingbermain
sebanyak5
kali.
Berdasarkan hasil pengujian pada tingkat mudah,dipilih
pemain yang mendapatkan kemenangan lebih dari 50%(menang 3
kali
atau lebih dari 5 pengujian yangtelah dilakukan). Dari 10 pemain pada pengujian pertama, hanya
6
pemain yang melewati syarat tersebut. Kepada ke 6 pemain tersebut, pengujianpada tingkat
sedangini
dilakukan
denganmelakukan pengujian sebanyak
8 kali
dan satuorang sebanyak 10
kali
agar didapatkan total 50kali pengujian. Berdasarkan hasil pengujian pada
tingkat sedang, dipilih pemain yang mendapatkan kemenangan lebih dari 40o/o (menang 4 kali atau
lebih dari 8 pengujian yang telah dilakukan). Dari
6 pemain pada pengujian kedua, hanya 3 pemain
yang
melewati syarat tersebut. Kepadake
3pemain tersebut, pengujian pada tingkat sulit ini
dilakukan dengan melakukan penguj ian sebanyak
15
kali
untuk dua orang dan satu orang lainnyamelakukannya sebanyak 20 kali agar didapatkan
total
50 kali
pengujian.Berikut
adalah tabelrangkuman
hasil
pengujian kemenanganAI
terhadap pemain (manusia).Tabel2. Hasil pengujian kemenangan
AI
_. .
terhadap pemain (manusia)Tingkat Mudah Sedans
SuliiPersentase
Aplikasi
permainan congklaktelah
selesaidibuat
dengantampilan
yang
menarik
dan menawarkan pilihan untuk dapat bermain dengankomputer yang menggunakan kecerdasan buatan
dengan menerapkan
algoritma
Minimax
danAlpha-Beta Pruning.
Dari
hasil pengujian yangtelah dilakukan dapat disimpulkan bahwa nilai
manglcuk
yangi sesuai
untuk
membangunkecerdasan
buatan
pada aplikasi
permainancongklak
ini
adalah50, 30,
10.
Kemudianpersentase kemenangan
AI
(komputer) terhadappemain
(manusia) adalah46%
pada tingkat mudah, 600/o pada tingkat sedang,dm
72o/o padatingkat sulit. Berdasarkan penurunan persentase
pada pengujian kemenangan pemain atas AI,
pemilihan tingkat kesulitan dan keahlian pemain berpengaruh terhadap menang
atau
kalahnya seorang pemain.Penerapan algoritma
Minimax
danAlpha-Beta
Pruningbelum
dapat dikatakan sebagaikombinasi algoritma
terbaik
untuk
diterapkanpada aplikasi
permainanyang
membutuhkankecerdasan
buatan,
oleh
karena
itu
dapatdisarankan
untuk
mencoba
menggunakanalgoritma
lain
seperti algoritma Greedy untuk kemudian dapat dibandingkan dengan Minimaxdan Alpha-Beta Pruning.
5.
DAFTAR PUSTAKA
U]
A.Dennis, B. H Wixom, D. Tegarden, SystemAnalysis and Design
with (IML
version 2.0:An
Object Oriented Approach, 2"d edition, JohnWiley
&
Sons,Inc,
United Statesof
America,2005.
[2]
S.
Russel
and'
P.
Norvig,
Artificiat
Intelligence: A Modern Approach, 2'd edition,
Pearson Education,
[rc,
New Jersey, UnitedStates of America, 2003.
Websites:
[a] Expat Web Site
Association, "Congklak:Traditional Game
of
Indonesia", (2013),http : I / exp at.or. i d/info/congklak. html
[b] Math
2033at
the
Universityof
Arkansas,"Von Neumann's Minimax Theorem", (2011), http : I / math2O 3 3 .uark. edu/wiki/index. php/Von
_Neumanno/o 2 7 s_M inimax_Theorem
[c]
Tsan-shengHsu,
"Alpha-Beta
Pruning:Algorithm
and
Analysis",
(2012);,http://www.iis. sinica.edu.td-tshsl/t