perbandingan algoritma alpha beta dan greedy pada ... · permainan ini menggunakan algoritma...
TRANSCRIPT
PERBANDINGAN ALGORITMA ALPHA BETA DAN GREEDY
PADA PERMAINAN OTHELLO BERBASIS DESKTOP
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Damian Arif Pradana
135314047
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ALPHA BETA AND GREEDY ALGORITHM COMPARISM
ON OTHELLO-BASED DESKTOP GAME
THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree
Informatics Engineering Study Program
By:
Damian Arif Pradana
135314047
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
Hadapilah rasa pesimismu dengan selalu optimis.
Skripsi ini saya persembahkan kepada:
Yesus Kristus
Ibu Theresia Parinah, adik, dan ayahku
Keluarga komunitas
Teman-teman tercinta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
ABSTRAK
Permainan papan memiliki beberapa algoritma yang berjalan di dalamnya,
antara lain Minimax, Minimax dengan Alpha-Beta, serta Greedy. Algoritma
Alpha-Beta merupakan turunan dari algoritma Minimax dengan mengasumsikan
pada langkah algoritma ini mengembil langkah terbaik di setiap posisi serta
membuat lawan membuat kerugian maksimum, algoritma Greedy yang
mengambil solusi dengan langkah yang mendekati optimum. Perbandingan
algoritma ini dapat dilakukan dengan cara membuat kedua algoritma beradu
misalnya algoritma A melawan algoritma B. Perbandingan ini bertujuan untuk
menetahui algoritma yang paling baik digunakan dalam permainan papan
terutama dalam permainan Othello. Maka, diharapkan dengan adanya penelitian
ini, dapat diketahui algoritma mana yang baik dalam permainan Othello.
Kata Kunci : Perbandingan Algoritma, Minimax, Alpha-Beta, Greedy.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRACT
Board games have several algorithms running in them, including Minimax,
Minimax with Alpha-Beta, and Greedy. Alpha-Beta Algorithm is a derivative of
the Minimax algorithm by assuming that in the algorithm steps that take the best
steps in making a decision that makes a loss, the Greedy algorithm takes the
solution with optimal steps. This comparison algorithm can be done by making
the second algorithm collide through algorithm A against algorithm B. This
comparison aims to find the best algorithm in Othello's game. Therefore, it is
expected that with this research, which algorithm can be good in Othello's game.
Keywords : Algorithm Comparison, Minimax, Alpha-Beta, Greedy.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji syukur atas Tuhan Yang Maha Esa yang telah memberikan rahmat dan
berkahNya sehingga penulis dapat menyelesaikan laporan penelitian dengan judul
“Algoritma Minimax Pada Permainan Othello Berbasis Desktop” ini dengan baik.
Tujuan dari penulisan skripsi ini guna memenuhi salah satu syarat untuk
menempuh sarjana komputer pada Fakultas Sains dan Teknologi (FST) Program
Studi Teknik Informatika. Dalam penulisan skripsi ini tentunya tidak lepas dari
hambatan dan kesulitan, namun berkat bimbingan, bantuan, nasihat dan saran
serta kerjasama dari berbagai pihak, segala hambatan tersebut akhirnya dapat
diatasi.
Dalam kesempatan ini, penulis juga berterima kasih atas dukungannya yaitu
kepada :
1. Tuhan Yang Maha Esa, karena diberikan rahmat dan berkahnya dalam
pengerjaan skripsi ini.
2. Bapak Alb. Agung Hadhiatma, M.T., selaku dosen pembimbing skripsi
pertama, dan Ibu Anastasia Rita sebagai dosen pembimbing selanjutnya
yang mendampingi penulis selama pengerjaan skripsi ini.
3. Teman-teman dari Komunitas Sakura Blossom Sanata Dharma (Ara,
Fina, Ani, Ume, Niar) yang memberikan dukungan dan hiburan selama
pengerjaan skripsi ini.
4. Teman-teman dari ‘Dermaga’ (Yanuar Rizki, Gayuh, Aat, Dhalin, Liza)
yang memberikan tempat serta dukungan bagi penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN JUDUL ...................................................................................... i
TITLE PAGE .................................................................................................. ii
HALAMAN PERSETUJUAN ...................................................................... iii
HALAMAN PENGESAHAN SKRIPSI ....................................................... iv
HALAMAN PERSEMBAHAN .................................................................... v
PERNYATAAN KEASLIAN KARYA ........................................................ vi
ABSTRAK ...................................................................................................... vii
ABSTRACT ..................................................................................................... viii
PERSETUJUAN PUBLIKASI KARYA ILMIAH .................................... ix
KATA PENGANTAR .................................................................................... x
DAFTAR ISI ................................................................................................... xii
1. BAB I PENDAHULUAN ..................................................................... 1
1.1. Latar Belakang ............................................................................ 1
1.2. Rumusan Masalah ....................................................................... 2
1.3. Tujuan ......................................................................................... 3
1.4. Batasan Masalah ......................................................................... 3
1.5. Sistematika Penulisan ................................................................. 3
2. BAB II TINJAUAN PUSTAKA .............................................................. 5
2.1. Landasan Teori ............................................................................ 5
2.1.1. Game ................................................................................ 5
2.1.2. Aplikasi Desktop ............................................................... 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.1.3. Java .................................................................................... 7
2.1.4. Netbeans ............................................................................ 8
2.1.5. Teori Graf .......................................................................... 9
2.1.6. Depth-First Search (DFS) ................................................. 10
2.2. Othello .......................................................................................... 11
2.2.1. Peraturan Othello ............................................................... 12
2.2.2. Tujuan Permainan dan Penilaian ....................................... 14
2.2.3. Posisi dan Stabilitas ........................................................... 15
2.2.4. Evaluasi Posisi Othello ...................................................... 16
2.3. Algoritma yang Digunakan ........................................................ 18
2.3.1. Algoritma Minimax ........................................................... 18
2.3.1.1. Alpha-Beta Pruning ............................................. 23
2.3.2. Algoritma Greedy .............................................................. 25
2.4. Kompleksitas Algoritma ............................................................. 27
3. BAB III PERANCANGAN DAN DESAIN ............................................ 29
3.1. Kebutuhan Sistem ....................................................................... 29
3.1.1. Perangkat Keras ................................................................. 29
3.1.2. Perangkat Lunak ................................................................ 29
3.1.3. Data ................................................................................... 29
3.2.Perancangan Proses .................................................................... 31
3.2.1. Diagram dan Skenario Use Case ...................................... 31
3.2.2. Diagram alur (Flowchart) ................................................. 33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
3.3. Desain Antarmuka ...................................................................... 42
3.3.1. Menu ‘Single Play’ ........................................................... 42
3.3.2. Menu ‘AI vs. AI’ .............................................................. 43
4. BAB IV IMPLEMENTASI DAN ANALISIS HASIL .......................... 44
4.1. Implementasi Antarmuka Pemakai ........................................... 44
4.1.1. Implementasi Antarmuka Menu ‘Single Play’ .................. 45
4.1.2. Implementasi Antarmuka Menu ‘AI vs. AI’ ..................... 46
4.2. Implementasi Algoritma pada Sistem ....................................... 47
4.2.1. Algoritma Alpha-Beta Pruning ......................................... 47
4.2.2. Algoritma Greedy .............................................................. 48
4.3. Hasil Uji Algoritma ..................................................................... 49
4.3.1. Algoritma Alpha-Beta dengan Greedy .............................. 49
4.3.2. Perbandingan Skor dan Grafik Waktu ............................... 51
5. BAB V KESIMPULAN DAN SARAN ................................................... 87
5.1.Kesimpulan .................................................................................. 87
5.2.Saran ............................................................................................ 88
DAFTAR PUSTAKA ..................................................................................... 89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Game telah menjadi suatu hal yang ada di dalam keseharian kita, bahkan
menjadi bagian dari gaya hidup manusia. Dulu, game hanya dijadikan sarana
hiburan semata namun sekarang game telah menjadi luas fungsinya, misalnya
game dijadikan sarana pembelajaran, lahan bisnis, dan dipertandingkan sebagai
salah satu dari cabang olahraga oleh para profesional, yang sekarang
dinamakan e-sports. Perkembangan game juga dapat dilihat secara langsung
oleh masyarakat, pada mulanya game hanya dapat dimainkan di komputer dan
console tetapi sekarang sudah memasuki era mobile game.
Dalam hal ini, penulis tidak akan membahas mengenai mobile game,
namun mengenai algoritma yang digunakan untuk mengiplementasikan game
berbasis desktop dalam suatu Personal Computer (PC). Seperti yang kita
ketahui bahwa aplikasi berbasis Desktop (Desktop Application) adalah suatu
aplikasi yang dapat berjalan tanpa adanya koneksi internet. Selain itu kelebihan
dari Desktop Application adalah pada bagian pengaturannya yang lebih mudah
dimodifikasi, serta prosesnya lebih cepat dibanding dengan aplikasi yang
membutuhkan koneksi internet, terutama untuk aplikasi game online.
Namun perlu diketahui bahwa game yang berbasis Desktop juga butuh
perancangan serta pemrograman untuk menjalankannya sehingga game dapat
berfungsi sebagaimana mestinya. Serta sistem kerja dalam suatu game untuk
memecahkan suatu masalah juga dibutuhkan, yang pada umumnya disebut
algoritma. Algoritma juga dapat digunakan untuk mencapai tujuan tertentu.
Bahkan untuk game yang sederhana seperti Tetris juga membutuhkan
algoritma untuk mencapai suatu tujuan tertentu misalnya menghibur pemain
dengan game yang sederhana. Kadang-kadang suatu algoritma juga
diujicobakan dalam suatu game untuk mengetahui apakah algoritma tersebut
berfungsi dengan baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Saat ini banyak algoritma yang digunakan untuk memecahkan berbagai
masalah, salah satunya adalah memecahkan permasalahan dalam suatu
permainan papan atau board games, maka dari itu penulis ingin
membandingkan antara 2 algoritma yang nantinya diujikan dalam tugas akhir
ini, serta penulis dari skripsi ini juga ingin membuat suatu game yang cukup
terkenal dalam kalangan tertentu terutama untuk pemain yang mengetahui
permainan jenis permainan papan yaitu Othello. Algoritmanya dalam
permainan ini menggunakan algoritma Alpha-Beta dan Greedy. Penulis
mengambil kedua algoritma ini karena kedua algoritma ini paling umum
digunakan dalam permainan papan seperti Catur maupun Tic-Tac-Toe.
Permainan Othello atau Reversi merupakan permainan yang menggunakan
papan sebanyak 8 x 8 blok yang berbentuk kotak. Dalam permainan awal papan
Othello diletakkan 2 kepingan warna hitam dan 2 kepingan warna putih di atas
papan untuk menandakan mulai permainan sehingga Othello hanya dapat
dimainkan oleh 2 pemain saja.
Alasan dibuatnya tugas akhir ini adalah penulis ingin berfokus pada
algoritma yang biasa digunakan dalam permainan Othello, yaitu Alpha-Beta
dan Greedy. Kedua algoritma ini memiliki keunikannya sendiri-sendiri dalam
menentukan langkah dalam Othello, serta cara kedua algoritma ini dalam
menentukan langkah yang diambil dalam suatu permainan yang akan
dijelaskan pada bab berikutnya.
1.2. Rumusan Masalah
Dalam skripsi ini penulis merumuskan beberapa masalah yaitu sebagai
berikut:
1. Bagaimana cara merancang game Othello berbasis desktop?
2. Bagaimana perbandingan antara algoritma Alpha-Beta dan Greedy apabila
diimplementasikan dalam permainan Othello?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.3. Tujuan
Dalam skripsi ini, penulis memiliki beberapa tujuan, yaitu sebagai berikut:
1. Mengimplementasikan algoritma Alpha-Beta dan Greedy dalam game
Othello.
2. Merancang aplikasi game Othello berbasis dekstop.
3. Mengetahui perbandingan algoritma Alpha-Beta dan Greedy dalam
permainan othello.
1.4. Batasan Masalah
Dalam penelitian ini, ditentukan beberapa batasan masalah, yaitu sebagai
berikut :
1. Game menggunakan platform desktop dengan pemrograman basis java.
2. Tidak ada level permainan.
3. Penghilangan (block) pada bagian pojok-pojok (corner) papan.
1.5. Sistematika Penulisan
Sistem penulisan skripsi ini adalah sebagai berikut:
KATA PENGANTAR
DAFTAR ISI
DAFTAR TABEL
DAFTAR GAMBAR
BAB I PENDAHULUAN
Bab ini berisi latar belakang dilakukannya suatu penelitian, rumusan masalah
yang diselesaikan, tujuan serta sistematika penulisan penelitian.
BAB II TINJAUAN PUSTAKA
Bab ini menjelaskan beberapa istilah-istilah yang digunakan oleh penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB III PERANCANGAN DAN DESAIN
Bab ini akan membahas dan menjelaskan tentang perancangan implementasi
algoritma serta langkah program dalam pembuatan game ini. Selain itu juga
akan dijelaskan tentang fitur – fitur yang ada di dalam aplikasi game ini.
BAB IV IMPLEMENTASI DAN ANALISIS HASIL
Bab ini menjelaskan mengenai implementasi algoritma yang digunakan penulis
melalui permainan Othello.
BAB V KESIMPULAN DAN SARAN
Di dalam bab ini akan dibahas dan dijelaskan tentang kesimpulan yang didapat
dari hasil analisis dan perancangan aplikasi game. Selain itu akan disajikan
saran yang diharapkan dapat membantu user dalam mengembangkan aplikasi
game ini lebih lanjut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
TINJAUAN PUSTAKA
2.1. Landasan Teori
2.1.1. Game
“Game” diartikan sebagai permainan. Permainan merupakan bagian
dari bermain dan bermain juga bagian dari permainan yang keduanya
saling berhubungan. Permainan dalam hal ini merujuk pada pengertian
kelincahan intelektual (Intellectual Playability Game) yang dapat juga
diartikan sebagai area keputusan dan aksi dari pemain tersebut. Dalam
game, ada beberapa target yang ingin atau harus dicapai oleh pemain.
Game juga mempunyai peraturan untuk membatasi perilaku pemain dan
menentukan sebuah permainan itu sendiri.
Permainan adalah kegiatan yang kompleks yang didalamnya terdapat
peraturan, play dan budaya. Sebuah permainan merupakan sebuah sistem
dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi
dengan sistem dan konflik dalam permainan merupakan rekayasa atau
buatan, dalam permainan terdapat peraturan yang bertujuan untuk
membatasi perilaku pemain dan menentukan permainan. Game bertujuan
untuk menghibur, biasanya game banyak disukai oleh anak-anak hingga
orang dewasa (Tim Pusat Bahasa DEPDIKNAS, 2008).
Permainan secara umum dapat juga diartikan sebagai aktivitas rekreasi
dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga
ringan. Permainan biasanya dapat dilakukan sendiri atau bersama-sama,
yang pada umumnya disebut multiplayer atau multi pemain.
2.1.2. Aplikasi Desktop
Aplikasi Desktop atau lebih dikenal dengan Desktop Application adalah
suatu aplikasi yang dapat berjalan sendiri atau independen tanpa
menggunakan browser maupun koneksi internet dalam suatu komputer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
dengan sistem operasi atau platform tertentu, misalnya Windows Media
Player, Winamp, Photoshop, dan lain-lain.
Aplikasi Desktop ini juga dapat mempermudah pengguna dalam
memodifikasi pengaturan dalam aplikasi sehingga dapat sesuai dengan
keinginan pengguna baik secara efektif dan efisien. Keuntungan yang
dapat diperoleh dengan membangun Aplikasi Dekstop adalah sebagai
berikut:
1. Tidak memerlukan koneksi internet.
2. Proses berjalannya aplikasi lebih cepat dibanding aplikasi yang
menggunakan koneksi internet, karena mungkin saja koneksi
internet yang berjalan lebih lambat dibanding dengan Aplikasi
Desktop.
3. Tidak bergantung pada konektivitas. Aplikasi Web bergantung pada
konektivitas, maka kemungkinan adanya gangguan koneksi akan
lebih besar semisal ada gangguan koneksi seperti Denial of Service
atau gangguan listrik.
Berikut ini adalah tahap-tahap dalam pelaksanaan pembuatan suatu
aplikasi:
1. Perencanaan, dalam proses ini terjadi pemilihan desain suatu
aplikasi hingga pembuatan dasar basis data (bila diperlukan). Tahap
ini memerlukan pengumpulan beberapa data yang akan ditampilkan
pada aplikasi yang akan direncanakan. Data yang sudah diperoleh
lalu dianalisa berdasarkan kebutuhan (cepat tidaknya perubahan
data, tingkat kerumitan penampilan, dan bagaimana data akan
ditampilkan).
2. Pembuatan, dari tahap sebelumnya akan terjadi proses desain
dengan data-data yang sudah diperoleh. Yang dilakukan dalam
proses ini adalah mengatur tata letak, proses aplikasi, dan navigasi
penyajian informasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
3. Penempatan, dari tahap ini suatu aplikasi akan diinstal ke komputer
yang bersangkutan. Apabila ada desain dan pembuatan basis data
maka akan diinstal juga ke dalam komputer server, dan selain itu
dilakukan juga uji coba kelayakan aplikasi tersebut.
4. Perawatan, tahap ini dilakukan untuk menjamin apakah aplikasi
masih layak dijalankan atau tidak, dan hal ini juga diperlukan untuk
mengatasi kerusakan-kerusakan.
2.1.3. Java
Java merupakan teknologi yang diperkenalkan oleh Sun Microsystems
pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama
untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat
lunak pada komputer stand alone ataupun pada lingkungan jaringan. Kita
lebih menyukai Java sebagai sebuah teknologi dibanding hanya sebuah
bahasa pemrograman, karena Java lebih lengkap dibanding sebuah bahasa
pemrograman konvensional. Teknologi Java memiliki tiga komponen
penting, yaitu: Programming-language specification, Application-
programming interface, Virtual-machine specification JDK (Java
Development Kit). Java Development Kit (JDK) adalah produk dari Sun
Microsystems yang ditujukan untuk pengembang Java. Sejak
diperkenalkannya Java, SDK Java yang paling banyak digunakan.
NetBeans mengacu pada kedua kerangka platform untuk aplikasi desktop
Java, dan sebuah lingkungan pengembangan terpadu (IDE) untuk
pengembangan dengan Java, JavaScript, PHP, Python, Ruby, Groovy, C,
C++, Scala, Clojure, dan lain-lain. NetBeans IDE ditulis dalam bahasa
pemrograman Java dan dapat dijalankan jika terinstal JVM, termasuk
Windows, Mac OS, Linux, dan Solaris. JDK diperlukan untuk
pengembangan fungsionalitas Java, tetapi tidak diperlukan untuk
pembangunan di bahasa pemrograman lain. Aplikasi berbasis platform
NetBeans (termasuk IDE NetBeans) dapat diperpanjang oleh pengembang
pihak ketiga.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Sintaks bahasa pemograman java merupakan pengembangan dari
bahasa pemograman C/C++, sehingga dengan mereka yang sudah terbiasa
dengan C/C++ tidak akan mengalami kesulitan mempelajari bahasa
pemograman Java. Java adalah bahasa pemograman yang sederhana dan
tangguh. Berikut ini adalah beberapa karakteristik dari Java sesuai dengan
white paper dari Sun:
1. Berorientasi objek. Java mendorong pemograman yang bebas dengan
kesalahan yang bersifat strongly typed dan memiliki run time checking.
2. Portable. Pemograman Java dapat berjalan pada sistem operasi apapun
yang memiliki Java Virtual Machine.
3. Multithreading. Java mendukung pemograman multitreading dan
terintegrasi secara langsung dalam bahasa Java.
4. Dinamis. Program Java dapat melakukan sesuatu tindakan yang
ditentukan pada saat eksekusi program dan pada saat kompilasi.
5. Sederhana. Java menggunakan bahasa yang sederhana dan mudah
dipelajari.
6. Terdistribusi. Java didesain untuk berjalan pada lingkungan yang
terdistribusi seperti halnya internet.
7. Aman. aplikasi yang dibuat dengan bahasa Java lebih dapat dijamin
keamanannya terutama untul aplikasi internet.
8. Netral secara arsitektur. Java tidak terkait pada suatu mesin atau mesin
operasi tertentu.
2.1.4. Netbeans
Netbeans merupakan software open-source yang ditujukan kepada
developer, pengguna, maupun pengusaha yang ingin mengembangkan
produk mereka, terutama untuk mengembangkan produk secara cepat,
efisien, dan mudah dengan memanfaatkan platform Java yang sesuai
dengan standar industri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2.1.5. Teori Graf
Graf merupakan himpunan atau kumpulan titik yang dihubungkan
dengan garis. Banyak persoalan yang menggunakan graf, misalnya dalam
switching network, teori coding, kimia, maupun pemetaan. Penerapan graf
adalah sebagai berikut: suatu graf G terdiri dari 2 himpunan yang
berhingga, yaitu himpunan titik-titik yang tidak kosong dengan simbol
V(G) dan himpunan garis dengan simbol E(G) yang ditulis dengan notasi
G = (V,E).
Beberapa istilah yang berkaitan dengan graf adalah sebagai berikut:
1. Derajat (Degree)
Yaitu suatu simpul pada graf tak berarah yang memiliki jumlah sisi
yang bersisian dengan simpul tersebut. Pada graf berarah, derajat
simpul v dinyatakan dengan derajat masuk (in-degree), yaitu jumlah
simpul yang masuk dalam simpul v atau disimbolkan dengan d v ,
dan derajat keluar (out-degree), yaitu jumlah simpul yang keluar dalam
simpul v atau disimbolkan dengan d v , dimana
d(v)=d v +d v .
2. Vertex atau Node
Adalah simpul atau titik
3. Edge
Biasa disebut garis dan menghubungkan kedua titik.
4. Lintasan (Path)
Adalah barisan node dan edge secara berselang-seling dimana garisnya
(edge) berbeda.
5. Siklus/Sirkuit (Cycle/Circuit)
Sebuah lintasan yang mempunyai awal dan akhir di titik yang sama.
6. Jarak (Distance)
Panjang garis antara kedua titik.
7. Graf Berbobot (Weighted Graph)
Graf yang setiap sisinya diberi nilai/bobot.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
2.1.6. Depth-First Search (DFS)
Merupakan salah satu dari algoritma traversal dalam graf. Algoritma
traversal bekerja dengan cara menelusuri simpul-simpul yang ada secara
sistematis. Berbeda dengan Breadth-First Search yang menelusuri seluruh
simpul dalam graf, DFS menelusuri simpulnya secara mendalam. Jadi
tidak semua simpul ditelusuri, hanya simpul yang menuju ke solusinya
saja.
Berikut merupakan penelusuran graf G dalam algoritma DFS:
1. Penelusuran secara traversal dimulai dari simpul x.
2. Mengunjungi simpul t yang merupakan anak dari simpul s dan
bertetangga dengan simpul u.
3. Penelusuran mendalam dimulai lagi secara rekursif dari simpul t.
4. Penelusuran mendalam dilakukan hingga mencapai simpul v, sesuai
dengan kedalaman maksimum pohon ruang status yang telah
ditentukan.
5. Penelusuran dirunut-balik ke simpul akhir yang dikunjungi sebelumnya
dan mempunyai simpul t yang belum dikunjungi.
6. Penelusuran dihentikan bila tidak ada lagi simpul yang belum
dikunjungi, yang dapat dicapai dari simpul yang telah dikunjungi.
Gambar 2.1. Graf G
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Diambil sebuah ilustrasi seperti di atas, maka urutan simpul yang
dikunjungi dengan algoritma DFS adalah : 1, 2, 4, 5, 8, 3, 6, 9, 7, 10.
2.2. Othello
Othello adalah permainan strategi game yang abstrak yang dimainkan
oleh dua orang pemain pada sebuah papan berkukuran 8 kolom dan 8 baris
dengan satu set disc berwarna berbeda pada kedua sisinya (yang biasanya
berwarna gelap dan terang). masing-masing warna pada disk tersebut
dikuasai oleh setiap pemain. Permainan ini pertama kali diciptakan di
jepang oleh Goro Hasegawa bersama dengan James R Becker pada tahun
1971 yang terinspirasi dari game China GO dengan nama Othello.
Hasegawa menginginkan suatu permainan yang kaya akan strategi namun
tetap dapat dimainkan oleh pemain umum atau pemain awam. Becker
menyebut permainan othello dengan tag “a minutes to learn, a lifetime to
master”, mudah untuk dimainkan tetapi sangat sulit untuk
menguasainya. Othello kemudian diperkenalkan kepada publik melalui
Tsukada Original Co. pada tahun 1973 yang kemudian
mengelola Japanese Othello Association.
Ada beberapa hal mendasar tentang reversi sebelum melangkah ke
strategi yang lebih dalam. Beberapa dasar-dasar dari permainan sebelum
masuk ke inti dari permainan ini ditujukan bagi yang belum pernah sama
sekali bermain reversi sebagai dasar untuk melangkah ke tahap selanjutnya
yang seharusnya dipahami dari awal sampai dengan akhir adalah sebagai
berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2.2.1. Peraturan Othello
Gambar 2.3. Awalan permainan Othello
1. Othello dimainkan oleh dua orang pemain diatas papan permainan
berukuran 8x8 yang terdiri atas 64 kotak.
2. Permainan dimulai dengan dua kepingan hitam dan dua kepingan putih
seperti pada gambar di atas.
3. Pemain hitam selalu mendapat giliran pertama dan setelah itu bermain
bergantian.
4. Pada setiap giliran, pemain menaruh kepingannya pada papan tepat
disebelah kepingan lawan pada kotak papan yang kosong sehingga
membentuk suatu garis lurus dimana pada kedua ujung garis yang
terbentuk terdapat disc pemain tersebut. Kepingan lawan berada
ditengah-tengah garis yang terbentuk.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Gambar 2.4. Langkah legal yang memenuhi kriteria untuk pemain
hitam yang diarsir warna abu-abu
5. Setiap kepingan lawan yang berada ditengah garis yang terbentuk akan
dimiliki oleh pemain tersebut.
6. Setiap kepingan yang telah diletakkan diatas papan bisa berubah warna
berkali-kali, namun tidak bisa bergeser atau dipindahkan dari papan
permainan.
7. Pemain bisa memiliki kepingan lawan lebih dari satu garis lurus pada
setiap giliran selama memenuhi kriteria pada poin 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Gambar 2.5. Giliran putih bermain memiliki kepingan lawan pada 2 garis lurus.
8. Pemain tidak boleh melewati gilirannya (Pass), kecuali tidak ada lagi
jalan yang legal.
9. Permainan berakhir jika tidak ada lagi jalan legal untuk kedua pemain
atau seluruh papan telah terisi penuh oleh kepingan .
2.2.2. Tujuan Permainan dan Penilaian
Tujuan dari permainan ini adalah memperoleh sebanyak-banyaknya
warna kepingan yang dimainkan oleh pemain tersebut. Pemain dengan
jumlah kepingan terbanyak menjadi pemenang dari permainan reversi ini.
Penilaian atau skoring adalah menghitung seluruh jumlah warna yang
didapatkan oleh setiap pemain. Seperti yang telah disebutkan diatas
tentang tujuan permainan, maka pemain dengan jumlah skor terbanyak
menjadi pemenang permainan.
Permainan akan berakhir apabila memenuhi salah satu syarat di bawah
ini:
1. Kotak pada papan penuh dengan kepingan tanpa ada ruang kosong
yang tersisa
2. Dalam papan hanya terdapat satu warna koin
3. Sudah tidak ada lagi langkah yang valid
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.6. Pemain hitam memenangkan pertandingan dengan skor
33-31.
Dalam hal ini terdapat pengecualian yaitu apabila permainan
menggunakan timer atau interval waktu tertentu, maka pemain yang
kehabisan waktunya dinyatakan kalah tidak perduli bagaimana keadaan
dan jumlah disc pada papan permainan.
2.2.3. Posisi dan Stabilitas
Begitu pentingnya posisi sudut membuat setiap pemain berusaha untuk
mendapatkannya. Setiap kepingan yang diletakkan diatas papan permainan
bisa jadi merupakan batu loncatan bagi lawan untuk memperoleh posisi
sudut membuat setiap pemain harus berhati-hati dalam menentukan
langkah nya.
Dalam Othello, ada faktor penting dalam peletakkan kepingan
berdasarkan letak blok atau kotak pada papan Othello, yang disebut
stabilitas. Stabilitas diukur dari seberapa rentannya kepingan tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
diapit oleh kepingan yang berbeda warna. Ada 3 klasifikasi stabilitas
kepingan: Stabil, semi-stabil, dan tidak stabil. Kepingan yang stabil adalah
kepingan yang tidak dapat diapit saat permainan berlangsung, kepingan
yang tidak stabil adalah kepingan yang dapat diapit oleh kepingan lain
dalam langkah selanjutnya, sementara kepingan yang semi-stabil adalah
kepingan yang berpotensi diapit oleh kepingan lain pada saat tertentu,
namun kepingan tersebut berbeda dengan kepingan tidak stabil yang
rentan diapit oleh kepingan lain.
2.2.4. Evaluasi Posisi Othello
Permainan Othello memiliki algoritma dan dalam suatu program, hal ini
merupakan bagian yang penting. Pengaruh dari evaluasi ini memang kecil
apabila algoritma yang digunakan memang sudah baik. Evaluasi ini dibagi
menjadi 3 macam dan sebagian besar algoritma untuk Othello dapat
ditempatkan pada salah satu kategori ini:
a. Disk-square tables
Ide dari evaluasi posisi ini adalah dari kotak yang berbeda memiliki
nilai yang berbeda, dalam hal ini kotak/blok papan paling pojok
memiliki nilai yang lebih tinggi daripada kotak di sebelahnya. ada 3
nilai juga untuk kotak/blok papan, yaitu kepingan hitam, kepingan
putih, dan kosong. Pendekatan tertentu akan memiliki nilai yang
berbeda untuk setiap posisi dalam tahap permainan yang berbeda,
misalnya sudut lebih penting dalam awal permainan dan saat
dimulainya pertengahan jalan permainan dibandingkan dengan
akhir permainan.
Program dengan tipe evaluasi posisi permainan ini umumnya
mudah untuk dimodifikasi sehingga banyak yang menggunakan
pendekatan evaluasi ini untuk membuat permainan Othello yang
sederhana.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
b. Mobility-based evaluation
Pendekatan ini lebih baik dibanding pendekatan sebelumnya yang
menggunakan tabel dari blok papan Othello. Kunci dari pendekatan
ini adalah pemain berusaha untuk memaksimalkan mobilitas
(jumlah kemungkinan langkah yang tersedia) dan meminimalkan
disk frontier (kepingan yang berdekatan dengan blok kosong).
Langkah atau pendekatan ini dapat berjalan dengan efisien apabila
pemrogramannya juga efisien, serta dapat meningkatkan level
kesulitan yang lebih tinggi. Kebanyakan program dengan fungsi
evaluasi berbasis mobilitas juga memiliki fungsi mengenai
konfigurasi tepi dan sudut serta berusaha untuk meminimalkan
jumlah kepingan selama awal midgame, strategi ini juga digunakan
oleh manusia.
c. Pattern-based evaluation
Seperti yang disebutkan di atas, evaluasi ini fokus pada pattern atau
pola dalam papan Othello dengan cara menggabungkan konfigurasi
tepi da sudut papan. Umumnya dengan memaksimalkan mobilitas
dan meminimalisasi kepingan yang berdekatan dengan blok kosong.
Evaluasi ini meminimalisir kepingan papan dengan cara yang sama
seperti evaluasi sebelumnya. Implementasinya dilakukan dengan
cara mengevaluasi setiap baris, kolom, diagonal dan konfigurasi
sudut secara terpisah serta menambahkan nilai dalam evaluasi
tersebut.
Proses penentuan nilai untuk semua konfigurasi harus dilakukan
secara otomatis, hal ini dilakukan dengan mengambil data
permainan yang dimainkan antara pemain kuat dan menghitung
statistik untuk setiap konfigurasi di setiap tahap permainan dari
semua kemungkinan permainan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Dalam proses penentuan nilai relatif dari konfigurasi yang berbeda,
seseorang harus memutuskan apa yang seharusnya diprediksi oleh
fungsi evaluasi. Pilihan paling umum untuk memprediksi perbedaan
kepingan akhir.
2.3. Algoritma yang Digunakan
2.3.1. Algoritma Minimax
Pencarian Minimax umumnya menggunakan depth-first search dalam
suatu pohon permainan (tree). Hal ini didukung dengan mencari ke
kedalaman pohon tertentu tergantung itu node min atau max. Algoritma ini
digunakan untuk menemukan nilai akurat untuk sebuah posisi papan.
Diasumsikan bahwa kedua pemain selalu mengambil langkah terbaik pada
setiap posisi. Algoritma ini bekerja secara rekursif dengan mencari
langkah yang membuat lawan mengalami kerugian maksimum. Ini berarti,
pada langkah yang pertama komputer menganalisa seluruh pohon
permainan dan untuk setiap langkahnya komputer akan memilih langkah
yang membat lawan mendapatkan keuntungan minimum (dalam hal ini
pemain disebut ‘max’ dalam pohon permainan, sedangkan komputer akan
bekerja sebagai ‘min’). Berikut ini merupakan pseudocode algoritma
Minimax:
1. Jika node merupakan leaf atau root maka mengembalikan nilai
heuristik dari node tersebut.
2. Jika masuk ke node tersebut, deklarasikan alpha sebagai negatif
infiniti, untuk setiap child node deklarasikan alpha sebagai max
dengan node child dan kedalaman dikurangi satu dan
mengembalikan nilai alpha.
3. Jika tidak maka saat musuh bermain di node tersebut, deklarasikan
beta sebagai plus infinity, untuk setiap child node deklarasikan beta
sebagai min dengan node child dan kedalaman dikurangi satu dan
mengembalikan nilai beta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Gambar 2.7. Pseudo-code Algoritma Minimax.
Pada pohon permainan, setiap simpul melambangkan posisi papan.
Anak dari setiap simpul S merupakan posisi yang berbeda-beda yang
dihasilkan dari satu langkah S, yang dilakukan pemain yang mendapat
giliran saat S. Akar (root) dari pohon permainan ini dimulai saat
permainan dimulai, yang dalam hal ini adalah posisi awal permainan, atau
saat posisi program akan mencari langkah selanjutnya. Algoritma ini
dijalankan secara rekursif. Setiap simpul yang bukan daun merupakan
keputusan yang diambil oleh pemain yang mendapat giliran pada simpul
tersebut. Pemilihan posisi selanjutnya oleh program ditentukan dengan
langkah pemain tersebut, misalnya dalam suatu pohon yang sudah diberi
nilai, pemain (dalam hal ini dilambangkan dengan simbol persegi) harus
memilih anak dengan nilai yang besar, kemudian pemain selanjutnya
(dalam hal ini adalah komputer) harus memilih posisi yang dapat
meminimasi nilai simpulnya, lalu dengan demikian dapat ditemukan
langkah terbaik dari setiap simpul (Prabawa, 2009).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Gambar 2.8. Contoh pohon dengan nilai di tiap node.
Diasumsikan ada permainan yang melibatkan 2 pemain dan permainan
dilakukan secara bergilir. Pemain selalu memilih langkah yang terbaik di
tiap gilirannya. Pohon kemungkinan permainan akan terbentuk. Node root
merupakan node awal permainan. Setiap node mempunyai anak/child
untuk setiap posisi 1 langkah yang dilakukan oleh pemain. Pohon
terbentuk dengan kedalaman tertentu (berdasarkan komputasi atau
pemrograman). Node leaf akan menggunakan fungsi evaluasi untuk
menentukan seberapa baik atau buruk posisi/langkah tersebut. Semakin
tinggi angka yang didapat dalam langkah pemain tersebut, maka semakin
kecil pula kemungkinan terburuk yang dialami pemain itu. Angka positif
bisa digunakan untuk mengetahui posisi yang sering digunakan pemain,
dan angka negatif untuk musuh agar mendapat keuntungannya.
Misalnya, disediakan sebuah langkah dalam tree dengan beberapa nilai
di node leaf dengan node berbentuk lingkaran adalah langkah dari pemain
dan kotak adalah nilai yang didapat oleh langkah musuh.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 2.9. Contoh pengaplikasian algoritma Minimax pada pohon
bagian awal.
Pada bagian node lingkaran di atas node leaf diberi nilai dengan asumsi
kedua pemain memilih langkah terbaik, maka dalam node tersebut akan
bernilai maksimum. Misalnya kita ambil pada bagian paling kiri akan ada
pilihan node yang bernilai -8 dan node yang bernilai 12. Pemain memilih
langkah yang terbaik sehingga dia mengambil node yang bernilai 12, dan
nilai 12 ini mengisi node lingkaran tersebut.
Gambar 2.10. Contoh pengaplikasian algoritma Minimax pada pohon
setelah pemain mengambil langkah terbaik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Node di tingkat berikutnya merupakan node kotak sebagai langkah
musuh. Pemain musuh juga mempunyai pilihan dengan asumsi
menggunakan langkah terbaik, maka musuh akan menelusuri node dengan
nilai minimum. Contohnya di node paling kiri akan diberikan pilihan node
dengan nilai 12 dan 5. Pilihan terbaik adalah dengan node 5 (minimum),
jadi diasumsikan musuh akan mengambil node tersebut. Otomatis node
yang terisi adalah 5, dan secara lengkap digambarkan sebagai berikut.
Gambar 2.11. Contoh pengaplikasian algoritma Minimax pada pohon
dalam mode minimum.
Node selanjutnya adalah bagian node root, node ini adalah node untuk
langkah awal bagi pemain. Tersedia 2 node dengan 2 nilai dari hasil
langkah sebelumnya yaitu 5, 17. Diasumsikan pemain memilih langkah
terbaik, maka dipilihlah node dengan nilai 17. Pemain akan melangkah ke
pilihan berdasar node child maksimum (sebelah kanan) yang dilanjutkan
degan langkah milik lawan. Algoritma ini meminimalisir dan
memaksimalkan nilai di tingkat tertentu tergantung pada tree sehingga
dinamakan algoritma Minimax.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Gambar 2.12. Hasil akhir dari pohon algoritma Minimax.
2.3.1.1.Alpha-Beta Pruning
Alpha-Beta Prunning adalah sebuah algoritma yang sistemnya adalah
dengan cara mengurangi jumlah simpul yang dieksplorasi dalam algoritma
minimax. Dengan algoritma tersebut, waktu yang diperlukan dalam
pencarian akan berkurang dengan membatasi waktu yang terbuang untuk
mengevaluasi pohon permainan. Implementasi algoritma ini akan
memberikan jalur terbaik dalam setiap kemungkinan permainan dalam
pohon permainan (Prabawa, 2009).
Dalam algoritma alpha-beta pruning, urutan jalannya algoritma akan
dimulai sama seperti algoritma minimax. Nilai yang dihitung dimulai
dengan positif infiniti (+∞) dan akan menurun seiring jalannya permainan.
Untuk simpul Max, nilai dihitung dari negatif infiniti (-∞) dan akan naik
seiring berjalannya permainan. Efisiensi algoritma ini bergantung pada
simpul berikutnya dari simpul yang sudah dijelajahi. Kondisi terbaik dari
alpha-beta adalah algoritma ini akan membuka jalan ke node yang sama
dengan minimax dalam pohon permainan, dengan dua kali lipat tingkat
kedalaman pohon.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 2.13. Pseudo-code Algoritma Alpha-Beta Pruning (Anggraeni,
2013).
Untuk menggambarkan proses dari pencarian Alpha-beta
ditunjukkan pada gambar berikut:
Gambar 2.14. Pohon pencarian dengan Alpha-Beta Pruning (Anggraeni,
2013).
1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada
level 2 masukkan nilai 5, hampiri 8, karena 8>5 maka ganti parent
dengan 8, hampiri 3.
2. Setelah ketiga leaf pertama terhampiri, naik lebih tinggi lagi ke
level 1 masukkan nilai 8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
3. Hampiri node keempat pada leaf dengan nilai 9, naik ke parent
pada level 2 masukkan nilai 9. Jika kita menghampiri leaf
berikutnya, kita mencari yang lebih tinggi dari 9, sementara pada
level 1 kita mencari yang lebih kecil dari 8, maka leaf 3 dan 1 kita
potong (tidak kita hampiri).
4. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas
adalah seperti gambar 2.11.
Gambar 2.15. Pohon pencarian dengan Alpha-Beta Pruning
(Anggraeni, 2013).
2.3.2. Algoritma Greedy
Algoritma greedy merupakan jenis algoritma yang menggunakan
penyelesaian masalah dengan mencari nilai maksimum sementara pada
setiap langkahnya. Nilai maksimum sementara ini dikenal dengan istilah
local maximum. Pada kebanyakan kasus, algoritma ini tidak akan
menghasilkan solusi paling optimal, namun algoritma ini memberikan
solusi yang mendekati nilai optimum dalam waktu yang cukup cepat.
Sesuai dengan namanya, yang artinya merupakan rakus atau tamak,
algoritma ini menerapkan prinsip ‘ambil yang bisa kau dapat sekarang’
yag artinya algoritma tersebut mengambil pilihan terbaik yang dapat
diperoleh saat itu tanpa memperhatikan konsekuensi ke depan. Greedy
membentuk solusi langkah per langkah, dan pada setiap langkah, terdapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap
langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan.
Sebagai contoh mudah dalam mempelajari algoritma ini adalah kasus
memasukan barang ke dalam ransel. Misal ada sebuah ransel yang dapat
memuat barang seberat 20 kilogram, dan ada 3 barang yang akan
dimasukkan dalam ransel tersebut, barang A seberat 15 kilogram, barang B
dan C seberat 10 kilogram. Normalnya orang akan memilih untuk
memasukkan barang B dan C yang masing-masing seberat 10 kilogram
karena totalnya sama dengan muatan ransel yaitu sebanyak 20 kilogram,
namun dalam algoritma Greedy ini menggunakan cara pemecahan masalah
dengan cara memasukkan barang terberat terlebih dahulu ke dalam ransel.
Dalam hal ini, ia akan memilih berat 15 kg terlebih dahulu tanpa
mempertimbangkan barang yang lain.
Persoalan optimasi algoritma greedy disusun oleh elemen-elemen
berikut:
1. Himpunan kandidat, berisi elemen pembentuk solusi.
2. Himpunan solusi, berisi kandidat-kandidat yang terpilih sebagai
solusi persoalan.
3. Fungsi seleksi, dinyatakan dengan predikat seleksi memilih
kandidat yang paling memungkinkan mencapai solusi optimal
pada setiap langkah.
4. Fungsi kelayakan, dinyatakan dengan predikat layak dengan
memeriksa apakah kandidat yang dipilih dapat memberikan solusi
yang layak dengan tidak melanggar constrains yang ada.
5. Fungsi objektif, yang memaksimalkan atau meminimalkan nilai
solusi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Gambar 2.16. Pseudo-code Algoritma Greedy.
Dalam hal ini S yang terdiri dari himpunan kandidat yang berisi
elemen pembentuk solusi, saat himpunan kandidat itu tidak kosong maka
himpunan tersebut akan diseleksi dan menghapus nilai kandidat dan
mengembalikan nilai, jika solusi tersebut layak maka solusi tersebut tidak
melanggar constraint yang ada dan mengembalikan nilai solusi.
2.4. Kompleksitas Algoritma
Kompleksitas yang ada dalam dua algoritma yang ada dalam skripsi
ini dijelaskan sebagai berikut:
1. Algoritma Alpha-Beta
O( ) merupakan kompleksitas waktu terbaik untuk algoritma
Alpha-Beta. Dengan rata-rata konstan faktor branching b, dan
dengan kedalaman pencarian sebanyak d tingkat, nilai maksimum
dari posisi node leaf yang sudah dievaluasi adalah O(bb...*b)=
O( ) – sama seperti algoritma pencarian minimax, jika langkah
pencarian merupakan pencarian optimal (yang artinya algoritma
menggunakan langkah terbaik), posisi jumlah node yang
dievaluasi adalah O(b*1*b*1*...*b) untuk kedalaman sementara
dan O(b*1*b*1*...*1) untuk kedalaman yang paling dalam, atau
O( ). Dalam kasus selanjutnya, saat tingkatan pencarian makin
dalam, efektivitas faktor percabangan akan berkurang ke akar
kuadratnya atau setara, pencarian dapat dilakukan dua kali lebih
dalam dengan jumlah komputasi yang sama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Penjelasan dari b*1*b*1*... adalah langkah pemain pertama yang
ditelusuri agar mendapat yang terbaik, tapi untuk satu sama lain,
hanya langkah pemain kedua yang terbaik diperlukan untuk
mengakali penelusuran tersebut, namun dalam hal ini alpha-beta
memastikan pergerakan pemain kedua yang perlu
dipertimbangkan.
2. Algoritma Greedy
Bicara mengenai algoritma Greedy, algoritma ini lebih
menekankan pada kebenaran algoritmanya dibanding dengan
kompleksitasnya. Algoritma dengan output n yang secara individu
memiliki nilai yang terbaik, ada beberapa penyelesaian
kompleksitas algoritma Greedy, namun yang akan digunakan
adalah O(n), karena nantinya algoritma ini akan mencari nilai
tertinggi terlebih dahulu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
BAB III
PERANCANGAN DAN DESAIN
Dalam bab ini penulisan Tugas Akhir ini dibagi dalam beberapa sub bab.
Pertama adalah kebutuhan sistem yang berisi tentang kebutuhan perangkat keras
maupun perangkat lunak yang digunakan. Kedua adalah data yang dipakai dalam
implementasi algoritma ke dalam game.
3.1.Kebutuhan Sistem
Dalam penelitian ini penulis menggunakan spesifikasi perangkat keras
dan perangkat lunak sebagai berikut:
3.1.1. Perangkat Keras
Perangkat keras yang dibutuhkan dalam proses implementasi algoritma
untuk game adalah sebagai berikut:
• Laptop : Processor minimum Intel Celeron, RAM minimum 1 GB,
penyimpanan berukuran 512 MB, keyboard dan mouse.
3.1.2. Perangkat Lunak
Untuk perangkat lunak yang digunakan terutama untuk proses
implementasi algoritma ke dalam game menggunakan sistem operasi
Windows 7. Sedangkan untuk membangun aplikasi game yang berbasis
desktop akan menggunakan aplikasi Netbeans, serta untuk bahasa
pemrogramannya menggunakan Java.
3.1.3. Data
Pada penelitian ini akan menggunakan data berupa koordinat dari papan
yang telah diletakkan kepingan Othello, serta kepingan hitam dan putih dan
jumlah kepingan yang sudah diletakkan. Kemudian untuk papan permainan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
akan dibuat seperti papan Othello pada umumnya, namun dengan papan yang
berukuran 8 x 8 blok.
Gambar 3.1. Koordinat papan Othello
Untuk objek utamanya hanya menggunakan kepingan hitam dan putih,
kemudian untuk penerapan algoritma minimax adalah saat menelusuri
kemungkinan pengguna kehilangan kepingan terbanyak. Misalnya kepingan
hitam adalah kepingan milik pemain (kita yang memainkannya) lalu kepingan
putih adalah milik lawan, dalam game disebut komputer, akan terjadi
beberapa kemungkinan yang memerlukan algoritma Minimax agar pemain
dikenakan nilai minimum.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Gambar 3.2. Keadaan permainan Othello saat ini (kiri) dan kemungkinan
komputer/pemain lawan untuk meletakkan kepingan putih yang diarsir (kanan).
3.2. Perancangan Proses
3.2.1. Diagram dan Skenario Use Case
Dalam permainan Othello ini akan dirancang use case sebagai berikut:
Gambar 3.3. Diagram use case permainan Othello
a. Nama Use Case : Memulai permainan
Aktor : Pengguna
Kondisi Awal : Aktor sudah berada di menu utama permainan
Skenario :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
‘Mulai Baru’.
2. Sistem masuk ke
permainan Othello.
b. Nama Use Case : Memilih info
Aktor : Pengguna
Kondisi Awal : Aktor sudah berada di menu utama permainan
Skenario :
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
‘Bantuan dan Info’.
2. Sistem menampilkan
bantuan dan Info
permainan Othello.
c. Nama Use Case : Keluar dari permainan
Aktor : Pengguna
Kondisi Awal : Aktor sudah berada di menu utama permainan
Skenario :
Aksi Aktor Reaksi Sistem
1. Aktor menekan tombol
X (keluar).
2. Sistem keluar dari menu
utama permainan Othello.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.2.2. Diagram Alur (Flowchart)
Gambar di bawah ini menunjukkan alur yang terjadi pada sistem.
Sistem menunjukkan peran yang terjadi serta mengecek perbandingan
algoritma dalam suatu permainan.
1. Diagram alur algoritma Greedy
Diagram alur untuk algoritma Greedy ditunjukkan dalam gambar
berikut:
Gambar 3.4. Diagram alur algoritma Greedy.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Diagram alur tersebut menggambarkan mulainya algoritma Greedy
dengan inisialisasi awal papan Othello dengan nilai awal null serta
nilai maksimum sama dengan nilai minimum, lalu dilanjutkan dengan
membuat ukuran baris dan kolom pada papan Othello. Menuju
percabangan apakah langkah pada Othello memang valid, bila iya
maka langkah tersebut masuk sebagai poin, bila tidak maka akan
mengembalikan nilai terbaik. Menuju percabangan apakah jika nilai
lebih dari nilai maksimum, jika ya maka maxScore diinisialisasikan
sebagai score tipe integer dan best dengan Point baru dan
mengembalikan nilai terbaik, jika tidak maka membuat papan baru
seperti sebelumnya dan mengembalikan nilai terbaik.
2. Diagram alur algoritma Alpha-Beta
Diagram alur untuk algoritma Alpha-Beta ditunjukkan dalam gambar
berikut:
a. Method GenerateMoves
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.5. Diagram alur method generateMoves algoritma Alpha-Beta.
Diagram alur tersebut menjelaskan mengenai inisialisasi Vector baru
dengan List yang berdasar Point, yang kemudian membuat baris dan
kolom papan Othello dan membuat bagian papan baru. Masuk ke langkah
kepingan, jika kepingan berada pada baris i dan kolom j maka akan akan
menambah titik pada pointList dan mengembalikan pointList, jika tidak
maka hanya akan mengembalikan pointList.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
b. Method minimax
Gambar 3.6. Diagram alur method minimax algoritma Alpha-Beta.
Diagram alur tersebut dijelaskan mulai dari pernyataan jika kedalaman
node kurang dari atau sama dengan 0 atau keadaan permainan sudah
selesai (Game Over) jika ya maka program tidak mengembalikan nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
apapun dan akan selesai dengan sendirinya, jika tidak maka inisialisasi
nilai saat ini dengan nilai minimum tipe integer, langkah saat ini
dengan tipe point yang berisi null, dan status generateMoves dengan
List array Point. Dilanjutkan dengan untuk setiap langkah tipe Point
buat papan sementara dengan status saat ini, kemudian buat langkah x
dan y di papan sementara tersebut dan inisialisasi moveScore tipe
double dengan nilai minimum yang berisi papan sementara, depth, dan
nilai minimum negatif infiniti. Menuju ke penyataan apakah
moveScore lebih besar dari currentScore, jika iya maka currentScore
akan disamakan dengan moveScore dan currentMove sama dengan
move dan mengembalikan currentMove, jika tidak maka hanya
mengembalikan curentMove.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
c. Method maxValue
Gambar 3.7. Diagram alur method maxValue algoritma Alpha-Beta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Dalam diagram ini menunjukkan program ini dimulai dengan
inisialisasi a1 tipe double yang bernilai negatif infiniti, kemudian
dilanjutkan dengan pernyataan bila kedalaman pencarian kurang dari
atau sama dengan 0 atau status permainan telah berakhir, bila ya maka
akan mengembalikan skor yang diperoleh dari status permainan
terakhir dan menyelesaikan program tersebut, bila tidak maka
inisialisasi bestScore tipe double dengan nilai minimum tipe integer,
dan status generateMoves dengan List array Point. Dilanjutkan dengan
untuk setiap langkah tipe Point buat papan sementara dengan status
saat ini dengan langkah kloning dan inisialisasi s tipe double dengan
nilai minimum yang berisi status langkah, kedalaman dikurang 1.
Masuk ke pernyataan apabila s lebih dari pass, jika iya maka
mengembalikan nilai infiniti, jika tidak maka pass sama dengan s.
Masuk ke pernyataan bila s lebih besar dari bestScore, jika ya maka s
menggantikan bestScore, jika tidak maka mengembalikan bestScore
dan program selesai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
d. Method minValue
Gambar 3.8. Diagram alur method minValue algoritma Alpha-Beta.
Dalam diagram ini menunjukkan program ini dimulai dengan
inisialisasi a1 tipe double yang bernilai positif infiniti, kemudian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
dilanjutkan dengan pernyataan bila kedalaman pencarian kurang dari
atau sama dengan 0 atau status permainan telah berakhir, bila ya maka
akan mengembalikan skor yang diperoleh dari status permainan
terakhir dan menyelesaikan program tersebut, bila tidak maka
inisialisasi bestScore tipe double dengan nilai maksimum tipe integer,
dan status generateMoves dengan List array Point. Dilanjutkan dengan
untuk setiap langkah tipe Point buat papan sementara dengan status
saat ini dengan langkah kloning dan inisialisasi s tipe double dengan
nilai maksimum yang berisi status langkah, kedalaman dikurang 1.
Masuk ke pernyataan apabila s lebih dari pass, jika iya maka
mengembalikan nilai ngeatif infiniti, jika tidak maka pass sama
dengan s. Masuk ke pernyataan bila s lebih besar dari bestScore, jika
ya maka s menggantikan bestScore, jika tidak maka mengembalikan
bestScore dan program selesai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.3. Desain Antarmuka
3.3.1. Menu ‘Single Play’
Gambar 3.10. Menu ‘Single Play’ permainan Othello.
Bagian atas pada desain antarmuka menunjukkan warna kepingan
milik pemain, yang dalam hal ini pemain menggunakan warna hitam, dan
dibawahnya menunjukkan jumlah kepingan milik pemain dengan jumlah
kepingan milik AI yang dihubungkan dengan tanda setrip, serta papan
Othello yang berjumlah 8 x 8 blok.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.3.2. Menu ‘AI vs AI’
Gambar 3.11. Menu ‘AI vs AI’ permainan Othello.
Bagian ini menunjukkan perbandingan algoritma yang satu dengan
yang lain pada permainan Othello.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
BAB IV
IMPLEMENTASI DAN ANALISIS HASIL
Bab ini berisi tentang hasil penelitian mengenai sistem yang telah dibuat
dari analisis serta perancangan yang dibahas pada bab-bab sebelumnya serta
analisa mengenai hasil yang telah didapatkan. Aplikasi ini dibuat dengan
perangkat lunak Netbeans IDE 8.0.2 pada laptop dengan RAM 4 GB dengan
sistem operasi Windows 7. Berikut ini adalah pembahasan pada bagian antarmuka
serta implementasi Othello dengan algoritma Alpha-Beta Pruning dan Greedy.
4.1. Implementasi Antarmuka Pemakai
Bagian ini menjelaskan mengenai implementasi dari perancangan
antarmuka pemakai (interface) yang telah di buat pada bab sebelumnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
4.1.1. Implementasi Antarmuka Menu ‘Single Play’
Gambar 4.1. Implementasi antarmuka menu ‘Single Play’.
Antarmuka ‘Single Play’ ini akan mengarah ke permainan Othello
dengan sistem pemain melawan komputer, pemain menggunakan kepingan
berwarna hitam dan dapat dilihat di gambar yang bertuliskan “Hitam mulai”
yang artinya itu adalah giliran kepingan hitam, sedangkan komputer
menggunakan kepingan berwarna putih. Bagian bawahnya merupakan skor
yang berdasarkan jumlah kepingan pemain dengan jumlah kepingan milik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
lawan, lalu ada tombol “Mulai Baru” yang mengulang permainan dari
awal serta “Keluar” yang keluar dari permainan Othello.
4.1.2. Implementasi Antarmuka Menu ‘AI vs. AI’
Gambar 4.2. Implementasi antarmuka menu ‘AI vs. AI’.
Antarmuka ‘AI vs. AI’ ini akan membandingkan algoritma yang
dipakai dalam permainan Othello, diantaranya adalah Greedy dan Alpha-
Beta Pruning yang telah dibahas di bab-bab sebelumnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
4.2. Implementasi Algoritma pada Sistem
Dalam subbab ini akan dijelaskan mengenai implementasi 3 algoritma
dalam permainan Othello, yaitu algoritma Alpha-Beta Pruning, algoritma
Greedy, dan perbandingan antara kedua algoritma berdasarkan jumlah
kepingan dalam Othello.
4.2.1. Algoritma Alpha-Beta Pruning
Dalam algoritma ini akan dijelaskan mengenai proses dalam pencarian
node yang pada dasarnya menggunakan algoritma Minimax. Berikut ini
merupakan proses jalannya algoritma Alpha-Beta Pruning: Pertama adalah
membuat papan yang berukuran 8 x 8 yang mengambil dari method Board
agar kepingan dapat melangkah.
Berikut adalah algoritma Alpha-Beta Pruning yang diimplementasikan
dalam permainan Othello:
1. Menentukan koordinat papan dengan ListPoint.
2. Untuk setiap baris j sama dengan 0 dan j kurang dari size (yang
sebelumnya size diinisialisasi sebanyak 8), dan j bertambah, maka
lakukan langkah selanjutnya.
3. Untuk setiap kolom i sama dengan 0 dan i kurang dari size (yang
sebelumnya size diinisialisasi sebanyak 8), dan j bertambah, maka
lakukan langkah selanjutnya.
4. Perbarui papan pemainan dan tambahkan posisi kepingan yang
sudah ditandai.
Masuk ke method Minimax, jika kedalaman langkah kurang dari atau
sama dengan 0 atau game over maka tidak mengembalikan nilai apapun.
Jika tidak maka lakukan langkah selanjutnya.
1. Inisialisasi jumlah kepingan yang sedang berlangsung dengan nilai
minimum untuk mencari nilai terbaik, dan menggunakan nilai tak
terhingga untuk nilai maksimum.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
2. Inisialisasi langkah current dan semua langkah yang telah
dilakukan.
3. Untuk setiap langkah yang dilakukan di tiap titik, inisialisasikan di
papan Othello dan buat langkah sementara (clone) dalam suatu
baris dan kolom papan, dan buat hasil langkah tersebut minimum.
Masuk ke method minValue dan maxValue yang dal hal ini kedua
method mengecek kedalaman langkah sampai akhir permainan yang
kemudian diberlakukan algoritma Alpha-Beta Pruning yaitu pada nilai
terbaik untuk simpul Max adalah negatif infiniti dan akan naik seiring
berjalannya permainan sedangkan untuk simpul Min adalah positif infiniti
dan akan menurun seiring berjalannya permainan.
4.2.2. Algoritma Greedy
Dalam algoritma ini akan dijelaskan mengenai proses dalam pencarian
node yang menggunakan algoritma Greedy. Berikut ini merupakan proses
jalannya algoritma:
1. Inisialisasi papan permainan yang digunakan (Othello
menggunakan papan berukuran 8x8).
2. Inisialisasi nilai maksimum merupakan nilai minimum.
3. Untuk setiap baris papan dengan nilai awal 0 dan kurang dari 8
serta kolom papan dengan nilai awal 0 dan kurang dari 8 maka
lakukan langkah selanjutnya.
4. Jika kepingan Othello dalam suatu baris dan kolom papan
merupakan langkah yang valid maka hitung jumlah kepingan yang
bewarna tertentu dalam papan tersebut dan lakukan langkah
selanjutnya.
5. Ulangi langkah ketiga sampai papan tidak ada yang kosong atau
sudah tidak ada langkah valid.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
4.3. Hasil Uji Algoritma
4.3.1. Algoritma Alpha-Beta dengan Greedy
Kondisi permainan pertama adalah algoritma Alpha-Beta
menggunakan kepingan hitam dan Greedy menggunakan kepingan putih.
Gambar 4.3. Perbandingan algoritma Alpha-Beta dengan Greedy.
Pada gambar diatas menunjukkan bahwa Greedy sebagai kepingan
putih lebih mendominasi dalam permainan Othello karena algoritma ini
lebih memilih langkah yang efektif tanpa melihat langkah yang lebih
dalam, sedangkan untuk algoritma Alpha-Beta ini memiliki langkah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
maksimum dan minimum sehingga semua papan terisi dengan jumlah
kepingan 17 banding 43.
Gambar 4.4. Perbandingan algoritma Alpha-Beta dengan Greedy.
Namun pada gambar di atas, ketika algoritma Greedy menggunakan
kepingan hitam dan algoritma Alpha-Beta menggunakan kepingan putih,
Alpha-beta lebih mendominasi dengan kepingan putihnya sehingga
Greedy tidak mempunyai langkah valid lagi, dikarenakan kepingan hitam
memulai langkah pertama dan langkah pertama dilakukan oleh algoritma
Greedy maka dalam langkahnya, Greedy mengabaikan konsekuensi yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
didapat saat melangkah sehingga Alpha-Beta benar-benar mendominasi
papan Othello.
4.3.2. Perbandingan Skor dan Grafik Waktu
Dalam bagian ini akan dijelaskan mengenai perbandingan algoritma
dengan pengujian sebanyak 50 kali. Berikut ini merupakan hasil skor yang
telah diujikan dalam permainan Othello:
1) Perbandingan algoritma Alpha-Beta Pruning sebagai kepingan hitam
dan Greedy sebagai kepingan putih
Tabel 4.1. Pengujian algoritma Alpha-Beta dengan Greedy.
Percobaan ke Alpha-Beta Pruning
(Kepingan Hitam)
Greedy (Kepingan
Putih)
1 17 43
2 17 43
3 17 43
4 17 43
5 17 43
6 17 43
7 17 43
8 17 43
9 17 43
10 17 43
11 18 42
12 18 42
13 18 42
14 18 42
15 17 43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
16 17 43
17 17 43
18 17 43
19 17 43
20 17 43
21 17 43
22 17 43
23 17 43
24 17 43
25 17 43
26 17 43
27 17 43
28 17 43
29 17 43
30 17 43
31 18 42
32 18 42
33 18 42
34 18 42
35 18 42
36 17 43
37 17 43
38 17 43
39 17 43
40 17 43
41 17 43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
42 17 43
43 17 43
44 17 43
45 17 43
46 17 43
47 17 43
48 17 43
49 17 43
50 17 43
Dalam beberapa percobaan tersebut dengan kepingan hitam yang
pertama jalan, Greedy lebih menguasai permainan dengan mengambil
daerah pojok dari papan Othello yang mempunyai pengaruh besar dalam
papan tersebut. Alpha-Beta tidak mempunyai kesempatan untuk
mengambil daerah sisi papan Othello dalam hal ini walaupun langkah
pertama sudah diambil oleh algoritma Alpha-Beta. Berikut ini merupakan
urutan langkah percobaan 1-5 yang dilakukan oleh kedua algoritma
dengan kepingan hitam yang maju pertama dalam letak papan Othello
dengan letak papan sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Gambar 4.4. Letak papan Othello.
Sedangkan untuk langkah percobaan yang dilakukan oleh kedua
kepingan adalah sebagai berikut :
Tabel 4.2. Urutan langkah percobaan pertama algoritma Alpha-Beta
dengan Greedy.
Langkah ke- Alpha-Beta Pruning
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d4 c3
2 b2 e3
3 f3 e2
4 d1 a3
5 e1 f1
6 d6 c1
7 b1 f2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
8 g3 h3
9 b2 g1
10 g2 a4
11 a5 c4
12 g4 h5
13 b5 a2
14 f5 c6
15 a6 d6
16 g6 h6
17 b7 b8
18 a7 d7
19 e7 d8
20 f7 e8
21 - f8
22 h7 g8
23 - c3
Tabel 4.3. Urutan langkah percobaan kedua algoritma Alpha-Beta dengan
Greedy.
Langkah ke- Alpha-Beta Pruning
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d4 c3
2 b2 e3
3 f3 e2
4 d1 a3
5 e1 f1
6 d6 c1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
7 b1 f2
8 g3 h3
9 b2 g1
10 g2 a4
11 a5 c4
12 g4 h5
13 b5 a2
14 f5 c6
15 a6 d6
16 g6 h6
17 b7 b8
18 a7 d7
19 e7 d8
20 f7 e8
21 - f8
22 h7 g8
23 - c3
Tabel 4.4. Urutan langkah percobaan ketiga algoritma Alpha-Beta dengan
Greedy.
Langkah ke- Alpha-Beta Pruning
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d4 c3
2 b2 e3
3 f3 e2
4 d1 a3
5 e1 f1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
6 d6 c1
7 b1 f2
8 g3 h3
9 b2 g1
10 g2 a4
11 a5 c4
12 g4 h5
13 b5 a2
14 f5 c6
15 a6 d6
16 g6 h6
17 b7 b8
18 a7 d7
19 e7 d8
20 f7 e8
21 - f8
22 h7 g8
23 - c3
Tabel 4.5. Urutan langkah percobaan keempat algoritma Alpha-Beta
dengan Greedy.
Langkah ke- Alpha-Beta Pruning
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d4 c3
2 b2 e3
3 f3 e2
4 d1 a3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
5 e1 f1
6 d6 c1
7 b1 f2
8 g3 h3
9 b2 g1
10 g2 a4
11 a5 c4
12 g4 h5
13 b5 a2
14 f5 c6
15 a6 d6
16 g6 h6
17 b7 b8
18 a7 d7
19 e7 d8
20 f7 e8
21 - f8
22 h7 g8
23 - c3
Tabel 4.6. Urutan langkah percobaan kelima algoritma Alpha-Beta dengan
Greedy.
Langkah ke- Alpha-Beta Pruning
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d4 c3
2 b2 e3
3 f3 e2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
4 d1 a3
5 e1 f1
6 d6 c1
7 b1 f2
8 g3 h3
9 b2 g1
10 g2 a4
11 a5 c4
12 g4 h5
13 b5 a2
14 f5 c6
15 a6 d6
16 g6 h6
17 b7 b8
18 a7 d7
19 e7 d8
20 f7 e8
21 - f8
22 h7 g8
23 - c3
Kesimpulan dari kelima percobaan tersebut adalah pada langkah
pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut
yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di
tiap percobaan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
2) Perbandingan algoritma Greedy sebagai kepingan hitam dan Alpha-
Beta Pruning sebagai kepingan putih
Apabila kondisi kepingan kedua algoritma dibalik, maka akan
diperoleh hasil berikut:
Tabel 4.7. Pengujian Algoritma Greedy dengan Alpha-Beta
Percobaan ke Greedy
(Kepingan Hitam)
Alpha-Beta Pruning
(Kepingan Putih)
1 0 44
2 0 44
3 0 44
4 0 44
5 0 44
6 0 44
7 0 44
8 0 44
9 0 44
10 0 44
11 0 42
12 0 42
13 0 42
14 0 42
15 0 42
16 0 42
17 0 42
18 0 42
19 0 42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
20 0 42
21 0 44
22 0 44
23 0 44
24 0 44
25 0 44
26 0 44
27 0 44
28 0 44
29 0 44
30 0 44
31 0 42
32 0 42
33 0 42
34 0 42
35 0 42
36 0 44
37 0 44
38 0 44
39 0 44
40 0 44
41 0 44
42 0 44
43 0 44
44 0 44
45 0 44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
46 0 44
47 0 44
48 0 44
49 0 44
50 0 44
Dalam percobaan ini, algoritma Greedy sempat mengambil beberapa
bagian sisi papan Othello, namun dengan penelusuran dari algoritma
Alpha-Beta, serta pengambilan keputusan di tiap node, maka kepingan
pada papan Othello dikuasai oleh kepingan putih (Alpha-Beta), sehingga
permainan dimenangkan oleh Alpha-Beta secara mutlak. Berikut ini
merupakan urutan langkah percobaan 1-5 yang dilakukan oleh kedua
algoritma dengan kepingan hitam yang maju pertama.
Tabel 4.8. Urutan langkah percobaan pertama algoritma Greedy dengan
Alpha-Beta.
Langkah ke- Greedy
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 b4
4 b2 c3
5 d4 a2
6 f4 d4
7 b4 a2
8 c1 c3
9 f1 g1
10 a4 a3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
11 e2 f2
12 f3 h2
13 a5 g4
14 c6 b6
15 b7 f5
16 b5 f1
17 - d6
18 - f7
Tabel 4.9. Urutan langkah percobaan kedua algoritma Greedy dengan
Alpha-Beta.
Langkah ke- Greedy
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 b4
4 b2 c3
5 d4 a2
6 f4 d4
7 b4 a2
8 c1 c3
9 f1 g1
10 a4 a3
11 e2 f2
12 f3 h2
13 a5 g4
14 c6 b6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
15 b7 f5
16 b5 f1
17 - d6
18 - f7
Tabel 4.10. Urutan langkah percobaan ketiga algoritma Greedy dengan
Alpha-Beta.
Langkah ke- Greedy
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 b4
4 b2 c3
5 d4 a2
6 f4 d4
7 b4 a2
8 c1 c3
9 f1 g1
10 a4 a3
11 e2 f2
12 f3 h2
13 a5 g4
14 c6 b6
15 b7 f5
16 b5 f1
17 - d6
18 - f7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Tabel 4.11. Urutan langkah percobaan keempat algoritma Greedy dengan
Alpha-Beta.
Langkah ke- Greedy
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 b4
4 b2 c3
5 d4 a2
6 f4 d4
7 b4 a2
8 c1 c3
9 f1 g1
10 a4 a3
11 e2 f2
12 f3 h2
13 a5 g4
14 c6 b6
15 b7 f5
16 b5 f1
17 - d6
18 - f7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Tabel 4.12. Urutan langkah percobaan kelima algoritma Greedy dengan
Alpha-Beta.
Langkah ke- Greedy
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 b4
4 b2 c3
5 d4 a2
6 f4 d4
7 b4 a2
8 c1 c3
9 f1 g1
10 a4 a3
11 e2 f2
12 f3 h2
13 a5 g4
14 c6 b6
15 b7 f5
16 b5 f1
17 - d6
18 - f7
Kesimpulan dari kelima percobaan tersebut adalah pada langkah
pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut
yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di
tiap percobaan dan berakhir dengan kepingan hitam yang tidak mendapat
giliran karena langkahnya tidak valid.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
3) Perbandingan algoritma Alpha-Beta Pruning sebagai kepingan hitam
dan kepingan putih
Tabel 4.13. Pengujian Algoritma Alpha-Beta dengan Alpha-Beta
Percobaan ke Alpha-Beta Pruning
(Kepingan Hitam)
Alpha-Beta Pruning
(Kepingan Putih)
1 28 32
2 28 32
3 28 32
4 28 32
5 28 32
6 28 32
7 28 32
8 28 32
9 26 34
10 26 34
11 26 34
12 26 34
13 26 34
14 28 32
15 28 32
16 28 32
17 28 32
18 28 32
19 28 32
20 28 32
21 28 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
22 28 32
23 28 32
24 28 32
25 28 32
26 28 32
27 28 32
28 28 32
29 28 32
30 28 32
31 26 34
32 26 34
33 26 34
34 26 34
35 26 34
36 28 32
37 28 32
38 28 32
39 28 32
40 28 32
41 28 32
42 28 32
43 28 32
44 28 32
45 28 32
46 28 32
47 28 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
48 28 32
49 28 32
50 28 32
Dalam tabel tersebut ditunjukkan perbandingan algoritma Alpha-Beta
dengan memakai kedua kepingan hitam dan putih. Mulai dengan kepingan
hitam dengan algoritma Alpha-Beta Pruning hingga akhir permainan
dimenangkan oleh kepingan putih. Berikut ini merupakan grafik waktu
yang dibutuhkan oleh Alpha-Beta saat eksekusi perbandingan algoritma.
Gambar 4.5. Grafik waktu jalannya algoritma Alpha-Beta dalam Othello.
Grafik ini menunjukkan waktu yang dikerjakan kedua algoritma yang
dalam hal ini sama-sama algoritma Alpha-Beta Pruning, karena kepingan
hitam maju pertama maka dia tidak terlalu banyak memakan waktu dalam
mengambil keputusan, sedangkan pada kepingan putih memakan banyak
waktu karena percabangan pilihan yang mulai banyak, kemudian disusul
dengan kepingan hitam yang lama-lama juga memerlukan waktu yang
banyak untuk menelusuri cabang dalam Othello hingga pada hasil akhir
0
20
40
60
80
100
120
2 3 4 5 6 7 8 9 10
Wa
ktu
(m
s)
Kedalaman
Kepingan Hitam
Kepingan Putih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
papan karena daerah kosong yang tinggal sedikit, maka penelusurannya
juga memakan waktu yang cukup singkat, berikut ini merupakan salah satu
hasil eksekusi algoritma Alpha-Beta yang diimplementasikan dalam kedua
kepingan dalam papan Othello.
Gambar 4.6. Perbandingan algoritma Alpha-Beta dalam Othello.
Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan
oleh kedua algoritma dengan kepingan hitam yang maju pertama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Tabel 4.14. Urutan langkah percobaan pertama algoritma Alpha-Beta
dengan Alpha-Beta.
Langkah ke- Alpha-Beta
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 b3 b2
3 b1 d2
4 d1 e1
5 f1 c3
6 b4 c1
7 f5 g1
8 c2 e3
9 a2 a5
10 e2 c5
11 g2 f3
12 g3 h2
13 a4 f3
14 b4 b5
15 f5 g4
16 h4 g5
17 a6 c6
18 b6 e6
19 d6 f6
20 g6 a7
21 b7 h6
22 d7 g7
23 h7 -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
24 c8 d8
25 e8 f8
26 g8 -
Tabel 4.15. Urutan langkah percobaan kedua algoritma Alpha-Beta dengan
Alpha-Beta.
Langkah ke- Alpha-Beta
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 b3 b2
3 b1 d2
4 d1 e1
5 f1 c3
6 b4 c1
7 f5 g1
8 c2 e3
9 a2 a5
10 e2 c5
11 g2 f3
12 g3 h2
13 a4 f3
14 b4 b5
15 f5 g4
16 h4 g5
17 a6 c6
18 b6 e6
19 d6 f6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
20 g6 a7
21 b7 h6
22 d7 g7
23 h7 -
24 c8 d8
25 e8 f8
26 g8 -
Tabel 4.16. Urutan langkah percobaan ketiga algoritma Alpha-Beta dengan
Alpha-Beta.
Langkah ke- Alpha-Beta
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 b3 b2
3 b1 d2
4 d1 e1
5 f1 c3
6 b4 c1
7 f5 g1
8 c2 e3
9 a2 a5
10 e2 c5
11 g2 f3
12 g3 h2
13 a4 f3
14 b4 b5
15 f5 g4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
16 h4 g5
17 a6 c6
18 b6 e6
19 d6 f6
20 g6 a7
21 b7 h6
22 d7 g7
23 h7 -
24 c8 d8
25 e8 f8
26 g8 -
Tabel 4.17. Urutan langkah percobaan keempat algoritma Alpha-Beta
dengan Alpha-Beta.
Langkah ke- Alpha-Beta
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 b3 b2
3 b1 d2
4 d1 e1
5 f1 c3
6 b4 c1
7 f5 g1
8 c2 e3
9 a2 a5
10 e2 c5
11 g2 f3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
12 g3 h2
13 a4 f3
14 b4 b5
15 f5 g4
16 h4 g5
17 a6 c6
18 b6 e6
19 d6 f6
20 g6 a7
21 b7 h6
22 d7 g7
23 h7 -
24 c8 d8
25 e8 f8
26 g8 -
Tabel 4.18. Urutan langkah percobaan kelima algoritma Alpha-Beta
dengan Alpha-Beta.
Langkah ke- Alpha-Beta
(Kepingan Hitam)
Alpha-Beta
(Kepingan Putih)
1 d3 c3
2 b3 b2
3 b1 d2
4 d1 e1
5 f1 c3
6 b4 c1
7 f5 g1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
8 c2 e3
9 a2 a5
10 e2 c5
11 g2 f3
12 g3 h2
13 a4 f3
14 b4 b5
15 f5 g4
16 h4 g5
17 a6 c6
18 b6 e6
19 d6 f6
20 g6 a7
21 b7 h6
22 d7 g7
23 h7 -
24 c8 d8
25 e8 f8
26 g8 -
Kesimpulan dari kelima percobaan tersebut adalah pada langkah
pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut
yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di
tiap percobaan dan ada beberapa langkah yang tidak valid atau tidak bisa
dijalankan oleh kepingan putih.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
4) Perbandingan algoritma Greedy sebagai kepingan hitam dan kepingan
putih
Tabel 4.19. Pengujian Algoritma Greedy dengan Greedy
Percobaan ke Greedy (Kepingan
Hitam)
Greedy (Kepingan
Putih)
1 35 25
2 35 25
3 35 25
4 35 25
5 35 25
6 35 25
7 35 25
8 35 25
9 35 25
10 35 25
11 35 25
12 35 25
13 35 25
14 35 25
15 35 25
16 33 27
17 33 27
18 33 27
19 35 25
20 35 25
21 35 25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
22 35 25
23 35 25
24 35 25
25 35 25
26 33 27
27 33 27
28 35 25
29 35 25
30 35 25
31 35 25
32 35 25
33 35 25
34 35 25
35 35 25
36 33 27
37 33 27
38 33 27
39 33 27
40 33 27
41 35 25
42 35 25
43 35 25
44 35 25
45 35 25
46 35 25
47 35 25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
48 35 25
49 35 25
50 35 25
Dalam tabel tersebut ditunjukkan perbandingan algoritma Greedy
dengan memakai kedua kepingan hitam dan putih. Mulai dengan kepingan
hitam dengan algoritma Greedy hingga akhir permainan dimenangkan oleh
kepingan hitam. Berikut ini merupakan grafik waktu yang dibutuhkan oleh
Greedy saat eksekusi perbandingan algoritma.
Gambar 4.7. Grafik waktu jalannya algoritma Greedy dalam Othello.
Grafik ini menunjukkan waktu yang dikerjakan kedua algoritma yang
dalam hal ini sama-sama algoritma Greedy, berbeda dengan Alpha-Beta,
algoritma ini membuat waktu yang lebih singkat dan lebih stabil karena
algoritma ini mencari lebih banyak kemenangan dengan mengambil
kemungkinan papan yang mendapatkan kepingan lebih banyak dari yang
lain sehingga tidak diperlukan pencarian lebih lanjut dalam algoritma ini,
0
5
10
15
20
25
30
35
2 3 4 5 6 7 8 9 10
Wa
ktu
(m
s)
Kedalaman
Kepingan Hitam
Kepingan Putih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
berikut ini merupakan salah satu hasil eksekusi algoritma Greedy yang
diimplementasikan dalam kedua kepingan dalam papan Othello.
Gambar 4.8. Perbandingan algoritma Greedy dalam Othello.
Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan
oleh kedua algoritma dengan kepingan hitam yang maju pertama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Tabel 4.20. Urutan langkah percobaan pertama algoritma Greedy dengan
Greedy.
Langkah ke- Greedy
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 g7
4 d2 c5
5 d6 e7
6 f5 d1
7 b4 g6
8 e2 f3
9 e1 b2
10 d7 d8
11 f8 b5
12 a6 c2
13 c1 a5
14 h7 b3
15 a4 f2
16 g3 g1
17 c6 f6
18 g4 g1
19 h3 b7
20 c7 a2
21 b8 a7
22 f8 g8
23 h5 e6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
24 e8 e1
25 h2 c8
Tabel 4.21. Urutan langkah percobaan kedua algoritma Greedy dengan
Greedy.
Langkah ke- Greedy
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 g7
4 d2 c5
5 d6 e7
6 f5 d1
7 b4 g6
8 e2 f3
9 e1 b2
10 d7 d8
11 f8 b5
12 a6 c2
13 c1 a5
14 h7 b3
15 a4 f2
16 g3 g1
17 c6 f6
18 g4 g1
19 h3 b7
20 c7 a2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
21 b8 a7
22 f8 g8
23 h5 e6
24 e8 e1
25 h2 c8
Tabel 4.22. Urutan langkah percobaan ketiga algoritma Greedy dengan
Greedy.
Langkah ke- Greedy
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 g7
4 d2 c5
5 d6 e7
6 f5 d1
7 b4 g6
8 e2 f3
9 e1 b2
10 d7 d8
11 f8 b5
12 a6 c2
13 c1 a5
14 h7 b3
15 a4 f2
16 g3 g1
17 c6 f6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
18 g4 g1
19 h3 b7
20 c7 a2
21 b8 a7
22 f8 g8
23 h5 e6
24 e8 e1
25 h2 c8
Tabel 4.23. Urutan langkah percobaan keempat algoritma Greedy dengan
Greedy.
Langkah ke- Greedy
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 g7
4 d2 c5
5 d6 e7
6 f5 d1
7 b4 g6
8 e2 f3
9 e1 b2
10 d7 d8
11 f8 b5
12 a6 c2
13 c1 a5
14 h7 b3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
15 a4 f2
16 g3 g1
17 c6 f6
18 g4 g1
19 h3 b7
20 c7 a2
21 b8 a7
22 f8 g8
23 h5 e6
24 e8 e1
25 h2 c8
Tabel 4.24. Urutan langkah percobaan kelima algoritma Greedy dengan
Greedy.
Langkah ke- Greedy
(Kepingan Hitam)
Greedy
(Kepingan Putih)
1 d3 c3
2 c4 e3
3 f6 g7
4 d2 c5
5 d6 e7
6 f5 d1
7 b4 g6
8 e2 f3
9 e1 b2
10 d7 d8
11 f8 b5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
12 a6 c2
13 c1 a5
14 h7 b3
15 a4 f2
16 g3 g1
17 c6 f6
18 g4 g1
19 h3 b7
20 c7 a2
21 b8 a7
22 f8 g8
23 h5 e6
24 e8 e1
25 h2 c8
Kesimpulan dari kelima percobaan tersebut adalah pada langkah
pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut
yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di
tiap percobaan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Kesimpulan yang dapat diambil dari penelitian analisa perbandingan
algoritma Alpha-Beta dan Greedy pada permainan Othello adalah:
1. Dalam hal waktu, Greedy lebih cepat dalam memproses eksekusi
permainan Othello terutama bila dibandingkan dengan Alpha-Beta
karena disamping kompleksitas waktu yang tidak begitu rumit serta
dari grafik yang menunjukkan waktu prosesnya algoritma tersebut.
2. Algoritma Alpha-Beta dalam hal waktu tidak begitu baik di awal
karena proses pencarian cabang pohon permainan Othello pada
kedalaman tertentu yang memerlukan waktu yang cukup lama, karena
kemungkinan percabangan permainan Othello lebih banyak pada saat
pertengahan permainan. Algoritma ini cukup efisien karena pencarian
kemungkinan permainannya dibanding dengan algoritma Greedy
yang sifatnya tamak. Langkah-langkah yang menjepit keping lawan
terbanyak akan dievaluasi terlebih dahulu dan langkah yang kurang
menguntungkan akan dibuang.
3. Berdasarkan hasil percobaan tersebut, langkah awal juga dapat
menentukan kemenangan, karena langkah awal yang berbeda akan
menghasilkan langkah akhir yang berbeda pula, namun karena
langkah awal pada saat pengujian kedua algoritma hampir sama,
maka hasil akhirnya juga hampir sama. Penelitian ini mungkin dapat
menjadi dasar bagi pengembangan penelitian lain dengan dasar
permainan Othello dengan menambahkan algoritma atau dengan
perbandingan lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
5.2. Saran
Peneliti ingin menyampaikan beberapa saran yang mungkin nantinya
dapat berguna bagi kepentingan pihak-pihak yang peneliti sebutkan. Saran ini
ditujukan bagi mahasiswa dan peneliti lain, yaitu:
1. Bagi mahasiswa
Diharapkan dari penelitian ini dapat membantu mahasiswa bahkan
dapat menunjang pembelajaran maupun tugas akhir dengan topik
yang relevan dengan tugas akhir ini.
2. Bagi peneliti lain
Diharapkan agar peneliti dapat menggunakan algoritma lain sebagai
perbandingan dari kedua algoritma yang telah diteliti dalam tugas
akhir ini serta dapat menemukan faktor pembanding lain apabila
ingin memakai algoritma ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
DAFTAR PUSTAKA
Anggraeni, D. 2012. Reversi Othello. http://reversi-
othello.blogspot.co.id/p/reversi.html, diakses 05 Januari 2017.
Anggraeni, D. R. 2013. Alpha-Beta Pruning. https://blog.ub.ac.id/dinaarizky/
2013/10/22/alpha-beta-pruning, diakses 20 Maret 2018.
Kosasi, S. 2014. Permainan Papan Strategi Menggunakan Algoritma Minimax.
Seminar Nasional Teknologi Informasi, Komunikasi dan Industri (SNTIKI) 6.
Pekanbaru, 24 September 2014.
Leouski, A. 1995. Learning of Position Evaluation in the Game of Othello.
Department of Computer Science University of Massachusetts.
Prabawa, A. E. 2009. KOMBINASI GREEDY, MINIMAX, DAN ALPHA-BETA
PRUNING UNTUK PERMAINAN REVERSI. Makalah IF3051 Strategi
Algoritma tahun 2009.
Tommy, L., & Perkasa, E. B. 2016. Analisis Efisiensi Algoritma Alpha Beta
Pruning dan MTD(f) pada Connect4. Jurnal SISFOKOM. Vol. 5(1): 15-20.
Sabri, A. 2016. Pengantar Teori Game. Universitas Gunadharma.
Warno. 2012. Pembelajaran Pemrograman Bahasa Java Dan Arti Keyword. Jurnal
Komputer. Vol. 8(1): 40-44.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
_______. 2012. Minimax. http://wiki.bethanycrane.com/minimax, diakses 27
September 2017.
_______. 2007. Writing an Othello Program. http://radagast.se/othello/howto.html,
diakses 1 Juli 2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI