PENERAPAN KONSEP ALGORITMA MINIMAX DENGAN
MENGGUNAKAN BREADTH-FIRST SEARCH (BFS)
PADA PERMAINAN REVERSI
SKRIPSI
SURYA WIJAYA
061401052
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2010
PENERAPAN KONSEP ALGORITMA MINIMAX DENGAN MENGGUNAKAN BREADTH-FIRST SEARCH (BFS) PADA PERMAINAN REVERSI
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
SURYA WIJAYA 061401052
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2010
PERSETUJUAN
Judul : PENERAPAN KONSEP ALGORITMA MINIMAX
DENGAN MENGGUNAKAN BREADTH-FIRST SEARCH (BFS) PADA PERMAINAN REVERSI
Kategori : SKRIPSI
Nama : SURYA WIJAYA
Nomor Induk Mahasiswa : 061401052
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif, S.Si, M.Kom Drs Marihat Situmorang, M.Kom
NIP NIP 196312141989031001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Prof. Dr. Muhammad Zarlis NIP 195707011986011003
PERNYATAAN
PENERAPAN KONSEP ALGORITMA MINIMAX DENGAN MENGGUNAKAN BREADTH-FIRST SEARCH (BFS) PADA PERMAINAN REVERSI
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 3 September 2010
Surya Wijaya 061401052
PENGHARGAAN
Puji syukur saya ucapkan kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat dan hidayahnya, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada Drs Marihat Situmorang, M.Kom selaku pembimbing pertama dan Amer Sharif, S.Si, M.Kom selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. Ucapan terima kasih juga ditujukan kepada Drs. James P. Marbun, M. Kom dan Ade Candra, ST, M. Kom yang telah bersedia menjadi dosen penguji. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.
Skripsi ini terutama saya persembahkan untuk kedua orang tua dan keluarga saya yang telah memberikan dukungan dan motivasi, ayahanda Tjioe Kim Poei dan ibunda Tan Kwie Kie yang selalu sabar dalam mendidik saya. Untuk kedua abang saya, Handy Ciu Dedy dan Indra Wijaya yang selalu memberikan dorongan kepada saya selama menyelesaikan skripsi ini. Terima kasih saya ucapkan kepada teman-teman yang selalu memberikan dukungan, Dennis Suryawijaya, Rury Handayani, Anggarani Novitasari, Stefan Chang, Denny, Rudy Tanaka serta teman-teman RCS. Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan. Semoga Tuhan Yang Maha Esa akan membalasnya.
ABSTRAK
Reversi merupakan salah satu permainan papan yang murni berbasis strategi dan dimainkan oleh dua pemain pada papan yang berukuran 8 baris dan 8 kolom dan setiap pemain memiliki bidak yang berbeda warna (biasanya hitam dan putih). Saat ini, permainan Reversi dapat ditemukan dengan mudah dalam bentuk aplikasi. Penerapan Kecerdasan Buatan menggunakan konsep algoritma Minimax dan algrotima BFS ini dapat mengefisienkan waktu eksekusi program dan memungkinkan agen cerdas untuk mengalahkan manusia. Pembuatan aplikasi ini bertujuan untuk mengetahui cara kerja suatu agen cerdas pada permainan Reversi. Aplikasi ini dikembangkan menggunakan metode perancangan UML dan bahasa pemrograman Java.
IMPLEMENTATION THE CONCEPT OF MINIMAX ALGORITHM USING BREADTH-FIRST SEARCH (BFS) ON REVERSI GAME
ABSTRACT
Reversi is a board game based on pure strategy and played by two player on a board with 8 rows and 8 coloumns and a set of distinct discs (usually used black and white). Nowadays, Reversi has been found easily as a computer-game. Implementation the AI on Reversi game using the concept of Minimax algorithm and BFS algorithm could efficiently reduce the execution time and have a chance to defeat human. The main purpose of developing this Reversi game is to find out the process of the AI. This application was developed using UML and Java programming language.
DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v Abstract vi
Daftar Isi vii
Daftar Tabel ix Daftar Gambar x Bab 1 Pendahuluan 1 1.1 Latar Belakang 1 1.2 Rumusan Masalah 3 1.3 Batasan Masalah 3
1.4 Tujuan Penulisan Tugas Akhir 3
1.5 Manfaat Penulisan Tugas Akhir 3
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori 6
2.1 Permainan Reversi 6
2.1.1 Aturan Permainan Reversi 7
2.2 Agen Cerdas 8
2.2.1 Struktur Agen Cerdas 9
2.2.1.1 Simple Reflex Agents 11
2.2.1.2 Model-Based Reflex Agents 11
2.2.1.3 Goal-Based Agents 12
2.2.1.4 Utility-Based Agents 13
2.2.2 Karakteristik Lingkungan Agen 14
2.3 Pohon Permainan 17
2.4 Algoritma Pencarian (Penelusuran) 19
2.4.1 Depth-First Search 19
2.4.2 Breadth-First Search 21
2.5 Algoritma Minimax 23
Bab 3 Analisis dan Perancangan 26
3.1 Analisis Algoritma Breadth-First Search 26 3.1.1 Kompleksitas Algoritma Breadth-First Search 26
3.1.2 Fungsi Evaluasi 27
3.1.3 Pemotongan (Cut-Off) 29
3.3.1 Identifikasi Use Case Diagram 34
3.3.1.1 Use Case Mulai Baru 36
3.3.1.2 Use Case Letak Koin 38
3.3.1.3 Use Case Undo Langkah 40
3.3.1.4 Use Case Minta Bantuan 42
3.3.2 Perancangan Class Diagram Reversi 43
3.3.3 Sequence Diagram 45
3.3.3.1 Sequence Diagram Untuk Method BFS 46 3.3.3.2 Sequence Diagram Untuk Method konsepMinimax 47
Bab 4 Implementasi dan Pengujian 48
4.1 Implementasi 48
4.1.1 Konfigurasi Perangkat Keras 48
4.1.2 Konfigurasi Perangkat Lunak 49
4.1.3 Hasil Eksekusi Aplikasi 49
4.2 Metode Singkat BFS 54
4.3 Metode konsepMinimax 55
4.4 Pengujian Agen Cerdas 56
4.5 Pengujian Terhadap Responden 63
Bab 5 Kesimpulan dan Saran 65
5.1 Kesimpulan 65
5.2 Saran 66
Daftar Pustaka 67
DAFTAR TABEL
Halaman Tabel 2.1 Contoh Tipe Agen dengan Kesan, Tindakan, Tujuan dan Lingkungan 10 Tabel 2.2 Contoh Lingkungan dan Karakteristiknya 17 Tabel 3.1 Dokumentasi Naratif Use Case Mulai Baru 36 Tabel 3.2 Dokumentasi Naratif Use Case Letak Koin 38 Tabel 3.3 Dokumentasi Naratif Use Case Undo Langkah 40 Tabel 3.4 Dokumentasi Naratif Use Case Minta Bantuan 42 Tabel 3.5 Penjelasan Kelas-Kelas Pada Class Diagram Reversi 45
Tabel 4.1 Data Antrian Tingkat 4 Sampel 1 57
Tabel 4.2 Pencarian Nilai Optimal Sampel 1 58
Tabel 4.3 Data Antrian Tingkat 4 Sampel 2 60
Tabel 4.4 Pencarian Nilai Optimal Sampel 2 60
Tabel 4.5 Data Antrian Tingkat 4 Sampel 3 61
Tabel 4.6 Pencarian Nilai Optimal Sampel 3 62
DAFTAR GAMBAR
Halaman
Gambar 2.1 Agen awal permainan Reversi 6
Gambar 2.2 Kotak yang mungkin (giliran langkah hitam) 7
Gambar 2.3 Agen berinteraksi dengan lingkungan 8
Gambar 2.4 Agen refleks sederhana 11
Gambar 2.5 Agen refleks berbasis model 12
Gambar 2.6 Agen refleks berbasis tujuan 13
Gambar 2.7 Agen refleks berbasis kegunaan 14
Gambar 2.8 Pohon permainan Tic-Tac-Toe 18
Gambar 2.9 Penelusuran pohon permainan dengan DFS 20 Gambar 2.10 Penelusuran pohon permainan dengan BFS 22 Gambar 2.11 Illustrasi cara kerja algoritma Minimax 25 Gambar 3.1 Strategi peletakkan koin pada kotak 28 Gambar 3.2 Kotak-kotak unik pada papan permainan Reversi 29
Gambar 3.3 Kondisi yang menghasilkan cut-off 30
Gambar 3.4 Pohon permainan dengan BFS dan DFS 30
Gambar 3.5 Penelusuran BFS dan konsep algoritma Minimax 32
Gambar 3.6 Use case diagram Reversi 35
Gambar 3.7 Activity diagram Mulai Baru 37
Gambar 3.8 Activity diagram Letak Koin 39
Gambar 3.9 Activity diagram Undo Langkah 41
Gambar 3.10 Activity diagram Minta Bantuan 43
Gambar 3.11 Class diagram Reversi 44
Gambar 3.12 Sequence diagram BFS 46
Gambar 3.13 Sequence diagram konsepMinimax 47
Gambar 4.1 Halaman awal 49
Gambar 4.2 Tampilan agen berpikir 51
Gambar 4.3 Jendela mulai baru 51
Gambar 4.4 Tampilan minta bantuan 52
Gambar 4.5 Tampilan akhir permainan dan papan telah penuh 53 Gambar 4.6 Tampilan akhir permainan dan papan belum penuh 53 Gambar 4.7 Sampel posisi 1 (giliran langkah putih) 56 Gambar 4.8 Sampel posisi 2 (giliran langkah putih) 60 Gambar 4.9 Sampel posisi 3 (giliran langkah hitam) 61