Implementasi Algoritma Genetika Dalam Penyusunan Teka-Teki Silang

(1)

IMPLEMENTASI ALGORITMA GENETIKA DALAM PENYUSUNAN TEKA-TEKI SILANG

SKRIPSI

Diajukan untuk melengkapi tugas dan syarat mencapai gelar Sarjana Ilmu Komputer

EDISON SINAGA 051401069

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN S1 ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2009


(2)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA GENETIKA

DALAM PENYUSUNAN TEKA-TEKI SILANG

Kategori : SKRIPSI

Nama : EDISON SINAGA

Nomor Induk Mahasiswa : 051401069

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Desember 2009 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

M. Andri B, ST, McompSc, MEM Syahril Efendi, S.Si,MIT NIP. 197510082008011011 NIP. 196711101996021011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Prof. Dr. Muhammad Zarlis NIP 195707011986011033


(3)

PERNYATAAN

IMPLEMENTASI ALGORITMA GENETIKA DALAM PENYUSUNAN TEKA-TEKI SILANG

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Desember 2009

EDISON SINAGA 051401069


(4)

PENGHARGAAN

Puji syukur saya ucapkan kepada Tuhan Yang Maha Esa karena berkat-Nyalah saya dapat menyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komput er di Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Ucapan terima kasih saya ucapkan kepada Bapak Syahril Effendi, S.Si,MIT sebagai Dosen Pembimbing I dan Bapak M. Andri B, ST, McompSC, MEM sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan padat serta profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan skripsi ini. Selanjutnya kepada Dosen Penguji Bapak Syahriol Sitorus, S.Si, MIT dan Ibu Maya Silvi Lydia, B.Sc.MSc atas saran dan kritik yang diberikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si,MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen Program Studi S1 Ilmu Komputer FMIPA USU, dan pegawai di FMIPA USU.

Ucapan terimakasih juga untuk orangtua dan keluarga yang telah memberikan dukungan doa dan motivasi serta terus memberi semangat kepada saya. Untuk teman-teman satu kelas dan satu angkatan yang sudah selesai studi dan yang masih sedang berjuang. Terimakasih untuk kebersamaan selama ini, buat ide dan saran-saran yang diberikan yang sudah banyak membantu dalam penyelesaian skripsi ini. Terima kasih juga kepada semua pihak-pihak yang tidak dapat saya sebutkan satu persatu, terima kasih atas ide, masuka n, motivasi dan kerjasama yang baik selama ini.

Saya menyadari bahwa skripsi ini masih jauh dari sempurna, oleh karena itu saya menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini, sehingga dapat bermanfaat bagi kita semuanya. Akhir kata saya ucapkan terimakasih.

Penulis


(5)

ABSTRAK

Banyak usaha yang dilakukan untuk mendapat keuntungan maksimal dengan pengeluaran seminimal mungkin. Dengan berkembangnya ilmu pengetahuan dan teknologi, salah satu cara untuk mencapai tujuan tersebut adalah dengan optimasi, yaitu pencarian nilai-nilai variabel yang dianggap paling optimal untuk mencapai hasil yang diinginkan. Kajian ini bertujuan untuk membuat sebuah aplikasi optimasi yaitu pembuatan teka-teki silang dengan menggunakan algoritma genetika. Sistem ini dikembangkan dengan menggunakan perangkat lunak Microsoft Visual Basic 6.0 dan Microsoft Akses 2003. Dengan menggunakan algoritma genetika , maka aplikasi akan mampu membuat kombinasi dari sekumpulan jawaban pertanyaan menjadi sebuah bentuk teka-teki silang 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 demikian aplikasi ini juga bertujuan untuk membuat teka-teki silang dengan pertanyaan-pertanyaan yang lebih spesifik, misalnya pertanyaan bidang pendidikan, komputer, pertanyaan yang berhubungan dengan biologi dan sebagainya.


(6)

GENETIC ALGORITHM IMPLEMENTATION IN THE PREPARATION OF A CROSSWORD PUZZLE

ABSTRACT

Many efforts are made to get maximum benefits with minimum expenditure. With development of science and technology, one way to achieve that goal is optimization, which searches the values of variables that are considered most optimal for achieving the desired results. This study aims to create an optimization application that is making a crossword puzzle using genetic algorithm. This system developed to use the software of microsoft Visual Basic 6.0 and Microsoft Access 2003. By using this genetic algorithm, the application will be able to make a combination of a set of answers to questions into a form of a crossword puzzle with a number of questions defined by the user, with an area of the matrix board that is used to set a minimum. The questions answer is determined by users, thus this application is also intended to make a crossword puzzle with questions more specific, such as the question of education, computers, questions related to biology and so on.


(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

BAB 1 PENDAHULUAN

1.1 Latar Belakang... 1

1.2 Rumusan Masalah... 2

1.3 Batasan Masalah... 2

1.4 Tujuan Penelitian... 3

1.5 Manfaat Penelitian... 3

1.6 Metode Penelitian... 3

1.7 Sistematika Penulisan………4

BAB 2 DASAR TEORI 2.1 Teka-Teki Silang... 5

2.2 Algoritma Genetika... 6

2.3 Parameter Algoritma Genetika...6

2.3.1 Ukuran populasi... 6

2.3.2 Jumlah generasi... 7

2.3.3 Crossover probability...7

2.4 Kromosom dan Pola Representasi... 7

2.4.1 Pengkodean kromosom... 8

2.4.1.1 Pengkodean biner (binary encoding)...8

2.4.1.2 Pengkodean permutasi... 8

2.4.2 Nilai fitness dan fungsi objektif...9

2.4.3 Seleksi...10

2.4.3.1 Roulette wheel selection………..10

2.4.3.2 Rank selection………...……….11

2.4.3.3 Tournament selection…….……….13

2.4.4 Crossover………...14

2.4.4.1 Crossover pengkodean biner……….. 14

2.4.4.1.1 Crossover 1 titik………. 14

2.4.4.1.2 Crossover 2 titik………. 14

2.4.4.1.3 Crossover seragam………. 15

2.4.4.1.4 Arithmatic crossover………. 15

2.4.4.1.5 Crossover pengkodean permutasi……… 16

2.4.5 Update generasi...17


(8)

BAB 3 ANALISIS DAN RANCANGAN SISTEM

3.1 Analisis Sistem...20

3.2 Rancangan Sistem... 21

3.2.1 Diagram konteks... 21

3.2.1.1 DFD level 1... 21

3.2.1.2 DFD level 2 proses tts baru……….. 22

3.2.1.3 DFD level 3 proses algoritma genetika……… 23

3.2.1.4 DFD level 4 menghitung nilai fitness………... 47

3.2.1.5 DFD level 3 proses bermain tts……… 49

3.2.2 Flowchart Pembentukan TTS………50

3.2.3 Rancangan database pertanyaan………51

3.2.4 Rancangan antar muka……….. 51

3.2.4.1 Rancangan form utama...51

3.2.4.2 Rancangan menu utama file... 52

3.2.4.3 Rancangan sub menu baru………52

3.2.4.4 Rancanganformteka-teki silang……… 53

3.2.4.5 Rancangan sub menu open………... 54

3.2.4.6 Rancangan sub menu bank soal………... 54

BAB 4 IMPLEMENTASI SISTEM 4.1 Form Menu Utama... 56

4.1.1 Menu file...57

4.1.2 Menu pengaturan... 61

4.1.3 Menu informasi………..61

BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan... 62

5.2 Saran...62

DAFTAR PUSTAKA 63


(9)

DAFTAR TABEL

Halaman

Tabel 2.1 Contoh roullet wheel selection……… 11

Tabel 2.2 Contoh rank selection……….. 12

Tabel 3.1 Contoh pertanyaan………26

Tabel 3.2 Contoh proses memilih parent………. 45

Tabel 3.3 Penghitungan nilai fitness... 49

Tabel 3.5 TblBankSoal...51

Tabel 3.6 TblSoal... 51


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh sebuah TTS sederhana... 5

Gambar 2.2 Kromosom dengan pengkodean biner... 8

Gambar 2.3 Kromosom dengan pengkodean permutasi... 9

Gambar 2.4 Roulette wheel selection………10

Gambar 2.5 Nilai fitness sebelum diranking……… 12

Gambar 2.6 Nilai fitness sesudah diranking……….12

Gambar 2.7 Tournament selection………13

Gambar 2.8 Contoh crossover 1 titik………... 14

Gambar 2.9 Contoh crossover 2 titik... 15

Gambar 2.10 Contoh crossover seragam...15

Gambar 2.11 Contoh arithmatic crossover………16

Gambar 2.12 Contoh single point crossover pengkodean permutasi……….16

Gambar 2.13 Diagram alir algoritma genetika sederhana………… ……….18

Gambar 3.1 Diagram konteks... 21

Gambar 3.2 DFD level 1……….. 22

Gambar 3.3 DFD level 2 proses tts baru……….. 23

Gambar 3.4 DFD level 3 proses algoritma genetika……… 24

Gambar 3.5 Contoh kromosom... 26

Gambar 3.6 Letak dari kata GERIMIS pada papan matriks... 27

Gambar 3.7 Array koordinat jawaban menurun………...27

Gambar 3.8 Proses pencarian huruf I………. 28

Gambar 3.9 Alternatif titik potong pertama... 30

Gambar 3.10 Alternatif titik potong yang kedua... 31

Gambar 3.11 Proses pencarian huruf K... 32

Gambar 3.12 Proses pencarian huruf A... 32

Gambar 3.13 Proses pencarian huruf N... 33

Gambar 3.14 Koordinat tipot yang dipilih………. 34

Gambar 3.15 Isi array... 34

Gambar 3.16 Proses pencarian huruf B……… 35

Gambar 3.17 Proses pencarian huruf A……… 35

Gambar 3.18 Alternatif titik potong……….. 38

Gambar 3.19 Proses pencarian huruf H... 38

Gambar 3.20 Isi papan matriks... 39

Gambar 3.21 Isi array... 39

Gambar 3.22 Proses pencarian huruf T………..40

Gambar 3.23 Proses pencarian huruf R... 40

Gambar 3.24 Isi papan matriks untuk kromosom pada gambar 3.5... 42

Gambar 3.25 Contoh letak jawaban yang salah... 42

Gambar 3.26 Contoh crossover... 46

Gambar 3.27 DFD Level 3 menghitung nilai fitness………48


(11)

Gambar 3.29 DFD level 3 proses bermain TTS……….50

Gambar 3.30 Diagram alir algoritma genetika yang digunakan……… 50

Gambar 3.31 Diagram arsitektur rancangan………...………52

Gambar 3.32 Rancangan form utama... 52

Gambar 3.33 Rancangan dari form TTS Baru... 53

Gambar 3.34 Rancangan form teka-teki silang... 54

Gambar 3.35 Rancangan sub menu open... 54

Gambar 3.36 Rancangan sub menu bank soal... 55

Gambar 3.37 Daftar soal... 55

Gambar 4.1 Hasil pengujian……….………56

Gambar 4.2 Form Baru………... 57

Gambar 4.3 Form teka-teki silang…………... 58

Gambar 4.4 Form Buka………... 59

Gambar 4.5 Hasil Tampilan file TTS12.tts... 59

Gambar 4.6 Form Bank Soal... 60

Gambar 4.7 Daftar bank soal... 60


(12)

ABSTRAK

Banyak usaha yang dilakukan untuk mendapat keuntungan maksimal dengan pengeluaran seminimal mungkin. Dengan berkembangnya ilmu pengetahuan dan teknologi, salah satu cara untuk mencapai tujuan tersebut adalah dengan optimasi, yaitu pencarian nilai-nilai variabel yang dianggap paling optimal untuk mencapai hasil yang diinginkan. Kajian ini bertujuan untuk membuat sebuah aplikasi optimasi yaitu pembuatan teka-teki silang dengan menggunakan algoritma genetika. Sistem ini dikembangkan dengan menggunakan perangkat lunak Microsoft Visual Basic 6.0 dan Microsoft Akses 2003. Dengan menggunakan algoritma genetika , maka aplikasi akan mampu membuat kombinasi dari sekumpulan jawaban pertanyaan menjadi sebuah bentuk teka-teki silang 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 demikian aplikasi ini juga bertujuan untuk membuat teka-teki silang dengan pertanyaan-pertanyaan yang lebih spesifik, misalnya pertanyaan bidang pendidikan, komputer, pertanyaan yang berhubungan dengan biologi dan sebagainya.


(13)

GENETIC ALGORITHM IMPLEMENTATION IN THE PREPARATION OF A CROSSWORD PUZZLE

ABSTRACT

Many efforts are made to get maximum benefits with minimum expenditure. With development of science and technology, one way to achieve that goal is optimization, which searches the values of variables that are considered most optimal for achieving the desired results. This study aims to create an optimization application that is making a crossword puzzle using genetic algorithm. This system developed to use the software of microsoft Visual Basic 6.0 and Microsoft Access 2003. By using this genetic algorithm, the application will be able to make a combination of a set of answers to questions into a form of a crossword puzzle with a number of questions defined by the user, with an area of the matrix board that is used to set a minimum. The questions answer is determined by users, thus this application is also intended to make a crossword puzzle with questions more specific, such as the question of education, computers, questions related to biology and so on.


(14)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Banyak usaha yang dilakukan untuk mendapatkan keuntungan yang sebesar-besarnya dengan pengeluaran yang sekecil mungkin. Seiring dengan perkembangan ilmu pengetahuan dan teknologi, maka salah satu cara untuk mencapai tujuan tersebut adalah dengan optimasi. Optimasi adalah pencarian nilai-nilai variabel yang dianggap optimal untuk mencapai hasil yang diinginkan. Masalah optimasi ini beragam tergantung dari bidangnya. Dalam tulisan ini, masalah optimasi yang akan dibahas adalah pembuatan teka-teki silang. Penerapan optimasi adalah dengan cara memaksimumkan pengisian ruang-ruang kosong. Untuk memecahkan masalah optimasi tersebut, tentunya diperlukan algoritma yang handal.

Teka-teki silang merupakan sebuah permainan untuk mengasah otak. Teka-teki silang dapat dimanfaatkan dalam bidang pendidikan untuk menguji kemampuan anak didik, sehingga pertanyaan-pertanyaan yang digunakan disesuaikan dengan kebutuhan saja. Untuk membuat sebuah teka-teki silang 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 teka-teki silang 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. Dalam optimasi, 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


(15)

kosong teka-teki silang 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 teka-teki silang dilakukan secara otomatis dengan komputer.

1.2 Rumusan Masalah

Permasalahan yang akan dibahas dalam tulisan ini adalah bagaimana membuat kombinasi dari sekumpulan jawaban pertanyaan sehingga membentuk sebuah teka-teki silang dengan menggunakan algoritma genetika.

1.3Batasan Masalah

Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan, maka diperlukan batasan-batasan. Batasan-batasan dalam penelitian ini adalah:

1. Teka-teki silang yang dibuat adalah teka-teki silang dalam bentuk yang kita kenal sekarang ini. Pertanyaan dibagi menjadi dua kategori yaitu mendatar dan menurun.

2. Seperti TTS pada umumnya, karakter yang digunakan untuk mengisi kotak TTS hanya karakter huruf A..Z.

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.

4. Jawaban pertanyaan mendatar tidak boleh tersusun bersambung dengan jawaban pertanyaan mendatar, dan jawaban pertanyaan menurun tidak boleh tersusun bersambung dengan jawaban pertanyaan menurun.


(16)

1.4Tujuan Penelitian

Untuk membuat sebuah aplikasi yang dapat membuat teka-teki silang berdasarkan pertanyaan yang diinputkan oleh user dengan menggunakan algoritma genetika.

1.5Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah mempermudah dalam membuat teka-teki silang dengan pertanyaan-pertanyaan yang dapat ditentukan sendiri oleh pengguna.

1.6Metode Penelitian

Dalam menyusun skripsi ini penulis melakukan beberapa penerapan metode penelitian untuk menyelesaikan permasalahan. Adapun metode penelitian yang dilakukan adalah dengan cara:

1. Studi Literatur

Tahapan untuk memperdalam teori dan mencari referensi-referensi yang berkaitan dengan tema tugas akhir ini. Sumber referensi berasal dari artikel di internet maupun buku. Tahapan ini sangat penting karena digunakan untuk menunjang tahapan-tahapan berikutnya dalam tugas akhir ini.

2. Analisis Kebutuhan

Tahap ini untuk menganalisis apa saja kebutuhan untuk penelitian tugas akhir, seperti pengumpulan data, analisis data, dan analisis kebutuhan hardware dan

software. Tahap ini sangat penting untuk menunjang tahapan perancangan

sistem.

3. Perancangan Sistem

Pada tahap ini, dimulainya pembuatan rancangan sistem, yang terdiri dari perancangan proses dan perancangan antarmuka.


(17)

Pada tahap ini dilakukan pengimplementasian rancangan yang telah disusun pada tahap sebelumnya sesuai konsep yang dibuat. Sistem dapat mengalami perubahan dari rancangan sebelumnya pada tahapan ini, jika dirasa memerlukan pergantian.

5. Pengujian Sistem

Pada tahap ini dilakukan pengecekan apakah sistem memiliki kemampuan seperti yang diharapkan.

1.7Sistematika Penulisan

Sistematika penulisan dalam penelitian ini adalah sebagai berikut:

1. BAB 1 Pendahuluan

Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan. 2. BAB 2 Dasar Teori

Bab ini berisi tentang dasar teori yang digunakan untuk membuat aplikasi. Pada bab ini dijelaskan mengenai teka-teki silang dan algoritma genetika. Di sini dijelaskan juga istilah-istilah yang digunakan serta proses-proses dalam algoritma genetika.

3. BAB 3 Analisis dan Rancangan Sistem

Bab ini menjelaskan bagaimana penerapan algoritma genetika untuk membuat teka-teki silang. Di sini juga dijelaskan perancangan dari aplikasi yang akan dibuat.

4. BAB 4 Implementasi

Bab ini menjelaskan tentang implementasi dari rancangan yang telah dibuat pada bab III.

5. BAB 5 Kesimpulan dan Saran

Berisi kesimpulan dari penelitian dan saran-saran yang dapat digunakan untuk pengembangan penelitian berikutnya.


(18)

BAB 2

DASAR TEORI

2.1Teka-Teki Silang

Teka-teki silang 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 (wikipedia, 2007). Petunjuk biasa dibagi dalam kategori mendatar dan menurun tergantung posisi kata yang harus diisi.

1

2

3

4

5

Gambar 2.1 Contoh sebuahTTS sederhana

Teka-teki silang (TTS) pertama kali diterbitkan dalam majalah New York

World dalam format yang hampir sama dengan teka-teki silang yang dikenal pada saat

ini. Teka-teki yang sering disebut sebagai teka-teki silang 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 teka-teki silang diawali pada tahun 1970-an. Pada waktu itu di

PERTANYAAN

Mendatar 1. Cukai

3. Tidak Benar

5. Sejenis kain dari bulu domba Menurun 1. Alat Transportasi

2. Memperbolehkan (Inggris) 4. Urusan,masalah


(19)

Jakarta terbit “Asah Otak”, sebuah majalah TTS dan teka-teki lainnya. Penerbitan ini ternyata juga menuai sukses sehingga banyak terbitan serupa yang mengikuti.

2.2Algoritma 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.3Parameter 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.


(20)

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.


(21)

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.2Pengkodean 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


(22)

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.


(23)

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.1Roulette 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.


(24)

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 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.2Rank 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


(25)

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


(26)

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.3Tournament 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


(27)

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.1Crossover 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


(28)

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.4Arithmatic 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.


(29)

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.


(30)

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.


(31)

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


(32)

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.


(33)

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.


(34)

3.2 Rancangan Sistem

Rancangan sistem aplikasi pembuatan teka-teki silang yang akan dibangun dengan menggunakan algoritma genetika adalah sebagai berikut:

3.2.1 Diagram konteks

Proses menyeluruh dari aplikasi teka-teki silang menggunakan algoritma genetika dapat dilihat dari diagram konteks pada gambar 3.1.

Jumlah Soal TTS

Update Bank soal

Load Game

Jawaban TTS Jawaban User

Gambar 3.1 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 teka-teki silang. Permintaan update digunakan pengguna untuk meng-update database pertanyaan. Sedangkan, pilihan load game digunakan untuk memainkan teka-teki silang yang telah disimpan sebelumnya dalam bentuk file dengan ekstensi .tts. Selain menerima masukan dari pengguna, aplikasi juga memberikan keluaran kepada pengguna berupa teka-teki silang dan jawaban yang benar dari TTS tersebut.

3.2.1.1 DFD level 1

DFD level 1 merupakan penjabaran dari diagram konteks, yang ditunjukkan pada gambar 3.2.

User

Aplikasi permainan

TTS


(35)

1 TTS Baru 2 Update Bank Soal 4 Bermain TTS 3 Load Game User Jumlah Soal TTS Bank Soal Pilih Soal Pertanyaan’ Jawaban Terpilih Pertanyaan, Jawaban Tambahan Soal Pertanyaan, Jawaban Permintaan Update TTS Pilihan Update Pilihan Load Game TTS Koleksi TTS TTS Pilihan Jawaban TTS Kerangka TTS TTS Jawaban Pengguna

Gambar 3.2 DFD level 1

DFD level 1 merupakan penjabaran dari diagram konteks. Pada DFD level 1 digambarkan proses-proses utama yang ada dan terjadi pada sistem. Proses TTS Baru adalah proses untuk memulai pembuatan teka-teki silang yang baru. Pada proses TTS Baru, pengguna memasukkan jumlah pertanyaan yang akan digunakan pada permainan teki silang. Proses TTS Baru akan memberikan keluaran berupa teka-teki silang yang dapat dimainkan oleh pengguna. Proses Update Bank Soal merupakan proses untuk meng-update koleksi pertanyaan yang dimiliki sehingga pertanyaan yang digunakan dalam permainan teka-teki silang lebih bervariasi.

3.2.1.2 DFD level 2 proses tts baru

DFD level 2 proses TTS Baru merupakan penjabaran dari proses TTS Baru yang terdapat pada DFD level 1. DFD level 2 proses TTS Baru ditunjukkan pada gambar 3.3.


(36)

User Jumlah

Soal

1.1

Memilih Soal Jumlah

Soal

1.2

Algoritma Genetika 1.3

Generate

TTS

Kromosom Terpilih TTS

Bank Soal

Koleksi TTS

Pilih Soal

Soal & Jawaban Terpilih

Gambar 3.3 DFD level 2 proses tts baru

DFD level 2 proses TTS Baru menunjukkan proses-proses utama yang dilakukan untuk membuat sebuah teka-teki silang. Petama-tama pengguna memasukkan jumlah pertanyaan yang ingin digunakan dalam permainan teka-teki silang. Program akan memilih pertanyaan secara random sesuai dengan jumlah yang telah dimasukkan oleh pengguna. Pertanyaan-pertanyaan yang telah terpilih tersebut disusun dengan menggunakan algoritma genetika untuk dibentuk menjadi sebuah teka-teki silang.

3.2.1.3 DFD level 3 proses algoritma genetika

DFD level 3 proses algoritma genetika merupakan penjabaran dari proses algoritma genetika yang ada pada DFD level 2 proses TTS Baru. DFD level 3 proses algoritma genetika ditunjukkan pada gambar 3.4.


(37)

1.1 1.2.2 Pengkodean 1.2.3 Inisialisasi Populasi 1.2.4 Penghitungan Nilai Fitness 1.2.5 Rank Selection 1.2.6 Crossover Skema Pengkodean Fungsi Objektif Skema Update Generasi 1.2.7 Update Generasi 1.3 Kromosom Terpilih Nilia Fitness setiap Kromosom Bentuk Kromosom Populasi Kromosom Calon Parent Offspring Kromosom Calon Parent Skema Crossover 1.2.1 Penentuan Parameter Parameter Skema Seleksi Jumlah Soal PC

Gambar 3.4 DFD level 3 proses algoritma genetika

Pada proses ini juga perlu ditentukan nilai dari parameter algoritma genetika yang akan digunakan, yaitu sebagai berikut:

1. Ukuran populasi

Populasi merupakan kumpulan kromosom yang akan diproses dengan algoritma genetika. Ukuran populasi adalah jumlah kromosom yang terdapat pada populasi. Sebuah kromosom merupakan sebuah alternatif solusi dari sebuah permasalahan. Pada penelitian ini, sebuah kromosom merepresentasikan sebuah bentuk teka-teki silang. Dengan demikian populasi adalah kumpulan bentuk teka-teki silang 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 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 yang digunakan pada penelitian ini adalah 30.


(38)

2. Papan matriks

Papan matriks merupakan tempat untuk menyusun jawaban dari pertanyaan-pertanyaan menjadi sebuah teka-teki silang. Papan matriks bisa dipandang seperti sebuah papan catur berdimensi 2 dengan ukuran 100x100. Pada papan matriks ini jawaban pertanyaan akan diletakkan untuk dibentuk menjadi teka-teki silang. Karena ukuran papan matriks hanya 100x100, maka dimensi dari teka-teki silang yang dapat dibuat maksimal adalah 100x100.

3. Pengkodean

Teka-teki silang yang akan dibentuk merupakan susunan jawaban dari pertanyaan yang digunakan pada permainan teka-teki silang. Jawaban pertanyaan diletakkan pada papan matriks sesuai dengan bentuknya yaitu mendatar atau menurun. Jawaban pertanyaan diletakkan ke dalam papan matriks satu persatu secara berurutan. 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 teka-teki silang. 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 teka-teki silang dari lima buah pertanyaan, dengan jawaban dari masing-masing pertanyaannya disajikan pada tabel 3.1.


(39)

Tabel 3.1 Contoh pertanyaan

Pertanyaan Jawaban Id

Besar AKBAR 1

Tidak Kering BASAH 2

Hewan Air IKAN 3

Benar (Inggris) TRUE 4

Hujan Rintik-rintik GERIMIS 5

Dari jawaban pertanyaan di atas maka dapat dibentuk sebuah kromosom seperti berikut ini:

Gambar 3.5 Contoh 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 teka-teki silang. 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), 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 3.5 maka jawaban pertama yang akan diletakkan pada papan matriks adalah jawaban dari pertanyaan dengan id 5, yaitu

Gen 1 Gen 2 Gen 3 Gen 4 Gen 5

5 0 3 1 2 1 4 0 1 1


(40)

“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 3.6 Letak dari kata GERIMIS pada papan matriks

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 3.6 maka isi dari matriks yang digunakan untuk menyimpan koordinat setiap huruf untuk jawaban pertanyaan menurun ditunjukkan pada gambar 3.7 berikut:

Gambar 3.7 Array koordinat jawaban menurun

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,

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I

106 S

107


(41)

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 3.8 dapat dilihat bahwa area yang akan diperiksa (diarsir) berada pada koordinat (100,100) sampai (100,106).

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I

106 S

107

Gambar 3.8 Proses pencarian huruf I

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 3.7 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


(42)

(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 3.6 maka 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 3.8 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 alternatif titik potong. Ini dilakukan agar tidak ada jawaban pertanyaan mendatar yang terletak saling bersebelahan dengan jawaban pertanyaan mendatar yang lain. Berdasarkan gambar 3.8 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 3.8 dapat dilihat bahwa koordinat (100,104) berisi huruf M. Karena mempunyai absis yang sama dengan titik potong (100) maka koordinat (100,103)


(43)

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 3.9 berikut:

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 S

107 98

Gambar 3.9 Alternatif titik potong pertama

Langkah selanjutnya adalah menghitung nilai gen dari alternatif titik potong tersebut. Berdasarkan gambar 3.9 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 3.8 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 3.7 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


(44)

(100,105) ada dalam array yang digunakan untuk menyimpan koordinat titik potong yang terjadi. Berdasarkan gambar 3.7 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 3.10 berikut:

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I K A N

106 S

107

Gambar 3.10 Alternatif titik potong yang kedua

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 3.11 berikut:


(45)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I

106 S

107

Gambar 3.11 Proses pencarian huruf K

Seperti terlihat pada gambar di atas, tidak terdapat huruf K dalam papan matriks. Dengan demikian tidak ada alternatif titik potong yang dihasilkan dari huruf K. Selanjutnya dilakukan hal yang sama dengan huruf berikutnya yaitu A dan N. Seperti terlihat di gambar 3.12 dan 3.13, tidak terdapat huruf A dan N dalam papan matriks. Dengan demikian tidak ada alternatif titik potong yang dihasilkan dari huruf A maupun N.

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I

106 S

107

Gambar 3.12 Proses pencarian huruf A Cari huruf K


(46)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I

104 M

105 I

106 S

107

Gambar 3.13 Proses pencarian huruf N

Setelah semua area ditelusuri ternyata tidak ditemukan titik potong yang lain. Dengan demikian sudah semua huruf pada kata ”IKAN” dicari titik potongnya pada papan matriks dan ditemukan dua alternatif titik potong yang mungkin dipilih. Untuk memilih titik potong mana yang digunakan dilakukan dengan memilih nilai gen yang paling tinggi. Karena setiap titik perpotongan mempunyai nilai gen yang sama, maka dipilih koordinat yang berada dalam area papan matriks yang dapat dilakukan pengecekan. Jika koordinatnya berada di luar area yang dilakukan pengecekan, koordinat yang terdekat dengan area tersebut yang akan terpilih. Hal ini dilakukan agar teka-teki silang yang terbentuk mempunyai area seminimal mungkin. Untuk jawaban mendatar, akan dibandingkan dengan koordinat xmin dan xmax, sedangkan untuk jawaban yang menurun, akan dibandingkan dengan nilai ymin dan ymax. Jika axmax adalah nilai x maksimum dari alternatif posisi titik potong yang didapat, dan axmin adalah nilai x minimum dari alternatif titik potong yang didapat, maka dipilih alternatif titik potong dengan nilai axmin dan axmax berada dalam xmin dan xmax, atau jika nilai axmin < xmin atau nilai axmax > xmax maka dihitung selisihnya kemudian dibandingkan untuk setiap alternatif titik potong. Untuk alternatif 1, axmin = 100 dan axmax = 103. Karena axmax > xmax maka dhitung selisihnya yaitu axmax – xmax = 3. Kemudian untuk alternatif titik potong kedua axmin = 100 dan axmax = 103. Karena axmax > xmax maka dhitung selisihnya yaitu axmax – xmax = 3. Dari hasil perhitungan dapat terlihat bahwa semua alternatif mempunyai selisih yang sama, dengan kata lain semua alternatif titik potong mempunyai nilai kedekatan yang sama dengan area papan matriks yang dicek, sehingga dipilih alternatif yang pertama, kata “IKAN” akan diletakkan pada papan matriks seperti pada gambar 3.14.


(47)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 S

107

Gambar 3.14 Koordinat tipot yang dipilih

Berdasarkan gambar 3.14 di atas, maka isi dari array yang digunakan untuk menyimpan koordinat jawaban pertanyaan mendatar dan array yang digunakan untuk menyimpan jawaban pertanyaan menurun serta array yang digunakan untuk menyimpan titik potong akan tampak pada gambar berikut:

100,100,G 100,101,E 100,102,R 100,103,I 100,104,M 100,105,I 100,106,S

Array jawaban menurun

100,103,I 101,103,K 102,103,A 103,103,N

Array jawaban mendatar

100,103,I

Array titik potong

Gambar 3.15 Isi array

Setelah gen kedua diletakkan pada papan matriks, selanjutnya gen ketiga yang diletakkan pada papan matriks. Jawaban pertanyaan yang terdapat pada gen ketiga adalah pertanyaan dengan Id 2 yaitu “BASAH” dengan posisi mendatar. Untuk mencari titik potong setiap huruf dari kata “BASAH” dibandingkan dengan isi papan matriks. Huruf pertama yang dibandingkan adalah B. Area papan matriks yang

di-scan untuk mencari titik perpotongan adalah pada koordinat (100,100) sampai

(103,106). Proses pencarian dilakukan secara sekuensial dari kiri ke kanan (searah koordinat x) seperti ditunjukkan pada gambar 3.16 berikut:


(48)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 S

107

Gambar 3.16 Proses pencarian huruf B

Setelah dilakukan proses pencarian ternyata di dalam papan matriks tidak terdapat huruf B. Selanjutnya dilakukan pencarian terhadap huruf kedua yaitu huruf A dengan cara yang sama dengan mencari huruf B di atas.

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 S

107

Gambar 3.17 Proses pencarian huruf A

Pada saat proses pencarian ternyata ditemukan huruf A pada koordinat (102,103). Sebelum koordinat tersebut dipilih sebagai alternatif titik potong, karena gen ketiga mempunyai orientasi mendatar, terlebih dahulu diseleksi apakah huruf A pada koordinat (102,103) tersebut dimiliki oleh jawaban pertanyaan menurun. Karena jawaban pertanyaan mendatar hanya dapat berpotongan dengan jawaban pertanyaan menurun. Untuk mengecek apakah huruf A pada koordinat (102,103) merupakan jawaban pertanyaan menurun, dilakukan dengan mengecek isi dari array yang digunakan untuk menyimpan koordinat setiap huruf dari jawaban menurun. Kalau

Cari huruf B


(49)

koordinat (102,103) ada di dalam array tersebut, maka huruf A pada koordinat (102,103) merupakan jawaban dari pertanyaan menurun. Berdasarkan gambar 3.15 dapat dilihat bahwa koordinat (102,103) tidak ada di dalam array yang digunakan untuk menyimpan jawaban pertanyaan menurun. Karena hanya ada dua jenis pertanyaan yaitu mendatar dan menurun, maka bisa dipastikan bahwa huruf R pada koordinat (102,103) merupakan jawaban dari pertanyaan mendatar. Karena gen ketiga adalah jawaban pertanyaan mendatar, maka huruf A pada koordinat (102,103) tidak bisa dipakai sebagai alternatif titik potong.

Selanjutnya dilakukan pencarian terhadap huruf ketiga yaitu huruf S dengan cara yang sama dengan mencari huruf B di atas. Setelah proses pencarian ditemukan huruf S pada koordinat (100,106). Sebelum koordinat tersebut dipilih sebagai alternatif titik potong, karena gen ketiga mempunyai orientasi mendatar, terlebih dahulu diseleksi apakah huruf S pada koordinat (100,106) tersebut dimiliki oleh jawaban pertanyaan menurun. Karena jawaban pertanyaan mendatar hanya dapat berpotongan dengan jawaban pertanyaan menurun. Untuk mengecek apakah huruf S pada koordinat (100,106) merupakan jawaban pertanyaan menurun, dilakukan dengan mengecek isi dari array yang digunakan untuk menyimpan koordinat setiap huruf dari jawaban menurun. Kalau koordinat (100,106) ada di dalam array tersebut, maka huruf S pada koordinat (100,106) merupakan jawaban dari pertanyaan menurun. Berdasarkan gambar 3.15 dapat dilihat bahwa koordinat (100,106) ada di dalam array yang digunakan untuk menyimpan jawaban pertanyaan menurun. Dengan demikian dapat disimpulkan bahwa huruf S pada koordinat (100,106) adalah jawaban dari pertanyaan menurun. Setelah diketahui bahwa huruf S pada koordinat (100,106) adalah jawaban pertanyaan dari pertanyaan menurun, selanjutnya dicek apakah huruf S pada koordinat (100,106) 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 S pada koordinat (100,106) 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 pada koordinat tersebut merupakan titik potong. Berdasarkan gambar 3.15 maka dapat dilihat koordinat (100,106) tidak ada dalam array tempat menyimpan koordinat titik


(50)

potong. Dapat disimpulkan bahwa koordinat (100,106) bukan merupakan titik potong. Kemudian dicek apakah papan matriks pada koordinat (98,106) sampai (102,106) 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,106). Jika ada maka koordinat tersebut masih memenuhi syarat untuk dijadikan sebagai alternatif titik potong. Berdasarkan gambar 3.14 dapat dilihat bahwa papan matriks pada koordinat (100,106) berisi S. Karena koordinat (100,106) ada dalam array tempat menyimpan koordinat jawaban menurun, maka koordinat (100,106) merupakan titik potong. Sedangkan koordinat (98,106), koordinat (99, 106), koordinat (101, 106) dan koordinat (102,106) masih kosong. Dengan demikian titik potong yang ditemukan adalah 1. Selanjutnya dicek apakah papan matriks pada koordinat (98,105) sampai koordinat (102,105) kosong. Jika tidak kosong selanjutnya dicek apakah mempunyai absis yang sama dengan titik potong. Jika tidak maka koordinat (100,106) tidak bisa dijadikan sebagai alternatif titik potong. Ini dilakukan agar tidak ada jawaban pertanyaan mendatar yang terletak saling bersebelahan dengan jawaban pertanyaan mendatar yang lain. Berdasarkan gambar 3.14 dapat dilihat bahwa papan matriks pada koordinat (100,105) berisi huruf I. Karena mempunyai absis yang sama dengan titik potong (100), maka koordinat (100,106) masih memenuhi untuk dijadikan sebagai alternatif titik potong.

Kemudian dicek isi papan matriks pada koordinat (98,107) sampai koordinat (102,107) 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. Dengan demikian maka koordinat (100,106) masih memenuhi untuk dijadikan sebagai alternatif titik potong. Selanjutnya apabila koordinat (100,106) diambil sebagai titik potong, maka isi dari papan matriks akan tampak pada gambar 3.18 berikut:


(51)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 B A S A H

107

Gambar 3.18 Alternatif titik potong

Kemudian alternatif titik potong di atas dihitung nilai gennya. Nilai gen untuk alternatif titik potong di atas adalah:

Nilai gen :1/5 = 0,2

Pencarian kemudian dilanjutkan pada area papan matriks yang belum ditelusuri. Pada akhirnya untuk huruf S hanya ditemukan satu alternatif titik potong. Pencarian dilanjutkan untuk huruf berikutnya yaitu huruf H.

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 S

107

Gambar 3.19 Proses pencarian huruf H

Pada gambar 3.19 di atas dapat dilihat bahwa tidak ada huruf H pada papan matriks, sehingga tidak ada alternatif titik potong untuk huruf H. Dengan demikian untuk gen ketiga yang berisi jawaban pertanyaan ”BASAH” hanya mempunyai satu alternatif titik potong, yaitu pada koordinat (100,106) pada huruf S. Setelah kata


(52)

”BASAH” diletakkan pada papan matriks maka isi dari papan matriks akan tampak pada gambar 3.20 berikut:

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 B A S A H

107

Gambar 3.20 Isi papan matriks

Berdasarkan gambar 3.20 di atas, maka isi dari array yang digunakan untuk menyimpan koordinat jawaban pertanyaan mendatar dan array yang digunakan untuk menyimpan jawaban pertanyaan menurun serta array yang digunakan untuk menyimpan titik potong akan tampak pada gambar 3.21 berikut:

Gambar 3.21 Isi array

Setelah jawaban pertanyaan pada gen ketiga diletakkan pada papan matriks, selanjutnya adalah jawaban pertanyaan pada gen keempat yaitu “TRUE” yang diletakkan pada papan matriks. Untuk mencari titik potong setiap huruf dari kata “TRUE” dibandingkan dengan isi papan matriks. Huruf pertama yang dibandingkan adalah T. Area papan matriks yang di-scan untuk mencari titik perpotongan adalah pada koordinat (98,100) sampai (103,106). Proses pencarian dilakukan secara

100,100,G 100,101,E 100,102,R 100,103,I 100,104,M 100,105,I 100,106,S

Array jawaban menurun

100,103,I 101,103,K 102,103,A 103,103,N 98,106,B 99,106,A 100,106,S 101,106,A 102,106,H

Array jawaban mendatar

100,103,I 100,106,S


(53)

sekuensial dari kiri ke kanan (searah koordinat x) seperti ditunjukkan pada gambar 3.22 berikut:

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

v106 B A S A H

107

Gambar 3.22 Proses pencarian huruf T

Setelah dilakukan pencarian ternyata di dalam papan matriks tidak terdapat huruf T. Selanjutnya dilakukan pencarian terhadap huruf kedua yaitu huruf R dengan cara yang sama dengan mencari huruf T di atas.

Gambar 3.23 Proses pencarian huruf R

Pada saat proses pencarian ternyata ditemukan huruf R pada koordinat (100,102). Sebelum koordinat tersebut dipilih sebagai alternatif titik potong, karena gen keempat mempunyai orientasi menurun, terlebih dahulu diseleksi apakah huruf R pada koordinat (100,102) tersebut dimiliki oleh jawaban pertanyaan mendatar. Karena jawaban pertanyaan menurun hanya dapat berpotongan dengan jawaban pertanyaan

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 B A S A H

107

Cari huruf T


(54)

mendatar. Untuk mengecek apakah huruf R pada koordinat (100,102) merupakan jawaban pertanyaan mendatar, dilakukan dengan mengecek isi dari array yang digunakan untuk menyimpan koordinat setiap huruf dari jawaban mendatar. Kalau koordinat (100,102) ada di dalam array tersebut, maka huruf R pada koordinat (100,102) merupakan jawaban dari pertanyaan mendatar. Berdasarkan gambar 3.21 dapat dilihat bahwa koordinat (100,102) tidak ada di dalam array yang digunakan untuk menyimpan jawaban pertanyaan mendatar. Karena hanya ada dua jenis pertanyaan yaitu mendatar dan menurun, maka bisa dipastikan bahwa huruf R pada koordinat (100,102) merupakan jawaban dari pertanyaan menurun. Karena gen keempat adalah jawaban pertanyaan menurun, maka huruf R pada koordinat (100,102) tidak bisa dipakai sebagai alternatif titik potong. Setelah seluruh area papan matriks ditelusuri ternyata tidak ditemukan huruf R lagi. Pencarian dilanjutkan untuk huruf yang berikutnya yaitu huruf U.

Ternyata tidak ada alternatif titik potong yang didapat untuk huruf U. Pencarian dilanjutkan untuk huruf yang berikutnya yaitu huruf E. Sama seperti huruf R, untuk huruf E juga ditemukan alternatif titik potong yaitu pada koordinat (100,101). Tapi huruf E pada koordinat (100,101).) tidak dapat dijadikan alternatif titik potong karena merupakan jawaban pertanyaan menurun. Setelah seluruh area papan matriks ditelusuri ternyata tidak ditemukan alternatif titik potong lain untuk huruf E. Karena semua huruf pada kata ”TRUE” sudah dilakukan pencarian titik potong dan tidak ditemukan alternatif titik potongnya, maka jawaban pertanyaan untuk gen keempat tidak dimasukkan ke dalam papan matriks. Karena gen keempat tidak diletakkan pada papan matriks, maka gen kelima dan seterusnya juga tidak diletakkan pada papan matriks. Apabila titik potong tidak ditemukan, jawaban tersebut tidak diletakkan ke dalam papan matriks. Hasil akhir dari papan matriks dapat dilihat pada gambar 3.24:


(55)

x,y 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 98

99

100 G

101 E

102 R

103 I K A N

104 M

105 I

106 B A S A H

107

Gambar 3.24 Isi papan matriks untuk kromosom pada gambar 3.5

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

x,y 98 99 100 101 102 103

98 G

99 E

100 R

101 I

102 M

103 I

104 S U K A

105 A

106 T

107 U

Gambar 3.25 Contoh letak jawaban yang salah

Pada gambar 3.25 titik potong pada koordinat (100,104) dimiliki oleh tiga jawaban pertanyaan sekaligus, yaitu “GERIMIS”, “SATU”, dan, “SUKA”.


(56)

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

teka-teki silang 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 teka-teki silang. Apabila jawaban pertanyaan pada gen tersebut tidak dapat dibuat menjadi teka-teki silang (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) ……….persamaan 3.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 teka-teki silang. Fungsi objektif untuk menghitung nilai

fitness suatu kromosom adalah sebagai berikut:

n

F=∑ gen[j] ……….persamaan 3.2

J=0

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


(57)

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 0-1. 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 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 3.2. PC yang digunakan adalah 0.5.


(58)

Tabel 3.2 Contoh proses memilih parent

No Bilangan Random –

r

Terpilih No Bilangan Random –

r

Terpilih

1 0.45 Ya 16 0.35 Ya

2 0.63 Tidak 17 0.77 Tidak

3 0.71 Tidak 18 0.84 Tidak

4 0.34 Ya 19 0.14 Ya

5 0.15 Ya 20 0.70 Tidak

6 0.23 Ya 21 0.69 Tidak

7 0.65 Tidak 22 0.96 Tidak

8 0.22 Ya 23 0.88 Tidak

9 0.11 Ya 24 0.77 Tidak

10 0.23 Ya 25 0.63 Tidak

11 0.65 Tidak 26 0.44 Ya

12 0.84 Tidak 27 0.32 Ya

13 0.94 Tidak 28 0.25 Ya

14 0.10 Ya 29 0.15 Ya

15 0.02 Ya 30 0.10 Ya

1 0.45 Ya 16 0.35 Ya

2 0.63 Tidak 17 0.77 Tidak

3 0.71 Tidak 18 0.84 Tidak

4 0.34 Ya 19 0.14 Ya

5 0.15 Ya 20 0.70 Tidak

6 0.23 Ya 21 0.69 Tidak

7 0.65 Tidak 22 0.96 Tidak

8 0.22 Ya 23 0.88 Tidak

9 0.11 Ya 24 0.77 Tidak

10 0.23 Ya 25 0.63 Tidak

11 0.65 Tidak 26 0.44 Ya

12 0.84 Tidak 27 0.32 Ya


(1)

Gambar 4.3 Form teka-teki silang

Pada tabel 4.1 ditampilkan beberapa hasil pengujian antara jumlah soal dengan waktu proses yang dibutuhkan.

Tabel 4.1 Hasil pengujian No Jumlah

Soal

Waktu (s)

No Jumlah Soal

Waktu (s) 1 4 1.4375 11 20 2.6250 2 5 1.4843 12 25 3.1093 3 5 1.5000 13 25 3.2187 4 10 1.9531 14 30 3.4837 5 10 1.9843 15 30 3.4062 6 12 2.0468 16 30 3.0625 7 15 2.3593 17 45 5.1093 8 15 2.4062 18 50 5.2187 9 20 2.8281 19 50 5.3125


(2)

b. Buka TTS

Submenu Buka TTS digunakan untuk membuka file TTS yang sudah tersimpan dan menampilkannya pada layar.

Gambar 4.4 Form Buka


(3)

c. Simpan

Submenu Simpan digunakan untuk menyimpan file TTS yang sudah terbentuk.

d. Bank Soal

Sub menu Bank Soal untuk meng-update database pertanyaan, sehingga koleksi pertanyaan lebih bervariasi.

Gambar 4.6 Form Bank Soal

Submenu Bank Soal terdiri dari tombol Baru untuk membuat soal yang baru, tombol Simpan untuk menyimpan soal, tombol ubah untuk mengubah pertanyaan atau jawaban, tombol Hapus untuk menghapus pertanyaan dan tombol daftar untuk melihat daftar soal. Apabila tombol daftar soal dipilih maka akan tampil seperti berikut:


(4)

Gambar 4.7 Daftar bank soal

e. Keluar

Submenu Keluar digunakan untuk menutup aplikasi.

4.1.2 Menu pengaturan

Menu Pengaturan hanya memiliki satu sub menu yaitu Warna, digunakan untuk pengaturan warna latar belakang layar, latar belakang sel dan latar depan sel.

Gambar 4.8 Form warna

4.1.3 Menu informasi

Menu Informasi terdiri dari beberapa submenu, sebagai berikut: a. Algoritma Genetika

Submenu Algoritma Genetika digunakan untuk menampilkan informasi tentang Algoritma genetika.

b. Penulis

Submenu penulis untuk menampilkan informasi tentang penulis. .


(5)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Algoritma genetika dapat digunakan untuk membuat teka-teki silang. Beberapa kesimpulan yang dapat diambil antara lain sebagai berikut:

1. Karena pemilihan soal adalah acak, aplikasi bisa tidak berhasil membuat teka-teki silang dengan jumlah pertanyaan seperti yang diinputkan pengguna. 2. Dari hasil pengujian pada tabel 4.1, dapat dilihat bahwa waktu komputasi yang

diperlukan untuk membuat teka-teki silang sebanding dengan jumlah soal yang digunakan.

5.2 Saran

Saran yang diberikan untuk pengembangan sistem selanjutnya adalah:

1. Algoritma genetika hendaknya dapat dibandingkan kinerjanya dengan algoritma yang lain.

2. Koleksi TTS hendaknya bukan hanya bisa dimainkan di komputer saja tetapi bisa dicetak, sehingga koleksi TTS bisa dibuat dalam bentuk buku dan sejenisnya.


(6)

DAFTAR PUSTAKA

Basuki, Achmad, et al. 2005. Pengolahan Citra Digital Menggunakan Visual Basic. Yogyakarta: Penerbit Graha Mulia.

Kusumadewi, Sri. 2003. Artificial Intelligenci, Teknik dan Aplikasinya. Yogyakarta: Penerbit Graha Ilmu.

Kuswadi, Son. 2007. Kendali Cerdas, Teori dan Aplikasi Praktisnya. Yogyakarta: Penerbit Andi.

Lingga, D.E dan Arlando Riko.2008. Aplikasi algoritma genetika untuk mengoptimalkan pola radiasi susunan antena.

Pandjaitan, L.W.2007. Dasar-DasarKomputasi Cerdas. Yogyakarta: Penerbit Andi.

Robandi, Imam. 2006. Desain Sistem Tenaga Modern, Optimisasi, Logika Fuzzy, Algoritma Genetika. Yogyakarta: Penerbit Andi.

Yuswanto. 2002. Pemrograman Grafis dan Multimedia dengan Visual Basic 6.0. Surabaya: Prestasi Pustaka.

2009