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
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan
sadar dan tanpa paksaan.
Bandung,
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
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
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
v
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.
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.
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].
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
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
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.
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
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
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
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
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
Mulai
Kriteria Terpenuhi ?
Hasil
Selesai
Tidak
Ya Inisilisasi Populasi
Evaluasi Mutasi
Crossover Seleksi
[image:23.595.116.510.98.600.2]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 :
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
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
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
[image:26.595.228.339.322.440.2]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
[image:26.595.195.374.595.717.2]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
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
individu yang akan diseleksi, maka jarak antar pointer adalah 1/6=0.167 (gambar 1.2), sehingga misalkan bilangan random yang dibangkitkan pada
[image:28.595.148.439.182.275.2]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
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
[image:29.595.160.447.304.714.2]a b 3 4 5 6 7 8
Gambar 0-3 Proses Crossover Satu Titik
Orang tua 1
Orang tua 2
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
[image:30.595.120.423.287.686.2]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
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,
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
[image:32.595.86.489.711.757.2]algoritma tersebut panjang [1].
Tabel 0-3 Jenis Kompleksitas
Notasi Nama
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
[image:33.595.109.515.113.348.2]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
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=
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
[image:35.595.249.374.476.736.2]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
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
[image:36.595.249.374.108.202.2]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
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
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
[image:38.595.81.544.111.321.2]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
[image:38.595.243.381.523.758.2]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
[image:39.595.243.381.111.192.2]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
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
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
[image:41.595.242.382.492.655.2]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
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
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
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
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
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
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
[image:48.595.117.302.105.413.2]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
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
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
[image:50.595.98.312.180.316.2]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
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].
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.
Maksud :
Algoritma genetika
pada
Tujuan :
Apakah algoritma
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
•
vv
•
Pertama kali diperkenalkan oleh John
Holland pada tahun 1975
•
Algoritma ini didasari oleh teori Darwin
Algoritma Genetika
•
vv
Algoritma Genetika
•
vv
•
Pertama kali diperkenalkan D.H. Lehmer
pada tahun 1950
•
Algoritma ini berbasis pada Depth First
Search (DFS)
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 :
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()
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
Mulai
Menghitung nilai gen gen = (tp / tk)
Menghitung nilai fitnes f