• Tidak ada hasil yang ditemukan

Analisis Dan Implementasi Kecerdasan Buatan Pada Permainan Checker Menggunakan Algoritma Minimax Dengan Negascout

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisis Dan Implementasi Kecerdasan Buatan Pada Permainan Checker Menggunakan Algoritma Minimax Dengan Negascout"

Copied!
80
0
0

Teks penuh

(1)

ANALISIS DAN IMPLEMENTASI KECERDASAN BUATAN

PADA PERMAINAN CHECKER MENGGUNAKAN

ALGORITMA MINIMAX DENGAN NEGASCOUT

SKRIPSI

MUHAMMAD AIDIL AKBAR

061401020

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

ANALISIS DAN IMPLEMENTASI KECERDASAN BUATAN

PADA PERMAINAN CHECKER MENGGUNAKAN

ALGORITMA MINIMAX DENGAN NEGASCOUT

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

MUHAMMAD AIDIL AKBAR

061401020

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : ANALISIS DAN IMPLEMENTASI KECERDASAN

BUATAN PADA PERMAINAN CHECKER MENGGUNAKAN ALGORITMA MINIMAX DENGAN NEGASCOUT

Kategori : SKRIPSI

Nama : MUHAMMAD AIDIL AKBAR

Nomor Induk Mahasiswa : 061401020

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

M. Andri B, ST, M.CompSc, MEM Drs. Marihat Situmorang, M.Kom NIP 197510082008011011 NIP 196312141989031001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

ANALISIS DAN IMPLEMENTASI KECERDASAN BUATAN PADA PERMAINAN CHECKER MENGGUNAKAN

ALGORITMA MINIMAX DENGAN NEGASCOUT

SKRIPSI

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

Medan,

(5)

PENGHARGAAN

Puji syukur penulis sampaikan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatu dalam hidup, sehingga penulis 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 M. Andri B, ST, M.CompSc, MEM selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. Ucapan terima kasih juga ditujukan kepada Prof. Dr. Iryanto, M.Si dan Dra. Mardiningsih, M.Si yang telah bersedia menjadi dosen penguji yang telah banyak memberikan kritik dan saran agar skripsi ini mendekati kesempurnaan. 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 Matemarika dan Ilmu Pengerahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.

(6)

ABSTRAK

(7)

ANALYSIS AND IMPLEMENTATION OF ARTIFICIAL INTELLIGENCE IN CHECKER USING MINIMAX ALGORITHM

WITH NEGASCOUT

ABSTRACT

(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

1.4 Tujuan Penulisan Tugas Akhir 4

1.5 Manfaat Penulisan Tugas Akhir 4

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Tinjauan Pustaka 6

2.1 Kecerdasan Buatan 6

2.1.1 Tujuan Akhir Kecerdasan Buatan 7

2.2 Agen Cerdas 8

2.2.1 Karakteristik Lingkungan Agen 8

2.3 Permainan Checker 11

2.3.1 Papan dalam Permainan Checker 11

2.3.2 Bidak dalam Permainan Checker 11

2.3.3 Metode Permainan 12

2.3.4 Bidak Pion 12

2.3.5 Bidak Raja 14

2.3.6 Gerakan Menangkap Secara Umum 15

2.3.7 Kemenangan Permainan 16

2.3.8 Permainan Seri 16

2.4 Pohon Permainan 17

2.5 Algoritma Minimax 19

2.6 Negascout 22

2.6.1 Pemotongan Alpha 23

2.6.2 Pemotongan Beta 24

2.6.3 Pemotongan Alpha Beta 24

(9)

Bab 3 Analisis dan Perancangan 26

3.1 Fungsi Evaluasi pada Checker 26

3.1.1 Nilai Bidak 27

3.1.2 Nilai Melompat 27

3.1.3 Nilai Posisi 27

3.1.4 Nilai Penobatan Raja 28

3.2 Pohon Permainan dan Nilai Evaluasi 28

3.3 Analisis Algoritma Minimax 32

3.4 Analisis Algoritma Negascout 34

3.4.1 Pseudo Code 36

3.4.2 Kinerja Algoritma 37

3.5 Pemodelan Visual Menggunakan UML 37

3.5.1 Identifikasi Use Case Diagram 36

3.5.1.1 Use Case Permainan Baru 39

3.5.1.2 Use Case Pindah Bidak 41

3.5.1.3 Use Case Help About 43

3.5.1.4 Use Case Keluar Permainan 45

3.5.2 Perancangan Class Diagram Checker 46

Bab 4 Implementasi dan Pengujian 49

4.1 Implementasi 49

4.1.1 Konfigurasi Perangkat Keras 49

4.1.2 Konfigurasi Perangkat Lunak 50

4.1.3 Hasil Eksekusi Aplikasi 50

4.2 Pengujian Agen Cerdas 55

4.2.1 Sampel Posisi Pertama 55

4.2.2 Sampel Posisi kedua 58

4.2.3 Sampel Posisi Ketiga 61

4.2.4 Pengujian Waktu Pencarian 64

Bab 5 Kesimpulan dan Saran 65

5.1 Kesimpulan 65

5.2 Saran 66

(10)

DAFTAR TABEL

Halaman

Tabel 3.1 Proses menghitung nilai evaluasi 31

Tabel 3.2 Analisis algoritma Mimimax 33

Tabel 3.3 Analisis algoritma Negascout 35

Tabel 3.4 Tabel pseudo code Negascout 36

Tabel 3.5 Dokumentasi Naratif Use Case Permainan Baru 39 Tabel 3.6 Dokumentasi Naratif Use Case Pindah Bidak 41 Tabel 3.7 Dokumentasi Naratif Use Case Help About 43 Tabel 3.8 Dokumentasi Naratif Use Case Keluar Permainan 45 Tabel 3.9 Penjelasan Kelas-Kelas Pada Class Diagram Checker 48 Tabel 4.1 Pohon Permainan untuk Sampel Pertama 56 Tabel 4.2 Proses Minimax untuk Sampel Pertama 57 Tabel 4.3 Pohon Permainan untuk Sampel kedua 59

Tabel 4.4 Proses Minimax untuk Sampel Kedua 60

(11)

DAFTAR GAMBAR

Halaman

Gambar 1.1 Papan dan Bidak dalam Checker, serta posisi awal permainan 2 Gambar 2.1 Agen berinteraksi dengan lingkungan 8 Gambar 2.2 Bentuk papan Checker dan kondisi awal permainan 12

Gambar 2.3 Bidak pion 13

Gambar 2.4 Gerakan sederhana pion 13

Gambar 2.5 Gerakan menangkap pion 13

Gambar 2.6 Bidak raja 14

Gambar 2.7 Gerakan sederhana raja 14

Gambar 2.8 Gerakan menangkap raja 15

Gambar 2.9 Gerakan beberapa lompatan 15

Gambar 2.10 Contoh pohon permainan tic-tac-toe 18 Gambar 2.11 Langkah pemain pada algoritma Minimax 20 Gambar 2.12 Langkah lawan pada algoritma Minimax 20 Gambar 2.13 Illustrasi cara kerja algoritma Minimax 21 Gambar 2.14 Pohon permainan dengan pemotongan alpha 23 Gamabr 2.15 Pohon permainan dengan algoritma Negascout 25 Gambar 3.1 Strategi perpindahan bidak Checker 27

Gambar 3.2 Kondisi permainan pada Checker 29

Gambar 3.3 Pohon permainan pada Checker 29

Gambar 3.4 Pohon dengan nilai evaluasi pada setiap langkah 30 Gambar 3.5 Pohon dengan nilai evaluasi pada leaf node 31 Gambar 3.6 Proses perubahan nilai node dengan algoritma Minimax 32 Gambar 3.7 Pohon permainan menggunakan algoritma Negascout 34

Gambar 3.8 Use case diagram Checker 38

Gambar 3.9 Activity diagram Permainan Baru 40

Gambar 3.10 Activity diagram Pindah Bidak 42

Gambar 3.11 Activity diagram Help About 44

Gambar 3.12 Activity diagram Keluar Permainan 46

Gambar 3.13 Class diagram Checker 47

Gambar 4.1 Tampilan awal aplikasi permainan Checker 50 Gambar 4.2 Tampilan langkah yang mungkin untuk bidak yang telah dipilih 52 Gambar 4.3 Tampilan ketika agen mendapat giliran melangkah 53

Gambar 4.4 Tampilan jendela New Game 53

Gambar 4.5 Tampilan akhir dari permainan ketika bidak lawan telah habis 54

Gambar 4.6 Tampilan About The Checker 54

Gambar 4.7 Sampel posisi pertama 55

Gambar 4.8 Sampel posisi kedua 58

(12)

ABSTRAK

(13)

ANALYSIS AND IMPLEMENTATION OF ARTIFICIAL INTELLIGENCE IN CHECKER USING MINIMAX ALGORITHM

WITH NEGASCOUT

ABSTRACT

(14)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Kecerdasan buatan merupakan salah satu bidang ilmu komputer yang didefinisikan sebagai kecerdasan yang dibuat untuk suatu sistem dengan menggunakan algoritma-algoritma tertentu sehingga sistem tersebut seolah-olah dapat berpikir seperti manusia (Ben Coppin, 2004).

Permainan papan (board game) merupakan jenis permainan yang dimainkan di atas papan dimana bidak diletakkan di atasnya. Bidak dalam permainan ini mampu berpindah tempat ataupun dimakan oleh bidak lawan, sesuai dengan peraturan yang berlaku pada permainan. Pada umumnya permainan ini berbasis strategi, dimana tujuan akhir dari permainan adalah menghabiskan bidak lawan atau membuat bidak lawan tidak dapat bergerak.

Checker ialah suatu permainan papan dengan menggunakan keterampilan murni dari dua pemain yang mengikuti sejumlah aturan-aturan dalam permainan, dan berusaha untuk memenangkan permainan dengan cara memakan semua bidak lawan dalam papan atau dengan membuat semua bidak lawan tidak dapat melakukan gerakan.

(15)

permainan, setiap pemain memiliki 12 bidak pion. Bidak pion hanya mampu bergerak maju secara diagonal, ketika bidak pion mencapai baris depan terjauh maka bidak pion berubah menjadi bidak raja. Bidak raja mampu bergerak maju atau mundur secara diagonal.

Gambar 1.1 Papan dan bidak dalam Checker, serta posisi awal permainan

Checker merupakan permainan klasik pertama yang dimainkan sepenuhnya oleh komputer. Christopher Strachey (1952) ialah seorang yang menulis program pertama untuk permainan Checker. Schaeffer (1997) memberikan peningkatan pada program ini, dalam pengembangannya ini ia menciptakan Chinook. Chinook ialah juara dunia program Checker. Program Chinook menggunakan algoritma Minimax dengan Alpha Beta Pruning dalam melakukan pencarian pada permainan (Stuart Russel, Peter Norvig, 2003).

(16)

Negascout merupakan algoritma perbaikan dari Alpha Beta Pruning yang digunakan pada algoritma Minimax. Negascout menghasilkan jendela pencarian yang lebih kecil dari pada Alpha Beta Pruning. Pemikiran dasar di belakang Negascout ialah langkah yang dilakukan setelah langkah pertama akan menghasilkan pemotongan (Ian Milington, 2006).

Mencermati hal-hal di atas, maka penulis tertarik untuk melakukan studi dengan judul “Analisis dan Implementasi Kecerdasan Buatan pada Permainan Checker Menggunakan Algoritma Minimax dengan Negascout”. Dengan menggunakan algoritma Negascout, maka diharapkan mampu memaksimalkan waktu yang diperlukan sistem dalam melakukan eksekusi pencarian pada permainan.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas maka rumusan masalahnya adalah bagaimana menganalisis dan menerapkan algoritma Minimax dengan Negascout pada permainan Checker.

1.3 Batasan Masalah

Penulis membuat batasan masalah yaitu:

1. Algoritma yang akan dibahas hanya Minimax dan Negascout, penulis tidak membandingkan algoritma ini dengan algoritma yang lain.

2. Algoritma ini hanya akan menelusuri sampai 12 langkah permainan ke depan. 3. Kecerdasan buatan yang diciptakan tidak mampu melakukan pembelajaran.

1.4 Tujuan Penulisan

(17)

1.5 Manfaat Penulisan

Hasil penelitian ini diharapkan dapat digunakan sebagai:

1. Sarana yang dapat memberikan kejelasan tentang bagaimana cara kerja algoritma Minimax dengan Negascout pada permainan Checker.

2. Sebagai alat bantu yang dapat memicu timbulnya strategi baru yang dapat memenangkan permainan Checker.

1.6 Metodologi Penelitian

Langkah-langkah yang ditempuh dalam menyelesaikan penelitian sebagai berikut: 1. Studi literatur

Pada tahap ini penulis mencari literatur dengan rincian sebagai berikut: a. Mencari referensi mengenai kecerdasan buatan.

b. Mencari referensi mengenai algoritma Minimax dan Negascout. 2. Analisis sistem

Pada tahap ini dilakukan analisis bagaimana menerapkan algoritma Minimax dengan Negascout pada permainan Checker.

3. Perancangan dan implementasi algoritma

Pada tahap ini dilakukan perancangan sesuai dengan hasil dari analisis sistem dan dilanjutkan dengan menerapkan hasil analisis dan perancangan ke dalam sistem.

4. Pengujian

Pada tahap ini dilakukan pengujian sistem apakah berjalan sesuai dengan tujuan penelitian.

5. Kesimpulan dan saran

(18)

1.7 Sistematika Penulisan

Sistematika penulisan dibagi menjadi lima bab, yaitu sebagai berikut:

BAB 1: PENDAHULUAN

Berisikan penjelasan tentang Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan Penulisan, Manfaat Penulisan, dan Metodologi Penelitian.

BAB 2: TINJAUAN PUSTAKA

Bab ini membahas mengenai teori-teori yang mendukung penelitian.

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini berisikan langkah-langkah penelitian yang dilakukan, serta analisis terhadap fokus permasalahan penelitian.

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini berisikan implementasi dan pengujian aplikasi.

BAB 5: KESIMPULAN DAN SARAN

(19)

BAB 2

TINJAUAN PUSTAKA

2.1 Kecerdasan Buatan

Kecerdasan buatan merupakan salah satu bidang ilmu komputer yang didefinisikan sebagai kecerdasan yang dibuat untuk suatu sistem dengan menggunakan algoritma-algoritma tertentu sehingga sistem tersebut seolah-olah dapat berpikir seperti manusia (Ben Coppin, 2004).

Kecerdasan buatan merupakan cabang dari ilmu komputer yang dalam merepresentasi pengetahuan, lebih banyak menggunakan bentuk simbol-simbol dari pada bilangan, dan memproses informasi berdasarkan metode heuristik atau dengan berdasarkan sejumlah aturan ( Encyclopedia Britannica).

Dari beberapa pengertian di atas, maka dapat ditarik suatu kesimpulan bahwa kecerdasan buatan ialah salah satu bagian dari ilmu komputer yang mempelajari perancangan sistem komputer yang cerdas. Maksud dari sistem cerdas yaitu suatu sistem yang dapat memperlihatkan karakteristik yang ada pada tingkah laku manusia, seperti mengerti suatu bahasa, mempelajari, mempertimbangkan, dan memecahkan suatu masalah.

(20)

2.1.1 Tujuan Akhir Kecerdasan Buatan

Menurut Lenat dan Feigenbaum (1992), terdapat sembilan tujuan akhir dari kecerdasan buatan, yaitu:

1. Memahami pola pikir manusia, mencoba untuk mendapatkan pengetahuan ingatan manusia yang mendalam, kemampuan dalam memecahkan masalah, belajar, dan mengambil keputusan.

2. Otomatisasi, menciptakan sistem yang dapat menggantikan manusia dalam tugas-tugas intelegensi. Menggunakan sistem yang performanya sebaik manusia dalam melakukan pekerjaan.

3. Penguatan intelegensi, membangun sistem untuk membantu manusia agar mampu berpikir lebih baik dan lebih cepat.

4. Intelegensi manusia super, membangun sistem yang mempunyai kemampuan untuk melebihi intelegensi manusia.

5. Menyelesaikan permasalahan, sistem mampu menyelesaikan berbagai masalah yang luas.

6. Wacana koheren, mampu berkomunikasi dengan manusia menggunakan bahasa alami.

7. Belajar, mampu memperoleh data sendiri dan mengetahui bagaimana cara memperoleh data. Sistem mampu membuat hipotesis, penerapan atau pembelajaran secara heuristik dan membuat alasan dengan analogi.

(21)

9. Informasi, mampu menyimpan informasi dan mengetahui cara mengambil informasi.

2.2 Agen Cerdas

Agen adalah sesuatu yang dapat mengesan lingkungannya melalui sensors dan mengambil tindakan terhadap lingkungannya melalui actuators. Dengan adanya agen cerdas, maka diharapkan sistem mampu berpikir dan menentukan pilihan langkah yang tepat.

Gambar 2.1 Agen berinteraksi dengan lingkungan

Untuk setiap deretan persepsi yang mungkin, sebuah agen hendaklah memilih satu tindakan yang diharapkan memaksimalkan ukuran kemampuannya, dengan adanya bukti yang diberikan oleh deretan persepsi dan apapun pengetahuan terpasang yang dimiliki agen itu. Maka agen harus mampu melakukan atau memberi tindakan yang benar. Tindakan yang benar adalah tindakan yang menyebabkan agen mencapai tingkat yang paling berhasil (Stuart Russel, Peter Norvig, 2003).

2.2.1 Karakteristik Lingkungan Agen

Berikut adalah beberapa karakteristik lingkungan agen oleh Stuart Russel dan Peter Norvig (2003):

(22)

Apabila sensor pada suatu agen dapat mengakses seluruh keadaan pada lingkungan, maka lingkungan itu dapat dikatakan fully observable terhadap agen. Lebih efektif lagi lingkungan dikatakan fully observable jika sensor dapat mendeteksi seluruh aspek yang berhubungan dengan pilihan aksi yang akan dilakukan. Lingkungan yang fully observable biasanya sangat memudahkan, karena agen tidak perlu mengurus keadaan internal untuk terus melacak keadaan lingkungan. Suatu lingkungan bisa menjadi partially observable akibat ada gangguan dan ketidakakurasian sensor ataupun karena

ada bagian keadaan yang hilang dari data sensor. Permainan Checker bersifat fully observable karena seluruh keadaan pada papan permainan dan

bidak-bidak yang ada semua dapat dipersepsi dengan baik.

2. Deterministic – stochastic

Apabila keadaan lingkungan selanjutnya sepenuhnya bergantung pada keadaan sekarang dan juga tindakan yang akan dilakukan oleh agen, maka lingkungan tersebut bersifat deterministic. Sedangkan stochastic adalah kebalikan dari deterministic, dimana keadaan selanjutnya tidak bergantung pada keadaan

sekarang dan juga tindakan yang akan dilakukan oleh agen. Apabila lingkungan bersifat deterministic terkecuali untuk tindakan dari agen, maka lingkungan tersebut bersifat strategic. Permainan Checker bersifat deterministic karena keadaan selanjutnya bergantung pada keadaan sekarang.

3. Episodic – sequential

Untuk lingkungan yang bersifat episodic, pengalaman agen dibagi-bagi menjadi beberapa episode pendek. Tiap episode terdiri dari apa yang dirasakan agen dan kemudian melakukan satu tindakan tertentu. Kualitas dari tindakan agen hanya tergantung pada episode itu saja, karena tindakan selanjutnya tidak tergantung pada tindakan apa yang akan dilakukan di episode sebelumnya. Lingkungan episodic lebih sederhana karena agen tidak perlu memikirkan langkah-langkah pada keadaan selanjutnya. Sedangkan pada lingkungan sequential, tindakan saat sekarang dapat mempengaruhi tindakan selanjutnya.

(23)

langkah-langkah selanjutnya dan seluruh langkah-langkah yang akan diambil oleh agen saling bergantung.

4. Static – dynamic

Apabila lingkungan dapat berubah saat agen sedang mengambil keputusan, maka lingungan tersebut bersifat dynamic, sebaliknya bersifat static. Lingkungan yang bersifat static lebih mudah dihadapi karena agen tidak perlu memperhatikan lingkungannya saat dia sedang mengambil tindakan, maupun waktu yang terus berjalan. Apabila lingkungan tidak berubah seiring waktu berjalan, namun menyebabkan nilai kemampuan agen berubah-ubah, maka lingkungan tersebut bersifat semidynamic. Permainan Checker bersifat static karena saat agen mengambil tindakan, lingkungan tidak berubah dan juga tidak mempengaruhi nilai kemampuan agen.

5. Discrete – continuous

Apabila kesan dan tindakan yang akan diterima dan dilakukan oleh agen telah ditetapkan dengan jelas, maka lingkungan tersebut bersifat discrete. Catur bersifat discrete, karena langkah yang akan diambil terbatas dan tertentu. Sedangkan pengendara taxi bersifat continuous, karena kecepatan dan lokasi pada taksi untuk suatu jangka tertentu mempunyai nilai yang terus-menerus berubah. Permainan Checker bersifat discrete karena seluruh kesan dan tindakan telah jelas ditetapkan sesuai dengan peraturan permainan.

6. Single agent – multiagent

Agen pemecah permainan teka teki silang berada pada lingkungan yang bersifat single agent. Agen pemain catur berada pada lingkungan yang bersifat multiagent. Ada hal lain yang memberikan perbedaan lingkungan agen, yaitu

(24)

Dengan memahami karakteristik lingkungan pada agen cerdas yang akan dirancang, maka pembuatan agen cerdas dapat dilakukan dengan lebih baik .

2.3 Permainan Checker

Checker ialah suatu permainan papan dengan menggunakan keterampilan murni dari dua pemain yang mengikuti sejumlah aturan-aturan dalam permainan, dan berusaha untuk memenangkan permainan dengan cara memakan semua bidak lawan dalam papan atau dengan membuat semua bidak lawan tidak dapat melakukan gerakan.

2.3.1 Papan dalam Permainan Checker

Papan Checker tersusun oleh 64 persegi bergantian antara sisi gelap dan terang, yang disusun ke dalam satu kumpulan persegi yang terdiri dari 8 baris dan 8 kolom dan dibatasi oleh garis netral. Papan Checker resmi dari World Checker/Draught Federation (WCDF) ialah berwarna hijau dan putih untuk mewakili sisi gelap dan

terang.

Persegi-persegi hijau dengan jumlah 32 yang terdapat pada papan Checker ialah daerah yang digunakan dalam permainan. Papan Checker menandai semua persegi hijau dimulai dari angka 1 sampai dengan 32, dengan tujuan sebagai notasi resmi permainan dan digunakan untuk merekam permainan.

2.3.2 Bidak dalam Permainan Checker

Bidak resmi yang digunakan oleh WCDF ialah bidak berbentuk lingkaran, dengan warna merah dan putih untuk mewakili sisi gelap dan terang.

(25)

gelap harus terletak pada 12 persegi pertama dimulai dari kiri ke kanan yaitu pada 1 sampai 12, dan bidak berwarna terang akan berada pada 12 persegi terakhir yaitu pada 21 sampai 32. Lihat gambar 2.2 untuk mengetahui bentuk papan dan bidak pada permainan Checker, serta kondisi awal permainan.

Gambar 2.2 Bentuk papan Checker dan kondisi awal permainan

2.3.3 Metode Permaian

Metode dalam permainan Checker adalah sebagai berikut:

1. Untuk memulai suatu permainan, pemain harus memilih secara acak warna dari bidak yang akan mereka mainkan. Untuk permainan berikutnya, mereka akan bertukaran warna.

2. Kedua pemain mendapat giliran melakukan suatu langkah pada bidak mereka. Pemain dengan bidak berwarna merah selalu memulai permainan dengan melakukan langkah pertama, dan kemudian dibalas putih.

3. Bidak-bidak hanya dapat melakukan langkah pada persegi berwarna hijau, tidak akan pernah pada persegi berwarna putih.

(26)

2.3.4 Bidak Pion

Bidak pion adalah bidak yang pertama didapat pada saat memulai permainan. Lihat gambar 2.3 untuk mengetahui bentuk dari bidak pion.

Gambar 2.3. Bidak pion

Aturan-aturan pada bidak pion adalah sebagai berikut:

1. Gerakan sederhana dari pion ialah bergerak satu langkah maju secara diagonal, menuju persegi hijau yang kosong dan bedekatan.

Gambar 2.4. Gerakan sederhana pion

2. Suatu gerakan menangkap dari pion adalah perpindahan bidak dari satu persegi hijau menuju suatu persegi hijau kosong diagonal di depannya, jika persegi diagonal depan terdekatnya ditempati oleh bidak lawan, maka posisi akhir dari pion berada pada persegi hijau kosong yang searah diagonal depan dari bidak lawan yang dilewatinya. Ketika selesai melakukan lompatan maka bidak yang tertangkap akan dihapus dari papan.

Gambar 2.5. Gerakan menangkap pion.

(27)

permainan. Pion dinobatkan menjadi raja ditandai dengan meletakkan mahkota di atasnya sebelum langkah berikutnya dilakukan.

2.3.5 Bidak Raja

Bidak raja ialah bidak yang didapat ketika suatu pion mencapai baris depan terjauh atau baris raja. Lihat gambar 2.6 untuk mengetahui bentuk dari bidak raja.

Gambar 2.6. Bidak Raja

Aturan-aturan pada bidak raja adalah sebagai berikut:

1. Gerakan sederhana dari raja menyerupai langkah pada pion, tetapi raja memiliki kekuatan untuk melakukan langkah mundur. Raja mampu bergerak satu langkah maju atau mundur secara diagonal, menuju persegi hijau yang kosong dan berdekatan.

Gambar 2.7. Gerakan sederhana raja

(28)

dilewatinya. Ketika selesai melakukan lompatan maka bidak yang tertangkap akan dihapus dari papan.

Gamber 2.8. Gerakan Menangkap dari raja

2.3.6 Gerakan Menangkap Secara Umum

Gerakan menangkap atau melompat adalah suatu gerak paksaan. Setiap lompatan yang menciptakan kemungkinan untuk melakukan gerakan melompat berikutnya harus berlanjut sampai semua lompatan selesai. Tidak ada pilihan untuk berhenti pada suatu bagian dari lompatan. Hanya satu pengecualian dalam hal ini adalah jika pion mencapai baris raja ketika melakukan lompatan, maka ia akan menjadi raja tetapi tidak dapat melakukan lompatan berikutnya sampai lawannya telah melakukan langkah. Raja yang baru harus menunggu giliran bermain berikutnya

(29)

Gambar 2.9. Gerakan beberapa lompatan

2.3.7 Kemenangan Permainan

Permainan dimenangkan jika telah terpenuhi salah satu dari ketentuan kemenangan permainan, ketentuan tersebut antara lain:

1. Permainan dimenangkan jika lawannya telah mengundurkan diri atau mengakui kekalahannya.

2. Permainan dimenangkan oleh pemain yang berhasil menghabisi semua bidak lawan.

3. Permainan dimenangkan jika lawan tidak memiliki langkah yang mungkin dilakukan, karena semua sisa bidak lawan telah terhambat dan tidak dapat melakukan langkah lagi.

2.3.8 Permainan Seri

Permainan dinyatakan seri jika telah terpenuhi salah satu dari ketentuan seri permainan, ketentuan tersebut antara lain:

1. Suatu permainan dinyatakan seri ketika kedua pemain setuju untuk menyatakan permainan mereka dengan hasil yang seimbang.

(30)

meminta wasit untuk menghitung 40 hitungan langkah. Hitungan dimulai dari langkah pertama pemain penyerang, setelah seorang pemain menyatakan seri. Hitungan hanya dilakukan pada gerakan pemain penyerang. Pemain penyerang harus menunjukkan kepada wasit posisi menguat dalam 40 langkah ini. Hitungan 40 langkah ini dapat diulang kapan saja ketika.

a. Pemain yang menyatakan seri menarik pernyataannya karena posisinya yang semakin menguat.

b. Terjadinya perubahan antara pion menjadi raja, dikarenakan pion telah mencapai baris raja.

c. Terjadinya penangkapan bidak dalam permainan.

Setelah 40 langkah diselesaikan dan menunjukkan suatu posisi menguat, pemain penyerang tetap harus menyelesaikan kemenangannya. Hitungan 40 langkah tetap mampu diminta lagi oleh pemain yang menyatakan seri.

2.4 Pohon Permainan

Pohon permainan merepresentasikan kepada kita kondisi-kondisi yang mungkin kita hadapi pada permainan dimulai dari kondisi yang sedang kita hadapi sekarang hingga beberapa kondisi ke depan. Sebuah pohon permainan merupakan representasi grafis dari contoh permainan. Pohon permainan menyediakan informasi akan pemain, hasil, strategi, dan pilihan langkah.

Pohon permainan dapat direpresentasikan dengan baik pada permainan yang berbasis giliran (turn-based game). Pohon permainan memiliki root yang merupakan representasi dari kondisi dimana langkah belum diambil, nodes pada pohon yang merepresentasikan keadaan-keadaan yang mungkin diambil pada permainan, dan arcs yang merepresentasikan langkah.

(31)

merepresentasikan langkah-langkah yang dapat diambil oleh pemain kedua, dan begitu seterusnya.

Leaf nodes pada pohon permainan merepresentasikan keadaan akhir pada

permainan, dimana permainan tersebut dimenangkan, dikalahkan ataupun seri. Pada permainan yang sederhana, untuk mencapai leaf nodes mungkin dapat direpresentasikan, tetapi untuk permainan yang rumit seperti Checker, pencapaian leaf nodes sangat tidak dimungkinkan karena percabangan pada pohon permainan yang

sangat besar.

Gambar 2.10 Contoh pohon permainan tic-tac-toe

(Ben Coppin, 2004)

Berikut adalah penjelasan pohon permainan tic-tac-toe pada Gambar 2.10:

1. Terdapat root yang merupakan keadaan awal dimana permainan belum dimulai dan langkah belum diambil.

(32)

permainan tersebut merepresentasikan langkah kedua pemain secara bergantian.

3. Untuk nodes pada pohon tersebut merepresentasikan keadaan-keadaan yang dapat diambil oleh pemain yang akan melangkah.

4. Percabangan pertama yang dihasilkan adalah 9, kemudian untuk percabangan berikutnya adalah 8, dan begitu seterusnya hingga mencapai keadaan akhir (leaf nodes).

2.5 Algoritma Minimax

Dalam suatu permainan sederhana, terdapat algoritma yang digunakan untuk mencari langkah terbaik dari situasi sekarang. Algoritma yang paling terkenal ialah algoritma Minimax. Algoritma Minimax ialah suatu metode yang sangat bermanfaat untuk permainan dua pemain sederhana. Metode ini digunakan untuk memilih langkah terbaik yang diberikan, dimana kedua pemain saling berusaha untuk memenangkan permainan. Setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya akan dapat diketahui (M. Tim Jones, 2008).

(33)

Jika pemain memilih suatu langkah, maka pemain akan memilih langkah yang akan menghasilkan suatu posisi yang bagus. Kita dapat menganggap bahwa pemain akan memilih langkah yang akan menuntunnya pada posisi terbaik. dengan kata lain, ketika pemain mendapat giliran bermain maka pemain akan mencoba memaksimalkan nilainya, perhatikan gambar 2.11.

Gambar 2.11 Langkah pemain pada algoritma Minimax

(Ian Milington, 2006)

Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang tersedia. Lawan sedang berusaha meminimalkan nilai dari pemain, perhatikan gambar 2.12.

Gambar 2.12 Langkah lawan pada algoritma Minimax

(Ian Milington, 2006)

Algoritma Minimax merupakan salah satu implementasi dari pencarian DFS (Depth-First Search) dalam melakukan pencarian pada pohon. DFS akan menelusuri simpul paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst.

(34)

algoritma yang lebih jelasnya lagi, dapat dilihat pada gambar 2.13 yang merepresentasikan cara kerja algoritma Minimax.

Gambar 2.13 Illustrasi cara kerja algoritma Minimax

(Ben Coppin, 2004)

(35)

kondisi terburuknya, kita akan mendapatkan nilai 6 sedangkan jika kita memilih jalur kiri, kita hanya akan mendapatkan nilai 3.

Pada dasarnya, algoritma Minimax sangat handal untuk menyelesaikan segala masalah dalam pencarian langkah untuk permainan komputer dengan jumlah kemungkinan penyelesaian yang kecil. Tetapi, jika algoritma Minimax digunakan pada permainan dengan jumlah kemungkinan penyelesaian yang besar seperti pada permainan Checker, algoritma Minimax ini memerlukan waktu yang lama untuk membangun pohon penyelesaian.

Oleh karena itu, beberapa metode lanjutan dari algoritma Minimax telah dikembangkan untuk membatasi melonjaknya jumlah simpul dalam pembangunan pohon penyelesaian. Berbagai jenis metode telah ditemukan untuk meningkatkan kinerja algoritma Minimax, salah satunya adalah Negascout. Dengan menggunakan metode ini maka diharapkan sistem dapat bekerja lebih baik.

2.6 Negascout

Negascout adalah salah satu metode pencarian minimax dengan berasumsi bahwa langkah pertama yang diambil merupakan langkah terbaik, sedangkan sisanya merupakan langkah terburuk. Namun jika ternyata ada langkah yang lebih baik dari langkah pertama, maka akan terjadi proses research atau proses pencarian ulang (Aske Plaat, 1994).

(36)

Algoritma Negascout cukup efisien, tetapi melakukan pemeriksaan posisi papan lebih dari yang diperlukan. Pemotongan cabang memungkinkan algoritma untuk mengabaikan bagian dari pohon yang tidak mungkin berisi langkah terbaik. ini menghasilkan dua jenis pemotongan yaitu pemotongan alpha dan pemotongan beta.

2.6.1 Pemotongan Alpha

Gambar 2.14 menunjukkan suatu pohon permainan sebelum proses dilakukan. Untuk lebih mudah melihat bagaimana nilai-nilai diproses, kita akan menggunakan algoritma Minimax untuk ilustrasi ini.

Gambar 2.14 Pohon permainan dengan pemotongan alpha

(Ian Milington, 2006)

Kita memulai proses dengan cara kerja algoritma Minimax. Jika seorang pemain memilih langkah A, maka lawannya akan memberikan tanggapan dengan langkah C, dan memberikan pemain nilai 5. Maka kita akan menaikkan nilai 5. Sekarang algoritma akan melihat nilai langkah pada B. Terlihat langkah pertama di B ialah E, yang memiliki nilai 4. Tidak peduli berapakah nilai dari F, karena lawan akan selalu memaksa pemain dengan nilai 4. Bahkan tanpa mengetahui nilai F, pemain dapat menyadari bahwa langkah B ialah salah, karena ia dapat memperoleh nilai 5 pada langkah A, dan pada langkah B akan mendapat nilai maksimum 4 atau bahkan lebih rendah.

(37)

dapat kita capai. Kita mungkin menemukan urutan langkah yang lebih baik dalam pencarian, tapi kita tidak akan pernah menerima urutan langkah yang memberikan kita nilai yang lebih rendah. Batas bawah ini dinamakan nilai alpha dan pemotongannya dinamakan dengan pemotongan alpha.

2.6.2 Pemotongan Beta

Pemotongan beta bekerja dengan cara yang sama. Nilai beta terus melacak nilai batas tertinggi dari nilai apa yang kita harapkan. Kita memperbaharui nilai beta ketika kita menemukan suatu langkah yang dipaksakan oleh lawan.

Pada posisi itu kita tahu tidak ada nilai yang lebih besar dari beta. Jika kita menemukan urutan langkah yang bernilai lebih besar dari nilai beta maka kita dapat abaikan saja, karena kita tahu bahwa kita tidak akan pernah diberi kesempatan untuk mendapatkannya.

2.6.3 Pemotongan Alpha Beta

Bersamaan nilai-nilai dari alpha dan beta memberikan suatu jendela kemungkinan langkah. Pemain tidak akan pernah memilih untuk melakukan langkah yang nilainya lebih kecil dari alpha, dan lawan kita tidak akan pernah membiarkan kita melakukan langkah yang lebih besar dari beta. Nilai pada akhirnya harus terletak antara alpha dan beta. Ketika pencarian mulai dilakukan pada pohon, nilai-nilai dari alpha dan beta diperbaharui. Jika cabang dari pohon yang ditemukan di luar dari nilai-nilai ini, maka akan dilakukan pemotongan pada cabang.

2.6.4 Zero-Width Test

(38)

diperolehnya sejauh ini. Pada dasarnya pemotongan alpha beta hanya akan mengembalikan baik nilai alpha ataupun nilai beta sebagai nilai jika gagal (tergantung apakah itu gagal tinggi atau gagal rendah). Informasi tambahan dalam jenis fail-soft dapat membantu menemukan suatu solusi. Hal ini memungkinkan kita untuk menebak nilai awal dan mengulangi pencarian dengan jendela yang lebih masuk akal (Zero-Width Test). Tanpa fail-soft, kita tidak akan tahu seberapa jauh gerakan yang kita

tebak.

Pada dasarnya algoritma Negascout menggabungkan pencarian Minimax dengan pemotongan alpha beta dan pemanggilan zero-width test. Negascout tidak selebar pencarian dengan algoritma Minimax. Negascout menggunakan algoritma pemotongan alpha dan beta untuk melakukan uji coba tersebut.

Negascout bekerja dengan melakukan pemeriksaan secara menyeluruh pada langkah pertama dalam setiap posisi papan. Hal ini dilakukan pada suatu jendela pencarian luas, sehingga algoritma tidak gagal. Berturut-turut langkah diuji menggunakan suatu jalur berdasarkan nilai dari langkah pertama. Jika berhasil, maka akan diulangi pada jendela dengan lebar sebenarnya.

Gambar 2.15 Pohon permainan dengan algoritma Negascout

(39)

BAB 3

ANALISIS DAN PERANCANGAN

Kecerdasan buatan merupakan salah satu bidang ilmu yang penting pada ilmu komputer. Banyak permainan komputer yang memanfaatkan kecerdasan buatan untuk membuat permainan tersebut bertindak cerdas dengan memilih langkah terbaik pada permainan. Tetapi banyak orang yang memainkan permainan tersebut tidak mengerti cara kerja dari kecerdasan buatan itu sendiri. Oleh karena itu, penulis mencoba membuat suatu aplikasi permainan Checker yang memiliki kecerdasan buatan dan menjelaskan bagaimana cara kerja kecerdasan buatan pada permainan Checker.

3.1 Fungsi Evaluasi pada Checker

Dalam suatu pemainan yang berbasis giliran (turn based game), tugas dari fungsi evaluasi ialah untuk melihat kondisi permainan dan memberikan nilai dari sudut padang satu pemain (Ian Milington, 2006). Nilai dihitung pada kedua sisi pemain dan fungsi memberikan nilai positif untuk sisi pemain yang sedang melangkah dan nilai negatif untuk pemain yang tidak sedang melangkah. Nilai evaluasi ialah nilai balik yang diberikan oleh fungsi evaluasi.

(40)

3.1.1 Nilai Bidak

Setiap langkah yang dilakukan oleh bidak pion akan memberikan nilai +0. Tetapi setiap langkah yang dilakukan bidak raja akan memperoleh nilai +5. Hal ini diberikan karena bidak raja memiliki peluang yang lebih besar dalam menghabisi bidak lawan.

3.1.2 Nilai Melompat

Strategi utama dalam permainan Checker ialah strategi untuk memaksimalkan proses memakan bidak lawan. Karena kondisi menang diperoleh jika semua bidak lawan telah habis. Hal ini menyebabkan nilai melompat memiliki nilai yang paling besar pada permainan. Setiap gerakan melompat penulis memberikan nilai +100.

3.1.3 Nilai Posisi

Strategi lain yang digunakan ialah strategi perubah langkah bidak dalam permainan. Setiap kotak dalam permainan diberi suatu nilai yang akan digunakan untuk mengevaluasi langkah bidak.

Gambar 3.1 Strategi perpindahan bidak Checker

(41)

Nilai-nilai pada gambar 3.1 merupakan nilai dari strategi posisi bidak dalam permainan Checker. Pada gambar tersebut dapat kita lihat bahwa nilai tertinggi terdapat pada kotak-kotak yang berada pada pinggir papan. Hal ini dikarenakan kotak pada pinggir papan merupakan kotak yang paling strategis, karena jika ada bidak pada kotak ini maka bidak tersebut tidak bisa dimakan oleh bidak lawan.

3.1.4 Nilai Penobatan Raja

Agar dapat lebih leluasa dalam memakan bidak lawan maka sedapat mungkin seorang pemain harus menciptakan bidak raja di pihaknya. Hal ini terjadi bila bidak pion mencapai baris depan terjauh (baris raja). Dengan menjadi raja, maka bidak mampu bergerak maju atau mundur baik dalam melangkah maupun dalam memakan bidak lawan sedangkan pion biasa hanya dapat berjalan maju saja. Penulis memberikan nilai +50 ketika terjadi kondisi penobatan raja.

3.2 Pohon Permainan dan Nilai Evaluasi

Pohon permainan ialah pohon yang menggambarkan kondisi-kondisi yang mungkin terjadi pada permainan, dimulai dari kondisi yang sedang dihadapi hingga beberapa kondisi ke depan. Pohon permainan merupakan representasi grafis dari contoh permainan.

(42)

Gambar 3.2 Kondisi permainan pada Checker

Dari kondisi gambar 3.2, penulis dapat membuat suatu pohon permainan yang dapat merepresentasikan contoh permainan. Pohon permainan harus sesuai dengan segala kondisi permainan yang berlaku mulai dari langkah-langkah yang boleh dilakukan sampai aturan-aturan permainan. Gambar 3.3 merupakan pohon permainan yang diperoleh dari kondisi permainan gambar 3.2.

Gambar 3.3 Pohon permainan pada Checker

(43)

Setelah membangun suatu pohon permainan, maka penulis memberikan nilai evaluasi pada setiap langkah yang terjadi pada pohon permainan. Seperti yang telah kita ketahui bahwa nilai evaluasi dihitung dari sudut pandang satu pemain, dalam kondisi ini penulis mengevaluasi langkah dari sisi merah. Artinya nilai evaluasi dikali positif untuk langkah sisi merah dan nilai evaluasi dikali negatif untuk langkah sisi putih.

Gambar 3.4 Pohon dengan nilai evaluasi pada setiap langkah

(44)

Tabel 3.1 Proses menghitung nilai evaluasi

Algoritma Minimax menggunakan penelusuran Depth-First Search (DFS) untuk menelusuri pohon permainan dan memberikan nilai pada setiap simpul yang telah dilaluinya. Agar algoritma bekerja sesuai dengan yang diharapkan, maka nilai- nilai evaluasi yang telah diperoleh harus berada pada leaf node pohon. Hal ini dapat dilakukan dengan menjumlahkan nilai-nilai evaluasi setiap node yang menuju leaf node tersebut.

Gambar 3.5 Pohon dengan nilai evaluasi pada leaf node

(45)

3.3 Analisis Algoritma Minimax

Algoritma Minimax merupakan salah satu implementasi dari pencarian DFS (Depth-First Search) dalam melakukan pencarian pada pohon. DFS akan menelusuri simpul

paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dan seterusnya. Penulis akan menjelaskan cara kerja algoritma minimax dari contoh pohon permainan gambar 3.6.

(46)

Tabel 3.2 Analisis algoritma Minimax

Langkah Simpul Nilai Catatan

1 a ∞ Setiap node yang berada pada tingkat min, akan diberi nilai awal ∞, sehingga node min akan mencari nilai yang lebih

kecil dari ∞

2 f -∞ Node yang berada pada tingkat max, akan diberi nilai awal

-∞, sehingga node max akan mencari nilai yang lebih besar

dari -∞

Nilai root sementara disimpan sebagai nilai maksimun pemain. (node Min, mencari nilai terkecil)

22 j -∞

(47)

3.4 Analisis Algoritma Negascout

Setelah mengetahui cara kerja dari algoritma Minimax, selanjutnya penulis akan menganalisis algoritma Negascout. Dalam menganalisis algoritma Negascout, penulis menggunakan contoh pohon permainan yang berbeda dengan sebelumnya. Hal ini disebabkan sebagian node pada pohon permainan gambar 3.6 hanyalah memiliki satu cabang saja. Jika algoritma Negascout digunakan untuk mencari pada pohon tersebut, maka tidak akan terlihat perbedaan antara algoritma Minimax dengan algoritma Negascout. Oleh sebab itu penulis menggunakan pohon permainan pada gambar 3.7 sebagai contoh yang akan dianalisis oleh algoritma Negascout.

Gambar 3.7 Pohon permainan menggunakan algoritma Negascout

(48)

Tabel 3.3 Tabel analisis algoritma Negascout

4 d 5 ∞ Dalam tahap ini, kita telah menelusuri cabang-cabang dari simpul “d”, dan mendapat nilai terbaik ialah 5 (karena 5 > 4). Dimana nilai ini akan dinaikkan ke simpul “b”

5 b -∞ 5 Pada simpul min, kita mengharapkan nilai yang akan diperoleh ialah nilai yang lebih kecil dari 5. Sekarang kita harus menelusuri cabang-cabang dari simpul “e” untuk mencari nilai yang lebih rendah.

6 e -∞ 5 -

7 e 6 5 Pemotongan Beta

Nilai 6 diperoleh dari cabang pertama simpul “e”. Pemain Min akan menyadari bahwa ia akan mendapat nilai yang lebih baik jika memilih langkah “d” dari pada langkah “e”. Karena pada langkah “e”, Min akan mendapat nilai maksimum 6 sedangkan pada d akan mendapat nilai 5. Sekarang kita dapat mengabaikan cabang-cabang dari simpul “e” yang lain.

8 a 5 ∞ Nilai 5 telah dinaikkan ke akar “a”. Sekarang Max telah mengetahui bahwa sekarang nilai terbaiknya setidaknya ialah 5. Ia perlu mencari apakah ia dapat nilai yang lebih baik.

9 c 5 ∞ -

10 f 5 ∞ -

11 f 5 7 Pemotongan Null Window.

Nilai 7 diperoleh pada cabang pertama dari simpul “f”. Dalam negascout terjadi pemotongan null window yang artinya algoritma menebak bahwa 7 ialah nilai terbaik dari simpul “f”. Permotongan ini terjadi karena 7 > alpha.

12 c 7 5

(49)

3.4.1 Pseudo Code

Dengan menggunakan algoritma Minimax dengan Negascout, maka akan terciptalah suatu kecerdasan buatan dengan waktu pencarian optimal untuk suatu permainan. Negascout telah menjadi jantung bagi banyak software permainan terbaik di dunia. Program-program tersebut bahkan telah mampu mengalahkan pemain-pemain juara.

Tabel 3.4 Tabel pseudo code Negascout

1 FUNCTION negascout (p: POSITION; alpha, beta, depth: INTEGER) : INTEGER;

2 VAR i,t,m,n: INTEGER;

9 BEGIN t:= -negascout (p.i, -n, -max(alpha,m), depth+1);

10 IF t > m THEN

Keterangan pseudo code: p = kondisi papan

d = kedalaman maksimum dari pohon yang ditelusuri

b = lebar pohon (banyak langkah yang mungkin terjadi pada papan) evaluate(p ) = merupakan fungsi yang memberikan nilai evaluasi pada kondisi

(50)

3.4.2 Kinerja Algoritma

Algoritma Negascout memiliki banyak keuntungan dibandingkan dengan algoritma Minimax. Keuntugan itu ialah adanya pemotongan pada cabang yang tidak berguna dalam pohon permainan. Pemotongan-pemotongan tersebut antara lain pemotongan alpha, pemotongan beta dan pemotongan null window. Hal ini menyebabkan Negascout memiliki proses pencarian yang jauh lebih optimal.

Negascout akan memiliki waktu pencarian yang paling optimal, ketika Negascout mendapatkan langkah terbaik pada langkah pertama dilakukannya pencarian. Hal ini dikarenakan Negascout tidak melakukan pencarian ulang pada jendela yang telah dipotongnya.

3.5 Pemodelan Visual Menggunakan UML

Penulis menggunakan Unified Modeling Language (UML) dalam mendesain dan merancang aplikasi permainan Checker. UML yang akan digunakan ialah use case diagram, activity diagram, dan class diagram.

3.5.1 Identifikasi Use Case Diagram

Untuk mengetahui actor dan use case yang akan digunakan, maka dilakukan identifikasi actor dan identifikasi use case. Setelah mendapatkan actor dan use case, maka use case diagram dapat digambarkan.

Identifikasi actor dilakukan dengan menjawab pertanyaan-pertanyaan berikut, yaitu:

1. Siapa yang menggunakan sistem? Jawaban:

(51)

2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban:

Pemain.

3. Bagaimana pemakai menggunakan sistem? Jawaban:

Pemain menggunakan sistem dengan memindahkan bidak pada papan permainan untuk dapat bermain melawan agen. Pemain juga dapat memulai permainan baru dengan memilih tingkat kesulitan dan warna pemain. Pemain dapat melihat halaman about. Pemain dapat berhenti dari permainan dengan cara keluar dari aplikasi permainan.

Dengan demikian actor yang diperoleh adalah pemain. Untuk mendapatkan use case dari pemain, maka harus ditentukan hal-hal apa saja yang dapat dilakukan

pemain pada sistem. Berikut adalah hal-hal yang dapat dilakukan oleh pemain: 1. Memulai permainan baru

2. Memindahkan bidak pada papan permainan 3. Melihat halaman about

4. Keluar dari aplikasi permainan

(52)

Gambar 3.8 Use case diagram Checker

3.5.1.1 Use Case Permainan Baru

Berikut ini merupakan tabel dokumentasi naratif dari setiap use case Permainan Baru.

Tabel 3.5 Dokumentasi Naratif Use Case Permainan Baru

Nama use case Permainan Baru

Aktor Pemain

Deskripsi Use case ini mendeksripsikan proses memulai suatu permainan baru.

Prakondisi Sudah masuk ke tampilan aplikasi permainan Checker.

Bidang khas suatu kejadian

Kegiatan Pemain Respons Sistem 1. Klik menu “File”

2 Pilih menu item “New Game”

3. Pilih tingkat kesulitan dan warna pemain

4. Klik tombol “New Game”

2. Tampilkan jendela “New Game”

5. Buat permainan baru dengan tingkat kesulitan dan warna pemain yang telah diberikan.

6. Tutup jendela “New Game"

Bidang alternatif Alt-4: tombol “Cancel”, maka jendela akan ditutup oleh sistem dan permainan dilanjutkan tanpa perubahan

(53)

Activity diagram untuk use case Permainan Baru adalah sebagai berikut.

(54)

3.5.1.2 Use Case Pindah Bidak

Berikut ini merupakan tabel dokumentasi naratif dari setiap use case Pindah Bidak.

Tabel 3.6 Dokumentasi Naratif Use Case Pindah Bidak

Nama Use case Pindah Bidak

Aktor Pemain

Deskripsi Use case ini mendeskripsikan proses memindahkan bidak pada papan permainan.

Prakondisi Sudah masuk ke tampilan aplikasi permainan Checker.

Bidang khas suatu kejadian

Kegiatan Pemain Respons Sistem 1. Klik bidak yang akan

dipindahkan.

3. Klik langkah yang akan dilakukan bidak

2. Tampil kemungkinan langkah bidak.

4. Update papan permainan sesuai dengan perpindahan bidak yang dilakukan pemain.

(55)

Activity diagram untuk use case Pindah Bidak adalah sebagai berikut.

(56)

3.5.1.2 Use Case Help About

Berikut ini merupakan tabel dokumentasi naratif dari setiap use case Help About.

Tabel 3.7 Dokumentasi Naratif Use Case Help About

Nama Use case Help About

Aktor Pemain

Deskripsi Use case ini mendeskripsikan proses menampilkan jendela About The Checker.

Prakondisi Sudah masuk ke tampilan aplikasi permainan Checker.

Bidang khas suatu kejadian

Kegiatan Pemain Respons Sistem 1. Klik menu “Help”

2. Klik menu item “About”

4. Klik tombol “Close”

3. Tampilkan jendela “About The Checker”

5. Tutup jendela “About The Checker”

(57)

Activity diagram untuk use case Help About adalah sebagai berikut.

(58)

3.5.1.2 Use Case Keluar Permainan

Berikut ini merupakan tabel dokumentasi naratif dari setiap use case Keluar Permainan.

Tabel 3.8 Dokumentasi Naratif Use Case Keluar Permainan

Nama Use case Keluar Permainan

Aktor Pemain

Deskripsi Use case ini mendeskripsikan proses keluar dari aplikasi permainan Checker

Prakondisi Sudah masuk ke tampilan aplikasi permainan Checker.

Bidang khas suatu kejadian

Kegiatan Pemain Respons Sistem 1. Klik menu “File”

2. Klik menu item “Exit”

3. Jendela aplikasi permainan Checker ditutup

(59)

Activity diagram untuk use case Keluar Permainan adalah sebagai berikut.

Gambar 3.12 Activity diagram Keluar Permainan

3.5.2 Perancangan Class Diagram Checker

Class diagram dirancang untuk menentukan objek-objek yang dibutuhkan untuk

(60)
(61)

Setiap kelas pada gambar 3.13 memiliki kegunaan masing-masing. Kegunaan kelas-kelas tersebut dijelaskan pada tabel berikut:

Tabel 3.9 Penjelasan Kelas-Kelas Pada Class Diagram Checker

Kelas Kegunaan

Main Kelas utama inisialisasi awal sistem. Semua kelas dieksekusi melalui kelas ini.

FileNewGame Menampilkan jendela “New Game”

FileHelpAbout Menampilkan jendela “About The Checker”

TheGame Kelas yang menampilkan permainan Checker. Semua aktifitas permainan Checker terletak pada kelas ini.

BoardMap Kelas turunan dari JLabel, untuk mempermudah penggantian gambar bidak pada papan Checker.

GameTreeSearch Kelas yang berisi algoritma pencarian Negascout yang dipakai untuk mencari langkah terbaik pada papan.

Board

Merepresentasikan papan pada sebuah array, dan dengan kelas ini proses-proses untuk memanipulasi papan dilakukan.

Map Merupakan kelas yang menampilkan alamat kotak pada papan permainan.

Bidak Kelas yang berisi bidak serta aturan-aturan langkah yang dimiliki oleh bidak.

EvaluateMove Memberikan nilai evaluasi permainan. Moves Berisi langkah-langkah bidak.

(62)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Implementasi dan pengujian sistem akan dijelaskan pada bab ini. Implementasi sistem harus sesuai dengan analisis dan perancangan sistem. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang, dan pengujian sistem dilakukan untuk membuktikan kebenaran proses berpikir agen cerdas yang berjalan pada sistem.

4.1 Implementasi

Penulis menggunakan bahasa pemrograman Java berbasis Swing untuk implementasi aplikasi permainan Checker, dan menggunakan Integrated Development Environment (IDE) Netbeans 6.9.1. Penggunaan Netbeans bertujuan untuk memudahkan penulis dalam pembuatan aplikasi ini karena mampu menyimpan semua variabel-variabel yang telah diinisialisasi sehingga mudah untuk dipanggil, dan juga mampu memeriksa error pada source code tanpa melewati proses compile.

4.1.1 Konfigurasi Perangkat Keras

Pada pengimplementasian aplikasi permainan Checker, penulis menggunakan sebuah komputer yang mempunyai spesifikasi perangkat keras sebagai berikut:

1. Prosesor Intel Pentium 4 CPU 2.80 Ghz. 2. Memory 1.00 GB.

(63)

4. VGA HIS Radeon X1550.

4.1.2 Konfigurasi Perangkat Lunak

Pada pengimplementasian aplikasi permainan Checker, penulis menggunakan Sistem Operasi Windows XP Service Pack 2, 32 bit. Dengan menggunakan Java Standard Edition (SE) Development Kit 6 Update 22.

4.1.3 Hasil Eksekusi Aplikasi

Ketika aplikasi dieksekusi maka akan tampil satu jendela baru yaitu jendela “The Checker” yang merupakan aplikasi permainan Checker. Pemain mendapat kesempatan bermain sebagai sisi merah ketika aplikasi pertama kali dieksekusi. Pemain dengan sisi berwarna merah selalu memulai permainan dengan melakukan langkah pertama pada setiap permainan.

Gambar 4.1 Tampilan awal aplikasi permainan Checker

Berikut ialah penjelasan mengenai penomoran yang ada pada gambar 4.1. 1. Judul aplikasi (The Checker)

(64)

3. Menu Help 4. Status Permainan 5. Papan Permainan 6. Bidak merah

7. Bidak merah yang boleh digerakkan 8. Bidak putih

9. Catatan langkah

Status permainan akan berubah-ubah selama permainan berlangsung. Jika pemain mendapat giliran melangkah, maka status permainan ialah “Silahkan Melangkah”. Sedangkan jika agen yang mendapat giliran melangkah, maka status permainan ialah “Agen Sedang Berpikir”. Dengan adanya status permainan, maka pemain dapat mengetahui giliran bermainnya atau mengetahui bahwa agen sedang melakukan proses pencarian terhadap langkah yang akan dilakukannya.

Catatan langkah merupakan catatan berisi langkah-langkah yang telah dilakukan sebelumnya oleh pemain dan agen selama permainan berlangsung. Catatan ini berfungsi untuk evaluasi permainan atau untuk melihat langkah yang telah dilakukan sebelumnya.

(65)

Gambar 4.2 Tampilan langkah yang mungkin untuk bidak yang telah dipilh

Untuk menyelesaikan gerakan dari bidak, pemain harus memilih langkah yang akan dilakukan oleh bidak. Langkah tersebut ialah langkah yang tersedia pada kotak yang telah diberi tanda silang kuning. Pada gambar 4.2 terlihat bahwa pemain telah memilih bidak pada kotak 11, maka pada bidak tersebut langkah yang mungkin yaitu pindah ke kotak 15 atau 16. Agar menyelesaikan langkah bidak, pemain harus menekan kotak yang telah ditandai tersebut.

(66)

Gambar 4.3 Tampilan ketika agen mendapat giliran melangkah

Menu File akan menampilkan menu item “New Game” dan “Exit”. Ketika menu item “Exit” ditekan maka aplikasi permainan Checker akan ditutup. Sedangkan ketika menu item “New Game” ditekan, maka akan keluar jendela “New Game”. Berikut ialah tampilan untuk jendela “New Game”.

Gambar 4.4 Tampilan jendela New Game

(67)

Gambar 4.5 Tampilan akhir dari permainan ketika bidak lawan telah habis

Sisi merah dimainkan oleh pemain. Ketika sisi merah telah kalah, maka status permainan berubah menjadi “ANDA KALAH..!!”, sedangkan status permainan akan berubah menjadi “ANDA MENANG..!!” ketika pemain telah berhasil memenangkan permainan.

Menu Help akan menampilkan menu item “About”. Berikut ialah gambar jendela ketika menu item “About” ditekan.

(68)

4.2 Pengujian Agen Cerdas

Pengujian dilakukan untuk membuktikan bahwa algoritma Minimax dengan Negascout telah bekerja sesuai dengan rancangan pada agen cerdas. Pada pengujian ini penulis tidak menggunakan data yang terlalu besar, sehingga penulis hanya menggunakan posisi papan yang memiliki sedikit kemungkinan langkah dan penulis membatasi pengujian ini hanya akan menampilkan proses untuk 4 langkah permainan.

Untuk mempermudah menampilkan data pada tabel, maka penulis hanya menggunakan algoritma Minimax. Sehingga pada tabel tersebut tidak akan terjadi pemotongan yang seharusnya dilakukan dengan menggunakan Negascout.

Pengujian dilakukan dengan melakukan uji pada 3 buah sampel dengan posisi papan yang berbeda, kemudian dilakukan pendataan secara manual dengan menggunakan algoritma Minimax.

4.2.1 Sampel Posisi Pertama

Berikut merupakan posisi papan untuk sampel posisi pertama. Pada sampel ini agen bermain sebagai sisi merah dan mendapat giliran melangkah, agen harus mampu memilih langkah terbaik.

(69)

Pada sampel ini agen memilih untuk melangkah 4-8 (pindahkan bidak pada kotak 4 menuju kotak 8). Untuk menguji apakah langkah yang dipilih oleh agen telah sesuai dengan yang telah dirancang, maka akan dilakukan pengujian menggunakan tabel yang berisi aliran perubahan nilai yang terjadi.

Tabel 4.1 Pohon Permainan untuk Sampel Pertama

(70)

Tabel 4.2 Proses Minimax untuk Sampel Pertama

(71)

4.2.2 Sampel Posisi Kedua

Berikut merupakan posisi papan untuk sampel posisi kedua. Pada sampel ini agen bermain sebagai sisi merah dan mendapat giliran melangkah, agen harus mampu memilih langkah terbaik.

Gambar 4.8 Sampel posisi kedua

(72)
(73)

Tabel 4.4 Proses Minimax untuk Sampel Kedua

(74)

4.2.3 Sampel Posisi Ketiga

Berikut merupakan posisi papan untuk sampel posisi ketiga. Pada sampel ini agen bermain sebagai sisi merah dan mendapat giliran melangkah, agen harus mampu memilih langkah terbaik.

Gambar 4.9 Sampel posisi ketiga

(75)
(76)

Tabel 4.6 Proses Minimax untuk Sampel Ketiga

(77)

4.2.4 Pengujian Waktu Pencarian

Pada pengujian waktu pencarian, penulis akan membandingkan waktu yang diperlukan sistem untuk mengeksekusi algoritma Minimax dengan algoritma Negascout. Keadaan papan yang akan dihitung ialah keadaan papan yang telah dibahas sebelumnya yaitu sampel posisi pertama, sampel posisi kedua, dan sampel posisi ketiga. Tingkat kedalaman yang akan dihitung ialah delapan, sembilan, sepuluh, sebelas, dan dua belas.

Dalam menghitung waktu yang diperlukan sistem, penulis menggunakan aplikasi NetBeans IDE 6.9.1. Ketika kita mengcompile suatu code menggunakan aplikasi NetBeans, maka akan tampak waktu yang diperlukan NetBeans untuk membangun code tersebut. Waktu inilah yang penulis gunakan sebagai acuan dalam pengujian.

Tabel 4.7 Pengujian waktu pada algoritma Minimax

Sampel 1 (detik) Sampel 2 (detik) Sampel 3 (detik)

Tingkat - 8 0 2 1

Tingkat - 9 1 4 2

Tingkat - 10 1 13 3

Tingkat - 11 2 49 7

Tingkat - 12 4 122 19

Tabel 4.8 Pengujian waktu pada algoritma Negascout

Sampel 1 (detik) Sampel 2 (detik) Sampel 3 (detik)

Tingkat - 8 0 0 0

Tingkat - 9 0 1 1

Tingkat - 10 0 1 1

Tingkat - 11 1 1 1

(78)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis dan pengujian yang telah dilakukan pada bab sebelumnya, maka kesimpulan yang dapat diambil adalah sebagai berikut:

1. Dalam merancang kecerdasan buatan pada permainan Checker terdapat dua bagian penting yang harus dicermati yaitu fungsi evaluasi dan algoritma penelusuran pada pohon permainan.

2. Algoritma Negascout memiliki pencarian yang lebih baik dari algoritma Minimax. Pemotongan pada Negascout dapat meminimalkan waktu yang diperlukan sistem dalam melakukan pencarian.

3. Dengan minimalnya waktu pencarian yang diperlukan sistem, maka kita dapat meningkatkan tingkat kedalaman yang dilakukan pada pencarian untuk lebih mengoptimalkan kerja agen.

(79)

5.2 Saran

Beberapa saran yang dapat dijadikan pertimbangan dalam mengembangkan penelitian ini antara lain:

1. Perlu dibuat database yang berisi pengetahuan-pengetahuan dari agen. Sehingga dengan adanya database ini, agen mampu melakukan pembelajaran dari pengalaman sebelumnya dan menyimpan semua informasi pembelajaran tersebut ke dalam database.

(80)

DAFTAR PUSTAKA

Ayuningtyas, Nadhira. 2008. “Algoritma Minimax dalam Permainan Checker”. Dalam Strategi Algoritmik. Bandung, Indonesia: Institut Teknologi Bandung.

Coppin, Ben. 2004. Artificial Intelligence Illuminated. United States of America: Jones and Bartlett.

Millington, Ian. 2006. Artificial Intelligence For Games. United States of America: Morgan Kaufmann.

Stuart Russel and Peter Norvig. 2003. Artificial Inteligence A Modern Approach. Second Edition. United States of America: Prentice Hall.

Gambar

Gambar 2.10 Contoh pohon permainan tic-tac-toe
Gambar 2.13 Illustrasi cara kerja algoritma Minimax
Gambar 2.15 Pohon permainan dengan algoritma Negascout
Gambar  3.1 Strategi perpindahan bidak Checker (Nadhira Ayuningtyas, 2008)
+7

Referensi

Dokumen terkait

penyelesaian perselisihan Hubungan Industrial dan Hambatan-hambatan apa yang timbul dalam penyelesaian hubungan industrial melalui

Tujuan dari penelitian ini adalah : (1) Mengidentifikasi merek, jenis kopi yang dijual pada toko tradisional dan minimarket di Kecamatan Gunung Anyar Surabaya;

Beberapa jenis padi lokal dapat dimanfaatkan sebagai sumber genetik untuk varietas padi yang adaptif di lahan pasang surut atau lebak, karena mempunyai sifat

mengembangkan bahan ajar dalam melaksanakan pembelajaran pokok bahasan penyebab perubahan, sehingga diharapkan pengajar menjadi lebih termotivasi untuk terus

Sistem pencahayaan yang digunakan di dalam perancangan loft apartment ini adalah sistem pencahaayaan alami dan buatan. Dasar pemikiran yang dipakai untuk konsep perancangan

Teori yang digunakan dalam menganalisis kebijakan pangan secara khusus kebijakan politik pangan pada pemerintahan SBY-Boediono adalah dengan menggunakan teori

konsentrasi logam berat Ni, Mn dan Cr dalam air laut dan sedimen dari masing-masing stasiun. Parameter lingkungan yang diukur antara lain suhu, pH, salinitas, kecerahan,

Sudah satu minggu kita masuk dalam gerakan DOA PUASA MASSAL 50 HARI yang diadakan di gereja kita. Tuhan memberi tema untuk DOA PUASA MASSAL kita kali ini adalah THE POWER OF