perancangan algoritma genetika dalam penyusunan teka

advertisement
PERANCANGAN ALGORITMA GENETIKA DALAM
PENYUSUNAN TEKA-TEKI SILANG
1
Afen Prana Utama1, Edison Sinaga
D-3 Manajemen Informatika - STMIK Mikroskil Medan
[email protected]
Abstrak
Teka-teki silang merupakan sebuah permainan untuk mengasah otak. Teka-teki silang (TTS)
dapat dimanfaatkan dalam bidang pendidikan untuk menguji kemampuan anak didik,
sehingga pertanyaan-pertanyaan yang digunakan disesuaikan dengan kebutuhan.
Pertanyaannya dibagi menjadi dua kategori yaitu mendatar dan menurun. 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 atau dapat
juga dilihat dari banyaknya sisa ruang kosong TTS tersebut. 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
dengan komputer.
Dengan menggunakan algoritma genetika, diharapakan akan mampu membuat kombinasi dari
sekumpulan jawaban pertanyaan menjadi sebuah bentuk TTS dengan jumlah pertanyaan yang
ditentukan sendiri oleh pengguna, dengan area papan matriks yang digunakan untuk
meletakkan jawaban adalah seminimal mungkin. Pertanyaan ditentukan sendiri oleh pengguna
dengan tujuan untuk membuat TTS dengan pertanyaan-pertanyaan yang lebih spesifik,
misalnya pertanyaan bidang pendidikan, komputer, pertanyaan yang berhubungan dengan
biologi dan sebagainya.
Kata Kunci: Algoritma Genetika, Teka teki silang, Asah Otak
1.
Pendahuluan
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 atau dapat juga dilihat dari banyaknya sisa ruang kosong TTS tersebut. 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 dengan komputer.
Batasan-batasan yang dibuat antara lain :
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, dan jawaban pertanyaan menurun tidak boleh tersusun
bersambung dengan jawaban pertanyaan menurun
3. Apabila jawaban mengandung karakter selain huruf A..Z, maka karakter tersebut
diabaikan. Misalnya apabila jawaban dari sebuah pertanyaan adalah kupu-kupu maka
ditulis menjadi kupukupu.
2. Kajian Pustaka
2.1 Teka Teki Silang
TTS atau disingkat TTS adalah suatu permainan yang mengharuskan penggunanya
untuk mengisi ruang-ruang kosong dengan huruf-huruf yang membentuk sebuah kata
berdasarkan petunjuk yang diberikan. Petunjuk biasa dibagi dalam kategori mendatar dan
menurun tergantung posisi kata yang harus diisi.
TTS (TTS) pertama kali diterbitkan dalam majalah New York World dalam format yang
hampir sama dengan TTS yang dikenal pada saat ini. Teka-teki yang sering disebut sebagai
TTS yang pertama ini ditemukan oleh Wynne. TTS kemudian menjadi fitur mingguan di
majalah tersebut. Dalam perkembangan selanjutnya TTS tidak hanya menjadi fitur sebuah
majalah. Buku kumpulan TTS yang pertama diterbitkan oleh Simon dan Schuster pada tahun
1924. TTS menjadi salah satu benda terpopuler pada era tersebut. Di Indonesia sendiri,
perkembangan TTS diawali pada tahun 1970-an. Pada waktu itu di 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 [4].
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[3]. Algoritma genetika menggunakan dua
prinsip dasar dalam sistem biologis, yaitu seleksi terhadap spesies yang ada dan peningkatan
keanekaragaman (gen dengan operasi genetik) [2].
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:
a) Ukuran populasi
Ukuran populasi adalah jumlah kromosom yang ada pada populasi. Kromosom
merepresentasikan bentuk dari TTS. 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.
b) Jumlah generasi
Satu proses rangkaian algoritma genetika dimulai dari proses seleksi, crossover (pindah
silang), mutasi sampai update generasi. Proses algoritma genetika akan dihentikan apabila
180
jumlah generasi sudah terpenuhi. Solusi yang diambil adalah kromosom dengan nilai fitness
(nilai kelayakan) terbaik dari generasi terakhir.
c) 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.
a) Pengkodean 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.
Ada beberapa jenis pengkodean yang dapat digunakan dalam algoritma genetika, diantaranya
pengkodean biner (binary encoding) dan pengkodean permutasi (permutation encoding).
b) 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.
c) Seleksi
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.
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,
181
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 1.
Gambar 1 Ilustrasi 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.
3. [Loop] secara sekuensial dari kromosom pertama, jumlahkan nilai fitness kromosom-s.
Apabila pada kromosom ke-i s>r maka berhenti, maka kromosom i terpilih sebagai kandidat
parent. Contoh dari roulett whell selection dapat dilihat pada Tabel 1.
Tabel 1. Contoh roulet wheel selection
Kromosom
Fitness
Si
Kromosom 1
Kromosom 2
Kromosom 3
Kromosom 4
Kromosom 5
Jumlah
20
10
30
10
40
S = 110
20
30
60
70
110
Bil Random r
(0, 110)
35
90
45
10
70
Kromosom
Terpilih
Kromosom 3
Kromosom 5
Kromosom 3
Kromosom 1
Kromosom 4
Pada tabel di atas 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.
d) Rank selection
Pada pengkodean ranking, kromosom pada populasi diranking sesuai dengan nilai fitnessnya, 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.
Tabel 2. Contoh rank selection
Kromosom
Kromosom 1
Kromosom 2
Kromosom 3
Kromosom 4
Kromosom 5
Jumlah
Fitness
Awal
20
10
30
40
5
Rangking
3
4
2
1
5
Fitness setelah
rangking
3
2
4
5
1
S = 15
182
Si
3
5
9
14
15
Bil.Random
R(0,15)
5
3
7
8
13
Kromosom
Terpilih
Kromosom 2
Kromosom 1
Kromosom 3
Kromosom 3
Kromosom 4
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.
e) 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 [5]. Beberapa jenis
crossover sebagai berikut:
1) Crossover pengkodean biner
Ada beberapa metode crossover (pindah silang) dengan pengkodean biner, yaitu sebagai
berikut:
i) 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.
Tabel 3. Crossover 1 titik
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11001111
ii) 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.
Tabel 4. Crossover 2 titik
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11001111
2) Crossover seragam
Crossover (pindah silang) seragam menghasilkan kromosom keturunan dengan
menyalin bit-bit secara acak dari kedua orangtuanya.
Tabel 5. Crossover seragam
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11001111
3) Arithmatic crossover
Kromosom offspring (kromosom anak) diperoleh dengan melakukan operasi aritmatika
terhadap parent (induk). Operasi yang dapat dilakukan antara lain AND, OR, XOR dan lainlain. Contoh dari arithmatic crossover dapat dilihat pada gambar di bawah ini:
Gambar 2. Arithmatic crossover
183
4) 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 di bawah ini:
Parent 1
23415768
Parent 2
51386427
Offspring1
23415867
Offspring2
51382476
Gambar 3. 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.
3. Metode Penelitian
3.1 Analisis Sistem
TTS dengan menggunakan algoritma genetika yang akan dibangun dalam penelitian ini
diharapkan dapat menghasilkan TTS dengan jumlah pertanyaan yang ditentukan sendiri oleh
pengguna. Pertanyaan-pertanyaan yang akan ditampilkan pada pengguna tersebut diperoleh
dari database secara acak oleh program. TTS yang telah dibuat dapat disimpan dalam bentuk
sebuah file yang memungkinkan pengguna untuk memainkan kembali TTS tersebut pada
waktu yang lain. Pertanyaan-pertanyaan yang akan digunakan dalam TTS disimpan dalam
database. Database yang berisi pertanyaan-pertanyaan tersebut dapat di-update sehingga
koleksi pertanyaan yang tersimpan dapat bertambah. Dengan demikian, pengguna dapat
bermain TTS dengan pertanyaan yang lebih bervariasi. TTS 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 TTS 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 TTS. Setiap huruf dari jawaban
akan menempati satu cell pada papan matriks. [1]
3.2 Rancangan Sistem
Rancangan sistem aplikasi pembuatan TTS yang akan dibangun dengan menggunakan
algoritma genetika adalah sebagai berikut:
a) Diagram konteks
Proses menyeluruh dari aplikasi TTS menggunakan algoritma genetika dapat dilihat dari
diagram konteks pada Gambar 4.
184
Gambar 4. Diagram konteks
Aplikasi menerima masukan dari pengguna berupa jumlah pertanyaan, permintaan
update, pilihan load game dan jawaban pengguna. Jumlah pertanyaan merupakan jumlah dari
pertanyaan yang akan digunakan dalam permainan TTS. Permintaan update digunakan
pengguna untuk meng-update database pertanyaan. Sedangkan, pilihan load game digunakan
untuk memainkan TTS yang telah disimpan sebelumnya dalam bentuk file dengan ekstensi
.tts. Selain menerima masukan dari pengguna, aplikasi juga memberikan keluaran kepada
pengguna berupa TTS dan jawaban yang benar dari TTS tersebut.
1) DFD level 1
DFD level 1 merupakan penjabaran dari diagram konteks, yang ditunjukkan pada
Gambar 5.
Gambar 5. DFD level 1
Pada DFD level 1 digambarkan proses-proses utama yang ada dan terjadi pada sistem.
Pada proses TTS Baru, pengguna memasukkan jumlah pertanyaan yang akan digunakan pada
permainan TTS. Proses TTS Baru akan memberikan keluaran berupa TTS yang dapat
dimainkan oleh pengguna. Proses Update Bank Soal merupakan proses untuk meng-update
koleksi pertanyaan yang dimiliki sehingga pertanyaan yang digunakan dalam permainan TTS
lebih bervariasi.
Pada proses ini juga perlu ditentukan nilai dari parameter algoritma genetika yang akan
digunakan, yaitu sebagai berikut:
1. Ukuran populasi
Sebuah kromosom merepresentasikan sebuah bentuk TTS. Dengan demikian populasi
adalah kumpulan bentuk TTS dalam bentuk kromosom. Ukuran populasi sangat
mempengaruhi kinerja algoritma genetika. 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
185
sedikit, sehingga kemungkinan hasil yang didapatkan kurang baik. Ukuran populasi yang
digunakan pada penelitian ini adalah 30.
2. Papan matriks
Papan matriks merupakan tempat untuk menyusun jawaban dari pertanyaan-pertanyaan
menjadi sebuah TTS. Papan matriks bisa dipandang seperti sebuah papan catur berdimensi
2 dengan ukuran 100x100. Karena ukuran papan matriks hanya 100x100, maka dimensi
dari TTS yang dapat dibuat maksimal adalah 100x100.
3. Pengkodean
Urutan jawaban dan posisi jawaban (mendatar atau menurun) harus 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 6..
Tabel 6. Contoh Pertanyaan
Pertanyaan
Besar
Tidak Kering
Hewan Air
Benar (Inggris)
Hujan Rintik-rintik
Jawaban
AKBAR
BASAH
IKAN
TRUE
GERIMIS
Id
1
2
3
4
5
Dari jawaban pertanyaan di atas maka dapat dibentuk sebuah kromosom seperti berikut ini:
Gambar 6. Panjang kromosom
Panjang kromosom di atas adalah lima, sesuai dengan jumlah gen yang terdapat pada
kromosom. Dari kromosom tersebut dapat dilihat pertanyaan yang digunakan sebanyak lima.
Jawaban dari pertanyaan-pertanyaan tersebut, satu demi satu diletakkan pada papan matriks
untuk dibentuk menjadi sebuah TTS. 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 papan matriks. Untuk jawaban
pertanyaan yang ada pada gen 1, huruf pertamanya berada pada koordinat (100,100),
186
sedangkan koordinat untuk jawaban yang terdapat pada gen berikutnya ditentukan dengan
mencari perpotongan dari jawaban tersebut dengan jawaban yang sebelumnya yang sudah
terletak pada papan matriks.
Berdasarkan bentuk kromosom pada gambar di atas maka jawaban pertama yang akan
diletakkan pada papan matriks adalah jawaban dari pertanyaan dengan id 5, yaitu “GERIMIS”
dengan posisi menurun. Huruf pertama dari kata “GERIMIS” akan diletakkan pada koordinat
(100,100), sehingga pada saat kata “GERIMIS” tersebut diletakkan pada papan matriks
hasilnya adalah sebagai berikut:
Gambar 7. Bentuk kromosom gerimis
Sebelumnya setiap koordinat yang ditempati oleh setiap huruf disimpan dalam sebuah
array yang berbeda. Selain itu, koordinat setiap titik potong yang terjadi juga disimpan dalam
sebuah array. Dengan demikian diperlukan tiga buah array dimana array pertama akan berisi
koordinat setiap huruf pada jawaban pertanyaan menurun, array kedua berisi koordinat setiap
huruf pada jawaban pertanyaan mendatar dan array ketiga digunakan untuk menyimpan
koordinat titik potong yang terjadi. Berdasarkan Gambar 9. maka isi dari matriks yang
digunakan untuk menyimpan koordinat setiap huruf untuk jawaban pertanyaan menurun
ditunjukkan pada Gambar 8:
Gambar 8. Koordinat titik potong
Jawaban pertanyaan yang diletakkan pada papan matriks berikutnya adalah jawaban
pertanyaan yang berada pada gen kedua yang merupakan jawaban dari pertanyaan dengan id
3, yaitu “IKAN” dengan posisi mendatar. Untuk menentukan koordinat dari kata “IKAN”,
perlu dilakukan pencarian titik perpotongan antara kata “IKAN” dengan kata yang sudah
berada dalam papan matriks. Karena kata IKAN mempunyai posisi mendatar, kata “IKAN”
harus berpotongan dengan kata dalam papan matriks yang mempunyai posisi menurun, yaitu
kata “GERIMIS”. Untuk mencari titik perpotongan,dilakukan pencocokan setiap huruf dari
kata “IKAN” dengan setiap huruf yang ada pada papan matriks. Pencocokan dilakukan secara
berurutan dimulai dari huruf pertama yaitu “I”. Untuk mengoptimalkan proses pencocokan,
tidak setiap koordinat pada papan matriks dicek. Pengecekan hanya dilakukan pada area yang
sudah terisi oleh jawaban yang sebelumnya telah diletakkan. Pada gambar di bawah ini dapat
dilihat bahwa area yang akan diperiksa (diarsir) berada pada koordinat (100,100) sampai
(100,106).
187
Gambar 9. pencarian titik potong
Setelah proses pencarian ditemukan huruf I pada koordinat (100,103). Sebelum
koordinat tersebut dipilih sebagai alternatif titik potong, karena gen kedua mempunyai
orientasi mendatar, terlebih dahulu diseleksi apakah huruf I pada koordinat (100,103) tersebut
dimiliki oleh jawaban pertanyaan menurun, karena jawaban pertanyaan mendatar hanya dapat
berpotongan dengan jawaban pertanyaan menurun. Untuk mengecek apakah huruf I pada
koordinat (100,103) merupakan jawaban pertanyaan menurun, dilakukan dengan mengecek isi
dari array yang digunakan untuk menyimpan koordinat setiap huruf dari jawaban menurun.
Kalau koordinat (100,103) ada di dalam array tersebut, maka huruf I pada koordinat
(100,103) merupakan jawaban dari pertanyaan menurun.
Berdasarkan Gambar 8. dapat dilihat bahwa koordinat (100,103) ada di dalam array
yang digunakan untuk menyimpan jawaban pertanyaan menurun. Dapat disimpulkan bahwa
huruf I pada koordinat (100,103) adalah jawaban dari pertanyaan menurun. Setelah diketahui
bahwa huruf I pada koordinat (100,103) adalah jawaban pertanyaan dari pertanyaan menurun,
selanjutnya dicek apakah huruf I pada koordinat (100,103) merupakan titik potong. Ini
dilakukan karena satu titik potong hanya boleh dimiliki oleh dua buah jawaban pertanyaan,
yaitu satu jawaban pertanyaan mendatar dan satu jawaban pertanyaan menurun. Untuk
mengetahui apakah huruf I pada koordinat (100,103) merupakan titik potong, dilakukan
dengan mengecek isi dari array yang digunakan untuk menyimpan koordinat titik potong
yang terjadi. Apabila koordinat tersebut ada dalam array tersebut, maka huruf I pada
koordinat tersebut merupakan titik potong.
Berdasarkan Gambar 7. dapat dilihat bahwa belum ada titik potong yang terjadi. Dengan
demikian array yang digunakan untuk menyimpan titik potong masih kosong, sehingga dapat
disimpulkan bahwa koordinat (100,103) bukan merupakan titik potong. Kemudian dicek
apakah papan matriks pada koordinat (100,103) sampai (103,103) kosong. Jika tidak kosong
maka dicek apakah koordinat tersebut ada dalam array untuk menyimpan koordinat jawaban
menurun. Ini dilakukan untuk menghitung titik potong yang terjadi jika jawaban pertanyaan
diletakkan pada koordinat (100,103). Jika ada maka koordinat tersebut masih memenuhi
syarat untuk dijadikan sebagai alternatif titik potong.
Berdasarkan Gambar 9. dapat dilihat bahwa papan matriks pada koordinat (100,103)
berisi I. Karena koordinat (100,103) ada dalam array tempat menyimpan koordinat jawaban
menurun, maka koordinat (100,103) merupakan titik potong. Kemudian koordinat (101,103)
sampai koordinat (103,103) masih kosong. Dengan demikian titik potong yang ditemukan
adalah 1. Selanjutnya dicek apakah papan matriks pada koordinat (100,102) sampai koordinat
(103,102) kosong. Jika tidak kosong selanjutnya dicek apakah mempunyai absis yang sama
dengan titik potong. Jika tidak maka koordinat (100,103) tidak bisa dijadikan sebagai
188
alternatif titik potong. Ini dilakukan agar tidak ada jawaban pertanyaan mendatar yang terletak
saling bersebelahan dengan jawaban pertanyaan mendatar yang lain.
Berdasarkan Gambar 9. dapat dilihat bahwa papan matriks pada koordinat (100,102)
berisi huruf R. Karena mempunyai absis yang sama dengan titik potong (100) maka kondisi
ini masih memenuhi untuk dijadikan sebagai alternatif titik potong. Kemudian dicek isi papan
matriks pada koordinat (100,104) sampai koordinat (103,104) apakah kosong. Jika tidak
kosong, dicek apakah mempunyai absis yang sama dengan titik potong. Jika ya maka
koordinat tersebut masih memenuhi syarat untuk dijadikan sebagai alternatif titik potong.
Berdasarkan Gambar 9. dapat dilihat bahwa koordinat (100,104) berisi huruf M. Karena
mempunyai absis yang sama dengan titik potong (100) maka koordinat (100,103) masih
memenuhi untuk dijadikan sebagai alternatif titik potong. Selanjutnya dicek isi papan matriks
pada koordinat (101,104) sampai (103,104). Karena papan matriks pada koordinat tersebut
kosong maka jawaban pertanyaan dapat diletakkan pada koordinat (100,103). Apabila
koordinat (100,103) diambil sebagai titik potong, maka isi dari papan matriks akan tampak
pada Gambar 10 sebagai berikut:
Gambar 10. Kromosom Gerimis dan Ikan alternative
Langkah selanjutnya adalah menghitung nilai gen dari alternatif titik potong tersebut.
Berdasarkan Gambar 10. di atas, maka nilai gennya adalah: Nilai gen: 1/4 = 0,25.
Nilai gen dan alternatif posisi titik potong di atas disimpan. Kemudian dicari huruf I yang lain
di dalam papan matriks untuk mencari kemungkinan alternatif titik potong yang lain.
Berdasarkan Gambar 9. dapat dilihat bahwa huruf I yang lain berada pada koordinat
(100,105). Huruf I pada koordinat (100,105) ini selanjutnya dicek apakah merupakan jawaban
pertanyaan menurun karena jawaban ”IKAN” berada pada posisi mendatar. Caranya adalah
dengan mengecek isi dari array yang digunakan untuk menyimpan koordinat setiap huruf
pada jawaban menurun.
Berdasarkan Gambar 8. dapat diketahui bahwa koordinat (100,105) terdapat dalam
array yang digunakan untuk menyimpan koordinat setiap huruf untuk jawaban menurun.
Setelah diketahui bahwa huruf I pada koordinat (100,105) adalah jawaban pertanyaan
menurun, selanjutnya dicek apakah huruf I pada koordinat (100,105) merupakan titik potong.
Caranya adalah dengan memeriksa apakah koordinat (100,105) ada dalam array yang
digunakan untuk menyimpan koordinat titik potong yang terjadi. Berdasarkan Gambar 8.
dapat dilihat bahwa belum ada titik potong yang terjadi, dengan demikian array yang
digunakan untuk menyimpan titik potong masih kosong. Dengan demikian huruf I pada
koordinat (100,105) bukan merupakan titik potong, sehingga dapat dijadikan sebagai
alternatif titik potong. Apabila huruf I pada koordinat (100,105) dijadikan sebagai alternatif
titik potong, maka isi papan matriks akan tampak pada Gambar 11. berikut:
189
Gambar 11. Kromosom Gerimis dan Ikan alternative
Langkah selanjutnya adalah menghitung nilai gen dari alternatif titik potong di atas.
Nilai gen untuk alternatif titik potong adalah: Nilai gen :1/4 = 0,25.
Selanjutnya dilakukan hal yang sama dengan huruf yang berikutnya yaitu huruf K. Sama
dengan mencari huruf I pada papan matriks, proses pencarian huruf K juga dilakukan pada
koordinat (100,100) sampai koordinat(100,106) seperti tampak pada Gambar 12. berikut:
Gambar 12. Pencarian titik potong
Langkah selanjutnya begitu seterusnya sehingga pada gambar di atas terlihat bahwa
untuk jawaban pertanyaan yang terdapat pada gen keempat dan gen kelima tidak diletakkan
dalam papan matriks. Hal ini disebabkan pada saat jawaban pertanyaan pada gen keempat,
yaitu TRUE, akan diletakkan titik potong tidak berhasil ditemukan. Ketentuan lain yang
digunakan untuk meletakkan jawaban pertanyaan pada papan matriks adalah sebagai berikut:
a. Sebuah titik potong hanya boleh dimiliki oleh dua buah jawaban saja. Contohnya dapat
dilihat pada Gambar 13.:
Gambar 13. papan matrik titik potong
Pada Gambar 5.3 titik potong pada koordinat (100,104) dimiliki oleh tiga jawaban pertanyaan
sekaligus, yaitu “GERIMIS”, “SATU”, dan, “SUKA”.
190
b. Fungsi Objektif
Setelah populasi terbentuk, pada tahap selanjutnya dilakukan penghitungan nilai fitness
masing-masing kromosom yang ada dalam populasi. Penghitungan nilai fitness diperoleh
berdasarkan jumlah jawaban yang berhasil dibentuk menjadi TTS dan jumlah titik
perpotongan yang dihasilkan oleh tiap-tiap jawaban pertanyaan. Nilai gen yang dihitung
adalah apabila jawaban pertanyaan pada gen tersebut termasuk jawaban pertanyaan yang
dapat dibentuk menjadi TTS. Apabila jawaban pertanyaan pada gen tersebut tidak dapat
dibuat menjadi TTS (tidak dapat berpotongan dengan jawaban pertanyaan lain) maka gen
tersebut diberi nilai 0, dan gen setelah gen tersebut tidak akan dihitung. Nilai fitness suatu
kromosom ditentukan dari nilai masing-masing gen. Nilai untuk setiap gen ke-j dapat
dihitung dengan persamaan berikut:
gen[j]=(p/k)
(1)
gen[j] : nilai gen ke-j
p : jumlah titik potong pada gen tersebut
k : jumlah karakter pada gen tersebut
Nilai fitness sebuah kromosom adalah total nilai gen pada kromosom tersebut yang
berhasil dibuat menjadi TTS. Fungsi objektif untuk menghitung nilai fitness suatu
kromosom adalah sebagai berikut:
(2)
F : nilai fitness
Gen[j] : nilai gen ke-j pada kromosom tersebut
c. 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 Rank Selection. Pada Rank Selection
kromosom terlebih dahulu diranking sesuai dengan nilai fitness-nya, kemudian kromosom
diberi nilai fitness sesuai rankingnya dengan nilai fitness maksimum adalah sama dengan
ukuran populasi. Apabila ada 30 kromosom pada populasi, maka nilai fitness untuk
kromosom dengan ranking 1 adalah 30, nilai fitness untuk kromosom dengan ranking 2
adalah 29 dan seterusnya sampai kromosom dengan ranking 30 dengan nilai fitness 1.
Dengan demikian kromosom dengan nilai fitness yang kecil tetap punya kesempatan untuk
terpilih.
d. Parameter Crossover (PC)
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). Nilai PC mempunyai range antara 01. Semakin besar nilai PC maka semakin banyak kromosom yang mengalami crossover.
Jika nilai PC sama dengan 0 maka tidak akan ada kromosom yang mengalami proses
crossover. Sebaliknya apabila nilai PC sama dengan 1 maka semua kromosom akan
mengalami crossover. Apabila tidak ada kromosom yang mengalami crossover maka tidak
banyak variasi kromosom yang bisa tercipta, namun apabila terlalu banyak kromosom
yang mengalami proses crossover, maka proses komputasi akan semakin besar. Dengan
mempertimbangkan faktor tersebut maka nilai PC yang dipakai pada penelitian ini adalah
191
0.5, sehingga diharapkan setengah dari kromosom yang berada pada populasi calon parent
akan mengalami crossover.
e. Skema Crossover
Untuk pengkodean permutasi, metode crossover yang digunakan adalah single point cross
over. Untuk memilih kromosom yang menjadi parent, dibangkitkan bilangan random R
sebanyak 30 kali, dimana 30 adalah ukuran populasinya. Apabila Ri < PC, maka
kromosom i terpilih sebagai parent. Contoh proses untuk memilih kromosom yang akan
mengalami crossover dapat dilihat pada Tabel 7.. PC yang digunakan adalah 0.5.
Tabel 7. contoh proses memilih parent
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Bilangan
Random -r
0.45
0.63
0.71
0.34
0.15
0.23
0.66
0.22
0.11
0.23
0.65
0.84
0.94
0.10
0.02
0.45
0.63
0.71
0.34
0.15
0.23
0.65
0.22
0.11
0.23
0.65
0.84
0.94
0.10
0.02
Terpilih
Ya
Tidak
Tidak
Ya
Ya
Ya
Tidak
Ya
Ya
Ya
Tidak
Tidak
Tidak
Ya
Ya
Ya
Tidak
Tidak
Ya
Ya
Ya
Tidak
Ya
Ya
Ya
Tidak
Tidak
Tidak
Ya
Ya
No
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Bilangan
Random -r
0.35
0.77
0.84
0.14
0.70
0.69
0.96
0.88
0.77
0.63
0.44
0.32
0.25
0.15
0.10
0.35
0.77
0.84
0.14
0.70
0.69
0.96
0.88
0.77
0.63
0.44
0.32
0.25
0.15
0.10
Terpilih
Ya
Tidak
Tidak
Ya
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Ya
Ya
Ya
Ya
Ya
Ya
Tidak
Tidak
Ya
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Ya
Ya
Ya
Ya
Ya
Pada tabel di atas dapat dilihat kromosom terpilih yang akan mengalami crossover. Pada
tabel di atas nilai bilangan random ke 1 (r1) adalah 0.45, karena r1 < PC (0.45 < 0.5) maka
kromosom 1 terpilih sebagai parent. Kemudian nilai r2 adalah 0.63, karena r2 > PC maka
kromosom 2 tidak terpilih sebagai parent. Demikian seterusnya sampai kromosom ke 30
sehingga ada 16 kromosom yang akan mengalami crossover. Pasangan yang akan mengalami
crossover diambil secara berurutan. Pada tabel di atas maka kromosom 1 akan berpasangan
dengan kromosom 4, kromosom 5 akan berpasangan dengan kromosom 6, kromosom 8
berpasangan dengan kromosom 9 dan seterusnya. Apabila jumlah kromosom yang terpilih
adalah ganjil maka kromosom yang terakhir terpilih tidak akan mengalami crossover karena
tidak mempunyai pasangan. Contoh crossover dapat dilihat pada Gambar 14. berikut ini.
192
Gambar 14. proses crossover
Pada gambar di atas dapat dilihat bahwa proses crossover menggunakan single point
crossover. Pada offspring 1, gen 1 sampai dengan gen 3 di ambil dari gen 1 sampai dengan
gen 3 pada parent 1. Kemudian gen 4 dan gen 5 pada offspring 1 diambil dari parent 2. Gen
yang diambil dari parent 2 adalah gen dengan atribut id pertanyaan yang belum ada pada gen
yang diambil dari parent 1 sebelumnya. Gen yang diambil dari parent 1 mempunyai atribut id
5,3 dan 2, maka gen yang diambil dari parent 2 adalah gen 2 yang mempunyai atribut id 1 dan
gen 5 yang mempunyai atribut id 4. Pada offspring 2, gen 1 sampai dengan gen 3 diambil dari
gen 1 sampai dengan gen 3 pada parent 2. Kemudian gen 4 dan gen 5 pada offspring 2
diambil dari parent 1. Gen yang diambil dari parent 1 adalah gen dengan atribut id pertanyaan
yang belum ada pada gen yang diambil dari parent 2 sebelumnya. Gen yang diambil dari
parent 2 mempunyai atribut id 2,1 dan 5, maka gen yang diambil dari parent 2 adalah gen 2
yang mempunyai atribut id 3 dan gen 4 yang mempunyai atribut id 4.
f. Jumlah Generasi
Semakin banyak jumlah pertanyaan, maka semakin banyak pula jumlah generasi.
g. Skema Update Generasi
Metode update generasi yang digunakan adalah dengan memilih 30 kromosom dengan
nilai fitness terbaik. Kromosom yang dipilih adalah kromosom yang dihasilkan dari proses
seleksi dan kromosom yang dihasilkan dari proses crossover.
1) Menghitung nilai fitness
Gambar 15. Papan Matriks
Tabel 8. Penghitungan nilai fitness
Dari tabel di atas dapat dilihat bahwa nilai fitness kromosom pada Gambar 5. adalah 0,74.
2) Proses bermain TTS
193
Pengguna memasukkan jawaban dari pertanyaan TTS. Selanjutnya, aplikasi akan
menilai jawaban yang dimasukkan pengguna kemudian memberikan jawaban yang benar
kepada pengguna.
3) Flowchart Pembentukan TTS
Gambar 16. Diagram alir algoritma genetika yang digunakan
Gambar 17. Rancangan dari form TTS Baru
Gambar 18. rancangan form TTS
Gambar 19. Rancangan sub menu bank soal
Gambar 20. Daftar soal dan jawabn
4. Hasil dan Pembahasan
Pengguna memasukkan jumlah pertanyaan, misalkan 10 soal, kemudian aplikasi akan
memilih pertanyaan yang akan digunakan dalam TTS secara random. Setiap pertanyaan
hanya boleh diambil sekali, atau dipilih secara random oleh program. Setelah pertanyaan
dipilih, maka pertanyaan tersebut diproses dengan algoritma genetika untuk dibentuk menjadi
sebuah TTS. Melalui proses algoritma genetika maka kromosom terbaik akan dibentuk
194
menjadi TTS. Waktu yang digunakan untuk memproses juga ditampilkan di layar. Gambar 17
di bawah ini adalah TTS hasil dari jumlah soal sebanyak 10.
Gambar 21. Form soal teka teki silang
5. Kesimpulan
Algoritma genetika dapat digunakan untuk membuat TTS. Beberapa kesimpulan yang
dapat diambil antara lain sebagai berikut:
1. Karena pemilihan soal adalah acak, aplikasi bisa tidak berhasil membuat TTS dengan
jumlah pertanyaan seperti yang diinputkan pengguna.
2. Dari hasil pengujian, dapat dilihat bahwa waktu komputasi yang diperlukan untuk
membuat TTS sebanding dengan jumlah soal yang digunakan.
Referensi
[1] Edison Sinaga, 2009., Skripsi: Implementasi Algoritma Genetika Dalam Penyusunan
Teka-Teki Silang,STMIK Mikroskil, Medan
[2] Kusumadewi, Sri. 2003. Artificial Intelligenci, Teknik dan Aplikasinya, Yogyakarta:
Penerbit Graha Ilmu.
[3] Lingga, D.E dan Arlando R..2008, Aplikasi algoritma genetika untuk mengoptimalkan
pola radiasi susunan antena.
[4] Pandjaitan, L.W.2007. Dasar-DasarKomputasi Cerdas. Yogyakarta: Penerbit Andi.
[5] Robandi, Imam. 2006. Desain Sistem Tenaga Modern, Optimisasi, Logika Fuzzy,
Algoritma Genetika. Yogyakarta: Penerbit Andi.
195
Download