Implementasi Algoritma Genetik untuk Menyelesaikan Masalah Traveling Salesmen Problem (Studi Kasus: Satuan Kerja Perangkat Daerah Kota Medan)

(1)

IMPLEMENTASI ALGORITMA GENETIK UNTUK MENYELESAIKAN MASALAH TRAVELING SALESMAN PROBLEM (STUDI KASUS:

SATUAN KERJA PERANGKAT DAERAH KOTA MEDAN) DRAFT SKRIPSI

RAJO PANANGIAN HARAHAP 111421045

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN


(2)

IMPLEMENTASI ALGORITMA GENETIK UNTUK MENYELESAIKAN MASALAH TRAVELING SALESMAN PROBLEM (STUDI KASUS: SATUAN KERJA

PERANGKAT DAERAH KOTA MEDAN SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

RAJO PANANGIAN HARAHAP 111421045

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA GENETIK UNTUK

MENYELESAIKAN MASALAH TRAVELING

SALESMAN PROBLEM (STUDI KASUS: SATUAN KERJA PERANGKAT DAERAH KOTA MEDAN)

Kategori : SKRIPSI

Nama : RAJO PANANGIAN HARAHAP

Nomor Induk Mahasiswa : 111421045

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2015 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, ST, M.Kom Dr. Poltak Sihombing, M.Kom

NIP. 19790904 200912 1 002 NIP. 19620317 199103 1 001

Diketahui/disetujui oleh

Program Studi Ekstensi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001


(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA GENETIK UNTUK MENYELESAIKAN MASALAH TRAVELING SALESMAN PROBLEM (STUDI KASUS:

SATUAN KERJA PERANGKAT DAERAH KOTA MEDAN)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Juli 2015

Rajo Panangian Harahap 111421045


(5)

PENGHARGAAN

Alhamdulillah, puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya dalam hidup. Sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis selama pengerjaan skripsi ini, antara lain kepada:

1. Bapak Drs. Poltak Sihombing, M.Kom sebagai Dosen Pembimbing dan selaku Ketua Departemen Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara yang telah memberikan saran, dan masukan kepada penulis.

2. Bapak Ade Candra, ST, M.Kom sebagai Dosen Pembimbing yang telah memberikan bimbingan, saran, masukkan kepada penulis untuk menyempurnakan kajian ini.

3. Ibu Dian Rachmawati, S.Si, M.Kom dan Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM sebagai Dosen Pembanding.

4. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi serta seluruh dosen dan pegawai Program Studi Ekstensi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Seluruh dosen Departemen Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara yang telah membimbing dan mencurahkan ilmunya selama masa perkuliahan.


(6)

6. Seluruh pegawai di lingkungan Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

7. Teristimewa kepada orang tua penulis, Alm. Guntur Harahap dan Ibunda Farida Iriani Siregar atas do’a dan kasih sayang yang tidak pernah putus, kepada adinda saya Elly Syafitri Harahap dan adinda Raisa Harahap atas dorongan semangat yang diberikan kepada penulis.

8. Teman-teman seangkatan Ekstensi S1 Ilmu Komputer tahun 2011 yang sama- sama berjuang meraih gelar Sarjana.

Semoga Allah SWT memberikan limpahan karunia semua pihak yang membantu penulis dalam menyelesaikan skripsi ini. Akhirnya penulis berharap bahwa skripsi ini bermanfaat terutama kepada penulis maupun para pembaca serta semua pihak akademisi yang tertarik mengembangkannya. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima saran dan kritik demi kesempurnaan skripsi ini sehingga bermanfaat bagi semua pihak.

Medan, Juli 2015 Penulis


(7)

ABSTRAK

Persoalan pencarian rute terpendek dari sejumlah Satuan Kerja Perangkat Daerah (SKPD) pada penelitian ini termasuk pada persoalan optimasi Traveling Salesman Problem. Pada penelitian ini terdapat 59 SKPD yang harus di tempuh oleh pegawai kota medan bila kemudian menyinggahi setiap SKPD tepat satu kali. Salah satu Algoritma yang muncul untuk menyelesaikan persoalan ini adalah Algoritma Genetika. Pada peneletian ini akan dibuat program untuk mencari rute terpendek dari 59 SKPD yang terbagi atas 5 Tim. Program didesain menggunakan representasi kromosom dengan skema pengkodean menggunakan skema permutation encoding. Pengujian dilakukan dengan variasi probabilitas pindah silang dan mutasi, variasi jumlah kromosom dalam satu populasi dan jumlah generasi. Hasil percobaan dengan ukuran populasi dan generasi yang besar serta nilai probabilitas mutasi pada 0,01 dan 0,3 memberikan rata-rata keberhasilan yang paling baik.

Kata Kunci : Algoritma Genetika, Traveling Salesman Problem, SKPD (Satuan Kerja Perangkat Daerah).


(8)

IMPLEMENTATION OF GENETIC ALGORITHM TO SOLVE TRAVELING SALESMAN PROBLEM (CASE STUDY: SATUAN KERJA

PERANGKAT DAERAH KOTA MEDAN)

ABSTRACT

Finding the shortest route from a number of Local Government Work Units (LGWU) in this study is a matter of optimization of Travelling Salesman Problem. In this research, there are 59 LGWUs that must be passed by Medan city employee in case to set every LGWU visiting in one turn. One possible algorithm to solve this matter is Genetic Algorithm. In this research, a program is made to find the shortest route amongst 59 LGWUs that divided into 5 teams. The program is designed by using chromosome representation with coding scheme using permutation coding scheme. The test carried out with crossover probability variation and mutation, a number of chromosomes in one population and one generation variation. The test result in large scale of population and generation and in mutation probability between 0,01 and 0,3 gives the best average of success.

Keywords: Genetic Algorithm, Traveling Salesman Problem, LGWU (Local government work unit).


(9)

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abtract vii

Daftar Isi viii

Daftar Tabel xi

Daftar Gambar xii

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 4

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Landasan Teori 6

2.1 Definisi Graf 6

2.1.1 Jenis-Jenis Graf 7

2.1.2 Macam-macam Graf 7

2.1.3 Representasi Graf 8

2.1.3.1 Matriks Ketegangan 9

2.1.3.2 Matriks Berisian 10

2.1.3.3 Senarai Ketegangan 10

2.2 Traveling Salesman Problem 11

2.2.1 Sejarah Traveling Salesman Problem 11

2.2.2 Defenisi Traveling Salesman Problem 11

2.2.3 Kompleksitas Masalah 13

2.2.4 Algoritma Penyelesaian Traveling Salesman Problem 13

2.3 Algoritma Genetik 15

2.3.1 Pengerian Individu 17

2.3.2 Struktur Umum Algoritma Genetika 19

2.3.3 Komponen-komponen Algoritma Genetika 20

2.3.3.1 Skema Pengkodean 21

2.3.3.2 Nilai Fitness 23

2.3.3.3 Seleksi Induk 24

2.3.3.4 Proses Reproduksi 27

2.3.3.4 Pindah Silang (Crossover) 27


(10)

2.3.3.6 Elitisme 28

2.3.3.7 Pergantian Populasi 29

2.3.4 Cara Kerja Algoritma Genetika 29

2.3.5 Traveling Salesman Problem dalam Algoritma Genetik 31

Bab 3 Analisis dan Perancangan 34

3.1 Analisis Sistem 34

3.1.1 Analisis Masalah (Problem Analysis) 34 3.1.2 Analisis Kebutuhan (Requirement Analysis) 36

3.1.2.1 Analisis Kebutuhan Fungsional 36

3.1.2.1 Analisis Kebutuhan Non-Fungsional 36

3.1.3 Pemodelan Sistem 37

3.1.3.1 Use Case Diagram 37

3.1.3.1.1 Use Case Penentuan Rute Terpendek dengan 38 Algoritma Genetik

3.1.3.2 Sequence Diagram 40

3.3 Perancangan Sistem 40

3.3.1 Penyelesaian TSP Kurva Terbuka Menggunakan Genetik 41

3.3.2 Flowchart Inisialisasi Populasi 42

3.3.3 Flowchart Evaluasi Individu 44

3.3.4 Flowchart Elitisme 46

3.3.5 Flowchart Penskalaan Nilai Fitness 47

3.3.6 Flowchart Seleksi 49

3.3.7 Flowchart Pindah Silang 51

3.3.8 Flowchart Mutasi 53

3.3.9 Pergantian Populasi 55

3.4 Perancangan Tampilan Antarmuka 56

3.4.1 Rancangan Jendela Utama 56

3.4.2 Rancangan Jendela Genetik Models 57

3.4.3 Rancangan Jendela Load Data 58

3.4.4 Rancangan Jendela Settings 59

3.4.5 Rancangan Jendela Simulation 60

3.4.6 Rancangan Jendela Tentang 61

Bab 4 Implementasi Dan Pengujian 62

4.1 Implementasi 62

4.1.1 Implementasi Algoritma Genetik Pada Sistem 62 4.1.1.1 Proses Pencarian Rute Terpendek 66

4.2 Tampilan Antarmuka 70

4.2.1 Tampilan Aplikasi Algoritma Genetik –TSP 70

4.2.2 Tampilan Jendela Utama 70

4.2.3 Tampilan Jendela Genetik Models 71

4.2.4 Tampilan Jendela Load Data 72

4.2.5 Tampilan Jendela Settings 72

4.2.6 Tampilan Simulation 73

4.2.7 Tampilan Tentang 73

4.3 Pengujian Sistem 74

4.3.1 Pengujian Sistem Pencarian Rute Terpendek SKPD Tim 1 74 4.3.2 Pengujian Sistem Pencarian Rute Terpendek SKPD Tim 2 74


(11)

4.3.3 Pengujian Sistem Pencarian Rute Terpendek SKPD Tim 3 75 4.3.3 Pengujian Sistem Pencarian Rute Terpendek SKPD Tim 4 76 4.3.3 Pengujian Sistem Pencarian Rute Terpendek SKPD Tim 5 76

Bab 5 Kesimpulan Dan Saran 79

5.1 Kesimpulan 79

5.2 Saran 80

Daftar Pustaka

Lampiran A: Listing Program Lampiran B: Curriculum Vitae


(12)

DAFTAR TABEL

Hal.

Tabel 2.1 Tur Parent Dengan Childnya 30

Tabel 3.1 Dokumentasi naratif Use Case Penentuan rute terpendek 38 dengan Algoritma Genetik

Tabel 4.1 Koordinat SKPD 63


(13)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Graf 6

Gambar 2.2 Graf berarah dan berbobot 7

Gambar 2.3 Graf tidak berarah dan berbobot 8

Gambar 2.4 Graf berarah dan tidak berbobot 8

Gambar 2.5 Graf tidak berarah dan tidak berbobot 8

Gambar 2.6 Ilustrasi Masalah TSP 13

Gambar 2.7 Diagram pengelompokan dalam teknik pencarian 16 Gambar 2.8 Ilustrasi definisi individu dalam algoritma genetik 18

Gambar 2.9 Struktur Umum Algoritma Genetika 20

Gambar 2.10 Siklus algoritma genetik 21

Gambar 2.11 Skema pengkodean Binary Encoding 22

Gambar 2.12 Skema pengkodean Discrete decimal encoding 22 Gambar 2.13 Skema pengkodean Real-number encoding 22 Gambar 2.14 Contoh penggunaan metode Roulette-wheel 25 Gambar 2.15 Ilustrasi prinsip kerja metode Roulette-wheel 26

Gambar 2.16 Contoh proses pindah silang 27

Gambar 2.17 Pindah silang menggunakan order crossover 33

Gambar 3.1 Iskhikawa Diagram 35

Gambar 3.2 Use Case Diagram 38

Gambar 3.3 Activity Diagram Penentuan rute terpendek dengan AG 39

Gambar 3.4 Sequence Diagram 40

Gambar 3.5 Flowchart Algoritma Genetika 41

Gambar 3.6 Pseudo-code Algoritma Genetika 42

Gambar 3.7 Flowchart inisialisasi populasi 43

Gambar 3.8 Flowchart evaluasi individu 45

Gambar 3.9 Flowchart elitisme 47

Gambar 3.10 Flowchart linear fitness ranking 48

Gambar 3.11 Flowchart seleksi 50

Gambar 3.12a Flowchart pindah silang 51

Gambar 3.12b Flowchart pindah silang 52

Gambar 3.13 Flowchart mutasi 54

Gambar 3.14 Rancangan Jendela Utama 56

Gambar 3.15 Rancangan Jendela Genetik Models 57

Gambar 3.16 Rancangan Jendela Load Data 58

Gambar 3.17 Rancangan Jendela Settings 59

Gambar 3.18 Rancangan Jendela Simulation 60

Gambar 3.19 Rancangan Jendela Tentang 61

Gambar 4.1 Graf SKPD 66

Gambar 4.2 Tampilan Jendela Utama 71

Gambar 4.3 Tampilan Jendela Genetik Models 71


(14)

Gambar 4.5 Tampilan Jendela Settings 72

Gambar 4.6 Tampilan Jendela Simulation 73

Gambar 4.7 Tampilan Jendela Tentang 73

Gambar 4.8 Hasil Pencarian Rute Terpendek SKPD Tim 1 74 Gambar 4.9 Hasil Pencarian Rute Terpendek SKPD Tim 2 75 Gambar 4.10 Hasil Pencarian Rute Terpendek SKPD Tim 3 75 Gambar 4.11 Hasil Pencarian Rute Terpendek SKPD Tim 4 76 Gambar 4.12 Hasil Pencarian Rute Terpendek SKPD Tim 5 77


(15)

ABSTRAK

Persoalan pencarian rute terpendek dari sejumlah Satuan Kerja Perangkat Daerah (SKPD) pada penelitian ini termasuk pada persoalan optimasi Traveling Salesman Problem. Pada penelitian ini terdapat 59 SKPD yang harus di tempuh oleh pegawai kota medan bila kemudian menyinggahi setiap SKPD tepat satu kali. Salah satu Algoritma yang muncul untuk menyelesaikan persoalan ini adalah Algoritma Genetika. Pada peneletian ini akan dibuat program untuk mencari rute terpendek dari 59 SKPD yang terbagi atas 5 Tim. Program didesain menggunakan representasi kromosom dengan skema pengkodean menggunakan skema permutation encoding. Pengujian dilakukan dengan variasi probabilitas pindah silang dan mutasi, variasi jumlah kromosom dalam satu populasi dan jumlah generasi. Hasil percobaan dengan ukuran populasi dan generasi yang besar serta nilai probabilitas mutasi pada 0,01 dan 0,3 memberikan rata-rata keberhasilan yang paling baik.

Kata Kunci : Algoritma Genetika, Traveling Salesman Problem, SKPD (Satuan Kerja Perangkat Daerah).


(16)

IMPLEMENTATION OF GENETIC ALGORITHM TO SOLVE TRAVELING SALESMAN PROBLEM (CASE STUDY: SATUAN KERJA

PERANGKAT DAERAH KOTA MEDAN)

ABSTRACT

Finding the shortest route from a number of Local Government Work Units (LGWU) in this study is a matter of optimization of Travelling Salesman Problem. In this research, there are 59 LGWUs that must be passed by Medan city employee in case to set every LGWU visiting in one turn. One possible algorithm to solve this matter is Genetic Algorithm. In this research, a program is made to find the shortest route amongst 59 LGWUs that divided into 5 teams. The program is designed by using chromosome representation with coding scheme using permutation coding scheme. The test carried out with crossover probability variation and mutation, a number of chromosomes in one population and one generation variation. The test result in large scale of population and generation and in mutation probability between 0,01 and 0,3 gives the best average of success.

Keywords: Genetic Algorithm, Traveling Salesman Problem, LGWU (Local government work unit).


(17)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Traveling Salesman Problem (TSP) adalah permasalahan dimana seorang salesman

harus mengunjungi semua kota yang ada dan kota tersebut hanya boleh dikunjungi tepat satu kali. Permasalahannya adalah bagaimana salesman tersebut dapat mengatur rute perjalanannya sehingga jarak yang ditempuhnya merupakan rute yang optimum yaitu jarak minimum terbaik[7].

Permasalahan matematik yang berkaitan dengan TSP 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. Bentuk umum dari persoalan TSP pertama kali dipelajari oleh para matematikawan mulai tahun1930-an oleh Karl Menger di Vienna dan Harvard. Persoalan tersebut kemudian dikembangkan oleh Hassler Whitney dan Merril Flood di Princeton.

Algoritma Genetik pertama kali dikembangkan oleh John Holland pada tahun 1970-an di New York, Amerika Serikat. Dia beserta murid-murid dan teman kerjanya menghasilkan buku berjudul "Adaption in Natural and Artificial Systems" pada tahun 1975. Salah satu aspek yang yang mempunyai peranan penting dalam menggunakan metode Algoritma Genetik adalah penentuan rekombinasi yang melibatkan crossover point dan mutasi. Biasanya dalam Algoritma Genetik, individu diwakili oleh sejumlah bit string dan rekombinasi diimplementasikan melalui operator crossover yang beroperasi pada pasangan individu (parent) untuk menghasilkan string baru (child) dengan persilangan segmen-segmen dari kedua parent tersebut secara


(18)

tradisional, jumlah cross point (yang menentukan berapa banyak segmen yang dipertukarkan) telah ditentukan pada one point atau two point.[3]

Deskripsi persoalan dalam penelitian ini adalah terdapat sejumlah Satuan Kerja Perangkat Daerah (SKPD), tentukan rute apa yang harus di tempuh oleh seorang pegawai kota medan bila pegawai itu berangkat dari bagian perlengkapan dan aset Kota Medan dan menyinggahi setiap SKPD tepat satu kali.

SKPD dapat dinyatakan sebagai sebuah simpul graf, sedangkan sisi menyatakan jalan yang menghubungkan antara dua SKPD. Bobot pada sisi menyatakan jumlah antara dua buah SKPD. Permasalahan dengan jumlah SKPD yang banyak akan menghasilkan semakin banyak kemungkinan. Untuk 20 SKPD akan menghasilkan 20!/2 kemungkinan.

Algoritma Genetik diharapkan dapat menghasilkan solusi terbaik dengan waktu yang lebih cepat untuk persoalan TSP. Untuk itu hal yang dapat penulis lakukan adalah mencari solusi paling optimum yaitu solusi yang memiliki kesesuaian antara waktu pemrosesan dengan solusi menggunakan Algoritma Genetik. Mengingat waktu yang digunakan oleh persoalan dengan komputasi tingkat tinggi seperti TSP, maka paling optimal bukan paling benar.

Studi kasus yang dilakukan di Bagian Perlengkapan dan Aset Setda Kota Medan adalah mencari rute optimum antar SKPD di Pemerintah Kota Medan untuk monitoring Barang Milik Daerah (BMD).

Beberapa penelitian yang telah diteliti oleh peneliti sebelumnya yang berkaitan dengan penelitian ini adalah sebagai berikut:

1. Penggunaan algoritma Genetik dalam menyelesaikan masalah optimasi yang kompleks dalam mencari rute paling optimum dari titik asal ke titik tujuan. Jenis crossover yang dipergunakan yaitu one cut point crossover dan two cut pointcrossover.[4]

2. Penerapan Algoritma Genetik pada penyelesaian masalah vehicle routing problem.[8]


(19)

3. Penerapan Algoritma Genetik untuk TSP dengan menggunakan metode order

crossover dan insertion mutation.[10]

4. Penyelesaian trevelling salesman problem dengan membandingkan antara

partially mapped (PMX), Order Crossover (OX) dan Cycle Crossover (CX) dengan menggunakan 1%, 30%, 70%, dan 100%.[1]

5. Penerapan Algoritma Genetik pada penyelesaian TSP dengan menggunakan

New Crossover Operator dan menggunakan kromosom Upper Triangle Matrix. [7]

1.2Rumusan Masalah

Bagaimana menentukan jarak optimum antar SKPD di Pemerintah Kota Medan pada aplikasi TSP menggunakan Algoritma Genetik.

1.3Batasan Masalah

Agar permasalahan yang akan diteliti lebih terfokus kepada masalah penelitian yang akan diteliti maka penulis membuat beberapa batasan masalah antara lain yaitu:

a. Penggambaran node-node dalam bentuk posisi x dan y.

b. Parameter yang digunakan adalah ukuran populasi, peluang crossover, peluang mutasi, maksimum generasi dan, panjang kromosom (jumlah gen). c. Bersifat Simetri, dimana jarak yang didapat dari node 1 ke node 2 sama

dengan jarak dari node 2 ke node 1.

d. Bahasa pemrograman yang digunakan adalah Microsoft Visual C# 2012.

1.4Tujuan Penelitian

Menerapkan konsep dan cara kerja Algoritma Genetik pada aplikasi Traveling Salesman Problem untuk menentukan rute terpendek antar SKPD di Pemerintah Kota Medan.


(20)

1.5Manfaat Penelitian

Manfaat yang diharapkan pada penelitian ini adalah:

a. Diharapkan dapat menjadi acuan dalam hal pencarian best fitness dalam penyelesaian TSP.

b. Diharapkan dapat membantu Staf Bagian Perlengkapan dan Aset dalam penentuan rute terpendek antar SKPD di Pemerintah Kota Medan.

1.6Metodologi Penelitian

Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut: 1. Studi Literatur

Metode ini dilaksanakan dengan melakukan studi kepustakaan yang relevan serta mencari buku-buku maupun artikel-artikel atau e-book dan juga journal international yang berhubungan dengan Algoritma Genetik dan Traveling Salesman Problem yang didapat melalui internet, Serta Bahasa Pemrograman C#. 2. Analisis dan Perancangan Sistem

Tahap ini digunakan untuk mengolah data dari hasil studi kepustakaan kemudian melakukan analisis sehingga menjadi suatu informasi. Proses ini meliputi pembuatan algoritma program, UML, flowchart sistem, rancangan aplikasi, dan pembuatan user interface aplikasi.

3. Implementasi Sistem

Menerapkan Algoritma Genetik untuk menyelesaikan Traveling Salesman Problem ke dalam aplikasi komputer yang sedang dirancang.

4. Pengujian Aplikasi

Menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih terdapat error pada aplikasi.


(21)

5. Dkumentasi

Tahap akhir dari penelitian yang dilakukan, yaitu membuat kesimpulan dan laporan tentang penelitian yang telah dilakukan.

1.7Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari: BAB 1 : PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang pemilihan judul skripsi

”Implementasi Algoritma Genetik Untuk Menyelesaikan Masalah

Traveling Salesman Problem (Studi Kasus: Satuan Kerja Perangkat Daerah Kota Medan”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini membahas teori-teori yang berkaitan dengan Graf, Traveling Salesman Problem dan algoritma Genetik.

BAB 3 : ANALISIS DAN PERANCANGAN

Bab ini akan membahas mengenai analisis kebutuhan sistem yang meliputi analisis pengenalan, analisis algoritma dan perancangan sistem.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN

Bab ini menjelaskan kriteria yang dibutuhkan agar aplikasi yang dirancang berjalan dengan baik dan pengujian kinerja dari aplikasi tersebut.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini memuat kesimpulan dari uraian bab-bab sebelumnya dan hasil penelitian yang diperoleh. Bab ini juga memuat saran yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.


(22)

BAB 2

LANDASAN TEORI

3.1Definisi Graf

Graf G didefenisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G=(V,E). Dalam hal ini, V merupakan himpunan tidak kosong dari simpul-simpul (verticeataunode) digambarkan dalam titik-titik, dan E adalah himpunan sisi-sisi (edges atau arcs) digambarkan dalam garis-garis yang menghubungkan sepasang simpul[6]. Dapat dilihat pada Gambar 2.1.

Gambar 2.1 Graf[14]

Pada Gambar 2.1 diatas, graf terdiri dari himpunan V dan E yaitu: V = (A, B, C)

E = (e1, e2, e3, e4)

Simpul-simpul pada graf dapat merupakan objek sembarang seperti kota, atom-atom suatu zat, nama anak, jenis buah, komponen alat elektronik dan Satuan Kerja Perangkat Daerah yang merupakan studi kasus penulis. Sisi graf dapat menunjukkan hubungan (relasi) sembarang seperti rute penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan lain-lain.

A C

e1

e2

e3

e4


(23)

Notasi graf: G(V,E) artinya graf G memiliki V simpul dan E sisi. Banyaknya simpul (anggota V) disebut orde Graf G, sedangkan banyaknya sisi (anggota E) disebut derajat/ukuran (size) Graf G.

3.1.1 Jenis-Jenis Graf

Garf terdiri dari beberapa jenis sebagai berikut:

1. Graf sederhana (simple graph) Graf yang tidak mengandung gelang maupun sisi ganda dinamakan graf sederhana.[14]

2. Graf tak-sederhana (insimple graph) Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana Termonologi graf.[14]

3.1.2 Macam-Macam Graf

Menurut arah dan bobotnya, graf dibagi menjadi empat bagian, yaitu: 1. Graf berarah dan berbobot.

Garf yang tiap busur mempunyai anak panah dan bobot.Dapat dilihat pada Gambar 2.2.

Gambar 2.2 Graf berarah dan berbobot

2. Graf tidak berarah dan berbobot

Tiap busur tidak mempunyai anak panah tetapi mempunyai bobot.Dapat dilihat pada Gambar 2.3.

A

B

C

D

E

F

G 2

2

2 2 2 3

1 1

1

3 3


(24)

Gambar 2.3 Graf tidak berarah dan berbobot

3. Graf berarah dan tidak berbobot.

Tiap busur mempunyai anak panah yang tidak berbobot.Dapat dilihat pada Gambar 2.4.

Gambar 2.4 Graf berarah dan tidak berbobot

4. Graf tidak berarah dan tidak berbobot

Tiap busur tidak mempunyai anak panah dan tidak berbobot.Dapat dilihat pada Gambar 2.5.

Gambar 2.5 Graf tidak berarah dan tidak berbobot

3.1.3 Representasi Graf

Dalam pemrosesan graf dengan program komputer, graf harus direpresentasikan di dalam memori.Terdapat beberapa representasi yang mungkin untuk graf.Terdapat tiga

A B C D E F G A B C D E F G A B C D E F G 2 2 2 2 2 3 1 1 1 3 3 3


(25)

macam representasi yang sering digunakan pada graf sederhana, yaitu matriks ketetanggaan, bersisian, dan senarai ketetanggaan.

3.1.3.1Matriks Ketetanggaan

Dalam mempermudah perhitungan pada program komputer, graf dapat direpresentasikan dengan menggunakan matriks. Salahsatunya adalah matriks ketetanggaan.

Misalkan G = (V, E) adalah sebuah graf sederhana dimana |V| = n, n > 1.

Misalkan simpul dari G adalah v1, v2, … vn. Maka, matriks ketetanggaan A dari G adalah n x n matriks, dimana dalamnotasi matematika dituliskan sebagai berikut[11]:

(2.1)

= 1, jika simpul i dan j bertetangga. = 0, jika simpul i dan jtidak bertetangga.

Matriks ketetanggaan dari sebuah graf mengacu pada keterurutan dari simpul. Sehingga, ada sebanyak n! keterurutan yang berbeda yang terbentuk dari n simpul.

Matriks ketetanggaan merupakan graf sederhana yang simetris, yaitu = . Hal ini disebabkan oleh kedua-duanya adalah 1 ketika vi dan vj mempunyai sisi, dan adalah 0 jika tidak ada sisi diantaranya, dinamakan juga matriks nol-satu, sedangkan untuk graf berarah, mtriks ketetanggaanya belum tentu simetri (akan berupa simetri jika berupa graf berarah lengkap). Selain itu, graf sederhana tidak mempunyai gelang, sehingga diagonal utamanya selalu 0 karena aii, i = 1, 2, 3, …, n adalah 0.

Sayangnya, matriks ketetanggaan nol-satu tidak dapat digunakan untuk merepresentasikan graf yang mempunyai sisi ganda. Untuk mengatasinya, maka elemen aij pada matriks ketetanggaan sama dengan jumlah yang berasosiasi dengan (vi, vj). Matriks ketetanggaannya bukan lagi matriks nol-satu untuk graf semu, gelang


(26)

pada simpul vi dinyatakan dengan nilai satu pada posisi (i, j) di matriks ketetanggaannya.

Keuntungan representasi dengan matriks adalah elemen matriksnya dapat diakses langsung melalui indeks.Selain itu, kita dapatmengetahui secara langsung apakah simpul i dan simpul j bertetangga.

3.1.3.2Matriks Bersisian

Bila matriks ketetanggaan menyatakan ketetanggaan simpul-simpul di dalam graf, maka matriks bersisian menyatakan kebersisian simpul dengan sisi. Misalkan G = (V, E) adalah graf dengan n simpul dan m buah sisi, maka matriks kebersisian A dari graf G adalah matriks yang berukuran m x n. Baris menunjukkan label simpul, sementara kolom menunjukkan label sisinya.Dalam notasi matematika dituliskan sebagai berikut[11]:

(2.2)

= 1, jika simpul i berisian dengan sisi j. = 0, jika simpul i tidak bersisian dengan sisi j.

3.1.3.3Senarai Ketetanggaan

Kelemahan matriks ketetanggaan adalah bila graf memiliki jumlah sisi relatif sedikit, karena matriksnya bersifat jarang, yaitu banyak mengandung elemen nol, sedangkan elemen yang bukan nol sedikit.Ditinjau dari segi implementasi, kebutuhan ruang memory untuk matriks jarang, boros, karena komputer menyimpan banyak elemen nol yang tidak perlu. Untuk mengatasi masalah ini,Senarai ketetanggaan mengenumerasi simpul-simpul yang bertetangga dengan setiap simpul di dalam graf[14].


(27)

3.2Traveling Salesman Problem

3.2.1 Sejarah Traveling Salesman Problem

Permasalahan matematik yang berkaitan dengan Traveling Salesman Problem (TSP)

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-an Karl Menger 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)”.[2]

3.2.2 Definisi Traveling Salesman Problem

Persoalan Traveling Salesman Problem (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 PCB (Printed Cirtcuit Board) 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 biaya ini sendiri dapat mewakili berbagai hal, seperti biaya, jarak, bahan bakar, waktu, kenyamanan dan lain-lain.


(28)

Pada Traveling Salesman Problem (TSP), jumlah jalur yang mungkin diproleh dalam notasi matematika dituliskan sebagai berikut[11]:

(2.3)

Dimana:

n = jumlah seluruh node k = jumlah node yang diseleksi

Terdapat dua jenis Traveling Salesman Problem (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 Traveling Salesman Problem (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 10 node, maka jalur yang mungkin untuk TSP asimetris adalah:

(2.4)

Sedagkan untuk Traveling Salesman Problem (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 10 node, maka jalur yang mungkin untuk TSP simetris adalah:

(2.5)


(29)

Gambar 2.6 Ilustrasi Masalah TSP

Kota-kota pada Gambar 2.6 masing-masing mempunyai koordinat (x,y) sehingga jarak antar kedua kota dapat dihitung dengan rumusan:[2]

(2.6)

Pencarian Lintas Terpendek dapat dinyatakan dengan persamaan:[2]

(2.7)

3.2.3 Kompleksitas Masalah

Solusi langsung atas masalah Traveling Salesman Problem (TSP) adalah metode brute force, yakni dengan mencoba semua kemungkinan yang ada, kemudian dilihat mana biaya yang paling minimum. Tetapi cara ini membutuhkan tenaga dan waktu yang cukup banyak, karena jumlah kemungkinan yang dicoba berjumlah n!, di mana n merupakan banyak titik atau kota. Karena itu cara ini mustahil untuk dipraktekkan.

3.2.4 Algoritma Penyelesaian Traveling Salesman Problem

Metode penyelesaian dibagi menjadi dua, yaitu penyelesaian secara eksak dan dengan menggunakan pendekatan (heuristic). Untuk yang secara eksak, hanya baik apabila

A B

D C

E 5

2

4 3

2 5

3

6


(30)

jumlah titik atau kota tidak terlalu banyak. Kurang rasional kalau untuk jumlah titik yang banyak digunakan cara eksak, karena akan memakan waktu dan tenaga yang sangat banyak. Metode heuristic, walaupun tidak dapat dibuktikan bahwa solusi tersebut paling optimal, tetapi secara rasio cara ini yang paling mungkin dipakai. Waktu untuk menghasilkan solusi lebih singkat, dapat dipakai untuk ribuan titik, dan hasil yang didapat juga dapat dikatakan hampir mendekati, bahkan kadang-kadang sama dengan solusi optimal.

1. Algoritma Eksak

a. Algoritma Branch and Bound

Hanya dapat dipakai untuk jumlah kota atau titik yang kecil (40 sampai 60 kota). Terbagi menjadi dua proses, yaitu branching dan bounding. Di mana dalam branching suatu feasible region dipecah-pecah menjadi beberapa feasible subregion, kemudian dalam bounding, subregion-subregion yang feasible tersebut digabungkan kembali.

b. Algoritma Cutting Plane

Algoritma ini berdasarkan linear programming. Cara kerjanya adalah dengan menyelesaikan program linier non integer, kemudian diuji apakah nilai optimum yang didapat merupakan solusi integer. Jika tidak, maka non integer dihilangkan, tetapi tidakmenghilangkan integer

pada daerah feasible. Cara ini dilakukan terus-menerus sampai menemukan solusi integer optimal.

2. Nearest Neighbour

Algoritma ini tidak memerlukan banyak tenaga atau waktu dalam perhitungan dan dapat menghasilkan solusi yang cukup mendekati rute optimal, namun hanya bisa diandalkan untuk kasus tertentu saja. Untuk kasus yang umum metode ini seringkali menghasilkan rute tidak optimum.


(31)

3.3Algoritma Genetik

Algoritma Genetik (AG) banyak dipengaruhi oleh ilmu Biologi[9]. Sesuai dengan namanya, proses-proses yang terjadi dalam AGsama dengan apa yang terjadi pada evolusi biologi. Dalam biologi, sekumpulan individu yang sama, yang disebut spesies, hidup, bereproduksi, dan mati dalam suatu area, yang disebut populasi. Jika anggota-anggota populasi terpisah, misalkan karena terjadi banjir, gempa bumi atau bencana alam lainnya, maka individu-individu tersebut akan membentuk beberapa populasi yang terpisah. Dalam waktu yang cukup lama, mungkin saja akan terjadi proses pembentukan spesies baru. Dalam hal ini, terjadi perubahan hereditas secara bertahap yang membentuk ciri-ciri baru pada spesies tersebut. Perubahan bertahap secara bersamaan pada kedua spesies dikenal sebagai co-evolution.

Konsep yang penting disini adalah hereditas, yaitu sebuah ide yang menyatakan bahwa sifat-sifat individu dapat dikodekan dengan cara tertentu, sehingga sifat-sifattersebut dapat diturunkan kepada generasi berikutnya. Setiap individu dari suatu spesies membawa sebuah genome yang berisi beberapa kromosom dalam bentuk molekul-molekul DNA (Deoxyribo Nucleic Acid). Setiap kromosom berisi sejumlah gen, dimana unit-unit hereditas dan pengkodean informasi diperlukan untuk membangun dan menjaga suatu individu.

Setiap gen dibangun dari suatu urutan bases. Terdapat empat bases dalam kromosom yang dinyatakan sebagai A, C, G, dan T. Jadi, informasi disimpan dalam suatu pola digital, menggunakan keempat simbol tersebut. Selama perkembangan dan juga selama kehidupan suatu individu, DNA dibaca dengan suatu enzim yang disebut RNA (Ribo Nucleic Acid) polymerase. Proses ini dikenal sebagai transcription yang menghasilkan MesengerRNA(mRNA). Selanjutnya, protein dibentuk dalam suatu proses yang disebut translation menggunakan mRNA sebagai sebuah template.

Masing-masing gen dapat memiliki beberapa setting, yang dikenal dengan

allele. Selanjutnya, genome yang lengkap dari suatu individu dengan semua setting -nya disebut sebagai genotype. Suatu individu dengan semua sifat-sifatnya dikenal dengan istilah phenotype.


(32)

Konsep penting dalam teori evolusi adalah fitness dan selection untuk proses reproduksi. Pada proses evolusi di dunia nyata, terdapat dua cara reproduksi, yaitu reproduksi seksual dan aseksual. Pada reproduksi seksual, kromosom-kromosom dari dua individu (sebagai orang tua) dikombinasikan untuk menghasilkan individu baru. Artinya, kromosom pada individu baru berisi beberapa gen yang diambil dari orangtua pertama dan beberapa gen lainnya diambil dari orangtua kedua. Hal ini disebut dengan

crossover (pindah silang). Namun demikian, proses pengkopian gen orangtua ini tidak luput dari kesalahan. Kesalahan pengkopian gen ini dikenal dengan istilah mutation

(mutasi). Sedangkan pada reproduksi aseksual, hanya satu individu orangtua yang diperhatikan, sehingga tidak terjadi proses crossover. Tetapi, proses mutasi juga mungkin terjadi pada reproduksi aseksual.

Algoritma Genetik (AG) adalah teknik optimasi yang terkenal. Secara umum ada tiga golongan besar teknik optimasi, yang berbasis pada kalkulus, enumeratif dan pencarian acak terarah (guide random search). Seperti dapat dilihat pada Gambar 2.7 berikut ini.

Gambar 2.7 Diagram pengelompokan dalam teknik pencarian[11].

Sejak pertama kali dirintis oleh John Holland pada tahun 1960-an, Algoritma Genetik (AG) telah dipelajari, diteliti dan diaplikasikan secara kuat pada berbagai

TEKNIK PENCARIAN BERBASIS

KALKULUS

DIPANDU

BIL. ACAK ENUMERTIVE

LANGSUNG TIDAK

LANGSUNG SIMULATED ANNEALING ALGORITMA EVOLUSI DYNAMIC PROGRAMMING

FIBONACCI NEWTON

STRATEGI EVOLUSI PEMROGRAMAN EVOLUSIONER DINAMIKA EVOLUSIONER ALGORITMA GENETIK


(33)

bidang. AG sangat berguna dan efisien untuk masalah dengan karakteristik sebagai berikut:

a. Ruang masalah sangat besar, kompleks, dan sulit dipahami.

b. Kurang atau bahkan tidak ada pengetahuan yang memadai untuk merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit.

c. Tidak tersedianya analisis matematika yang memadai.

d. Ketika metode konvensional tidak mampu menyelesaikan masalah yang dihadapi.

e. Solusi yang diharapkan tidak harus paling optimal, tetapi cukup dapat diterima.

f. Terdapat batasan waktu, misalnya dalam real time system.

3.3.1 Pengertian Individu

Individu menyatakan salah satu solusi yang mungkin. Individu dapat dikatakan samadengan kromosom, yang merupakan kumpulan gen. Beberapa definisi penting yang perlu diperhatikan dalam membangun penyelesain masalah menggunakan Algoritma Genetik (AG), yakni:

1 Genotipe (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam AG, gen ini dapat berupa nilai biner, float, integer maupun karakter atau kombinatorial.

2 Allele, nilai dari gen.

3 Kromosom, gabungan gen yang membentuk nilai tertentu.

4 Individu, menyatakan suatu 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 siklus evolusi atau satu iterasi di dalam AG. 7 Phenotype, string (kromosom) yang merupakan solusi akhir.


(34)

Gambar 2.8 berikut ini menjelaskan hubungan dari istilah-istilah yang didefinisikan di atas.

Gambar 2.8 Ilustrasi definisi individu dalam algoritma genetik[11] 1

Allele

Gen Kromosom

Individu

1 Allele

Gen Kromosom

Individu

1 Allele

Gen Kromosom

Individu Populasi


(35)

3.3.2 Struktur Umum Algoritma Genetik

Algoritma Genetik (AG) memulai dengan suatu himpunan penyelesaian acak awal yang disebut populasi. Masing-masing individu di dalam populasi disebut kromosom yang merepresentasikan suatu penyelesaian terhadap masalah yang ditangani. Sebuah kromosom terdiri dari sebuah string yang terdiri dari berbagai simbol dan biasanya, tetapi tidak mutlak, string tersebut berupa sederetan bit-bit biner 0 dan 1.[2]

Sebuah kromosom tumbuh atau berkembang biak melalui berbagai iterasi yang berulang-ulang, yang disebut juga generasi. Pada masing-masing generasi, berbagai kromosom yang dihasilkan akan di evaluasi menggunakan suatu pengukuran fitness. Untuk menghasilkan suatu generasi yang baru, berbagai kromosom baru yang disebut

offspring, dibentuk dengan salah satu cara berikut:

1. Memadukan dua kromosom dari generasi terakhir mengunakan operator

crossover.

2. Memodifikasi sebuah kromosommenggunakan operator mutasi. Generasi yang baru dapat dihasilkan denan cara:

1. Penseleksian, berdasarkan nilai fitness, berbagai parent, dan offspring. 2. Menolak yang lainnya, untuk menjaga ukuran populasi agar tetap konstan.


(36)

Gambar 2.9 Struktur Umum Algoritma Genetik.[2]

3.3.3 Komponen- Komponen Algoritma Genetik

Secara umum sebuah penerapan Algoritma Genetik akan melalui siklus sederhana yang terdiri dari 4 langkah, yaitu:[5]

1 Membangun sebuah populasi yang terdiri dari beberapa string (kromosom). 2 Evaluasi Masing-masing string (fitness value).

3 Proses seleksi agar didapat string yang terbaik.

4 Manipulasi genetik untuk menciptakan populasi baru dari string.

Ilsutrasi mengenai siklus 4 langkah yang dinspirasi dari proses biologi untuk Algoritma Genetik di atas dapat dilihat pada Gambar 2.10.


(37)

Gambar 2.10 Siklus algoritma genetik[11]

Setiap siklus yang dilalui memunculkan generasi baru yang dimungkinkan sebagai solusi bagi permasalahan yang ada.

Pada dasarnya AlgoritmaGenetik memiliki tujuh komponen. Tetapi banyak metode yang bervariasi yang diusulkan pada masing-masing komponen tersebut. Masing-masing metode memiliki kelebihan dan kekurangan. Suatu metode yang bagus untuk penyelesaian masalah A belum tentu bagus untuk masalah B, atau bahkan tidak bisa digunakan untuk masalah C.

3.3.3.1Skema Pengkodean

Pengkodean suatu kromosom adalah langkah pertama ketika kita menggunakan Algoritma Genetik untuk menyelesaikan suatu masalah. Pengkodean ini biasanya tergantung kepada masalah yang dihadapi. Pengkodean ini meliputi pengkodean terhadap gen yang terdapat dalam kromosom.

Manipulasi

Reproduksi Rekombinasi

Induk Generasi Baru

POPULASI (Kumpulan kromosom)

SELEKSI (proses pengkawinan)

EVALUASI (fungsi fitness) OPERATOR

GENETIK Keturunan


(38)

Terdapat tiga skema yang paling umum digunakan dalam pengkodean, yaitu: 1. Binary encoding. Setiap gen hanya dapat bernilai 0 atau 1.[11]

Gambar 2.11 Skema pengkodean Binary Encoding[11]

2. Discrete decimal encoding. Setiap gen dapat bernilai salah satu bilangan bulat dalam interval [0,9]. [11]

Gambar 2.12 Skema pengkodean Discrete decimal encoding[11]

3. Real-number encoding. Pada skema ini, nilai gen berada dalam interval [0,R], di mana R adalah bilangan real positif dan biasanya R=1. [11]

Gambar 2.13 Skema pengkodean Real-number encoding[11]

4. Permutation Encoding, setiap kromosom merupakan string dari sejumlah angka atau nomor yang merepresentasikan suatu posisi dalam suatu urutan.[11]

Kromosom A 1 2 3 4 6 7 5 9 8 Kromosom B 2 4 6 7 8 9 1 5 3 X1

0,2390 1,0000 0,0131

X2 X3

g1 g2 g3

X1

2 3 9 9 9 9 0 1 3

X2 X3

g1 g2 g3 g4 g5 g6 g7 g8 g9

X1

0 1 0 1 1 1 0 0 0

X2 X3


(39)

Pada contoh Gambar 2.11, 2.12 dan 2.13 skema pengkodean di atas terdapat tiga variabel, yaitu x1, x2, x3 yang dikodekan ke dalam sebuah koromosom yang terdiri dari 9 gen (untuk binary encoding dan discrete decimal encoding) dimana setiap variabel dikodekan ke dalam 3 gen. Sedangkan pada real-number encoding ketiga variabeldikodekan ke dalam koromosom yang terdiri dari 3 gen, dimana masing-masing variabel dikodekan ke dalam 1 gen.

3.3.3.2Nilai Fitness

Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Di dalam evolusi alam, individu yang memiliki nilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Dalam masalah optimasi, jika masalah yang dicari adalah memaksimalkan sebuah fungsi h (dikenal sebagai masalah maksimasi) maka nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, yakni f = h (dimana f adalah nilai fitness). Tetapi jika masalah adalah meminimalkan fungsi h (masalah minimasi), maka fungsi h tidak dapat digunakan secara langsung. Hal ini disebabkan adanya aturan bahwa individu yang memiliki fitness tertinggi lebih mampu bertahan hidup pada generasi berikutnya. Oleh karena itu nilai fitness yang dapat digunakan adalah f = 1/h, yang artinya semakin kecil nilai h, semkin besar nilai f. Pada masalah-masalah tertentu h dapat bernilai 0, yang mengakibatkan f dapat bernilai tak hingga. Untuk mengatsinya, h perlu ditambah sebuah bilangan yang dianggap sangat kecil sehingga niali fitness-nya menjadi:

Dalam notasi matematika dituliskan sebagai berikut[11]:

(2.8)

Keterangan: f = fitness

h = fungsi


(40)

Di mana a adalah bilangan yang dianggap sangat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan.

Perbedaan nilai-nilai fitness yang terlalu kecil pada semua individu dalam populasi akan menyebabkan kencenderungan konvergen pada optimum lokal. Maka untuk menguranginya digunakan penskalaan nilai fitness. Prosedur ini juga akan mengurutkan nilai fitness secara ascending (menaik) dalam interval [fmin, fmax].[14]

(2.9)

Keterangan:

f(i) = fungsinilai fitness fmax = fitness maksimum fmin = fitness minimum R(i),I = iterasi ke-i N,n = ukuran populasi

3.3.3.3Seleksi Induk

Pemilihan dua buah kromosom sebagai induk, yang akan dipindahsilangkan, biasanya dilakukan secara proporsional sesuai dengan nilai fitness-nya.

Beberapa metode yang biasa digunakan:

1. Roulette-wheel Sesuai dengan namanya, metode ini menirukan permainan

roulette-wheel dimana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitness -nya. Kromosom yang memiliki nilai fitness lebih besar menempati potongan lingkaran yang lebih besar dibandingkan dengan kromosom yang bernilai

fitness rendah. Gambar 2.14 mengilustrasikan sebuah contoh penggunaan


(41)

Gambar 2.14 Contoh penggunaan metode Roulette-wheel

Pada proses roulette wheel ini akan dihitung nilai kumulatif dari probabilitas

fitness masing-masing kromosom.

P[i] = fitness[i] / jumlah fitness (2.10)

(2.11)

Keterangan:

P[i] = probabilitas fitness[i]

C[i] = nilai kumulatif indeks ke-i

i = indeks kromosom (1,2,3,…n) k = counter(1,2,3,…n)

Metode roullette-wheel sangat mudah diimplementasikan dalam pemrograman. Pertama, dibuat interval nilai kumulatif (dalam interval [0,1]) dari niali fitness masing-masing kromosom dibagi total nilai fitness dari semua kromosom. Sebuah kromosom akan terpilih jika bilangan random yang dibangkitkan berada pada interval nilai kumulatifnya. Pada Gambar 2.16 di atas, K1 menempati interval nilai kumulatif [0;0,25], K2 berada dalam interval [0,25;0,75], K3 dalam interval [0,75;0,875] dan K4 dalam interval [0,875;1].

Misalkan, jika bilangan random yang dibangkitkan adalah 0,6 maka kromosom K2 terpilih sebagai orang tua. Tetapi jika bilangan random yang dibangkitkan 0,99 maka kromosom K4 yang terpilih. Seperti dilihat pada Gambar 2.15.


(42)

Gambar 2.15 Ilustrasi prinsip kerja metode Roulette-wheel

2. Tournament

Pada seleksi alam yang terjadi di dunia nyata, beberapa individu (biasanya individu jantan) berkompetisi dalam sebuah kelompok kecil sampai tersisa hanya satu individu pemenang. Individu pemenang inilah yang bisa kawin (pindah silang). Metode roulette-wheel selection tidak mengkombinasikan masalah ini. Sebuah metode tournament selection mencoba mengadopsi karakteristik alami ini. Dalam bentuk paling sederhana, metode ini mengambil dua kromosom secara random dan kemudian menyeleksi salah satu yang bernilai fitness paling tinggi untuk menjadi orang tua pertama. Cara yang sama dilakukan lagi untuk mendapatkan orang tua yang kedua.

Metode tournament yang lebih rumit adalah dengan mengambil m

kromosom secara random. Kemudian kromosom bernilai fitness tertinggi dipilih menjadi orang tua pertama, apabila bilangan random yang dibangkitkan kurang dari suatu nilai batas yang ditentukan p dalam interval [0,1]. Pemilihan orang tua akan dilakukan secara random dari m - 1 koromosom yang ada jika bilangan yang dibangkitkan lebih dari atau sama dengan p. Pada tournament selection, variabel m adalah tournament size (ukuran grup) dan p adalah

tournament probability. Biasanya m diset sebagai suatu nilai yang sangat kecil, misal 4 atau 5. Sedangkan p biasanya diset sekitar 0,75.

Bilangan random=0,99 Bilangan random=0,6


(43)

3.3.3.4Proses Reproduksi (Probabilitas Reproduksi)

Proses reproduksi merupakan suatu proses untuk membentuk keturunan baru dengan mewariskan sifat-sifat yang sama dari kromosom induk. Proses reproduksi sebenarnya merupakan proses duplikasi dan tidak menghilangkan sifat kromosom induk yang lama. Hal ini dilakukan dalam proses algoritma genetika untuk menjaga sifat-sifat induk yang baik tidak akan hilang begitu saja.

Prosedur Reproduksi Prosedur ini akan menduplikasi ulang kromosom induk secara lengkap sehingga menghasilkan turunan baru yang sama dengan induknya.

3.3.3.5Pindah Silang (Crossover)

Salah satu komponen paling penting dalam Algoritma Genetik adalah crossover atau pindah silang. Sebuah kromosom yang mengarah pada solusi yang bagus bisa diperoleh dari proses memindah-silangkan dua buah kromosom. Contoh pindah silang:

Gambar 2.16 Contoh proses pindah silang[11]

Pada Gambar 2.16 contoh proses pindah silang di atas apabila solusi yang dicari adalah dan , maka koromosom Anak 1 memiliki nilai fitness

tinggi dan menuju pada solusi yang dicari.

g20 g11

g10 g1

g1 g10 g11 g20

X1

0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

X2

Titik potong Orang tua 1

Orang tua 2

Anak 1 Anak 2


(44)

Pindah silang bisa juga berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini digunakan suatu aturan bahwa pindah silang hanya bisa dilakukan dengan suatu probabilitas tertentu Probabilitas Crossover (Pc). Artinya, pindah silang bisa dilakukan hanya jika suatu bilangan random [0,1] yang dibangkitkan kurang dari Pc yang ditentukan. Pada umumnya Pc diset mendekati 1, misalnya 0,8.

Pindah silang bisa dilakukan dalam beberapa cara berbeda,yang paling sederhana adalah pindah silang satu titik potong (one-point crossover). Suatu titik potong dipilih secara random, kemudian bagian pertama dari orang tua 1 digabung dengan bagian kedua dari orang tua 2. Untuk kromosom yang sangat panjang, misalkan 1000 gen, mungkin saja diperlukan beberapa titik potong. Pindah silang lebih dari satu titik potong disebut n-point crossover, dimana n titik potong dipilih secara random dan bagian-bagian kromosom dipilih dengan probabilitas 0,5 dari salahsatu orang tuanya.[9]

3.3.3.6Mutasi

Prosedur mutasi sangatlah sederhana. Untuk semua gen yang ada, jika bilangan

random yang dibangkitkan kurang dari probabilitas mutasi (Pm)yang ditentukan maka ubah gen tersebut menjadi nilai kebalikannya (dalam binary encoding, 0 diubah 1, dan 1 diubah 0). Dalam swapping mutation dilakukan pertukaran tempat node. Biasanya

Pm diset sebagai 1/n, dimana n adalah jumlah gen dalam kromosom. Dengan Pm

sebesar ini berarti mutasi terjadi pada sekitar satu gen saja. Pada algoritma genetik sederhana nilai Pm tetap selama evolusi.

Beberapa skema mutasi yang biasa digunakan: 1. Mutasi biner, contoh : 11001001 => 10001001


(45)

3.3.3.7Elitisme

Karena seleksi dilakukan secara random, maka tidak ada jaminan bahwa suatu individu bernilai fitness tertinggi akan selalu terpilih. Kalaupun individu bernilai

fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitness-nya menurun) karena proses pindah silang. Untuk menjaga agar individu bernilai fitness

tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau beberapa kopinya. Prosedur ini dikenal sebagai elitisme.

3.3.3.8Pergantian Populasi

Dalam Algoritma Genetik dikenal skema penggantian populasi yang disebut

generational replacement, yang berarti semua individu (misal N individu dalam suatu populasi) dari suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang dan mutasi. Skema penggantian ini tidak realistis dari sudut pandang biologi. Di dunia nyata, individu-individu dari generasi berbeda bisa berada pada waktu yang bersamaan. Fakta lainnya adalah individu-individu muncul dan hilang secara konstan, tidak pada generasi tertentu. Secara umum skema pergantian populasi dapat dirumuskan berdasarkan suatu ukuran yang disebut generational gap G. Ukuran ini meunjukan persentase populasi yang digantikan dalam setiap generasi. Pada skema

generational replacement, G = 1.

Skema pergantian yang paling ekstrem adalah hanya mengganti satu individu dalam setiap generasi, yaitu G = 1/N, dimana N adalah jumlah individu dalam populasi. Skema pergantian ini disebut sebagai Steady-state reproduction. Pada skema tersebut, G biasanya sama dengan 1/N atau 2/N. Dalam setiap generasi, sejumlah NG

individu harus dihapus untuk menjaga ukuran populasi tetap N. Terdapat beberapa prosedur penghapusan individu, yaitu penghapusan individu yang bernilai fitness

paling rendah atau penghapusan individu yang paling tua. Penghapusan bisa berlaku hanya pada individu orang tua saja atau bisa juga berlaku pada semua individu dalam populasi.[9]


(46)

3.3.4 Cara Kerja Algoritma Genetik

Secara garis besar, proses Algoritma Genetik adalah sebagai berikut: Choose initial population

Repeat

Evaluate the individual fitnesses of a certain proportion of the population Select pairs of best-ranking individuals to reproduce

Apply crossover operator Apply mutation operator Until terminating condition

Penjelasan tahapan algoritma genetik:

1. Tahap Inisialisasi, kromosom digenerasi secara random. Penting untuk dibuat sebarannya acak agar bisa menghasilkan solusi yang baik.

2. Tahap Evaluasi tiap-tiap kromosom diurutkan sesuai seberapa baik kromosom itu menyelesaikan masalah. Suatu nilai fitness diberikan untuk tiap kromosom.

3. Tahap Seleksi, kromosom yang paling fit dipilih untuk propagasi generasi berikutnya sesuai dengan seberapa fit mereka.

4. Tahap Rekombinasi, individu kromosom dan sepasang kromosom direkombinasi dan dimodifikasi, kemudian dikembalikan ke dalam populasi.

Selanjutnya, tiap kromosom di encode sebagai tour yang mungkin. Kemudian dilakukan operasi crossover/persilangan dan roulette wheel selection. Tetapi

crossover sederhana tidak dapat langsung dilakukan. Sebagai contoh, dapat diperhatikan pad Tabel 2.1 berikut ini.

Tabel 2.1 Tur Parent Dengan Childnya

ID PATH

Parent 1 1 2 3 4 5 Parent 2 3 5 2 1 4 Child 1 1 2 3 1 4 Child 2 3 5 2 4 5


(47)

Pada child 1 kota 1 dikunjungi 2 kali dan kota 5 tidak pernah 1 kali pun dikunjungi. Sedangkan pada child 2, kota 5 dikunjungi 2 kali dan kota 1 tidak pernah dikunjungi sama sekali. Karena itu diperlukan suatu metode crossover, biasanya menggunakan partially matched crossover.

Menurut Buckland , tehnik partially matched crossover dijelaskan sebagai berikut[11].

Daerah crossing dipilih Parent 1: 12x34x5 Parent 2: 35x21x4

Mapping berikut ditentukan 3 -> 2

4 -> 1

Lalu kembali ke gen parent , dan gen diganti sesuai mapping gen di atas. Iterasi pertama (tukar 3 dengan 2) :

Child 1: 13245 Child 2: 25314

Iterasi kedua (tukar 4 dengan 1) : Child 1: 43215

Child 2: 25341

Gen terakhir yang telah di crossover merupakan permutasi valid tanpa duplikasi. Roulette Wheel Selection merupakan teknik memilih anggota populasi dari kromosom sesuai dengan kebugaran/fitnessnya.

3.3.5 Traveling Salesman Problem dalam Algoritma Genetik

Traveling Saalesman Problem (TSP) dapat dirumuskan sebagai berikut: terdapat sekumpulan N node dengan posisi-posisi koordinatnya {x,y}, i = 1,2,3,…,N.

Algoritma Genetik dapat digunakan untuk menyelesaikan masalah TSP ini dengan cara sebagai berikut:


(48)

Suatu solusi direpresentasikan ke dalam suatu koromosom yang berisi nomor urut dari semua node yang ada. Masing-masing nomor urut node hanya boleh muncul satu kali di dalam koromosom sehingga satu koromosom merepresentasikan satu ruteatau satu solusi yang valid. Representasi ini disebut sebagai permutation encoding, dimana suatu kromosom merepresentasikan suatu permutasi dari nomor urut kota 1,2,3, …,N.

Kromosom-koromosom tersebut diperiksa nilai fitness-nya Kromosom yang nilai fitness-nya paling tinggi akan dipilih untuk terus hidup pada generasi berikutnya dan berpeluang melakukan crossover untuk menghasilkan kromosom atau individu baru yang diharapkan mempunyai nilai fitness yang lebih baik. Dengan adanya mutasi diharapkan dapat memperbaiki kromosom yang sudah ada.

Individu-individu pada generasi-generasi berikutnya diharapkan akan memiliki nilai fitness yang lebih baik dan mengarah pada suatu solusi yang diharapkan. Solusi yang diambil adalah solusi pada individu atau kromosom yang paling besar nilai fitness-nya.

Dalam TSP, pindah silang dapat diimplementasikan dengan skema order crossover. Pada skema ini satu bagian koromosom dipertukarkan dengan tetap menjaga urutan node (gen) yang bukan bagian dari koromosom tersebut. Di bawah ini adalah ilustrasi skema order crossover:

Gambar 2.17 Pindah silang menggunakan order crossover[11]

2 1 5 3 4 6 4 2 6 5 1 3

6 5 1 5 3 4 2 3 6 5 1 4 2 6 5 3 4 1

(a)

(b)

(c) A2

A1 A2 A1 K2 K1


(49)

Mula-mula dua buah titik potong TP1 dan TP2, dibangkitkan secara random

untuk memotong dua buah kromosom induk (orang tua), K1 dan K2 (Gambar 2.17.a). Kemudian dua koromosom anak, A1 dan A2 mendapat gen-gen dari

bagian koromosom K1 dan K2 secara menyilang. Koromosom A1 mendapatkan {6, 5, 1} dan A2 mendapatkan {5, 3, 4} (Gambar 2.17.b). Posisi gen yang masih kosong pada A1 diisi dengan gen-gen dari K1, secara berurutan dari gen 1 sampai gen 6, yang belum ada pada A1. Hal yang sama juga dilakukan untuk koromosom A2 (Gambar 2.17.c).

Pada TSP, operator mutasi biasanya diimplementasikan dengan menunkan gen termutasi dengan gen lain yang terpilih secara random. Misalnya, kromosom {2, 3, 4, 5, 6, 1} dapat termutasi menjadi koromosom {2, 6, 4, 5,3,1}. Dalam hal ini gen 3 dan 6 saling ditukar. Skema mutasi ini dikenal dengan swapping mutation.


(50)

BAB 3

ANALISIS DAN PERANCANGAN

Analisis pada suatu aplikasi dapat didefinisikan sebagai penguraian suatu aplikasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, hambatan- hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.

Dalam proses pembuatan suatu aplikasi mutlak dilakukan penelitian dan penganalisaan tentang aplikasi yang akan dibangun, berikut adalah beberapa analisis yang dilakukan untuk merancang aplikasi Traveling Salesman Problem dengan menggunakan algoritma Genetik.

6.1 Analisis Sistem

Analisis sistem merupakan tahapan terpenting dalam pembangunan atau perancangan suatu sistem karena pada tahapan ini bertujuan untuk menjelaskan tujuan pembangunan sistem dan kebutuhan sistem secara menyeluruh sehingga tugas-tugas yang akan dikerjakan oleh sistem tersebut dapat dijelaskan secara detail dan terperinci. Analisis sistem sangat membantu proses pemodelan sistem yang akan dirancang dan implementasi aplikasi dalam bentuk nyata.

6.1.1 Analisis Masalah (Problem Analysis)

Masalah TSP merupakan masalah klasik. Sejak 1930 sampai sekarang sudah berkembang banyak metode untuk menyelesaikan masalah tersebut. Dari banyak


(51)

metode, metode heuristic dianggap paling baik. Walaupun belum tentu menghasilkan path yang paling minimum, metode cukup cepat dan tidak membutuhkan jumlah perhitungan yang banyak.

Dalam dunia ilmu komputer seringkali pertanyaannya bukan bagaimana mencari penyelesaian suatu masalah, tetapi bagaimana menyelesaikannya secara baik. Seiring dengan berkembangnya metode-metode heuristic, bermunculan banyak

metode untuk menyelesaikan masalah TSP. Kata “lebih baik” disini memiliki

bermacam-macam arti. Lebih baik berarti lebih cepat, lebih efisien, lebih minimum hasilnya, atau lebih mudah diimplementasikan.

Permasalahan yang terjadi pada sistem digambarkan pada iskhikawa diagram seperti pada Gambar 3.1.

Gambar 3.1 Iskhikawa Diagram

Berdasarkan Gambar 3.1, diagram Ishikawa berbentuk fishbone yang menunjukkan faktor User, Machine, Method dan Material. Itu semua merupakan masalah yang mempengaruhi keseluruhan. Panah kecil menghubungkan sub-penyebab penyebab utama. Implementasi Algoritma Genetik pada TSP Aplikasi TSP - C sharp Memerlukan proses digitasi, pemodelan dan perancangan Penentuan Generasi Metode Seleksi Penentuan Populasi Penentuan pc,px Ingin cepat Ingin efisien Machine Method User Data Aplikasi Traveling Salesman Problem (TSP) dengan Algoritma Genetik


(52)

6.1.2 Analisis Kebutuhan (Requirement Analysis)

Dalam suatu sistem, analisis kebutuhan dapat dikelompokkan menjadi 2 bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

6.1.2.1Analisis Kebutuhan Fungsional

Kebutuhan fungsional adalah fungsi-fungsi utama yang harus ada pada sistem yang akan dibangun. Kebutuhan fungsional yang harus ada pada sistem Traveling Salesman Problem dengan Algoritma Genetik adalah sebagai berikut:

1. Sistem harus mampu melatih atau melakukan pelatihan (training) terhadap setiap pola yang ada pada sistem sesuai dengan target yang telah ditentukan. 2. Sistem harus mampu menguji pola yang telah dilatih sebelumnya dengan

menggunakan bobot yang didapatkan dari hasil pelatihan (training) dan memberikan hasil sesuai dengan target yang diinginkan.

3. Sistem harus mampu menguji pola baru yang belum pernah dilatih oleh sistem dan memberikan hasil sesuai dengan target pada sistem.

6.1.2.2Analisis Kebutuhan Non-Fungsional

Kebutuhan non-fungsional sistem meliputi beberapa hal sebagai berikut: 1. Performance (tampilan)

Sistem harus mampu melaksanakan tugasnya dengan baik tanpa menggantu tugas-tugas utama yang harus dilakukan oleh sistem, seperti pelatihan dan pengujian pola.

2. Information (penyimpanan data)

Sistem harus mampu menyediakan informasi tentang data-data yang akan digunakan pada sistem, seperti koordinat SKPD.

3. Economic (ekonomi)

Sistem harus mampu bekerja dengan baik tanpa mengeluarkan tambahan biaya untuk penambahan perangkat keras maupun perangkat lunak.


(53)

4. Control (pengontrolan sistem)

Sistem yang telah dibangun harus tetap dikontrol setelah selesai dibangun agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan keinginan pengguna.

5. Eficiency (efisiensi)

Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut.

6. Service (pelayanan sistem)

Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut.

6.1.3 Pemodelan Sistem

Pemodelan Sistem (modeling system) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk menentukan, visualisasi, merancang dan mendokumentasikan model dari suatu sistem. Pemodelan pada aplikasi Traveling Salesman Problem ini menggunakan diagram grafis UML seperti

use case diagram, activity diagram, sequence diagram.

6.1.3.1 Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, kebutuhan sistem dari sudut pandang user, dan hubungan antara use case dengan

actor. Pada diagram use case di bawah ini, ada satu actor yang berperan, yaitu user. User melakukan pengujian pada file xml yang telah terdapat pada sistem. Gambar 3.2 berikut ini adalah gambar diagram use case dari sistem yang akan dibangun.


(54)

Gambar 3.2 Use Case Diagram

6.1.3.1.1 Use Case Penentuan Rute Terpendek dengan Algoritma Genetik

Use case Penentuan rute terpendek dengan Algoritma Genetik merupakan use case

yang akan menjelaskan proses ketika pengguna menentukan ukuran populasi, metode seleksi, nilai probabilitas crossover dan generasi Algoritma Genetik.

Tabel 3.1 Dokumentasi naratif Use Case Penentuan rute terpendek dengan Algoritma Genetik

Nama use case Penentuan rute terpendek dengan Algoritma Genetik

Actor Pengguna

Deskripsi Use case ini mendeskripsikan proses penentuan Rute

Terpendek dengan Algoritma Genetik

Prakondisi Sudah masuk ke tampilan aplikasi Algortima Genetik

Bidang khas suatu kejadian Kegiatan Pengguna Respon Sistem

1. Masukkan ukuran

populasi

1. Sistem Membatasi ukuran populasi

(50-<<extends>>

<<extends>>

<<extends>>

<<extends>> Sistem

Penentuan rute terpendek dengan Algoritma Genetik Pengguna

Populasi

Metode Seleksi

Probabilitas


(55)

2. Pilih metode seleksi

3. Masukkan Nilai Probabilitas Crossover

dan Probabilitas Mutasi

4. Tentukan nilai generasi

5000)

2. Sistem akan

menampilkan Pilihan Metode Seleksi

3. Sistem Membatasi ukuran Probabilitas

Crossover dan

Probabilitas Mutasi (0-1)

4. Sistem akan

menampilkan lintasan terpendek dan grafik

fitness

Pasca kondisi Algoritma Genetik dengan Traveling Salesman Problem

selesai ditentukan

Activity diagram untuk use case Penentuan rute terpendek dengan Algoritma Genetik dapat dilihat pada Gambar 3.3.

Pengguna Sistem

Gambar 3.3 Activity Diagram Penentuan rute terpendek dengan Algoritma Genetik

Masukkan Ukuran Populasi

Ukuran Populasi (50-5000)

Pilih Metode Seleksi

Tampilkan Pilihan Metode Seleksi

Tampilkan status proses penentuan Parameter

Algoritma Genetik Masukkan Nilai

Probabilitas Crossover

dan Probabilitas Mutasi

Ukuran Probabilitas

Crossover dan Probabilitas Mutasi (0-1) Masukkan Nilai Generasi

Ukuran Generasi (50-5000)


(56)

6.1.3.2 Sequence Diagram

Sequence diagram menjelaskan interaksi obyek yang disusun dalam suatu urutan tertentu. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case.

Gambar 3.4 Sequence Diagram

6.2Perancangan Sistem

Pada bagian perancangan ini akan dipaparkan mengenai bagaimana mencari solusi pada persoalan pencarian rute terpendek dari n buah node dengan menggunakan algoritma genetik (AG). Dari mulai penentuan komponen sampai dengan tahapan-tahapan penyelesaiannya

6.2.1 Penyelesaian TSP Kurva Terbuka Menggunakan Genetik

Proses Algoritma Genetik

5: Grafik fitness dan Lintasan Terpendek

Tampil Pilihan Metode

4: Probabilitas

crossover dan Mutasi (0-1)

Proses Pilih Metode

3: Roulette wheel selection 2: Populasi

(50-5000) 1. Koordinat x,y

: User

Populasi Metode

Seleksi Probabilitas Penentuan Koordinat

SKPD

Panjang Lintasan


(57)

Pencarian solusi pada TSP dengan menggunakan AG terdiri dari beberapa tahapan, metode dan komponen. Berikut ini adalah flowchart dan pseudo-code AG untuk mencari solusi pada persoalan TSP.

Gambar 3.5 Flowchart Algoritma Genetik

Tidak Ya

Ge

ne

ra

si bar

u

Mulai

Koordinat

node, JumGen, PopSize, MaxG Inisialisasi Nilai

awal (Pc, Pm)

Populasi awal

Evaluasi individu (fitness)

Elitisme

Linear Fitness Rangking

Seleksi induk Proses Kawin

silang (crossover)

Maksimum Regenerasi

?


(58)

Gambar 3.6 Pseudo-code Algoritma Genetik

Flowchart di atas merupakan program utama, dimana input yang diperlukan adalah koordinat semua node XYnode, banyaknya node (gen) dalam setiap kromosom

JumGen, ukuran populasi PopSize dan jumlah generasi MaxG. Program utama ini terdiri dari beberapa subrutin yang secara terperinci dijelaskan di bawah ini:

6.2.2 Flowchart Inisialisasi Populasi

Tahapan pertama dalam AG adalah inisialisasi populasi yakni melakukan penentuan nilai awal. Bagian penentuan nilai awal ini merupakan input yang dilakukan oleh pengguna sendiri. Input-input yang diperlukan dalam AG pada tugas akhir ini meliputi:

1. Penentuan banyaknya node dalam setiap kromosom (JumGen) 2. Penentuan besar populasi dalam satu generasi (PopSize). 3. Penentuan banyak generasi yang akan dilakukan (MaxG).

4. Penentuan besar crossover probability, Pc (peluang terjadinya pindah silang).

5. Penentuan besar mutation probability, Pm (peluang terjadinya mutasi).. 6. Node awal (X,Y).

Inisialisasi populasi awal, N kromosom Loop untuk N generasi

Loop untuk N kromosom Evaluasi kromosom End

Elitisme

Linear fitness ranking

Loop sampai didapat N kromosom baru Seleksi kromosom

Pindah Silang End

Mutasi

Pergantian generasi End


(59)

Setelah melakukan inisialisasi, proses berikutnya adalah proses pembentukan populasi awal. Proses ini berfungsi untuk membentuk sebuah populasi generasi pertama. Pembentukan populasi generasi pertama ini dilakukan dengan cara mengisi kromosom-kromosom yang ada secara random (acak) dari semua titik yang ada.

Tahap pertama pada inisiliasasi populasi ini adalah pengkodean kromosom. Teknik pengkodean yang dipakai adalah Permutation Encoding. Dimana setiap kromosom merupakan string dari sejumlah angka (nomor) yang merepresentasikan suatu posisi dalam suatu urutan.

Gambar 3.7 berikut ini adalah algoritma program dari prosedur inisialisasi populasi:

Gambar 3.7 Flowchart inisialisasi populasi

Tidak Ya

Mulai JumGen,

PopSize Bangkitkan matriks 1 x

JumGen Urutkan nilai matrix

ascending

Simpan index Populasi ind

N kromosom >= PopSize ?

Selesai Populasi


(1)

/// Class implements calculation of best solution agains Test data /// </summary>

public partial class PreditionPanel : UserControl {

#region CTor and Fields private LineItem gpDataLine; private LineItem gpModelLine; private float prevFitnesss = -1; private double[][] _trainig; public double[][] Training {

get {

return _trainig; }

}

/// <summary> /// CTOR

/// </summary>

public PreditionPanel() {

InitializeComponent();

//this.Load+=(x,y)=> //{

//};

zedModel.GraphPane.Title.Text = "GP Model Prediction"; zedModel.GraphPane.XAxis.Title.Text = "Samples";

zedModel.GraphPane.YAxis.Title.Text = "Output";

gpDataLine = zedModel.GraphPane.AddCurve("Data Points", null, null, Color.Red, ZedGraph.SymbolType.Plus);

gpDataLine.Symbol.Border = new Border(Color.Green, 0.1f);

this.zedModel.GraphPane.AxisChange(this.CreateGraphics());

gpModelLine = zedModel.GraphPane.AddCurve("GP Model", null, null, Color.Blue, ZedGraph.SymbolType.Plus);

gpModelLine.Symbol.Border = new Border(Color.Cyan, 0.1f);

this.zedModel.GraphPane.AxisChange(this.CreateGraphics()); }

#endregion

#region Private Methods /// <summary>

/// SHow 2D data in grid /// </summary>

/// <param name="data"></param>

private void FillGridWithData(double[][] data) {

//persist the data _trainig = data;

//clear the list first listView1.Clear();


(2)

listView1.HideSelection = false; int numCol = data[0].Length + 2; int numRow = data.Length;

ColumnHeader colHeader = new ColumnHeader(); colHeader.Text = "Pos";

colHeader.Width = 100;

listView1.Columns.Add(colHeader); for (int i = 0; i < numCol; i++) {

colHeader = new ColumnHeader(); if (i + 1 == numCol)

colHeader.Text = "R"; else if (i + 2 == numCol) colHeader.Text = "Ygp"; else if (i + 3 == numCol) colHeader.Text = "Y"; else

colHeader.Text = "X" + (i + 1).ToString(); colHeader.Width = 100;

listView1.Columns.Add(colHeader); }

for (int j = 0; j < numRow; j++) {

ListViewItem LVI = listView1.Items.Add((j + 1).ToString());

for (int i = 0; i < numCol; i++) {

if (i + 1 == numCol)//Ygp LVI.SubItems.Add("-"); else if (i + 2 == numCol)//Ygp LVI.SubItems.Add("-"); else

LVI.SubItems.Add(data[j][i].ToString()); }

} }

#endregion

#region Public Methods /// <summary>

/// Update chartz and grid with prediction data /// </summary>

/// <param name="data"></param>

public void FillPredictionData(double[][]data) {

UpdateChartDataPoint(GetOutputValues(data), false); FillGridWithData(data);

}

/// <summary>

/// Returns array of output values /// </summary>


(3)

/// <returns></returns>

public double[] GetOutputValues(double[][] data) {

double[] output = new double[data.Length]; int outputIndex = data[0].Length - 1; for (int i = 0; i < data.Length; i++) {

output[i] = data[i][outputIndex]; }

return output; }

/// <summary>

/// Proces of updating chart with new data /// </summary>

/// <param name="y"></param>

/// <param name="isGPData"></param>

public void UpdateChartDataPoint(double[] y, bool isGPData) {

if (this.zedModel.GraphPane == null) return;

LineItem li = null; if (isGPData)

li = gpModelLine; else

li = gpDataLine; li.Clear();

for (int i = 0; i < y.Length; i++) li.AddPoint(i + 1, y[i]);

this.zedModel.GraphPane.AxisChange(this.CreateGraphics()); this.zedModel.Refresh();

}

/// <summary>

/// Update grid with new data /// </summary>

/// <param name="y"></param>

public void FillGPPredictionResult(double[] y) {

for (int i = 0; i < listView1.Items.Count; i++) {

var row = listView1.Items[i]; //

double Ygp=y[i];

row.SubItems[row.SubItems.Count - 2].Text = Math.Round(Ygp, 5).ToString();

float Ydata = 0;

if (float.TryParse(row.SubItems[row.SubItems.Count - 3].Text, out Ydata))

{

row.SubItems[row.SubItems.Count - 1].Text = Math.Round(Ydata - Ygp,5).ToString();

} else


(4)

} }

/// <summary>

/// Report progress for every evolution /// </summary>

/// <param name="currentEvolution"></param> /// <param name="AverageFitness"></param> /// <param name="ch"></param>

/// <param name="reportType"></param>

public void ReportProgress(int currentEvolution, float AverageFitness, Engine.GPChromosome ch, int reportType)

{

if (prevFitnesss < ch.Fitness) {

prevFitnesss = ch.Fitness; var

retVal=Genetik.Core.Globals.CalculateGPModel(ch.expressionTree, false);

FillGPPredictionResult(retVal); UpdateChartDataPoint(retVal, true); }

}

/// <summary>

/// Resets previous solution /// </summary>

public void ResetSolution() {

prevFitnesss = -1; }

#endregion

} }

5. Form Tentang

using System;

using System.Reflection; using System.Windows.Forms; using System.Drawing;

namespace Genetik.App {

partial class Tentang : Form {

public Tentang() {

InitializeComponent(); this.Text = "Tentang";

this.labelNama.Text = "RAJO PANANGIAN HARAHAP"; this.labelNIM.Text = "111421045";

this.labelProdi.Text = "EKSTENSI S1 ILMU KOMPUTER"; this.labelFakultas.Text = "UNIVERSITAS SUMATERA UTARA";


(5)

this.Icon =

Utility.LoadIconFromName("Genetik.App.Resources. Genetik_ico48.ico");

this.Load += new EventHandler(AboutGenetik_Load); }

void AboutGenetik_Load(object sender, EventArgs e) {

this.logoPictureBox.Image =

Utility.LoadImageFromName("Genetik.App.Resources.gpabout.png"); }

} }


(6)

CURRICULUM VITAE

Nama

: RAJO PANANGIAN HARAHAP

Alamat Sekarang

: JALAN BAJAK II, VILLA KELAPA GADING MAS NO 9F

KEL. HARJOSARI II, KEC. MEDAN AMPLAS,

KOTA MEDAN

Alamat Orang Tua : JALAN BAJAK II, VILLA KELAPA GADING MAS NO 9F

KEL. HARJOSARI II, KEC. MEDAN AMPLAS,

KOTA MEDAN

Telp/ HP

: 0813 7662 2209

Email

: rajopanangian@outlook.com

Riwayat Pendidikan:

1996

1997 TK AL-WASHLIYAH KOTA PEMATANG SIANTAR

1997

2002 SEKOLAH DASAR NEGERI 016 TANJUNG PINANG

2002

2005 SEKOLAH MENENGAH PERTAMA NEGERI 2 KUTA SELATAN

2005

2008 SEKOLAH MENENGAH ATAS NEGERI 2 P. SIANTAR

2008

2011 D-III TEKNIK INFORMATIKA UNIVERSITAS SUMATERA

UTARA

Keahlian/kursus yang diikuti:

Keahlian Bahasa Pemrograman:

-

BERBASIS WEB: PHP, HTML DAN CSS

-

BERBASIS IDE: C#, VISUAL BASIC 6.0, VISUAL BASIC .NET

-

DATABASE: MSSQL DAN MySQL

-

FRAMEWORK PHP: CAKE PHP

Kursus: