• Tidak ada hasil yang ditemukan

IMPLEMENTASI ALGORITMA GENETIKA DAN ALGORITMA SIMULATED ANNEALING DALAM STUDY KASUS MENENTUKAN RUTE TERPENDEK.

N/A
N/A
Protected

Academic year: 2017

Membagikan "IMPLEMENTASI ALGORITMA GENETIKA DAN ALGORITMA SIMULATED ANNEALING DALAM STUDY KASUS MENENTUKAN RUTE TERPENDEK."

Copied!
92
0
0

Teks penuh

(1)

KASUS MENENTUKAN RUTE TERPENDEK

SKRIPSI

Diajukan Untuk Memenuhi Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

RINO DWI PRADIKA 0734010133

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” J AWA TIMUR

(2)

IMPLEMENTASI ALGORITMA GENETIKA DAN ALGORITMA SIMULATED ANNEALING DALAM STUDY KASUS MENENTUKAN

RUTE TERPENDEK

SKRIPSI

Diajukan Untuk Memenuhi Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

Nama : Rino Dwi Pradika NPM : 0734010133 Program : S1 (Strata Satu) Jurusan : Teknik Informatika

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” J AWA TIMUR

(3)

Dengan mengucapkan puji syukur Alhamdulillah kehadirat ALLAH SWT yang telah melimpahkan berkah dan rahmat-Nya, sehingga penulis dapat menyelesaikan tugas akhir yang merupakan persyaratan dalam menyelesaikan program studi strata satu di Universitas Pembangunan Nasional “VETERAN” Jawa Timur. Tugas akhir ini merupakan “Implementasi Algoritma Genetika dan Algoritma Simulated Annealing Dalam Study Kasus menentukan Rute Terpendek”.

Penulisan tugas akhir ini tidak akan terselesaikan dengan baik apabila tidak mendapat dukungan, saran, masukan, ataupun kritik dari berbagai pihak. Maka dengan sepenuh hati penulis dalam kesempatan ini mengucapkan terima kasih atas bantuannya, kepada yang terhormat:

1. Allah SWT yang telah memberi anugrah kesehatan serta akal pikiran sehingga penulis mampu untuk menyelesaikan Tugas Akhir ini

2. Mama tersayang, yang senantiasa memberi dukungan serta mendoa’akan penulis yang tiada henti-hentinya supaya segera menyelesaiakan Tugas Ahir.Akhirnya aku LULUS ma, Semoga Mama bangga atas pencapaianku. 3. Alm.Papa tercinta,meskipun engkau sudah tiada didunia ini,tapi aku yakin

engkau melihat semua kerja keras anakmu ini diatas sana,semoga papa bangga dan tersenyum disana atas kelulusan anakmu.

(4)

iii

6. Ibu Dr.Ir.Ni Ketut Sari,MT. Sebagai Ketua Jurusan Teknik Informatika atas Universitas Pembangunan Nasional “Veteran” Jawa Timur.

7. Ibu Dr.Ir.Ni Ketut Sari,MT. Selaku dosen pembimbing I yang telah memberikan, motivasi dan bimbingan serta arahan yang berguna dalam membantu proses penyusunan Tugas Akhir ini.

8. Bapak Faisal Muttaqin,S.Kom. Selaku dosen pembimbing II yang telah mendampingi serta banyak memberikan bimbingan, masukan-masukan, koreksi dan dorongan yang sangat berarti hingga terselesaikannya Tugas Akhir ini.

9. Thank You for kekasihku tercinta,shiro nakano yang selalu menemani ku dan mendengarkan segala keluh kesahku.trims juga buat nasehat-nasehatnya yang sangat bermanfaat buat penulis dan menjadikan sebagai motivasi. Kamu penyemangat dalam hidupku my love.

10. Kepada mantan-mantanku,trima kasih atas pengalaman dan pelajarannya yang bermanfaat sehingga membuat hidupku terasa lebih bermakna dan berwarna. 11. Teman-teman seperjuangan Tugas Akhir,terutama kepada bro (fajar bayu)

(5)

12. Keluarga Besar KRIPOSOFT Community, ijah (dj sandro.s.kom), Leader (ananta bayu,s.kom), Eddy Lee , Windy s.kom, Pablo (Anjar Ngebluz), Bebek (Haniarta Bayu), Fery (AlenBig), Ahmad Nur, Fajar Bayu (FB) , om dan tante (aryo dn vivi) terima kasih atas dukungannya, tanpa kalian semua penulis tidak dapat menikmati perkuliahan yang penuh dengan hangatnya persaudaraan, susah senang bersama, touring dan rekreasi.

13. Teman-teman Teknik Informatika dan Sistem Infomasi angkatan 2007 Universitas Pembangunan Nasional “Veteran” Jawa Timur, si rambut cewek (ahong), yusuf (makasih cup atas bantuan revisi lesanku), aris, cino, dion, farid, heru, indra,yurza, dan yang tidak bisa penulis sebutkan satu per satu,terima kasih atas dukungannya baik materil maupun moril.

14. Kawan-kawan koz, mas viktor (john vicko),mbak pur (bayu,maaf panggilan u dikoz aku cantumin), fakhrur (au’,mksh udh bantuin belajar java), si pecinta cowok sejati (ady), si galau (eza), ryan kyoto, si playboy (Toni sembako), jendral (gigih). Makasih atas semuanya,meskipun Cuma sebentar bersama tapi seakan-akan sudah lama karena kehangatan dan kebersamaan serta keakraban kalian. Pokoknya looozzzzz.

(6)

v

Semoga ALLAH SWT membalas ketulusan dan budi baik mereka yang telah banyak memberikan bantuan, bimbingan, ataupun nasehat-nasehat kepada penulis.

Penulis menyadari bahwa masih banyak kekurangan pada penulisan tugas akhir ini. Namun penulis berharap semoga Tugas Akhir ini dapat ikut menunjang perkembangan ilmu pengetahuan, khususnya ilmu yang erat kaitannya dengan Teknik Informatika.

Surabaya, 11 Juni 2012

(7)

Penyusun : Rino Dwi Pradika

ABSTRAKSI

Persoalan Shortest path Problem (rute terpendek) adalah merupakan persoalan klasik. Dimana persoalan tersebut banyak memunculkan beberapa metode untuk menyelesaikan rute terpendek tersebut. Namun hingga saat ini belum ditemukan algoritma yang efisien untuk menyelesaikannya, shortest pat problem merupakan permasalahan optimasi,dimana hal tersebut memungkinkan terjadi beberapa hasil. Diantara algoritma penyelesaian rute terpendek meliputi, algoritma dijkstra, algoritma Brute Force, algoritma kruskal (dimana algoritma ini termasuk metode konvensional), algoritma Genetika, algoritma Simulated Annealing, algortima Neural Network (merupakan metode heuristic).

Pada Tugas Akhir ini akan diuji antara algoritma Genetika dengan algoritma simulated Annealing dalam pemecahan permasalahan rute terpendek. Implementasi dari desain sistem menggunakan teknologi berbasis java.

Uji kelayakan aplikasi dilakukan dengan melakukan serangkaian skenario uji coba, antara lain : Uji coba proses install pada laptop, uji coba pencarian jarak terpendek menggunakan algoritma genetika, uji coba pencarian jarak terpendek menggunakan algoritma simulated annealing. Hasil uji coba menunjukkan bahwa metode simulated annealing lebih baik dalam menyelesaikan permasalahan rute terpendek dibanding metode genetika.

(8)

Halaman

ABSTRAKSI ...

i

KATA PENGANTAR ...

ii

DAFTAR ISI ... vi

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... xi

BAB I PENDAHULUAN ...

1

1.1. Latar Belakang ...

1

1.2. Perumusan Masalah ...

2

1.3. Batasan Masalah ...

2

1.4. Tujuan ...

3

1.5. Manfaat ...

3

1.6. Metodologi Penelitian ...

4

1.7. Sistematika Penulisan ...

4

BAB II TINJAUAN PUSTAKA... ... 6

2.1. Algoritma Brute Force ... 6

2.2. Graph... 11

2.2.1. Jenis-jenis Graph. ... 12

(9)

2.4.2. Siklus Algoritma Genetika... 27

2.5. Algoritma simulated annealing ... 28

2.5.1. Algoritma Simulated Annealing pada Pencarian Rute... 31

2.5.2. Penerapan Algoritma Simulated Annealing... 31

2.6. Interaksi manusia dan komputer ... 35

2.7. Pengujian Perangkat Lunak ... 37

2.8. Rencana Uji (Test Plan)... ... 38

BAB III ANALISIS DAN PERANCANGAN ... 40

3.1. Analisis Sistem ... 40

3.2. Rancangan Program ... 42

3.2.1. Rancangan Program Algoritma Simulated Annealing ... 42

3.2.2. Rancangan Program Algoritma genetika ... 43

3.3. Flowchart Program Algoritma Simulated Annealing ... 45

3.4. Penjelasan Flowchart Program ... 46

3.5. Penjelasan Flowchart Program Simulated Annealing ... 46

3.6. Flowchart Program Algoritma Genetika ... 47

3.7. Penjelasan Flowchart Program genetika ... 48

3.8. Perancangan sistem ... 48

3.9. Tujuan Perancangan sistem ... 48

(10)

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 55

4.1. Penggunaan Perangkat ... 55

4.2. Implementasi Hasil Perancangan... 56

4.2.1. Form Utama Perangkat Lunak ... 56

4.2.2. Data Masukan ... 61

4.2.3. Data Saat Pemrosesan ... 62

4.2.4. Data Keluaran ... 62

4.3. Pengujian Sistem ... 62

4.3.1. Program Algoritma Genetika ... 62

4.3.2. Program Algoritma Simulated Annealing ... 64

4.4. Analisis Percobaan ... 67

4.5. Implementasi Antar Muka ... 67

BAB V PENUTUP ... 79

5.1. Kesimpulan ... 79

5.2. Saran ... 80

(11)

PENDAHULUAN

1.1Latar Belakang

(12)

network, simulated annealing, dan sebagainya. Secara umum, metode konvensional cenderung lebih mudah dipahami daripada metode heuristic, tetapi jika dibandingkan, hasil yang diperoleh menggunakan metode heuristic lebih variatif dan waktu perhitungan yang diperlukan lebih singkat (Esa, 2010).

Terkait dengan permasalahan tersebut, penulis akan mengimplementasikan dua algoritma yang digunakan dalam penentuan rute terpendek terutama yang termasuk kategori heuristic, yaitu algoritma genetika dan algoritma simulated annealing. Dari dua algoritma tersebut manakah yang terbaik dalam kasus penentuan rute terpendek.

1.2Per umusan Masalah

Berdasarkan latar belakang yang telah diuraikan diatas, terdapat beberapa permasalahan yang akan diangkat didalam Tugas Akhir ini, yang meliputi: a. Bagaimana menentukan rute terpendek menggunakan algorithma

Simulated Annealing dan algoritmaGenetika.

b. Membuat aplikasi dalam menentukan rute terpendek dengan menggunakan algorithma Simulated Annealing dan algoritmaGenetika.

1.3Batasan Masalah

(13)

a. Rute terpendek menggunakan simulasi graph yang lokasi node nya bersifat acak-statis untuk kedua algoritma yang dibandingkan.

b. Node yang digunakan dalam graph maksimal 100 node, dengan Temperatur dan populasi maksimal 100 serta delta dan mutasi maksimal 0.99.

1.4Tujuan

Tujuan yang ingin dicapai penulis pada pengerjaan tugas akhir ini adalah: a. Mampu Menggunakan algoritma Simulated Annealing dan algoritma

Genetika dalam menentukan rute terpendek

b. Mampu mengetahui, manakah dari 2 algoritma tersebut yang terbaik dalam tingkat efisiensi dan efektifitas pada kasus rute terpendek

c. Membuat aplikasi simulasi Graph dalam menentukan rute terpendek menggunakan algoritma Simulated Annealing dan Genetika.

1.5Manfaat

(14)

1.6Metodologi Penelitian

Penulis dalam penulisan tugas akhir ini, akan menggunakan metode:

a. Studi Literatur

Mempelajari dan mengumpulkan data dan informasi dengan mempelajari buku–buku sebagai acuan dan literatur yang berhubungan dengan materi penulisan tugas akhir.

b. Perancangan aplikasi dan Pembuatan aplikasi

Merancang dari pada sistem secara keseluruhan perangkat lunak dan pembuatan atau realisasi dari sistem yang dirancang dan disesuaikan dengan kebutuhan.

c. Tes dan Analisa

Uji coba program guna untuk mengetahui hasil rancangan perangkat lunak dan menganalisa hasil percobaan yang telah dilakukan.

1.7Sistematika Penulisan

Dalam penulisan tugas akhir ini dibagi menjadi beberapa bab, masing-masing bab membahas tentang:

BAB I PENDAHULUAN

(15)

BAB II TINJ AUAN PUSTAKA

Pada bab ini dibahas mengenai landasan-landasan teori yang digunakan dalam pembuatan tugas akhir ini, yaitu algoritma Genetika dan algoritma simulated annealing serta beberapa informasi tambahan berdasarkan hasil analisa kebutuhan berdasarkan hasil survey, yang disimpulkan secara garis besar.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini dibahas mengenai tahapan-tahapan yang dilalui dalam pembuatan tugas akhir ini, mulai dari hubungan keterkaitan antara beberapa hubungan relasi modul,deskripsi umum sistem,kebutuhan sistem,pemodelan sistem,perancangan proses latar .

BAB IV IMPLEMENTASI APLIKASI

Pada bab ini dibahas secara lebih rinci mengenai implementasi penggunaan program dalam proses analisa untuk penerapan algortima genetika dan algoritma simulated annealing untuk penentuan rute terpendek.

BAB V PENUTUP

Pada bab ini dibahas mengenai uraian kesimpulan tentang sistem yang telah dibuat serta saran yang dapat digunakan untuk penyempurnaan dan pengembangan sistem.

(16)

TINJ AUAN PUSTAKA

2.1. Algor itma Br ute For ce

Algoritma Brute Force adalah algoritma yang mempunyai tingkatan terendah dalam pencarian solusi terhadap sebuah permasalahan karena kesederhanaannya. Sifat-sifat algoritma brute force yang seperti itu memberikan beberapa kelebihan maupun kekurangan. Adapun kelebihan yang dimilikinya adalah kehandalannya dalam menemukan solusi dari sebuah permasalahan, akan tetapi kelemahannya yaitu algoritma ini tidak efisien, mempunyai kompleksitas yang terbesar dalam pemecahan suatu permasalahan dan tidak efisien untuk jumlah kemungkinan solusi yang banyak. Walaupun begitu,algoritma ini handal dalam artian algoritma ini dapat dipakai untuk menyelesaikan hampir seluruh permasalahan yang ada (Kurnianto, 2004).

(17)

1. Membutuhkan jumlah langkah yang besar dalam penyelesaian suatu permasalahan.

2. Digunakan sebagai dasar dalam menemukan suatu solusi yang lebih efisien.

3. Kebanyakan banyak dipilih dalam penyelesaian sebuah permasalahan yang sederhana karena kemudahan cara berpikirnya.

Pada banyak kasus,algoritma ini banyak dipilih karena hampir dapat dipastikan untuk dapat menyelesaikan banyak persoalan yang ada. Digunakan sebagai dasar bagi perbandingan ke efisienan sebuah algoritma. Dalam beberapa kasus tertentu algoritma brute force hampir disamakan dengan exhaustive search yang mana memiliki pengertian suatu teknik pencarian solusi secara brute force pada masalah yang melibatkan pencarian elemen-elemen dengan sifat khusus, biasanya diantara objek-objek kombinatorik seperti permutasi,kombinasi atau himpunan bagian dari sebuah himpunan. Berdasarkan definisi diatas maka exhaustive search merupakan implementasi dari brute force.

(18)

Dari gambar 2.1. diatas yang merupakan representasi Graf ABCD, akan dicoba dianalisa pemrosesan dari Travelling Salesman Problem (TSP) dengan mengimplementasikan algoritma brute force yang mana diinginkan solusi rute terpendek dari state awal ke state tujuan dengan ketentuan hanya melewati sebuah node/kota sekali dan kembali ke state awal/kota keberangkatan. Pemodelan kasus ini dapat dimodelkan sebagai graph dengan node yang merupakan representasi kota dan bobot antar node merepresentasikan jarak antarkota satu dengan kota yang lainnya.

Adapun pemecahan masalah untuk graph diatas dapat diselesaikan sebagai berikut:

Enumerasikan langkah sejumlah (n-1) ! jadi dengan node = n = 4,maka didapatkan jumlah pilihan = (4-1) ! = 3! = 3x2x1 =6.

(19)

Dari tabel 2.1. dapat dilihat bahwa sebenarnya rute yang ditelusuri dapat diefisienkan dengan cara menghilangkan sejumlah rute yang sebetulnya merupakan pencerminan dari rute yang lain. Hal ini dapat dibuktikan dengan bobot yang dihasilkan hanyalah 3 jenis, yaitu 28, 20 dan 14. Oleh karena itu, rute yang sama diambil salah satu saja, maka kita dapat menghilangkan rute-rute sebagai berikut:

Untuk bobot 28 = A -> D -> C -> B -> A Untuk bobot 20 = A -> C -> B -> D -> A Untuk bobot 14 = A -> C -> D -> B -> A

Jadi dengan penghilangan rute node yang sepadan tersebut, diharapkan jumlah kompleksitas dapat dikurangi sejumlah ((n-1) ! )/2). Maka kompleksitas yang didapatkan=(3!)/2=3.

Tetapi meskipun rute ini sudah di efisienkan, besarnya komplestitas ternyata masih besar. Dari langkah-langkah yang sudah dilakukan diatas, maka didapatkan bobot yang terkecil yaitu A -> B -> D -> C -> A = 14.

(20)

Gambar 2.2. Graf ABCDEF

Dari gambar 2.2. maka langkah yang harus dilakukan adalah mengenumerasikan langkah sejumlah (n-1) !.Jadi dengan node = 6,maka didapatkan jumlah pilihan = (6-1) ! = 5! = 5x4x3x2x1 = 120. Disini terlihat bahwa untuk sejumlah 5 node saja, proses harus menenumerasikan sejumlah 120 langkah. Hal ini sangat tidak efisien mengingat respon waktu sistem akan sangat lama untuk dapat memberikan solusi yang terbaik. Bayangkan jika jumlah simpul/node yang banyak tersebut harus kita enumerasikan sejumlah (n-1)!. jika terdapat 50 simpul maka kita harus mengenumerasikan sejumlah 49!.

(21)

2.2. Gr af

Graf adalah kumpulan simpul atau verteks yang dihubungkan dengan garis atau busur. Graf juga bisa diartikan sebagai himpunan busur dan simpul yang banyaknya berhingga dan busur-busurnya menghubungkan sebagian atau keseluruhan pasangan dari simpul-simpulnya.

Graf G (V, E) memiliki koleksi atau pasangan dua himpunan yang terdiri atas:

a) Himpunan V yang elemennya disebut simpul atau titik, atau vertex, atau point, atau node.

b) Himpunan E yang merupakan pasangan tak terurut dari simpul, disebut ruas atau rusuk, atau sisi, atau edge, atau line.

Graf terdiri atas himpunan simpul yang dinyatakan dengan V = {v1,v2, v3, ..., vn}

dan himpunan busur yang dinyatakan dengan E ={e1, e2, e3, ..., en}. Sebagai

contoh ei = (vi, vj) merupakan busur yang menghubungkan simpul vi dan

simpul vj. Dalam menggambarkan graf, simpul digambarkan dengan lingkaran

kecil atau titik tebal dan busur digambarkan dengan garis, dan arah panah pada garis melambangkan arah dari garis tersebut. Nomor atau nama simpul dapat diletakkan di dalam lingkaran kecil atau di tepi titik tebal.

(22)

i j i j i j

a. busur tak berarah b. busur berarah c. busur dua arah

Gambar 2.3. Macam-macam busur

Penulisan simpul dan busur dari graf G (V, E) yang digunakan seperti Gambar 2.3. Jika simpul s telah diberi nomor i maka cukup ditulis i, dan jika simpul s telah diberi nomor j, maka cukup ditulis simpul j.Demikian juga busur yang menghubungkan simpul i dan j cukup ditulis busur (i,j).

2.2.1. J enis-J enis Gr af

1. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka graf digolongkan menjadi dua jenis:

a. Graf sederhana (simple graf).

Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf sederhana.

b. Graf tak-sederhana (unsimple-graf/multigraf).

Graf yang mengandung ruas ganda atau gelung dinamakan graf tak-sederhana (unsimple graf atau multigrapf).

2. Berdasarkan jumlah simpul pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:

a. Graf berhingga (limited graf)

(23)

Graf yang jumlah simpulnya, n, tidak berhingga banyaknya disebut graf tak-berhingga.

3. Berdasarkan orientasi arah pada sisi, maka secara umum graf dibedakan atas 2 jenis:

a. Graf tak-berarah (undirected graf)

Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak berarah.

b. Graf berarah (directed graf atau digraf)

Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah

4. Berdasarkan arah dan bobotnya,maka graf dibagi menjadi empat bagian,yaitu:

a. Graf berarah dan berbobot

Tiap busur mempunyai anak panah dan bobot b. Graf tidak berarah dan berbobot

Tiap busur tidak mempunyai ank panah tetapi mempunyai bobot c. Graf berarah dan tidak berbobot

Tiap busur mempunyai anak panah dan tidak berbobot d. Graf tidak berarah dan tidak berbobot

(24)

Suatu graf dapat direpresentasikan ke beberapa bentuk. Representasigraf dapat digunakan untuk mengimplementasikan graf tersebut ke dalam bentuk tertentu, sehingga dapat digunakan pada berbagai kasus yang berbeda.

2.3. Lintasan Rute Ter pendek

Jalur terpendek adalah suatu jaringan pengarahan perjalanan dimana seseorang pengarah jalan ingin menentukan jalur terpendek antara dua kota berdasarkan beberapa jalur alternatif yang tersedia, dimana titik tujuan hanya satu. Gambar 2.4. menunjukkan suatu graf ABCDEFG (Saptono, 2007).

Gambar 2.4. Gr af ber bobot ABCDEFG

Pada gambar 2.4.,dimisalkan kita dari kota A ingin menuju kota G.Untuk menuju kota G, dapat dipilih beberapa jalur yang tersedia, tidak mencakup keseluruhan jalur :

(25)

A -> B -> D -> E -> G A ->B -> D -> F -> G A -> B -> D -> G A -> B -> E -> G A -> C -> D -> E -> G A -> C -> D -> F -> G A -> C -> D -> G A -> C -> F -> G

Berdasarkan beberapa data diatas,dapat dihitung jalur terpendek dengan mencari jarak antara jalur-jalur tersebut. Apabila jarak antar jalur belum diketahui, jarak dapat dihitumg berdasarkan koordinat kota-kota tersebut. Setelah didapatkan hasil jarak antar kota, jalur terpendek dapat dihitung menggunakan metode yang ada (Saptono, 2007).

Secara umum penyelesaian masalah pencarian jalur terpendek dapat dilakukan dengan menggunakan dua buah metode, yaitu metode algoritma konvensional dan metode heuristik. Metode algoritma konvensional diterapkan dengan cara perhitungan matematis seperti biasa, sedangkan metode heuristik diterapkan dengan perhitungan kecerdasan buatan, dengan menentukan basis pengetahuan dan perhitungannya (Mutakhiroh, 2007).

a. Metode konvensional

(26)

diantaranya algoritma Djikstraa, algoritma Floyd-Warshall, dan algoritma Bellman-Ford.

b. Metode heuristik

Adalah sub bidang dari kecerdasan buatan yang digunakan untuk melakukan pencarian dan penentuan jalur terpendek. Ada beberapa algoritma pada metodeheuristik yang biasa digunakan dalam pencarian jalur terpendek. Namun dalam Tugas Akhir ini dibatasi hanya membahas dua macam algoritma yaitu algoritma Simulated Annealing dan algoritmaGenetika (Mutakhiroh, 2007).

2.4. Algor tima Genetika

Algoritma genetika (Genetic Algorithm, GA) adalah algoritma pencarian yang didasarkan atas mekanisme seleksi alami dan evolusi biologis. Algoritma genetika mengkombinasikan antara deretan struktur dengan pertukaran informasi acak ke bentuk algoritma pencarian dengan beberapa perubahan bakat pada manusia. Pada setiap generasi, himpunan baru dari deretan individu dibuat berdasarkan kecocokan pada generasi sebelumnya (Goldberg,1989).

(27)

seleksi dan rekombinasi. Proses seleksi adalah proses evaluasi kualitas setiap string didalam populasi untuk memperoleh peringkat calon solusi. Berdasarkan hasil evaluasi, dipilih string-string yang akan mengalami proses rekombinasi. Proses pemilihan biasanya dilakukan secara acak, string dengan kualitas yang lebih baik akan memiliki peluang lebih besar untuk terpilih sebagai calon-calon string generasi berikutnya. Proses rekombinasi meliputi proses genetika untuk memperoleh string baru dari pertukaran karakter dari calon-calon string yang didapat pada tahap seleksi. String-string pada generasi baru dihasilkan dengan menggunakan operasi genetik secara acak pada calon string yang terpilih pada tahap seleksi. Proses rekombinasi akan menghasilkan string-string baru yang berbeda dibandingkan induknya dan dengan demikian diperoleh domain pencarian yang baru. Cara kerja algoritma genetika sangat sederhana, hanya mencakup proses penduplikasian string-string dan pertukaran bagian-bagian dari string. Meskipun cukup sederhana, tetapi mempunyai kemampuan untuk menyelesaikan persoalan optimasi. Kemampuan ini didukung oleh tiga operator genetik yaitu reproduksi, rekombinasi dan mutasi. Pada tahap reproduksi terjadi proses penduplikasian string berdasarkan nilai fungsi objektifnya. Nilai objektif ini dapat dilihat sebagai suatu keuntungan yang ingin dicapai atau dimaksimalkan. Sementara proses pertukaran bagian-bagian string dilakukan oleh operator rekombinasi dan mutasi (saptono, 2007).

(28)

a. Proses Pengkodean (Encoding)

Adalah salah suatu proses yang sulit dalam algoritma genetika. Hal ini disebabkan Karena proses pengkodean untuk setiap permasalahan berbeda-beda karena tidak semua teknik pengkodean cocok untuk setiap permasalahan. Proses pengkodean ini menghasilkan suatu deretan yang kemudian disebut kromosom. Kromosom terdiri dari sekumpulan bit yang dikenal sebagai gen. Ada beberapa macam teknik pengkodean yang dapat dilakukan dalam algoritma genetika (Lukas, 2005), diantaranya pengkodean biner (binary encoding), pengkodean permutasi (permutation encoding),pengkodean nilai (value encoding) dan pengkodean pohon (tree encoding).

b. Proses Seleksi

Adalah proses untuk menentukan individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana keturunan terbentuk dari individu-individu terpilih tersebut. Langkah pertama yang dilakukan dalam seleksi adalah pencarian nilai fitness. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitasreproduksi yang tergantung pada nilai obyektif dirinya sendiri terhadap nilai obyektif dari semua individu dalam wadah seleksi tersebut. Nilai fitness kemudian akan digunakan pada tahap seleksi berikutnya. Ada beberapa macam proses seleksi yang ada pada algoritma genetika, diantaranya (Kusumadewi, 2005):

(29)

Selection),dengan memetakan individu-individu dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya.

2. Seleksi berdasarkan Ranking Fitness (Rank-based Fitness), yaitu dengan cara mengurutkan populasi menurut nilai obyektifnya.

3. Seleksi Pengambilan Sampling Stocastic (Stocastic Universal Sampling),dengan memetakan individu-individu seperti halnya roda roulette, kemudian memberikan sejumlah pointer sebanyak individu yang ingin diseleksi pada garis tersebut.

4. Seleksi Lokal (Local Selection), seleksi yang dilakukan hanya pada konstrain tertentu.

5. Seleksi dengan Pemotongan (Truncation Selection), seleksi buatan yang biasanya digunakan oleh populasi yang jumlahnya sangat besar.

(30)

c. Proses Rekombinasi

Adalah proses untuk menyilangkan dua kromosom sehingga membentuk kromosom baru yang harapannya lebih baik dari pada induknya. Rekombinasi dikenal juga dengan nama crossover. Tidak semua kromosom pada suatu populasi akan mengalami proses rekombinasi. Kemungkinan suatu kromosom mengalami proses rekombinasi didasarkan pada probabilitas crossover yang telah ditentukan terlebih dahulu. Probabilitas crossover menyatakan peluang suatu kromosom akan mengalami crossover.

Ada beberapa macam proses rekombinasi yang ada pada algoritma genetika, diantaranya (Kusumadewi, 2005):

1. Rekombinasi diskret,dengan menukar nilai variabel antar kromosom induk.

2. Rekombinasi menengah, merupakan metode rekombinasi yang hanya digunakan untuk variabelreal dan variabel yang bukan biner.

3. Rekombinasi garis, memiliki prinsip yang sama dengan rekombinasi menengah, dengan nilai alpha sama untuk semua variabel.

4. Penyilangan satu titik, dengan menukar variabel-variabel antar kromosom pada satu titik untuk menghasilkan hasil. 5. Penyilangan banyak titik, dengan menukar variabel-variabel

(31)

6. Penyilangan seragam, dengan membuat sebuah mask penyilangan sepanjang panjang kromosom secara acak. 7. Penyilangan dengan permutasi, dengan cara memilih

sub-barisan suatu turnamen dari satu induk dengan tetap menjaga urutan dan posisi sejumlah kota yang mungkin terhadap induk lainnya.

d. Proses Mutasi

Adalah proses penambahan nilai acak yang sangat kecil dengan probabilitas rendah pada variabel keturunan. Peluang mutasi didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak dievaluasi, tetapi bila peluang mutasi ini terlalu besar maka akan terlalu banyak gangguan acak, sehingga hasil yang diperoleh akan kehilangan kemiripan dari induknya dan algoritma juga akan kehilangan kemampuan untuk belajar dari history pencarian (Kusumadewi, 2005). Ada beberapa macam proses mutasi yang ada pada algritma genetika,diantaranya:

1. Mutasi bilangan real, dengan mendefinisikan ukuran langkah mutasi, kecil atau besar.

2. Mutasi biner, dengan mengganti satu atau beberapa nilai gen dari kromosom.

(32)

Langkah 1

Inisialisasi generasi awal. Generasi awal harus diinisialisasi kosong, sehingga belum ada generasi.Generasi = 0.

Langkah 2

Inisialisasi populasi awal,P (generasi) secara acak. Populasi yang ditentukan di inisialisasi secara acak.

Langkah 3

Evaluasi nilai fitness pada setiap individu dalam P (generasi). Nilai fitness adalah nilai yang menunjukkan kualitas suatu kromosom dalam populasi. Langkah 4

a. Menambahkan generasi baru dengan persamaan: generasi = generasi+1

b. Seleksi populasi tersebut untuk mendapatkan kandidat induk P’ (generasi)

c. Lakukan crossover pada P’ (generasi). d. Lakukan mutasi pada P’ (generasi).

e. Lakukan evaluasi fitness setiap individu pada P’ (generasi).

2.4.1. Diagr am Alir Algor itma Genetika

(33)

akan mengalami evolusi melalui sejumlah iterasi yang disebut generasi. Dalam setiap perjalanan proses generasi, kromosom-kromosom tersebut akan dievaluasi menggunakan suatu fungsi yang disebut dengan fungsi obyektif. Setiap generasi akan menghasilkan kromosom-kromosom yang baru yang dibentuk dari generasi sebelumnya dengan menggunakan operator reproduksi, kawin silang dan mutasi.

Kromosom-kromosom yang mempunyai nilai obyektif yang baik akan memiliki probabilitas yang lebih tinggi untuk terseleksi. Setelah beberapa kali proses generasi tersebut dilakukan, algoritma genetika akan menunjukkan kromosom yang terbaik, yang diharapkan merupakan solusi yang optimal ataupun mendekati optimal dari problem yang dihadapi. Hal lain yang perlu diperhatikan adalah representasi kromosom yaitu bagaimana mengkodekan suatu alternatif solusi itu menjadi kromosom yang akan diproses menggunakan algoritma genetika.

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.

(34)

menghasilkan nilai optimum yang tidak dikehendaki. Tetapi bila nilai ini terlalu tinggi akan mengakibatkan pemborosan waktu untuk melakukan perhitungan di daerah solusi yang tidak menjanjikan hasil yang optimal.

(35)
(36)

Representasi kromosom merupakan cara bagaimana mengkodekan suatu alternatif solusi itu menjadi kromosom yang akan diproses menggunakan algoritma genetika. Dalam penelitian ini, representasi kromosom yang digunakan dalam bentuk bit string. Panjang bit kromosom yang akan digunakan dapat ditentukan dari persamaan berikut:

P =

(

S 1

)

C ... (1)

Dimana P = Panjang kromosom S = Jumlah spot/titik

C = Jumlah bit dari banyaknya percabangan maksimal yang dikodekan dalam biner.

Panjang bit tersebut bukan merupakan nilai yang mutlak, melainkan nilai yang dianggap “aman” agar tidak terjadi unsolved condition, yaitu kromosom tidak memberikan solusi pemecahan masalah. Panjang kromosom itu sebenarnya merepresentasikan jumlah hop maksimal yang mampu dilakukan. Hop merupakan proses perpindahan dari satu titik ke titik lain yang merupakan tetangganya. Jumlah hop maksimal dapat diperoleh dari rumus:

... (2)

Dimana, H = Jumlah hop maksimal yang mampu dilakukan. P = Panjang kromosom

C = Jumlah bit dari banyaknya percabangan maksimal yang dikodekan dalam biner

Mutasi = Mutasi persen yang dimasukkan * panjang total gen

(37)

2.4.2. Siklus Algor itma Genetika

Evolusi merupakan proses atau perubahan yang terus menerus untuk menuju suatu kesempurnaan atau keseimbangan. Dengan adanya spesies yang mempunyai fitness value (tingkat kecocokan dengan lingkungan), maka seleksi dilakukan berdasarkan fitness value-nya. Gen adalah sifat penting yang akan dibawa oleh generasi atau keturunan berikutnya. Gen dapat dioperasikan secara genetik untuk memperoleh keanekaragaman melalui proses reproduksi, cross over, dan mutasi. Seleksi terjadi pada setiap generasi, sedangkan peningkatan keanekaragaman terjadi pada setiap generasi baru. Jadi, ide dasar algoritma genetika adalah mempertahankan struktur populasi atau kumpulan spesies yang mewakili calon solusi suatu persoalan. Dengan menggunakan atau memanfaatkan sifat – sifat system biologis, algoritma genetika dapat memberikan hasil yang memuaskan dalam proses optimasi (Hozairi, 2010).

(38)

2.5. Algor itma Simulated Annealing

Simulated annealing adalah salah satu algoritma untuk optimasi yang bersifat generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu permasalahan. Masalah yang membutuhkan pendekatan simulated annealing adalah masalah-masalah optimisasi kombinatorial, dimana ruang pencarian solusi yang ada terlalu besar, sehingga hampir tidak mungkin ditemukan solusi eksak terhadap permasalahan itu.

(39)

Simulated annealing menggunakan teknik optimasi numerik dengan prinsip thermo-dynamic. Annealing adalah proses dimana material solid dilebur dan didinginkan secara perlahan-lahan dengan mengurangi temperature. Partikel dari material berusaha menyusun dirinya sendiri selama proses pendinginan. Kumpulan status energi dari partikel yang dibentuk disebut “konfigurasi” dari material. Probabilitas partikel pada semua level energi dapat dihitung dengan menggunakan distribusi Boltzman. Dengan turunnya temperature, distribusi Boltzman mempertahankan konfigurasipartikel yang mempunyai energi terendah.

Metropolis menemukan bahwa proses equilibrium dapat disimulasikan untuk temperature tetap dengan menggunakan Metode Carlo untuk membangktikan deretan state energi. Sistem mengalamai perubahan state dalam membentuk konfigurasipartikel yang baru. Level energi sebelum perubahan state (Es) dan level energi setelah perubahan state (Ei) dibandingkan. Jika Es lebih besar

dari Ei (berarti Δ E > 0), sistem baru diterima sebagai konfigurasi partikel yang

baru. Jika Δ E > 0, probabilitas menerima sistem yang mengalami perubahan state menggunakan kriteria Metropolis yang disebut faktor probabilitasBoltzman.

(40)
(41)

2.5.1. Algor itma Simulated Annealing pada Pencar ian Rute

Berdasarkan teori yang telah dijabarkan pada bagian sebelumnya, penerapan algoritma Simulyaed Annealing dapat diaplikasikan pada masalah pencarian rute terpendek dalam graf berbobot (weighted graph). Hal-hal yang harus diperhatikan dalam mengaplikasikan algoritma Simulated Annealing yaitu temperatur awal, pembangkitan bilangan acak dan vertex tetangga (adjacent/neigbour).

Sebelum menerapkan algoritma Simulated Annealing, lingkungan pencarian harus dibuat terlebih dahulu. Salah satu contoh yang dapat dibuktikan adalah Lingkungan pencarian peta yang terdapat kota-kota yang akan dicari rute terpendeknya. Peta tersebut harus direpresentasikan ke dalam suatu data yang terstruktur seperti graf berbobot. Penggunaan graf berbobot paling cocok digunakan untuk melakukan pencarian rute, hal ini dikarenakan bobot yang terdapat pada edge yang menghubungkan vertex dapat digunakan untuk mencari rute terpendek. Setelah algoritma Simulated Annealing menemukan solusi pada setiap iterasi, maka solusi-solusi (berupa vertex) tersebut disimpan pada daftar atau list yang digunakan untuk mengetahui path yang telah dilalui. List yang berisi path atau jalur terpendek, dapat digunakan untuk menggambar jalur pada peta.

2.5.2. Pener apan Algor itma Simulated Annealing

(42)

dapat diketahui secara mendetail. Simulasi akan dilakukan dengan menggunakan lingkungan pencarian berupa graf berarah dengan arah tunggal dengan konfigurasi sebagai berikut:

Tabel 2.2. Konfigurasi Gr af Ber ar ah

Lokasi / Node Koor dinat Posisi

X Y

A 100 100

B 200 190

C 150 290

D 220 320

E 300 70

F 400 250

G 450 250

(43)

Gambar 2.7. Konfigurasi Gr af Berar ah

Gambar 2.7. memperlihatkan konfigurasi graf berarah yang digunakan sebagai lingkungan pencarian dari algoritmaSimulated Annealing. Setiap vertex memiliki adjacent atau tetangga. Tetangga ditentukan oleh arah dari garis panah. Asumsi titik awal pencarian dimulai dari node/vertex A dan titik tujuan pecarian adalah vertex G. Jarak antar graf berarah pada gambar diatas didapat dari fungsi persamaan berikut ini:

D = √ (xi-x)2 + (yi-y)2

Dimana, x , y = Node awal

(44)

Start

Solusi Saat ini

Solusi aktif

Solusi Baru Output Hasil

End

ITRY=ITRY+1

ITRY > MaxTry ?

Modify Parameters

Energi Minimal?

Is Ran < exp (dE/kT)

Apakah Solusi Terbaik? Ambil Sebagai Solusi Terbaik Is Temp = Temp(f)

Kurangi Temp Update If Necessary Y N Y Y Y Y N N N N

(45)

2.6. Inter aksi Manusia dan Komputer

Interaksi Manusia dan Komputer mempelajari suatu interaksi yang terjadi antara manusia dan komputer. Antara manusia dengan manusia terjadi suatu interaksi yang beragam cara interaksi-nya dapat secara berdialog,menggunakan suatu bahasa yang dikenal antar manusia atau melalui simbolsimbol yang diciptakan oleh manusia itu sendiri (Soetanto, 2003).

Komponen interaksi manusia dengan komputer meliputi : a. User

Pengguna secara individu,suatu grup dari pengguna yang bekerja sama atau sekelompok pengguna dalam organisasi dimana masing – masing berhubungan dengan bagian sama dari suatu kerjaan atau proses. Pengguna berusaha menyelesaikan pekerjaannya dengan menggunakan bantuan teknologi (komputer).

b. Komputer

Komputer adalah suatu teknologi yang digunakan untuk mengontrol suatu proses atau sebuah sistem. Jenisnya dapat berupa komputer yang berskala kecil atau desktop sampai ke skala besar seperti komputer super. Komputer dapat juga berupa suatu teknologi yang dapat ditempelkan ke suatu benda. c. Interaksi

(46)

menghasilkan suatu hasil yang diinginkan tepat waktu.

Ada hal–hal yang harus diperhitungkan dalam merancang suatu interaksi bagi seseorang, dimana kita perlu mengetahui kapasitas dan keterbatasan dari seseorang tersebut. Kita perlu mengetahui apakah ada sesuatu yang membuat manusia mendapatkan kesulitan atau kelebihan beban pada saat melakukan pekerjaan yang menggunakan teknologi seperti komputer, diantaranya penggunaan saluran input dan output pada manusia. Saluran ini yang dipakai oleh manusia untuk berkomunikasi dengan sesama, oleh karena itu kita perlu mengetahui dan mengenal saluran – saluran tersebut. Manusia mempunyai saluran input dan output untuk mendapatkan informasi maupun memberikan informasi kepada manusia lain dengan kata lain manusia mempunyai saluran input dan output untuk berkomunikasi.

Saluran inputoutput pada manusia :

Manusia sangat terbatas pada kapasitas yang mereka punyai untuk memproses suatu informasi. Hal ini sangat penting sebagai faktor utama dalam merancang suatu interaksi.

Informasi diterima dan dibalas melalui beberapa saluran input dan output yang ada pada diri manusia.

Ada beberapa saluran input pada manusia seperti , visi , hearing (tatap muka) , taste (rasa), smell (bau) , touch (sentuhan).

(47)

2.7. Pengujian Per angkat Lunak

Pengujian adalah suatu proses pengeksekusian program yang bertujuan untuk menemukan kesalahan (Berard, 1994). Pengujian sebaiknya menemukan kesalahan yang tidak disengaja dan pengujian dinyatakan sukses jika berhasil memperbaiki kesalahan tersebut. Selain itu, pengujian juga bertujuan untuk menunjukkan kesesuaian fungsi – fungsi perangkat lunak dengan spesifikasinya.

Pengujian dapat dikategorikan atas :

a. Pengujian terhadap proses pengembangan sistem dan dokumen – dokumen pendukung. Proses berarti sejumlah aktifitas yang didukung oleh dokumen yang mendeskripsikan aktifitas – aktifitas.

b. Pengujian terhadap analisis dan model perancangan. Dalam sistem berorientasi objek, pengujian model analisis dan perancangan adalah hal yang sangat penting.

c. Pengujian secara statik dan dinamik untuk implementasi. Tujuannya adalah mencari kesalahan sedini mungkin dalam proses, tetapi kesalahan dalam kode untuk sistem yang besar dan komplek tidak dapat dihindarkan. Pengujian statik merupakan inspeksi kode untuk menemukan kesalahan logic. Pengujian dinamik merupakan eksekusi dengan data uji untuk menemukan kesalahan dalam kode.

(48)

Fokus pengujian dimulai pada hasil analisisnya, dilanjutkan pada hasil perancangannya, dan diakhiri pada hasil pemrogramannya (Rochimah, 1997). Model yang dihasilkan pada analisis dan perancangan harus diperiksa terutama dalam hal :

a. Semantic correctness, yaitu kesesuaian model dengan domain permasalahan di dunia nyata. Jika model merefleksikan dunia nyata secara akurat, berarti model tersebut benar secara semantik.

b. Consistency, yaitu kesesuaian kelas dengan objek turunannya maupun kesesuaian asosiasi kelas dengan kelas lainnya.

2.8. Rencana Uji (Test Plan)

Perancangan pengujian dilakukan dengan menyiapkan standar – standar yang harus dipenuhi dalam proses pengujian. Jika tidak sesuai dengan standar, maka proses pengujian telah menemukan kesalahan. Standar – standar tersebut harus terdokumentasi dengan baik. Kasus uji terdiri atas sekumpulan masukan untuk pengujian, sekumpulan kondisi yang harus dieksekusi dan hasil yang diharapkan berdasarkan tujuan yang telah ditetapkan (Hendrowati, 2003).

Metoda perancangan kasus uji untuk perangkat lunak yang diusulkan Berrard (dalam Pressman, 1997) adalah:

a. Setiap kasus uji harus diidentifikasi secara unik dan secara eksplisit diasosiasikan dengan class yang diuji.

b. Tujuan pengujian harus ditetapkan dengan jelas.

(49)

Daftar status tertentu untuk objek yang diuji.

Daftar pesan (message) dan operasi yang akan dieksekusi sebagai akibat pengujian.

Daftar exception (perkecualian) yang mungkin terjadi karena objek yang diuji.

Daftar kondisi eksternal (misalnya mengubah lingkungan eksternal perangkat lunak).

(50)

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Kegiatan analisis sistem yang berjalan dilakukan dengan analisis yang berorientasi pada objek – objek yang diperlukan oleh sistem yang dirancang, dimaksudkan untuk menitik beratkan kepada fungsionalitas sistem yang berjalan dengan tidak terlalu menitik beratkan kepada alur proses dari sistem. Selanjutnya dari hasil analisis ini divisualisasi dan didokumentasikan melalui diagram alir, diagram use case, dan sequence diagram. Pertimbangan penggunaan diagram tersebut karena dianggap mewakili secara keseluruhan sistem yang berjalan yang dapat dimengerti oleh user.

Untuk mendefinisikan bagaimana bentuk penjadwalan yang digunakan dalam Tugas Akhir ini, digunakan contoh permasalahan berikut ini :

(51)

1. Penyelesaian dengan Algoritma Genetika

a. Pengkodean, sebagai langkah awal dalam penggunaan algoritmagenetika. b. Populasi awal, hal ini dilakukan dengan menggunakan pembangkitan

bilangan secara acak.

c. Mendefinisikan Individu, dimana individu menyatakan salah satu solusi yang mungkin dari permasalahan tersebut.

d. Mendefinisikan Nilai Fitness, yang merupakan ukuran baik-tidaknya solusi yang didapatkan. Nilai fitness adalah fungsi tujuan dari optimasi pada algoritmagenetika.

e. Proses seleksi, proses seleksi digunakan untuk memilih individu terbaik dan memilih induk yang akan mengalami proses perkembangbiakan. f. Perkawinan Silang (Cross-Over), merupakan teknik dimana sepasang

kromosom diproduksi dengan meng-copy komplemen induk pada keturunan.

g. Mutasi, digunakan untuk me-modifikasi suatu kromosom agar menghasilkan perubahan kromosom yang random.

2. Penyelesaian dengan Algoritma Simulated Annealing a. Inisialisasi /bangkitkan solusi awal

b. Evaluasi fungsi objektif (fitness) c. OperasiMutasi

(52)

Berdasarkan langkah-langkah penyelesaian hasil analisa diatas, maka langkah berikutnya adalah membuat rancangan tampilan aplikasi yang merupakan awal atau landasan dari program yang akan dibuat dalam Tugas Akhir ini.

3.2. Rancangan Pr ogr am

Disini akan dibahas mengenai rancangan awal dari tampilan program yang akan dibuat. Rancangan disini hanya dibuat dengan sketsa tampilan awal program saja.

3.2.1. Rancangan Pr ogram Algor itma Simulated Annealing

Gambar 3.1. Rancangan awal tampilan program algoritmasimulated annealing Titik/cities

Temperatur

Delta

Start Proses

(53)

Dari gambar 3.1. diatas, maka dapat dijabarkan bahwa rancangan awal program ini hanya memasukkan 3 parameter yaitu node/titik/cities, Temperatur, dan Delta. Dimana masing-masing parameter, user dapat memasukkan sesuai keinginan,tetapi tidak melebihi batasan yg ditentukan. Sebagai contoh, user memasukkan nilai parameter titik/cities sebanyak 50, temperatur 10 dan delta 0,99.

Disini nilai Delta dibatasi maksimal senilai 0,99, Temperatur 100 dan titik/node/cities juga 100.

3.2.2. Rancangan Pr ogram Algor itma Genetika

algoritmaGenetika Jumlah Populasi

Mutasi Titik/cities

Start Proses

(54)

Gambar 3.2. menunjukkan rancangan awal program menggunakan algoritma genetika. Hampir sama dengan gambar 3.1. yang menunjukkan rancangan awal program menggunakan algoritma simulated annealing, pada gambar 3.2. juga memasukkan 3 parameter. Hanya saja perbedaan terletak di parameter jumlah populasi dan mutasi dimana di algoritma simulated annealing parameternya menggunakan temperatur dan delta, maka di algoritma genetika parameternya menggunakan jumlah populasi dan mutasi.

Pada algoritmagenetika ini juga, user dapat memasukkan nilai parameter sesuai keinginan. Dan seperti halnya simulated annealing, algoritma genetika juga diberi batasan nilai yang tidak boleh dilanggar oleh user. Seperti batasan nilai pada node/titik yang tidak melebihi 100, jumlah populasi maksimal 100 dan nilai mutasi kurang dari 0,99.

(55)

3.3. Flowchar t Pr ogr am menggunakan algor itma Simulated Annealing

(56)

3.4. Penjelasan Flowchar t Pr ogram

Setelah dibuat flowchart program dari masing-masing metode,maka selanjutnya akan coba dibahas flowchart kedua metode yaitu genetika dan simulated annealing.

3.5. Penjelasan Flowchar t Pr ogram Simulated Annealing

1. Start.

2. Menentukan nilai awal node sebanyak n node kurang dari 100 node. 3. Pembuatan node sebanyak n node.

4. Pengisian nilai Temperatur dan Delta.

5. For i = 0, Proses perloop dengan penginisialisasian i = 0.

6. Jika i lebih kecil city_count maka akan melakukan proses selanjutnya dan jika tidak maka i++, maka melakukan proses sebelumnya.

7. Pencarian node sebanyak n node dengan randomisasi.

8. Hasil yang dibutuhkan dalam waktu pencarian dengan randomisasi berkisaran waktu yang ditempuh.

(57)

3.6. Flowchar t Pr ogr am menggunakan algor itma Genetika

(58)

3.7. Penjelasan Flowchar t Pr ogram Genetika

1. Start.

2. Menentukan nilai awal node sebanyak n node kurang dari 100 node. 3. Pembuatan node sebanyak n node.

4. Pengisian nilai Jumlah Populasi dan Mutasi.

5. For i = 0, Proses perloop dengan penginisialisasian i = 0.

6. Jika i lebih kecil citylist.lenght maka akan melakukan proses selanjutnya dan jika tidak maka i++, akan melakukan proses sebelumnya.

7. Pencarian node sebanyak n node dengan randomisasi.

8. Hasil yang dibutuhkan dalam waktu pencarian dengan randomisasi berkisaran waktu yang ditempuh yang telah dikomputasi.

9. End.

3.8. Per ancangan Sistem

Perancangan sistem adalah suatu proses yang menggambarkan bagaimana suatu sistem dibangun untuk memenuhi kebutuhan pada fase analisis. Adapun tahap yang dilakukan dalam perancangan sistem ini membahas mengenai tujuan perancangan sistem, dan perancangan antar muka.

3.9. Tujuan Per ancangan Sistem

(59)

yang utuh dan berfungsi. Selain itu juga perancangan bertujuan untuk lebih mengarahkan sistem yang terinci, yaitu pembuatan perancangan yang jelas dan lengkap yang nantinya akan digunakan untuk pembuatan simulasi. Aplikasi ini dibuat dengan sederhana, sehingga diharapkan user dapat dengan mudah menggunakan aplikasi ini.

Manfaat lain yang didapat dari perancangan sistem adalah apabila dalam proses implementasi terjadi hambatan, dapat dilakukan perancangan ulang sistem secara lebih mudah dengan demikian pengembang dapat menghemat waktu dan mereview kembali kelemahan dari desain sistem yang lama.

Maka dari uraian tersebut dapat disimpulkan bahwa perancangan sistem memegang peranan cukup penting selama proses pembuatan perangkat lunak dalam Tugas Akhir ini.

3.10. Simulasi Pener apan Algor itma Genetika

Berikut contoh persoalan rute yang diselesaikan dengan menggunakan algoritma genetika. Terdapat 7 buah kota yang akan dilalui oleh seorang pedangang keliling, misalnya Kota A,B,C,D,E,F,G. Perjalanan dimulai dari kota A dan berakhir di kota G. Jarak antar kota diperlihatkan pada graf di bawah ini:

(60)

Gambar 3.5. Gr af ABCDEFG

Persoalan Shortest Path tersebut akan diselesaikan dengan menggunakan algoritma genetika. Pemilihan nilai fitness yang terendah sebagai syarat karena nilai tersebut yang merepresentasikan jarak terdekat yang dicari pada persoalan ini. Ada 5 kota yang akan menjadi gen dalam kromosom yaitu kota-kota selain kota asal.

a. Inisialisasi

Misalkan kita menggunakan 5 buah populasi dalam satu generasi, yaitu : Kr omosom[1] = [B E C D F ]

(61)

b. Evaluasi Kromosom

Kemudian kita akan menghitung nilai fitness dari tiap kromosom yang telah dibangkitkan pada langkah a di atas.

Fitness[1] = AB + BE +EC + CD + DF + FG

= 134.54 + 156.20 + 266.27 + 76.16 + 193.13 + 50 = 876.30 Fitness[2] = AB + BC + CD + DE + EF + FG

= 134.54 + 111.80 + 76.16 + 262.49 + 205.91 + 50 = 840.90 Fitness[3] = AC + CB + BD + DE + EF + FG

= 196.47 + 111.80 + 131.53 + 262.49 + 205.91 + 50 = 958.20 Fitness[4] = AB + BD + DC + CE + EF + FG

= 134.54 + 131.53 + 76.16 + 266.27 + 205.91 + 50 = 864.41 Fitness[5] = AE + EB + BC + CD + DF + FG

= 202.24 + 156.20 + 111.80 + 76.16 + 193.13 + 50 = 789.53

c. Seleksi Kromosom

Oleh karena pada persoalan Shortest path yang diinginkan yaitu kromosom dengan fitness yang lebih kecil akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse.

(62)

Q[5] = 1 / 789.53 = 0,0013

Total = 0,0011 + 0,0012 + 0,0010 + 0,0011 + 0,0013 = 0,0057 Untuk mencari probabilitas kita menggunakan rumus berikut :

P[i] = Q[i] / Total

P[1] = 0,0011 / 0,0057 = 0,193 P[2] = 0,0012 / 0,0057 = 0,210 P[3] = 0,0010 / 0,0057 = 0,175 P[4] = 0,0011 / 0,0057 = 0,193 P[5] = 0,0013 / 0,0057 = 0,228

Dari probabilitas di atas terlihat bahwa kromosom ke-5 memiliki fitness paling kecil oleh karena itu memiliki probabilitas untuk terpilih pada generasi selanjutnya lebih besar daripada kromosom lainnya.

d. Cr ossover

Titik awal yaitu kota A dibandingkan dengan kota-kota yang merupakan tetangga, yaitu kota B,C,D,E,F,G. Kemudian dilihat jarak terpendek dari kota A menuju ke beberapa kota tetangga. Dihasilkan penukaran terpendek diantara 5 Hop yaitu AB,AC,AD,AE,AF. Diantara 5 hop tersebut nilai yang kecil adalah AB. Maka A ditukar dengan B.

(63)

dibandingkan lagi dengan E dan F. Dihasilkan F dengan nilai minimum. Maka didapat kromosom [BCDF] dengan nilai fitness = AB + BC + CD + DF + FG = 134.54 + 111.80 + 76.16 + 193.13 + 50 = 565.63

Pada 1 generasi telah terlihat bahwa terdapat nilai fitness terkecil yang sedikit berubah, tetapi hal itu tidak menjadi masalah karena nilai fitness crossover tidak melebihi nilai fitness pada kromosom. Apabila perhitungan dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak akan berubah. Walaupun perhitungan cukup dijabarkan hingga generasi ke-1 saja namun solusi yang mendekati optimal telah didapatkan.

3.11. Simulasi Pener apan Algor itma Simulated Annealing

Setelah pada bagian sebelumnya dibahas simulasi penerapan dengan algoritma Genetika, sekarang penulis mencoba pencarian rute terpendek dengan menggunakan algoritma Simulated Annealing. Contoh graf masih sama seperti pada gambar 3.5.

Misalkan kita menggunakan 5 buah Temperatur, yaitu : [1] = [B E C D F ]

(64)

Evaluasi

Kemudian kita akan menghitung nilai Energi dari tiap Temperatur yang telah dibangkitkan pada langkah a di atas.

[1] = AB + BE +EC + CD + DF + FG

= 134.54 + 156.20 + 266.27 + 76.16 + 193.13 + 50 = 876.30 [2] = AB + BC + CD + DE + EF + FG

= 134.54 + 111.80 + 76.16 + 262.49 + 205.91 + 50 = 840.90 [3] = AC + CB + BD + DE + EF + FG

= 196.47 + 111.80 + 131.53 + 262.49 + 205.91 + 50 = 958.20 [4] = AB + BD + DC + CE + EF + FG

= 134.54 + 131.53 + 76.16 + 266.27 + 205.91 + 50 = 864.41 [5] = AE + EB + BC + CD + DF + FG

= 202.24 + 156.20 + 111.80 + 76.16 + 193.13 + 50 = 789.53

(65)

IMPLEMENTASI DAN PENGUJ IAN

4.1. Penggunaan Perangkat

Dalam pembuatan Tugas Akhir ini, perangkat keras yang dipergunakan oleh penulis, yaitu :

a. Laptop Toshiba Satellite M645 Premier Series

b. Processor Intel(R) core(TM) i3 2,40 Ghz

c. Memory 2048 MB

d. Hard Disk Drive 500 GB

e. Monitor LCD Display 14.0 Inch

f. keyboard

Sedangkan perangkat lunak yang dipergunakan antara lain :

a. Sistem Operasi Microsoft Windows 7 Home Premium

b. Microsoft Office Profesional Edition 2010,digunakan untuk pembuatan laporan Tugas Akhir

(66)

4.2. Implementasi Hasil Perancangan

Berikut ini merupakan implementasi dari hasil perancangan yang telah dibuat sebelumnya. Dalam melakukan proses implementasi ini, terdapat beberapa penyesuaian yang diperlukan sesuai kebutuhan agar aplikasi yang dibangun dapat berjalan dengan baik. Penyesuaian yang dilakukan meliputi penggunaan tipe data ataupun pembuatan prosedur atau fungsi, yang mungkin tidak terdapat dalam proses analisis ataupun perancangan sistem.

4.2.1. For m Utama Perangkat Lunak

(67)

Gambar 4.1. Tampilan awal java developer tools

(68)

Source Code Tampilan Simulated Annealing publicvoid setStatus(String status){

this.status = status; }

publicvoid startThread(){ // get the number of cities

int noTitik = 1; tr y{

CITY_COUNT = Integer.parseInt(ctrlCities.getText());

} catch (NumberFormatException e){} // create a random list of cities

citiesSA = new City[CITY_COUNT]; myCities = new City[CITY_COUNT]; for (int i = 0; i < CITY_COUNT; i++){

citiesSA[i] = new City((int) (10 + (Math.random()) * (560)), (int) (10 + (Math.random()) * (440)), noTitik);

myCities[i] = citiesSA[i]; noTitik++;

}

started = tr ue;

// start up the background thread

if (worker != null) worker = null;

worker = new SimulateAnnealing(this); worker.setPriority(Thread.MIN_PRIORITY); worker.start();

update(); }

(69)

Gambar 4.2. Form utama program dengan AlgoritmaSimulated Annealing

(70)

Source Code Tampilan Genetika publicvoid startThread() {

// create a random list of cities CITY_COUNT =

Integer.parseInt(txtTitik.getText().replaceAll(",", ".")); POPULATION_SIZE =

Integer.parseInt(txtPopulasi.getText().replaceAll(",", ".")); MUTATION_PERCENT =

Double.parseDouble(txtMutasi.getText().replaceAll(",", ".")); matingPopulationSize = POPULATION_SIZE/2; favoredPopulationSize = matingPopulationSize/2;

cutLength = CITY_COUNT/5;

int noTitik = 1;

cities = new City[CITY_COUNT]; for ( int i=0;i<CITY_COUNT;i++ ) {

cities[i] = new City(560,440,noTitik);

cities[i] = sa.myCities[i]; noTitik++;

}

// create the initial chromosomes

chromosomes = new Chromosome[POPULATION_SIZE];

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

chromosomes[i] = new Chromosome(cities);

chromosomes[i].setCut(cutLength);

chromosomes[i].setMutation(MUTATION_PERCENT);

}

(71)

Ga mbar 4.3. Form utama program dengan AlgoritmaGenetika

Pada gambar 4.3.diatas, merupakan tampilan awal program dengan menggunakan algoritma genetika. Sama seperti pada gambar 4.2. yang merupakan representasi dari program dengan menggunakan algoritma simulated annealing, maka pada tampilan ini juga parameternya juga masih kosong atau belum dimasukkan nilai.

4.2.2. Data Masukan

(72)

genetika parameter masukan meliputi jumlah populasi dan mutasi, sedangkan pada algoritmasimulated annealingparameterinput adalah temperatur dan delta.

4.2.3. Data Saat Pemr osesan

Data yang diperlukan selama proses berlangsung adalah data jarak yang diperoleh dari pengurangan koordinat masing-masing kota dengan kota lain. menggunakan rumus jarak maka dianggap jarak antara kota 1 dan kota 2 sama dengan jarak kota 2 ke kota 1. Disamping data dari parameter input, juga diperlukan data selama proses berlangsung seperti data dari populasi yang mewakili sebuah lintasan dengan cara pembangkitan bilangan acak. Data ini diproses dan diganti selama iterasi berlangsung.

4.2.4. Data k eluar an

Data keluaran yang dihasilkan adalah nilai terbaik dari proses yaitu jarak terpendek, yang mana data ini dinyatakan dengan bilangan real. Data lain untuk data keluaran ini adalah waktu yang diperlukan untuk menemukan solusi.

4.3. Pengujian Sistem

Pengujian sistem diperlukan sebagai upaya untuk mengetahui hasil implementasi yang dilakukan apakah sudah menjawab rumusan masalah dan tujuan yang ingin dicapai dalam Tugas Akhir ini.

4.3.1. Pr ogr am Algor itma Genetika

(73)

diselesaikan seperti yang telah dijelaskan diatas, maka koordinat dari masing-masing kota yang akan diuji dapat ditentukan secara random. Jumlah input untuk parameter jumlah kota diisi dengan nilai integer. Parameterparameter input yang lain seperti jumlah populasi dan mutasi dapat dimasukkan sesuai dengan keinginan.

Source code penyelesaian dengan algoritma genetika dengan input n = 10

pr ivate JPanel getParameter(){

JPanel p = new JPanel(new GridLayout(6, 1));

p.setBorder(BorderFactory.createTitledBorder("Parameter")); p.add(lblTitik = new JLabel("Jumlah Titik/City :"));

p.add(txtTitik = new JTextField("10"));

p.add(lblPopulasi = new JLabel("Jumlah Populasi")); p.add(txtPopulasi = new JTextField("100"));

p.add(lblMutasi = new JLabel("Mutasi")); p.add(txtMutasi = new JTextField("0.2"));

r etur n p; }

pr ivate JPanel getButtonPanel(){

JPanel p = new JPanel(new GridLayout(2, 0, 5, 5)); p.setBorder(BorderFactory.createTitledBorder("Proses"));

p.add(btnMulai = new JButton("Start"));

r etur n p; }

pr ivate JPanel getPanelHasil(){

JPanel p = new JPanel(new GridLayout(2, 2));

p.setBorder(BorderFactory.createTitledBorder("Hasil Komputasi Algoritma Genetika"));

p.setPreferredSize(new Dimension(700, 100)); lblhsl = new JLabel("Hasil Komputasi : "); lblhsl.setHorizontalAlignment(JLabel.RIGHT); p.add(lblhsl);

hasil = new JLabel();

hasil.setHorizontalAlignment(JLabel.LEFT); p.add(hasil);

RuntimeLabel = new JLabel("Waktu : ");

RuntimeLabel.setHorizontalAlignment(JLabel.RIGHT); p.add(RuntimeLabel);

p.add(RuntimeValue = new JLabel());

RuntimeValue.setHorizontalAlignment(JLabel.LEFT); SetRuntimeValue("00:00:00");

SecondsRunning = 0; r etur n p;

(74)

Gambar 4.4. Output penyelesaian dengan algoritmaGenetika dengan n = 10

Disini penulis mencoba memasukkan paramater ttik sebesar 10, dimana merupakan representasi dari angka kecil.

4.3.2. Pr ogr am Algor itma Simulated Annealing

(75)

Source code penyelesaian dengan algoritma Simulated annealing dengan input n = 10

publicvoid init() {

setLayout(new BorderLayout());

rbSA = new JRadioButton("Simulated Annealing", tr ue); rbGA = new JRadioButton("Genetic Algoritm", false); group = new ButtonGroup();

group.add(rbSA); group.add(rbGA); cntrlPanel = new Panel(); cntrlPanel.add(rbSA); cntrlPanel.add(rbGA);

//cntrlPanel.add(new JLabel("ComboBox")); this.add(cntrlPanel, BorderLayout.NORTH); this.add(getPanelParameter(), BorderLayout.WEST); this.add(getPanelHasil(), BorderLayout.SOUTH);

// set the default values ctrlTemp.setText("100"); ctrlDelta.setText("0.99"); ctrlCities.setText("10");

rbGA.addActionListener(new ActionListener() {

@Override

publicvoid actionPerformed(ActionEv

Gambar

Gambar 2.1 Graf ABCD
Tabel 2.1  Penyelesaian enumerasi
Gambar 2.3. Macam-macam busur
Gambar 2.4. Graf berbobot ABCDEFG
+7

Referensi

Dokumen terkait

Menurut Sugianto (2013), Modul elektronik (e-modul) adalah sebuah bentuk penyajian bahan belajar mandiri yang disusun secara sistematis ke dalam unit pembelajaran

Hasil penelitian ini menujukkan (1) bahan dan alat yang digunakan dalam proses pembuatan patung berbahan dasar serbuk gergaji karya siswa SMAN 1 Asembagus,

Bab tentang prakiraan dampak penting yang diutarakan dalam studi ANDAL daerah lahan basah pada dasarnya harus dapat menggambarkan tentang:.. 1) Analisis prakiraan dampak

Sebagai contoh untuk sistem transmisi direct couple antara generator dengan turbin pada head rendah, sebuah turbin reaksi (propeller) dapat mencapai putaran

Sebagai langkah untuk meningkatkan dana zakat, Majlis Ugama Islam Dan Adat Resam Melayu Pahang telah memutuskan untuk mewajibkan setiap individu yang mempunyai sumber

Dari hasil temuan dan analisis penelitian, ada beberapa hal yang dapat dijadikan sebagai saran atau masukan, antara lain bagi (1) Kepala sekolah hendaknya

Pengasinan telur dengan 15 hari aroma bawang putih sudah tidak tercium dengan bau yang khas melainkan baunya tercium aroma lain, hal ini bisa jadi karena semakin lamanya

Pemanfaatan  teknologi  informasi  dan  komunikasi  dalam  dunia  pendidikan  di  Indonesia  sejalan  dengan  kebijakan  pemerintah  yang  tertuang  dalam