MAKALAH Komputasi Evolusioner

11
MAKALAH KOMPUTASI EVOLUSIONER “IMPLEMENTASI ALGORITMA GENETIKA DALAM PENYUSUNAN TEKA-TEKI SILANG” Disusun Oleh : Muhammad Auliya (11523180) JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS ISLAM INDONESIA

Transcript of MAKALAH Komputasi Evolusioner

MAKALAH

KOMPUTASI EVOLUSIONER

“IMPLEMENTASI ALGORITMA GENETIKA DALAM

PENYUSUNAN TEKA-TEKI SILANG”

Disusun Oleh :

Muhammad Auliya (11523180)

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS ISLAM INDONESIA

BAB I

PENDAHULUAN

1.1. Latar Belakang

Teka-teki silang (TTS) merupakan sebuah permainan untuk mengasah otak.

TTS dapat dimanfaatkan dalam bidang pendidikan untuk menguji kemampuan anak

didik, sehingga pertanyaan-pertanyaan yang digunakan disesuaikan dengan

kebutuhan saja. Untuk membuat sebuah TTS dapat dikatakan mudah, mudah

karena kita hanya mengkombinasikan kata yang satu dengan yang lain. Tapi akan

sulit apabila jumlah pertanyaan yang digunakan banyak, karena untuk membuat

sebuah TTS dari sekumpulan pertanyaan, kita harus mencoba kombinasi yang

mungkin dari kata yang ada sampai terbentuk sebuah TTS. Semakin banyak jumlah

pertanyaan, maka semakin banyak kombinasi yang harus kita coba.

Penerapan algoritma genetika digunakan untuk mendapatkan suatu pola

penyusunan kata dalam ruang-ruang kosong yang paling optimal. Untuk mengetahui

optimal atau tidaknya pengisian ruang kosong tersebut, dilakukan dengan melihat

banyaknya kombinasi kata yang dapat dibuat serta banyaknya kata yang

berpotongan. Jadi, semakin banyak dan baik kombinasi kata yang dibuat untuk

mengisi ruang-ruang kosong, maka semakin optimal pengisian tersebut. Solusi ini

dapat diatasi apabila membuat TTS dilakukan secara otomatis dan dengan waktu

yang paling efisien menggunakan algoritma genetika.

1.2. Rumusan Masalah

1. Bagaimana membuat aplikasi untuk optimasi penyusunan teka-teki silang

menggunakan algoritma genetika.

1.3. Batasan Masalah

1. TTS yang dibuat adalah TTS dalam bentuk yang kita kenal sekarang ini.

Pertanyaan dibagi menjadi dua kategori yaitu mendatar dan menurun.

2. Jawaban pertanyaan mendatar tidak boleh tersusun bersambung dengan jawaban

pertanyaan mendatar lain, dan jawaban pertanyaan menurun tidak boleh

tersusun bersambung dengan jawaban pertanyaan menurun lain.

3. Apabila jawaban mengandung karakter selain huruf A..Z, maka karakter tersebut

diabaikan termasuk spasi. Misalnya terdapat jawaban dari sebuah pertanyaan

adalah kura-kura maka akan dianggap sebagai kurakura.

1.4. Tujuan

Membuat sebuah aplikasi yang dapat menyusun teka-teki silang dengan

pertanyaan yang ditentukan sendiri oleh pengguna dengan tujuan untuk membuat

TTS yang mengandung pertanyaan-pertanyaan yang lebih spesifik, misalnya

pertanyaan bidang pendidikan, komputer, pertanyaan yang berhubungan dengan

biologi dan sebagainya.

BAB II

PERANCANGAN

2.1. Representasi Kromosom

Pengkodean merupakan bagian yang penting dalam menyelesaikan suatu

permasalahan dengan algoritma genetika. Pengkodean adalah pengkorversian

masalah dalam dunia nyata menjadi bentuk yang dapat diolah dengan menggunakan

algoritma genetika. Pengkodean yang tepat sangat menentukan berhasil atau

tidaknya proses algoritma genetika dalam menyelesaikan sebuah permasalahan.

Pengkodean yang tepat juga akan menentukan tingkat efisiensi komputasi yang

digunakan.

Skenario pengkodean dalam penelitian ini adalah dengan membuat urutan

jawaban dan posisi jawaban (mendatar atau menurun) yang dikodekan menjadi

bentuk yang dapat diolah dengan algoritma genetika dalam bentuk sebuah

kromosom. Sebuah kromosom merupakan susunan dari beberapa gen. Panjang

sebuah kromosom adalah jumlah gen yang terdapat pada kromosom tersebut.

Sebuah gen berisi jawaban dari sebuah pertanyaan. Dengan demikian, panjang

kromosom sama dengan jumlah pertanyaan yang dimasukkan pengguna.

Pengkodean yang digunakan adalah pengkodean permutasi. Setiap gen

mempunyai dua atribut. Atribut yang pertama berisi id dari sebuah pertanyaan

yang akan digunakan dalam permainan TTS. Atribut yang lain berupa atribut

orientasi. Atribut orientasi menentukan apakah jawaban dari pertanyaan berada

pada posisi mendatar atau menurun pada papan matriks. Nilai dari atribut orientasi

adalah 0 atau 1. Jika nilai dari atribut orientasi 0, pertanyaan tersebut termasuk

dalam kategori menurun, sebaliknya apabila nilai atribut orientasi adalah 1, maka

pertanyaan tersebut masuk dalam kategori mendatar. Sebagai contoh akan dibentuk

sebuah TTS dari lima buah pertanyaan, dengan jawaban dari masing-masing

pertanyaannya disajikan pada Tabel 2.1.

Gen 1 Gen 2 Gen 3 Gen 4 Gen 5

2 0 4 1 3 0 0 1 1 1

Tabel 2.1. Representasi Kromosom

Panjang kromosom di atas adalah lima, sesuai dengan jumlah gen yang

terdapat pada kromosom. Dari kromosom tersebut dapat dilihat pertanyaan yang

Id Pertanyaan Orientasi

digunakan sebanyak lima. Jawaban dari pertanyaan-pertanyaan tersebut, satu demi

satu diletakkan pada papan matriks untuk dibentuk menjadi sebuah TTS.

2.2. Nilai fitness (nilai kelayakan) dan penalti

Setelah populasi terbentuk, pada tahap selanjutnya dilakukan penghitungan

nilai fitness masing-masing kromosom yang ada dalam populasi. Penghitungan nilai

fitness diperoleh berdasarkan poin-poin berikut :

1. Banyaknya jawaban yang dapat tersusun (semakin banyak maka

menghasilkan nilai fitness semakin besar).

2. Dimensi papan teka-teki silang yang terbentuk (semakin kecil dimensi

papan maka akan menghasilkan nilai fitness yang semakin besar).

3. Selisih panjang dan lebar papan yang terbentuk (semakin mendekati

persegi maka akan menghasilkan nilai fitness yang semakin besar).

Setelah didapat nilai dari setiap poin maka nilai fitness akan dihitung

menggunakan rumus dibawah berikut :

F = (3*w)+(w+dv)+(w+dd)

F : Nilai fitness w : Jumlah kata yang tersusun dv : Dimensi papan yang terbentuk dd : Selisih panjang dan lebar papan yang terbentuk

Setelah didapat nilai fitness diatas, maka perhitungan tidak berhenti sampai

disini, tapi masih ada perhitungan penalti. Penalti ini adalah pengurangan nilai fitness

secara signifikan yang bergantung pada banyaknya jawaban yang gagal disusun

dalam papan. Semakin banyak kata yang gagal disusun maka penalti yang dikenakan

semakin besar.

P = F / (fw*10)

P : Niai hasil penalti F : Nilai fitness fw : Jumlah kata yang gagal tersusun

Setelah didapat nilai penalti diatas, maka nilai tersebut yang menjadi nilai fitness untuk setiap kromosom.

2.3. Skema Seleksi

Proses seleksi akan memilih kromosom untuk dijadikan sebagai calon parent

pada proses crossover. Proses seleksi akan membentuk sebuah populasi baru yang

berisi kromosom calon parent. Metode seleksi yang digunakan adalah metoda roda

roullete.

Pada seleksi roda, kromosom akan dipilih secara acak ditentukan dengan

memperhitungkan nilai fitness masing-masing kromosom. Semakin besar nilai fitness

suatu kromosom, semakin besar pula peluang kromosom tersebut untuk terpilih

sebagai parent (kromosom induk). Pengkodean roulette wheel dapat dianalogikan

seperti permainan roda putar. Pada permainan roda putar, lingkaran roda dibagi

menjadi beberapa wilayah. Pada seleksi lebar suatu wilayah kromosom ditentukan

menurut nilai fitness-nya, semakin besar nilai fitness-nya maka akan semakin besar

wilayahnya, dan semakin besar pula peluang kromosom tersebut untuk terpilih.

2.4. Crossover (Penyilangan)

Pada kasus ini, metode penyilangan yang digunakan adalah penyilangan

berbasis posisi (position based crossover). Dalam metode ini dipilih sejumlah posisi

gen secara acak, kemudian gen-gen pada posisi terpilih pada induk yang pertama

diwariskan pada kromosom anak yang kedua, sedangkan gen-gen lainnya dari

kromosom anak yang kedua diambil daripada gen-gen induk yang kedua dengan

urutan yang sama, begitupun sebaliknya.

2.5. Mutation (Mutasi)

Pada kasus ini, metode mutasi yang digunakan adalah mutasi berbasis posisi

(position based mutation). Dalam metode ini, proses mutasi dilakukan dengan cara

memilih posisi sebuah gen secara acak, kemudian gen tersebut akan dipindahkan

pada posisi acak lainnya.

BAB III

HASIL DAN PEMBAHASAN

3.1. Hasil dan Pembahasan

Gambar 3.1. Tampilan awal

Pada saat aplikasi dijalankan maka akan ditampilkan dua form yaitu crossword

content dan parameter algoritma seperti tampil pada gambar 3.1. Form crossword content

berfungsi untuk mengisi daftar kata jawaban teka-teki silang yang akan disusun. Kemudian

form parameter algoritma adalah form yang berfungsi untuk mengisikan parameter

algoritma genetika yang terdiri dari ukuran populasi, jumlah generasi, probabilitas

crossover, dan probabilitas mutasi.

Gambar 3.2. Mengisi kata

Berikut adalah proses pengisian kata jawaban dari teka-teki silang yang akan

disusun. Sebelum mengisikan kata, terlebih dahulu harus diisikan jumlah kata yang akan

disusun, setelah itu tinggal diisikan kata sebanyak jumlah yang ditentukan. Kata tidak boleh

mengandung spasi ataupun karakter lain selain abjad a..z. Jika dituliskan karakter selain a..z

maka karakter tersebut akan diabaikan. Selain itu, kata yang diisikan tidak case sensitive

(semua huruf akan dianggap sebagai huruf kapital).

Gambar 3.3. Paramter algoritma

Setelah semua kata sudah diisikan, maka selanjutnya adalah pengaturan

parameter algoritma. Form ukuran populasi dan generasi bisa diisi sesuai keinginan

pengguna, semakin besar maka akan menghasilkan hasil yang semakin optimal, tetapi

tentunya memakan waktu yang lebih lama. Untuk probabilitas crossover dan probabilitas

mutasi hanya dapat diisi nilai dalam rentang 0 sampai 1. Pengguna dapat mengatur nilainya

dengan menggunakan ruler value seperti tampil pada gambar 3.3.

Gambar 3.4. Running

Setelah yakin dengan isi kata dan parameter algoritma yang sudah diatur, maka

selanjutnya tinggal diklik tombol Run. Maka terlihat seperti gambar 3.4. aplikasi akan

berjalan sebanyak jumlah generasi yang ditentukan. Pada gambar 3.4 dapat dilihat bahwa

saat algoritma berjalan, dapat dilihat bahwa aplikasi sedang menjalankan sampai di generasi

keberapa dan sudah menghasilkan nilai fitness berapa.

Gambar 3.5. Hasil

Berikut adalah hasil papan teka-teki silang yang berhasil tersusun berdasarkan

kata yang sudah di masukkan sendiri oleh pengguna dan dengan parameter algoritma yang

telah ditentukan oleh pengguna. Dari hasil pada gambar 3.5. dapat disimpulkan bahwa

algortima genetika berhasil menyusun 12 kata dengan sempurna menggunakan parameter

ukuran populasi 120 dan jumlah generasi 600.

BAB IV

PENUTUP

4.1. Kesimpulan dan Saran

Algortima genetika dapat digunakan untuk menyusun teka-teki silang dengan

masukan jawaban sesuai yang diinginkan oleh pengguna. Dengan menggunakan

algoritma genetika maka akan mengefisiensi waktu komputasi dan memori yang

dibutuhkan.

Saran kedepan untuk yang ingin mengembangkan aplikasi ini adalah agar bisa

diimplementasikan untuk game teka-teki silang. Jadi konsepnya pengguna bisa

berbagi pertanyan dengan pengguna lain dan bisa saling menjawab pertanyaan

lawan.

4.2. Daftar Pustaka

1. Sinaga, Edison. (2009). Skripsi: Implementasi Algoritma Genetika Dalam

Penyusunan Teka-Teki Silang. Medan : STMIK Mikroskil.

2. Zukhri, Zainuddin. (2014). Algoritma Genetika untuk Menyelesaikan Masalah

Optimasi. Yogyakarta : Andi.