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 10 120 (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. 1
2 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 beta pruning. 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 2
3 No Istilah 6 en passant 7 Engine Catur 8 Engine Pintar Definisi 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 Program komputer yang dapat bermain permainan catur 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 3
4 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. 4
5 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 Harddisk : 80 GB 5
6 3. Batasan Aplikasi Tidak terdapat basis data langkah-langkah opening. Tidak menggunakan end-game table. 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 pada engine catur, dan generator langkah legal. 6