• Tidak ada hasil yang ditemukan

PENERAPAN ALGORITMA MINIMAX MENGGUNAKAN. pdf

N/A
N/A
Protected

Academic year: 2018

Membagikan "PENERAPAN ALGORITMA MINIMAX MENGGUNAKAN. pdf"

Copied!
21
0
0

Teks penuh

(1)

PENERAPAN ALGORITMA MINIMAX MENGGUNAKAN

METODE DEPTH-FIRST SEARCH (DFS) PADA PERMAINAN

OTHELLO BERBASIS DESKTOP

Firdamdam Sasmita (10114175)

Fajar (10114495)

GunGun Abdullah (10114197)

Kelompok-12

ANALISIS ALGORITMA 8

UNIVERSITAS KOMPUTER INDONESIA

(2)

I. PENJELASAN GAME

1.1SEJARAH

Othello berawal tahun 1945, setelah bom atom dijatuhkan di Hiroshima dan Nagasaki. September 1945, Hasegawa Goro yang tengah duduk di kelas satu SMP menerima pelajaran sembari duduk di tanah di bawah langit biru. Mito juga menjadi sasaran pengeboman hingga kastil dan bangunan bersejarah lain ikut habis dalam kobaran api. Dalam suasana seperti itulah permainan ini dilahirkan.

1.2 TENTANG GAME

Permainan Othello adalah permainan yang dimainkan oleh dua orang pemain. Permainan ini dimainkan di atas papan persegi yang terdiri dari 8 Baris dan 8 Kolom. Permainan ini di luar negeri lebih dikenal dengan nama Reversi. Saat ini Othello tidak hanya dimainkan secara tradisional, namun sudah banyak dibuat dalam bentuk game pada komputer, karena hampir semua jenis dan tipe game application sekarang membutuhkan AI untuk membuat komputer seolah-olah tampak cerdas. Maka dari itu game Othello disini bekerja secara otomatis, dengan sebutan lain berarti komputer lawan komputer dimana penerapan algoritma minimax akan dibutuhkan disini.

1.3 GAMBAR PROGRAM

(3)

Dalam gambar tersebut terdapat 1 papan yang terdiri dari beberapa petak hijau, 2 petak hitam dan putih, dan pada kolom status ada pesan pemberitahuan giliran player dan musuh, sedangkan dibawahnya terdapat 4 tombol yang memiliki fungsionalitas masing – masing. Mulai - maksudnya untuk memulai permainan secara otomatis, Tentang – untuk melihat info tentang game, Info – info tentang anggota kelompok, Keluar – untuk keluar dari game. Kondisi gambar di atas ketika permainan belum dimulai, dan gambaran ketika proses game sedang berlangsung seperti ini :

1.4 ATURAN MAIN

Berbeda dengan permainan Othello pada umumnya yang menggunakan koin, permainan disini dimainkan pada arena papan kotak-kotak persegi berwarna hijau dengan petak hitam dan putih. Secara umum aturan main nya sama seperti halnya menggunakan koin, seperti berikut :

1. Petak hitam secara default akan memulai permainan pertama.

2. Petak hitam yang bermain pertama harus melewati petak putih, begitupun sebaliknya jika giliran petak putih sudah dimulai.

3. Melewati petak hitam / putih bisa dengan arah bawah, atas, kiri, kanan maupun miring kearah yang bisa di lewati.

4. Apabila salah satu petak hitam / putih sudah tidak bisa melewati musuhnya maka giliran si petak hitam / putih yang akan bermain lagi, begitupun seterusnya.

5. Kondisi menang ketika papan terpenuhi oleh salah satu petak hitam / putih.

6. Jika keduanya sudah tidak dapat menemukan langkah, maka permainan akan berakhir.

II. STRATEGI ALGORITMA

2.1PENJELASAN TENTANG STRATEGI

2.1.1 JUMLAH PETAK

(4)

2.1.2 DAERAH PETAK

Dalam permainan Othello disini, terdapat 5 daerah petak yang beresiko bagi pemain nya, baik itu pilihan yang diambilnya tepat maupun tidak tepat. Strategi penempatan pada daerah petak ini mesti diperhatikan agar pemain dapat memilih pilihan langkah yang baik. Untuk memperjelas apa yang dimaksud 5 daerah disini, bisa di lihat seperti gambar di bawah ini :

Gambar 1.3 (Daerah Petak)

Seperti gambar di atas, daerah 3 dan 5 adalah daerah strategis yang baik bagi si pemain, beda halnya dengan daerah 4 yang memiliki kelemahan yang sangat lemah sehingga mudah sekali untuk mengambil petak musuhnya. Berbeda halnya dengan daerah 2 dan 4, daerah tersebut sangat beresiko sekali karena lawan dapat membalikan serangan di daerah 3 dan 5, jadi dalam konsep AI pengambilan penempatan petak ini tidak dianjurkan.

2.1.3 PETAK STABIL

(5)

2.1.4 MOBILITY

Kondisi ketika pemain akan memilih beberapa langkah itu disebut mobility. Mobility menunjukan beberapa petak yang mesti di tempati dan itu adalah suatu pilihan yang terbaik bagi si pemain, semakin banyak mobility maka semakin banyak kemungkinan pilihan langkah yang terbaik, akan tetapi sebaliknya jika mobility sedikit maka semakin sedikit pilihan langkah yang akan diambil.

Gambar 1.4 (Yang di lingkari putih adalah mobility)

2.1.5 MINIMAX

(6)

Gambar 1.5 (Sketsa Pohon Pencarian pada Othello 2 kedalaman)

2.1.6 DEPTH-FIRST SEARCH (DFS)

(7)

Gambar 1.6 (Sketsa Metode DFS di Othello)

Seperti yang terlihat pada gambar di atas, pencarian akan dilakukan sampai kedalam tertentu kemudian kembali lagi menelusuri pada node yang lain sampai kedalaman tertentu pula, begitu seterusnya seperti halnya pada gambar di atas.

2.2PENERAPAN STRATEGI DALAM MENYELSAIKAN GAME

Penerapan Minimax dalam permainan disini dirancang menggunakan array 2 dimensi dimana di inisialisasikan sebagai P(baris, kolom), dan penggunaan tersebut dimanipulasi pada penggunaan array P-nya dalam perulangan yang bersarang.

2.2.1 INISIALISASI AWAL

(8)

untuk mendapatkan petak yang saling bergiliran antara player dan musuh. Sedangkan untuk array si C, di inisialisasikan terlebih dahulu sebagai nilai dari petak yang berwarna hijau. Untuk lebih jelasnya seperti dibawah ini :

Gambar 1.7 (Inisialisasi awal Baris dan Kolom)

2.2.2 5 DAERAH BERESIKO

Dari kode di atas, tentunya membutuhkan inisialisasi nilai untuk strategi 5 daerah yang beresiko, maka dari itu untuk mendefnisikan daerah petak yang beresiko disini, maka dibutuhkan sebuah array baris - perbaris dengan memiliki nilai nilai yang beresiko. Untuk lebih jelasnya bisa dilihat seperti kode dibawah ini :

Gambar 1.7 (Array membuat 5 daerah yang beresiko)

Kode di atas menunjukan masing – masing nilai untuk daerah yang berbeda dalam sebuah variable yang bernama BarisDanKolom.

 Nilai 05 dan 00 menunjukan daerah 1

 Nilai 03 menunjukan daerah 2

 Nilai 10 dan 20 menunjukan daerah 3

 Nilai 01 menunjukan daerah 4

 Nilai 30 menunjukan daerah 5

(9)

Permainan yang berlangsung secara otomatis ini membutuhkan penerapan AI yang diterapkan pada 2 pemain antara player dan musuh, maka dari itu dibutuhkan algoritma untuk si player MIN dan untuk si musuh MAX agar pada akhirnya menentukan pemenang, apakah si player atau si musuh yang menang. Dua algoritma ini sebenarnya tidak jauh berbeda karena sama – sama minimax, akan tetapi terdapat perbedaan dalam warna petak yang di dapat untuk masing – masing algoritma nya. Untuk lebih jelasnya bisa di lihat seperti kode dibawah ini :

Gambar 1.8 (Kondisi dari fungsi CariPetakTerbaikMax, warnaku berarti petakhitam)

Jadi, selama petak hijau terisi oleh petak hitam maka setiap petak untuk kondisi MAX (petak putih) akan bertambah sesuai dengan index dari kolom dan baris. Sedangkan untuk sebaliknya ketika keadaan petak hijau bertemu dengan petak putih maka setiap petak untuk kondisi MIN (petak hitam) akan bertambah sesuai dengan index dari kolom dan baris.

Gambar 1.9 (Kondisi dari fungsi CariPetakTerbaikMin, warnamu berarti petakputih)

Seperti pada gambar pohon graf (Gambar 1.6) batas kedalaman pohon graf di batasi pada ruang statusnya, maka yang dibutuhkan disini untuk memperkecilnya perlu ditentukan batas maksimumnya.

(10)

Seperti yang sudah dijelaskan sebelumnya bahwa kondisi akhir dari permainan ini ketika pemain dapat mendapatkan lebih banyak petak dari si pemain lainnya, maka dari itu dibutuhkan pengumpulan petak setelah petak dibalik menjadi petak yang lainnya dengan arah yang memungkinkan. Dibawah ini adalah kondisi untuk validasi merubah warna menjadi petakputih atau petakhitam.

Kondisi tesebut terdapat pada fungsi JumlahPetak() yang dimana akan dikirimkan kembali sebuah nilainya ke pemilihan case antara player dan musuh pada fungsi Mainkan().

Gambar 2.0 (Pada fungsi Mainkan(), dan case musuh/kamu)

Gambar 2.1 (Pada fungsi Mainkan(), dan case player/aku)

2.2.4 RANDOM PETAK

Dilihat dari bagaimana cara AI bekerja, maka dibutuhkan pengacakan yang menghubungkan pada pola di atas yang berguna untuk menambahkan petak – petak bagi masing – masing pemain dalam tahap yang berbeda setiap kali memulai permainan. Pengacakan disini menggunakan fungsi rnd() yang pada umumnya terdapat pada bahasa BASIC, dan sama halnya seperti pada bahasa lain yang memiliki fungsi yang sama seperti yang disebutkan barusan.

(11)

membutuhkan kecepatan yang dibutuhkan untuk mengacaknya, maka terdapat fungsi untuk mengatur kecepatan tersebut seperti ini :

Gambar 2.2 (Nilai 4000 adalah jumlah kecepatannya)

III. IMPLEMENTASI

3.1SCREENSHOOT PROGRAM LANGKAH PER LANGKAH

LANGKAH 1 LANGKAH 2 LANGKAH 3

(12)

LANGKAH 7 LANGKAH 8 LANGKAH 9

LANGKAH 10 LANGKAH 11 LANGKAH 12

(13)

LANGKAH 16 LANGKAH 17 LANGKAH 18

LANGKAH 19 LANGKAH 20 LANGKAH 21

(14)

LANGKAH 25 LANGKAH 26 LANGKAH 27

LANGKAH 28 LANGKAH 29 LANGKAH 30

(15)

LANGKAH 34 LANGKAH 35 LANGKAH 36

LANGKAH 37 LANGKAH 38 LANGKAH 39

(16)

LANGKAH 43 LANGKAH 44 LANGKAH 45

LANGKAH 46 LANGKAH 47 LANGKAH 48

(17)

LANGKAH 52 LANGKAH 53 LANGKAH 54

LANGKAH 55 LANGKAH 56 LANGKAH 57

(18)

Gambar 2.3 (Saat permainan berakhir, kondisi musuh menang)

(19)
(20)

Gambar 2.5 (Metode Greedy untuk memberikan nilai petak pada pemain)

IV. KESIMPULAN DAN SARAN

4.1 KESIMPULAN

(21)

V. REFERENSI

[1] CruizerX game Othello 8x8 [2] Genethello

[3] Elib Unikom “Penerapan Othello di windows phone” [4] TanyaPedia “Apa itu Dword?”

[5] Stackoverflow “Image Scaling” [6] Microsoft Support “Bitblt Function” [7] VB6.US “Statics and Constants” [8] NameaColor “Color Number”

Gambar

Gambar 1.4 (Yang di lingkari putih adalah mobility)
Gambar 1.5 (Sketsa Pohon Pencarian pada Othello 2 kedalaman)
Gambar 1.6 (Sketsa Metode DFS di Othello)
Gambar 2.2 (Nilai 4000 adalah jumlah kecepatannya)
+3

Referensi

Dokumen terkait

Tujuan dari penelitian ini adalah menguji pengaruh budaya, kelas sosial, pengaruh pribadi, keluarga, dan situasi terhadap keputusan pembelian produk Mie Instan Merek

Agar suatu pabrik berjalan dengan baik di samping tersedianya alat-alat proses yang lengkap dan bahan baku yang dipergunakan, diperlukan juga tenaga kerja guna menjalankan proses

Teknik pengumpulan data yang dilakukan oleh peneliti yaitu wawancara tidak tertulis, dengan tujuan untuk melakukan studi terlebih dahulu dan menemukan permasalahan

Dua tahun berikutnya, di Universitas yang sama, ia memperoleh gelar magister pada konsentrasi Peradilan Syariah (Qudha Asy Syariyyah). Studinya di Mesir merupakan

Istilah dan definisi yang digunakan dalam standar ini adalah sebagai berikut: 3.1 alkohol anhidrous senyawa kimia hidrokarbon yang disebut juga etil alkohol atau etanol dengan

Struktur Hirarki Analisis Multi Kriteria Penetapan Lokasi Terminal Angkutan Barang di Kota Kendari.. Latar belakang pemilihan lokasi yang didasari hasil wawancara

Kefir mempunyai kandungan asam organik (asam laktat dan asam asetat), selain kefir yang baik untuk perawatan kulit wajah dengan kandungan asam laktat, terdapat

Larangan pemilikan tanah pertanian secara absentee walaupun sudah diatur dalam Peraturan Pemerintah Nomor 224 Tahun 1961 yang dirubah dengan Peraturan Pemerintah