Algoritma Genetika Analisis Sistem

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

2.2 Algoritma Genetika

Algoritma genetika adalah suatu algoritma pencarian searching berdasarkan cara kerja melalui mekanisme seleksi alam dan genetik. Tujuannya untuk menentukan struktur-struktur yang disebut individu berkualitas tinggi di dalam suatu domain yang disebut populasi untuk mendapatkan solusi persoalan Pandjaitan, 2007, hal:163. Pada tahun 1975, John Holland memperkenalkan algoritma genetika untuk yang pertama kalinya. Algoritma genetika berbeda dengan algoritma konvensional karena dimulai dari suatu himpunan awal yang disebut populasi. Algoritma genetika menggunakan dua prinsip dasar dalam sistem biologis, yaitu seleksi terhadap spesies yang ada dan peningkatan keanekaragaman gen dengan operasi genetik.

2.3 Parameter Algoritma Genetika

Skema algoritma genetika menentukan bagaimana jalannya proses algoritma genetika, sehingga pada proses ini juga perlu ditentukan parameter algoritma genetika yang akan digunakan, yaitu sebagai berikut:

2.3.1 Ukuran populasi

Ukuran populasi adalah jumlah kromosom yang ada pada populasi. Kromosom merepresentasikan bentuk dari teka-teki silang. Memilih ukuran populasi yang tepat akan meningkatkan kinerja algoritma genetika. Apabila ukuran populasi terlalu kecil, maka algoritma genetika hanya mempunyai alternatif solusi yang sedikit. Namun, jika ukuran populasi terlalu, besar proses algoritma genetika akan berjalan lambat.

2.3.2 Jumlah generasi

Universitas Sumatera Utara Satu proses rangkaian algoritma genetika dimulai dari proses seleksi, crossover pindah silang, mutasi sampai update generasi. Proses algoritma genetika akan dihentikan apabila jumlah generasi sudah terpenuhi. Solusi yang diambil adalah kromosom dengan nilai fitness nilai kelayakan terbaik dari generasi terakhir.

2.3.3 Crossover probability peluang pindah silang

Peluang crossover PC akan menentukan banyaknya crossover pindah silang yang terjadi. Nilai PC berkisar dari 0 sampai 1. Apabila nilai PC sama dengan 1, maka seluruh kromosom akan mengalami crossover. Apabila PC sama dengan 0, maka tidak akan terjadi proses crossover, atau dengan kata lain kromosom offspring kromosom anak hasil pindah silang akan sama dengan kromosom parent kromosom induk.

2.4 Kromosom dan Pola Representasi

Dalam konsep ilmu biologi dikenal adanya istilah sel. Sel merupakan bagian terkecil yang menyusun organisme. Secara umum organisme terdiri dari sel-sel penyusun. Sebuah sel tersusun dari kumpulan beberapa kromosom. Sebuah kromosom tersusun dari beberapa gen. Gen merupakan sekumpulan DNA Deoxyribo Nucleic Acid. Konsep biologi semacam ini yang diadaptasi pada algoritma genetika. Dalam algoritma genetika, kromosom merupakan alternatif solusi dari sebuah permasalahan. Kromosom dapat disajikan dalam beberapa bentuk sesuai dengan jenis pengkodean yang digunakan.

2.4.1 Pengkodean kromosom

Universitas Sumatera Utara Pengkodean merupakan bagian yang penting dalam menyelesaikan suatu permasalahan dengan algoritma genetika. Pengkodean adalah pengkorversian masalah dalam dunia nyata menjadi bentuk yang dapat diolah dengan menggunakan algoritma genetika. Pengkodean yang tepat sangat menentukan berhasil atau tidaknya proses algoritma genetika dalam menyelesaikan sebuah permasalahan. Pengkodean yang tepat juga akan menentukan tingkat efisiensi komputasi yang digunakan. Ada beberapa jenis pengkodean yang dapat digunakan dalam algoritma genetika, diantaranya pengkodean biner binary encoding dan pengkodean permutasi permutation encoding.

2.4.1.1 Pengkodean biner binary encoding

Pengkodean biner merupakan pengkodean yang sering digunakan dan paling sederhana. Sesuai dengan namanya, pada pengkodean biner nilai gen pada sebuah kromosom hanya terdiri dari 0 dan 1. Contoh kromosom yang menggunakan pengkodean biner ditunjukkan pada gambar 2.2. Kromosom 1 1 0 1 0 1 0 1 0 1 1 Kromosom 2 1 1 0 0 0 0 1 0 1 0 Gambar 2.2 Kromosom dengan pengkodean biner

2.4.1.2 Pengkodean permutasi

Pengkodean permutasi dapat digunakan untuk menyelesaikan ordering problem, seperti traveling salesman problem dan masalah penjadwalan. Dalam pengkodean permutasi urutan atau posisi gen pada kromosom merepresentasikan urutan dari suatu proses. Dalam pengkodean permutasi tidak ada nilai gen yang sama dalam suatu kromosom. Contoh kasus yang dapat diselesaikan dengan pengkodean permutasi Universitas Sumatera Utara adalah TSP traveling salesman problem. Traveling salesman problem merupakan cara bagaimana menentukan rute minimal untuk mengunjungi beberapa tempat atau kota. Jika ada 10 kota yang akan dikunjungi, maka satu kromosom akan mempunyai 10 gen, dimana tiap-tiap gen mewakili satu kota. Posisi atau urutan gen dalam kromosom menentukan urutan kota yang harus dilalui. Contoh kromosomnya dapat dilihat pada gambar 2.3. Kromosom 1 2 6 7 5 1 3 4 9 8 10 Kromosom 2 10 5 4 9 7 1 3 2 6 8 Gambar 2.3 Kromosom dengan pengkodean permutasi Pada kromosom 1 berarti kota yang pertama dikunjungi adalah kota 1, kemudian kota 2 demikian seterusnya sampai kota 10.

2.4.2 Nilai fitness nilai kelayakan dan fungsi objektif fungsi tujuan

Dalam proses evolusi individu yang survive bertahan hidup dari proses seleksi alam akan mempunyai kesempatan untuk bereproduksi kembali. Dengan demikian, kemampuan individu untuk dapat beradaptasi dan bertahan hidup untuk selamat sangat penting. Dalam terminologi algoritma genetika kemampuan suatu individu kromosom untuk bertahan hidup dapat diukur berdasarkan nilai fitness-nya. Semakin baik nilai fitness nilai kelayakan suatu kromosom maka akan semakin baik peluang kromosom tersebut untuk bertahan hidup dan ikut dalam proses reproduksi. Nilai fitness suatu kromosom dapat dihitung dengan menggunakan fungsi objektif.

2.4.3 Seleksi

Universitas Sumatera Utara Proses seleksi bertujuan untuk memilih kromosom yang akan dijadikan sebagai parent kromosom induk pada proses crossover pindah silang. Ada beberapa metode yang dapat dipilih pada proses seleksi, antara lain Roulette Wheel Selection, Rank Selection dan Tournament Selection.

2.4.3.1 Roulette wheel selection

Pada roulette wheel selection, kromosom akan dipilih secara acak ditentukan dengan memperhitungkan nilai kelayakan masing-masing kromosom. Semakin besar nilai kelayakan suatu kromosom, semakin besar pula peluang kromosom tersebut untuk terpilih sebagai parent kromosom induk. Pengkodean roulette wheel dapat dianalogikan seperti permainan roda putar. Pada permainan roda putar, lingkaran roda dibagi menjadi beberapa wilayah. Pada roulette wheel selection, lebar suatu wilayah kromosom ditentukan menurut nilai fitness-nya, semakin besar nilai fitness-nya maka akan semakin besar wilayahnya, dan semakin besar pula peluang kromosom tersebut untuk terpilih. Ilustrasi dari roulette wheel selection dapat dilihat pada gambar 2.4. Gambar 2.4 Roulette wheel selection Proses roulette wheel selection dijelaskan pada algoritma sebagai berikut: 1. [Sum] Jumlahkan semua nilai fitness nilai kelayakan tiap-tiap kromosom pada populasi S. 2. [Select] Generate bilangan random pada interval 0,S-r. Universitas Sumatera Utara 3. [Loop] secara sekuensial dari kromosom pertama, jumlahkan nilai fitness kromosom-s. apabila pada kromosom ke-i sr maka berhenti, maka kromosom i terpilih sebagai kandidat parent. Contoh dari roulett whell selection dapat dilihat pada tabel 2.1. Tabel 2.1 Contoh roulett wheel selection Kromosom Fitness Si Bil.Random r 0, 110 Kromosom Terpilih Kromosom 1 20 20 35 Kromosom 3 Kromosom 2 10 30 90 Kromosom 5 Kromosom 3 30 60 45 Kromosom 3 Kromosom 4 10 70 10 Kromosom 1 Kromosom 5 40 110 70 Kromosom 4 Jumlah S = 110 Pada tabel di atas dapat disimpulkan bahwa ukuran pupulasi adalah 5. Nilai Si merupakan nilai akumulasi dari nilai fitness kromosom ke 1 sampai kromosom ke i. Untuk memilih kromosom yang akan menjadi calon parent maka dibangkitkan bilangan random 0, S. Bilangan random yang dibangkitkan sebanyak 5 buah sesuai dengan ukuran populasinya. Apabila ri Si dan ri Si-1 maka kromosom yang terpilih adalah kromosom ke i. Pada tabel di atas r1 = 35, karena 35 S3 60 dan 35 S2 30 maka kromosom yang terpilih adalah kromosom 3.

2.4.3.2 Rank selection

Pada pengkodean ranking, kromosom pada populasi diranking sesuai dengan nilai fitness-nya, kemudian kromosom diberi nilai fitness nilai kelayakan yang baru sesuai dengan rankingnya. Kromosom dengan ranking terbawah akan mendapat nilai fitness 1, ranking terbawah kedua mendapat nilai fitness 2, demikian seterusnya. Kromosom dengan ranking terbaik akan mendapat nilai fitness N. Gambar 2.5 dan gambar 2.6 Universitas Sumatera Utara masing-masing mengilustrasikan kondisi dari nilai fitness sebelum dan sesudah proses ranking. Gambar 2.5 Nilai fitness sebelum diranking Gambar 2.6 Nilai fitness sesudah diranking Dari gambar 2.6 dapat diketahui setelah diranking, semua kromosom mempunyai kesempatan terpilih karena kromosom dengan nilai terbaik tidak mempunyai perbedaan yang besar dengan kromosom yang lain. Contoh dari rank selection dapat dilihat pada tabel 2.2. Tabel 2.2 Contoh rank selection Kromosom Fitness Awal Ranking Fitness setelah ranking Si Bil.Random r 0, 15 Kromosom Terpilih Kromosom 1 20 3 3 3 5 Kromosom 2 Kromosom 2 10 4 2 5 3 Kromosom 1 Kromosom 3 30 2 4 9 7 Kromosom 3 Kromosom 4 40 1 5 14 8 Kromosom Universitas Sumatera Utara 3 Kromosom 5 5 5 1 15 13 Kromosom 4 Jumlah S = 15 Pada tabel di atas dapat dilihat bahwa rank selection hampir sama dengan roulett whell selection. Hanya saja sebelum kromosom dipilih nilai fitness tiap kromosom diganti sesuai dengan rankingnya. Nilai fitness hasil dari pemeringkatan ini yang kemudian dijadikan acuan pada saat pemilihan kromosom.

2.4.3.3 Tournament selection

Pada tournament selection, setiap satu kromosom kandidat parent dipilih dari proses tournament. Untuk memilih satu calon parent, dipilih dua buah kromosom secara acak. Kemudian nilai fitness kedua kromosom tersebut dibandingkan, kromosom dengan nilai fitness terbaik dipilih sebagai calon parent. Demikian juga untuk memilih calon parent yang lain. Ilustrasi dari tournament selection ditunjukkan pada gambar 2.7. Kromosom 1 Fitness : 10 Kromosom 2 Fitness : 15 Kromosom 3 Fitness : 20 Kromosom 4 Fitness : 40 Kromosom 5 Fitness : 35 Kromosom 6 Fitness : 25 Kromosom 7 Fitness : 30 Kromosom 8 Fitness : 45 Kromosom 2 Kromosom 6 Kromosom 8 Kromosom 5 Kromosom 5 Kromosom 3 Kromosom 8 Kromosom 4 Gambar 2.7 Tournament selection Universitas Sumatera Utara Pada gambar di atas dapat disimpulkan ukuran populasinya adalah 8. Untuk memilih sebuah kromosom mula-mula dipilih sepasang kromosom. Selanjutnya sepasang kromosom yang terpilih dibandingkan nilai fitness-nya. Kromosom dengan nilai fitness yang lebih besar adalah kromosom yang dipilih. Pada contoh di atas kromosom 2 yang dipilih dari proses turnamen antara kromosom 2 dan kromosom 1.

2.4.4 Crossover

Crossover atau pindah silang adalah proses pembentukan kromosom anak offspring. Crossover bertujuan menambah keanekaragaman string dalam satu populasi dengan penyilangan antar-string yang diperoleh dari reproduksi sebelumnya Arhami, 2005, hal:196. Beberapa jenis crossover sebagai berikut:

2.4.4.1 Crossover pengkodean biner

Ada beberapa metode crossover pindah silang dengan pengkodean biner, yaitu sebagai berikut:

2.4.4.1.1 Crossover 1 titik

Proses crossover dilakukan dengan memisahkan suatu string menjadi dua bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu bagian dari string yang lain yang telah dipisahkan dengan cara yang sama. Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111 Keturunan 11001111 Gambar 2.8 Contoh crossover 1 titik Universitas Sumatera Utara

2.4.4.1.2 Crossover 2 titik

Proses crossover pindah silang ini dilakukan dengan memilih dua titik crossover. Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal kromosom sampai titik crossover pertama disalin dari orangtua pertama, bagian dari titik crossover pertama dan kedua disalin dari orangtua kedua, kemudian selebihnya disalin dari orang tua pertama lagi. Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111 Keturunan 11011111 Gambar 2.9 Contoh crossover 2 titik

2.4.4.1.3 Crossover seragam

Crossover pindah silang seragam menghasilkan kromosom keturunan dengan menyalin bit-bit secara acak dari kedua orangtuanya. Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111 Keturunan 11011111 Gambar 2.10 Contoh crossover seragam

2.4.4.1.4 Arithmatic crossover

Kromosom offspring kromosom anak diperoleh dengan melakukan operasi aritmatika terhadap parent induk. Operasi yang dapat dilakukan antara lain AND, OR, XOR dan lain-lain. Contoh dari arithmatic crossover dapat dilihat pada gambar 2.11. Universitas Sumatera Utara Parent-1 10101001 AND Parent-2 10111010 Offspring 10101000 Gambar 2.11 Contoh arithmatic crossover

2.4.4.1.5 Crossover pengkodean permutasi

Jenis crossover pindah silang untuk pengkodean permutasi hanyalah single point crossover. Metode ini dilakukan dengan memilih satu titik crossover p pada kromosom parent kromosom induk secara acak. Gen ke-1 sampai gen ke-p pada parent 1 dikopikan menjadi gen offspring kromosom anak. Sisa gen yang belum terpenuhi diambil dari parent 2 dengan cara sekuensial dari gen ke-1 parent 2 sampai gen terakhir, dengan syarat gen tersebut belum ada dalam kromosom offspring. Contoh dari crossover pada pengkodean permutasi dapat dilihat pada gambar 2.12. Parent 1 2 3 4 1 5 7 6 8 Parent 2 5 1 3 8 6 4 2 7 Offspring1 2 3 4 1 5 8 6 7 Offspring2 5 1 3 8 2 4 7 6 Gambar 2.12 Contoh single point crossover pengkodean permutasi Titik crossover pada gen ke-4. Offspring pertama dihasilkan dari gen 1 sampai gen 4 parent 1, kemudian gen yang berikutnya pada offspring 1 diambil dari parent 2. Gen parent 2 dicek secara sekuensial dari gen 1 sampai gen 8. Apabila gen yang dicek belum ada pada gen yang diambil dari parent 1 maka gen pada parent 2 tersebut diambil untuk menjadi bagian pada offspring 1. Universitas Sumatera Utara

2.4.5 Update generasi

Proses crossover akan menghasilkan kromosom-kromosom baru offspring yang akan menyebabkan ukuran populasi akan bertambah. Untuk menjaga agar ukuran populasi tetap, maka harus ada kromosom yang dibuang. Proses ini dinamakan dengan update generasi. Proses update generasi dapat dilakukan dengan mengurutkan kromosom dalam populasi berdasarkan nilai fitness-nya, selanjutnya diambil n kromosom dengan nilai kromosom terbaik. Kromosom yang terpilih kemudian akan menjadi populasi yang baru.

2.4.6 Langkah algoritma genetika

Algoritma genetika dimulai dengan membuat himpunan solusi kromosom yang disebut dengan populasi. Populasi mula-mula dibuat secara acak. Selanjutnya populasi yang sudah terbentuk akan digunakan untuk membentuk populasi yang baru dengan harapan populasi yang baru lebih baik dari populasi sebelumnya. Solusi-solusi yang ada dalam populasi kemudian dipilih untuk membentuk solusi baru offspring, yang dipilih berdasarkan nilai fitness-nya. Proses ini diulang sampai kondisi yang diinginkan. Berikut ini adalah urutan proses algoritma genetika: 1. Inisialisasi populasi, membuat populasi secara acak. 2. Evaluasi nilai fitness. 3. Membuat populasi baru dengan cara seleksi, crossover dan mutasi 4. Update generasi, ganti populasi yang lama dengan populasi baru. 5. Cek kondisi berhenti, apabila belum terpenuhi maka kembali ke proses 2. Universitas Sumatera Utara Gambar 2.13 Diagram alir algoritma genetika sederhana Mulai Bangkitkan populasi awal Evaluasi fungsi tujuan Apakah kriteria optimasi tercapai? Individu- individu terbaik Seleksi Rekombinasi Mutasi Hasil Selesai Ya Tidak Universitas Sumatera Utara

2.4.7 Konsep algoritma genetika

Siklus perkembangbiakan algoritma genetika diawali dengan pembuatan himpunan solusi secara acak yang dinamakan populasi, dimana di dalamnya terdapat individu- individu yang dinamakan kromosom. Kromosom ini secara lambat laun mengalami iterasi atau perkembangbiakan dalam sebuah generasi. Selama dalam sebuah generasi kromosom-kromosom ini dievaluasi dengan menggunakan fungsi fitness fungsi kelayakan. Untuk menciptakan generasi berikutnya dengan kromosom yang baru dinamakan keturunan atau kromosom anak offspring dapat dilakukan dengan menggabungkan dua kromosom yang telah didapat sebelumnya dengan menggunakan operator pindah silang crossover ataupun dengan memodifikasi sebuah kromosom dengan menggunakn operator mutasi. Sebuah generasi baru sebelum dievaluasi lagi, maka generasi tersebut diseleksi berdasarkan nilai fitness-nya. Dari seleksi ini, kromosom-kromosom yang paling fit kuat mempunyai kemungkinan besar untuk terseleksi. Universitas Sumatera Utara BAB 3 ANALISIS DAN RANCANGAN SISTEM

3.1 Analisis Sistem

Teka-teki silang dengan menggunakan algoritma genetika yang akan dibangun dalam penelitian ini diharapkan dapat menghasilkan teka-teki silang dengan jumlah pertanyaan yang ditentukan sendiri oleh pengguna. Pertanyaan-pertanyaan yang akan ditampilkan pada pengguna tersebut diperoleh dari database secara acak oleh program. Teka-teki silang yang telah dibuat dapat disimpan dalam bentuk sebuah file yang memungkinkan pengguna untuk memainkan kembali teka-teki silang tersebut pada waktu yang lain. Pertanyaan-pertanyaan yang akan digunakan dalam teka-teki silang disimpan dalam database. Database yang berisi pertanyaan-pertanyaan tersebut dapat di-update sehingga koleksi pertanyaan yang tersimpan dapat bertambah. Dengan demikian, pengguna dapat bermain teka-teki silang dengan pertanyaan yang lebih bervariasi. Teka-teki silang yang dibentuk merupakan kumpulan jawaban dari pertanyaan yang digunakan. Jawaban-jawaban pertanyaan disusun sedemikian rupa sehingga saling berpotongan satu sama lain. Untuk membentuk sekumpulan jawaban pertanyaan menjadi teka-teki silang digunakan sebuah papan matriks berdimensi dua. Papan matriks dapat dianalogikan seperti sebuah papan catur. Setiap kotak cell berada pada koordinat x,y. Pada papan matriks ini nantinya jawaban dari pertanyaan akan diletakkan untuk dibentuk menjadi sebuah teka-teki silang. Setiap huruf dari jawaban akan menempati satu cell pada papan matriks. Universitas Sumatera Utara

3.2 Rancangan Sistem