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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

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

v

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

vii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI


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.

viii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.


x

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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
xii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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


xiii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

xiv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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?

2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

5

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

Programming-language

interface,

Virtual-machine

specification,
specification

ApplicationJDK

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

d(v)=d

v +d

atau

2. Vertex atau Node

disimbolkan

dengan

v .

d

v ,

dimana

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.

9

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

10

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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:

11

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

12

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

13

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

14

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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
15

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

16

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

17

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

18

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

19

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

20

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

22

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

24

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

25

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

26

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

27

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

28

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

29

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

30

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

:

31

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Aksi Aktor
1. Aktor

memilih

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

1. Aktor

memilih

Reaksi Sistem
menu

‘Bantuan dan Info’.
2. Sistem
bantuan

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

32

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

33

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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

34

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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.

35

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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
36

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

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 bua