Analisis algoritma genetika pada permainan Teka-Teki Silang
(2)
(3)
(4)
(5)
1. DATA PRIBADI
Nama : Turyni Nindinda
Jenis Kelamin : Perempuan
Tempat, Tanggal Lahir : Cirebon, 24 Januari 1990
Agama : Islam
Kewarganegaraan : Indonesia
Status : Belum Kawin
Anak ke- : 2 dari 3 saudara
Alamat : Gg. Jaksa no 32 Kelurahan Cikasarung
Kabupaten Majalengka 45415
Telepon : 085-720-754-500
E-mail : turyni.nindinda@yahoo.com
2. RIWAYAT PENDIDIKAN 1. Sekolah Dasar
1996 – 2002 : SD Negeri IV Majalengka
1998 – 1999 : SD Negeri Gelatik Cirebon
1999 – 2002 : SD Negeri IV Majalengka
2. Sekolah Menengah Pertama
2002 – 2005 : SMP Negeri 1 Majalengka
3. Sekolah Menengah Atas
(6)
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.
Bandung,
(7)
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
TURYNI NINDINDA
10108053
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2013
(8)
iii
Assalammu’alaikum Wr. Wb.
Segala puji bagi Allah swt yang telah memberikan rahmat dan hidayah-Nya serta kemampuan dan kesehatan kepada penulis, sehingga laporan skripsi yang
berjudulkan “ANALISIS ALGORITMA GENETIKA PADA PERMAINAN TEKA-TEKI SILANG” dapat terselesaikan sebagai prasyarat utama untuk
memenuhi salah satu syarat dalam menyelesaikan pendidikan Strata 1 (S1) Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia.
Penulis menyadari bahwa skripsi ini belum sempurna, baik dari segi materi maupun penyajiannya. Namun, penulis telah berusaha dengan kemampuan penulis dalam penyelesaian penyusunan laporan ini Untuk itu saran dan kritik yang membangun sangat diharapkan dalam penyempurnaan skripsi ini.
Pada kesempatan ini dengan segala kerendahan hati dan rasa syukur yang mendalam penulis hendak menyampaikan rasa terima kasih kepada :
1. Allah SWT yang telah memberikan kesehatan dan kesempatan kepada penulis dalam menyelesaikan skripsi ini dan juga atas semua keindahan, kemudahan, dan berjuta hikmah yang melahirkan semangat jiwa.
2. Mama dan Papa, selaku orang tua penulis yang telah memberikan doa dan dukungan moril ataupun materi dari sejak awal menempuh pendidikan hingga skripsi ini selesai.
3. Ibu Mira Kania Sabariah, S.T., M.T., selaku Dosen Pembimbing dan Dosen Penguji II yang telah sabar membimbing penulis dalam menyusun skripsi ini.
4. Ibu Sri Nurhayati, S.T., M.T., selaku Dosen Penguji I yang telah banyak membantu dalam penyusunan skripsi ini.
(9)
iv
membantu kelancaran selama perkuliahan dan mengajarkan ilmunya kepada penulis selama masih kuliah.
7. Kepada Kang Oghe dan Teh Rani, terima kasih telah bersedia membantu dan berdiskusi dengan penulis ketika dihadapi dengan kesulitan dalam mengerjakan skripsi ini.
8. „Ni selaku nenek penulis yang selalu memberikan „wejangan’ yang sangat bermanfaat kepada penulis.
9. Kak Dida, Rio dan Bey selaku saudara penulis yang selalu memberi semangat dan masukkan kepada penulis.
10.Sahabat setia dan seperjuangan Dewi Jayanti, Meilia Rahmawati dan Mas Agung yang selalu memberikan doa dan dukungan di saat penulis dihadapi kendala dalam penyusunan skripsi ini.
11.Seluruh rekan-rekan di Jurusan Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia, khususnya teman-teman IF-2 angkatan 2008, Chindy V Rangkuti, Andika, Dito, Bagja, Danu, Reza, Aldy, Andi, Daeng dan yang lainnya atas kebersamaan dalam suka dan duka selama masa perkuliahan yang tidak akan terlupakan.
12.Seluruh rekan seperjuangan anak bimbing Ibu Mira Kania Sabariah, S.T.,M.T., Opi, Iyan, Guntur, Fajar, Fiska, Teh Sarah dan A Tutu atas kekompakannya selama ini.
13.Seluruh teman-teman di Paguyuban Moka Jabar, terima kasih atas motivasi dan semangat yang telah diberikan kepada penulis.
14.Seluruh pihak yang telah banyak membantu yang tidak bisa disebutkan satu persatu
Penulis mohon maaf apabila terdapat sepatah dua patah kata yang dapat menyinggung. Terakhir penulis berharap, semoga skripsi ini dapat memberikan hal yang bermanfaat dan menambah wawasan bagi pembaca dan khususnya bagi penulis juga.
(10)
v
(11)
iv
DAFTAR ISI
ABSTRAK ... Error! Bookmark not defined.
ABSTRACT ... Error! Bookmark not defined.
KATA PENGANTAR ... Error! Bookmark not defined.
DAFTAR ISI ... iv DAFTAR GAMBAR ... Error! Bookmark not defined.
DAFTAR TABEL ... Error! Bookmark not defined.
DAFTAR SIMBOL ... Error! Bookmark not defined.
DAFTAR LAMPIRAN ... Error! Bookmark not defined.
BAB 1 PENDAHULUAN ... Error! Bookmark not defined. 1.1. Latar Belakang Masalah ... Error! Bookmark not defined.
1.2. Rumusan Masalah ... Error! Bookmark not defined.
1.3. Maksud dan Tujuan ... Error! Bookmark not defined.
1.4. Batasan Masalah ... Error! Bookmark not defined.
1.5. Metodologi Penelitian ... Error! Bookmark not defined.
1.6. Sistematika Penulisan ... Error! Bookmark not defined. BAB 2 LANDASAN TEORI ... Error! Bookmark not defined.
2.1. Teka-Teki Silang ... Error! Bookmark not defined.
2.2. Algoritma ... Error! Bookmark not defined.
2.2.1. Definisi Algoritma ... Error! Bookmark not defined.
2.2.2. Sejarah Algoritma ... Error! Bookmark not defined.
2.3. Algoritma Genetika ... Error! Bookmark not defined.
2.3.1. Struktur Algoritma Genetika ... Error! Bookmark not defined.
2.4. Algoritma Backtracking ... Error! Bookmark not defined.
(12)
v
BAB 3 ANALISIS ALGORITMA GENETIKA ... Error! Bookmark not defined.
3.1. Analisis Masalah ... Error! Bookmark not defined.
3.2. Analisis Algoritma ... Error! Bookmark not defined.
3.2.1. Algoritma Backtracking ... Error! Bookmark not defined.
3.2.2. Algoritma Genetika ... Error! Bookmark not defined. BAB 4 PENGUJIAN ... Error! Bookmark not defined.
BAB 5 KESIMPULAN DAN SARAN ... Error! Bookmark not defined. 5.1. Kesimpulan ... Error! Bookmark not defined.
5.2. Saran ... Error! Bookmark not defined. DAFTAR PUSTAKA ... Error! Bookmark not defined.
(13)
73
Informatika, Universitas Komputer Indonesia.
[2] Kusuma,Dewi. (2002). Artificial Intelligence. Bandung: Informatika. [3] Suyanto. (2008).Evolutinary Computation. Bandung :Informatika. [4] Algoritma Genetika. [Online].
HYPERLINK "http://id.wikipedia.org/wiki/Algoritma_genetik" http://id.wikipedia.org/wiki/Algoritma_genetik
[5] Asal-usul dan Sejarah Teka-Teki Silang. [Online]
http://unikbaca.blogspot.com/2012/06/asal-usul-dan-sejarah-teka-teki-silang.html
[6] Heuristic Search. [Online].
HYPERLINK "http://journal.mercubuana.ac.id/data/Heuristic-search.pdf" http://journal.mercubuana.ac.id/data/Heuristic-search.pdf
[7] Kompas Group. 2006. Asah Otak, Cegah Pikun!. [online]. http://www.kompas.com/ver1/Kesehatan/0709/27/112851.htm [8] Membuat Teka-Teki Silang. [Online]. HYPERLINK
"silang-tts/" http://bundawulan.wordpress.com/2008/12/11/membuat-teka-teki-silang-tts/
[9] Sejarah Algoritma. [Online].
http://napsters91.blogspot.com/2010/09/sejarah-algoritma.html [10]Teka-Teki Silang. [Online].
http://www.anneahira.com/teka-teki-silang.htm [11]Makalah TA Hafni. [Online].
http://www.scribd.com/doc/84230571/Makalah-TA-Hafni-Tentang-TTS [12]Metode Seleksi. [Online].
http://dennyhermawanto.wordpress.com/2007/05/11/beberapa-metode-seleksi-algoritma-genetika/
(14)
(15)
1
1.1.Latar Belakang Masalah
Teka-teki silang merupakan salah satu permainan sederhana yang mengharuskan pemain mengisi jawaban pada kolom-kolom kosong yang tersedia sehingga akan menjadi rangkaian dari kata-kata. Permainan teka-teki silang ini pertama kali dikenalkan oleh Arthur Wynne pada tanggal 21 Desember 1913 [10] yang pertama kali dipublikasikan pada majalah terbitan New York World. Adapun permainan teka-teki silang ini dikenalkan dengan keadaan papan dan cara bermain yang sudah seperti keadaan saat ini.
Di dalam permainan teka-teki silang ini terdapat bagian hal yang cukup kompleks, yaitu proses pembuatan jawaban yang harus terhubung dengan jawaban yang lain sehingga papan permainan teka-teki silang yang kosong seluruhnya terisi. Mengisi ataupun mengerjakan teka-teki silang gampang-gampang susah tetapi membuat permainan teka-teki silang adalah satu perkara yang sama sekali berbeda dan itu pasti sulit [8]. Awalnya dengan papan teka-teki silang yang telah tersedia, akan sulit untuk membangkitkan jawaban yang sesuai dan tepat untuk papan teka-teki silang tesebut, hal ini dikarenakan satu jawaban baik itu secara mendatar ataupun menurun akan mempengaruhi jawaban yang lain. Apabila satu jawaban salah maka untuk mencari jawaban lain akan susah.
Sebelumnya telah ada penelitian yang membahas pembuatan permainan teka-teki silang dengan menggunakan algoritma Backtracking. Dari hasil penelitian tersebut proses terbilang lambat dikarenakan sistem kerja algoritma backtracking tidak heuristic sehingga dalam melakukan proses pencarian tidak selektif [7]. Proses backtrack akan selesai ketika tidak ada lagi solusi yang mungkin untuk menyelesaikan permasalahan paling awal.
Salah satu algoritma yang memiliki nilai heuristic yang baik dalam penyelesaian masalah kombinatorial dan juga bagian rekombinasi adalah algoritma genetika [3]. Algoritma genetika merupakan algoritma yang didasari
(16)
teori Darwin yaitu teori evolusi yang memanfaatkan proses seleksi ilmiah.. Algoritma ini menggunakan pencarian acak dalam pencarian solusi berikutnya pencarian akan dilakukan berdasarkan proses teori genetika yang memperhatikan bagaimana cara untuk mendapatkan individu yang lebih baik, sehingga dalam proses evolusi dapat didapat individu yang terbaik dari proses pencarian tersebut.
Berdasarkan permasalahan di atas maka penelitian ini bermaksud untuk menganalisis algoritma Genetika pada permainan teka-teki silang.
1.2.Rumusan Masalah
Berdasarkan latar belakang masalah maka dirumuskan sebuah masalah yaitu bagaimana menganalisis algoritma Genetika pada permainan teka-teki silang.
1.3.Maksud dan Tujuan
Maksud dari penulisan tugas akhir ini adalah menganalisis algoritma Genetika pada permainan teka-teki silang.
Tujuan yang ingin dicapai adalah untuk mengetahui apakah algoritma Genetika tepat digunakan pada kasus permainan teka-teki silang.
1.4.Batasan Masalah
Pembahasan permasalahan diharapkan tidak menyimpang dari inti permasalahan, oleh karena itu dibutuhkan batasan masalah. Adapun batasan masalah dari penulisan tugas akhir ini adalah :
1. Satu pertanyaan dalam teka-teki silang hanya satu jawaban yang terdiri satu suku kata
2. Ukuran cell yang akan diujikan hanya 8 x 8, 8 x 9, 8 x 10 dan 9 x 9. 3. Seluruh kata atau calon jawaban belum tentu terpakai semua
4. Jumlah jawaban dalam satu papan tergantung masukan user
5. Metode dari proses seleksi menggunakan metode Rank based fitness assignment Selection
(17)
7. Simulasi hanya sampai tahap perangkaian jawaban tanpa adanya soal pertanyaan
1.5.Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
1. Tahap Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah studi literature. Hal ini dilakukan dengan cara mengumpulkan jurnal, paper dan bacaan-bacaan yang berkaitan dengan proses mencari, membaca serta website yang berkaitan dengan masalah yang akan dibahas dalam pembuatan tugas akhir ini.
2. Tahapan Analisis Algoritma
Teknik analisis algoritma menggunakan teknik eksperimen yang melakukan perbandingan antara algoritma backtracking dan algoritma genetika terhadap kompleksitas waktu dalam kasus permainan teka-teki silang.
1.6.Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Menguraikan tentang latar belakang permasalahan, merumuskan inti permasalahan yang dihadapi, menentukan maksud dan tujuan yang kemudian diikuti dengan pembatasan masalah, metode penelitian serta sistematika penulisan.
BAB 2 LANDASAN TEORI
Membahas berbagai konsep dasar dan teori-teori teka-teki silang, algoritma, algoritma backtracking dan algoritma genetika berikut dengan hal-hal yang berguna dalam proses analisis permasalahan.
(18)
Menganalisis algoritma genetika dalam kasus permainan teka-teki silang secara pertahap.
BAB 4 PENGUJIAN
Merupakan tahapan yang menguji hasil dari analisis algoritma pada kasus permainan teka-teki silang dengan kondisi-kondisi tertentu tertentu.
BAB 5 KESIMPULAN DAN SARAN
(19)
5
2.1. Teka-Teki Silang
Teka-teki silang merupakan permainan sederhana yang banyak dimainkan dari berbagai kalangan. Cara bermain permaian ini memang sederhana, hanya merangkaikan jawaban soal dengan benar dan mengisikan jawabanya pada kotak kosong yang tersedia di papan teka-teki silang namun jawaban satu dengan yang lainnya harus saling berkaitan. Apabila satu jawaban salah maka akan sulit menemukan jawaban kata dari soal selanjutnya. Aturan permainan ini, kata yang dimasukkan minimal berjumlah tiga huruf, terdapat kata yang tersusun secara mendatar dan menurun dan kata yang tidak berkaitan itu dibatasi dengan kotak hitam. Pembuatan permainan ini dimulai dari mendesain papan teka-teki silang yang kemudian pembuat akan mencari sendiri jawaban yang cocok dengan keadaan papan teka-teki silang sehingga kata per kata dapat terangkai.
Permainan teka-teki silang ini pertama kali dikenalkan oleh Arthur Wynne pada tanggal 21 Desember 1913 [10]. Awalnya Arthur yang bekerja di sebuah media New York World diberikan tugas untuk membuat permainan yang menarik para pembaca. Suatu kali, ia teringat pada masa kecilnya. Arthur ingat bahwa ia pernah memainkan sebuah permainan yang dinamakan “Magic
Squares”. Permainan itu adalah permainan kata-kata, dimana sang pemain harus menyusun kata agar sama mendatar dan menurun hingga membentuk kotak. Dari permainan ini, ia kemudian mencoba berkreasi dengan menambah luasan kata-kata dengan bentuk yang lebih kompleks dan untuk menyusun hal itu, ia memberi semacam pertanyaan untuk membuka kunci jawabannya. Kemudian, pada tahun 1942-an, New York Times, koran ternama di Amerika membuat semacam standar untuk TTS [5]. Standar itu seperti bentuk yang simetris dan panjang kata minimal tiga huruf. Hal ini membuat permainan TTS makin digemari dan populer, hingga akhirnya menyebar ke berbagai belahan dunia.
(20)
2.2. Algoritma
Di bidang komputerisasi atau matematika, algoritma merupakan perintah untuk menyelesaikan suatu permasalahan atau pengambilan keputusan di mana permasalahan yang akan diambil mempunyai kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Seorang analisis sistem tentunya menggunakan menggunakan algoritma untuk merancang suatu sistem dan bagi seorang programmer, algoritma digunakan untuk membuat modul-modul program.
2.2.1. Definisi Algoritma
Algoritma merupakan suatu urutan langkah-langkah dalam memecahkan suatu permasalahan. Algoritma harus dibuat secara sistematis agar komputer dapat mengerti dan mengeksekusinya dengan benar. Algoritma mempunyai tiga komponen yaitu masukan, proses dan keluaran. Komponen masukan terdiri dari pemilihan variable, jenis variable, tipe variable, konstanta dan parameter ke dalam suatu fungsi. Komponen proses merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam komponen ini terdapat logika algoritma, rumusan, dan metode. Komponen keluaran merupakan tujuan perancangan algoritma dan program . Permasalahan yang diselesaikan dalam komponen proses harus ditampilakn dalam komponen keluaran.
2.2.2. Sejarah Algoritma
Dilihat dari asal-usul katanya Algoritma mempunyai sejarah tersendiri. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata
tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far
Muhammad Ibnu Musa Al-Khuwarizmi. Al- Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction) [9]. Dari judul buku itu kita juga memperoleh akar
(21)
kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm
muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
2.3. Algoritma Genetika
Algoritma ini pertama kali diperkenalkan oleh John Holland pada tahun
1975 dari Universitas Michigan dalam bukunya yang berjudul “Adaption in Natural and Artificial System” [4], kemudian pada tahun 1989 dikembangkan oleh muridnya yang bernama David Goldberg. John Holland menyatakan apabila masalah yang berbentuk adaptasi alami maupun buatan dapat diformulasikan ke dalam terminology genetika, lalu muridnya menyatakan bahwa algoritma genetika ini sebagai suatu pencarian algortima berdasarkan mekanisme seleksi dan genetika alam. Algoritma genetika terispirasi dari mekanisme seleksi alam, di mana individu yang lebih kuat yang akan menjadi pemenang dalam lingkungan kompetitif dan solusi yang optimal dapat diperoleh dan diwakilkan oleh pemenang akhir dari permainan genetika.
2.3.1. Struktur Algoritma Genetika
Algoritma genetika melakukan teknik pencarian secara sekaligus atas sejumlah solusi yang dikenal dengan istilah populasi sedangkan individu yang terdapat pada sebuah populasi disebut dengan kromosom. Penentuan populasi awal didapat secara acak yang kemudian populasi berikutnya akan didapat dari hasil proses genetika.
Ada beberapa hal yang harus dilakukan dalam algoritma genetika adalah :
1. Mendefinisikan individu, merupakan pernyataan solusi
(22)
2. Mendefinisikan nilai fitness, merupakan suatu ukuran seberapa baik individu dalam mencapai solusi
3. Menentukan proses pembangkitan populasi awal yang
dilakukan secara acak
4. Menentukan proses seleksi, crossover atau perkawinan
silang.
Beberapa definisi penting yang digunakan dalam Algoritma Genetika, antara lain :
a. Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk arti tertentu dalam satu kesatuan yang disebut kromoson. Gen ini dapat berupa nilai biner, float, integer maupun karakter.
b. Kromoson, gabungan gen yang membentuk nilai tertentu.
c. Individu, menyatakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat.
d. Populasi, sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi.
e. Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.
Algoritma genetika mempunyai beberapa komponen di dalam prosesnya yaitu representasi kromosom, prosedur inisialisasi, fungsi evaluasi, seleksi, operator genetika dan penentuan parameter. Berikut ini pada Gambar 2-1 adalah
(23)
Mulai
Kriteria Terpenuhi ?
Hasil
Selesai
Tidak
Ya Inisilisasi Populasi
Evaluasi Mutasi
Crossover Seleksi
Representasi Kromosom
Gambar 0-1 Flowchart algoritma genetika
1. Representasi Kromosom
Suatu permasalahan yang akan dikonversikan dulu ke dalam suatu individu yang diwakili oleh satu atau lebih kromosom dengan kode tertentu hal ini agar dapat diproses dengan menggunakan algoritma genetika [5].
Representasi kromosom meliputi proses pengkodean gen dari kromosom. Contoh dari representasi kromosom antara lain sebagai berikut :
(24)
2. Bilangan Real : 24.01, 404.24 3. Elemen Permutasi: E2, E10 4. Daftar Aturan : R1, R2, R3
5. Elemen Program : pemrograman genetika 6. Struktur lainnya
Gen adalah bagian dari kromosom, dimana satu gen akan mewakili satu variabel. Selain itu gen dapat direpresentasikan dalam bentuk string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program dan lain-lain. Dalam hal ini akan ditentukan yang mana gen dan yang mana kromosom ke permasalahan yang ada. Seperti pada permasalahan teka-teki silang, yang diketahui sebagai gen adalah kata atau calon jawaban yang dimasukan oleh user
sedangkan yang disebut dengan kromosom adalah kumpulan dari kata yang dimasukkan oleh user karena telah disebutkan sebelumnya bahwa kromosom adalah kumpulan dari gen.
2. Prosedur Inisialisasi
Proses inisialisasi terhadap kromosom ini sebelumnya menentukan ukuran populasi di mana ukuran populasi ini tergantung pada permasalahan yang akan dipecahkan dan jenis operator genetika yang diimplementasikan. Apabila ukuran populasi terlalu besar maka komputasi yang dibutuhkan juga akan lebih besar, sehingga waktu yang dibutuhkan juga akan bertambah. Namun apabila ukuran populasi terlalu kecil maka alternatif solusi akan sedikit, sehingga kemungkinan hasil yang didapatkan kurang baik. Dengan pertimbangan tersebut maka perlu menentukan ukuran populasi yang tidak terlalu besar atau terlalu kecil. Ukuran populasi sebaiknya tidak lebih kecil dari 30 untuk setiap jenis permasalahan [2]. Inisialisasi kromosom dilakukan secara acak dengan memperhatikan permasalahan yang ada. Dari proses inisialisasi ini akan menghasilkan solusi awal yang akan diambil untuk proses berikutnya. Dalam menginisialisasi populasi sehingga menghasilkan solusi awal ini tergantung dengan permasalahan yang akan dipecahkan dengan memperhatikan solusi yang akan dicapai. Sebagai
(25)
contoh dalam permasalahan teka-teki silang solusi yang ingin dicapai adalah menghasilkan kata-kata yang terangkai.
3. Fungsi Evaluasi / Fungsi Fitnes
Untuk menentukan fungsi fitness yang tepat untuk suatu permasalahan pertama yang perlu dilakukan adalah memperhatikan fungsi objektif. Dalam fungsi ini mengenal dua masalah yaitu maksimasi atau minimasi. Maksimasi maksudnya adalah mencari nilai maksimal dari sesuatu (bias berupa fungsi) sehingga tujuannya adalah memaksimalkan suatu kondisi bias fungsi ataupun yang lainnya sedangkan minimasi itu kebalikan dari maksimasi.
Dalam permasalahan yang diambil itu adalah untuk mencari nilai fitness terbesar sehingga dalam hal ini disebut maksimasi. Penentuan fungsi fitness ini berpengaruh terhadap solusi yang akan dihasilkan. Dengan mempertimbangkan dengan permasalahan yang ada fungsi fitness yang akan digunakan untuk proses analisis yaitu sebagai berikut :
(1)
Keterangan :
f = nilai fitness gen[i] = nilai gen ke-i tkp = total kata terpakai
loop = percobaan ke-n (n adalah jumlah proses pengulangan) sedangan untuk mencari hasil dari gen[j] adalah sebagai berikut :
(2) Keterangan :
tp = jumlah titik perpotongan yang ada di gen ke-i tk = jumlah total karakter yang ada di gen ke-i
(26)
4. Seleksi
Proses seleksi ini akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi. Ada beberapa metode seleksi yang dapat digunakan, antara lain :
a) Rank-based fitness assignment
Populasi diurutkan menurut nilai objektifnya [12]. Nilai fitness dari tiap-tiap individu hanya tergantung pada posisi individu tersebut dalam urutan, dan tidak dipengaruhi oleh nilai objektifnya. Sebagai contoh di bawah ini terdapat tabel 2-1 dengan kromosom beserta nilai fitness:
Tabel 0-1 Contoh Kromosom Rank Base
Kromosom Fitness
A 15
B 5
C 10
D 5
E 6
Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tabel 2-2 di bawah ini menunjukan bahwa kromosom pada tabel 2-1 telah diurutkan sesuai dengan nilai fitness :
Tabel 0-2 Contoh Hasil Rank Base
Kromosom Fitness Fitnes Baru
B 5 1
D 5 2
E 6 3
C 10 4
(27)
b) Roulette wheel selection
Pada metode ini, orang tua dipilih berdasarkan nilai fitnessnya, semakin baik nilai fitnessnya maka semakin besar kemungkinannya untuk terpilih. Diandaikan semua kromosom diletakkan pada sebuah roda roulette, besarnya kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya. Seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang memiliki fitness tinggi untuk melakukan reproduksi. Dibawah ini merupakan algoritma dari roulette wheel selection :
1) Dihitung nilai fitness masing-masing individu (fi, dimana i adalah
individu ke 1 s/d ke-n)
2) Dihitung total fitness semua individu
3) Dihitung fitness relatif masing-masing individu
4) Dari fitness relatif tersebut, dihitung fitness kumulatifnya. 5) Dibangkitkan nilai random
6) Dari bilangan random yang dihasilkan, ditentukan individu mana yang terpilih dalam proses seleksi
Skema seleksi dengan roda roulette ini adalah berdasarkan skala fitness (fitness scale). Karena terpilihnya suatu kromosom dalam populasi untuk dapat berkembang biak adalah sebanding dengan fitness tersebut.
c) Stochastic universal sampling
Pada metode ini, individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya seperti halnya pada seleksi roda roulette, dan diberikan sejumlah pointer sebanyak individu yang diseleksi di garis tersebut [12]. Stochastic universal sampling memiliki nilai bias nol dan penyebaran yang minimum. Pada metode ini, individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitnessnya seperti halnya pada seleksi roda roulette, dan diberikan sejumlah pointer sebanyak individu yang diseleksi di garis tersebut. Andaikan N adalah jumlah individu, dan posisi pointer pertama diberikan secara acak pada range [1, 1/N]. Apabila ada 6
(28)
individu yang akan diseleksi, maka jarak antar pointer adalah 1/6=0.167 (gambar 1.2), sehingga misalkan bilangan random yang dibangkitkan pada range [0, 0.167] adalah 0, 1, maka hasil yang diperoleh setelah seleksi adalah :
Gambar 0-2 Stohastic Universal Sampling
d) Tournament selection
Pada metode seleksi dengan turnamen ini, akan ditetapkan suatu nilai tour untuk individu-individu yang dipilih secara random dari suatu populasi. Individu-individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk [12]. Parameter yang digunakan pada metode ini adalah ukuran tour yang bernilai antara 2 sampai N (jumlah individu dalam suatu populasi). Pada seleksi alam yang terjadi di dunia nyata, beberapa individu (biasanya individu jantan) berkompetisi dalam sebuah kelompok kecil sampai tersisa hanya satu individu pemenang. Individu pemenang inilah yang bisa kawin (pindah silang). Metode roulette-wheel selection tidak mengkombinasikan masalah ini. Sebuah metode tournament selection mencoba mengadopsi karakteristik alami ini. Dalam bentuk paling sederhana, metode ini mengambil dua kromosom secara random dan kemudian menyeleksi salah satu yang bernilai
fitness paling tinggi untuk menjadi orang tua pertama. Cara yang sama dilakukan lagi untuk mendapatkan orang tua yang kedua.
5. Operator Genetika
a) Crossover
Operator algoritma yang melakukan proses pindah silang sehingga menghasilkan individu baru. Kromosom dari salah satu individu akan bertukar dengan kromosom dari individu yang lain.
(29)
1. Crossover satu titik
Sebuah titik potong crossover dipilih kemudian dari hasil titik potong dari salah satu kromosom saling tukar ke titik potong kromosom yang lainnya sehingga menghasilkan kromosom yang baru. Titik potong bias ditentukan di mana saja hanya saja yang harus dipertimbangkan adalah jumlah titik kromosom orang tua 1 dengan orang tua 2 harus sama. Pada gambar 2-3 dapat dilihat proses crossover satu titik di bawah ini :
1 0 1 1 0 1 0 0
1 2 3 4 5 6 7 8
Titik potong
0 1 0 1 1 0 1 1
a b c d e f g h
1 0 0 1 1 0 1 1
1 2 c d e f g h
0 1 1 1 0 1 0 0
a b 3 4 5 6 7 8
Gambar 0-3 Proses Crossover Satu Titik
Orang tua 1
Orang tua 2
Anak 1 Anak 2 Gen ke-1 Kromosom Gen ke-1 Kromosom
(30)
2. Crossover banyak titik
Seperti crossover satu titik hanya saja titik potongnya lebih dari satu. Titik potong bisa ditentukan di mana saja hanya saja yang harus dipertimbangkan adalah jumlah titik kromosom orang tua 1 dengan orang tua 2 yang dipotong harus sama. Proses crossover banyak titik dapat dilihat pada gambar 2-4 di bawah ini :
1 0 1 1 0 1 0 0
1 2 3 4 5 6 7 8
0 1 0 1 1 0 1 1
a b c d e f g h
1 0 0 1 1 1 0 1
1 2 c d e 6 7 h
0 1 1 1 0 0 1 0
a b 3 4 5 f g 8
Gambar 0-4 Proses Crossover Satu Titik
Orang tua 2
Anak 1
Anak 2
Titik potong 1 Titik potong 2 Titik potong 3
Kromosom
Orang tua 1
(31)
b) Mutasi
Operator genetika selain crossover ini menghasilkan perubahan secara acak pada kromosom. Operator ini akan mengubah bit yang awalnya 0 menjadi 1 sedangkan bit awal yang awalnya bernilai 1 akan diganti menjadi 0 sehingga pada mutasi ini memungkinkan muncul kromosom baru yang sebelumnya tidak ada di populasi awal.
6. Penentuan Parameter
Nilai dari parameter ditentukan berdasarkan permasalahan yang akan dipecahkan yang digunakan sebagai parameter kontrol algoritma genetika. Parameter kontrol algoritma genetika adalah ukuran populasi (popsize), peluang crossover (pc) dan peluang mutasi (pm).
2.4. Algoritma Backtracking
Algoritma backtracking merupakan algoritma yang berbasis pada Depth First Search (DFS), tetapi hanya pencarian yang mengarah ke solusi saja yang dipertimbangkan. Artinya, jika dalam pencarian menemui langkah yang tidak mengarah ke solusi, maka akan dicari langkah yang lain. Langkah-langkahnya adalah sebagai berikut [11] :
a. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah aturan dalam metode DFS. Simpul-simpul yang sudah dilahirkan dinamakan Simpul-simpul hidup (live node). Simpul hidup yang sedang diperluas dinamakan simpul-E (expand node). Simpul dinomori dari atas ke bawah sesuai dengan urutan kelahirannya.
b. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati (dead node). Fungsi yang digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi pembatas (bounding function). Simpul yang sudah mati tidak akan pernah diperluas lagi.
(32)
c. Jika pembentukan lintasan berakhir pada simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan backtrack ke simpul hidup terdekat (simpul orang tua). Selanjutnya simpul ini menjadi simpul-E yang baru. Lintasan baru dibangun kembali sampai lintasan tersebut membentuk solusi.
d. Pencarian dihentikan bila solusi ditemukan atau tidak ada lagi simpul hidup untuk backtrack.
2.5. Big-O
Notasi Big O merupakan suatu notasi matematika untuk menjelaskan batas atas dari magnitude suatu fungsi dalam fungsi yang lebih sederhana. Dalam dunia ilmu komputer, notasi ini sering digunakan dalam analisis kompleksitas algoritma. Notasi Big O pertama kali diperkenalkan pakar teori bilangan Jerman, Paul Bachman tahun 1894, pada bukunya yang berjudul Analytische Zahlentheorie
edisi kedua. Notasi tersebut kemudian dipopulerkan oleh pakar teori bilangan Jerman lainnya, Edmund Landau, dan oleh karena itu, terkadang disebut sebagai symbol Landau.
Untuk membandingkan kompleksitas algoritma yang satu dengan yang lain, dapat digunakan tabel 2-1 jenis kompleksitas, yang diurutkan berdasarkan kompleksitas yang paling baik ke yang paling buruk. Sebuah masalah yang mempunyai algoritma dengan kompleksitas polinomial kasus-terburuk dianggap mempunyai algoritma yang “bagus” artinya masalah tersebut mempunyai algoritma yang mangkus, dengan catatan polinomial tersebut berderajat rendah. Jika polinomnya berderajat tinggi, waktu yang dibutuhkan untuk mengeksekusi algoritma tersebut panjang [1].
Tabel 0-3 Jenis Kompleksitas
Notasi Nama
(33)
O(log * n) Logaritma iterative
O(log n) Logaritmik
O([log n]c) Polilogaritmik
O(n) Linier
O(n log n) Linierithmik, loglinier, quasilinier or
supralinier
O(n2) Kuadratik
O(nc), c > 1 Polinomial (kadang disebut algebraic)
O(cn) Eksponensial (kadang disebut
geometric)
O(n!) Faktorial, kombinatorial
Sebagai contoh terdapat suatu program sederhana yang akan dihitung komplesitasnya dengan menggunakan Big-O seperti :
Sum = 0;
For (i=0; i<n; i++) Sum= sum +a[i]
Kemudian pada tabel 2-4 dapat dilihat perhitungan kompleksitas dengan menggunakan Big-O dari contoh program sederhana di atas :
Tabel 0-4 Contoh Perhitungan Big-O dengan program sederhana
Program Notasi Big-O Keterangan
Sum = 0 O(1) Dieksekusi 1 kali
i=0 O(1) Dieksekusi 1 kali
i<n O(N) Dieksekusi n kali
i++ O(N) Dieksekusi n kali
Sum= sum +a[i] O(N) Dieksekusi n kali Dari hasil tabel 2-4 di atas maka dapat dihitung hasil dari notasi Big-O adalah sebagai berikut :
(34)
O(1) + O(1) + O(N) + O(N) + O(N) = O(N)
Jadi dari program sederhana di atas mempunyai hasil perhitungan dengan Big-O adalah O(N) jadi untuk waktu eksekusinya sebanding dengan jumlah data jika n= 5 maka waktu eksekusinya pun 5.
(35)
61
Proses pengujian adalah untuk mengetahui apakah algoritma Genetika dapat digunakan terhadap kasus teka-teki silang sehingga kata-kata yang dimsukkan oleh user dapat terangkai.
Kasus permainan teka-teki silang yang akan diujikan pada algoritma genetika memiliki kondisi dengan jumlah cell 8X8, 8X9, 8X10 dan 9X9. Pengujian akan dilakukan tiga kali dengan kondisi pengujian yang pertama dan kedua adalah jumlah kata yang terdapat di kumpulan jawaban ada sepuluh kata dan kata yang akan dipakai juga adalah sepuluh kata sedangkan kondisi untuk pengujian ketiga kata yang terdapat di kumpulan jawaban ada lima kata.
1. Pengujian pertama kata-kata yang akan digunakan memiliki banyak kesamaan karakter di setiap kata calon jawaban yang dapat dilihat pada tabel 4-1 di bawah ini :
Tabel 0-1 Calon Jawaban Pengujian Pertama
No. Kata
1 AKU
2 MARI
3 HIDUP
4 PUSING
5 JANUARI
6 DESEMBER
7 ATI
(36)
No. Kata
9 KITA
10 SAKTI
Setelah melakukan proses pengujian didapat hasil yang beragam. Berikut ini adalah tabel 4-2 hasil dari pengujian analisis algoritma genetika dengan kondisi yang telah disebutkan sebelumnya :
Tabel 0-2 Pengujian Permainan Teka-teki Silang Pertama
8 X 8 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 10 kata 8 kata 4 kata 4 kata 0.040
2 10 kata 8 kata 4 kata 4 kata 0.625
3 10 kata 7 kata 3 kata 4 kata 0.045
4 10 kata 8 kata 4 kata 4 kata 0.016
5 10 kata 8 kata 4 kata 4 kata 0.312
6 10 kata 8 kata 4 kata 4 kata 0.156
7 10 kata 8 kata 4 kata 4 kata 0.476
8 10 kata 8 kata 4 kata 4 kata 0.017
8X9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
(37)
2 10 kata 8 kata 4 kata 4 kata 0.417
3 10 kata 8 kata 4 kata 4 kata 0.045
4 10 kata 8 kata 3 kata 5 kata 0.417
5 10 kata 8 kata 4 kata 4 kata 0.052
6 10 kata 8 kata 3 kata 5 kata 0.134
7 10 kata 8 kata 3 kata 5 kata 0.019
8 10 kata 8 kata 4 kata 4 kata 0.25
8 X 10 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 10 kata 8 kata 3 kata 5 kata 0.208
2 10 kata 8 kata 4 kata 4 kata 0.312
3 10 kata 8 kata 4 kata 4 kata 0.059
4 10 kata 8 kata 4 kata 4 kata 0.09
5 10 kata 8 kata 4 kata 4 kata 0.156
6 10 kata 8 kata 4 kata 4 kata 0.625
7 10 kata 8 kata 3 kata 5 kata 0.312
8 10 kata 8 kata 4 kata 4 kata 0.138
9 X 9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
(38)
2 10 kata 9 kata 5 kata 4 kata 0.101
3 10 kata 9 kata 5 kata 4 kata 0.023
4 10 kata 10 kata 5 kata 5 kata 0.030
5 10 kata 10 kata 5 kata 5 kata 0.022
6 10 kata 8 kata 3 kata 5 kata 0.018
7 10 kata 9 kata 5 kata 4 kata 0.138
8 10 kata 9 kata 4 kata 5 kata 0.061
Dari hasil pengujian pada tabel 4-2 di atas kata yang paling banyak terangkai pada kondisi cell 9 x 9 dengan seluruh kata yang ada pada calon jawaban selruhnya terpakai. Dari hasil pengujian pada tabel 4-2 juga untuk nilai fitness tidak berpengaruh dalam menghasilkan jawaban.
2. Pengujian kedua kata-kata yang akan digunakan memiliki sedikit kesamaan karakter di setiap kata calon jawaban yang dapat dilihat pada tabel 4-3 di bawah ini :
Tabel 0-3 Calon Jawaban Pengujian Kedua
No Kata
1 GRAFIK
2 USIA
3 XENON
4 ZEBRA
5 UMBRELLA
6 JAMU
7 YOYO
(39)
No Kata
9 MERK
10 ALFA
Setelah melakukan proses pengujian didapat hasil yang beragam. Berikut ini adalah tabel 4-4 hasil dari pengujian analisis algoritma genetika dengan kondisi yang telah disebutkan sebelumnya :
Tabel 0-4 Pengujian Permainan Teka-teki Silang
8 X 8 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 10 kata 7 kata 4 kata 3 kata 0.158
2 10 kata 6 kata 3 kata 3 kata 0.119
3 10 kata 7 kata 4 kata 3 kata 0.285
4 10 kata 6 kata 3 kata 3 kata 0.042
5 10 kata 7 kata 4 kata 3 kata 0.051
6 10 kata 6 kata 3 kata 3 kata 0.032
7 10 kata 6 kata 3 kata 3 kata 0.555
8 10 kata 7 kata 4 kata 3 kata 0.057
8 X 9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitness
(40)
2 10 kata 8 kata 4 kata 4 kata 0.044
3 10 kata 8 kata 4 kata 4 kata 0.065
4 10 kata 8 kata 4 kata 4 kata 0.238
5 10 kata 8 kata 4 kata 4 kata 0.078
6 10 kata 8 kata 4 kata 4 kata 0.031
7 10 kata 8 kata 4 kata 4 kata 0.142
8 10 kata 8 kata 4 kata 4 kata 0.625
8 X 10 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitness
1 10 kata 8 kata 4 kata 4 kata 0.016
2 10 kata 8 kata 4 kata 4 kata 0.113
3 10 kata 8 kata 4 kata 4 kata 0.044
4 10 kata 8 kata 3 kata 5 kata 0.104
5 10 kata 8 kata 4 kata 4 kata 0.029
6 10 kata 8 kata 3 kata 5 kata 0.113
7 10 kata 7 kata 3 kata 4 kata 0.104
8 10 kata 8 kata 4 kata 4 kata 0.416
9X9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitness
(41)
2 10 kata 8 kata 5 kata 4 kata 0.156
3 10 kata 8 kata 4 kata 4 kata 0.013
4 10 kata 8 kata 5 kata 4 kata 0.044
5 10 kata 8 kata 5 kata 4 kata 0.046
6 10 kata 9 kata 5 kata 4 kata 0.035
7 10 kata 8 kata 4 kata 4 kata 0.156
8 10 kata 9 kata 5 kata 4 kata 0.079
Dari hasil pengujian pada tabel 4-4 di atas kata yang paling banyak terangkai pada kondisi cell 9 x 9 dengan sembilan kata yang ada pada calon jawaban terpakai. Dari hasil pengujian pada tabel 4-4 juga untuk nilai fitness tidak berpengaruh dalam menghasilkan jawaban.
3. Pengujian ketiga kata-kata yang akan digunakan tidak memiliki kesamaan karakter di setiap kata calon jawaban yang dapat dilihat pada tabel 4-5 di bawah ini :
Tabel 0-5 Calon Jawaban Pengujian Ketiga
No Kata
1 KUKU
2 SISI
3 ANT
4 ODOL
5 EMBER
Setelah melakukan proses pengujian didapat hasil yang beragam. Berikut ini adalah tabel 4-6 hasil dari pengujian analisis algoritma genetika dengan kondisi yang telah disebutkan sebelumnya :
(42)
Tabel 0-6 Pengujian Permainan Teka-teki Silang Ketiga
8 X 8 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 5 kata 1 kata 1 kata - 1
2 5 kata 1 kata 1 kata - 1
3 5 kata 1 kata 1 kata - 1
4 5 kata 1 kata 1 kata - 1
5 5 kata 1 kata 1 kata - 1
6 5 kata 1 kata 1 kata - 1
7 5 kata 1 kata 1 kata - 1
8 5 kata 1 kata 1 kata - 1
8 X 9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 5 kata 1 kata 1 kata - 1
2 5 kata 1 kata 1 kata - 1
3 5 kata 1 kata 1 kata - 1
4 5 kata 1 kata 1 kata - 1
5 5 kata 1 kata 1 kata - 1
6 5 kata 1 kata 1 kata - 1
7 5 kata 1 kata 1 kata - 1
(43)
8 X 10 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 5 kata 1 kata 1 kata - 1
2 5 kata 1 kata 1 kata - 1
3 5 kata 1 kata 1 kata - 1
4 5 kata 1 kata 1 kata - 1
5 5 kata 1 kata 1 kata - 1
6 5 kata 1 kata 1 kata - 1
7 5 kata 1 kata 1 kata - 1
8 5 kata 1 kata 1 kata - 1
9 X 9 Cell Percobaan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendatar Jumlah Kata Menurun Nilai Fitnes
1 5 kata 1 kata 1 kata - 1
2 5 kata 1 kata 1 kata - 1
3 5 kata 1 kata 1 kata - 1
4 5 kata 1 kata 1 kata - 1
5 5 kata 1 kata 1 kata - 1
6 5 kata 1 kata 1 kata - 1
7 5 kata 1 kata 1 kata - 1
(44)
Dari tabel 4-2, tabel 4-4 dan tabel 4-6 pengujian membuktikan jumlah cell
berbanding lurus dengan jumlah kata yang terpakai, artinya semakin besar jumlah cell semakin banyak pula kata yang terpakai dan untuk jumlah kata menurun dan mendatar tergantung jumlah cell (x,y) apabila jumlah x > y maka rata-rata jumlah kata mendatar akan lebih banyak daripada jumlah kata menurun begitu pun sebaliknya, apabila jumlah x < y maka rata-rata jumlah kata menurun lebih banyak daripada jumlah kata mendatar. Kemudian kata-kata yang ada pada colon jawaban juga mempengaruhi berapa banyak kata yang terangkai. Semakin sedikit karakter yang sama pada setiap kata semakin sedikit juga kata-kata akan terangkai begitu pun juga sebaliknya. Dari hasil ketiga pengujian membuktikan bahawa nilai fitness tidak mempengaruhi dalam menghasilkan jawaban dan nilai fitness selalu bernilai satu apabila hanya ada satu kata yang dapat dibangkitkan dengakn kata lain tidak ada kata yang memiliki karakter yang sama. Untuk gambar hasil dari setiap pengujian telah terlampir di lampiran C.
(45)
71
5.1. Kesimpulan
Dari proses analisis dan pengujian dapat diambil kesimpulan bahwa algoritma genetika dapat digunakan dalam kasus teka-teki silang dengan hasil kata terbanyak terpakai pada kondisi cell di pengujian pertama berukuran 9X9 yaitu dengan seluruh kata terpakai seluruhnya dan pada hasil pengujian kedua kata terbanyak terpakai pada kondisi cell 9X9 dengan 9 kata yang terpakai dari total 10 kata.
Dari kata calon jawaban pada tabel 4-1 dan tabel 4-3 memiliki perbedaan dari segi jenis kata. Pada tabel 4-1 calon jawaban kata yang terdapat memiliki banyak huruf yang sama dengan kata yang lainya sedangkan berbeda dengan tabel 4-3 calon jawaban yang tersedia dari segi kata mempunyai jenis kata yang berbeda sehingga dalam kondisi cell yang sama untuk calon jawaban pada pengujian pertama berpeluang lebih besar untuk menghasilkan jawaban dengan kata yang seluruhnya terangkai. Melihat kondisi seperti ini, algoritma genetika dapat digunakan pada kasus teka-teki silang namun algoritma ini akan optimal menghasilkan solusi jika kata-kata pada calon jawaban memiliki karakter yang tingkat kemiripan yang besar.
5.2. Saran
Saran yang diberikan untuk pengembangan selanjutnya adalah mengimplementasikan algoritma genetika pada penyelesaian permainan teka-teki silang.
(46)
(47)
Universitas Komputer Indonesia Jln. Dipatiukur No. 144 nindinda.turyni@gmail.com
ABSTRAK
Teka-teki silang merupakan salah satu permainan sederhana yang mengharuskan kita mengisi jawaban pada kolom-kolom kosong yang tersedia sehingga akan menjadi rangkaian dari kata-kata.. Di dalam permainan teka-teki silang ini terdapat bagian hal yg cukup kompleks, yaitu proses pembuatan jawaban yang harus terhubung dengan jawaban yang lain sehingga papan permainan teka-teki silang yang kosong seluruhnya terisi.
Sebelumnya telah ada penelitian yang membahas pembuatan permainan teka-teki silang dengan menggunakan algoritma Backtracking. Proses pada algoritma backtracking terbilang lambat dikarenakan sistem kerja algoritma backtracking tidak heuristic sehingga dalam melakukan proses pencarian tidak selektif. Salah satu algoritma yang memiliki nilai heuristic yang baik dalam penyelesaian masalah kombinatorial dan juga bagian rekombinasi adalah algoritma genetika.
Hasil dari penelitian ini bahwa algoritma genetika dapat digunakan pada kasus permainan teka-teki silang hanya saja kurang tepat. Hal ini dikarenakan yang mempengaruhi keoptimalan jawaban adalah kata yang dimasukkan oleh pemain bukanlah paraeter yang ada di dalam algoritma genetika.
Kata kunci : teka-teki silang, algoritma genetika, algoritma backtracking.
1. PENDAHULUAN
Teka-teki silang merupakan salah satu permainan sederhana yang mengharuskan kita mengisi jawaban pada kolom-kolom kosong yang tersedia sehingga akan menjadi rangkaian dari kata-kata.. Di dalam permainan teka-teki silang ini terdapat bagian hal yg cukup kompleks, yaitu proses pembuatan jawaban yang harus terhubung dengan jawaban yang lain sehingga papan permainan teka-teki silang yang kosong seluruhnya terisi. Salah satu algoritma yang memiliki nilai heuristic yang baik dalam penyelesaian masalah kombinatorial dan juga bagian rekombinasi adalah algoritma genetika. Algoritma ini menggunakan pencarian acak dalam pencarian solusi berikutnya pencarian akan dilakukan berdasarkan proses teori genetika yang
memperhatikan bagaimana cara untuk mendapatkan individu yang lebih baik, sehingga dalam proses evolusi dapat didapat individu yang terbaik dari proses pencarian tersebut. Dengan menganalisis algorima genetika pada permainan teka-teki silang diharapkan dapat mengetahui apakah algoritma genetika ini tepat digunakan pada kasus permainan teka-teki silang ini.
2. MODEL, ANALISA, DESAIN DANIMPLEMENTASI
Algoritma Genetika secara umum memiliki proses seperti pada Gambar 1 flowchart di bawah ini :
(48)
Kriteria Terpenuhi ? Hasil Selesai Tidak Ya Populasi Evaluasi Mutasi Crossover Seleksi
Gambar 1 flowchart algoritma Genetika Terdapat enam proses yang ada pada algoritma genetika.
2.1.Representasi Kromosom
Representasi kromosom pada masalah ini adalah proses pembentukan kromosom. Kromosom merupakan kumpulan dari beberapa gen. Setiap gen akan dikodekan ke dalam bentuk bit/biner. Masing-masing gen yang ada dalam satu kromosom akan memiliki satu kode 0 atau 1 yang disebut dengan nilai tipot. Nilai tipot dari masing-masing gen ini berguna untuk menentukan posisi peletakan gen tersebut ke dalam cell
yang telah disediakan. Dalam kasus ini yang disebut gen adalah kata dari calon jawaban, sedangkan kromosom adalah kumpulan kata yang telah terangkai menjadi teka-teki silang. Gen yang memiliki nilai tipot bernilai 0 maka gen tersebut akan diletakkan secara menurun namun apabila gen tersebut memiliki nilai tipot 1 maka gen tersebut akan diletakan secara mendatar. Nilai tipot ini didapat secara acak ke setiap gen yang ada Selesai tipot Dibentuk kromosom dari kumpulan gen n gen telah mempunyai nilai tipot
Gambar 2 flowchart representasi kromosom
2.2.Inisialisasi Populasi
Jawaban dari pertanyaan-pertanyaan diletakkan secara berurutan diawali dari gen pertama sampai dengan gen yang terakhir. Setiap huruf dari sebuah jawaban akan menempati sebuah koordinat (x, y) pada cell
atau papan matriks. Secara singkat langkah-langkah untuk inisialisasi populasi adalah sebagai berikut :
1. Gen pertama akan ditempatkan dengan keadaan sesuai nilai tipot yang telah didapat ke cell yang telah tersedia. 2. Menempatkan gen selanjutnya ke dalam
cell dengan mempertimbangkan nilai tipot dari gen sebelumnya apabila tidak ada masalah dilanjutkan ke langkah 3 3. Langkah ini mencari titik potong
dengan cara mencari karakter yang sama dari gen yang baru dengan gen sebelumnya. Jika ditemukan maka akan diperiksa apaka titik potong tersebut memungkinkan untuk ditempati oleh gen yang baru dan lanjut ke langkah 4, jika tidak kembali ke langkah 2.
4. Setelah gen yang baru diletakan berpotongan dengan gen yang lama dalam satu karakter maka dilanjutkan dengan gen berikutnya. Proses ini akan berulang sehingga semua gen telah berhasil diperiksa.
Dari langkah-langkah yang telah dijelaskan, dapat dibuat sebuah
flowchart dari inisialisasi populasi awal. Berikut adalah Gambar 3 flowchart
(49)
ke dalam papan matriks secara acak yang dimulai
dari gen ke-1
Selesai Nilai tipot = 0 ?
Tempatkan gen ke-n secara menurun Ya Tempatkan gen ke-n secara mendatar Tidak
Gen ke-n yang telah diletakan di papan disimpan
dalam bentuk array
Pencarian titik potong (tp) untuk menempatkan gen ke-(n+1)
tp ditemukan ? Tidak
Ya Mencari ke gen
ke-(n+1) berikutnya
Memeriksa nilai tipot gen ke-(n+1)
Nilai tipot gen ke-n = gen ke-(n+1) Tidak Gen ditempatkan sesuai titik potong
(tp)
Ya
Inisialisasi terbentuk
Gambar 3 flowchart inisialisasi populasi
2.3.Evaluasi
Setelah populasi terbentuk, pada tahap selanjutnya dilakukan evalusi penghitungan nilai fitness masing-masing kromosom yang ada dalam populasi.
Mulai
Menghitung nilai gen gen = (tp / tk)
Menghitung nilai fitnes f
Hasil Selesai
Gambar 4 flowchart evaluasi
membentuk sebuah populasi baru yang berisi kromosom calon parent. Metode seleksi yang digunakan adalah Rank Selection. Pada rank selection kromosom terlebih dahulu diurutkan sesuai dengan nilai
fitness-nya, kemudian kromosom diberi nilai
fitness sesuai rankingnya dengan nilai fitness
maksimum adalah sama dengan ukuran populasi.
2.5.Crossover
Crossover atau perkawinan silang adalah
proses pembentukan kromosom baru
(offspring). Kromosom yang akan
mengalami crossover adalah kromosom calon parent yang sudah terpilih melalui proses seleksi namun tidak semua kromosom yang terpilih melalui proses seleksi akan mengalami proses crossover. Jumlah kromosom calon parent yang mengalami crossover ditentukan oleh parameter crossover (PC). Semakin besar nilai PC maka semakin banyak kromosom yang mengalami crossover.
2.6.Mutasi
Proses mutasi ini berdasarkan nilai tipot. Mutasi dilakukan pada saat tidak ditemukannya kata-kata yang tidak dapat terangkai. Mutasi ini dilakukan dengan cara mengubah nilai tipot yang awalnya bernilai 1 menjadi 0 dan nilai tipot yang awalnya bernilai 0 menjadi 1.
3. HASIL DAN DISKUSI
Hasil dari proses pengujian yang diuji kepada beberapa cell , calon jawaban memiliki sepuluh kata di mana calon jawaban yang terdiri dari sepuluh kata ini memiliki tiga kondisi yang akan diujikan, yaitu :
1. Calon jawaban yang mempunyai banyak kesamaan karakter kata yang lainnya
2. Calon jawaban mempunyai sedikit kesamaan karakter dengan kata yang lainnya
(50)
8 X 8 Cell Perc obaa n ke- Jumlah Total Kata Jumlah Kata Terpak ai Jumlah Kata Mendat ar Jumlah Kata Menuru n Nilai Fitne s 1 10 kata 8 kata 4 kata 4 kata 0.040 2 10 kata 8 kata 4 kata 4 kata 0.625 3 10 kata 7 kata 3 kata 4 kata 0.045 4 10 kata 8 kata 4 kata 4 kata 0.016 5 10 kata 8 kata 4 kata 4 kata 0.312 6 10 kata 8 kata 4 kata 4 kata 0.156 7 10 kata 8 kata 4 kata 4 kata 0.476 8 10 kata 8 kata 4 kata 4 kata 0.017
Kemudian untuk hasil kondisi calon jawaban kedua dapat dilihat pada gambar di bawah ini :
8 X 8 Cell Perco baan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendat ar Jumlah Kata Menuru n Nilai Fitne s 1 10 kata 7 kata 4 kata 3 kata 0.158 2 10 kata 6 kata 3 kata 3 kata 0.119 3 10 kata 7 kata 4 kata 3 kata 0.285 4 10 kata 6 kata 3 kata 3 kata 0.042 5 10 kata 7 kata 4 kata 3 kata 0.051 6 10 kata 6 kata 3 kata 3 kata 0.032 7 10 kata 6 kata 3 kata 3 kata 0.555 8 10 kata 7 kata 4 kata 3 kata 0.057
Untuk kondisi calon jawaban yang terakhir memiliki hasil yang dapat ditunjukan pada gambar di bawah ini :
8 X 8 Cell Perco baan ke- Jumlah Total Kata Jumlah Kata Terpakai Jumlah Kata Mendat ar Jumlah Kata Menuru n Nilai Fitne s 1 5 kata 1 kata 1 kata - 1 2 5 kata 1 kata 1 kata - 1 3 5 kata 1 kata 1 kata - 1 4 5 kata 1 kata 1 kata - 1 5 5 kata 1 kata 1 kata - 1 6 5 kata 1 kata 1 kata - 1 7 5 kata 1 kata 1 kata - 1 8 5 kata 1 kata 1 kata - 1
Dari ketiga gambar sebelumnya masing-masing dari setiap kondisi memiliki hasil yang berbeda. Sehingga yang mempengaruhi dalam menghasilkan solusi optimal adalah kata dari setiap jawaban dan nilai fitness
genetika dapat digunakan pada kasus teka-teki silang namun algoritma ini akan optimal menghasilkan solusi jika kata-kata pada calon jawaban memiliki karakter yang tingkat kemiripan yang besar. Saran yang diberikan untuk pengembangan selanjutnya adalah:
1. Membuat calon jawaban yang memiliki kesamaan kata yang cukup banyak. 2. Mengimplementasikan algoritma
genetika pada penyelesaian permainan teka-teki silang.
5. DAFTAR PUSTAKA
[1] Mukhairil, Adam. Diktat Kompleksitas Algoritma.. Jurusan Teknik
Informatika, Universitas Komputer Indonesia.
[2] Kusuma,Dewi. (2002). Artificial Intelligence. Bandung: Informatika. [3] Suyanto. (2008).Evolutinary
Computation. Bandung :Informatika.
[4] Algoritma Genetika. [Online].
HYPERLINK
"http://id.wikipedia.org/wiki/Al goritma_genetik"
http://id.wikipedia.org/wiki/Algoritma _genetik
[5] Asal-usul dan Sejarah Teka-Teki Silang. [Online]
http://unikbaca.blogspot.com/2012/06/ asal-usul-dan-sejarah-teka-teki-silang.html
[6] Heuristic Search. [Online].
HYPERLINK
"http://journal.mercubuana.ac.id /data/Heuristic-search.pdf"
http://journal.mercubuana.ac.id/data/H euristic-search.pdf
[7] Kompas Group. 2006. Asah Otak, Cegah Pikun!. [online].
http://www.kompas.com/ver1/Kesehat an/0709/27/112851.htm
[8] Membuat Teka-Teki Silang. [Online]. HYPERLINK
"http://bundawulan.wordpress.c
(51)
om/2008/12/11/membuat-teka-9/sejarah-algoritma.html [10] Teka-Teki Silang. [Online].
http://www.anneahira.com/teka-teki-silang.htm
[11] Makalah TA Hafni. [Online].
(52)
PADA PERMAINAN TEKA-TEKI SILANG
Penguji I : Sri Nurhayati, S.Si., M.T.
Penguji II : Mira Kania Sabariah, S.T., M.T.
Penguji III : Ednawati Rainarli, S.Si., M.Si.
Turyni Nindinda
10108053
(53)
(54)
Penelitian sebelumnya dengan
Algoritma Backtracking
(55)
(56)
Maksud :
Algoritma genetika
pada
Tujuan :
Apakah algoritma
(57)
(58)
jawaban yang terdiri satu suku kata
•
Maksimal ukuran cell berukuran 15 X 15 cell dan
minimal 8 x 8 cell
•
Seluruh kata atau calon jawaban belum tentu
terpakai semua
•
Jumlah jawaban dalam satu papan tergantung
masukan
user
•
Proses seleksi menggunakan metode
Rank
Selection
•
Proses crossover menggunakan metode
Crossover
satu titik
•
Simulasi hanya sampai tahap perangkaian jawaban
tanpa adanya soal pertanyaan
(59)
(60)
•
vv
•
Pertama kali diperkenalkan oleh John
Holland pada tahun 1975
•
Algoritma ini didasari oleh teori Darwin
•
Individu yang terbaik yang akan
(61)
Algoritma Genetika
•
vv
Tidak semua kasus
harus melewati
proses seleksi,
crossover dan
mutasi
(62)
Algoritma Genetika
(63)
•
vv
•
Pertama kali diperkenalkan D.H. Lehmer
pada tahun 1950
•
Algoritma ini berbasis pada Depth First
Search (DFS)
(64)
(65)
integer)
{ Mencari semua solusi dengan metode backtracking skema iteratif.
Masukan: n, yaitu panjang vektor solusi.
Keluaran: solusi x = (x[1], x[2], ..., x[n]). } Kamus: k: integer Algoritma: k ← 1
while k > 0 do
if (x[k] belum dicoba sedemikian sehingga x[k] ← T(k)) and (B(x[1], x[2], ..., x[k]) = true) then
if (x[1], x[2], ..., x[k]) adalah lintasan dari akar ke daun then
CetakSolusi(x)
endif
k ← k + 1 { indeks anggota tupple berikutnya }
else { x[1], x[2], ..., x[k] tidak mengarah ke simpul solusi }
k ← k - 1 {backtrack ke anggota tupple sebelumnya }
endif endwhile
{ k = 0 }
Endprocedure
Pseudocode Nilai Big-O
k ← 1 O(1)
while k > 0 do
O(N)
if (x[k] belum dicoba sedemikian sehingga x[k] ← T(k)) and (B(x[1], x[2], ..., x[k]) = true) then
O(1)
if (x[1], x[2], ..., x[k]) adalah lintasan dari akar ke daun then
O(N)
k ← k – 1 O(1)
k = 0 O(1)
Hasil perhitungan
dengan Big-O :
(66)
Hasil perhitungan
dengan Big-O :
O(N)
Procedure Gen_TTS(input : integer : x,y)
{IS : x dan y sudah terdefinisi
FS : solusi terbaik}
Kamus :
Algoritma : optimum = false
{inisialisasi populasi awal} Repeat
if evaluasi≠ 0
then
optimum = true else
seleksi()
if seleksi = false then crossover() endif
endif mutasi()
until optimum = true output hasil endprocedure O(1) O(1) O(1) O(1) O(1) O(1) O(1) O(N) O(1)
(67)
(68)
(69)
Mulai
Menempatkan gen ke dalam papan
matriks secara acak yang dimulai
dari gen ke-1 Kromosom
terbentuk
Selesai Nilai tipot = 0 ?
Tempatkan gen ke-n secara menurun Ya Tempatkan gen ke-n secara mendatar Tidak
Gen ke-n yang telah diletakan di papan disimpan
dalam bentuk array
Pencarian titik potong (tp) untuk menempatkan
gen ke-(n+1)
tp ditemukan ? Tidak
Ya Mencari ke gen
ke-(n+1) berikutnya
Memeriksa nilai tipot gen ke-(n+1)
Nilai tipot gen ke-n = gen ke-(n+1) Ya
Gen ditempatkan sesuai titik potong
(tp)
Tidak
Inisialisasi terbentuk
(70)
(71)
(72)
(73)
(74)
(75)
(76)
(77)
(78)
(79)
(80)
(81)
(82)
(83)
(84)
(85)
(86)
(87)
(88)
(89)
(90)
Mulai
Menghitung nilai gen gen = (tp / tk)
Menghitung nilai fitnes f
(91)
f
= 0,29 + 0,25 + 0,2
= 0,74
(92)
(93)
(94)
(95)
(96)
(97)
(98)
(99)
(100)
(1)
(2)
(3)
Kesimpulan
• Algoritma Genetika dapat digunakan pada kasus
namun kurang tepat dikarenakan tidak
dapat menghasilkan solusi yang optimal. Nilai fitnes tidak berpengaruh dalam menghasilkan solusi optimal.
(4)
• Algoritma genetika hendaknya dapat
dibandingkan kinerjanya dengan algoritma yang lain
• Algoritma genetika dalam teka-teki silang dapat diterapkan kepada aplikasi game sesungguhnya
(5)
(6)