IMPLEMENTASI ALGORITMA M I N I M A X PADA TOE PERMAINAN TI C 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. akurat. Namun saat ini komputer tidak hanya 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 minimax yang di implementasikan ke dalam permainan Tic Tac Toe. Toe. Algoritma minimax minimax merupakan salah satu algoritma dari game playing pada kecerdasan buatan. Algoritma minimax adalah suatu algoritma yang menggunakan teknik pencarian Depth-First Search dengan Search dengan kedalaman terbatas. Tic tac toe adalah toe adalah salah satu game klasik yang hanya 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 yang berhasil memposisikan memposisikan tandanya secara horisontal, vertikal, atau diagonal sebagai baris yang penuh akan memenangkan pertandingan. Dalam permainan tic tac toe tersebut toe tersebut nantinya akan diimplementasikan algoritma minimax minimax dengan tujuan agar komputer menghalangi langkah lawan yaitu user untuk untuk menang. Kata kunci : Kecerdasan buatan, algoritma minimax. minimax.
Aplikasi permainan ( game) merupakan 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 heuristic yang lebih cerdas. Banyak jenis permainan yang mengimple-mentasikan algoritma kecerdasan buatan, contohnya permainan Tic-TacToe, Toe, permainan catur, Othello, Othello, checkers. checkers. Artikel ini akan mengkaji implementasi dari algoritma minmax pada permainan Ti-TacToe. Toe. Minimax Minimax merupakan salah satu teknik permainan yang terkenal pada game pada game tree. tree.
Alasan pemilihan permainan Tic-TacToe Toe digunakan sebagai media penerapan algoritma minimax, 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 Minimax merupakan salah satu dari algoritma pada game tree tree yang menggunakan teknik pencarian Depth-First Search Search dengan kedalaman terbatas. Permainan ini mengasumsikan bahwa komputer akan membuat langkah optimal untuk melakukan hal yang terbaik untuk menghalangi pemain atau user menang. menang.
1
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 Al gor ith m 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 langkahlangkah 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. b. c. d.
Completeness Time Comlexity Space Complexity 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.
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 1. M in imax Game Tr ee
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.
Gambar 2. Rancangan Implementasi Algoritma Minimax pada Permainan Ti c Tac Toe
Analisis Algoritma Implementasi algoritma minimax pada permainan tic tac toe memiliki langkahlangkah sebagai berikut:
4
1) Pada ply pertama komputer mengexpand 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.
Gambar 3. Halaman Utama Permainan
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.
Gambar 4. Proses Permainan
Sour ce Code
Source code dari program ini terlampir pada Lampiran I. Pri nt Scr een
Berikut ini disajikan contoh tampilan awal dari permainan tic tac toe.
Ti c Tac Toe
Tampilan proses permainan tic tac toe.
Ti c Tac Toe
Kesimpulan 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 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-dickyherma15803-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 U til ity F unction 'Jika User Menekan Button 1 If Label1.Text = 1 Then If Button2.Text = "X" Button3.Enabled = True Then With Button3 .Text = "O" .Enabled = False End With ElseIf Button3.Text = "X" Button2.Enabled = True Then With Button2 .Text = "O" .Enabled = False End With ElseIf Button5.Text = "X" Button9.Enabled = True Then With Button9 .Text = "O" .Enabled = False End With ElseIf Button9.Text = "X" Button5.Enabled = True Then With Button5 .Text = "O" .Enabled = False End With ElseIf Button4.Text = "X" Button7.Enabled = True Then With Button7 .Text = "O" .Enabled = False End With ElseIf Button7.Text = "X" Button4.Enabled = True Then With Button4 .Text = "O" .Enabled = False End With ElseIf Button8.Text = "X" Button6.Text = "X" Then hit() End If End If
And
And
And
And
And
And
Or