• Tidak ada hasil yang ditemukan

Analisis algoritma genetika pada permainan Teka-Teki Silang

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis algoritma genetika pada permainan Teka-Teki Silang"

Copied!
113
0
0

Teks penuh

(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

(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

(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

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

(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].

(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

(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

(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

(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

[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 :

(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

(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

(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

[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

(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

(28)

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

(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

[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

(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

[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

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

(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

[image:32.595.86.489.711.757.2]

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

[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

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

(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

[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

(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

[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

(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

[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]
(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

[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

(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

[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

(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

(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

(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

(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

[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

(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

(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

[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

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

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

(59)
(60)

vv

Pertama kali diperkenalkan oleh John

Holland pada tahun 1975

Algoritma ini didasari oleh teori Darwin

(61)

Algoritma Genetika

vv

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

(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

(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)
(92)
(93)
(94)
(95)
(96)
(97)

Gambar

Gambar 0-1 Flowchart  algoritma genetika
Tabel 0-2 Contoh Hasil Rank Base
Gambar 0-2 Stohastic Universal Sampling
Gambar 0-3 Proses Crossover Satu Titik
+7

Referensi

Dokumen terkait

Tujuan penelitian ini untuk mengkaji aspek biologis Udang Kelong, beberapa parameter pertumbuhan yang meliputi hubungan panjang karapas dan bobot tubuh, distribusi sebaran

Penolakan-penolakan ini menunjukkan relasi antara pariwisata dengan budaya (juga agama) mulai kurang harmonis antara tahun 1994 – 2017 ini, di mana tahun-tahun tersebut adalah

Hal ini merupakan jawaban pemerintah terkait dengan kesetaraan gender dianggap perlu, untuk mendukung pembangunan baik di bidang ekonomi, politik, sosial, hukum

Dari hasil lingkungan keluarga dan hubungan keluarga yang baik dan harmonis dapat disimpulkan bahwa penyakit yang diderita pasien tidak  berhubungan dengan

RENJA disusun berdasarkan RENSTRA BPKAD Provinsi Bali sebagai terjemahan dari RPJMD Provinsi Bali yang dilaksanakan pada tahun 2017 meliputi Program Pelayanan

a. Apabial diriwayatkan oleh seorang perawi maka disebut hadis gharib.. Jika diriwayatkan oleh tiga orang atau lebih namun tidak sampai pada derajat mutawatir maka termasuk

Kerawanan banjir menggambarkan suatu kondisi banjir yang rawan terhadap faktor bahaya ( hazard ) tertentu. Kondisi kerawanan banjir ini berdasarkan indikator pada Tabel 44

OLEH KERANA MASALAH INI MERUPAKAN MASALAH UTAMA SAHABAT-SAHABAT BUKURESEPI, PIHAK ADMIN BUKURESEPI TELAH MENCARI PENYELESAIAN MASALAH BAGI MEMUDAHKAN SAHABAT-