Anda di halaman 1dari 121

ANALISIS DAN IMPLEMENTASI ALGORITMA MINIMAX

DENGAN OPTIMASI ALPHA BETA PRUNING


PADA PERMAINAN FIVE IN ROW

SKRIPSI

NUR JANNAH
061401081

PROGRAM STUDI S1 ILMU KOMPUTER


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2010

Universitas Sumatera Utara


ANALISIS DAN IMPLEMENTASI ALGORITMA MINIMAX
DENGAN OPTIMASI ALPHA BETA PRUNING
PADA PERMAINAN FIVE IN ROW

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana
Komputer

NUR JANNAH
061401081

PROGRAM STUDI STRATA 1 ILMU KOMPUTER


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2010

Universitas Sumatera Utara


PERSETUJUAN

Judul : ANALISIS DAN IMPLEMENTASI


ALGORITMA MINIMAX DENGAN
OPTIMASI ALPHA BETA PRUNING
Kategori : SKRIPSI
Nama : NUR JANNAH
Nomor Induk Mahasiswa : 061401081
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU
PENGETAHUAN ALAM (FMIPA)
UNIVERSITAS SUMATERA UTARA

Diluluskan di
Medan, 4 Desember 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S.Si, MIT Maya Silvi Lydia, B.Sc, M.Sc


NIP 197103101997031004 NIP 197401272002122001

Diketahui/Disetujui oleh
Departemen Ilmu Komputer FMIPA USU
Ketua,

Prof. Dr. Muhammad Zarlis


NIP 195707011986011003

Universitas Sumatera Utara


PERNYATAAN

ANALISIS DAN IMPLEMENTASI ALGORITMA MINIMAX


DENGAN OPTIMASI ALPHA BETA PRUNING
PADA PERMAINAN FIVE IN ROW

SKRIPSI

Saya mengakui bahwa skipsi ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 4 Desember 2010

NUR JANNAH
061401081

Universitas Sumatera Utara


PENGHARGAAN

Alhamdulillah, penulis ucapkan kepada Allah SWT yang senantiasa melimpahkan


rahmat dan karunia-Nya sehingga skripsi ini dapat diselesaikan dengan baik.

Ucapan terima kasih penulis sampaikan kepada Ibu Maya Silvi Lydia, B.Sc,
M.Sc selaku dosen pembimbing I dan Bapak Syahriol Sitorus, S.Si, MIT selaku dosen
pembimbing II yang telah banyak membantu memberi panduan, masukan serta saran
kepada penulis selama penulisan skripsi ini. Ucapan terima kasih juga turut penulis
ucapkan kepada Bapak Prof.Dr.Tulus,M.Si dan Bapak Amer Sharif, S.Si, M.Kom
selaku dosen pembanding I dan II. Ucapan terima kasih juga ditujukan kepada Bapak
Prof. Dr. Muhammad Zarlis, Dekan dan Pembantu Dekan Fakultas Matematika dan
Ilmu Pengetahuan Alam, serta seluruh staf pengajar di Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara.

Ucapan terima kasih teristimewa penulis persembahkan kepada kedua orang


tua tercinta, ayahanda Muhammad Yusuf dan ibunda Nur Azizah yang tak henti-
hentinya mendoakan dan memberikan semangat serta dorongan kepada penulis serta
ucapan terima kasih kepada seluruh keluarga, abang dan adik-adik tersayang,
Yusrizal, Liska Rahayu dan Fara Dila yang telah memberikan banyak bantuan kepada
penulis selama pengerjaan skripsi ini.

Tidak lupa pula ucapan terima kasih penulis sampaikan kepada teman-teman
angkatan 2006, serta seluruh mahasiswa Program Studi S1 Ilmu Komputer dan semua
pihak yang telah membantu penyelesaian skripsi ini baik secara langsung ataupun
tidak langsung. Semoga Allah SWT membalas kebaikan Anda semua.

Universitas Sumatera Utara


ABSTRAK

Keberadaan industri game yang berkembang pesat membuktikan bahwa masyarakat


menaruh minat yang besar terhadap permainan komputer. Salah satu jenis game
komputer yang beredar luas antara lain game kecerdasan buatan, misalnya catur, dan
Five In Row. Five In Row merupakan game logika yang membutuhkan strategi untuk
mengalahkan lawan dengan menyusun lima buah keping sewarna dalam satu baris
baik horizontal, vertikal, maupun diagonal. Algoritma yang diimplementasikan pada
permainan ini adalah Minimax yang dioptimasikan dengan Alpha Beta Pruning.
Minimax yang merupakan algoritma pohon pencarian akan melakukan penelusuran
pada setiap node hingga diperoleh nilai maksimum untuk memenangkan pertandingan.
Namun, pohon pencarian pada Five In Row memiliki kedalaman dan ruang lingkup
percabangan yang luas, sehingga dibutuhkan waktu cukup lama untuk mengevaluasi
seluruh kemungkinan. Untuk itulah dibutuhkan sebuah algoritma yang dapat
mengoptimalkan pencarian, yaitu Alpha Beta Pruning. Algoritma ini akan memangkas
beberapa percabangan pada pohon pencarian yang tidak mempengaruhi hasil evaluasi
Minimax. Dengan adanya Alpha Beta Pruning maka ruang pencarian dapat dikurangi
sehingga proses penelusuran dan evaluasi dapat dilakukan lebih cepat.

Universitas Sumatera Utara


ANALYSIS AND IMPLEMENTATION OF MINIMAX ALGORITHM
WITH ALPHA BETA PRUNING OPTIMIZATION
IN FIVE IN ROW GAME

ABSTRACT

The existence of game industry which rapidly grows up proves that many people have
big interest in computer games. One of the famous computer games that have been
growing rapidly is Artificial Intelligence game for example: chess and five in row.
Five in row is a logic game that requires a strategy to defeat opponent by arranging
five of pieces with the same color in a line either horizontally, vertically or diagonally.
The algorithm that implemented to this game is Minimax which being optimized with
Alpha Beta Pruning. Minimax which is a search tree algorithm will explore every
node to obtain the maximum value to win the game. However, a search tree in Five In
Row has many depth and large branches, so much time is needed to evaluated every
possibility. That’s why an algorithm is required to optimize the searching, which is
Alpha Beta Pruning. This algorithm will prune some branches at the search tree which
have no effect to the Minimax value. With Alpha Beta Pruning, the scope of searching
can be reduced so that exploring solutions can be done faster.

Universitas Sumatera Utara


DAFTAR ISI

Halaman

Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel x
Daftar Gambar xi

Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5

Bab 2 Landasan Teori 6


2.1. Kecerdasan Buatan 6
2.2 Five In Row 7
2.2.1 Aturan Permainan Five In Row 8
2.2.2 Jenis Five In Row 9
2.3 Agen Cerdas 9
2.3.1 Perilaku Agen 10
2.3.2 Struktur Agen Cerdas 11
2.3.2.1 Agen Refleks Sederhana 12
2.3.2.2 Agen Refleks Berbasis Model 12
2.3.2.3 Agen Berbasis Tujuan (Goal Based Agent) 13
2.3.2.4 Agen Berbasis Kegunaan (Utility Based Agent) 14
2.3.3 Lingkungan Agen dan Sifatnya 15
2.4 Algoritma Pencarian 16
2.4.1 Minimax 17
2.4.2 Alpha Beta Pruning 19
2.4.3 Fungsi Evaluasi 21
2.5 Reinforcement Learning 21
2.6 Java 22
2.7 UML (Unified Modelling Language) 24
2.7.1 Activity Diagram (Diagram Aktivitas) 25

Universitas Sumatera Utara


2.7.2 Class Diagram (Diagram Kelas) 26
2.7.3 Sequence Diagram 27
2.7.4 Use Case 28

Bab 3 Analisis dan Perancangan Aplikasi 29


3.1 Analisis Kebutuhan Aplikasi 29
3.1.1 Representasi Lingkungan 29
3.1.1.1 Representasi Material 30
3.1.2 Flowchart Aplikasi 30
3.1.3 Analisis Algoritma 32
3.1.4 Nilai Formasi 41
3.1.5 Fungsi Evaluasi 42
3.1.6 Proses Evaluasi Formasi 44
3.2 Perancangan Aplikasi 48
3.2.1 Perancangan Konseptual 49
3.2.1.1 Deskripsi Class Diagram Aplikasi 49
3.2.1.2 Deskripsi Kebutuhan Fungsional Aplikasi 51
3.2.1.3 Deskripsi Proses dan Aktivitas Aplikasi 52
3.2.1.4 Deskripsi Sequence Diagram Aplikasi 57
3.2.2 Perancangan Fisik 63
3.2.2.1 Perancangan Antarmuka 63
3.2.2.2 Perancangan Piranti Masukan 67

Bab 4 Implementasi dan Pengujian 68


4.1 Implementasi Aplikasi 68
4.2 Spesifikasi Perangkat Lunak 68
4.3 Spesifikasi Perangkat Keras 68
4.4 Tampilan Aplikasi 69
4.4.1 Tampilan Utama 69
4.4.2 Tampilan Permainan 70
4.4.3 Tampilan Menu 72
4.4.4 Tampilan Game Play 72
4.5 Implementasi Algoritma 73
4.6 Pengujian Agen 76
4.6.1 Level Satu 76
4.6.2 Level Dua 77
4.6.3 Level Tiga 81
4.6.4 Level Empat 84
4.7 Pengujian Aplikasi 87
4.7.1 Pengujian Integrasi Aplikasi 88
4.7.1.1 Play 88
4.7.1.2 New Game 90
4.7.1.3 Level 91
4.7.1.4 About 92
4.7.2 Pengujian Aspek Antarmuka Aplikasi 93
4.7.3 Pengujian Aspek Penggunaan Aplikasi 95
4.7.4 Penilaian Aplikasi 97

Universitas Sumatera Utara


4.7.5 Pengujian Aspek Kehandalan Aplikasi 99

Bab 5 Kesimpulan dan Saran 102


5.1. Kesimpulan 102
5.2. Saran 103

Daftar Pustaka 104

Lampiran 106

Universitas Sumatera Utara


DAFTAR TABEL

Halaman

Tabel 2.1 Diagram UML 25


Tabel 3.1 Hubungan Kedalaman dan Jumlah Node 32
Tabel 3.2 Proses Pencarian Alpha Beta Pruning 38
Tabel 3.3 Nilai Formasi 41
Tabel 3.4 Value Tiap Node 46
Tabel 3.5 CRC Card Class Interface 50
Tabel 3.6 CRC Carc Class Constanta 50
Tabel 3.7 CRC Card Class Check 50
Tabel 3.8 CRC Carc Class AIPlayer 51
Tabel 3.9 CRC Card Class Game 51
Tabel 3.10 CRC Card Class User 51
Tabel 3.11 Proses Play 53
Tabel 3.12 Proses New Game 54
Tabel 3.13 Proses Play 55
Tabel 3.14 Proses About 56
Tabel 4.1 Pengujian Agen Level Satu 76
Tabel 4.2 Pengujian Agen Level Dua 78
Tabel 4.3 Pengujian Agen Level Tiga 81
Tebel 4.4 Perbandingan Pergerakan Max dan Min 83
Tabel 4.5 Pengujian Agen Level Empat 84
Tabel 4.6 Hasil Evaluasi Proses Play pada Windows 88
Tabel 4.7 Hasil Evaluasi Proses Play pada Linux 89
Tabel 4.8 Hasil Evaluasi Proses New game pada Windows 90
Tabel 4.9 Hasil Evaluasi Proses New game pada Linux 90
Tabel 4.10 Hasil Evaluasi Proses Level pada Windows 91
Tabel 4.11 Hasil Evaluasi Proses Level pada Linux 91
Tabel 4.12 Hasil Evaluasi proses About pada Windows 92
Tabel 4.13 Hasil Evaluasi proses About pada Linux 92
Tabel 4.14 Hasil Kuesioner Aspek Antarmuka 94
Tabel 4.15 Hasil Kuesioner Aspek Penggunaan 95
Tabel 4.16 Hasil Kuesioner Penilaian Aplikasi 97
Tabel 4.17 Hasil Kuesioner Kehandalan Aplikasi 100

Universitas Sumatera Utara


DAFTAR GAMBAR

Halaman

Gambar 2.1 Papan Permainan 8


Gambar 2.2 Ilustrasi Diagram Agen 10
Gambar 2.3 Skema Agen Refleks Sederhana 12
Gambar 2.4 Skema Agen Refleks Berbasis Model 13
Gambar 2.5 Skema Diagram Ageb Berbasis Tujuan 14
Gambar 2.6 Skema Diagram Agen Berbasis Kegunaan 15
Gambar 2.7 Pohon Minimax 19
Gambar 2.8 Pohon Alpha Beta Pruning 21
Gambar 2.9 Contoh Activity Diagram 26
Gambar 2.10 Contoh Class Diagram 27
Gambar 2.11 Contoh Sequence Diagram 28
Gambar 2.12 Contoh Use Case 28
Gambar 3.1 Papan Five In Row 29
Gambar 3.2 Representasi Material 30
Gambar 3.3 Flowchart Aplikasi Five In Row 31
Gambar 3.4 Flowchart Algoritma Minimax dengan Optimasi Alpha Beta Pruning 34
Gambar 3.5 Proses Pencarian Depth First Search 36
Gambar 3.6 Diagram Pohon Pencarian 37
Gambar 3.7 Posisi Sementara Permainan 42
Gambar 3.8 Contoh Kondisi Permainan 44
Gambar 3.9 Analisis Pohon Permainan 45
Gambar 3.10 Class Diagram 49
Gambar 3.11 Use Case Aplikasi 52
Gambar 3.12 Activity Diagram Play 54
Gambar 3.13 Activity Diagram New Game 55
Gambar 3.14 Activity Diagram Level 56
Gambar 3.15 Activity Diagram About 57
Gambar 3.16 Komponen Play 58
Gambar 3.17 Sequence Diagram Play 59
Gambar 3.18 Komponen New Game 60
Gambar 3.19 Sequence Diagram New Game 60
Gambar 3.20 Komponen Level 61
Gambar 3.21 Sequence Diagram Level 62
Gambar 3.22 Komponen About 62
Gambar 3.23 Sequence Diagram About 63
Gambar 3.24 Interface Aplikasi 64
Gambar 3.25 Submenu Game 65
Gambar 3.26 Submenu About 65
Gambar 3.27 Tampilan Game Play dan Author 65

Universitas Sumatera Utara


Gambar 3.28 Message Dialog Kalah 66
Gambar 3.29 Message Dialog Menang 66
Gambar 3.30 Message Dialog Seri 66
Gambar 4.1 Papan Permainan 69
Gambar 4.2 Kondisi Akhir Permainan 70
Gambar 4.3 Message Dialog 71
Gambar 4.4 Menu Aplikasi 72
Gambar 4.5 Tampilan Game Play 73
Gambar 4.6 Diagram Hasil Evalausi Aspek Antarmuka 94
Gambar 4.7 Diagram Penilaian Aspek Antarmuka 95
Gambar 4.8 Diagram Hasil Evaluasi Aspek Penggunaan 96
Gambar 4.9 Diagram Penilaian Aspek Penggunaan Aplikasi 97
Gambar 4.10 Diagram Hasil Evaluasi Penilaian Aplikasi 98
Gambar 4.11 Diagram Penilai Aplikasi 99
Gambar 4.12 Diagram Hasil Pengujian Kehandalan Aplikasi 101

Universitas Sumatera Utara


ABSTRAK

Keberadaan industri game yang berkembang pesat membuktikan bahwa masyarakat


menaruh minat yang besar terhadap permainan komputer. Salah satu jenis game
komputer yang beredar luas antara lain game kecerdasan buatan, misalnya catur, dan
Five In Row. Five In Row merupakan game logika yang membutuhkan strategi untuk
mengalahkan lawan dengan menyusun lima buah keping sewarna dalam satu baris
baik horizontal, vertikal, maupun diagonal. Algoritma yang diimplementasikan pada
permainan ini adalah Minimax yang dioptimasikan dengan Alpha Beta Pruning.
Minimax yang merupakan algoritma pohon pencarian akan melakukan penelusuran
pada setiap node hingga diperoleh nilai maksimum untuk memenangkan pertandingan.
Namun, pohon pencarian pada Five In Row memiliki kedalaman dan ruang lingkup
percabangan yang luas, sehingga dibutuhkan waktu cukup lama untuk mengevaluasi
seluruh kemungkinan. Untuk itulah dibutuhkan sebuah algoritma yang dapat
mengoptimalkan pencarian, yaitu Alpha Beta Pruning. Algoritma ini akan memangkas
beberapa percabangan pada pohon pencarian yang tidak mempengaruhi hasil evaluasi
Minimax. Dengan adanya Alpha Beta Pruning maka ruang pencarian dapat dikurangi
sehingga proses penelusuran dan evaluasi dapat dilakukan lebih cepat.

Universitas Sumatera Utara


ANALYSIS AND IMPLEMENTATION OF MINIMAX ALGORITHM
WITH ALPHA BETA PRUNING OPTIMIZATION
IN FIVE IN ROW GAME

ABSTRACT

The existence of game industry which rapidly grows up proves that many people have
big interest in computer games. One of the famous computer games that have been
growing rapidly is Artificial Intelligence game for example: chess and five in row.
Five in row is a logic game that requires a strategy to defeat opponent by arranging
five of pieces with the same color in a line either horizontally, vertically or diagonally.
The algorithm that implemented to this game is Minimax which being optimized with
Alpha Beta Pruning. Minimax which is a search tree algorithm will explore every
node to obtain the maximum value to win the game. However, a search tree in Five In
Row has many depth and large branches, so much time is needed to evaluated every
possibility. That’s why an algorithm is required to optimize the searching, which is
Alpha Beta Pruning. This algorithm will prune some branches at the search tree which
have no effect to the Minimax value. With Alpha Beta Pruning, the scope of searching
can be reduced so that exploring solutions can be done faster.

Universitas Sumatera Utara


BAB I

PENDAHULUAN

1.1 Latar Belakang

Kecerdasan buatan (Artificial Intelligence) menyebabkan lahirnya berbagai teknologi


yang dapat dikatakan bersifat cerdas, misalnya permainan (game), sistem pakar
(expert system), jaringan saraf tiruan (artificial neural network) dan robotika.

Kecerdasan buatan ini dapat dimanfaatkan diberbagai bidang kebutuhan manusia,


misalnya hiburan. Dengan adanya hiburan, maka kejenuhan yang timbul akibat
kesibukan dan rutinitas yang tinggi dapat dihilangkan. Salah satu jenis hiburan adalah
game. Keberadaan industri game yang terus berkembang pesat serta semakin
maraknya peredaran perangkat keras game seperti Play Station, XBOX dan
sebagainya dapat dijadikan bukti bahwa masyarakat memang tertarik dan menaruh
minat pada bidang kecerdasan buatan yang satu ini. Bahkan dewasa ini aplikasi
permainan merupakan salah satu fitur yang harus terdapat dalam telepon selular.

Dahulu game hanyalah hiburan yang tidak terlalu diperhitungkan manfaatnya


bahkan cenderung dikatakan sia-sia. Namun kini keberadaan game dapat pula menjadi
salah satu sarana potesial guna meningkatkan kecerdasan serta melatih konsentrasi
otak, misalnya Chess, Go, Othello, Checkers, dan Five In Row yang tentunya berbasis
kecerdasan buatan, sehingga keterlibatan otak pemain sangat dibutuhkan untuk
mengatur strategi mengalahkan komputer.

Game Five In Row merupakan game logika yang membutuhkan pola pikir dalam
menyusun strategi untuk mengalahkan lawan. Five In Row telah dikenal sejak
beberapa dekade lalu di hampir seluruh belahan dunia meskipun dengan nama

Universitas Sumatera Utara


berbeda. Jepang misalnya lebih mengenal Five In Row sebagai Gomoku, dan di
Indonesia lebih dikenal dengan nama Catur Jawa. Five In Row merupakan sebuah
permaianan berjenis board-game berukuran minimal 8 x 8 kotak yang dimainkan oleh
2 (dua) pemain. Setiap pemain harus mengisi kotak papan permainan dengan bidak
masing-masing ( hitam atau putih) sehingga membentuk sebuah garis baik vertikal,
horizontal ataupun diagonal dengan jumlah lima kepingan. Sedangkan pemain lawan
berusaha menghalangi kemenangan pemain lain sekaligus berusaha memenangkan
permainan.

Pada umumnya game komputer berjenis board-game termasuk catur, Checkers,


dan Five In Row merupakan game dua pemain (two-player) dengan perfect-
information. Dimana terdapat dua pemain yang berlawanan dan bergiliran, masing-
masing memandang kegagalan lawan sebagai kesuksesannya (Pearl, 1984). Yang
dimaksud perfect information adalah setiap pemain mengetahui persis bagaimana
posisi lawan dan pilihan langkah yang tersedia, berbeda dengan permainan kartu
dimana pemain tidak mengetahui bagaimana posisi kemenangan lawan.

Salah satu algoritma yang digunakan untuk game Five In Row adalah Minimax.
Minimax merupakan algoritma yang digunakan untuk menentukan pilihan langkah
selanjutnya agar memperkecil kemungkinan kehilangan nilai maksimal. Algoritma ini
mendeskripsikan kondisi apabila terdapat pemain yang mengalami keuntungan,
pemain lain akan mengalami kerugian senilai dengan keuntungan yang diperoleh
lawan dan sebaliknya. Algoritma Minimax adalah algoritma berupa pohon pencarian
yang akan menelusuri setiap node untuk memperoleh hasil yang maksimum, namun
jika kedalaman dan percabangan pohon terlalu besar maka algoritma Minimax akan
memerlukan waktu yang sangat lama untuk mengambil keputusan. Untuk
mempersingkat waktu pencarian sekaligus sebagai optimasi, maka digunakanlah
algoritma Alpha Beta Pruning. Alpha Beta Pruning merupakan algoritma yang akan
mengurangi ruang pencarian Minimax.

Universitas Sumatera Utara


1.2 Rumusan Masalah

Penelitian ini memiliki beberapa perumusan masalah, yaitu:


a. Bagaimana membangun sebuah aplikasi permainan berbasis kecerdasan buatan
yang mampu mengalahkan user.
b. Bagaimana mengoptimasikan algoritma Minimax dengan Alpha Beta Pruning
yang mampu mengambil keputusan terbaik disetiap langkah.
c. Bagaimana mengolah aplikasi agar mampu bermain secara optimal dalam
waktu yang relatif singkat.

1.3 Batasan Masalah

Penelitian ini dibatasi pada:


a. Ukuran papan Five In Row adalah 10 x 10.
b. Pemain pertama adalah user.
c. Level permainan sampai dengan 6 tingkat.
d. Aplikasi ini dibangun dengan menggunakan bahasa pemrograman Java.

1.4 Tujuan Penelitian

Penelitian ini dilakukan dengan beberapa tujuan:


a. Menganalisis dan mengimplementasikan algoritma Minimax dengan optimasi
Alpha Beta Pruning pada permainan Five In Row sehingga dapat mengambil
keputusan yang cepat dan tepat.
b. Membangun aplikasi game Five In Row berbasis kecerdasan buatan.

1.5 Manfaat Penelitian

Beberapa manfaat dari penelitian ini:


a. Meningkatkan kreativitas user dalam menyusun strategi untuk mengalahkan
Five In Row berbasis kecerdasan buatan.
b. Melatih konsentrasi dan logika berpikir user.

Universitas Sumatera Utara


c. Sebagai literatur dan landasan untuk penelitian di masa yang akan datang.

1.6 Metodologi Penelitian

Langkah-langkah dalam pengerjaan Tugas Akhir ini antara lain :

1. Studi Literatur
Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan bahan-bahan
referensi baik dari buku, artikel, jurnal, makalah, maupun situs internet mengenai
algoritma Minimax dan Alpha Beta Pruning serta beberapa referensi lainnya untuk
menunjang pencapaian tujuan tugas akhir.

2. Analisis Sistem dan Program.


Pada tahap ini akan dilakukan analisis terhadap pemberian bobot nilai game tree
Minimax dan Alpha Beta Pruning pada pohon permainan Five In Row.

3. Perancangan Sistem.
Perancangan ini ditujukan untuk membuat desain aplikasi yang bersifat user
friendly dan mudah digunakan.

4. Pengkodean.
Pada tahap ini sistem yang telah dirancang kemudian diimplementasikan ke dalam
bahasa pemrograman Java.

5. Pengujian.
Pada tahap ini dilakukan pengujian program dan mencari kesalahan pada program
hingga program itu dapat berjalan seperti yang diharapkan. Selain itu juga akan
dilakukan pengujian aplikasi kepada user yang akan bertindak sebagai responden.

6. Penyusunan laporan dan kesimpulan akhir.


Menyusun laporan hasil analisis dan implementasi ke dalam format penulisan tugas
akhir dengan disertai kesimpulan akhir.

Universitas Sumatera Utara


1.7 Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi menjadi lima bab, yaitu sebagai berikut :

BAB 1 PENDAHULUAN
Berisi penjelasan mengenai latar belakang, rumusan masalah,
batasan masalah, tujuan penulisan, manfaat penulisan, dan
metodologi penelitian.

BAB 2 LANDASAN TEORI


Berisi pembahasan teori-teori yang mendukung pembahasan
bab selanjutnya yang diperoleh dari referensi.

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI


Berisi analisis algoritma dan penerapannya pada permainan Five
In Row serta perancangan aplikasinya yang dimodelkan dengan
UML (Unified Modelling Language).

BAB 4 IMPLEMENTASI DAN PENGUJIAN


Bab ini berisi tentang implementasi aplikasi serta pengujiannya,
baik pengujian secara manual maupun pengujian terhadap
responden.

BAB 5 PENUTUP
Berisi rangkuman kesimpulan dan saran yang diperoleh selama
pengerjaan tugas akhir.

Universitas Sumatera Utara


BAB 2

LANDASAN TEORI

2.1 Kecerdasan Buatan

Artificial Intelligence atau kecerdasan buatan merupakan cabang dari ilmu komputer
yang konsern dengan pengautomatisasi tingkah laku cerdas (Desiani dan Arhami,
2006).

Pengertian lain menyebutkan bahwa kecerdasan buatan adalah salah satu


bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan
pekerjaan seperti dan sebaik yang dilakukan oleh manusia (Kusumadewi, 2003).

Sedangkan Kristanto menyatakan bahwa kecerdasan buatan adalah bagian dari


ilmu pengetahuan komputer yang khusus ditujukan dalam perancangan otomatisasi
tingkah laku cerdas dalam sistem kecerdasan komputer. Sistem memperlihatkan sifat-
sifat khas yang dihubungkan dengan kecerdasan dalam kelakuan yang sepenuhnya
bisa menirukan beberapa fungsi otak manusia, seperti pengertian bahasa, pengetahuan,
pemikiran, pemecahan masalah dan sebagainya (Kristanto, 2004).

Dari beberapa pengertian di atas, dapat ditarik kesimpulan bahwa kecerdasan


buatan merupakan bagian dari ilmu komputer yang menitikberatkan pada perancangan
otomatisasi tingkah laku cerdas. Namun, defenisi yang telah disebutkan di atas belum
cukup memadai sebab istilah ‘cerdas’ itu sendiri belum dipahami sepenuhnya.

Kecerdasan alami dalam hal ini kecerdasan manusia berbeda dengan


kecerdasan buatan. Berikut beberapa kelebihan kecerdasan buatan dan kecerdasan
alami.

Universitas Sumatera Utara


1. Kecerdasan buatan lebih tahan lama dan konsisten, bahkan dapat dikatakan
permanen sejauh program dan sistemnya tidak diubah.
2. Kecerdasan buatan lebih mudah diduplikasi dan disebarluaskan, berbeda
dengan kecerdasan alami yang membutuhkan proses belajar mengajar untuk
mentransfer kecerdasan.
3. Kecerdasan buatan dapat didokumentasi.
4. Kecerdasan buatan cenderung dapat mengerjakan perkerjaan lebih baik dan
lebih cepat dibanding dengan kecerdasan alami.

Kelebihan kecerdasan alami antara lain.

1. Kecerdasan alami bersifat kreatif. Kecerdasan alami dapat berkembang dengan


mudah dan dapat menciptakan kreasi baru.
2. Kecerdasan alami memungkinkan manusia untuk menggunakan pengalaman
secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan
input-output simbolik.
3. Manusia dapat memanfaatkan kecerdasannya secara luas, tanpa batas.
Sedangkan kecerdasan buatan memiliki batasan.

2.2 Five In Row

Five In Row merupakan permainan logika berjenis board-game yang dimainkan oleh
dua pemain dimana setiap pemain berusaha menyusun lima buah bidak sewarna dalam
satu baris baik horizontal, vertikal maupun diagonal. Ukuran papan permainan Five In
Row bervariasi, mulai dari 7 x 7 kotak, 8 x 8 kotak hingga 19 x 19 kotak. Penulis
membatasi aplikasi Five In Row ini hanya pada papan berukuran 10 x 10 kotak.

Board-game adalah permainan dengan kepingan-kepingan yang ditempatkan


di atas, dipindahkan dari atau digerakkan di atas suatu permukaan khusus, permukaan
khusus itu disebut papan permainan (Vebrina, 2008).

Universitas Sumatera Utara


Sakata dan Ikawa dalam Allis (1992) menuliskan sejak beberapa dekade lalu
pemain Five In Row profesional asal Jepang menyatakan bahwa pemain yang pertama
kali mendapatkan giliran akan memenangkan permainan. Oleh sebab itu, penulis
menentukan pemain yang mendapat giliran pertama adalah user sehingga mereka
dapat menyusun strategi agar menang melawan komputer.

Gambar 2.1 Papan Permainan

2.2.1 Aturan Permainan Five In Row

Berikut ini adalah beberapa ketentuan dan peraturan dalam permainan Five In Row.
a. Papan permainan dalam keadaan kosong.
b. Papan permainan Five In Row berukuran 10 x 10 kotak.
c. Dua pemain, hitam dan putih melangkah bergiliran meletakkan keping masing-
masing di kotak yang kosong pada papan.
d. Pemain hitam adalah pemain pertama, dalam hal ini user.
e. Keping-keping yang telah diletakkan pada kotak tidak dapat dipindahkan
ataupun ditangkap.
f. Pemain yang pertama kali membentuk lima keping sewarna baik secara
vertikal, horizontal maupun diagonal dinyatakan menang.
g. Jika papan permainan telah penuh namun belum ada pemain yang membentuk
Five In Row, maka permainan dinyatakan seri.

Universitas Sumatera Utara


2.2.2 Jenis Five In Row

Sampai saat ini, Five In Row terus dikembangkan sehingga bermunculan berbagai
jenis Five In Row. Berikut adalah beberapa jenis permainan Five In Row yang ada saat
ini, namun permainannya memiliki beberapa batasan dan peraturan berbeda .
a. Five In Row dengan papan berukuran 19 x 19 kotak. Karena board-game
lainnya yaitu Go memiliki ukuran papan serupa, maka Five In Row pun turut
diciptakan sehingga pemain dapat mengembangkan strategi.
b. Profesional Five In Row yang umumnya disebut Renju, merupakan tipe
permainan asimetris yang tidak seimbang. Langkah pemain hitam dibatasi
tidak boleh membentuk overline (lebih dari 5 keping) ataupun membentuk
doubleline, misalnya tiga-tiga atau empat-empat.

Untuk penelitian ini, hanya dibahas Five In Row standar yang aturan permainannya
telah disebutkan di atas.

2.3 Agen Cerdas

Desiani dan Arhami memuat kutipan dari Okamoto dan Takaoka (1997) menyatakan
bahwa agen dapat dipandang sebagai sebuah objek yang mempunyai tujuan dan
bersifat autonomous (memberdayakan resourcenya sendiri) untuk memecahkan suatu
permasalahan melalui interaksi, suatu kolaborasi, kompetisi, negosiasi dan
sebagainya.

Sedangkan menurut Russel dan Norvig (2004), agen adalah sesuatu yang
seolah-olah merasakan sesuatu dari lingkungannya melalui sensor dan memberikan
aksi balasan kepada lingkungannya tersebut melalui effector (actuator). Dan
kumpulan dari beberapa agen yang berada pada lingkungan kerja yang sama disebut
multi-agent.

Sebuah agen dibuat menyerupai manusia (human agent) memiliki sensor


berupa mata, telinga, dan organ lain serta effector yang berupa kaki, mulut dan

Universitas Sumatera Utara


lainnya. Berbeda dengan agen robot yang menggunakan kamera dan sinar infrared
dalam jangkauan tertentu sebagai sensor dan berbagai mesin (motor) sebagai effector.
Berikut ini adalah ilustrasi diagram agen.

Agent sensor percepts

ENVIRONMENT
?
actuator action

Gambar 2.2 Ilustrasi Diagram Agen


(Russel dan Norvig, 2004)

2.3.1 Perilaku Agen

Rational Agent adalah suatu benda yang bisa mengerjakan hal tertentu dengan benar
(Desiani dan Arhami, 2006). Namun, pernyataan di atas harus pula dapat dibuktikan
dengan adanya penilaian atau evaluasi.

Untuk menentukan kriteria kesuksesan suatu agen, digunakanlah performance


measure. Namun sebenarnya tidak ada satu ukuran yang dapat dijadikan standar
evaluasi bagi keseluruhan agen. Walaupun demikian, performance measure harus
dapat ditentukan dengan sesuatu yang objektif yang ditentukan oleh beberapa otoritas.

Agen tidak bersifat omniscience (serba tahu). Omniscience agen berarti agen
tersebut mengetahui hasil yang sebenarnya dari aksi yang dilakukannya dan dapat
mempertimbangkannya (Desiani dan Arhami, 2006). Dengan kata lain, agen tidak
dapat disalahkan apabila gagal menangkap suatu persepsi atau melakukan suatu aksi.

Universitas Sumatera Utara


Dapat disimpulkan bahwa rational agent yang sempurna adalah untuk setiap
rangkaian persepsi suatu agen yang sempurna dapat melakukan apapun aksi yang
diharapkan akan memaksimalkan performance measure, yang diperoleh dari fakta-
fakta di lingkungan oleh persepsi dan sebagainya, yang dibangun sebagai pengetahuan
agen (Desiani dan Arhami, 2006).

Suatu perilaku agen dapat dibangun dari dua hal, yaitu knowledge dan
autonomy. Knowledge digunakan untuk mengoperasikan agen di lingkungan tertentu
sedangkan autonomy merupakan perluasan pengetahuan agen berdasarkan
pengalaman agen saat berinteraksi dengan lingkungannya (autonomous).

2.3.2 Struktur Agen Cerdas

Kecerdasan buatan berperan penting dalam mendesain program bagi agen. Program
ini berfungsi mengimplementasikan pemetaan percepts ke agen. Program yang
dibangun harus menyatu dengan computing device yang disebut arsitektur untuk
menerima dan menjalankan agen. Arsitektur dapat berupa hardware seperti kamera
image, filtering audio input dan sebagainya.

Hubungan antara agen, arsitektur, dan program dapat disimpulkan sebagai


berikut :
Agen = arsitektur + program

Sebelum mendesain agen, harus dideskripsikan terlebih dahulu mengenai tipe


agen, percepts dan action, tujuan atau performance measure yang akan dicapai serta
lingkungan tempat agen beroperasi.

Ada 4 (empat) tipe dasar pada program agen yang mewujudkan sistem cerdas,
yakni:

Universitas Sumatera Utara


2.3.2.1 Agen Refleks Sederhana (Simple Reflex Agent)

Agen refleks sederhana ini merupakan tipe agen yang paling sederhana. Agen ini
memilih tindakan (action) atas dasar persepsi (percept) yang diterimanya. Tipe ini
dapat pula disebut a condition-action rule, dapat dituliskan sebagai berikut:
if … then …

Agent sensor percepts

ENVIRONMENT
What the world is like
now?

What action I should do


Condition-action rules
now?

actuator action

Gambar 2.3 Skema Agen Refleks Sederhana


(Russel dan Norvig, 2004)

2.3.2.2 Agen Refleks Berbasis Model

Agen ini harus menjaga keadaan internal yang bergantung pada persepsi lalu untuk
merefleksikan setidaknya beberapa aspek keadaan sekarang yang tidak terobservasi.
Pembaharuan (update) informasi dari internal state terus berjalan, dengan demikian
dibutuhkan dua jenis pengetahuan yang harus dikodekan ke program. Pertama,
informasi mengenai bagaimana lingkungan mempengaruhi kebebasan agen, dan kedua
informasi mengenai bagaimana agen melakukan aksinya.

Universitas Sumatera Utara


sensor percepts
state

ENVIRONMENT
How the world evolve? What the world is like
now?

What my action do?


Agent
What action I should do
Condition-action
now?

actuator action

Gambar 2.4 Skema Agen Refleks Berbasis Model


(Russel dan Norvig, 2004)

2.3.2.3 Agen Berbasis Tujuan (Goal Based Agent)

Program agen dapat dikombinasikan dengan informasi mengenai hasil dari aksi yang
mungkin dilakukan. Tipe ini turut mempertimbangkan akibat yang diberikan serta
hasil yang dicapai atas aksi yang dilakukan. Pada dasarnya pengetahuan agen akan
keadaan lingkungannya tidak selalu cukup untuk memutuskan aksi yang akan
dilakukan. Dengan kata lain, selain keadaan sekarang, agen juga memerlukan
beberapa informasi tujuan yang menerangkan tentang tujuan kondisi yang
dikehendaki. Pencarian dan perencanaan adalah dua hal yang dilakukan untuk
mencapai tujuan agen. Meskipun tipe ini terlihat kurang efisien, namun sangat
fleksibel. Agen secara otomatis melakukan aksi yang relevan apabila terjadi
perubahan kondisi, begitu pula bila tujuannya diperbaharui maka agen akan
membangkitkan aksi yang baru pula.

Universitas Sumatera Utara


sensor percepts
state

ENVIRONMENT
How the world evolve? What the world is like
now?

What my action do?


What it will be like if I do action
Agent A?

What action I should do


Goals now?

actuator action

Gambar 2.5 Skema Diagram Agen Berbasis Tujuan


(Russel dan Norvig, 2004)

2.3.2.4 Agen Berbasis Kegunaan (Utility Based Agent)

Tipe ini merupakan pengembangan dari tipe berbasis tujuan. Tujuan dianggap tidak
cukup untuk membangkitkan perilaku agen berkualitas tinggi. Utility memiliki fungsi
yang dapat memetakan suatu keadaan ke dalam bilangan riil, yang menerangkan
derajat pencapaian keberhasilan. Spesifikasi lengkap fungsi utility mengizinkan
keputusan rasional dalam dua jenis kasus dimana agen menghadapi masalah, sehingga
tujuannya tidak tercapai. Pertama, ketika terjadi konflik tujuan dimana hanya beberapa
saja yang terpenuhi, fungsi utility menspesifikasikan tukar tambah yang sesuai.
Kedua, ketika terdapat beberapa tujuan yang dapat dilakukan agen, namun tidak dapat
ditentukan mana tujuan yang berhasil dicapai, dalam hal ini fungsi utility
menyediakan kemungkinan bobot kesuksesan dari masing-masing tujuan.

Universitas Sumatera Utara


sensor percepts
state

ENVIRONMENT
How the world evolve? What the world is like
now?

What my action do?


What it will be like if I do action
A?
Agent
How happy I will be in such
Utility a state?

What action I should do now?

actuator action

Universitas Sumatera Utara


Gambar 2.6 Skema Diagram Agen Berbasis Kegunaan
(Russel dan Norvig, 2004)

2.3.3 Lingkungan Agen dan Sifatnya

Perbedaan prinsip dari lingkungan agen berdasarkan sifatnya dipaparkan sebagai


berikut:

a. Accessible vs Inaccessible
Jika alat sensor agen memberikan akses untuk state-state lengkap dari suatu
lingkungan maka lingkungan tersebut accessible terhadap agen. Suatu
lingkungan dapat pula menjadi inaccessible akibat adanya gangguan dan
ketidakakuratan sensor atau hal lainnya.

b. Deterministic vs Nondeterministic
Apabila keadaan lingkungan selanjutnya dapat ditentukan atau terpengaruh
oleh keadaan sekarang dan tindakan yang dipilih agen, maka lingkungan
tersebut deterministic, sebaliknya disebut nondeterministic. Jika lingkungan
tersebut inaccessible maka kemungkinan lingkungan tersebut juga
nondeterministic.

c. Episodic vs Nonepisodic

Universitas Sumatera Utara


Dalam lingkungan episodic, pengalaman agen dibagi ke dalam beberapa
episode. Setiap episode terdiri dari persepsi dan aksi yang dilakukan oleh agen.
Kualitas aksi yang diberikan bergantung pada episode itu sendiri karena
rangkaian episode selanjutnya tidak bergantung pada episode sebelumnya.
Lingkungan episodic lebih sederhanan sebab agen tidak harus berpikir untuk
episode selanjutnya.

d. Static vs Dynamic
Apabila lingkungan mampu berubah sementara agen sedang berpikir, maka
lingkungan tersebut disebut dynamic, sebaliknya disebut static. Tentunya
lingkungan static lebih mudah bagi agen karena tidak perlu menyimpan suatu
state untuk melakukan aksi, serta tidak perlu mencemaskan perubahan waktu.
Apabila lingkungan tidak berubah dalam suatu waktu tapi agen dapat
menentukan tingkat keberhasilannya, maka lingkungan tersebut semidynamic.

e. Discrete vs Continous
Apabila tidak terdapat batasan jelas antara persepsi dan aksi yang ada maka
lingkungan tersebut adalah descrete. Salah satu contoh lingkungan descrete
adalah catur.

f. Single Agent vs Multi-Agent


Perbedaan antara keduanya sangat sederhana. Permainan teka teki silang
misalnya memiliki single agent, sedangkan catur memiliki dua agen.
Lingkungan dua agen juga terdapat pada permainan Five In Row.

2.4 Algoritma Pencarian

Ruang keadaan dalam Five In Row dapat dipresentasikan dengan pohon pencarian
(tree search). Tiap-tiap node pada pohon berhubungan dengan keadaan yang mungkin
dalam permainan tersebut. Setiap move (gerakan) akan menyebabkan perubahan dari
keadaan sekarang (current state) ke keadaan selanjutnya (child state). Permasalahan
yang sangat rumit yang dihadapi adalah menentukan child state mana yang terbaik.

Universitas Sumatera Utara


Beberapa cara yang digunakan untuk mengefektifkan proses pencarian adalah
(Kusumadewi, 2003):
a. Membentuk suatu prosedur sedemikian hingga hanya gerakan-gerakan yang
baik saja yang dibangkitkan.
b. Membentuk suatu prosedur pengujian sedemikian hingga path yang terbaik
yang akan di-explore pertama kali.

Pohon (tree) merupakan graph yang masing-masing node-nya (kecuali root)


hanya memiliki satu induk (parent), dengan kata lain tidak memiliki cycle. Node yang
tidak memiliki child disebut terminal node.

Pearl dalam David (2008) menyebutkan beberapa hal yang biasa dilakukan
dalam pohon pencarian adalah sebagai berikut:
a. Melihat ke depan seberapa banyak langkah yang memungkinkan.
b. Menghapus percabangan yang tidak berhubungan pada pohon pencarian
ataupun dengan metode-metode tertentu jika ada.
c. Menggunakan informasi penghitungan guna menghitung seberapa besar nilai
suatu posisi.

Metode pencarian yang umumnya digunakan pada pohon pencarian adalah


Breadth First Search (BFS) atau Depth First Search (DFS). Karena ruang pencarian
pohon permaianan Five In Row terlalu besar, maka penggunaan metode BFS dirasa
tidak tepat, sebab metode ini membutuhkan kapasitas memori yang besar. Berbeda
dengan metode DFS yang hanya membutuhkan memori relatif kecil.

2.4.1 Minimax

Minimax merupakan salah satu algoritma yang sering digunakan untuk game
kecerdasan buatan seperti catur, yang menggunakan teknik Depth First Search.
Algoritma Minimax akan melakukan pengecekan pada seluruh kemungkinan yang
ada, sehingga akan menghasilkan pohon permainan yang berisi semua kemungkinan

Universitas Sumatera Utara


tersebut. Keuntungan penggunaan algoritma Minimax adalah mampu menganalisis
semua kemungkinan posisi permainan untuk menghasilkan keputusan terbaik dengan
mencari langkah yang akan membuat lawan mengalami kerugian. Fungsi evaluasi
yang digunakan adalah fungsi evaluasi statis dengan asumsi lawan akan melakukan
langkah terbaik yang mungkin. Pada Minimax dikenal adanya istilah ply yaitu gerakan
pemain max dan lawan min.

Berikut adalah pseudocode Minimax.


MinMax (GamePosition game) {
return MaxMove (game);
}

MaxMove (GamePosition game) {


if (GameEnded(game)) {
return EvalGameState(game);
}
else {
best_move < - {};
moves <- GenerateMoves(game);
ForEach moves {
move <- MinMove(ApplyMove(game));
if (Value(move) > Value(best_move)) {
best_move < - move;
}
}
return best_move;
}
}

MinMove (GamePosition game) {


best_move <- {};
moves <- GenerateMoves(game);
ForEach moves {
move <- MaxMove(ApplyMove(game));
if (Value(move) > Value(best_move)) {
best_move < - move;
}
}

return best_move;
}

Algoritma Minimax memiliki kelemahan yang dirasa cukup menyulitkan.


Algoritma ini menelusuri seluruh node yang ada pada pohon pencarian mulai dari
kedalaman awal hingga kedalaman akhir, sehingga waktu yang dibutuhkan relatif
lama. Jika ada d kedalaman maksimum (depth) dan ada b langkah (branch) yang dapat
dilakukan di tiap node, maka time complexity dari algoritma adalah O(bd).

Universitas Sumatera Utara


MAX

MIN

MAX

MIN

Gambar 2.7 Pohon Minimax

2.4.2 Alpha Beta Pruning

Untuk menyiasati banyaknya node yang ditelusuri oleh Minimax, perlu dibuat sebuah
optimasi yang dapat mereduksi kemungkinan yang akan dianalisis. Alpha beta
pruning merupakan optimasi dari algoritma Minimax yang akan mengurangi jumlah
node yang dievaluasi oleh pohon pencarian. Algoritma ini akan berhenti mengevaluasi
langkah ketika terdapat minimal satu langkah yang lebih buruk daripada langkah yang
dievaluasi sebelumnya. Sehingga langkah berikutnya tidak perlu dievaluasi lebih jauh.
Dengan algoritma ini hasil optimasi dari algoritma Minimax tidak akan berubah.

Variabel alpha (α) digunakan sebagai batas bawah node max, sedangkan
variabel beta (β) digunakan sebagai batas atas node min. Pada node min, evaluasi akan
dihentikan apabila telah didapat node anak yang memiliki nilai lebih kecil dibanding
dengan nilai batas bawah (α), sebaliknya pada node max evaluasi akan dihentikan
apabila telah didapat node anak yang memiliki nilai lebih besar dibanding dengan nilai
batas atas (β).

Universitas Sumatera Utara


Pada root pohon pencarian, nilai α ditetapkan sama dengan -∞ sedangkan nilai
β diset sama dengan +∞. Node yang melakukan maksimasi akan memperbaiki nilai α
dari nilai anak-anaknya, sedangkan node yang melakukan minimasi akan
memperbaiki nilai β dari nilai anak-anaknya. Jika α > β, maka evaluasi dihentikan
(Kusumadewi, 2003).

Jika tiap kedalaman (depth) berada dalam best case (langkah terbaik selalu
langsung didapat) maka time complexity algoritma adalah O(bd/2) dengan b = faktor
percabangan tiap node dan d = kedalaman (depth) maksimum (Russell dan Norvig,
2003). Sedangkan time complexity Minimax yang O(bd), dengan demikian
penggunaan Alpha Beta Pruning dapat menghemat banyak waktu.

Berikut adalah pseudocode Alpha Beta Pruning.

int AlphaBeta (pos, depth, alpha, beta)


{
if (depth == 0) return Evaluate(pos);
best = -∞;
succ = Successors(pos);
while (not Empty(succ) && best < beta)
{
pos = RemoveOne(succ);
if (best > alpha) alpha = best;
value = -AlphaBeta(pos, depth-1, -beta, -alpha);
if (value > best) best = value;
}
return best;
}

Universitas Sumatera Utara


MAX

MIN

MAX

MIN

Gambar 2.8 Pohon Alpha Beta Pruning

2.4.3 Fungsi Evaluasi

Performa aplikasi permainan bergantung pada kualitas fungsi evaluasinya. Fungsi


evaluasi yang tidak akurat akan membuat agen mengambil keputusan yang salah
sehingga mengalami kekalahan. Fungsi evaluasi merupakan fungsi yang dikhususkan
untuk mengevaluasi nilai atau kelebihan posisi keping pemain pada papan, dimana
fungsi ini mengembalikan estimasi nilai yang dikehendaki dari sebuah posisi.

2.5 Reinforcement Learning

Reinforcement learning adalah pembelajaran terhadap apa yang akan dilakukan,


bagaimana memaparkan situasi ke dalam tindakan (Russel dan Norvig, 2004).
Reinforcement learning dapat digunakan untuk memecahkan masalah pengambilan
keputusan pada agen. Dasar dari reinforcement learning ini adalah pemanfaatan
pengalaman untuk mempelajari suatu tindakan yang akan dilakukan beserta akibatnya
berdasarkan nilai yang dihasilkan oleh value function. Value function merupakan

Universitas Sumatera Utara


fungsi yang dapat memberikan hasil terbaik yang dapat diperoleh agen jika melakukan
tindakan tertentu pada masa tertentu. Hasil pembelajaran akan diterjemahkan menjadi
policy agen, yang merupakan pemetaan antara keadaan dan tindakan. Secara lebih
jelas, policy dapat pula dikatakan sebagai aturan untuk memutuskan suatu tindakan
yang akan dilakukan pada keadaan tertentu.

Agen mempelajari policy yang paling optimal secara bertahap dengan


melakukan berbagai macam tindakan yang mungkin dilakukan pada suatu keadaan
tertentu. Policy agen diharapkan semakin meningkat seiring dengan bertambahnya
pengalaman agen terhadap kondisi lingkungannya. Agen mencoba memilih tindakan
yang paling sesuai dengan kondisi yang dihadapi, sehingga agen mendapatkan nilai
optimal ketika mencapai tujuan.

Untuk mencapai tujuan tersebut, agen tentunya harus pula mengoptimalkan


penggunaan sensor yang dimilikinya sehingga mampu melihat kondisi lingkungan dan
tindakan yang mungkin.

2.6 Java

Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan
pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada
satu sistem operasi, namun dikembangkan untuk berbagai sistem operasi dan bersifat
open source. Berikut adalah beberapa karakteristik Java:

1. Sederhana (Simple),
Memiliki sintaks yang hampir sama dengan C++ namun sintaks Java telah
banyak mengalami perkembangan terutama menghilangkan penggunaan
pointer yang rumit dan multiple inheritance.

2. Berorientasi objek (Object Oriented)


Java menggunakan pemrograman berorientasi objek yang membuat program
dapat dibuat secara modular sehingga dapat digunakan kembali.

Universitas Sumatera Utara


3. Terdistribusi (Distributed)
Java dibuat untuk membangun aplikasi terdistribusi secara mudah dengan
adanya libraries networking yang terintegrasi pada Java.

4. Interpreted
Dijalankan dengan interpreter Java Virtual Machine (JVM). Hal ini
menyebabkan source code Java dapat dijalankan pada platform berbeda-beda.

5. Robust
Java memiliki reliabilitas yang tinggi. Compiler pada Java memiliki
kemampuan mendeteksi error lebih teliti dibandingkan dengan bahasa
pemrograman lain.

6. Secure
Java juga digunakan untuk aplikasi internet, sehingga Java memiliki beberapa
mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak
sistem komputer yang menjalankan aplikasi tersebut.

7. Architecture Neutral
Program Java merupakan platform independent. Dengan kata lain, program
cukup mempunyai satu buah versi yang dapat dijalankan diberbagai platform
dengan JVM.

8. Portable
Souce code maupun program Java dapat dengan mudah dipindahkan ke
platform lain tanpa harus dikompilasi ulang.

9. Performance
Performance Java memang dirasa kurang tinggi, namun dapat ditingkatkan
dengan menggunakan Java lain seperti buatan Inprise, Microsoft maupun
Symantec yang menggunakan Just In Time Compilers (JIT).

Universitas Sumatera Utara


10. Multithread
Java memiliki kemampuan untuk membuat suatu program yang dapat
melakukan beberapa pekerjaan sekaligus secara simultan.

11. Dynamic
Java didesain untuk dijalankan pada lingkungan yang dinamis. Perubahan pada
suatu class dapat dilakukan tanpa menganggu program yang menggunakan
class tersebut.

2.7 UML (Unified Modelling Language)

UML (Unified Modelling Language) adalah keluarga notasi grafis yang didukung oleh
meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat
lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi
objek (Fowler, 2005). Notasi merupakan grafik-grafik yang terlihat dalam model,
misalnya notasi class diagram, activity diagram dan sebagainya. Sedangkan meta-
model adalah metode yang mendefinisikan hubungan antara notasi pada model.

UML bukanlah bahasa pemrograman visual, melainkan bahasa permodelan


visual yang berisikan notasi yang digunakan di model dan aturan-aturan yang
menuntun bagaimana menggunakannya.

UML lahir dari penggabungan banyak bahasa permodelan grafis berorientasi


objek yang berkembang pesat pada akhir 1980-an dan awal tahun 1990-an serta
merupakan standar yang relatif terbuka yang dikontrol oleh Object Management
Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan.
UML 2 terdiri dari 13 diagram resmi seperti yang terlihat pada tabel di bawah
ini, namun penggunaan keseluruhan diagram tidak mutlak.

Universitas Sumatera Utara


Tabel 2.1 Diagram UML
No. Diagram Kegunaan
1. Activity Behavior prosedural dan paralalel.
2. Class Class, fitur dan hubungan-hubungan.
3. Communication Interaksi antar objek, penekanan pada jalur.
4. Component Struktur dan koneksi komponen.
5. Composite structure Dekomposisi runtime sebuah class.
6. Deployment Pemindahan artifak ke node.
7. Interaction overview Campuran sequence dan activity diagram.
8. Object Contoh konfigurasi dari contoh-contoh.
9. Package Struktur hirarki compile-time.
10. Sequence Interaksi antar objek, penekanan pada sequence.
11. State machine Bagaimana event mengubah objek selama aktif.
12. Timing Interaksi antar objek, penekanan pada timing.
13. Use case Bagaimana pengguna berinteraksi dengan
sebuah sistem.
(Fowler, 2005)

Beberapa diagram dari tabel di atas akan dipaparkan sebagai berikut.

2.7.1 Activity Diagram (Diagram Aktivitas)

Diagram ini digunakan untuk menunjukkan aliran aktivitas di sistem sekaligus sebagai
pandangan dinamis terhadap sistem. Diagram ini penting untuk memodelkan fungsi
sistem dan menekankan pada aliran kendali di antara objek-objek.

Universitas Sumatera Utara


Gambar 2.9 Contoh Activity Diagram
(Fowler, 2005)

Diagram ini dapat dikatakan mirip seperti diagram alir namun diperluas
dengan menunjukkan aliran kendali suatu aktivitas ke aktivitas lain serta mendukung
behavior paralel. Diagram aktivitas berupa operasi-operasi dan aktivitas-aktivitas use
case.

2.7.2 Class Diagram (Diagram Kelas)

Diagram kelas merupakan diagram yang paling sering digunakan pada permodelan
berorientasi objek. Diagram kelas menunjukkan aspek statik sistem terutama untuk
mendukung kebutuhan fungsional sistem, misalnya kebutuhan pengguna. Class pada
diagram kelas dapat secara langsung diimplementasikan di bahasa pemrograman
objek secara langsung mendukung bentukan kelas.

Universitas Sumatera Utara


Gambar 2.10 Contoh Class Digram
(Fowler,2005)

2.7.3 Sequence Diagram

Sebuah sequence diagram menjabarkan behavior sebuah skenario tunggal. Skenario


adalah rangkaian langkah-langkah yang menjabarkan sebuah interaksi antara seorang
pengguna dengan sebuah sistem. Diagram tersebut menunjukkan sejumlah objek
contoh dan pesan-pesan yang melewati objek-objek ini di dalam use case.

Universitas Sumatera Utara


Gambar 2.11 Contoh Sequence Diagram
(Fowler, 2005)

2.7.4 Use Case

Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem (Fowler,
2005). Use case mendeskripsikan tipe interaksi antara pengguna dengan sistem
dengan menyajikan narasi bagaimana sistem tersebut digunakan.

Gambar 2.12 Contoh Use Case


(Fowler, 2005)

Universitas Sumatera Utara


BAB 3

ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis Kebutuhan Aplikasi

Analisis sistem adalah proses menentukan kebutuhan sistem, apa yang harus
dilakukan sistem untuk memenuhi kebutuhan klien (user) (Sutopo, 2001). Tahapan
analisis kebutuhan merupakan tahap awal untuk membangun sebuah sistem atau
aplikasi. Dengan adanya analisis ini diharapkan agar nantinya dihasilkan aplikasi yang
baik dan sesuai dengan kebutuhan.

3.1.1 Representasi Lingkungan

Lingkungan merupakan tempat agen melakukan interaksi. Lingkungan permainan


Five in Row berupa papan (board) yang direpresentasikan sebagai berikut.

10

1 2 3 4 5 6 7 8 9 10

Gambar 3.1 Papan Five in Row

Universitas Sumatera Utara


3.1.1 Representasi Material

Material permainan Five in Row yang berupa kepingan (piece) direpresentasikan


sebagai berikut: No piece = 0, User piece = 1, dan Computer piece = 2. Kepingan
pemain (user piece) akan berwarna hitam, sedangkan kepingan komputer (computer
piece) akan berwarna putih.

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 2 0 0 0 0 0

0 0 0 1 1 2 1 1 0 0

0 0 0 0 1 1 2 0 0 0

0 0 2 0 1 2 0 2 0 0

0 0 0 2 1 1 0 0 2 0

0 0 0 0 2 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

Gambar 3.2 Representasi Material

3.1.2 Flowchart Aplikasi

Flowchart (diagram alir) merupakan diagram yang memperlihatkan aliran kontrol


seluruh sistem termasuk program, input, output, dan database (Whitten, 1998).
Dengan adanya flowchart, maka runtutan proses berjalannya suatu aplikasi dapat
dilihat lebih jelas.

Universitas Sumatera Utara


Start

Interface Aplikasi

yes

Mulai Bermain? No Pilih Level?

no
Yes

User Piece Exit? no About yes

no

yes Computer Piece Tampilan Game Play Five In Row

Permainan
Berakhir?

yes

New Game?

yes

no no

Stop

Gambar 3.3 Flowchart Aplikasi Five in Row

Untuk lebih jelasnya, proses aplikasi Five in Row akan dipaparkan sebagai berikut.
1. User menjalankan aplikasi permainan, kemudian komputer akan
membangkitkan interface papan permainan sekaligus level default, yaitu 2.
2. Jika user langsung ingin bermain melawan komputer maka silakan meletakkan
keping (piece) pada kotak yang diinginkan. Setelah itu komputer akan
membangkitkan gerakan kemudian menampilkan posisi computer piece yang
akan membendung gerakan user.
3. Selama permainan berlangsung komputer akan membangkitkan fungsi
terminal test untuk mengecek apakah permainan telah berakhir atau belum.

Universitas Sumatera Utara


Apabila belum permainan akan terus berlanjut. Jika permainan telah berakhir
maka user boleh memilih untuk memulai permainan baru ataupun tidak.
4. Level default adalah level 2, namun user boleh memilih level permainan sesuai
keinginan. Level dua dijadikan default sebab level satu dirasa terlalu mudah
untuk dikalahkan.
5. Jika user ingin mengetahui informasi mengenai Five in Row, user dapat
memilih menu about.

3.1.3 Analisis Algoritma

Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk
membangun aplikasi ini adalah Minimax dan Alpha Beta Pruning. Algoritma
Minimax tidak digunakan secara tunggal sebab algoritma tersebut dirasa kurang
efisien. Minimax akan mengevaluasi seluruh node yang ada pada pohon pencarian
satu persatu hingga selesai, sedangkan jumlah node yang akan dievaluasi tidaklah
sedikit. Berikut adalah tabel jumlah node yang akan dievaluasi menurut tingkat
kedalamannya, dimana branching factor b adalah jumlah pergerakan maksimum
masing-masing node dan depth d adalah kedalaman pohon pencarian.
Tabel 3.1 Hubungan Kedalaman dan Jumlah Node
Kedalaman Jumlah node O(bd)
1 100
2 10000
3 1000000
4 100000000
5 10000000000

Ukuran papan permainan Five in Row adalah 10 x 10 yang berarti berjumlah


100 kotak. Dengan demikian jumlah pergerakan maksimum yang dimiliki masing-
masing node adalah 100, sebab Five in Row tidak memiliki illegal move seperti halnya
permainan catur ataupun Othello. Yang dimaksud dengan illegal move adalah gerakan
ilegal atau batasan pergerakan pemain, misalnya kuda hanya boleh melangkah sesuai

Universitas Sumatera Utara


dengan huruf L pada catur. Jumlah pergerakan maksimum ini akan dijadikan
percabangan pada pohon pencarian.

Dengan adanya Alpha Beta Pruning diharapkan waktu pencarian akan jauh
lebih singkat karena tujuan utama dari algoritma ini adalah mengabaikan subtree atau
percabangan yang tidak mempengaruhi hasil akhir. Berikut beberapa ketentuan dalam
algoritma Alpha Beta Pruning.
1. Alpha (α) merupakan nilai batas bawah maksimum atau nilai terbaik
sementara pada max. Alpha digunakan pada node min dan diset pada node
max.
2. Beta (β) merupakan nilai batas atas minimum atau nilai terbaik sementara pada
min. Beta digunakan pada node max dan diset pada node min.
3. Max bertujuan untuk memaksimalkan nilai dengan cara memilih node anak
dengan nilai paling besar. Nilai awal max adalah –∞ dan akan bertambah
seiring dengan pencarian.
4. Min bertujuan untuk meminimalkan nilai dengan cara memilih node anak
dengan nilai paling kecil. Nilai awal min adalah +∞ dan akan berkurang
seiring dengan berjalannya pencarian.
5. Max adalah agen yang mewakili komputer, sedangkan min adalah agen yang
mewakili gerakan lawan dalam hal ini user.

Berikut adalah pseudocode algoritma Minimax dengan optimasi Alpha Beta


Pruning.

int alphaBetaMax( int alpha, int beta, int depthleft ) {


if ( depthleft == 0 ) return evaluate();
for ( all moves) {
score = alphaBetaMin( alpha, beta, depthleft - 1 );
if( score >= beta )
return beta; // beta-cutoff
if( score > alpha )
alpha = score; // Alpha bertindak sebagai max
}
return alpha;
}

int alphaBetaMin( int alpha, int beta, int depthleft ) {


if ( depthleft == 0 ) return -evaluate();
for ( all moves) {
score = alphaBetaMax( alpha, beta, depthleft - 1 );
if( score <= alpha )

Universitas Sumatera Utara


return alpha; // alpha-cutoff
if( score < beta )
beta = score;// beta bertindak sebagai Min
}
return beta;
}

Berikut adalah flowchart algoritma Minimax dengan optimasi Alpha Beta


Pruning.

Start

Terminal
Ya
State?

Tidak

Successor β ß Min

Node =
MaxNode
Tidak β≤α Ya

Ya

α ß Max Hitung Value

α ≥ β Ya

Tidak Stop
Tidak

Gambar 3.4 Flowchart Algoritma Minimax dengan Optimasi Alpha Beta


Pruning

Flowchart di atas memperlihatkan bagaimana algoritma Minimax dan Alpha


Beta Pruning mengevaluasi setiap node pada pohon permainan.

Pada awal permainan akan diperiksa terlebih dahulu apakah node yang
diperiksa merupakan terminal state atau tidak, jika ya maka fungsi evaluasi akan

Universitas Sumatera Utara


mengevaluasi nilai yang diperoleh dan menghentikan pencarian. Sebaliknya jika tidak
maka successor akan dibangkitkan untuk mengevaluasi node anak yang ada pada
kedalaman selanjutnya.

Jika yang dievaluasi adalah node max maka nilai node tersebut akan diperiksa.
Jika nilainya maksimal maka akan ditetapkan menjadi α. Apabila nilai α lebih besar
atau sama dengan β, maka evaluasi dihentikan. Dengan demikian node di bawahnya
tidak perlu dievaluasi.

Sebaliknya jika yang dievaluasi adalah node min maka akan terus diperiksa
selama nilai β tidak lebih kecil atau sama dengan α. Apabila nilai β ditemukan bernilai
lebih kecil atau sama dengan nilai α maka evaluasi dihentikan.

Berikut ini akan dipaparkan tahapan optimasi Alpha Beta Pruning secara
singkat.
1. Dapatkan nilai Alpha dan Beta. Alpha adalah nilai maksimum yang
ditemukan. Beta adalah nilai minimum yang ditemukan.
2. Pada node max, sebelum mengevaluasi node anak, bandingkan terlebih dahulu
nilai yang didapatkan dengan nilai Beta. Jika nilainya lebih besar, batalkan
pencarian untuk node tersebut.
3. Pada node min, sebelum mengevaluasi node anak bandingkan terlebih dahulu
nilai yang didapatkan dengan nilai Alpha. Jika nilainya lebih kecil, batalkan
pencarian untuk node tersebut.

Algoritma Minimax ini bersifat depth first search, yang berarti proses
pengecekan akan dilakukan hingga ke kedalaman tertentu sesuai level permainan
kemudian beralih ke tingkat atas. Untuk lebih jelasnya proses depth first search akan
digambarkan sebagai berikut.

Universitas Sumatera Utara


A

1 1524 38
14 25

D
B C

2
16 19 37
7 8 13 20 23 26 31 32

F G H I
E J

3 4 5 10 11 18 21 27 28 34 35 36
6 9 12 22 29 30 33
17

3 -3 5 10 1 0 1 0 -3 -10

K L M N S T O P Q R

Gambar 3.5 Proses Pencarian Depth First Search

Awal pencarian akan dimulai dari node root yaitu node A, dimana node ini
memiliki tiga anak yaitu node B, node C dan node D. Yang pertama diperiksa adalah
node B beserta turunannya yaitu node E dan node F, namun node E yang memiliki
anak node K dan L harus dievaluasi terlebih dahulu kemudian nilai dikembalikan ke
node E, lalu node E mengembalikan nilai pada node induknya yaitu node B. Karena
node B masih memiliki node anak yang belum diperiksa maka proses evaluasi terus
berlangsung terhadap node F beserta turunannya. Setelah seluruh cabang pada node B
selesai diperiksa maka nilai akan dikembalikan kepada node A. Demikian seterusnya
hingga proses pencarian seluruh pohon selesai dijalankan. Proses evaluasi pohon
pencarian sesuai dengan arah dan nomor pada anak panah.

Universitas Sumatera Utara


Gambar 3.6 Diagram Pohon Pencarian

Diagram di atas memperlihatkan bahwa pada baris max nilai alpha (α) selulu -
∞, sedangkan pada baris min nilai beta (β) selalu +∞. Sebenarnya nilai α dan β yang
terdapat pada diagram di atas bukanlah nilai alpha dan beta selama proses
berlangsung. Nilai di atas hanya memperlihatkan bahwa pada node max fungsi
evaluasi hanya boleh mengubah nilai alpha dan sebaliknya pada node min fungsi
evaluasi hanya boleh mengubah nilai beta.

Untuk lebih jelasnya mengenai proses evaluasi pada pohon tersebut, akan
dipaparkan lebih lanjut dalam bentuk tabel berikut ini.

Universitas Sumatera Utara


Tulang

Tabel 3.2 Proses Pencarian Alpha Beta Pruning


No Node Node yang Nilai α Nilai β Nilai Fungsi Keterangan
Yang dipanggil Node
dievaluasi
1. A B -∞ +∞ - Node A (B, -∞, +∞) Pada awal permainan nilai α = -∞ sedangkan
nilai β = +∞.
2. B E -∞ +∞ - Node B (E, -∞, +∞)

3. E K -∞ +∞ 3 Node E (K, -∞, +∞) Nilai 3 ditetapkan menjadi nilai α

4. E L 3 +∞ 3 Node E (L, 3, +∞) Nilai node L < node K, dengan demikian node E
(max) tetap akan memiliki nilai 3.
5. E Selesai α=3 β = +∞ E=3 Node E telah selesai dievaluasi, dengan
demikian proses akan beralih ke tingkat atas
yaitu node B.
6. B F -∞ 3 3 Node B (F, -∞, 3) Nilai 3 yang diperoleh dari node E diset menjadi
nilai β, sedangkan nilai α kembali menjadi -∞.

Universitas Sumatera Utara


Tabel 3.2 Proses Pencarian Alpha Beta Pruning (Sambungan)

No. Node Node yang Nilai α Nilai β Nilai Fungsi Keterangan


yang di dipanggil Node
evaluasi
7. F M -∞ 3 5 Node F (M, -∞, 3) Nilai 5 berasal dari node M yang kemudian
ditetapkan menjadi nilai α.
8. F Selesai α=5 β=3 F=5 Node N tidak perlu diperiksa sebab nilai α≥ β.
(α = 5 sedangkan β = 3).
9. B Selesai -∞ β=3 B=3 Nilai 3 diperoleh dari node E yang bernilai lebih
kecil dari node F.
10. A C 3 +∞ Node A (C, 3, +∞) Nilai node A sementara adalah 3.

11. C G 3 +∞ G=1 Node C (G, 3, +∞) Node G bernilai 1.

12. C Selesai α=3 β=1 C=1 Node H tidak perlu diperiksa karena didapati
bahwa node C < node B.
13. A D 3 +∞ A=3 Node A (D, 3, +∞) Node A masih bernilai 3 karena node C < node
D=- B, sehingga tidak mempengaruhi nilai awal.
14. D I 3 +∞ D=- Node D (I, 3, +∞)

Universitas Sumatera Utara


Tabel 3.2 Proses Pencarian Alpha Beta Pruning (Sambungan)

No. Node Node yang Nilai α Nilai β Nilai Fungsi Keterangan


yang di dipanggil Node
evaluasi
15. I O 3 +∞ I=1 Node I (O, 3, +∞) Nilai 1 diperoleh dari node O, kemudian
ditetapkan menjadi nilai α.
16. I P 3 +∞ I=1 Node I (P, 3, +∞) Nilai node I tetap 1.

17. I Selesai α=1 +∞ I=1

18. D Selesai β=1 D=1 Node J tidak perlu diperiksa karena node D <
node B
19. A Selesai α=3 β = +∞ 3 Jadi, fungsi evaluasi mendapatkan nilai 3 untuk
node A.

Universitas Sumatera Utara


3.1.4 Nilai Formasi

Nilai formasi mutlak diperlukan sebagai bobot dari pohon pencarian yang akan
dibangkitkan. Nilai formasi merupakan nilai yang diperoleh berdasarkan jumlah
keping yang ada dalam satu baris, kolom ataupun diagonal pada papan permainan.
Dua atau tiga buah kepingan yang berada pada satu baris ataupun kolom tentunya
berbeda nilainya dengan keping tunggal, begitu pula halnya dengan sederetan
kepingan yang tidak terbendung lawan tentunya memiliki nilai lebih unggul
dibandingkan dengan yang terbendung. Berikut adalah tabel nilai formasi pada
permainan Five in Row dengan ‘X’ adalah user piece dan ‘O’ adalah computer
piece.
Tabel 3.3 Nilai Formasi
Nama Formasi Nilai Bentuk Formasi
Comp_capped2 5 _OOX_
User_capped2 5 _XXO_
Comp_uncapped2 10 _OO_
User_uncapped2 10 _XX_
Comp_capped3 20 _OOOX
User_capped3 30 _XXXO
Comp_uncapped3 100 _OOO_
User_uncapped3 120 _XXX_
Comp_capped4 500 _OOOOX
User_capped4 500 _XXXXO

Nilai formasi tersebut diperoleh dengan mempertimbangkan prioritas


formasi yang akan dipilih oleh agen, misalnya apabila ditemukan formasi
comp_uncapped3 dan user_uncapped3 tentunya harus diprioritaskan penutupan
pada formasi user_uncapped3 sebab dikhawatirkan user dapat memenangkan
permainan terlebih dahulu karena mendapat giliran pertama melangkah.

Universitas Sumatera Utara


3.1.5 Fungsi Evaluasi

Fungsi evaluasi berfungsi sebagai penghitung nilai dari setiap node yang terdapat
pada pohon permainan. Nilai yang telah didapat akan dijadikan acuan pergerakan
selanjutnya. Formasi yang dibentuk oleh keping permainan akan menghasilkan
nilai yang akan dijadikan bobot nilai pohon.

Secara matematik, fungsi evaluasi diekspresikan sebagai berikut:


���� (�) = �1 �1 (�) + �2 �2 (�) + … + �� �� (�) = � �� �� (�)


�=1

Dalam catur, w adalah bobot tiap buah catur dan f adalah jumlah buah catur
tersebut pada papan catur. Sedangkan dalam Five in Row, w adalah bobot formasi
dan f adalah jumlah formasi yang terbentuk.

����� = ��2 . ��2 + ��� 2 . ��� 2 + ��3 . ��3 + ��� 3 . ��� 3 + ��4 . ��4

Dimana C 2 adalah capped2, UC 2 adalah uncapped2, C 3 adalah capped 3, UC 3


adalah uncapped3 dan C 4 adalah capped4. Berikut adalah contoh perhitungan
fungsi evaluasi pada aplikasi ini.
J

1 2 3 4 5 6 7 8 9 10

Gambar 3.7 Posisi Permainan Sementara

Universitas Sumatera Utara


Yang pertama kali dilakukan adalah pemeriksaan formasi keping putih
(computer piece). Pada baris B terdapat 3 keping putih, namun ini tidak bisa
dihitung sebagai solusi sebab telah terbendung oleh keping hitam. Begitu pula
dengan diagonal yang diisi pada kotak F5, G6, H7 dan I8 yang tidak bisa
dianggap solusi.
1. Pada baris F terdapat uncapped2 yaitu F3 dan F5. Nilainya = 5.
2. Pada kolom 3 terdapat capped2 yaitu F3 dan C3. Nilainya = 5.
3. Pada kolom 5 terdapat capped2 yaitu E5 dan F5. Nilainya = 5.
4. Pada kolom 7 terdapat capped4 yaitu F7, D7, C7, B7. Nilainya = 500.
5. Pada diagonal terdapat uncapped2 yaitu G6 dan F7. Nilainya = 5.
6. Diagonal lain terdapat capped2 yaitu E5 dan C3. Nilainya = 5.
7. Keping B6 dan C7 juga membentuk capped2. Nilainya = 5.

Dengan demikian jumlah uncapped2 ada 2 formasi, capped2 ada 4 formasi dan
capped4 1 formasi. Maka jumlah valuenya adalah:

Value Max = 2*5 + 4*5+ 500 = 530.

Sekarang akan dicari value dari keping hitam atau user piece. Seperti langkah di
atas, pertama kali harus dilakukan evaluasi posisi.
1. Pada baris D terdapat capped2 yaitu D5 dan D6. Nilainya = 5.
2. Pada kolom 4 terdapat uncapped2 yaitu C4 dan E4. Nilainya = 5.
3. Pada diagonal terdapat capped2 yaitu F6 dan G7. Nilainya = 5.
4. Pada diagonal lain terdapat uncapped2 yaitu C5 dan D6. Nilainya = 5.

Maka jumlah formasi capped2 ada 2, begitu pula dengan formasi uncapped2.
Sehingga jumlah valuenya adalah:

Value Min = 2*5 + 2*5 = 20

Universitas Sumatera Utara


Sehingga value total:
Value Total = 530 – 20 = 490

Yang artinya posisi di atas sangat menguntungkan bagi pemain putih (computer).
Jika giliran putih bermain, maka tidak diragukan lagi formasi capped4 akan
segera dijadikan formasi kemenangan. Sebaliknya apabila giliran hitam maka user
akan segera mengambil tindakan dengan menutup kotak E7 dengan keping hitam
sehingga jalan kemenangan putih tertutup.

3.1.6 Proses Evaluasi Formasi

Proses untuk mendapat bobot nilai pada pohon permainan tidaklah singkat.
Mulanya komputer akan menelusuri kemungkinan pergerakan langkah yang akan
dilakukan dan asumsi pergerakan lawan. Kemudian hasil dari formasi yang
terbentuk dari masing-masing kemungkinan akan dihitung sesuai dengan fungsi
evaluasi. Berikut akan dibahas sebuah contoh kasus proses evaluasi formasi yang
terdapat pada pohon permainan Five in Row.

Gambar 3.8 Contoh Kondisi Permainan

Gambar di atas adalah sebuah keadaan yang terjadi pada pertengahan


permainan yang akan dibahas proses evaluasinya. Posisi seperti gambar di atas
akan dijadikan root pada pohon permainan yang selanjutnya akan ditelusuri
kemungkinan pergerakannya.

Universitas Sumatera Utara


Gambar 3.9 Analisis Pohon Permainan

Universitas Sumatera Utara


Gambar di atas memperlihatkan pohon permainan dimana posisi teratas
merupakan root atau posisi awal yang akan dievaluasi, sedangkan kedalaman
pertama adalah beberapa asumsi gerakan user (min) yang dievaluasi oleh
komputer dan kedalam kedua adalah langkah-langkah yang diambil oleh
komputer (max).

Gambar bintang berwarna hitam merupakan kemungkinan pergerakan


langkah yang dilakukan oleh lawan (user), dan gambar bintang berwarna merah
merupakan kemungkinan langkah yang diambil oleh komputer. Tentu saja jumlah
node yang diperiksa sebenarnya lebih banyak, namun pada gambar di atas hanya
ditampilkan beberapa node sebagai contoh.

Berikutnya, masing-masing kondisi pada kedalaman kedua dihitung


nilainya (value) berdasarkan fungsi evaluasi yang ada, dengan memperhatikan
seluruh formasi yang terbentuk seperti yang terlihat pada tabel 3.3. Pada contoh di
atas, kedalaman kedua merupakan terminal state yang ada pada permainan level
dua. Apabila user memilih level tiga, berarti terminal state-nya adalah kedalaman
ketiga dan seterusnya. Berikut adalah hasil penghitungan value dari masing-
masing kondisi.

Tabel. 3.4 Value Tiap Node


No. Node yang Dievaluasi Value
1.
-570

2.
-630

Universitas Sumatera Utara


Tabel. 3.4 Value Tiap Node (Sambungan)
No. Node yang Dievaluasi Value
3.
-95

4.
-165

5.
-145

6.
-170

7.
-190

Apabila dilihat dari hasil perhitungan value di atas, maka peluang


komputer menang relatif kecil bila dibandingkan dengan peluang kemenangan
user dengan asumsi user bermain secara maksimal.

Nilai-nilai yang telah didapat di atas kemudian dijadikan sebagai bobot


dari masing-masing node pada pohon pencarian tersebut. Dengan adanya bobot
dari masing-masing node maka proses penelusuran pohon pencarian mulai

Universitas Sumatera Utara


dilakukan, disinilah letak tugas dari algoritma Minimax dan Alpha Beta Pruning.
Minimax dan Alpha Beta Pruning akan menelusuri node-node tersebut hingga
diperoleh hasil maksimal yang terdapat pada pohon permainan.

Namun ada kalanya terdapat beberapa kondisi yang perlu dilakukan


beberapa pengecualian, misalnya ada kondisi permainan yang memiliki value total
yang sama, sehingga agen harus mengambil keputusan yang tepat dengan
melakukan memilih prioritas. Berikut adalah beberapa parameter yang perlu
diterapkan untuk kondisi khusus.
1. Apabila ada dua value yang sama, dan keduanya merupakan nilai terbaik
maka agen akan memilih node yang terlebih dahulu didapatkan atau
ditelusuri.
2. Jika agen menemukan formasi empat, misalnya comp_capped4 atau
comp_uncapped4, maka tidak perlu lagi dilakukan penghitungan value.
Agen akan langsung membentuk Five In Row.

3.2 Perancangan Aplikasi

Menurut John Burch dan Gary Grudnitski dalam Yatini (2007) menyebutkan
bahwa perancangan dapat didefinisikan sebagai penggambaran, perencanaan dan
pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam
suatu kesatuan yang utuh dan berfungsi.

Perancangan sistem dapat dibagi menjadi dua tahap yaitu perancangan


konseptual dan perancangan fisik yang tujuan utamanya adalah menghasilkan
suatu rancangan yang mampu memenuhi kebutuhan pengguna aplikasi.

Universitas Sumatera Utara


3.2.1 Perancangan Konseptual

Tahapan perancangan ini menitikberatkan pada perencanaan konsep, misalnya


sistem kontrol, rancangan modul dan aliran data.
Berikut adalah diagram UML dari aplikasi Five in Row ini yang dibuat
dengan perangkat lunak Bouml.

3.2.1.1 Deskripsi Class Diagram Aplikasi

Sebuah aplikasi tentunya memerlukan gambaran sistem secara menyeluruh agar


perancangan fisik aplikasi menjadi lebih mudah. Gambaran umum class diagram
aplikasi Five in Row dapat dilihat pada gambar di bawah ini.

Gambar 3.10 Class Diagram

Diagram di atas menunjukkan hubungan (asosiasi) dari masing-masing


class secara keseluruhan. Namun tanggung jawab dan fungsi dari class – class
tersebut belum terdefenisi. Untuk itu perlu dibuat CRC (Class, Responsibility and

Universitas Sumatera Utara


Collaboration) Card dari masing-masing class. Berikut ini adalah CRC Card dari
masing-masing class.

Tabel 3.5 CRC Card Class Interface


Class Name : Interface
Responsibilities Collaborations
1. Create tampilan board. 1. Memanggil class Board.
2. Create tampilan menu-menu 2. Memanggil class Constanta
pada interface. untuk mendefinisikan Col dan
3. Clear board untuk new game. Row Board.

Tabel 3.6 CRC Card Class Constanta


Class Name : Constanta
Responsibilities Collaborations
1. Mendefenisikan banyaknya
kolom.
2. Mendefenisikan banyaknya
baris.
3. Mendefenisikan kondisi
kemenangan.
4. Mendefinisikan ComputerPiece,
UserPiece dan NoPiece.

Tabel 3.7 CRC Card Class Check


Class Name : Check
Responsibilities Collaborations
1. Memeriksa akhir permainan. 1. Check memanggil class
2. Memeriksa kondisi Constanta.
kemenangan.
3. Memeriksa formasi piece.

Universitas Sumatera Utara


Tabel 3.8 CRC Card Class AIPlayer
Class Name : AIPlayer
Responsibilities Collaborations
1. Evaluasi nilai formasi piece. 1. Berasosiasi dengan class Check
2. Membangkitkan gerakan
selanjutnya.
3. Mengaktifkan ABPruning.
4. Set Level yang telah ditentukan
user.

Tabel 3.9 CRC Card Class Game


Class Name : Game
Responsibilities Collaboration
1. Menentukan giliran pemain. 1. Menampilkan piece untuk class
2. Membaca gerakan pemain. Interface.

Tabel 3.10 CRC Card Class User


Class Name : User
Responsibilities Collaborations
1. Mendefinisikan objek piece. 1. Menggunakan ActionListener
untuk membaca inputan user.

3.2.1.2 Deskripsi Kebutuhan Fungsional Aplikasi

Use case adalah teknik untuk mendeskripsikan persyaratan fungsional sebuah


sistem. Fungsi use case adalah mendeskripsikan interaksi antara user dan aplikasi
secara ekternal, mirip dengan diagram konteks pada DFD sehingga tidak dijumpai
adanya hubungan antara use case dengan class-class. Berikut adalah diagram use
case aplikasi Five in Row.

Universitas Sumatera Utara


Gambar 3.11 Use case Aplikasi

3.2.1.3 Deskripsi Proses dan Aktivitas Aplikasi

Proses yang akan dideskripsikan adalah proses yang terdapat pada diagram use
case di atas, yaitu Play, New game, Level dan About. Sedangkan aktivitas aplikasi
akan digambarkan dengan activity diagram.

Activity diagram adalah teknik untuk menggambarkan logika prosedural,


proses bisnis dan aplikasi kerja (Fowler, 2005). Activity diagram sebenarnya mirip
dengan flowchart namun diperluas dengan menunjukkan aliran kendali dari satu
aktivitas ke aktivitas lain dan mendukung behavior paralel.

Berikut ini adalah tabel proses dan diagram aktivitas untuk use case di
atas.

1) Play

Berikut ini adalah tabel proses dan activity diagram Play.

Universitas Sumatera Utara


Tabel 3.11 Proses Play
Hal Deskripsi
Usecase Name Play
Brief Description Player menjalankan aplikasi dan
langsung mulai bermain melawan
AI.
Precondition Aplikasi aktif.
Flow of Events 1. Player menjalankan aplikasi
Five in Row.
2. Sistem menampilkan
interface aplikasi.
3. Player meletakkan
UserPiece pada board.
4. Aplikasi membaca inputan
Player.
5. Aplikasi mengevaluasi nilai
formasi piece dan
membangkitkan gerakan
komputer.
6. Posisi ComputerPiece
ditampilkan pada board.
7. Jika permainan berakhir
maka sistem akan
menampilkan message
dialog menang, kalah atau
seri.
Post Condition Tampilan message dialog.
Alternative Flows and Exception Jika permainan belum berakhir
maka proses akan kembali
berulang, dan Player diminta
melangkah lagi.

Universitas Sumatera Utara


Gambar 3.12 Activity diagram Play

2) New game

Berikut ini adalah tabel proses dan activity diagram New game.

Tabel 3.12 Proses New game


Hal Deskripsi
Usecase Name New game
Brief Description Proses ini berfungsi untuk memulai
permainan baru dan menampilkan new
board.
Precondition Permainan sebelumnya telah berakhir
atau Player ingin mengganti level.
Flow of Events 1. Aplikasi menampilkan papan
permainan.
2. Player memilih menu new game

Universitas Sumatera Utara


3. Aplikasi akan menerima inputan
Player dan menghapus objek
pada papan permainan.
4. Aplikasi menampilkan papan
permainan baru.
Post Condition Tampilan new board.
Alternative Flows and Exection Tidak ada.

Gambar 3.13 Activity diagram New game

3) Level

Berikut ini adalah tabel proses dan activity diagram Level.

Tabel 3.13 Proses Play


Hal Deskripsi
Usecase Name Level
Brief Condition Proses ini memungkinkan Player untuk
mengubah level permainan.
Precondition Level default = 2.
Flow of Events 1. Aplikasi menampilkan papan

Universitas Sumatera Utara


permainan.
2. Player memilih menu level dan
mengubah level permainan.
3. Aplikasi menetapkan level
pilihan Player sebagai level
baru.
4. Aplikasi menampilkan new
board.
Post Conditions AIPlayer bermain sesuai dengan level.
Alternative Flows and Exception Tidak ada.

Gambar 3.14 Activity diagram Level

4) About

Berikut ini adalah tabel proses dan activity diagram About.

Tabel 3.14 Proses About


Hal Deskripsi
Usecase Name About
Brief Conditions Proses ini berfungsi untuk

Universitas Sumatera Utara


menampilkan informasi mengenai
aplikasi.
Precondition Tidak ada.
Flow of Events 1. Aplikasi menampilkan interface
papan permainan beserta
menubar.
2. Player memilih menu About.
3. Aplikasi akan menampilkan
jendela about.
Post Condition Tidak ada.
Alternative Flows and Exception Tidak ada.

Gambar 3.15 Activity diagram About

3.2.1.4 Deskripsi Sequence Diagram Aplikasi

Sequence Diagram digunakan untuk memodelkan barisan kejadian yang terjadi


selama satu eksekusi sistem. Fungsi Sequence Diagram antara lain untuk
overview perilaku sistem, memperlihatkan objek-objek yang diperlukan,

Universitas Sumatera Utara


mendokumentasikan skenario dari suatu use case serta memeriksa jalur
pengaksesan.

1) Play

Sebelum membuat sequence diagram, terlebih dahulu perlu diketahui class –


class yang terlibat dalam proses Play ini.

Gambar 3.16 Komponen Play

Rangkaian kejadian yang terjadi pada proses Play akan dipaparkan sebagai
berikut.
1. Player melakukan aktivasi aplikasi.
2. Class Interface akan memanggil class Board untuk menampilkan papan
permainan dan sebagai reaksi, class Board menampilkan new board.
3. Setelah tampilan aplikasi muncul maka Player dapat memulai permainan
dengan meletakkan UserPiece pada papan.
4. Class Interface membaca inputan Player dengan bantuan class
ActionListener. Informasi inputan Player akan diberikan kepada class
Game, sehingga class Game dapat menentukan giliran pemain selanjutnya.

Universitas Sumatera Utara


5. Class Game mendefinisikan bahwa pemain selanjutnya adalah komputer,
dengan demikian class AIPlayer akan memanggil class Check untuk
memeriksa formasi yang terdapat pada papan.
6. Class Check akan memberikan info formasi kondisi papan permainan
kepada class AIPlayer untuk kemudian dihitung nilai evaluasinya.
7. Class AIPlayer kemudian membangkitkan gerakan untuk mengimbangi
permainan user.
8. ComputerPiece yang dibangkitkan class AIPlayer akan ditampilkan pada
interface sehingga user dapat melihat posisi komputer.
9. Proses dari nomor 3 hingga nomor 8 akan terus berulang hingga akhir
permainan. Class Check akan selalu mengawasi papan permainan dengan
melakukan terminalTest.
10. Apabila permainan berakhir maka class Check akan memberikan
informasi kepada class Inteface, sehingga class Interface dapat
menampilkan message dialog kemenangan, kekalahan atau seri.

Gambar 3.17 Sequence Diagram Play

2) New game

Class – class yang terlibat dalam proses New game serta diagram sekuensialnya
dapat dilihat pada gambar di bawah ini.

Universitas Sumatera Utara


Gambar 3.18 Komponen New game

Rangkaian kejadian pada proses New game akan dipaparkan sebagai


berikut.
1. Player melakukan pemilihan menu New game.
2. Class Interface akan melakukan pemanggilan terhadap class Board,
kemudian mengeset new board.
3. Class Board akan melakukan aksi clear board sehingga isi papan kembali
kosong.
4. Class Interface kemudian akan menampilkan new board.

Gambar 3.19 Sequence Diagram New game

Universitas Sumatera Utara


3) Level

Class – class yang terlibat dalam proses Level serta diagram sekuensialnya dapat
dilihat pada gambar di bawah ini.

Gambar 3.20 Komponen Level

Rangkaian kejadian pada proses Level akan dipaparkan sebagai berikut.


1. Player melakukan pemilihan menu Level.
2. Class Interface akan membaca inputan Player dan mendefinisikan level
baru terhadap class AIPlayer.
3. Class AIPlayer akan diset sesuai dengan level pilihan Player.
4. Setelah mengeset Level, maka Class Interface akan memanggil class
Board untuk menampilkan papan permainan baru.
5. Class Board melakukan aksi clear board dan menampilkan new board
pada class Interface.

Universitas Sumatera Utara


Gambar 3.21 Sequence Diagram Level

4) About

Class – class yang terlibat dalam proses About serta diagram sekuensialnya dapat
dilihat pada gambar di bawah ini.

Gambar 3.22 Komponen About

Rangkaian kejadian pada proses About akan dipaparkan sebagai berikut.


1. Player melakukan pemilihan menu About.

Universitas Sumatera Utara


2. Class Interface akan segera menampilkan jendela menu About yang berisi
tentang aturan permainan dan author aplikasi.
3. Player dapat membaca isi dari menu About tersebut.

Gambar 3.23 Sequence Diagram About

3.2.2 Perancangan Fisik

Pada tahap ini rancangan yang telah dibuat pada perancangan konseptual
diterjemahkan ke dalam bentuk fisik sehingga terbentuk spesifikasi yang lengkap.
Tahapan ini menitikberatkan pada proses rancang bangun antarmuka (interface),
rancangan basis data dan sebagainya.

3.2.2.1 Perancangan Antarmuka

Perancangan antarmuka merupakan tahap penting, sebab di sini user akan


melakukan interaksi dengan aplikasi. Antarmuka yang akan dibangun harus
sederhana namun cukup menarik dalam arti tidak berlebihan sehingga mudah
dipahami dan dipelajari user.

Universitas Sumatera Utara


1) Papan Permainan

Berikut adalah gambar rancangan antarmuka aplikasi Five in Row.


Five In Row - X

Game About

Gambar 3.24 Interface Aplikasi

Layar antarmuka ini akan langsung ditampilkan begitu user mengeksekusi


program aplikasi. Tampilan antarmuka ini terdiri dari papan permainan dan menu
bar.

2) Menu

Menu perlu ditampilkan pada aplikasi sebagai petunjuk dan pemandu bagi user
untuk mengetahui fitur-fitur atau fasilitas yang terdapat pada aplikasi. Berikut
adalah gambar tampilan antarmuka menu pada aplikasi ini.

Universitas Sumatera Utara


Game
New game
Level
Exit

Gambar 3.25 Submenu Game

Apabila user mengklik menu Game maka akan muncul pop up menu yang
terdiri dari New game, Level dan Exit seperti gambar di atas. Pada masing –
masing submenu terdapat huruf awal yang digarisbawahi, ini berarti user dapat
melakukan pemilihan dengan inputan keyboard sesuai dengan huruf yang
dimaksud, misalnya untuk memilih New game cukup tekan tombol N, tombol L
untuk Level dan E untuk Exit.

Sedangkan jika user mengklik menu About, maka akan muncul message
dialog yang berisi tentang petunjuk permainan serta author aplikasi seperti pada
gambar di bawah ini.

About
Game Play

Gambar 3.26 Submenu About

Game Play X

OK

Gambar 3.27 Tampilan Game Play dan Author

Universitas Sumatera Utara


3) Message Dialog

Message dialog akan muncul ketika permainan berakhir, yang berisi


pemberitahuan kemenangan, kekalahan ataupun seri kepada user.

Five In Row

Maaf, Anda Kalah !!!

OK

Gambar 3.28 Message Dialog Kalah

Five In Row

Selamat, Anda Menang !!!

OK

Gambar 3.29 Message Dialog Menang

Five In Row

Kita Seri !!!

OK

Gambar 3.30 Message Dialog Seri

Universitas Sumatera Utara


3.2.2.2 Perancangan Piranti Masukan

Piranti interaksi merupakan alat bantu bagi user ketika menggunakan suatu
aplikasi. Untuk itu perlu dirancang aplikasi dengan beberapa piranti masukan
yaitu mouse dan keyboard. Dengan adanya dukungan aplikasi terhadap kedua
jenis piranti ini maka diharapkan user akan lebih merasa mudah dan nyaman saat
berinteraksi dengan aplikasi permainan ini.

Universitas Sumatera Utara


BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Aplikasi

Tahap implementasi merupakan lanjutan dari tahap perancangan. Pada tahap ini
seluruh spesifikasi dari aplikasi yang dirancang akan diterjemahkan ke dalam
bahasa pemrograman sehingga menghasilkan sebuah perangkat lunak.

Aplikasi permainan Five In Row ini secara khusus diberi nama JFiNRo,
untuk membedakannya dengan aplikasi serupa.

4.2 Spesifikasi Perangkat Lunak

Perangkat lunak yang digunakan dalam pembuatan aplikasi permainan ini adalah
Java Standard Development Kit 6 Update 7 serta NetBeans IDE (Integrated
Development Environtment) 6.8 yang bersifat GUI yang sangat membantu dalam
proses pengkodean dan dapat mengurangi kesalahan penulisan sintaks program.
Aplikasi ini dibangun pada sistem operasi Windows XP Professional Service Pack
2.

4.3 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang dibutuhkan untuk menjalankan program aplikasi


JFInRo ini adalah sebagai berikut.

Universitas Sumatera Utara


1. Prosesor AMD Sempron™ 2200+, 1.5 GHz.
2. Memory (RAM) 256 MB.
3. Hard Disk 120 GB.
4. Monitor 14.1” dengan resolusi layar 1204 x 768 pixel.
5. Mouse dan keyboard.

4.4 Tampilan Aplikasi

Berikut ini akan diperlihatkan tampilan antarmuka dari aplikasi JFiNRo.

4.4.1 Tampilan Utama

Tampilan utama dari aplikasi permainan JFiNRo ini dapat dilihat pada gambar
4.1. Gambar tersebut memperlihatkan tampilan papan pada awal permainan.
Ketika permainan dimulai, papan dalam kondisi kosong seperti yang diperlihatkan
oleh gambar.

Gambar 4.1 Papan Permainan


User merupakan pemain yang pertama kali melangkah untuk memulai
permainan. Namun, user dapat memilih menu yang terdapat pada menu bar

Universitas Sumatera Utara


aplikasi tersebut untuk mengganti level, melihat petunjuk permainan ataupun
keluar dari aplikasi.

4.4.2 Tampilan Permainan

Tampilan permainan yang sedang berlangsung dapat dilihat pada gambar 4.2.
Gambar ini memperlihatkan kedua pemain, user dan komputer dalam beberapa
kondisi akhir permainan.

(a) (b)

Universitas Sumatera Utara


(c)
Gambar 4.2 Kondisi Akhir Permainan

Gambar (a) memperlihatkan bahwa user (black piece) kalah melawan


komputer (red piece). Sedangkan gambar (b) memperlihatkan hal sebaliknya
dimana user menang melawan komputer, dan gambar (c) adalah permainan yang
berakhir seri antara user dan komputer.

(a) (b)

(c)

Gambar 4.3 Message Dialog

Universitas Sumatera Utara


Gambar 4.3 menunjukkan message dialog yang ditampilkan ketika
permainan berakhir, yaitu (a) kalah, (b) menang atau (c) seri.

4.4.3 Tampilan Menu

Berikut adalah tampilan dari menu yang terdapat pada aplikasi permainan JFiNRo
ini. Gambar (a) adalah submenu dari menu Game dan gambar (b) adalah submenu
dari menu About.

(a) (b)
Gambar 4.4 Menu Aplikasi

4.4.4 Tampilan Game Play

Tampilan Game Play akan muncul ketika user memilih menu About atau
menekan Alt+A melalui keyboard. Game Play berisikan petunjuk singkat aturan
permainan beserta author aplikasi seperti yang tertera pada gambar 4.5 berikut ini.

Universitas Sumatera Utara


Gambar 4.5 Tampilan Game Play

4.5 Implementasi Algoritma

Berikut adalah implementasi algoritma Minimax dengan optimasi Alpha Beta


Pruning pada aplikasi JFinRo ini.

public final class AIPlayer implements Player, Constanta {


private static final int MAXWIN = 10000;
private static final int MINWIN = -10000;

private int move(final int kedalamanSaatIni, final int maxdepth,


final Check board,final Square squareOut, final byte
giliran, int alpha, int beta) {
if (kedalamanSaatIni == maxdepth) {
squareOut.init();
++nodeDievaluasi;
return eval(board);
}

int max = MINWIN - 1;


int min = MAXWIN + 1;

final Square potentialSquare = SquareFactory.create();

int moveVal;
Square s = SquareFactory.create();

Universitas Sumatera Utara


while (getNextPossibleMove(s, board)) {
final Check b = board.copy();
b.setPiece(s, giliran);

if (giliran == COMPUTER_PIECE) {
switch (b.terminalTest()) {
case USER_WIN:
moveVal = MINWIN;
break;
case COMPUTER_WIN:
moveVal = MAXWIN;
break;
default:
moveVal = move(kedalamanSaatIni + 1, maxdepth, b,
potentialSquare,
USER_PIECE, alpha, beta);
break;
}

if (moveVal > max) {


squareOut.copyPosition(s);
max = moveVal;
}

if (alphaBetaPruningEnabled) {
alpha = alpha > moveVal ? alpha : moveVal;
if (alpha >= beta) {
return beta;
}
}
} else {
switch (b.terminalTest()) {
case USER_WIN:
moveVal = MINWIN;
break;
case COMPUTER_WIN:
moveVal = MAXWIN;
break;
default:
moveVal = move(kedalamanSaatIni + 1, maxdepth, b,
potentialSquare,
COMPUTER_PIECE, alpha, beta);
break;
}

if (moveVal < min) {


squareOut.copyPosition(s);
min = moveVal;
}

if (alphaBetaPruningEnabled) {
beta = beta < moveVal ? beta : moveVal;
if (beta <= alpha) {
return alpha;
}
}
}
}

Universitas Sumatera Utara


if (alphaBetaPruningEnabled) {
return giliran == COMPUTER_PIECE ? alpha : beta;
}

return giliran == COMPUTER_PIECE ? max : min;


}

Berikut adalah implementasi fungsi evaluasi pada permainan Five in Row


ini.

private static int eval(final Check b) {


final Stats c = new Stats(b, COMPUTER_PIECE);
final Stats u = new Stats(b, USER_PIECE);

int retVal = 0;

if (u.uncapped4 > 0) {
return MINWIN;
}

if (c.uncapped4 > 0) {
return MAXWIN;
}

retVal += c.capped2 * 5;
retVal -= u.capped2 * 5;

retVal += c.uncapped2 * 10;


retVal -= u.uncapped2 * 10;

retVal += c.capped3 * 20;


retVal -= u.capped3 * 30;

retVal += c.uncapped3 * 100;


retVal -= u.uncapped3 * 120;

retVal += c.capped4 * 500;


retVal -= u.capped4 * 500;

return Math.max(MINWIN, Math.min(MAXWIN, retVal));


}

Universitas Sumatera Utara


4.6 Pengujian Agen

Pengujian agen dilakukan untuk membuktikan bahwa hasil implementasi dari


algoritma Minimax yang dioptimasikan dengan Alpha Beta Pruning dapat bekerja
sesuai dengan rancangan pada agen cerdas. Pengujian ini akan dilakukan dengan
cara menguji coba aplikasi permainan pada level satu hingga level empat sebanyak
10 (sepuluh) langkah, sehingga dapat terlihat adanya perbedaan pada hasil
keputusan yang diambil oleh agen pada tiap-tiap level.

4.6.1 Level Satu

Berikut adalah beberapa langkah pengujian pada level satu. Penomoran kotak
dimulai dari sudut kiri bawah, searah sumbu y adalah A, B, C dan seterusnya
hingga J. sedangkan searah sumbu x adalah 1, 2, 3 dan seterusnya hingga kotak
10.

Tabel 4.1 Pengujian Agen Level Satu


No. Langkah User Keterangan Langkah Agen
1. User memulai permainan
dengan mengisi kotak F5.
Komputer meletakkan
kepingnya pada kotak G4.

2. User mencoba membentuk


formasi dengan meletakkan
keping pada kotak E5, dan
komputerpun mengisi kotak
G5.

Universitas Sumatera Utara


Tabel 4.1 Pengujian Agen Level Satu (Sambungan)
No. Langkah User Keterangan Langkah Agen
3. User membentuk formasi
capped3, begitu pula halnya
dengan komputer. Namun
komputer lebih unggul
karena formasinya belum
terbendung.

4. User segera membentuk


formasi capped4, namun
komputer tidak
membendung langkah user
malah membentuk formasi4.

5. User yang mendapat giliran


pertama, tentunya
diuntungkan dalam hal ini,
dan segera membentuk Five
in Row.

Pada level satu agen bermain tidak maksimal karena agen hanya
cenderung membuat formasi kemenangan tanpa peduli dengan formasi lawan.
Apabila user bermain secara optimal maka agen pada level satu sangat mudah
dikalahkan. Dari hasil pengujian terhadap 25 orang responden, user tidak pernah
kalah dari komputer.

4.6.2 Level Dua

Berikut adalah beberapa langkah pengujian pada level dua. Penomoran kotak
sama seperti sebelumnya.

Universitas Sumatera Utara


Tabel 4.2 Pengujian Agen Level Dua
No. Langkah User Keterangan Langkah Agen
1. User memulai langkah
dengan meletakkan keping
pada kotak F5, dan
komputer meletakkan
keping pada G4.

2. User membentuk formasi


uncapped2, namun segera
dibendung oleh komputer
dengan formasi
comp_uncapped2 yang
bernilai lebih tinggi.

3. Kini user membentuk


formasi user_capped3.
Jika pada level satu, agen
tidak melakukan
pembendungan, maka di
level dua agen melakukan
blokir pada formasi user.

4. User yang terbendung


mencoba membuat formasi
baru, dengan meletakkan
keping pada E6. Komputer
tetap membentuk formasi
uncapped3 yang bernilai
lebih tinggi dari pada
formasi yang dibentuk
user.

Universitas Sumatera Utara


Tabel 4.2 Pengujian Agen Level Dua (Sambungan)
No. Langkah User Keterangan Langkah Agen
5. User yang bermain
optimal tentunya tidak
membiarkan adanya
formasi comp_uncapped3,
jadi harus dibendung.
Karena tidak ada formasi
yang lebih baik dari pada
formasi sebelumnya maka
agen membentuk formasi
capped4.
6. User melakukan blokir
terhadap formasi empat
yang dibuat oleh
komputer. Dan
komputerpun segera
membuat formasi baru
sekaligus memblokir salah
satu formasi user.

7. User meletakkan keping


hitam pada E7 sehingga
membentuk formasi
user_uncapped3, namun
komputer membendung
formasi tersebut sekaligus
membalik keadaan. Agen
bertindak cerdas dengan
memilih langkah E8,
bukan E4. Sehingga :
Value max = 100, dan
value min = 45.
8. Formasi comp_uncapped3
tadi langsung dibendung
oleh user untuk
mengantisipasi terjadinya
Five In Row. Sementara
itu komputer tetap
membentuk formasi
comp_capped4.

Universitas Sumatera Utara


Tabel 4.2 Pengujian Agen Level Dua (Sambungan)
No. Langkah User Keterangan Langkah Agen
9. User harus segera
membendung formasi
empat yang dibuat oleh
komputer jika tidak ingin
kalah. Sedangkan
komputer mengambil
kesempatan dengan
membendung formasi
terbaik user, yaitu
user_capped3 pada baris
E.
Value max = 5, namun
value min juga berkurang
30.
10 User menemukan peluang
untuk membentuk formasi
uncapped3 dengan
meletakkan keping pada
G7. Kemudian komputer
membendung formasi
tersebut dengan
meletakkan keping merah
pada H8.

Pada langkah ketiga di atas, agen telah melakukan suatu tindakan yang
membendung pergerakan user karena berdasarkan penghitungan evaluasi value
user saat itu lebih unggul dibandingkan komputer, sehingga agen mengambil
keputusan tersebut. Sedangkan pada langkah ketujuh, agen bertindak cerdas
dengan membendung formasi user sekaligus membentuk formasi
comp_uncapped3 yang berbalik merugikan user. Dengan demikian agen telah
bertindak cerdas.

Pada langkah kesepuluh, value yang diperoleh dari formasi tersebut adalah
sebagai berikut.
Value max (komputer) = 10
Value min (user) = 55
Sehingga value total = 10 – 55 = -45, dengan kata lain pada posisi ini user lebih
unggul dibandingkan komputer.

Universitas Sumatera Utara


4.6.3 Level Tiga

Berikut adalah beberapa langkah yang diujikan pada level tiga.

Tabel 4.3 Pengujian Agen Level Tiga


No. Langkah User Keterangan Langkah Agen
1. User memulai permainan
dengan meletakkan keping
pada F6, dan komputer
meletakkan kepingnya
pada G5.

2. User melakukan langkah


yang sama pada pengujian
level sebelumnya untuk
melihat pergerakan
komputer, dan komputer
pun juga melakukan
gerakan yang sama seperti
sebelumnya.
3. User membentuk formasi
user_capped3, sedangkan
komputer membentuk
comp_uncapped3.
Sehingga
value max = 100, value
min = 30.

4. Pada gambar di sebelah


kiri, user lebih unggul
dengan value min = 500,
namun pada gambar di
sebelah kanan komputer
membalik keadaan dengan
value max = 100 dan value
min = 0.

Universitas Sumatera Utara


Tabel 4.3 Pengujian Agen Level Tiga (Sambungan)
No. Langkah User Keterangan Langkah Agen
5. Ketika user melangkah
seperti pada gambar di
sebelah kiri pada level dua,
komputer akan tetap
membentuk formasi
empat, namun pada level
tiga ini komputer membuat
formasi baru. Karena
apabila komputer
membentuk formasi
comp_capped4 dan
dibendung oleh user, maka
value max akan bernilai
nol.
6. User membentuk formasi
user_uncapped3, dan
komputer membentuk
formasi comp_capped4.
Agen bertindak cerdas
dengan tetap membentuk
formasi empat dan bukan
membendung formasi tiga
yang telah dibentuk oleh
user.
7. User tentunya harus
membendung komputer
agar tidak membentuk
Five in Row, dan komputer
mengambil kesempatan
untuk membendung
formasi tiga
(user_uncapped3).
8. User ternyata segera ingin
membentuk formasi
kemenangan dengan
menambahkan keping
hitam pada D5, namun
komputer segera
membendungnya.
Sehingga, value max = 25
dan value min = 20.

Universitas Sumatera Utara


Tabel 4.3 Pengujian Agen Level Tiga (Sambungan)
No. Langkah User Keterangan Langkah Agen
9. User membentuk formasi
baru pada baris D, dan
segera dibendung oleh
komputer sehingga value
min berkurang dari 150
menjadi 100.

10. User membentuk formasi


user_capped4 namun
dibendung oleh komputer.
Sehingga value min yang
seharusnya bertambah 500
digagalkan oleh agen.

Pada langkah kelima, agen membentuk formasi baru dan bukan


membentuk formasi comp_capped4 seperti pada level dua. Inilah yang
membedakan antara cara berpikir agen pada level dua dan level tiga. Apabila agen
memilih membentuk formasi comp_capped4 maka user akan membendung
langkahnya, dengan demikian nilai formasi akan menjadi nol. Sedangkan jika
membentuk formasi baru maka max tetap memiliki nilai dan hanya mengalami
sedikit kerugian apabila dibendung oleh user. Berikut adalah perbandingan dari
nilai yang diperoleh oleh komputer.

Tabel 4.4 Perbandingan Pergerakan Max dan Min


Pergerakan Max Pergerakan Min Evaluasi
G4 G3 0
G4 Kotak lain selain G3 500
H5 G3 10
H5 F7 30

Berdasarkan tabel di atas dengan asumsi min (user) bermain optimal,


maka apabila max melangkah pada kotak G4 maka dapat dipastikan min akan

Universitas Sumatera Utara


melangkah pada kotak G3 yang menyebabkan value menjadi nol. Sedangkan
apabila max melangkah pada kotak H5 maka apapun langkah yang diambil min
tidak akan menyebabkan kerugian yang terlalu besar bagi max.

4.6.4 Level Empat

Berikut adalah beberapa langkah yang diujikan pada agen level empat.
Tabel 4.5 Pengujian Agen Level Empat
No. Langkah User Keterangan Langkah Agen
1. User memulai permainan
dengan meletakkan keping
pada F5 dan seperti
sebelumnya komputer juga
meletakkan kepingnya
pada G4.

2. Seperti langkah pengujian


pada level sebelumnya,
user membentuk formasi
dua secara vertikal pada
kolom lima (5), dan
komputer membentuk
formasi dua pada baris G.

3. User membentuk formasi


tiga, dan komputer juga
melakukan hal yang sama.

Universitas Sumatera Utara


Tabel 4.5 Pengujian Agen Level Empat (Sambungan)
No. Langkah User Keterangan Langkah Agen
4. Namun ketika user
membentuk formasi empat
atau user_capped4,
komputer segera
membendung, sehingga
value max = 100 dan value
min = 0.

5. User melakukan gerakan


balasan dengan cara
membendung formasi
komputer pada baris G
tadi, sehingga value max =
20 dan value min = 5.
Namun komputer tetap
melangkah membentuk
formasi empat dengan
demikian value max =
500.
6. User membendung
gerakan komputer
sehingga kini value max
bernilai nol. Kemudian
komputer membentuk
formasi dua sekaligus
membendung formasi user
pada kotak F6.
7. User juga membentuk
formasi dua pada kotak E6
kemudian komputer
membentuk formasi
comp_uncapped3.
Sehingga value max
kembali unggul.

Universitas Sumatera Utara


Tabel 4.5 Pengujian Agen Level Empat (Sambungan)
No. Langkah User Keterangan Langkah Agen
8. User tidak membiarkan
begitu saja formasi
komputer tidak
terbendung, dan
meletakkan keping hitam
pada kotak D8. Kemudian
komputer meletakkan
keping pada kotak H4
untuk membentuk formasi
empat.
9. User tetap melakukan
pembendungan pada
formasi empat komputer,
kemudian komputer
kembali membentuk
formasi tiga pada kolom 4.
Pada gambar di sebelah
kanan, value max lebih
unggul.
10. User membendung
formasi komputer pada
kolom 4, namun komputer
masih memiliki beberapa
formasi unggulan seperti
yang terlihat pada gambar
di sebelah kanan. Dengan
demikian pergerakan
komputer lebih bervariasi
daripada sebelumnya.

Berdasarkan langkah kesepuluh pada tabel pengujian agen di atas, kita


dapat menghitung value masing-masing pemain dengan nilai sebagai berikut.
Value max = 120,
Value min = 35
Sehingga value total pada keadaan tersebut adalah 120 – 35 = 85, dengan
demikian formasi komputer lebih unggul dibandingkan formasi user.

Dari tabel pengujian di atas dapat disimpulkan bahwa agen terbukti dapat
bermain secara optimal dan dapat berpikir sesuai dengan konsep algoritma
Minimax dan Alpha Beta Pruning.

Universitas Sumatera Utara


4.7 Pengujian Aplikasi

Pengujian merupakan teknik yang menentukan apakah solusi menyelesaikan


persoalan. Tahap pengujian ini merupakan tahap terpenting dari keseluruhan
proses pengembangan aplikasi, sebab pada tahap inilah akan dievaluasi apakah
aplikasi yang dibangun sesuai dengan rencana dan keinginan atau tidak.

Pengujian lebih ditujukan untuk menghasilkan perangkat lunak yang bebas


kesalahan setidaknya secara teknik, sebab bebas kesalahan secara total tidaklah
mungkin, seperti dikatakan Edsgar Djikstra dalam Hariyanto yaitu pengujian
hanya dapat menunjukkan keberadaan bug, namun tidak dapat menunjukkan
ketidakberadaannya.

Pengujian adalah proses pemeriksaan atau evaluasi sistem atau komponen


sistem secara manual atau otomatis untuk memverifikasi apakah sistem memenuhi
kebutuhan-kebutuhan yang dispesifikasikan atau mengidentifikasi perbedaan-
perbedaan antara hasil yang diharapkan dengan hasil yang terjadi (Hariyanto,
2004).

Beberapa manfaat adanya pengujian ini antara lain menyingkap atau


menemukan kesalahan pada perangkat lunak dan mendemonstrasikan fungsi-
fungsi perangkat lunak bekerja sesuai dengan spesifikasi, kebutuhan serta
kinerjanya.

Pengujian yang akan dilakukan pada aplikasi ini adalah pengujian


integrasi, pengujian antarmuka dan pengujian kehandalan dengan menggunakan
metode black box testing dan kuesioner.

Universitas Sumatera Utara


4.7.1 Pengujian Integrasi Aplikasi

Pengujian integrasi merupakan pengujian terhadap sistem atau subsistem lengkap


dengan komponen-komponen penyusunnya yang terintegrasi. Metode yang
digunakan pada pengujian ini adalah black box. Dengan black box, pengujian
hanya dilakukan pada representasi sistem yang terlihat tanpa perlu mengetahui
bagaimana cara kerja sistem tersebut.

Black box hanya melakukan pengujian dengan membandingkan masukan


dan keluaran yang dihasilkan apakah sesuai dengan harapan atau tidak. Bila sesuai
maka aplikasi dianggap layak dan berhasil, sebaliknya apabila tidak sesuai maka
perlu dilakukan lagi perbaikan terhadap aplikasi tersebut.

Pengujian integrasi ini akan dilakukan pada dua platform berbeda, yaitu
Windows dan Linux untuk memastikan keadaan aplikasi pada kedua sistem
operasi itu dapat bekerja dengan baik. Berikut ini adalah pengujian integrasi
aplikasi pada tiap proses pada masing-masing platform.

4.7.1.1 Play

Berikut adalah hasil evaluasi pada proses Play pada platform Windows.

Tabel 4.6 Hasil Evaluasi Proses Play pada Windows


No. Sasaran Pengujian Output Status
1. Uji tampilan aplikasi Aplikasi ditampilkan dengan Baik.
papan permainan dalam
kondisi kosong.
2. Uji inputan user piece User piece ditampilkan dengan Baik.
warna hitam.
3. Uji inputan mouse Pergerakan mouse dapat Baik.
dideteksi.
4. Uji inputan keyboard Menu dapat diakses melalui Baik.
keyboard.
5. Uji tampilan computer Computer piece ditampilkan Baik.

Universitas Sumatera Utara


piece dengan warna merah.
6. Uji akhir permainan. Message dialog ditampilkan. Baik.
7. Uji button minimize, Button dapat diklik dan Baik.
maximize dan close. berjalan sesuai fungsinya
masing-masing.
8. Uji pengisian piece pada Piece dapat diletakkan di sel Baik.
papan permainan. manapun pada papan.
9. Uji submenu Exit. Submenu Exit dapat diakses Baik.
dengan keyboard ataupun
mouse.
Aplikasi berhenti, dan user
keluar dari aplikasi.

Sedangkan tabel di bawah ini adalah hasil pengujian terhadap proses Play
pada platform Linux.

Tabel 4.7 Hasil Evaluasi Proses Play pada Linux


No. Sasaran Pengujian Output Status
1. Uji tampilan aplikasi Aplikasi ditampilkan dengan Baik.
papan permainan dalam
kondisi kosong.
2. Uji inputan user piece User piece ditampilkan dengan Baik.
warna hitam.
3. Uji inputan mouse Pergerakan mouse dapat Baik.
dideteksi.
4. Uji inputan keyboard Menu dapat diakses melalui Baik.
keyboard.
5. Uji tampilan computer Computer piece ditampilkan Baik.
piece dengan warna merah.
6. Uji akhir permainan. Message dialog ditampilkan. Baik.
7. Uji button minimize, Button dapat diklik dan Baik.
maximize dan close. berjalan sesuai fungsinya
masing-masing.
8. Uji pengisian piece pada Piece dapat diletakkan di sel Baik.
papan permainan. manapun pada papan.
9. Uji submenu Exit. Submenu Exit dapat diakses Baik.
dengan keyboard ataupun
mouse. Aplikasi berhenti dan
user keluar dari aplikasi.

Universitas Sumatera Utara


4.7.1.2 New game

Berikut adalah hasil evaluasi pada proses New game pada platform Windows.

Tabel 4.8 Hasil Evaluasi Proses New game pada Windows


No. Sasaran Pengujian Output Status
1. Uji tampilan submenu Submenu New game dapat Baik.
New game dengan diklik.
mouse.
2. Uji Alt + N pada Alt + N dapat berfungsi, Baik.
keyboard untuk submenu New game dapat
mengakses New game diakses.
3. Uji tampilan papan baru Papan kosong ditampilkan Baik.
setelah submenu New game
diklik.

Sedangkan tabel di bawah ini adalah hasil evaluasi proses New game pada
platform Linux.

Tabel 4.9 Hasil Evaluasi Proses New game pada Linux


No. Sasaran pengujian Output Status
1. Uji tampilan submenu Submenu New game dapat Baik.
New game dengan diklik.
mouse.
2. Uji Alt+N pada Alt + N dapat berfungsi, Baik.
keyboard untuk submenu New game dapat
mengakses New game. diakses.
3. Uji tampilan papan Papan kosong ditampilkan Baik.
baru. setelah submenu New game
diklik.

4.7.1.3 Level

Berikut adalah hasil evaluasi pada proses Level pada platform Windows.

Universitas Sumatera Utara


Tabel 4.10 Hasil Evaluasi Proses Level pada Windows
No. Sasaran Pengujian Output Status
1. Uji akses submenu Submenu Level dapat diklik. Baik.
Level dengan mouse.
2. Uji akses sumenu Level Alt + L dapat berfungsi, Baik.
dengan keyboard Alt + submenu Level dapat diakses.
L.
3. Uji tampilan pilih Level Jendela pilih Level Baik.
ditampilkan, mulai dari level 1
hingga level 6.
4. Uji button pada jendela Button OK dan Cancel dapat Baik.
Level. bekerja.

Sedangkan tabel di bawah ini adalah hasil evaluasi proses Level pada
platform Linux.

Tabel 4.11 Hasil Evaluasi Proses Level pada Linux


No. Sasaran Pengujian Output Status
1. Uji akses submenu Submenu Level dapat diklik. Baik.
Level dengan mouse.
2. Uji akses sumenu Level Alt + L dapat berfungsi, Baik.
dengan keyboard Alt + submenu Level dapat diakses.
L.
3. Uji tampilan pilih Level Jendela pilih Level Baik.
ditampilkan, mulai dari level 1
hingga level 6.
4. Uji button pada jendela Button OK dan Cancel dapat Baik.
Level. bekerja.

4.7.1.4 About

Berikut adalah hasil evaluasi pada proses About pada platform Windows.

Tabel 4.12 Hasil Evaluasi proses About pada Windows


No. Sasaran Pengujian Output Status
1. Uji akses menu About Menu About dapat diklik, dan Baik.
dengan mouse. submenu Game Play
ditampilkan.
2. Uji akses menu About Menu About dapat diakses, dan Baik.
dengan keyboard Alt submenu Game Play

Universitas Sumatera Utara


+A. ditampilkan.
3. Uji submenu Game Play Jendela Game Play beserta isi Baik.
ditampilkan.

Sedangkan tabel di bawah ini adalah hasil evaluasi proses About pada
platform Linux.

Tabel 4.13 Hasil Evaluasi proses About pada Linux


No. Sasaran Pengujian Output Status
1. Uji akses menu About Menu About dapat diklik, dan Baik.
dengan mouse. submenu Game Play
ditampilkan.
2. Uji akses menu About Menu About dapat diakses, dan Baik.
dengan keyboard Alt submenu Game Play
+A. ditampilkan.
3. Uji submenu Game Play Jendela Game Play beserta isi Baik.
ditampilkan.

4.7.2 Pengujian Aspek Antarmuka Aplikasi

Pengujian yang akan dilakukan selanjutnya adalah evaluasi antarmuka aplikasi.


Pengujian pada aspek ini bertujuan untuk mencari tahu seberapa baik rancangan
antarmuka aplikasi bagi pengguna (user).

Ada tiga poin utama yang perlu dievaluasi dari perancangan antarmuka
aplikasi JFiNRo ini, yaitu:
1. Easy to learn, mudah dipelajari bagaimana menjalankan aplikasi.
2. Easy to use, fitur-fitur ataupun menu dalam antarmuka mudah digunakan.
3. Easy to understand, antara lain user mampu memahami fungsi dari
masing-masing button (tombol).

Untuk mengevaluasi tiga hal di atas, dilakukan pengujian langsung kepada


pengguna dengan metode kuesioner. Pengguna yang berperan sebagai responden
berjumlah 25 orang dengan rentang usia 12 hingga 22 tahun. Untuk lebih jelasnya,
hasil kuesioner dapat dilihat pada lampiran.

Universitas Sumatera Utara


Hasil pengujian digolongkan menjadi empat kategori, kurang baik, cukup
baik, baik dan sangat baik. Masing-masing kategori dipersentasekan dengan 0% -
25% dinyatakan dengan kurang baik, 26% - 50% dinyatakan cukup baik, 51% -
75% dinyatakan baik, dan 76% - 100% dinyatakan sangat baik.

Sedangkan penilaian secara keseluruhan akan dihitung dengan


menggunakan rumus sebagai berikut:
P k = (f/N) * I kb
Dimana:
P k = Persentase untuk k kondisi dalam hal kurang baik, cukup baik, baik
dan sangat baik
f = total respon dalam k kondisi
N = jumlah total pertanyaan dikalikan total responden (dalam aspek ini
adalah 4 x 25 = 100)
I kb = Interpertasi k kondisi terbesar (dalam hal ini tidak baik 25%, kurang
baik 50%, baik 75% dan sangat baik 100%).

Berikut adalah hasil evaluasi aspek antarmuka yang diperoleh.

Tabel 4.14 Hasil Kuesioner Aspek Antarmuka


No. Sasaran Pertanyaan Hasil Penilaian
Amat Baik Cukup Tidak
Baik Baik
1. Desain tampilan aplikasi 6 17 2 -
2. Warna papan permainan 6 19 - -
3. Tampilan keping (piece) 5 19 1 -
permainan.
4. Tampilan message dialog. 6 15 4 -
5. Total 23 70 7 0

Berikut adalah diagram hasil evaluasi aspek antarmuka yang diperoleh.

Universitas Sumatera Utara


20
18
16
14
12 Amat Baik
10
Baik
8
6 Cukup
4 Kurang
2
0
Desain Warna Tampilan Message
piece Dialog

Gambar 4.6 Diagram Hasil Evalausi Aspek Antarmuka

Maka penilaian secara keseluruhan terhadap aspek antarmuka aplikasi ini


menggunakan rumus di atas adalah sebagai berikut.
a. P amat baik = (23/100) * 100% = 23%
b. P baik = (70/100) * 75% = 52,5%
c. P cukupbaik = (7/100) * 50% = 3,5%
d. P kurang baik = (0/100) * 25% = 0%

60

50

40

30

20

10

0
Amat baik Baik Cukup baik Kurang baik

Gambar 4.7 Diagram Penilaian Aspek Antarmuka

Universitas Sumatera Utara


4.7.3 Pengujian Aspek Penggunaan Aplikasi

Pengujian pada aspek ini bertujuan untuk memperoleh informasi mengenai tingkat
kesulitan menjalankan aplikasi pada komputer pengguna. Dari pengujian ini akan
didapati apakah pengguna memahami aturan permainan hanya dari melihat isi
game Play yang tersedia serta memahami fungsi-fungsi dari menu yang ada.

Berikut adalah hasil pengujian dari kuesioner terhadap aspek penggunaan


aplikasi permainan JFiNRo ini.
Tabel 4.15 Hasil Kuesioner Aspek Penggunaan
No. Sasaran Pertanyaan Hasil Penilaian
Amat Baik Cukup Tidak
Baik Baik
1. Kemudahan menjalankan 22 3 - -
aplikasi.
2. Aturan permainan yang 16 9 - -
tersedia.
3. Penggunaan mouse dan 14 11 - -
keyboard.
4. Paham fungsi menu. 19 6 - -
5 Total 71 29 0 0

Berikut adalah diagram hasil evaluasi aspek penggunaan aplikasi yang


telah diperoleh.

Universitas Sumatera Utara


25

20

15
Amat baik
Baik
10
Cukup baik
5 Kurang baik

0
Kemudahan Aturan Alat inputan Fungsi menu
menjalankan permainan
aplikasi

Gambar 4.8 Diagram Hasil Evaluasi Aspek Penggunaan

Maka penilaian secara keseluruhan terhadap aspek penggunaan aplikasi ini


menggunakan rumus di atas adalah sebagai berikut.
a. P amat baik = (71/100) * 100% = 71%
b. P baik = (29/100) * 75% = 21,75%
c. P cukupbaik = (7/100) * 50% = 0%
d. P kurang baik = (0/100) * 25% = 0%

80
70
60
50
40
30
20
10
0
Amat baik Baik Cukup baik Kurang baik

Gambar 4.9 Diagram Penilaian Aspek Penggunaan Aplikasi

Universitas Sumatera Utara


4.7.4 Penilaian Aplikasi

Penilaian terhadap aplikasi bertujuan untuk mengetahui seberapa jauh rasa


kepuasan pengguna ketika menjalankan aplikasi ini. Penilaian ini juga dilakukan
dengan metode kuesioner dan melibatkan 25 orang responden. Beberapa hal yang
dinilai antara lain ukuran papan permainan, tingkat kesulitan mengalahkan AI
(komputer), waktu yang diperlukan AI untuk melangkah, serta sejauh mana
ketertarikan pengguna untuk terus menggunakan aplikasi.

Berikut adalah hasil kuesioner yang diperoleh untuk penilaian aplikasi.

Tabel 4.16 Hasil Kuesioner Penilaian Aplikasi


No. Sasaran penilaian Hasil Penilaian
Amat Baik Cukup Tidak
Baik Baik
1. Ukuran papan permainan. 9 15 1 -
2. Tingkat kesulitan. 7 17 1 -
3. Waktu yang dibutuhkan AI - 14 11 -
untuk melangkah.
4. Ketertarikan terhadap 7 17 1 -
aplikasi.
5. Total 23 63 14 0

Berikut adalah diagram hasil evaluasi penilaian terhadap aplikasi yang


diperoleh.

Universitas Sumatera Utara


18
16
14
12
10 Amat baik
8 Baik
6 Cukup baik
4
Kurang baik
2
0
Ukuran Tingkat Waktu AI Ketertarikan
papan kesulitan melangkah terhadap
permainan aplikasi

Gambar 4.10 Diagram Hasil Evaluasi Penilaian Aplikasi

Maka penilaian secara keseluruhan terhadap aplikasi ini menggunakan


rumus di atas adalah sebagai berikut.
e. P amat baik = (23/100) * 100% = 23%
f. P baik = (63/100) * 75% = 47,25%
g. P cukupbaik = (14/100) * 50% = 7%
h. P kurang baik = (0/100) * 25% = 0%

50
45
40
35
30
25
20
15
10
5
0
Amat baik Baik Cukup baik Kurang baik

Gambar 4.11 Diagram Penilai Aplikasi

Universitas Sumatera Utara


4.7.5 Pengujian Aspek Kehandalan Aplikasi

Pengujian aspek kehandalan aplikasi ini bertujuan untuk memperoleh informasi


sejauh mana kemampuan aplikasi yang telah dibangun. Kehandalan aplikasi
dinilai dari seberapa banyak AI mampu memenangkan permainan ketika melawan
human Player, apabila sering mengalami kemenangan maka aplikasi dapat
dikatakan handal.

Berbeda dengan responden sebelumnya, responden yang bertindak untuk


mengevaluasi aspek kehandalan aplikasi Five In Row ini sama berjumlah 25
orang. Hal ini dilakukan untuk menguji aplikasi secara lebih mendalam. Untuk
lebih jelasnya, hasil kuesioner dapat dilihat pada lampiran.

Berikut adalah hasil kuesioner yang diperoleh untuk pengujian pada aspek
kehandalan aplikasi.
Tabel 4.17 Hasil Kuesioner Kehandalan Aplikasi
No. Level Permainan Menang Kalah Seri Jumlah
1. 1 0 25 0 25
2. 2 18 5 2 25
3. 3 22 2 1 25
4. 4 12 1 - 13

Dari hasil pengujian dapat dilihat bahwa pada level 1 (satu) aplikasi
mengalami kegagalan total karena sangat mudah dikalahkan. Berbeda dengan
level 2 (dua) dimana aplikasi dapat memenangkan 18 kali pertandingan dengan 5
kali kekalahan dan 2 kali seri. Begitu pula pada level 3 (tiga), aplikasi hanya
mengalami kekalahan 2 kali dan seri 1 kali dan menang 22 kali.

Pengujian juga dilakukan terhadap level empat, namun dengan hanya 13


(tiga belas) orang responden karena waktu yang dibutuhkan untuk melakukan
pengujian cukup lama. Dari hasil pengujian diperoleh hasil bahwa pada level
empat aplikasi mampu memenangkan seluruh pertandingan.

Universitas Sumatera Utara


Berdasarkan tabel di atas, diperoleh hasil:
a. Level 1 :
1. Menang = (0/25) * 100% = 0%.
2. Kalah = (25/25) * 100% = 100%.
3. Seri = (0/25) * 100% = 0%
b. Level 2 :
1. Menang = (18/25) * 100% = 72%
2. Kalah = (5/25) * 100% = 20%
3. Seri = (2/25) * 100% = 8%
c. Level 3 :
1. Menang = (22/25) * 100% = 88%
2. Kalah = (2/25) * 100% = 8%
3. Seri = (1/25) * 100% = 4%
d. Level 4 :
1. Menang = (12/13) * 100% = 92,3%
2. Kalah = (1/13) * 100% = 7,6%
3. Seri = (0/13) * 100% = 0%

Dari hasil perhitungan di atas diperoleh bahwa pada level dua aplikasi
mampu memenangkan pertandingan sebanyak 72%, kalah 20% dan seri 8%. Pada
level tiga mampu memenangkan pertandingan sebanyak 88%, kalah 8% dan seri
4%.

Universitas Sumatera Utara


100
90
80
70
60 Menang
50 Kalah
40 Seri
30
20
10
0
Level 1 Level 2 Level 3 Level 4

Gambar 4.21 Diagram Hasil Pengujian Kehandalan Aplikasi

Universitas Sumatera Utara


BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan penelitian yang telah dipaparkan pada bab sebelumnya
maka dapat diambil kesimpulan seperti berikut ini.

1. Algoritma Minimax tidak efisien apabila digunakan secara tunggal pada


permainan Five In Row ini karena ruang pencarian yang terlalu besar, sehingga
perlu dilakukan pemangkasan dengan Alpha Beta Pruning.

2. Aplikasi JFiNRo dapat berjalan baik pada beberapa platform seperti Windows
dan Linux dengan sama baiknya.

3. Untuk mendapatkan bobot nilai dari pohon pencarian, maka perlu


didefinisikan bobot formasi yang terbentuk oleh keping, baik dari user maupun
komputer kemudian dilakukan evaluasi.

4. Semakin tinggi level permainan, maka semakin lama pula waktu yang
dibutuhkan komputer untuk mengevaluasi langkah sebab ruang pencarian
semakin besar.

5. Agen yang terdapat pada aplikasi JFiNRo telah diuji dan hasilnya sesuai
dengan konsep perancangan agen cerdas.

Universitas Sumatera Utara


5.2 Saran

Berikut ini adalah beberapa saran yang perlu dipertimbangkan untuk menjadi landasan
penelitian selanjutnya.

1. Aplikasi JFiNRo memiliki kelemahan pada lamanya waktu yang diperlukan


untuk eksekusi langkah komputer. Kelemahan ini mulai dapat dirasakan pada
level 4.

2. Sebaiknya perlu dikembangkan aplikasi serupa namun dengan beberapa


pilihan lawan, misalnya human player versus human player dan sebagainya.

3. Ukuran papan permainan dapat ditambah, sehingga pemain memiliki


kesempatan lebih besar untuk mengembangkan strategi baru.

4. Sebaiknya aspek multimedia perlu ditambahkan, misalnya grafik ataupun


suara untuk mendukung tampilan aplikasi.

Universitas Sumatera Utara


DAFTAR PUSTAKA

Allis, L.V dan Van Hendrik, H. J. 1992. Go-Moku and Threat-Space Search.
Netherland : University of Limburg.

David. 2008. Anilisis dan Pengembangan Sistem Aplikasi Catur Komputer Berbasis
Kecerdasan Buatan dalam Bahasa Pemrograman Java. Skripsi. Medan :
Departemen Ilmu Komputer FMIPA USU.
Desiani, Anita dan Arhami, Muhammad. 2006. Konsep Kecerdasan Buatan.
Yogyakarta : Penerbit Andi.

Fowler, Martin. 2005. UML Distilled Edisi 3 Panduan Singkat Bahasa Pemodelan
Objek Standar. Yogyakarta: Penerbit Andi.

Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Objek. Bandung : Penerbit


Informatika.

Indrajani dan Martin. 2007. Pemrograman Berbasis Objek dengan Bahasa Java.
Jakarta: Elex Media Komputindo.

Irwanto, Djon. 2006. Perancangan Object Oriented Software dengan UML.


Yogyakarta: Penerbit Andi.

Kristanto, Andri. 2004. Kecerdasan Buatan. Yogyakarta : Graha Ilmu.

Kusumadewi, Sri. 2003. Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta :


Graha Ilmu.

Lubis, Rifki. R. Ashari. 2010. Rancang Bangun Aplikasi Permainan Edukatif


Aritmatika Cepat Pada Mobile Phone Menggunakan J2ME. Skripsi. Medan :
Departemen Ilmu Komputer FMIPA USU.

Pearl, Judea. 1984. Heuristics : Intelligent Search Strategies for Computer Problem
Solving. California : Addison-Wesley Publishing Company.

Prabawa, Aditya Eka W. 2009. Kombinasi Greedy, Minimax dan Alpha Beta Pruning
untuk Permainan Reversi. Bandung : Institut Teknologi Bandung.

Russel, Stuart, dan Norvig, Peter. 2004. Artificial Intelligence A Modern Approach.
Second Edition. New Jersey: Prentice Hall.

Setiawan, Sandi. 1993. Artificial Intelligence. Yogyakarta : Andi Offset.

Universitas Sumatera Utara


Sutopo, Ariesto Hadi. 2001. Analisis dan Desain Berorientasi Objek. Yogyakarta : J
& J Learning Yogyakarta.

Vaughan, T. 2004. Multimedia: Making It Work. Edisi keenam. Yogyakarta: Penerbit


Andi.

Vebrina, Yus Gias. 2008. Penerapan Q Learning pada Aplikasi Board Game. Skripsi.
Bandung: Institut Teknologi Bandung.

Whitten, Jeffrey, L. and Bentley, Lonnie, D. 1998. System Analysis and Design
Method. Fourth Edition. New York : Irwin McGraw Hill.

Yatini, Indra. 2007. Interaksi Manusia dan Komputer. Yogyakarta : Graha Ilmu.

Universitas Sumatera Utara

Anda mungkin juga menyukai