Vol. II #4 - core.ac.uk · Hasil pengujian menunjukkan bahwa algoritma A* lebih efisien dalam...

22
Desember 2013 Vol. II #4

Transcript of Vol. II #4 - core.ac.uk · Hasil pengujian menunjukkan bahwa algoritma A* lebih efisien dalam...

Desember 2013

Vol. II #4

i

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. Salam

ii

Daftar Isi | Redaksi ............................................................................... iPengantar Redaksi .............................................................................. ii

Perbandingan Teorema Bayes dan Certainty Factor pada Sistem Pakar dalam Mendiagnosa Penyakit Lambung dan UsusHelmi Megasari, Ernawati, Arie Vatresia .............................................. 55-70

Sistem Pakar Mendiagnosa Penyakit Tulang pada Manusia Menggunakan Metode Dempster-Shafer Berbasis Wap dengan WML dan PHPNovi Yarni, Rusdi Efendi, Desi Andreswari .............................................. 71-82

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Mini-max Pada Game Tic-Tac-ToeRina Puspita Dewi, Rusdi Efendi, Ernawati ............................................ 83-100

Aplikasi Inventarisasi Metode Sistem Pendukung Keputusan 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-nikasi (TIK) Menggunakan PHP dan MySQLTuti Susanti, Asahar Johar, Arie Vatresia .......................................... 109-116

Sistem Pendukung Keputusan Pemilihan Restoran di Kota Bengkulu Dengan Metode SAW Berbasis Sistem Operasi An-droidVera Fuspita, Arie Vatresia, Desi Andreswari .......................................... 117-124

Implementasi Metode Goal Programming Dengan Pembob-otan Menggunakan Analytical Hierarchy Process (AHP) Pada Optimasi Alokasi Lahan Daerah Aliran Sungai (DAS) Terpadu (Studi Kasus : Lahan DAS Manjunto Kabupaten Mukomuko Propinsi Bengkulu )Suci Pratiwi, Gusta Gunawan, Rusdi Efendi .......................................... 125-140

Perbandingan Deteksi Pemalsuan Citra Digital Menggunak-an Dekomposisi Nilai Singulir dan Jaringan Syaraf TiruanMaya Mairisha, Arie Vatresia, Della Maulidiya .......................................... 141-160

Aplikasi Optimasi Rute Antar Jemput Siswa dengan Ant Sys-tem (AS) untuk Penyelesaian Vehicle Routing Problem (VRP) Berbasis Android (Studi Kasus SD Islam Terpadu Iqra’ Kota BengkuluMarina Rasyada, Ernawati, Funny Farady C .......................................... 161-174

Sistem Navigasi Untuk Titik Berkumpul Dan Jalur Evakuasi-bencana Gempa Dan Tsunami Di Kota BengkuluBerbasis An-droid (Studi Kasus Badan Penanggulangan Bencana Daerah (BPBD) Kota BengkuluJafarian 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

Penanggung Jawabketua Program Studi

Teknik informatikafakultas Teknik

uNiVerSiTAS BeNGkuLu

Dewan RedaksiKetua :

Boko SusiloPenyunting :

ErnawatiArie VatresiaAnggota :

Funny Farady CoasteraRusdi Efendi

Revieweredy Hermansyah

Asahar Johar

Alamat RedaksiJurnal rekrusif, Program Studi Teknik informatikafakultas Teknik - kampus universitas Bengkulu

Jl. W.r Supratman kandang Limun Bengkulu 38371

Telp. (0736) 344087, 21170 – 227email : [email protected]

www.ti.ft.unib.ac.id

© Jurnal Teknik informatika rekursif

Volume ii Nomor 2 April 2013

i

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. Salam

83

PERBANDINGAN ALGORITMA A* (A-STAR) DENGAN ALGORITMA MINIMAX PADA GAME TIC-TAC-TOE

Rina Puspita Dewi#1, Rusdi Efendi#2, Ernawati#3

Program Studi Teknik Informatika FT UNIB Jl. WR. Supratman, Kandang Limun Bengkulu 38371 A INDONESIA

Email : 1) [email protected], 2) [email protected] 3)[email protected]

ABsTRAkBeberapa 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.

I. PENDAHULUAN

A. Latar Belakang

Game dalam bahasa Indonesia artinya permainan yaitu sesuatu yang dimainkan dengan aturan tertentu sehingga ada yang menang atau kalah. Bermain game meru-pakan salah satu aktivitas yang sangat disukai oleh sebagian besar masyarakat, baik sekedar bermain untuk melepas lelah maupun hobi. Dengan berkembangnya teknologi sekarang ini, game tidak hanya dapat dijumpai pada kehidupan nyata tapi juga dapat dijumpai dalam dunia maya. Game di dunia maya merupakan game ber-basis komputer.

Beberapa game berbasis komputer menerapkan kecerdasan buatan. Dalam kecerdasan buatan, game dibuat memiliki

kecerdasan layaknya manusia. Menurut H.A Simon , ‘Kecerdasan buatan merupakan ka-wasan penelitian, aplikasi, dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu yang dalam pan-dangan manusia adalah cerdas’[1].

Game playing merupakan salah satu cabang dari kecerdasan buatan yang mengimplementasikan pengetahuan ma-nusia ke dalam bentuk permainan (game) yang mempunyai intelektual untuk berpikir. Salah satu kelebihan game yang mener-apkan kecerdasan buatan adalah kita ti-dak harus mencari orang untuk menjadi lawan tanding jika ingin bermain, sebab game berbasis komputer ini sudah men-dukung mode permainan tunggal (single-player mode) dimana kita dapat bermain sendiri melawan komputer yang dirancang

84

- 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-

85

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

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-an algoritma A* dan algoritma mini-max?

2. Algoritma mana yang lebih efisien pener-apannya pada game tic-tac-toe ditinjau dari waktu tempuh algoritma?

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.

4. Output yang dihasilkan berupa hasil per-mainan (menang, kalah atau seri), waktu lama permainan.

D. Tujuan Penelitian

Berdasarkan latar belakang di atas tu-juan penelitian ini adalah :

1. Untuk membangun aplikasi game tic-tac-toe menggunakan algoritma A* dan algoritma minimax.

2. Untuk mengetahui algoritma mana yang lebih efisien penerapannya pada game tic-tac-toe ditinjau dari waktu tempuh algoritma.

E. Manfaat Penelitian

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.

II. TINJAUAN PUsTAkA

A. Game Tic-Tac-Toe

Game tic-tac-toe merupakan permainan klasik berjenis permainan papan (board-game) dengan papan permainan berukuran 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 berbasis komputer, pemain lawan dapat digantikan oleh komputer [6].

Dalam game ini hasil permainan yang didapat berupa menang, kalah, atau seri. Hasil permainan dinyatakan menang jika simbol dari salah satu pemain (player atau

86

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

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].

Aturan Game Tic-Tac-Toe

Game tic-tac-toe ini memiliki aturan main (rule) yang digunakan selama ber-langsungnya permainan, diantaranya seb-agai berikut:

1. Besar papan permainan berukuran 3x3 atau lebih dengan deret kemenangan 3 atau lebih, disesuaikan dengan papan permainan.

2. Pemain dalam permainan ini dibatasi untuk satu lawan satu, dilakukan bergili-ran antara pemain pertama (manusia) dan pemain kedua (komputer).

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.

4. Untuk memberikan langkah, setiap pe-main harus mengisi bidak dengan sim-bol pemain masing-masing, biasanya X atau O.

5. Setiap pemain hanya mempunyai satu kali kesempatan pada setiap gili-ran.

6. Bidak yang sudah terisi tidak bisa ditim-pa oleh langkah berikutnya.

7. Langkah yang sudah diambil tidak dapat dibatalkan atau diganti dengan langkah yang lain.

8. Tujuan dari game ini adalah untuk mendapatkan deret dengan tiga simbol atau lebih yang sama secara horizontal, vertikal atau diagonal.

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 :

Gambar 1 Contoh Simulasi Game Tic-Tac-Toe dengan Kondisi Menang

B. Algoritma Pencarian

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.

C. Algoritma A* (A-Star)

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 first search dengan memodifikasi fungsi 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

f(n) = g(n)+h(n)

87

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

7. Langkah yang sudah diambil tidak dapat dibatalkan atau diganti dengan langkah yang lain.

8. Tujuan dari game ini adalah untuk mendapatkan deret dengan tiga simbol atau lebih yang sama secara horizontal, vertikal atau diagonal.

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 :

Gambar 1 Contoh Simulasi Game Tic-Tac-Toe dengan Kondisi Menang

B. Algoritma Pencarian

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.

C. Algoritma A* (A-Star)

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 first search dengan memodifikasi fungsi 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

f(n) = g(n)+h(n)

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].

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.

Notasi standar yang digunakan pada al-goritma A* adalah: (2)

Yang berarti:

f(n) = fungsi heuristikg(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].

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].

D. Algoritma Minimax

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 game yang menggunakan strategi atau logika lainnya. Persamaan antara semua game tersebut yaitu semua merupakan game logika dan game dengan informasi 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

88

- 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

E. Kompleksitas Waktu Algoritma

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

89

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

[11]. Kompleksitas waktu dibedakan atas tiga macam, yaitu :

1. Tmax(n) : kompleksitas waktu untuk kasus terburuk (worst case), yaitu kebutuhan waktu maksimum yang diperlukan suatu algoritma sebagai fungsi dari n

2. Tmin(n) : kompleksitas waktu algoritma untuk kasus terbaik (best case), yaitu ke-butuhan waktu minimum yang diperlu-kan suatu algoritma sebagai fungsi dari n

3. Tavg(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.

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 :

Tabel 1 Notasi big-O

Kelompok Algoritma Nama

O(1) konstanO (log n) logaritmikO(n) lanjarO(n log n) n log nO(n2) kuadratikO(n3) kubikO(2n) eksponensialO(n!) Faktorial

Berikut ini aturan-aturan dasar dalam menghitung banyak langkah :

1. Banyaknya operator dasar yang digu-nakan berupa pengisian nilai (assig-ment), operasi penugasan, perbandin-gan, operator dasar logika (AND, OR, NOT), operasi aritmatika (+, -, *, /, div, mod), read, write, pengaksesan elemen larik, memilih field tertentu dari sebuar record, dan pemanggilan fungsi/prose-dur mempunyai langkah yang sama, yaitu 1.

2. Percabangan bentuk IF C THEN S1 ELSE S2

dimana, C = kondisi dengan banyak langkah cS1, S2 = blok statement dengan banyak langkah P1, P2

Maka, Banyak langkah = c + max (P1, P2

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) + (akhir–awal +1) (p + 1)

dimana, p = banyak langkah state-ment.

4. Bentuk Nested For Loop (perulangan bersarang) :

For nilai awal To nilai akhir

Statement p

For nilai awal To nilai akhir

Statement p

Outer Loop

S

Inner Loop

Perhitungan banyak langkah Nested For

FOR nilai awal TO nilai akhir Statement p

f(n) = g(n) + h(n)

90

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

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.

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

A. Flowchart Sistem

Flowchart merupakan serangkaian

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-

toe ini. Flowchart ini menitik beratkan pada

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

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• Simbol pemain• Jenis algoritma

Mulai permainan

Output hasil

permainan

Inisialisasikan letak simbol

player

Algoritma A* Algoritma minimax

ya

tidak

ya

tidak

Gambar 4 Flowchart Aplikasi Game Tic-Tac-Toe

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

91

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

permasalahan tersendiri dan menentukan bagaimana fungsi ini dalam memecahkan suatu permasalahan. Fungsi heuristik ini diterapkan pada setiap simpul. Fungsi heu-ristik inilah yang menentukan urutan simpul mana yang akan dikunjungi terlebih dahulu dan simpul selanjutnya sampai ditemukan solusi yang diinginkan.

Notasi standar yang digunakan pada al-goritma A* adalah:

f(n) = g(n) + h(n) (5)

Dalam game tic-tac-toe ini fungsi heu-ristik algoritma A* untuk menyelesaikan permainan ini berdasarkan persamaan 5 dimana :

Nilai g(n) = level kedalaman pohon (tree), seperti yang terlihat pada Gambar 2.4 sebelumnya.

Nilai h(n) = estimasi kemungkinan play-er pertama (player) untuk menang-kemungkinan play-er kedua (komputer) untuk menang.

Seperti yang terlihat pada Gambar 6 dibawah ini, dengan diasumsikan simbol player adalah X dan simbol komputer adalah O, maka h(n) = kemungkinan X menang - kemungkinan O menang = 6 -5 =1.

X

O

X

O

O

X

Kemungkinan X = 6

Kemungkinan O =5

h(n)= 6-5=1

Gambar 6 Ilustrasi h(n) yang digunakan Al-goritma A*

Fungsi heuristik algoritma A* ini digu-nakan untuk memilih bidak terbaik, yang akan diletakkan simbol komputer. Bidak yang dipilih untuk diletakkan simbol adalah bidak yang mempunyai nilai f(n) terke-cil, tetapi jika nilai f(n) sama, maka bidak yang dipilih adalah bidak yang memiliki kemungkinan menang paling baik (kom-puter).

Adapun langkah-langkah penyelesaian game tic-tac-toe dengan menggunakan algoritma A* dapat dilihat pada flowchart Gambar 6 berikut :

S impul awal adalah playermeletakkkan simbol

pertama kali pada bidak

Cari langkah terbaik denganmelakukan perbandingan fungsi

heuristik untuk setiap kemungkinansimpul anak dari keadaaan sekarang

Lakukan evaluasisimpul anak = solusi ???

Tentukanfungsi heuristik

Hitung nilai fungsi heuristik(f(n) = g(n) +h(n))

Bangkitkan semua simpulanak yang merupakan

kemungkinan-kemungkinanletak simbol komputer

Terdapat lebih dari satu nilai f(n)terkecil ?

Gerakkan f(n)terkecil

Gerakkan f(n) yangmemiliki peluang

menang paling baik

tidak

ya

tidak

Mulai

Selesai

ya

Gambar 7 Flowchart Algoritma A*

C. Analisis Algoritma Minimax Pada Game Tic-Tac-Toe

Algoritma minimax menggunakan

92

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

menggunakan teknik depth first search (DFS) dalam pencariannya pada pohon dengan kedalaman terbatas [3]. Algoritma minimax akan melakukan pengecekan pada seluruh kemungkinan yang ada, sehing-ga akan menghasilkan pohon permainan yang berisi semua kemungkinan permainan tersebut. Algoritma minimax ini bekerja se-cara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian. Algoritma minimax mendeskripsikan kondi-si apabila terdapat pemain yang mengalami keuntungan, pemain lain akan mengalami kerugian senilai dengan keuntungan yang diperoleh lawan dan sebaliknya.

Dalam repersentasi pohon pada algorit-ma minimax, terdapat dua jenis simpul, yaitu simpul min dan simpul max [3]. Max akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai terendah. Pada game tic-tac-toe ini langkah max akan dilakukan komputer dan langkah min akan dilakukan player. Ini berarti, pada langkah pertama komputer, algoritma akan menganalisis seluruh pohon permainan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat pemain lawan (player) mendapatkan keru-gian minimum, serta paling membuat kom-puter itu sendiri mendapatkan keuntungan maksimum.

Fungsi heuristik yang digunakan al-goritma ini adalah fungsi heuristik statis [3]. Fungsi heuristik (f(n)) yang digunakan pada game tic-tac-toe ini adalah jika komputer menang skor 2, player menang skor -2, dan seri skor 1. Adapun langkah-langkah peny-elesaian game tic-tac-toe dengan meng-gunakan algoritma minimax dapat dilihat pada flowchart Gambar 8 berikut :

Mulai

Selesai

Simpul awal adalah papan permainan

dalam keadaan kosong (bidak kosong )

Lakukan pencarian secara mendalam , kunjungi simpul

anak dari kiri

Simpul anak = keadaan akhir ??

Apakah langkah simpul = max ?

Lakukan backtrack kunjungi simpul anak sebelumnya

(level n -1)

Kunjungi simpul tetangga serta lakukan perbandingan

tidak

Langkak min

Langkah maxya

Apakah langkah simpul = min ? ya

tidaktidak

Bangkitkan semua simpul anak yang merupakan kemungkinan -

kemungkinan permainan

Fungsi heuristik akan mengevaluasi nilai yang diperoleh

ya

Gambar 8 Flowchart Algoritma Minimax

IV. HAsIL DAN PEMBAHAsAN

A. Hasil

Tahap implementasi merupakan lanjutan dari tahap pembahasan dan perancangan.Berikut ini akan dijelaskan beberapa imple-mentasi antarmuka (interface) pada aplikasi perbandingan algoritma A* dengan algorit-ma minimax pada game tic-tac-toe dengan menggunakan bahasa pemrograman C# :

1. Implementasi Antarmuka Awal

Antarmuka awal dari aplikasi game tic-tac-toe merupakan antarmuka yang per-

93

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

tama kali muncul ketika aplikasi game tic-tac-toe dibuka, dapat dilihat pada Gambar 9.

Gambar 9 Antarmuka Awal

2. Implementasi Antarmuka Player

Antarmuka player akan muncul jika tom-bol play pada antarmuka awal diklik, dapat dilihat pada Gambar 10.

1

2

Gambar 10 Antarmuka Player

Adapun keterangan mengenai antarmu-ka pada Gambar 10 diatas adalah sebagai berikut :

1. Layer yang berisi nama-nama player yang telah mengoperasikan aplikasi game tic-tac-toe.

2. Tombol new player untuk memasukkan nama player yang baru. Jika tombol ini diklik, maka akan muncul antarmuka new player, seperti pada Gambar 11.

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.

13

4

5

211

12

13

14

6 7 8 9 10

Gambar 12 Antarmuka Utama

Adapun keterangan mengenai antarmu-ka pada Gambar 12 diatas adalah sebagai berikut :

1. Layer papan permainan, layer ini berisi papan permainan yang dipilih player. Pada layer ini terjadi proses permainan player melawan komputer dengan menggunakan algoritma A*. Pada permainan ini player menggu-nakan simbol X dan komputer meng-gunakan simbol O dengan papan permainan 3x3.

2. Player yang melakukan permainan bernama Ani.

3. Layer proses, berisi nilai heuristik setiap bidak saat proses permain-

94

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

an.4. Layer untuk mengitung waktu ra-

ta-rata komputer dalam permain-an.

5. Layer hasil dari permainan yaitu menang, kalah, atau seri.

6. Banyaknya permainan yang berakhir dengan kemenangan player.

7. Banyaknya permainan yang bera-khir dengan kemenangan komput-er.

8. Banyaknya permainan yang berakhir dengan seri.

9. Banyaknya permainan yang telah di-lakukan.

10. Waktu lama permainan. Waktu ini merupakan waktu yang secara umum 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 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

Antarmuka permainan merupakan

tampilan yang akan muncul pada layer pa-pan permainan ketika tombol star diklik. Antarmuka ini digunakan untuk melakukan permainan pada game tic-tac-toe. Pada ap-likasi game tic-tac-toe ini terdapat empat jenis antarmuka permainan yaitu papan permainan 3x3 menggunakan algoritma A*, papan permainan 3x3 menggunakan algoritma minimax, papan permainan 5x5 menggunakan algoritma A*, dan papan per-mainan 5x5 menggunakan algoritma mini-max. Antarmuka yang akan muncul pada layer papan permainan merupakan antar-muka papan permainan yang telah dipilih player. Berikut contoh permainan game tic-tac-toe (diasumsikan simbol player (X) dan simbol komputer (O)):

(a)

(a)Gambar 13 Contoh Antarmuka Permainan dengan Papan

Permainan 3x3 Menggunakan Algoritma A*

95

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

Gambar 13 merupakan contoh antarmu-ka permainan dengan papan permainan 3x3 menggunakan algoritma A* dengan kondisi permainan yaitu (a) kondisi awal permain-an, (b) kondisi akhir permainan (komputer menang).

Contoh permainan dengan papan per-mainan 5x5

Gambar 14 Contoh Antarmuka Permainan dengan Papan Permainan 5x5 Menggunakan

Algoritma A*

Gambar 14 merupakan contoh antarmu-ka permainan dengan papan permainan 5x5 menggunakan algoritma A* dengan kondisi permainan yaitu (a) kondisi awal permain-an, (b) kondisi akhir permainan (komputer menang).

5. Implementasi Antarmuka Help

Antarmuka help akan muncul apabila player mengklik tombol help. Antarmuka ini berfungsi untuk memberi petunjuk kepada player tentang game tic-tac-toe. Pada an-tarmuka ini terdapat dua jenis menu yang dapat memandu player dalam menggunak-an aplikasi game tic-tac-toe ini, yaitu petun-juk permainan dan cara permainan, dapat dilihat pada Gambar 15.

Gambar 15 Antarmuka Help

6. Implementasi Antarmuka About

Antarmuka about akan muncul apabila player mengklik tombol about. Antarmuka ini berfungsi menampilkan informasi ten-tang pembuat aplikasi game tic-tac-toe ini, dapat dilihat pada Gambar 15.

Gambar 16 Antarmuka About

7. Implementasi Antarmuka Message Dia-log

Message dialog akan muncul ketika per-mainan berakhir. Message dialog ini berisi pemberitahuan kemenangan, kekalahan atau seri kepada player, dapat dilihat pada Gambar 16.

Gambar 17 Message Dialog Hasil Permainan

Gambar 17 menunjukkan message dia-log yang ditampilkan ketika permainan ber-

96

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

akhir, yaitu (a) komputer menang (you lose), (b) player menang (you win), (c) seri (draw). Selain dari ketiga message dialog diatas juga ada message dialog exit, dapat dilihat pada Gambar 18.

Gambar 18 Message Dialog Exit

Gambar 18 menunjukkan message dialog yang akan tampil ketika player ingin keluar dari permainan dengan mengklik tombol exit pada antarmuka utama. Pada message dialog ini terdapat dua tombol yang dapat dipilih player yaitu tombol yes untuk keluar dari permainan dan tombol no untuk mem-batalkan keluar dari permainan.

B. Pembahasan

Algoritma A* dan algoritma minimax akan dibandingkan berdasarkan pengujian aplikasi, dan pengujian keefisienan algorit-ma pada game tic-tac-toe.

1. Pengujian Aplikasi

Pengujian aplikasi ini dimaksudkan un-tuk mengetahui apakah aplikasi berjalan sesuai dengan algoritma yang diterapkan yaitu algoritma A* dengan algoritma mini-max. Pengujian aplikasi ini dilakukan den-gan cara melihat proses heuristik yang ter-jadi saat permainan berlangsung, apakah sesuai dengan fungsi heuristik yang telah ditentukan pada Bab IV sebelumnya. Den-gan asumsi X merupakan simbol player dan

O merupakan simbol komputer. Ada 4 pen-gujian yang dilakukan yaitu :

1. Permainan menggunakan algorit-ma A* dengan papan permainan 3x3.

2. Permainan menggunakan algoritma minimax dengan papan permainan 3x3.

3. Permainan menggunakan algorit-ma A* dengan papan permainan 5x5

4. Permainan menggunakan algoritma minimax dengan papan permainan 5x5

Dari keempat percobaan diatas dapat diketahui bahwa algoritma A* melakukan penelusuran berdasarkan fungsi heuris-tiknya dengan mengambil nilai terkecil dan dapat menghalau player menang. Be-gitu juga dengan algoritma minimax yang melakukan penelusuran dengan mengam-bil posisi bidak sesuai dengan fungsi heu-ristik yang mengambil langkah yang mem-beri keuntungan komputer. Sehingga dapat disimpulkan kedua algoritma melakukan langkah sesuai dengan kinerja masing-ma-sing algoritma.

2. Pengujian Keefisienan Algoritma Ber-dasarkan Percobaan Permainan

Pengujian keefisienan algoritma ber-dasarkan percobaan permainan dilaku-kan dengan membandingkan langkah yang diambil komputer untuk menghalau player menang pada aplikasi game tic-tac-toe untuk menghalau player menang dan lama waktu rata-rata komputer untuk me-nyelesaikan permainan. Pengujian aplikasi menggunakan algoritma A* pada papan permainan 3x3 dan 5x5 denganp pengujian

97

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

aplikasi menggunakan algoritma minimax pada papan permainan 3x3 dan 5x5. Mas-ing-masing pengujian tersebut dilakukan sebanyak 5 kali percobaan. Pengulangan percobaan ini bertujuan untuk mendapat-kan hasil yang akurat. Pengujian ini dilaku-kan dengan asumsi :

1. Simbol pemain yang digunakan dalam permainan adalah X simbol yang digu-nakan player dan O simbol yang digu-nakan komputer.1. Posisi awal permainan player pada

setiap algoritma sama. 2. Langkah-langkah yang dipilih play-

er dalam permainan diasumsikan sama.

Berikut pengujian-pengujian yang di-lakukan dapat dilihat pada tabel-tabel beri-kut.

Tabel 2 Pengujian Game Tic-Tac-Toe Menggu-

nakan Algoritma A* pada Papan Permainan 3x3

Tabel 3 Pengujian Game Tic-Tac-Toe Menggu-nakan Algoritma Minimax pada Papan Per-

mainan 3x3

Tabel 4 Pengujian Game Tic-Tac-Toe Menggu-nakan Algoritma A* pada Papan Permainan 5x5

Tabel 5 Pengujian Game Tic-Tac-Toe Menggu-nakan Algoritma Minimax pada Papan Per-

mainan 5x5

98

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

Berdasarkan hasil dari semua perco-baan aplikasi yang telah dilakukan diatas, dapat diketahui bahwa untuk mengetahui keefisienan algoritma jika dilihat dari lang-kah yang diambil algoritma untuk meng-halau player menang, kedua algoritma sama-sama dapat menghalau player untuk menang, sedangkan dari lama waktu rata-rata yang dibutuhkan komputer dalam me-nyelesaikan permainan menunjukkan bah-wa agoritma A* lebih cepat dibandingkan algoritma minimax dalam menyelesaikan permainan, sehingga dapat disimpulkan bahwa lagoritma A* lebih efisien dibanding-kan dengan algoritma minimax .

2. Pengujian Keefisienan Algoritma Ber-dasarkan Waktu Tempuh

Waktu tempuh algoritma diekspresikan sebagai jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi ukuran dari ukuran masu-kan. Waktu tempuh suatu algoritma di-hitung dari jumlah langkah atau instruksi yang dikerjakan pada bagian inti algoritma untuk setiap langkah atau instruksi yang dikerjakan (dieksekusi).

• Waktu Tempuh Algoritma A*

Dari analisis perhitungan total langkah yang dibutuhkan algoritma A* pada game

tic-tac-toe diperoleh hasil bahwa algoritma A* mempunyai waktu tempuh waktu tem-puh algoritma A*, T(n) = 30n2-12n+85 den-gan kompleksitas waktu asimtotik adalah O(n2).

• Waktu Tempuh Algoritma Mini-max

Dari analisis perhitungan total langkah yang dibutuhkan algoritma A* pada game tic-tac-toe diperoleh hasil bahwa algoritma minimax mempunyai waktu tempuh waktu tempuh algoritma minimax, T(n)= 33n2-n+20 dengan kompleksitas waktu asimtotik adalah O(n2).

Sehingga, dilihat dari waktu tempuh untuk masing-masing algoritma diketa-hui bahwa algoritma A* mempunyai waktu tempuh yang lebih kecil, yaitu T(n) = 30n2-12n+91 dibandingkan dengan algoritma minimax yang mempunyai waktu tempuh T(n) = 33n2-n+32. Sedangkah kompleksitas waktu asimtotik masing-masing algoritma adalah sama yaitu O(n2). Jika dimisalkan nilai n bernilai 1 hingga 10 akan diperoleh hasil pertumbuhan nilai T(n) terhadap ma-sukan n yang apabila digambarkan menjadi bentuk grafik pertumbuhan kompleksitas waktu T(n) terhadap masukan n dapat dili-hat pada garfik. Untuk lebih jelas perhati-kan grafik dibawah ini :

Gambar 19 Nilai Fungsi untuk Waktu Tempuh

99

- Volume II Nomor 2 | April 2013 -

Rina Puspita Dewi, Rusdi Efendi, Ernawati

Keterangan: Waktu tempuh (running time) algoritma A*Waktu tempuh (running time) algoritma minimax

Gambar 20 Grafik Waktu Tempuh

Gambar 20 menunjukkan grafik waktu tempuh antara algoritma A* dengan al-goritma minimax dengan batasan nilai n di-cari dengan menentukan persamaan TA(n) = TM(n), maka didapat nilai n = 3,17. Dari grafik tersebut terlihat perbedaan pertum-buhan waktu tempuh dari masing-masing algoritma, untuk n > 3,17 waktu tempuh algoritma A* lebih kecil dari waktu tempuh algoritma minimax, artinya algoritma A* lebih cepat daripada algoritma minimax, sehingga dapat disimpulkan algoritma A* lebih efisien dibandingkan dengan algorit-ma minimax.

V. PENUTUP

A. Kesimpulan

Berdasarkan hasil penelitian, pengujian, serta pembahasan mengenai perbandingan algoritma A* dengan algoritma minimax

pada game tic-tac-toe, maka didapatkan kesimpulan sebagai berikut :

1. Aplikasi game tic-tac-toe telah dirancang menggunakan model sekuensial linear dan dibangun dengan menggunakan bahasa pemrograman C# menggu-nakan perangkat lunak Microsoft Visual C# 2008 Express Edition dan database Microsoft Office Access 2007. Perangkat lunak yang dihasilkan berupa aplikasi game tic-tac-toe menggunakan algorit-ma A* dan algoritma minimax.

2. Hasil perbandingan waktu tempuh al-goritma antara algoritma A* dengan algoritma minimax pada aplikasi game tic-tac-toe, menunjukkan bahwa pada saat n > 3,17 nilai waktu tempuh al-goritma A* T(n) = 30n2-12n+85 < waktu tempuh algoritma minimax T(n) = 33n2-n+20 artinya waktu tempuh algoritma A* lebih cepat dibandingkan dengan algoritma minimax, dengan kompleksi-tas waktu kedua algoritma adalah sama yaitu O(n2), sehingga dapat disimpulkan algoritma A* lebih efisien dibandingkan dengan algoritma minimax ditinjau dari waktu tempuhnya.

B. Saran

Berdasarkan hasil penelitian, pengujian, serta pembahasan yang telah dilakukan mengenai perbandingan algoritma A* den-gan algoritma minimax pada game tic-tac-toe, maka untuk pengembangan penelitian selanjutnya penulis menyarankan sebagai berikut :

100

- Jurnal Teknik Informatika REKURSIF -

Perbandingan Algoritma A* (A-Star) Dengan Algoritma Minimax Pada Game Tic-Tac-Toe

1. Sebaiknya perlu dikembangkan aplikasi serupa namun dengan beberapa pilihan lawan, misalnya human player versus human player dan sebagainya.

2. Ukuran papan permainan dapat dit-ambah, tidak hanya papan permainan berukuran 3x3 dan 5x5.

3. Dapat mencoba algoritma yang berbeda dalam penerapannya pada game tic-tac-toe.

REFERENsI

[1]. Kusrini. 2006. Sistem Pakar Teori dan Aplikasi. Yogyakarta: Andi.

[2]. Sutojo, T, dkk. 2011. Kecerdasan Buatan. Yogyakarta: Penerbit Andi.

[3]. Kusumadewi, Sri. 2003. Artificial Intelligence

Teknik dan Aplikasinya. Yogyakarta: Graha Ilmu.[4]. Rahayu, Nurul. 2010. Penerapan Algoritma A*(A

Star) Dalam Pencarian Jalan Terpendek Pada Game Pathfinding. [Online]. Tersedia: http://elib.unikom.ac.id. [31 Januari 2012].

[5]. Sigiro, Irma. 2011. Analisis dan Implementasi Penyelesaian Game Minesweeper Menggunakan Algoritma Greedy Best First Search. [Online]. Tersedia: http://repository.usu.ac.id/. [15 Agustus 2012].

[6]. Akbar, Ridhwana. 2007. Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-Tac-Toe. [Online]. Tersedia: http://www.informatika.org/~rinaldi/. [7 Desember 2011].

[7]. Gustania, dkk. 2011. Game Tic-Tac-Toe. [Online]. Tersedia: www.scribd.com/doc/54319176/ . [25 April 2012].

[8]. Suyanto. 2011. Artificial Intelligence. Bandung: Informatika.

[9]. Tilawah, Hapsari. 2010. Penerapan Algoritma A-star (A*) Untuk Menyelesaikan Masalah Maze. [Online] . http://www.informatika.stei.itb.ac.id/~rinaldi.../ . [12 Januari 2012].

[10]. Munir, Rinaldi. 2010. Matematika Diskrit. Edisi 3. Informatika: Bandung.

[11]. Cormen, Thomas N.,dkk. 2001. Inroduction To Algorithms (2nd ed.). MIT Press and McGraw-Hill.

[12]. Brassard, G., and Bratley, P. 1996. Fundamentals of Algorithmics. Prentice Hall: New Jersey