Analisis algoritma genetika pada permainan Teka-Teki Silang

(1)

(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)