Analisis Proses Word Matching Problem

18
69 ANALISIS PROSES WORD MATCHING PROBLEM MENGGUNAKAN ALGORITMA GENETIKA WAHYU NURJAYA Jurusan Manajemen Informatika Universitas Komputer Indonesia Richard Dawkins adalah salah satu ilmuwan yang menerapkan teori evolusi untuk word matching problem dengan ekspresi huruf “tobeornottobe”. Gagasan dasar dari Richard Dawkins mengenai word matching problem, dikembangkan menggunakan algoritma genetika oleh seorang ilmuwan yaitu Freeman. Dalam proses word matching problem, tidak mudah untuk mendapatkan fungsi kecocokan fitness yang dapat menghasilkan respons sistem yang optimal. Cara yang dipakai untuk menemukan nilai kecocokan fitness salah satunya adalah menggunakan nilai hasil selisih string integer antara ekspresi yang diharapkan oleh user dengan ekspresi yang dihasilkan secara acak. Pengujian dilakukan dengan software APWMP yang dibangun menggunakan bahasa pemrograman pascal 7.0 dan dilakukan dalam 300 generasi atau lebih, di mana setiap generasi terdiri dari 10 kromosom atau maksimal 100 kromosom. Hasil yang didapatkan menunjukan bahwa dengan bantuan algoritma genetika, permasalahan kombinasi yang sangat rumit dan memakan waktu yang cukup lama untuk mendapatkan kecocokan fitness dapat dengan mudah diselesaikan. Nilai fitness yang diharapkan dalam software APWMP, yaitu menghasilkan nilai fitness di mana semakin tinggi nilai fitness maka akan semakin cepat mencapai nilai konvergen dengan bantuan seleksi roullette wheel dan perubahan-perubahan parameter mutasi. Word matching problem, algoritma genetika. PENDAHULUAN Metode algoritma genetika diinspirasikan dan berdasarkan pada proses evolusi yang terjadi pada makhluk hidup. Proses evolusi ini bertujuan untuk menghasilkan keturunan yang lebih baik. Sering kali masyarakat berusaha untuk menyangkal adanya kenyataan dasar pada teori evolusi yang terkadang menghasilkan penyelesaian sangat rumit. Usaha masyarakat ini biasanya dituangkan dalam berbagai bentuk misalnya intisari dan pembuktian-pembuktian empiris. Sebagai contoh Richard Dawkins dalam bukunya The Blind Watchmaker, berisi perbedaan ilustrasi philosophical antara teori seleksi alam dan teori randomness. Richard Dawkins mencoba untuk menuangkan teori evolusi pada populasi kera sebagai bahan eksperimennya. Sepuluh ekor kera diambil dari populasinya sebagai sample, masing-masing kera diberikan sehelai kertas dan sebuah mesin tik kemudian mereka dibiarkan untuk menulis huruf-huruf sebanyak 13 tipe huruf lower-case pada kertas tersebut menggunakan mesin tik secara acak. Dari sepuluh ekor kera akan terbentuk sepuluh Alamat korespondensi pada Wahyu Nurjaya, Jurusan Teknik Arsitektur Universitas Komputer Indonesia, Jalan Dipati Ukur 114, Bandung 40132. Bidang Teknik Majalah Ilmiah Unikom, Vol.6, hlm. 69-86

description

jurnal

Transcript of Analisis Proses Word Matching Problem

Page 1: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

69

ANALISIS PROSES WORD MATCHING PROBLEM MENGGUNAKAN ALGORITMA GENETIKA

WAHYU NURJAYA

Jurusan Manajemen Informatika Universitas Komputer Indonesia

Richard Dawkins adalah salah satu ilmuwan yang menerapkan teori evolusi untuk word matching problem dengan ekspresi huruf “tobeornottobe”. Gagasan dasar dari Richard Dawkins mengenai word matching problem, dikembangkan menggunakan algoritma genetika oleh seorang ilmuwan yaitu Freeman. Dalam proses word matching problem, tidak mudah untuk mendapatkan fungsi kecocokan fitness yang dapat menghasilkan respons sistem yang optimal. Cara yang dipakai untuk menemukan nilai kecocokan fitness salah satunya adalah menggunakan nilai hasil selisih string integer antara ekspresi yang diharapkan oleh user dengan ekspresi yang dihasilkan secara acak. Pengujian dilakukan dengan software APWMP yang dibangun menggunakan bahasa pemrograman pascal 7.0 dan dilakukan dalam 300 generasi atau lebih, di mana setiap generasi terdiri dari 10 kromosom atau maksimal 100 kromosom. Hasil yang didapatkan menunjukan bahwa dengan bantuan algoritma genetika, permasalahan kombinasi yang sangat rumit dan memakan waktu yang cukup lama untuk mendapatkan kecocokan fitness dapat dengan mudah diselesaikan. Nilai fitness yang diharapkan dalam software APWMP, yaitu menghasilkan nilai fitness di mana semakin tinggi nilai fitness maka akan semakin cepat mencapai nilai konvergen dengan bantuan seleksi roullette wheel dan perubahan-perubahan parameter mutasi. Word matching problem, algoritma genetika.

PENDAHULUAN

Metode algoritma genetika diinspirasikan dan berdasarkan pada proses evolusi yang terjadi pada makhluk hidup. Proses evolusi ini bertujuan untuk menghasilkan keturunan yang lebih baik. Sering kali masyarakat berusaha untuk menyangkal adanya kenyataan dasar pada teori evolusi yang terkadang menghasilkan penyelesaian sangat rumit. Usaha masyarakat ini biasanya dituangkan dalam berbagai bentuk misalnya intisari dan pembuktian-pembuktian empiris. Sebagai contoh Richard Dawkins dalam bukunya The

Blind Watchmaker, berisi perbedaan ilustrasi philosophical antara teori seleksi alam dan teori randomness.

Richard Dawkins mencoba untuk menuangkan teori evolusi pada populasi kera sebagai bahan eksperimennya. Sepuluh ekor kera diambil dari populasinya sebagai sample, masing-masing kera diberikan sehelai kertas dan sebuah mesin tik kemudian mereka dibiarkan untuk menulis huruf-huruf sebanyak 13 tipe huruf lower-case pada kertas tersebut menggunakan mesin tik secara acak. Dari sepuluh ekor kera akan terbentuk sepuluh

Alamat korespondensi pada Wahyu Nurjaya, Jurusan Teknik Arsitektur Universitas Komputer Indonesia, Jalan Dipati Ukur 114, Bandung 40132.

Bidang Teknik

Majalah Ilmiah Unikom, Vol.6, hlm. 69-86

Page 2: Analisis Proses Word Matching Problem

WAHYU NURJAYA

70

tulisan yang berbeda, jika dari sepuluh tulisan ini tidak ada yang sama dengan ekspresi yang diharapkan oleh Richard Dawkins (“tobeornottobe”), maka akan dilakukan lagi eksperimen sampai waktu yang tak terbatas. Kemungkinan untuk mendapatkan ekspresi “tobeornottobe” sangat kecil, kendala ini dapat disimulasikan menggunakan prosedur matematika dengan metode algoritma genetika. Dari permasalahan di atas penulis akan menganalisis proses word matching problem menggunakan algoritma genetika dengan menganut kepada metode eksperimen Richard Dawkins dengan catatan huruf (word) yang akan dieksperimeni ditentukan oleh user. Metode algoritma genetika ini bekerja dengan suatu cost function sebagai fungsi yang menguji kualitas solusi yang dalam hal ini dilambangkan sebagai suatu individu dalam satu generasi. Seleksi merupakan pemilihan solusi yang tepat di antara solusi yang ada, dilakukan dengan cara penyusunan huruf (word), tetapi pada dasarnya adalah memilih individu yang lebih baik (membentuk “susunan huruf (word)” yang diinginkan oleh user). Untuk menentukan itu digunakan fungsi obyektif, yang ditentukan untuk suatu masalah. LANDASAN TORI Algoritma Genetika Algoritma genetika adalah suatu algoritma pencarian data dan optimasi yang bersifat stokastik atau bekerja berdasarkan random, berbasis pada proses mekanika alamiah di mana sifat-sifat suatu spesies sangat bergantung pada gen-gen dan susunannya. Algoritma genetika sangat tepat digunakan untuk penyelesaian masalah optimasi yang kompleks dan sukar diselesaikan dengan menggunakan metode yang konvensional. Sebagai contoh yaitu pencarian nilai tertentu dari suatu fungsi atau sistem dan optimasi (pencarian nilai optimal) dari suatu fungsi atau sistem, seperti halnya pada word matcing

problem penulis harus menentukan fungsi tujuan sebagai solusi dari pencarian yang akan dilakukan oleh algoritma genetika. Ada beberapa definisi umum dalam algoritma genetika yang perlu diketahui dan berkaitan dengan masalah yang akan dibahas oleh penulis mengenai analisis proses word matching problem menggunakan algoritma genetika, yaitu: • Satu individu adalah satu kesatuan

kromosom. • Satu kromosom adalah kumpulan dari

gen-gen. • Gen menyatakan satuan nilai yang yang

menyatakan suatu nilai variabel bebas. • Nilai fitness suatu individu adalah nilai

tujuan dari permasalahan yang diangkat. Bentuk gen yang bisa diambil dalam algoritma genetika adalah: • Gen Biner, ini baik untuk sistem dengan

satu variabel bebas. • Gen Float, ini baik untuk sistem dengan

variabel bebas yang lebih dari satu. • Gen Character/Data, ini baik untuk

sistem dengan variabel bebas yang dinyatakan sebagai satu satuan informasi.

Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah sebagai berikut: 1. Membangkitkan populasi awal, populasi

awal ini dibangkitkan secara random sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlah kromosom yang mempresentasikan solusi yang diinginkan.

2. Membentuk generasi baru, dalam membentuk generasi baru digunakan tiga operator yaitu reproduksi/seleksi, crossover dan mutasi.

3. Evaluasi solusi, proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti. Apabila kriteria berhenti

Page 3: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

71

belum terpenuhi maka akan dibentuk lagi generasi baru dengan mengulangi langkah 2. beberapa kriteria berhenti yang sering digunakan antara lain: • Berhenti pada generasi tertentu. • Berhenti setelah dalam beberapa

generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah.

• Berhenti bila dalam N generasi berikut tidak didapatkan nilai fitness yang lebih tinggi.

Perlu diingat sebelum algoritma genetika dilakukan, ada dua hal penting yang harus dilakukan yaitu pendefinisian kromosom dan fungsi fitness atau fungsi obyektif. Dua hal ini juga memegang peranan penting dalam algoritma genetika untuk menyelesaikan suatu masalah. Dalam Gambar 1 digambarkan proses algoritma genetika secara umum.

Gagasan dasar algoritma genetika Gagasan yang mendasari algoritma genetika adalah meniru cara penggunaan evolusi alam. Algoritma genetika dalam pengerjaannya menggunakan prinsip Survival Of The Fittest (kemampuan kelangsungan hidup) dengan pemecahan yang berbeda dalam sebuah populasi. Meniru pemecahan terbaik dari bentuk baru yaitu diharapkan dapat ditemukan pemecahan yang terbaik dalam populasi, sementara itu pemecahan yang kurang baik dihilangkan. Survival dalam algoritma genetika merupakan suatu pewarisan genetik yang dijadikan sebagai model metode pencarian pada suatu fenomena alam.

Istilah dalam algoritma genetika Dalam ilmu genetika, kromosom terdiri dari susunan gen-gen. Tiap gen mengandung nilai atau sifat tertentu yang disebut dengan allele, sedangkan posisi gen dalam kromosom disebut locus. Satu atau beberapa kromosom bergabung membentuk paket genetik yang disebut genotife, interaksi genotife dengan lingkungannya disebut fenotif. Dalam algoritma genetika, kromosom bersesuaian dengan string yang dibentuk dari beberapa karakter. Setiap karakter mempunyai posisi (locus) dan mengandung nilai tertentu (allele). Satu atau beberapa

Inisialisasi Populasi Awal

Evaluasi fitness setiap individu dalam popu-

lasi Kemungkinan

Mutasi

Crossover: tulis offspring dari kombinasi

genetik

Seleksi: se-leksi parent dari fitness

Diharap-

Selesai

LOOP Generasi

Tidak

Ya

Gambar 1 Proses Algoritma Genetika

Ilmu Genetika Algoritma Genetika

Kromosom String

Gen Karakter

Allele Nilai Karakter

Loccus Posisi dalam Individu

Genotif Struktur

Fenotif Parameter

Tabel 1 Susunan gen ilmu genetika

Page 4: Analisis Proses Word Matching Problem

WAHYU NURJAYA

72

karakter akan bergabung membentuk struktur (genotif). Bila struktur tersebut dikodekan, akan diperoleh satu titik yang merupakan salah satu alternatif solusi (fenotif). Pengodean kromosom Ada beberapa macam pengodean dalam algoritma genetika, yaitu sebagai berikut: 1. Binary encoding, pengodean yang paling

sering digunakan untuk bekerja dalam algoritma genetika, dengan setiap kromosom terdiri dari bit 0 dan 1.

Tabel 2

Contoh binary encoding

Contoh dari masalah: Masalah knapsack (ransel). Masalah: Ada benda atau sesuatu yang diberikan nilai dan panjang. Knapsack memberikan kapasitas untuk menyeleksi benda dan memaksimumkan nilai dari benda pada masalah knapsack, tapi tidak untuk memperluas kapasitas masalah knapsack. Encoding: Setiap masalah dinyatakan sebagai bit, jika benda itu sesuai dengan knapsack.

2. Permutation encoding, dalam pengodean jenis ini setiap kromosom adalah suatu angka yang mempresentasikan suatu urutan. Pengodean ini hanya berguna untuk masalah ordering, bahkan beberapa korelasi terhadap kromosom harus dilakukan untuk menjaga konsistensi representasi kromosom setelah proses crossover atau mutasi.

Contoh dari masalah: Masalah

Travelling Salesman (TSP). Masalah: Ada beberapa kota dan diberikan jarak di antaranya kemudian trevelling salesman mengunjungi semua kota tersebut, tapi dia tidak melakukan perjalanan yang sangat banyak itu . cukup dengan menemukan urutan dari kota-kota tersebut untuk memperkecil jarak perjalanan. Encoding: Kromosom dinyatakan sebagai urutan kota-kota, di mana salesman akan mengunjunginya.

3. Value encoding, dalam pengodean ini setiap kromosom adalah string dari suatu nilai. Nilai dapat berupa apapun yang berhubungan dengan masalah, seperti bilangan bulat, desimal atau karakter.

Contoh dari masalah: Pencarian berat untuk Neural Network. Masalah: Ada beberapa Neural Network dengan memberikan arsitektur. Mencari berat untuk input dari deretan Neuron (syaraf) Network untuk mendapatkan output yang diinginkan. Encoding: Nilai real dalam kromosom mewakili berat yang sama dengan input.

4. Encoding tree, biasanya digunakan untuk menyusun program atau ekspresi dari genetik programming (pemrograman genetik). Dalam pengodean pohon ini, setiap kromosom dinyatakan sebagai sebuah pohon dan beberapa objek, seperti fungsi atau perintah dalam bahasa pemrograman. Bahasa pemrograman LISP adalah sering digunakan untuk ini, karena program dalam bahasa pemrograman LISP diwakili dalam bentuk ini dan dapat dengan mudah di parse sebagai pohon, juga crossover dan mutasi dapat dilakukan dengan mudah secara relatif.

Krom A 1 0 1 1 0 0 1 0 1 0

Krom B 1 1 1 1 1 1 0 0 1 0

Krom A 8 5 6 7 2 1 3 4 9

Krom B 1 5 3 2 6 4 7 9 8

Tabel 3 Contoh permutation encoding

Krom A 1.232 5.324 0.455 2.329

Krom B ABFDGJHJHKJKJLKLFSR

Krom C (right), (left), (back), (forward)

Tabel 4 Contoh value encoding

Page 5: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

73

Contoh dari masalah: Pencarian fungsi dari nilai yang diberikan. Masalah: Beberapa nilai input dan output diberikan. Tuganya untuk menemukan fungsi dimana akan memberikan output yang terbaik (penutup yang diinginkan) untuk semua input. Encoding: Kromosom adalah fungsi yang diwakilkan dalam sebuah pohon.

5. Pengkodean banyak parameter, ruang masalah dilakukan untuk membuat himpunan parameter solusi menjadi deretan bit string yang terbatas. Pengkodean parameter (Goldberd. 1989:82) dilakukan pada suatu alphabet, dimana alphabet menyatakan jumlah kemungkinan tiap gen. Holland telah menunjukan bahwa alphabet biner telah optimal dalam berbagai masalah

pengkodean bukan alphabet biner tergantung pada aplikasi dimana algoritma genetika diterapkan. Pengkodean parameter pada alphabet biner dibatasi hanya 1 dan 0.

Operator genetika

Algoritma genetika mempunyai 3 operator yang sederhana, yaitu: a. Reproduksi, merupakan proses untuk

melakukan proses dimana string dengan nilai bobot besar sebagai solusi yang baik berkorespondensi dengan sejumlah besar salinannya pada populasi baru. Dengan sekumpulan string yang dipilih, kemudian menungguaksi yang dilakukan dua operator lainnya yang ditentukan dengan percepatan Bernauli.

b. Crossover, merupakan proses untuk melakukan penukaran informasi, tumpukan string (kromosom) dengan keputusan probabilistik. Crossover ini memberikan sebuah mekanisme pada kumpulan string untuk bercampur dan mencocokan kualitas yang diinginkan melelui proses random, sedangkan hasil kumpulan stringnya disebut offspring

c. Mutasi, meningkatkan kemampuan algoritma genetika untuk mendapatkan solusi yang mendekati secara optimum. Mutasi secara tiba-tiba mengubah sebuah nilai suatu posisi bit string tertentu. Hal ini dapat menjamin dari kehilangan secara permanen setiap bit sederhana. Suatu generasi mungkin diciptakan tanpa suatu karakter tertentu pada suatu posisi bit pada string. Seperti yang dilakukan pada

+

* /

5 y

Do Until

Step Wall

Kromosom A

Kromosom B

(Do Until Step Wall)

Gambar 2 Kromosom dengan pengkodean pohon

Krom A 10111 00100110110

Krom B 11011 11000011110

Offspring A 11011 11000011110

Offspring B 11011 00100110110

Tabel 5 Contoh value encoding

Page 6: Analisis Proses Word Matching Problem

WAHYU NURJAYA

74

crossover, mutasi juga melakukan pembagian pada bagian kromosom. Ini dilakukan untuk mencegah penurunan semua solusi dalam populasi menjadi optimum lokal dari pemecahan masalah. Mutasi mengubah secara random offspring baru. Untuk pengkodean dapat merubah sebagian kecil secara random memilih bit dari 1 ke 0 atau dari 0 ke 1.

Strategi seleksi Algoritma genetika menyediakan fasilitas seleksi, di mana kromosom diseleksi dari populasi pada crossover parent. Dengan menyesuaikan teori evolusi Darwin yang satu terbaik harus dipertahankan dan membuat offspring baru. Ada beberapa metode bagaimana menyeleksi kromosom yang terbaik yaitu diantaranya dengan roullette wheel (Goldberg. 1989), seleksi tournament (Michlewicz. 1992), seleksi rank (Michlewicz. 1992), seleksi seteady state (http://cs.felk.cvut.cz/~xobitko/ga/), seleksi elitism (Goldberg. 1989) dan sebagainya. Dalam analisis proses word matching problem menggunakan algoritma genetika penulis menggunakan seleksi roullette wheel (Goldberg. 1989). Seleksi roullette wheel dilakukan dengan cara parent diseleksi untuk mempertahankan nilai fitness-nya. Kromosom yang terbaik adalah mempunyai kesempatan untuk diseleksi. Bayangkan sebuah permainan roda (roullette wheel), di mana semua kromosom ditempatkan dalam populasi, setiap tempat besar sesuai dengan fungsi fitness, untuk lebih jelasnya lihat pada gambar dibawah ini:

Dengan melihat gambar tersebut kromosom dengan nilai fitness paling tinggi waktu penyelesaiannya akan lebih lama dibandingkan dengan kromosom lainnya. Parameter

Parameter digunakan dalam algoritma genetika untuk memberikan suatu probabilitas yang berupa persentase. Parameter yang terdapat pada algoritma genetika ini (http://cs.felk.cvut.cz/~xobitko/ga/), yaitu probabilitas crossover, probabilitas mutasi dan ukuran populasi.

Probabilitas crossover merupakan persentase dari seringnya melakukan crossover. Jika tidak ada crossover, offspring (turunan) pasti meniru dari parent (induk). Jika ada crossover, offspring dibuat dari bagian kromosom parent. Jika kemungkinan crossover 100%, maka semua offspring dibuat oleh crossover. Jika 0%, generasi baru secara lengkap dibuat dengan meniru kromosom dari populasi lama.

Crossover dibuat dengan harapan kromosom baru akan memiliki bagian yang baik dari kromosom lama dan barangkali kromosom baru akan lebih baik. Bagaimanapun itu baik untuk mewariskan beberapa bagian dari populasi untuk mempertahankan generasi selanjutnya. Probabilitas mutasi merupakan bagian dari kromosom yang dimutasikan. Jika tidak ada mutasi, offspring langsung mengambil dari

Original Offspring 1 1101110000111100

Original Offspring 2 1101100100110110

Mutated Offspring 1 1100111000011110

Mutated Offspring 2 1101101100110110

Tabel 5 Contoh sederhana proses dalam mutasi

Grafik nilai fitness

40%

30%

20%10%

Kromosom 1 Kromosom 2

Kromosom 3 Kromosom 4

Gambar 3 Proses seleksi roullette wheel

Page 7: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

75

crossover (atau meniru) dengan tidak mengubah lagi. Jika dilakukan mutasi, bagian kromosom diubah. Jika kemungkinan mutasi adalah 100%, seluruh kromosom diubah dan jika kemungkinan mutasi adalah 0%, tidak ada yang diubah. Mutasi dibuat untuk mencegah penurunan algoritma genetika ke dalam nilai ekstrem lokal, tapi ini tidak sering terjadi karena algoritma genetika akan mengubah fakta dengan random search. Populasi size (panjang populasi) merupakan kumpulan kromosom dalam populasi (dalam satu generasi). Jika ada beberapa kromosom, algoritma genetika memiliki beberapa kemungkinan untuk melakukan croosover dan hanya bagian kecil dari jarak pencarian yang diperiksa. Di sisi lain, bila ada banyak kromosom, algoritma genetika akan lambat turun. Dengan memperlihatkan penelitian menurut beberapa batas (di mana sebagian besar tergantung pada pengodean dan masalah). Itu tidak akan bermanfaat untuk meningkatkan panjang populasi, karena itu tidak akan menemukan kecepatan masalah. Perbedaan algoritma genetika dengan algoritma pencarian lainnya

Perbedaan algoritma genetika dengan algoritma pencarian lainnya, antara lain (Goldberg. 1989:7): 1. Algoritma genetika mempertimbangkan

banyak solusi dalam ruang pencarian secara simultan, pencarian dengan mempertimbangkan banyak solusi akan mempersempit kesempatan konvergen (yang memusat) pada satu solusi tunggal mempertimbangkan pada beberapa aturan keputusan.

2. Algoritma genetika secara langsung bekerja dengan string (penulis menggunakan ASCII lower case) yang mempresentasikan kumpulan parameter.

3. Algoritma genetika menggunakan k e p u tu s an p ro b ab i l i s t i k ( n on deterministik) untuk menentukan

pencariannya, bukan keputusan deterministik.

Teori pendukung Flowchart Flowchart merupakan salah satu alat untuk menggambarkan suatu algoritma agar dapat dengan mudah diimplementasikan pada suatu aplikasi. Tujuan utama penggunaan flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana. Pengurutan straight insertion Pengurutan straight insertion (penyisipan langsung) merupakan metode pengurutan dengan cara menyisipkan elemen array pada posisi yang tepat. Aplikasi yang digunakan Aplikasi yang digunakan dalam pengimplementasian adalah bahasa pascal 7 .0 , bahasa in i se la in mudah pengaplikasiannya dan termasuk kedalam bahasa tingkat tinggi yang terstruktur. WORD MATCHING PROBLEM Dasar Word Matching Problem Word matching problem mencoba untuk meningkatkan kecocokan kata yang dibentuk oleh huruf (ekspresi) yang diinginkan user, contoh seperti yang diberikan oleh Richard Dawkins yaitu ekspresi “tobeornottobe“ dari daftar huruf (letter) yang digenerasikan secara acak (random) dengan menggunakan algoritma genetika. Ada dua kemungkinan untuk tiap posisi dalam daftar (jumlah posisi pada kata di atas adalah 13), kemungkinan yang kita punya pada kata yang cocok dengan cara pengacakan secara alami yaitu (1/26)13 = 4,03038 x 10-19 yaitu sekitar 2

Page 8: Analisis Proses Word Matching Problem

WAHYU NURJAYA

76

kemungkinan akan keluar dari semilyar (1.000.000.000) kemungkinan. Sebelum melangkah lebih lanjut perlu diingat bahwa proses word matching problem ini dikembangkan oleh Freeman yang gagasan dasarnya diuji oleh Richard Dawkins dengan eksperimen pencocokan huruf menggunakan teori evolusi, seperti pada bab sebelumnya bahwa Richard Dawkins mengambil eksperimen untuk menyusun huruf membentuk ekspresi “tobeornottobe“ yaitu menggunakan kera. Dari kumpulan populasi kera diambil 10 ekor kemudian masing-masing diberikan kertas dan sebuah mesin tik, mereka dibiarkan untuk menulis huruf-huruf lower case, apabila ekspresi yang diharapkan oleh Richard Dawkins belum terpenuhi maka dilakukan eksperimen lagi sampai waktu yang tak terbatas. Dari gagasan dasar inilah Freeman mengembangkan proses word matching problem menggunakan algoritma genetika dengan ruang penelusuran yang terlihat pada gambar 4.

Pengodean Pengkodean yang digunakan dalam analisis proses word matching problem menggunakan algoritma genetika adalah pengkodean nilai (value encoding). Dalam pengkodean nilai ini setiap kromosom adalah string dari suatu nilai. Nilai dapat berupa apapun yang berhubungan dengan masalah, seperti bilangan bulat, desimal, dan karakter. Penulis menggunakan daftar ASCII integer untuk mengkodekan string dari huruf. Huruf kecil dalam ASCII diwakili dengan bilangan pada range [97,122] dalam bilangan desimal. Sebagai contoh string dari huruf “tobeornottobe“ dikonversikan kedalam kromosom yang diwakili dengan ASCII integer sebagai berikut:

“tobeornottobe“

[116 111 98 101 111 114 110 111 116 111 98 101]

Tidak

Perbaikan (Masalah Khusus)

Kondisi Akhir

Selesai

Ya

Gambar 4 Ruang penelusuran algoritma genetika

Konversikan

Pengkodean ke bentuk char

Chr(x[i])

Selesai

Mulai

x[i] ! random(122)

if x[i] > 96 than

Tidak

Ya

Gambar 5 Flowchart pengkodean

Page 9: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

77

Mengodekan solusi dari masalah ke dalam kromosom adalah kunci issue untuk algoritma genetika. Pada kerja Holland, pengodean dilaksanakan menggunakan string kode biner. Untuk kebanyakan aplikasi algoritma genetika, terutama untuk masalah dari dunia rekayasa industri, algoritma genetika sulit diaplikasikan secara langsung karena string biner bukanlah pengodean secara alami. Selama 10 tahun terakhir, berbagai macam teknik pengodean nonstring telah dibuat untuk masalah tertentu, contoh pengodean bilangan real untuk membatasi masalah optimasi dan pengodean integer untuk masalah kombinasi. Inisialisasi Populasi Awal Inisialisasi populasi awal adalah membangkitkan populasi awal yang akan menjadi induk bagi keturunan generasi selanjutnya. Pembangkitan populasi awal ini dilakukan secara random dengan ruang lingkup yang dibatasi pada bilangan ASCII lower case. Langkah pertama generasikan 10 inisialisasi populasi secara random, misalkan sebagai berikut: P1.[105 102 111 102 100 106 119 108 100 116 121 107 116] P2.[120 111 105 107 117 97 98 99 99 102 110 107 112] P3.[102 113 115 120 105 110 109 103 112 108 98 113 121] P4.[107 119 99 106 107 102 110 117 109 105 117 102 109] P5.[107 105 98 121 98 116 119 97 112 121 109 121 104] P6.[112 109 112 118 120 98 116 121 97 117 106 107 113] P7.[106 104 119 100 99 97 106 97 104 111 98 107 105] P8.[99 117 109 107 118 99 100 104 109 109 99 110 106] P9.[111 121 112 118 111 113 119 118 100 121 105 100 105] P10.[118 98 144 115 104 118 121 109 100 102 107 100 105] Langkah selanjutnya setelah mendapatkan string integer, dilakukan decoding dari string integer menjadi karakter yaitu dengan cara pemanggilan fungsi char yang telah tersedia dalam bahasa pemrograman pascal. Bentuk umum sebagai berikut: s:=chr(bilangan integer); Dari 10 populasi diatas kemudian decode menjadi 10 populasi char: P1.[i f o f d j w l d t y k t] P2.[x o i k u a b c c f n k p] P3.[f q s x i n m g p l b q y]

P4.[k w c j k f n u m i u f m] P5.[k i b y b t w a p y m y h] P6.[p m p v x b t y a u j k q] P7.[j h w d c a j a h o b k i] P8.[c u m k v c d h m m c n j] P9.[o y p v o q w v d y i d i] P10.[v b r s h v y m d f k d i] Setelah di decode ke dalam bentuk karakter, kemudian dilakukan penghitungan evaluasi. Fitness dihitung sebagai bilangan dari huruf yang cocok. “Only mutation is used which results in a change to given letter with a given probability“ (Freeman:143). “Hanya mutasi yang digunakan yang menghasilkan suatu perubahan huruf menuju huruf yang ditentukan dengan kemungkinan (probability) yang ditentukan“. Sebelum dilakukan perhitungan evaluasi terlebih dahulu harus diketahui fungsi kecocokan fitness (fungsi objektif / tujuan). Ini akan dijelaskan pada sub bab berikutnya.

Solusi Menemukan Fungsi Kecocokan Fitness Fungsi kecocokan fitness (fungsi objektif / tujuan) adalah fungsi yang digunakan untuk menentukan hasil analisis proses word matching problem menggunakan algoritma genetika. Tanpa adanya fungsi kecocokan fitness pencarian solusi nilai fitness terbaik tidak akan didapatkan. Untuk setiap masalah dalam algoritma genetika memiliki fungsi fitness yang berbeda-beda. Di sini ada dua cara untuk menemukan fungsi kecocokan fitness yaitu menggunakan selisih string integer dan menggunakan perbandingan karakter lower case. Menggunakan selisih string integer Setelah dilakukan penelitian terhadap data yang ada maka penulis menemukan bagaimana caranya mendapatkan sebuah

Page 10: Analisis Proses Word Matching Problem

WAHYU NURJAYA

78

fungsi kecocokan fitness, yaitu dengan menghitung selisih string integer antara ekspresi dari user dan ekspresi hasil random. Perhatikan gambar 6 berikut ini:

Keterangan Gambar 6: 1. Ekspresi user adalah nilai berupa karakter

sebanyak panjang kromosom yang diharapkan oleh user ketika algoritma genetika dijalankan. Selain itu ekspresi user ini berfungsi sebagai objek yang akan menentukan hasil nilai fitness. Karena ekspresi user ini berupa karakter sedangkan hasil random adalah string integer, maka ekspresi user harus dikonversikan ke string integer. Setelah dikonversikan maka masuk ke tahap berikutnya.

2. Populasi hasil random, karena populasi random ini berupa string integer, maka tidak perlu dikonversikan lagi.

3. Setelah menghasilkan 2 buah bentuk ekspresi yang sama baik dari user maupun dari hasil random yaitu string integer, maka selanjutnya data tersebut harus dibagaimanakan sehingga akan terpenuhi suatu fungsi kecocokan fitness.

Salah satunya adalah dengan proses pengurangan di mana proses ini menghasilkan suatu nilai tertentu.

4. Setelah didapatkan suatu nilai hasil pengurangan kemudian cek apakah nilai tersebut sama dengan 0 atau tidak sama dengan 0.

5. jika nilai sama dengan 0 artinya nilai fitness ke-j sama dengan 1 dan jika nilai tidak sama dengan 0 artinya nilai fitness ke-j sama dengan 0, dengan j adalah indek kromosom.

6. Fitness (Vk) adalah hasil penjumlahan dari seluruh fitness ke-j, dengan k adalah indek populasi.

Dari semua asumsi tersebut, penulis menarik sebuah kesimpulan bahwa dengan pencarian selisih antara ekspresi user dengan ekspresi hasil random bisa menghasilkan fungsi kecocokan fitness yang dapat dituliskan dalam rumus matematika sebagai berikut: 1. Harga mutlak

Eval(Vk) = ƒ(xj,yj) =| xj – yj |, k=1,2,...,popsize, j=1,2,...,lkrom

2. Harga biasa Eval(Vk) = ƒ(xj,yj) =( xj – yj ), k=1,2,...,popsize, j=1,2,...,lkrom

Keterangan: Vk=nilai eval / fitness dari populasi k xj=variabel yang mewakili ekspresi user untuk setiap gen ke-j yj=variabel yang mewakili ekspresi hasil random untuk setiap gen ke-j Menggunakan perbandingan karakter lower case Pada perinsipnya sama dengan pencarian fungsi kecocokan fitness menggunakan selisih string integer. Namun pada penerapannya berbeda jika menggunakan selisih string integer dapat diterapkan dalam rumus matematika, maka untuk perbandingan karakter lower case hanya bisa diterapkan menggunakan statemen-statemen tertentu yang disediakan oleh suatu aplikasi. Misalkan penulis mengambil aplikasi bahasa

h a r i m a u

Konversi

11 23 9 5 0 6 5

0 0 0 0 1 0 0

104 97 114 105 109 97 117

115 120 105 110 109 103 112

Ekspresi user

Pengurangan

Hasil random

Hasil

Fitness ke-j

Jumlahkan

Fitness (Vk)

Gambar 6 Proses pencarian fitness menggunakan

selisih string integer

Page 11: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

79

pascal, dalam pascal banyak disediakan statemen-statemen yang mendukung proses word matching problem. Contoh statemen if, perhatikan gambar berikut ini:

1

Keterangan gambar 7: 1. Ekspresi user adalah nilai berupa karakter

sebanyak panjang kromosom yang diharapkan oleh user ketika algoritma genetika dijalankan. Selain itu ekspresi user ini berfungsi sebagai objek yang akan menentukan hasil nilai fitness. Karena proses pencarian nilai fitness menggunakan perbandingan karakter, maka ekspresi user tidak perlu di decode ke bentuk string integer.

2. Populasi hasil random, karena populasi random ini berupa string integer, maka untuk proses pencarian nilai fitness menggunakan perbandingan karakterhasil random berupa string integer harus dikonversikan ke dalam bentuk karakter.

3. Setelah menghasilkan 2 buah bentuk ekspresi yang sama baik dari user maupun dari hasil random yaitu karakter, maka selanjutnya data tersebut

dibandingkan (if krom[j] = huruf[j] Then).

4. Setelah didapatkan hasil perbandingan kemudian cek apakah hasilnya benar (true) atau salah (false).

5. jika hasil perbandingan sama dengan benar (true) artinya nilai fitness ke-j sama dengan 1 dan jika hasil perbandingan sama dengan salah (false) artinya nilai fitness ke-j sama dengan 0, dengan j adalah indek kromosom.

6. Fitness (Vk) adalah hasil penjumlahan dari seluruh fitness ke-j, dengan k adalah indek populasi.

Solusi Mendapatkan Nilai Fitness Yang Diharapkan Oleh User Untuk mendapatkan solusi yang terbaik yang diharapkan oleh user, penulis membatasi ruang lingkup kerja program algoritma genetika yaitu sebagai berikut: 1. Maksimal populasi yang boleh diambil

adalah 100 populasi. 2. Maksimal panjang kromosom yang boleh

digunakan adalah 20. 3. Maksimal generasi tidak dibatas, karena

disesuaikan dengan kondisi dimana akan terdapat nilai konvergen atau nilai fitness tertinggi pada setiap generasinya.

4. Evaluasi menggunakan fungsi kecocokan fitness berdasarkan selisih string integer dari ekspresi user dan hasil random.

5. Seleksi menggunakan metode roullette wheel.

6. Mutasi dilakukan berdasarkan nilai probability mutasinya (pm), huruf yang digunakan untuk penukaran gen yang hendak dimutasi dibatasi hanya menggunakan huruf ekspresi user sepanjang lkrom (panjang kromosom). Ini dikarenakan semakin besar range suatu daerah solusi untuk memutasi suatu gen, maka kemungkinan untuk cocok akan memakan waktu cukup lama.

h a r i m a u

Konversi

115 120 105 110 109 103 112 Hasil Random

Bandingkan

Ekspresi user

Hasil

Fitness ke-j

Jumlahkan

Fitness (Vk)

s x i n m g p

f f f f t f f

0 0 0 0 1 0 0

If krom[j] = huruf[j] Then

Gambar 7 Proses pencarian fitness menggunakan

perbandingan karakter

Page 12: Analisis Proses Word Matching Problem

WAHYU NURJAYA

80

Pengembangan Eksperimen Richard Dawkins Seperti yang telah dijelaskan pada sub bab sebelumnya Richard Dawkins memiliki gagasan mengenai word matching problem, yang kemudian dikembangkan oleh Freeman ke dalam algoritma genetika. Dari permasalahan ini penulis tertarik untuk ikut mengembangkan hasil eksperimen Richard Dawkins dengan cara semua ekspresi yang diharapkan user dapat dimasukan dengan nilai lkrom (panjang kromosom) yang diharapkan user. Selain itu penulis juga tertarik untuk mempelajari perkembangan algoritma genetika yang semakin pesat dan memiliki ketangguhan dalam menyelesaikan permasalahan kombinasi yang sangat rumit. Perhitungan Nilai Fitness Perhitungan nilai fitness yang digunakan penulis dalam menyelesaikan analisis proses word matching problem adalah menggunakan selisih string integer. Tahapan dalam perhitungan nilai fitness adalah sebagai berikut: 1. Bangkitkan string integer masing-masing

populasi (pk). Pk, k = 1,2,...,popsize

2. Hitung nilai fitness dengan cara menentukan kecocokan nilai ekspresi user dengan nilai hasil random (gambar 3.3), rumus matematika yang digunakan adalah fungsi fitness dengan hasil selisih harga mutlak. Eval(vk)=¦(xj,yj)=|xj – yj|, k=1,2,...,popsize, j=1,2,...,lkrom

Jika ¦(xj,yj)=0 maka Eval(vk)=1, jika ¦(xj,yj)<>0 maka Eval(vk)=0

Operator Genetika Operator Reproduksi (Seleksi)

Proses seleksi ini bertujuan untuk memilih parent yang hendak di mutasi dan digenerasikan ke generasi berikutnya.metode yang digunakan adalah metode roullette wheel. • Hitung nilai fitness eval(vk):

Eval(vk)=¦(xj,yj)=|xj – yj|, k=1,2,...,popsize, j=1,2,...,lkrom Jika ¦(xj,yj)=0 maka Eval(vk)=1, jika ¦(xj,yj)<>0 maka Eval(vk)=0

• Hitung nilai total fitness dari populasi keseluruhan: F = k=1Sk=popsize Eval(vk), k=1,2,...,popsize

• Hitung kemungkinan seleksi (selection probability) pk setiap kromosom vk: Pk=Eval(vk) / F, k=1,2,...,popsize

• Hitung kemungkinan kumulatif (cumulative probability): qk=j=1Sk pj, k=1,2,...,popsize

• Proses seleksi dimulai dengan memutar roullette wheel sebanyak popsize, setiap putaran sebuah kromosom akan terseleksi sebagai kromosom pada populasi yang baru dengan tahapan sebagai berikut: Bangkitkan nilai random r diantara selang [0,1]. Jika r < q1, maka pilih kromosom pertama v1, kalau tidak pilih kromosom ke-k vk(2 < k < popsize) dengan kata lain qk-1 < r < qk.

Mutasi Metode mutasi yang digunakan hampir sama dengan metode mutasi pada string biner yaitu metode uniform mutation, bedanya dalam string integer nilai yang hendak dimutasikan akan diganti dengan nilai random dari ruang lingkup yang telah ditentukan. 1Tahapan prosedure mutasinya sebagai berikut: 1. Bangkitkan bilangan random r dalam

range [0,1] sebanyak jumlah total gen dalam populasi (panjang kromosom x popsize).

Page 13: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

81

2. Jika rk < pm bangkitkan bilangan random posisi dalam range [1,totalgen].

3. Dari bilangan random posisi tentukan nomor kromosom dan nomor gen.

4. Lakukan perubahan dengan nilai random dari ruang lingkup yang telah ditentukan.

Tujuan mutasi adalah meningkatkan kemampuan algoritma genetika untuk mendapatkan solusi yang mendekati secara optimum.

Parameter Parameter-parameter genetika yang digunakan yaitu probability mutasi (pm) dan parameter ukuran populasi (popsize). Parameter probability mutasi (pm) yang akan menentukan banyaknya gen dalam suatu populasi yang akan dimutasikan. Misalkan pm = 0.01, diharapkan 1% dari keseluruhan gen pada suatu populasi akan dikenai mutasi. Semakin besar nilai parameter probability mutasi (pm), maka semakin besar pula kemungkinan gen terkena mutasi dalam setiap generasinya. Semakin banyak gen yang terkena mutasi maka semakin cepat mencapai nilai konvergen atau nilai fitness tertinggi yang diharapkan user. ANALISIS HASIL PENELITIAN Kesimpulan dari Tabel 7 Pada tabel 7 parameter yang diset tetap adalah:

Original Offspring 1 a h l g s l o m i k

Original Offspring 2 y r w l m k f g d n

Mutated Offspring 1 a h l g a l o m i k

Mutated Offspring 2 y r m l m k f g d n

Tabel 6 Proses mutasi

Masukan Huruf Pm

1 5 13 tobeornottobe 300 0.01 127 2 8 13 tobeornottobe 300 0.01 159 3 10 13 tobeornottobe 300 0.01 288 4 13 13 tobeornottobe 300 0.01 122 5 16 13 tobeornottobe 300 0.01 95 6 20 13 tobeornottobe 300 0.01 226 7 22 13 tobeornottobe 300 0.01 127 8 25 13 tobeornottobe 300 0.01 136 9 28 13 tobeornottobe 300 0.01 92 10 30 13 tobeornottobe 300 0.01 91

11 32 13 tobeornottobe 300 0.01 139 12 35 13 tobeornottobe 300 0.01 102 13 38 13 tobeornottobe 300 0.01 173

14 40 13 tobeornottobe 300 0.01 98 15 43 13 tobeornottobe 300 0.01 198

Konvergen pd

generasi ke-

Max G

en

No U

ji

Pop Size

Lkrom

Tabel 7 Hasil penelitian dengan mengubah-ubah

nilai popsize(banyak populasi)

Masukan Huruf Pm

1 10 5 semut 300 0.01 44 2 10 7 harimau 300 0.01 123 3 10 8 belalang 300 0.01 126 4 10 13 tobeornottobe 300 0.01 288 5 20 5 semut 300 0.01 70 6 20 7 harimau 300 0.01 58 7 20 8 belalang 300 0.01 54 8 20 13 tobeornottobe 300 0.01 226 9 30 5 semut 300 0.01 40

10 30 7 harimau 300 0.01 68 11 30 8 belalang 300 0.01 86 12 30 13 tobeornottobe 300 0.01 91 13 40 5 semut 300 0.01 24 14 40 7 harimau 300 0.01 54 15 40 8 belalang 300 0.01 119 16 40 13 tobeornottobe 300 0.01 98

Tabel 8 Hasil penelitian dengan mengubah-ubah

nilai lkrom(panjang kromosom)

Konver-

gen pd generasi

Max G

en

No U

ji

Pop Size

Lkrom

Page 14: Analisis Proses Word Matching Problem

WAHYU NURJAYA

82

Masukan Huruf Pm

1 10 5 semut 300 0.01 44 2 10 5 bebek 300 0.01 44 3 10 5 buaya 300 0.01 44 4 10 5 jeruk 300 0.01 44 5 10 5 nanas 300 0.01 44 6 10 8 belelang 300 0.01 126 7 10 8 kupukupu 300 0.01 126 8 10 8 kurakura 300 0.01 126 9 10 8 gulagula 300 0.01 126

10 10 8 biribiri 300 0.01 126 11 50 5 semut 300 0.01 35 12 50 5 bebek 300 0.01 32 13 50 5 buaya 300 0.01 60 14 50 5 jeruk 300 0.01 37 15 50 5 nanas 300 0.01 39 16 50 8 belelang 300 0.01 56 17 50 8 kupukupu 300 0.01 61 18 50 8 kurakura 300 0.01 57 19 50 8 gulagula 300 0.01 50 20 50 8 biribiri 300 0.01 91

Konver-

gen pd generasi

Max G

en

No U

ji

Pop Size

Lkrom

Tabel 9 Hasil penelitian dengan mengubah-ubah

nilai lkrom (panjang kromosom)

Masukan Huruf Pm

1 10 4 babi 300 0.01 127 2 10 4 babi 500 0.01 127 3 10 4 ikan 300 0.01 83 4 10 4 ikan 500 0.01 83 5 10 5 semut 300 0.01 44 6 10 5 semut 500 0.01 44 7 10 5 bebek 300 0.01 44 8 10 5 bebek 500 0.01 44 9 10 7 harimau 300 0.01 123 10 10 7 harimau 500 0.01 123 11 10 7 srigala 300 0.01 61 12 10 7 srigala 500 0.01 61 13 10 13 tobeornottobe 300 0.01 288 14 10 13 tobeornottobe 500 0.01 288 15 10 13 nurjayacahaya 300 0.01 178 16 10 13 nurjayacahaya 500 0.01 178 17 50 4 babi 300 0.01 42 18 50 4 babi 500 0.01 42 19 50 4 ikan 300 0.01 30 20 50 4 ikan 500 0.01 30 21 50 5 semut 300 0.01 35 22 50 5 semut 500 0.01 35 23 50 5 bebek 300 0.01 32 24 50 5 bebek 500 0.01 32 25 50 7 harimau 300 0.01 47 26 50 7 harimau 500 0.01 47 27 50 7 srigala 300 0.01 52 28 50 7 srigala 500 0.01 52 29 50 13 tobeornottobe 300 0.01 138 30 50 13 tobeornottobe 500 0.01 138 31 50 13 nurjayacahaya 300 0.01 81 32 50 13 nurjayacahaya 500 0.01 81

Tabel 10 Hasil penelitian dengan mengubah-ubah

nilai maxgen (maksimal generasi)

Konver-

gen pd generasi

Max G

en

No U

ji

Pop Size

Lkrom

Panjang kromosom (lkrom) = 13 Masukan huruf = “tobeornottobe“ Maksimal generasi = 300 Probability mutasi = 0.01 Penulis mencoba mengubah-ubah nilai popsize untuk mengetahui pengaruh dari popsize dalam mencari nilai konvergen atau niali fitness tertinggi. Dari 15 kali (realnya 30 kali) percobaan dapat ditarik kesimpulan bahwa besar atau kecil jumlah popsize tidak berpengaruh dalam cepat atau lambatnya mendapatkan nilai konvergen (hasilnya selalu bervariasi). Masalah ini timbul karena dipengaruhi: 1. Pembangkitan populasi awal secara

random. 2. Apabila dibangkitkan N populasi awal

ternyata dari N populasi awal ini tidak terdapat populasi yang memiliki nilai fitness (tidak ada data hasil random yang memiliki kecocokan huruf dengan ekspresi user), maka nilai konvergen

akan lama didapatkan walaupun N populasi awal yang diambil cukup besar.

3. Apabila N populasi awal ternyata memiliki nilai fitness setidaknya 1% dari jumlah keseluruhan N populasi awal maka nilai konvergen akan cepat didapatkan walaupun N populasi awal kecil.

4. Disini mutasi sangat berperan, jika N populasi awal memiliki 0% nilai fitness, karena hanya mutasilah yang akan merubah dari 0% nilai fitness pada generasi selanjutnya.

Page 15: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

83

No Uji Pop size Lkrom Masukan Huruf Max Gen

Pm Konvergen pada

Generasi 1 10 4 babi 300 0.01 127 2 10 4 babi 300 0.25 8 3 10 4 babi 300 0.50 5 4 10 4 babi 300 0.75 3 5 10 4 ikan 300 0.01 83 6 10 4 ikan 300 0.25 9 7 10 4 ikan 300 0.50 7 8 10 4 ikan 300 0.75 4 9 10 5 semut 300 0.01 44 10 10 5 semut 300 0.25 7 11 10 5 semut 300 0.50 5 12 10 5 semut 300 0.75 5 13 10 5 bebek 300 0.01 44 14 10 5 bebek 300 0.25 7 15 10 5 bebek 300 0.50 5 16 10 5 bebek 300 0.75 5 17 10 7 harimau 300 0.01 123 18 10 7 harimau 300 0.25 11 19 10 7 harimau 300 0.50 8 20 10 7 harimau 300 0.75 6 21 10 7 srigala 300 0.01 61 22 10 7 srigala 300 0.25 11 23 10 7 srigala 300 0.50 8 24 10 7 srigala 300 0.75 5 25 10 13 tobeornottobe 300 0.01 288 26 10 13 tobeornottobe 300 0.25 20 27 10 13 tobeornottobe 300 0.50 9 28 10 13 tobeornottobe 300 0.75 5 29 10 13 nurjayacahaya 300 0.01 178 30 10 13 nurjayacahaya 300 0.25 20 31 10 13 nurjayacahaya 300 0.50 12 32 10 13 nurjayacahaya 300 0.75 5 33 50 4 babi 300 0.01 42 34 50 4 babi 300 0.25 10 35 50 4 babi 300 0.50 7 36 50 4 babi 300 0.75 5 37 50 4 ikan 300 0.01 30 38 50 4 ikan 300 0.25 10 39 50 4 ikan 300 0.50 7 40 50 4 ikan 300 0.75 7 41 50 5 semut 300 0.01 35 42 50 5 semut 300 0.25 13 43 50 5 semut 300 0.50 11 44 50 5 semut 300 0.75 4 45 50 5 bebek 300 0.01 32 46 50 5 bebek 300 0.25 14 47 50 5 bebek 300 0.50 9 48 50 5 bebek 300 0.75 6 49 50 7 harimau 300 0.01 47 50 50 7 harimau 300 0.25 16 51 50 7 harimau 300 0.50 9 52 50 7 harimau 300 0.75 5 53 50 7 srigala 300 0.01 52 54 50 7 srigala 300 0.25 14 55 50 7 srigala 300 0.50 11 56 50 7 srigala 300 0.75 6 57 50 13 tobeornottobe 300 0.01 138 58 50 13 tobeornottobe 300 0.25 20 59 50 13 tobeornottobe 300 0.50 8 60 50 13 tobeornottobe 300 0.75 6 61 50 13 nurjayacahaya 300 0.01 81 62 50 13 nurjayacahaya 300 0.25 19 63 50 13 nurjayacahaya 300 0.50 8 64 50 13 nurjayacahaya 300 0.75 7

Tabel 1 Hasil penelitian dengan mengubah-ubah nilai probability mutasi (pm)

Page 16: Analisis Proses Word Matching Problem

WAHYU NURJAYA

84

Kesimpulan dari Tabel 8: Pada Tabel 8 parameter yang diset tetap adalah: 1. Banyaknya populasi awal diset 10, 20, 30,

dan 40. setiap jumlah populasi awal dilakukan 4 kali percobaan untuk nilai panjang kromosom berubah-ubah, sehingga percobaan dilakukan sebanyak 16 kali.

2. Masukan huruf sesuai dengan panjang kromosom dan setiap kali populasi awal dinaikkan masukan huruf selalu diset tetap mengikuti panjang kromosom.

3. Maksimal generasi = 300 4. Probability mutasi (pm) = 0.01 Penulis mencoba mengubah-ubah nilai lkrom untuk mengetahui pengaruh dari lkrom dalam mencari nilai konvergen. Dari 16 kali (realnya 40 kali) percobaan ternyata didapatkan: 1. Untuk popsize 10, 100% data

menyimpulkan bahwa semakin besar panjang lkrom, maka semakin lambat mendapatkan nilai konvergen.

2. Untuk popsize 20, 75% data menyimpulkan bahwa semakin besar panjang lkrom, maka semakin lambat mendapatkan nilai konvergen. Dan 25% data menyimpulkan tidak berpengaruh semakin besar atau semakin kecil lkrom untuk mendapatkan nilai konvergen (dipengaruhi populasi awal atau masukan huruf).

3. Untuk popsize 30, 100% data menyimpulkan bahwa semakin besar panjang lkrom, maka semakin lambat mendapatkan nilai konvergen.

4. Untuk popsize 40, 75% data menyimpulkan bahwa semakin besar panjang lkrom, maka semakin lambat mendapatkan nilai konvergen. Dan 25% data menyimpulkan tidak berpengaruh semakin besar atau semakin kecil lkrom untuk mendapatkan nilai konvergen (dipengaruhi populasi awal atau masukan huruf).

Berdasarkan 4 asumsi (realnya 10 asumsi) diatas maka ditarik kesimpulan bahwa semakin besar lkrom, maka semakin lambat mendapatkan nilai konvergen. Masalah ini timbul karena kemungkinan untuk menghasilkan kombinasi suatu ekspresi sangat lama yaitu (1/26)lkrom . Contoh ekspresi “tobeornottobe“ memiliki panjang kromosom (lkrom) 13, apabila dilakukan pengacakan secara alami maka kemungkinan ada huruf cocok (1/26)13 =4,03038 x 10-19 yaitu sekitar 2 kemungkinan akan keluar dari semilyar (1.000.000.000) kemungkinan. Kesimpulan Tabel 9 Pada tabel 9 parameter yang diset tetap adalah: 1. Banyaknya populasi awal diset 10 dan 50.

setiap jumlah populasi awal dilakukan 10 kali percobaan untuk nilai lkrom 5 dilakukan lima kali percobaan dan begitu juga untuk lkrom 8 dilakukan lima kali percobaan, sehingga percobaan dilakukan sebanyak 20 kali.

2. Panjang kromosom = 5 dan 8 3. Maksimal generasi = 300 4. Probability mutasi (pm)= 0.01 Penulis mencoba mengubah-ubah nilai word untuk mengetahui pengaruh dari word dalam mencari nilai konvergen. Dari 20 kali (realnya 40 kali) percobaan ternyata didapatkan: 1. Untuk popsize 10 dengan lkrom 5 dengan

masukan huruf:’semut’,’bebek’,’buaya’,’jeruk’,dan ’nanas’. Dari 100% data menyimpulkan bahwa masukan huruftidak berpengaruh dalam cepat atau lambat mendapatkan nilai konvergen.

2. Untuk popsize 10 dengan lkrom 8 dengan masukan huruf:’belalang’,’kupukupu’,kurakura’,’gulagula’, dan ’biribiri’. Dari 100% data menyimpulkan bahwa masukan huruftidak

Page 17: Analisis Proses Word Matching Problem

ANALISIS PROSES WORD MATCHING PROBLEM

85

berpengaruh dalam cepat atau lambat mendapatkan nilai konvergen.

3. Untuk popsize 50 dengan lkrom 5 dengan masukan huruf:’semut’,’bebek’,’buaya’,’jeruk’,dan ’nanas’. Dari 100% data dihasilkan nilai konvergen bervariasi jadi dapat disimpulkan masukan huruf berpengaruh dalam pencapaian niali konvergen.

4. Untuk popsize 50 dengan lkrom 8 dengan masukan huruf:’belalang’,’kupukupu’,kurakura’,’gulagula’, dan ’biribiri’. Dari 100% data dihasilkan nilai konvergen bervariasi jadi dapat disimpulkan masukan huruf berpengaruh dalam pencapaian niali konvergen.

Berdasarkan 4 asumsi (realnya 8 asumsi) di atas maka ditarik kesimpulan bahwa masukan huruf berpengaruh terhadap kecepatan pencapaian nilai konvergen. Kesimpulan dari Tabel 10 Pada Tabel 10 penulis mencoba mengubah-ubah nilai maxgen (maksimal generasi) untuk mengetahui pengaruh dari maxgen dalam mencari nilai konvergen. Dari 32 kali percobaan (realnya 48 kali) dapat ditarik kesimpulan bahwa maxgen tidak berpengaruh terhadap naik atau turunnya nilai konvergen. Ini disebabkan jika nilai konvergen telah didapatkan pada generasi ke 300 maka untuk generasi berikutnya pasti telah konvergen. Kesimpulan dari Tabel 11 Pada Tabel 11 penulis mencoba mengubah-ubah nilai probability mutation (kemungkinan mutasi (pm)) untuk mengetahui pengaruh dari pm dalam mencari nilai konvergen. Parameter pm diset sebagai berikut: 1. pm = 0.01, diharapkan 1% dalam tiap

generasi terkena mutasi. 2. pm = 0.25, diharapkan 25% dalam tiap

generasi terkena mutasi.

3. pm = 0.50, diharapkan 50% dalam tiap generasi terkena mutasi.

4. pm = 0.75, diharapkan 75% dalam tiap generasi terkena mutasi.

Dari 64 kali percobaan (realnya 96 kali) dapat ditarik kesimpulan bahwa semakin besar nilai probability mutation maka akan semakin cepat untuk mendapatkan nilai konvergen, sebaliknya jika nilai probability mutation semakin kecil maka untuk mendapatkan nilai konvergen akan semakin lama. KESIMPULAN DAN SARAN Kesimpulan Dari analisis hasil penelitian dan data yang ada penulis mengambil beberapa kesimpulan yaitu: 1. Fungsi kecocokan fitness didapatkan

dengan cara menggunakan selisih string integer antara ekspresi user dengan ekspresi hasil random.

2. Eksperimen Richard Dawkins lebih mudah untuk dipahami dan dipelajari dengan menggunakan algoritma genetika.

3. Semakin besar nilai fitness yang didapatkan dari proses algoritma genetika maka semakin cepat untuk mencapai nilai konvergen.

4. Besar atau kecil jumlah popsize tidak berpengaruh dalam cepat atau lambatnya mendapatkan nilai konvergen (kesimpulan Tabel 7).

5. Semakin besar panjang kromosom (lkrom) maka semakin lama nilai konvergen didapatkan (kesimpulan Tabel 8)

6. Masukan word (huruf) berpengaruh dalam mendapatkan nilai konvergen, jika ekspresi word yang diharapkan oleh user berbeda-beda maka nilai konvergen didapatkan pada generasi yang berbeda pula (kesimpulan Tabel 9).

7. Maxgen (maksimal generasi) tidak berpengaruh terhadap nilai konvergen, karena jika nilai konvergen didapatkan pada generasi ke 300 maka untuk generasi

Page 18: Analisis Proses Word Matching Problem

WAHYU NURJAYA

86

selanjutnya nilai tetap konvergen (kesimpulan Tabel 10)

8. Semakin besar nilai probability mutation (kemungkinan mutasi (pm)) maka semakin cepat nilai konvergen didapatkan, sebaliknya semakin kecil nilai probability mutation maka semakin lama nilai konvergen didapatkan (kesimpulan Tabel 11).

Saran Berdasarkan pengamatan dari hasil analisis proses word matching problem menggunakan algoritma genetika, penulis menyampaikan beberapa saran sebagai berikut: 1. Penggunaan fungsi fitness (fungsi objektif/

tujuan) diharapkan menggunakan perumusan secara matematika, sehingga dapat memberikan penyelesaian yang lebih akurat dan optimal.

2. Pemakaian mutasi secara khusus seperti pada kasus word matching problem harus memiliki ruang lingkup yang dibatasi, sehingga pencapaian nilai konvergen tidak memakan waktu yang cukup lama.

3. Program algoritma genetika yang telah dibuat hendaknya dijalankan berulang-ulang untuk mendapatkan perbandingan dari solusi masalah setiap inisialisasi yang dibangkitkan.

4. Algoritma genetika diharapkan dapat dikembangkan lebih lanjut untuk permasalahan lainnya.

DAFTAR PUSTAKA Davis & Lawrence. (1991). Handbook of

genetic algorithm. New York: Van Nostrand Reinhold.

Dawkins, R. The blind watchmaker. Addison Westly.

Freeman, J.A. Simulating Neural Network with Mathematica. Addison Westley.

Goldberg, D.E. (1989). Genetic algorithms in search optimization and machine learning. United State of America: Addison Westley.

Insap, S. (1989). Pemrograman Pascal Tingkat Lanjut. Yogyakarta: Andi.

Insap, S. (1997). Struktur Data Menggunakan Turbo Pascal 6.0. Yogyakarta: Andi.

Jogiyanto. (2001). Teori dan aplikasi program komputer bahasa Turbo Pascal (jilid 1, versi 5.0). Yogyakarta: Andi.

Rinaldi, M. (1998). Algoritma dan Pemrograman (Buku 2). Bandung: Informatika.

Zbigniew, M. (1996). Genetic algorithms + data structure = evolution programs. New York: Springer Verleg.