Studi Pengembangan dan Evaluasi Engine Catur dengan Representasi Bitboard.

(1)

iv

Universitas Kristen Maranatha

ABSTRAK

Engine catur telah menjadi medan riset banyak peneliti AI dunia, banyak aspek dari sebuah engine catur dapat diimplementasi dengan berbagai metode alternatif, namun terdapat algoritma yang umumnya diterapkan, yaitu algoritma pencarian minmax dengan alpha beta pruning. Selain dari algoritma pencarian, struktur data yang dipakai juga bermacam-macam, salah satu struktur data yang menarik untuk dijadikan materi riset adalah struktur data bitboard.

Untuk lebih mengerti secara lebih jelas mengenai sebuah engine catur, penulis membuat sendiri engine catur, terutama engine catur yang menggunakan bitboard sebagai representasi papan catur.

Dalam proses pengembangan engine catur, penulis mendapati bahwa selain efektifitas suatu algoritma yang diterapkan dalam sebuah engine

catur, optimasi juga merupakan bagian yang penting, mengingat banyaknya kemungkinan langkah yang dapat dihasilkan dari sebuah posisi papan catur, oleh karena itu, optimasi juga menjadi bagian penting dalam tulisan ini.

Hasil yang dicapai dari pengembangan engine catur ini adalah bahwa hasil riset dan aplikasi yang diperoleh dari hasil riset ini dapat menjadi dasar bagi pengembangan engine catur lain.


(2)

v

Universitas Kristen Maranatha

ABSTRACT

A chess engine has been a research ground for many AI researchers of the world, many aspects of a chess engine can be implemented with various methods, though there is a common algorithm applied, which is minmax with alpha beta pruning. Beside searching algorithm, data structure used is also varies, one of which is an interesting research material is bitboard.

To understand better about chess engine, writer develops a chess

engine, especially a bitboard based chess engine.

During the developement of the chess engine, writer realises that besides effectiveness of an algorithm, optimation also plays an important role, considering the magnitude of possibilities of move of a chess board position. That is why optimation is also an important part of this writing. Result of this chess engine developement research is research note and application produced that can underly other chess engine developement.


(3)

vi

Universitas Kristen Maranatha

DAFTAR ISI

KATA PENGANTAR ... i

Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah ... ii

Surat Pernyataan Orisinalitas Karya ... iii

ABSTRAK ... iv

ABSTRACT ... v

DAFTAR ISI ... vi

DAFTAR GAMBAR ... x

DAFTAR PROGRAM ... xi

DAFTAR TABEL ... xii

BAB I. PERSYARATAN PRODUK ... 1

I.1. Pendahuluan ... 1

I.1.1. Tujuan ... 2

I.1.2. Ruang Lingkup Proyek ... 2

I.1.3. Definisi, Akronim, dan Singkatan ... 2

I.1.4. Sistematika Penulisan ... 4

I.2. Gambaran Keseluruhan ... 5

I.2.1. Prespektif Produk ... 5

I.2.2. Fungsi Produk ... 5

I.2.3. Karakteristik Pengguna ... 5


(4)

vii

Universitas Kristen Maranatha

I.2.5. Asumsi dan Ketergantungan ... 6

I.2.6. Penundaan Persyaratan ... 6

BAB II. SPESIFIKASI PRODUK ... 7

II.1. Persyaratan Antarmuka Eksternal ... 7

II.1.1. Antarmuka dengan Pengguna ... 7

II.1.2. Antarmuka Perangkat Keras ... 7

II.1.3. Antarmuka Perangkat Lunak ... 8

II.1.4. Antarmuka Komunikasi ... 8

II.2. Fitur Produk Perangkat Lunak ... 8

II.2.1. Input Posisi Papan Catur ... 8

II.2.2. Kalkulasi Nilai Evaluasi ... 9

II.2.3. Menghasilkan Kemungkinan Langkah Berikut ... 9

II.2.4. Memilih Langkah Terbaik ... 10

II.3. Algoritma Inti ... 10

BAB III. DESAIN PERANGKAT LUNAK ... 13

III.1. Pendahuluan ... 13

III.1.1. Identifikasi ... 13

III.1.2. Overview Sistem... 13

III.2. Keputusan Desain Perangkat Lunak Secara Keseluruhan ... 14

III.2.1. Struktur Data yang Dipakai ... 14

III.2.2. Penerapan Algoritma Minmax ... 14

III.3. Desain Arsitektur Perangkat Lunak ... 15

III.3.1. Komponen Perangkat Lunak ... 15

III.3.2. Konsep Eksekusi ... 16


(5)

viii

Universitas Kristen Maranatha

BAB IV. Pengembangan Sistem ... 25

IV.1. Perencanaan Tahap Implementasi ... 25

IV.1.1. Pembagian Modul/Prosedur/Class Implementasi ... 25

IV.1.2. Keterkaitan antar Modul/Prosedur/Class ... 26

IV.2. Perjalanan Tahap Implementasi ... 27

IV.2.1. Top Down/ Bottom Up Implementasi ... 27

IV.2.2. Ulasan Source code ... 27

IV.2.2.1. PieceMove ... 27

IV.2.2.2. Bitboard ... 28

IV.2.2.3. MoveGeneration ... 30

IV.2.2.4. AlphaBeta ... 42

IV.2.3. Debugging ... 44

IV.2.3.1. Bitboard ... 44

IV.2.3.2. Move Generation ... 44

IV.2.4. Ulasan Realisasi Fungsionalitas ... 45

BAB V. TESTING DAN EVALUASI SISTEM... 46

V.1. Rencana Pengujian Sistem Terimplementasi ... 46

V.1.1. TestCase ... 46

V.1.2. Uji Fungsionalitas Modul/Class ... 52

V.2. Perjalanan Metodologi Pengujian ... 52

V.2.1. BlackBox ... 52

V.2.1. WhiteBox ... 56

V.2.2. Optimasi ... 56

V.3. Ulasan Hasil Evaluasi ... 60


(6)

ix

Universitas Kristen Maranatha VI.2. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi ... 61 VI.3. Keterkaitan antara Saran dengan Hasil Evaluasi ... 62

VI.4. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan ... 62 DAFTAR PUSTAKA ... 63


(7)

x

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar II-1 Contoh Pohon Pencarian[7] ... 12

Gambar III-1 Class Diagram Komponen Perangkat Lunak ... 15

Gambar III-2 Use Case Sistem ... 17

Gambar III-3 Activity diagram kalkulasi nilai evaluasi ... 19

Gambar III-4 Activity Diagram generasi langkah ... 20

Gambar III-5 Activity diagram pemilihan langkah terbaik ... 21

Gambar III-6 Activity diagram input posisi papan catur ... 22

Gambar III-7 Sequence Diagram ... 22

Gambar III-8 Desain Antar Muka ... 24

Gambar IV-1 Ilustrasi Keterkaitan antar Modul ... 26

Gambar V-1 TestCase 1 ... 46

Gambar V-2 TestCase 2 ... 47

Gambar V-3 TestCase 3 ... 48

Gambar V-4 TestCase 4 ... 48

Gambar V-5 TestCase 5 ... 49

Gambar V-6 TestCase 6 ... 49

Gambar V-7 TestCase 7 ... 50

Gambar V-8 TestCase 8 ... 50

Gambar V-9 TestCase 9 ... 51

Gambar V-10 TestCase 10 ... 51


(8)

xi

Universitas Kristen Maranatha

DAFTAR PROGRAM

Program II-1 Pseudocode minmax[7] ... 11

Program IV-1 Cuplikan Program ClassPieceMove ... 27

Program IV-2 Cuplikan Program ClassBitboard ... 29

Program IV-3 Cuplikan Program Properti dalam Class MoveGeneration 30 Program IV-3 Cuplikan Program Properti dalam Class MoveGeneration 31 Program IV-4 Cuplikan Program Utility Method dalam Class MoveGeneration ... 33

Program IV-5 Cuplikan Method bitToMove Versi Pertama ... 34

Program IV-6 Cuplikan Method bitToMove Versi Kedua ... 35

Program IV-7 Cuplikan Method bitToMove Versi Ketiga ... 36

Program IV-8 Cuplikan Method bitPosition ... 36

Program IV-9 Cuplikan method clearBB Versi Pertama ... 38

Program IV-10 Cuplikan method clearBB Versi Kedua ... 38

Program IV-11 Cuplikan method clearBB Versi Ketiga ... 39

Program IV-12 Cuplikan Program MoveGenerator dalam Class MoveGeneration ... 39

Program IV-13 Cuplikan Program Evaluation Function dalam Class MoveGeneration ... 41


(9)

xii

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel III-1 Tabel penjelasan use case menghitung nilai evaluasi suatu

posisi ... 18

Tabel III-2 Tabel penjelasan use case menghasilkan kemungkinan langkah berikut ... 18

Tabel III-3 Tabel penjelasan use case memilih langkah terbaik ... 18

Tabel III-4 Tabel penjelaan use case input posisi papan catur ... 19

Tabel V-1 BlackBox ABHelper() ... 53

Tabel V-2 BlackBox positionEvaluation() ... 54

Tabel V-3 BlackBoxTesting Method generatePieceMove() ... 55

Tabel V-4 Tabel Waktu Eksekusi generatePieceMove() 1. ... 57

Tabel V-5 Tabel Waktu Eksekusi generatePieceMove() 2. ... 57

Tabel V-6 Waktu Eksekusi generatePieceMove() 3. ... 58

Tabel V-7 Tabel Pengujian Waktu Eksekusi Method positionEvaluation() 1. ... 58

Tabel V-8 Tabel Pengujian Waktu Eksekusi Method positionEvaluation() 2. ... 59 Tabel V-9 Tabel Pengujian Waktu Eksekusi Method positionEvaluation() 3. ... Error! Bookmark not defined.9


(10)

xiii


(11)

14


(12)

1

Universitas Kristen Maranatha

BAB I. PERSYARATAN PRODUK

I.1. Pendahuluan

Permainan catur telah lama menjadi media untuk menguji-coba algoritma pencarian, terutama dalam bidang intelegensia buatan. Permainan catur termasuk ke dalam permainan dengan perfect information, maksudnya segala aspek dalam permainan dapat diamati oleh pemain, dan tidak terdapat unsur acak, sehingga dalam permainan catur, langkah-langkah yang terjadi dapat ditebak atau dikalkulasi.

Walaupun demikian, permainan catur menjadi kasus yang sangat menarik untuk menguji-coba teknik-teknik dalam intelegensia buatan, hal tersebut dikarenakan, dalam permainan catur yang memiliki papan permainan dengan 64 posisi dan 32 bidak memiliki variasi posisi sebesar 10120 (Marshall Brain – HowStuffWorks) dan kelas kompleksitas EXPTIME[1], sehingga penyelesaian dengan teknik brute-force tidaklah efektif.

Permainan catur sebagai permainan yang bersifat turn-based, maka akan cocok apabila menggunakan pendekatan algoritma minmax untuk menyelesaikan permasalahan dalam catur. Namun mengingat besarnya pohon pencarian yang mungkin dihasilkan, maka akan sangat memungkinkan untuk melakukan alpha beta pruning pada pohon pencarian tersebut.

Selain algoritma yang diterapkan, struktur data untuk representasi papan catur juga bervariasi. Dua struktur data yang umum digunakan adalah struktur data array dan struktur data bitboard.


(13)

2

2

Universitas Kristen Maranatha

I.1.1. Tujuan

Tujuan pengembangan sistem cerdas ini adalah sebagai berikut :

1. Menerapkan algoritma pencarian minmax dengan kasus permainan catur. Penerapan algoritma minmax akan disertai dengan alpha betapruning.

2. Memanfaatkan bitboard sebagai struktur data untuk merepresentasikan papan catur. 3. Menganalisa efektifitas penerapan algoritma minmax.

4. Menganalisa efisiensi penerapan struktur data bitboard.

I.1.2. Ruang Lingkup Proyek

Ruang lingkup proyek akan mencakup penerapan algoritma minmax pada kasus permainan catur dengan representasi papan berupa bitboard. Apabila dirinci, maka proyek akan dititikberatkan pada :

1. Penerapan praktis algoritma minmax pada kasus permainan catur. 2. Penerapan bitboard guna merepresentasikan papan permainan.

3. Analisa performa bitboard, beserta kekurangan serta kelebihan bitboard.

I.1.3. Definisi, Akronim, dan Singkatan

No Istilah Definisi

1 AI Artificial Intelligence (kecerdasan buatan), cabang ilmu komputer yang mempelajari program yang dapat menyelesaikan suatu masalah secara kreatif dengan meniru langkah-langkah yang mungkin diambil oleh manusia

2 Bishop Bidak mentri

3 Capture Istilah dalam permainan catur, dimana seorang pemain memakan bidak pemain lain

4 castling Perpindahan bidak raja dan bidak benteng sekaligus dengan tujuan melindungi raja

5 DFS Depth-First Search, algoritma pencarian yang mengutamakan pencarian kedalasm pada pohon pencarian


(14)

3

3

Universitas Kristen Maranatha

No Istilah Definisi

6 en passant

Aturan dalam permainan catur, dimana pion yang baru saja maju 2 petak dapat dimakan oleh pion yang berada pada baris yang sama dan kolom yang bersebelahan

7 Engine

Catur

Program komputer yang dapat bermain permainan catur

8 Engine

Pintar

Program atau sistem yang menerapkan algoritma AI sehingga dapat bertindak seperti manusia namun tanpa adanya operator manusia

9 King Bidak raja

10 Knight Bidak kuda

11 Pawn Bidak pion

12 Ply Istilah dalam teori permainan, dimana satu ply merupakan satu langkah yang dilakukan oleh satu pemain, selain itu dalam pohon pencarian, satu ply merupakan satu tingkat dalam pohon pencarian

13 promotion Memajukan pion sampai baris kedelapan, dan mengubahnya menjadi bidak lain

14 Pruning Teknik optimasi dalam proses pencarian pohon pencarian, dimana tidak semua node anak akan dibuka

15 Queen Bidak ratu

16 Rekursif Fungsi pemrograman atau matematik dimana dalam definisi fungsi terdapat penerapan fungsi itu sendiri

17 Rook Bidak benteng

18 Scanning Proses menelusuri sesuatu secara sekuensial sampai menemukan informasi yang dicari

19 Stack Struktur data yang menerapkan prinsip last in first out, dimana data terakhir yang dimasukkan dalam struktur

stack akan dikeluarkan dahulu

20 UI User Interface, antarmuka pengguna, berfungsi sebagai media perantara dan interaksi antara pengguna dengan sistem.

I.1.4. Sistematika Penulisan

Sistematika pembahasan Tugas Akhir ini adalah sebagai berikut: 1. Bab I – Persyaratan Produk


(15)

4

4

Universitas Kristen Maranatha

Bab ini berisi uraian mengenai latar belakang penulisan Tugas Akhir, rumusan persoalan, tujuan, batasan yang diacu, sistematika pembahasan serta gambaran keseluruhan mengenai perangkat lunak yang akan dibuat.

2. Bab II – Spesifikasi Produk

Bab ini berisi uraian mengenai spesifikasi untuk produk mulai dari persyaratan antarmuka sampai kepada fitur dari produk yang akan dibuat.

3. Bab III – Desain Perangkat Lunak

Bab ini berisi uraian mengenai analisis terhadap deskripsi perangkat lunak. 4. Bab IV – Pengembangan Sistem

Bab ini berisi uraian mengenai lingkungan implementasi, batasan implementasi, metode impelementasi serta tahapan implementasi.

5. Bab V –Testing dan Evaluasi Sistem

Bab ini berisi uraian mengenai proses pengujian terhadap hasil implementasi. 6. Bab VI - Kesimpulan dan Saran

Bab ini berisi uraian mengenai kesimpulan yang dapat diambil dari pelaksanaan Tugas Akhir dan saran untuk pengembangan lebih lanjut.


(16)

5

5

Universitas Kristen Maranatha

I.2. Gambaran Keseluruhan

I.2.1. Prespektif Produk

Produk yang akan dihasilkan akan berupa engine yang berfungsi untuk menentukan langkah terbaik berikutnya yang diambil oleh seorang pemain catur dengan kondisi papan permainan tertentu.

I.2.2. Fungsi Produk

Fungsi produk adalah sebagai alat riset algoritma AI pencarian, dalam hal ini algoritma minmax dan penerapan bitboard. Produk akan menganalisa langkah – langkah yang diambil oleh engine dalam mengambil keputusan tertentu, dan dengan demikian akan memperdalam pemahaman akan metode pencarian minmax.

I.2.3. Karakteristik Pengguna

Pengguna program dapat berupa pihak – pihak yang tertarik dengan bidang ilmu AI, peneliti, cendekiawan statistika.

I.2.4. Batasan – Batasan

Batasan dalam pengembangan sistem ini adalah sebagai berikut : 1. Batasan Perangkat Lunak

Sistem Operasi : Microsoft Windows XP SP2 atau Linux Mint 5 Bahasa Pemrograman : Java

Editor : Netbeans 6.1, editplus, notepad++, dan gedit 2. Batasan Perangkat Keras

Processor : Intel Pentium Dual Core T2390 1.86GHz

RAM : 2 GB DDR2


(17)

6

6

Universitas Kristen Maranatha

3. Batasan Aplikasi

Tidak terdapat basis data langkah-langkah opening.

Tidak menggunakan end-gametable.

Penerapan algoritma diutamakan pada bagian mid-game.

Generasi langkah dilakukan hanya pada langkah-langkah semi legal, dan tidak mendukung generasi langkah khusus seperti castling, en passant, dan

promotion.

I.2.5. Asumsi dan Ketergantungan

Beberapa asumsi dalam pengembangan aplikasi ini adalah : 1. Input diberikan oleh pengguna dengan format yang benar.

2. Langkah terbaik yang ditawarkan oleh sistem dihasilkan dari perhitungan algoritmik minmax dan tidak berarti merupakan langkah terbaik riil.

3. Pemrosesan dilakukan dalam batasan perangkat keras yang ada sebagai acuan uji kasus.

I.2.6. Penundaan Persyaratan

Penundaan persyaratan dalam proyek ini adalah optimasi selain alpha beta pruning


(18)

61

Universitas Kristen Maranatha

BAB VI. KESIMPULAN DAN SARAN

VI.2. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi

Dari ketiga metode evaluasi yang diterapkan, dapat ditarik kesimpulan sebagai berikut : 1. Penerapan algoritma minmax yang disertai dengan alpha beta pruning telah

tercapai.

2. Penerapan bitboard sebagai struktur data untuk merepresentasikan papan catur telah diimplementasikan dalam engine catur yang dikembangkan.

3. Efektifitas algoritma pencarian minmax sangat dipengaruhi kedalaman pencarian, dan ketepatan fungsi evaluasi. Dengan optimasi yang dilakukan menggunakan hanya alpha beta pruning dan parameter yang dikalkulasi dalam fungsi evaluasi, bersama dengan hasi; evaluasi pada bagian V.2.1.1, maka dapat disimpulkan algoritma yang diterapkan dalam engine catur telah efektif. 4. Efisiensi sebuah engine catur yang memanfaatkan struktur data bitboard sangat

dipengaruhi oleh jumlah looping yang dibutuhkan untuk mengolah struktur data tersebut, sehingga penting melakukan optimasi yang dapat meminimalisasi jumlah looping yang terjadi. Optimasi - optimasi telah dilakukan dalam engine

catur ini, seperti yang dibahas dalam cuplikan program 5 sampai program IV-11.


(19)

62

Universitas Kristen Maranatha

VI.3. Keterkaitan antara Saran dengan Hasil Evaluasi

Sebuah engine catur merupakan sistem yang kompleks dan terdiri dari banyak bagian, sehingga penerapan sebagian dari aspek-aspek yang terdapat dalam sebuah engine

catur tidak cukup untuk menyokong efektifitas dan efisiensi engine catur, sehingga perlu diterapkan beberapa hal lain, seperti yang disebutkan dibawah ini :

1. Generator langkah legal. 2. Transposition table. 3. Move ordering. 4. Quiescence search. 5. Rotated bitboard.

VI.4. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan

Guna menerapkan saran yang disebutkan dalam bagian sebelumnya, maka hal yang sebaiknya diterapkan terlebih dahulu adalah generator langkah legal dan rotated bitboard.

Dengan adanya generator langkah legal, diharapkan efektifitas dari engine catur dapat meningkat, karena fitur generator langkan legal akan menambah kemampuan engine

catur untuk mendeteksi langkah – langkah yang mengarah pada checkmate maupun

draw . Dengan menggunakan rotated bitboard, maka kecepatan generasi langkah dan fungsi evaluasi untuk slidingpiece, seperti rook, bishop, dan queen, akan meningkat.


(20)

63

Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Fraenkel, A.S(1981). Computing a Perfect Strategy for nxn Chess Requires Time Exponential in N. Berlin : Springer

[2] Fierz,M(2005). Strategy Game Programming. Diakses: April 2009, http://fierz.ch [3] Hyatt,R(1999).Chess program board representations. Diakses 3 Oktober 2009, http://www.cis.uab.edu/hyatt/boardrep.html

[4] Laramee, F(2000). Chess Programming. Diakses: 21 April 2009, http://gamedev.net/reference/programming/features/chess6

[5] Pettersson, J(2006). Quiescent search and the horizon effect. Diakses: 21 April 2009, http://mediocrechess.blogspot/2006/12/guide-quiescent-search-and-horizon.html [6] Pinto,P(2002). Minimax Explained. Diakses: 21 April 2009, http://ai-depot.com/articles/minimax-explained

[7] Russel, S.J & Norvig, P. (1995). Artificial Intelligence : A Modern Approach (2nd ed). New Jersey : Pearson Hall.

[8] Schroder,E(2009). Programmer Stuff: Chess Programming. Diakses: 21 April 2009, http://members.home.nl/matador/chess840.htm

[9] Verhelst,P(2004). Computer Chess Programming. Diakses: 21 April 2009, http://chess.verhelst.org


(1)

4

4

Universitas Kristen Maranatha

Bab ini berisi uraian mengenai latar belakang penulisan Tugas Akhir, rumusan persoalan, tujuan, batasan yang diacu, sistematika pembahasan serta gambaran keseluruhan mengenai perangkat lunak yang akan dibuat.

2. Bab II – Spesifikasi Produk

Bab ini berisi uraian mengenai spesifikasi untuk produk mulai dari persyaratan antarmuka sampai kepada fitur dari produk yang akan dibuat.

3. Bab III – Desain Perangkat Lunak

Bab ini berisi uraian mengenai analisis terhadap deskripsi perangkat lunak. 4. Bab IV – Pengembangan Sistem

Bab ini berisi uraian mengenai lingkungan implementasi, batasan implementasi, metode impelementasi serta tahapan implementasi.

5. Bab V –Testing dan Evaluasi Sistem

Bab ini berisi uraian mengenai proses pengujian terhadap hasil implementasi. 6. Bab VI - Kesimpulan dan Saran

Bab ini berisi uraian mengenai kesimpulan yang dapat diambil dari pelaksanaan Tugas Akhir dan saran untuk pengembangan lebih lanjut.


(2)

5

Universitas Kristen Maranatha

I.2. Gambaran Keseluruhan

I.2.1. Prespektif Produk

Produk yang akan dihasilkan akan berupa engine yang berfungsi untuk menentukan langkah terbaik berikutnya yang diambil oleh seorang pemain catur dengan kondisi papan permainan tertentu.

I.2.2. Fungsi Produk

Fungsi produk adalah sebagai alat riset algoritma AI pencarian, dalam hal ini algoritma minmax dan penerapan bitboard. Produk akan menganalisa langkah – langkah yang diambil oleh engine dalam mengambil keputusan tertentu, dan dengan demikian akan memperdalam pemahaman akan metode pencarian minmax.

I.2.3. Karakteristik Pengguna

Pengguna program dapat berupa pihak – pihak yang tertarik dengan bidang ilmu AI, peneliti, cendekiawan statistika.

I.2.4. Batasan – Batasan

Batasan dalam pengembangan sistem ini adalah sebagai berikut : 1. Batasan Perangkat Lunak

Sistem Operasi : Microsoft Windows XP SP2 atau Linux Mint 5 Bahasa Pemrograman : Java

Editor : Netbeans 6.1, editplus, notepad++, dan gedit 2. Batasan Perangkat Keras

Processor : Intel Pentium Dual Core T2390 1.86GHz RAM : 2 GB DDR2


(3)

6

6

Universitas Kristen Maranatha

3. Batasan Aplikasi

Tidak terdapat basis data langkah-langkah opening.

Tidak menggunakan end-gametable.

Penerapan algoritma diutamakan pada bagian mid-game.

Generasi langkah dilakukan hanya pada langkah-langkah semi legal, dan tidak mendukung generasi langkah khusus seperti castling, en passant, dan

promotion.

I.2.5. Asumsi dan Ketergantungan

Beberapa asumsi dalam pengembangan aplikasi ini adalah : 1. Input diberikan oleh pengguna dengan format yang benar.

2. Langkah terbaik yang ditawarkan oleh sistem dihasilkan dari perhitungan algoritmik minmax dan tidak berarti merupakan langkah terbaik riil.

3. Pemrosesan dilakukan dalam batasan perangkat keras yang ada sebagai acuan uji kasus.

I.2.6. Penundaan Persyaratan

Penundaan persyaratan dalam proyek ini adalah optimasi selain alpha beta pruning


(4)

61

Universitas Kristen Maranatha

Dari ketiga metode evaluasi yang diterapkan, dapat ditarik kesimpulan sebagai berikut : 1. Penerapan algoritma minmax yang disertai dengan alpha beta pruning telah

tercapai.

2. Penerapan bitboard sebagai struktur data untuk merepresentasikan papan catur telah diimplementasikan dalam engine catur yang dikembangkan.

3. Efektifitas algoritma pencarian minmax sangat dipengaruhi kedalaman pencarian, dan ketepatan fungsi evaluasi. Dengan optimasi yang dilakukan menggunakan hanya alpha beta pruning dan parameter yang dikalkulasi dalam fungsi evaluasi, bersama dengan hasi; evaluasi pada bagian V.2.1.1, maka dapat disimpulkan algoritma yang diterapkan dalam engine catur telah efektif. 4. Efisiensi sebuah engine catur yang memanfaatkan struktur data bitboard sangat

dipengaruhi oleh jumlah looping yang dibutuhkan untuk mengolah struktur data tersebut, sehingga penting melakukan optimasi yang dapat meminimalisasi jumlah looping yang terjadi. Optimasi - optimasi telah dilakukan dalam engine

catur ini, seperti yang dibahas dalam cuplikan program 5 sampai program IV-11.


(5)

62

Universitas Kristen Maranatha

VI.3. Keterkaitan antara Saran dengan Hasil Evaluasi

Sebuah engine catur merupakan sistem yang kompleks dan terdiri dari banyak bagian, sehingga penerapan sebagian dari aspek-aspek yang terdapat dalam sebuah engine

catur tidak cukup untuk menyokong efektifitas dan efisiensi engine catur, sehingga perlu diterapkan beberapa hal lain, seperti yang disebutkan dibawah ini :

1. Generator langkah legal. 2. Transposition table. 3. Move ordering. 4. Quiescence search. 5. Rotated bitboard.

VI.4. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan

Guna menerapkan saran yang disebutkan dalam bagian sebelumnya, maka hal yang sebaiknya diterapkan terlebih dahulu adalah generator langkah legal dan rotated bitboard.

Dengan adanya generator langkah legal, diharapkan efektifitas dari engine catur dapat meningkat, karena fitur generator langkan legal akan menambah kemampuan engine

catur untuk mendeteksi langkah – langkah yang mengarah pada checkmate maupun

draw . Dengan menggunakan rotated bitboard, maka kecepatan generasi langkah dan fungsi evaluasi untuk slidingpiece, seperti rook, bishop, dan queen, akan meningkat.


(6)

63

Universitas Kristen Maranatha

[2] Fierz,M(2005). Strategy Game Programming. Diakses: April 2009, http://fierz.ch [3] Hyatt,R(1999).Chess program board representations. Diakses 3 Oktober 2009, http://www.cis.uab.edu/hyatt/boardrep.html

[4] Laramee, F(2000). Chess Programming. Diakses: 21 April 2009, http://gamedev.net/reference/programming/features/chess6

[5] Pettersson, J(2006). Quiescent search and the horizon effect. Diakses: 21 April 2009, http://mediocrechess.blogspot/2006/12/guide-quiescent-search-and-horizon.html [6] Pinto,P(2002). Minimax Explained. Diakses: 21 April 2009, http://ai-depot.com/articles/minimax-explained

[7] Russel, S.J & Norvig, P. (1995). Artificial Intelligence : A Modern Approach (2nd ed). New Jersey : Pearson Hall.

[8] Schroder,E(2009). Programmer Stuff: Chess Programming. Diakses: 21 April 2009, http://members.home.nl/matador/chess840.htm

[9] Verhelst,P(2004). Computer Chess Programming. Diakses: 21 April 2009, http://chess.verhelst.org