Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)
-
Upload
nur-fitriyah-ayu -
Category
Documents
-
view
430 -
download
0
Transcript of Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)
1
IMPLEMENTASI ALGORITMA MINIMAX PADA
PERMAINAN TIC TAC TOE
Ayu Septiana Pratiwi
1, Laras Luhur Pribadi
2, Nur Fitriyah Ayu T.S
3, Giovani Ronaldo
4
1,2,3,4 Jurusan Teknik Elektro, Fakultas Teknik, Universitas Negeri Malang
3Universitas Negeri Malang, Malang
Abstrak: Manusia menciptakan komputer sebagai alat bantu kerja agar lebih
cepat dan lebih akurat. Namun saat ini komputer tidak hanya mampu
bertindak lebih cepat tetapi juga mampu untuk berfikir sehigga muncul
Artifical Intellegence (AI) atau Kecerdasan Buatan. Artikel ini mencoba
menjelaskan sebuah konsep algoritma minimax yang di implementasikan ke
dalam permainan Tic Tac Toe. Algoritma minimax merupakan salah satu
algoritma dari game playing pada kecerdasan buatan. Algoritma minimax
adalah suatu algoritma yang menggunakan teknik pencarian Depth-First
Search dengan kedalaman terbatas. Tic tac toe adalah salah satu game klasik
yang hanya bisa dimainkan oleh dua orang pemain. Kedua orang pemain
tersebut bergiliran mengisikan tanda yang berbeda (X dan O) di dalam kotak
sebesar 3 x 3. Pemain yang berhasil memposisikan tandanya secara
horisontal, vertikal, atau diagonal sebagai baris yang penuh akan
memenangkan pertandingan. Dalam permainan tic tac toe tersebut nantinya
akan diimplementasikan algoritma minimax dengan tujuan agar komputer
menghalangi langkah lawan yaitu user untuk menang.
Kata kunci : Kecerdasan buatan, algoritma minimax.
Aplikasi permainan (game) merupakan
sebagian kecil dari teknologi masa kini
yang terus mengalami perkembangan
seiring dengan perkembangan zaman.
Memainkan sebuah permainan merupakan
sebuah konsep komunitas AI (kecerdasan
buatan). Metode-metode pencarian yang
dikembangkan bisa berupa pencarian secara
tradisional maupun secara heuristic yang
lebih cerdas.
Banyak jenis permainan yang
mengimple-mentasikan algoritma kecerda-
san buatan, contohnya permainan Tic-Tac-
Toe, permainan catur, Othello, checkers.
Artikel ini akan mengkaji implementasi dari
algoritma minmax pada permainan Ti-Tac-
Toe. Minimax merupakan salah satu teknik
permainan yang terkenal pada game tree.
Alasan pemilihan permainan Tic-Tac-
Toe digunakan sebagai media penerapan
algoritma minimax, yaitu:
a. Sangat mudah digunakan untuk
menentukan kesuksesan dan kegagalan.
b. Memunginkan untuk membandingkan
dengan kemampuan manusia.
c. Aturan atau pola permainan Tic-Tac-Toe
ini sangat mudah sehingga dapat dilakukan
oleh siapa saja.
Algoritma Minimax merupakan salah
satu dari algoritma pada game tree yang
menggunakan teknik pencarian Depth-First
Search dengan kedalaman terbatas.
Permainan ini mengasumsikan bahwa
komputer akan membuat langkah optimal
untuk melakukan hal yang terbaik untuk
menghalangi pemain atau user menang.
2
Kecerdasan Buatan
Kecerdasan buatan atau lebi dikenal
sebagai Artifical Intelligence, memiliki
beberapa definisi, antara lain :
a. Artifical intelligence adalah ilmu yang
mengembangkan komputer supaya bekerja
dan berpikir serta mengambil keputusan
seperti layaknya manusia.
b. Aan ilmu omputer yang membuat agar
mesin (komputer) dapatrtifical intelligence
merupakan salah satu bagian yang dapat
melakukan pekerjaan seperti dan sebaik
yang dapat dilakukan oleh manusia
c. Artifical intelligence merupakan
software yang memungkinkan komputer
digital bisa meniru beberapa fungsi otak
manusia yang terbatas.
Konsep Dasar Search Algorithm
Penerapan kecerdasan buatan (Artifical
intelligence) untuk pemecah masalah dalam
bidang ilmu komputer telah mengalami
perkembangan yang pesat dari tahun
ketahun seiring dengan perkembangan
kecerdasan buatan itu sendiri. Permasalahan
yang melibatkan pencarian (searching)
adalah salah satu contoh penggunaan
kecerdasan buatan.
Definisi pencarian adalah suatu prose
mencari solusi dari suatu permasalahan
melalui sekumpulam keungkinan ruang
keadaan (state space). Sedangkan
algoritma merupakan urutan langkah-
langkah yang disusun secara sistematis.
Menurut kamus besar Bahasa Indonesia,
algoritma merupakan urutan logis
pengambilan putusan untuk memecahkan
masalah.
Algoritma pencarian bekerja dengan
mengem-bangan berbagai kemungkinan
state yang mungkin dicapai dari state
sekarang. State dalam proses pencarian
biasa disebut node. Kumpulan node akan
terus dikembangkan sampai ditemukan
node yang merupakan goal state atau bila
tidak ada lagi node yang dikembangkan.
Empat kriteria yang menjadi ukuran
algoritma pencarian :
a. Completeness
b. Time Comlexity
c. Space Complexity
d. Optimality
Pencarian dan pelacakan merupakan
salah satu hal penting yang menentukan
keberhasilan dan kesuksesan sebuah
kecerdasan buatan. Pada dasarnya terdapat
2 teknik pencarian dan pelacakan yang
digunakan dalam kecerdasan buatan, yaitu,
pencarian Buta (Blind Search) dan
pencarian Heuristik (Heuristic Search).
Algoritma Minimax
Algoritma minimax merupakan salah
satu algoritma game tree yang
memaksimalkan posisi pemain dan
meminimalkan posisi lawan. Algoritma
minimax menggunakan teknik pencarian
Depth-First Search dengan kedalaman
terbatas dan fungsi evaluasi yang digunakan
adalah fungsi evaluasi statis, dengan
mengansumsikan bahwa lawan akan
membuat langkah terbaiknya yang dapat
dilakukan, algoritma minimax cocok
digunakan untuk permainan catur, Othello,
checkers, dan Tic-Tac-Toe.
Algoritma minimax dirancang untuk
menentukan strategi optimal untuk MAX
untuk memutuskan langkah pertama untuk
bergerak. Algoritma ini terdiri dari lima
langkah:
a. Mendefinisikan game tree, mencangkup
seluruh jalan menuju terminal state.
b. Mengaplikasikan utility function setiap
terminal state untuk memperoleh nilainya.
c. Menggunakan utilitas terminal state
untuk menentukan utilitas nodes tertinggi di
dalam search tree.
d. Duplikasi (back up) nilai dari leaf nodes
hingga root pada satu lapisan dalam satu
waktu.
e. MAX memutuskan untuk bergerak
dengan mengarah ke nilai tertinggi.
Algoritma minimax biasanya
digunakan dalam pemrograman komputer
dimana permainan dilakukan dengan cara
pengambilan langkah yang bergantian
(bergiliran). Pada dasarnya, sebagaimana
3
game tree biasanya merupakan representasi
pohon dari semua kemungkinan langkah
atau gerakan. Minimax tree tersebut mere-
presentasikan semua kemungkinan langkah
yang sudah disederhanakan. Dengan
menghilangkan semua pencerminan dan
rotasi dari posisi yang simetri.
Gambar 1. Minimax Game Tree
Oleh sebab itu algoritma ini disebut
dengan keputusan minimax, karena
algoritma ini akan memaksimalkan utilitas
di bawah asumsi bahwa lawan akan
bermain sempurna untuk mencegah
kemenangan lawan.
Dengan sebuah minimax tree lengkap,
sebuah komputer dapat memeriksa setiap
langkah untuk menentukan langkah terbaik.
Hal ini mengakibatkan algoritma akan
mempunyai ukuran yang sangat besar
dengan hanya beberapa kondisi langkah
saja, dan bisa memberatkan kinerja sebuah
mesin atau komputer sederhana. Sehingga
kinerja algoritma minimax bisa diperbaiki
dengan pruning game tree. Prinsipnya
node (subtree) yang tidak mungkin
mempengaruhi hasil akhir tidak perlu
ditelusuri.
Rancangan Algoritma Minimax di dalam
Permainan Tic-Tac-Toe
Untuk mencegah kemenangan lawan
yaitu user, komputer harus secara konsisten
melakukan langkah-langkah sesuai prioritas
di bawah ini dengan mendahulukan langkah
dengan prioritas tertinggi. Langkah-langkah
dengan prioritas tertinggi yaitu:
a. Menyempurnakan 3 buah baris
diagonal,vertikal, atau horizontal.
b. Menahan lawan agar tidak membentuk
tiga baris yang sempurna (horisontal,
vertikal maupun diagonal).
c. Memperbesar kemungkinan kemenangan
dengan membuat dua tanda yang
berdampingan.
d. Mencegah lawan membuat dua tanda
yang berdampingan.
Representasi game tree dengan
algoritma minimax untuk tic tac toe ini
yaitu:
Gambar 2. Rancangan Implementasi
Algoritma Minimax pada Permainan
Tic Tac Toe
Analisis Algoritma
Implementasi algoritma minimax pada
permainan tic tac toe memiliki langkah-
langkah sebagai berikut:
4
1) Pada ply pertama komputer meng-
expand node pada root kemungkinan user
atau min(X) melangkah.
2) Min(X) menentukan node awal yang
diambil.
3) Max(O) melakukan random untuk
menentukan langkah yang akan diambil.
4) Max(O) menentukan satu node dari hasil
random.
5) Max(O) meng-expand kemungkinan
semua node yang merupakan child hasil
pemilihan pada ply sebelumnya.
6) Min(X) menentukan node yang dipilih.
7) Max(O) mencari node yang bernilai
tertinggi (1 atau 0). Jika Max(O) bernilai 1
hentikan pencarian. Jika Max(O) bernilai 0
lanjutkan pencarian ke langkah selanjutnya.
8) Node (subtree) yang tidak mungkin
mempengaruhi hasil akhir tidak perlu
ditelusuri (pruning).
9) Ulangi langkah no 5 hingga kedalaman
ke sembilan.
Implementasi
Pada tahap ini pengembang mulai
membangun sistem dari permainan tic tac
toe dengan melakukan pengkodean (coding)
berdasarkan rancangan yang telah dibuat
dengan menggunakan bahasa pemrograman
visual basic 2008.
Source Code
Source code dari program ini terlampir
pada Lampiran I.
Print Screen
Berikut ini disajikan contoh tampilan
awal dari permainan tic tac toe.
Gambar 3. Halaman Utama Permainan
Tic Tac Toe
Tampilan proses permainan tic tac toe.
Gambar 4. Proses Permainan
Tic Tac Toe
Kesimpulan
Algoritma minimax merupakan salah
satu algoritma game tree yang memaksi-
malkan posisi pemain dan meminimalkan
posisi lawan. Algoritma minimax menggu-
nakan teknik pencarian Depth-First Search
dengan kedalaman terbatas
Algoritma minimax dirancang untuk
menentukan strategi optimal MAX untuk
memutuskan langkah pertama untuk
bergerak. Dengan sebuah minimax tree
lengkap, sebuah komputer dapat memeriksa
setiap langkah untuk menentukan langkah
terbaik. Hal ini mengakibatkan algoritma
akan mempunyai ukuran yang sangat besar
dengan hanya beberapa kondisi langkah
saja, dan bisa memberatkan kinerja sebuah
mesin atau komputer sederhana. Sehingga
kinerja algoritma minimax bisa diperbaiki
dengan pruning game tree. Prinsipnya
5
node (subtree) yang tidak mungkin mem-
pengaruhi hasil akhir tidak perlu ditelusuri.
Implementasi algoritma minimax dalam
permainan tic tac toe bertujuan agar
komputer menghalangi langkah lawan yaitu
user untuk menang.
Daftar Pustaka
Estrada, Andhika Hendra. Metode
Implementasi N-Ary dalam Artificial
Intelligence Game Studi Kasus:
Minimax pada Tic Tac Toe, (Online),
(http://elearning.upnjatim.ac.id/course
s/KECERDASANBUATAN/work/50
d3abcfc6bc2GAME_TIC_TAC.pdf),
diakses 12 April 2012.
Firmansyah, Dicky Herman. Implementasi
Algoritma Minimax pada Permainan
Tic-Tac0Toe Skala 9x9, (Online),
(http://elib.unikom.ac.id/files/disk1/3
17/jbptunikompp-gdl-dickyherma-
15803-6-jurnal.pdf), diakses 12 April
2012.
Russell, Stuart J dan Norvig, Peter. 1995.
Artificial Intelligence, 1th
ed. New
Jersey: Prentice-Hall, Inc.
6
Lampiran 1
Fungsi Random MAX(O)
Dim random As String = 1
Private Sub Timer1_Tick(ByVal
sender As System.Object, ByVal e As
System.EventArgs)Handles
Timer1.Tick
random += 1
If random = 10 Then
random = 1
End If
End Sub
Fungsi Langkah Awal MAX(O)
Public Sub PC()
If random = 1 And
Button1.Enabled = True Then
Button1.Text = "O"
Button1.Enabled = False
End If
If random = 2 And
Button2.Enabled = True Then
Button2.Text = "O"
Button2.Enabled = False
End If
If random = 3 And
Button3.Enabled = True Then
Button3.Text = "O"
Button3.Enabled = False
End If
If random = 4 And
Button4.Enabled = True Then
Button4.Text = "O"
Button4.Enabled = False
End If
If random = 5 And
Button5.Enabled = True Then
Button5.Text = "O"
Button5.Enabled = False
End If
If random = 6 And
Button6.Enabled = True Then
Button6.Text = "O"
Button6.Enabled = False
End If
If random = 7 And
Button7.Enabled = True Then
Button7.Text = "O"
Button7.Enabled = False
End If
If random = 8 And
Button8.Enabled = True Then
Button8.Text = "O"
Button8.Enabled = False
End If
If random = 9 And
Button9.Enabled = True Then
Button9.Text = "O"
Button9.Enabled = False
End If
End Sub
Potongan Syntax Utility Function 'Jika User Menekan Button 1
If Label1.Text = 1 Then
If Button2.Text = "X" And
Button3.Enabled = True Then
With Button3
.Text = "O"
.Enabled = False
End With
ElseIf Button3.Text = "X" And
Button2.Enabled = True Then
With Button2
.Text = "O"
.Enabled = False
End With
ElseIf Button5.Text = "X" And
Button9.Enabled = True Then
With Button9
.Text = "O"
.Enabled = False
End With
ElseIf Button9.Text = "X" And
Button5.Enabled = True Then
With Button5
.Text = "O"
.Enabled = False
End With
ElseIf Button4.Text = "X" And
Button7.Enabled = True Then
With Button7
.Text = "O"
.Enabled = False
End With
ElseIf Button7.Text = "X" And
Button4.Enabled = True Then
With Button4
.Text = "O"
.Enabled = False
End With
ElseIf Button8.Text = "X" Or
Button6.Text = "X" Then
hit()
End If
End If