PERBANDINGAN ALGORITMA A* (A-STAR) DENGAN ALGORITMA MINIMAX PADA GAME TIC-TAC-TOE - UNIB Scholar Repository
Desember 2013
Vol. II #4
Alhamdulill hirabbil alamin kami mengucapkan syukur kepad Allah SWT yang telah memberikan
rahmat-Nya sehingga jurnal rekurSIf Vol2 #2 pada bulan April 2013 diterbitkan. Terbitnya jurnal edisi ini
tidak terlepas dari kerja sama tim jurnal yang dengan baik telah berkontribusi mengawasi dan menger-
jakan jurnal rekursif ini.Jurnal rekursif edisi ini berisi beberapa karya ilmiah mahasiswa teknik informatika yang telah lulus
dengan baik melalui program Studi Teknik Informatika. Dengan terbitnya jurnal ini, kami berharap dapat
berkontribusi aktif dengan perkembangan dan kemajuan teknologi yang bersesuaian dengan pemban-
gunan di Indonesia pada umumnya dan kota Bengkulu pada khususnya. Makalah yang ada di dalam
jurnal rekursif ini juga telah melalui bimbingan dosen terkait yanmg telah berperan aktif dalam mem-
bimbing dan mengarahkan mahasiswa untuk membuat makalah yang baik dan benar.Dalam jurnal ini kami juga mengundang para penulis yang ingin memasukkan paper dan karya ilmi-
ahnya dalam jurnal ini. Demikianlah pengantar tim dengan harapan semoga jurnal ini bermanfaat dan
dapat dijadikan referensi yang baik bagi para penulis lainnya. Salami
...............................................................................
Daftar Isi | Redaksi i Pengantar Redaksi .............................................................................. ii Perbandingan Teorema Bayes dan Certainty Factor pada Sistem Pakar dalam Mendiagnosa Penyakit Lambung dan Usus Helmi Megasari, Ernawati, Arie Vatresia .............................................. 55-70 Sistem Pakar Mendiagnosa Penyakit Tulang pada Manusia Menggunakan Metode Dempster-Shafer Berbasis Wap
dengan WML dan PHP
Novi Yarni, Rusdi Efendi, Desi Andreswari .............................................. 71-82 Perbandingan Algoritma A* (A-Star) Dengan Algoritma Mini-max Pada Game Tic-Tac-Toe
Rina Puspita Dewi, Rusdi Efendi, Ernawati ............................................ 83-100 Aplikasi Inventarisasi Metode Sistem Pendukung KeputusanVolume II Nomor 2 April 2013 Berbasis Web (Studi Kasus: Skripsi Sistem Pendukung Kepu- tusan Mahasiswa Teknik Informatika Universitas Bengkulu) Dicka Ayu A, Desi Andreswari, Rusdi Efendi ......................................... 101-108 Pembelajaran Iqro’ Berbasis Teknologi Informasi dan Komu- Penanggung Jawab nikasi (TIK) Menggunakan PHP dan MySQL ketua Program Studi
Tuti Susanti, Asahar Johar, Arie Vatresia .......................................... 109-116 Teknik Informatika
Sistem Pendukung Keputusan Pemilihan Restoran di Kota fakultas Teknik
Bengkulu Dengan Metode SAW Berbasis Sistem Operasi An- uNIVerSITAS BeNGkuLu droid Vera Fuspita, Arie Vatresia, Desi Andreswari
.......................................... 117-124 Dewan Redaksi Ketua : Implementasi Metode Goal Programming Dengan Pembob-
Boko Susilo otan Menggunakan Analytical Hierarchy Process (AHP) Pada Optimasi Alokasi Lahan Daerah Aliran Sungai (DAS) Terpadu Penyunting : (Studi Kasus : Lahan DAS Manjunto Kabupaten Mukomuko
Ernawati Propinsi Bengkulu )
Arie Vatresia Suci Pratiwi, Gusta Gunawan, Rusdi Efendi .......................................... 125-140
Anggota : Funny Farady Coastera
Perbandingan Deteksi Pemalsuan Citra Digital Menggunak- Rusdi Efendi an Dekomposisi Nilai Singulir dan Jaringan Syaraf Tiruan Maya Mairisha, Arie Vatresia, Della Maulidiya .......................................... 141-160
Reviewer Aplikasi Optimasi Rute Antar Jemput Siswa dengan Ant Sys- edy Hermansyah tem (AS) untuk Penyelesaian Vehicle Routing Problem (VRP)
Asahar Johar Berbasis Android (Studi Kasus SD Islam Terpadu Iqra’ Kota Bengkulu Alamat Redaksi Marina Rasyada, Ernawati, Funny Farady C .......................................... 161-174
Jurnal rekrusif, Program Studi Teknik Informatika fakultas Teknik - kampus universitas Bengkulu Sistem Navigasi Untuk Titik Berkumpul Dan Jalur Evakuasi-
Jl. W.r Supratman kandang bencana Gempa Dan Tsunami Di Kota BengkuluBerbasis An-
Limun Bengkulu 38371 droid (Studi Kasus Badan Penanggulangan Bencana Daerah
Telp. (0736) 344087, 21170 – 227 email : [email protected] (BPBD) Kota Bengkulu Jafarian Agusman, Ernawati, Della Maulidiya .......................................... 175-190 Rancang Bangun Media Pembelajaran Pengenalan Warna, Bentuk, Angka, Huruf dan Tangga Nada Berbasis Multime- dia Interaktif untuk Pendidikan Anak Usia Dini (4-6 Tahun) Elvia Juni H, Arie V, Sri Saparahayuningsih .......................................... 191-200 www.ti.ft.unib.ac.id ii
© Jurnal Teknik Informatika rekursif
Alhamdulill hirabbil alamin kami mengucapkan syukur kepad Allah SWT yang telah memberikan
rahmat-Nya sehingga jurnal rekurSIf Vol2 #2 pada bulan April 2013 diterbitkan. Terbitnya jurnal edisi ini
tidak terlepas dari kerja sama tim jurnal yang dengan baik telah berkontribusi mengawasi dan menger-
jakan jurnal rekursif ini.Jurnal rekursif edisi ini berisi beberapa karya ilmiah mahasiswa teknik informatika yang telah lulus
dengan baik melalui program Studi Teknik Informatika. Dengan terbitnya jurnal ini, kami berharap dapat
berkontribusi aktif dengan perkembangan dan kemajuan teknologi yang bersesuaian dengan pemban-
gunan di Indonesia pada umumnya dan kota Bengkulu pada khususnya. Makalah yang ada di dalam
jurnal rekursif ini juga telah melalui bimbingan dosen terkait yanmg telah berperan aktif dalam mem-
bimbing dan mengarahkan mahasiswa untuk membuat makalah yang baik dan benar.Dalam jurnal ini kami juga mengundang para penulis yang ingin memasukkan paper dan karya ilmi-
ahnya dalam jurnal ini. Demikianlah pengantar tim dengan harapan semoga jurnal ini bermanfaat dan
dapat dijadikan referensi yang baik bagi para penulis lainnya. Salami
PERBANDINGAN ALGORITMA A* (A-STAR)
DENGAN ALGORITMA MINIMAX PADA GAME TIC-TAC-TOE
#1 #2 #3 Rina Puspita Dewi , Rusdi Efendi , Ernawati
Program Studi Teknik Informatika FT UNIB
Jl. WR. Supratman, Kandang Limun Bengkulu 38371 A INDONESIA 1) 2) 3)email : [email protected], [email protected] [email protected]
ABsTRAk
Beberapa game berbasis komputer menerapkan kecerdasan buatan. Dalam kecerdasan buatan, game
dibuat memiliki kecerdasan layaknya manusia. Salah satu contoh game tersebut adalah game tic-tac-toe.
Game tic-tac-toe merupakan game logika sederhana yang membutuhkan strategi untuk mengalahkan
lawan dengan menyusun tiga buah karakter yang sama dalam satu garis horizontal, vertikal, atau diagonal.
Algoritma yang diterapkan pada penelitian ini adalah algoritma A* (A-star) yang merupakan perkemban-
gan dari best first search dan algoritma minimax yang menerapkan teknik depth first search dengan pa-
pan permainan 3x3 dan 5x5. Dalam penerapannya masing-masing algoritma menggunakan fungsi heu-
ristik tersendiri yang berfungsi untuk melakukan pencarian. Tujuan dari penelitian ini adalah membangun
suatu aplikasi game tic-tac-toe menggunakan algoritma A*, membangun suatu aplikasi game tic-tac-toe
menggunakan algoritma minimax , dan membandingkan keefisienan algoritma A* dengan algoritma min-
imax berdasarkan waktu tempuh algoritma. Pada penelitian ini, aplikasi dibangun dengan menggunakan
bahasa pemrograman C#, metode pengembangan sekuensial linear, dan perancangan Unified Modeling
Language (UML). Hasil pengujian menunjukkan bahwa algoritma A* lebih efisien dalam penerapan pada
game tic-tac-toe ditinjau dari waktu tempuh algoritma untuk mencapai solusi optimal.Kata kunci: kecerdasan buatan, algoritma A*, algoritma minimax, C#, game tic-tac-toe.
kecerdasan layaknya manusia. Menurut H.A
I. PENDAHULUAN
Simon , ‘Kecerdasan buatan merupakan ka-
Latar Belakang A.
wasan penelitian, aplikasi, dan instruksi yang terkait dengan pemrograman komputer
Game dalam bahasa Indonesia artinya
untuk melakukan sesuatu yang dalam pan- permainan yaitu sesuatu yang dimainkan dangan manusia adalah cerdas’[1]. dengan aturan tertentu sehingga ada yang menang atau kalah. Bermain game meru-
Game playing merupakan salah satu
pakan salah satu aktivitas yang sangat cabang dari kecerdasan buatan yang disukai oleh sebagian besar masyarakat, mengimplementasikan pengetahuan ma- baik sekedar bermain untuk melepas lelah nusia ke dalam bentuk permainan (game) maupun hobi. Dengan berkembangnya yang mempunyai intelektual untuk berpikir. teknologi sekarang ini, game tidak hanya
Salah satu kelebihan game yang mener- dapat dijumpai pada kehidupan nyata tapi apkan kecerdasan buatan adalah kita ti- juga dapat dijumpai dalam dunia maya. dak harus mencari orang untuk menjadi
Game di dunia maya merupakan game ber-
lawan tanding jika ingin bermain, sebab basis komputer.
game berbasis komputer ini sudah men-
dukung mode permainan tunggal ( single- Beberapa game berbasis komputer
player mode) dimana kita dapat bermain
menerapkan kecerdasan buatan. Dalam sendiri melawan komputer yang dirancang kecerdasan buatan, game dibuat memiliki
83
- Jurnal Teknik Informatika REKURSIF -
Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe untuk dapat berlaku layaknya manusia.
Salah satu contoh game tersebut adalah game tic-tac-toe.
Game tic-tac-toe merupakan game
sederhana berjenis permainan papan ( broad-game) dengan papan permainan berukuran 3x3 yang memiliki simbol pe- main X atau O. Game tic-tac-toe sangat mu- dah untuk menentukan ukuran kesuksesan atau kegagalan, sebab pemain hanya harus mengisi papan permainan yang tersedia dengan simbol pemain X atau O hingga membentuk suatu garis diagonal, vertikal, atau horizontal sehingga sangat mungkin untuk dibandingkan dengan kemampuan manusia.
Game tic-tac-toe yang diterapkan se-
lama ini masih sebatas papan permainan berukuran 3x3, belum ada penerapan papan permainan berukuran lebih dari 3x3 misal- nya berukuran 4x4, 5x5, sampai NxN yang penting masih mengikuti kaidah dasarnya yaitu papan permainannya berukuran bu- jur sangkar. Selain itu game tic-tac-toe yang diterapkan selama ini hanya sebatas satu pilihan papan permainan saja, sehingga dalam penelitian ini akan dibuat game tic-
tac-toe yang terbagi dalam papan permain- an 3x3 dan papan permainan 5x5.
Membuat game yang dapat bertindak dan berpikir layaknya pemain manusia lainnya, diperlukan suatu algoritma yang dapat membuat komputer bersifat cerdas sehingga mampu mengambil keputusan yang terbaik agar dapat mengalahkan pe- main atau setidaknya menghalau pemain menang. Pada dasarnya ada dua teknik pencarian dan pelacakan yang digunakan, yaitu pencarian buta ( blind search) dan pen- carian heuristik ( heuristic search) [2]. Dalam hal ini teknik pencarian yang akan digu- nakan adalah pencarian heuristik. Pencar- ian heuristik merupakan teknik pencarian yang berdasarkan pada fungsi heuristik. Heuristik merupakan suatu strategi untuk melakukan proses pencarian ( search) ru- ang masalah secara selektif, yang memandu proses pencarian disepanjang jalur yang memiliki kemungkinan sukses paling besar [1]. Didalam pencarian heuristik terdapat beberapa algoritma yang diterapkan, dian- taranya yaitu Algoritma A* dan Algoritma Minimax[3].
Algoritma A* merupakan algoritma per- baikan dari best first search dengan memod- ifikasi fungsi heuristiknya [3]. Algoritma A* merupakan algoritma yang sering dipakai dalam pencarian langkah seperti pencarian langkah pada game puzzle dan pathfind-
ing yang merupakan pencarian jalan suatu
simbol untuk sampai ke tujuan. Algoritma A* dapat menyelesaikan permasalahan se- cara optimal dengan membangkitkan sim- pul yang paling mendekati optimum untuk menemukan jalan terpendek menuju suatu tujuan. Dalam proses pencariannya algorit- ma A* akan dimodelkan dengan fungsi heu- ristik disebut f(n) yang merupakan penentu- an urutan titik mana yang akan dikunjungi terlebih dahulu. Fungsi heuristik yang digu- nakan algoritma A* merupakan biaya perki- raan ditambah biaya sebenarnya. Fungsi heuristik inilah yang menjadikan algoritma A* lebih baik dari pada algoritma lainnya [4].
Sama halnya dengan algoritma A*, al- goritma minimax juga menerapkan teknik heuristik dalam membantu penyelesaian masalah. Algoritma minimax merupakan algoritma yang sangat sering dipakai un- tuk permasalahan game, terutama game yang menerapkan dua pemain seperti per- mainan catur dengan menggunakan teknik
depth-first search dalam pencariannya pada
pohon dengan kedalaman terbatas [3]. Al- goritma minimax mendeskripsikan kondisi apabila terdapat pemain yang mengalami keuntungan maka pemain lain akan men- galami kerugian. Algoritma minimax akan melakukan pengecekan pada seluruh ke- mungkinan yang ada, sehingga akan meng- hasilkan pohon permainan yang berisi semua kemungkinan permainan tersebut [5]. Dalam repersentasi pohon pada al-
- Volume II Nomor 2 | April 2013 -
D.
game berbasis komputer, pemain lawan dapat digantikan oleh komputer [6].
3x3. Board-game adalah permainan dengan kepingan-kepingan yang ditempatkan di atas, dipindahkan dari atau digerakkan di atas suatu permukaan khusus, permukaan khusus itu disebut papan permainan [5]. Dalam game tic-tac-toe terdapat sembilan buah ruang (3x3) berbentuk kotak yang ber- sekat (bidak). Game ini menggunakan dua simbol pemain yaitu X atau O. Game ini dimulai dengan mengisi salah satu bentuk simbol pada salah satu bidak, hingga tiga buah simbol yang berbentuk sama tersu- sun membentuk garis diagonal, vertikal, atau horizontal. Game ini biasanya dimain- kan oleh dua orang pemain, tapi pada versi
game) dengan papan permainan berukuran
klasik berjenis permainan papan ( board-
A. Game Tic-Tac-Toe Game tic-tac-toe merupakan permainan
II. TINJAUAN PUsTAkA
Manfaat yang diharapkan dari penelitian ini adalah mengetahui algoritma yang lebih efisien antara algoritma A* dan algoritma minimax dalam penerapannya pada ap- likasi game tic-tac-toe.
E. Manfaat Penelitian
tic-tac-toe ditinjau dari waktu tempuh algoritma.
2. Untuk mengetahui algoritma mana yang lebih efisien penerapannya pada game
tac-toe menggunakan algoritma A* dan algoritma minimax.
1. Untuk membangun aplikasi game tic-
Berdasarkan latar belakang di atas tu- juan penelitian ini adalah :
Tujuan Penelitian
mainan (menang, kalah atau seri), waktu lama permainan.
rina Puspita Dewi, rusdi efendi, ernawati
an algoritma A* dan algoritma mini- max?
goritma minimax, terdapat dua jenis simpul, yaitu simpul min dan simpul max. Max akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai ter- endah [3].
Berdasarkan uraian di atas, maka penulis bermaksud mengangkat permasalahan per- bandingan algoritma pada game tic-tac-toe dalam tugas akhir ini yang berjudul “Perbandin- gan Algoritma A* (A-Star) dengan Algoritma Minimax pada Game Tic-Tac-Toe”.
B. Rumusan Masalah
Berdasarkan latar belakang yang telah dikemukakan di atas, maka rumusan ma- salah dalam penelitian ini adalah :
1. Bagaimana membangun aplikasi
game tic-tac-toe dengan menggunak-
2. Algoritma mana yang lebih efisien pener- apannya pada game tic-tac-toe ditinjau dari waktu tempuh algoritma?
4. Output yang dihasilkan berupa hasil per-
C. Batasan Masalah
Agar penulisan tugas akhir ini lebih ter- arah dan topik-topik yang dibahas tidak meluas, perlu dilakukan pembatasan ma- salah ruang lingkup. Adapun yang men- jadi batasan masalah dalam penelitian ini adalah :
1. Penelitian ini hanya membandingkan hasil optimal dari kedua algoritma yai- tu algoritma A* dan algoritma minimax berdasarkan percobaan aplikasi dan waktu tempuh algoritma.
2. Game ini dimainkan oleh satu orang pe- main melawan komputer.
3. Game ini hanya menyediakan 2 pili-
han papan permainan yaitu 3x3 dan 5x5.
Dalam game ini hasil permainan yang didapat berupa menang, kalah, atau seri. Hasil permainan dinyatakan menang jika simbol dari salah satu pemain ( player atau
- Jurnal Teknik Informatika REKURSIF -
7. Langkah yang sudah diambil tidak dapat dibatalkan atau diganti dengan langkah yang lain.
first search dengan memodifikasi fungsi
Algoritma A* adalah algoritma yang dikemukakan oleh Hart, Nilsson, dan Ra- phael pada tahun 1968. Algoritma pencar- ian A* disebut juga A-star search. Algoritma A* merupakan algoritma perbaikan dari best
Algoritma A* (A-Star)
C.
Pencarian adalah suatu proses mencari solusi dari suatu permasalahan melalui se- kumpulan kemungkinan ruang keadaan (state space). Algoritma pencarian dikatakan penting untuk perencanaan dalam sebuah permainan, karena algoritma pencar- ian akan menuntun pemain dalam meny- elesaikan permainan. Menurut Kusumadewi (2003), teknik pencarian terbagi dua yaitu pencarian buta ( blind search) dan pencarian heuristik ( heuristic search). Teknik pencarian yang digunakan apada penelitian ini adalah teknik pencarian heuristik uyaitu algoritma A* (A-Star) dan algoritma minimax.
Gambar 1 Contoh Simulasi Game Tic-Tac-Toe dengan Kondisi Menang B. Algoritma Pencarian
9. Pemenang ditentukan oleh pemain yang pertama kali menyusun deret terse- but. Untuk lebih jelas, berikut contoh simula- si game tic-tac-toe, misalnya pemain manu- sia menggunakan simbol X dan komputer menggunakan simbol O :
8. Tujuan dari game ini adalah untuk mendapatkan deret dengan tiga simbol atau lebih yang sama secara horizontal, vertikal atau diagonal.
6. Bidak yang sudah terisi tidak bisa ditim- pa oleh langkah berikutnya.
Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe
5. Setiap pemain hanya mempunyai satu kali kesempatan pada setiap gili- ran.
4. Untuk memberikan langkah, setiap pe- main harus mengisi bidak dengan sim- bol pemain masing-masing, biasanya X atau O.
3. Pemain manusia ( player) akan diha- langi oleh komputer untuk mencapai tujuan ( goal) karena komputer telah di- beri kecerdasan buatan sehingga kom- puter juga berusaha untuk menjadi pemenang.
2. Pemain dalam permainan ini dibatasi untuk satu lawan satu, dilakukan bergili- ran antara pemain pertama (manusia) dan pemain kedua (komputer).
1. Besar papan permainan berukuran 3x3 atau lebih dengan deret kemenangan 3 atau lebih, disesuaikan dengan papan permainan.
main ( rule) yang digunakan selama ber- langsungnya permainan, diantaranya seb- agai berikut:
Aturan Game Tic-Tac-Toe Game tic-tac-toe ini memiliki aturan
komputer) telah tersusun membentuk garis diagonal, vertikal, atau horizontal, sedang- kan pemain yang lain dianggap kalah. Ha- sil permainan dinyatakan seri jika simbol dari kedua permain tidak ada yang tersu- sun membentuk garis diagonal, vertikal, atau horizontal, serta semua bidak papan permainan telah terisi. Dengan adanya ke- cerdasan buatan yang mampu meminimali- sir kemungkinan untuk pemain (manusia) menang, game ini akan menjadi sangat sulit untuk dimenangkan oleh pemain (manusia). Bahkan kemungkinan terbaik untuk pemain hanyalah seri. Dengan kata lain, dengan menggunakan algoritma, komputer tidak akan kalah [7].
heuristiknya [3]. Perbedaan algoritma A* dengan best first search terletak pada not- asi standar fungsi heuristik yang digunakan oleh kedua algoritma, best first search hanya
- Volume II Nomor 2 | April 2013 -
f(n) = fungsi heuristik g(n) = biaya (cost) yang sudah dikeluarkan dari simpul awal sampai keadaan n. h(n) = biaya perkiraan untuk sampai pada suatu tujuan (goal) mulai dari n (simpul n) [3].
game tersebut yaitu semua merupakan game logika dan game dengan informasi
logika lainnya. Persamaan antara semua
menggunakan biaya perkiraan (h(n)) tetapi algoritma A* selain menggunakan biaya perkiraan ditambah biaya yang diperlukan atau biaya sebenarnya (g(n)). Dengan kata lain, modifikasi fungsi heuristik inilah yang menjadikan algoritma A* lebih baik dari- pada algoritma lainnya dalam menghasikan solusi yang optimal.
Algoritma A* merupakan algoritma yang digunakan untuk pencarian langkah seperti pada berbagai macam game puzzle serta
pathfinding yang merupakan pencarian ja- lan suatu simbol untuk sampai ke tujuan.
Algoritma A* dapat menyelesaikan per- masalahan secara optimal dengan mem- bangkitkan simpul yang paling mendekati nilai optimum untuk menemukan jalan terpendek menuju tujuan. Dalam proses pencariannya algoritma A* akan dimodel- kan dengan fungsi heuristik disimbolkan dengan f(n) yang merupakan penentuan urutan titik mana yang akan dikunjungi terlebih dahulu. Fungsi heuristik adalah sebuah fungsi yang memetakan keadaan permasalahan, yang mendeskripsikan daya tarik dan digambarkan dalam sebuah an- gka [4]. Pengertian lainya, fungsi heuristik merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan suatu ma- salah secara selektif, yang memandu proses pencarian disepanjang jalur yang memiliki kemungkinan sukses paling besar [5].
game yang menggunakan strategi atau
Algoritma minimax merupakan algorit- ma yang diterapkan dalam game yang meli- batkan dua pemain yang saling bergantian, seperti tic-tac-toe, chess, go, othello dan
D. Algoritma Minimax
Dengan perhitungan seperti ini, algorit- ma A* menjadi complete dan optimal [8]. Namun fungsi heuristik masih merupakan perkiraan, sama sekali tidak ada rumus khu- susnya. Artinya, setiap kasus memiliki fung- si heuristik yang berbeda-beda [9].
B. Algoritma Pencarian
rina Puspita Dewi, rusdi efendi, ernawati
(2)
Notasi standar yang digunakan pada al- goritma A* adalah:
Fungsi heuristik ini akan diterapkan pada setiap simpul yang dibangkitkan. Sim- pul yang dipilih merupakan simpul yang mendekati solusi dengan fungsi heuristik terbaik. Algoritma A* baru akan berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.
A-star search first search dengan memodifikasi fungsi best first search best first search f(n) = g(n)+h(n)
blind search heuristic search Algoritma A* (A-Star)
yang lengkap. Algoritma minimax meru- pakan salah satu algoritma yang sering digunakan untuk game kecerdasan buatan yang menggunakan teknik depth first search (DFS) dalam pencariannya pada pohon dengan kedalaman terbatas [3]. Algoritma minimax digunakan untuk memilih langkah terbaik, dimana kedua pemain akan saling berusaha untuk memenangkan permainan. Selain itu, algoritma minimax ini bekerja se- cara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Algoritma minimax mendeskrip- sikan kondisi apabila terdapat pemain yang mengalami keuntungan, pemain lain akan mengalami kerugian senilai dengan keun- tungan yang diperoleh lawan dan seba- liknya.
Algoritma minimax akan melakukan pengecekan pada seluruh kemungkinan yang ada, sehingga akan menghasilkan pohon permainan yang berisi semua ke- mungkinan permainan tersebut. Dengan pohon permainan ini setiap pemain men- getahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua
Yang berarti:
- Jurnal Teknik Informatika REKURSIF -
Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe
langkah selanjutnya dapat diketahui. Dalam repersentasi pohon pada algoritma mini- max, terdapat dua jenis simpul, yaitu sim- pul min dan simpul max. Max akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai teren- dah [3]. Dalam penentuan keputusan max/ min tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntun- gan yang akan diperoleh jika langkah terse- but dipilih. Untuk itulah disini digunakan sebuah fungsi heuristik.
Fungsi heuristik yang digunakan algorit- ma ini adalah fungsi heuristik statis [3]. Fung- si heuristik digunakan untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika lang- kah tersebut dipilih. Dari nilai-nilai heuristik inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuris- tik yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer [7]. Untuk proses dan cara kerja algoritma yang lebih jelasnya lagi, dapat dilihat pada Gambar 3 yang merepresentasikan cara kerja algoritma Minimax.
Gambar 3 Contoh Representasi Cara Kerja pada Algoritma Minimax
Secara informal algoritma adalah suatu prosedur komputasi yang terdefenisi den- gan baik yang mengambil beberapa nilai atau sekumpulan nilai sebagai masukan (in-
put) dan menghasilkan beberapa nilai atau sekumpulan nilai sebagai keluaran (output).
Dengan demikian algoritma adalah suatu urutan langkah-langkah komputasi yang mentransformasikan masukan menjadi kel- uaran [11]. Pengertian lain, algoritma adalah urutan logis langkah-langkah penyelesa- ian masalah secara sistematis [10]. Sebuah algoritma tidak hanya harus benar, tetapi juga harus mangkus (efisien). Algoritma yang mangkus adalah algoritma yang me- minimumkan kebutuhan waktu dan ruang dimana semakin minim waktu dan ruang yang dibutuhkan, maka semakin mangkus pula algoritma tersebut.
Untuk menerangkan model abstrak (menghitung kebutuhan pada bagian inti algoritma) pengukuran waktu dan ru- ang maka digunakan suatu fungsi yang menjelaskan bagaimana ukuran masukan data (n) mempengaruhi perfomansi al- goritma yang disebut sebagai kompleksi- tas algoritma. Kompleksitas adalah sebuah fungsi (f(n)) yang diberikan untuk waktu tempuh ( running time) dan kebutuhan ru- ang memori ( storage) dengan ukuran masu- kan data (n) [11]. Ada dua macam komplek- sitas algoritma, yaitu kompleksitas waktu ( time complexity) dan kompleksitas ruang ( space complexity). Sehingga, dengan dik- etahuinya fungsi kompleksitas algoritma, maka dapat ditentukan laju pertumbuhan waktu yang diperlukan seiring dengan me- ningkatnya ukuran masukan data (n). Pada penelitian ini kompleksitas yang digunakan adalah kompleksitas waktu.
Kompleksitas waktu diekspresikan seb- agai jumlah tahapan komputasi yang dibu- tuhkan untuk menjalankan algoritma seb- agai fungsi dari ukuran masukan n dengan cara menghitung banyaknya operasi yang dilakukan algoritma. Kompleksitas waktu algoritma dihitung berdasarkan jumlah langkah/instruksi yang dikerjakan. Untuk menghitung kompleksitas waktu algoritma digunakan waktu tempuh ( running time) yang disimbolkan dengan T(n). T(n) adalah waktu tempuh dari jumlah statemants dari program yang dieksekusi oleh program
E. Kompleksitas Waktu Algoritma
- Volume II Nomor 2 | April 2013 -
ment), operasi penugasan, perbandin-
Perhitungan banyak langkah Nested For
Statement p For nilai awal To nilai akhir Statement p Outer Loop S Inner Loop
4. Bentuk Nested For Loop (perulangan bersarang) : For nilai awal To nilai akhir
ment.
(akhir–awal +1) (p + 1) dimana, p = banyak langkah state-
3. Kalang For Loop, aturan perhitungan langkah untuk for loop adalah sebagai berikut : Bentuk umum For Loop: Maka, cara menghitung banyak lang- kahnya adalah : Banyak Langkah = (akhir – awal+ 2) +
2. Percabangan bentuk IF C THEN S 1 ELSE S 2 dimana, C = kondisi dengan banyak langkah c S 1 , S 2 = blok statement dengan banyak langkah P 1 , P 2 Maka, Banyak langkah = c + max (P 1 , P 2
dur mempunyai langkah yang sama, yaitu 1.
record, dan pemanggilan fungsi/prose-
gan, operator dasar logika (AND, OR, NOT), operasi aritmatika (+, -, *, /, div, mod), read, write, pengaksesan elemen larik, memilih field tertentu dari sebuar
1. Banyaknya operator dasar yang digu- nakan berupa pengisian nilai (assig-
rina Puspita Dewi, rusdi efendi, ernawati
Berikut ini aturan-aturan dasar dalam menghitung banyak langkah :
O(1) konstan O (log n) logaritmik O(n) lanjar O(n log n) n log n O(n 2 ) kuadratik O(n 3 ) kubik O(2 n ) eksponensial O(n!) faktorial
Kelompok Algoritma Nama
Tabel 1 Notasi big-O
Biasanya kompleksitas waktu algoritma dinyatakan secara asimptotik dengan notasi big-O. Notasi big-O ini diukur berdasarkan waktu untuk kasus terburuk ( worst case). Tiap-tiap algoritma mempunyai kompleksi- tas waktu asimptotik masing-masing, yang dapat digunakan untuk mengelompokkan algoritma. Berikut pengelompokan algorit- ma berdasarkan notasi big-O, dari yang pertumbuhannya paling lambat ke paling cepat :
3. T avg (n) : kompleksitas waktu untuk kasus rata-rata ( average case), yaitu kebutuhan waktu rata-rata yang diperlukan algorit- ma sebagai fungsi dari n, dengan asumsi bahwa semua barisan masukan bersifat sama.
n
2. T min (n) : kompleksitas waktu algoritma untuk kasus terbaik (best case), yaitu ke- butuhan waktu minimum yang diperlu- kan suatu algoritma sebagai fungsi dari
1. T max (n) : kompleksitas waktu untuk kasus terburuk ( worst case), yaitu kebutuhan waktu maksimum yang diperlukan suatu algoritma sebagai fungsi dari n
[11]. Kompleksitas waktu dibedakan atas tiga macam, yaitu :
FOR nilai awal TO nilai akhir Statement p
- Jurnal Teknik Informatika REKURSIF -
adalah : Hitung banyak langkah inner loop, yaitu : Banyak langkah = (akhir–awal+2) + (akhir–awal+1) (p+1) Hitung banyak langkah dalam statement S, yaitu : Banyak langkah = jumlah langkah state- ment +banyak langkah inner loop.
- Simbol pemain
- Jenis algoritma Mulai permainan Output hasil permainan Inisialisasikan letak simbol player Algoritma A* Algoritma minimax ya tidak ya tidak
Hitung banyak langkah keseluruhan ( outer loop), yaitu : Banyak langkah = 2(akhir–awal) + 3+
5. Kalang While i ≤ n Do c mempunyai banyak langkah : (n+1)+n*c, dimana c adalah konstanta [12].
III. ANALIsIs DAN PERANCANGAN sIsTEM
Gambar 4 Flowchart Aplikasi Game Tic-Tac-Toe
A. Flowchart Sistem
toe ini. Flowchart ini menitik beratkan pada
bagan-bagan yang menggambarkan aliran program. Pada flowchart sistem ini digam- barkan urutan prosedur dalam program aplikasi perbandingan algoritma A* den- gan algoritma minimax pada game tic-tac-
game tic-tac-toe. Mulai Selesai Proses heuristik A* Proses heuristik minimax Langkah paling optimal A * Langkah paling optimal minimax Input player Inisialisasikan : • Baris dan kolom papan permainan
Flowchart merupakan serangkaian
B. Analisis Algoritma A* pada Game Tic-Tac-Toe
Pada penelitian ini, algoritma A* akan diterapkan pada game tic-tac-toe yang merupakan game dengan dua pemain. Pen- carian jalan terpendek dengan menerapkan algoritma A* pada game tic-tac-toe akan diasumsikan dengan simpul awal meru- pakan simbol pertama yang ditempatkan pada papan permainan dan simpul tujuan yang diimplementasikan pada game tic-
tac-toe yaitu ketika tercapainya deret sim-
bol yang berbentuk sama dalam satu garis horizontal, vertikal, atau diagonal.
Untuk menemukan solusi, algoritma A* dituntun oleh fungsi heuristik. Sebuah fungsi heuristik mengevaluasi keadaan
Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe
penggambaran tahap–tahap yang terjadi pada sistem, dimulai pada waktu program dijalankan dan selesai pada waktu program dihentikan. Untuk lebih jelasnya, berikut ini adalah flowchart aplikasi perbandingan al- goritma A* dengan algoritma minimax pada
- Volume II Nomor 2 | April 2013 -
permasalahan tersendiri dan menentukan Fungsi heuristik algoritma A* ini digu- bagaimana fungsi ini dalam memecahkan nakan untuk memilih bidak terbaik, yang
suatu permasalahan. Fungsi heuristik ini akan diletakkan simbol komputer. Bidak
diterapkan pada setiap simpul . Fungsi heu- yang dipilih untuk diletakkan simbol adalah ristik inilah yang menentukan urutan simpul bidak yang mempunyai nilai f(n) terke- mana yang akan dikunjungi terlebih dahulu cil, tetapi jika nilai f(n) sama, maka bidakdan simpul selanjutnya sampai ditemukan yang dipilih adalah bidak yang memiliki
solusi yang diinginkan. kemungkinan menang paling baik (kom-puter). Notasi standar yang digunakan pada al- goritma A* adalah: Adapun langkah-langkah penyelesaian
game tic-tac-toe dengan menggunakan
algoritma A* dapat dilihat pada flowchart
f(n) = g(n) + h(n) (5)
Gambar 6 berikut : Dalam game tic-tac-toe ini fungsi heu- Mulai ristik algoritma A* untuk menyelesaikan S impul awal adalah player permainan ini berdasarkan persamaan 5 pertama kali pada bidak meletakkkan simbol dimana : kemungkinan-kemungkinan Bangkitkan semua simpul anak yang merupakan letak simbol komputer
Nilai g(n) = level kedalaman pohon ( tree), Tentukan seperti yang terlihat pada fungsi heuristik Gambar 2.4 sebelumnya. Hitung nilai fungsi heuristik (f(n) = g(n) +h(n)) Nilai h(n) = estimasi kemungkinan play- Cari langkah terbaik dengan
er pertama (player) untuk
tidak
simpul anak dari keadaaan sekarang heuristik untuk setiap kemungkinan melakukan perbandingan fungsimenang-kemungkinan play-
er kedua (komputer) untuk Terdapat lebih dari satu nilai f(n) terkecil ? ya memiliki peluang menang paling baik Gerakkan f(n) yang menang. Gerakkan f(n) tidak
Seperti yang terlihat pada Gambar 6 terkecil dibawah ini, dengan diasumsikan simbol simpul anak = solusi ??? Lakukan evaluasi
player adalah X dan simbol komputer adalah ya
O, maka h(n) = kemungkinan X menang - Selesai kemungkinan O menang = 6 -5 =1. Kemungkinan X = 6
X X O Kemungkinan O =5 Gambar 7 Flowchart Algoritma A* O X h(n)= 6-5=1
C. Analisis Algoritma Minimax Pada O
Game Tic-Tac-Toe Gambar 6 Ilustrasi h(n) yang digunakan Al-
Algoritma minimax menggunakan
goritma A* rina Puspita Dewi, rusdi efendi, ernawati
- Jurnal Teknik Informatika REKURSIF -
menggunakan teknik depth first search (DFS) dalam pencariannya pada pohon Mulai dengan kedalaman terbatas [3]. Algoritma Simpul awal adalah minimax akan melakukan pengecekan pada dalam keadaan kosong papan permainan seluruh kemungkinan yang ada, sehing- (bidak kosong ) ga akan menghasilkan pohon permainan Bangkitkan semua simpul anak yang berisi semua kemungkinan permainan kemungkinan permainan - yang merupakan kemungkinan tersebut. Algoritma minimax ini bekerja se- cara rekursif dengan mencari langkah yang mendalam , kunjungi simpul Lakukan pencarian secara anak dari kiri akan membuat lawan mengalami kerugian. tidak Algoritma minimax mendeskripsikan kondi- Simpul anak = keadaan si apabila terdapat pemain yang mengalami akhir ?? keuntungan, pemain lain akan mengalami ya kerugian senilai dengan keuntungan yang mengevaluasi nilai yang diperoleh Fungsi heuristik akan diperoleh lawan dan sebaliknya. Lakukan backtrack kunjungi simpul anak sebelumnya
Dalam repersentasi pohon pada algorit- (level n -1) ma minimax, terdapat dua jenis simpul, Kunjungi simpul tetangga yaitu simpul min dan simpul max [3]. Max serta lakukan perbandingan akan memilih langkah dengan nilai tertinggi Apakah langkah dan min akan memilih langkah dengan nilai ya Langkah max simpul = max ? terendah. Pada game tic-tac-toe ini langkah tidak tidak max akan dilakukan komputer dan langkah Apakah langkah ya Langkak min min akan dilakukan player. Ini berarti, pada simpul = min ? langkah pertama komputer, algoritma akan Selesai menganalisis seluruh pohon permainan untuk setiap langkahnya, komputer akan
Gambar 8 Flowchart Algoritma Minimax
memilih langkah yang paling membuat
IV. HAsIL DAN PEMBAHAsAN
pemain lawan ( player) mendapatkan keru- gian minimum, serta paling membuat kom-
Hasil A.
puter itu sendiri mendapatkan keuntungan Tahap implementasi merupakan lanjutan maksimum. dari tahap pembahasan dan perancangan. Fungsi heuristik yang digunakan al-
Berikut ini akan dijelaskan beberapa imple- goritma ini adalah fungsi heuristik statis [3]. mentasi antarmuka ( interface) pada aplikasi
Fungsi heuristik (f(n)) yang digunakan pada perbandingan algoritma A* dengan algorit-
game tic-tac-toe ini adalah jika komputer
ma minimax pada game tic-tac-toe dengan menang skor 2, player menang skor -2, dan menggunakan bahasa pemrograman C# : seri skor 1. Adapun langkah-langkah peny- elesaian game tic-tac-toe dengan meng-
1. Implementasi Antarmuka Awal gunakan algoritma minimax dapat dilihat Antarmuka awal dari aplikasi game tic- pada flowchart Gambar 8 berikut :
tac-toe merupakan antarmuka yang per- Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe
- Volume II Nomor 2 | April 2013 -
tama kali muncul ketika aplikasi game tic-
tac-toe dibuka, dapat dilihat pada Gambar 9.
Gambar 11 Antarmuka New Player
3. Implementasi Antarmuka Utama Antarmuka utama merupakan antar- muka inti pada aplikasi game tic-tac-toe ini.
Antarmuka ini akan muncul jika telah me- masukkan nama player, dapat dilihat pada Gambar 12.
Gambar 9 Antarmuka Awal
2. Implementasi Antarmuka Player 11 Antarmuka player akan muncul jika tom- 2 bol play pada antarmuka awal diklik, dapat 12 dilihat pada Gambar 10. 1 3 5 4 14 13 6 7
8 9 10 Gambar 12 Antarmuka Utama
Adapun keterangan mengenai antarmu-
1
ka pada Gambar 12 diatas adalah sebagai berikut :
1. Layer papan permainan, layer ini
2
berisi papan permainan yang dipilih
player. Pada layer ini terjadi proses Gambar 10 Antarmuka Player
permainan player melawan komputer Adapun keterangan mengenai antarmu- dengan menggunakan algoritma A*. ka pada Gambar 10 diatas adalah sebagai
Pada permainan ini player menggu- berikut : nakan simbol X dan komputer meng-
1. Layer yang berisi nama-nama player
gunakan simbol O dengan papan yang telah mengoperasikan aplikasi permainan 3x3.
game tic-tac-toe.
2. Player yang melakukan permainan
2. Tombol new player untuk memasukkan bernama Ani. nama player yang baru. Jika tombol ini
3. Layer proses, berisi nilai heuristik
diklik, maka akan muncul antarmuka new setiap bidak saat proses permain-
player, seperti pada Gambar 11. rina Puspita Dewi, rusdi efendi, ernawati
- Jurnal Teknik Informatika REKURSIF -
an. tampilan yang akan muncul pada layer pa- 4. Layer untuk mengitung waktu ra- pan permainan ketika tombol star diklik. ta-rata komputer dalam permain- Antarmuka ini digunakan untuk melakukan an. permainan pada game tic-tac-toe. Pada ap-
5. Layer hasil dari permainan yaitu likasi game tic-tac-toe ini terdapat empat
menang, kalah, atau seri. jenis antarmuka permainan yaitu papan
6. Banyaknya permainan yang berakhir permainan 3x3 menggunakan algoritma dengan kemenangan player. A*, papan permainan 3x3 menggunakan
7. Banyaknya permainan yang bera- algoritma minimax, papan permainan 5x5 khir dengan kemenangan komput- menggunakan algoritma A*, dan papan per- er. mainan 5x5 menggunakan algoritma mini-
8. Banyaknya permainan yang berakhir max. Antarmuka yang akan muncul pada dengan seri. layer papan permainan merupakan antar-
9. Banyaknya permainan yang telah di- muka papan permainan yang telah dipilih lakukan. player. Berikut contoh permainan game tic-
10. Waktu lama permainan. Waktu ini tac-toe (diasumsikan simbol player (X) dan merupakan waktu yang secara umum simbol komputer (O)): digunakan pada game. Waktu ini ti- dak digunakan untuk mengukur kin- erja dari penerapan algoritma pada permainan. Waktu ini hanya digu- nakan untuk mengukur seberapa lama player bermain.
11. Menu pilihan algoritma yang akan diterapkan pada permainan.
12. Menu pilihan papan permainan yang
(a)
akan diterapkan pada layer papan permainan.
13. Menu pilihan simbol yang akan digu- nakan player.
14. Tombol-tombol yang terdapat pada antarmuka utama yaitu tombol star, tombol reset, dan tombol exit.
4. Implementasi Antarmuka Permain- an
(a) Gambar 13 Contoh Antarmuka Permainan dengan Papan Permainan 3x3 Menggunakan Algoritma A*
Antarmuka permainan merupakan
Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe