Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

6
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 3 Universitas 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.

Transcript of Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

Page 1: 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.

Page 2: Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

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

Page 3: Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

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:

Page 4: Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

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

Page 5: Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

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.

Page 6: Implementasi Algoritma Minimax Pada Tic Tac Toe (Tubes AI)

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