• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN SISTEM

3.4. Analisis Algoritma Genetika (Hitung Manual) 1 Proses Seleksi

Proses seleksi adalah proses yang memegang peranan penting dalam algoritma genetika. Proses seleksi ini digunakan agar hanya kromosom-kromosom yang berkualitas yang dapat melanjutkan peranannya dalam proses algoritma genetika berikutnya. Ada bermacammacam teknik untuk melakukan proses seleksi pada suatu permasalahan. Teknik seleksi yang akan digunakan tergantung pada permasalahan yang akan diselesaikan. Ada beberapa metode seleksi dari induk, diantaranya adalah Rank-based Fitness Assignment, Roulette Wheel Selection, Stochastic Universal Sampling, Local Selection, Truncation Selection, Tournament Selection (Joni, 2012).

Proses penyeleksian yang digunakan disini adalah Roulette Wheel Selection.

Pada proses penyeleksian digunakan suatu parameter yang disebut kesesuaian atau fitness. Fitness digunakan untuk menentukan seberapa baik kromosom akan bertahan hidup. Penentuan berapa besar nilai fitness suatu kromosom berdasarkan fungsi fitness yang didefinisikan tersendiri. Untuk penelitian ini maka fungsi fitness didefinisikan sebagai:

Fitness = TotalJarak (1)

Untuk menghitung nilai fitness dalam kasus ini, yang dibutuhkan untuk inisialisasi data awal adalah data jarak pengantaran paket. Berikut ini adalah data jarak pengantaran paket pada Tabel 3.1.

Tabel 3.1 Data Jarak Antar Titik

No Titik 1 Titik 2 Jarak

1 A B 7

2 A C 5

3 A D 9

4 A E 9

Tabel 3.1 Data Jarak Alamat Pengantaran Paket (Lanjutan)

No Titik 1 Titik 2 Jarak

5 B A 7

6 B C 7

7 B D 2

8 B E 8

9 C A 5

10 C B 7

11 C D 4

12 C E 3

13 D A 9

14 D B 2

15 D C 4

16 D E 6

17 E A 9

18 E B 8

19 E C 3

20 E D 6

Ada 4 kota yang akan menjadi gen dalam kromosom yaitu kota-kota selain kota asal.

Kemudian misalkan ada enam populasi dalam satu generasi yaitu :

Kromosom[1] = [B D E C]

Kromosom[2] = [D B E C]

Kromosom[3] = [C B D E]

Kromosom[4] = [E B C D]

Kromosom[5] = [E C B D]

Kromosom[6] = [C D E B]

Kemudian dihitung nilai fitnessnya :

Fitness[1] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23 Fitness[2] = AD+DB+BE+EC+CA = 9 + 2 + 8 + 3 + 5 = 27 Fitness[3] = AC+CB+BD+DE+EA = 5 + 7 + 2 + 6 + 9 = 29 Fitness[4] = AE+EB+BC+CD+DA = 9 + 8 + 7 + 4 + 9 = 37 Fitness[S] = AE+EC+C B+BD+DA = 9 + 3 + 7 + 2 + 9 = 30 Fitness[6] = AC+CD+DE+EB+BA = 5 + 4 + 6 + 8 + 7 = 30

Dari hasil diatas dicari kromosom dengan fitness yang lebih kecil dan kromosom tersebut akan mempunyai probabilitas lebih besar untuk terpilih kembali maka digunakan inverse. Dengan rumus :

𝑄[𝑖] = 1

𝐹𝑖𝑡𝑛𝑒𝑠𝑠 [𝑖] (2)

Q[1] = 1/23 = 0.043 Q[2] = 1/27 = 0.037 Q[3] = 1/29 = 0.034 Q[4] = 1/37 = 0.027 Q[5] = 1/30 = 0.033 Q[6] = 1/30 = 0.033

Total Q[i] = 0,043+ 0,037+0,034+0,027+0,033+0,033 = 0,207

Kemudian setelah menemukan nilai Q-nya, dilanjutkan dengan mencari probabilitasnya, untuk tahu kromosom mana yang terpilih sebagai generasi baru.

Rumus probabilitasnya : 𝑃[𝑖] 𝑄[𝑖]

𝑇𝑜𝑡𝑎𝑙 𝑄 (3)

P[1] = 0.043 / 0.207 = 0.208 P[2] = 0.037 / 0.207 = 0.179 P[3] = 0.034 / 0.207 = 0.164 P[4] = 0.207 / 0.027 = 0.130 P[5] = 0.033 / 0.207 = 0.159 P[6] = 0.033 / 0.207 = 0.159

Terlihat bahwa kromosom ke-1 mempunyai fitness terkecil sehingga probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari pada kromosom yang lain. Proses seleksi dengan menggunakan Roulette Wheel Selection mempunyai tahap-tahap sebagai berikut:

1. [Sum] : Jumlahkan semua nilai probabilitasnya → C

2. [Select] : Men-generate bilangan random dengan intervel (0-C) → R 3. [Loop] : Membandingkan nilai R dan C, Jika R[k]<C[k] maka kromosom

ke-k sebagai induk,selain itu pilih kromosom ke-k sebagai induk dengan syarat C[k-1] < R[k] < C[k]

Looping atau proses memutar Roulette Wheel nya dilakukan sebanyak jumlah kromosom (enam) untuk mendapatkan nilai randomnya.

Mencari nilai kumulatif dari probabilitasnya (C).

C[1] = 0.208

C[2] = 0.208+ 0.179 = 0.387 C[3] = 0.387 + 0.164 = 0.551 C[4] = 0.551 + 0.130 = 0.681 C[5] = 0.681 + 0.159 = 0.84 C[6] = 0.844 + 0.159 = 0.999

Setelah dihitung kumulatif probabilitasnya maka proses seleksi menggunakan roulete-wheel dapat dilakukan. Prosesnya adalah dengan membangkitkan bilangan acak

R dalam range 0-100. Jika R[k] < C[1] maka pilih kromosom 1 sebagai induk, selain itu pilih chromosome ke-k sebagai induk dengan syarat C[k-1] < R < C[k]. Kita putar roulete wheel sebanyak jumlah populasi yaitu 6 kali (bangkitkan bilangan acak R) dan pada tiap putaran, kita pilih satu chromosome untuk populasi baru. Misal:

R[1] : 10 R[2] : 91 R[3] : 29 R[4] : 50 R[5] : 99 R[6] : 17

Dari bilangan acak yang telah dibangkitkan diatas maka populasi kromosom baru hasil proses seleksi adalah:

K[1] = rand(10) = K[1]

K[2] = rand(91) = K[6]

K[3] = rand(29) = K[2]

K[4] = rand(50) = K[3]

K[5] = rand(99) = K[6]

K[6] = rand(17) = K[1]

Setelah perbandingan dilakukan, di dapatkan populasi yang terbaru : Kromosom[1] = [B D E C]

Kromosom[2] = [C D E B]

Kromosom[3] = [D B E C]

Kromosom[4] = [C B D E]

Kromosom[5] = [C D E B]

Kromosom[6] = [B D E C]

3.4.2 Proses Rekombinasi atau Crossover

Proses rekombinasi atau yang lebih dikenal dengan nama proses crossover adalah menyilangkan dua kromosom sehingga membentuk kromosom baru yang harapannya lebih baik dari pada induknya. Tidak semua kromosom pada suatu populasi akan

mengalami proses rekombinasi. Kemungkinan suatu kromosom mengalami proses rekombinasi didasarkan pada probabilitas crossover (PC) yang telah ditentukan terlebih dahulu. Probabilitas crossover menyatakan peluang suatu kromosom akan mengalami crossover. Ada beberapa teknik rekombinasi yang dapat digunakan untuk menyelesaikan masalah seperti ini, antara lain adalah partially mapped crossover (PMX), order crossover dan cycle crossover.

Teknik rekombinasi yang digunakan adalah teknik order crossover. Order crossover (OX) diperkenalkan oleh Davis. Teknik ini diawali dengan membangkitkan dua bilangan acak. Kemudian gen yang berada diantara kedua bilangan acak akan disalin ke offspring dengan posisi yang sama. Langkah berikutnya untuk mendapatkan offspring pertama adalah mengurutkan gen yang berada pada parent kedua dengan urutan gen yang berada pada posisi setelah bilangan acak kedua diikuti dengan gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen yang berada pada posisi diantara kedua bilangan acak. Kemudian gen yang telah diurutkan tersebut dibandingkan dengan offspring pertama. Apabila gen tersebut ada pada offspring kedua maka abaikan gen tersebut dari urutan itu. Kemudian masukkan urutan yang baru saja didapat pada offspring dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu dan sisanya dimasukkan pada posisi sebelum bilangan acak pertama. Begitu juga untuk menghasikan offspring kedua.

Misal kita tentukan PC = 100%, maka diharapkan dalam 1 generasi ada 100% * 6 kromosom = 6 kromosom dari populasi mengalami crossover. Maka proses crossover adalah sebagai berikut :

R1 = 1 dan R2 = 2

Kromosom[1] B D E C

Lokasi 0 1 2 3

Kromosom[2] C D E B

Kromosom[1] B C

Kromosom[2] C B

Kromosom[1] C D E B

Kromosom[2] B D E C

R1 = 0 dan R2 = 1

Kromosom[3] D B E C

Lokasi 0 1 2 3

Kromosom[4] C B D E

Kromosom[3] D E

Kromosom[4] C E

Kromosom[3] C B D E

Kromosom[4] D B C E

R1 = 1 dan R2 = 3

Kromosom[5] C D E B

Lokasi 0 1 2 3

Kromosom[6] B D E C

Kromosom[5] B

Kromosom[6] C

Kromosom[5] B D E C

Kromosom[6] C D E B

Dengan demikian populasi kromosom setelah melalui proses crossover adalah:

Kromosom[1] = [C D E B]

Kromosom[2] = [B D E C]

Kromosom[3] = [C B D E]

Kromosom[4] = [D B C E]

Kromosom[5] = [B D E C]

Kromosom[6] = [C D E B]

3.4.3 Proses Mutasi

Proses mutasi ini dilakukan setelah proses rekombinasi dengan cara memilih kromosom yang akan dimutasi secara acak, dan kemudian menentukan titik mutasi pada kromosom tersebut secara acak pula. Banyaknya kromosom yang akan mengalami mutasi dihitung berdasarkan probabilitas mutasi yang telah ditentukan terlebih dahulu.

Apabila probabilitas mutasi adalah 100% maka semua kromosom yang ada pada populasi tersebut akan mengalami mutasi. Sebaliknya, jika probabilitas mutasi yang digunakan adalah 0% maka tidak ada kromosom yang mengalami mutasi pada populasi tersebut.

Ada bermacam-macam teknik mutasi yang dapat digunakan untuk menyelesaikan suatu masalah dengan algoritma genetika. Seperti pada teknik rekombinasi, teknik mutasi juga dirancang untuk digunakan pada suatu masalah yang spesifik sehingga tidak setiap teknik mutasi dapat diterapkan pada suatu masalah yang akan diselesaikan. Selain itu, teknik mutasi yang digunakan juga harus sesuai dengan teknik encoding yang digunakan untuk menyelesaikan permasalahan tersebut. Beberapa teknik mutasi yang dapat digunakan dalam penyelesaian masalah ini adalah inversion mutation, insertion mutation, swapping mutation dan reciprocal mutation.

Pada kasus ini skema mutasi yang digunakan adalah swapping mutation. Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate (PM). Proses mutasi dilakukan dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya. Jika gen tersebut berada di akhir kromosom, maka ditukar dengan gen yang pertama.

Pertama dihitung dahulu panjang total gen yang ada pada satu populasi:

Panjang Total Gen = jumlah gen dalam 1 kromosom * jumlah Kromosom (4) Panjang Total Gen = 4 * 6

Panjang Total Gen = 24

Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan membangkitkan bilangan acak antara 0 sampai panjang total gen yaitu 0 sampai 24.

Bangkitan dua bilangan random (antara 0 sampai panjang gen) untuk setiap individu, sebanyak jumlah individu dalam populasi. Tukarkan gen dengan lokasi kedua bilangan tersebut dengan cara:

Kromosom[1]

Bilangan R[1] = 1, bilangan R[2] = 3

C D E B

Lokasi 0 1 2 3

Maka tukarkan gen lokasi satu dengan lokasi ketiga.

C B E D

Lokasi 0 1 2 3

Kromosom[2]

Bilangan R[1] = 2, bilangan R[2] = 3

B D E C

Lokasi 0 1 2 3

Maka tukarkan gen lokasi kedua dengan lokasi ketiga.

B D C E

Lokasi 0 1 2 3

Kromosom[3]

Bilangan R[1] = 0, bilangan R[2] = 3

C B D E

Lokasi 0 1 2 3

Maka tukarkan gen lokasi nol dengan lokasi ketiga.

E B D C

Lokasi 0 1 2 3

Kromosom[4]

Bilangan R[1] = 0, bilangan R[2] = 2

D B C E

Lokasi 0 1 2 3

Maka tukarkan gen lokasi nol dengan lokasi kedua.

C B D E

Lokasi 0 1 2 3

Kromosom[5]

Bilangan R[1] = 0, bilangan R[2] = 1

B D E C

Lokasi 0 1 2 3

Maka tukarkan gen lokasi nol dengan lokasi kesatu.

D B E C

Lokasi 0 1 2 3

Kromosom[6]

Bilangan R[1] = 1, bilangan R[2] = 2

C D E B

Lokasi 0 1 2 3

Maka tukarkan gen lokasi satu dengan lokasi kedua.

C E D B

Lokasi 0 1 2 3

Setelah proses ini selesai maka satu generasi telah selesai pula di-generate dengan algoritma genetika. Sebelumnya ditentukan dulu kapan proses algoritma genetika ini akan berhenti. Ada beberapa kondisi untuk mengeceknya yaitu jika diperoleh nilai fitness yang terendah yang tidak berubah atau kita tentukan akan di generate hingga generasi ke – N.

Kemudian dicari lagi nilai Fitnessnya. Nilai fitness setelah 1 generasi adalah:

Fitness[1] = AC+CB+BE+ED+DA = 5+7+8+6+9 = 36 Fitness[2] = AB+BD+DC+CE+EA = 7+2+4+3+9 = 25 Fitness[3] = AE+EB+BD+DC+CA = 9+8+2+4+5 = 28 Fitness[4] = AC+CB+BD+DE+EA = 5+7+2+6+9 = 29 Fitness[5] = AD+DB+BE+EC+CA = 9+2+8+3+5 = 28 Fitness[6] = AC+CE+ED+DB+BA = 5+3+6+2+7 = 21 3.5. Perancangan Sistem

Di dalam sub-bab ini dijelaskan mengenai arsitektur umum, alur kerja sistem, rancangan database, rancangan algotirma Genetika dan rancangan sistem. Untuk pengerjaan sistem secara menyeluruh dapat dilihat pada Gambar 3.2.

Gambar 3.2. Alur Sistem 3.5.1. Alur Kerja Sistem

Secara prinsip, implementasi algoritma genetik untuk mencari jarak terpendek hampir sama dengan implementasi algoritma Genetika pada penyusunan barang dalam box container. Yang membedakan adalah informasi dalam sebuah kromosom.

Gambar 3.3. Alur Optimalisasi rute dengan Algoritma Genetika

Flowchart untuk proses pencarian terpendek dengan mengimplementasikan algoritma genetik adalah seperti terlihat pada Gambar 3.5 untuk awal proses dibentuk sebuah populasi yang terdiri dari sejumlah individu. Dimana jumlah individu akan ditentukan oleh user dengan meng-input-kan jumlah populasi pada program yang akan dibuat. Setelah membentuk populasi awal maka sesuai dengan kromosom yang telah terbentuk, dimulai menelusuri peta yang telah di-input oleh user dengan memberi input jumlah titik atau kota yang dikunjungi dan memberi input jarak antar kota. Proses selanjutnya adalah proses penghitungan nilai fitness dari fungsi fitness yang telah ditentukan. Setelah penghitungan fungsi fitness maka diadakan evaluasi dari seluruh individu dalam populasi. Proses berikutnya memeriksa apakah telah memenuhi kriteria untuk berhenti. Apabila belum maka operator Algoritma genetika digunakan untuk menghasilkan individu baru sehingga membentuk populasi yang baru. Maka iterasi berikutnya akan terjadi dengan proses yang sama seperti penjelasan diatas.

Dokumen terkait