• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN"

Copied!
66
0
0

Teks penuh

(1)

BAB 3

ANALIS IS DAN PERANCANGAN

3.1. Othello (Reversi)

Reversi (juga dipasarkan oleh Pressman dengan merk dagang Othello) adalah permainan papan dengan strategi abstrak yang dimainkan oleh 2 pemain di atas arena persegi berukuran delapan kali delapan menggunakan keping othello yang memiliki dua sisi. Keping Othello berbentuk seperti koin dengan sisi putih dan sisi hitam yang melambangkan masing-masing pemain. Tujuan dari permainan ini adalah membuat keping dengan warna yang mereka gunakan untuk menjadi pengisi terbanyak dari papan permainan pada saat permainan selesai dengan cara membalikkan sebanyak mungkin keping pemain lawan. (Dari Wikipedia)

3.1.1. Peraturan

Othello dimulai dengan posisi awal dua keping hitam dan dua keping putih yang bersilangan.

Gambar 3.1.1.1. Posisi awal permainan Othello

(2)

Kemudian pemain hitam memulai duluan dengan meletakkan keping mereka sedemikian rupa sehingga membuat lintasan secara vertikal, horizontal dan atau diagonal dengan keping hitam lainnya namun memiliki jarak yang berisi keping putih dan tidak boleh sel kosong. Keping putih yang ada di antara keping hitam yang baru diletakkan tersebut kemudian dibalikkan menjadi keping hitam yang bisa digunakan untuk giliran lain kecuali dibalikkan terlebih dahulu menjadi putih oleh pemain putih. Dengan peraturan yang sama, pemain putih kemudian meletakkan kepingnya dan terus bergantian dengan pihak hitam sampai permainan usai.

Jika salah satu pemain tidak bisa membuat gerakan legal maka giliran akan dipindahkan ke pemain lawan, jika pemain lawan juga tidak berhasil membuat langkah legal maka permainan dinyatakan selesai dan pemenangnya adalah pemain dengan jumlah keping terbanyak di arena.

3.1.2. S trategi

Seorang pemain yang baru mulai mungkin akan bermain othello dengan mengambil langkah yang memberikan jumlah keping yang mungkin untuk dihasilkan. Strategi ini mungkin akan memberikan kemenangan di banyak permainan selama pemain tersebut dapat berpikir dua sampai tiga langkah ke depan. Pemain yang berpengalaman akan menggunakan strategi yang lebih efektif dan daripada mengambil langkah dengan jumlah keping terbanyak, elemen terpenting dalam strategi permainan Othello adalah pojok, mobilitas, pinggir, paritas, penyelesaian dan melihat ke depan.

(3)

3.1.2.1. Pojok (Corner)

Posisi pojok, setelah diisi, tidak akan dapat dibalikkan sampai akhir permainan karena tidak ada keping lain di belakang mereka. Sehingga pemain yang mendapatkan posisi ini dapat menjadikannya inti serangan untuk mengambil posisi-posisi pinggir secara permanen.

Gambar 3.1.2.1.1.Posisi Pojok (Ditandai keping hitam)

3.1.2.2. Mobilitas (Mobility)

Seorang pemain Othello berstrategi yang lumayan tidak akan memberikan posisi pojok ataupun posisi bagus lainnya dengan mudah. Sehingga untuk mendapatkan posisi yang baik ini, pemain harus memaksa pemain lawan untuk memberikan kesempatan untuk mengambil posisi tersebut. Jika pemain terus menahan jumlah gerakan legal yang bisa diambil lawan, maka cepat atau lambat lawan akan membuat langkah yang tidak diinginkan oleh dia.

Dengan mengambil langkah yang membuat keping pemain tidak bertambah banyak, pemain telah menahan banyak gerakan legal yang bisa digunakan oleh lawan. Posisi ideal adalah posisi dimana keping milik pemain berada di tengah-tengah dikelilingi keping lawan, dalam situasi ini pemain secara tak langsung telah memberikan

(4)

pilihan yang sangat terbatas atau bahkan mungkin tidak ada pilihan sama sekali. Namun strategi ini juga bisa dengan cepat membuat pemain kekurangan gerakan legal pada gilirannya sendiri.

3.1.2.3. Pinggir (Edges)

Saat memainkan posisi pinggir , strategi ini cenderung berbahaya, pembalikkan di pinggir bisa membuat perubahan ke seluruh daerah pada permainan. Karena dengan mengambil banyaknya keping, akan semakin banyak gerakan legal yang bisa digunakan oleh pemain lawan.

Posisi pinggir yang berbatasan dengan pojok (biasa disebut persegi X), jika dimainkan pada awal permainan maka biasanya pojok yang berbatasan dengannya akan diambil pemain lawan. Namun jika dimanfaatkan dengan baik (biasanya pada menjelang akhir permainan) maka persegi X akan bisa bermanfaat.

Sedangkan posisi pinggir selain pojok yang juga bukan persegi x (bisa disebut persegi C) juga berbahaya untuk dimainkan pada awal permainan (kecuali jika bisa membuat posisi tersebut tidak bisa dibalik lawan) karena posisi ini tidak terlalu sulit untuk dibalikkan oleh pemain lawan.

Sebuah posisi lagi yang bisa menjadi kunci untuk memenangkan permainan juga disadari oleh penulis yaitu posisi diagonal terdekat dari pojok, yang memungkinkan bisa diambilnya posisi pojok dari area yang bersangkutan.

(5)

Gambar 3.1.2.3.1. Edge (keping hitam sebagai persegi X dan keping putih sebagai persegi C)

3.1.2.4. Paritas (Parity)

Paritas merupakan salah satu bagian penting dari strategi. Singkatnya paritas berarti mengambil gerakan yang mengakhiri permainan pada setiap sel yang tersisa. konsep paritas ini ditemukan pada 1980an di Jepang dan mengubah gaya permainan yang berbasis penyerang (hitam) dan bertahan (putih).

3.1.2.5. Melihat ke depan (Look Ahead)

Dalam permainan seperti Othello dan catur, seorang pemain tidak hanya harus melihat kondisi permainan yang ada, tetapi juga melihat gerakan apa yang mungkin akan diambil oleh lawan main. Jadi untuk pemain harus melihat apakah langkah yang diambil itu bisa berguna untuk jangka panjang.

3.1.2.6. Penyelesaian (End Game)

Pada kurang lebih 20 giliran sebelum permainan berakhir, pemain biasanya mulai menggunakan strategi yang berbeda dari strategi yang digunakan pada awal

(6)

permainan. Dengan banyaknya keping yang ada di arena, pemain harus bisa menentukan gerakan mana yang akan membawa hasil akhir yang terbaik.

3.2. Komputer dalam Permainan Othello (Wikipedia)

Komputer dalam perannya di dalam dunia hiburan sebagai lawan dalam sebuah permainan sebenarnya hanya bertugas untuk memberikan sebuah ilusi kecerdasan sehingga pemain merasakan ilusi bahwa komputer yang menjadi lawannya sebagai sesuatu yang memiliki kecerdasan.

Program komputer Othello terbaik dapat dengan mudah mengalahkan manusia terbaik. Pada awal 1980-an, program ‘The M oor’ mengalahkan juara bertahan dunia. Pada 1997, Logistello telah mengalahkan juara dunia manusia Takeshi M urakami dengan skor 6:0 untuk Logistello.

M anusia pada umumnya tidak dapat mengalahkan kecerdasan buatan dalam permainan Othello karena komputer dapat melihat ke depan lebih jauh daripada manusia. Para analis telah memperkirakan paling banyak ada 1028 gerakan legal dan kompleksitas pohon permainan sebesar 1058. Secara matematis Othello masih belum terpecahkan. Karena para ahli belum bisa memecahkan prediksi hasil pertandingan ketika kedua pihak yang bermain melakukan perfect play (permainan sempurna).

Perfect play merupakan sebuah istilah yang digunakan untuk langkah yang akan memberikan hasil terbaik apapun situasi yang berikan dengan cara mengevaluasi tiap langkah yang mungkin. Namun permainan sempurna hanya bisa dilakukan pada permainan yang memiliki informasi sangat lengkap seperti Othello atau catur dimana apa yang ada di atas papan permainan merupakan seluruh fakta yang ada dari situasi permainan tersebut. Permainan sempurna pada permainan Othello baru bisa

(7)

dilaksanakan hanya pada arena berukuran 4x4 dan 6x6 dimana kemenangan jatuh pada pihak pemain yang jalan pada giliran kedua.2

3.3.1. Pseudo-Code Modul

Permainan Othello yang dikerjakan oleh penulis ditulis menurut pseudo code berikut: cek available move

{ cek atas

cek bawah

cek kiri

cek kanan

cek kiri atas cek kanan atas cek kiri bawah

cek kanan bawah

jika ada yang mengembalikan nilai bukan 0 maka bisa jalan }

2 Dalam analisis dari ribuan permainan yang berbasis papan berukuran 8x8, dengan permainan sempurna

(8)

Cek Atas

Cek Bawah

Cek kiri

Cek kanan Cek atas kanan

Cek atas kiri

Cek kanan bawah

Cek ki ri bawah Cek at as = 1

Cek atas kanan = 1 Cek bawah = 1 Cek ki ri=1 Cek kanan = 1 Cek ki ri bawah = 1 Cek kanan bawah = 2 Cek at as kiri = 1

Return 1 Ret urn 0 Y a Ya Ya Ya Y a Y a Ya Ya Ya Tidak T idak T idak Ti dak Tidak T idak Tidak Tidak

Gambar 3.3.1.1.Diagram alur modul Cek available move

cek atas

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 teratas maka tidak bisa jika tepat di atasnya warna sama atau kosong maka tidak bisa

(9)

selama di atasnya warna berbeda maka lanjutkan cek ke atas jika ada yang kosong maka tidak bisa

jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika Y>1

Y>1 posisi(X,Y-1) sewarna? ya Posisi(X,Y) dan (X,Y -1) kosong ya Return 0 ya P osisi (X ,Y- i) sewarna? i = 1 tidak tidak Posisi (X,Y-i) kosong? Return i tidak tidak ya tidak i+1 ya tidak Y-i<0 ya tidak

(10)

cek bawah()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 terbawah maka tidak bisa

jika tepat di bawahnya warna sama atau kosong maka tidak bisa selama di bawahnya warna berbeda maka lanjutkan cek ke bawah

jika ada yang kosong maka tidak bisa jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika Y>7

Y<7

posisi (X,Y+ 1) sewarna?

ya Posi si(X,Y) dan (X,Y+1) kosong ya Return 0 ya Posi si (X,Y+ i) sewarna? i = 1

tidak Posisi (X,Y+i)

kosong? R eturn i tidak tidak ya tidak i+ 1 ya tidak Y+ i<8 ya tid ak Gambar 3.3.1.3. Diagram alur cek bawah

(11)

cek kanan()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 terkanan maka tidak bisa

jika tepat di kanannya warna sama atau kosong maka tidak bisa selama di kanannya warna berbeda maka lanjutkan cek ke kanan

jika ada yang kosong maka tidak bisa jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika X>7

X<7 posisi(X+ 1,Y) sewarna? ya Posisi(X,Y) dan (X+1,Y) kosong ya Return 0 ya Posisi (X+i,Y) sewarna? i = 1

tidak Posisi (X+i,Y)

kosong? Return i tidak tidak ya tidak i+1 ya ti dak X+i<8 ya tidak

(12)

cek kiri()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 terkiri maka tidak bisa jika tepat di kirinya warna sama atau kosong maka tidak bisa

selama di kirinya warna berbeda maka lanjutkan cek ke kiri jika ada yang kosong maka tidak bisa

jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika Y>1

Y>1 posisi(X,Y-1) sewarna? ay Posisi(X,Y) dan (X,Y-1) kosong ya Return 0 ya Posisi (X,Y- i) sewarna? i = 1 Posisi (X,Y-i) kosong? Return i tidak tidak ya tidak i+1 ya ti dak Y-i<0 ya tidak

(13)

cek atas kanan()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 teratas kanan maka tidak bisa

jika tepat di atas kanannya warna sama atau kosong maka tidak bisa selama di atas kanannya warna berbeda maka lanjutkan cek ke atas kanan

jika ada yang kosong maka tidak bisa jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi j ika X<0dan Y>7 X>0 dan Y<7 posi si (X-1,Y+1) sewarna? ya Posisi(X,Y) dan (X-1,Y+1) kosong ya Return 0 ya Posisi (X-i,Y+i) sewarna? i = 1

tidak Posi si (X-i,Y+ i)kosong?

Return i tidak tidak ya tidak i+1 ya tidak

X-i>0 dan Y+i <8

ya

ti dak

Gambar 3.3.1.6.Diagram alur cek atas kanan

(14)

cek kiri atas()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 teratas kiri maka tidak bisa

jika tepat di atas kirinya warna sama atau kosong maka tidak bisa selama di atas kirinya warna berbeda maka lanjutkan cek ke atas kiri

jika ada yang kosong maka tidak bisa jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika X<0dan Y>7 X>0 dan Y<7 posisi(X-1,Y+1) sewarna? ya Posisi(X,Y) dan (X-1,Y+1) kosong ya Return 0 ya Posisi (X-i,Y+i ) sewarna? i = 1

ti dak Posisi (X-i,Y+i)kosong?

Return i ti dak ti dak ya tidak i+1 ya tidak

X-i>0 dan Y+i< 8

ya

tidak

(15)

cek bawah kiri()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 terbawah kiri maka tidak bisa

jika tepat di bawah kirinya warna sama atau kosong maka tidak bisa selama di bawah kirinya warna berbeda maka lanjutkan cek ke bawah kiri

jika ada yang kosong maka tidak bisa jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player }

Cek posisi jika X<0dan Y>7 X>0 dan Y<7 posisi(X-1,Y+1) sewarna? ya Posisi(X,Y) dan (X-1,Y+1) kosong ya Return 0 ya Posisi (X-i,Y+i ) sewarna? i = 1

ti dak Posisi (X-i,Y+i)kosong?

Return i ti dak ti dak ya tidak i+1 ya tidak

X-i>0 dan Y+i< 8

ya

tidak

(16)

cek bawah kanan()

{ dari posisi yang dipilih cek posisi jika nomor 1 sampai 2 terbawah kanan maka tidak bisa

jika tepat di bawah kanannya warna sama atau kosong maka tidak bisa

selama di bawah kanannya warna berbeda maka lanjutkan cek ke bawah kanan jika ada yang kosong maka tidak bisa

jika melewati pinggir maka tidak bisa

kembalikan nilai dari jumlah keping lawan sebelum keping player } Cek posisi ji ka X>7 dan Y> 7 X<7 dan Y<7 posisi (X+1,Y+1) sewarna? ya Posisi(X,Y) dan (X+1,Y+1) kosong ya Return 0 ya Posisi (X+i,Y+i) sewarna? i = 1

ti dak Posisi (X+i,Y+i)kosong?

Return i ti dak ti dak ya tidak i+1 ya tidak X+i<8 dan Y+i< 8 ya tidak Gambar 3.3.1.9. Diagram alur cek bawah kanan

(17)

serang()

{ ubah arah atas ubah arah bawah ubah arah kiri ubah arah kanan ubah arah kiri atas ubah arah kanan atas ubah arah kanan bawah ubah arah kanan atas ubah sel yang dipilih }

ubah arah bawah

Ubah arah kanan

ubah arah kiri

ubah arah kanan atas

ubah arah kiri atas

Ubah arah kanan bawah

ubah arah kiri bawah

ubah sel yang bersangkutan Ubah arah atas

(18)

heuristic scoring {

kalau di pojok 3000

kalau di persegi X pojok terdekat lawan/kosong maka -1000 kalo teman 2000 kalau di persegi C 500

kalau di daerah lain 250 }

Jika dipetakan dengan tabel:

Tabel 3.3.1.1 Tabel Penilaian Heuristik 3000 2000/ -1000 500 500 500 500 2000/ -1000 3000 2000/-1000 2000/-1000 250 250 250 250 2000/-1000 2000/-1000 500 250 250 250 250 250 250 500 500 250 250 250 250 250 250 500 500 250 250 250 250 250 250 500 500 250 250 250 250 250 250 500 2000/ -1000 2000/ -1000 250 250 250 250 2000/ -1000 2000/ -1000 3000 2000/ -1000 500 500 500 500 2000/ -1000 3000

(19)

Heuristic {

heuristic scoring

periksa semua node yang mungkin

skor ditambah sesuai skor dalam sel pilih node dengan penambahan tertinggi }

Heurist ic S coring Cek s kor pada heuristic scoring dan kondisi board

Langkah lain

Pilih langkah dengan pert ambahan skor

tertinggi

cek langkah berikutnya

(20)

Tree lapis 1 {

cek semua langkah yang mungkin

buat node untuk tiap langkah yang mungkin }

Cek available move

buat node max

Cek sel lain

ada sel lain

tidak ada s el lain

Gambar 3.3.1.12.Diagram alur Tree lapis 1

Tree lapis 2

{ untuk tiap masing-masing langkah dari tree lapis 1 jalankan langkah dari node lapis 1

cek langkah yang mungkin dari lapis 1 untuk node lapis 2 cek skor minimax

(21)

Cek available move

buat node min

Cek sel lain yang mungkin

ada sel lain

tidak ada sel lain

Cek skor minimax

Cek s el max lain

tidak ada sel lain

Ada sel max lain pilih s el max baru

Gambar 3.3.1.13. Tree Lapis 2

cekskor minimax {

hitung jumlah putih hitung jumlah hitam

hitung jumlah sel yang terisi

skor jumlah yang dimainkan: sel terisi }

(22)

Cek s el

W arna

Hitam+1

Putih+1 Semua sel sudah dic ek Kos ong

Sel ber ikutnya tidak ya hitam putih sudah keping yang dimainkan/semua k eping belum

Gambar 3.3.1.14. Diagram alur cekskor minimax

minimize {

tunjuk sel

selama tidak menunjuk sel awal

cek sel berikutnya jika lebih kecil maka buang sel sebelumnya jika lebih besar buang sel tersebut

(23)

T unjul s el

J ika s el berik ut nya lebih

k ec il

Tunjuk s el yang lebih k ec il

Delet e s el sebelumnya

Sel masih ada?

Pilih s el yang t ers is ia delete s el yang

dic ek

Gambar 3.3.1.15.Diagram alur M inimize

maximize {

tunjuk sel

selama tidak menunjuk sel awal

cek sel berikutnya jika lebih besar maka buang sel sebelumnya jika lebih kecil buang sel tersebut

pilih sel yang tersisa }

(24)

Tunjul s el

Jika s el berikut nya lebih

besar

T unjuk sel yang lebih besar Delete sel sebelumnya S el masih ada? ya ya Pilih s el yang t ersisa tidak Delete sel yang

dicek tidak

Gambar 3.3.1.16.Diagram alur M aximize

minimax {

tree lapisan 1 (MAX) tree lapisan 2 (M IN)

Hitung nilai dari masing-masing node lapis 2 M inimize

M aximize }

(25)

Buat Tree Lapis 1

Buat tree lapis 2

Hitung skor tiap node lapis 2

Minimize

Maximize

Gambar 3.3.1.17.Diagram alur M inimax

Fuzzy M ax {

//Bagian minimax tree lapisan 1 (MAX) tree lapisan 2 (M IN)

(26)

M inimize

//Bagian Pencarian Heuristik heuristic scoring

periksa semua node yang mungkin

skor ditambah sesuai skor dalam sel Fuzzify

pilih move dengan prioritas M aster->Expert->Intermediate->Beginner }

Bu at tree lap is 1

Bu at tree lap is 2

Mini max Sco ring

Min imize

Skor ing H euristik

C ek n ode heu ristik

Fuzzi fy

C ari move ka teg ori terting gi

Pi lih move

Gambar 3.3.1.18. Diagram Alur Fuzzy M ax

Fuzzy Grader //untuk rating pemain lawan { //Bagian minimax

Hitung nilai dari masing-masing node lapis 2 M inimize

(27)

heuristic scoring

periksa semua node yang mungkin

skor ditambah sesuai skor dalam sel Fuzzify

pilih move dengan nilai tertinggi }

Buat tree lapis 1

Buat tree lapis 2

Minimax Scorin g

Minimize

Skoring Heuristik

Fuzzify

Cari move kategori tertinggi

Pilih move

Bu at tree untu k g rad ing move lawan

berikutn ya Grading available move lawan berikutn ya grading pilihan lawan

Gambar 3.3.1.19. Diagram Alur Fuzzy Grader

Fuzzy Varier {

fuzzy grader //Bagian minimax

(28)

tree lapisan 1 (MAX) tree lapisan 2 (M IN)

Hitung nilai dari masing-masing node lapis 2 M inimize

//Bagian Pencarian Heuristik heuristic scoring Fuzzify

pilih move dengan kategori yang sama dengan yang dipilih player sebelumnya }

(29)

Buat tree lapi s 1

Buat tree lapi s 2

Mi nimax Scori ng

Mi nimize

Skori ng Heuris tik

Fuzzify

Cari move kategori terti nggi

Pi lih move

Buat tree untuk gradi ng move lawan

beri kutn ya

Gradin g avail able move C ek pil ihan lawa n

dan Tidak Gil iran

pertama?

Ya

Gambar 3.3.1.20.Diagram Alur Fuzzy Varier

Fuzzify {

cek nilai heuristik cek nilai minimax pilih kategori }

(30)

Cek Nilai Heuristik

Cek Nilai Minimax

P ilih kategori

Gambar 3.3.1.21.Diagram Alur Fuzzify

play player 1 {

cek move available pilih move

serang yang dipilih }

(31)

Ada legal move?

Pilih available move

Serang tempat yang di pilih

Gi liran selesai

Gambar 3.3.1.22.Diagram alur play player 1

play player 2 {

cek move available

jika menu = 1 maka sama dengan play player 1 jika menu = 2 maka heuristik mode akan dipanggil jika menu = 3 maka minimax mode akan dipanggil jika menu = 4 maka fuzzy varier mode akan dipanggil jika menu = 5 maka fuzzy max mode akan dipanggil serang yang dipilih

(32)

Ada legal move? G iliran selesai Menu = 1 Menu = 2 Menu = 3 Menu = 4 Play player 2 Heuris tic Minimax F uz zy Max

Fuzzy Var ier ya tidak tidak tidak tidak ya ya ya ya

Gambar 3.3.1.23. Diagram alur play player 2

main {

pilih menu

draw board (persegi 8x8)

selama board belum penuh dan salah satu pemain masih punya legal move jika ada legal move play player 1

(33)

jika ada legal move play player 2 state winner } Pl ay pl ayer 1 nyatakan pemenang D raw board Pl ay pl ayer 2 Pil ih Menu Player 1 ada legal m ove Player 2 ada legal m ove 2 pemain tidak bisa play ya ya ya ya tidak tidak tidak

(34)

3.3.2. Cara Gerak Komputer 3.3.2.1. Mode Heuristik

Pada mode heuristik, komputer akan membuat gerakan tanpa melihat jalan yang diambil oleh player. Heuristik mode akan memberikan perlawanan layaknya seorang pemain yang masih pemula namun bermain dengan agresif. Karakteristik yang jelas dari mode ini adalah:

• M encari posisi pojok sebagai prioritas utama tanpa melihat jumlah keping yang didapat saat mengambil posisi

• Jika ada dua posisi pojok yang bisa diambil maka akan diambil posisi pojok yang membalikkan keping lawan lebih banyak dengan mengutamakan persegi C

• M enjauhi posisi persegi X ketika pojok terdekatnya bukan keping sendiri

• M engincar posisi persegi C ketika ada kesempatan

• Jika ada beberapa posisi yang akan memberikan hasil sama dalam sebuah giliran, maka pilihan dijatuhkan secara random di antara posisi-posisi yang memiliki nilai tertinggi.

misalkan diberikan posisi pada board sebagai berikut (pemain hitam tidak melakukan apapun):

(35)

M aka, keping putih akan diletakkan pada sel pada posisi (1,1) karena akan memberikan skor: 3000[pojok]+2000(Xbox)+4*500(Cbox) = 7000 poin.

Gambar 3.3.2.1.2. Test Board #2

Kemudian keping putih akan diletakkan pada posisi (8,3) karena akan memberikan skor: 500 (Cbox)+5*250 (sel biasa) = 1750 poin

Gambar 3.3.2.1.3. Test Board #3

Kemudian keping putih akan diletakkan pada posisi (7,5) karena akan memberikan skor: 6*250 (sel biasa) = 1500 poin

dan pada akhirnya akan mengambil posisi (8,7) karena merupakan langkah terakhir yang ada dengan skor: 5*250 (sel biasa) + (-1000) (Xbox) = 250 poin. Skor -1000 pada Xbox tersebut terjadi karena pada pojok terdekatnya (8,8) bukan berisi keping putih.

(36)

Gambar 3.3.2.1.4. Test Board #4

Dimana semua posisi legal dengan nilai positif akan memberikan nilai yang sama (2*250 = 500 poin) kecuali posisi (2,2)(2,6)(6,2) dan (6,6) yang memberikan skor (250+(-1000) = -750) maka posisi yang memiliki nilai 500 akan dipilih secara acak.

3.3.2.2. Mode Minimax

Pada mode Heuristik, komputer akan memilih posisi dengan menggunakan kemungkinan yang bisa dilakukan oleh lawan dan mencari posisi dengan berdasarkan jumlah keping. Karakteristik yang ada pada mode ini adalah:

• M encari posisi yang akan memberikan lawan kemungkinan untuk mengambil jumlah keping yang sedikit.

• Jika ada posisi yang bernilai sama maka hasilnya akan random antara posisi dengan nilai tertinggi.

(37)

M isal Posisi awal yang diberikan adalah sebagai berikut:

Gambar 3.3.2.1.5. Test Board #5 Posisi M inimax 1

M aka ada 8 langkah yang mungkin yaitu

1. legalmove #1: Posisi (6,2) sehingga board menjadi: sehingga board menjadi berbentuk:

dan memungkinkan 8 legal move lain yaitu:

(38)

Nilai: 5/15 6/15 5/15

Nilai: 5/15 6/15

Sehingga nilai yang akan didapat oleh legal move #1 = 5/15

2. legalmove #2: Posisi (7,2) sehingga board menjadi: sehingga board menjadi berbentuk:

(39)

Nilai: 6/15 5/15 6/15

Nilai: 4/15 7/15 7/15

Nilai: 6/15 6/15 7/15

Sehingga nilai yang akan didapat oleh legal move #2 = 4/15

3. legalmove #3: Posisi (3,3) sehingga board menjadi: sehingga board menjadi berbentuk:

(40)

dan memungkinkan 8 legal move lain yaitu:

Nilai: 4/15 5/15 4/15

(41)

Nilai: 3/15 5/15

Sehingga nilai yang akan didapat oleh legal move #3 = 4/15

4. legalmove #4: Posisi (7,3) sehingga board menjadi: sehingga board menjadi berbentuk:

dan memungkinkan 11 legal move lain yaitu:

(42)

Nilai: 5/15 5/15 5/15

Nilai: 5/15 4/15 4/15

Nilai: 4/15 5/15

Sehingga nilai yang akan didapat oleh legal move #4 = 4/15

5. legalmove #5: Posisi (6,6) sehingga board menjadi: sehingga board menjadi berbentuk:

(43)

dan memungkinkan 9 legal move lain yaitu:

Nilai: 5/15 4/15 4/15

(44)

Nilai: 5/15 5/15 4/15 Sehingga nilai yang akan didapat oleh legal move #5 = 3/15

6. legalmove #6: Posisi (3,7) sehingga board menjadi: sehingga board mmenjadi berbentuk:

dan memungkinkan 11 legal move lain yaitu:

(45)

Nilai: 3/15 6/15 5/15

Nilai: 6/15 5/15 4/15

Nilai: 5/15

Sehingga nilai yang akan didapat oleh legal move #6 = 3/15

7. legalmove #7: Posisi (4,7) sehingga board menjadi: sehingga board menjadi berbentuk:

(46)

dan memungkinkan 9 legal move lain yaitu:

Nilai: 5/15 5/15 5/15

(47)

Nilai: 4/15 5/15 3/15 Sehingga nilai yang akan didapat oleh legal move #7 = 3/15

8. legalmove #8: Posisi (5,7) sehingga board menjadi: sehingga board menjadi berbentuk:

dan memungkinkan 7 legal move lain yaitu:

(48)

Nilai: 6/15 4/15 4/15

Nilai: 3/15

Sehingga nilai yang akan didapat oleh legal move #8 = 3/15

9. legalmove #9: Posisi (6,7) sehingga board menjadi: sehingga board menjadi berbentuk:

(49)

Nilai: 6/15 6/15 6/15

Nilai: 4/15 6/15 6/15

Nilai: 4/15 6/15 515

Sehingga nilai yang akan didapat oleh legal move #9 = 4/15

Dilihat dari kesembilan legal move yang ada, maka pilihan akan dijatuhkan pada legal move #1 karena memiliki nilai tertinggi yaitu 5/15.

(50)

maka langkah yang akan diambil akan random , karena semuanya akan memberikan nilai yang sama yaitu 10(putih)/15(putih+hitam) = 2/3 dan keping hitam tidak bisa membuat move.

3.3.2.3. Mode Fuzzy Max dan Fuzzy Varier

M ode Fuzzy terbagi menjadi dua tipe yaitu tipe M ax dan tipe Variatif. Namun keduanya menggunakan tabel fuzivikasi yang sama yaitu sebagai berikut:

Tabel 3.3.2.3.1. Tabel Fuzifikasi

M inimax\Heuristic Low M id High

Few Beginner Intermediate Expert

M any Beginner Intermediate M aster

Lot Beginner Expert M aster

nilai [M inimax] pada tabel merupakan perbandingan antara keping yang dimainkan dengan total keping yang ada pada papan permainan. Sedangkan nilai [heuristik] pada tabel merupakan selisih jumlah skor yang akan didapat setelah memilih dengan jumlah skor sebelum memilih. Kedua ini akan dijadikan acuan pada perfect play dari mode Fuzzy M ax.

(51)

Grafik Fuzzy:

Gambar 3.3.2.3.1. Grafik keanggotaan tingkatan Heuristik Fungsinya keanggotaan:

1; heuristik<0

μlow[heuristik] = (1500-heuristik)/1500; 0<=heuristik<=1500

0; 1500<heuristik

0; heuristik<1000 atau 4000<Heuristik

μmed[heuristik]= (heuristik-1000)/1000; 1000<=heuristik<=2000 (4000-heuristik)/2000; 2000<=heuristik<=4000

μhigh[heuristik]= (heuristik-3500)/1500; 3500<=heuristik<=5000

(52)

Grafik keanggotaan tingkatan M inimax:

Gambar 3.3.2.3.2. Grafik keanggotaan tingkatan M inimax

μlow[minmax] = 0.5-minmax; 0<=M inmax<=0.5

0; 0.5<M inmax

0; M inmax<0.25 atau 0.75<M inmax

μmed[M inmax]= (0.5-M inmax)/0.25; 0.25<=M inmax<=0.5 (0.75-M inmax)/0.25; 0.5<=M inmax<=0.75

μhigh[M inmax]= 0 M inmax<=0.5 (M inmax-0.5)/0.5; 0.5<=M inmax

(53)

Grafik keanggotaan Kategori Skill:

Gambar 3.3.2.3.3. Grafik keanggotaan tingkatan Skill Fungsi keanggotaan kategori skill:

Skill = M in(μHeuristic, μM inimax)

μBeginer(Skill) = (0.4-Skill)/0.4; 0<=Skill<=0.4

0; 0.4<=Skill

0; Skill<=0.25 atau 0.6<=Skill

μIntermediate(Skill) = (Skill-0.4)/0.15 0.4<=Skill<=0.4 (0.6-Skill)/0.2 0.4<=Skill<=0.6

0; Skill<=0.4 atau 0.8<=Skill

μExpert(Skill) = (Skill-0.4)/0.2 0.25<=Skill<=0.4 (0.6-Skill)/0.2 0.4<=Skill<=0.6

μM aster(Skill) = 0; Skill<=0.6

(54)

Dengan peraturan:

• 1. If (Heuristic Low) and (M inimax Low) then (Category Beginner)

• 2. If (Heuristic Low) and (M inimax M ed) then (Category Beginner)

• 3. If (Heuristic Low) and (M inimax High) then (Category Beginner)

• 4. If (Heuristic M ed) and (M inimax Low) then (Category Intermediate)

• 5. If (Heuristic M ed) and (M inimax M ed) then (Category Intermediate)

• 6. If (Heuristic M ed) and (M inimax High) then (Category Expert)

• 7. If (Heuristic High) and (M inimax Low) then (Category Expert)

• 8. If (Heuristic High) and (M inimax M ed) then (Category M aster)

(55)

M isalkan papan permainan dalam kondisi sebagai berikut:

Gambar 3.3.2.3.4. Test Board #6 1. Legal M ove #1:

dengan nilai:3000(Pojok) +2000 (Xbox) = 5000

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

(56)

Nilai: 14/52 15/52 16/52

Nilai: 15/52 16/52

Skor yang diambil adalah 14/52 sehingga kategorinya adalah: Expert dan M aster

2. Legal M ove #2:

(57)

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

Nilai: 21/52 18/52 21/52

Nilai: 21/52 21/52 22/52

Nilai: 22/52 22/52 22/52

(58)

3. Legal M ove #3:

dengan nilai:500(Cbox)+ -1000 = -500

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

Nilai: 16/52 15/52 14/52

(59)

Nilai: 17/52 17/52

Skor yang diambil adalah 14/52 sehingga kategorinya adalah: Beginer 4. Legal M ove #4:

dengan nilai: 3*500(Cbox) + -1000(Xbox) = 500

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

(60)

Nilai: 18/52 19/52 18/52

Nilai: 19/52 19/52

Skor yang diambil adalah 16/52 sehingga kategorinya adalah: Beginner 5. Legal M ove #5:

dengan nilai: 2000(Xbox)+500(Cbox) = 2500

(61)

Nilai: 15/52 14/52 15/52

Nilai: 15/52 16/52 16/52

Nilai yang diambil adalah 14/52 sehingga kategorinya adalah: Intermediate 6. Legal M ove #6:

dengan nilai: 2000 (Xbox)+ 250 (sel biasa) = 2250

(62)

Nilai: 17/52 19/52 20/52

Nilai: 21/52 21/52 21/52

Nilai: 20/52

Nilai yang diambil adalah 17/52 sehingga kategorinya adalah: Intermediate 7. Legal M ove #7:

(63)

dengan nilai: -1000(Xbox)+7*250(sel biasa) = 750

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

Nilai: 17/52 20/52 20/52

(64)

Nilai: 20/52

Nilai yang diambil adalah 17/52 sehingga kategorinya adalah: Beginer 8. Legal M ove #8:

dengan skor: -1000 (Xbox) + 3*500 (Cbox) = 500

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

(65)

Nilai: 18/52 17/52 18/52 Skor yang diambil adalah 17/52 sehingga kategorinya adalah: Beginer

9. Legal M ove #9:

dengan nilai: 3000 (Pojok)+2000(Xbox)+3*500(Cbox) = 6500

Yang memungkinkan player berikutnya untuk mengambil langkah sebagai berikut:

(66)

Nilai: 19/52 18/52 19/52

Nilai: 19/52

Nilai yang diambil adalah 17/52 karena kategorinya adalah: Expert dan M aster

Dilihat dari sembilan langkah di atas, maka ada dua langkah (yaitu #1 dan #9) yang kategori memiliki kategori tertinggi (Ekspert dan M aster). Kedua langkah ini akan dipilih secara acak untuk kemudian digunakan sebagai langkah dalam Fuzzy M ax.

Sedangkan untuk Fuzzy Varier, Langkah yang akan diambil oleh lawan akan menjadi tolok ukur langkah mana yang akan diambil pada langkah selanjutnya. M ode ini akan mengkategorikan langkah yang diambil sebelumnya dengan metode fuzifikasi yang sama dengan Fuzzy M ax, dan menyeleksi langkah dengan kategori yang sama dengan move pemain sebelumnya kemudian memilihnya secara acak. Jika tidak ada langkah yang sesuai dengan kategori player sebelumnya, maka langkah yang diambil akan dipilih secara acak dari semua langkah yang ada.

Gambar

Gambar 3.3.1.1.Diagram alur modul Cek available move
Gambar 3.3.1.2.Diagram alur Cek atas
Gambar 3.3.1.4.Diagram alur cek kanan
Gambar 3.3.1.5.Diagram alur cek kiri
+7

Referensi

Dokumen terkait

(3) Sub Seksi Kesehatan Anak mempunyai tugas mengumpulkan bahan penyelenggaraan usaha pemeriksaan dan pembinaan Kesehatan anak melalui Rumah Sakit, Puskesmas

Dari hasil perhitungan di atas, diberikan beberapa alternatif yang dapat dipilih untuk memodifikasi ulang daya tersedia sehingga dengan modifikasi tersebut, diharapkan biaya

didik yang diajar dengan menggunakan pendekatan Open-Ended dibanding dengan pendekatan konvensional di kelas IV MI Ismariyyah Al-Quraniyah Rajabasa Bandar

Dari hasil penelitian diketahui bahwa guru cukup paham model evaluasi yang harus dilaksanakan pada kurikulum 2013 namun belum dapat melaksanakan secara maksimal

Oleh karena itu, langkah awal penciptaan Good Governance adalah menghubungkan sistem hukum yang sehat, baik perangkat lunaknya ( software) , perangkat kerasnya

 Persampahan meliputi produksi sampah tiap hari, sistem pengangkutan sampah, pemusnahan sampah, jenis dan letak pembuangan sampah (TPS).  Gas meliputi kebutuhan gas

Pada penelitian ini, akan dibuat sistem proteksi tanaman padi dari serangan hama wereng menggunakan gelombang ultrasonik dan penunjuk arah angin.. Metode yang

Serat yang rusak oleh asam, alkali, hipoklorit asam dan peroksida akan berwarna biru tua (ketuaan warna tergantung pada derajat kerusakan seratnya). Uji