Penerapan Algoritme Genetika dalam Sistem Permainan Tebak Angka

PENERAPAN ALGORITME GENETIKA DALAM
SISTEM PERMAINAN TEBAK ANGKA

HERMAN GUSTI ANUGRAH

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

PENERAPAN ALGORITME GENETIKA DALAM
SISTEM PERMAINAN TEBAK ANGKA

HERMAN GUSTI ANUGRAH

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada Program Studi Ilmu Komputer


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

ABSTRACT
HERMAN GUSTI ANUGRAH. Application of Genetic Algorithms in the Number Guessing Game
System. Supervised by YENI HERDIYENI.
The number guessing game is a modified game of mastermind created by Mordecai Meirowitz in
1970. The goal of the game is to guess a hidden sequence of numbers stored by others (human or
computer) based on values obtained at each guess iteration. In this study, the game is applied into the
system by using genetic algorithms, a method that has been successfully utilized to implement the
mastermind game on the computer and get an effective solution for the game. Genetic algorithms
work through a process of natural selection or commonly known as the evolutionary process, which
will continue running until the system finds the optimal 4-digit series of numbers. The system is
designed in order to guess those hidden numbers with minimal iterations using c++ programming
language. The output of the program shows that the performance is determined by the first guess
iteration.
Keywords: genetic algorithms, number guessing game.


Penguji:
1 Ir. Julio Adisantoso, M.Kom.
2 Annisa, S.Kom., M.Kom.

Judul Skripsi : Penerapan Algoritme Genetika dalam Sistem Permainan Tebak Angka
Nama
: Herman Gusti Anugrah
NRP
: G64086036

Menyetujui:

Pembimbing

Dr. Yeni Herdiyeni, S.Si., M.Kom.
NIP. 19750923 200012 2 001

Mengetahui:
Ketua Departemen Ilmu Komputer


Dr. Ir. Agus Buono, M.Si., M.Kom.
NIP. 19660721 99302 1 001

Tanggal Lulus:

RIWAYAT HIDUP
Penulis dilahirkan di Bogor, pada tanggal 13 Oktober 1986, sebagai anak kedua dari tiga
bersaudara dari pasangan Bapak Tonny Wahyudi dan Ibu Dwi Wiworo Mulyati. Penulis
menyelesaikan pendidikan sekolah menengah umum di SMAN 3 Bogor pada tahun 2004 dan
menyelesaikan pendidikan Program Studi Diploma 3 Informatika, Institut Pertanian Bogor pada tahun
2007. Pada tahun 2008, penulis diterima bekerja di salah satu perusahaan swasta di Bogor dan
melanjutkan pendidikan ke jenjang Strata I Institut Pertanian Bogor jurusan Ilmu Komputer pada
tahun yang sama.

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah Subhanahu wa ta’ala atas segala curahan rahmat
dan karunia-Nya sehingga tulisan akhir ini berhasil diselesaikan. Selawat serta salam tak lupa selalu
tercurahkan kepada baginda besar Nabi Muhammad shalallahu ‘alaihi wa salam, keluarganya, para
sahabat, dan para pengikutnya hingga akhir zaman.

Terima kasih penulis ucapkan kepada pihak yang telah membantu dalam penyelesaian tulisan
akhir ini, antara lain:
 Kedua orang tua penulis, kakak dan adik penulis, serta seluruh keluarga atas doa, cinta, restu,
kasih sayang, dukungan, nasihat, dan perhatian yang diberikan kepada penulis.
 Ibu Dr. Yeni Herdiyeni, S.Si., M.Kom. selaku dosen pembimbing.
 Bapak Ir. Julio Adisantoso, M.Kom. dan Ibu Annisa, S.Kom., M.Kom. selaku dosen penguji.
 Bapak Mushthofa S.Kom., M.Sc. yang telah bersedia meluangkan waktunya untuk berbagi ide
tentang tulisan akhir ini.
 Teman-teman Alih Jenis Ilkom angkatan 3, atas bantuan, waktu, dan pengalaman yang tak
terlupakan.
Semoga tulisan akhir ini dapat bermanfaat, amin.

Bogor, Juli 2012

Herman Gusti Anugrah

DAFTAR ISI
Halaman
DAFTAR GAMBAR ............................................................................................................................. vi
PENDAHULUAN

Latar Belakang .................................................................................................................................. 1
Tujuan ............................................................................................................................................... 1
Ruang Lingkup .................................................................................................................................. 1
Manfaat ............................................................................................................................................. 1
TINJAUAN PUSTAKA
Permainan Tebak Angka ................................................................................................................... 1
Algoritme Genetika ........................................................................................................................... 2
Proses Algoritme Genetika................................................................................................................ 3
METODE PENELITIAN
Representasi ...................................................................................................................................... 4
Deret Angka Target ........................................................................................................................... 4
Deret Angka Tebakan ....................................................................................................................... 4
Evaluasi Fitness ................................................................................................................................ 4
Seleksi Individu ................................................................................................................................. 4
Mutasi ............................................................................................................................................... 5
Pindah-Silang .................................................................................................................................... 5
Rule ................................................................................................................................................... 5
Kondisi Stop ...................................................................................................................................... 5
Evaluasi Sistem ................................................................................................................................. 5
HASIL DAN PEMBAHASAN

Deret Angka Target ........................................................................................................................... 6
Deret Angka Tebakan ....................................................................................................................... 6
Evaluasi Fitness ................................................................................................................................ 6
Mutasi ............................................................................................................................................... 7
Pindah-Silang .................................................................................................................................... 7
Evaluasi Sistem ................................................................................................................................. 7
KESIMPULAN DAN SARAN
Kesimpulan ....................................................................................................................................... 7
Saran ................................................................................................................................................. 7
DAFTAR PUSTAKA ............................................................................................................................. 7
LAMPIRAN ........................................................................................................................................... 8

v

DAFTAR GAMBAR
Halaman
1
2
3
4

5

Permainan tebak angka ....................................................................................................................... 1
Siklus algoritme genetika (Goldberg 1989) ........................................................................................ 3
Alur metode penelitian ........................................................................................................................ 3
Probabilitas nilai fitness ...................................................................................................................... 4
Grafik uji pengaruh nilai fitness .......................................................................................................... 6

vi

1

PENDAHULUAN
Latar Belakang
Permainan
komputer sangat banyak
ragamnya dan terus berkembang. Salah satu
jenisnya adalah permainan yang bersifat
kompetisi antara komputer dan manusia. Hal ini
tentu membutuhkan suatu penelitian agar

komputer dapat memiliki kecerdasan yang
menyerupai manusia dan menyelesaikan
masalah yang ada pada permainan layaknya
manusia.
Penelitian
ini
membahas
proses
pembangunan sebuah sistem permainan tebak
angka otomatis. Permainan tebak angka adalah
suatu permainan menebak deret angka
tersembunyi yang disimpan oleh pihak lain
(manusia ataupun komputer) berdasarkan nilainilai yang didapatkan di setiap iterasi
penebakan. Permainan ini merupakan hasil
modifikasi dari permainan yang telah ada
sebelumnya, yaitu permainan mastermind yang
diciptakan oleh Mordecai Meirowitz pada tahun
1970 (Marcel 2009). Pada awal permainan
tebak angka, pihak lawan akan menyimpan satu
deret angka berjumlah n digit, lalu pemain akan

mencoba menebak deret angka tersebut,
mendapatkan hasilnya, membangkitkan deret
angka untuk penebakan selanjutnya berdasarkan
hasil yang didapat, dan melakukan penebakan
kembali hingga semua digit angka tersembunyi
tersebut berhasil ditebak (tebakangka.com).
Pada penelitian sebelumnya, telah dibahas
penerapan algoritme genetika pada permainan
mastermind
dan
menghasilkan
sebuah
kesimpulan bahwa algoritme genetika hanya
membutuhkan sedikit iterasi penebakan untuk
mendapatkan solusi yang tepat pada permainan
tersebut (Berghman et al. 2009). Oleh karena
itu, pada penelitian ini, akan dilakukan
percobaan untuk menerapkan algoritme
genetika pada permainan tebak angka yang
memiliki jenis dan aturan yang menyerupai

permainan mastermind. Setiap digit dari deret
angka akan dipandang sebagai suatu gen pada
algoritme genetika dan selanjutnya diproses
hingga mendapatkan hasil yang diinginkan.
Tujuan
Tujuan
dari
penelitian
ini
adalah
menerapkan algoritme genetika di dalam sistem
permainan tebak angka.
Ruang Lingkup
Ruang lingkup penelitian ini meliputi:

 Jumlah digit angka yang digunakan pada
penelitian ini adalah empat digit.
 Faktor keberhasilan diukur dari jumlah
iterasi penebakan yang seminimal mungkin,
bukan dari kecepatan proses penebakannya.

Manfaat
Hasil dari penelitian ini diharapkan dapat
berguna untuk mengukur kinerja algoritme
genetika di dalam permainan tebak angka dan
juga mengembangkan fitur dari permainan
tebak angka, yaitu fitur penebakan dengan
posisi penebak angka adalah komputer (sistem).

TINJAUAN PUSTAKA
Permainan Tebak Angka
Permainan ini dilakukan antara dua pihak,
yaitu pihak yang menyimpan angka target
(codemaker) dan pihak yang melakukan proses
penebakan (codebreaker). Ilustrasi permainan
dapat dilihat pada Gambar 1.
Output proses penebakan

Submit angka tebakan
Penebak
(codebreaker)

Penyimpan angka
(codemaker)

Gambar 1 Permainan tebak angka.
Di dalam prosesnya, terdapat beberapa
aturan yang berlaku, yaitu:
 Deret angka n-digit (n = 1, 2,…, 10) yang
disimpan oleh pihak lawan terdiri atas D =
(d1, d2,…, dn), d = 0, 1,…, 9. Setiap digit
angka dari deret tersebut tidak boleh ada
yang berulang/sama antara satu dengan
lainnya. Jadi, jumlah kemungkinan deret
angka target (worst case jumlah penebakan)
adalah permutasi 4 dari 10 angka:
10!

P(10,4) = (10-4)! =

10!
6!

= 7 x 8 x 9 x 10

= 5040 kemungkinan
 Satu kali pencocokan deret angka tebakan
dengan deret angka target dihitung sebagai
satu iterasi penebakan.
 Hasil dari setiap iterasi penebakan
direpresentasikan melalui dua buah variable
yang juga berfungsi untuk menentukan
besarnya nilai fitness bagi deret angka
tebakan yang ada. Variable tersebut adalah:

2

1 c (correct): Variable ini akan bertambah
pada hasil jika salah satu digit pada deret
angka tebakan sama dengan yang ada
pada deret angka target dan terletak pada
posisi yang sama pula.

didapatkan suatu susunan kromosom yang
terbaik, yang merepresentasikan kemungkinan
solusi dari persoalan yang ada (Melanie 1996).

2 m (misplace): Variable ini akan
bertambah pada hasil jika salah satu digit
pada deret angka tebakan sama dengan
yang ada pada deret angka target, tetapi
terletak pada posisi yang berbeda (Tabel
1).

 Gen: sebuah nilai yang menyatakan satuan
dasar yang membentuk suatu arti tertentu
dalam satu kesatuan gen yang dinamakan
kromosom. Dalam algoritme genetika, gen
ini bisa berupa nilai biner, float, integer,
karakter, maupun kombinatorial.

Contoh:
Target
 5678
Tebakan  5689

 Alel: nilai dari gen.
 Kromosom: gabungan
membentuk nilai tertentu.

Tabel 1 Contoh verifikasi deret (n = 4)
Angka
tebakan
5
6
8
9

Digit posisi
Tebakan Target
1
1
2
2
3
4
4
Total hasil

Beberapa definisi penting
algoritme genetika, yaitu:

Hasil
c
c
m
2c 1m

 Permainan akan berakhir ketika hasil yang
diharapkan telah didapat, yaitu nc 0m, yang
berarti n angka yang ada pada deret tebakan
tersedia dan terletak pada digit yang sama
dengan deret angka target.
Algoritme Genetika
Algoritme genetika ditemukan oleh John
Holland pada tahun 1960-an. Pada tahun yang
sama, algoritme tersebut dikembangkan
bersama dengan murid dan rekannya hingga
tahun 1970-an. Berbeda dengan strategi evolusi
dan pemrograman evolusioner, tujuan awal dari
pengembangan algoritme tersebut sebenarnya
bukan untuk menyelesaikan masalah tertentu,
tetapi lebih kepada mempelajari fenomena
proses adaptasi yang terjadi di alam dan
mencoba mencari cara untuk menerapkannya
pada sistem komputer. Seiring dengan
banyaknya interaksi dari para peneliti tentang
metode dan pendekatan evolusioner, istilah
“algoritme genetika” pun menjadi umum
digunakan.
Algoritme genetika memanfaatkan proses
seleksi alamiah atau yang biasa dikenal dengan
proses evolusi. Proses ini melibatkan perubahan
gen pada suatu individu melalui proses
perkembang-biakan
yang
bertujuan
menyesuaikan
diri
dengan
lingkungan
hidupnya. Proses evolusi yang terjadi pada gengen tersebut akan terus berjalan hingga

menyangkut

gen-gen

yang

 Individu: menyatakan satu nilai atau
keadaan yang menyatakan salah satu solusi
yang mungkin dari permasalahan yang
diangkat.
 Populasi: merupakan sekumpulan individu
yang akan diproses bersama dalam satu
siklus proses evolusi.
 Generasi: menyatakan satu siklus proses
evolusi atau satu iterasi di dalam algoritme
genetika.
 Nilai fitness: nilai yang menyatakan baik
tidaknya suatu solusi (individu).
 Seleksi: proses yang digunakan untuk
memilih individu-individu yang akan
terlibat dalam proses pindah-silang dan
mutasi.
Seleksi dengan mesin Roulette: metode ini
merupakan metode seleksi yang paling
sederhana. Cara kerjanya sebagai berikut:
1 Hitung nilai
individu.

fitness

masing-masing

2 Hitung total nilai fitness semua individu.
3 Hitung probabilitas dari tiap individu.
4 Dari probabilitas tersebut, hitung jatah
masing-masing individu pada selang
angka 1 – 100.
5 Bangkitkan bilangan acak antara 1 – 100.
6 Dari bilangan acak yang dihasilkan,
tentukan individu mana yang terpilih
dalam proses seleksi.
 Mutasi: operator ini berperan untuk
menggantikan gen yang hilang dari populasi
akibat proses seleksi yang memungkinkan

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.

6

HASIL DAN PEMBAHASAN

Deret Angka Tebakan
Pada iterasi pertama, komputer selaku
codebreaker akan membangkitkan deret angka
tebakan secara acak. Pada tahap ini, dilakukan
sebuah pengujian untuk mengetahui pengaruh
nilai fitness deret tebakan awal terhadap
banyaknya iterasi penebakan.
Pengujian ini dilakukan terhadap tiga belas
kemungkinan kondisi jumlah variable hasil
penebakan. Pada setiap kondisi, dibangkitkan
lima deret angka berbeda, lalu dijadikan sebagai
deret tebakan pada iterasi pertama. Penebakan
dilakukan sebanyak sepuluh kali untuk tiap
deret dan dicari rata-ratanya. Dari kelima deret
tebakan di masing-masing kondisi tadi, dicari
rata-ratanya kembali (Tabel 2).
Tabel 2 Hasil uji pengaruh nilai fitness (dengan
pembulatan)
Kemungkinan hasil
penebakan iterasi ke-1
0c 0m
0c 1m
0c 2m
0c 3m
0c 4m
1c 0m
1c 1m
1c 2m
1c 3m
2c 0m
2c 1m
2c 2m
3c 0m

Rata-rata
jumlah iterasi
keseluruhan
11
24
20
22
13
12
11
11
17
7
10
25
4

Proses pengujian ini membuktikan bahwa
nilai fitness dari deret tebakan awal (iterasi
pertama)
mempengaruhi
jumlah
iterasi
penebakan keseluruhan. Pada Gambar 5, terlihat
bahwa semakin besar jumlah c dan m yang
didapat pada iterasi pertama, semakin sedikit
jumlah iterasi keseluruhan yang dibutuhkan
untuk menebak deret target.

30
25
20
15
10
5
0
0c 0m
0c 1m
0c 2m
0c 3m
0c 4m
1c 0m
1c 1m
1c 2m
1c 3m
2c 0m
2c 1m
2c 2m
3c 0m

Deret angka target dibangkitkan secara acak
oleh codemaker sebanyak satu buah, yaitu deret
angka 3714. Deret angka tersebut akan
dijadikan sebagai soal uji coba program untuk
pengujian pengaruh nilai fitness deret tebakan
awal terhadap banyaknya iterasi penebakan.

Jumlah Iterasi

Deret Angka Target

Kemungkinan hasil penebakan iterasi ke-1
(nilai fitness)

Gambar 5 Grafik uji pengaruh nilai fitness.
Terdapat dua kasus yang tidak sesuai dengan
pola grafik. Kasus yang pertama, yaitu pada
kondisi 0c 0m yang memiliki jumlah iterasi
keseluruhan yang lebih sedikit dibandingkan
dengan kondisi 0c 1m (yang notabene memiliki
nilai fitness lebih besar dari kondisi 0c 0m). Hal
ini terjadi karena pada kondisi 0c 1m, sistem
tidak memperoleh informasi yang cukup berarti.
Sistem hanya memperoleh informasi bahwa
terdapat hasil 1m tanpa mengetahui hasil
tersebut diberikan untuk digit yang mana. Pada
kondisi 0c 0m, sistem memperoleh informasi
bahwa seluruh digit angka yang ada pada deret
tebakan tersebut salah (tidak terdapat pada deret
target) sehingga sistem langsung menandai
angka-angka tersebut dan otomatis memperkecil
ruang pencarian berikutnya.
Kasus yang kedua yaitu tidak tertebaknya
deret angka target hingga batas iterasi telah
tercapai (50) ataupun iterasi yang dibutuhkan
sangat tinggi. Kasus tersebut terjadi pada
beberapa deret tebakan di kondisi tertentu,
yaitu: 2471 (kondisi 0c 3m), 3471 (kondisi 1c
3m), 3417 (kondisi 2c 2m), dan 3741 (kondisi
2c 2m).
Evaluasi Fitness
Proses ini menggunakan sebuah fungsi
fitness yang mengandung dua variable yang
perlu ditetapkan bobotnya, yaitu c dan m.
Variable inilah yang nantinya akan menentukan
besar kecilnya nilai fitness suatu deret tebakan
serta peluang terpilihnya deret tersebut dalam
proses seleksi.
Fungsi fitness  xc + ym
Target yang akan dicapai oleh program yaitu
4c 0m. Oleh karena itu, c harus memiliki bobot
yang lebih besar daripada m agar deret tebakan
pada history yang mengandung hasil c dapat
terseleksi dengan mudah.

7

Berdasarkan hasil percobaan, didapatkan
bobot untuk c sebesar 40 dan bobot untuk m
sebesar 15 (selisih 25). Jika selisih nilai kedua
variable tersebut lebih besar, deret pada history
yang memiliki hasil m akan berpeluang sangat
kecil untuk terpilih dalam proses seleksi.
Sebaliknya, jika selisih nilainya lebih kecil
(yang berarti bobot c dan m hampir sama besar),
deret pada history yang memiliki hasil c akan
semakin sulit terpilih dalam proses seleksi dan
mengakibatkan kondisi 4c 0m akan semakin
lama tercapai.
Mutasi
Jenis mutasi yang dipakai yaitu Random
Mutation. Peluang mutasi ditetapkan sebesar 0.1
agar variable c dan m yang telah didapatkan
sebelumnya tidak mudah hilang ataupun
tergantikan (konvergensi mudah didapatkan).
Pindah-Silang
Jenis pindah-silang yang dipakai yaitu
pindah-silang satu titik. Hal ini dilakukan agar
informasi yang muncul pada saat terjadinya
perubahan deret dapat lebih mudah dilihat.
Peluang pindah-silang ditetapkan sebesar
0.85 agar deret-deret pada history yang
memiliki nilai fitness tinggi dapat dengan
mudah digabungkan dan membentuk deret anak
baru yang diharapkan mempunyai nilai fitness
yang lebih tinggi dari deret induknya.
Evaluasi Sistem
Berdasarkan hasil uji pengaruh nilai fitness
yang telah dilakukan sebelumnya, jumlah ratarata iterasi keseluruhan yang diperlukan sistem
untuk menebak deret angka target adalah 4 kali
untuk batas bawah dan 25 kali untuk batas atas.
Jika dibandingkan dengan worst case jumlah
penebakan sebesar 5040, jumlah rata-rata iterasi
keseluruhan tadi berada sangat jauh di
bawahnya. Hal ini membuktikan bahwa
algoritme genetika yang diterapkan di dalam
permainan tebak angka ini cukup efektif.

KESIMPULAN DAN SARAN
Kesimpulan
Dari beberapa percobaan yang dilakukan
terhadap deret angka, diperoleh kesimpulan
berikut:
 Algoritme genetika cukup efektif untuk
diterapkan pada kasus optimasi permainan
tebak angka.

 Hasil dari deret tebakan pada iterasi pertama
mempengaruhi kinerja penebakan sistem
dan menentukan jumlah iterasi keseluruhan
yang dibutuhkan sistem untuk mencapai
solusi yang tepat.
 Kinerja algoritme genetika cukup terbantu
dengan dibangunnya beberapa rule.
Saran
Hal yang dapat dilakukan pada penelitian
selanjutnya yaitu memperlihatkan kinerja
penebakan sistem pada deret di atas empat digit
ataupun menyertakan data waktu penyelesaian
permainan sebagai faktor penilaian lainnya.

DAFTAR PUSTAKA
Basuki A. 2003. Strategi Menggunakan
Algoritma Genetika. http://lecturer.eepisits.edu/~basuki/lecture/StrategiAlgoritmaGe
netika.pdf [29 Apr 2010].
Berghman L, Goossens D, Leus R. 2009.
Efficient Solutions for Mastermind Using
Genetic Algorithms. Leuven: K. U. Leuven
Press.
Goldberg DE. 1989. Genetic Algorithms in
Search,
Optimization,
and
Machine
Learning. Boston: Addison−Wesley.
Marcel J. 2009. Aplikasi Algoritma Genetik
pada
Permainan
Mastermind.
http://informatika.stei.itb.ac.id/~rinaldi.muni
r/Stmik/2009-2010/Makalah2009/Makalah
IF3051-2009-030.pdf [12 Okt 2011].
Melanie M. 1996. An Introduction to Genetic
Algorithms. Cambridge: MIT Press.
Satriyanto E. 2009. Bab 7 Algoritma Genetika.
http://lecturer.eepis-its.edu/~kangedi/materi
kuliah/Kecerdasan Buatan/Bab 7 Algoritma
Genetika.pdf [22 Jun 2010].

LAMPIRAN

9

Lampiran 1 Hasil uji pengaruh nilai fitness
Kemung
kinan
hasil

0c 0m

Jumlah iterasi percobaan keDeret
1

2

3

4

5

6

7

8

9

10

2095

20

16

16

18

15

15

16

17

16

15

16

6908

11

10

10

10

11

9

10

9

12

10

10

8562

9

9

10

10

13

10

9

9

11

10

10

5028

10

14

13

13

12

13

17

12

11

15

13

9856

6

6

6

7

6

7

5

9

5

6

6

Jumlah iterasi keseluruhan

0c 1m

11

7580

25

25

27

26

29

27

32

26

29

27

27

5961

19

23

24

19

27

24

23

23

26

24

23

2603

17

16

23

19

18

19

20

20

19

22

19

8249

22

31

27

25

27

27

29

28

26

28

27

9426

19

24

26

23

26

24

24

20

28

27

24

Jumlah iterasi keseluruhan

0c 2m

24

4158

23

21

24

26

24

25

22

25

24

27

24

6351

17

18

15

17

16

16

20

17

16

18

17

8472

22

21

18

20

18

23

20

22

18

20

20

1386

20

22

15

17

18

20

17

18

16

18

18

7230

22

21

22

24

18

20

21

23

19

21

21

Jumlah iterasi keseluruhan

0c 3m

20

1573

21

23

22

21

18

21

20

25

23

17

21

4138

15

17

18

23

17

14

19

17

16

18

17

2471

15

18

19

50

50

50

50

50

50

50

40

7340

10

14

11

15

17

14

13

17

15

14

14

1463

23

19

20

18

21

23

18

20

22

19

20

Jumlah iterasi keseluruhan

0c 4m

Ratarata
(dibulat
kan)

22

4137

11

17

14

15

18

13

15

17

14

18

15

1347

15

16

16

14

11

18

14

15

13

20

15

7431

10

11

15

10

12

11

13

9

11

12

11

4371

9

15

11

18

14

17

13

15

17

11

14

1437

10

13

12

15

11

12

10

16

11

12

12

Jumlah iterasi keseluruhan

13

10

Lanjutan
Kemung
kinan
hasil

1c 0m

Jumlah iterasi percobaan keDeret
1

2

3

4

5

6

7

8

9

10

2709

9

15

11

8

12

14

10

9

12

14

11

8624

9

8

11

10

15

11

10

9

10

7

10

3950

12

11

10

15

12

14

10

15

13

10

12

6815

21

23

17

15

18

20

17

18

15

20

18

9762

9

13

15

9

11

10

13

9

12

11

11

Jumlah iterasi keseluruhan

1c 1m

12

7084

7

6

9

12

8

9

13

10

8

10

9

5316

15

13

9

12

10

9

13

15

12

13

12

3942

18

21

15

13

15

18

15

16

14

18

16

8701

6

9

6

12

9

11

8

12

10

9

9

6394

14

12

11

8

11

10

14

8

17

9

11

Jumlah iterasi keseluruhan

1c 2m

11

4917

13

14

11

10

12

15

10

15

10

12

12

1738

6

8

10

9

8

12

11

9

8

11

9

3461

12

10

11

12

11

16

13

12

15

10

12

5374

12

11

10

11

15

11

14

8

10

12

11

4703

11

12

10

17

13

15

11

12

9

12

12

Jumlah iterasi keseluruhan

1c 3m

11

7134

8

13

6

10

11

9

7

9

12

7

9

3471

50

50

50

50

50

50

50

50

50

50

50

4317

11

7

9

11

8

10

13

9

8

6

9

1743

10

15

7

10

12

9

10

9

11

7

10

1374

14

9

10

12

7

9

7

10

8

6

9

Jumlah iterasi keseluruhan

2c 0m

Ratarata
(dibulat
kan)

17

3815

4

5

5

4

5

6

5

4

5

7

5

2719

4

4

5

3

6

4

3

5

4

4

4

3024

10

8

11

10

9

7

10

9

15

11

10

9764

5

8

5

11

8

10

7

11

9

8

8

3610

5

6

9

5

6

8

6

5

7

6

6

Jumlah iterasi keseluruhan

7

11

Lanjutan
Kemung
kinan
hasil

2c 1m

Jumlah iterasi percobaan keDeret
1

2

3

4

5

6

7

8

9

10

4719

8

7

10

7

12

16

10

9

12

9

10

3751

6

8

11

8

12

10

7

9

5

6

8

3416

15

13

16

10

13

11

10

12

10

12

12

1704

6

5

7

5

10

14

8

7

10

8

8

3817

13

12

10

15

12

11

17

12

8

13

12

Jumlah iterasi keseluruhan

2c 2m

10

3417

50

50

50

50

50

50

50

50

50

50

50

3741

50

50

50

50

50

50

50

50

50

50

50

7314

8

8

8

8

8

8

8

8

8

8

8

1734

8

8

8

8

8

8

8

8

8

8

8

4713

8

6

8

8

9

8

8

7

10

8

8

Jumlah iterasi keseluruhan

3c 0m

Ratarata
(dibulat
kan)

25

3704

4

4

3

4

3

5

4

3

6

4

4

3814

3

3

4

3

2

3

3

3

4

3

3

2714

6

5

5

7

5

3

6

5

4

5

5

3794

5

4

3

4

6

4

5

3

4

3

4

3715

6

7

6

7

6

5

9

6

5

6

6

Jumlah iterasi keseluruhan

4

ABSTRACT
HERMAN GUSTI ANUGRAH. Application of Genetic Algorithms in the Number Guessing Game
System. Supervised by YENI HERDIYENI.
The number guessing game is a modified game of mastermind created by Mordecai Meirowitz in
1970. The goal of the game is to guess a hidden sequence of numbers stored by others (human or
computer) based on values obtained at each guess iteration. In this study, the game is applied into the
system by using genetic algorithms, a method that has been successfully utilized to implement the
mastermind game on the computer and get an effective solution for the game. Genetic algorithms
work through a process of natural selection or commonly known as the evolutionary process, which
will continue running until the system finds the optimal 4-digit series of numbers. The system is
designed in order to guess those hidden numbers with minimal iterations using c++ programming
language. The output of the program shows that the performance is determined by the first guess
iteration.
Keywords: genetic algorithms, number guessing game.

1

PENDAHULUAN
Latar Belakang
Permainan
komputer sangat banyak
ragamnya dan terus berkembang. Salah satu
jenisnya adalah permainan yang bersifat
kompetisi antara komputer dan manusia. Hal ini
tentu membutuhkan suatu penelitian agar
komputer dapat memiliki kecerdasan yang
menyerupai manusia dan menyelesaikan
masalah yang ada pada permainan layaknya
manusia.
Penelitian
ini
membahas
proses
pembangunan sebuah sistem permainan tebak
angka otomatis. Permainan tebak angka adalah
suatu permainan menebak deret angka
tersembunyi yang disimpan oleh pihak lain
(manusia ataupun komputer) berdasarkan nilainilai yang didapatkan di setiap iterasi
penebakan. Permainan ini merupakan hasil
modifikasi dari permainan yang telah ada
sebelumnya, yaitu permainan mastermind yang
diciptakan oleh Mordecai Meirowitz pada tahun
1970 (Marcel 2009). Pada awal permainan
tebak angka, pihak lawan akan menyimpan satu
deret angka berjumlah n digit, lalu pemain akan
mencoba menebak deret angka tersebut,
mendapatkan hasilnya, membangkitkan deret
angka untuk penebakan selanjutnya berdasarkan
hasil yang didapat, dan melakukan penebakan
kembali hingga semua digit angka tersembunyi
tersebut berhasil ditebak (tebakangka.com).
Pada penelitian sebelumnya, telah dibahas
penerapan algoritme genetika pada permainan
mastermind
dan
menghasilkan
sebuah
kesimpulan bahwa algoritme genetika hanya
membutuhkan sedikit iterasi penebakan untuk
mendapatkan solusi yang tepat pada permainan
tersebut (Berghman et al. 2009). Oleh karena
itu, pada penelitian ini, akan dilakukan
percobaan untuk menerapkan algoritme
genetika pada permainan tebak angka yang
memiliki jenis dan aturan yang menyerupai
permainan mastermind. Setiap digit dari deret
angka akan dipandang sebagai suatu gen pada
algoritme genetika dan selanjutnya diproses
hingga mendapatkan hasil yang diinginkan.
Tujuan
Tujuan
dari
penelitian
ini
adalah
menerapkan algoritme genetika di dalam sistem
permainan tebak angka.
Ruang Lingkup
Ruang lingkup penelitian ini meliputi:

 Jumlah digit angka yang digunakan pada
penelitian ini adalah empat digit.
 Faktor keberhasilan diukur dari jumlah
iterasi penebakan yang seminimal mungkin,
bukan dari kecepatan proses penebakannya.
Manfaat
Hasil dari penelitian ini diharapkan dapat
berguna untuk mengukur kinerja algoritme
genetika di dalam permainan tebak angka dan
juga mengembangkan fitur dari permainan
tebak angka, yaitu fitur penebakan dengan
posisi penebak angka adalah komputer (sistem).

TINJAUAN PUSTAKA
Permainan Tebak Angka
Permainan ini dilakukan antara dua pihak,
yaitu pihak yang menyimpan angka target
(codemaker) dan pihak yang melakukan proses
penebakan (codebreaker). Ilustrasi permainan
dapat dilihat pada Gambar 1.
Output proses penebakan

Submit angka tebakan
Penebak
(codebreaker)

Penyimpan angka
(codemaker)

Gambar 1 Permainan tebak angka.
Di dalam prosesnya, terdapat beberapa
aturan yang berlaku, yaitu:
 Deret angka n-digit (n = 1, 2,…, 10) yang
disimpan oleh pihak lawan terdiri atas D =
(d1, d2,…, dn), d = 0, 1,…, 9. Setiap digit
angka dari deret tersebut tidak boleh ada
yang berulang/sama antara satu dengan
lainnya. Jadi, jumlah kemungkinan deret
angka target (worst case jumlah penebakan)
adalah permutasi 4 dari 10 angka:
10!

P(10,4) = (10-4)! =

10!
6!

= 7 x 8 x 9 x 10

= 5040 kemungkinan
 Satu kali pencocokan deret angka tebakan
dengan deret angka target dihitung sebagai
satu iterasi penebakan.
 Hasil dari setiap iterasi penebakan
direpresentasikan melalui dua buah variable
yang juga berfungsi untuk menentukan
besarnya nilai fitness bagi deret angka
tebakan yang ada. Variable tersebut adalah:

2

1 c (correct): Variable ini akan bertambah
pada hasil jika salah satu digit pada deret
angka tebakan sama dengan yang ada
pada deret angka target dan terletak pada
posisi yang sama pula.

didapatkan suatu susunan kromosom yang
terbaik, yang merepresentasikan kemungkinan
solusi dari persoalan yang ada (Melanie 1996).

2 m (misplace): Variable ini akan
bertambah pada hasil jika salah satu digit
pada deret angka tebakan sama dengan
yang ada pada deret angka target, tetapi
terletak pada posisi yang berbeda (Tabel
1).

 Gen: sebuah nilai yang menyatakan satuan
dasar yang membentuk suatu arti tertentu
dalam satu kesatuan gen yang dinamakan
kromosom. Dalam algoritme genetika, gen
ini bisa berupa nilai biner, float, integer,
karakter, maupun kombinatorial.

Contoh:
Target
 5678
Tebakan  5689

 Alel: nilai dari gen.
 Kromosom: gabungan
membentuk nilai tertentu.

Tabel 1 Contoh verifikasi deret (n = 4)
Angka
tebakan
5
6
8
9

Digit posisi
Tebakan Target
1
1
2
2
3
4
4
Total hasil

Beberapa definisi penting
algoritme genetika, yaitu:

Hasil
c
c
m
2c 1m

 Permainan akan berakhir ketika hasil yang
diharapkan telah didapat, yaitu nc 0m, yang
berarti n angka yang ada pada deret tebakan
tersedia dan terletak pada digit yang sama
dengan deret angka target.
Algoritme Genetika
Algoritme genetika ditemukan oleh John
Holland pada tahun 1960-an. Pada tahun yang
sama, algoritme tersebut dikembangkan
bersama dengan murid dan rekannya hingga
tahun 1970-an. Berbeda dengan strategi evolusi
dan pemrograman evolusioner, tujuan awal dari
pengembangan algoritme tersebut sebenarnya
bukan untuk menyelesaikan masalah tertentu,
tetapi lebih kepada mempelajari fenomena
proses adaptasi yang terjadi di alam dan
mencoba mencari cara untuk menerapkannya
pada sistem komputer. Seiring dengan
banyaknya interaksi dari para peneliti tentang
metode dan pendekatan evolusioner, istilah
“algoritme genetika” pun menjadi umum
digunakan.
Algoritme genetika memanfaatkan proses
seleksi alamiah atau yang biasa dikenal dengan
proses evolusi. Proses ini melibatkan perubahan
gen pada suatu individu melalui proses
perkembang-biakan
yang
bertujuan
menyesuaikan
diri
dengan
lingkungan
hidupnya. Proses evolusi yang terjadi pada gengen tersebut akan terus berjalan hingga

menyangkut

gen-gen

yang

 Individu: menyatakan satu nilai atau
keadaan yang menyatakan salah satu solusi
yang mungkin dari permasalahan yang
diangkat.
 Populasi: merupakan sekumpulan individu
yang akan diproses bersama dalam satu
siklus proses evolusi.
 Generasi: menyatakan satu siklus proses
evolusi atau satu iterasi di dalam algoritme
genetika.
 Nilai fitness: nilai yang menyatakan baik
tidaknya suatu solusi (individu).
 Seleksi: proses yang digunakan untuk
memilih individu-individu yang akan
terlibat dalam proses pindah-silang dan
mutasi.
Seleksi dengan mesin Roulette: metode ini
merupakan metode seleksi yang paling
sederhana. Cara kerjanya sebagai berikut:
1 Hitung nilai
individu.

fitness

masing-masing

2 Hitung total nilai fitness semua individu.
3 Hitung probabilitas dari tiap individu.
4 Dari probabilitas tersebut, hitung jatah
masing-masing individu pada selang
angka 1 – 100.
5 Bangkitkan bilangan acak antara 1 – 100.
6 Dari bilangan acak yang dihasilkan,
tentukan individu mana yang terpilih
dalam proses seleksi.
 Mutasi: operator ini berperan untuk
menggantikan gen yang hilang dari populasi
akibat proses seleksi yang memungkinkan

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 berdasa