28
BAB I PENDAHULUAN 1.1 Latar Belakang Bermain game merupakan salah satu aktifitas yang sangat disukai oleh sebagian besar masyarakat di dunia ini. Alasan mereka bermain game tentunya berbeda-beda, ada yang untuk melepas lelah, ada juga yang memang suka atau hobi bermain game. Dengan berkembangnya teknologi sekarang ini, game – game ini tidak hanya dapat kita jumpai pada kehidupan nyata, tapi juga dapat kita jumpai d idalam dunia maya. Jenis nya pun semakin banyak dan bervariasi. Salah satu yang cukup menarik perhatian adalah permainan komputer. Permainan- permainan berbasis komputer ini juga bermacam-macam. Salah satu kelebihannya adalah kita tidak harus mencari orang untuk menjadi lawan tanding jika ingin bermain karena permainan berbasis komputer ini sudah mendukung single-player mode dimana kita dapat bermain sendiri melawan komputer yang dirancang untuk dapat berlaku 1

Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Embed Size (px)

Citation preview

Page 1: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB I

PENDAHULUAN

1.1 Latar Belakang

Bermain game merupakan salah satu aktifitas yang sangat disukai oleh

sebagian besar masyarakat di dunia ini. Alasan mereka bermain game tentunya

berbeda-beda, ada yang untuk melepas lelah, ada juga yang memang suka atau

hobi bermain game. Dengan berkembangnya teknologi sekarang ini, game – game

ini tidak hanya dapat kita jumpai pada kehidupan nyata, tapi juga dapat kita

jumpai d idalam dunia maya. Jenis nya pun semakin banyak dan bervariasi. Salah

satu yang cukup menarik perhatian adalah permainan komputer. Permainan-

permainan berbasis komputer ini juga bermacam-macam. Salah satu kelebihannya

adalah kita tidak harus mencari orang untuk menjadi lawan tanding jika ingin

bermain karena permainan berbasis komputer  ini sudah mendukung single-player

mode dimana kita dapat bermain sendiri melawan komputer yang dirancang untuk

dapat berlaku seperti pemain manusia atau yang sering dikenal dengan Artificial

Inteligince (AI). Contoh – contoh permainan yang menggunakan AI adalah

permainan catur, go, othello, checkers, bridge, tic-tac-toe dan lain sebagainya.

Untuk membuat pemain merasa seperti melawan pemain manusia lainnya,

diperlukan suatu algoritma yang dapat membuat AI ini mampu mengambil

keputusan yang terbaik agar dapat mengalahkan pemain atau setidaknya

menghalau pemain menang. Algoritma minimax ini merupakan algoritma yang

sangat sering dipakai untuk permasalah tersebut. Dan permainan tic-tac-toe

1

Page 2: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

merupakan salah satu contoh yang baik dan cukup sederhana untuk kita mengerti

bagaimana cara kerja dan efeknya.

1.2 Identifikasi Masalah

Algoritma minimax merupakan algoritma yang cukup terkenal dalam

bidang kecerdasan buatan. Dimana dengan algoritma tersebut komputer dapat

mengambil keputusan terbaik untuk menyelesaikan masalah. Masalah yang akan

diangkat disini adalah AI untuk permainan tic-tac-toe , dimana AI tersebut tidak

akan pernah kalah. Dengan algoritma minimax ini, pohon solusi akan dibuat dari

awal permainan sampai akhir permainan dimana semua kemungkinan kondisi

dijadikan simpul dari pohon solusi, sehingga AI tinggal memilih langkah yang

akan menuntunnya ke hasil akhir berupa kemenangan atau setidaknya seri.

1.3 Batasan Masalah

Linkup permasalahan yang akan dibahas pada makalah ini adalah

penggunaan algoritma minimax untuk membuat AI yang dapat mencari dan

menentukan keputusan terbaik dalam permainan tic-tac-toe sedemikian sehingga

AI tersebut tidak akan pernah kalah.

1.4 Maksud dan Tujuan Penelitian

Adapun maksud dari penelitian ini adalah mengetahui penggunaan

algoritma minimax untuk membuat AI yang dapat mencari dan menentukan

keputusan terbaik. Dan tujuan dari penelitian ini adalah dengan menggunakan

2

Page 3: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

algoritma minimax diharapkan dapat menentukan keputusan terbaik dalam

permainan tic-tac-toe sedemikian sehingga AI tersebut tidak akan pernah kalah.

1.5 Metode Penelitian

Metode penelitian merupakan suatu mekanisme, teknik atau cara untuk

mencari, memperoleh, mengumpulkan, atau mencatat data yang dapat digunakan

untuk menyusun karya ilmiah atau penelitian dengan prosedur yang didasarkan

pada suatu struktur logis yang terdiri dari beberapa tahapan kerja dan kemudian

menganalisa faktor-faktor yang berhubungan dengan pokok-pokok permasalahan

sehingga akan didapat suatu kebenaran atas data yang diperoleh. Penyusunan

makalah ini menggunakan metode deskriptif, yaitu mengumpulkan data kemudian

menganalisanya serta memaparkan hasil penelitian.

1.6 Sistematika Penulisan

Sistematika Penulisan laporan skripsi terdiri dari VI BAB dengan

perincian sebagai berikut :

BAB I Pendahuluan

Pada bab ini menguraikan tentang gambaran umum dari makalah

yaitu latar belakang, identifikasi masalah, batasan masalah, maksud

dan tujuan penelitian, metode penelitian, serta sistematika

penulisan.

3

Page 4: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB II Landasan Teori

Pada bab ini memaparkan teori-teori dan landasan pengetahuan

yang relevan dengan makalah ini. Berisikan teori Game AI,

Permainan tic-tac-toe serta teori-teori yang berhubungan dengan

permasalahan yang dibahas.

BAB III Algoritma Minimax

Pada bab ini akan diuraikan mengenai algoritma minimax,

bagaimana algoritma minimax dalam aplikasi permainan tic-tac-

toe.

BAB IV Implementasi Algoritma Minimax

Pada bab ini membahas bagaimana algoritma minimax

diimplementasikan ke dalam permainan tic-tac-toe..dan hasil

analisis dari algoritma minimax dalam permainan tic-tac-toe.

BAB V Hasil Analisis

Pada bab ini berisi tentang hasil analisis dari algoritma

minimax terhadap permainan tic-tac-toe.

BAB VI Kesimpulan dan Saran

Pada bab ini berisi tentang kesimpulan dan saran yang diajukan

agar dapat menjadi bahan pertimbangan.

4

Page 5: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB II

LANDASAN TEORI

2.1 Game AI

Game AI adalah aplikasi IB untuk memodelkan karakter yang terlibat

dalam permainan baik sebagai lawan, ataupun karakter pendukung yang

merupakan bagian dari permainan tetapi tidak 'ikut bermain' (NPC ~ Non Playable

Characters). Ada beberapa karakter dalam game AI yaitu:

1. Karakter antagonis (Opponent AI)

Karakter antagonis adalah karakter yang dalam permainan memiliki tujuan

yang sama dengan pemain yaitu memenangkan permainan. untuk mewujudkan

tujuan ini karakter tersebut dapat melakukan aksi kepada pemain dan sebaliknya

pemain dapat melakukan aksi kepada karakter lawan yang sesuai dengan aturan

permainan. contoh sederhana dari karakter antagonis adalah dalam permainan

pertarungan (fighting). karakter lawan adalah karakter yang harus 'dikalahkan'

oleh pemain dengan melakukan aksi (serangan). fungsi IB pada karakter antagonis

adalah melakukan aksi-aksi yang dapat memperbesar peluang karakter tersebut

untuk menang.

2. Karakter Pendukung (NPC AI)

karakter pendukung (NPC ~ Non-Playable Characters) merupakan

karakter yang terlibat dalam permainan tetapi tidak memiliki tujuan untuk

memenangkan permainan melainkan melakukan peran yang mendukung

pemain/lawan untuk memenangkan permainan. contoh sederhana dari NPC AI

5

Page 6: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

adalah pada game RPG. Karakter NPC pada permainan bergenre RPG pada

umumnya memberikan informasi implisit kepada karakter tentang hal-hal yang

berkaitan dengan cerita dalam permainan ataupun panduan bagi pemain mengenai

tujuan permainan. fungsi IB pada karakter pendukung adalah menentukan dialog

dengan pemain sedemikian rupa sehingga seolah-olah karakter tersebut tampak

nyata bagi pemain (life-like).

Peranan IB dalam hal interaksi pemain dengan permainan adalah pada

penggunaan interaksi yang bersifat alami yaitu yang biasa digunakan manusia

untuk berinteraksi dengan sesama manusia. contoh-contoh media interaksi antara

lain :

a. penglihatan (Vision)

Untuk menggunakan informasi penglihatan biasanya menggunakan

kamera sebagai perangkat untuk mendapatkan data. data yang ditangkap

adalah berupa gambar / citra yang merupakan matriks dua dimensi.

matriks tersebut dianalisa sesuai dengan kebutuhan aplikasi sehingga

didapatkan informasi yang diinginkan (misal pembentukan wajah, deteksi

gerakan, rekonstruksi ruang).

b. suara (voice) atau ucapan (speech)

Informasi suara didapatkan dari microphone yang menghasilkan

informasi dalam bentuk deretan angka (disebut sebagai sample). Persoalan

utama dari suara adalah informasi yang dikandung memiliki variasi yang

sangat besar yang disebabkan oleh faktor alat dan faktor manusia (vokal,

intonasi, intensitas, dll). Penerapan interaksi dengan menggunakan suara

6

Page 7: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

misalnya untuk permainan bergenre RTS (wargames) yang

menterjemahkan perintah dari pemain untuk menggerakkan unit. Contoh

lainnya adalah permainan balap kendaraan yang menentukan akselerasi

dari suara pemain yang menirukan suara mesin.

c. gerakan anggota badan (gesture)

Gesture adalah gerakan sebagian anggota badan yang memiliki

makna tertentu (disebut juga sebagai body language). Informasi gesture

dapat diakuisisi dengan berbagai cara, diantaranya :

1. video (vision)

informasi deretan koordinat (gerakan) dihasilkan dari analisis terhadap

rangkaian gambar terurut (video).

2. sensor jarak (range)

informasi deretan koordinat diukur dengan menggunakan sensor jarak.

3. sensor posisi yang menempel pada pemain

akhir-akhir ini beberapa produsen konsol memanfaatkan pengendali

(controller) yang dapat menghasilkan informasi posisi /perubahan

posisi pengendali pada ruang tiga dimensi. Salah satu contoh konsol

yang menggunakan ini adalah Nintendo Wii.

2.2 Permainan Tic-Tac-Toe

Permainana tic-tac-toe merupakan permainan berjenis board-game

berukuran 3x3. Pemain harus mengisi sel-sel tersebut sedemikian sehingga

karakter yang dimasukkan pemain tersebut dapat membentuk suatu garis lurus

7

Page 8: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

horizontal, vertikal, ataupun juga diagonal. Permainan ini biasanya dimainkan

oleh 2 orang pemain, tapi pada versi permainan komputer, pemain lawan dapat

digantikan oleh komputer. Dalam permainan ini hasilnya dapat berupa

menang,kalah, ataupun seri.

Disini dengan adanya AI yang mampu meminimalisir kemungkinan untuk

pemain menang, permainan ini akan menjadi sangat sulit untuk dimenangkan oleh

pemain. Bahkan kemungkinan terbaik untuk pemain hanyalah seri. Dengan kata

lain dengan menggunakan algoritma minimax ini, komputer tidak akah pernah

kalah.

8

Page 9: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Berikut contoh permainan tic-tac-toe :

Gambar 2.1 Contoh kondisi menang pada permainan tic-tac-toe

Gambar 2.2 Contoh kondisi seri pada permainan tic-tac-toe

9

Page 10: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB III

ALGORITMA MINIMAX

Algoritma minimax merupakan basis dari semua permainan berbasis AI

seperti permainan catur misalnya. AI permainan catur tentunya sudah sangat

terkenal dimana AI tersebut bahkan dapat mengalahkan juara dunia sekalipun.

Pada algoritma minimax, pengecekan akan seluruh kemungkinan yang ada sampai

akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon

permainan yang berisi semua kemungkinan tersebut. Tentunya dibutuhkan

resource yang berskala besar untuk menangani komputasi pencarian pohon solusi

tersebut berhubung kombinasi kemungkinan untuk sebuah permainan catur pada

setiap geraknya sangat banyak sekali.

Berbeda dengan permainan catur, permainan tic-tac-toe ini mempunyai

lebih sedikit kemungkinan solusi, sehingga kita akan mempunyai cukup

komputasi untuk memainkan setiap kombinasi langkah dari setiap posisi dan

kondisi. Namun hal ini dapat dihindari dengan membatasi sejauh mana komputer

akan menganalisis hasil dari langkahlangkah yang mungkin (menentukan

kedalaman pohon). Tetapi dengan hal ini, kita harus menambah kedalaman pohon

tersebut setiap langkahnya agar kedalaman pohon pada state tersebut sama dengan

state sebelumnya.

Algoritma minimax ini bekerja secara rekursif dengan mencari langkah

yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan

akan dihitung dengan algoritma yang sama dan seterusnya. Ini berarti, pada

1

Page 11: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan

untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat

lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer

itu sendiri mendapatkan keuntungan maksimum.

Dalam penentuan keputusan tersebut dibutuhkan suatu nilai yang

merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah

tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heurisitic untuk

mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang

akan terjadi jika langkah tersebut dipilih. Biasanya pada permainan tic-tac-toe ini

digunakan nilai 1,0,-1 untuk mewakilkan hasil akhir permainan berupa menang,

seri, dan kalah. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul

mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih

tersebut adalah simpul dengan nilai heuristic yang akan menuntun permainan ke

hasil akhir yang menguntungkan bagi komputer.

1

Page 12: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Berikut garis besar algoritma minimax secara umum :

Pemakaian algoritma umum diatas untuk permainan tic-tac-toe adalah

sebagai berikut :

1

Cari langkah yang dengan nilai maksimum

IF langkah tersebut merupakan langkah kemenangan

THEN pilih lagkah tersebut.

ELSE

FOR EACH kemungkinan langkah yang ada

Cari langkah lawan yang bernilai minimum.

RETURN nilai dari langkah tersebut.

Pilih langkah yang bernilai maksimum dari

langkah-langkah tersebut.

IF ada langkah kemenangan THEN pilih langkah

tersebut.

ELSE IF lawan mempunyai 2 spot terisi dalam satu

garis dengan spot

ketiga masih kosong THEN tutup langkah tersebut

(isi spot kosong ketiga

tersebut).

ELSE melangkah ke state yang mempunyai

kemungkinan menang tertinggi (berdasarkan nilai

heuristic yang dibangkitkan).

Page 13: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Dilihat dari algoritma diatas, nilai heuristic yang dibangkitkan akan sangat

mempengaruhi analisis dari AI tersebut. Oleh karena itu, semakin bagus fungsi

heuristic maka semakin bagus pula analisis AI tersebut, dan semakin sulit pula AI

untuk dikalahkan.

1

Page 14: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB IV

IMPLEMENTASI ALGORITMA MINIMAX

Anggaplah ada 2 pemain A dan B. Jika pemain A bisa menang dalam 1

langkah, maka langkah tersebut adalah langkah kemenangannya. Jika pemain B

mengetahui bahwa langkah tersebut akan mengarahkan ke hasil akhir dimana

pemain A akan menang, dan di lain kondisi ada langkah lain yang akan

mengarahkan ke hasil akhir seri, maka langkah terbaik untuk pemain B adalah

langkah yang akan mengarahkan hasil akhir permainan ke hasil seri. Di setiap

tahap algoritma ini mengasumsikan bahwa pemain A mencoba untuk

memaksimalisasi peluang menang. Di lain pihak, pada giliran berikutnya pemain

B akan mencoba meminimalisir peluang menang untuk pemain A. Oleh karena

itu, A disebut juga maximizing player (MAX) dan B disebut juga minimizing

player

(MIN).

Pembentukan pohon pencarian solusi digunakan dengan menggunakan

konsep depth-first, dimulai dari awal permainan sampai akhir permainan. Setelah

itu, posisi akhir permainan dievaluasi melalui sudut pandang MAX seperti gambar

dibawah ini :

1

Page 15: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Gambar 3.1. Representasi pohon pencarian pada algoritma minimax.

Setelah itu nilai dari setiap simpul diisi dari bawah ke atas dengan nilai

yang sudah dievaluasi oleh fungsi heuristic. Simpul milik pemain A (MAX)

menerima nilai maksimum dari simpul-simpul anaknya. Simpul milik pemain B

(MIN) akan memilih nilai minimum dari simpul anak-anaknya. 5 Berikut

pseudocode dari algoritma yang digunakan :

MinMax (GamePosition game) {

return MaxMove (game);

}

MaxMove (GamePosition game) {

if (GameEnded(game)) {

return EvalGameState(game);

}

1

5

43 5

3 410 5 6 7

MAX

MAX

MIN

Page 16: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

else {

best_move < - {};

moves <- GenerateMoves(game);

ForEach moves {

move <- MinMove(ApplyMove(game));

if (Value(move) > Value(best_move)){

best_move < - move;

}

}

return best_move;

}

}

MinMove (GamePosition game) {

best_move <- {};

moves <- GenerateMoves(game);

ForEach moves {

move <- MaxMove(ApplyMove(game));

if (Value(move) > Value(best_move)){

best_move < - move;

}

}

return best_move;

}

1

Page 17: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

Values disini merepresentasikan sebagaimana bagusnya suatu langkah

dalam permainan. Jadi, pemain A (MAX) akan memilih langkah dengan nilai

paling tinggi diakhir. Di sisi lain, pemain B (MIN) akan melakukan serangan balik

dengan memilih langkah yang terbaik untuknya, yakni meminimalisir hasil dari

langkah yang dipilih pemain A.

1

Page 18: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB V

HASIL ANALISIS

AI akan selalu memilih langkah yang dapat meminimalisir kemungkinan pemain

(manusia) untuk menang dan memblok semua langkah kemenangan pemain.

Dengan demikian permainan akan selalu seri apabila pemain cukup teliti dalam

menentukan langkah. Namun jika pemain melakukan langkah yang salah, maka

AI akan langsung menggunakan kesempatan tersebut.

1

Page 19: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

BAB VI

KESIMPULAN DAN SARAN

1. Algoritma minimax merupakan algoritma yang sangat bagus dan cocok

untuk pengambilan keputusan oleh AI, terutama dalam permainan nplayer

(n>=2).

2. Algoritma minimax menggunakan konsep DFS dalam pembentukan pohon

solusi.

3. Pohon solusi dibentuk dari awal permainan sampai akhir permainan.

4. Untuk permainan yang terbilang cukup kompleks seperti permainan catur,

pembentukan pohon solusi dari awal permainan sampai akhir permainan akan

sulit direalisasikan berhubung kemungkinan yang ada sangat besar.

5. Oleh karena itu, kita dapat membatasi dalamnya pohon solusi pada suatu

tahap untuk mempercepat kinerja pengambilan keputusan.

6. Semakin akurat fungsi heuristic yang digunakan, semakin baik pula

pengambilan keputusan yang dilakukan oleh AI.

7. Dengan menggunakan algoritma minimax untuk AI dalam permainan tic-

tac-toe, pemain (manusia) tidak akan pernah menang melawan AI tersebut.

1

Page 20: Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-tac-Toe

DAFTAR PUSTAKA

Munir, Rinaldi.2006. “Strategi Algoritmik”. Program Studi Informatika, Institut

Teknologi Bandung.

Kevin McGee, “Advance Game Programming : AI”, Desember 9, 2005.

Wikimedia Foundation, Inc. “A * Search Algorithm”.

http://en.wikipedia.org/wiki/Astar_search_algorithm.

www.stancford.edu~msirotasocominimax.html

http://ai-depot.com/articles/minimaxa-explained/1/

2