Jakarta terbit “Asah Otak”, sebuah majalah TTS dan teka-teki lainnya. Penerbitan ini ternyata juga menuai sukses sehingga banyak terbitan serupa yang mengikuti.
2.2 Algoritma Genetika
Algoritma genetika adalah suatu algoritma pencarian searching berdasarkan cara kerja melalui mekanisme seleksi alam dan genetik. Tujuannya untuk menentukan
struktur-struktur yang disebut individu berkualitas tinggi di dalam suatu domain yang disebut populasi untuk mendapatkan solusi persoalan Pandjaitan, 2007, hal:163.
Pada tahun 1975, John Holland memperkenalkan algoritma genetika untuk yang pertama kalinya. Algoritma genetika berbeda dengan algoritma konvensional
karena dimulai dari suatu himpunan awal yang disebut populasi. Algoritma genetika menggunakan dua prinsip dasar dalam sistem biologis, yaitu seleksi terhadap spesies
yang ada dan peningkatan keanekaragaman gen dengan operasi genetik.
2.3 Parameter Algoritma Genetika
Skema algoritma genetika menentukan bagaimana jalannya proses algoritma genetika, sehingga pada proses ini juga perlu ditentukan parameter algoritma genetika yang
akan digunakan, yaitu sebagai berikut:
2.3.1 Ukuran populasi
Ukuran populasi adalah jumlah kromosom yang ada pada populasi. Kromosom merepresentasikan bentuk dari teka-teki silang. Memilih ukuran populasi yang tepat
akan meningkatkan kinerja algoritma genetika. Apabila ukuran populasi terlalu kecil, maka algoritma genetika hanya mempunyai alternatif solusi yang sedikit. Namun, jika
ukuran populasi terlalu, besar proses algoritma genetika akan berjalan lambat.
2.3.2 Jumlah generasi
Universitas Sumatera Utara
Satu proses rangkaian algoritma genetika dimulai dari proses seleksi, crossover pindah silang, mutasi sampai update generasi. Proses algoritma genetika akan
dihentikan apabila jumlah generasi sudah terpenuhi. Solusi yang diambil adalah kromosom dengan nilai fitness nilai kelayakan terbaik dari generasi terakhir.
2.3.3 Crossover probability peluang pindah silang
Peluang crossover PC akan menentukan banyaknya crossover pindah silang yang terjadi. Nilai PC berkisar dari 0 sampai 1. Apabila nilai PC sama dengan 1, maka
seluruh kromosom akan mengalami crossover. Apabila PC sama dengan 0, maka tidak akan terjadi proses crossover, atau dengan kata lain kromosom offspring kromosom
anak hasil pindah silang akan sama dengan kromosom parent kromosom induk.
2.4 Kromosom dan Pola Representasi
Dalam konsep ilmu biologi dikenal adanya istilah sel. Sel merupakan bagian terkecil yang menyusun organisme. Secara umum organisme terdiri dari sel-sel penyusun.
Sebuah sel tersusun dari kumpulan beberapa kromosom. Sebuah kromosom tersusun dari beberapa gen. Gen merupakan sekumpulan DNA Deoxyribo Nucleic Acid.
Konsep biologi semacam ini yang diadaptasi pada algoritma genetika. Dalam algoritma genetika, kromosom merupakan alternatif solusi dari sebuah permasalahan.
Kromosom dapat disajikan dalam beberapa bentuk sesuai dengan jenis pengkodean yang digunakan.
2.4.1 Pengkodean kromosom
Universitas Sumatera Utara
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.
Ada beberapa jenis pengkodean yang dapat digunakan dalam algoritma genetika, diantaranya pengkodean biner binary encoding dan pengkodean permutasi
permutation encoding.
2.4.1.1 Pengkodean biner binary encoding
Pengkodean biner merupakan pengkodean yang sering digunakan dan paling sederhana. Sesuai dengan namanya, pada pengkodean biner nilai gen pada sebuah
kromosom hanya terdiri dari 0 dan 1. Contoh kromosom yang menggunakan pengkodean biner ditunjukkan pada gambar
2.2.
Kromosom 1 1 0 1 0 1 0 1 0 1 1
Kromosom 2 1 1 0 0 0 0 1 0 1 0
Gambar 2.2 Kromosom dengan pengkodean biner
2.4.1.2 Pengkodean permutasi
Pengkodean permutasi dapat digunakan untuk menyelesaikan ordering problem, seperti traveling salesman problem dan masalah penjadwalan. Dalam pengkodean
permutasi urutan atau posisi gen pada kromosom merepresentasikan urutan dari suatu proses. Dalam pengkodean permutasi tidak ada nilai gen yang sama dalam suatu
kromosom. Contoh kasus yang dapat diselesaikan dengan pengkodean permutasi
Universitas Sumatera Utara
adalah TSP traveling salesman problem. Traveling salesman problem merupakan cara bagaimana menentukan rute minimal untuk mengunjungi beberapa tempat atau
kota. Jika ada 10 kota yang akan dikunjungi, maka satu kromosom akan mempunyai 10 gen, dimana tiap-tiap gen mewakili satu kota. Posisi atau urutan gen dalam
kromosom menentukan urutan kota yang harus dilalui. Contoh kromosomnya dapat dilihat pada gambar 2.3.
Kromosom 1 2 6 7 5 1 3 4 9 8 10
Kromosom 2 10 5 4 9 7 1 3 2 6 8
Gambar 2.3 Kromosom dengan pengkodean permutasi
Pada kromosom 1 berarti kota yang pertama dikunjungi adalah kota 1, kemudian kota 2 demikian seterusnya sampai kota 10.
2.4.2 Nilai fitness nilai kelayakan dan fungsi objektif fungsi tujuan
Dalam proses evolusi individu yang survive bertahan hidup dari proses seleksi alam akan mempunyai kesempatan untuk bereproduksi kembali. Dengan demikian,
kemampuan individu untuk dapat beradaptasi dan bertahan hidup untuk selamat sangat penting. Dalam terminologi algoritma genetika kemampuan suatu individu
kromosom untuk bertahan hidup dapat diukur berdasarkan nilai fitness-nya. Semakin baik nilai fitness nilai kelayakan suatu kromosom maka akan semakin baik peluang
kromosom tersebut untuk bertahan hidup dan ikut dalam proses reproduksi. Nilai fitness suatu kromosom dapat dihitung dengan menggunakan fungsi objektif.
2.4.3 Seleksi
Universitas Sumatera Utara
Proses seleksi bertujuan untuk memilih kromosom yang akan dijadikan sebagai parent kromosom induk pada proses crossover pindah silang. Ada beberapa metode yang
dapat dipilih pada proses seleksi, antara lain Roulette Wheel Selection, Rank Selection dan Tournament Selection.
2.4.3.1 Roulette wheel selection
Pada roulette wheel selection, kromosom akan dipilih secara acak ditentukan dengan memperhitungkan nilai kelayakan masing-masing kromosom. Semakin besar nilai
kelayakan 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 roulette wheel selection, 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.
Ilustrasi dari roulette wheel selection dapat dilihat pada gambar 2.4.
Gambar 2.4 Roulette wheel selection
Proses roulette wheel selection dijelaskan pada algoritma sebagai berikut: 1.
[Sum] Jumlahkan semua nilai fitness nilai kelayakan tiap-tiap kromosom pada populasi S.
2. [Select] Generate bilangan random pada interval 0,S-r.
Universitas Sumatera Utara
3. [Loop] secara sekuensial dari kromosom pertama, jumlahkan nilai fitness
kromosom-s. apabila pada kromosom ke-i sr maka berhenti, maka kromosom i terpilih sebagai kandidat parent.
Contoh dari roulett whell selection dapat dilihat pada tabel 2.1.
Tabel 2.1 Contoh roulett wheel selection Kromosom
Fitness Si
Bil.Random r 0, 110
Kromosom Terpilih
Kromosom 1 20
20 35
Kromosom 3 Kromosom 2
10 30
90 Kromosom 5
Kromosom 3 30
60 45
Kromosom 3 Kromosom 4
10 70
10 Kromosom 1
Kromosom 5 40
110 70
Kromosom 4 Jumlah
S = 110
Pada tabel di atas dapat disimpulkan bahwa ukuran pupulasi adalah 5. Nilai Si merupakan nilai akumulasi dari nilai fitness kromosom ke 1 sampai kromosom ke i.
Untuk memilih kromosom yang akan menjadi calon parent maka dibangkitkan bilangan random 0, S. Bilangan random yang dibangkitkan sebanyak 5 buah sesuai
dengan ukuran populasinya. Apabila ri Si dan ri Si-1 maka kromosom yang terpilih adalah kromosom ke i. Pada tabel di atas r1 = 35, karena 35 S3 60 dan 35
S2 30 maka kromosom yang terpilih adalah kromosom 3.
2.4.3.2 Rank selection
Pada pengkodean ranking, kromosom pada populasi diranking sesuai dengan nilai fitness-nya, kemudian kromosom diberi nilai fitness nilai kelayakan yang baru sesuai
dengan rankingnya. Kromosom dengan ranking terbawah akan mendapat nilai fitness 1, ranking terbawah kedua mendapat nilai fitness 2, demikian seterusnya. Kromosom
dengan ranking terbaik akan mendapat nilai fitness N. Gambar 2.5 dan gambar 2.6
Universitas Sumatera Utara
masing-masing mengilustrasikan kondisi dari nilai fitness sebelum dan sesudah proses ranking.
Gambar 2.5 Nilai fitness sebelum diranking
Gambar 2.6 Nilai fitness sesudah diranking
Dari gambar 2.6 dapat diketahui setelah diranking, semua kromosom mempunyai kesempatan terpilih karena kromosom dengan nilai terbaik tidak
mempunyai perbedaan yang besar dengan kromosom yang lain. Contoh dari rank selection dapat dilihat pada tabel 2.2.
Tabel 2.2 Contoh rank selection Kromosom
Fitness Awal
Ranking Fitness setelah
ranking Si
Bil.Random r 0, 15
Kromosom Terpilih
Kromosom 1 20
3 3
3 5
Kromosom 2
Kromosom 2 10
4 2
5 3
Kromosom 1
Kromosom 3 30
2 4
9 7
Kromosom 3
Kromosom 4 40
1 5
14 8 Kromosom
Universitas Sumatera Utara
3 Kromosom 5
5 5
1 15 13
Kromosom 4
Jumlah S = 15
Pada tabel di atas dapat dilihat bahwa rank selection hampir sama dengan roulett whell selection. Hanya saja sebelum kromosom dipilih nilai fitness tiap
kromosom diganti sesuai dengan rankingnya. Nilai fitness hasil dari pemeringkatan ini yang kemudian dijadikan acuan pada saat pemilihan kromosom.
2.4.3.3 Tournament selection
Pada tournament selection, setiap satu kromosom kandidat parent dipilih dari proses tournament. Untuk memilih satu calon parent, dipilih dua buah kromosom secara
acak. Kemudian nilai fitness kedua kromosom tersebut dibandingkan, kromosom dengan nilai fitness terbaik dipilih sebagai calon parent. Demikian juga untuk memilih
calon parent yang lain. Ilustrasi dari tournament selection ditunjukkan pada gambar 2.7.
Kromosom 1 Fitness : 10
Kromosom 2 Fitness : 15
Kromosom 3 Fitness : 20
Kromosom 4 Fitness : 40
Kromosom 5 Fitness : 35
Kromosom 6 Fitness : 25
Kromosom 7 Fitness : 30
Kromosom 8 Fitness : 45
Kromosom 2
Kromosom 6
Kromosom 8 Kromosom 5
Kromosom 5 Kromosom 3
Kromosom 8 Kromosom 4
Gambar 2.7 Tournament selection
Universitas Sumatera Utara
Pada gambar di atas dapat disimpulkan ukuran populasinya adalah 8. Untuk memilih sebuah kromosom mula-mula dipilih sepasang kromosom. Selanjutnya
sepasang kromosom yang terpilih dibandingkan nilai fitness-nya. Kromosom dengan nilai fitness yang lebih besar adalah kromosom yang dipilih. Pada contoh di atas
kromosom 2 yang dipilih dari proses turnamen antara kromosom 2 dan kromosom 1.
2.4.4 Crossover
Crossover atau pindah silang adalah proses pembentukan kromosom anak offspring. Crossover bertujuan menambah keanekaragaman string dalam satu populasi dengan
penyilangan antar-string yang diperoleh dari reproduksi sebelumnya Arhami, 2005, hal:196. Beberapa jenis crossover sebagai berikut:
2.4.4.1 Crossover pengkodean biner
Ada beberapa metode crossover pindah silang dengan pengkodean biner, yaitu sebagai berikut:
2.4.4.1.1 Crossover 1 titik
Proses crossover dilakukan dengan memisahkan suatu string menjadi dua bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu bagian dari string yang
lain yang telah dipisahkan dengan cara yang sama.
Kromosom orangtua 1 11001011
Kromosom orangtua 2 11011111
Keturunan
11001111
Gambar 2.8 Contoh crossover 1 titik
Universitas Sumatera Utara
2.4.4.1.2 Crossover 2 titik
Proses crossover pindah silang ini dilakukan dengan memilih dua titik crossover. Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal kromosom
sampai titik crossover pertama disalin dari orangtua pertama, bagian dari titik crossover pertama dan kedua disalin dari orangtua kedua, kemudian selebihnya disalin
dari orang tua pertama lagi.
Kromosom orangtua 1 11001011
Kromosom orangtua 2 11011111
Keturunan 11011111
Gambar 2.9 Contoh crossover 2 titik
2.4.4.1.3 Crossover seragam
Crossover pindah silang seragam menghasilkan kromosom keturunan dengan menyalin bit-bit secara acak dari kedua orangtuanya.
Kromosom orangtua 1 11001011
Kromosom orangtua 2 11011111
Keturunan
11011111
Gambar 2.10 Contoh crossover seragam
2.4.4.1.4 Arithmatic crossover
Kromosom offspring kromosom anak diperoleh dengan melakukan operasi aritmatika terhadap parent induk. Operasi yang dapat dilakukan antara lain AND,
OR, XOR dan lain-lain. Contoh dari arithmatic crossover dapat dilihat pada gambar 2.11.
Universitas Sumatera Utara
Parent-1 10101001
AND
Parent-2 10111010
Offspring 10101000
Gambar 2.11 Contoh arithmatic crossover
2.4.4.1.5 Crossover pengkodean permutasi
Jenis crossover pindah silang untuk pengkodean permutasi hanyalah single point crossover. Metode ini dilakukan dengan memilih satu titik crossover p pada
kromosom parent kromosom induk secara acak. Gen ke-1 sampai gen ke-p pada parent 1 dikopikan menjadi gen offspring kromosom anak. Sisa gen yang belum
terpenuhi diambil dari parent 2 dengan cara sekuensial dari gen ke-1 parent 2 sampai gen terakhir, dengan syarat gen tersebut belum ada dalam kromosom offspring.
Contoh dari crossover pada pengkodean permutasi dapat dilihat pada gambar 2.12.
Parent 1 2 3 4 1 5 7 6 8
Parent 2 5 1 3 8 6 4 2 7
Offspring1 2 3 4 1 5 8 6 7
Offspring2 5 1 3 8 2 4 7 6
Gambar 2.12 Contoh single point crossover pengkodean permutasi
Titik crossover pada gen ke-4. Offspring pertama dihasilkan dari gen 1 sampai gen 4 parent 1, kemudian gen yang berikutnya pada offspring 1 diambil dari parent 2. Gen
parent 2 dicek secara sekuensial dari gen 1 sampai gen 8. Apabila gen yang dicek belum ada pada gen yang diambil dari parent 1 maka gen pada parent 2 tersebut
diambil untuk menjadi bagian pada offspring 1.
Universitas Sumatera Utara
2.4.5 Update generasi
Proses crossover akan menghasilkan kromosom-kromosom baru offspring yang akan menyebabkan ukuran populasi akan bertambah. Untuk menjaga agar ukuran populasi
tetap, maka harus ada kromosom yang dibuang. Proses ini dinamakan dengan update generasi. Proses update generasi dapat dilakukan dengan mengurutkan kromosom
dalam populasi berdasarkan nilai fitness-nya, selanjutnya diambil n kromosom dengan nilai kromosom terbaik. Kromosom yang terpilih kemudian akan menjadi populasi
yang baru.
2.4.6 Langkah algoritma genetika
Algoritma genetika dimulai dengan membuat himpunan solusi kromosom yang disebut dengan populasi. Populasi mula-mula dibuat secara acak. Selanjutnya populasi
yang sudah terbentuk akan digunakan untuk membentuk populasi yang baru dengan harapan populasi yang baru lebih baik dari populasi sebelumnya. Solusi-solusi yang
ada dalam populasi kemudian dipilih untuk membentuk solusi baru offspring, yang dipilih berdasarkan nilai fitness-nya. Proses ini diulang sampai kondisi yang
diinginkan. Berikut ini adalah urutan proses algoritma genetika:
1. Inisialisasi populasi, membuat populasi secara acak.
2. Evaluasi nilai fitness.
3. Membuat populasi baru dengan cara seleksi, crossover dan mutasi 4.
Update generasi, ganti populasi yang lama dengan populasi baru. 5.
Cek kondisi berhenti, apabila belum terpenuhi maka kembali ke proses 2.
Universitas Sumatera Utara
Gambar 2.13 Diagram alir algoritma genetika sederhana Mulai
Bangkitkan populasi awal
Evaluasi fungsi tujuan
Apakah kriteria optimasi
tercapai? Individu-
individu terbaik
Seleksi
Rekombinasi
Mutasi Hasil
Selesai Ya
Tidak
Universitas Sumatera Utara
2.4.7 Konsep algoritma genetika
Siklus perkembangbiakan algoritma genetika diawali dengan pembuatan himpunan solusi secara acak yang dinamakan populasi, dimana di dalamnya terdapat individu-
individu yang dinamakan kromosom. Kromosom ini secara lambat laun mengalami iterasi atau perkembangbiakan dalam sebuah generasi. Selama dalam sebuah generasi
kromosom-kromosom ini dievaluasi dengan menggunakan fungsi fitness fungsi kelayakan. Untuk menciptakan generasi berikutnya dengan kromosom yang baru
dinamakan keturunan atau kromosom anak offspring dapat dilakukan dengan menggabungkan dua kromosom yang telah didapat sebelumnya dengan menggunakan
operator pindah silang crossover ataupun dengan memodifikasi sebuah kromosom dengan menggunakn operator mutasi. Sebuah generasi baru sebelum dievaluasi lagi,
maka generasi tersebut diseleksi berdasarkan nilai fitness-nya. Dari seleksi ini, kromosom-kromosom yang paling fit kuat mempunyai kemungkinan besar untuk
terseleksi.
Universitas Sumatera Utara
BAB 3
ANALISIS DAN RANCANGAN SISTEM
3.1 Analisis Sistem
Teka-teki silang dengan menggunakan algoritma genetika yang akan dibangun dalam penelitian ini diharapkan dapat menghasilkan teka-teki silang dengan jumlah
pertanyaan yang ditentukan sendiri oleh pengguna. Pertanyaan-pertanyaan yang akan ditampilkan pada pengguna tersebut diperoleh dari database secara acak oleh program.
Teka-teki silang yang telah dibuat dapat disimpan dalam bentuk sebuah file yang memungkinkan pengguna untuk memainkan kembali teka-teki silang tersebut pada
waktu yang lain. Pertanyaan-pertanyaan yang akan digunakan dalam teka-teki silang disimpan dalam database. Database yang berisi pertanyaan-pertanyaan tersebut dapat
di-update sehingga koleksi pertanyaan yang tersimpan dapat bertambah. Dengan demikian, pengguna dapat bermain teka-teki silang dengan pertanyaan yang lebih
bervariasi. Teka-teki silang yang dibentuk merupakan kumpulan jawaban dari pertanyaan yang digunakan. Jawaban-jawaban pertanyaan disusun sedemikian rupa
sehingga saling berpotongan satu sama lain.
Untuk membentuk sekumpulan jawaban pertanyaan menjadi teka-teki silang digunakan sebuah papan matriks berdimensi dua. Papan matriks dapat dianalogikan
seperti sebuah papan catur. Setiap kotak cell berada pada koordinat x,y. Pada papan matriks ini nantinya jawaban dari pertanyaan akan diletakkan untuk dibentuk menjadi
sebuah teka-teki silang. Setiap huruf dari jawaban akan menempati satu cell pada papan matriks.
Universitas Sumatera Utara
3.2 Rancangan Sistem