• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2016

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

Copied!
106
0
0

Teks penuh

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

(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

(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.

(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.

(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.

(9)

DAFTAR ISI

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

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

(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

(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

(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.

(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.

(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.

(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 point crossover.[4]

(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

(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

(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

(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

(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

(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.

(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

(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

(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

(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

(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.

(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

(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

(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.

(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

(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:

(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].

(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.

(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.

(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.

(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

(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

(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]

(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).

(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)

(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

(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)

(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

(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

(55)

2. Pilih metode seleksi

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

(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

(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

(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 ?

(60)

Pada subrutin inisialisasi populasi ini memerlukan input JumGen dan PopSize, dengan membangkitkan matriks 1 x JumGen secara random, kemudian mengurutkan nilai-nilai matriks secara menaik (ascending), indeks dari setiap nilai pada matriks tersebut kemudian disimpan pada sebuah variabel Ind. Indeks-indeks ini merepresentasikan nomor urut gen atau node pada sebuah kromosom. Nilai yang ada pada variabel Ind ini kemudian dikopi ke variabel Populasi. Pembangkitan, pengurutan dan penyimpanan indeks-indeks ini dilakukan sebanyak PopSize.

Pada proses inisialisasi populasi ini akan menghasilkan sejumlah kromosom sebanyak PopSize yang terdiri dari beberapa node. Hasil akhir dari prosedur inisialisasi populasi ini adalah urutan node-node dalam setiap kromosom yang mereprsentasikan kemungkinan jalur yang akan terpilih sebagai solusi yang layak (feasible solution) dari persoalan.

Hasil dari proses inisialisasi ini merupakan generasi pertama yang akan diuji nilai fitness setiap kromosomnya pada tahap berikutnya.

6.2.3 Flowchart Evaluasi Individu

Tahap kedua dari AG adalah evaluasi individu, dimana proses ini akan menghitung nilai fitness dari setiap kromosom yang telah dibangkitkan secara random pada tahap inisialisasi populasi di atas.

Nilai fitness dari setiap koromosom dihitung berdasarkan panjang jalur linier yang dihasilkan dari jumlah jarak keseluruhan dari urutan node-node yang dilalui.

(61)

Gambar 3.8 berikut ini adalah algoritma program dari prosedur evaluasi individu:

Gambar 3.8 Flowchart evaluasi individu

Pada tahap ini koordinat node XYnode, Populasi dan jumlah node JumGen merupakan input. Mula-mula hitung jarak antara node asal XYst dengan node pertama simpan hasilnya pada variabel TJ (total jarak), kemudian jumlahkan dengan jarak-jarak dari setiap node berikutnya yang dilalui yakni sebanyak JumGen. Setelah itu jumlahkan dengan jarak dari node terakhir ke node tujuan XYend. Total jarak disimpan pada variabel TJ.

Tidak

Ya Jarak node ke-n-1 dgn node ke-n

Mulai

Koordinat node, kromosom (populasi), JumGen TJ Jarak XYst dengan node

ke-1

TJ TJ + jarak antar node ke-i dengan node ke –i+1

TJ TJ + jarak antar node ke-n dgke-n ke-node tujuake-n XYeke-nd

Fitness 1/TJ

(62)

Setelah didapat total jarak atau panjang jalur satu kromosom, yang terakhir menghitung nilai fitness-nya. Hasilnya disimpan pada variabel Fitness yang merupakan argumen output fungsi seperti halnya Populasi di atas. nilai fitness ini merupakan input bagi proses berikutnya pada program utama.

Pada program utama, tahap evaluasi individu ini dilakukan (di looping) sebanyak PopSize. Sehingga didapat nilai fitness dari semua kromosom dalam satu populasi. Nilai fitness suatu kromosom ini kemudian akan dibandingkan dengan fitness-fitness kromosom yang lainnya yang ada pada semua generasi. Dimana nilai fitness paling tinggi yang akan terpilih.

6.2.4 Flowchart Elitisme

Input pada prosedur ini adalah Populasi, indeks kromosom terbaik dan ukuran populasi PopSize. Apabila PopSize bernilai genap, maka variabel IterasiMulai diberi nilai 3 dan kromosom terbaik akan dikopi sebanyak 2 kali yang masing-masing disimpan pada variabel TempPopulasi. Namun jika PopSize bernilai ganjil maka variabel IterasiMulai diberi nilai 2 dan kromosom terbaik dikopi sebanyak 1 kali yag disimpan pada variabel TempPopulasi. Aturan pengkopian ini dilakukan megingat akan dilakukannya perkawinan silang antara dua induk (sepasang) dan nilai variabel IterasiMulai akan digunakan sebagai nilai awal counter atau iterasi pada proses pindah silang dan mutasi.

(63)

Gambar 3.9 berikut ini adalah algoritma program dari prosedur elitisme:

Gambar 3.9 Flowchart elitisme

6.2.5 Flowchart Penskalaan Nilai Fitness (Linear Fitness Ranking)

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.

(64)

Gambar 3.10 Flowchart linear fitness ranking

Tidak

Mulai

PopSize, Fitness, Fitness Max (MaxF), Fitness Minimum (MinF) Urutkan ascending nilai

Fitness

SF Fitness terurut IndF indeks fitness (no urut

kromosom)

Mulai Ya

SF Fitness terurut IndF indeks fitness (no urut

kromosom) LRF(IndF(PopSize-rr+1))

MaxF-(MaxF-MinF) X

((rr-1)/(PopSize-1)

Iterasi i > PopSize ?

LFR fitness-fitness hasil

Gambar

Gambar 2.7 Diagram pengelompokan dalam teknik pencarian[11].
Gambar 2.8 Ilustrasi definisi individu dalam algoritma genetik[11]
Gambar 2.9 Struktur Umum Algoritma Genetik.[2]
Gambar 2.10 Siklus algoritma genetik[11]
+7

Referensi

Dokumen terkait

Berdasarkan tanggapan responden terhadap pernyataan kegunaan, nasabah tampak bahwa KG1 memilki nilai mean yang rendah artinya layanan mobile banking Bank BCA Syariah

Kedua , Walaupun partai politik mempunyai peran yang positif akan tetapi masyarakat dalam menentukan pilihannya lebih memilih pasangan calon bupati yang mempunyai

Melihat besarnya dampak stigma masyarakat tentang infertilitas yang dialami pasangan infertil, terutama pada wanita infertil, maka peneliti tertarik untuk melakukan

Kualitas pelayanan juga diartikan sebagai sesuatu yang berhubungan atau kebutuhan pelanggan, dimana pelayanan berkaualitas apabila dapat menyediakan produk dan

Berdasarkan penjelasan tersebut dapat disimpulkan minat adalah suatu ketertarikan dari dalam diri seseorang yang menimbulkan dorongan untuk memiliki dan apabila terpenuhi

sebagai enhancer gel aminofilin yang optimum adalah pada formula dengan konsentrasi propilen.. glikol

Manfaat rawat inap akan dipulihkan apabila perawatan oleh penyakit yang sama terjadi dalam jangka waktu LEBIH 30 hari dari tanggal

Berdasarkan hasil yang diperoleh selama penelitian, kandungan gas dengan menggunakan kromatografi gas didapatkan bahwa pada minyak jarak nilai fault gas yang