• Tidak ada hasil yang ditemukan

Perbandingan Penerapan Algoritma Minimax Dengan Algoritma Alpha-Beta Pruning Pada Permainan Othello

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perbandingan Penerapan Algoritma Minimax Dengan Algoritma Alpha-Beta Pruning Pada Permainan Othello"

Copied!
14
0
0

Teks penuh

(1)

Perbandingan Penerapan Algoritma Minimax Dengan Algoritma Alpha-Beta Pruning Pada Permainan Othello

ABSTRAK

Saat ini kecerdasan buatan atau Artificial Intelligence (AI) digunakan untuk memecahkan berbagai masalah, salah satunya adalah memecahkan permasalahan dalam permainan papan atau board games. Algoritma minimax dan alpha-beta pruning contohnya untuk memecahkan masalah pada board game. Algoritma ini mengasumsikan bahwa setiap langkah yang diambil merupakan langkah terbaik disetiap posisi. Pada penulisan ini membahas penerapan algoritma minimax dengan algoritma alpha-beta pruning pada permainan othello.

Tujuannya adalah untuk membandingkan dan menerapkan algoritma minimax dan algoritma alpha-beta pruning pada permainan othello.

 

Kata Kunci: Algoritma minimax, Algoritma alpha-beta pruning, Board Game, Othello.

1. PENDAHULUAN

Artificial Intelligence (AI) atau kecerdasan buatan merupakan bagian dari ilmu pengetahuan komputer yang ditujukan untuk perancangan otomatisasi tingkah laku cerdas dalam sistem kecerdasan komputer.

Dengan demikian diharapkan komputer bisa menirukan beberapa fungsi otak manusia, seperti berpikir dan belajar. Kecerdasan merupakan kemampuan untuk memperoleh, mengerti dan menggunakan kemampuan yang dimilikinya untuk menyelesaikan persoalan yang dihadapinya.

Definisi kecerdasan buatan atau biasa disebut Artificial Intelligence (AI) adalah suatu studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia ( Kusumadewi, 2003) . AI sering digunakan untuk menyelesaikan masalah, misalnya pada board game. Board game adalah permainan yang dimainkan pada papan yang dirancang khusus. Dengan menggunakan AI, komputer dapat bertindak seperti manusia dalam menyelesaikan suatu permasalahan. Supaya komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi

T. Arie Setiawan P.

Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

Salatiga 50711 [email protected]  

Jasson Prestiliano Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

Salatiga 50711 [email protected]  

Sylvester Raymond Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

Salatiga 50711

[email protected]  

(2)

bekal pengetahuan dan mempunyai kemampuan untuk menalar. AI sudah mempunyai beberapa metode untuk membekali komputer dengan pengetahuan dan kemampuan untuk menalar, sehingga komputer bisa menjadi mesin yang pintar dalam memecahkan suatu permasalahan.

Salah satu permasalahan yang dapat diselesaikan dengan metode AI adalah permainan othello. Othello ditemukan oleh Hasegawa Goro pada tahun 1945.

Permainan othello dimainkan pada arena papan kotak-kotak persegi dengan koin hitam dan koin putih di atas arena, ukuran papan permainan othello adalah 8 x 8. Pada awal permainan diletakkan dua koin hitam dan dua koin putih. Koin warna putih harus melewati koin warna hitam agar koin warna hitam dapat diubah menjadi koin putih, dan sebaliknya.

Algoritma minimax adalah algoritma yang bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian maksimum dan kerugian minimum untuk diri sendiri.

Algoritma alpha-beta pruning melakukan pencarian yang mengurangi secara drastis jumlah simpul dengan melakukan pruning yaitu mengeliminasi simpul yang tidak perlu diproses. Algoritma alpha-beta pruning

sendiri adalah pengembangan dari algoritma minimax. Algoritma alpha-beta pruning mengurangi jumlah simpul yang dieksplorasi algoritma minimax. Oleh karena itu menjadi menarik untuk menganalisa perbandingan algoritma minimax dan algoritma alpha-beta pruning pada permainan othello.

Permasalahan yang ingin dikaji pada penelitian ini adalah bagaimana menerapkan algoritma minimax dengan algoritma alpha- beta pruning pada permainan othello.

Tujuan utamanya adalah menerapkan algoritma minimax dengan algoritma alpha- beta pruning pada permainan othello dan manfaat dari penelitian ini dapat menjadi referensi, bahan pembanding atau dasar bagi penelitian yang lain. Pada penelitian ini terdapat tiga batasan masalah yaitu algoritma yang dibandingkan adalah algoritma minimax dan algoritma alpha-beta pruning, tingkat kedalaman (depth) maksimal yang diteliti adalah tujuh, dan kinerja yang dibandingkan adalah waktu.

 

2. LANDASAN TEORI

Penelitian yang sudah dilakukan berjudul Game Playing untuk Othello dengan Menggunakan Algoritma Negascout dan MTDF (Rich & Knight, 1991).

Negascout adalah salah satu metode

(3)

pencarian minimax dengan berasumsi bahwa langkah pertama yang diambil merupakan langkah terbaik, sedangkan sisanya merupakan langkah terburuk. Jika terdapat langkah yang terbaik dari langkah pertama maka akan dilakukan proses research.

MTDF yang menggunakan upperbound dan lowerbound bekerja dengan melakukan pemanggilan alpha-beta with memory secara berulang-ulang. Proses pruning banyak dihasilkan dengan menggunakan bound ini.

Percobaan dilakukan dengan mempertandingkan algoritma negascout

melawan MTDF, yang akan dievaluasi melalui edge table, mobility, potential mobility atau frontier dan penguasaan corner. Edge table digunakan untuk menyimpan nilai mobility dengan mengevaluasi satu sisi papan, semakin banyak nilai mobility maka akan semakin bagus karena semakin banyak pula langkah yang bagus yang dapat dimainkan. Potential mobility atau frontier menggunakan liberties untuk mengevaluasi jumlah disc yang berbatasan dengan petak kosong. Semakin banyak frontier maka akan semakin buruk karena lawan akan mendapat mobility tambahan dan juga akan mengurangi mobility yang akan didapat. Penguasaan corner juga sangat penting karena dengan menguasai wilayah corner memperbesar

kemungkinan kemenangan yang akan diraih (Gunawan, dkk, 2009).

2.1 Algoritma Minimax

Pada permainan othello, algoritma minimax digunakan untuk menemukan nilai akurat untuk sebuah posisi papan. Algoritma minimax mengasumsikan bahwa kedua pemain selalu mengambil langkah terbaik pada setiap posisi ( Russel, & Norvig, 2003) . Keuntungan yang didapat dengan menggunakan algoritma minimax yaitu algoritma minimax mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan yang terbaik karena algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang membuat lawan mengalami kerugian maksimum. Semua strategi lawan dihitung dengan algoritma yang sama dan seterusnya.

Ini berarti, pada langkah pertama komputer

menganalisis seluruh pohon permainan. Dan

untuk setiap langkahnya, komputer akan

memilih langkah yang paling membuat

lawan mendapatkan keuntungan minimum,

dan yang paling membuat komputer itu

sendiri mendapatkan keuntungan maksimum

dapat dilihat pada Gambar 1.

(4)

Gambar 1 Ilustrasi Algoritma Minimax (Prabawa, 2009).

Pada Gambar 1, saat mencari nilai terbaik maka akan dieksplorasi pohon sebelah kiri terlebih dahulu, -1 didapat karena minimize dari -1 dan 2, -8 didapat karena minimize dari -8, 9, 4. Kemudian keputusan pun diambil yaitu nilai 7 karena maximize dari -1, 7, -8. Pseudocode dari algoritma Minimax ini dapat dilihat pada Kode 1.

Kode 1 Pseudocode Algoritma Minimax (Prabawa, 2009)

If (GameOver (M) or (depth > Maxdepth)) then

→ Evaluation (B, currentPlayer) If (not CanPlay (Player)) then

→ Minimax (M, depth, otherPlayer) Moves ← ValidMoves (Player)

if (Player = currentPlayer) then bestValue ← -99999999 else

bestValue ← 99999999 i traversal [1..moves.Count]

N ← CopyMatrix(M)

Move (N,

moves[i].x,moves[i].y,Player) Value ←

if (Player = currentPlayer) then if (Value > bestValue) then bestValue ← Value bestMove ← moves[i]

else

if (Value < bestValue) then bestValue ← Value bestMove ← moves[i]

if ( not EmptyMove (bestMove)) then Move(M, bestMove.x,bestMove.y, Player)

→bestValue

GameOver() adalah fungsi yang memeriksa apakah kondisi papan permainan menggambarkan akhir permainan.

Evaluation() adalah fungsi yang menghitung nilai sebuah simpul daun. CanPlay() adalah fungsi yang memeriksa apakah seorang pemain dapat bergerak. ValidMoves() adalah fungsi yang menghasilkan beberapa langkah yang dapat dilakukan seorang pemain. Sort() adalah fungsi yang mengurutkan isi langkah yang dapat diambil pemain. CopyMatrix() adalah fungsi untuk menyalin isi matriks.

Move() adalah fungsi yang mengesksekusi langkah seorang pemain pada papan permainan. EmptyMove() adalah fungsi yang memeriksa apakah sebuah langkah null atau tidak.

 

2.2 Algoritma Alpha-Beta Pruning  

Alpha-beta pruning adalah sebuah cara untuk mengurangi jumlah simpul yang diekplorasi dalam algoritma minimax.

Dengan alpha-beta pruning, waktu yang

diperlukan dalam pencarian akan berkurang

dengan cara membatasi waktu yang

terbuang percuma pada saat mengevaluasi

pohon permainan. Implementasi alpha-beta

pruning akan memberikan jalur terbaik

(5)

dalam setiap kemungkinan permainan dalam pohon permainan yang terbentuk ( Prabawa, 2009 ).

Dalam algoritma alpha-beta pruning, urutan jalannya algoritma akan dimulai sama seperti algoritma minimax. Untuk simpul MIN, nilai yang dihitung dimulai dengan positif infinity (+infinity) dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan dihitung mulai dengan minus infinity (-infinity) dan akan naik seiring berjalannya waktu. Efisiensi prosedur alpha-beta akan sangat tergantung pada urutan simpul berikutnya dari sebuah simpul yang sedang dieksplorasi. Jika beruntung, maka sebuah simpul MIN akan dianggap sebagai simpul dengan urutan nilai dari rendah ke tinggi, dan simpul MAX dari tinggi ke rendah. Secara umum, dapat diperlihatkan bahwa dalam kondisi yang terbaik, alpha-beta akan membuka jumlah terminal nodes yang sama dengan minimax dalam pohon permainan, dengan dua kali lipat tingkat kedalaman pohon.

Alpha-beta pruning adalah algoritma pencarian yang mengurangi secara drastis jumlah simpul yang dibangkitkan untuk dievaluasi pada pohon pencarian dengan algoritma minimax. Pruning adalah eliminasi simpul yang tidak perlu diproses saat pencarian.

Gambar 2 Ilustrasi Algoritma Alpha-Beta Pruning

(Prabawa, 2009)

Berdasarkan Gambar 2, pada saat program mencari nilai A, B dievaluasi dan didapatkan bahwa nilanya adalah enam (minimum dari 6 dan 9), kemudian C dievaluasi. Dari sana didapatkan bahwa nilai E adalah empat (maksimum dari 4 dan -2).

Karena C adalah Minimizer, dapat diketahui bahwa nilai C lebih kecil sama dengan empat (C≤4). Oleh karena itu, C tidak akan dipilih oleh A sebagai maksimum, karena A telah memiliki anak B dengan nilai enam, yang tentunya akan lebih besar daripada semua nilai C yang mungkin. Dengan demikian, mengevaluasi F dan G tidak perlu dilakukan, dan proses evaluasi C dapat dihentikan (pruned). Dan evaluasi dilanjutkan ke simpul D.

Hal yang sama dapat dilakukan bila

misalnya A bukan maximizer melainkan

minimizer. Secara umum dapat didefinisikan

batas bawah (lower bound / alpha) dan batas

atas (upper bound / beta) dari nilai sebuah

(6)

Mulai Permainan Keluar Permainan Pilih Credit

User

Pilih Instruction

simpul. Salah satu batas ini tidak berubah dalam simpul, dan bila nilai simpul tersebut melewati batas, simpul tersebut dapat dieliminasi. Batas yang satunya lagi berubah bila nilai simpul tersebut diubah.

Pseudocode dari algoritma Alpha-beta pruning yang merupakan hasil pengembangan dari algoritma minimax (Prabawa, 2009) dapat dilihat pada Kode 2.

Kode 2 Pseudocode Algoritma Alpha-beta Pruning (Prabawa, 2009)

If (GameOver (M) or (depth > Maxdepth)) then

→ Evaluation (B, currentPlayer) If (not CanPlay (Player)) then

→ AlphaBeta (M, depth, otherPlayer, alpha, beta)

Moves ← ValidMoves (Player) Sort (moves)

I traversal [1..moves.Count]

N ← CopyMatrix(M) Move (N,

moves[i].x,moves[i].y,Player) Value ←

AlphaBeta (N,depth+1, otherPlayer, alpha, beta)

if (Player = currentPlayer) then if (Value > alpha) then alpha ← Value bestMove ← moves[i]

if (alpha >= beta) then

→ alpha else

if (Value < beta) then beta ← Value

bestMove ← moves[i]

if (alpha >= beta) then

→ beta if ( not EmptyMove (bestMove)) then

Move(M, bestMove.x,bestMove.y, Player)

if (Player = currentPlayer) then

→ alpha else

→ beta

 

GameOver() adalah fungsi yang memeriksa apakah kondisi papan permainan menggambarkan akhir permainan.

Evaluation() adalah fungsi yang menghitung

nilai sebuah simpul daun. CanPlay() adalah fungsi yang memeriksa apakah seorang pemain dapat bergerak. ValidMoves() adalah fungsi yang menghasilkan beberapa langkah yang dapat dilakukan seorang pemain. Sort() adalah fungsi yang mengurutkan isi langkah yang dapat diambil pemain. CopyMatrix() adalah fungsi untuk menyalin isi matriks.

Move() adalah fungsi yang mengesksekusi langkah seorang pemain pada papan permainan. EmptyMove() adalah fungsi yang memeriksa apakah sebuah langkah null atau tidak.

 

3. PERANCANGAN SISTEM

Berdasarkan Gambar 3 untuk aplikasi ini, maka diperoleh 1 aktor dalam use case yang terlibat dalam sistem yang dibangun untuk aplikasi.

   

Gambar 3 Use Case Aplikasi

Use case di aplikasi ini mempunyai 1 aktor

yaitu User. Aktor mempunyai aktifitas yang

dapat digambarkan pada Gambar 3. User

mempunyai aktifitas untuk memilih mulai

permainan, pilih instruction, pilih credit dan

keluar permainan.

(7)

Adapun bentuk rancangan Activity Diagram untuk penggunaan aplikasi ini terlihat pada Gambar 4

Gambar 4 Activity Diagram Aplikasi

Pada Gambar 4, tampilan awal akan muncul pertama kali dan user dapat menentukan tipe pemain untuk player 1, jika tipe pemain player 1 adalah komputer maka user harus memilih tingkat kedalaman (depth), setelah player 1 sudah ditentukan, maka user juga harus menentukan tipe player 2 dan jika tipe player 2 adalah komputer maka tingkat kedalaman (depth) juga harus ditentukan.

Jika player 1 dan player 2 telah ditentukan maka permainan pun dapat dimulai

Gambar 5 Flowchart Algoritma Minimax

Berdasarkan Gambar 5, flowchart algoritma minimax terdapat lima langkah yaitu langkah pertama start merupakan awal dari permainan dimana belum ada satu langkah pun dari pemain. Kedua player atau komputer mengambil langkah pada tahap ini pemain dengan disk hitam melangkah terlebih dahulu. Ketiga minimax menghitung posisi langkah dari lawan, tahap ini adalah tahap dimana algoritma minimax mulai digunakan dengan cara menghitung tiap kemungkinan yang akan diambil lawan.

Keempat pada tahap ini algoritma minimax

mulai mengambil langkah dari perhitungan

(8)

yang telah dilakukan setelah menilai dari langkah yang diambil lawan. Kemudian lawan akan mengambil langkah terbaik untuk mencari kemenangan dari algoritma minimax, demikian seterusnya. Kelima Pada tahap ini program akan menghitung, apakah papan permainan sudah terisi penuh atau tiap pemain sudah tidak dapat melangkah lagi, maka jumlah disk yang ada pada papan permainan akan dihitung dan pemain yang memiliki disk terbanyak adalah pemenangnya.

Gambar 6 Flowchart Algoritma Alpha-Beta Pruning

 

Berdasarkan Gambar 6, flowchart algoritma alpha-beta pruning terdapat lima langkah yaitu langkah pertama start merupakan awal dari permainan dimana belum ada satu langkah pun dari pemain.

Kedua player atau komputer mengambil langkah pada tahap ini pemain dengan disk hitam melangkah terlebih dahulu. Ketiga alpha-beta pruning menghitung posisi langkah dari lawan, tahap ini adalah tahap dimana algoritma alpha-beta pruning mulai digunakan dengan cara menghitung tiap kemungkinan yang akan diambil lawan.

Keempat pada tahap ini algoritma alpha-

beta pruning mulai mengambil langkah

diawali dengan menghitung nilai alpha dan

beta, kemudian dari perhitungan yang telah

dilakukan setelah menilai dari langkah yang

diambil lawan. Kemudian lawan akan

mengambil langkah terbaik untuk mencari

kemenangan dari algoritma alpha-beta

pruning, demikian seterusnya. Kelima Pada

tahap ini program akan menghitung, apakah

papan permainan sudah terisi penuh atau

tiap pemain sudah tidak dapat melangkah

lagi, maka jumlah disk yang ada pada papan

permainan akan dihitung dan pemain yang

memiliki disk terbanyak adalah

pemenangnya.

(9)

4. PENERAPAN DAN PENGUJIAN Pada bagian ini dibahas mengenai aplikasi yang telah dibangun, yakni meliputi pembahasan antarmuka yang terdapat pada aplikasi serta hasil penerapan algoritma minimax dengan algoritma apha-beta pruning pada permainan othello.

Pada menu awal user dapat memilih start game, instruction, credit, dan exit. Jika user memilih start game maka akan muncul tampilan start new game lalu permainan dapat dimulai. Jika tombol instruction dipilih maka akan muncul form baru yang berisi peraturan dari permainan othello, kemudian jika tombol credit yang dipilih maka akan muncul sebuah form baru yang berisi nama aplikasi dan nama pembuat aplikasi, dan jika tombol exit yang dipilih maka akan keluar dari aplikasi. Kemudian saat memilih tombol start game pada menu awal, maka akan muncul form start new game seperti terlihat pada Gambar 7.

           

Gambar 7 Tampilan Start Game

 

Pada tampilan start game, user dapat memilih tipe pemain untuk player 1 dan player 2, jika user memilih tipe pemain komputer maka label max depth akan aktif dan user dapat memilih tingkat kedalaman (depth) yang diinginkan. Setelah memilih tombol OK maka akan masuk pada tampilan utama, dimana permainan langsung dimulai, seperti yang terlihat pada Gambar 8.

Permainan akan dimulai pertama kali oleh pemain yang memiliki disc hitam.

Gambar 9 Tampilan Utama Aplikasi  

Pada tampilan utama seperti pada Gambar 9, user dapat langsung bermain pada papan permainan, dimana saat papan telah terisi penuh atau salah satu pemain tidak dapat mengambil langkah lagi maka permainan berakhir, seperti pada Gambar 10. Pada Gambar 10 pemenangnya adalah player 2 yang bernama alpha dengan tipe pemain computer_B.

Pada pengujian ini dilakukan dua

kali percobaan dimana masing-masing

(10)

percobaan dilakukan dengan beberapa tipe yaitu human VS computer_A, human VS computer_B, computer_A VS computer_B, dan computer_B VS computer_A. Pada computer_A diterapkan algoritma minimax dan pada computer_B diterapkan algoritma alpha – beta pruning.

 

Gambar 10 Tampilan Akhir Permainan

Pengujian pertama dilakukan sebanyak lima kali permainan tiap tipe, yang dimaksudkan untuk melihat langkah- langkah yang diambil tipe pemain komputer sama atau tidak, dan melihat kemampuan dari setiap algoritma. Tanda  pada tabel menandakan bahwa pemain tersebut memperoleh permainan sedangkan tanda D menandakan jika hasilnya seri pada permainan tersebut.

   

Tabel 1 Tabel Hasil Permainan Computer_A vs Computer_B

Jumlah Kedalaman (depth) 2 3 4 5 6 7

Computer_A 5 1 1 1 3 -

Computer_B 0 4 4 3 2 -

Pada percobaan computer_A vs computer_B, saat kedalaman dua dan enam algoritma minimax menang dengan skor lima dan tiga, sedangkan pada kedalaman tiga, empat dan lima algoritma alpha-beta pruning memenangkan permainan dengan skor empat, empat, tiga. Namun pada kedalaman tujuh permainan tidak selesai dikarenakan waktu dalam mengambil keputusan algoritma minimax terlalu lama.

Gambar 11 Grafik Hasil Permainan Computer_A vs

Computer_B

(11)

Pada Gambar 11 dapat dilihat grafik hasil permainan dari algoritma minimax dan algoritma alpha-beta pruning pada tiap kedalaman.

Pada percobaan computer_B vs computer_A, saat kedalaman lima algoritma alpha-beta pruning memenangkan permainan dengan skor tiga, sedangkan algoritma minimax memenangkan permainan pada kedalaman dua, tiga, empat dan enam dengan skor tiga, tiga, tiga, tiga.

Namun pada kedalaman tujuh permainan tidak selesai dikarenakan waktu dalam mengambil keputusan algoritma minimax terlalu lama.

Tabel 2 Tabel Hasil Permainan Computer_B vs Computer_A

Jumlah Kedalaman (depth) 2 3 4 5 6 7

Computer_B 2 2 2 3 2 -

Computer_A 3 3 3 2 3 -

 

Pada Gambar 12 dapat dilihat grafik hasil permainan dari algoritma alpha-beta pruning dan algoritma minimax pada tiap kedalaman.

         

Gambar 12 Grafik Hasil Permainan Computer_B vs Computer_A

Pada pengujian kedua, dilakukan pengujian yang sama dengan pengujian pertama, namun yang membedakannya adalah pada pengujian kedua ini waktu yang diperlukan untuk tiap AI mengambil langkah juga dicatat. Dimana untuk tiap AI memerlukan waktu yang berbeda dalam menentukan langkah, pada awal permainan AI cenderung cepat dalam mengambil langkah, namun saat tengah permainan waktu yang diperlukan lebih banyak. Hal ini jelas terlihat mulai pada percobaan kedalaman keenam dan ketujuh.

Dalam mengambil keputusan untuk

menentukan langkah algoritma minimax

lebih banyak membutuhkan waktu

dibandingkan dengan algoritma alpha-beta

pruning. Ini disebabkan oleh karena

algoritma minimax tetap mencari nilai yang

terbaik dari tiap cabang, sedangkan

algoritma alpha-beta pruning saat

menemukan nilai terkecil atau terbesar maka

(12)

pencarian dihentikan (pruned). Berikut tabel hasil pengujian ketiga:

Pada percobaan kedua computer_A vs computer_B, algoritma minimax 13 kali kemenangan dari 25 kali permainan dengan persentase 52%, sedangkan algoritma alpha- beta pruning mendapatkan 12 kali kemenangan dari 25 kali permainan dengan persentase 48%, pada percobaan ini tidak terdapat permainan seri atau dengan persentase 0%. Percobaan kedalaman ketujuh tidak dihitung karena tidak ada permainan yang selesai.

Tabel 3 Tabel Hasil Permainan Computer_A vs Computer_B

Jumlah Kedalaman

(depth) Persentase

2 3 4 5 6 7 %

Computer_A 3 4 2 3 1 52%

Computer_B 2 1 3 2 4 48%

Draw - - - - - - 0%

Pada Gambar 13 dapat dilihat grafik hasil permainan dari algoritma minimax dan algoritma alpha-beta pruning pada tiap kedalaman.

         

                       

Gambar 13 Grafik Hasil Permainan Computer_A vs Computer_B

Pada percobaan kedua computer_B vs computer_A, algoritma alpha-beta pruning 12 kali kemenangan dari 25 kali permainan dengan persentase 48%, sedangkan algoritma minimax mendapatkan 12 kali kemenangan dari 25 kali permainan dengan persentase 48%, pada percobaan ini terdapat satu kali permainan seri atau dengan persentase sebesar 4%. Percobaan kedalaman ketujuh tidak dihitung karena hanya dua permainan yang selesai dari lima kali permainan.

Tabel 4 Tabel Hasil Permainan Computer_B vs Computer_A

Jumlah Kedalaman

(depth) Persentase

2 3 4 5 6 7 %

Computer_B 3 1 2 3 3 48%

Computer_A 2 3 3 2 2 48%

Draw - 1 - - - - 4%

 

(13)

Pada Gambar 14 dapat dilihat grafik hasil permainan dari algoritma alpha-beta pruning dan algoritma minimax pada tiap kedalaman.

Gambar 14 Grafik Hasil Permainan Computer_B vs Computer_A

Berdasarkan percobaan-percobaan yang dilakukan diperoleh hasil bahwa algoritma minimax membutuhkan waktu yang lama dalam mengambil keputusan, terutama pada tingkat kedalaman (depth) tujuh, karena algoritma minimax tetap mencari nilai yang terbesar dan terkecil sampai pohon pencarian habis, sedangkan algoritma alpha-beta pruning membutuhkan waktu yang cukup singkat karena algoritma alpha-beta pruning mencari nilai alpha dan beta, setelah nilai alpha dan beta ditemukan maka pencarian terhadap pohon dihentikan dan keputusan diambil .

Langkah awal pun menentukan suatu kemenangan, karena pada awal permainan saat player 1 akan mengambil langkah terdapat empat kemungkinan langkah yang

akan diambil. Misalnya pada awal permainan langkah yang dapat dipilih oleh player 1 adalah posisi D3, C4, F5, E6. Jika player 1 memilih langkah D3, maka player 2 dapat memilih langkah C3, C5, E3, namun bila player 1 memilih langkah selain D3 maka player 2 pun akan mempunyai langkah yang berbeda, sehingga langkah awal dari permainan menentukan kemenangan.

5. KESIMPULAN DAN SARAN

Dari penerapan algoritma minimax dengan algoritma alpha-beta pruning pada permainan othello, simpulan yang didapat adalah (1) algoritma minimax membutuhkan waktu yang cukup lama dalam menentukan langkah, ini disebabkan karena algoritma minimax tetap mencari nilai yang terbesar dan terkecil sampai pohon pencarian habis.

Sedangkan algoritma alpha-beta pruning membutuhkan waktu yang cukup singkat karena algoritma alpha-beta pruning mencari nilai alpha dan beta, setelah menemukan nilai alpha dan beta maka pencarian dihentikan dan keputusan diambil.

(2) Berdasarkan hasil percobaan dapat

disimpulkan bahwa langkah awal

menentukan kemenangan, karena dengan

langkah awal yang berbeda akan

menghasilkan langkah yang berbeda pula

yang akan diambil lawan. Penelitian ini

(14)

dapat menjadi dasar bagi pengembangan perangkat lunak lain yang menggunakan algoritma minimax atau algoritma alpha- beta pruning dalam penyelesaian permasalahannya. Penelitian ini juga dapat

dikembangkan dengan menambahkan satu algoritma lagi, dengan kata lain menerapkan tiga algoritma. Misalnya algoritma minimax, alpha-beta pruning, dan greedy

   

6. DAFTAR PUSTAKA

Gunawan, dkk, 2009, Game Playing Untuk Othello Dengan Menggunakan Algoritma Negascout dan MTDF, Seminar Nasional Aplikasi Teknologi Informasi 2009 (SNATI 2009), F: 61- 66.

Kusumadewi, Sri, 2003, Artificial Intelligence (Teknik dan Aplikasinya), Jogjakarta, Graha Ilmu.

Prabawa, Aditya Eka, 2009, Kombinasi Greedy, Minimax dan Alpha-Beta Pruning Untuk Permainan Reversi, Bandung: Institut Teknologi Bandung.

Rich, E., & Knight, K., 1991, Artificial Intelligence, New York: McGraw-Hill.

Russel, Stuart, J., & Peter Norvig, 2003, Artificial Intelligence: A Modern Approach, New

Jersey: Prentice Hall.

Gambar

Gambar 2 Ilustrasi Algoritma Alpha-Beta Pruning  (Prabawa, 2009)
Gambar 4 Activity Diagram Aplikasi
Gambar 6 Flowchart Algoritma Alpha-Beta Pruning  
Gambar 7 Tampilan Start Game
+5

Referensi

Dokumen terkait

Beberapa kesimpulan yang diperoleh penulis setelah melakukan penelitian tentang optimalisasi Algoritma Minimax dengan Alpha Beta Prunning untuk menentukan langkah terbaik

Algoritma Negamax Alpha Beta Pruning menelusuri pohon permainan Othello dengan menggunakan langkah lawan sebagai root node kemudian membangun anak-anak node dengan

Dari pengujian terhadap algoritma Minimax yang telah dilakukan oleh penulis pada aplikasi permainan catur sederhana, maka didapatkan hasil yang telah dirangkum

menggunakan algoritma minimax berbasis sistem operasi android, untuk mengetahui kemampuan algoritma minimax dalam mengambil keputusan untuk memenangkan sebuah

Pada penelitian sebelumnya telah dibandingkan MTD(f) dan algoritma Alpha Beta Pruning pada (AI) untuk permainan Fanorona yang dilakukan oleh Veronica Lestari

Tetapi, jika algoritma Minimax digunakan pada permainan dengan jumlah kemungkinan penyelesaian yang besar seperti pada permainan catur, algoritma Minimax ini

Pada penelitian sebelumnya telah dibandingkan MTD(f) dan algoritma Alpha Beta Pruning pada (AI) untuk permainan Fanorona yang dilakukan oleh Veronica Lestari

Hasil akurasi penentuan langkah pada permainan checker dengan optimasi algoritma minimax ini dipengaruhi oleh beberapa hal, seperti kedalaman node yang diperiksa, posisi koin pada papan