3 munculnya gen yang tidak muncul pada inisialisasi populasi. Populasi awal Random Mutation: mengganti gen yang akan dimutasi dengan nilai acak. Shift Mutation: menggeser nilai gen yang akan dimutasi sebesar nilai tertentu (ε). Populasi baru Evaluasi fitness Reproduksi: mutasi dan pindah-silang Seleksi indvidu Pindah-silang: proses mengombinasikan dua individu untuk memperoleh individuindividu baru yang diharapkan mempunyai nilai fitness yang lebih baik. Pindah-silang Satu Titik: posisi pindahsilang k (k = 1, 2, …, N-1) dengan N (panjang kromosom) diseleksi secara acak. Variable-variable ditukar antarkromosom pada titik tersebut untuk menghasilkan anak. Pindah-silang Banyak Titik: m posisi penyilangan ki (k = 1, 2, …, N-1, i = 1, 2, …, m) dengan N (panjang kromosom) diseleksi secara acak dan tidak diperbolehkan ada posisi yang sama, serta diurutkan naik (Satriyanto 2009). Gambar 2 Siklus algoritme genetika (Goldberg 1989). METODE PENELITIAN Alur penelitian untuk mencari solusi efisien pada permainan tebak angka dapat dilihat pada Gambar 3. Proses Algoritme Genetika Setelah diberikan suatu masalah yang jelas dan juga representasi string sebagai kandidat dari solusi yang dicari, algoritme genetika yang paling sederhana bekerja dengan cara berikut (Gambar 2): 1 Populasi baru akan dibangkitkan secara acak, yang di dalamnya terdiri atas n l-bit buah kromosom yang merupakan kandidat solusi dari problem yang ada. 2 Hitung nilai fitness dari setiap kromosom yang ada di dalam populasi dengan menggunakan fungsi fitness yang telah ditentukan. Pembangkitan deret angka target oleh server Pembangkitan deret angka tebakan secara acak oleh client (komputer) Algoritme genetika Seleksi individu Reproduksi: mutasi dan pindah-silang 3 Pilih beberapa pasang kromosom untuk dijadikan induk berdasarkan nilai fitnessnya. 4 Lakukan proses pindah-silang dan mutasi pada kromosom induk tersebut hingga populasi baru yang berpotensi memiliki nilai fitness lebih tinggi tercipta. 5 Gantikan populasi yang ada dengan populasi yang baru terbentuk tadi. Lakukan kembali penghitungan nilai fitness dari setiap kromosom dengan menggunakan fungsi fitness yang telah ditentukan (langkah no.2) hingga solusi optimal berhasil ditemukan (Melanie 1996). Deret angka tebakan baru Target belum ditemukan Evaluasi fitness Target ditemukan Evaluasi sistem Gambar 3 Alur metode penelitian. 4 Fungsi fitness xc + ym Representasi Sebelum proses pencarian solusi dilakukan, kondisi yang ada pada permainan harus terlebih dahulu direpresentasikan ke dalam algoritme genetika. Hasil representasinya adalah: Setiap digit angka yang ada pada deret angka tebakan dan deret angka target dianggap sebagai sebuah gen yang bertipe integer. Contoh: 1234. x: Jumlah variable c (x = 0, 1, 2, 3, 4) y: Jumlah variable m (y = 0, 1, 2, 3, 4) Setiap variable akan diberi bobot masingmasing untuk mendapatkan nilai real-nya. Jika bobot c = 10, bobot m = 5, dan hasil penebakan adalah 2c 1m, nilai fitness-nya: x = 2; y = 1; Nilai fitness = 2(10) + 1(5) = 20 + 5 = 25 Kumpulan gen tersebut akan membentuk suatu kromosom, yaitu kumpulan deret angka tebakan yang akan dimanipulasi sebelum dicocokkan dengan deret angka target. Jika nilai fitness belum mencapai jumlah 40 (4c 0m), yang berarti target belum berhasil ditemukan, proses algoritme genetika pun dilakukan berdasarkan hasil yang didapat dari iterasi penebakan sebelumnya. Proses manipulasi sejumlah kromosom akan menghasilkan sebuah individu, yaitu deret angka tebakan yang siap dicocokkan dengan deret angka target. Seleksi Individu Setiap individu yang tercipta akan dianggap sebagai satu generasi, yang berarti juga satu iterasi penebakan. Deret Angka Target Berdasarkan Gambar 3, langkah pertama yang harus dilakukan dalam penelitian ini adalah pembangkitan deret angka target yang akan menjadi acuan berhasil atau tidaknya sebuah penebakan yang dihasilkan dari algoritme genetika. Deret angka yang terdiri dari empat digit angka dan mengacu pada aturan permainan tersebut akan disimpan oleh codemaker dan nantinya akan dicocokkan dengan deret angka tebakan dari codebreaker. Deret Angka Tebakan Proses penebakan pun dilakukan. Pada iterasi pertama, komputer selaku codebreaker akan membangkitkan deret angka tebakan secara acak. Hal ini dilakukan karena tidak tersedianya informasi apapun yang bisa membedakan besar/kecilnya nilai fitness antara sekumpulan deret angka yang mungkin dibangkitkan. Proses algoritme genetika itu sendiri akan mulai dijalankan pada iterasi penebakan kedua dan seterusnya. Evaluasi Fitness Deret angka tebakan yang dibangkitkan secara acak tersebut dicocokkan dengan deret angka target yang disimpan oleh codemaker. Output yang dihasilkan direpresentasikan melalui variable c (correct) dan m (misplace). Tahap selanjutnya pada algoritme genetika adalah seleksi individu. Proses tersebut dilakukan dengan cara memilih sejumlah deret angka yang ada di dalam variable history, yang didapatkan dari iterasi penebakan sebelumnya berdasarkan besar/kecilnya nilai fitness. Metode seleksi yang digunakan pada penelitian ini adalah metode Mesin Roulette, yang melibatkan nilai fitness dan probabilitas. Setelah dihitung nilai fitness masing-masing individu dan total keseluruhannya, didapatkan probabilitas dan jatah per individu (Gambar 4). Contoh: Probabilitas: Individu 1 = 10% Individu 2 = 20% Individu 3 = 30% Individu 4 = 40% Jatah per individu: Individu 1 1 – 10 Individu 2 11 – 30 Individu 3 31 – 60 Individu 4 61 – 100 Individu 2 11 – 30 Individu 3 31 – 60 20% 30% 10% Individu 1 1 – 10 40% Individu 4 61 – 100 Gambar 4 Probabilitas nilai fitness. 5 Selanjutnya, bangkitkan bilangan acak antara 1 – 100. Jika didapatkan bilangan seperti berikut: 69, 18, 86, dan 41, individu yang terpilih adalah individu 4, individu 2, dan individu 3. 69 Individu 4 (61 – 100) 18 Individu 2 (11 – 30) 86 Individu 4 (61 – 100) 41 Individu 3 (31 – 60) Mutasi Deret angka yang terpilih tadi akan diproses lebih lanjut dengan operator-operator pada algoritme genetika hingga didapatkan sebuah deret angka baru yang siap untuk dicocokkan kembali dengan deret angka target. Operator algoritme genetika yang pertama yaitu mutasi. Gen-gen pada individu terpilih akan diubah nilainya dengan bilangan acak (Random Mutation). Deret angka induk: 1 2 3 4 Deret angka anak: 1 6 3 4 Jika deret angka baru keluar dari ruang solusi (memiliki angka yang sama), dibutuhkan teknik mutasi lainnya (Basuki 2003). Contoh: 1 3 3 4 Proses ini dilakukan berdasarkan peluang mutasi yang ditetapkan sebelumnya. Jika peluang acak yang dibangkitkan oleh sistem berjumlah lebih kecil dari peluang mutasi, proses mutasi pun dilakukan. Pindah-Silang Operator algoritme genetika yang kedua yaitu pindah-silang. Gen-gen yang bersesuaian pada individu terpilih (induk) akan saling ditukar pada satu digit tertentu (pindah-silang satu titik) untuk mendapatkan individu baru (anak). Deret angka induk: 1 2 3 4 5 6 7 8 Deret angka anak: 1 2 7 4 5 6 3 8 Proses ini dilakukan berdasarkan peluang pindah-silang yang ditetapkan sebelumnya. Jika peluang acak yang dibangkitkan oleh sistem berjumlah lebih kecil dari peluang pindahsilang, proses pindah-silang pun dilakukan. Rule Beberapa rule dibangun untuk menunjang kinerja dari algoritme genetika. Rule-rule tersebut akan berfungsi pada setiap perubahan yang terjadi dari deret-deret yang ada pada history dan berusaha memprediksi angka-angka mana saja yang telah tepat letaknya ataupun yang tidak ada dalam deret target sehingga angka-angka tersebut dapat dihilangkan dan memperkecil ruang pencarian. Beberapa rule yang dibangun, yaitu: Jika hasil penebakan adalah 0c 0m, seluruh angka pada deret tebakan tersebut tidak terdapat pada deret target dan harus dihilangkan dari ruang pencarian. Jika nilai fitness deret anak sama dengan induk dan m bernilai 0, hilangkan angka sebelum dan sesudah perubahan dari ruang pencarian karena kedua angka tersebut tidak memberikan pengaruh apapun pada deret. Jika c bertambah 1 dari tebakan sebelumnya, hilangkan angka sebelum perubahan dari ruang pencarian dan tandai digit letak angka tersebut. Jika c berkurang 1 dan m tetap, hilangkan angka sesudah perubahan dari ruang pencarian dan tandai digit letak angka tersebut. Jika c berkurang 1 dan m bertambah 1, tandai digit letak angka tersebut. Jika c tetap dan m berkurang 1, hilangkan angka sesudah perubahan dari ruang pencarian. Kondisi Stop Program akan berhenti jika kondisi 4c 0m telah tercapai atau iterasi penebakan telah mencapai 50 kali. Evaluasi Sistem Setelah terbentuk, sistem pun lalu dievaluasi menggunakan satu buah soal yang dibangkitkan secara acak. Kinerjanya akan dinilai berdasarkan pengaruh nilai fitness (jumlah variable c dan m) dari deret tebakan awal dan juga dibandingkan dengan worst case dari jumlah penebakan.