185
IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK KENDALI LOGIKA FUZZY UNTUK MENGATASI TRAVELLING SALESMAN PROBLEM MENGGUNAKAN MATLAB (Studi Kasus PT. Pos Indonesia DC Tugu Semarang) skripsi disajikan sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains Program Studi Matematika oleh Erma Nurul Fitriana 4111410012 JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS NEGERI SEMARANG 2014

IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

  • Upload
    dokien

  • View
    311

  • Download
    25

Embed Size (px)

Citation preview

Page 1: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

IMPLEMENTASI ALGORITMA GENETIKA

DENGAN TEKNIK KENDALI LOGIKA FUZZY

UNTUK MENGATASI TRAVELLING SALESMAN

PROBLEM MENGGUNAKAN MATLAB

(Studi Kasus PT. Pos Indonesia DC Tugu Semarang)

skripsi

disajikan sebagai salah satu syarat

untuk memperoleh gelar Sarjana Sains

Program Studi Matematika

oleh

Erma Nurul Fitriana

4111410012

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS NEGERI SEMARANG

2014

Page 2: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK
Page 3: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK
Page 4: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

HALAMAN MOTTO DAN PERSEMBAHAN

MOTTO Barangsiapa merintis jalan mencari ilmu maka Allah akan memudahkan baginya

jalan ke surga. (HR. Muslim).

Bersungguh-sungguhlah engkau dalam menuntut ilmu, jauhilah kemalasan dan

kebosanan karena jika tidak demikian engkau akan berada dalam bahaya

kesesatan. (Imam Al Ghazali).

Tiadanya keyakinanlah yang membuat orang takut menghadapi tantangan, dan

saya percaya pada diri saya sendiri. (Muhammad Ali).

PERSEMBAHAN 1. Untuk Ibu Dwi Mardiyanti dan Bapak Sudirno yang

selalu dan tiada henti mencurahkan kasih sayang,

semangat, dukungan, dan segalanya untukku.

2. Untuk Yangti yang selalu menyelipkan namaku di

setiap doanya.

3. Untuk segenap keluarga besar yang telah

memberikan dukungannya.

4. Untuk Mas Saeful Bakhtiar yang selalu menjadi

sumber semangat dan inspirasiku.

5. Untuk Umi Latifah, Zahrina Amalia Tamimi, Istatik

Rohmana, dan semua sahabat-sahabatku di jurusan

Matematika 2010 yang menemani perjuanganku.

6. Untuk sahabat-sahabatku ODOJ grup 1524 yang

selalu menjadi pengingat ketika malas mendera.

iv

Page 5: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

PRAKATA

Puji syukur hadirat Allah SWT yang telah melimpahkan rahmat dan

karunia-Nya, sehingga penulis dapat menyelesaikan penulisan skripsi yang

berjudul “Implementasi Algoritma Genetika dengan Teknik Kendali Logika

Fuzzy untuk Mengatasi Travelling Salesman Problem Menggunakan MATLAB

(Studi Kasus PT. Pos Indonesia DC Tugu Semarang)”. Penulisan skripsi ini

sebagai syarat mutlak yang harus dipenuhi oleh penulis untuk memperoleh gelar

sarjana sains di Universitas Negeri Semarang.

Penulisan skripsi ini dapat terselesaikan karena adanya bimbingan,

bantuan, dan dukungan dari berbagai pihak baik secara langsung maupun tidak

langsung. Oleh karena itu, penulis mengucapkan terima kasih kepada:

1. Prof. Dr. Fathur Rokhman, M.Hum, Rektor Universitas Negeri Semarang.

2. Prof. Dr. Wiyanto, M.Si, Dekan FMIPA Universitas Negeri Semarang.

3. Drs. Arief Agoestanto, M.Si, Ketua Jurusan Matematika FMIPA Universitas

Negeri Semarang.

4. Endang Sugiharti, S.Si., M.Kom. Pembimbing yang telah memberikan

bimbingan, motivasi, waktu, dan pengarahan.

5. Ibu dan Bapak tercinta yang selalu memberikan doa serta memberikan

dukungan baik secara moral maupun spiritual.

6. Segenap keluarga besar yang telah memberikan dukungannya.

7. Sahabat-sahabat yang telah memberikan banyak motivasi, kritik, usulan yang

menjadikan terselesaikannya penulisan skripsi ini.

v

Page 6: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

8. Mahasiswa matematika angkatan 2010 yang telah memberikan dorongan dan

motivasi.

9. Semua pihak yang telah membantu terselesaikannya penulisan skripsi ini.

Akhirnya penulis berharap semoga skripsi ini dapat bermanfaat bagi

penulis pada khususnya dan pembaca pada umumnya.

Semarang, Agustus 2014

Penulis

vi

Page 7: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

ABSTRAK

Fitriana, Erma Nurul. 2014. Implementasi Algoritma Genetika dengan Teknik

Kendali Logika Fuzzy Untuk Mengatasi Travelling Salesman Problem

menggunakan Matlab (Studi Kasus PT. Pos Indonesia DC Tugu Semarang).

Skripsi, Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam

Universitas Negeri Semarang. Pembimbing: Endang Sugiharti, S.Si, M.Kom.

Kata Kunci: Algoritma Genetika, Fuzzy Sugeno, MATLAB, Travelling Salesman

Problem.

Travelling Salesman Problem (TSP) adalah problem mencari rute optimal

bagi seorang salesman yang berkeliling mengunjungi kota dengan setiap kota

dikunjungi satu kali kecuali kota asal. Skripsi ini akan meneliti salah satu kasus

TSP pada masalah pngirimin surat dan barang di PT. Pos Indonesia DC Tugu

Semarang dengan tujuan 22 alamat penerima di wilayah Kecamatan Ngaliyan

Kota Semarang. Pada penelitian ini, digunakan algoritma genetika dengan teknik

kendali logika fuzzy dalam Matlab 7.8.0 (R2009a).

Pengambilan data dilakukan dengan cara mendokumentasikan data dari

PT. Pos Indonesia DC Tugu Semarang. Data yang diambil berupa alamat-alamat

penerima surat dan barang di wilayah Kecamatan Ngaliyan Semarang, selanjutnya

dilakukan pencarian koordinat masing-masing lokasi dengan bantuan situs

wikimapia.org dan melakukan survey secara langsung pada beberapa sample

alamat sehingga jarak antar lokasi dapat diketahui. Analisis data dilakukan

menggunakan mekanisme algoritma genetika dengan teknik kendali logika fuzzy

yang diaplikasikan dalam program MATLAB. Penentuan probilitas crossover

( , probabilitas mutasi ( , jumlah kromosom dalam 1 generasi, dan

maksimum generasi memberikan pengaruh yang signifikan terhadap solusi

optimal yang bisa didapatkan.

Dari hasil analisis algoritma genetika dengan teknik kendali logika fuzzy

diperoleh hasil bahwa solusi optimal menggunakan masukkan populasi 100 dan

generasi 1000 lebih baik dari solusi optimal yang didapatkan dengan masukkan

populasi dan generasinya berturut-turut adalah (100 dan 100), (100 dan 200), (100

dan 500), (200 dan 100), (500 dan 100) dan (1000 dan 100). Kemudian

didapatkan rute terbaiknya adalah 1-3-4-6-9-8-7-19-18-16-17-20-21-22-15-12-11-

10-14-13-5-2-1 dan panjang jalur terbaiknya adalah 22,63 Km dengan

memasukkan populasi 100 dan generasi 1000.

Dari hasil analisis, diharapkan PT Pos Indonesia DC Tugu Semarang dapat

menerapkan metode perhitungan rute optimal dengan algoritma genetika dengan

teknik kendali logika fuzzy pada MATLAB agar dapat mengetahui jalur

terpendek pendistribusian surat dan jasa sehingga dapat menekan biaya

transportasi, dan mengaplikasikannya dalam bentuk GUI agar mempermudah user

dalam program tersebut.

vii

Page 8: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

DAFTAR ISI

Halaman

PRAKATA………………………………………………………….………..... v

ABSTRAK……………………………………………………………………... vii

DAFTAR ISI…………………………………………………………………... viii

DAFTAR GAMBAR…………………………………………………………... xiii

DAFTAR TABEL……………………………………………………………... xv

DAFTAR LAMPIRAN………………………………………………………... xvi

BAB 1 PENDAHULUAN…………………...………………………………… 1

1.1 Latar Belakang………………………………………………………. 1

1.2 Perumusan Masalah…………………………………………………. 2

1.3 Pembatasan Masalah………………………………………………… 3

1.4 Tujuan dan Manfaat Penelitian……...………………………………. 3

1.5 Manfaat Penelitian........……………………………………….….….. 4

1.6 Sistematika Penulisan………………………………………………... 4

1.6.1 Bagian Awal…………………………………………………... 4

1.6.2 Bagian Isi……………………………………………………... 4

1.6.3 Bagian Akhir………………………………………………….. 6

BAB 2 LANDASAN TEORI……………………………………………….…. 7

2.1 Teori Graf………………..………………………………………....... 7

2.1.1 Definisi Graf………………..…………………………………... 7

2.1.2 Jenis-jenis Graf………………….…….…….…….…….…….... 8

2.1.3 Jalan (Walk)………………..……….…….…….……….…….... 9

viii

Page 9: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

2.1.4 Jejak (Trail)………………….…….…….…….…….…….….... 10

2.1.5 Lintasan (Path)………………..………...…...…...…...…...…... 10

2.1.6 Sirkuit………………………………………………………..…. 11

2.1.7 Graf Euler dan Graf Semi-Euler………………………………. 12

2.1.8 Lintasan dan Sirkuit Hamilton…………………………………. 13

2.1.9 Graf Terhubung (Connected Graph)………………………….... 13

2.1.10 Graf Berbobot…………………………………………………. 14

2.1.11 Lintasan Terpendek………………………………………….... 15

2.2 Sekilas Tentang MATLAB………………………………………….. 16

2.2.1 Sejarah Travelling Salesman Problem…………………..……... 18

2.2.2 Contoh Perkembangan Masalah yang Muncul……….....……… 18

2.3 Algoritma Genetika………………………………………………….. 19

2.4 Fuzzy…………………………………………..…………………….. 32

2.4.1 Logika Fuzzy…………………………………………………... 32

2.4.2 Himpunan Fuzzy…………………………………………..…… 33

2.4.3 Fungsi Keanggotaan Fuzzy……..……………………………… 36

2.4.4 Sistem Inferensi Fuzzy……………………………………….... 40

2.4.4.1 Metode Sugeno…………………………..…………….. 40

2.4.5 Kendali Logika Fuzzy………………………………………..... 42

2.4.6 IF-THEN Rule………………………………………………….. 43

2.5 Hubungan antara Algoritma Genetika dengan Kendali Logika

Fuzzy………………………………...……………………………….......

44

2.6 Sekilas tentang MATLAB……………………………………...…… 45

ix

Page 10: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

2.6.1 Beberapa Bagian dari Window MATLAB………………….….. 46

2.6.2 Meminta Bantuan……………………………………………..... 47

2.6.3 Interupting dan Terminating dalam MATLAB…………….... 47

2.6.4 Variabel pada MATLAB……………………………….......….. 47

2.7 Pembuatan Aplikasi Berbasis GUI…………………………………. 48

2.7.1 Pendahuluan………………………………………………….. 48

2.7.2 GUI…………………………………………………………….. 48

2.7.3 M-File Editor…………………………………………………… 49

BAB 3 METODE PENELITIAN...................................………………………. 50

3.1 Menemukan masalah ………………………………………………... 50

3.2 Merumuskan Masalah………………………………..………………. 50

3.3 Pengambilan Data ……………………………………………...……. 50

3.4 Analisis dan Pemecahan Masalah……………....……………………. 53

3.4.1 Aplikasi Kebutuhan……………………………..………….…. 54

3.4.1.1Analisis Kebutuhan Masukan (Input)………..……...…. 54

3.4.1.2 Analisis Kebutuhan Proses….….….….….….…....…....

3.4.1.3 Analisis Kebutuhan Keluaran (Output) .…..…..….…....

3.4.2 Perancangan Perangkat Lunak….….….…..….….….…………

3.5 Penarikan Kesimpulan………………………………………………..

BAB 4 HASIL PENELITIAN DAN PEMBAHASAN…..…………………….

55

55

56

59

60

4.1 Hasil Penelitian……………………………………………………… 60

4.1.1 Pengkodean Kromosom…………………………….…………. 61

4.1.2 Inisialisasi Populasi…………………………………….……… 62

x

Page 11: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

4.1.3 Evaluasi Individu……………………………………………… 63

4.1.4 Roulette Wheel Selection……………………………………… 64

4.1.5 Update Probabilitas Crossover dan Probabilitas Mutasi……… 65

4.1.6 Implementasi Program……………………………….………... 66

4.1.7 Hasil Simulasi Program………………………………….……. 69

4.1.7.1 Perhitungan menggunakan masukan populasi 100 dan

generasi 100……………………………………………….…..

69

4.1.7.2 Perhitungan menggunakan masukan populasi 100 dan

generasi 200……………………………………………….…..

75

4.1.7.3 Perhitungan menggunakan masukan populasi 100 dan

generasi 500……………………………………………….…..

78

4.1.7.4 Perhitungan menggunakan masukan populasi 100 dan

generasi 1000……………………………………………….…..

80

4.1.7.5 Perhitungan menggunakan masukan populasi 200 dan

generasi 100……………………………………………….…..

85

4.1.7.6 Perhitungan menggunakan masukan populasi 500 dan

generasi 100……………………………………………….…..

84

4.1.7.7 Perhitungan menggunakan masukan populasi 1000 dan

generasi 100……………………………………………….…..

86

4.1.8 Analisis Penyelesaian Travelling Salesman Problem Menggunakan

Aplikasi Algoritma Genetika dengan Teknik Kendali Logika Fuzzy

dalam Pengiriman Surat dan Barang di PT. Pos Indonesia DC Tugu

……………………………………………………………………………

88

xi

Page 12: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

4.2 Pembahasan………………………………………………………… 91

BAB 5 PENUTUP………………………………………………...………….... 94

5.1 Simpulan…………………………………………………………….. 94

5.2 Saran…………………………………………………………………. 95

DAFTAR PUSTAKA………………………………………………………….. 96

xii

Page 13: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

DAFTAR GAMBAR

Gambar Halaman

2.1 Gambar Contoh Graf G………..…….…….……..…………………... 8

2.2 Gambar Graf berdasarkan orientasi arah (a) graf berarah dan (b) graf

tak berarah………………..……..……..……..……..……..……..…...

9

2.3 Gambar Jalan pada Graf G……………..……..………………………. 10

2.4 Gambar Jejak pada Graf G…...………..……..……..……..…….……. 10

2.5 Gambar Lintasan pada Graf G……….……..……..…………………. 11

2.6 Gambar Sirkuit pada Graf G……….………..…………..…………… 12

2.7 Gambar Eulerian pada Graf G……….…………………………..…… 12

2.8 Gambar Hamiltonian pada Graf G……………….....………………… 13

2.9 Gambar (a) Graf Terhubung, (b) Graf tak terhubung………………… 14

2.10 Gambar Contoh Graf Berbobot ……….……………………………. 15

2.11 Gambar Ilustrasi Seleksi dengan Mesin Roulette…………………… 24

2.12 Gambar Contoh gen sebelum dan sesudah mutasi dengan

pengkodean pohon……………………………………………………

31

2.13 Gambar Himpunan fuzzy untuk variabel umur…………………….… 34

2.14 Gambar Himpunan fuzzy pada variabel temperatur………………..… 35

2.15 Grafik liner naik…………...…………………………………………. 37

2.16 Grafik linear turun...………………………… ………………………. 37

2.17 Grafik Representasi fungsi segitiga...…………………………….…... 38

Page 14: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

2.18 Grafik Keanggotaan bilangan fuzzy A...………………………..……. 39

2.19 Grafik Bilangan Fuzzy L-R...………………………..………….……. 40

2.20 Diagram fuzzy sugeno...…………………..………………….………. 42

2.21 Diagram Konsep umum kronologi proses...…….……………………. 42

3.1 Gambar Halaman depan wikimapia...……… ……………………....... 51

3.2 Gambar Hasil pencarian tempat...………………… …………………. 52

3.3 Menu Login wikimapia………………………………………………… 52

3.4 Gambar Hasil pengukuran jarak…………………………………...… 53

4.1 Gambar Posisi 22 Alamat dalam Grafik………………….………….. 61

4.2 Gambar Sintak inisialisasi populasi...………………………………… 62

4.3 Gambar Sintak evaluasi individu……………….…………………….. 63

4.4 Gambar Sintak Roulette Wheel Selection…………………………….. 64

4.5 Tampilan Fuzzy sugeno...……………………………….……...…….. 65

4.6 Tampilan TSP...…………………………………………..…………... 67

4.7 Tampilan Hasil Uji...………………………………………....……….. 68

4.8 Tampilan Tampilan Koordinat Kota atau Alamat Dituju...…………... 69

4.9 Tampilan TSP Setelah Memasukan Koordinat Kota, Populasi, dan

Generasi ………………………………………………………..……..

70

4.10 Gambar Hasil pencarian mutasi dan probabilitas crossover....….…… 71

4.11 Tampilan TSP setelah dijalankan…………………….……………….. 72

4.12 Tampilan grafik rute koordinat alamat tujuan………………………… 72

4.13 Tampilan Hasil uji pada populasi 100 dan generasi 100……………... 73

4.14 Tampilan Data yang telah disimpan pada excel………………………. 73

xiii

Page 15: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

4.15 Proses Perhitungan dengan panjang jalur terbaik 22,63……………… 90

DAFTAR TABEL

Tabel Halaman

4.1 Tabel Hasil Perhitungan mengunakan Populasi 100 dan Generasi

100….………………………………………………………………....

74

4.2 Tabel Hasil Perhitungan mengunakan Populasi 100 dan Generasi

200….………………………………………………………………....

76

4.3 Tabel Hasil Perhitungan mengunakan Populasi 100 dan Generasi

500….………………………………………………………………....

78

4.4 Tabel Hasil Perhitungan mengunakan Populasi 100 dan Generasi

1000….………………………………………………………………..

80

4.5 Tabel Hasil Perhitungan mengunakan Populasi 200 dan Generasi

100….………………………………………………………………..

82

4.6 Tabel Hasil Perhitungan mengunakan Populasi 500 dan Generasi

100….………………………………………………………………....

84

4.7 Tabel Hasil Perhitungan mengunakan Populasi 1000 dan Generasi

100….………………………………………………………………....

86

4.8 Tabel Hasil Panjang Jalur Terbaik….……………………………...… 88

4.9 Tabel Hasil Mutasi dan Probabilitas Crossover….…………………... 90

xiv

Page 16: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

DAFTAR LAMPIRAN

Lampiran 1 Nama, Alamat, dan Kode Lokasi Penerimaan Surat dan Barang

dari PT Pos Indonesia DC Tugu Semarang…………………….

99

Lampiran 2 Kode Lokasi, Koordinat X, Koordinat Y pada Alamat

Penerima Surat dan Barang dari PT Pos Indonesia DC Tugu

Semarang ………………...……………………………………

100

Lampiran 3 Jarak Antartitik Koordinat ………………...………………….. 101

Lampiran 4 Tampilan Simulasi Matlab ………………………...……….…. 103

Lampiran 5 Kode Program………………...……………………..………… 105

Lampiran 6

Lampiran 7

Tampilan dan Hasil Uji (Excel) dengan Pengujian 10 kali …....

Tampilan Graf Rute Terbaik Pengiriman Surat Dan Barang PT.

Pos Indonesia DC Tugu…...………………................................

124

130

Lampiran 8 Tabel Populasi Awal…...………...…………........…………..… 147

Lampiran 9 Nilai Fitness dalam Suatu Populasi…...……………………..… 151

Lampiran 10 Probabilitas Fitness dan Nilai Kumulatifnya…………………... 153

Lampiran 11 Hasil Seleksi Roulette Wheel………………………………….. 155

Lampiran 12 Semesta Pembicaraan, Domain, Fungsi Keanggotaan dan

Aturan Fuzzy…………………………………………………..

159

xv

Page 17: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

Halaman

xvi

Page 18: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK
Page 19: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Proses pendistribusian surat dan barang adalah kegiatan yang tidak pernah

lepas dari kehidupan. Jarak yang jauh serta penyebaran masyarakat yang meluas

menjadi salah satu alasan bagi masyarakat untuk menggunakan jasa pengiriman

barang daripada mengantar sendiri barang yang akan dikirimkan. Permasalahan

pendistribusian barang menjadi poin penting bagi perusahaan penyedia jasa

pengiriman barang maupun surat. Hal ini sangat memerlukan pertimbangan dan

perhitungan yang tepat karena berkaitan dengan biaya transportasi yang harus

dikeluarkan dalam proses pendistribusian.

PT. Pos Indonesia merupakan salah satu perusahaan yang bergerak dalam

bidang pengiriman barang maupun surat di Indonesia. PT. Pos Indonesia sendiri

memiliki cabang di setiap kota di seluruh Indonesia. Dalam mengirimkan barang

maupun surat dari pusat ke pelanggan di berbagai tempat dan di banyak kota,

perlu adanya suatu sistem yang mampu meminimalisasi biaya pengiriman dan

sehingga akan didapatkan keuntungan yang paling maksimal. Permasalahan

seperti ini merupakan masalah model jaringan yang sama dengan permasalahan

pada pedagang kaki lima atau biasa disebut Travelling Salesman Problem (TSP).

TSP merupakan salah satu masalah optimalisasi. TSP adalah suatu

permasalahan untuk menemukan siklus Hamilton yang memiliki total bobot sisi

minimum. TSP bertujuan mencari rute dari kota asal ke kota-kota yang dituju

Page 20: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

2

dengan syarat setiap kota hanya dapat dikunjungi satu kali kecuali kota awal.

Banyak algoritma yang diterapkan pada permasalahan TSP di antaranya adalah

nearest neighbor heuristic, cheapest insertion heuristic, two way exchange

improvement heuristic, nearest insertion heuristic, ant colony optimation, dan

branch and bound method.

Terdapat algoritma lain yang dapat digambarkan sebagai metode untuk

menemukan solusi dari suatu permasalahan TSP, yaitu Algoritma Genetika serta

mengkombinasikannya pada teknik kendali Logika Fuzzy dengan harapan

memperoleh rute dengan kualitas terbaik dari Algoritma Genetika. Pada

prinsipnya, teknik kendali Logika Fuzzy digunakan untuk mengontrol nilai

paramater Algoritma Genetika pada suatu generasi secara otomatis (automatic

fine-tuning) berdasarkan informasi yang diperoleh dari populasi sebelumnya.

Selain dengan menggunakan penyelesaian secara manual, seiring dengan

keberhasilan perkembangan dan penerapan teknologi, masalah-masalah

optimalisasi dapat diselesaikan secara lebih cepat dan mudah. Perhitungan yang

begitu rumit jika diselesaikan secara manual, sekarang dapat diselesaikan dalam

waktu yang relatif lebih singkat. Terdapat beberapa software komputer yang

memungkinkan permasalahan-permasalahan optimalisasi terselesaikan secara

lebih mudah dan lebih cepat. Beberapa program tersebut antara lain adalah

software Lindo, MATLAB, QM for Windows, SkyNet, Solver, dan WinQSB.

Dari latar belakang yang telah disebutkan di atas, dalam skripsi ini penulis

ingin mencoba menyelesaikan permasalahan jaringan TSP yang terdapat pada

suatu perusahaan. Selain menggunakan penyelesaian manual dengan algoritma

Page 21: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

3

genetika, penulis juga akan menyelesaikan masalah optimalisasi ini dengan suatu

software komputer yaitu MATLAB. Dengan dipilihnya penyelesaian jaringan TSP

melalui Algoritma Genetika dengan teknik kendali Logika Fuzzy menggunakan

MATLAB, diharapkan akan diperoleh solusi permasalahan jaringan TSP paling

optimal sehingga dapat meminimalkan pengeluaran perusahaan melalui jarak

yang paling minimal.

1.2 Perumusan Masalah

Permasalahan yang akan dikaji dalam penelitian ini adalah sebagai berikut.

1. Bagaimana hasil pencarian jarak minimum dari jaringan TSP dalam

pengiriman surat dan barang di PT. Pos Indonesia DC Tugu Semarang

menggunakan Algoritma Genetika dengan teknik kendali Logika Fuzzy

dalam aplikasinya pada MATLAB?

2. Bagaimana rute jaringan TSP yang mempunyai jarak minimum dalam

pengiriman surat dan barang dengan menggunakan Algoritma Genetika

dengan teknik kendali Logika Fuzzy di PT. Pos Indonesia DC Tugu

Semarang?

1.3 Pembatasan Masalah

Dalam penyusunan skripsi ini, penulis membahas tentang penentuan jarak

minimum dan rute optimal dari jaringan TSP pada pengiriman barang maupun

surat di PT. Pos Indonesia DC Tugu Semarang menggunakan Algoritma Genetika

dengan teknik Kendali Logika Fuzzy. Permasalahan diasumsikan sebagai sebuah

Page 22: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

4

TSP simetris, di mana jarak dari kota 1 ke kota 2 sama dengan jarak dari kota 2 ke

kota 1. Software yang digunakan dalam penelitian ini adalah MATLAB.

1.4 Tujuan Penelitian

Adapun tujuan yang diharapkan pada penelitian ini adalah sebagai berikut.

1. Menentukan rute optimal jaringan TSP yang mempunyai jarak minimum dalam

pengiriman surat dan barang dengan menggunakan Algoritma Genetika dengan

teknik kendali Logika Fuzzy di PT. Pos Indonesia DC Tugu Semarang dalam

aplikasinya pada MATLAB.

2. Menentukan hasil pencarian jarak minimum dari jaringan TSP dalam

pengiriman surat dan barang di PT. Pos Indonesia DC Tugu Semarang

menggunakan Algoritma Genetika dengan teknik kendali Logika Fuzzy.

1.5 Manfaat Penelitian

Adapun manfaat yang diharapkan pada penelitian ini adalah sebagai

berikut.

1. Dapat menambah wawasan dan pengetahuan tentang pendistribusian dan

transportasi suatu jaringan.

2. Dapat menerapkan Algoritma Genetika dengan teknik kenali Logika Fuzzy

dalam menyelesaikan TSP.

3. Dapat menerapkan software Matlab dalam penyelesaian jaringan distribusi

surat dan barang.

Page 23: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

5

1.6 Sistematika Penulisan

Sistematika berguna untuk memudahkan dalam memahami jalan

pemikiran skripsi secara keseluruhan. Penulisan skripsi ini secara garis besar

dibagi menjadi 3 bagian yaitu sebagai berikut.

1.6.1 Bagian Awal

Bagian ini berisikan halaman judul, abstrak, halaman pengesahan, halaman motto

dan persembahan, kata pengantar, daftar isi, daftar tabel, daftar gambar dan daftar

lampiran.

1.6.2 Bagian Isi

Bagian ini berisikan 5 bab, yaitu:

BAB I. PENDAHULUAN

Berisi gambaran secara global tentang isi skripsi yaitu latar belakang masalah,

rumusan pemasalahan, pembatasan masalah, tujuan penelitian dan manfaat

penelitian serta sistematika penulisan.

BAB II. LANDASAN TEORI

Landasan teori akan menguraikan tentang definisi maupun pemikiran-pemikiran

yang dijadikan kerangka teoritis dalam mendasari pemecahan dari permasalahan

pada penelitian ini yaitu masalah rute optimal dan jarak minimal dari jaringan

TSP dalam pengiriman surat dan barang di PT. Pos Indonesia DC Tugu Semarang

yang akan diselesaikan dengan algoritma Genetika dengan teknik kendali Logika

Fuzzy menggunakan software Matlab. Bagian ini dibagi menjadi beberapa sub

bab yaitu Teori Graf, Travelling Salesman Problem (TSP), Algoritma Genetika,

Logika Fuzzy Hubungan antara Algoritma Genetika dengan kendali logika fuzzy.

Page 24: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

6

BAB III. METODE PENELITIAN

Bab ini menguraikan langkah-langkah kerja yang akan ditempuh, meliputi

menemukan masalah, pengambilan data, analisis dan pemecahan masalah, serta

penarikan simpulan.

BAB IV. HASIL PENELITIAN DAN PEMBAHASAN

Bab ini berisi pembahasan dari permasalahan yang dikemukakan. Bab ini dibagi

menjadi dua sub bab, yaitu hasil penelitian dan pembahasan. Hasil penelitian

berisi hasil perhitungan dan analisis data yang diperoleh dari studi pustaka

maupun pemecahan kasus penentuan rute dan jarak minimum dari jaringan TSP

pada pengiriman surat dan barang di PT. Pos Indonsia DC Tugu Semarang

menggunakan Algoritma Genetika dengan teknik kendali Logika Fuzzy dalam

aplikasinya di MATLAB.

BAB V. PENUTUP

Bab ini dibagi menjadi dua sub bab, yaitu simpulan dan saran. Simpulan berisi

tentang garis besar isi dalam skripsi, sedangkan saran berupa komentar,

sanggahan yang bersifat menyarankan kepada perusahaan bergantung dengan

variabel yang ada dalam skripsi.

1.6.3 Bagian Akhir

Bagian ini berisi daftar pustaka sebagai acuan penulisan dan lampiran yang

mendukung kelengkapan skripsi.

Page 25: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

7

BAB 2

LANDASAN TEORI

2.1 Teori Graf

2.1.1 Definisi Graf

Sebuah graf berisikan dua himpunan yaitu himpunan berhingga tak

kosong dari objek-objek yang disebut titik dan himpunan berhingga

(mungkin kosong) yang elemen-elemennya disebut sisi sedemikian hingga

setiap elemen dalam merupakan pasangan tak berurutan dari titik-titik di

Himpunan disebut himpunan titik dan himpunan disebut

himpunan sisi . Misalkan dan adalah dua titik di dan (sering

ditulis adalah sebuah sisi . Titik dan titik berhubungan langsung

(adjacent) di ; sisi menghubungkan (joining) titik dan titik di ; dan

titik-titik akhir sisi ; sisi terkait (incident) dengan titik dan titik (Budayasa,

2007: 1-2)

Definisi di atas menyatakan bahwa tidak boleh kosong, sedangkan

boleh kosong. Jadi, sebuah graf dimungkinkan tidak mempunyai sisi satu buah

pun, tetapi titiknya harus ada, minimal satu. Graf yang hanya mempunyai satu

buah titik tanpa sebuah sisi pun dinamakan graf trivial (Munir, 2010: 356)

Page 26: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

8

Contoh 2.1:

Sebuah graf dengan dan

. ; ; ; ;

;

Gambar 2.1 Contoh Graf G

2.1.2 Jenis-jenis Graf

Berdasarkan orientasi arah pada sisi, graf dibedakan atas dua jenis:

(a) Graf Berarah (Directed Graph atau Digraph)

Graf berarah adalah graf yang setiap sisinya mempunyai orientasi arah. Sisi

beararah disebut dengan sebutan busur (arc). Pada Graf berarah, dan

menyatakan dua buah busur yang berbeda, dengan kata lain .

Untuk busur , titik dinamakan titik awal (initial vertex) dan titik

dinamakan titik terminal (terminal vertex) (Munir, 2010: 358).

(b) Graf Tak-Berarah (Undirected Graph atau Undigraph)

Graf tak-berarah adalah graf yang sisinya tidak mempunyai orientasi arah. Pada

graf tak berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak

diperhatikan. jadi adalah sisi yang sama (Munir, 2010: 358).

e1

e2

e4

e5

v1

v2

v3

v4

e3

e6

Page 27: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

9

(a) (b)

Gambar 2.2 Graf berdasarkan orientasi arah (a) graf berarah dan (b)

graf tak berarah

2.1.3 Jalan (Walk)

Misalkan adalah sebuah graf. Sebuah jalan (walk) di adalah sebuah

barisan berhingga (tak kosong) yang suku-

sukunya bergantian sedemikian hingga dan adalah titik-titik akhir sisi

untuk . Dikatakan adalah sebuah jalan dari titik ke titik , atau

jalan- . Titik dan titik berturut-turut disebut titik awal dan titik akhir

. Sedangkan titik-titik disebut titik internal ; dan disebut

panjang jalan dengan panjang positif disebut tertutup, jika titik awal dan akhir

dari identik (sama) (Budayasa, 2007: 6)

e1

e2

e4

e5

v1

v1

v2

v2

v3

v3

v4

v4

e3

v1

v2

v3

v4

Page 28: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

10

Gambar 2.3 Jalan pada graf misalnya

2.1.4 Jejak (Trail)

Sebuah titik , mungkin saja muncul lebih dari satu kali dalam

jalan , begitu juga dengan sebuah sisi , boleh muncul lebih dari satu kali pada

jalan . Jika semua dalam jalan berbeda, maka disebut

sebuah jejak (trail) (Budayasa, 2007: 6).

Gambar 2.4 Jejak pada Graf misalnya

2.1.5 Lintasan (Path)

Jika semua titik dalam jejak berbeda, maka disebut

lintasan (path) (Budayasa, 2007: 6). Dalam penulisan skripsi ini lintasan diartikan

sama dengan rute sehingga dapat dituliskan bergantian. Lintasan adalah jejak,

e1

e2 e4

e6

e5

v1 v2

v3 v4

e7

v5 e3

e1

e2 e4

e6

e5

v1 v2

v3 v4

e7

v5 e3

Page 29: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

11

akan tetapi tidak semua jejak adalah lintasan. Panjang lintasan pada sebuah graf

berbobot adalah jumlah bobot semua sisi pada lintasan tersebut.

Pada Gambar 2.5 jalan adalah jejak tetapi

bukan lintasan, sedangkan adalah lintasan.

Gambar 2.5 Lintasan pada graf misalnya

2.1.6 Sirkuit

Jejak yang berawal dan berakhir pada titik yang sama disebut sirkuit

(Budayasa, 2007: 6). Sebuah sirkuit dikatakan sirkuit sederhana (simple circuit)

jika sirkuit tersebut tidak memuat atau melewati sisi yang sama dua kali (setiap

sisi yang dilalui hanya satu kali). Sebuah sirkuit dikatakan sirkuit dasar

(elementary circuit) jika sirkuit tersebut tidak memuat atau melewati titik yang

sama dua kali (setiap titik yang dilalui hanya satu kali, titik awal dan akhir boleh

sama).

e1

e2 e4

e6

e5

v1 v2

v3 v4

e7

v5 e3

Page 30: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

12

Gambar 2.6 Sirkuit pada graf misalnya .

2.1.7 Graf Euler dan Graf Semi-Euler

Sebuah sirkuit di graf yang memuat semua sisi disebut sirkuit Euler.

Jika graf memuat sirkuit Euler, maka graf disebut graf Euler. Sebuah jejak

buka yang memuat semua sisi graf disebut jejak Euler. Graf disebut graf semi-

Euler jika memuat jejak Euler (Budayasa, 2007: 113)

1

(a) (b)

Gambar 2.7 Eulerian pada graf

Keterangan gambar:

(a) Graf memiliki Jejak Euler misal

(b) Graf memiliki Sirkuit Euler misalnya

.

e1

e2 e4

e6

e5

v1 v2

v3 v4

e7

v5 e3

5

2

6

3

7

4

1

2

3

4

Page 31: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

13

2.1.8 Lintasan dan Sirkuit Hamilton

Misalkan sebuah graf. Sebuah lintasan yang memuat semua titik di

disebut lintasan Hamilton. Graf non Hamilton yang memuat lintasan Hamilton

disebut graf semi-Hamilton (Budayasa, 2007: 130). Sirkuit Hamilton adalah

sirkuit yang melalui tiap titik di dalam graf tepat satu kali, kecuali titik asal

(sekaligus titik akhir) yang dilalui dua kali. Graf Hamilton adalah graf yang

memiliki sirkuit Hamilton (Munir, 2001: 232).

(a) (b) (c)

Gambar 2.8 Hamiltonian pada graf

Keterangan gambar:

(a) Graf memiliki lintasan Hamilton misalnya

(b) Graf memiliki sirkuit Hamilton misalnya

(c) Graf tidak memiliki lintasan maupun sirkuit Hamilton

2.1.9 Graf Terhubung (Connected Graph)

Suatu graf dikatakan terhubung (connected) jika untuk setiap dua titik

yang berbeda terdapat sebuah lintasan yang menghubungkan kedua titik tersebut.

1

2

4

3

1 2

4 3

1

3 4

2

Page 32: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

14

Sebaliknya graf adalah sebuah graf bagian terhubung maksimal (titik dan sisi)

dari (Budayasa, 2007: 8). Graf dikatakan graf bagian terhubung maksimal

dari graf apabila tidak ada graf bagian lain dari yang terhubung dan memuat

. Jadi setiap graf terhubung memiliki tepat satu komponen sedangkan graf tidak

terhubung memiliki paling sedikit dua komponen.

Contoh 2.2

Diberikan graf seperti Gambar 2.9.

(a) (b)

Gambar 2.9 (a) Graf Terhubung, (b) Graf Tak Terhubung

2.1.10 Graf Berbobot

Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga (bobot).

Bobot pada setiap sisi dapat menyatakan jarak dua buah kota, biaya perjalanan

antara dua buah kota, waktu tempuh pesan dari simpul ke komunikasi lain, dan

sebagainya (Munir, 2005: 357)

Diberikan graf berbobot seperti pada Gambar 2.10

e1

e2

e4

e5

v1

v2

v3

v4

e3

e1

e2

e4

e5

v1

v2

v3

v4

e3

Page 33: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

15

Gambar 2.10 Contoh Graf Berbobot

Dari gambar 2.10, dapat dijelaskan bobot dari masing-masing sisi, yaitu:

2.1.11 Lintasan Terpendek (Shortest Path)

Permasalahan mencari lintasan terpendek di dalam graf merupakan salah

satu permasalahan optimasi. Graf yang digunakan dalam pencarian lintasan

terpendekadalah graf berbobot (weighted graf) yaitu graf yang setiap sisinya

diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak

antar kota, waktu pengiriman, ongkos pembangunan, dan sebagainya. Asumsi

yang digunakan adalah semua bobot bernilai positif. Kata “terpendek” jangan

selalu diartikan secara fisik sebagai panjang minimum, sebab kata “terpendek”

berbeda-beda maknanya bergantung pada tipikal persoalan yang akan

14 15

15

1

8

17

16

14

1

6

18 12

11 13

Page 34: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

16

diselesaikan. Namun secara umum “terpendek” berarti meminimisasi bobot pada

suatu lintasan di dalam graf. (Munir, 2010: 412)

Panjang lintasan dalam sebuah graf berbobot adalah jumlah bobot semua

sisi pada lintasan tersebut. Misalkan dan dua titik di graf . Lintasan-(

di dengan panjang minimum disebut lintasan terpendek antara dan . jarak

dari ke , dinotasikan dengan atau didefinisikan sebagai

panjanglintasan terpendek antara titik dan titik di . (Budayasa, 2007: 47)

Ada beberapa macam persoalan lintasan terpendek adalah sebagai berikut.

1. Lintasan terpendek antara dua buah titik tertentu.

2. Lintasan terpendek antara semua pasangan titik.

3. Lintasan terpendek dari simpul tertentu ke semua titik yang lain.

4. Lintasan terpendek antara dua buah titik yang melalui beberapa titik tertentu.

2.2 Travelling Salesman Problem (TSP)

Persoalan TSP merupakan salah satu persoalan kombinatorial. Banyak

permasalahan yang dapat direpresentasikan dalam bentuk TSP. Persoalan ini

sendiri menggunakan representasi graf untuk memodelkan persoalan yang

diwakili sehingga lebih memudahkan penyelesaiannya. Diantara permasalahan

yang dapat direpresentasikan dengan TSP adalah masalah transportasi, efisiensi

pengiriman surat atau barang, perancangan pemasangan pipa saluran, proses

pembuatan Printed Cirtcuit Board (PCB), dan lain-lain. Persoalan yang muncul

adalah bagaimana cara mengunjungi simpul (node) pada graf dari titik awal ke

setiap titik-titik lainnya dengan bobot minimum (biaya paling murah). Bobot atau

Page 35: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

17

biaya ini sendiri dapat mewakili berbagai hal, seperti biaya, jarak, bahan bakar,

waktu, kenyamanan dan lain-lain (Zulfikar, 2008:3-4).

Pada TSP, jumlah jalur yang mungkin terjadi dapat diperoleh dengan

menggunakan rumus permutasi berikut ini:

………………………………………………..……..…………(2.1)

di mana n adalah jumlah seluruh node dan k adalah jumlah node yang diseleksi.

Terdapat dua jenis TSP, yaitu asimetris dan simetris. Pada TSP asimetris, biaya

dari node 1 ke node 2 tidak sama dengan biaya dari node 2 ke node 1. Sedangkan

pada TSP simetris, biaya dari node 1 ke node 2 sama dengan biaya dari node 2 ke

node 1.

Untuk TSP asimetris, jumlah jalur yang mungkin adalah permutasi dari

jumlah node dibagi dengan jumlah node. Hal ini dapat dipahami karena secara

siklus, sebuah jalur dengan urutan 1-2-3 adalah sama dengan jalur 2-3-1 dan 3-1-

2. Tetapi jalur dengan urutan 1-2-3 tidak sama dengan 3-2-1. Jadi apabila terdapat

27 node, maka jalur yang mungkin untuk TSP asimetris adalah:

…………………………………..…………(2.2)

Sedangkan untuk TSP simetris, jumlah jalur yang mungkin adalah

permutasi dari jumlah node dibagi dengan dua kali jumlah node. Hal ini dapat

dipahami karena secara siklus sebuah jalur dengan urutan 1-2-3 adalah sama

dengan jalur 2-3-1 dan 3-1-2. Karena biaya dari node 1 ke node 2 sama dengan

biaya dari node 2 ke node 1, maka jalur dengan urutan 1-2-3 sama dengan jalur 3-

2-1. Jadi apabila terdapat 27 node, maka jalur yang mungkin untuk TSP simetris

adalah:

Page 36: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

18

…………………………………..……….(2.3)

2.2.1 Sejarah Travelling Salesman Problem

Permasalahan matematik yang berkaitan dengan Travelling Salesman

Problem mulai muncul sekitar tahun 1800-an. Masalah ini dikemukakan oleh dua

orang matematikawan, yaitu Sir William Rowan Hamilton yang berasal dari

Irlandia dan Thomas Penyngton Kirkman yang berasal dari Inggris. Diskusi

mengenai awal studi dari persoalan TSP ini dapat ditemukan di buku Graph

Theory 1736-1936 by N.L. Biggs, E.K. LLoyd, and R.J. Wilson, Clarendon Press,

Oxford, 1976. Bentuk umum dari persoalan TSP pertama kali dipelajari oleh para

matematikawan mulai tahun 1930 di Vienna dan Harvard. Persoalan tersebut

kemudian dikembangkan oleh Hassler Whitney dan Merril Flood di Princeton.

Penelitian secara mendetail hubungan antara Menger dan Whitney, dan

perkembangan persoalan TSP sebagai sebuah topik studi dapat ditemukan pada

tulisan Alexander Schriver “On the history of combinatorial optimization (till

1960)” (Zulfikar, 2008:4).

2.2.2 Contoh Perkembangan Masalah yang Muncul

Kode program komputer yang dibuat untuk menyelesaikan persoalan TSP

telah berkembang semakin baik dari tahun ke tahun. Tanda yang paling mencolok

dari perkembangan metode untuk menyelesaikan persoalan TSP adalah

bertambahnya jumlah simpul (node) yang dapat diselesaikan, mulai dari solusi

persoalan 49 kota yang dikembangkan oleh Dantzig, Fulkerson, dan Johnson's

Page 37: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

19

pada tahun 1954 sampai kepada solusi persoalan 24.978 kota pada tahun 2004,

data-data tersebut didapat dari National Imagery and Mapping Agency, sebuah

database nasional yang menyimpan nama-nama fitur geografi (Zulfikar, 2008:5-

6).

2.3 Algoritma Genetika

Algoritma genetika adalah suatu algoritma pencarian yang berbasis pada

mekanisme seleksi alam dan genetika. Algoritma genetika merupakan salah satu

algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi

kompleks, yang sulit dilakukan oleh metode konvensional. (Desiani, 2006: 187)

Algoritma genetika pertama kali diperkenalkan oleh John Holland (1975)

dari Universitas Michigan. John Holland mengatakan bahwa setiap masalah yang

berbentuk adaptasi (alami maupun buatan) dapat diformulasikan ke dalam

terminologi genetika. Goldberg mendefinisikan algoritma genetika ini sebagai

suatu pencarian algoritma berdasarkan pada mekanisme seleksi alam dan genetika

alam (Desiani, 2006:187).

Beberapa definisi penting dalam algoritma genetika, yaitu:

1. Genotip (Gen) adalah sebuah nilai yang menyatakan satuan dasar yang

membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan

kromosom. Dalam algoritma genetika, gen ini bisa bernilai biner, float,

integer maupun karakter.

2. Allel adalah nilai dari gen.

3. Kromosom adalah gabungan gen-gen yang membentuk nilai tertentu.

Page 38: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

20

4. Individu menyatakan satu nilai atau keadaan yang menyatakan salah satu

solusi yang mungkin dari permasalahan yang diangkat.

5. Populasi merupakan sekumpulan individu yang akan diproses bersama dalam

satu siklus proses evolusi.

6. Generasi menyatakan satu satuan siklus proses evolusi.

7. Nilai fitness menyatakan seberapa baik nilai dari suatu individu atau solusi

yang didapatkan.

Ciri-ciri permasalahan yang dikerjakan dengan menggunakan algoritma genetika

adalah:

1. Mempunyai fungsi tujuan optimalisasi non linear dengan banyak kendala

yang juga non linear.

2. Mempunyai kemungkinan solusi yang jumlahnya tak berhingga.

3. Membutuhkan solusi “real-time” dalam arti solusi bisa didapatkan dengan

cepat sehingga dapat diimplementasikan untuk permasalahan yang

mempunyai perubahan yang cepat seperti optimasi pada pembebanan kanal

pada komunikasi seluler.

4. Mempunyai multi-objektif dan multi-kriteria, sehingga diperlukan solusi yang

dapat secara bijak diterima oleh semua pihak (Basuki, 2003:4).

Struktur umum algoritma genetika dapat didefinisikan dengan langkah-langkah

sebagai berikut (Wibowo, 2009:13).

Page 39: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

21

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 operator

reproduksi/seleksi, crossover dan mutasi. Proses ini dilakukan berulang-ulang

hingga didapatkan jumlah kromosom yang cukup untuk membentuk generasi baru

dimana generasi baru ini merupakan representasi dari solusi baru.

3. Evaluasi solusi

Proses ini akan mengevalusi setiap populasi dengan menghitung nilai fitness

setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti. Bila

kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi baru dengan

mengulangi langkah 2. Beberapa kriteria berhenti yang sering digunakan antara

lain:

a. Berhenti pada generasi tertentu.

b. Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai

fitness tertinggi tidak berubah.

c. Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yang

lebih tinggi.

Komponen-komponen utama algoritma genetika (Kusumadewi, 2003: 14).

Page 40: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

22

1. Teknik pengkodean

Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai calon

solusi suatu masalah ke dalam suatu kromosom sebagai suatu kunci pokok

persoalan ketika menggunakan algoritma genetika.

Teknik pengkodean ini meliputi pengkodean gen dan kromosom. Gen merupakan

bagian dari kromosom. Satu gen bisa mewakili satu variabel. Gen dapat

direpresentasikan dalam bentuk string bit, pohon, array bilangan real, daftar

aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat

diimplementasikan untuk operator genetika.

2. Prosedur inisialisasi

Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis

operator genetika yang akan diimplementasikan. Setelah ukuran populasi

ditentukan, kemudian harus dilakukan inisialisasi kromosom dilakukan secara

acak, namun demikian harus tetap memperhatikan domain solusi dan kendala

permasalahan yang ada.

3. Evaluasi fitness

Evalusi fitness merupakan dasar untuk proses seleksi. Langkah-langkahnya yaitu

string dikonversi ke parameter fungsi, fungsi objektifnya dievaluasi, kemudian

mengubah fungsi objektif tersebut ke dalam fungsi fitness, dimana untuk

maksimasi problem, fitness sama dengan fungsi objektifnya. Output dari fungsi

fitness dipergunakan sebagai dasar untuk menyeleksi individu pada generasi

berikutnya.

Page 41: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

23

Untuk permasalahan minimalisasi, nilai fitness adalah inversi dari nilai maksimal

yang diharapkan. Proses inversi dapat dilakukan dengan rumusan ,

dengan x merupakan kromosom (Basuki, 2003:17).

atau

Keterangan:

A : konstanta yang ditentukan

x : individu (kromosom)

: nilai fungsi kromosom

: bilangan kecil yang ditentukan untuk menghindari pembagi nol atau

4. Seleksi

Seleksi ini bertujuan memberikan kesempatan reproduksi yang lebih besar bagi

anggota populasi yang paling baik.

Ada beberapa metode seleksi dari induk, antara lain:

a. Rank-Based Fitness

Pada Rank-Based fitness, populasi diurutkan menurut nilai objektifnya. Nilai

fitness tiap-tiap individu hanya tergantung pada posisi individu tersebut dalam

urutan, dan tidak dipengaruhi oleh nilai objektifnya.

b. Roulette Wheel Selection

Metode seleksi dengan mesin roulette ini merupakan metode yang paling

sederhana dan sering dikenal dengan nama stochastic sampling with replacement.

Cara kerja metode ini adalah sebagai berikut.

Page 42: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

24

1). Menghitung nilai fitness dari masing-masing individu (fi, dimana i adalah

individu ke-1 sampai dengan ke-n).

2). Menghitung total fitness semua individu.

3). Menghitung probabilitas masing-masing individu.

4). Dari probabilitas tersebut dihitung jatah masing-masing individu pada angka

1 sampai 100.

5). Membangkitkan bilangan random antara 1 sampai 100.

6). Dari bilangan random yang dihasilkan, menentukan individu mana yang

7). terpilih dalam proses seleksi.

Individu 1 : fitness = 10%

Individu 2 : fitness = 25%

Individu 3 : fitness = 40%

Individu 4 : fitness = 15%

Individu 5 : fitness = 10%

Gambar 2.11 Ilustrasi Seleksi dengan Mesin Roullete

Dibangkitkan bilangan random antara

1-100 sebanyak 5 kali

Jatah untuk individu 1 : 1-10

Jatah untuk individu 2 : 11-35

Jatah untuk individu 3 : 36-75

Jatah untuk individu 4 : 76-90

Jatah untuk individu 5 : 91-100

Individu Terpilih

Random 30 individu 2

Random 88 individu 4

Random 64 individu 3

Random 18 individu 2

Random 44 individu 3

Page 43: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

25

8

c. Stochastic Universal Sampling

Pada metode ini, individu-individu dipetakan dalam suatu segmen garis

secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki

ukuran yang sama dengan ukuran fitness-nya seperti halnya pada seleksi roda

roulette. Kemudian diberikan sejumlah pointer sebanyak individu yang ingin

diseleksi pada garis tersebut. Andaikan N adalah jumlah individu yang akan

diseleksi, maka jarak antar pointer adalah 1/N, dan posisi pointer pertama

diberikan secara acak pada range [1, 1/N].

d. Truncation Selection

Seleksi ini biasanya digunakan oleh populasi yang jumlahnya sangat besar.

Pada metode ini, individu-individu diurutan berdasarkan nilai fitness-nya.

Hanya individu-individu yang terbaik saja yang akan diseleksi sebagai induk.

Parameter yang digunakan dalam metode ini adalah suatu nilai ambang trunk

yang mengindikasikan ukuran populasi yang akan diseleksi sebagai induk

yang berkisar antara 50%-100%. Individu-individu yang ada di bawah nilai

ambang ini tidak akan menghasilkan keturunan.

e. Tournament Selection

Pada metode seleksi dengan turnamen, ditetapkan suatu nilai tour untuk

individu-individu yang dipilih scara acak dari suatu populasi. Individu-

individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk.

Parameter yang digunakan pada metode ini adalah ukuran tour yang bernilai

antara 2 sampai N (jumlah individu dalam suatu populasi).

5. Crossover

Page 44: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

26

Crossover (perkawinan silang) bertujuan menambah keanekaragaman string

dalam suatu populasi. Beberapa jenis crossover tersebut adalah:

a. Crossover Diskret

Proses crossover dilakukan dengan menukar nilai variabel antar kromosom

induk. Misalkan ada 2 individu dengan 3 variabel, yaitu:

Induk 1: 12 25 5

Induk 2: 123 4 34

Untuk tiap-tiap variabel induk yang menyumbangkan variabelnya ke anak

dipilih secara acak dengan probabilitas yang sama.

Sampel 1: 2 2 1

Sampel 2: 1 2 1

Kromosom baru yang terbentuk:

Anak 1: 123 4 5

Anak 2: 12 4 5

b. Crossover Intermediate (menengah)

Crossover menengah merupakan metode crossover yang hanya dapat

digunakan untuk variabel real. Nilai variabel anak dipilih di sekitar dan antara

nilai-nilai variabel induk. Anak dihasilkan menurut aturan sebagai berikut.

Anak = induk 1 + alpha (induk 2 – induk 1)

Dengan alpha adalah faktor skala yang dipilih secara random pada interval [-

d, 1+d], biasanya d = 0,25. Tiap-tiap variabel pada anak merupakan hasil

crossover variabel-variabel menurut aturan di atas dengan nilai alpha dipilih

ulang untuk tiap variabel.

Page 45: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

27

Misalkan ada 2 individu dengan 3 variabel, yaitu:

Induk 1: 12 25 5

Induk 2: 123 4 34

Misalkan nilai alpha yang terpilih adalah:

Sampel 1: 0,5 1,1 -0,1

Sampel 2: 0,1 0,8 0,5

Kromosom baru yang terbentuk

Anak 1: 67,5 1,9 2,1

Anak 2: 23,1 8,2 19,5

c. Crossover Garis

Pada dasarnya crossover garis ini sama dengan crossover menengah, hanya

saja nilai alpha untuk semua variabel sama. Misalkan ada 2 individu dengan 3

variabel, yaitu:

Induk 1: 12 25 5

Induk 2: 123 4 34

Alpha yang dipilih adalah:

Sampel 1: 0,5

Sampel 2: 0,1

Kromosom baru yang terbentuk :

Anak 1: 67,5 14,5 19,5

Anak 2: 23,1 22,9 7,9

d. Crossover dengan Permutasi

Page 46: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

28

Pada penyilangan permutasi ini kromosom-kromosom anak diperoleh dengan

cara memilih sub barisan tour dari satu induk dengan tetap menjaga urutan

dan posisi sejumlah gen yang mungkin terhadap induk yang lainnya.

Contoh crossover dengan permutasi:

Misal

Induk 1: (1 2 3 | 4 5 6 7 | 8 9)

Induk 2: (4 5 3 | 1 8 7 6 | 9 2)

Anak 1: (x x x | 1 8 7 6 | x x)

Anak 2: (x x x | 4 5 6 7 | x x)

Dari sini kita memperoleh pemetaan:

1-4, 8-5, 7-6, 6-7

Kemudian copy sisa gen di induk 1 ke anak 1 dengan menggunakan pemetaan

yang sudah ada.

Anak 1: (1-4 2 3 | 1 8 7 6 | 8-5 9)

Anak 1: (4 2 3 | 1 8 7 6 | 5 9)

Lakukan hal yang sama untuk anak 2.

Anak 2: (1-4 5-8 3 | 1 8 7 6 | 9 2)

e. Order Crossover

Order crossover merupakan cara crossover dengan menukar kromosom

dengan tetap menjaga urutan gen yang bukan bagian dari kromosom tersebut.

Contoh order crossover adalah:

Misalkan ada 3 kromosom induk yang akan dilakukan crossover:

Kromosom [1] = [ABCD]

Page 47: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

29

Kromosom [2] = [BACD]

Kromosom [3] = [ACDB]

Proses crossover:

Kromosom[1] = Kromosom[1] >< Kromosom[2]

= [ABCD] >< [BACD]

= [ACBD]

Kromosom[2] = Kromosom[2] >< Kromosom[3]

= [BACD] >< [BCDA]

= [BCDA]

Kromosom[3] = Kromosom[3] >< Kromosom[1]

= [BCDA] >< [ABCD]

= [BCAE]

6. Mutasi

Mutasi merupakan proses mengubah nilai satu atau beberapa gen dalam

satu kromosom. Mutasi ini berperan untuk menggantikan gen yang hilang

dari populasi akibat proses seleksi yang memungkinkan munculnya kembali

gen yang tidak muncul pada inisialisasi populasi.

a. Mutasi dengan pengkodean biner.

Mutasi dengan pengkodean biner merupakan operasi yang sangat sederhana.

Proses yang dilakukan adalah menginversi nilai bit pada posisi tertentu yang

dipilih secara acak (atau dengan menggunakan skema tertentu) pada

kromosom.

Contoh mutasi pada pengkodean biner

Page 48: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

30

Kromosom sebelum mutasi :1 0 0 1 0 1 1 1

Kromosom sesudah mutasi :1 0 0 1 0 0 1 1

b. Mutasi dengan pengkodean permutasi.

Proses mutasi yang dilakukan dalam pengkodean biner tidak dapat dilakukan

pada pengkodean permutasi karena konsistensi urutan permutasi harus

diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan memilih

dua posisi (locus) dari kromosom dan kemudian nilainya saling

dipertukarkan.

Contoh mutasi dalam pengkodean permutasi

Kromosom sebelum mutasi : 1 2 3 4 5 6 7 8 9

Kromosom sesudah mutasi : 1 2 7 4 6 5 8 3 9

c. Mutasi dengan pengkodean nilai.

Proses mutasi dalam pengkodean nilai dapat dilakukan dengan berbagai cara,

salah satunya yaitu dengan memillih sembarang posisi gen pada kromosom.

Nilai yang ada tersebut kemudian ditambahkan atau dikurangkan dengan

suatu nilai kecil tertentu yang diambil secara acak.

Contoh mutasi dalam pengkodean nilai real dengan nilai yang ditambahkan

atau dikurangkan adalah 0,1.

Kromosom sebelum mutasi : 1,43 1,09 4,51 9,11 6,94

Kromosom sesudah mutasi : 1,43 1,19 4,51 9,01 6,94

d. Mutasi dengan pengkodean pohon.

Mutasi dalam pengkodean pohon dapat dilakukan antara lain dengan cara

mengubah operator ( +, -, *, / ) atau nilai yang terkandung dalam suatu vertex

Page 49: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

31

pohon yang dipilih, atau dapat juga dilakukan dengan memilih dua vertex dari

pohon dan saling mempertukarkan operator atau nilainya. Contoh mutasi

dalam pengkodean pohon seperti pada Gambar 2.12.

Gambar 2.12 Contoh gen sebelum dan setelah mutasi dengan pengkodean pohon

e. Swapping Mutation

Proses mutasi dengan cara ini dilakukan dengan menentukan jumlah

kromosom yang akan mengalami mutasi dalam satu populasi melalui

parameter mutation rate (pm). Proses mutasi dilakukan dengan cara menukar

gen yang telah dipilih secara acak dengan gen sesudahnya, jika gen tersebut

berada di akhir kromosom, maka ditukar dengan gen yang pertama.

Pertama hitung panjang total gen yang ada pada suatu populasi:

Untuk memilih posisi gen yang akan mengalami mutasi dilakukan dengan

membangkitkan bilangan acak antara 1 sampai panjang total gen untuk

dilakukan proses mutasi. (Wibowo, 2003:14)

/ X

5 y

+ +

X -

_

_

y 5

Page 50: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

32

2.4 Fuzzy

2.4.1 Logika Fuzzy

Konsep logika fuzzy pertama kali diperkenalkan pada tahun 1965 oleh

Prof. Lotfi A. Zadeh, seorang professor dari University of California di Berkly.

Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy,

peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu

himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan

(membership values) yang nilainya terletak di antara selang [0,1] menjadi ciri

utama dari penalaran dengan logika fuzzy tersebut (Kusumadewi, 2003).

Menurut Cox, ada beberapa alasan mengapa orang menggunakan logika fuzzy,

antara lain:

1. Konsep logika fuzzy mudah dimengerti. Karena konsep matematis yang

mendasari penalaran fuzzy cukup mudah dimengerti.

2. Logika fuzzy sangat fleksibel, artinya mampu beradaptasi dengan perubahan-

perubahan, dan ketidakpastian yang menyertai permasalahan.

3. Logika fuzzy memiliki toleransi terhadap data yang tidak tepat.

4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinier yang sangat

kompleks.

5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman

para pakar secara langsung tanpa harus pelatihan.

6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali konvensional.

7. Logika fuzzy didasarkan pada bahasa alami.

Page 51: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

33

2.4.2 Himpunan Fuzzy

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu

himpunan A, yang sering ditulis dengan μA[x], memiliki 2 kemungkinan, yaitu:

1. satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu

himpunan, atau

2. nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu

himpunan.

Prinsip dasar dan persamaan matematika dari teori himpunan fuzzy adalah

pengelompokkan objek dalam batas yang samar. Himpunan fuzzy merupakan

sebuah generalisasi dari himpunan crisp. Kalau pada himpunan crisp, nilai

keanggotaan hanya ada 2 kemungkinan, yaiu 0 atau 1. Sedangkan himpunan fuzzy

didasarkan pada gagasan untuk memperluas jangkauan fungsi karakteristik

sedemikian hingga fungsi tersebut akan mencakup bilangan real pada interval

[0,1]. Nilai keanggotaan pada himpunan fuzzy menunjukkan bahwa suatu item

dalam semesta pembicaraan tidak hanya berada pada 0 atau 1, melainkan juga

nilai yang terletak diantaranya. Dengan kata lain, nilai kebenaran dari suatu item

tidak hanya benar atau salah( Kusumadewi, 2003).

Pada himpunan fuzzy terdapat 2 atribut, yaitu:

1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau

kondisi tertentu dengan menggunakan bahasa alami, seperti : MUDA,

PAROBAYA, TUA.

2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu

variabel, seperti : 40, 25, 50, dsb.

Page 52: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

34

Ada beberapa hal yang perlu diketahui dalam memahami sistem

fuzzy, yaitu:

1. Variabel fuzzy

Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu

sistem fuzzy. Contoh : umur, temperatur, permintaan, dan sebagainya.

2. Himpunan fuzzy

Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau

keadaan tertentu dalam suatu variabel fuzzy. Contoh :

Variabel umur, terbagi menjadi 3 himpunan fuzzy, yaitu : MUDA,

PAROBAYA, dan TUA (Gambar 2.13)

Gambar 2.13 Himpunan fuzzy untuk variabel umur

Variabel temperatur, terbagi menjadi 5 himpunan fuzzy, yaitu :

DINGIN, SEJUK, NORMAL, HANGAT, dan PANAS (Gambar

2.14).

Page 53: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

35

Gambar 2.14 Himpunan fuzzy pada variabel temperatur

3. Semesta Pembicaraan

Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk

dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan

merupakan himpunan bilangan real yang senantiasa naik (bertambah)

secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat

berupa bilangan positif maupun negatif. Adakalanya nilai semesta

pembicaraan ini tidak dibatasi batas atasnya. Contoh:

Semesta pembicaraan untuk variabel umur:

Semesta pembicaraan untuk variabel temperatur: :

4. Domain

Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam

semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan

fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan

bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri

ke kanan. Nilai domain dapat berupa bilangan positif maupun negatif.

Contoh domain himpunan fuzzy:

Page 54: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

36

Muda = [0 45].

Pabobaya = [35 55].

Tua = [45 +∞).

Dingin = [0 20].

Sejuk = [15 25].

Normal = [20 30].

Hangat = [25 35].

Panas = [30 40].

2.4.3 Fungsi Keanggotaan Fuzzy

Fungsi keanggotaan fuzzy (membership function) adalah suatu kurva yang

menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya

(derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara

yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan

melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan, diantaranya

sebagai berikut :

(1) Representasi Linear Naik

Kenaikan himpunan dimulai pada nilai domain yang memiliki derajat

keanggotaan nol [0] bergerak kekanan menuju ke nilai domain yang memiliki

derajat keanggotaan lebih tinggi (Gambar 2.15).

Page 55: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

37

Gambar 2.15. Representasi linear naik(Kusumadewi dkk, 2006: 40)

Fungsi keanggotaan

(2) Garis lurus dimulai dari domain dengan derajat keanggotaan tertinggi pada

sisi kiri kemudian bergerak menurun pada nilai domain yang memiliki derajat

keanggotaan lebih rendah (Gambar 2.16)

Gambar 2.16 Representasi linear turun(Kusumadewi dkk, 2006: 40)

Fungsi keanggotaan:

Page 56: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

38

(3) Represetasi Fungsi Segitiga

Fungsi segitiga pada dasarnya merupakan gabungan antara dua garis

(linear), seperti terlihat pada gambar 2.17. fungsi ini mempunyai tiga

parameter. Bilangan fuzzy yang mempunyai tiga parameter dan dapat

dipresentasikan dengan fungsi segitiga, disebut bilangan fuzzy segitiga.

Gambar 2.17. Representasi fungsi segitiga(Kusumadewi dkk, 2006: 40)

Fungsi keanggotaan:

(4) Representasi Fungsi Trapesium

Fungsi Trapesium pada dasarnya seperti bentuk fungsi segitiga, hanya saja

ada beberapa nilai yang memiliki nilai keanggotaan 1 (Gambar 2.18). Fungsi

ini mempunyai empat parameter, yaitu

Page 57: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

39

Sejumlah bilangan fuzzy adalah bilangan fuzzy trapesium yang

dinotasikan dengan dimana adalah bilangan real

dan anggota fungsi , didefinisikan:

(Pandian dan Natarjan, 2010: 81).

Gambar 2.18. Keanggotaan bilangan fuzzy (Kusumadewi dkk, 2006: 41)

(5) Bilangan fuzzy Yang dinotasikan dengan adalah

suatu himpunan fuzzy yang memiliki fungsi keanggotaan sebagai

berikut.

Dengan sebagai rentang kiri dan kanan. bersifat monoton

naik ke 1, sedangkan bersifat monoton turun dari 1.

Page 58: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

40

nilai keanggotaan tertinggi

adalah 1 yang terjadi pada saat (Kusumadewi dkk, 2006: 42)

Gambar 2.19. Bilangan Fuzzy (Kusumadewi dkk, 2006: 42)

Jika bilangan fuzzy memiliki merupakan bilangan

fuzzy trapesium, dengan adalah lebar sisi kiri dan β adalah lebar sisi

kanan. Jika maka bilangan fuzzy trapesium simetris dan jika

maka merupakan bilangan fuzzy trapesium tak simetris.

2.4.4 Sistem Inferensi Fuzzy

Terdapat 3 metode pada sistem inferensi fuzzy yaitu: metode Tsukamoto,

metode Mamdani dan metode Sugeno. Dalam skripsi ini metode yang dipakai dan

yang akan dibahas adalah metode Sugeno.

2.4.4.1 Metode Sugeno

Tahapan-tahapan dalam metode sugeno adalah sebagai

berikut(Widodo,2012:125)

1. Pembentukan himpunan Fuzzy

Page 59: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

41

Pada tahapan ini variabel input (crisp) dari sistem fuzzy ditransfer ke dalam

himpunan fuzzy untuk dapat digunakan dalam perhitungan nilai kebenaran dari

premis pada setiap aturan dalam basis pengetahuan

2. Aplikasi fungsi implikasi:

Tiap-tiap aturan (proposisi) pada basis pengetahuan fuzzy akan berhubungan

dengan suatu relasi fuzzy. Bentuk umum dari aturan yang digunakan dalam

fungsi implikasi adalah sebagai berikut:

IF x is A THEN y is B

3. Komposisi aturan: Tidak seperti penalaran monoton, apabila sistem terdiri dari

beberapa aturan, maka inferensi diperoleh dari kumpulan dan korelasi antar

aturan.

4. Penegasan (defuzzifikasi): Input dari proses defuzzifikasi adalah suatu

himpunan fuzzy yang diperoleh dari komposisi aturan-aturan fuzzy, sedangkan

output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan berupa

konstanta atau persamaan linear.

Sehingga jika diberikan suatu himpunan fuzzy dalam range tertentu, maka

harus dapat diambil suatu nilai konstanta atau persamaan linier tertentu sebagai

output seperti terlihat pada Gambar 2.20

Page 60: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

42

Gambar 2.20 Proses Deffuzifikasi

2.4.5 Kendali Logika Fuzzy

Pemikiran utama teori logika fuzzy adalah memetakan sebuah ruang input ke

dalam ruang output dengan menggunakan IF-THEN rules. Pemetaan dilakukan

dalam suatu Fuzzy Inference System (FIS). Urutan rule bisa sembarangan. FIS

mengevaluasi rule secara simultan untuk menghasilkan kesimpulan. Oleh karena

itu, semua rule harus lebih didefinisikan lebih dahulu sebelum kita membangun

sebuah FIS yang akan digunakan untuk menginterprestasikan semua rule tersebut.

FIS merupakan sebuah metode yang dapat menginterprestasikan harga-harga

dalam vektor input. Menarik kesimpulan berdasarkan sekumpulan IF-THEN rules

yang diberikan dan kemudian menghasilkan vektor output. (Widodo, 2012: 126)

Gambar 2.21 menjelaskan alur kerja program.

Page 61: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

43

Gambar 2.21 Flow Chart Rancangan Sistem

Mulai

Input: Data Lokasi, Jumlah

Populasi, dan Batass Generasi

Fuzzy

Output:

Probabilitas Mutasi dan

Probabilitas Crossover

Populasi

Awal

Evaluasi Fitness

Roulette

Wheel Mutasi

Crossover

Seleksi

Kriteria

berhenti

terpenuhi

Hasil

Selesai

Ya

Tidak

Page 62: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

44

2.5 Hubungan antara Algoritma Genetika dengan

Kendali Logika Fuzzy

Algoritma Genetika dengan Kendali Logika Fuzzy adalah sebuah teknik

komputasi gabungan antara algoritma genetika dan logika fuzzy. Metode ini

hampir sama dengan metode algoritma genetika, namun parameter-parameter

yang dipakai dihasilkan dari sebuah sistem fuzzy. Dalam algoritma genetika

dengan teknik kendali logika fuzzy, proses yang terjadi atau alur proses sama

seperti dengan algoritma genetika, yang dikenalkan oleh John Holland dari

Universitas Michigan (1975), dimana algoritma genetika merupakan teknik

pencarian heuristik berdasar mekanisme evolusi biologis yang meniru dari teori

Darwin dan operasi genetika pada kromosom. (Bindu & Tanwar, 2012:418) dari

pada memilih nilai acak dari orang tua, aturan fuzzy didefinikan untuk memilih

aturan yang optimal. Sistem yang diusulkan adalah untuk mengoptimalkan proses

hasil dari algoritma genetika. Dalam algoritma genetika dengan teknik kendali

logika fuzzy terdapat enam tahap utama, yaitu:

1. Representasi kromosom.

2. Inisialisasi Populasi.

3. Fungsi evaluasi.

4. Seleksi.

5. Operator genetika, meliputi operator rekombinasi (crossover) dan mutasi.

6. Penentuan parameter, yaitu parameter kontrol algoritma genetika, yaitu:

Page 63: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

45

ukuran populasi (popsize), peluang crossover (Pc), dan peluang mutasi (pm).

Dalam penentuan parameter ini dilakukan proses sistem fuzzy untuk mendapatkan

nilai yang akan digunakan sebagai parameter. (Muzid, 2008:30)

Pada algoritma ini terdapat berbagai metode yang digunakan dalam perpaduan

antara algoritma genetika dan sistem fuzzy. Diantaranya adalah model sistem

fuzzy yang digunakan pada penentuan parameter adalah menggunakan sistem

inferensi fuzzy metode sugeno. Metode Sugeno yang digunakan untuk algoritma

genetika dengan teknik kendali logika fuzzy adalah menggunakan dua buah

masukan dan dua buah keluaran. Dua buah masukan yang digunakan adalah:

1. Jumlah Populasi yang digunakan.

2. Jumlah generasi yang akan diproses.

Sedangkan dua buah keluaran yang akan dihasilkan adalah:

1. Nilai probabilitas rekombinasi (crossover).

2. Nilai probabilitas mutasi.

Berikut contoh persoalan yang diselesaikan dengan menggunakan algoritma

genetika dengan teknik kendali logika fuzzy.

Terdapat 5 buah kota yang akan dilalui oleh seorang pedagang keliling, misalnya

Kota A,B,C,D,E. Perjalanan dimulai dari kota A dan berakhir di kota A. Jarak

antar kota diperlihatkan pada graf di bawah ini:

Page 64: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

46

Gambar 2.22 Contoh Graf yang akan dilalui oleh seorang pedagang

keliling

Persoalan tersebut akan diselesaikan dengan menggunakan algoritma genetika

dengan teknik kendali logika fuzzy. Kriteria berhenti ditentukan terlebih dahulu

yaitu apabila setelah dalam beberapa generasi berturut-turut diperoleh nilai fitness

yang terendah tidah berubah. Pemilihan nilai fitness yang terendah sebagai syarat

karena nilai tersebut yang merepresentasikan jarak terdekat yang dicari pada

persoalan ini.

Penentuan parameter kontrol algoritma genetika, yaitu: peluang crossover (pc),

dan peluang mutasi (pm) dilakukan dengan menggunakan proses kendali logika

fuzzy.

Penyelesaian:

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

asal.

Inisialisasi

Misalkan kita menggunakan 6 buah populasi dalam satu generasi, yaitu:

Kromosom[1] = [B D E C]

9 7

6

4

7

A

B

C D

E

9

8

5

2

3

Page 65: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

47

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]

Evaluasi kromosom

Kita akan menghitung nilai fitness dari tiap kromosom yang telah dibangkitkan:

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[5] = AE + EC + CB + BD + DA = 9 + 3 + 7 + 2 + 9 = 30

Fitness[6] = AC + CD + DE + EB + BA = 5 + 4 + 6 + 8 + 7 = 30

Seleksi Kromosom

Oleh karena pada persoalan TSP yang diinginkan yaitu kromosom dengan fitness

yang lebih kecil akan mempunyai probabilitas untuk terpilih kembali lebih besar

maka digunakan inverse.

Q[i] = 1/Fitness[i]

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

Page 66: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

48

Q[6] = 1/30 = 0,033

Total = 0,043 + 0,037 + 0,034 + 0,027 + 0,033 + 0,033 = 0,207

Probabilitas

Untuk mencari probabilitas kita menggunakan rumus berikut:

P[i] = Q[i] / Total

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,027 / 0,207 = 0,130

P[5] = 0,033 / 0,207 = 0,159

P[6] = 0,033 / 0,207 = 0,159

Dari probabilitas di atas dapat terlihat bahwa kromosom ke-1 mempunyai fitness

paling kecil sehingga mempunyai probabilitas untuk terpilih pada generasi

selanjutnya lebih besar dari kromosom lainnya.

Untuk proses seleksi kita menggunakan roulette wheel, untuk itu kita terlebih

dahulu menghitung probabilitas dari masing-masing kromosom.

Probabilitas Kumulatif

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,840

C[6] = 0,840 + 0,159 = 1

Page 67: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

49

Metode Roulette Wheel

Gambar 2.23 Gambar Roulette Wheel

Metode roulette-wheel adalah membangkitkan nilai acak R antara 0-1. Jika

R[k]<Qk[k] maka kromosom ke-k sebagai induk, selain itu pilih kromosom ke-k

sebagai induk dengan syarat Qk[k-1] < R[k] < Qk[k]. Kita putar roulette-wheel

sebanyak jumlah kromosom yaitu 6 kali (membangkitkan bilangan acak R).

Bila bilangan random R i] yang dihasilkan sbb :

R[1] = 0,314

R[2] = 0,111,

R[3] = 0,392,

R[4] = 0,743

R[5] = 0,521,

R[6] = 0,561

Induk yang dipilih dengan Q[k-1] < R[k] < Q[k] menghasilkan : C[2], C[1], C[3],

C[5], C[3], C[4].

Page 68: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

50

Setelah itu populasi baru akan terbentuk, yaitu:

Kromosom[1] = [2] = [ D B E C ]

Kromosom[2] = [1] = [ B D E C ]

Kromosom[3] = [3] = [ C B D E ]

Kromosom[4] = [5] = [ E C B D ]

Kromosom[5] = [3] = [ C B D E ]

Kromosom[6] = [4] = [ E B C D ]

Selanjutnya akan dihitung nilai parameter crossover probability yang diperoleh

dari perhitungan kendali logika fuzzy dengan menginputkan populasi = 6 dan

generasi = 100.

1) Pada semesta pembicaraan dan domain untuk populasi, aturan yang

digunakan adalah sebagai berikut:

• Semesta pembicaraan: [0 1000]

• Domain SMALL: [50 250]

• Domain MEDIUM: [80 275]

• Domain LARGE: [350 500]

Gambar 2.24 Semesta pembicaraan dan domain untuk

variabel populasi.

Page 69: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

51

2) Sedangkan pada semesta pembicaraan dan domain untuk variabel generasi,

aturan nilai yang digunakan adalah sebagai berikut:

• Semesta pembicaraan: [0 1000]

• Domain SHORT: [50 200]

• Domain MEDIUM: [80 275]

• Domain LONG: [350 500]

Gambar 2.25 Semesta pembicaraan dan domain

untuk variabel generasi.

3) Pada semesta pembicaraan dan domain untuk hasil output yaitu nilai

probabilitas rekombinasi (crossover), aturan nilai yang adalah sebagai

berikut:

• Semesta pembicaraan: [0.6 0.9]

• Domain SMALL: [0.625 0.7]

• Domain MEDIUM: [0.63 0.7 0.72 0.78]

• Domain LARGE: [0.72 0.78 0.8 0.87]

• Domain VERY LARGE: [0.8 0.875]

Page 70: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

52

Gambar 2.26 Semesta pembicaraan dan domain

untuk variabel probabilitas crosover (Muzid, 2008).

4) Pada semesta pembicaraan dan domain untuk nilai probabilitas mutasi,

aturan nilai yang digunakan oleh peneliti adalah sebagai berikut:

• Semesta pembicaraan: [0 0.25]

• Domain VERY SMALL: [0.025 0.1]

• Domain SMALL: [0.47 0.83 0.1 0.14]

• Domain MEDIUM: [0.1 0.14 0.167 0.2]

• Domain LARGE: [0.15 0.225]

Gambar 2.27 Semesta pembicaraan dan domain

untuk variabel probabilitas mutasi (Muzid, 2008).

Page 71: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

53

Aturan Fuzzy: (Muzid, 2008)

IF (Populasi is SMALL) AND (Generasi is SHORT)

THEN (ProbCrossover is MEDIUM) AND (ProbMutasi is LARGE).

IF (Populasi is MEDIUM) AND (Generasi is SHORT)

THEN (ProbCrossover is SMALL) AND (ProbMutasi is MEDIUM).

IF (Populasi is LARGE) AND (Generasi is SHORT)

THEN (ProbCrossover is SMALL) AND (ProbMutasi is SMALL).

IF (Populasi is SMALL) AND (Generasi is MEDIUM)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is MEDIUM).

IF (Populasi is MEDIUM) AND (Generasi is MEDIUM)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is SMALL).

IF (Populasi is LARGE) AND (Generasi is MEDIUM)

THEN (ProbCrossover is MEDIUM) AND (ProbMutasi is VERYSMALL).

IF (Populasi is SMALL) AND (Generasi is LONG)

THEN (ProbCrossover is VERYLARGE) AND (ProbMutasi is SMALL).

IF (Populasi is MEDIUM) AND (Generasi is LONG)

THEN (ProbCrossover is VERYLARGE) AND (ProbMutasi is

VERYSMALL).

IF (Populasi is LARGE) AND (Generasi is LONG)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is VERYSMALL).

Penyelesaian:

Ada 4 variabel fuzzy yang akan dimodelkan, yaitu:

(1) Populasi dengan nilai keanggotaan sebagai berikut:

[6] = 1

Page 72: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

54

[6] = 0

[6] = 0

(2) Generasi dengan nilai keanggotaan sebagai berikut:

(3) Probabilitas Crossover dengan nilai keanggotaan sebagai berikut:

Page 73: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

55

(4) Probabilitas Mutasi dengan nilai keanggotaan sebagai berikut:

Page 74: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

56

Sekarang kita cari nilai z untuk setiap aturan dengan menggunakan fungsi MIN

pada aplikasi fungsi implikasinya:

[R1] IF (Populasi is SMALL) AND (Generasi is SHORT) THEN

(ProbCrossover is MEDIUM) AND (ProbMutasi is LARGE);

Lihat himpunan ProbCrossover MEDIUM,

Lihat himpunan ProbMutasi LARGE,

[R2] IF (Populasi is MEDIUM) AND (Generasi is SHORT) THEN

(ProbCrossover is SMALL) AND (ProbMutasi is MEDIUM).

[R3] IF (Populasi is LARGE) AND (Generasi is SHORT) THEN

(ProbCrossover is SMALL) AND (ProbMutasi is SMALL).

Page 75: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

57

[R4] IF (Populasi is SMALL) AND (Generasi is MEDIUM) THEN

(ProbCrossover is LARGE) AND (ProbMutasi is MEDIUM).

Lihat himpunan ProbCrossover LARGE,

Lihat himpunan ProbMutasi MEDIUM,

[R5] IF (Populasi is MEDIUM) AND (Generasi is MEDIUM) THEN

(ProbCrossover is LARGE) AND (ProbMutasi is SMALL).

Page 76: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

58

[R6] IF (Populasi is LARGE) AND (Generasi is MEDIUM) THEN

(ProbCrossover is MEDIUM) AND (ProbMutasi is VERYSMALL).

[R7] IF (Populasi is SMALL) AND (Generasi is LONG) THEN

(ProbCrossover is VERYLARGE) AND (ProbMutasi is SMALL).

[R8] IF (Populasi is MEDIUM) AND (Generasi is LONG) THEN

(ProbCrossover is VERYLARGE) AND (ProbMutasi is

VERYSMALL).

Page 77: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

59

[R9] IF (Populasi is LARGE) AND (Generasi is LONG) THEN

(ProbCrossover is LARGE) AND (ProbMutasi is VERYSMALL).

Dari sini kita dapat mencari berapakah nilai x (probabilitas crossover) dan

y (probabilitas mutasi), yaitu:

Sedangkan,

Jadi nilai probabilitas crossover = 0,69 dan nilai probabilitas mutasi 0,19.

PINDAH SILANG (CROSSOVER)

Nilai ρc = 0,69 berarti jika bilangan random dihasilkan < 0.69 maka akan dipilih

menjadi induk baru. Hasil 6 bilangan random yang dihasilkan adalah : R[1] =

0,851 , R[2] = 0,211 , R[3] = 0,202 , R[4] = 0,877 , R[5] = 0,771 ,R[6] = 0,131.

Kromosom ke-k yang dipilih sebagai induk jika R[k] < ρc. Maka yang akan

dijadikan induk adalah kromosom[2], kromosom[3], dan kromosom[6].

Proses Crossover :

Page 78: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

60

Kromosom[2] = Kromosom[2] >< Kromosom[3]

= [B D E C] >< [C B D E]

= [B D C E]

Kromosom[3] = Kromosom[3] >< Kromosom[6]

= [C B D E] >< [E B C D]

= [C B E D]

Kromosom[6] = Kromosom[6] >< Kromosom[2]

= [E B C D] >< [B D E C]

= [E D B C]

Hasil Crossover:

Kromosom [1] = [D B E C]

Kromosom [2] = [B D C E]

Kromosom [3] = [C B E D]

Kromosom [4] = [E C B D]

Kromosom [5] = [C B D E]

Kromosom [6] = [E D B C]

MUTASI

Panjang total gen = jumlah gen dalam 1 kromosom * jumlah Kromosom (3)

= 4 * 6 = 24

Probabilitas mutasi (ρm) = 0,19 maka jumlah gen yang akan dimutasi adalah =

0,19*24 = 4,56 = 5. Posisi tersebut didapat dari pembangkitan 5 bilangan acak.

Misakan 5 buah posisi gen yang akan dimutasi adalah 3, 7, 10, 20, 24.

Kromosom [1] = [D B E C] = [D B C E]

Page 79: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

61

Kromosom [2] = [B D C E] = [B D E C]

Kromosom [3] = [C B E D] = [C E B D]

Kromosom [4] = [E C B D] = [E C B D]

Kromosom [5] = [C B D E] = [E B D C]

Kromosom [6] = [E D B C] = [C D B E]

Proses algoritma genetika dengan teknik kendali logika fuzzy untuk 1 generasi

telah selesai. Maka nilai fitness setelah 1 generasi adalah:

Fitness [1] = AD + DB + BC + CE + EA = 9 + 2 + 7 + 3 + 9 = 30

Fitness [2] = AB + BD + DE + EC + CA = 7 + 2 + 6 + 3 + 5 = 23

Fitness [3] = AC + CE + EB + BD + DA = 5 + 3 + 8 + 2 + 9 = 27

Fitness [4] = AE + EC + CB + BD + DA = 9 + 3 + 7 + 2 + 9 = 30

Fitness [5] = AE + EB + BD + DC + CA = 9 + 8 + 2 + 4 + 5 = 28

Fitness [6] = AC + CB + BD + DE + EA = 5 + 7 + 2 + 6 + 9 = 29

Sebelumnya telah ditentukan kriteria berhenti yaitu bila setelah dalam beberapa

generasi berturut-turut diperoleh nilai fitness yang terendah tidak berubah. Pada 1

generasi telah terlihat bahwa terdapat nilai fitness terkecil yang tidak berubah.

Apabila perhitungan dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa

nilai fitness yang terendah tetap tidak akan berubah. Walaupun perhitungan cukup

dijabarkan hingga generasi ke-1 saja namun solusi yang mendekati optimal telah

didapatkan. Oleh karena itu, terbukti bahwa algoritma genetika dapat

menyelesaikan persoalan.

Page 80: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

62

2.6 Sekilas tentang MATLAB

MATLAB merupakan bahasa pemrogaman yang hadir dengan fungsi dan

karakteristik yag berbeda dengan bahasa pemrograman lain yang sudah ada lebih

dahulu seperti Delphi, Basic, maupun C++. MATLAB merupakan bahasa

pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi

matematik, analisis data, pengembangan algoritma, simulasi dan pemodelan, serta

grafik-grafik perhitungan.

MATLAB hadir dengan membawa warna yang berbeda. Hal ini karena

MATLAB membawa keistimewaan dalam fungsi-fungsi matematika, fisika,

statistik, dan visualisasi. MATLAB dikembangkan oleh MathWorks, yang pada

awalnya dibuat untuk memberikan kemudahan mengakses data matrik pada

proyek LINPACK dan EISPACK. Saat ini MATLAB memiliki ratusan fungsi

yang dapat digunakan sebagai program solver mulai dari masalah yang simple

sampai masalah-masalah yang kompleks dari berbagai disiplin ilmu (Firmansyah,

2007).

2.6.1 Beberapa Bagian dari Window MATLAB

Adapun beberapa bagian dari window yang terdapat dalam program

MATLAB meliputi:

1. Current Directory

Bagian dari window ini menampilkan isi dari direktori kerja saat

menggunakan MATLAB

2. Command History

Page 81: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

63

Bagian ini berfungsi untuk menyimpan perintah-perintah apa saja yang

sebelumnya dilakukan oleh pengguna terhadap MATLAB.

3. Command Window

Bagian ini merupakan tempat untuk menjalankan fungsi, variabel,

mendeklerasikan variabel, menjalankan proses-proses, serta melihat isi

variabel.

4. Workspace

Bagian ini berfungsi untuk menampilkan seluruh variabel-variabel yang

sedang aktif pada saat pemakaian MATLAB (Firmansyah, 2007).

2.6.2 Meminta Bantuan

MATLAB menyediakan fungsi help yang berisikan tutorial lengkap

mengenai MATLAB dan segala keunggulannya. User dapat menjalankan fungsi

ini dengan menekan tombol pada toolbar atau menulis perintah ‘helpwin’ pada

command window. MATLAB juga menyediakan fungsi demos yang berisikan

video tutorial MATLAB serta contoh-contoh program yang bisa dibuat dengan

MATLAB (Firmansyah, 2007).

2.6.3 Interupting dan Terminating dalam MATLAB

Untuk meghentikan proses yang sedang berjalan pada MATLAB dapat

dilakukan dengan menekan tombol Ctrl+C. Sedangkan untuk keluar dari

MATLAB dapat dilakukan dengan menuliskan perintah exit atau quit pada

command window atau dengan menekan menu exit pada bagian menu file dari

menu bar (Firmansyah, 2007).

Page 82: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

64

2.6.4 Variabel pada MATLAB

MATLAB hanya memiliki dua jenis tipe data yaitu numeric dan string.

Dalam MATLAB setiap variabel akan disimpan dalam bentuk matrik. User dapat

langsung menuliskan variabel baru tanpa harus mendeklarasikannya terlebih

dahulu pada command window (Firmansyah, 2007)

2.7 Pembuatan Aplikasi Berbasis Graphic User Interface (GUI)

2.7.1 Pendahuluan

Hampir sebagian besar aplikasi yang beredar di pasaran saat ini berbasis

Graphic User Interface (GUI) karena lebih diterima oleh user dibanding program

yang berbasis console. Istilah populer dari GUI adalah pemrograman visual

dengan bentuk form atau frame. Kebanyakan bahasa pemrograman yang

digunakan oleh developer dalam membuat aplikasi sudah mendukung GUI.

Tetapi kebanyakan kurang mendukung sistem yang menerapkan Soft Computing.

Matlab sebagai bahasa pemrograman yang mendukung Soft Computing, kini

sudah dilengkapi dengan GUI untuk pembuatan aplikasinya. Bahkan sudah

dilengkapi dengan Deployment Project agar dihasilkan executable program yang

dapat berjalan di sembarang komputer tanpa MATLAB.

GUI pada MATLAB berfungsi sebagai penghubung antara script Matlab

yang tersimpan berupa M-File dan toolbox-toolbox MATLAB seperti FIS,

ANFIS, JST, Algoritma Genetika dan lain-lain. Setelah kita mempelajari toolbox-

toolbox MATLAB pada bab-bab terdahulu, kita mulai masuk ke

Page 83: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

65

pengintegrasiannya ke dalam aplikasi sesungguhnya dengan bantuan GUI.

(Widodo, 2012:159)

2.7.2 GUI

GUI pada MATLAB dapat kita buka dengan mengeklik “File-New-Gui”.

Atau dengan mengetik “guide” pada Command Window. Pilih “Blank GUI” pada

jendela GUIDE Quick Start. Cara menggunakannya adalah dengan menge-drag

icon pada komponen ke tengah kemudian dobel klik untuk mengeset

parameternya. Parameter yang diseting berupa nama variabel (tag) dan nama

String. (Widodo, 2012:160)

2.7.3 M-File Editor

Visualisasi pada MATLAB yang berupa GUI tidak akan dapat berjalan

sebagaimana mestinya tanpa adanya bantuan M-File. GUI hanyalah alat bantu

dalam pembuatan desain interaksi antara pengguna dengan aplikasi.

Sesungguhnya yang berperan dalam komputasi tetap saja script M-File.

M-File secara otomatis terbentuk saat kita mengklik icon “Run” pada

jendela GUI. Sesaat setelah kita mengklik tombol “Run” kita diminta untuk

menyimpan dan memberi nama project yang baru saja kita buat GUI-nya.

Pada M-File editor tampak script yang dibuatkan oleh Matlab secara

otomatis. Berikutnya kita tinggal menyisipkan script-script yang dibutuhkan pada

M-File tersebut. Saat kita menyisipkan suatu komponen pada GUI, secara

otomatis pada M-File disipkan pula function yang berupa Callback. (Widodo,

2012:162).

Page 84: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

66

66

BAB 3

METODE PENELITIAN

Metode penelitian merupakan suatu cara yang digunakan dalam penelitian

sehingga pelaksanaan penelitian dapat dipertanggungjawabkan secara ilmiah.

Dengan metode penelitian, data yang diperoleh semakin lengkap untuk

memecahkan masalah yang dihadapi. Pada penelitian ini langkah-langkah yang

dilakukan adalah sebagai berikut.

3.1. Menemukan Masalah

Dalam tahap ini dicari sumber pustaka dan dipilih suatu masalah. Untuk

lebih memperjelas pembahasan, maka dipilih suatu kasus yang terjadi di suatu

perusahaan yang berkaitan langsung dengan permasalahan yang akan diangkat.

3.2. Merumuskan Masalah

Masalah yang ditemukan kemudian dirumuskan pada pencarian rute

jaringan dan hasil pencarian jarak minimum dalam pengiriman barang

menggunakan algoritma genetika dengan software MATLAB di PT. Pos

Indonesia DC Tugu Semarang.

3.3. Pengambilan Data

Dalam penelitian ini, penulis memperoleh data dari PT. Pos Indonesia DC

Tugu Semarang yang kemudian akan dilakukan pengolahan. Data ini berupa data

pengiriman barang oleh kurir dari PT. Pos Indonesia DC Tugu Semarang beserta

alamatnya. Untuk memperoleh data jarak antar lokasi dilakukan proses pencarian

Page 85: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

67

jarak menggunakan bantuan Wikimapia. Metode ini dilakukan karena dengan cara

ini akan didapatkan jarak antar lokasi secara lebih akurat tanpa harus

mengeluarkan banyak waktu dan biaya dalam pencariannya. Adapun langkah-

langkahnya adalah sebagai berikut.

1. Membuka situs www.wikimapia.org.

2. Di bagian pencarian atau search ketik kata kunci yang berhubungan dengan

Semarang, misal Universitas Negeri Semarang. Setelah itu, tekan ENTER

atau tombol CARI.

Gambar 3.1 Halaman Depan Wikimapia

3. Setelah muncul semua informasi yang berhubungan dengan Semarang, pilih

Universitas Negeri Semarang. Agar nama jalan dapat terlihat, maka ubah

nama JENIS PETA menjadi Google Versi Padu.

Page 86: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

68

Gambar 3.2 Hasil Pencarian Tempat

4. Untuk memunculkan pengukuran jarak, pada menu utama Wikimapia klik

menu LOGIN – PENGUKURAN JARAK.

Gambar 3.3 Menu Login Wikimapia

Page 87: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

69

5. Mulai mengukur jarak dari mulai Universitas Negeri Semarang Sekaran

hingga berakhir di PROGRAM PASCASARJANA UNNES. Setelah selesai,

maka akan tampak bahwa total jarak adalah 1,3 KM.

Gambar 3.4 Hasil Pengukuran Jarak

3.4. Analisis dan Pemecahan Masalah

Dari berbagai sumber yang sudah menjadi bahan kajian, diperoleh suatu

pemecahan masalah. Selanjutnya dilakukan langkah-langkah pemecahan masalah

sebagai berikut:

1. Pembentukan model.

Menyajikan titik-titik yang harus dilalui dalam jaringan TSP

berdasarkan data perusahaan beserta jarak antar titiknya.

2. Mencari penyelesaian masalah.

Page 88: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

70

Pada tahap ini dilakukan pencarian rute optimal dan jarak minimal yang

dapat ditempuh dalam pengiriman barang dengan syarat semua alamat dilalui

tepat satu kali kecuali titik asal yang sama dengan titik akhir. Setelah diketahui

jarak antara titik menggunakan Wikimapia, akan dicari hasil perhitungan rute

optimal dan jarak minimal dari jaringan TSP beserta gambar rute tersebut. Proses

ini memerlukan ketelitian yang tinggi karena jika terjadi suatu kesalahan kecil saja

akan berakibat pada ketidaktepatan dalam perhitungan rute dan jarak dari jaringan

TSP terbaik. Masalah minimasi ini akan dicari dengan menggunakan algoritma

genetika pada software MATLAB.

3.4.1. Analisis Kebutuhan

Aplikasi dalam menentukan jalur terpendek pada kasus TSP ini dirancang

dengan menggunakan Algoritma Genetika. Dalam melakukan proses aplikasi

yang mencakup proses input dan proses outputnya, dinyatakan dengan

menggunakan aplikasi bahasa pemrograman MATLAB yang diperjelas dengan

diagram alir/flowchart (lihat Gambar 3.5). Pada tahap ini, digunakan notasi-notasi

untuk menggambarkan arus data tersebut.

3.4.1.1. Analisis Kebutuhan Masukan (Input)

Proses input atau masukan dari aplikasi dalam memnentukan jalur

terpendek pada permasalahan TSP ini berupa parameter-parameter yang

diperlukan dalam Algoritma Genetika, yaitu:

1. Data jumlah kota, yang dalam penelitian ini adalah jumlah alamat,

disimbolkan dengan ( ) dan direpresentasikan dengan koordinat ( ).

Page 89: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

71

Jumlah alamat ( ) ditentukan oleh pengguna. Pada penentuan koordinat

alamat, penulis menggunakan bantuan website wikimapia.org.

2. Parameter-parameter yang diperlukan dalam perhitungan Algoritma

Genetika, yaitu:

- Ukuran Populasi dan Generasi = (100 dan 100), (100 dan 200), (100

dan 500), (100 dan 1000), (200 dan 100), (500, 100), dan (1000,100)

- Panjang Kromosom/Jumlah Gen = 22

- Peluang Crossover ( ) = dihitung menggunakan fuzzy

sugeno

- Peluang Mutasi ( ) = dihitung menggunakan fuzzy

sugeno

3.4.1.2. Analisis Kebutuhan Proses

Kebutuhan proses yang dilakukan pada sistem menentukan jalur terpendek dalam

menyelesaian permasalahan TSP ini antara lain:

1. Proses pembuatan rute pada grafik.

2. Proses menentukan jarak kota dengan bantuan website wikimapia.org.

3. Proses perhitungan fungsi fitness, seleksi, crossover, mutasi sampai

dengan menentukan hasil populasi akhirnya.

4. Proses penyeleksian jalur terpendek.

3.4.1.3. Analisis Kebutuhan Keluaran (Output)

Data keluaran yang diperoleh dari proses pengaplikasian dalam

menentukan jalur terpendek dengan Algoritma Genetika dengan Teknik Kendali

Logika Fuzzy pada permasalahan TSP ini adalah rute jalur terpendek dari 22

Page 90: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

72

alamat yang telah ditentukan disertai dengan jarak antar alamat serta panjang jalur

minimum dan grafik fitness rata-ratanya.

3.4.2. Perancangan Perangkat Lunak

Program yang dibuat berdasarkan langkah-langkah untuk menyelesaikan

TSP Algoritma Genetika dengan kendali logika fuzzy menggunakan software

MATLAB sebagai berikut.

a. Langkah-langkah hybrid Algoritma Genetika dengan teknik kendali logika

fuzzy :

1. Pengkodean Kromosom

Pada tahap ini, alamat-alamat yang akan dikunjungi diberi nomor urut.

Kemudian dibentuk ke dalam suatu kromosom yang berisi gen-gen yang

mempresentasikan nomor urut dari semua kota yang ada. Jumlah gen

dalam setiap kromosom adalah sama dengan jumlah alamat. Masing-

masing nomor urut alamat hanya boleh muncul sekali di dalam suatu

kromosom dan dibangkitkan secara acak.

2. Inisialisasi Populasi

Tahap ini bertujuan untuk membangkitkan sebuah populasi yang berisi

sejumlah kromosom. Setiap kromosom berisi sejumlah gen. Input untuk

fungsi ini adalah ukuran populasi (jumlah kromosom dalam populasi) dan

jumlah gen dalam satu kromosom. Output dari fungsi tersebut adalah

variabel populasi berupa matriks dua dimensi.

Page 91: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

73

3. Menentukan Nilai Fitness

Permasalahan TSP untuk mencari jarak terpendek dari 27 alamat yang

akan dilalui adalah meminimalkan total biaya. Oleh karena itu, nilai fitness

yang bisa digunakan adalah 1 dibagi total biaya. Dalam hal ini yang

dimaksud dengan total biaya adalah jumlah jarak antara satu alamat

dengan alamat lain secara melingkar. Misalkan untuk sejumlah alamat,

total biaya adalah jarak alamat 1 ke alamat 2 ditambah jarak dari alamat 2

ke alamat 3 dan seterusnya sampai dengan jarak dari alamat ke alamat 1.

4. Seleksi

Seleksi yang digunakan pada permasalahan TSP ini adalah dengan metode

roulette wheel (roda roulette). Pada tahap ini, masing-masing kromosom

menempati potongan lingkaran pada roda roulette secara proporsional

sesuai dengan nilai fitnessnya. Kromosom yang memiliki nilai fitness lebih

besar, menempati potongan lingkaran lebih besar dibandingkan dengan

kromosom bernilai fitness rendah. Pertama, dibuat interval nilai kumulatif

(dalam interval [0,1]) dari nilai fitness masing-masing kromosom dibagi

dengan nilai fitness semua kromosom. Sebuah kromosom akan terpilih jika

bilangan random yang dibangkitkan berada dalam interval akumulatifnya.

5. Proses Perkawinan Silang (Crossover)

Pada tahap ini, akan dipilih 2 kromosom induk yang akan mengalami

proses perkawinan silang secara acak, kemudian menentukan titik

potongnya. Setelah titik potongnya terpilih, maka dilakukan penukaran

informasi dari kedua kromosom tersebut berdasarkan titik potong yang

Page 92: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

74

telah ditentukan. Pada proses ini akan dihasilkan kromosom anak hasil dari

perkawinan silang kedua induknya, dimana kromosom anak tersebut berisi

gen-gen gabungan dari bagian kromosom 1 dan kromosom 2.

6. Proses Mutasi

Proses mutasi adalah penukaran pasangan gen yang telah terpilih secara

random dalam 1 kromosom. Penukaran pasangan ini dilakukan pada dua

gen dalam satu kromosom. Untuk semua gen dalam kromosom, jika

bilangan random [1,0] yang dibangkitkan kurang dari probabilitas mutasi,

maka nilai gen tersebut akan ditukar dengan nilai gen lain yang dipilih

secara random.

Pada langkah 5 dan langkah 6, kedua probabilitas dari probabilitas

crossover dan probabilitas mutasi akan diatur/ dikontrol dengan

melakukan proses kendali logika fuzzy.

7. Evaluasi dan Kriteria Penghentian Generasi

Tahap ini adalah penghitungan jumlah generasi sampai mencapai batas

maksimum generasi yang diberikan. Bila dalam jumlah generasi yang

ditentukan tidak ada kromosom yang lebih baik, maka proses iterasi akan

berhenti.

b. Kendali logika fuzzy

Langkah-langkah yang dilakukan adalah sebagai berikut :

Prosedur : untuk mengontrol nilai parameter algoritma genetika

Langkah1 : Hitung perubahan nilai pada rata-rata nilai fitness antara generasi

sekarang dengan generasi sebelumnya.

Page 93: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

75

Langkah 2 : Tentukan nilai pengontrol antara generasi sekarang dengan generasi

sebelumnya menggunakan tabel pengambilan keputusan fuzzy.

Langkah 3 : Setelah melakukan nilai pengontrol diatas, hitung nilai perubahan

pada probabilitas crossover dan probabilitas mutasi.

Langkah 4 : Update nilai probabilitas crossover dan probabilitas mutasi.

Langkah 5 : kembali pada loop algoritma genetika.

3.5. Penarikan Simpulan

Langkah ini merupakan langkah terakhir dari penelitan. Penarikan

kesimpulan didasarkan pada studi kasus dan pembahasan permasalahan. Simpulan

yang diperoleh merupakan hasil analisis dari penelitian. Simpulan yang diambil

dari penelitian ini adalah tentang bagaimana mencari jalur terpendek dan hasil

pencarian jarak minimum dalam pengiriman barang menggunakan algoritma

genetika dengan software MATLAB di PT. Pos Indonesia DC Tugu Semarang.

Page 94: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

76

BAB 4

HASIL PENELITIAN DAN PEMBAHASAN

4.1 Hasil Penelitian

Penelitian ini mengkaji tentang pengiriman surat maupun barang di PT.

Pos Indonesia DC Tugu Semarang dengan permasalahannya yaitu menentukan

rute jaringan Travelling Salesman Problem (TSP) terbaik dengan jarak

pendistribusian terkecil menggunakan algoritma genetika dengan teknik kendali

logika fuzzy. Pada permasalahan ini aplikasi yang dibuat menggunakan bantuan

software Matlab 7.8.0 (R2009a).

Dalam penelitian ini yang akan dicari adalah panjang rute yang dilalui

untuk pendistribusian surat maupun barang yang akan dikirimkan PT. Pos

Indonesia DC Tugu Semarang menuju para penerima barang yang berada di

wilayah Kota Semarang, dalam hal ini dikhususkan untuk wilayah Kecamatan

Ngaliyan. Permasalahan TSP pada penelitian ini bukan lah masalah TSP murni,

karena masih terdapat beberapa jalan yang dilewati lebih dari satu kali. Hal ini

dikarenakan tidak adanya jalan lain yang bisa dipilih untuk melanjutkan

pendistribusian barang dari rumah penerima satu ke penerima selanjutnya.

Penulis memperoleh data dari PT. Pos Indonesia DC Tugu Semarang

berupa list nama penerima beserta alamat lengkapnya seperti yang tersaji dalam

Lampiran 1, kemudian dilakukan proses pencarian koordinat titik dengan bantuan

situs wikimapia.org yang sudah terintegrasi dengan Google Maps. Situs

Page 95: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

77

Wikimapia.org merupakan situs pencari koordinat lokasi di bumi, dengan sumbu

horisontal X adalah garis bujur (longitude), sedangkan sumbu vertikal Y

merupakan garis lintng (latitude), yang berjalan melalui Observatorium

Greenwich di Inggris.

Koordinat semua titik dalam pendistribusian surat maupun barang menuju

rumah penerima barang yang telah diberikan oleh PT. Pos Indonesia DC Tugu

Semarang disajikan pada Lampiran 2. Dari koordinat yang telah diketahui pada

Lampiran 2, kemudian dapat dicari jarak antar lokasinya. Dalam penelitian ini,

perhitungan jarak antar lokasi dilakukan dengan bantuan Google Maps yang telah

menyediakan fasilitas berupa pengukuran jarak. Adapun untuk membandingakan

ukuran jarak pada Google Maps dengan jarak sebenarnya di lapangan, penulis

melakukan observasi langsung pada beberapa sample tempat. Hasil perhitungan

jarak antar semua lokasi terlampir pada Lampiran 3.

4.1.1 Pengkodean Kromosom

Pada tahap pengkodean kromosom ini, kota-kota yang akan dikunjungi

diberi nomor urut dan ditentukan pula posisinya dalam grafik.

Page 96: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

78

Gambar 4.1 Posisi 22 Alamat dalam Grafik

4.1.2 Inisialisasi Populasi

Tahap ini adalah tahap membangkitkan sebuah populasi yang berisi

sejumlah kromosom. Setiap kromosom berisi sejumlah gen dan setiap gen berisi

nomor dari semua kota yang menjadi sample. Masing-masing nomor urut hanya

boleh muncul 1 kali di dalam 1 kromosom. Masukan untuk fungsi ini adalah

ukuran populasi yaitu jumlah kromosom dalam populasi dan jumlah gen dalam

satu kromosom. Kromosom yang dibangkitkan adalah sebuah kromosom acak.

Untuk membangkitkan kromosom ini, digunakan fungsi random yang telah

tersedia dalam MATLAB. Sintak dapat dilihat pada Gambar 4.2 sebagai berikut.

Gambar 4.2 Sintak Inisialisasi Populasi

Fungsi di atas dideklarasikan dengan nama

TSPInisialisasiPopulasi, dengan 2 variabel yaitu Ukpop,JumGen.

Ukpop merupakan ukuran populasi, dan JumGen adalah jumlah gen. Output yang

dihasilkan dari fungsi ini adalah Populasi. Untuk menyatakan kromosom ke-

pada populasi yang jumlah kolomnya sama dengan jumlah gen digunakan

perintah Populasi(ii,:). Ukpop menyatakan ukuran populasi atau jumlah

kromosom dalam populasi, dimana nilainya dapat dimasukkan melalui perintah

function Populasi =

TSPInisiasiPopulasi(UkPop,JumGen)

for ii=1:UkPop,

[Xval,Ind] = sort(rand(1,JumGen));

Populasi(ii,:) = Ind;

end

Page 97: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

79

input (‘Masukkan Ukuran Populasi: ‘). JumGen menyatakan

jumlah gen dalam kromosom, dimana gen ini merepresentasikan jumlah alamat

yang ada. Nilai dari JumGen dimasukkan melalui perintah input

(‘Masukkan Jumlah Gen : ‘).Perintah sort (rand(1,JumGen))

manyatakan pembangkitan matriks berukuran 1 x JumGen yang berisi bilangan

random dalam interval 0 – 1 yang terurut dari kecil ke besar. Program tersebut

kemudian disimpan dengan nama TSPInisialisasiPopulasi.m.Dari

program tersebut, didapatkan kromosom yang terbentuk seperti pada Lampiran 8.

Dari hasil tersebut dapat diperoleh populasi awal yang dibangkitkan secara

acak dengan merepresentasikannya melalui nomor urut setiap alamat yang

merupakan jalur yang dilalui pada masing-masing kromosom secara melingkar.

Populasi awal ini diambil secara acak dari sekian banyak solusi jalur yang

memungkinkan untuk dilalui. Masing-masing nomor urut hanya boleh muncul 1

kali dalam 1 kromosom.

4.1.3 Evaluasi Individu

TSP bertujuan untuk meminimalkan jarak, maka nilai fitnessnya adalah

inversi total jarak dari jalur yang didapatkan, dengan menggunakan rumus di

mana adalah total jarak dari jalur yang didapatkan.

Variabel yang digunakan untuk mencari nilai fitness yaitu populasi, jumlah

gen, dan jarak antar kota dalam suatu kromosom. Output dari fungsi ini adalah

nilai fitness dalam suatu populasi yang dapat dilihat pada Lampiran 9.

4.1.4 Probabilitas Fitness

Page 98: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

80

Probabilitas fitness adalah perhitungan masing-masing nilai fitness pada

setiap kromosom dalam suatu populasi terhadap jumlah total nilai fitnessnya.

Rumus yang digunakan adalah . Pada tahap ini juga dapat ditentukan

nilai kumulatif dari probabilitasnya. Perhitungan probabilitas fitness ini

diimplementasikan dengan fungsi sort.

Gambar 4.3 Sintak Probabilitas Fitness

Variabel yang digunakan untuk mencari probabilitas fitness yaitu

popsize (ukuran populasi) dan MaxGen (maksimum generasi). Keluarannya

adalah probabilitas fitness dan nilai kumulatif dari probabilitasnya yang dapat

dilihat pada Lampiran 10.

Nilai Kumulatif dari probabilitas fitness yang diperoleh adalah 1, hal ini

terjadi karena bila dilihat berdasarkan definisi teori probabilitas, nilai probabilitas

berkisar antara interval 0 – 1 di mana , artinya, nilai probabilitas

yang dihasilkan tidak boleh lebih dari 1. Nilai probabilitas maksimum yang

dihasilkan harus bernilai 1.

4.1.5 Roulette Wheel Selection

Proses seleksi adalah proses mencari kromosom terbaik dalam satu

generasi, di mana untuk menentukan suatu kromosom terbaik dapat dilihat dari

while generasi<MaxGen, generasi=generasi+1; gen(generasi)=generasi; F=sum(pop(:,N+2)); for i=1:popsize, p(i)=pop(i,N+2)/F; q(i)=sum(p(1:i)); end; [Urut,indek]=sort(pop(:,N+2));

Page 99: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

81

nilai fitnessnya. Proses seleksi dilakukan dengan mengevaluasi setiap kromosom

berdasarkan nilai fitnessnya untuk mendapatkan peringkat terbaik. Pada tahap ini,

kromosom diseleksi sesuai dengan nilai fitnessnya. Tahap pertama yang dilakukan

adalah nilai fitness yang diperoleh dijumlahkan, kemudian bangkitkan bilangan

random. Setelah itu, nilai fitness yang telah terurut tadi dibandingkan dengan

bilangan random yang dibangkitkan. Jika bilangan random yang

telah dibangkitkan, maka kromosom tersebut akan terpilih sebagai induk untuk

melakukan proses selanjutnya. H yang dapat dilihat pada Lampiran 11.

4.1.6 Update Probabilitas Crossover dan Probabilitas Mutasi

Pada proses ini, update probabilitas crossover dan probabilitas mutasi

menggunakan teknik kendali logika fuzzy. Pada prinsipnya proses kendali logika

fuzzy dipergunakan untuk mengontrol nilai parameter algoritma genetika pada

suatu generasi secara otomatis (automatic fine-tuning) berdasarkan informasi yang

diperoleh dari populasi sebelumnya. nilai statistik dari populasi dan generasi yang

ada dimasukkan dalam proses fuzzy sehingga menghasilkan parameter yang

kemudian akan digunakan dalam proses algoritma genetika sehingga akan

menghasilkan keluaran akhir.

Dalam skripsi ini perhitungan probabilitas crossover dan probabilitas

mutasi menggunakan bantuan perhitungan fuzzy sugeno yang terdapat di dalam

software MATLAB. Untuk perhitungan manualnya dapat dilihat pada Lampiran

12.

4.1.6 Implementasi Program

Page 100: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

82

Setelah memperoleh data dari PT Pos Indonesia DC Tugu Semarang

berupa list nama beserta alamat penerima dan mencari koordinat beserta jarak

antar alamat penerima, kemudian dibangun perangkat lunak implementasi

Algoritma Genetika dengan Teknik Kendali Logika Fuzzy pada Travelling

Salesman Problem melalui bantuan software MATLAB.

Setelah perangkat lunak implementasi Algoritma Genetika dengan Teknik

Kendali Logika Fuzzy pada Travelling Salesman Problem selesai dibangun, maka

tahap selanjutnya adalah tahap uji coba program. Tahap uji coba tampilan adalah

tahap pengujian dengan menjalankan program Travelling Salesman Problem yang

sebagai masukan adalah titik koordinat tempat tujuan, jarak antar lokasi tempat

tujuan, jumlah populasi, dan batas generasi yang akan diperoleh. Dalam perangkat

yang telah dibuat, terdapat beberapa tampilan antara lain: tampilan Menu Utama,

tampilan About, dan tampilan Help. Hasil pada tampilan Menu Utama, tampilan

About, dan tampilan Help dapat dilihat pada Lampiran 4. Untuk coding pada

matlab dapat dilihat pada Lampiran 5. Tampilan TSP dapat dilihat pada Gbr 4.6.

Page 101: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

83

Gambar 4.6 Tampilan Uji TSP

Pada tampilan Uji TSP yang ada pada Gambar 4.6 berguna untuk

melakukan proses pencarian rute menggunakan algoritma genetika dengan teknik

kendali logika fuzzy dengan memasukkan data koordinat alamat yang dituju yang

sebelumnya telah dimasukkan ke dalam Excel, jumlah populasi, dan batas

generasi. Kemudian terdapat beberapa tombol beserta fungsinya antara lain:

1. Tombol Input Data: berfungsi untuk memasukkan data koordinat alamat

dituju yang sebelumnya telah dimasukkan ke dalam Excel

2. Tombol Fuzzy Sugeno: berfungsi untuk memberi keluaran berupa Pmutasi

dan Pcrossover setelah menginputkan Populasi dan Generasi).

3. Tombol Cari: berfungsi untuk melakukan proses perhitungan menggunakan

algoritma genetika dengan teknik kendali logika fuzzy.

4. Tombol Plot: berfungsi untuk menampilkan grafik koordinat kota/alamat

yang akan dilalui setelah melakukan proses perhitungan.

Page 102: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

84

5. Tombol Menu Utama: berfungsi untuk kembali pada tampilan menu utama.

6. Tombol Hasil Uji: berfungsi untuk menyimpan hasil perhitungan berupa nilai

fitness terbaik, nilai fitness rata-rata, panjang jalur terbaik (Km), waktu (s),

dan jalur terbaik. Tampilan Hasil Uji dapat dlihat pada Gambar 4.7.

Gambar 4.7 Tampilan Hasi Uji

7. Tombol Refresh: digunakan untuk memasukkan nilai pada kolom yang

telah disediakan setelah melakukan perhitungan menggunakan

algoritma genetika dengan teknik kendali logika fuzzy.

8. Tombol Reset: digunakan untuk menghapus semua masukkan nilai.

9. Tombol Save Excel: digunakan untuk menyimpan data ke dalam file

Excel.

Berikut ini merupakan grafik koordinat kota/alamat yang dituju dapat dilihat

pada Gambar 4.8.

Page 103: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

85

Gambar 4.8 Tampilan Koordinat Kota atau Alamat Dituju

4.1.7 Hasil Simulasi Program

Perangkat lunak yang telah dirancang memerlukan pengujian data dengan

melakukan proses pencarian rute dengan variasi jumlah populasi dan batas

generasi yaitu: (100 dan 100), (100 dan 200), (100 dan 500), (100 dan 1000), (200

dan 100), (500 dan 100) dan (1000 dan 100). Kemudian dilakukan proses

perhitungan sebanyak 10 kali dan diambil hasil terbaik minimum.

4.1.7.1 Perhitungan menggunakan masukan populasi 100 dan generasi 100

Untuk memulai perhitungan menggunakan perangkat lunak yang telah

disediakan dapat dilihat pada Gambar 4.9 dengan memasukkan koordinat alamat

tujuan yang sebelumnya telah disiapkan pada Excel, populasi 100 dan generasi

100.

Page 104: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

86

Gambar 4.9 Tampilan TSP Setelah Memasukan Koordinat Kota, Populasi, dan

Generasi

Setelah tombol Fuzzy Sugeno ditekan pada Pmutasi dan Pcrossover akan

muncul nilai 0,9152 dan 0,71538. Nilai Pmutasi dan Pcrossover dihasilkan

melalui sistem fuzzy Sugeno dengan memasukkan populasi 100 dan generasi 100

dan menggunakan aturan fuzzy serta nilai fungsi keanggotaan fuzzy yang telah

dijelaskan pada Lampiran 6. Gambar 4.10 menjelaskan proses kerja pencarian

probabilitas mutasi dan probabilitas crossover menggunakan fuzzy Sugeno.

Page 105: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

87

Gambar 4.10 Hasil Pencarian Mutasi dan Probabilitas Crossover

Gambar diatas merupakan menu pilihan untuk menyimpan, mengedit, dan melihat

sistem fuzzy. Kolom kuning menunjukkan variabel input yang dalam penelitian

ini adalah nilai Generasi dan Populasi. Kolom biru menunjukkan variabel output

yang dalam penelitian ini adalah nilai probabilitas crossover dan nilai probabilitas

mutasi. Kolom di bawah kolom biru menunjukkan kombinasi output dari tiap-tiap

aturan yang terbentuk dari fungsi komposisi yang digunakan, kemudian

dilanjutkan dengan proses defuzzifikasi. Kemudian pilih tombol Cari. Maka akan

dilakukan proses perhitungan seperti yang tertera pada Gambar 4.11.

Page 106: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

88

Gambar 4.11 Tampilan TSP Setelah Dijalankan

Kemudian jika ingin melihat grafik koordinat alamat tujuan pilih tombol Plot

seperti tertera pada Gambar 4.12.

Gambar 4.12 Tampilan Grafik Rute Koordinat Alamat Tujuan

Page 107: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

89

Setelah melakukan proses perhitungan sebanyak 10 kali maka hasil perhitungan

dapat dilihat pada Gambar 4.13 setelah memilih tombol Hasil Uji.

Gambar 4.13 Hasil Uji pada Populasi 100 dan Generasi 100

Dan Gambar 4.14 merupakan data yang telah disimpan ke dalam Excel.

Gambar 4.14 Tampilan Data yang Telah Disimpan pada Excel

Untuk tampilan Hasil Uji dan tampilan data yang telah disimpan pada excel

selanjutnya dapat dilihat pada Lampiran 7. Kemudian hasil perhitungan

Page 108: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

90

menggunakan populasi 100, generasi 100, probabilitas mutasi 0,1952 dan

probabilitas crossover 0,71538 sebanyak 10 kali dapat dilihat pada Tabel 4.1

Tabel 4.1 Hasil Perhitungan menggunakan Populasi 100 dan Generasi 100

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,0343 0,021 29,13 82,428 1-9-5-8-6-17-16-20-11-

12-13-14-10-22-15-21-

18-19-7-3-4-2-1

2 0,0308 0,0206 32,5 78,981 1-10-6-7-8-3-5-4-13-12-

11-18-15-14-16-17-9-19-

22-21-20-2-1

3 0,0321 0,0212 31,18 82,644 1-3-20-17-15-21-22-16-

18-19-9-5-13-14-11-12-

2-4-6-8-10-7-1

4 0,0304 0,0207 32,93 80,883 1-3-2-7-9-21-22-17-15-

13-10-16-19-18-20-11-8-

4-6-12-14-5-1

5 0,0324 0,0206 30,9 85,007 1-2-5-6-15-21-18-17-14-

13-22-10-9-4-3-11-20-

19-16-12-8-7-1

6 0,0317 0,0208 31,55 81,764 1-6-5-3-2-4-7-20-22-16-

15-13-18-19-12-14-11-

Page 109: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

91

17-21-10-9-8-1

7 0,0324 0,0207 30,87 83,132 1-20-8-4-5-6-9-7-3-16-

17-14-13-10-11-12-18-

19-22-21-15-2-1

8 0,0326 0,0206 30,69 82,224 1-3-5-18-17-16-10-21-

22-20-14-11-12-8-9-4-6-

7-15-13-19-2-1

9 0,0352 0,0212 28,38 84,012 1-5-6-7-8-9-16-22-3-4-

11-12-13-15-21-17-14-

18-19-20-10-2-1

10 0,0311 0,0208 32,14 68,894 1-6-10-5-20-16-17-11-

22-21-13-14-12-9-7-8-

15-18-19-3-4-2-1

Dari Tabel 4.1 diperoleh hasil rata-rata panjang jalur terbaik adalah 31,027 Km,

nilai fitness terbaik yang terbesar adalah 0,0352, panjang jalur terpendek adalah

28,38 Km dan waktu eksekusi adalah 84,012 detik dengan jalur terbaiknya adalah

.

4.1.7.2 Perhitungan menggunakan masukan populasi 100 dan generasi 200

Hasil setelah dilakukan perhitungan menggunakan populasi 100, generasi

200, probabilitas mutasi 0,144121 dan probabilitas crossover 0.793136 sebanyak

10 kali pada Tabel 4.2.

Page 110: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

92

Tabel 4.2 Hasil Perhitungan menggunakan Populasi 100 dan Generasi 200

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,033557 0,021032 29,8 144,6498 1-2-5-6-16-13-14-11-

12-10-7-3-9-15-21-19-

18-22-17-20-4-8-1

2 0,032248 0,02065 31,01 142,8627 1-2-4-3-18-16-17-7-8-

10-11-6-15-14-22-21-

20-19-13-12-5-9-1

3 0,032041 0,02093 31,21 142,726 1-2-12-20-17-13-8-6-5-

3-4-9-10-11-7-21-19-

18-22-16-15-14-1

4 0,035002 0,021089 28,57 149,936 1-4-3-15-14-12-19-18-

13-22-16-17-21-20-11-

6-5-9-7-8-10-2-1

5 0,034282 0,020981 29,17 155,2665 1-2-15-8-7-10-22-17-

16-18-20-11-12-13-14-

19-21-6-4-9-5-3-1

6 0,036873 0,020914 27,12 152,0769 1-2-5-8-10-15-14-13-7-

Page 111: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

93

4-3-12-11-19-20-21-17-

16-22-18-9-6-1

7 0,034614 0,020563 28,89 152,686 1-2-10-14-16-5-8-7-9-

15-13-19-20-17-18-21-

22-11-3-6-4-1

8 0,030826 0,020979 32,44 154,926 1-3-9-2-4-12-11-16-15-

13-21-22-8-5-6-7-17-

14-20-18-19-10-1

9 0,03639 0,020603 27,48 155,2225 1-2-4-8-7-9-5-16-21-

19-18-17-14-13-12-15-

22-20-11-10-3-6-1

10 0,034037 0,021053 29,38 152,3815 1-2-5-9-3-7-6-8-16-21-

18-14-17-15-13-19-22-

20-10-11-12-4-1

Dari Tabel 4.2 diperoleh hasil rata-rata panjang jalur terbaik adalah 29,507 Km,

nilai fitness terbaik yang terbesar adalah 0,036873 panjang jalur terpendek adalah

27,12 Km dan waktu eksekusi adalah 152,0769 detik dengan jalur terbaiknya

adalah 1-2-5-8-10-15-14-13-7-4-3-12-11-19-20-21-17-16-22-18-9-6-1

Page 112: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

94

4.1.7.3 Perhitungan menggunakan masukan populasi 100 dan generasi 500

Hasil setelah dilakukan perhitungan menggunakan populasi 100, generasi

500, probabilitas mutasi 0.088359 dan probabilitas crossover 0.863904 sebanyak

10 kali pada Tabel 4.3.

Tabel 4.3 Hasil Penghitungan menggunakan Populasi 100 dan Generasi 500

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,03686 0,021092 27,13 362,0199 1-3-4-6-5-15-14-13-10-

9-7-8-2-12-11-19-20-

21-22-16-18-17-1

2 0,03537 0,020912 28,27 353,1231 1-2-4-12-11-14-10-16-

8-7-9-5-6-3-13-15-19-

20-17-18-21-22-1

3 0,033356 0,021082 29,98 355,9253 1-8-13-14-15-19-21-

22-10-11-12-7-2-3-4-5-

6-9-20-17-18-16-1

4 0,033478 0,021248 29,87 361,8065 1-6-8-7-10-14-18-16-

19-20-11-12-22-21-9-

3-5-17-15-13-4-2-1

5 0,037175 0,020736 26,9 381,8134 1-4-5-9-15-14-22-21-

Page 113: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

95

17-12-11-16-19-18-20-

13-3-6-7-8-10-2-1

6 0,037608 0,021252 26,59 381,3105 1-9-8-6-5-20-22-21-19-

18-16-17-13-7-3-4-10-

15-14-12-11-2-1

7 0,03701 0,020978 27,02 362,2903 1-3-13-20-22-14-15-

10-7-8-19-18-17-16-

21-12-11-6-9-5-4-2-1

8 0,036443 0,02118 27,44 372,6351 1-3-7-8-11-17-21-18-

19-16-22-13-14-20-15-

10-9-12-4-5-6-2-1

9 0,040404 0,021187 24,75 358,1425 1-2-7-13-14-18-19-22-

21-20-17-16-15-12-11-

8-10-3-4-5-9-6-1

10 0,034916 0,020846 28,64 361,9673 1-2-9-7-10-21-20-4-3-

5-8-12-11-13-14-15-

17-22-18-16-19-6-1

Dari Tabel 4.3 diperoleh hasil rata-rata panjang jalur terbaik adalah 27,659 Km,

nilai fitness terbaik yang terbesar adalah 0,040404, panjang jalur terpendek adalah

24,75 Km dan waktu eksekusi adalah 358,1425 detik dengan jalur terbaiknya

adalah 1-2-7-13-14-18-19-22-21-20-17-16-15-12-11-8-10-3-4-5-9-6-1.

Page 114: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

96

4.1.7.4 Perhitungan menggunakan masukan populasi 100 dan generasi 1000

Hasil setelah dilakukan perhitungan menggunakan populasi 100, generasi

1000, probabilitas mutasi 0.0870227 dan probabilitas crossover 0.86671 sebanyak

10 kali pada Tabel 4.4.

Tabel 4.4 Hasil Penghitungan menggunakan Populasi 100 dan Generasi 1000

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,036657 0,020571 27,28 850,1732 1-19-18-20-15-8-4-10-

16-21-22-17-13-14-12-

11-9-7-6-5-3-2-1

2 0,037893 0,021056 26,39 845,424 1-6-10-13-21-22-20-17-

18-19-16-11-12-14-15-

2-3-4-5-9-8-7-1

3 0,039793 0,020735 25,13 766,3086 1-2-4-5-6-7-10-13-12-

14-15-16-11-17-20-19-

18-21-22-8-9-3-1

4 0,04029 0,021016 24,82 726,3575 1-2-3-6-9-4-7-8-16-18-

19-20-17-11-12-5-10-

15-14-13-21-22-1

5 0,039809 0,021154 25,12 740,2625 1-5-3-6-20-19-18-12-11-

Page 115: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

97

8-7-9-10-15-14-13-21-

22-16-17-4-2-1

6 0,040833 0,021017 24,49 714,8976 1-2-4-7-8-9-22-12-11-

13-14-15-16-21-18-20-

19-17-10-5-6-3-1

7 0,037161 0,020851 26,91 752,0383 1-22-18-19-20-21-16-

17-8-7-4-11-12-3-5-10-

15-13-14-9-6-2-1

8 0,044189 0,021233 22,63 712,537 1-3-4-6-9-8-7-19-18-16-

17-20-21-22-15-12-11-

10-14-13-5-2-1

9 0,037147 0,020607 26,92 701,0468 1-4-13-14-9-17-15-20-

21-22-16-18-19-11-12-

10-3-5-6-8-7-2-1

10 0,039573 0,021569 25,27 1240,433 1-2-6-5-7-13-14-19-20-

15-17-11-12-16-21-22-

18-10-8-9-4-3-1

Dari Tabel 4.4 diperoleh hasil rata-rata panjang jalur terbaik adalah 25,496 Km,

nilai fitness terbaik yang terbesar adalah 0,044189, panjang jalur terpendek adalah

22,63 Km dan waktu eksekusi adalah 712,537 detik dengan jalur terbaiknya

adalah 1-3-4-6-9-8-7-19-18-16-17-20-21-22-15-12-11-10-14-13-5-2-1.

Page 116: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

98

4.1.7.5 Perhitungan menggunakan masukan populasi 200 dan generasi 100

Hasil setelah dilakukan perhitungan menggunakan populasi 200, generasi

100, probabilitas mutasi 0.154458 dan probabilitas crossover 0.672989 sebanyak

10 kali pada Tabel 4.5.

Tabel 4.5 Hasil Penghitungan menggunakan Populasi 200 dan Generasi 100

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,034892 0,020604 28,66 107,7242 1-6-8-7-9-5-14-17-18-19-

16-20-22-21-11-10-3-12-

13-15-4-2-1

2 0,03358 0,020664 29,78 103,2903 1-13-15-9-8-17-16-22-18-

14-20-19-21-12-11-10-4-

7-6-5-2-3-1

3 0,034977 0,020761 28,59 103,6012 1-4-5-9-7-6-8-18-17-11-

19-20-10-14-13-15-21-22-

16-12-3-2-1

4 0,033807 0,020844 29,58 103,3392 1-3-8-15-12-11-7-9-5-4-2-

21-22-19-18-14-13-16-17-

20-10-6-1

5 0,032321 0,020573 30,94 103,9453 1-6-3-12-18-17-21-22-20-

Page 117: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

99

19-13-11-10-4-9-5-7-8-

16-15-14-2-1

6 0,032927 0,020659 30,37 103,2522 1-2-7-11-8-5-14-13-18-

22-17-19-16-21-20-12-15-

10-3-4-6-9-1

7 0,036483 0,020505 27,41 103,0078 1-4-9-5-10-22-21-17-16-

8-7-20-19-18-11-13-15-

14-12-6-3-2-1

8 0,031496 0,020767 31,75 103,2374 1-5-3-2-15-20-19-17-18-

14-13-12-11-16-8-7-10-

22-21-4-6-9-1

9 0,032531 0,020535 30,74 109,64 1-2-14-18-20-19-22-17-

10-12-11-4-3-6-8-13-15-

16-21-9-7-5-1

10 0,031716 0,020581 31,53 116,1593 1-16-18-11-9-8-7-10-21-

17-22-20-12-19-14-13-15-

6-4-5-3-2-1

Dari Tabel 4.5 diperoleh hasil rata-rata panjang jalur terbaik adalah 29,936 Km,

nilai fitness terbaik yang terbesar adalah 0,036483, panjang jalur terpendek adalah

27,41 Km dan waktu eksekusi adalah 103,0078 detik dengan jalur terbaiknya

adalah 1-4-9-5-10-22-21-17-16-8-7-20-19-18-11-13-15-14-12-6-3-2-1.

Page 118: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

100

4.1.7.6 Perhitungan menggunakan masukan populasi 500 dan generasi 100

Hasil setelah dilakukan perhitungan menggunakan populasi 500, generasi

100, probabilitas mutasi 0.0878917 dan probabilitas crossover 0.643237 sebanyak

10 kali pada Tabel 4.6.

Tabel 4.6 Hasil Penghitungan menggunakan Populasi 500 dan Generasi 100

No

Fitness

terbaik

Fitness

rata-rata

Panjang jalur

terbaik (Km)

Waktu

(detik)

Jalur terbaik

1 0,03858 0,02078 25,92 204,6904 1-3-4-6-8-12-11-19-22-

21-17-18-16-14-20-10-

15-13-7-9-5-2-1

2 0,038865 0,020514 25,73 207,185 1-2-3-5-9-7-8-19-22-21-

18-11-12-15-14-13-10-

20-17-16-4-6-1

3 0,035702 0,020516 28,01 204,1133 1-3-4-8-20-14-10-21-17-

13-12-11-15-22-16-18-

19-7-9-6-5-2-1

4 0,033434 0,020743 29,91 204,1437 1-5-6-4-11-12-3-8-9-7-

19-13-14-15-10-22-18-

17-20-16-21-2-1

5 0,034483 0,02074 29 205,0101 1-2-5-8-16-19-18-17-10-

12-11-22-21-13-15-14-

Page 119: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

101

4-9-6-7-20-3-1

6 0,03375 0,020801 29,63 205,4902 1-2-14-21-19-18-20-10-

7-5-3-15-13-22-16-17-

11-12-6-4-9-8-1

7 0,033841 0,020599 29,55 217,1324 1-3-5-9-7-6-21-13-18-

16-20-22-19-17-12-11-

8-14-15-10-4-2-1

8 0,033124 0,020642 30,19 217,2064 1-2-9-8-6-15-3-20-19-

12-11-13-14-17-18-16-

22-21-10-4-5-7-1

9 0,032798 0,020506 30,49 221,3337 1-3-11-12-13-14-15-2-6-

5-20-21-16-17-4-7-8-9-

10-19-18-22-1

10 0,03268 0,02071 30,6 224,266 1-7-14-15-11-12-13-9-8-

16-10-21-20-19-22-17-

18-4-3-5-6-2-1

Dari Tabel 4.6 diperoleh hasil rata-rata panjang jalur terbaik adalah 28,903 Km,

nilai fitness terbaik yang terbesar adalah 0,038865, panjang jalur terpendek adalah

25,73 Km dan waktu eksekusi adalah 207,185 detik dengan jalur terbaiknya

adalah 1-2-3-5-9-7-8-19-22-21-18-11-12-15-14-13-10-20-17-16-4-6-1.

Page 120: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

102

4.1.7.7 Perhitungan menggunakan masukan populasi 1000 dan generasi 100

Hasil setelah dilakukan perhitungan menggunakan populasi 1000, generasi

100, probabilitas mutasi 0.0863853 dan probabilitas crossover 0.640173 sebanyak

10 kali pada Tabel 4.7.

Tabel 4.7 Hasil Penghitungan menggunakan Populasi 1000 dan Generasi 100

No

Fitness

terbaik

Fitness

rata-rata

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur terbaik

1 0,032648 0,020608 30,63 424,4898 1-4-2-8-21-19-22-17-

18-16-11-12-20-15-14-

10-9-13-7-6-5-3-1

2 0,03375 0,020678 29,63 393,0661 1-2-3-8-21-20-22-7-5-

4-13-15-17-16-19-18-

11-12-14-10-9-6-1

3 0,03488 0,020543 28,67 388,8935 1-2-11-12-7-22-21-17-

14-15-13-18-19-20-16-

5-8-10-3-6-4-9-1

4 0,031949 0,020542 31,3 390,0017 1-3-4-7-12-19-20-6-5-

21-17-16-18-22-8-10-

15-13-14-11-9-2-1

5 0,038256 0,020607 26,14 391,4639 1-9-13-14-19-22-21-

Page 121: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

103

18-11-12-15-16-17-20-

10-6-4-3-7-8-5-2-1

6 0,03399 0,020685 29,42 391,2043 1-2-8-7-12-13-15-16-

17-18-19-20-22-11-21-

10-9-4-6-14-5-3-1

7 0,033047 0,020566 30,26 390,2064 1-6-2-10-20-14-13-12-

11-18-19-7-8-15-16-

22-21-17-5-9-3-4-1

8 0,032031 0,02054 31,22 405,1277 1-3-7-9-8-10-21-18-11-

12-20-19-14-13-17-15-

6-5-22-16-4-2-1

9 0,03308 0,020549 30,23 408,1573 1-3-8-5-2-6-9-14-13-

15-22-20-11-12-10-7-

21-17-18-19-16-4-1

10 0,035398 0,020656 28,25 410,5027 1-15-5-13-14-18-19-

20-17-16-22-21-8-3-9-

12-11-10-7-6-4-2-1

Dari Tabel 4.7 diperoleh hasil rata-rata panjang jalur terbaik adalah 29,575 Km,

nilai fitness terbaik yang terbesar adalah 0,038256, panjang jalur terpendek adalah

26,14 Km dan waktu eksekusi adalah 391,4639 detik dengan jalur terbaiknya

adalah 1-9-13-14-19-22-21-18-11-12-15-16-17-20-10-6-4-3-7-8-5-2-1.

Page 122: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

104

4.1.8 Analisis Penyelesaian Travelling Salesman Problem Menggunakan

Aplikasi Algoritma Genetika dengan Teknik Kendali Logika Fuzzy

dalam Pengiriman Surat dan Barang di PT. Pos Indonesia DC Tugu

Semarang

Dari hasil penelitian diperoleh bahwa solusi optimal permasalahan

jaringan TSP dalam pengiriman surat dan Barang oleh PT. Pos ke rumah

penerima barang di wilayah Kota Semarang, khususnya dalam penelitian ini

mencangkup wilayah Kecamatan Ngaliyan dengan menggunakan variasi populasi

dan generasi pada algoritma Genetika dengan Teknik Kendali Logika Fuzzy yang

berbeda dapat dijelaskan pada Tabel 4.8.

Tabel 4.8 Tabel Hasil Panjang Jalur Terbaik

No Populasi Generasi

Fitness

terbaik

Panjang

jalur terbaik

(Km)

Waktu

(detik)

Jalur Terbaik

1 100 100 0,0352 28,38 84,012 1-5-6-7-8-9-16-22-3-

4-11-12-13-15-21-17-

14-18-19-20-10-2-1

2 100 200 0,036873 27,12 152,0769 1-2-5-8-10-15-14-13-

7-4-3-12-11-19-20-21-

17-16-22-18-19-6-1

Page 123: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

105

3 100 500 0,040404 24,75 358,1425 1-2-7-13-14-18-19-22-

21-20-17-16-15-12-

11-8-10-3-4-5-9-6-1

4 100 1000 0,044189 22,63 712,537 1-3-4-6-9-8-7-19-18-

16-17-20-21-22-15-

12-11-10-14-13-5-2-1

5 200 100 0,036483 27,41 103,0078 1-4-9-5-10-22-21-17-

16-8-7-20-19-18-11-

13-15-14-12-6-3-2-1

6 500 100 0,038865 25,73 207,185 1-2-3-5-9-7-8-19-22-

21-18-11-12-15-14-

13-10-20-17-16-4-6-1

7 1000 100 0,038256 26,14 391,4639 1-9-13-14-19-22-21-

18-11-12-15-16-17-

20-10-6-4-3-7-8-5-2-1

Dari ketujuh variasi populasi dan generasi pada algoritma genetika dengan teknik

kendali logika fuzzy diperoleh bahwa dengan populasi 100 dan generasi 1000

mempunyai nilai fitness yang lebih tinggi serta panjang jalur yang lebih minimal

dari yang lain. Nilai fitness yang diperoleh adalah 0,044189, panjang jalur terbaik

adalah 22,63 Km, waktu eksekusi adalah 712,537 detik dengan jalur terbaiknya

adalah 1-3-4-6-9-8-7-19-18-16-17-20-21-22-15-12-11-10-14-13-5-2-1.

Page 124: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

106

Gambar 4.15 menunjukkan proses perhitungan dengan panjang jalur terbaik 22,63

Km.

Gambar 4.15 Proses Perhitungan dengan Panjang Jalur Terbaik 22.63 Km

Kemudian untuk analisa probabilitas crossover dan probabilitas mutasi

dapat dijelaskan pada Tabel 4.9.

Tabel 4.9 Tabel Hasil Probabilitas Mutasi dan Probabilitas Crossover

No Populasi Generasi Probabilitas

Mutasi

Probabilitas

Crossover

Panjang jalur

terbaik (Km)

1 100 100 0,1952 0,71538 28,38

2 100 200 0,144121 0.793136 27,12

3 100 500 0.088359 0.863904 24,75

4 100 1000 0.0870227 0.86671 22,63

5 200 100 0.154458 0.672989 27,41

Page 125: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

107

6 500 100 0.0878917 0.643237 25,73

7 1000 100 0.0863853 0.640173 26,14

Pada Tabel 4.9 dapat dilihat dari populasi 100 dan generasi 1000, bahwa

pada probabilitas mutasi bisa dikatakan paling kecil dibanding dengan keenam

variasi yang lain. Kemudian untuk nilai probabilitas crossover pada populasi 100

dan generasi 1000 mempunyai nilai yang paling tinggi dibanding dengan nilai

probabilitas crossover yang lainnya.

4.2 Pembahasan

Berdasarkan hasil penelitian yang telah dilakukan di PT. Pos Indonesia

DC Tugu Semarang diperoleh hasil pencarian koordinat titik lokasi penelitian

dengan bantuan situs Wikimapia.org yang sudah terintegrasi dengan Google Maps

menghasilkan koordinat yang cukup akurat. Hal ini dibuktikan dengan selisih

yang tidak berbeda jauh ketika dilakukan sampel pencarian jarak secara manual

oleh peneliti di lapangan. Selain itu, penggunaan bantuan situs Wikimapia.org dan

Google Maps bisa menghemat waktu dan biaya dalam pencarian jarak antar lokasi

penelitian. Ini membuktikan bahwa situs Wikimapia.org dan Google Maps layak

dipilih untuk dijadikan suatu alat pencarian jarak antar lokasi.

Hasil pencarian solusi optimal dengan algoritma genetika dengan teknik

kendali logika fuzzy dilakukan dengan menggunakan bantuan aplikasi software

Matlab. Proses penghitungan dihentikan pada generasi ke 100, 200, 500, dan 1000

dengan populasi 100, 200, 500, dan 1000. Hal ini karena diharapkan pada generasi

Page 126: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

108

dan populasi tersebut didapatkan nilai fitness terbaik dan juga panjang jalur yang

paling minimal.

Solusi optimal dari permasalahan jaringan TSP menggunakan algoritma

genetika dengan teknik kendali logika fuzzy pada penelitian ini menghasilkan rute

terbaik pengiriman barang PT. Pos Indonesia DC Tugu Semarang ke rumah

supplier yang tersebar di wilayah Kota Semarang khususnya Kecamatan Ngaliyan

yaitu: Kantor Pos DC Tugu Semarang - Drs Arif Rosyidi (bengkel mobil senior)

(Ruko Taman Beringin 3A-5) - Silvya Birrotun N (Bella Vista Regency G 10 RT

11/1 Beringin Ngaliyan) - Agung Priyambada (JL Akasia D 3/5 RT 6/1 Beringin

Ngaliyan) - Supriyantono (JL Mega Permai IV/89 RT 5/2, Beringin, Ngaliyan) -

Fran Ardiansyah (JL Mega Raya 339-340 RT 8/7 Beringin Ngaliyan) - Lia Rosita

(JL Mega Raya IV/306 No 306 Beringin RT 2/7 Kel Beringin Kec Ngaliyan) -

Amin Suwarno (Bukit Beringin Asri III Blok A No 344 Perumnas BUK) - Ony S

(JL Beringin Asri Tengah IV/440 RT 6/11) - Veronica Maryati (JL Karo Raya No

18 RT 1/X Perumahan Pondok Beringin Tambakaji) - Prijo Handoko (JL Bligo

No 8 RT 7/10 Tambakaji) - Galih Suci Pratama (Perum Beringin Asri No 1036

RT 05/12 Wonosari) - Fitri Retnowati (Asrama Putri PGSD UNNES Beringin) -

Suyanta (Kp Tegalsari RT 5/11 Tambakaji Ngaliyan) - Agnes Saptawati

Nugrahaningsih (Bukit Beringin Lestari VI/ B 200 RT 4/14 0754 BDI DR Cipto) -

Hery Kartono (Graha Beringin Mas Utara Dalam III) - Arif Lukman (Graha

beringin mas SLT 1/8 RT 1 RW 11 semarang 50111) - Adi Sumartono (Beringin

Putih Blok D I/10 RT 1/9 Ngaliyan) - Tuwadi (Perumnas Beringin Blok A 99 VI

No 164 Ngaliyan) - D Wahyu Supriyadi (Bukit Beringin Lestari JL Bukit

Page 127: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

109

Beringin Lestari Selatan GG 13 RT 10/11 Blok G/110 Gondoriyo) - Setyaningsih

O (Cemara A1 No 19 Perumahan Beringin Indah 0711 BDI MT HARYONO) -

Jamaludin (Kapri Bawah 11 RT 9/10 Tambakaji) - Kantor Pos DC Tugu

Semarang, dengan jarak yang ditempuh 22,63 Km.

Berdasarkan hasil pencarian solusi optimal dari jaringan TSP dalam

pengiriman barang PT. Pos Indonesia DC Tugu Semarang ke rumah supplier di

wilayah Kecamatan Ngaliyan kota Semarang diperoleh solusi optimal

menggunakan algoritma genetika dengan teknik kendali logika fuzzy dengan

populasi 100 dan generasi 1000 menghasilkan solusi optimal yang paling baik

dibandingkan dengan 6 variasi lain. Dengan demikian, maka penggunaan

algoritma genetika dengan teknik kendali logika fuzzy dengan populasi 100 dan

generasi 1000 dijadikan pilihan pada penyelesaian masalah optimasi terutama

pada permasalahan TSP.

Keunggulan dari aplikasi ini adalah solusi dapat diperoleh kapanpun

karena solusi dihasilkan pada generasi ke berapapun, algoritma genetika dengan

teknik kendali logika fuzzy tidak harus membutuhkan waktu yang lama karena

tidak semua kemungkinan dicoba, tergantung pada kriteria berakhirnya, algoritma

pencarian konvensional dilakukan apabila jumlah n kecil, tapi jika n nya banyak

maka akan memakan banyak waktu untuk penyelesaian dibandingkan algoritma

genetik dengan teknik kendali logika fuzzy. Untuk kelemahannya terletak pada

sifatnya yang random sehingga untuk mengidentifikasi kapan hasil paling optimal

muncul tidak diketahui pada masukan generasi dan populasi keberapa.

Page 128: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

110

BAB 5

PENUTUP

5.1 Simpulan

1. Hasil pencarian jarak minimum berdasarkan analisis perhitungan masalah

jaringan TSP pada pengiriman surat dan barang PT. Pos Indonesia DC Tugu

Semarang menggunakan algoritma genetika melalui teknik kendali logika

fuzzy menggunakan populasi 100 dan generasi 1000 menghasilkan solusi

optimal yaitu 22,63 Km. Hasil tersebut lebih baik dari 6 variasi populasi dan

generasi lain.

2. Hasil perhitungan masalah Solusi optimal dari permasalahan jaringan TSP

menggunakan algoritma genetika dengan teknik kendali logika fuzzy pada

penelitian ini menghasilkan rute terbaik pengiriman surat dan barang PT. Pos

Indonesia DC Tugu Semarang ke rumah supplier yang tersebar di wilayah

Kecamatan Ngaliyan Kota Semarang yaitu: “Kantor Pos DC Tugu Semarang

- Drs Arif Rosyidi (Ruko Taman Beringin 3A-5) - Silvya Birrotun N (Bella

Vista Regency G 10 RT 11/1 Beringin Ngaliyan) - Agung Priyambada (JL

Akasia D 3/5 RT 6/1 Beringin Ngaliyan) - Supriyantono (JL Mega Permai

IV/89 RT 5/2, Beringin, Ngaliyan) - Fran Ardiansyah (JL Mega Raya 339-

340 RT 8/7 Beringin Ngaliyan) - Lia Rosita (JL Mega Raya IV/306 No 306

Beringin RT 2/7 Kel Beringin Kec Ngaliyan) - Amin Suwarno (Bukit

Beringin Asri III Blok A No 344 Perumnas BUK) - Ony S (JL Beringin Asri

Tengah IV/440 RT 6/11) - Veronica Maryati (JL Karo Raya No 18 RT 1/X

Page 129: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

111

Perumahan Pondok Beringin Tambakaji) - Prijo Handoko (JL Bligo No 8 RT

7/10 Tambakaji) - Galih Suci Pratama (Perum Beringin Asri No 1036 RT

05/12 Wonosari) - Fitri Retnowati (Asrama Putri PGSD UNNES Beringin) -

Suyanta (Kp Tegalsari RT 5/11 Tambakaji Ngaliyan) - Agnes Saptawati

Nugrahaningsih (Bukit Beringin Lestari VI/ B 200 RT 4/14 0754 BDI DR

Cipto) - Hery Kartono (Graha Beringin Mas Utara Dalam III) - Arif Lukman

(Graha beringin mas SLT 1/8 RT 1 RW 11 semarang 50111) - Adi Sumartono

(Beringin Putih Blok D I/10 RT 1/9 Ngaliyan) - Tuwadi (Perumnas Beringin

Blok A 99 VI No 164 Ngaliyan) - D Wahyu Supriyadi (Bukit Beringin

Lestari JL Bukit Beringin Lestari Selatan GG 13 RT 10/11 Blok G/110

Gondoriyo) - Setyaningsih O (Cemara A1 No 19 Perumahan Beringin Indah

0711 BDI MT HARYONO) - Jamaludin (Kapri Bawah 11 RT 9/10

Tambakaji) - Kantor Pos DC Tugu Semarang” dengan jarak yang ditempuh

22,63 Km.

5.2 Saran

1. Diharapkan untuk PT. Pos Indonesia DC Tugu Semarang dapat memakai

algoritma genetika dengan teknik kendali logika fuzzy supaya dapat

mengoptimalkan jarak dan rute yang ditempuh.

2. Diharapkan pada penelitian selanjutnya dapat mencoba algoritma dan

software lain dalam penyelesaian permasalahan TSP, agar didapat

perbandingan dalam mengatasi solusi yang lebih baik dan pencarian lebih

cepat.

Page 130: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

112

DAFTAR PUSTAKA

Basuki, A, 2003a. Strategi Menggunakan Algoritma Genetika. Tersedia di

http://lecturer.eepis-

its.edu/~basuki/lecture/StrategiAlgoritmaGenetika.pdf[diakses 21-03-

2014].

Basuki, A. 2003b. Algoritma Genetika Suatu Alternatif Penyelesaian

Permasalahan Searching, Optimasi dan Machine Learning. Tersedia di

http://lecturer.eepis-its.edu/~basuki/lecture/AlgoritmaGenetika.pdf

[diakses 21-03-2014].

Bindu & P. Tanwar. 2012. Fuzzy Inspired Hybrid Genetic Approach to Optimize

Travelling Salesman Problem. International Journal of Computer Science

& Communication Network, 2(3): 416-420.Tersedia di

http://www.ijcscn.com/Documents/Volumes/

vol2issue3/ijcscn2012020322.pdf [diakses 21-3-2014].

Budayasa, I.K. 2007. Teori Graph dan Aplikasinya. Surabaya: Unesa University

Press.

Desiani, A. & Arhani, M. 2006 Konsep Kecerdasan Buatan. Yogyakarta: Andi

Offset.

Firmansyah, A. 2007. Dasar-dasar Pemograman MATLAB. IlmuKomputer.com.

Kusumadewi, S. 2003. Artificial Intelligence: Teknik dan Aplikasinya.

Yogyakarta: Graha Ilmu.

Munir, R. 2005. Matematika Diskrit. Bandung: CV Informatika.

Muzid, S. 2008. Pemanfaatan Algoritma Fuzzy Evolusi Untuk Penyelesaian

Kasus Travelling Salesman Problem. Seminar Nasional Aplikasi

Teknologi Informasi. Yogyakarta: Universitas Islam Indonesia. Online.

Tersedia di http://journal.uii.ac.id/index.php/Snati/article/ view/556/480

[diakses 13-4- 2013].

Pandian, P. & G. Natarajan. 2010. A New Algorithm for Finding Optimal

Solution for Fuzzy Transportation Problem. Applied Mathematical

Science. 2: 79-90.

Rosen, K.H. 2003. Discrete Mathematics and Its Applications. Fifth Edition. New

York: McGraw-Hill.

Page 131: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

113

Siang, J. J., 2002. Matematika Diskrit dan Aplikasinya pada Ilmu Komputer.

Yogyakarta: ANDI.

Wibowo, M.A. 2009. Aplikasi Algoritma Genetika Untuk Penjadwalan Mata

Kuliah. Semarang: FMIPA UNDIP.

Widodo, Prabowo. 2012. Penerapan Soft Computing Dengan MATLAB.

Bandung: Rekayasa Sains.

Zulfikar, N. 2008. Aplikasi Algoritma Genetika untuk Mencari Rute Terpendek N-

Buah Node. Skripsi. FTIK Unikom.

Page 132: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

114

Page 133: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

115

Lampiran 1

Nama, Alamat, dan Kode Lokasi Penerimaan Surat dan Barang dari PT. Pos Indonesia DC Tugu Semarang

No Nama Penerima Alamat Kode

Lokasi

1 Kantor Pos

Kecamatan Tugu Kantor Pos Kecamatan Tugu 1

2 Jamaludin Kapri Bawah 11 RT 9/10 Tambakaji 2

3 Drs Arif Rosyidi Ruko Taman Beringin 3A-5 Ngaliyan 3

4 Silvya Birrotun N Bella Vista Regency G 10 RT 11/1 Beringin Ngaliyan 4

5 Setyaningsih O Cemara A1 No 19 Perumahan Beringin Indah 0711 BDI MT HARYONO 5

6 Agung Priyambada Perumahan Beringin Indah JL Akasia D 3/5 RT 6/1 Beringin Ngaliyan 6

7 Lia Rosita JL Mega Raya IV/306 No 306 Beringin RT 2/7 Kel Beringin Kec Ngaliyan 7

8 Fran Ardiansyah JL Mega Raya 339-340 RT 8/7 Beringin Ngaliyan 8

9 Supriyantono JL Mega Permai IV/89 RT 5/2 Beringin Ngaliyan 9

10 Adi Sumartono Beringin Putih Blok D I/10 RT 1/9 Ngaliyan 10

11 Arif Lukman Graha beringin mas SLT 1/8 RT 1 RW 11 semarang 50111 11

12 Hery Kartono Graha Beringin Mas Utara Dalam III No 19 RT 7 RW 11 Ngaliyan 12

13 D Wahyu Supriyadi JL Bukit Beringin Lestari Selatan GG 13 RT 10/11 Blok G/110 Gondoriyo 13

14 Tuwadi Perumnas Beringin Blok A 99 VI No 164 Ngaliyan 14

15 Agnes Saptawati N Bukit Beringin Lestari VI/ B 200 RT 4/14 0754 BDI DR Cipto 15

16 Veronica Maryati JL Karo Raya No 18 RT 1/X Perumahan Pondok Beringin Tambakaji 16

17 Prijo Handoko JL Bligo No 8 RT 7/10 Tambakaji 17

18 Ony S JL Beringin Asri Tengah IV/440 RT 6/11 18

19 Amin Suwarno Bukit Beringin Asri III Blok A No 344 Perumnas BUK 19

20 Galih Suci Pratama Perum Beringin Asri No 1036 RT 05/12 Wonosari 20

21 Fitri Retnowati Asrama Putri PGSD UNNES Beringin 21

22 Suyanta Kp Tegalsari RT 5/11 Tambakaji Ngaliyan 22

Page 134: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

116

Lampiran 2

Kode Lokasi, Koordinat X, Koordinat Y pada Alamat Penerima

Surat dan Barang dari PT. Pos Indonesia DC Tugu Semarang

No

Kode

Lokasi Koordinat X

Koordinat

Y

1 1 -6,9881626 110,3586517

2 2 -6,9961055 110,3445929

3 3 -6,9970559 110,3389910

4 4 -6,9985547 110,3374166

5 5 -6,9979265 110,3353017

6 6 -6,9984562 110,3352560

7 7 -6,9987837 110,3313119

8 8 -6,9982060 110,3322172

9 9 -6,9978492 110,3338560

10 10 -6,9963744 110,3275071

11 11 -6,9985308 110,3224486

12 12 -6,9975937 110,3227650

13 13 -6,9862258 110,3243850

14 14 -6,9868115 110,3265791

15 15 -6,9874824 110,3249323

16 16 -6,9860182 110,3310718

17 17 -6,9857519 110,3290950

18 18 -6,9841971 110,3235777

19 19 -6,9845645 110,3254123

20 20 -6,9874798 110,3278585

21 21 -6,9808693 110,3286766

22 22 -6,9802941 110,3308116

Page 135: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

117

Lampiran 3

Jarak Antartitik Koordinat

Lokasi 1 2 3 4 5 6 7 8 9 10 11

1 0 1,98 2,67 3,12 3,23 3,32 3,81 3,67 3,4 4,52 5,3

2 1,98 0 1,16 1,43 1,6 1,66 2,18 2,09 1,83 2,86 3,67

3 2,67 1,16 0 0,34 0,57 0,61 1,2 1,04 0,77 1,84 2,61

4 3,12 1,43 0,34 0 0,58 0,52 1,12 0,99 0,68 1,82 2,53

5 3,23 1,6 0,57 0,58 0 0,11 0,9 0,8 0,46 1,6 2,3

6 3,32 1,66 0,61 0,52 0,11 0 0,49 0,73 0,47 1,55 2,27

7 3,81 2,18 1,2 1,12 0,9 0,49 0 0,09 0,64 1,45 2,18

8 3,67 2,09 1,04 0,99 0,8 0,73 0,09 0 0,17 1,31 2,08

9 3,4 1,83 0,77 0,68 0,46 0,47 0,64 0,17 0 1,23 2,1

10 4,52 2,86 1,84 1,82 1,6 1,55 1,45 1,31 1,23 0 1,62

11 5,3 3,67 2,61 2,53 2,3 2,27 2,18 2,08 2,1 1,62 0

12 5,1 3,47 2,41 2,4 2,13 2,11 2 1,9 1,92 1,51 0,15

13 5,4 3,81 2,75 2,73 2,49 2,44 2,33 2,24 2,26 1,87 1,97

14 5,3 3,7 2,66 2,62 2,36 2,34 2,21 2,13 2,16 1,76 1,84

15 5,2 3,53 2,47 2,46 2,22 2,17 2,06 1,97 2 1,56 1,69

16 5,5 3,96 2,91 2,92 2,65 2,6 2,54 2,4 2,44 2,02 2,14

17 5,4 3,86 2,65 2,73 2,38 2,37 2,26 2,15 2,29 1,78 1,89

18 6 4,47 3,6 3,33 3,12 3,1 3,07 2,86 2,87 2,5 2,62

19 5,8 4,22 3,39 3,12 2,96 2,86 2,71 2,61 2,84 2,46 2,51

20 5,3 3,67 2,7 2,62 2,41 2,37 2,21 2,14 2,21 1,75 1,89

21 5,9 4,28 3,28 3,2 2,95 2,9 2,81 2,7 2,72 2,32 2,43

22 4,8 4,49 3,48 3,39 3,15 3,1 2,98 2,91 2,93 2,52 2,63

Page 136: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

118

Lokasi 12 13 14 15 16 17 18 19 20 21 22

1 5,1 5,4 5,3 5,2 5,5 5,4 6 5,8 5,3 5,9 4,8

2 3,47 3,81 3,7 3,53 3,96 3,86 4,47 4,22 3,67 4,28 4,49

3 2,41 2,75 2,66 2,47 2,91 2,65 3,6 3,39 2,7 3,28 3,48

4 2,4 2,73 2,62 2,46 2,92 2,73 3,33 3,12 2,62 3,2 3,39

5 2,13 2,49 2,36 2,22 2,65 2,38 3,12 2,96 2,41 2,95 3,15

6 2,11 2,44 2,34 2,17 2,6 2,37 3,1 2,86 2,37 2,9 3,1

7 2 2,33 2,21 2,06 2,54 2,26 3,07 2,71 2,21 2,81 2,98

8 1,9 2,24 2,13 1,97 2,4 2,15 2,86 2,61 2,14 2,7 2,91

9 1,92 2,26 2,16 2 2,44 2,29 2,87 2,84 2,21 2,72 2,93

10 1,51 1,87 1,76 1,56 2,02 1,78 2,5 2,46 1,75 2,32 2,52

11 0,15 1,97 1,84 1,69 2,14 1,89 2,62 2,51 1,89 2,43 2,63

12 0 1,56 1,68 1,52 1,98 1,73 2,46 2,35 1,73 2,27 2,47

13 1,56 0 0,22 0,38 1,61 1,36 2,12 2,03 1,32 1,95 2,17

14 1,68 0,22 0 0,17 1,49 1,25 1,98 1,88 1,2 1,8 2,05

15 1,52 0,38 0,17 0 1,1 1,09 1,82 1,72 1,04 1,64 1,89

16 1,98 1,61 1,49 1,1 0 0,19 0,74 0,69 0,7 0,53 0,78

17 1,73 1,36 1,25 1,09 0,19 0 0,7 0,87 0,42 0,78 1,03

18 2,46 2,12 1,98 1,82 0,74 0,7 0 0,13 1,2 1,06 1,29

19 2,35 2,03 1,88 1,72 0,69 0,87 0,13 0 0,26 0,97 1,2

20 1,73 1,32 1,2 1,04 0,7 0,42 1,2 0,26 0 0,66 1,19

21 2,27 1,95 1,8 1,64 0,53 0,78 1,06 0,97 0,66 0 0,29

22 2,47 2,17 2,05 1,89 0,78 1,03 1,29 1,2 1,19 0,29 0

Page 137: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

119

Lampiran 4

Tampilan Simulasi Matlab

1. Tampilan Menu Utama

2. Tampilan Menu About

Page 138: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

120

3. Tampilan Menu Help

4. Tampilan Menu TSP Fuzzy

Page 139: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

121

Lampiran 5

Kode Program dengan Matlab Haldepan.m:

function varargout = haldepan(varargin)

% HALDEPAN M-file for haldepan.fig

% HALDEPAN, by itself, creates a new HALDEPAN or raises the

existing

% singleton*.

%

% H = HALDEPAN returns the handle to a new HALDEPAN or the

handle to

% the existing singleton*.

%

% HALDEPAN('CALLBACK',hObject,eventData,handles,...) calls

the local

% function named CALLBACK in HALDEPAN.M with the given input

arguments.

%

% HALDEPAN('Property','Value',...) creates a new HALDEPAN or

raises the

% existing singleton*. Starting from the left, property

value pairs are

% applied to the GUI before haldepan_OpeningFcn gets called.

An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to haldepan_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help haldepan

% Last Modified by GUIDE v2.5 14-Jul-2014 21:36:23

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @haldepan_OpeningFcn, ...

'gui_OutputFcn', @haldepan_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

Page 140: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

122

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before haldepan is made visible.

function haldepan_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to haldepan (see VARARGIN)

axes(handles.ftunnes);

image(imread('unnes1.png'));

axis('off');

axes(handles.axes21);

image(imread('kantorpos.jpg'));

axis('off');

axes(handles.axes22);

image(imread('kantorpos2.jpg'));

axis('off');

% Choose default command line output for haldepan

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes haldepan wait for user response (see UIRESUME)

% uiwait(handles.haldepan);

% --- Outputs from this function are returned to the command line.

function varargout = haldepan_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

% ----------------------------------------------------------------

----

function menu_file_Callback(hObject, eventdata, handles)

% hObject handle to menu_file (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

Page 141: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

123

% ----------------------------------------------------------------

----

function menu_file_TSP_Fuzzy_Callback(hObject, eventdata, handles)

% hObject handle to menu_file_TSP_Fuzzy (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

delete(handles.haldepan);

TSPFuzzy

% ----------------------------------------------------------------

----

function file_menu_exit_Callback(hObject, eventdata, handles)

% hObject handle to menu_file_exit (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

pos_size=get(handles.haldepan,'position');

user_response=tanya_keluar_utama('Exit','Konfirmasi Mengakhiri

Program');

switch user_response

case {'No'}

case 'Yes'

delete(handles.haldepan);

close

end

% ----------------------------------------------------------------

----

function menu_help_Callback(hObject, eventdata, handles)

% hObject handle to menu_help (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

delete(handles.haldepan);

menuhelp

% --- Executes during object creation, after setting all

properties.

function ftunnes_CreateFcn(hObject, eventdata, handles)

% hObject handle to ftunnes (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: place code in OpeningFcn to populate ftunnes

% ----------------------------------------------------------------

----

function Untitled_2_Callback(hObject, eventdata, handles)

Page 142: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

124

% hObject handle to menu_help (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% ----------------------------------------------------------------

----

function menu_about_Callback(hObject, eventdata, handles)

% hObject handle to menu_about (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

delete(handles.haldepan);

menuabout

% --- Executes on mouse press over axes background.

function ftunnes_ButtonDownFcn(hObject, eventdata, handles)

% hObject handle to ftunnes (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

FisEvolusi.m

b=newfis('evolusi');

b.input(1).name='populasi';

b.input(2).name='generasi';

b.output(1).name='probcrossover';

b.output(2).name='probmutasi';

b.input(1).range=[0 1000];

b.input(2).range=[0 1000];

b.output(1).range=[0.6 0.9];

b.output(2).range=[0 0.25];

b.input(1).mf(1).name='small';

b.input(1).mf(1).type='zmf';

b.input(1).mf(1).params=[50 250];

b.input(1).mf(2).name='medium';

b.input(1).mf(2).type='gaussmf';

b.input(1).mf(2).params=[80 275];

b.input(1).mf(3).name='large';

b.input(1).mf(3).type='smf';

b.input(1).mf(3).params=[350 500];

b.input(2).mf(1).name='short';

b.input(2).mf(1).type='zmf';

b.input(2).mf(1).params=[50 200];

b.input(2).mf(2).name='medium';

b.input(2).mf(2).type='gaussmf';

b.input(2).mf(2).params=[80 275];

b.input(2).mf(3).name='long';

b.input(2).mf(3).type='smf';

b.input(2).mf(3).params=[350 500];

b.output(1).mf(1).name='small';

b.output(1).mf(1).type='zmf';

Page 143: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

125

b.output(1).mf(1).params=[0.625 0.7];

b.output(1).mf(2).name='medium';

b.output(1).mf(2).type='trapmf';

b.output(1).mf(2).params=[0.63 0.7 0.72 0.78];

b.output(1).mf(3).name='large';

b.output(1).mf(3).type='trapmf';

b.output(1).mf(3).params=[0.72 0.78 0.8 0.87];

b.output(1).mf(4).name='verylarge';

b.output(1).mf(4).type='smf';

b.output(1).mf(4).params=[0.8 0.875];

b.output(2).mf(1).name='verysmall';

b.output(2).mf(1).type='zmf';

b.output(2).mf(1).params=[0.025 0.1];

b.output(2).mf(2).name='small';

b.output(2).mf(2).type='trapmf';

b.output(2).mf(2).params=[0.047 0.083 0.1 0.14];

b.output(2).mf(3).name='medium';

b.output(2).mf(3).type='trapmf';

b.output(2).mf(3).params=[0.1 0.14 0.167 0.2];

b.output(2).mf(4).name='large';

b.output(2).mf(4).type='smf';

b.output(2).mf(4).params=[0.15 0.225];

b.rule(1).antecedent=[1 1];

b.rule(1).connection=1;

b.rule(1).consequent=[2 4];

b.rule(1).connection=1;

b.rule(1).weight=1;

b.rule(2).antecedent=[2 1];

b.rule(2).connection=1;

b.rule(2).consequent=[1 3];

b.rule(2).connection=1;

b.rule(2).weight=1;

b.rule(3).antecedent=[3 1];

b.rule(3).connection=1;

b.rule(3).consequent=[1 2];

b.rule(3).connection=1;

b.rule(3).weight=1;

b.rule(4).antecedent=[1 2];

b.rule(4).connection=1;

b.rule(4).consequent=[3 3];

b.rule(4).connection=1;

b.rule(4).weight=1;

b.rule(5).antecedent=[2 2];

b.rule(5).connection=1;

b.rule(5).consequent=[3 2];

b.rule(5).connection=1;

b.rule(5).weight=1;

b.rule(6).antecedent=[3 2];

b.rule(6).connection=1;

b.rule(6).consequent=[2 1];

Page 144: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

126

b.rule(6).connection=1;

b.rule(6).weight=1;

b.rule(7).antecedent=[1 3];

b.rule(7).connection=1;

b.rule(7).consequent=[4 2];

b.rule(7).connection=1;

b.rule(7).weight=1;

b.rule(8).antecedent=[2 3];

b.rule(8).connection=1;

b.rule(8).consequent=[4 1];

b.rule(8).connection=1;

b.rule(8).weight=1;

b.rule(9).antecedent=[3 3];

b.rule(9).connection=1;

b.rule(9).consequent=[3 1];

b.rule(9).connection=1;

b.rule(9).weight=1;

evalfis([100 1000],b)

TSPInisialisasiPopulasi.m

function Populasi = TSPInisiasiPopulasi(UkPop,JumGen)

for ii=1:UkPop,

[Xval,Ind] = sort(rand(1,JumGen));

Populasi(ii,:) = Ind;

end

TSPEvaluasiIndividu.m

function fitness = TSPEvaluasiIndividu(Kromosom,JumGen,XYkota)

TB = 0;

load jr

for ii=1:JumGen-1

a=jr(Kromosom(ii),Kromosom(ii+1));

TB = TB + a;

end;

% jalur harus kembali ke kota asal

TB = TB + jr(Kromosom(JumGen),Kromosom(1));

fitness = 1/TB;

LinierFitnessRanking.m

function LFR = LinearFitnessRanking(UkPop,Fitness,MaxF,MinF)

[SF,IndF] =sort(Fitness);

for rr=1:UkPop

LFR(IndF(UkPop-rr+1)) = MaxF-(MaxF-MinF)*((rr-1)/(UkPop-1));

End

Page 145: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

127

Roulettewheel.m

function Pindex = RouletteWheel(UkPop,LinearFitness)

JumFitness=sum(LinearFitness);

KumulatifFitness=0;

RN =rand;

ii=1;

while ii <= UkPop

KumulatifFitness = KumulatifFitness + LinearFitness(ii);

if (KumulatifFitness/JumFitness) > RN

Pindex = ii;

break;

end

ii = ii+1;

end

TSPPindahSilang.m

function Anak = TSPPindahsilang(Bapak,Ibu,JumGen)

cp1 = 1 + fix(rand*(JumGen-1));

cp2 = 1 + fix(rand*(JumGen-1));

while cp2==cp1,

cp2 = 1 + fix(rand*(JumGen-1));

end

if cp1 < cp2,

cps = cp1;

cpd = cp2;

else

cps = cp2;

cpd = cp1;

% else

% cps = cp2;

% cpd = cp1;

end

Anak(1,cps+1:cpd) = Ibu(cps+1:cpd);

Anak(2,cps+1:cpd) = Bapak(cps+1:cpd);

SisaGenbapak = [];

SisaGenIbu = [];

for ii=1:JumGen

if ~ismember(Bapak(ii),Anak(1,:))

SisaGenbapak = [SisaGenbapak Bapak(ii)];

end

if ~ismember(Ibu(ii),Anak(2,:))

SisaGenIbu = [SisaGenIbu Ibu(ii)];

end

end

Anak(1,cpd+1:JumGen) = SisaGenbapak(1:JumGen-cpd);

Anak(1,1:cps)=SisaGenbapak(1+JumGen-cpd:length(SisaGenbapak));

Anak(2,cpd+1:JumGen) = SisaGenIbu(1:JumGen-cpd);

Anak(2,1:cps) = SisaGenIbu(1+JumGen-cpd:length(SisaGenIbu));

Page 146: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

128

TSPMutasi.m

function MutKrom = TSPMutasi(Kromosom,JumGen,Pmutasi)

MutKrom = Kromosom;

for ii=1:JumGen,

if rand<Pmutasi,

TM2 = 1+ fix(rand*JumGen);

while TM2==ii,

TM2=1+fix(rand*JumGen);

end

temp = MutKrom(ii);

MutKrom(ii) = MutKrom(TM2);

MutKrom(TM2)=temp;

end

end

TSPFuzzy.m

function varargout = TSPFuzzy(varargin)

% TSPFUZZY M-file for TSPFuzzy.fig

% TSPFUZZY, by itself, creates a new TSPFUZZY or raises the

existing

% singleton*.

%

% H = TSPFUZZY returns the handle to a new TSPFUZZY or the

handle to

% the existing singleton*.

%

% TSPFUZZY('CALLBACK',hObject,eventData,handles,...) calls

the local

% function named CALLBACK in TSPFUZZY.M with the given input

arguments.

%

% TSPFUZZY('Property','Value',...) creates a new TSPFUZZY or

raises the

% existing singleton*. Starting from the left, property

value pairs are

% applied to the GUI before TSPFuzzy_OpeningFcn gets called.

An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to TSPFuzzy_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help TSPFuzzy

% Last Modified by GUIDE v2.5 14-Jul-2014 21:43:17

Page 147: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

129

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @TSPFuzzy_OpeningFcn, ...

'gui_OutputFcn', @TSPFuzzy_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before TSPFuzzy is made visible.

function TSPFuzzy_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to TSPFuzzy (see VARARGIN)

% Choose default command line output for TSPFuzzy

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes TSPFuzzy wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = TSPFuzzy_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in tmbcari.

function tmbcari_Callback(hObject, eventdata, handles)

% hObject handle to tmbcari (see GCBO)

Page 148: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

130

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

tic

axes(handles.axes1)

cla reset

global XYkota

XYkota

whos XYkota

jr=xlsread('jaraktitik.xlsx',1,'B2:W23');

save jr jr

clc;

JumGen = length(XYkota(:,1));

UkPop = str2num(get(handles.UkPop,'string'));

Psilang = str2num(get(handles.Psilang,'string'));

Pmutasi = str2num(get(handles.Pmutasi,'string'));

MaxG = str2num(get(handles.MaxG,'string'));

Populasi = TSPInisialisasiPopulasi(UkPop,JumGen);

MaxF= TSPEvaluasiIndividu(Populasi(1,:),JumGen,XYkota)

panjangh=(1/MaxF)/2

Fthreshold = 1/panjangh;

Bgraf = Fthreshold;

hold on

axis([1 MaxG+20 0 Bgraf]);

hbestplot1 = plot(1:MaxG+20,zeros(1,MaxG+20),'r');

hbestplot2 = plot(1:MaxG+20,zeros(1,MaxG+20),'b');

htext1=text(0.6*MaxG,0.30*Bgraf,sprintf('Fitness terbaik:

%7.6f',0.0));

htext2=text(0.6*MaxG,0.25*Bgraf,sprintf('Fitness rata-rata:

%7.6f',0.0));

htext3=text(0.6*MaxG,0.20*Bgraf,sprintf('Panjang Jalur terbaik:

%7.3f',0.0));

htext4=text(0.6*MaxG,0.15*Bgraf,sprintf('Probabilitas Mutasi:

%4.3f',0.0));

htext5=text(0.6*MaxG,0.10*Bgraf,sprintf('Probabilitas Crossover:

%4.3f',0.0));

htext6=text(0.6*MaxG,0.05*Bgraf,sprintf('Waktu Eksekusi:

%4.3f',0.0));

xlabel('Generasi');

ylabel('Fitness');

hold off

axes(handles.axes1)

drawnow;

Populasi = TSPInisialisasiPopulasi(UkPop,JumGen);

for generasi=1:MaxG

MaxF = TSPEvaluasiIndividu(Populasi(1,:),JumGen,XYkota)

MinF=MaxF;

IndeksIndividuTerbaik = 1;

for ii=1:UkPop

Fitness(ii) =

TSPEvaluasiIndividu(Populasi(ii,:),JumGen,XYkota);

Page 149: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

131

if (Fitness(ii) >MaxF),

MaxF = Fitness(ii);

IndeksIndividuTerbaik=ii;

JalurTerbaik=Populasi(ii,:)

end

end

axes(handles.axes1)

FitnessRataRata=mean(Fitness);

plotvector1=get(hbestplot1,'YData');

plotvector1(generasi)=MaxF;

set(hbestplot1,'YData',plotvector1);

plotvector2=get(hbestplot2,'YData');

plotvector2(generasi)=FitnessRataRata;

set(hbestplot2,'YData',plotvector2);

set(htext1,'string',sprintf('Fitness terbaik: %7.6f',MaxF));

set(htext2,'string',sprintf('Fitness rata-rata: %7.6f',

FitnessRataRata));

set(htext3,'string',sprintf('Panjang jalur terbaik: %7.3f Km',

1/MaxF));

set(htext4,'String',sprintf('Probabilitas Mutasi:

%4.3f',Pmutasi));

set(htext5,'String',sprintf('Probabilitas Crossover:

%4.3f',Psilang));

legend('fitness terbaik','fitness rata-rata')

drawnow

if MaxF > Fthreshold,

break;

end

TemPopulasi = Populasi;

if mod(UkPop,2)==0,

IterasiMulai=3;

TemPopulasi(1,:)=Populasi(IndeksIndividuTerbaik,:);

TempPopulasi(1,:)=Populasi(IndeksIndividuTerbaik,:);

else

IterasiMulai=2;

TempPopulasi(1,:) = Populasi(IndeksIndividuTerbaik,:);

end

LinearFitness = LinearFitnessRanking(UkPop,Fitness,MaxF,MinF);

for jj=IterasiMulai:2:UkPop

IP1=RouletteWheel(UkPop,LinearFitness);

IP2=RouletteWheel(UkPop,LinearFitness);

if (rand<Psilang)

Anak =

TSPPindahsilang(Populasi(IP1,:),Populasi(IP2,:),JumGen);

TemPopulasi(jj,:) = Anak(1,:);

TemPopulasi(jj+1,:)=Anak(2,:);

else

TemPopulasi(jj,:)=Populasi(IP1,:);

TemPopulasi(jj+1,:)=Populasi(IP2,:);

end

end

Page 150: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

132

for kk=IterasiMulai:UkPop,

TemPopulasi(kk,:)=(TSPMutasi(TemPopulasi(kk,:),JumGen,Pmutasi));

end

Populasi=TemPopulasi;

end

%Tanpa tanda ';' berarti menampilkan nilai dari variabel

'JalurTerbaik'

JalurTerbaik1=num2str(JalurTerbaik);

waktu=toc;

set(htext6,'String',sprintf('Waktu Eksekusi: %4.3f detik',waktu));

%simpan variabel 'JalurTerbaik' ke dalam file JalurTerbaik.mat

save JalurTerbaik.mat JalurTerbaik

set(handles.jater,'string',JalurTerbaik1);

save XYkota XYkota

load hasiluji

hasiluji2=[ MaxF,FitnessRataRata,1/MaxF,waktu,JalurTerbaik]

hasiluji=[hasiluji;hasiluji2];

save hasiluji hasiluji

function XYkota_Callback(hObject, eventdata, handles)

% hObject handle to XYkota (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of XYkota as text

% str2double(get(hObject,'String')) returns contents of

XYkota as a double

% --- Executes during object creation, after setting all

properties.

function XYkota_CreateFcn(hObject, eventdata, handles)

% hObject handle to XYkota (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function UkPop_Callback(hObject, eventdata, handles)

% hObject handle to UkPop (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

Page 151: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

133

% Hints: get(hObject,'String') returns contents of UkPop as text

% str2double(get(hObject,'String')) returns contents of

UkPop as a double

% --- Executes during object creation, after setting all

properties.

function UkPop_CreateFcn(hObject, eventdata, handles)

% hObject handle to UkPop (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function Psilang_Callback(hObject, eventdata, handles)

% hObject handle to Psilang (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Psilang as text

% str2double(get(hObject,'String')) returns contents of

Psilang as a double

% --- Executes during object creation, after setting all

properties.

function Psilang_CreateFcn(hObject, eventdata, handles)

% hObject handle to Psilang (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function Pmutasi_Callback(hObject, eventdata, handles)

% hObject handle to Pmutasi (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

Page 152: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

134

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Pmutasi as text

% str2double(get(hObject,'String')) returns contents of

Pmutasi as a double

% --- Executes during object creation, after setting all

properties.

function Pmutasi_CreateFcn(hObject, eventdata, handles)

% hObject handle to Pmutasi (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function MaxG_Callback(hObject, eventdata, handles)

% hObject handle to MaxG (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of MaxG as text

% str2double(get(hObject,'String')) returns contents of

MaxG as a double

% --- Executes during object creation, after setting all

properties.

function MaxG_CreateFcn(hObject, eventdata, handles)

% hObject handle to MaxG (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function PanjJalHarp_Callback(hObject, eventdata, handles)

% hObject handle to PanjJalHarp (see GCBO)

Page 153: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

135

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of PanjJalHarp as

text

% str2double(get(hObject,'String')) returns contents of

PanjJalHarp as a double

% --- Executes during object creation, after setting all

properties.

function PanjJalHarp_CreateFcn(hObject, eventdata, handles)

% hObject handle to PanjJalHarp (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function Fthreshold_Callback(hObject, eventdata, handles)

% hObject handle to Fthreshold (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Fthreshold as

text

% str2double(get(hObject,'String')) returns contents of

Fthreshold as a double

% --- Executes during object creation, after setting all

properties.

function Fthreshold_CreateFcn(hObject, eventdata, handles)

% hObject handle to Fthreshold (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

Page 154: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

136

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

set(handles.axes1,'plot','');

function jater_Callback(hObject, eventdata, handles)

% hObject handle to jater (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of jater as text

% str2double(get(hObject,'String')) returns contents of

jater as a double

% --- Executes during object creation, after setting all

properties.

function jater_CreateFcn(hObject, eventdata, handles)

% hObject handle to jater (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in menu.

function menu_Callback(hObject, eventdata, handles)

% hObject handle to menu (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

pos_size=get(handles.figure1,'position');

user_response=tanya_kembali_utama('Menu','Konfirmasi Kembali ke

Menu Utama');

switch user_response

case ('No')

case ('Yes')

delete(handles.figure1);

haldepan

end

Page 155: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

137

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

pop=str2num(get(handles.UkPop,'string'));

gen=str2num(get(handles.MaxG,'string'));

b=readfis('evolusi2');

%sug_fis=mam2sug(b) ;

hs=evalfis ([pop gen],b);

set(handles.Psilang,'string',hs(:,1));

set(handles.Pmutasi,'string',hs(:,2));

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

[nama_file1,nama_path1]=uigetfile({'*.xlsx';'*.xls'},'Buka File

Excel');

if isequal(nama_file1,0)

return;

end

global XYkota

[num1, txt1] = xlsread(nama_file1, 1, 'A3:B1000');

XYkota =num1;

whos XYkota

% Tampilkan Nilai Training

t = uitable(handles.uitable1);

set(t,'Data',XYkota);

load JalurTerbaik

load XYkota

figure(1)

h=XYkota;

urt=JalurTerbaik;

x1=[]

y2=[]

for nn=urt ;

p=h(nn,:)

x=p(1,1)

y=p(1,2)

plot(x,y,'*r')

hold on

x1=[x1 x]

y2=[y2 y]

text(x,y,[' \leftarrow', num2str(nn)] ,'FontSize',9)

end

hold on

Page 156: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

138

x1=[x1,x1(1)]

y2=[y2,y2(1)]

figure(1)

%plot(x1,y2,'-r')

xlabel('koordinat x')

ylabel('koordinat y')

title('PLOT KOORDINAT')

% --- Executes on button press in pbjlr.

function pbjlr_Callback(hObject, eventdata, handles)

% hObject handle to pbjlr (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton8 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

load JalurTerbaik

load XYkota

figure(1)

h=XYkota;

urt=JalurTerbaik;

x1=[]

y2=[]

for nn=urt ;

p=h(nn,:)

x=p(1,1)

y=p(1,2)

plot(x,y,'*r')

hold on

pause(0.2)

x1=[x1 x]

y2=[y2 y]

text(x,y,[' \leftarrow', num2str(nn)] ,'FontSize',9)

end

hold on

x1=[x1,x1(1)]

y2=[y2,y2(1)]

figure(1)

plot(x1,y2,'-r')

xlabel('koordinat x')

ylabel('koordinat y')

title('PLOT KOORDINAT')

% --- Executes on button press in pushbutton10.

function pushbutton10_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton10 (see GCBO)

Page 157: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

139

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

hasil_uji

% --- Executes during object creation, after setting all

properties.

function figure1_CreateFcn(hObject, eventdata, handles)

% hObject handle to figure1 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% --- Executes on mouse press over axes background.

function ftunnes_ButtonDownFcn(hObject, eventdata, handles)

% hObject handle to ftunnes (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes during object creation, after setting all

properties.

function ftunnes_CreateFcn(hObject, eventdata, handles)

% hObject handle to ftunnes (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: place code in OpeningFcn to populate ftunnes

% --- Executes when user attempts to close figure1.

function figure1_CloseRequestFcn(hObject, eventdata, handles)

% hObject handle to figure1 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: delete(hObject) closes the figure

delete(hObject);

Page 158: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

140

Lampiran 6

Tampilan dan Hasil Uji (Excel) dengan Pengujian 10 kali

Populasi 100 dan Generasi 100

Page 159: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

141

Populasi 100 dan Generasi 200

Populasi 100 dan Generasi 500

Page 160: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

142

Populasi 100 dan Generasi 1000

Page 161: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

143

Populasi 200 dan Generasi 100

Page 162: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

144

Populasi 500 dan Generasi 100

Page 163: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

145

Populasi 1000 dan Generasi 100

Page 164: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

146

Lampiran 7

Tampilan Graf Rute Terbaik Pengiriman Surat dan Barang PT.

Pos Indonesia DC Tugu Semarang

Page 165: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

147

N Bentuk Kromosom

1 18 16 11 17 19 14 12 21 5 2 20 13 4 8 10 9 1 3 15 7 22 6 2 22 19 6 14 2 13 7 10 20 15 16 8 17 1 5 18 9 11 12 21 3 4 3 17 21 10 5 22 15 14 6 3 11 9 8 4 12 13 2 20 18 19 1 7 16 4 15 5 3 14 12 1 18 7 17 20 21 6 2 13 9 4 16 8 22 11 10 19 5 6 15 13 16 18 22 8 3 4 12 7 11 17 2 14 10 21 1 20 19 5 9 6 15 9 10 11 21 12 16 18 22 7 6 2 17 20 4 19 1 5 14 8 13 3 7 1 11 4 3 6 13 19 8 5 17 14 7 22 15 21 20 12 10 16 9 18 2

8 7 22 4 15 6 3 11 19 12 18 20 13 21 8 17 2 10 1 16 9 14 5 9 20 14 2 5 18 8 6 22 12 3 21 4 13 1 19 7 11 17 9 16 15 10

10 10 11 4 21 1 2 12 20 15 3 6 13 19 5 22 9 14 7 8 17 16 18 11 20 3 5 22 15 21 4 6 17 2 7 9 11 8 13 18 16 19 1 10 12 14 12 10 6 18 22 19 15 3 8 12 13 11 17 21 7 1 5 20 14 4 16 2 9 13 11 9 3 21 5 7 10 1 15 14 12 2 19 16 17 18 13 22 4 8 6 20 14 20 2 1 13 18 19 8 10 4 5 16 15 3 14 22 6 9 7 12 11 17 21

15 12 10 11 22 21 9 15 13 14 1 7 5 3 17 2 4 6 16 18 19 20 8 16 15 2 12 17 14 11 20 7 22 18 6 10 3 4 13 8 19 1 21 9 16 5 17 4 8 18 7 21 5 17 12 14 6 10 3 22 1 2 16 13 19 15 9 11 20 18 18 19 20 10 4 11 16 12 1 22 7 17 9 21 13 3 15 14 2 5 8 6 19 13 4 3 1 20 18 2 21 17 6 9 15 8 19 10 5 14 11 22 7 12 16 20 17 7 18 22 5 20 1 16 14 4 8 9 6 10 3 13 21 2 19 11 15 12 21 3 13 6 9 21 11 12 8 10 15 5 20 7 22 18 19 16 1 4 2 14 17 22 16 20 10 11 12 13 8 4 3 7 5 15 14 6 18 19 1 21 2 17 22 9

23 15 8 21 7 22 5 11 10 12 19 6 20 13 4 17 14 3 16 18 2 9 1 24 17 14 4 20 15 21 9 2 19 16 10 11 18 6 1 7 12 13 3 22 5 8 25 18 16 14 21 4 11 8 20 12 15 10 22 17 2 7 9 1 6 5 13 19 3

Lampiran 8

TABEL POPULASI AWAL Ukpop: 100

Pc: 1.0

MaxGen: 100

Panjang Kromosom: 22

131

Page 166: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

148

26 22 8 6 13 12 2 17 20 5 7 4 19 1 9 16 11 21 10 14 18 15 3 27 1 12 17 18 8 14 11 20 4 19 10 3 15 2 9 6 5 16 13 7 22 21 28 2 3 22 4 10 11 8 18 13 16 12 14 7 9 1 19 17 15 5 21 6 20

29 8 22 18 16 10 7 13 20 19 1 6 2 11 15 21 12 4 14 3 9 17 5 30 22 2 13 3 15 16 21 5 20 1 8 11 18 6 12 9 10 19 4 17 14 7 31 12 5 11 21 17 9 19 10 20 22 6 13 2 3 16 4 18 14 1 8 15 7 32 12 17 1 20 10 2 11 5 6 21 16 4 3 22 9 15 18 8 14 7 13 19 33 1 7 9 14 19 18 12 22 8 5 3 21 20 15 17 6 2 13 10 16 11 4 34 6 22 18 5 21 13 7 8 3 4 12 20 1 9 19 16 2 17 15 14 11 10 35 12 15 8 3 2 21 22 17 19 20 6 16 10 18 4 11 7 14 13 1 5 9 36 1 13 5 12 10 21 19 18 9 8 17 3 15 16 11 14 7 22 20 6 2 4

37 17 7 16 19 12 10 21 15 18 6 3 14 9 4 13 20 1 22 2 8 5 11 38 18 12 9 3 11 7 5 14 8 16 2 17 10 15 13 1 21 20 22 19 6 4 39 18 11 16 13 8 6 5 1 7 4 21 12 3 2 19 20 14 9 22 17 10 15 40 6 7 3 5 4 19 20 17 10 11 22 8 2 18 14 21 16 1 9 13 12 15 41 8 18 17 19 13 11 1 16 15 7 5 4 6 2 22 9 20 3 21 14 12 10 42 1 5 21 19 15 20 9 14 10 6 12 22 13 11 7 8 17 4 16 2 3 18 43 4 16 3 14 8 1 10 7 9 15 18 21 17 11 5 13 6 20 22 2 12 19

44 9 1 16 20 7 22 2 13 19 17 6 21 11 5 10 14 12 15 4 3 8 18 45 10 19 14 22 13 6 20 11 2 21 3 17 16 18 2 4 15 8 1 7 9 5 46 17 5 7 19 3 14 9 15 12 11 21 8 20 22 1 4 10 6 2 13 16 18 47 4 21 5 18 16 10 14 8 12 11 13 22 15 1 20 9 2 7 3 17 19 6 48 8 6 14 9 17 7 22 18 3 13 4 20 10 11 1 2 16 21 12 5 15 19 49 15 14 8 3 20 17 7 10 1 9 5 16 2 6 13 4 12 11 21 22 18 19 50 7 22 20 11 15 8 10 4 6 16 1 9 21 19 5 13 14 17 2 18 12 3 51 19 22 13 11 1 7 21 12 5 17 18 2 6 14 4 10 15 20 16 3 8 9

Page 167: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

149

52 7 9 11 4 20 14 8 21 15 19 18 6 5 16 22 10 2 13 17 3 12 1 53 3 7 10 9 11 12 15 16 21 6 5 17 13 14 18 4 2 20 8 22 1 19 54 7 2 21 3 9 1 10 4 6 5 18 19 20 17 8 16 14 11 12 22 13 15

55 1 9 17 10 4 19 2 18 13 16 12 14 5 21 22 6 15 3 7 11 8 20 56 21 5 2 11 13 22 8 16 12 3 4 6 17 7 20 1 10 15 14 19 9 18 57 6 19 3 16 17 8 13 18 11 4 20 2 10 12 1 15 22 9 14 21 5 7 58 9 20 3 16 5 7 15 14 17 22 6 1 8 18 21 19 10 11 2 4 12 13 59 17 1 13 19 12 20 22 16 4 18 7 9 10 14 3 6 11 21 8 15 2 5 60 19 17 15 5 10 3 21 20 18 13 7 4 22 8 2 1 16 9 6 11 12 14 61 19 14 11 2 13 1 6 10 8 16 12 7 9 3 22 20 21 18 4 5 15 17 62 18 21 2 4 9 14 22 5 8 16 19 1 13 10 20 3 15 7 6 17 12 11

63 18 5 10 15 1 17 8 9 7 19 2 16 3 22 4 6 21 20 14 13 12 11 64 19 12 9 13 14 18 21 2 11 16 1 3 10 20 6 8 15 17 7 4 5 22 65 3 7 17 16 22 19 14 2 8 15 9 20 12 4 10 11 13 5 1 21 6 18 66 13 19 11 9 6 1 22 16 5 2 8 4 7 10 17 20 18 14 12 21 15 3 67 12 11 18 7 13 5 21 4 19 10 9 16 17 6 20 1 3 14 15 8 2 22 68 4 1 15 14 16 21 20 11 2 12 3 17 7 6 19 5 13 10 8 22 9 18 69 8 4 19 22 12 17 3 10 18 14 13 21 9 6 2 20 16 15 11 5 1 7

70 5 6 18 1 22 21 15 11 9 20 8 2 12 4 19 16 13 10 7 14 3 17 71 19 13 3 16 5 12 8 17 10 22 14 9 18 1 21 4 7 11 15 20 6 2 72 21 20 1 11 22 12 8 10 2 3 18 14 7 13 15 5 9 6 17 19 4 16 73 8 10 15 18 17 12 16 19 13 22 5 21 11 2 4 6 1 14 7 9 20 3 74 1 22 13 6 17 3 12 9 21 20 14 5 16 18 8 10 4 7 11 15 19 2 75 8 13 5 9 19 20 1 21 3 12 2 10 15 18 17 11 4 22 7 14 16 6 76 14 20 6 7 1 10 19 17 11 5 8 16 22 21 12 15 9 2 3 18 13 4 77 7 20 9 17 5 14 6 1 13 10 15 18 12 8 21 2 19 11 16 22 4 3

Page 168: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

150

78 16 2 11 22 7 1 9 10 18 5 13 3 14 20 8 19 15 12 21 6 4 17 79 9 12 15 14 17 18 21 19 20 11 1 6 7 16 22 2 13 4 8 10 5 3 80 3 1 2 20 6 18 11 12 4 14 22 21 13 17 19 8 7 5 16 9 10 15

81 14 7 19 16 17 5 18 13 6 1 15 22 9 20 21 3 8 10 12 4 11 2 82 14 12 22 21 1 8 6 18 15 7 3 9 16 19 11 17 10 13 2 20 5 4 83 13 5 7 9 14 1 17 3 16 2 12 15 21 10 6 19 8 4 18 22 20 11 84 1 20 11 4 15 12 10 16 8 13 2 18 22 6 9 3 7 21 14 17 5 19 85 6 1 20 9 15 3 16 10 2 11 18 22 4 21 12 13 14 5 7 8 19 17 86 2 5 10 21 15 22 12 16 18 8 13 17 3 4 11 9 19 14 7 6 1 20 87 16 2 17 7 19 13 10 8 14 5 20 1 12 6 15 21 11 4 3 9 18 22 88 13 3 16 2 20 22 19 10 21 18 15 9 12 5 4 1 8 14 7 17 6 11

89 22 13 2 10 17 3 4 15 6 21 14 18 20 19 8 16 1 7 9 12 5 11 90 10 17 3 22 20 11 16 2 21 5 15 12 4 19 1 6 8 18 14 7 9 13 91 12 4 21 16 10 14 13 2 7 17 6 18 8 19 9 1 22 5 20 11 15 3 92 9 17 8 18 3 22 13 7 15 1 4 10 12 2 5 19 21 11 20 14 16 6 93 1 5 22 4 17 11 6 14 15 16 9 10 18 12 21 3 13 8 7 2 19 20 94 17 7 22 3 2 5 4 15 21 18 20 11 14 6 12 1 9 8 13 10 19 16 95 20 9 11 18 19 2 15 3 13 5 10 16 7 22 6 21 8 12 14 4 1 17

96 21 5 4 8 11 1 19 6 20 9 10 17 16 3 15 18 13 14 7 2 12 22 97 21 2 19 15 9 18 5 22 13 8 3 16 7 4 12 10 6 11 20 14 17 1 98 21 10 20 2 8 15 22 14 5 18 11 1 9 3 6 16 7 4 12 17 13 19 99 13 17 5 9 19 12 11 14 7 8 3 1 6 2 15 10 4 21 20 16 18 22

100 13 17 1 4 7 14 16 19 3 12 10 2 18 8 21 5 6 11 20 15 22 9

Page 169: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

151

Lampiran 9

NILAI FITNESS DALAM SUATU POPULASI

fitness [1] 0.029976

fitness [2] 0.023441

fitness [3] 0.020198

fitness [4] 0.02263

fitness [5] 0.018567

fitness [6] 0.020991

fitness [7] 0.018695

fitness [8] 0.020991

fitness [9] 0.020846

fitness [10] 0.023164

fitness [11] 0.019309

fitness [12] 0.019482

fitness [13] 0.021381

fitness [14] 0.021492

fitness [15] 0.021395

fitness [16] 0.021473

fitness [17] 0.018232

fitness [18] 0.020178

fitness [19] 0.019055

fitness [20] 0.018979

fitness [21] 0.020462

fitness [22] 0.020235

fitness [23] 0.019558

fitness [24] 0.020329

fitness [25] 0.02

fitness [26] 0.01947

fitness [27] 0.021791

fitness [28] 0.022316

fitness [29] 0.02103

fitness [30] 0.020799

fitness [31] 0.019869

fitness [32] 0.020367

fitness [33] 0.023305

fitness [34] 0.021115

fitness [35] 0.021782

fitness [36] 0.023964

fitness [37] 0.020525

fitness [38] 0.019372

fitness [39] 0.022267

fitness [40] 0.021191

fitness [41] 0.021478

fitness [42] 0.022346

fitness [43] 0.019623

fitness [44] 0.020521

fitness [45] 0.019976

fitness [46] 0.023031

fitness [47] 0.017587

fitness [48] 0.020296

fitness [49] 0.023596

fitness [50] 0.019139

fitness [51] 0.020912

fitness [52] 0.021622

fitness [53] 0.018769

fitness [54] 0.020542

fitness [55] 0.021191

fitness [56] 0.023164

fitness [57] 0.020951

fitness [58] 0.020387

fitness [59] 0.02348

fitness [60] 0.022589

fitness [61] 0.019309

fitness [62] 0.018426

fitness [63] 0.022952

fitness [64] 0.022836

fitness [65] 0.021944

fitness [66] 0.021964

fitness [67] 0.01846

fitness [68] 0.018868

fitness [69] 0.018783

fitness [70] 0.01857

fitness [71] 0.022292

fitness [72] 0.023207

Page 170: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

152

fitness [73] 0.022119

fitness [74] 0.017596

fitness [75] 0.018653

fitness [76] 0.022017

fitness [77] 0.020803

fitness [78] 0.020894

fitness [79] 0.020076

fitness [80] 0.020794

fitness [81] 0.021066

fitness [82] 0.017886

fitness [83] 0.020572

fitness [84] 0.022153

fitness [85] 0.022406

fitness [86] 0.022326

fitness [87] 0.020068

fitness [88] 0.018993

fitness [89] 0.018215

fitness [90] 0.019436

fitness [91] 0.018549

fitness [92] 0.020429

fitness [93] 0.019153

fitness [94] 0.0181

fitness [95] 0.021589

fitness [96] 0.021834

fitness [97] 0.019249

fitness [98] 0.021182

fitness [99] 0.022311

fitness [100] 0.020606

Page 171: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

153

Lampiran 10

PROBABILITAS FITNESS DAN NILAI KUMULATIF DARI

PROBABILITASNYA

probabilistik fitness

1 0.014425 0.014425

2 0.01128 0.025705

3 0.0097194 0.035424

4 0.010889 0.046314

5 0.0089344 0.055248

6 0.010101 0.065349

7 0.0089962 0.074345

8 0.010101 0.084446

9 0.010031 0.094477

10 0.011147 0.10562

11 0.0092915 0.11492

12 0.0093748 0.12429

13 0.010289 0.13458

14 0.010342 0.14492

15 0.010295 0.15522

16 0.010333 0.16555

17 0.0087731 0.17432

18 0.0097096 0.18403

19 0.0091693 0.1932

20 0.0091328 0.20233

21 0.0098467 0.21218

22 0.0097371 0.22192

23 0.0094114 0.23133

24 0.0097826 0.24111

25 0.0096241 0.25074

26 0.0093693 0.26011

27 0.010486 0.27059

28 0.010739 0.28133

29 0.01012 0.29145

30 0.010008 0.30146

31 0.009561 0.31102

32 0.0098005 0.32082

33 0.011214 0.33203

34 0.010161 0.3422

35 0.010482 0.35268

36 0.011531 0.36421

37 0.009877 0.37409

38 0.0093221 0.38341

39 0.010715 0.39412

40 0.010197 0.40432

41 0.010335 0.41465

42 0.010753 0.42541

43 0.0094428 0.43485

44 0.009875 0.44473

45 0.0096126 0.45434

46 0.011083 0.46542

47 0.008463 0.47388

48 0.0097667 0.48365

49 0.011355 0.49501

50 0.0092097 0.50421

51 0.010063 0.51428

52 0.010404 0.52468

53 0.0090317 0.53371

54 0.0098851 0.5436

55 0.010197 0.5538

56 0.011147 0.56494

57 0.010082 0.57502

58 0.0098105 0.58484

59 0.011299 0.59613

60 0.01087 0.607

61 0.0092915 0.6163

62 0.0088669 0.62516

63 0.011044 0.63621

64 0.010989 0.6472

65 0.01056 0.65776

66 0.010569 0.66832

67 0.0088833 0.67721

Page 172: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

154

68 0.0090794 0.68629

69 0.0090384 0.69533

70 0.0089361 0.70426

71 0.010727 0.71499

72 0.011167 0.72616

73 0.010644 0.7368

74 0.0084675 0.74527

75 0.0089761 0.75424

76 0.010595 0.76484

77 0.010011 0.77485

78 0.010054 0.7849

79 0.0096608 0.79456

80 0.010006 0.80457

81 0.010137 0.81471

82 0.0086068 0.82331

83 0.0098993 0.83321

84 0.01066 0.84387

85 0.010782 0.85466

86 0.010744 0.8654

87 0.009657 0.87506

88 0.0091397 0.8842

89 0.0087651 0.89296

90 0.0093529 0.90231

91 0.0089261 0.91124

92 0.0098306 0.92107

93 0.0092167 0.93029

94 0.0087096 0.939

95 0.010389 0.94939

96 0.010507 0.95989

97 0.0092629 0.96916

98 0.010193 0.97935

99 0.010736 0.99008

100 0.0099156 1

Page 173: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

155

Lampiran 11

Hasil Seleksi Roulette Wheel N Hasil Seleksi

1 19 8 3 7 6 5 22 13 1 2 4 15 9 21 18 20 11 12 10 14 17 16 2 6 8 18 5 20 17 4 19 10 14 21 11 3 7 15 16 2 1 22 9 12 13 3 10 7 6 12 8 9 17 20 3 14 4 11 13 2 1 19 18 22 21 16 5 15

4 18 1 9 4 11 13 2 14 7 17 12 8 16 20 15 22 6 21 19 3 5 10 5 16 20 9 2 17 15 8 6 22 12 7 14 13 1 5 19 10 3 4 11 21 18

6 4 14 21 5 19 10 3 7 1 22 6 17 13 9 2 11 12 16 15 8 18 20

7 17 1 10 9 13 20 5 16 2 15 19 21 6 7 3 14 12 11 18 4 8 22 8 22 14 9 4 11 13 2 16 7 8 18 19 3 21 6 12 1 17 20 5 15 10

9 14 6 20 8 5 19 17 4 11 12 1 21 3 7 15 22 2 13 16 10 9 18 10 17 21 10 2 5 22 9 13 18 16 8 20 1 14 11 7 6 3 12 4 15 19

11 9 12 2 14 5 3 17 13 1 11 15 22 8 18 19 16 7 6 20 10 4 21 12 18 9 11 14 6 22 15 19 5 16 3 20 4 8 21 2 13 17 1 12 7 10

13 2 5 4 21 7 13 15 1 16 3 22 8 19 11 9 6 18 17 14 12 20 10 14 22 11 9 6 13 3 19 16 2 10 4 7 12 5 1 18 17 21 20 14 15 8

15 14 19 4 13 12 20 3 2 7 10 18 11 8 15 17 1 21 5 9 16 22 6

16 3 19 12 4 2 17 21 8 15 9 16 22 7 14 1 10 20 13 5 18 11 6 17 8 22 9 20 12 19 4 10 3 18 2 7 17 21 5 16 1 13 11 15 6 14

18 9 5 8 15 17 16 22 7 3 18 4 19 13 12 6 10 20 21 2 14 1 11 19 5 15 14 1 18 7 3 10 17 20 6 16 22 12 21 9 4 8 13 11 2 19 20 15 8 7 12 5 2 4 16 17 10 22 18 1 9 11 20 13 6 3 14 21 19

21 1 8 13 9 19 6 21 15 17 16 3 11 2 18 12 14 10 7 4 22 5 20 22 7 22 4 9 20 2 6 16 5 13 12 14 18 1 11 19 3 15 17 21 8 10

Page 174: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

156

23 13 3 7 6 5 22 8 1 2 18 9 21 4 20 11 16 10 14 17 12 15 19

24 1 13 16 7 11 22 4 9 18 6 12 8 20 21 10 14 5 19 15 3 17 2 25 16 8 5 10 3 2 15 4 11 22 7 18 19 1 20 6 12 17 13 9 14 21

26 22 21 20 14 17 1 4 6 8 7 15 5 9 19 18 3 11 12 16 13 2 10 27 11 1 6 9 19 15 21 14 16 13 2 10 17 5 4 7 22 18 20 8 12 3 28 12 7 14 16 4 19 13 9 10 8 21 2 18 15 20 5 17 6 11 22 1 3

29 4 12 20 3 14 2 15 22 16 10 5 17 19 11 9 21 6 7 1 8 18 13 30 20 7 18 6 5 19 12 17 8 11 16 1 14 2 9 10 15 4 3 22 21 13

31 7 22 3 19 10 17 18 1 4 13 21 5 15 6 12 20 16 11 9 14 2 8 32 14 20 22 16 8 10 13 17 3 5 9 18 7 21 1 2 4 11 12 19 15 6

33 22 17 5 13 1 4 6 14 9 18 19 3 21 16 11 15 10 20 12 8 2 7 34 7 2 13 4 17 20 9 22 8 5 14 11 16 19 6 21 1 3 10 15 12 18 35 8 22 7 4 12 21 18 16 14 1 15 3 9 6 17 5 11 19 10 13 20 2

36 15 9 17 3 19 4 5 18 7 8 6 22 2 11 10 14 12 1 16 20 13 21 37 12 5 13 17 11 14 9 4 8 16 10 7 3 19 1 22 21 20 18 15 2 6

38 12 8 22 20 16 2 7 21 5 19 17 4 9 15 1 18 14 13 3 11 6 10 39 6 8 19 5 20 17 13 4 10 14 21 18 3 7 15 16 2 1 22 9 12 11 40 10 8 4 22 18 21 3 11 5 17 12 14 20 1 16 19 6 15 7 2 13 9

41 6 12 22 3 15 14 1 10 18 4 13 17 20 7 2 21 16 19 9 11 5 8 42 9 15 4 21 13 11 16 8 3 14 17 19 22 18 10 1 7 12 2 6 5 20

43 20 11 15 5 1 7 8 18 19 3 16 6 12 21 17 9 2 13 10 4 22 14 44 11 20 12 18 17 2 13 21 9 14 8 1 19 10 3 7 4 22 16 5 15 6

45 6 15 21 1 13 19 18 17 2 8 4 16 7 10 3 11 5 12 22 9 14 20 46 12 22 21 1 5 14 6 20 18 16 8 10 4 11 13 19 2 3 9 15 7 17 47 19 5 1 6 2 11 14 12 22 8 18 10 21 7 4 17 16 20 9 3 13 15 48 10 9 16 8 12 5 15 6 7 1 4 22 2 20 13 21 11 19 18 17 3 14

Page 175: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

157

49 12 14 20 8 7 10 11 13 17 16 15 6 21 4 18 3 19 22 5 1 9 2

50 20 7 3 14 17 12 21 10 22 8 16 9 2 4 15 6 11 19 5 13 1 18 51 20 18 5 3 11 12 19 4 2 9 16 22 7 21 17 15 6 10 1 13 14 8

52 9 20 8 21 11 7 6 19 1 5 17 10 4 3 16 12 15 14 22 13 18 2 53 12 13 5 15 17 19 22 8 4 1 6 10 18 21 20 9 3 2 11 16 7 14 54 4 7 10 6 16 14 13 12 19 11 2 22 9 3 15 21 8 18 1 17 20 5

55 6 8 5 18 20 17 2 19 10 14 21 22 16 7 15 1 4 3 13 9 12 11 56 4 16 3 2 21 7 10 1 8 11 14 22 20 13 15 6 9 18 19 5 12 17

57 9 22 14 5 1 20 13 2 7 10 18 11 8 19 3 21 12 16 4 17 15 6 58 6 9 15 12 20 21 10 13 16 17 5 2 7 4 1 14 8 11 22 18 3 19

59 2 1 13 16 7 11 17 8 4 12 18 22 6 9 20 21 10 14 5 19 15 3 60 16 20 3 10 5 14 8 2 11 17 6 1 7 18 13 4 22 12 19 9 21 15 61 1 5 16 15 14 21 6 20 2 22 3 4 7 9 17 8 19 13 12 18 10 11

62 1 13 11 14 5 12 16 17 4 19 6 10 3 7 15 20 8 21 22 9 2 18 63 7 19 4 18 6 3 22 1 21 5 10 14 16 12 11 13 9 17 2 15 20 8

64 13 14 3 15 19 16 21 1 11 6 9 10 4 2 8 7 18 12 22 17 5 20 65 20 8 5 4 6 19 14 3 7 21 18 16 12 17 10 11 22 2 9 13 1 15 66 4 8 10 2 19 16 12 1 7 5 14 21 22 13 15 11 9 18 20 3 6 17

67 22 17 3 1 4 8 12 14 13 6 11 7 9 16 15 2 10 18 21 20 19 5 68 13 21 12 7 3 1 22 8 10 17 9 19 18 14 15 16 20 11 6 2 5 4

69 2 4 6 10 14 21 3 19 22 17 8 16 7 12 5 15 20 11 1 18 13 9 70 14 17 2 9 12 19 22 21 8 10 4 15 3 5 1 11 13 20 18 16 6 7

71 5 14 18 21 11 4 3 12 22 7 8 17 6 19 2 13 16 20 1 9 15 10 72 16 4 14 22 5 3 1 18 21 10 9 17 2 20 12 6 7 8 19 13 15 11 73 21 15 13 11 1 18 17 14 3 4 16 10 22 20 8 9 7 6 2 5 12 19 74 19 3 12 13 22 20 10 4 2 15 21 11 18 9 8 5 16 7 14 1 6 17

Page 176: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

158

75 4 22 20 5 17 8 2 18 19 11 15 16 12 6 21 9 14 13 1 10 3 7

76 1 7 21 16 13 18 17 2 6 15 5 8 19 11 3 4 22 9 12 10 20 14 77 18 8 7 17 13 20 6 9 1 5 19 11 22 4 15 16 2 10 3 14 21 12

78 4 19 14 21 11 7 16 2 22 12 13 20 6 9 1 3 10 5 15 8 18 17 79 15 1 3 10 12 2 8 18 11 6 17 21 19 14 4 13 22 20 7 9 5 16 80 14 22 7 19 21 8 6 16 15 20 10 5 9 13 2 11 17 18 1 4 12 3

81 10 3 14 16 7 12 21 20 17 4 22 6 2 15 11 18 9 1 8 5 13 19 82 10 3 18 16 7 12 21 22 13 4 17 20 2 15 11 5 9 1 14 8 19 6

83 2 21 15 3 8 12 6 11 10 5 13 4 1 18 19 14 22 9 16 20 17 7 84 3 12 1 14 4 16 21 22 7 20 6 10 15 17 13 8 2 11 5 9 18 19

85 16 22 4 18 3 9 17 1 13 7 15 14 8 19 2 12 20 10 5 6 11 21 86 8 2 18 11 9 20 12 6 22 14 4 7 3 21 17 16 1 5 10 19 15 13 87 4 19 8 3 12 16 21 10 22 5 1 9 2 15 17 14 20 13 18 11 7 6

88 18 13 10 22 11 7 6 17 19 2 8 3 16 21 5 9 12 15 4 20 1 14 89 4 19 6 9 5 16 20 18 7 15 1 10 11 22 13 2 21 14 8 3 17 12

90 13 15 22 7 6 14 1 2 4 16 21 20 19 17 5 12 3 8 11 10 18 9 91 10 20 2 6 12 14 7 19 8 16 15 4 21 5 3 22 13 9 17 1 18 11 92 8 2 21 15 7 20 10 14 16 6 9 22 13 18 12 5 4 19 1 3 17 11

93 10 22 19 3 21 1 18 11 15 6 4 16 17 8 13 7 20 5 2 12 9 14 94 22 20 17 16 12 8 1 13 6 14 9 18 19 3 11 4 7 2 5 10 15 21

95 1 5 21 2 15 4 8 18 9 14 16 10 20 3 11 12 13 22 7 6 19 17 96 2 3 20 13 9 1 22 7 10 19 12 14 8 11 4 6 21 5 18 15 17 16

97 3 12 4 6 8 19 21 20 13 18 14 1 11 10 22 15 17 7 9 5 16 2 98 8 17 12 21 16 11 4 1 3 9 13 10 6 20 18 14 7 22 2 5 19 15 99 3 7 2 21 20 19 1 11 5 8 6 12 22 4 15 17 18 10 9 16 13 14

100 2 13 11 16 7 1 17 8 4 22 18 12 6 9 20 14 10 21 5 19 15 3

Page 177: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

159

Lampiran 12

Semesta Pembicaraan, Domain, Fungsi Keanggotaan dan

Aturan Fuzzy

1. Semesta Pembicaraan, Domain dan Fungsi Keanggotaan Populasi

Semesta pembicaraan: [0, 1000]

Domain SMALL: [50, 250]

Fungsi Keanggotaan:

Domain MEDIUM: [80, 275]

Fungsi Keanggotaan:

Page 178: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

160

Domain LARGE: [350, 500]

Fungsi Keanggotaan:

2. Semesta Pembicaraan, Domain dan Fungsi Keanggotaan Generasi

Semesta pembicaraan: [0, 1000]

Domain SHORT: [50, 200]

Fungsi Keanggotaan:

Page 179: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

161

Domain MEDIUM: [80, 275]

Fungsi Keanggotaan:

Domain LONG: [350, 500]

Fungsi Keanggotaan:

3. Semesta Pembicaraan, Domain dan Fungsi Keanggotaan Crossover

Page 180: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

162

Semesta pembicaraan: [0.6, 0.9]

Domain SMALL: [0.625, 0.7]

Fungsi Keanggotaan:

Domain MEDIUM: [0.63, 0.7, 0.72, 0.78]

Fungsi Keanggotaan:

Domain LARGE: [0.72, 0.78, 0.8, 0.87]

Fungsi Keanggotaan:

Domain VERY LARGE: [0.8, 0.875]

Fungsi Keanggotaan:

Page 181: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

163

4. Semesta Pembicaraan, Domain dan Fungsi Keanggotaan Mutasi

Semesta pembicaraan: [0, 0.25]

Domain VERY SMALL: [0.025, 0.1]

Fungsi Keanggotaan:

Domain SMALL: [0.047, 0.083, 0.1, 0.14]

Fungsi Keanggotaan:

Page 182: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

164

Domain MEDIUM: [0.1, 0.14, 0.167, 0.2]

Fungsi Keanggotaan:

Domain LARGE: [0.15, 0.225]

Fungsi Keanggotaan:

5. Aturan Fuzzy

IF (Populasi is SMALL) AND (Generasi is SHORT)

THEN (ProbCrossover is MEDIUM) AND (ProbMutasi is LARGE).

IF (Populasi is MEDIUM) AND (Generasi is SHORT)

THEN (ProbCrossover is SMALL) AND (ProbMutasi is MEDIUM).

IF (Populasi is LARGE) AND (Generasi is SHORT)

THEN (ProbCrossover is SMALL) AND (ProbMutasi is SMALL).

IF (Populasi is SMALL) AND (Generasi is MEDIUM)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is MEDIUM).

IF (Populasi is MEDIUM) AND (Generasi is MEDIUM)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is SMALL).

Page 183: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

165

IF (Populasi is LARGE) AND (Generasi is MEDIUM)

THEN (ProbCrossover is MEDIUM) AND (ProbMutasi is VERYSMALL).

IF (Populasi is SMALL) AND (Generasi is LONG)

THEN (ProbCrossover is VERYLARGE) AND (ProbMutasi is SMALL).

IF (Populasi is MEDIUM) AND (Generasi is LONG)

THEN (ProbCrossover is VERYLARGE) AND (ProbMutasi is

VERYSMALL).

IF (Populasi is LARGE) AND (Generasi is LONG)

THEN (ProbCrossover is LARGE) AND (ProbMutasi is VERYSMALL).

Page 184: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

166

Page 185: IMPLEMENTASI ALGORITMA GENETIKA DENGAN TEKNIK

167