• Tidak ada hasil yang ditemukan

IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK MENYELESAIKAN MASALAH SHORTEST PATH DALAM KASUS PENGANGKUTAN KONTAINER SAMPAH SAR BARITA LUMBAN GAOL

N/A
N/A
Protected

Academic year: 2022

Membagikan "IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK MENYELESAIKAN MASALAH SHORTEST PATH DALAM KASUS PENGANGKUTAN KONTAINER SAMPAH SAR BARITA LUMBAN GAOL"

Copied!
123
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK MENYELESAIKAN MASALAH SHORTEST PATH

DALAM KASUS PENGANGKUTAN KONTAINER SAMPAH

SKRIPSI

SAR BARITA LUMBAN GAOL 141421010

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2017

(2)

IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK MENYELESAIKAN MASALAH SHORTEST PATH

DALAM KASUS PENGANGKUTAN KONTAINER SAMPAH

SKRIPSI

SAR BARITA LUMBAN GAOL 141421010

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2017

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK

MENYELESAIKAN MASALAH SHORTEST PATH DALAM KASUS PENGANGKUTAN KONTAINER SAMPAH

Kategori : SKRIPSI

Nama : SAR BARITA LUMBAN GAOL

Nomor Induk Mahasiswa : 141421010

Program Studi : EKSTENSI SARJANA (S1) ILMU KOMPUTER

Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi pembiming :

Pembimbing 2 Pembimbing 1

Amalia, S.T., M.T. Dr. Poltak Sihombing, M.Kom.

NIP : 197812212014042001 NIP : 196203171991031001

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom.

NIP. 196203171991031001

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA S-DIJKSTRA UNTUK MENYELESAIKAN MASALAH SHORTEST PATH DALAM KASUS PENGANGKUTAN

KONTAINER SAMPAH

SKRIPSI

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

Medan, Maret 2017

Sar Barita Lumban Gaol 141421010

(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa, karena atas kasih dan karunia-Nya penulis dapat menyelesaikan penelitian ini. Terimakasih yang pertama penulis sampaikan kepada Ayahanda S. Lumban Gaol dan Ibunda R. Br Simangunsong yang telah mendidik, mendoakan, dan memberi kasih sayangnya kepada penulis sejak kecil hingga penyelesaian studi ini.

Banyak bantuan berupa uluran tangan, motivasi, buah pikiran dan kerjasama yang telah penulis terima selama menempuh studi sampai dengan penyelesaian penelitian ini. Oleh karena itu, penulis ingin menyampaikan ucapan terimakasih kepada pihak-pihak yang telah membantu. Ucapan terima kasih penulis sampaikan kepada :

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fasilkom-TI USU.

3. Bapak Dr. Poltak Sihombing, M. Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan juga sebagai Dosen Pembimbing I yang telah memberikan bimbingan dan dukungan kepada penulis.

4. Ibu Dr. Maya Silvi Lydia, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Ibu Amalia, S.T, M.T selaku Dosen Pembimbing II yang telah memberikan bimbingan dan dukungan kepada penulis.

6. Ibu Dian Rachmawati, S.Si., M.Kom selaku Dosen Pembanding I yang telah memberikan bimbingan dan dukungan kepada penulis.

7. Ibu Sri Melvani Hardi, S.Kom., M.Kom selaku Dosen Pembanding II yang telah memberikan bimbingan dan dukungan kepada penulis.

8. Seluruh tenaga pengajar dan pegawai di Fakultas Imu Komputer dan Teknologi Informasi USU, terkhususnya di Program Studi S1 Ilmu Komputer.

9. Seluruh keluarga yang selalu memberikan motivasi, mendoakan serta memberikan semangat kepada penulisi dalam menyelesaikan skripsi ini.

10. Sahabat pejuang skripsi yang saling berbagi ilmu pengetahuan, pemikiran, motivasi dan dukungan kepada penulis.

(6)

11. Teman-teman kuliah Ekstensi Ilmu Komputer angkatan 2014, yang telah berbagi motivasi, rasa kebersamaan, dan inspirasi kepada penulis.

12. Semua pihak yang terlibat langsung atau tidak langsung yang penulis tidak dapat tuliskan satu persatu.

Semoga Tuhan melimpahkan berkah dan kasih sayang-Nya kepada semua pihak yang telah memberikan bantuan, semangat, dan dukungan serta perhatian kepada pennulis dalam menyelesaikan penelitian ini. Semoga penelitian ini bermanfaat bagi penulis, pendidikan, masyarakat, organisasi atau negara.

Medan, Maret 2017

Penulis.

(7)

ABSTRAK

Meningkatnya populasi masyarakat mengakibatkan meningkatnya aktivitas dan kebutuhan di berbagai sektor sehingga berdampak pada meningkatnya volume sampah yang dihasilkan masyarakat. Sampah yang bertumpuk mengakibatkan pencemaran udara. Pengangkutan yang jauh antar kontainer dan Tempat Pembuangan Akhir (TPA) membutuhkan perhitungan yang cukup teliti. Kendala yang dihadapi adalah mengoptimalkan waktu angkut kontainer sampah menuju Tempat Pembuangan Akhir (TPA) dengan menemukan jalur terpendek. Shortest path adalah pencarian jalur terpendek antar simpul dalam sebuah graf berbobot dengan panjang lintasan minimum. Algoritma S-Dijkstra adalah algoritma single source shortest path untuk pencarian rute terpendek dari satu buah simpul ke semua simpul yang terdapat dalam sebuah graf.Penelitian ini menjelaskan bagaimana mengimplementasikan algoritma S- Dijkstra untuk menyelesaikan masalah shortest path dalam kasus pengangkutan kontainer sampah. Hasil akhir yang diperoleh adalah ditemukan jalur terpendek dari lokasi kantor Dinas Kebersihan menuju lokasi kontainer sampah, dari lokasi kontainer sampah menuju Tempat Pembuangan Akhir (TPA) dan sebaliknya, dan dari TPA menuju kantor Dinas Kebersihan.

Kata kunci: Graf, Shortest Path, S-Dijkstra, Pengangkutan Sampah, Pengelolaan Sampah

(8)

IMPLEMENTATION OF S-DIJKSTRA ALGORITHM TO SOLVE SHORTEST PATH PROBLEM IN CASE OF TRASH CONTAINER

TRANSPORT ABSTRACT

Increasing population resulting in increased activity and needs in various sectors so the impact increasing the volume of waste.Garbage piled cause air pollution.

Distances between containers and landfills require accurate calculation. The problem is optimizing transportation time to the landfills by finding the shortest path. Shortest path is finding a minimum path between two vertices (or node) in a weihgted graph.

S-Dijkstra is single source shortest path algorithm to finding the shortest path from single node to all nodes contained in a weighted graph. This paper describes how to implementaion S-Dijkstra algorithm to solve shortest path problem in case of trash container transport. The final result is find the shortest path from sanitary agency to location of trash container, from location of trash container to landfills and vice versa, and from landfills tosanitary agency.

Keywords: Graph, S-Dijkstra, Shortest Path, Garbage Transport, Waste Management

(9)

DAFTAR ISI

Hal.

Persetujuan i

Pernyataan ii

Penghargaan iii

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Daftar Lampiran xii

Bab1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 2

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 3

Bab 2 Landasan Teori

2.1 Pengangkutan sampah 5

2.1.1 Pola pengangkutan sampah dengan sistem pengosongan kontainer

5

2.2 Graf 6

2.3 Lintasan Terpendek (Shortest Path) 8

2.4 Algoritma 9

2.5 Algoritma S-Dijkstra 9

2.5.1 Cara kerja algoritma S-Dijkstra 10

2.5.2 Flowchart algoritma S-Dijkstra 17

Bab 3 Analisis Dan Perancangan Sistem

3.1 Analisis Sistem 18

3.1.1 Analisis Masalah 18

3.1.2 Analisis Kebutuhan Sistem 19

3.1.3 Analisis Proses 20

3.2 Pemodelan Sistem 20

3.2.1 Use Case Diagram 21

3.2.2 Activity Diagram 21

3.2.3 Sequence Diagram 22

3.3 Flowchart Sistem 22

3.4 Perancangan Antarmuka Sistem 23

3.4.1 Halaman MainForm 23

3.4.2 Halaman Pengujian 24

(10)

3.4.3 Halaman Pengolahan Data 25

3.4.4 Halaman Peta 26

Bab 4 Implementasi Dan Pengujian Sistem

4.1 Implementasi Sistem 28

4.1.1 Form Halaman Utama 28

4.1.2 Form Pengujian 29

4.1.3 Form Pengolahan Data 29

4.1.4 Form Peta 30

4.2 Potongan Kode Program 31

4.2 Pengujian Sistem 32

4.3 Pengujuan Menggunakan Perhitungan Manual 36

Bab 5 Penutup

5.1 Kesimpulan 62

5.2 Saran 62

Daftar Pustaka 63

(11)

DAFTAR TABEL

Nomor Tabel

Nama Tabel Halaman

4.1. Keterangan graf yang digunakan pada sistem 32 4.2. Perhitungan algoritma dengan node A sebagai sumber dan node

U sebagai tujuan.

60

(12)

DAFTAR GAMBAR

Nomor Gambar

Nama Gambar Halaman

2.1 Graf tak berarah. 7

2.2 Graf berarah 8

2.3 Graf berbobot dengan node a sebagai keberangkaran dan node z sebagai tujuan

11

2.4 Node a sebagai node keberangkatan. 11

2.5 Rute sementara {a} 12

2.6 Node c sebagai node keberangkatan. 12

2.7 Rute sementara {a,c} 13

2.8 Node b sebagai node keberangkatan. 13

2.9 Rute sementara {a,c,b}. 14

2.10 Node d sebagai node keberangkatan 14

2.11 Rute sementara {a,c,b,d}. 15

2.12 Node esebagai node keberangkatan. 15

2.13 Jarak terpendek = 13. 15

2.14 Rute dari node a ke node z dengan rute {a,c,b,d,e,z} dengan nilai = 13.

16

2.15 Flowchart algoritma S-Dijkstra 17

3.1 Diagram Ishikawa 19

3.2 Tahapan pengerjaan dari awal sampai akhir 20

3.3 Use Case Diagram 22

3.4 Activity Diagram 22

3.5 Sequence Diagram 23

3.6 Flowchart Sistem 24

3.7 Main Form 25

3.8 Form Pengujian 25

3.9 Form Pengolahan Data 26

3.10 Form Peta 28

4.1 Form Pengujian 30

4.2 Form Pengolahan Data 31

(13)

4.4 Graf pada yang digunakan pada sistem. 32 4.5 Hasil pencarian rute terpendek dari node A ke node U. 34

4.6 Iterasi 1 35

4.7 Iterasi 2 36

4.8 Iterasi 3 37

4.9 Iterasi 4 38

4.10 Iterasi 5 39

4.11 Iterasi 6 40

4.12 Iterasi 7 41

4.13 Iterasi 8 42

4.14 Iterasi 9 43

4.15 Iterasi 10 44

4.16 Iterasi 11 45

4.17 Iterasi 12 46

4.18 Iterasi 13 47

4.19 Iterasi 14 48

4.20 Iterasi 15 49

4.21 Iterasi 16 50

4.22 Iterasi 17 51

4.23 Iterasi 18 52

4.24 Iterasi 19 53

4.25 Iterasi 20 54

4.26 Iterasi 21 55

4.27 Iterasi 22 56

4.28 Iterasi 23 57

4.29 Iterasi 24 58

4.30 Iterasi 25 59

(14)

DAFTAR LAMPIRAN

Halaman

Lampiran 1:Listing Program A-1

Lampiran 2: Daftar Riwayat Hidup B-1

(15)

BAB 1 PENDAHULUAN

1.1.Latar Belakang

Meningkatnya populasi masyarakat di kota Medan mengakibatkan meningkatnya aktivitas dan kebutuhan di berbagai sektor, sehingga juga berdampak pada meningkatnya volume sampah yang dihasilkan masyarakat. Sampah yang bertumpuk dapat mengakibatkan pencemaran udara seperti bau tidak sedap.

Pengangkutan sampah adalah sistem yang bersasaran membawa sampah dari lokasi pemindahan sampah atau dari sumber sampah secara langsung menuju Tempat Pembuangan Akhir atau disingkat TPA. Pengangkutan sampah merupakan salah satu komponen penting dan membutuhkan perhitungan yang cukup teliti, dengan sasaran mengoptimalkan waktu angkut yang diperlukan dalam sistem tersebut, khususnya bila lokasi titik tujuan sampah relatif jauh sehingga perlu dicari solusi untuk masalah tersebut. Pencarian rute terpendek merupakan salah satu jawaban yang dapat menjawab permasalahan tersebut.

Untuk mencari rute terpendek dengan lokasi yang sudah ditetukan maka dapat dibuat sebuah aplikasi shortest path dengan mengimplementasikan algoritma S- Dijkstra dan parameter yang digunakan adalah jarak.

Permasalahan yang dituntut adalah mencari rute terpendek dari suatu lokasi kontainer sampah menuju TPA berdasarkan posisi kontainer yang digambarkan kedalam sebuah graf serta menghitung real running time programnya.

Algoritma S-Dijkstra adalah algoritma single source shortest path yang digunakan untuk mencari rute terpendek pada sebuah graf. Cara kerjanya dimana pada setiap langkah dipilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang sudah terpilih dengan simpul lain yang belum terpilih.

(16)

1.2.Rumusan Masalah

Berdasarkan dari latar belakang, maka didapat rumusan masalah yang akan dibahas pada penelitian ini yaitu;

1. Bagaimana menentukan rute terpendek dari lokasi tujuan berdasarkan lokasi Dinas Kebersihan, lokasi kontainer dan TPA ?

2. Bagaimana mengimplementasikan algorima S-Dijkstra untuk mencari rute terpendek?

1.3.Batasan Masalah

Adapun yang menjadi batasan masalah dari penelitian ini yaitu:

1. Dalam penelitian ini yang diteliti yaitu graf terhubung menggunakan graf statis dengan bobot jarak.

2. Dari sumber ke tujuan tidak ada hambatan seperti kemacetan, lampu merah dan sebagainya.

3. Aplikasi offline menggunakan static map, sehingga digunakan hanya untuk menampilkan hasil pencarian, tidak dapat mengambil koordinat yang ditunjuk pengguna.

4. Perhitungan dilakukan dengan membandingkan real running time pencarian lintasan terpendek dengan menggunakan algoritma S-Dijkstra.

5. Running time dihitung dalam satuan millisecond(ms).

6. Sumber peta yang digunakan diambil dari Google Maps.

7. Program dibuat menggunakan bahasa C# dengan IDE Visual Studio.

1.4.Tujuan Penelitian Tujuan penelitian ini adalah:

1. Membuat suatu aplikasi yang dapat membantu menentukan rute terpendek (shortest path) berdasarkan lokasi Dinas Kebersihan, kontainer, dan TPA.

2. Mengimplementasikan algoritma S-Dijkstra untuk menyelesaikan masalah shortest path berdasarkan lokasi yang sudah ditentukan.

1.5.Manfaat Penelitian

(17)

1. Menjadi bahan referensi selanjutnya mengenai algoritma S-Dijkstra untuk menyelesaikan masalah shortest path menuju suatu titik.

2. Memahami cara kerja algoritma S-Dijkstra dalam mencari rute terpendek.

1.6.Metode Penelitian

Metode penelitian yang digunakan dalam penelitian ini adalah:

1. Studi literatur

Pengerjaan skripsi ini dilakukan dengan mengumpulkan informasi mengenai pengangkutan kontainer sampah dan mempelajari algoritma S- Dijkstra, shortest path, graf, lokasi kontainer sampah dan TPA, dengan mengumpulkan sumber-sumber informasi baik dari buku, jurnal, makalah dan sumber lainnya yang mendukung penelitian ini.

2. Analisis dan perancangan

Pada bagian ini akan dibahas mengenai hal apa saja yang dibutuhkan dalam penelitian ini dan kemudian merancang sistem dengan membuat gambaran sistem menggunakan flowchart dan user interface.

3. Implementasi

Pada bagian ini rancangan diimplementasikan dengan menggunakan bahasa pemrograman C#.

4. Pengujian

Pada bagian ini sistem akan diuji dengan memasukkan data dan dilakukan pengolahan data menggunakan algoritma S-Dijkstra lalu untuk menentukan rute terpendek.

5. Dokumentasi

Kesimpulan dan hasil dari penelitian ini akan didokumentasikan dalam bentuk karya ilmiah.

1.7.Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama yang dijelaskan

(18)

BAB 1 PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang masalah yang dibahas dalam skripsi, dan juga terdapat rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan skripsi.

BAB 2 LANDASAN TEORI

Dalam bab ini terdapat tujuan teoritis yang berkaitan dengan algoritma S-Dijkstra.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini membahas analisis terhadap masalah penelitian, analisis kebutuhan dalam membangun sisten dan perancangan terhadap sistem yang akan dibangun.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini berisi tentang implementasi sistem berdasarkan tahapan perancangan dengan menggunakan bahasa pemrograman C#.

Kemudian dilanjutkan dengan tahapan pengujian sistem untuk menguji apakah sistem sudah berjalan sesuai dengan perancangan.

BAB 5 KESIMPULAN DAN SARAN

Bab ini merupakan bab penutup yang menguraikan tentang kesimpulan yang didapat penulis dari pembahasaN bab-bab sebelumnya dan saran sebagai masukan terhadap permasalahan yang muncul yang diharapkan

dapat bermanfaat bagi pembaca.

(19)

BAB 2

LANDASAN TEORI

2.1.Pengangkutan Sampah

Pengangkutan sampah merupakan sistem yang bersasaran membawa sampah dari lokasi pemindahan atau dari sumber sampah secara langsung menuju tempat pembuangan akhir, atau TPA. Pengangkutan sampah merupakan salah satu komponen penting dan membutuhkan perhitungan yang cukup teliti, dengan sasaran mengoptimalkan waktu angkut yang diperlukan dalam sistem tersebut, seperti:

Terdapat sarana pemindahan sampah dalam skala cukup besar yang harus ditangani.

Lokasi titik tujuan sampah relatif jauh

Sarana pemindahan merupakan titik pertemuan masuknya sampah dari berbagai area

Perlu diperhitungkan secara teliti masalah jalur menuju titik tujuan TPA.(Juju, 2012)

2.1.1.Pola pengangkutan sampah dengan sistem pengosongan kontainer

Pola pengangkutan sampah dalam hal ini menggunakan pola pengangkutan sampah dengan sistem pengosongan kontainer seperti dijelaskan berikut ini:

Kendaraan sampah akan berangkat dari titik awal yaitu Kantor Dinas Kebersihan.

Kendaraan berangkat dengan membawa kontainer kosong menuju ke lokasi kontainer isi untuk mengganti/mengambil dan langsung membawanya ke TPA.

Kendaraan dengan membawa kontainer kosong dari TPA menuju ke kontainer isi berikutnya.

Demikian seterusnya sampai dengan rit terakhir kemudian kendaraan kembali

(20)

2.2.Graf

Secara kasar graf adalah suatu diagram yang memuat informasi terterntu jika diimpretasikan secara tepat. Dalam kehidupan sehari-hari, graf digunakan untuk menggambarkan berbagai macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah dimengerti. Beberapa contoh graf yang seringdijumpai dalam kehidupan sehari-hari antara lain: struktur organisasi, bagan alir pengambilan mata kuliah, peta, rangkaian listrik dan lain-lain. (Siang, J.-J.2004.)

Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek yang dinyatakan dengan bulatan, atau titik, sedangkan hubungan antar objek dinyatakan dengan garis.

Sebagai contoh, graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G=(V,E), dimana dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul(vertex atau node) dan E adalah himpunan sisi (edges atau arc) yang menghubungkan sepasang simpul.

Simpul pada graf dapat dinomori dengan huruf, seperti a, b, c, ..., v, w, ...

dengan bilangan asli 1, 2, 3, ..., atau gabungan keduanya. Sedangkan sisi yang menghubungkan simpul u dengan simpul v dinyatakan dengan pasangan (u,v) atau dinyatakan dengan lambang e1, e2, .... Dengan kata lain jika e adalah sisi yang menghubungkan simpul u dengan simpul v, maka e dapat ditulis sebagai e=(u,v).(Munir, Rinaldi. 2005).

Graf dapat dikelompokkan menjadi beberapa kategori bergantung pada sudut pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya sisi ganda berdasarkan jumlah simpul atau berdasarkan orientasi arah pada sisi. (Munir, Rinaldi. 2005).Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:

a. Graf Sederhana (Simple Graph)

Graf sederhana adalah graf yang tidak mengandung gelang maupun sisi ganda.

Pada graf sederhana, sisi adalah pasangan tak-terurut (unordered pairs). Jadi menuliskan sisi (u,v) sama saja dengan(v,u). Kita dapat juga mendefinisikan graf sederhana G=(V,E) terdiri dari himpunan tidak kosong simpul-simpul dan E adalah

(21)

b. Graf tak sederhana (Unsimple Graph)

Graf tak sederhana adalah yang mengandung gelang maupun sisi ganda. Sisi pada graf dapat mempunyai orientasi arah. Berdasarkan orientasi arah pada sisi, maka secara umum graf dibedakan menjadi dua jenis yaitu graf tak berarah dan graf berarah.(Munir, Rinaldi.2005).

Graf tak berarah (Undirected graph) yaitu grag yang sisinya tidak mempunyai orientasi arah. Pada graf tak berarah, urutan pasangan simpul yang dihubungkan oleh sisi yang tidak diperhatikan. Gambar 2.1 dibawah ini merupakan contoh graf yang tak berarah.

Gambar 2.1. Graf tak berarah.

Graf berarah (directed graph) yaitu graf yang setiap sisinya diberikan arah disebut sebagai graf berararah. Pada graf berarah (u,v) dan (v,u) menyatakan dua buah unsur yang berbeda, dengan kata lain (u,v) ≠ (v,u). Graf berarah sering dipakai untuk menggambarkan aliran proses, peta lalulintas suatu kota (jalan searah atau dua arah), dan sebagainya. Gambar 2.2 dibawah ini merupakan contoh graf berarah.

Gambar 2.2. Graf berarah

Beberapa istilah yang sering digunakan dalam permasalahan graf adalah:

(22)

a. Adjacent vertex: adalah dua buah simpul berdekatan atau terhubung langsung.

b. Path: adalah jalur melalui edge yang menghubungkan suatu simpul ke simpul yang lain, panjang suatu jalur ditentukan oleh jumlah sisi yang menghubungkan antara dua simpul.

c. Complete graph: adalah graf dimana semua simpul terhubung langsung satu sama lain.

d. Weighted graph: adalah graf yang setiap sisinya memiliki bobot/nilai.

e. Cycle: adalah jalur yang mulai dari suatu simpul dan berakhir pada simpul yang sama.(Dr. Suarga,2012)

2.3.Lintasan Terpendek (Shortest path)

Persoalan mencari lintasan terpendek dalam graf merupakan salah satu persoalanoptimasi. Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph) yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan dan sebagainya. Secara umum “terpendek” berarti meminimalisasi bobot pada suatu lintasan didalam graf.(Munir, Rinaldi.2005).

Ada beberapa macam persoalan lintasan terpendek, antara lain:

a. Lintasan terpendek antara dua buah simpul tertentu.

b. Lintasan terpendek antara semua pasangan simpul.

c. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain.

d. Lintasan terpentek antara dua buah simpul yang melalui beberapa simpul tertentu

Pada penelitian ini persoalan lintasan terpendek yang menjadi masalah adalah lintasan terpendek antara dua buah atau lebih simpul(vertex) dimana bobot pada setiap edge digunakan untuk menyatakan jarak antara lokasi Dinas Kebersihan, kontainer, dan TPA.

2.4. Algoritma

Algoritma merupakan pola pikir terstruktur yang berisi tahap-tahap penyelesaian masalah yang dapat disajikan dengan teknik tulisan maupun dengan gambar. Dalam bidang pemrograman algoritma didefinisikan sebagai suatu metode khusus yang tepat

(23)

dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.(Napitupulu, N. & Sihombing, N.S.2010).

Algoritma adalah sekumpulan instruksi yang jumlahnya terbatas yang apabila dilaksanakan akan menyelesaikan tugas tertentu. Sebagai tambahan, setiap algoritma harus memenuhi kriteria sebagai berikut:

• Input: ada atau tidak ada data yang dimasukkan dari luar

• Output: paling tidak ada satu buah keluaran.

• Definiteness: setiap instruksi jelas maksudnya dan hanya mempunyai satu arti.

• Finiteness: algoritma baik secara keseluruhan maupun sub algoritma bila ditelusuri harus ada titik hentinya.

2.5.Algoritma S-Dijkstra

Algoritma S-Dijkstra merupakan algoritma yang menggunakan ide asli dari algoritma Dijkstra. Perbedaannya adalah dalam struktur data yang digunakan pada saat pemrograman, dimana algoritma Dijkstra menggunakan array sementara algoritma S- Dijkstra mengunakan linked-list dalam struktur datanya. Cara kerjanya adalah sama seperti Dijkstra yaitu mencari sebuah lintasan terpendek dari vertex a ke vertex z dalam graf berbobot, bobot tersebut adalah bilangan positif jadi tidak dapat dilalui oleh node negatif, namun jika terjadi demikian, maka penyelesaian yang diberikan adalah infinity.(Gallo.G & Pallotino.S)

Algoritma S-Dijkstra juga melibatkan pemasangan laberl pada vertex.

Misalkan L(v) menyatakan label dari vertex v. Pada setiap pembahasan, beberapa vertex mempunyai label sementara dan yang lain mempunyai label tetap. Misalkan T menyatakan himpunan vertex yang mempunyai label sementara. Dalam menggambarkan algoritma tersebut vertex-vertex yang mempunyai label tetap akan dilingkari. Selanjutnya, jika L(v) adalah label tetap dari vertex v maka L(v) merupakan panjang lintasan terpendek dari a ke v. Sebelumnya semua vertex mempunyai label sementara. Setiap iterasi dari algoritma tersebut adalah mengubah status suatu label sementara ke tetap, sehingga algoritma dapat berakhir ketika z menerima sebuah label tetap. Pada bagian ini L(z) merupakan pajang lintasan terpendek dari a ke z. (Lubis, S. H).

(24)

2.5.1. Cara kerja algoritma S-Dijkstra

Langkah-langkah dalam algoritma S-Dijkstra untuk menentukan rute terpendek adalah seperti dibawah ini:

• Menginisialisasi titik awal dan jarak tiap node.

• Memberikan bobot = 0 untuk node awal (keberangkatan) dan bobot = ∞ untuk node yang lainnya.

• Memberikan label “Node keberangkatan” pada node awal dan label “belum terlewati” pada node lainnya.

• Menghitung jarak dari awal ke node tetangganya. Lalu node dengan jarak terkecil diberi label node “node terlewati”.

• Simpan jarak terakhir yang bobotnya paling minimal.

• Set node “belum terlewati” dengan jarak terkecil dari node keberangkatan sebagai “node keberangkatan”.

• Bila semua node sudah terlewati maka selesai dan jarak terpendek adalah jarak terakhir yang bobotnya minimal, jika tidak maka akan kembali ke langkah 4.

Berikut akan dijelaskan bagaimana cara kerja algoritma S-Dijkstra dalam mencari rute terpendek pada sebuah graf berbobot (weighted graph) pada gambar 2.3 dibawah ini.

Gambar 2.3. Graf berbobot dengan node a sebagai keberangkaran dan node z sebagai tujuan

Pada gambar 2.4. dibawah ini menunjukkan bahwa simpul a sebagai node awal mempunyai jarak = 0. Lalu pada node lainnya kita beri jarak = ∞ (infinity).

Perhatikan nilai jarak pada node a,b,c,d,e,z karena node a yang memiliki jarak terkecil

(25)

Gambar 2.4. Node a sebagai node keberangkatan.

Kemudian dari node a kita hitung jarak terpendek ke node tetangga yaitu node c dan node b. Yang pertama dari node a ke node b adalah 0 + 4 = 4. Lalu kita bandingkan dengan jarak sementara pada b. Karena 4 <∞ maka nilai jarak pada b kita ganti menjadi = 4. Berikutnya dari node a ke node c adalah 0 + 2 = 2.lalu kita bandingkan dengan jarak sementara pada c. Karena 2 <∞ maka nilai pada jarak c kita ganti menjadi= 2. Rute sementara adalah {a} seperti yang ditunjukan pada gambar 2.5 dibawah ini.

Gambar 2.5. Rute sementara {a}

Perhatikan nilai node b,c,d,e,zkarenanode c yang memiliki jarak terkecil (= 2) maka node c kita jadikan sebagai node keberangkatan. Seperti yang ditunjukan pada gambar 2.6 dibawah ini.

(26)

Gambar 2.6. Node c sebagai node keberangkatan.

Kemudian dari node c kita hitung jarak terpendek ke node tetangga yang belum terlewati yaitu node b, node d, node e. Yang pertama adalah dari node c ke node b adalah 2+1=3. Lalu kita bandingkan dengan jarak sementara pada b.Karena 3 <

4 maka nilai jarak pada b kita ganti menjadi =3. Berikutnya dari node c ke node d adalah 2+8=10. Lalu kita bandingkan dengan jarak sementara pada d. Karena 10<∞

maka nilai jarak pada d kita ganti menjadi = 10. Berikutnya dari node c ke node e adalah 2+10=12. Lalu kita bandingkan dengan jarak sementara pada e. Karena 12 < ∞ maka nilai jarak pada e kita ganti menjadi =12. Rute sementara adalah {a, c} seperti yang ditunjukan pada gambar 3.4 dibawah ini.

Gambar 2.7. Rute sementara {a,c}

Perhatikan nilai node b,d,e,z karena node b yang memiliki jarak terkecil (=3) maka node b kita jadikan sebagai node keberangkatan. Seperti yang ditunjukan pada gambar 2.8 dibawah ini.

(27)

Gambar 2.8. Node b sebagai node keberangkatan.

Kemudian dari node b kita hitung jarak terpendek ke node tetangga yang belum terlewati yaitu node d. Dari node b ke node d adalah 3+5=8. Lalu kita bandingkan dengan jarak sementara pada d. Karena 8 < 10 maka nilai jarak pada d kita ganti menjadi =8. Rute sementara adalah {a,c,b} seperti yang ditunjukan pada gambar 2.9 dibawah ini.

Gambar 2.9. Rute sementara {a,c,b}.

Perhatikan node d,e,z karena node d yang memiliki jarak terkecil (=8) maka node d kita jadikan sebagai node keberangkatan. Seperti yang ditunjukan pada gambar 2.10 dibawah ini.

(28)

Gambar 2.10. Node d sebagai node keberangkatan

Kemudian dari node d kita hitung jarak terpendek ke node tetangga yang belum terlewati yaitu node e dan node z. Yang pertama adalah dari node d ke node e adalah 8+2=10. Lalu kita bandingkan dengan jarak sementara pada e. Karena 10 < 12 maka nilai jarak pada e kita ganti menjadi 10. Berikutnya dari node d ke node z adalah 8+6=14. Lalu kita bandingkan dengan nilai pada z. Karena 14 <∞ maka nilai jarak pada z kita ganti menjadi 14. Rute sementara adalah {a,c,b,d} seperti yang ditunjukan pada gambar 2.11 dibawah ini.

Gambar 2.11. Rute sementara {a,c,b,d}.

Perhatikan node e,z karena node e yang memiliki jarak terkecil maka (=10) maka node e kita jadikan sebagai node keberangkatan. Seperti yang ditunjukan pada gambar 2.12 dibawah ini.

(29)

Gambar 2.12. Node esebagai node keberangkatan.

Kemudian dari node e kita hitung jarak terpendek ke node tetangga yang belum terlewati yaitu node z yaitu 10+3=13. Lalu kita bandingkan dengan jarak sementara pada z. Karena 13<14 maka nilai jarak pada z kita ganti menjadi 13. Rute sementara adalah {a,c,b,d,e} seperti yang ditunjukan pada gambar 2.13 dibawah ini.

Gambar 2.13. Jarak terpendek = 13.

Perhatikan node z karena node z adalah node yang belum terlewati yang mempunyai nilai terkecil dan juga sebagai node tujuan dan jarak nya sudah ditemukan (=13) maka node z kita set sebagai node terlewati. Maka rute terpendek dari node a ke node z adalah {a,c,b,d,e,z} dengan nilai 2+1+5+2+3=13 seperti yang ditunjukan pada gambar 2.14 dibawah ini.

(30)

Gambar 2.14. Rute dari node a ke node z dengan rute {a,c,b,d,e,z} dengan nilai = 13.

2.5.2. Flowchart algoritma S-Dijkstra

Flowchart merupakan gambaran dalam betuk diagram alir dari algoritma dalam suatu program yang menyatakan alur program tersebut. Gambar 4 dibawah ini adalah flowchart untuk algoritma S-Dijkstra.

(31)

Gambar 2.15. Flowchart algoritma S-Dijkstra

(32)

2.5. Penelitian Terdahulu

Penelitian tentang pencarian rute terpendek sudah banyak dilakukan oleh peneliti terdahulu diantaranya :

1. Penelitian yang dilakukan oleh Fitria, Apri Triansyah (2013) yang membahas Implementasi Algoritma Dijkstra Dalam Aplikasi Untuk Menentukan Lintasan Terpendek Jalan Darat Antar Kota Di Sumatera Bagian Selatan, dimana kesimpulan penelitiannya adalah algoritma Dijkstra dapat digunakan untuk mencari rute terpendek secara optimal.

2. Penelitian yang dilakukan oleh Gallo. G & Pallotino. S. 1988melakukan penelitian terhadap algoritma shortest path. Kesimpulan penelitiannya mengatakan bahwa S- Dijkstra merupakan implementasi dari algoritma Dijkstra yang menggunakan linked-list.

3. Penelitian yang dilakukan oleh Gallo. G & Pallotino. S. 1986 membahas tentang penerapan algoritma SPT menggunakan algoritma S-Dijkstra yang merupakan implementasi dari metode Dijkstra dimana kesimpulannya dengan menggunakan linked-list lebih hemat dalam penggunaan memori namun performanya kurang.

4. Penelitian yang dilakukan oleh Eko Budihartono (2013) yang membahas Penerapan Algoritma Dijkstra Untuk Sistem Pendukung Keputusan Bagi Penentuan Jalur Terpendek Pengiriman Paket Pada Travel, dimana kesimpulan penelitiannya adalah algoritma Dijkstra merupakan model yang tepat untuk menghasilkan rute yang efektif bagi pengiriman barang.

5. Penelitian yang dilakukan oleh Bayu Aditya Pradhana (2013) yang membahas Studi dan implementasi persoalan lintasan terpendek suatu graf dengan algoritma Dijkstra dan algoritma bellman-ford, dimana kesimpulan penelitiannya adalah algoritma Dijkstra merupakan salah satu algoritma yang digunakan untuk memecahkan permasalahan lintasan terpendek yang terdapat pada suatu graf.

Algoritma ini digunakan pada graf berbobot dengan syarat bobot dari masing masing sisi haruslah bernilai positif (>=0).

(33)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Untuk merancang sebuah sistem maka diperlukan analisis terhadap sistem tersebut.

Analisis sistem ini bertujuan untuk membagi sistem menjadi beberapa subsistem agar lebih mudah dalam memecahkan masalah yang dihadapi dan menyesuaikan dengan kebutuhan.

3.1.1. Analisis Masalah

Salah satu cara yang digunakan untuk perancangan sistem dalam analisis masalah adalah dengan menggunakan diagram ishikawa. Kegunaannya adalah untuk mendapatkan sebab akibat dari permasalahan yang timbul.

Gambar 3.1.Diagram Ishikawa

Permasalahan utama (effect) yang ditunjukan adalah pada ujung garis horizontal yaitu penentuan lintasan terpendek dengan algoritma S-Dijkstra. Pada gambar 3.1 diatas menunjukkan terdapat 4 (empat) kategori masalah(cause) yaitu Material, Method, Machine, People. Garis horizontal yang mengarah ke garis diagonal merupakan sebab dari masalah utama.

(34)

Setelah mengetahui permasalahan yang akan dihadapi maka berikut ini digambarkan tahapan pengerjaan sistem untuk menyelesaikan masalah yang sudah dianalisis seperti pada gambar 3.2. Pertama sekali penulis mengambil data lokasi kontainer sampah dari Kantor Dinas Kebersihan Kota Medan. Kemudian melakukan observasi untuk meninjau lokasi kontainer sampah secara langsung. Kemudian dilanjutkan dengan menggambarkan alur lintasan yang akan dipindahkan kedalam sebuah graf berbobot. Kemudian dilakukan perhitungan manual untuk menentukan rute terpendek pada graf dengan algoritma S-Dijkstra. Kemudian dilanjutkan dengan mengimplementasikan algoritma S-Dijkstra kedalam program untuk mencari rute terpendek.

Gambar 3.2. Tahapan pengerjaan dari awal sampai akhir.

3.1.2. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem terbagi menjadi dua bagian yaitu kebutuhan fungsional dan non-fungsional.

Mengambil data dari Dinas Kebersihan

Melakukan observasi ke titik yang akan dijadikan graf

Menggambar alur lintasan

Memindahkan alur lintasan kedalam graf berbobot

Melakukan perhitungan manual dengan algoritma S-Dijkstra

Mengerjakan program dengan algoritma S-Dijkstra

(35)

1. Kebutuhan fungsional

a. Menerima input data sumber dan tujuan

Sistem akan menerima input berupakan titik awal dan akhir dari jalur yang akan dilalui sehingga berbentuk sebuah graf.

b. Melakukan pencarian rute terpendek

Sistem akan melakukan pencarian rute terpendek dari titik sumber ke titik tujuan menggunakan algoritma S-Dijkstra.

c. Menampilkan output

Sistem akan menampilkan output yang menggambarkan jalur terpendek dari titik sumber ke titik tujuan.

2. Kebutuhan non-fungsional a. Performa

Sistem yang dibangun dapat melakukan proses pencarian rute terpendek dengan waktu yang relatif singkat.

b. User friendly

Sistem yang akan dibangun harus memiliki tampilan yang mudah untuk dimengerti ataupun digunakan

c. Dokumentasi

Sistem yang dibangun memiliki panduan penggunaan.

3.1.3. Analisis proses

Sistem yang akan dibangun menggunakan algoritma S-Dijkstra untuk menentukan rute terpendek. Pengguna terlebih dahulu memasukkan data berupa node, jarak dan keterangan. Kemudian menentukan titik mana yang menjadi sumber dan tujuan keberangkatan. Kemudian sistem akan menentukan jalur terpendek menggunakan algoritma S-Dijkstra. Kemudian hasilnya akan ditentukan berupa rute terpendek dan running time program.

3.2. Pemodelan Sistem

Pemodelan sistem berguna untuk menggambarkan bagian-bagian yang akan dirancang pada sebuah sistem. Pada penelitian ini pemodelan sistem dibuat menggunakan usecase diagram, activity diagram, dan sequence diagram.

3.2.1. Use Case Diagram

(36)

Use Case Diagram merupakan diagram yang menggambarkan interaksi antara actor dengan sistem. Gambar 3.3. dibawah ini menunjukan bagaimana interaksi antara actor dengan sistem dalam use case diagram.

Gambar 3.3. Use Case Diagram 3.2.2. Activity Diagram

Activiy diagram yaitu diagram yang menggambarkan aktivitas dari sebuah sistem.pertama sekali user akan memasukkan node asal dan node tujuan. Lalu sistem akan memproses data untuk menentukan rute terpendek dengan algoritman S-Dijkstra lalu menampilkan hasilnya.

(37)

Gambar 3.4. Activity Diagram

Gambar 3.4. diatas menunjukan aktivitas dari sistem yang akan dibangun dimana pertamakali sistem akan menerima input dari user yang merupakan node awal dan node akhir. Kemudia sistem akan melakukan perhitungan jarak terpendek dengan menggunakan algoritma S-Dijkstra. Setelah hasilnya didapatkan berupa jarak terpendek, maka sistem hasilnya.

3.2.3. Sequence Diagram

Sequence diagram merupakan suatu diagram yang menggambarkan interaksi antar objek. Proses pencarian rute terpendek yang berlangsung pada sistem dapat digambarkan seperti pada sequence diagram pada gambar 3.5 dibawah ini.

(38)

Gambar 3.5. Sequence Diagram 3.3.Flowchart Sistem

Setelah melakukan analisis dan pemodelan terhadap sistem maka tahapan selanjutnya adalah membuat flowchart sistem.Flowchart ini akan menggambarkan cara kerja sistem dalam menentukan jarak terpendek dengan algoritma S-Dijkstra seperti pada gambar 3.6 berikut.

Pertama sekali program dijalankan user akan diminta untuk memasukkan input berupa node awal dan node akhir, kemudian sistem akan melakukan perhitungan untuk menentukan rute terpendek dengan menggunakan algoritma S-Dijkstra. Setelah ditemukan hasilnya maka sistem akan menampilkan output berupa rute terpendek dari node awal menuju node akhir kemudian program akan berhenti.

(39)

Gambar 3.6. Flowchart Sistem 3.4. Perancangan Antarmuka Sistem

Pada tahap ini akan dirancang antarmuka sistem dimana terdapat halaman Main Form, yang didalamnya terdapat menu pengujian dan pengolahan data.

3.4.1. Halaman Main Form

Gambar 3.7 merupakan tampilan mainform yang menjadi form utama.

Didalamnya terdapat menubar yang berisikan pengujian, pengolahan data, dan bantuan.

1. Menu “Pengujian”, untuk menampilkan form pengujian.

2. Menu “Pengolahan Data”, untuk menampilkan form pengolahan data.

3. Label “Judul Skripsi”, untuk menampilkan judul skripsi.

4. Label “Nama Penulis dan NIM”, untuk menampilkan nama dan nim penulis 5. Picture “LOGO”, untuk menampilkan logo fakultas

6. Label “Program Studi dan Fakultas”, untuk menampilkan logo program studi dan fakultas

(40)

7. Menu “Peta”, untuk menampilkan gambar peta.

Gambar 3.7. Main Form 3.4.2. Halaman Pengujian

Gambar 3.8 merupakan tampilan form pengujian. Terdapat beberapa tombol, textbox, label, dan juga canvas seperti yang ditampilkan pada gambar 3.8.

Gambar 3.8. Form Pengujian Keterangan

(41)

2. Label “Awal”, untuk memasukan node awal 3. Label “Akhir”, untuk memasukan node akhir

4. Tombol “Proses”, untuk memulai proses pencarian rute terpendek 5. Textfield untuk menampilkan nama database

6. Textfield, untuk memasukan node awal 7. Textfield, untuk memasukan node akhir

8. Label “Running Time”, untuk menampilkan running time program 9. Label “Total Jarak”, untuk menampilkan total jarak

10. Textfield, untuk menampilkan running time 11. Textfield, untuk menampilkan total jarak 12. Textfield,untuk menampilkan rute yang dilalui 13. Canvas, untuk menampilkan graf

3.4.3. Halaman Pengolahan Data

Gambar 3.8 dibawah ini merupakan tamplan form Pengolahan Data. Terdapat beberapa tombol, textbox, label, panel, combobox seperti yang ditampilkan pada gambar 3.9 berikut ini.

Gambar 3.9. Form Pengolahan Data Keterangan

1. Tombol “Cari”, Untuk mencari database.

2. Textfield, Untuk menuliskan nama database.

(42)

3. Tombol “Baru”, Untuk membuat database baru

4. DataGrid, untuk menampilkan isi dari tabel node pada database 5. Label “ID”, untuk menampilkan ID.

6. Label “Nama”, untuk menampilkan nama.

7. Label “Alamat”, untuk menampilkan alamat.

8. Textfield, untuk mengisi ID.

9. Textfield, untuk mengisi Nama.

10. Textfield, untuk mengisi Alamat.

11. Tombol “Ubah”, untuk mengubah node.

12. Tombol “Hapus”, untuk menghapus node.

13. Label “X”, untuk menampilkan nilai X.

14. Label “Y”, untuk menampilkan nilai Y.

15. Textfield, untuk mengisi nilai X.

16. Textfield, untuk mengisi nilai Y.

17. DataGrid, untuk menampilkan isi tabel tetangga.

18. Label “ID Asal”, untuk menampilkan ID Asal.

19. Label “ID Akhir”, untuk menampilkan ID Akhir.

20. Label “Jarak”, untuk menampilkan Jarak.

21. ComboBox, untuk mengisi NodeAsal.

22. ComboBox, untuk mengisi NodeAkhir.

23. Textfield, untuk mengisi Jarak.

24. Textfield, untuk mengisi keterangan ID Asal.

25. Textfield, untuk mengisi keterangan ID Akhir.

26. Tombol“Tambah”, untuk menambahkan node ke database.

27. Tombol “Ubah”, untuk mengubah hubungan node dalam database.

28. Tombol “Hapus”, untuk menghapus hubungan node dari database.

3.4.3. Halaman Peta

Dibawah ini merupakan tampilan form Peta untuk menampilkan peta seperti pada gambar 3.10 berikut ini.

(43)

Gambar 3.1016. Form Peta

(44)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Pada tahap ini, semua yang telah dibahas pada bagian analisis dan perancangan akan diimplementasikan kedalam bahasa pemrograman C# menggunakan aplikasi Visual Studio 2015 sebagai Integrated Development Environment (IDE) nya.

4.1.1. Form Halaman Utama

Form utama adalah tampilan awal aplikasi saat dijalankan. Pada form ini terdapat dua menu, yaitu menu pengujian dan pengolahan data.

Gambar 4.1. Halaman Form Utama

(45)

4.1.2. Form Pengujian

Form pengujian seperti yang ditunjukan pada gambar 4.2 dibawah ini merupakan halaman untuk melakukan pengujian menentukan rute terpendek dengan algoritma S- Dijkstra. Didalamnya dapat diatur node awal dan node akhir serta output berupa runningtime, total jarak, dan tampilan graf pada canvas.

Gambar 4.2. Form Pengujian 4.1.3. Form Pengolahan Data

Form pengolahan data seperti yang ditunjukan pada gambar 4.3 dibawah ini merupakan halaman untuk melakukan pengolahan data. Didalamnya terdapat menu untuk menambahkan database, menambah node, menghapus node,dan mengubah node yang sudah ada dalam database. Didalamnya juga bisa ditambahkan tetangga dari node.

(46)

Gambar 4.3.Form Pengolahan Data 4.1.4. Form Peta

Form Peta seperti yang ditunjukan pada gambar 4.4 dibawah ini merupakan halaman yang menampilkan peta lokasi kontainer.

(47)

4.2.Potongan Kode Program

1. publicclassDjikstra 2. {

3. List<Vertex> semuaVertex;

4. publicList<Vertex> hasil;

5. publicfloat totalJarak;

6. public Djikstra() 7. {}

8. public Djikstra(List<Vertex> semuaVertex) { 9. this.totalJarak = 0;

10. this.hasil = newList<Vertex>();

11. this.semuaVertex = newList<Vertex>(semuaVertex);

12. }

13. publicbool cariRuteTerpendek(Vertex asal, Vertex tujuan) { 14. Vertex aktif = newVertex();

15. foreach (Vertex Vertex in semuaVertex) { 16. Vertex.dari = null;

17. Vertex.jarak = float.PositiveInfinity;

18. if (Vertex.getId() == asal.getId()){

19. aktif = Vertex;

20. aktif.jarak = 0;

21. } 22. }

23. List<Vertex> open = newList<Vertex>(semuaVertex);

24. while (open.Count > 0) {

25. open.Remove(aktif);

26. foreach (Neighbor hub in aktif.getNeighbor()){

27. Vertex VertexTerhubung = hub.getVertex();

28. float jarakVertexTerhubung = aktif.cariJarakKe(VertexTerhubung.getId());

29. if (hub.getVertex().jarak>(aktif.jarak+jarakVertexTerhubung)){

30. VertexTerhubung.jarak = aktif.jarak + jarakVertexTerhubung;

31. VertexTerhubung.dari = aktif;

32. } 33. }

34. float jarakMinimum = float.PositiveInfinity;

35. foreach (Vertex Vertex in open){

36. if (Vertex.jarak <= jarakMinimum){

37. jarakMinimum = Vertex.jarak;

38. aktif = Vertex;

39. } 40. } 41. }

42. Vertex VertexSekarang = tujuan;

43. totalJarak = tujuan.jarak;

44. if (totalJarak == float.PositiveInfinity) { 45. watch.Stop();

46. runningTime = watch.Elapsed;

47. returnfalse;

48. }

49. while (VertexSekarang != null) {

50. hasil.Insert(0, VertexSekarang);

51. VertexSekarang = VertexSekarang.dari;

52. } 53. } 54. } 55. }

(48)

Potongan kode program diatas merupakan kode potongan program yang ada pada sistem yang didalamnya terdapat algoritma S-Dijkstra yang menggunakan Linkedlist sebagai tipe data yang digunakan. adapun linked list yang digunakan pada program tersebut adalah

6. List<Vertex> semuaVertex;

berfungsi untuk menampung semua verteks.

7. List<Vertex> open;

berfungsi untuk menampung verteks yang akan diproses.

8. List<Vertex> hasil;

berfungsi untuk menampung hasil atau rute

4.3.Pengujian Sistem

Pengujian terhadap sistem menggunakan graf seperti yang dijelaskan pada gambar 4.4 dibawah ini.

(49)

Gambar 4.5. Graf pada yang digunakan pada sistem.

(50)

Keterangan

Tabel 4.1. Keterangan graf yang digunakan pada sistem

Node / Vertek Node/Vertek

Tetangga Bobot Nama Keterangan (Km)

A Kantor Dinas Kebersihan Pinang baris B 0,5

B Jl. TB Simatupang C 3,2

I 0,5

C Jl. Stasiun (Melalui Jl.Gatot Subroto) B 3,2

D 22,1

D TPA Terjun (Jl. Nibung Raya Marelan) C 22,1

E 1,8

E Jl. K Rahmad Budin

D 1,8

F 9,4

G 2,3

F Jl. Pertempuran

E 9,4

H 0,9

J 8

G Jl. M Basir E 2,3

H 9,7

H Jl. Yos Sudarso G 9,7

K 4,4

I Jl. TB Simatupang (Sp. Jl. Amal)

B 0,5

J 2,1

L 3

J Jl. Ring Road (Sp. Jl. Amal)

F 8

I 2,1

M 2,5

K Jl. Balai Kota (Merdeka Walk) H 4,4

O 7,7

L Jl. TB Simatupang (Sp. Jl. Bunga Asoka) I 3

M 1,1

M Jl. Ring Road (Sp. Jl. Bunga Asoka)

J 2,5

L 1,1

N 1,9

N Jl. Setia Budi (Sp. Ring Road)

M 1,9

O 3,4

Q 0,7

O Jl. Jamin Ginting (Sp. Pos)

K 7,7

N 3,4

S 2,9

P Jl. Flamboyan Raya L 3

Q 2,5

(51)

Q Jl. Setia Budi (Sp. Pemda)

N 0,7

P 2,5

R 1,8

R Jl. Setia Budi (Pesantren AR Raud) Q 1,8

V 1,8

S Jl. Kapten Purba (Sp. Simalingkar)

O 2,9

T 1,3

V 1,7

T Jl. Sawit Raya S 1,3

U RS. Adam Malik V 1,8

V Jl. Jamin Ginting (Sp. Selayang)

S 1,7

U 1,8

W 4,3

W Pasar Lau Cih V 4,3

Gambar 4.5 berikut ini merupakan tampilan hasil penerapan algoritma S-Dijkstra pada sistem. Dimana pada percobaan ini yang diuji adalah menentukan rute terpendek dengan node A sebagai asal dan node B sebagai node tujuan.

Gambar 4.6. Hasil pencarian rute terpendek dari node A ke node U.

(52)

4.4.Pengujian Menggunakan Perhitungan Manual

Langkah langkah dalam menentukan rute terpendek menggunakan algoritman s- dijkstra dilakukan dengan cara melakukan perhitungan ke setiap node tetangga pada graf dan memilih bobot paling rendah langkah langkah perncarian rute terpendek dari node A ke node U dapat dilihat pada Gambar 4.6 – gambar 4.30

(1) Beri jarak ~ (tak hingga) dan label belum terlewati pada masing masing node

(53)
(54)

(2) Pilih node A sebagai node keberangkatan. Set jarak menjadi 0 (nol).

Gambar 4.8. Iterasi 2

(55)

(3) Hitung jarak A ke node tetangga yang belum terlewati.

Dari Ake B = 0 + 0,5 = 0,5. Ganti jarak pada B menjadi 0,5 Set node A terlewati

Gambar 4.9. Iterasi 3

(56)

(4) Hitung jarak ke node tetangga yang belum terlewati.

Dari B ke C = 0,5 + 3,2 = 3,7. Ganti jarak pada C menjadi 3,7 Dari B ke I = 0,5 + 0,5 = 1. Ganti jarak pada I menjadi 1 Set node B terlewati

Gambar 4.10. Iterasi 4

(57)

(5) Jarak terkecil adalah 1 (node I). Set node I node keberangkatan Hitung jarak dari I ke node tetangga yang belum terlewati.

Dari I ke J = 1 + 2,1 = 3,1. Ganti jarak pada J menjadi 3,7 Dari I ke L = 1 + 3 = 4. Ganti jarak pada L menjadi 4 Set node I terlewati

Gambar 4.11. Iterasi 5

(58)

(6) Jarak terkecil adalah 3,1 (node J). Set node J node keberangkatan Hitung jarak dari J ke node tetangga yang belum terlewati.

Dari J ke F = 3,1 + 8 = 11,1. Ganti jarak pada B menjadi 11,1 Dari J ke M = 3,1 + 2,5 = 5,6. Ganti jarak pada B menjadi 5,6 Set node J terlewati

Gambar 4.12. Iterasi 6

(59)

(7) Jarak terkecil adalah 3,7 (node C). Set node C node keberangkatan Hitung jarak dari C ke node tetangga yang belum terlewati.

Dari C ke D = 3,7 + 22,1 = 25,8. Ganti jarak pada D menjadi 25,8 Set node C terlewati

Gambar 4.13. Iterasi 7

(60)

(8) Jarak terkecil adalah 4 (node L). Set node L node keberangkatan Hitung jarak dari L ke node tetangga yang belum terlewati.

Dari L ke M = 4 + 1,1 = 5,1. Karena 5,1 < 5,5 ganti jarak pada M menjadi 5,1 Dari L ke P = 4+ 3 = 7. Ganti jarak pada P menjadi 7

Set node L terlewati

Gambar 4.14. Iterasi 8

(61)

(9) Jarak terkecil adalah 5,1 (node M). Set node M node keberangkatan Hitung jarak dari M ke node tetangga yang belum terlewati.

Dari M ke N = 5,1 + 1,9 = 7.Ganti jarak pada N menjadi 7 Set node M terlewati

Gambar 4.15. Iterasi 9

(62)

(10) Jarak terkecil adalah 7 (node P). Set node P node keberangkatan Hitung jarak dari P ke node tetangga yang belum terlewati.

Dari P ke Q = 7 + 2,5 = 9,5.Ganti jarak pada Q menjadi 9,5 Set node P terlewati

Gambar 4.16. Iterasi 10

(63)

(11) Jarak terkecil adalah 7 (node N). Set node N node keberangkatan Hitung jarak dari N ke node tetangga yang belum terlewati.

Dari N ke O = 7 + 3,4 = 10,4.Ganti jarak pada O menjadi 10,4

Dari N ke Q = 7 + 0,7 = 7,7. Karena 7,7 < 9,5 ganti jarak pada Q menjadi 7,7 Set node N terlewati

Gambar 4.17. Iterasi 11

(64)

(12) Jarak terkecil adalah 7,7 (node Q). Set node Q node keberangkatan Hitung jarak dari Q ke node tetangga yang belum terlewati.

Dari Q ke R = 7,7 + 1,8 = 9,5.Ganti jarak pada R menjadi 9,5 Set node Q terlewati

Gambar 4.18. Iterasi 12

(65)

(13) Jarak terkecil adalah 9,5 (node R). Set node Rnode keberangkatan Hitung jarak dari R ke node tetangga yang belum terlewati.

Dari R ke V = 9,5 + 1,8 = 11,3.Ganti jarak pada V menjadi 11,3 Set node R terlewati

Gambar 4.19. Iterasi 13

(66)

(14) Jarak terkecil adalah 10,4 (node O). Set node O node keberangkatan Hitung jarak dari O ke node tetangga yang belum terlewati.

Dari O ke K = 10,4 + 7,7 = 18,1.Ganti jarak pada K menjadi 18,1 Dari O ke S = 10,4 + 2,9 = 13,3.Ganti jarak pada S menjadi 13,3 Set node O terlewati

Gambar 4.20. Iterasi 14

(67)

(15) Jarak terkecil adalah 11,1 (node F). Set node F node keberangkatan Hitung jarak dari F ke node tetangga yang belum terlewati.

Dari F ke E = 11,1 + 9,4 = 20,5.Ganti jarak pada E menjadi 20,5 Dari F ke H = 11,1 + 0,9 = 12.Ganti jarak pada H menjadi 12 Set node F terlewati

Gambar 4.21. Iterasi 15

(68)
(69)

(16) Jarak terkecil adalah 11,3 (node V). Set node V node keberangkatan Hitung jarak dari V ke node tetangga yang belum terlewati.

Dari V ke U = 11,3 + 1,8 = 13,1.Ganti jarak pada U menjadi 13,1 Dari V ke W = 11,3 + 4,3 = 15,6.Ganti jarak pada W menjadi 15,6 Set node V terlewati

Gambar 4.22. Iterasi 16

(70)

(17) Jarak terkecil adalah 12 (node H). Set node H node keberangkatan Hitung jarak dari H ke node tetangga yang belum terlewati.

Dari H ke G = 12 + 9,7 = 21,7.Ganti jarak pada G menjadi 21,7 Set node H terlewati

Gambar 4.23. Iterasi 17

(71)

(18) Jarak terkecil adalah 13,1 (node U). Set node U node keberangkatan Hitung jarak dari U ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node U terlewati

Gambar 4.24. Iterasi 18

(72)

(19) Jarak terkecil adalah 14,6 (node T). Set node S node keberangkatan Hitung jarak dari T ke node tetangga yang belum terlewati.

Dari S ke T = 13,3 + 1,3 = 14,6.Ganti jarak pada T menjadi 14,6 Set node S terlewati

Gambar 4.25. Iterasi 19

(73)

(20) Jarak terkecil adalah 14,6 (node T). Set node T node keberangkatan Hitung jarak dari T ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node T terlewati

Gambar 4.26. Iterasi 20

(74)

(21) Jarak terkecil adalah 15,6 (node W). Set node T node keberangkatan Hitung jarak dari W ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node W terlewati

Gambar 4.27. Iterasi 21

(75)

(22) Jarak terkecil adalah 18,1 (node K). Set node Knode keberangkatan Hitung jarak dari K ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node K terlewati

Gambar 4.28. Iterasi 22

(76)

(23) Jarak terkecil adalah 20,5 (node E). Set node E node keberangkatan Hitung jarak dari E ke node tetangga yang belum terlewati.

Dari E ke D = 20,5 + 1,8 = 22,3.Karena 22,3 < 25,8 ganti jarak pada D menjadi 22,3

Dari E ke G = 20,5 + 2,3 = 22,8.Karena 22,8 > 21,7 maka jarak pada G tetap 21,7 Set node E terlewati

Gambar 4.29. Iterasi 23

(77)

(24) Jarak terkecil adalah 21,7 (node G). Set node G node keberangkatan Hitung jarak dari G ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node G Terlewati

Gambar 4.30. Iterasi 24

(78)

(25) Jarak terkecil adalah 22,3 (node D). Set node D node keberangkatan Hitung jarak dari D ke node tetangga yang belum terlewati.

Karena tidak ada node tetangga yang belum terlewati, set node D Terlewati

Gambar 4.31. Iterasi 25

(26) Karena semua node sudah terlewati, maka proses pencarian pun dihentikan. Hasil pencarian rute terpendek dari node A ke node U diperoleh 13,1 Km dengan rute A-B-I-L-P-Q-R-V-U.

Gambar

Gambar 2.3. Graf berbobot dengan node a sebagai keberangkaran dan node z sebagai  tujuan
Gambar 2.14. Rute dari node a ke node z dengan rute {a,c,b,d,e,z} dengan nilai = 13.
Gambar 3.4. Activity Diagram
Gambar 3.5. Sequence Diagram  3.3.Flowchart Sistem
+7

Referensi

Dokumen terkait

Satu perjanjian telah ditandatangani oleh Raffles dengan Temenggung Abdul Rahman dan Sultan Hussein pada 2 Ogos 1824 supaya SHTI dapat berkuasa di seluruh Singapura.

Berdasarkan rumusan masalah yang telah diungkapkan di atas maka yang menjadi tujuan penelitian ini adalah untuk mengetahui peningkatan hasil belajar pada ranah kognitif,

Adapun sisanya sebesar 82,32% mmerupakan pengaruh faktor-faktor lain yaitu harga jual, kualitas produk (mutu) dan faktor lain yang tidak diteliti dalam penelitian

Damai Sejati Makassar sudah terlaksana secara efektif dan cukup memadai, karena sistem dan prosedur penjualan yang diterapkan oleh pihak manajemen perusahaan telah

Dari hasil analisis dan pengamatan pada penelitian ini serta mengacu pada hipotesis dapat disimpulkan bahwa: ada peningkatan kemampuan memahami teks dengan

Esimer- kiksi rentovihvilä ( Juncus bulbosus ) voi muodos- taa upoksiin hieman vastaavasti valekiehkuraisia kasvustoja, mutta se on kauttaaltaan näkinruohoja vahvempitekoinen,

Seminar Nasional Peranan Konservasi Flora Indonesia Dalam Mengatasi Dampak Pemanasan Global telah diselenggarakan pada tanggal 14 Juli 2009 di Kebun Raya “Eka Karya” Bali -

Adapun yang menjadi tujuan dalam penelitian ini adalah: (1) Mengetahui Pendapatan Asli Daerah, Dana Alokasi Umum dan Belanja Daerah Kota Bandung; (2) Membuktikan