Anda di halaman 1dari 10

INTEGRAL, Vol. 9 No.

1, Maret 2004

PENERAPAN ALGORITMA GENETIK PADA PERMAINAN CATUR JAWA


Nico Saputro dan Erdo Dirgagautama Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Katolik Parahyangan, Bandung Email : nico@home.unpar.ac.id, dirgagautama@yahoo.com Abstrak Pada permainan catur Jawa, ada 7 strategi berdasarkan kondisi papan permainan yang diusulkan untuk memilih langkah mana yang akan diambil. Setiap strategi mempunyai bobotnya masing-masing. Algoritma genetik dipakai untuk mencari bobot setiap strategi tersebut. Algoritma alpha-beta cutoff dipakai untuk melakukan proses evaluasi dan pemilihan langkah yang diambil komputer. Kata kunci : catur jawa, algoritma genetik, algoritma apha-beta cutoff Abstract In Jawa Chess game, there are seven proposed strategy based on the board situation to choosed which way the komputer should moved. Every strategy has their own weight. Genetic Algoritm is used to search the weight of each strategy. Alpha Beta Cutoff Algorithm used for certain the computers movement in the game. Keyword : jawa chess game, genetic algorithm, apha-beta cutoff algorithm Diterima : 1 Agustus 2003 Disetujui untuk dipublikasikan : 9 September 2003

1. Pendahuluan
Algoritma Genetik diciptakan berdasarkan inspirasi dari mekanisme seleksi alam dimana individu yang lebih kuat menjadi pemenang dari lingkungan yang berkompetisi. Konsep dasar Algoritma Genetik relatif mudah dipahami, karena komponen-komponen pembentuk algoritma ini mencerminkan kehidupan di alam, seperti contohnya mekanisme seleksi, pindah silang, mutasi, dan lain-lain. Algoritma Genetik memiliki sifat kokoh, memiliki keseimbangan antara efisiensi dan efektifitas dalam menyelesaikan kasus-kasus dari wilayah masalah yang berbeda. Hal ini akan berakibat pada

penurunan biaya perancangan ulang sistem. Biaya perancangan ulang yang lebih rendah menunjukkan bahwa sistem tersebut memiliki daya adaptasi yang tinggi sehingga sistem ini dapat bertahan lebih lama dibandingkan dengan sistemsistem lainnya. Permainan Catur Jawa merupakan permainan yang sederhana namun mengandalkan kecepatan pikiran untuk menemukan langkah-langkah taktis agar dapat mengalahkan lawan. Agar dapat memenangkan permainan, seorang pemain harus dapat membuat langkahlangkah sebanyak lima petak mendahului lawan berupa sebuah garis datar (horisontal), tegak (vertikal) atau miring

17

INTEGRAL, Vol. 9 No. 1, Maret 2004

tanpa terpotong langkah lawan. Permainan Catur Jawa menitikberatkan pada pencarian langkah yang paling sesuai agar pemain dapat memainkan permainan, sehingga Algoritma Genetik memiliki peran penting.

2. Konsep Dasar
2.1. Algoritma Genetik Algoritma Genetik memakai mekanisme seleksi alam dan ilmu genetik sehingga istilah-istilah pada Algoritma Genetik akan bersesuaian dengan istilah-istilah pada seleksi alam dan ilmu genetik. Pada ilmu genetik, kromosom terdiri dari susunan gen-gen. Tiap gen mengandung nilai atau sifat tertentu yang disebut allele, sedangkan posisi gen dalam kromosom disebut locus. Selanjutnya, satu atau beberapa kromosom bergabung membentuk paket genetik yang disebut genotif. Interaksi genotif dengan lingkungannya disebut fenotif (4). Pada Algoritma Genetik, kromosom bersesuaian dengan string yang dibentuk dari beberapa karakter. Setiap karakter mempunyai posisi (locus) dan mengandung nilai tertentu (allele). Satu atau beberapa string akan bergabung membentuk struktur (genotif). Bila struktur tersebut dikodekan, akan diperoleh satu titik yang merupakan salah satu alternatif solusi (fenotif) (4). Satu siklus iterasi algoritma genetik (sering disebut sebagai generasi) terdapat dua proses, yakni proses seleksi dan rekombinasi. Proses seleksi adalah proses evaluasi kualitas setiap string didalam populasi untuk memperoleh peringkat calon solusi. Berdasarkan hasil evaluasi, dipilih string-string yang akan mengalami proses rekombinasi. Proses pemilihan biasanya dilakukan secara acak, string dengan kualitas yang lebih baik akan memiliki peluang lebih besar untuk terpilih sebagai calon-calon string generasi berikutnya (4).

Proses rekombinasi meliputi proses genetika untuk memperoleh string baru dari pertukaran karakter dari calon-calon string yang didapat pada tahap seleksi. String-string pada generasi baru dihasilkan dengan menggunakan operasi genetik secara acak pada calon string yang terpilih pada tahap seleksi. Proses rekombinasi akan menghasilkan stringstring baru yang berbeda dibandingkan induknya dan dengan demikian diperoleh domain pencarian yang baru (4). Cara kerja Algoritma Genetik sederhana, hanya mencakup proses penduplikasian string-string dan pertukaran bagianbagian dari string. Meskipun cukup sederhana, tetapi mempunyai kemampuan untuk menyelesaikan persoalan optimasi. Kemampuan ini didukung oleh tiga operator genetik, yaitu reproduksi, pindah silang dan mutasi. Pada reproduksi terjadi proses penduplikasian string berdasarkan nilai fungsi objektifnya. Nilai objektif ini dapat dilihat sebagai suatu keuntungan yang ingin dicapai atau dimaksimalkan. Sementara proses pertukaran bagianbagian string dilakukan oleh operator pindah silang dan mutasi (4). Disamping ketiga operator dasar (reproduksi, pindah silang, dan mutasi), parameter-parameter genetik (jumlah populasi, probabilitas pindah silang, probabilitas mutasi, dan lain-lain), serta asumsi-asumsi yang digunakan dalam pemodelannya juga mempunyai peran penting. 2.1.1. Representasi Kromosom Pada kasus catur jawa, string direpresentasikan dengan menggunakan konsep Value Encoding. Pada value encoding, karakter (allele) berbentuk suatu nilai yang berhubungan dengan masalah, misalnya bilangan bulat, desimal atau arah pergerakan.

18

INTEGRAL, Vol. 9 No. 1, Maret 2004

String A String B String C

1.224 5.343 0.456 2.293 2.445 ABJEIFJDHDHERJDLDLEGT (back), (back), (right), (fwd), (left)

Gambar 2.1 Contoh Value Encoding Pengkodean ini sangat baik untuk masalah spesifik dan rumit. Namun pengkodean ini sering memerlukan operator pindah silang dan mutasi yang dikembangkan sesuai dengan karakteristik masalahnya (2). 2.1.2. Siklus Algoritma Genetik Siklus secara umum sebagai berikut(4) : 1. Inisialisasi populasi awal (secara acak atau berdasarkan kriteria tertentu). 2. Evaluasi nilai fitness setiap string. 3. Reproduksi, diperoleh kumpulan string baru calon anggota populasi berikutnya. 4. Pindah silang, dihasilkan string baru kombinasi dari orang tuanya. 5. Mutasi, dilakukan dengan mengubah karakter-karakter dari string secara acak. 6. Ulangi langkah 2-5 sampai konvergen atau sejumlah iterasi telah dilakukan. 2.1.3 Reproduksi Menggunakan Elitism Secara sederhana, reproduksi merupakan proses penyalinan string(4). Setiap string pada suatu generasi akan diseleksi berdasarkan fungsi fitnessnya. Peluang terpilihnya string sebesar nilai fitness string dibagi jumlah nilai fitness seluruh string dalam populasi. Proses reproduksi yang dipergunakan adalah metode Elitism. Metode ini dipilih untuk menjamin agar string terbaik pada generasi sekarang terpilih masuk ke generasi berikutnya. 2.1.4 Pindah Silang Proses pindah silang bertujuan untuk menambah keanekaragaman string di generasi berikutnya berdasarkan stringstring dari generasi saat ini. String baru

akan memiliki bagian dari struktur kedua orang tuanya. Ada beberapa jenis pindah silang, yaitu One Point Crossover, Multi Point Crossover dan Uniform Crossover(4). Berikut adalah langkahlangkah One Point Crossover : 1. Pasangkan secara acak string-string baru hasil reproduksi. 2. Pilih posisi pindah silang (titik pindah silang). 3. Lakukan pertukaran bagian string disebelah kiri atau disebelah kanan titik pindah silang dengan bagian dari string pasangannya yang telah dipartisi dengan cara yang sama. Induk A Abcdef|ghi Induk B Jklmno|pqr Anak C Abcdefpqr Anak D Jklmnoghi Gambar 2.2 Contoh Single Point Crossover Multi Point Crossover sama dengan One Point Crossover, perbedaannya terletak pada jumlah titik pindah silang. 2.1.5 Mutasi Operator mutasi memungkinkan pencarian dalam sembarang daerah dalam domain solusi, sehingga peluang untuk melakukan pencarian pada suatu daerah tidak akan pernah nol. Melalui mutasi, string baru dapat diciptakan dengan melakukan modifikasi terhadap satu atau lebih karakter pada string yang sama(4). Proses mutasi suatu string dapat dilakukan dengan cara mengubah nilai pada sebuah atau beberapa gen secara acak berdasarkan peluang mutasinya. Contoh dari proses mutasi dapat dilihat pada tabel berikut ini. Kromosom A 11001011 Hasil Mutasi 11000011 Gambar 2.3. Contoh Mutasi Kromosom A mengalami mutasi pada gen kelima, yakni nilai awal bit 1 menjadi 0.

19

INTEGRAL, Vol. 9 No. 1, Maret 2004

2.1.6 Probabilitas Pindah Silang (Pc) Probabilitas pindah silang mengendalikan operator pindah silang. Jika n adalah banyaknya string pada populasi, sebanyak Pc x n string akan mengalami pindah silang. Semakin besar nilai Pc, semakin cepat string baru muncul dalam populasi. Jika Pc terlalu besar, string yang merupakan kandidat solusi terbaik mungkin dapat hilang lebih cepat pada generasi berikutnya(4). 2.1.7 Probabilitas Mutasi (Pm) Probabilitas mutasi mengendalikan operator mutasi. Di setiap generasi diperkirakan terjadi mutasi sebanyak Pm x n x l, l adalah panjang string. Pada seleksi alam murni, mutasi jarang sekali muncul sehingga probabilitas mutasi yang digunakan umumnya kecil, lebih kecil daripada probabilitas pindah silang (4) . 2.2. Algoritma Alpha-Beta Cutoff Algoritma Alpha Beta Cutoff adalah pengembangan algoritma Minimax. Algoritma ini akan mempercepat pencarian karena adanya pemotongan cabang jika diketahui cabang tersebut tidak perlu dievaluasi lebih lanjut(1). Proses pencarian secara depthfirst, satu jalur dievaluasi hingga batas yang ditentukan, kemudian setiap node dievaluasi untuk menghasilkan nilai. Dari nilainilai tersebut, dapat diterapkan teknik branch and bound yaitu dengan menentukan dua buah batas yang disebut Alpha (batas atas) dan Beta (batas bawah). Jika nilai node pada jalur berikutnya yang akan diperiksa sudah lebih buruk dari nilai batas maka jalur tersebut tidak perlu diperiksa lagi sehingga waktu yang diperlukan menjadi berkurang (3). Gambar 2.4. Contoh penerapan algoritma Alpha-Beta Cutoff Pada Gambar 4, karena pencarian secara depthfirst maka setelah mengevaluasi sub-tree pertama akan didapat bahwa nilai betanya adalah 3. Kemudian saat melakukan pencarian pada sub-tree kedua level kedua, nilai node pertama yang ditemui adalah 1, maka cabang atau node yang lain tidak perlu diperiksa sebab level tersebut adalah minimasi dan telah diketahui nilai yang akan dipilih adalah 1 atau lebih kecil dari 1 (nilai tersebut lebih kecil dari nilai beta), sedangkan level di atasnya adalah maksimasi sehingga dapat dipastikan node dari sub-tree tersebut tidak akan terpilih. Cara ini juga diterapkan pada sub-tree yang lain. Algoritma Minimax dengan Alpha Beta Cutoff adalah sebagai berikut [3]: Algorithm : MINIMAX-A-B (Position, Depth,Player,Use-Thresh,Pass-Thresh) 1. If DEEP-ENOUGH(Position,Depth), then return the structure VALUE = STATIC(position,Player); PATH = nil 2. Otherwise, generate one more ply of the tree by calling the function MOVE-GEN(Position,Player) and setting SUCCESSORS to the list it returns. 3. If SUCCESSORS is empty,there are no moves to be made; return the same structure that would have been

20

INTEGRAL, Vol. 9 No. 1, Maret 2004

returned if DEEP-ENOUGH had returned TRUE. 4. If SUCCESSORS is not empty, then go through it, examining each element and keeping track of the best one. This is done as follows. For each element SUCC of SUCCESSORS: a) Set RESULT-SUCC to MINIMAX-A-B(SUCC, Depth+1, OPPOSITE(Player), Pass-Thresh, -Use-Thresh). b) Set NEW-VALUE to VALUE(RESULT-SUCC). c) If NEW-VALUE > Pass-Thresh, then we have found a successor that is better than any that have been examined so far. Record this by doing the following. i. Set Pass-Thresh to NEWVALUE. ii. The best known path is now from CURRENT to SUCC and then on to the appropriate path from SUCC as determined by the recursive call to MINIMAXA-B. So set BEST-PATH to the result of attaching SUCC to the front of PATH(RESULT-SUCC). d) If Pass-Thresh (reflecting the current best value) is not better than Use-Thresh, then we should stop examining this branch. But both thresholds and values have been inverted. So if Pass-Thresh >= Use-Thresh, then return immediately with the value VALUE = Pass-Thresh PATH = BEST-PATH 5. Return the structure VALUE = Pass-Thresh PATH = BEST-PATH 2.3. Permainan Catur Jawa Pada dasarnya permainan Catur Jawa sama seperti Tic Tac Toe, pemain harus membuat suatu garis tanpa putus dalam arah vertikal, diagonal, maupun

horizontal. Bedanya, pemain dikatakan menang jika berhasil membentuk satu garis lurus tanpa putus sebanyak lima kotak. Catur Jawa memerlukan papan permainan, dua tanda untuk mewakili kedua pemain, dan dua pemain. Papan permainan, dapat berbentuk bujur sangkar atau persegi panjang, terdiri dari sekumpulan bujur sangkar kecil yang tersusun berdampingan (seperti papan catur). Jumlah bujur sangkar kecil dalam arah mendatar maupun vertikal minimal lima, sehingga luas papan minimal adalah dua puluh lima bujur sangkar kecil. Setiap pemain berjalan bergiliran, mengisi salah satu bujur sangkar kecil yang kosong dengan tanda miliknya. Permainan berakhir jika semua bujur sangkar kecil telah habis ditandai atau salah satu pemain telah berhasil membentuk satu garis lurus tanpa putus sebanyak lima kotak, boleh vertikal, horizontal maupun diagonal.

3. Pemodelan
Ada tujuh parameter yang dipakai berdasarkan kondisi papan permainan. Penjelasan ketujuh parameter mengacu pada gambar 3.1. H O O O G X O F X X X X X O E X D X X X X O C O O O O O 3 4 5 6 7 8 9 Gambar 3.1 Contoh kondisi papan 10 X 10 1. Untuk setiap kotak pada papan yang terisi oleh suatu tanda (kita sebut kotak A), lihat jika ada setidaknya satu tanda yang sama di sekelilingnya (terpisah satu kotak) dimana jika disejajarkan dengan kotak A, maka minimal terdapat lima

21

INTEGRAL, Vol. 9 No. 1, Maret 2004

2.

3.

4.

5.

6.

kotak berjajar yang tidak mengandung tanda lawan. Hitung ada berapa. Tanda O : <H7> + <H8> + <H9> + <G9> + <F9> + <D8> + <C5> + <C6> + <C7> + <C8> = 10 Tanda X : <F4> + <F5> + <F6> + <F7> + <F8> + <E5> + <D4> + <D5> + <D6> + <D7> = 10 Terdapat tiga kotak berderetan dengan tanda yang sama dan kedua ujungnya bebas tidak terhalang. Hitung ada berapa. Tanda O : {<H7> + <H8> + <H9>} + {<H9> + <G9> + <F9>} = 2 Tanda X : Nol (tidak ada). Terdapat empat kotak berderetan dengan tanda sama dan salah satu ujungnya bebas tidak terhalang, sedangkan ujung lainnya terhalang oleh tanda lawan. Hitung ada berapa. Tanda O : Nol (tidak ada). Tanda X : {<D4> + <D5> + <D6>+ <D7>} =1 Terdapat empat kotak berderetan dengan tanda yang sama dan kedua ujungnya bebas tidak terhalang. Hitung ada berapa. Tanda O : {<C5> + <C6> + <C7> + <C8>} =1 Tanda X : Nol (tidak ada). Terdapat lima kotak berderetan dengan tanda sama dan kedua ujungnya tidak diperhatikan, (boleh kosong, boleh tanda lawan, boleh tanda yang sama). Hitung ada berapa. Tanda O : Nol (tidak ada). Tanda X : {<F4> + <F5> + <F6> + <F7> + <F8>} = 1 Terdapat tiga kotak berderetan dengan tanda lawan dan satu ujungnya tertutup oleh tanda milik sendiri. Hitung ada berapa. Tanda O :

{<F5> + <E5>+ <D5>} + {<F4> + <E5>+ <D6>} = 2 Tanda X : Nol (tidak ada). 7. Terdapat empat kotak berderetan dengan tanda lawan dan kedua ujungnya tertutup oleh tanda milik sendiri. Hitung ada berapa . Tanda O : {<G7> + <F6> + <E5> + <D4>} =1 Tanda X : Nol (tidak ada). 3.1. Representasi ke bentuk String Setiap parameter kondisi papan seperti diuraikan diatas adalah sebuah gen. Karena ada 7 parameter maka kromosom terdiri dari 7 buah gen. Posisi setiap gen pada kromosom (locus), mewakili urutan parameter. Gen paling kiri mewakili parameter pertama, gen paling kanan mewakili parameter ketujuh. Nilai gen (allele) adalah bobot parameter tersebut yang mewakili seberapa penting parameter tersebut.
10 20 50 70 100 50 50

Gambar 3.2 Contoh kromosom dengan 7 gen Pada gambar 3.8 terlihat parameter pertama mempunyai bobot 10, parameter kedua 20, parameter ketiga 50, dst. Sedangkan fungsi fitness-nya adalah :

F ( x1 , x2 ,..., x7 ) = a1 x1 + a 2 x2 + ... + a7 x7
Dengan : F(x) = fungsi fitness ai = alelle pada locus ke-i dari string xi = nilai parameter ke-i

Misalkan kondisi papan permainan seperti pada gambar 3.1. Untuk tanda O, tujuh parameternya bernilai masingmasing : 10, 2, 0, 1, 0, 2, dan 1 sehingga nilai fitness : F(10, 20, 50, 70, 100, 50, 50) = 10 x 10 + 20 x 2 + 50 x 0 + 70 x 1 + 100 x 0 + 50 x 2 + 50 x 1= 360.

F ( x1 , x2 ,..., x7 ) = a1 x1 + a 2 x2 + ... + a7 x7

22

INTEGRAL, Vol. 9 No. 1, Maret 2004

Nilai sebesar 360 inilah yang merupakan hasil pemetaan dari kondisi papan permainan. 3.2 Penggunaan Algoritma Alpha-Beta Cutoff Algoritma Alpha-Beta Cutoff dipakai untuk menentukan langkah yang akan diambil oleh komputer. Dari setiap kondisi papan, komputer akan mendapatkan suatu nilai fitness tertentu (lihat bagian 3.1). Nilai fitness ini akan menjadi node pada Algoritma Alpha-Beta Cutoff. Dengan mengevaluasi segala kemungkinan pergerakan lawan berdasarkan kondisi papan saat ini, akan diperoleh node-node baru sehingga membentuk struktur tree. Berdasarkan nilai-nilai node yang telah terbentuk pada tree, Algoritma Alpha-Beta Cutoff dapat memilih langkah terbaik yang harus diambil. 3.3. Pencarian Bobot Terbaik Pencarian bobot terbaik dilakukan dengan melakukan simulasi pertandingan antara komputer melawan komputer. Siklus algoritma genetik yang dipakai adalah : 1. Buat populasi awal, dapat ditentukan oleh user. Jumlah string minimal dua dan tidak boleh ada dua atau lebih string yang sama. 2. Tandingkan antar anggota populasi dengan sistem setengah kompetisi, setiap string pernah bertanding dengan string lain sebanyak satu kali. 3. Buat peringkat berdasarkan nilai hasil pertandingan. Sistem penilaiannya adalah menang bernilai dua, kalah bernilai nol, dan seri bernilai satu. 4. Lakukan seleksi, pilih setengah string terbaik untuk masuk ke generasi berikut (elitism) 5. Lakukan operasi genetik seperti one point crossover atau multi point crossover (ditentukan oleh user) atau mutasi pada anggota

populasi sehingga didapatkan string-string baru. Jumlah string baru yang perlu dihasilkan melalui operasi genetik sama dengan setengah populasi. 5.1 Pilih sepasang string. 5.2 Beri nilai acak untuk pasangan string tersebut. 5.3 Jika nilai acaknya lebih kecil dari probabilitas crossover, lakukan crossover. 5.4 Ulangi langkah 5.1 hingga 5.3 sampai seluruh string pernah dipasangkan atau hasil crossover telah berhasil mengenapi jumlah anggota populasi. 5.5 Jika setelah semua proses crossover, anggota populasi belum penuh, lakukan proses mutasi sampai terpenuhi anggota populasi. 6. Ulangi langkah 2 hingga 5 hingga dicapai jumlah generasi yang diinginkan.

4. Pengujian
Pengujian yang dilakukan bersifat black box dan lebih ditekankan untuk memeriksa seberapa baik peran dan kinerja Algoritma Genetik dan Algoritma Alpha-Beta Cutoff pada Perangkat Lunak Permainan Catur Jawa. Lingkungan perangkat keras saat pengujian adalah prosesor AMD Duron 800 MHz dan memori DDRAM 256 MB. 4.1. Uji Simulasi Uji simulasi merupakan pengujian terhadap Perangkat Lunak Permainan Catur Jawa (komputer melawan komputer). Untuk uji simulasi ini, dimensi papan yang dipakai adalah 10 x 10. 4.1.1. Uji Simulasi 1 Pada uji simulasi ini, ingin dicari bobot terbaik dengan memberikan variasi terhadap probabilitas crossover dan probabilitas mutasi.

23

INTEGRAL, Vol. 9 No. 1, Maret 2004

Data genetik yang digunakan adalah jumlah generasi=2, kedalaman AlphaBeta Cutoff =1, operasi two point crossover dengan titik crossover 2 dan 4, operasi two point mutasi dengan titik mutasi 3 dan 7, serta jumlah string = 6, dengan rincian : String 1 : 1.30.33.35.200.31.34 String 2 : 1.25.35.50.200.30.40 String 3 : 80.25.27.45.95.30.123 String 4 : 1.25.27.45.95.30.123 String 5 : 80.25.35.50.200.30.40 String 6 : 44.25.90.50.33.30.100

Pada gambar 4.4 terlihat bahwa string keempat, kelima dan keenam merupakan hasil crossover masing-masing dari string pertama dan kedua, string pertama dan ketiga, dan string kedua dan ketiga. String terbaik = 1.30.33.35.200.31.34. Waktu simulasi : + 50 detik 4.1.2. Uji Simulasi 2 Pada uji simulasi ini, ingin dicari bobot terbaik dengan memberikan variasi terhadap kedalaman Alpha Beta Cuttof. Data genetik yang dipergunakan adalah jumlah generasi 1, posisi titik crossover : 1 dan 6, probabilitas crossover 100%, posisi titik mutasi : 4 dan 5, probabilitas mutasi 100%. Kedalaman Alpha Beta Cutoff= 1, jumlah string ada 6, dengan rincian seperti pada uji simulasi 1. Diperoleh waktu simulasi : + 14 detik dengan peringkat akhir seperti gambar 4.5. Terlihat string terbaik tetap 1.30.33.35.200.31.34.

Gambar 4.1 Hasil generasi 1 untuk Pc = 30% dan Pm = 50%

Gambar 4.2 Hasil akhir untuk Pc = 30% dan Pm=50% Pada gambar 4.2 terlihat bahwa string keempat merupakan hasil crossover string kedua dan ketiga. String kelima dan keenam merupakan hasil mutasi. String terbaik = 1.30.33.35.200.31.34. Waktu simulasi + 54 detik

Gambar 4.5 Hasil untuk depth=1 Kedalaman Alpha Beta Cutoff = 2, string yang dipakai adalah 3 string terbaik yang diperoleh dari 4.1.2.1. Kedalaman alpha beta cutoff berpengaruh signifikan terhadap waktu simulasi menjadi + 22 menit 34 detik dan peringkat akhir seperti gambar 4.6.

Gambar 4.3Hasil generasi 1 untuk Pc = 100% dan Pm=100% Gambar 4.6 peringkat akhir untuk depth=2 Gambar 4.4 Hasil generasi 2 untuk Pc=100% dan Pm=100% 4.2. Uji Permainan Uji permainan dilakukan antara komputer melawan manusia (metode satu pemain), komputer memakai tanda X, dimensi

24

INTEGRAL, Vol. 9 No. 1, Maret 2004

papan 15 x 15 dan bobot merupakan bobot terbaik yang diperoleh dari pengujian sebelumnya yaitu 1.25.35.50.200.30.40. Gambar 4.8 dan gambar 4.9 merupakan langkah yang diambil komputer untuk kedalaman alpha beta cutoff tertentu dan posisi awal seperti gambar 4.7.

Gambar 4.10 Kondisi awal papan

Gambar 4.7 Kondisi awal permainan

Gambar 4.11 Langkah Komputer bila kedalaman alpha beta cutoff = 3

Gambar 4.12 Langkah Komputer bila kedalaman alpha-beta cutoff =1 Gambar 4.8 Langkah komputer bila kedalaman alpha-beta cutoff=2. Terlihat bahwa langkah komputer dengan kedalaman 1 lebih baik daripada langkah komputer dengan kedalaman 3.

5. Kesimpulan
1. Algoritma Genetik dapat dipakai pada permainan Catur Jawa. 2. Berdasarkan pengujian, waktu simulasi lebih bergantung pada kedalaman level Alpha-Beta Cutoff daripada jumlah individu. 3. Untuk 7 strategi yang diusulkan pada permainan catur jawa, Algoritma Alpha-Beta Cutoff sebagai algoritma untuk menentukan langkah yang akan diambil kurang memberikan hasil maksimal.

Gambar 4.9 Langkah Komputer bila kedalaman alpha-beta cutoff=1 Terlihat langkah komputer dengan kedalaman 1 ternyata lebih baik daripada langkah komputer dengan kedalaman 2. Gambar 4.11 dan gambar 4.12 merupakan langkah yang diambil komputer bila dipergunakan kedalaman tertentu berdasarkan kondisi awal papan pada gambar 4.10.

6. Daftar Pustaka
1. Faybish, Itamar, Applying The Genetic Algorithm To The Game of Othello, Computer Science Department Vrije Universiteit Brussel, 1998.

25

INTEGRAL, Vol. 9 No. 1, Maret 2004

2. Koza, John, Operators of Genetic Algorithm [online]. www.cs.felk.cvut.cz/ ~xobitko/ga/operators.html. [8 Nopember 2001]. 3. Rich, Elaine & Kevin Knight, Artificial Intellegence, Second Edition, McGraw-Hill Inc., 1991.

4. Saputro, Nico, Diktat Kuliah Algoritma Genetik, Fakultas Matematika dan Ilmu Pengetahuan Alam Universtas Katolik Parahyangan Bandung, 2000. 5. Pressman, Roger S., Software Engineering : A Practitioners Approach, Fourth Edition, McGrawHill Inc., 1997.

26

Anda mungkin juga menyukai