Anda di halaman 1dari 4

Prosiding SENTIA 2016 – Politeknik Negeri Malang Volume 8 – ISSN: 2085-2347

PERBANDINGAN ALGORITMA MINIMAX DENGAN ALPHABETA


PRUNING PADA PERMAINAN TRADISIONAL DADOS-DADOSAN

Miftahul Qiki Winata1, Muhammad Jauharul Fuadi2, Aji Prasetya Wibawa3


1,2,3
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Negeri Malang
1
miftahulqikiwinata@gmail.com ,2jauharul@gmail.com, 3aji.prasetya.ft@um.ac.id

Abstrak

Minimax algorithm is well used to resolve any searching problem with a small number of possibilities. But for a
larger number of possibilities, this algorithm need optimization, one of the Minimax algorithm optimization is
Alphabeta Pruning. This study is purposed to compare the efficiency of the Alphabeta Pruning algorithm and
Minimax algorithm through some scenario testing. The efficiency of the algorithms in terms of speed of time and
number of nodes visited. The result of the testing scenario was Alphabeta Pruning algorithm can save time greater
than 50% compared with the Minimax algorithm in depth of six. From the data obtained, it was concluded that:
(1) Minimax and Alphabeta Pruning algorithm can be applied to Dados-dadosan game, (2) Alphabeta Pruning
algorithm is more efficient than the Minimax algorithm on the Dados-dadosan game.

Keywords : artificial intelligence, minimax, alphabeta pruning, dados-dadosan, game playing.

1. Pendahuluan game playing. Game playing merupakan jenis permainan


Salah satu penerapan kecerdasan buatan yang terkenal yang dimainkan oleh dua orang pemain, semua proses yang
pada sebuah game kategori game playing adalah algoritma terjadi pada permainan tersebut dapat dilihat tanpa ada yang
Minimax. Algoritma ini merupakan salah satu ditutup-tutupi(Fully observable), dan kerugian seorang
implementasi dari Depth-first Search. Minimax umumnya pemain menjadikan keuntungan pemain lain(Zero-sum).
digunakan pada permainan dua pemain yang melangkah Contoh permainannya adalah catur, tic tac toe, othello, dan
bergantian untuk menentuan langkah terbaik dalam aturan sebagainya. Beberapa faktor utama yang mempengaruhi
tertentu agar dapat memenangkan permainan. Terdapat hasil kemenangan pada permainan Dados-dadosan yaitu
aturan dan penentuan keputusan dalam permainan- proses evaluasi nilai berdasarkan tiap perubahan keping
permainan tersebut yang dapat menentukan langkah pada papan dan pencarian nilai terbaik dari hasil evaluasi
selanjutnya. Pencarian Minimax merupakan pencarian nilai tersebut.
terbaik dari nilai-nilai yang didapat dari hasil evaluasi pada
permainan strategi. Pencarian ini bekerja dengan cara 2. Analisis
membangkitkan pohon pencarian untuk menelusuri segala
kemungkinan kondisi (state) yang akan terjadi mulai dari States: Initial state, Current states, Goal states.
kondisi awal dan seluruh kondisi yang mungkin terjadi. Action: memindahkan bidak pada posisi yang mungkin.
Dengan membangkitkan pohon pencarian ini, Pencarian solusi akan dilakukan dengan metode Depthh-
komputer akan selalu mendapatkan penyelesaian terbaik first-search dimana simpul pertama akan ditelusuri terlebih
untuk setiap langkahnya. Tetapi, masalah muncul ketika dahulu hingga batas yang ditentukan kemudian akan
jumlah input yang dimasukkan menjadi banyak. Untuk mencari pada simpul selanjutnya. Ilustrasi pencarian
memperkecil pohon pencarian, telah dibuat suatu algoritma ditunjukan pada Gambar 3.1.
minimax yang lebih optimal, yaitu algortima alpha beta-
pruning.
Hasil algoritma Alphabeta pruning sendiri tidak
berubah dari algoritma minimax, yang berubah hanya
traversalnya yang lebih sedikit. Algoritma alpha beta
pruning memanfaatkan dua nilai, yaitu alpha dan beta. Nilai
alpha menunjukkan skor pilihan terbaik yang bisa diambil
pemain Max, dan nilai beta menunjukan skor pilihan
terbaik yang bisa diambil pemain Min. Pruning dilakukan
ketika simpul yang sedang ditinjau pada pemain Max, yaitu
n, memiliki skor yang lebih rendah daripada alpha, maka n
tidak perlu ditinjau lagi berikutnya. Hal yang sama
dilakukan pada pemain Min memakai nilai beta. Gambar 3.1 Ekspansi simpul pertama
Penulis ingin melakukan penelitian dengan
membandingkan algoritma minimax dengan algoritma Setiap anak akan disimpan pada sebuah array p[i].
Alphabeta Pruning yang akan diterapkan pada permainan Array p[i] akan berisi tiga bidak untuk diketahui posisi
Dados-dadosan. Permainan ini termasuk dalam kategori masing-masing bidak(p[i]=[b1,b2,b3]).

A-49
Prosiding SENTIA 2016 – Politeknik Negeri Malang Volume 8 – ISSN: 2085-2347

Untuk menentukan kondisi dimana permainan akan 5 Sidetosid Bila kedua bidak
berakhir, maka dirumuskan goal formulation. Akhir e pada posisi pojok
permainan ditinjau dari sisi kemenangan. Kemenangan secara vertical atau
terjadi bila ketiga bidak pemain pada posisi sejajar. horizontal
Untuk mengetahui bidak sudah sejajar atau belum
maka pada papan permainan diberikan penomoran posisi
seperti ditunjukkan pada Gambar 3.2. Dari Tabel 3.1 diatas maka fungsi heuristik dirumuskan
sebagai berikut:
Kemungkinan menang bidak hitam = h(n),
kemungkinan menang bidak putih = p(n),
heuristic evaluation function = f(n),
sehingga fungsi heuristik pada permainan dados-dadosan
dirumuskan dengan f(n) = p(n)-h(n).
Nilai minus(-) merupakan posisi buruk bidak hitam
sedangkan nilai ini menjadi kebalikan bagi bidak putih
yaitu nilai plus(+) yang berupa posisi baik.

3. Implementasi

Setelah sistem dianalisis dan didesain, maka tahap


selanjutnya adalah tahap implementasi algoritma Minimax
dan alphabeta.
Gambar 3.2 Desain penomoran papan.
3.1. Algoritma Minimax
Berdasarkan desain penomoran tersebut maka dapat
dirumuskan goal states sebagai berikut: Setelah permainan dibuat, maka penulisan kode
p[1]=[0,4,8], p[2]=[2,4,6], p[3]=[1,4,7], p[4]=[3,4,5], algoritma akan dilakukan. Kode program yang akan
p[5]=[0,3,6], p[6]=[2,5,8], p[7]=[0,1,2]/ p[7]=[6,7,8]. diterapka ditunjukkan oleh Gambar 3.3.
Dalam permainan dados-dadosan tidak terdapat
kondisi draw, karena bidak akan terus berpindah hingga
salah satu mencapai kondisi sejajar, sehingga hanya function Minimax(node, depthh, maximizingPlayer)
terdapat dua kemungkinan yaitu menang(+10) dan kalah(- if depthh = 0 or node is a terminal node
10). Kondisi draw akan diberikan ketika dalam 30 langkah return the heuristic value of node
tidak ditemukan kemenangan.
Komputer akan melakukan pencarian dengan cara if maximizingPlayer
bestValue := −∞
melakukan ekspansi root node yang berupa initial state. for each child of node
Setiap node akan diberikan nilai untuk mengetahui v := Minimax(child, depthh − 1, FALSE)
seberapa buruk/baik posisi bidak bagi kedua pemain. Untuk bestValue := max(bestValue, v)
itu, diperlukan sebuah fungsi heuristik. return bestValue

else(* minimizing player *)


bestValue := +∞
for each child of node
v := Minimax(child, depthh − 1, TRUE)
bestValue := min(bestValue, v)
return bestValue
Tabel 3.1 Penentuan fungsi heuristik
No Nama Desain Keterangan
Gambar 3.3 Pseudocode algoritma Minimax.
1 Checkma Bila kedua buah
te bidak lawan tidak Fungsi Minimax mengembalikan nilai heuristik
bisa melangkah. untuk node daun (node terminal dan node pada kedalaman
Dua buah bidak hijau pencarian maksimum). node non-daun mewarisi nilai
tidak bias bergerak. mereka, bestvalue dari simpul daun keturunan. Nilai
2 Edgetoed Bila kedua bidak heuristik adalah skor mengukur nilai dari node untuk
ge pada posisi pojok pemain. Oleh karena itu node menghasilkan hasil yang
secara diagonal menguntungkan , seperti kemenangan , untuk pemain max
mempunyai skor yang lebih tinggi dari node pemain min.
3 Blockpoi Bila ketiga bidak Nilai heuristik untuk terminal (permainan berakhir) node
nt pada posisi yang daun sesuai untuk menang, kalah, atau seri, untuk pemain
menghalani max. Untuk node daun yang bukan terminal node pada
kemenangan lawan kedalaman pencarian maksimal, fungsi evaluasi
memperkirakan nilai heuristik untuk node. Kualitas
4 Straighto Bila ketiga bidak
perkiraan ini dan kedalaman pencarian menentukan kualitas
side pada posisi pada
dan ketepatan hasil.
desain

A-50
Prosiding SENTIA 2016 – Politeknik Negeri Malang Volume 8 – ISSN: 2085-2347

3.2. Algoritma Alphabeta 4. Langkah pemain


5. Jumlah langkah
Setelah permainan dibuat, maka penulisan kode
algoritma akan dilakukan. Kode program yang akan 5. Hasil
diterapkan ditunjukkan oleh Gambar 3.4.
Pengujian dilakukan dengan kedalaman 2,4,6,8, dan
10. Agar sesuai dengan fungsi evaluasi heuristik yang telah
int alphaBetaMax( int alpha, int beta, int kedalaman ) { diterapkan. Dari hasil uji coba diketahui perbandingan rata-
if ( kedalaman == 0 ) return evaluate(); rata waktu proses dan jumlah node yang dikunjungi
for ( semua_langkah) { ditunjukkan oleh Tabel 4.3 dan Tabel 4.4.
v = alphaBetaMin( alpha, beta, kedalaman - 1 );
if( v >= beta )
return beta; // fail hard beta-cutoff Tabel 4.3 Perbandingan Rata-rata Load Time.
if( v > alpha ) No. Keteranga Minimax( Alphabeta Prosentase
alpha = v; // alpha acts like max in Minimax n s) Pruning(s) efisiensi
} 1 8.86 %
return alpha; Depth 2 0.0013476 0.0012282
} 2 46.19 %
Depth 4 0.0079528 0.0042793
int alphaBetaMin( int alpha, int beta, int kedalaman ) { 3 54,14 %
Depth 6 0.0804716 0.0369011
if ( kedalaman == 0 ) return -evaluate(); 4 74,25 %
for (semua_langkah) { Depth 8 0.8790386 0.2263504
v = alphaBetaMax( alpha, beta, kedalaman - 1 ); 5 86,36 %
if( v <= alpha ) Depth 10 12.744382 1.7378082
return alpha; // fail hard alpha-cutoff
if( v < beta )
beta = v; // beta acts like min in Minimax Tabel 4.4 Perbandingan Jumlah Node yang
} dikunjungi.
return beta; No. Keteranga Alphabeta Prosentas
}
n Minimax Pruning e efisiensi
1 24.2 %
Gambar 3.4 Pseudocode algoritma alphabeta. Depth 2 231 175
2 48.1 %
Depth 4 3623 1880
Cara kerja algoritma Alphabeta pada permainan
3 65.2 %
dados-dadosan sebagai berikut: Depth 6 54766 19036
1. Bangkitkan pohon pencarian dengan depthh-first 4 75.6 %
Depth 8 744129 181394
search dengan kedalaman 3
5 85.2 %
2. Pada setiap kedalaman terdapat layer MAX dan MIN Depth 10 11017295 1627004
3. Layer MAX diwakili oleh alpha dan layer MIN
diwakili oleh beta 6. Kesimpulan dan Saran
4. Hitung nilai evaluasi anak pertama dan kemudian
tentukan nilai v, alpha, dan beta pada masing-masing 6.1. Kesimpulan
node.
5. Ambil nilai dari anak pertama untuk dijadikan nilai Berdasarkan pemaparan analisis data hasil uji coba,
induk dan dibandingkan dengan anak maka diperoleh kajian kesimpulan sebagai berikut:
berikutnya(layer MIN akan memilih nilai kecil, 1. Algoritma Minimax dan Alphabeta Pruning dalam
sedangkan pada layer MAX akan memilih nilai game dados-dadosan dapat bekerja dengan baik
besar). seperti yang diharapkan
6. Lakukan pemangkasan bila alpha >= v atau beta <= 2. Algoritma Alphabeta Pruning Lebih efisien
v. dibandingkan dengan algoritma Minimax dengan
rincian sebagai berikut:
4. Pengujian(Testing)  Algoritma Alphabeta Pruning memakan waktu
proses yang lebih singkat daripada algoritma
Uji coba algoritma dengan menggunakan metode Minimax.
pengujian performance testing. Performance testing  Algoritma Alphabeta Pruning mengunjungi
merupakan proses menentukan kecepatan atau efektifitas, node lebih sedikit daripada algoritma Minimax
jaringan program komputer, perangkat lunak atau dengan cara memangkas node.
perangkat. Proses ini melibatkan tes kuantitatif, yaitu
mengukur waktu respon atau jumlah MIPS(million of 6.2. Saran
instruction per second) Pada fungsi sistem.
Instrumen yang digunakan dalam pengumpulan data Berdasarkan hasil analisis produk, ditemukan
berupa lembar pengujian yang diberikan kepada penguji beberapa saran untuk pengembangan lebih lanjut yaitu:
dengan mencatat setiap butir uji yang telah disediakan. 1. Dalam penelitian ini, pemberian nilai heuristik masih
Pada lembar butir uji terdapat beberapa item yang harus belum sempurna, ada beberapa node yang perlu dikaji
dicatat yaitu: untuk pemberian nilai yang lebih baik.
1. Kedalaman 2. Rentang nilai untuk nilai heuristik juga harus
2. Load time ditambah untuk mendapatkan perbedaan nilai yang
3. Jumlah simpul yang dikunjungi signifikan agar pemilihan node menjadi lebih akurat.
A-51
Prosiding SENTIA 2016 – Politeknik Negeri Malang Volume 8 – ISSN: 2085-2347

Daftar Pustaka:

Deitel, H.M & Deitel, P.J. (2001): C++ How to Program


Third Edition, New Jersey, Prentice Hall.
Dharmamulya, Sukirman. (2005): Permainan Tradisional
Jawa, Yogyakarta, Penerbit Kepel Press.
Elaine Rich dan Kevin Knight. (1991): Artificial
Intelligence International Edition: 2nd Edition,
Singapura, McGraw-Hill, Inc.
Finney, Kenneth C. (2004): 3D Game Progamming All in
ONE, Boston, Course Technology.
Harry R. Lewis dan Larry Denenberg. (1991): Data
Structures and Their Algorithms, New York,
HarperCollins Publishers Inc.
Kingston, Jeffrey H. (1991): Algoritms and Data
Structures, Sidney, Addison-Wesley Publishing
Company.
Kusumadewi, Sri. (2003): Artificial Intelligence (Teknik
dan Aplikasinya), Yogyakarta, Graha Ilmu.
Munir, Rinaldi. (2007): Algoritma dan Pemrograman I,
Bandung, Informatika.
Suyanto, ST, MSc. (2011): Artificial Intelligence:
Searching, Reasoning, Planning dan Learning,
Bandung, Informatika.
Russel, S.J & Norvig, P. (1995): Artificial Intelligence A
Modern Approach, New Jersey, Prentice Hall

A-52

Anda mungkin juga menyukai