Perbandingan Algoritma Johnson Dan Floyd-Warshall Dalam Penentuan Lintasan Terpendek. Studi Kasus Kabupaten Humbang Hasundutan

(1)

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD - WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK STUDI KASUS

KABUPATEN HUMBANG HASUNDUTAN

SKRIPSI

MARTHA LIQUISA SIMAMORA

111421071

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015


(2)

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD-WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK

STUDI KASUS KABUPATEN HUMBANG HASUNDUTAN

DRAF SKRIPSI

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

Oleh :

MARTHA LIQUISA SIMAMORA 111421071

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

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

PERSETUJUAN

Judul : PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD-WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK. STUDI KASUS KABUPATEN HUMBANG HASUNDUTAN

Kategori : SKRIPSI

Nama : MARTHA LIQUISA SIMAMORA Nomor Induk Mahasiswa : 111421071

Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan,

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. James Piter Marbun, M.Kom Ade Candra, ST, M.Kom NIP. 19580611 198603 1 002 NIP. 19790904 200912 1 002

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

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


(4)

PERNYATAAN

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD-WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK

STUDI KASUS KABUPATEN HUMBANG HASUNDUTAN

DRAF SKRIPSI

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

Medan,

Martha Liquisa Simamora 111421071


(5)

PENGHARGAAN

Segala Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, atas karunia-Nya sehingga pada akhirnya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada :

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&M, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.

2. Bapak Ade Candra, ST, M.Kom selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

3. Bapak Drs. James Piter Marbun, M.Kom. selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

4. Bapak Prof. Dr. Muhammad Zarlis selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

5. Bapak Drs. Agus Salim Harahap, M.Si selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

6. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

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

8. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

9. Teristimewa kepada Ayah dan Ibu saya, serta Abang dan adik saya yang sangat saya sayangi dan seluruh keluarga yang telah memberikan semangat bagi saya.

10.Rekan-rekan kuliah dan teman-teman terbaik, terutama bg Berkat Wahyu Purba yang telah banyak membantu dalam penulisan skripsi ini dan kepada teman-teman, Jepricius Sianturi, Claudia Napitupulu, Dwi Barus, dan lain-lain yang selalu menberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.

11.Keluarga besar Ekstensi S1 Ilmu Komputer, khususnya semua teman dan sahabat angkatan 2011 yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran, dan kerja samanya selama ini.


(6)

Semoga Tuhan melimpahkan berkat kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan Negara.

Medan, Penulis


(7)

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD-WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK

SUDI KASUS KABUPATEN HUMBANG HASUNDUTAN

ABSTRAK

Kemacetan yang sering kita temui sepanjang perjalanan dan sering mengganggu kegiatan sehari-hari. Setiap manusia ingin sampai ke tujuan dengan tepat waktu. Tetapi, sering kali kemacetan menyebabkan keinginan manusia terganggu. Oleh karena itu, dibutuhkan suatu cara untuk menanggulangi gangguan tersebut. Untuk mencapai suatu tempat dengan waktu yang lebih cepat, kita akan mencari lintasan terpendek dari tempat asal ke tempat tujuan. Ada dua algortima yang cukup terkenal yang bisa digunakaan untuk menyelesaikan persoalan lintasan terpendek, yaitu Algoritma Dijkstra dan Algoritma Floyd-Warshall.

Algoritma Dijkstra ini menggunakan prinsip greedy yang menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukkannya ke dalam himpunan solusi sedangan algoritma Floyd-Warshall menggunakan prinsip dinamis yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait.


(8)

THE COMPARISON FLOYD-WARSHALL AND JOHNSON ALGORITHM IN ACT OF DETERMINING THE SHORTEST PATH

(CASE STUDY IN HUMBANG HASUNDUTAN DISTRICT)

Abstrack

The bottleneek often encountered along the way and after ofeend daily activities. Every human being wants to get to their destination on time. However, often the bottleneck causing the human desire disturbed. Therefor, we need a way to cope with the disorder. To reach a place with a faster time. There are two well known algorihtms that can used to saolve the shortest path problem, is Dijkstra algorithm and Floyd-Warshall algorithm. The Dijstra algorithm uses a greedy principle which states that at every step of selecting a minimum weighted side and put it in the set of solution, while Floyd-Warshall algorithm uses dinamic principle problem solving with view solution will be obtained as an inter- related decisions. The shortest path in the can is the path between vertex and the results are depicted in the form of a line path connecting vertices with each other.


(9)

DAFTAR ISI

halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar isi viii

Daftar table x

Daftar gambar xi

BAB 1. PENDAHULUAN 1

1.1.Latar Belakang 1

1.2.Rumusan Masalah 3

1.3.Batasan Masalah 3

1.4.Tujuan Penelitian 3

1.5.Manfaat Penelitian 4

1.6.Metodologi Penelitian 4

1.7.Sistematika Penulisan 5

BAB 2. LANDASAN TEORI 6

2.1. Graf 6

2.1.1. Defenisi Graf 6

2.2. Teori Dasar Graf 7

2.2.1. Graf Berarah (Directed Graf = Digraph) 7 2.2.1.1. Path Berarah dan Sirkuit Berarah 9 2.2.1.2. Graf Berarah Terhubung 10 2.2.1.3. Isomorfisma dalam Graf Berarah 11 2.2.2. Graf Tak Berarah (Undirected Graph) 12 2.2.2.1. Graf Bipartite (Bipartite Graph) 12

2.2.2.2. SubGraf 14

2.2.2.3. Derajat (Degree) 16 2.2.2.4. Path dan Sirkuit 16

2.2.2.5. Sitkuit Euler 17

2.2.2.6. Graf Terhubung dan Tak Terhubung 18 2.2.2.7. Sirkut Hamilton 19 2.3. Representasi Graf dalam Matriks 19 2.3.1. Representasi Graf Tak Berarah dalam Matriks 20 2.3.1.1. Matriks Hubung 20

2.3.1.2. Matriks Biner 20

2.3.1.3. Matriks Sirkuit 20 2.3.2. Representasi Graf Berarah dalam Matriks 21 2.3.2.1. Matriks Hubung 21 2.3.2.2. Matriks Sirkuit 21 2.4. Algoritma Floyd-Warshall 22

2.5. Algoritma Johnson 23

2.5.1. Algoritma Bellman-Ford 24


(10)

2.6. JAVA 26 2.7. UML (Unified Modeling Language) 26 2.7.1. Use Case Diagram (Diagram Pengguna Keadaan) 26 2.7.2. Activity Diagram (Diagram Aktivitas) 27 2.7.3. Class Diagram (Diagram kelas) 28 2.7.4. Sequence Diagram (Diagram Rangkaian) 29

2.8. Flowchart 29

BAB 3. ANALISIS DAN PERANCANGAN 31

3.1. Analisis Sistem 31

3.1.1. Analisis Masalah 31

3.1.2. Analisis kebutuhan Sistem 32

3.2. Pemodelan Aplikasi 33

3.2.1. Use-Case Diagram 33

3.2.2. Activity Diagram 34

3.2.2.1. Activity Diagram dengan Proses Algoritma Dijkstra 34 3.2.2.2. Activity Diagram dengan Proses Algoritma Floyd-Warshall 35

3.2.3. Sequence Diagram 36

3.3. Perancangan Aplikasi 36

3.3.1. Flowchart Aplikasi Lintasan Terpendek menggunakan

Algoritma Dijkstra 36

3.3.2. Flowchart Aplikasi Lintasan Terpendek menggunakan

Algoritma Floyd-Warshall 37 3.4. Perancangan Antarmuka (Interface) 38 3.4.1. Rancangan Halaman Data Rute dan Jarak 40 3.4.2. Rancangan Halaman Tentang 41

BAB 4. IMPLEMENTASI DAN PENGUJIAN 42

4.1. Implementasi 42

4.1.1. Analisis Perjalanan dengan menggunakan Algoritma Dijkstra 43 4.1.2.Analisis Perjalanan dengan menggunakan Algoritma Floyd-Wasrhall46 4.1.3.Tampilan Form Halaman Utama 61 4.2.4.Tampilan Halaman Tentang 62

4.2. Pengujian Sistem 63

BAB 5. KESIMPULAN DAN SARAN 64

5.1. Kesimpulan 64

5.2. Saran 64


(11)

DAFTAR TABEL

halaman Tabel 2.1. Simbol Pada Use Case Diagram 27 Tabel 2.2. Simbol Pada Activity Diagram 27 Tabel 2.3. Simbol Pada Class Diagram 28 Tabel 2.4. Simbol Pada Sequence Diagram 29 Tabel 2.5. Simbol-simbol Flowchart 30 Tabel 3.1. Keterangan Bagian-bagian Rancangan Antarmuka Aplikasi 39 Tabel 4.1. Tabel Iterasi k = 1 49

Tabel 4.2. Tabel Iterasi k = 2 50

Tabel 4.3. Tabel Iterasi k = 3 52

Tabel 4.4. Tabel Iterasi k = 4 54

Tabel 4.5. Tabel Iterasi k = 5 55

Tabel 4.6. tabel Iterasi k = 6 57

Tabel 4.7. Tabel Iterasi k = 7 59


(12)

DAFTAR GAMBAR

halaman

Gambar 2.1. Graf Berarah 8

Gambar 2.2. Path Berarah 10

Gambar 2.3. Graf Berarah Terhubung 10 Gambar 2.4. Isomorfisma dalam Graf Berarah 11

Gambar 2.5. Graf Bipartite 13

Gambar 2.6. Graf Bipartite 13

Gambar 2.7. Sub Graf 15

Gambar 2.8. Sub Graf dari Gambar 2.7 15

Gambar 2.9. Derajat (Degree) 16

Gambar 2.10. Bagan Alur Path dan Sirkuit 17 Gambar 2.11. Jembatan Konigsberg 18 Gambar 2.12. Graf Terhubung danGraf Tak Terhubung 18

Gambar 3.1. Diagram Fishbone 32

Gambar 3.2. Diagram Use Case 34

Gambar 3.3. Activity Diagram dengan proses Dijkstra 34 Gambar 3.4. Activity Diagram dengan Proses Floyd-Warshall 35

Gambar 3.5. Sequense Diagram 36

Gambar 3.6. Diagram Alir Algoritma Dijkstra 37 Gambar 3.7. Diagram Alir Algoritma Floyd-Warshall 38 Gambar 3.8. Rancangan Antarmuka Aplikasi Algoritma 39 Gambar 3.9. Rancangan Halaman Data Rute dan Jarak 40 Gambar 3.10. Rancangan Halaman Tentang 41

Gambar 4.1. Contoh Graf 43

Gambar 4.2. Graf Pencarian Lintasan Terpendek 43 Gambar 4.3. Langkah Pertama Pencarian Rute 44 Gambar 4.4. Langkah kedua Pencarian Rute 44 Gambar 4.5. Langkah ketiga Pencarian Rute 45 Gambar 4.6. Langkah keempat Pencarian Rute 45 Gambar 4.7. Langkah kelima Pencarian Rute 46 Gambar 4.8. Garaf Pencarian Lintasan terpendek Untuk Floyd-Warshall 47 Gambar 4.9. Tampilan Halam Utama 61 Gambar 4.10. Tampilan Dara Rute dan Jarak 61 Gambar 4.11. Tampilan Hasil Lintasan 62

Gambar 4.12. Tampilan Tentang 62


(13)

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD-WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK

SUDI KASUS KABUPATEN HUMBANG HASUNDUTAN

ABSTRAK

Kemacetan yang sering kita temui sepanjang perjalanan dan sering mengganggu kegiatan sehari-hari. Setiap manusia ingin sampai ke tujuan dengan tepat waktu. Tetapi, sering kali kemacetan menyebabkan keinginan manusia terganggu. Oleh karena itu, dibutuhkan suatu cara untuk menanggulangi gangguan tersebut. Untuk mencapai suatu tempat dengan waktu yang lebih cepat, kita akan mencari lintasan terpendek dari tempat asal ke tempat tujuan. Ada dua algortima yang cukup terkenal yang bisa digunakaan untuk menyelesaikan persoalan lintasan terpendek, yaitu Algoritma Dijkstra dan Algoritma Floyd-Warshall.

Algoritma Dijkstra ini menggunakan prinsip greedy yang menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukkannya ke dalam himpunan solusi sedangan algoritma Floyd-Warshall menggunakan prinsip dinamis yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait.


(14)

THE COMPARISON FLOYD-WARSHALL AND JOHNSON ALGORITHM IN ACT OF DETERMINING THE SHORTEST PATH

(CASE STUDY IN HUMBANG HASUNDUTAN DISTRICT)

Abstrack

The bottleneek often encountered along the way and after ofeend daily activities. Every human being wants to get to their destination on time. However, often the bottleneck causing the human desire disturbed. Therefor, we need a way to cope with the disorder. To reach a place with a faster time. There are two well known algorihtms that can used to saolve the shortest path problem, is Dijkstra algorithm and Floyd-Warshall algorithm. The Dijstra algorithm uses a greedy principle which states that at every step of selecting a minimum weighted side and put it in the set of solution, while Floyd-Warshall algorithm uses dinamic principle problem solving with view solution will be obtained as an inter- related decisions. The shortest path in the can is the path between vertex and the results are depicted in the form of a line path connecting vertices with each other.


(15)

BAB 1 PENDAHULUAN

1.1.Latar Belakang

Jalan merupakan prasarana transportasi yang sangat penting karena menghubungkan suatu tempat ke tempat lain. Dengan adanya sarana jalan ini, maka manusia dan barang dapat berpindah dari satu tempat ke tempat lain dengan waktu yang efisien. Namun pada saat ini banyak kemacetan pada setiap ruas jalan. Hal inilah yang membuat manusia harus memilih rute yang harus dilewati ketika akan melakukan perjalanan. Apabila orang tersebut ingin melakukan perjalanan maka orang tersebut akan mencari rute yang nyaman, dimana arti rute yang nyaman adalah rute yang jaraknya pendek dan terbebas dari hambatan (Sitanggang, M.P. 2011).

Dalam melakukan perjalanan dari suatu tempat ke tempat lainnya terdapat lintasan yang berbeda-beda. Banyaknya pilihan jenis lintasan jalan yang akan ditempuh dari suatu daerah ke daerah lainnya menuntut adanya pilihan lintasan terpendek, sehingga dapat mendefinisikan jarak, waktu, dan biaya yang dibutuhkan untuk mencapai daerah tujuan tersebut.

Masalah lintasan terpendek (shortest path) merupakan masalah yang sering dijumpai dalam kehidupan sehari-hari dari berbagai sektor kehidupan, antara lain dalam bidang transportasi, komunikasi dan komputasi. Masalah ini menjadi penting karena berkaitan dengan meminimumkan biaya atau efisiensi waktu yang dibutuhkan. Fenomena tersebut secara abstrak dapat digambarkan dengan graf, dimana kota digambarkan sebagai simpul (vertex). Sedangkan jalan yang menghubungkan antar kota digambarkan sebagai sisi (edge)(Hendardi, A. 2012).

Graf merupakan model matematika yang sangat kompleks dan rumit tetapi bisa juga menjadi solusi yang sangat bagus terhadap beberapa kasus tertentu. Banyak sekali aplikasi menggunakan graf sebagai alat untuk mempresentasikan atau memodelkan persoalan sehingga persoalan itu dapat diselesaikan dengan baik. Aplikasi tersebut misalnya menentukan masalah lintasan terpendek (the shortest path problem), persoalan pedagang keliling (travelling sales person problem) dan masih banyak lagi aplikasi-aplikasi yang dengan dapat diselesaikan menggunakan model graf (Susiani, I.M. 2012).

Algoritma Floyd-Warshall membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul. Hal tersebut bisa terjadi adanya perkiraan pengambilan


(16)

keputusan (pemilihan lintasan terpendek) pada setiap tahap antara dua simpul, sehingga perkiraan tersebut diketahui sebagai nilai optimal (Munir, R. 2005).

Algoritma Johnson adalah algoritma yang dapat digunakan untuk graf yang berbobot negatif dan untuk menyelesaikan masalah lintasan terpendek dari tiap titik ke semua titik lain. Penyelesaian Algoritma Johnson adalah mengonstruksi graf baru dengan menambahkan titik baru pada graf dan memberi bobot sisi yang keluar dari titik baru tersebut dengan angka 0. Langkah selanjutnya adalah mencari lintasan terpendek dari titik baru kesemua titik lain, lintasan terpendek tersebut digunakan untuk mengubah bobot sisi bernilai positif, setelah itu mencari lintasan terpendek dari semua titik ke titik lain dan mengubah hasilnya dengan menggunakan lintasan terpendek dari titik baru kesemua titik lain. Hasil dari perhitungannya berupa matriks, dan dari matriks ini dapat diketahui panjang lintasan terpendek dari tiap titik kesemua titik lain (Noviani, E. 2012).

Mencermati hal-hal yang telah dipaparkan maka penulis tertarik membuat skripsi berjudul Perbandingan Algoritma Johnson dan Floyd-Warshall dalam Penentuan Lintasan Terpendek.

1.2.Rumusan Masalah

Berdasarkan efisiensi jarak, waktu, dan biaya menurut Johnson dan Floyd-Warshall dalam latar belakang yang telah dikemukakan, maka yang menjadi rumusan masalah dalam penelitian ini adalah bagaimana mencari lintasan terpendek yang diselesaikan dengan perbandingan Algoritma Johnson dan Floyd-Warshall sehingga didapat jarak, waktu, dan biaya yang dibutuhkan untuk mencapai daerah tujuan tersebut?

1.3. Batasan Masalah

Batasan masalah dalam penelitian ini adalah :

1. Dalam Algoritma Johnson terdapat dua algoritma untuk penyelesaiannya, yaitu Algoritma Dijksra dan Bellman-Ford sehingga dalam penelitian ini penulis membatasi masalah pada perbandingan Algoritma Dijkstra dan Floyd-Warshall dalam penentuan lintasan terpendek di Kabupaten Humbang Hasundutan.

2. Teori penelitian lintasan jalan yang digunakan adalah jarak terpendek (shortest path), yaitu didasarkan pada pendekatan jarak, waktu tempuh, dan biaya termurah. Namun dalam studi ini, pendekatan yang dilakukan adalah terhadap jarak dan waktu.


(17)

3. Model graf yang digunakan adalah model graf berarah dan berbobot positif. 4. Bahasa pemograman yang digunakan adalah bahasa pemograman Java.

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah

1. Untuk menentukan lintasan terpendek dengan menggunakan Algoritma Johnson dan Floyd-Warshall dengan parameter waktu dan jarak yang akan ditempuh.

2. Menganalisis kinerja dari suatu lintasan menuju lintasan lain dari segi waktu yang tercepat sehingga pengguna jalan dapat mengefisienkan waktu.

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah memudahkan para pengguna kendaraan bermotor dalam menentukan lintasan yang paling efisien saat melakukan perjalanan sehingga mereka dapat menghemat waktu, tenaga, dan biaya.

1.6. Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :

1. Studi Literatur

Pada tahap ini dilakukan studi pustaka melalui buku-buku tentang algoritma pemrograman, jurnal dan artikel-artikel serta buku-buku pendukung atau e-book

yang relevan yang didapat melalui internet. 2. Analisis dan Perancangan Sistem

Pada tahap ini digunakan untuk mengolah data yang ada dan kemudian melakukan analisis terhadap hasil studi literatur yang diperoleh sehinga menjadi suatu informasi.

3. Implementasi Sistem

Pada tahap ini dilaksanakan dengan mengimplementasikan rancangan sistem yang telah dibuat pada analisis dan perancangan sistem kedalam komputer dengan menggunakan bahasa pemograman Java.


(18)

4. Pengujian Sistem

Pada tahap ini dilakukan pengujian terhadap sistem, dilakukan pemasukan serta pengolahan data untuk mendapatkan hasil apakah sudah sesuai dengan yang diharapkan dan membandingkan hasil yang didapat dengan menggunakan kedua algoritma tersebut.

5. Dokumentasi

Metode ini dilakukan dengan membuat dokumentasi dalam bentuk laporan tugas ahir, mulai dari awal sampai akhir.

1.7. Sistematika Penulisan

Dalam penyusunan skripsi ini, penulis menguraikannya dalam lima bab dengan sistematika pembahasan dan aturan-aturannya agar pembaca lebih mudah untuk memahami dan mengerti isi dari skripsi ini.

BAB 1: PENDAHULUAN

Bab ini berisi mengenai latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian yang dilakukan serta sistematika penulisan skripsi.

BAB 2: LANDASAN TEORI

Bab ini membahas mengenai teori-teori yang digunakan untuk mendukung penulisan penelitian.

BAB 3: ANALISIS DAN PERANCANGAN SISTEM

Bab ini terdiri dari tahap analisis sistem dan desain/model perancangan dari program yang akan dibuat, dalam hal ini termasuk juga algoritma dari program tersebut.

BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi mengenai hasil pengujian, implementasi dari program yang sebelumnya telah dirancang dan analisis program.

BAB 5: PENUTUP

Bab ini berisi tentang kesimpulan dari semua pembahasan yang ada dengan saran-saran yang ditujukan bagi para pembaca atau pengembang guna penelitian lebih lanjut.


(19)

BAB 2

LANDASAN TEORI

2.1. Graf

2.1.1. Definisi Graf

Teori Graf merupakan suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat. Dalam kehidupan sehari-hari graf digunakan untuk mengambarkan berbagai macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah dimengerti. Beberapa contoh graf yang sering dijumpai, antara lain struktur organisasi, bagan alir, pengambilan mata kuliah, peta, rangkaian listrik, dan lain-lain (Hendardi, A. 2012).

Banyak sekali struktur yang bisa dipresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan graf. Sering kali graf digunakan untuk mempresentasikan suatu jaringan. Misalkan jaringan jalan raya dengan kota sebagai simpul (vertex) dan jalan yang menghubungkan setiap kota sebagai sisi (edge) dan bobotnya (weight) adalah panjang dari jalan tersebut.

Secara matematis graf mendefinisikan sebagai pasangan himpunan (V, E), ditulis dengan notasi G= (V, E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (vertex atau node) dan E adalah himpunan sisi (edge) yang menghubungkan sepasang simpul (Munir, R. 2009)

Simpul (vertex) pada graf dapat dinyatakan dengan huruf, bilangan atau gabungan keduanya. Sedangkan sisi-sisi yang menghubungkan simpul u dengan simpul v dinyatakan dengan pasangan (u, v) atau dinyatakan dengan lambang �1,�2, �3 dan seterusnya.

2.2. Teori Dasar Graf

Graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G=(V,E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul dan E adalah himpunan sisi yang menghubungkan sepasang simpul (Munir, R. 2005).

Garis yang hanya berhubungan dengan satu titik ujung disebut loop. Dua garis berbeda yang menghubungkan titik yang sama disebut garis paralel. Dua titik dikatakan berhubungan (adjacent) jika garis menghubungkan keduanya. Titik yang tidak memiliki


(20)

V2

V1

V4 V5

V6

V3

e1

e3 e2 e6

e8

e9

e7

e4

e5

garis yang berhubungan dengannya disebut titik terasing (isolating point). Graf yang tidak memiliki titik (sehingga tidak mewakili garis) disebut garis kosong.

Jika semua garisnya berarah, maka grafnya disebut graf berarah (directed graph), atau sering disingkat digraph. Jika semua garisnya tidak berarah, maka grafnya disebut graf tak berarah (undirected graph). Sehinga dapat ditinjau dari arahnya, graf dapat dibagi menjadi dua yaitu graf berarah dan graf tidak berarah.

2.2.1. Graf Berarah (Directed Graf = Digraph)

Pada graf berarah, arah sisi/urutan ikut diperhatikan. Dalam suatu graf, lintasan (path) adalah urutan simpul, atau sisi yang dibentuk untuk bergerak dari satu simpul ke simpul yang lain. Dalam graf berarah, titik akhir dari sebuah busur akan menjadi titik awal dari busur berikutnya. Sirkuit adalah lintasan yang memiliki simpul awal dan akhir yang sama. Panjang lintasan adalah banyaknya sisi yang dilalui lintasan tersebut.

Suatu Graf berarah G terdiri dari himpunan titik-titik V(G) {�1, �2, …}, himpunan garis-garis E(G) {�1, �2, … }, dan suatu fungsi yang mengawankan setiap garis dalam

E(G) ke suatu pasangan berurutan titik (�, �). Jika � = (�, �) adalah suatu garis dalam G, maka � disebut titik awal � dan � disebut titik akhir �. Arah garis adalah dari � ke

��.

Jumlah garis yang keluar dari titik � disebut derajat keluar (out degree) titik � yang disimbolkan dengan �+(�), sedangkan jumlah garis yang menuju ke titik � disebut derajat masuk (in degree) titik �, yang disimbolkan dengan �−(�).

Titik terasing adalah titik dalam G dimana derajat keluar dan derajat masuknya adalah 0. Titik pendant (tergantung) adalah titik dalam G dimana derajat masuk dan derajat keluarnya adalah 1. Dua garis berarah dikatakan paralel jika keduanya memiliki titik awal dan titik akhir yang sama.

Contoh:


(21)

Tentukan:

a. Himpunan titik-titik, himpunan garis-garis, dan fungsi perkawanan. b. Derajat masuk dan derajat keluar tiap titik.

c. Titik terasing dan titik pendant. d. Garis paralel.

Penyelesaian:

a. V(G) = {�1, �2, �3, �4, �5, �6 }

E(G) = { �1,�2, �3, �4, �5, �6, �7,�8,�9 }

Fungsi mengawankan garis-garis dengan pasangan titik-titik berikut

�1 dengan (�1,�2)

�2 dengan (�4, �1)

�3 dengan (�1,�4)

�4 dengan (�1,�3)

�5 dengan (�3, �3)

�6 dengan (�3,�4)

�7 dengan (�3, �5)

�8 dengan (�5, �4)

�9 dengan (�5, �4)

b. �+ (�1) = 3 �− (�1) = 1

�+ (

2) = 0 �− (�2) = 1

�+ (

3) = 3 �− (�3) = 2

�+ (

4) = 1 �− (�4) = 4

�+ (

5) = 2 �− (�5) = 1

�+ (

6) = 0 �− (�6) = 0

Dapat dilihat bahwa dalam setiap graf berarah, ∑ � +(�) = ∑ � −(�) c. Titik terasing adalah �6.

Titik pendant �2.

d. Garis paralel adalah �8 dan �9, dapat dilihat bahwa �2 dan �3 bukanlah garis paralel karena arahnya berbeda.

2.2.1.1. Path Berarah dan Sirkuit Berarah

Pengertian walk, path, dan sirkuit dalam graf berarah sama dengan walk, path dan sirkuit dalam graf tak berarah. Hanya saja dalam graf berarah, perjalanan yang dilakukan harus


(22)

mengikuti arah garis. Untuk membedakan dengan graf tak berarah, maka walk, path

berarah, dan sirkuit dalam graf berarah disebut walk berarah, path berarah, dan sirkuit berarah. Suatu graf berarah yang tidak memuat sirkuit berarah disebut Asiklik (Siang, J.J. 2009).

Contoh:

Ada 4 macam golongan darah, masing-masing A, B, AB, dan O. Darah golongan O dapat diberikan kepada semua golongan. Darah golongan A dan B dapat diberikan ke golongannya sendiri atau ke golongan O. Darah golongan AB hanya dapat diberikan pada pasien dengan golongan darah AB . Gambarkan graf berarah untuk menyatakan keadaan tersebut. Anggaplah garis dari � ke � menyatakan bahwa darah dari � dapat diberikan pada �. Apakah graf Asiklik?

Penyelesaian:

Graf berarah menyatakan keadaan transfusi darah yang mungkin dilakukan. Dapat dilihat bahwa dalam graf berarah tersebut tidak ada sirkuit berarah sehingga grafnya Asiklik.

Gambar 2.2 Path berarah

2.2.1.2. Graf Berarah Terhubung

Suatu graf tak berarah disebut terhubung jika ada walk yang menghubungkan setiap dua titiknya. Pengertian itu berlaku juga bagi graf berarah. Berdasarkan arah garisnya, dalam graf berarah dikenal dua jenis keterhubungan, yaitu terhubung kuat dan terhubung lemah.

Misalkan G adalah suatu graf berarah dan v, w adalah sembarang 2 titik dalam G. G disebut terhubung kuat jika ada path berarah dari v ke w. G disebut terhubung lemah, jika G tidak terhubung kuat, tetapi graf tak berarah yang bersesuaian dengan G terhubung.

AB

B

O A


(23)

Contoh:

Manakah di antara graf-graf pada Gambar 2.3.yang terhubung kuat dan yang terhubung lemah?

12

Gambar 2.3 Graf berarah terhubung

Penyelesaian:

Dalam �1, setiap dua titik dapat dihubungkan dengan path berarah sehingga graf berarah

�1 adalah graf terhubung kuat. Sebaliknya dalam �2, tidak ada path berarah yang

menghubungkan �4 ke �3. Akan tetapi, jika semua arah garis dihilangkan (sehingga �2 menjadi graf tidak berarah), maka �2 merupakan graf yang terhubung. Jadi, �2 merupakan graf terhubung lemah.

2.2.1.3. Isomorfisma dalam Graf Berarah

Pengertian isomorfisma dalam graf berarah sama dengan isomorfisma pada graf tak berarah. Hanya saja pada isomorfisma graf berarah, korespondensi dibuat dengan memperhatikan arah garis.

Contoh

Tunjukkan bahwa graf �1 pada Gambar 2.4 isomorfis dengan �2, sedangkan �3 tidak isomorfis dengan �1

Gambar 2.4 Isomofisma dalam Graf Berarah

V1

V3

V4 e1

e2 e3 e4

e5 e6

V2

V1

V2

V3

V4

e1

e4 e3

e5 e6

e2

V5

V1 V2

V3

V4

G3

V1 V2

V3

V4 G1 V5

V1

V2

V3 V4

V5


(24)

Penyelesaian:

Untuk membuktikan bahwa �1 isomorfis dengan �2, maka harus dibuat fungsi

g : V(�1) → V(�2) dan h : E(�1) → E(�2) yang mempertahankan titik-titik ujung serta arah garis.

Dalam �1, ada 4 garis yang keluar dari �3. Titik yang memiliki sifat seperti itu dalam �2 adalah titik �1, sehingga dibuat fungsi g sedemikian hingga

g(�3) = �1, g(�1) = �2, g(�2) = �3, g(�5) = �4, dan g(�4) = �5 fungsi h adalah sebagai berikut:

h ((�1, �2)) = (�2,�3) ; h ((�2, �5)) = (�3, �4) h ((�5, �4)) = (�4, �5) ; h ((�4, �1)) = (�5, �2)

h ((�3, �1)) = (�1, �2) ; h ((�3, �2)) = (�1, �3) h ((�3, �5)) = (�1, �4) ; h ((�3, �4)) = (�1, �5)

pada fungsi g dan h dapat dilihat bahwa �1 isomorfis dengan �2. Selanjutnya, akan dibuktikan bahwa �3 tidak isomorfis dengan �1. Dalam �3, ada garis (�1, �4) dan (�4, �1). Jika �1 isomorfis dengan �3, maka harus ada fungsi h �3 → �1 demikian, sehingga h(�1,

�4) dan h(�4, �1) merupakan garis-garis dalam �1 (dengan kata lain, ada titik �� dan ��

dalam �1 demikian, sehingga ada garis dari � ke � dan dari � ke �). Dalam �1 tidak ada garis seperti itu sehingga �3 tidak isomorfis dengan �1.

2.2.2. Graf Tak Berarah (Undirected Graph)

Suatu graf G terdiri dari dua himpunan yang berhingga, yaitu himpunan simpul-simpul tak kosong (V(G)) dan himpunan jalur-jalur (E(G)). Jika semua jalurnya tidak berarah, maka grafnya disebut graf tak berarah (Siang, J.J. 2009).

2.2.2.1. Graf Bipartite (Bipartite Graph)

Suatu graf G disebut Graf Bipartite apabila V(G) merupakan gabungan dari dua himpunan tak kosong �1 dan �2 dan setiap garis dalam G menghubungkan suatu titik dalam �1 dengan titik dalam �3. Apabila dalam Graf Bipartite setiap titik dalam �1berhubungan dengan setiap titik dalam �2, maka grafnya disebut Graf Bipartite lengkap. Jika �1 terdiri dari m titik dan �2 terdiri dari n titik, maka Graf Bipartite lengkapnya sering diberi simbol


(25)

Contoh :

Tentukan mana di antara graf-graf pada Gambar 2.5 yang merupakan Graf Bipartite dan Bipartite Lengkap.

Gambar 2.5 Graf Bipartite

Penyelesaian:

a. Jelas bahwa titik-titik grafnya terbagi menjadi dua bagian, yaitu �1 = {�1, �2, �3} dan

�2 = {�4, �5}. Setiap titik dalam �1 dihubungkan dengan setiap titik dalam �2 sehingga

grafnya merupakan �3,2.

b. Hanya merupakan Graf Bipartite saja karena titik-titik dalam graf terbagi menjadi dua bagian, yaitu �1 = {�1, �3} dan �2 = {�2, �4}. Akan tetapi tidak semua titik dalam �1 dihubungkan dengan semua titik dalam �2 (�1 tidak dihubungkan dengan �4).

c. Dengan pengaturan letak titik-titiknya, maka graf gambar (c) dapat digambarkan sebagai graf.

Gambar 2.6 Graf Bipartite

Tampak bahwa titik-titiknya terbagi menjadi dua bagian, yaitu �1 = {�1, �3, �5} dan �2 = {�2, �4, �6}. Setiap menghubungkan sebuah titik dalam �1 dengan sebuah titik dalam �2 sehingga grafnya merupakan Graf Bipartite.

d. Bila dilihat bahwa meskipun tampil berbeda, sebenarnya graf pada Gambar 2.5 bagian (d) sama dengan graf pada Gambar 2.5 bagian (a) sehingga graf pada Gambar 2.5 bagian (d) adalah �3,2.

v1 v2 v3 v4 v5 e5 e1 e2 e3 e4 e6 (a)

v1 v2

v3 v4

e1 e2 e3 (b) v1 v2 v3 v4 v5 v6

e1 e2

e3 e4 e5 e6 (c) v1

v2 v3

v4 v5

e6 e1 e2

e3

e4 e5

(d)

v1 v2

v3 v4

e1 e2 e3 v6 v5 e4 e5 e6


(26)

Posisi titik-titik dalam penggambaran graf kadang-kadang mempengaruhi pandangan, seperti halnya pada Gambar 2.5 bagian (c) dan (d). Dalam kedua graf tersebut, semua titik tampaknya terhubung dan tidak dapat dipisahkan walaupun kenyataannya tidaklah demikian. Oleh karena itu harus jeli dalam menentukan apakah suatu graf merupakan Graf Bipartite.

2.2.2.2. SubGraf

Konsep subgraf sama dengan konsep himpunan bagian. Dalam teori himpunan, himpunan A dikatakan merupakan himpunan bagian B bila hanya setiap anggota A merupakan B. Oleh karena graf merupakan himpunan yang terdiri dari titik dan garis, maka H dikatakan subgraf G, jika semua titik dan garis H juga merupakan titik dan garis dalam G. Secara formal, subgraf dapat didefinisikan sebagai berikut.

Misalkan G adalah suatu graf. Graf H dikatakn subgraf G bila dan hanya bila a. V(H) ⊆ V(G)

b. E(H) ⊆ E(G)

c. Setiap garis dalam H memiliki titik ujung yang sama dengan garis tersebut dalam G.

Dari definisi tersebut ada beberapa hal yang dapat diturunkan 1. Sebuah titik dalam G merupakan subgraf G.

2. Sebuah garis dalam G bersama-sama dengan titik-titik ujungnya merupakan subgraf G.

3. Dalam subgraf berlaku sifat transitif, jika H adalah subgraf G dan G adalah subgraf K, maka K adalah subgraf K.

Contoh:

Gambarlah semua Subgraf yang mungkin dibentuk dari graf G pada Gambar 2.7.

Gambar 2.7 Sub Graf

Penyelesaian:

G terdiri dari dua titik dan dua garis. Subgraf G yang mungkin dibentuk terdiri dari satu atau dua titik dan 0, satu atau dua garis. Semua Subgraf G yang mungkin dibuat dapat digambarkan sebagai berikut:

v1

v2 e2


(27)

Jumlah garis = 0

Jumlah garis = 1

Jumlah garis = 2

Gambar 2.8 Sub-Graf dari Gambar 2.7

2.2.2.3. Derajat (Degree)

Misalkan v adalah titik dalam suatu graf G. derajat titik v (simbol d(v)) adalah jumlah garis yang berhubungan dengan titik v dan garis suatu loop dihitung dua kali. Derajat total G adalah jumlah derajat semua titik dalam G.

Contoh:

Tentukan derajat tiap-tiap titik dalam graf pada Gambar 2.9. Berapa derajat totalnya

Gambar 2.9 Derajat (Degree)

Penyelesaian:

d (�1) = 4 garis yang berhubungan dengan �1 adalah �2, �3 dan loop1 yang dihitung dua kali.

v1

v2

v1

v2

v1 v

2

v1

e1 e2

v1

v2

e1

v1

v2

e1

e2

e1

e2 e3

v1

v2

v3

v4

v5

v6

e4


(28)

d (�2) = 2 garis yang berhubungan dengan �2 adalah �2 dan�3.

d (�3) dan d (�5) = 1 karena garis yang berhubungan dengan �3 dan �5 adalah �4. d (�4) = 2 garis yang berhubungan dengan �4 adalah loop5 yang dihitung dua kali. d (�6) = 0 karena tidak ada garis yang berhubungan dengan �6.

Derajat total = ∑6=1� (�) = 4 + 2 + 1 + 2 + 1 + 0 = 10.

2.2.2.4. Path danSirkuit

Misalkan G adalah suatu graf. Misalkan pula v dan w adalah dua titik dalam G. Suatu Walk

dari v dan w adalah barisan titik-titik berhubungan dan garis secara berselang-selang, diawali dari titik v dan diakhiri pada titik w.

Walk dengan panjang n dan v ke w dituliskan sebagai berikut �01122… ��−1 dengan �0 = v, � = w, �� −1, dan � adalah titik-titik ujung garis �.Path dengan panjang n dari v ke w adalah walk dari v ke w yang semua garisnya berbeda. Path dari v ke w dituliskan sebagai v = �01122… ��−1 = w dengan � ≠ w untuk i ≠ j.

Gambar 2.10 Bagan Alur Path dan Sirkuit

Path sederhana dengan panjang n dan v ke w adalah path dari v ke w berbentuk v =

�0 �1 �1 �2 �2… ��−1 �� �� = w dengan �� ≠ w untuk i ≠ j dan �� ≠ �� untuk k ≠ m.

Sirkuit dengan panjang n adalah path yang dimulai dan diakhiri pada titik yang sama. Sirkuit adalah path yang berbentuk v = �01122… ��−1 = w dengan �0 = �. Sirkuit sederhana dengan panjang n adalah Sirkuit yang semua titiknya berbeda. Sirkuit sederhana berbentuk v = �01122… ��−1 = w dengan � ≠ � untuk i ≠ j dan

�� ≠�� untuk k ≠ m, kecuali �0 = ��.

Walk v w

v = v0 v1 e2 v2 … vn-1 en vn = w

vj-1 dan vi adalah titik-titik ujung garisei

Path v w

Path sederhana v w Sirkuit

Semua garis berbeda

Semua titik berbeda

Titik awal dan akhir Sama (v0 = vn)

Sirkuit sederhana Titik awal dan akhir

Sama (v0 = vn)

Semua titik berbeda Kecuali v0 = vn


(29)

2.2.2.5. Sirkuit Euler

Sirkuit Euler adalah Sirkuit yang melalui tiap sisi dalam graf tepat satu kali (Siang, J.J. 2009) Untuk mengenang ahli matematika Leonhard Euler yang berhasil memperkenalkan graf untuk memecahkan masalah tujuh jembatan Koningsberg pada tahun 1736.

Kota Koningberg dibangun pada pertemuan dua cabang sungai Pregel. Kota tersebut terdiri dari sebuah pulau di tengah-tengah dan tujuh jembatan yang mengelilinginya.

Gambar 2.11 Jembatan Konigsberg

2.2.2.6. Graf Terhubung dan Tidak Terhubung

Misalkan G adalah suatu Graf. Dua titik v dan w dalam G dikatakan terhubung hanya ada

walk dari v ke w. Graf G dikatakan terhubung bila hanya setiap dua titik dalam G terhubung. Graf G dikatakan tidak terhubung bila ada dua titik dalam G yang tidak terhubung.

Contoh

Tentukan mana di antara graf pada Gambar 2.12 yang merupakan Sirkuit Euler. carilah rute perjalanan kelilingnya

Gambar 2.12 Graf terhubung dan Graf tak terhubung v1 v10 e10 v2 v3 v4 v5 v6 v7 v8

v9 e9

e1

e2

e3

e4

e5 e6

e7 e8 e14 e11 e12 e13 (a) v1 v2 v3 v4 v5 v6 e1 e2 e3 e4 e5 e6 (b)

v1 v3

v4 v5

e5 e1

e2 e3 e4

e6 e7 e8


(30)

Penyelesaian:

a. d(�2) = d(�3) = d(�4) = d(�6) = d(�10) = 2

d(�5) = 4

d(�7) = d(�8) = d(�9) = 3 d(�1) = 5

karena ada titik yang berderajat ganjil, maka (a) bukanlah Sirkuit Euler.

b. Meskipun semua titiknya berderajat dua (genap), tetapi grafnya tidak terhubung. Jadi, (b) bukanlah Sirkuit Euler.

c. d(�1) = d(�3) = 2

d(�2) = d(�4) = d(�5) = 4

karna graf (c) terhubung dan semua titiknya berderajat genap, maka (c) merupakan Sirkuit Euler.

2.2.2.7. Sirkuit Hamilton

Suatu graf terhubung G disebut Sirkuit Hamilton bila ada sirkuit yang mengunjungi setiap titiknya tepat satu kali kecuali titik awal yang sama dengan titik akhirnya.

Perhatikan perbedaaan Sirkuit Euler dan Sirkuit Hamilton. Dalam Sirkuit Euler, semua garis harus dilalui tepat satu kali, sedangkan semua titiknya boleh dikunjungi lebih dari satu kali. Sebaliknya, dalam Sirkuit Hamilton semua titik harus dikunjungi tepat satu kali dan tidak harus melalui semua garis. Dalam Sirkuit Euler, yang dipentingkan adalah garisnya. Sebaliknya dalam Sirkuit Hamilton, yang dipentingkan adalah kunjungan pada titiknya(Munir, R. 2009).

2.3. Representasi Graf dalam Matriks

Matriks dapat digunakan untuk menyatakan suatu graf. Hal itu sangat membantu untuk membuat program komputer yang berhubungan dengan graf. Dengan menyatakan graf sebagai suatu matriks, maka perhitungan-perhitungan yang diperlukan dapat dilakukan dengan mudah.

Kesulitan utama dalam mempresentasikan graf dalam suatu matriks adalah keterbatasan matriks untuk mencakup semua informasi yang ada dalam graf. Akibatnya, ada bermacam-macam matriks untuk menyatakan suatu graf tertentu. Tiap-tiap matriks


(31)

tersebut memiliki keuntungan yang berbeda-beda saat menyaring informasi yang dibutuhkan pada graf.

2.3.1. Representasi Graf Tak Berarah dalam Matriks 2.3.1.1. Matriks Hubung

Matriks Hubung (Adjacency Matrix) digunakan untuk menyatakan graf dengan cara menyatakannya dalam jumlah garis yang menghubungkan titik-titiknya. Jumlah baris (kolom) matriks hubung sama dengan jumlah titik dalam graf.

Misalkan G adalah graf tak berarah dengan titik-titik �1, �2, … � ( n berhingga). Matriks hubung yang sesuai dengan graf G adalah matriks A = (���) dengan ��� = jumlah garis yang menghubungkan titik � dengan titik �, i, j = 1, 2,…, �.

2.3.1.2. Matriks Biner

Misalkan G adalah graf tanpa loop dengan n titik �1,�2, … ,�� dan k garis �1,�2, … ��.

Matriks Biner yang sesuai dengan graf G adalah matriks A berukuran n x k yang elemennya adalah

Nama Matriks Biner diambil dari sifat matriks yang hanya berisi bilangan 0 atau 1 saja. Matriks Biner kadang-kadang disebut matriks (0-1) atau matriks insidensi (incidence matrix).

2.3.1.3 Matriks Sirkuit

Misalkan G adalah graf yang memuat q buah sirkuit sederhana dan e buah garis. Matriks sirkuit A = (���) yang bersesuaian dengan G adalah matriks yang terdiri dari q baris dan e kolom dengan elemen.

���

1 jika titik vi berhubungan dengan garis ej

0 jika titik vi tidak berhubungan dengan garis ej

���

1 jika sirkuit ke-i memuat garis ke-j 0 jika sirkuit ke-i tidak memuat garis ke-j


(32)

2.3.2. Representasi Graf Berarah dalam Matriks

Cara menyatakan graf berarah dalam matriks sebenarnya tidak jauh berbeda dengan cara menyatakan graf tak berarah dalam suatu matriks. Perbedaannya hanya terletak pada keikutsertaan informasi tentang arah garis yang terdapat dalam graf berarah.

2.3.2.1. Matriks Hubung

Matriks Hubung untuk menyatakan suatu graf berarah banyak dipakai dalam berbagai disiplin ilmu berbeda-beda sehingga nama yang dimiliki berbeda-beda pula. Dalam Teori Otomata, matriks hubung dikenal dengan nama matriks transisi, yang dalam konsep relasi disebut matriks relasi dalam jaringan disebut matrik koneksi, dan lain-lain.

Misalkan G adalah graf berarah yang terdiri dari n titik tanpa garis paralel. Matriks Hubung yang sesuai dengan graf G adalah matriks bujur sangkar n x n, A = (���) dengan

2.3.2.2. Matriks Sirkuit

Untuk menyatakan graf berarah ke dalam Matriks Sirkuit, perlu diperhatikan arah garis pembentuk sirkuitnya.

Misalkan G adalah graf berarah dengan e buah garis dan q buah sirkuit atau Sirkuit Berarah. Sembarang arah orientasi (searah/berlawanan dengan arah jarum jam) diberikan ke tiap-tiap sirkuit. Matriks Sirkuit yang bersesuaian dengan graf G adalah matriks A = (���)dengan

Perbedaan Matriks Sirkuit untuk menyatakan graf berarah dan tidak berarah terletak pada tanda negatif pada elemen matriks, yang menyatakan bahwa garis yang

���

1 jika ada garis vi ke titik vj

0 jika tidak ada garis vi ke titik vj

���

1 jika sirkuit ke-i memuat garis ke-j

dan arah garis ke-j sama dengan arah orientasi -1 jika sirkuit ke-i memuat garis ke-j

dan arah garis ke-j berlawanan dengan arah orientasi 0 jika sirkuit ke-i tidak memuat garis ke-j


(33)

bersesuaian memiliki arah yang berlawanan dengan arah orientasi yang didefinisikan. Orientasi yang diberlakukan pada setiap sirkuit dapat dibuat sembarang sehingga suatu graf berarah dapat dinyatakan dengan beberapa Matriks Sirkuit yang berbeda

2.4. Algoritma Floyd-Warshall

Algoritma Floyd-Warshall adalah sebuah algoritma analisis graf untuk mencari bobot minimum dari graf berarah. Algoritma Floyd-Warshall adalah matriks hubung graf berarah berlabel, dan keluarannya adalah path terpendek dari semua titik ke titik yang lain (Kamayudi, A. 2009).

Dalam usaha untuk mencari path terpendek, Algoritma Warshall memulai iterasi dari titik awalnya kemudian memperpanjang path dengan mengevaluasi titik demi titik hingga mencapai titik tujuan dengan jumlah bobot yang seminimum mungkin. Misalkan

�0 adalah matriks hubung graf berarah berlebel mula-mula. �∗ adalah matriks hubung

minimal dengan ���∗ = path terpendek dari titik � ke�.[4]

Algoritma Warshall untuk mencari path terpendek adalah sebagai berikut 1. W = �0

2. Untuk k = 1 hingga n, lakukan: Untuk i = 1 hingga n, lakukan

Untuk j = 1 hingga n lakukan

Jika W[i, j] > W[i, k] + W[k, j], maka Tukar W[i, j] dengan W[i, k] + W[k, j]

3 �∗ = W

Dalam iterasinya untuk mencari path terpendek, Algoritma Warshall membentuk n matriks sesuai dengan iterasi-k. Hal ini menyebabkan waktu prosesnya lambat, terutama untuk n yang besar. Meskipun waktu prosesnya bukanlah yang tercepat, Algoritma Warshall sering dipergunakan untuk menghitung path terpendek karena kesederhanaannya. Program implementasinya Algoritma Warshall sangat mudahdibuat.

2.5. Algoritma Johnson

Algoritma Johnson adalah dapat digunakan untuk graf yang berbobot negatif dan untuk menyelesaikan masalah lintasan terpendek di setiap titik ke semua titik lain. Langkah awal penyelesaian (Noviandi, E. 2012).


(34)

Algoritma Johnson adalah mengonstruksi graf yang baru dengan menambahkan graf baru pada graf dan memberi bobot sisi yang keluar dari titik baru tersebut dengan 0. Langkah selanjutnya adalah mencari lintasan terpendek dari titik baru ke semua titik lain.

Lintasan Terpendek tersebut digunakan untuk mengubah bobot semua sisi pada graf baru agar bobot semula bernilai positif. Setelah itu dicari lintasan terpendek dari tiap titik ke semua titik lain dengan mengubah hasilnya dengan menggunakan hasil dari perhitungan berupa matriks. Dari matriks ini dapat diketahui panjang lintasan terpendek dari titik ke semua titik lain.

Langkah Algoritma Johnson adalah sebagai berikut

1. Mengostruksi graf baru G, dengan cara menambahkan titik baru sehingga

V’ = V + {s} dan E + {(s,v)v di V} 2. Setiap titik v di V

0 → w (s, v)

∞ → w (v, s)

3. Menjalankan Algoritma Bellman-Ford pada graf baru a. jika terdapat bobot negatif maka selesai

b. jika tidak terdapat bobot negatif maka hitung d(s, v) , v ∈ V 4. Setiap (u, v) di E

W(u, v) = w(u, v) + d (s, v) – d(s, v)

5. Setiap v di V, dijalankan Algoritma Djikstra untuk menghitung d(u, v) 6. D’ = d(u, v)

7. Setiap (u, v) di V ; d(u, v) = d(u, v) + d(sv) – d(s, u) 8. D = d(u, v)

Keterangan

w(s,v) = bobot sisi dari s ke v.

d(s,v) = panjang lintasan terpendek dari s ke v. w(u,v) = bobot sisi baru dari u ke v.

d(u,v) = panjang lintasan terpendek dari u ke v dan yang dihutung adalah bobot sisi baru (w).

d(u,v) = panjang lintasan terpendek dari u ke v.

D’ = matriks hasil perhitungan lintasan terpendek dari tiap-tiap pasangan titik dan bobot sisi yang digunakan adalah w.


(35)

Dalam Algoritma Johnson terdapat dua Algoritma untuk penyelesainnya, yaitu Algoritma Bellman-Ford dan Algoritma Djikstra.

2.5.1. Algoritma Bellman-Ford

Algoritma Bellman-Ford menghitung jarak terpendek (dari satu sumber) pada sebuah graf berbobot. Maksudnya dari satu sumber ialah bahwa ia menghitung semua jarak terpendek yang berawal dari satu vertex. Algoritma Dijkstra dapat lebih cepat mencari hal yang sama dengan syarat tidak ada (edge) yang berbobot negatif, maka Algoritma Bellman-Ford hanya digunakan jika ada sisi berbobot negatif.

2.5.2. Algoritma Dijkstra

Algoritma Dijkstra ditemukan oleh Edsger W. Dijkstra yang merupakan salah satu varian bentuk algoritma populer dalam pemecahan persoalan yang terkait dengan masalah optimasi dan bersifat sederhana. Algoritma ini menyelesaikan masalah untuk mencari lintasan terpendek ( sebuah lintasan yang mempunyai panjang minimum) dari vertex a ke

vertex z dalam graf berbobot, bobot tersebut adalah bilangan positif jadi tidak dapat dilalui oleh vertex negatif.

Dalam mencari solusi, Algoritma Dijkstra menggunakan prinsip greedy, yaitu mencari solusi optimum pada setiap langkah yang dilalui dengan tujuan untuk mendapatkan solusi optimum pada langkah selanjutnya yang akan mengarah pada solusi terbaik.

Algoritma ini mencari panjang lintasan terpendek dari vertex a ke z dalam sebuah graf berbobot. Langkah-langkah dalam menentukan lintasan terpendek pada Algoritma

Dijkstra yaitu:

1. Pada awalnya pilih vertex dengan bobot yang terendah dari vertex yang belum dipilih, diinisialisasikan dengan ‘0’ dan yang sudah terpilih diinisialisasikan dengan ‘1’.

2. Bentuk tabel yang terdiri dari vertex, status, bobot. Lengkapi kolom bobot yang diperoleh dari jarak vertex sumber ke semua vertex yang langsung terhubung dengan

vertex sumber tersebut.

3. Jika vertex sumber ditemukan maka tetapkan sebagai vertex terpilih.

4. Tetapkan vertex terpilih dengan label permanen dan perbaharui vertex yang langsung terhubung.


(36)

5. Tentukan vertex sementara yang terhubung pada vertex yang sudah terpilih sebelumnya dan merupakan bobot terkecil dilihat dari tabel dan tentukan sebagai

vertex terpilih berikutnya.

6. Apakah vertex yang terpilih merupakan vertex tujuan? Jika ya, maka kumpulan vertex

terpilih merupakan rangkaian yang menunjukkan lintasan terpendek. 7. Begitu seterusnya hingga semua vertex terpilih.

2.6. JAVA

Java adalah bahasa pemrograman yang bersifat open source yang dikembangkan oleh Sun Microsistems sejak tahun 1991 (Hakim,R. & Ir.Sutarno, M.Si. 2009). Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer.

Java sendiri merupakan bahasa pemrograman yang berbasis objek, maksudnya adalah semua aspek yang terdapat pada Java adalah objek, sehingga memudahkan untuk mendesain, membuat dan mengembangkan program Java dengan cepat. Kelebihan ini membuat program Java menjadi mudah untuk digunakan oleh banyak orang.

Pada Tahun 1996, Sun Microsistems secara resmi merilis versi awal Java yang kemudian terus berkembang hingga muncul JDK 1.1 (Java Development Kit versi 1.1). Perkembangan terus dilakukan hingga muncul versi baru yang disebut Java 2. Perubahan utama antara versi sebelumnya adalah adanya Swing yang merupakan teknologi Graphical User Interface (GUI) yang mampu menghasilkan aplikasi desktop yang benar-benar baik.

Dalam penelitian ini penulis menggunakan Java versi The Java 2 Platform, Standart Edition (J2SE) yang merupakan Teknologi Java edisi standar, yang digunakan untuk penerapan Teknologi Java pada komputer desktop. Versi ini menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman dan mendukung konektivitas basis data, rancangan antarmuka pemakai, masukan/keluaran, dan pemrograman jaringan.

2.7. UML (Unified Modeling Language)

Unified Modeling Language (UML) tidak mendefinisiskan proses standar tetapi


(37)

S & R.S. Wahyono. 2003). Hal ini dimaksudkan untuk mendukung proses perkembangan dengan Object Oriented. UML menyimpan informasi tentang struktur statis dan perilaku dinamis suatu sistem. Perilaku Dinamis mendefinisikan sejarah objek dari waktu ke waktu dan komunikasi antara objek-objek untuk mencapai tujuan.

UML terdiri atas pengelompokan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 13 diagram, diantaranya Use Case Diagram, Class Diagram, Package Diagram, Object Diagram, Sequence Diagram, Collaboration Diagram, StatiChart Diagram, Activity Diagram, Deployment Diagram, Component Diagram, Composite Structure Diagram, Interaction Overview Diagram, Timing Diagram. Tetapi yang sering digunakan adalah Use Case Diagram, Activity Diagram, Sequence Diagram, dan Class Diagram.

2.7.1. Use Case Diagram (Diagram Pengguna Keadaan)

Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Dalam pembuatan Use Case Diagram, yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah Use Case mempresentasikan sebuah interaksi antara aktor dengan sistem.

Berikut beberapa simbol yang digunakan pada Use Case Diagram di antaranya terdapat pada Tabel 2.1.

Tabel 2.1 Simbol Pada Use Case Diagram

Simbol Nama Simbol Kegunaan

Aktor

Sebagai subjek yang

berinteraksi atau menggunakan sistem

Use Case UseCase

Sebagai kegiatan yang dapat dilakukan oleh pengguna pada sistem

Asosiasi

Sebagai penghubung antara aktor dan Use Case yang dilakukan

<< include >>

Include

Sebagai penghubung antara

Use Case yang

membutuhkan Use Case

yang lain

Sistem

Sistem Sebagai cakupan Wilayah Sistem


(38)

2.7.2. Activity Diagram (Diagram Aktivitas)

Activity Diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang

dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Sebuah aktivitas dapat direalisasikan oleh satu Use Case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara Use Case

menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.

Berikut ini beberapa simbol yang digunakan pada Activity diagram dapat dilihat pada Tabel 2.2.

Tabel 2.2 Simbol pada Activity Diagram

Simbol Nama Simbol Kegunaan

Inisial node Awal aktivitas

Final Node Akhir Aktivitas

Action

Action Sebagai aktivitas yang

dilakukan oleh sistem

Control Flow Sebagai penghubung urutan

aktivitas

Decision Merupakan aktivitas

pengecekan kondisi

Exception handler Menunjukkan kondisi pengecualian apabila suatu action tidak dapat dilakukan

2.7.3. Class Diagram (Diagram Kelas)

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class

menggambarkan keadaan (atribut/property) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi).

Class Digram menggambarkan struktur dan deskripsi class, package, dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

Berikut ini beberapa simbol yang digunakan pesa Class Diagram. Dapat dilihat pada Tabel 2.3.


(39)

Tabel 2.3 Simbol Pada Class Diagram

Simbol Nama Simbol Kegunaan

Class

Class

Sebagai kelas yang digunakan pada sistem

Generalization Menunjukkan hubungan

inheritance antar kelas

<<use>> Usage

Menunjukkan hubungan penggunaan suatu kelas dengan kelas yang lain

2.7.4. Sequence Diagram (Diagram Rangkaian)

Sequence Diagram menggambarkan interaksi antar-objek di dalam dan sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence Diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence Diagram biasa digunakan untuk mengambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai tanggapan dari sebuah

event untukmenghasilkan output tertentu.

Berikut ini beberapa simbol yang digunakan pada Sequence Diagram dapat dilihat pada Tabel 2.4.

Tabel 2.4 Tabel simbol pada Sequence Diagram

Simbol Nama Simbol Kegunaan

Actor

Sebagai subjek yang menggunakan sistem

Lifeline

Life line

Bagian dari sistem yang melakukan aktivitas pemrosesan data

Message Alur data yang diproses

oleh sistem

2.8. Flowchart

Flowchart adalah suatu diagram alur (flow) yang menunjukan (flow) di dalam program atau prosedur sistem secara logika (Suarga, 2012). Pada diagram alur, dapat dilihat secara jelas arus pengendalian algoritma, yakni bagaimana rangkaian pelaksanaan kegiatan program tersebut. Suatu diagram alur akan memberi gambaran dua dimensi berupa


(40)

simbol-simbol yang masing-masing simbol-simbol tersebut telah ditetapkan lebih dahulu fungsi dan atrinya.

Dua di antara beberapa Flowchart yang menggambarkan proses dengan komputer, yaitu :

1. Sistem Flowchart

Diagram Alur Sistem (Sistem Flowchart) merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem.

2. Program Flowchart

Diagram Alur Program (Program Flowchart) merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program.

Pada Tebel 2.5 menunjukkan seperangkat simbol diagram alur beserta fungsi dan manfaat yang digunakan dalam pembuatan langkah algoritma pemrograman.

Tabel 2.5. Simbol-Simbol Flowchart

No Simbol Flowchart Keterangan Simbol

1 Start Komponen yang berfungsi untuk mengawali dan

mengakhiri suatu proses

2 Data/Hasil Komponen yang mewakili input dan output

3 Sub Proses Komponen yang menyatakan

subproses/subprogram

4 Proses Komponen yang menyatakan setiap hasil dari

pengolahan proses.

5 Looping Komponen yang berfunsi untuk menyatakan perulangan /melakukan berulang-ulang.

6 Decision Komponen yang berfunsi untuk menyatakan dua kemungkinan yang bernilai True dan False.

7 Connector Komponen yang berfungsi untuk menghubungkan halaman yang sama/one page connector, ataupun halaman yang berbeda/two page connector.

8 Alur Komponen yang berfungsi untuk menghubungkan


(41)

CAUSE EFFECT

Penentuan Lintasan Terpendek dengan

Menggunakan Algoritma Johnson dan Floyd-Warshall

Material Method

People Machine

Rute yang akan dilalui dari titik asal ke titik tujuan

Johnson dan Floyd-Warshall

Program Shortest Path

Hasil Rute yang dilalui Berdasarkan jarak dan waktu

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis Sistem merupakan penguraian dari suatu informasi yang dibagi kedalam bagian komponen dengan maksud untuk mengidentifikasi adalah mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya.

Dalam tugas akhir ini, ada dua fase analisis yang akan dibahas, yaitu analisis masalah dan analisis kebutuhan. Analisis Masalah bertujuan untuk memahami kelayakan masalah, Analisis Kebutuhan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu dikerjakan oleh sistem.

3.1.1. Analisis Masalah

Analisis Masalah pada sistem yang akan dirancang dapat digambarkan dalam diagram

Fishbone (Diagram Ishikawa). Dalam Diagram Ishikawa digunakan untuk membantu

menemukan akar penyebab masalah atau untuk mengidentifikasi kemungkinan penyebab masalah.

Gambar 3.1. Diagram Fishbone

Berdasarkan Gambar 3.1, masalah utama yang ditunjukkan oleh segiempat paling kanan (kepala ikan), yaitu menentukan lintasan terpendek menggunakan algoritma Johnson dan Floyd-Warshall. Sedangkan segiempat yang lainnya yang dihubungkan oleh sebuah garis ke tulang utama (garis horizontal yang terhubung ke kepala ikan) adalah kategori masalah. Garis horizontal selanjutnya yang ditunjukkan oleh tulang-tulang kecil yang


(42)

diwakili oleh garis panah yang mengarah ke tulang-tulang kategori masalah adalah sebab dari masalah yang berbeda pada kepala.

3.1.2. Analisis kebutuhan Sistem

Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis kebutuhan sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi dua bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

1. Kebutuhan fungsional yang harus dipenuhi aplikasi yang dimaksud adalah sebagai berikut

a. Pada proses input, sistem ini menggunakan lintasan terpendek yang dilihat dari jenis permukaan jalan yang beraspal.

b. Metode yang diimplementasikan dalam sistem ini ialah proses pencarian lintasan terpendek dengan menggunakan Algoritma Johnson dan Floyd-Warshall pada lintasan terpendek yang akan dicari.

2. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut

a. User Friendly

Sistem yang dibangun harus User Friendly, artinya sistem ini dapat dengan mudah digunakan dan dimengerti oleh user sehingga menjadi salah satu solusi dalam mencari lintasan terpendek.

b. Software Pendukung

Sistem yang dibangun oleh penulis menggunakan semua Software Pendukung bersifat freeware sehingga tidak memerlukan izin atau hal-hal yang dapat merugikan pihak lain.

c. Fitur Tambahan

Sistem ini menambah beberapa fitur tambahan yaitu menyediakan beberapa fungsi yang akan menyimpan hasil dari pencarian lintasan terpendek.

d. Performa

Pencarian lintasan terpendek yang dilakukan oleh sistem akan mampu menunjukkan hasil akhir dari proses, yaitu waktu proses.


(43)

3.2. Pemodelan Aplikasi

Pemodelan aplikasi yang dirancang bertujuan untuk menggambarkan semua kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan Aplikasi dilakukan dengan membuat Use-Case Diagram, Activity Diagram, dan Sequence Diagram.

3.2.1. Use-Case Diagram

Untuk menganalisis komponen yang berperan dalam sistem yang dirancang, penulis menggunakan Use-Case Diagram agar proses penganalisis komponen dapat dilakukan dengan mudah. Use-Case diagram mempresentasikan sebuah interaksi antara actor dengan sistem. Use-Case Diagram sistem pada aplikasi yang dirancang dapat dilihat pada Gambar 3.2.

Dijkstra

Floyd-Warshall

Input daerah asal dan tujuan

Input daerah asal dan tujuan

Perbaharui node

Bandingkan semua rute yang dilalui

Evauasi node demi node

Bandingkan semua rute yang dilalui

Jarak terpendek

Jarak Terpendek

<<depends on>>

<<depends on>>

<<extens>>

<<extens>>

<<include>> <<include>>

<<include>>

<<include>> <<extens>>

<<extens>>

System

Gambar 3.2 Use Case Diagram

Diagram Use-Case yang ditunjukkan pada gambar 3.2, user melakukan pencarian lintasan terpendek dengan menginputkan daerah asal dan daerah tujuan denga menggunakan Algoritma Dijkstra dan Floyd Warshall kemudian melihat hasil dari lintasan terpendek yang telah dicari.

3.2.2.Activity Diagram

3.2.2.1. Activity Diagram dengan Proses Algoritma Dijkstra

Dalam proses Diagram Aktivitas yang akan digambarkan pada Gambar 3.3 maka akan dijelaskan proses kerja dari sistem dalam proses memilih algoritma serta memilih daerah asal dan daerah tujuan yang dilakukan oleh (user).Activity Diagram sistem pada aplikasi yang dirancang dapat dilihat pada Gambar 3.3.


(44)

Djikstra

Pilih Algoritma

Input Daerah Asal dan Tujuan Evaluasi Rute demi Rute

Bandingkan Semua Rute Yang Dilalui

Proses Pencarian Jarak Terpendek dengan Menggunakan Algoritma Djikstra Tampilkan Pencarian Jarak Terpendek

Floyd-Warshall

Pilih Algoritma

Input Daerah Asal dan Tujuan Evaluasi Rute demi Rute

Bandingkan Semua Rute Yang Dilalui

Proses Pencarian Jarak Terpendek dengan Menggunakan Algoritma Floyd-Warshall Tampilkan Pencarian Jarak Terpendek

Gambar 3.3. Activity Diagram dengan Proses Algoritma Dijkstra

Activity Diagram yang ditunjuk pada Gambar 3.3 adalah Diagram Aktivitas dari pencarian lintasan terpendek, pada aktivitas ini sipengguna(user) memilih algoritma yang akan digunakan untuk menentukan daerah asal dan daerah tujuan. Kemudian akan diproses untuk mencari jarak terpendek dengan menggunakan Algoritma Dijkstra dan si user akan menampilkan hasil pencarian jarak terpendek dan sistemakan menghentikan proses setelah mendapat hasil lintasan terpendek dengan menggunakan algoritma tersebut.

3.2.2.2. Activity Diagram dengan Proses Algoritma Floyd-Warshall

Dalam proses Diagram Aktivitas yang digambarkan pada Gambar 3.4 akan dijelaskan proses kerja dari sistem dalam proses memilih algoritma serta memilih daerah asal dan daerah tujuan yang dilakukan oleh (user). Activity Diagram sistem pada aplikasi yang dirancang dapat dilihat pada gambar 3.4.

Gambar 3.4. Activity Diagram dengan Proses Algoritma Floyd-Warshall

Activity Diagram yang ditunjuk pada gambar 3.4 adalah Diagram Aktivitas dari pencarian lintasan terpendek, pada aktivitas ini sipengguna (user) memilih algoritma yang akan digunakan untuk menentukan daerah asal dan daerah tujuan. Kemudian akan diproses


(45)

untuk mencari jarak terpendek dengan menggunakan Algoritma Dijkstra dan Floyd-Warshall dan si user akan menampilkan hasil pencarian jarak terpendek, sistem akan menghentikan proses setelah mendapat hasil lintasan terpendek dengan menggunakan algoritma tersebut.

3.2.3. Sequence Diagram

Gambar 3.5. Sequence Diagram

Pada gambar 3.5 digambarkan aliran pesan dari Sequence Diagram pencarian lintasan terpendek. Masing-masing pesan mengambarkan suatu objek yang membuat suatu pemanggilan objek yang lain saling berkaitan dalam suatu proses penentuan lintasan terpendek.

3.3.Perancangan Aplikasi

Pada Perancangan Aplikasi penentuan lintasan terpendek ini akan dijelasakan mengenai rancangan aplikasi yang akan dikerjakan serta fitur-fitur yang akan digunakan pada aplikasi yang akan dibuat..

3.3.1. Flowchart Aplikasi Lintasan Terpendek menggunakan Algoritma Dijkstra

Berikut ini merupakan Flowchart yang akan menggambarkan bagaimana cara kerja aplikasi yang akan berjalan dalam penentuan lintasan terpendek dengan menggunakan Algoritma Dijkstra.


(46)

Gambar 3.6. Diagram Alur Algoritma Dijkstra

Keterangan:

Pertama menginputkan daerah asal dan daerah tujuan yang kemudian akan diproses/ untuk mendapatkan vertex yang baru, setelah diproses dalam pencarian vertex baru maka setiap

vertex akan dibandingkan untuk mencari rute mana saja yang akan dilalui, setelah itu akan dihitung dengan menggunakan Algoritma Djikstra untuk menentukan lintasan terpendek dari daerah asal sampai ke daerah tujuan, setelah selesai dihitung dengan menggunakan Algoritma Dijkstra , maka hasil akan ditampilkan dan kemudian proses berhenti.

3.3.2. Flowchart Aplikasi Lintasan Terpendek menggunakan Algoritma Floyd-Warshall

Berikut ini merupakan Flowchart yang akan menggambarkan baigaimana cara kerja aplikasi yang akan berjalan dalam penentuan lintasan terpendek dengan menggunakan Algoritma Floyd-Warshall.

Gambar 3.7. Diagram Alur Algoritma Floyd-Warshall

Start

Input daerah asal dan daerah tujuan

Perbaharui vertex

Bandingkan semua rute yang dilalui

Proses pencarian jarak terpendek menggunakan Algoritma Dijkstra

Tampilkan rute jarak terpendek

end

Start

Input daerah asal dan daerah tujuan

Evaluasi vertex demi vertex

Bandingkan semua rute yang dilalui

Proses pencarian jarak terpendek menggunakan Algoritma Floyd-warshall

Tampilkan rute jarak terpendek


(47)

Keterangan:

Tidak jauh berbeda dengan Algoritma Dijkstra Pertama menginputkan daerah asal dan daerah tujuan yang kemudian akan diproses untuk dievaluasi tiap vertexnya, setelah dievaluasi tiap vertex yang ada maka akan dibandingkan untuk mencari rute mana saja yang akan dilalui, setelah itu akan dihitung dengan menggunakan Algoritma Floyd-Warshall untuk menentukan lintasan terpendek dari daerah asal sampai ke daerah tujuan, setelah selesai dihitung dengan menggunakan Algoritma Floyd-Warshall, maka hasil akan ditampilkan dan kemudian proses berhenti.

3.4.Perancangan Antarmuka (Interface)

Rancangan ini adalah rancangan pencarian rute terpendek dimana tampilan awalnya yang akan muncul pada saat sistem dijalankan. Pada tampilan ini terdapat menu process, reset ,close. Berikut merupakan tampilan dari interface yang akan dirancang dapat dilihat pada Gambar 3.8.

Pilih Algoritma Johnson Floyd-Warshall Peta Humbang Hasundutan

Algoritma (1) Data Rute dan Jarak(2) Tentang (3)

(6) (5)

(4)

Input Daerah Asal

Input Daerah Tujuan Input Kecamatan/Kota

(8) (7)

Proses (9) Reset (10) Close (11) Informasi Rute Berdasarkan Jarak dan Waktu

(12)

Gambar 3.8 Rancangan Antarmuka Aplikasi Algoritma

Adapun yang menjadi keterangan bagian-bagian yang ada pada gambar 3.8 dapat dilihat pada tabel 3.1


(48)

Algoritma Data Rute dan Jarak Tentang

Data Lintasan berdasarkan Jarak

Data Lintasan berdasarkan Waktu

JTabel

JTabel

(1)

(2)

No Jenis Onjek Keterangan

1 Tabbed Pane

(Algoritma)

Berisi pilihan Algoritma untuk menentukan lintasan terpendek dengan Algoritma Johnson dan Algoritma

Floyd Warshall.

2 Tabbed Pane

(Data Rute dan Jarak)

Berisi data lintasan berdasarkan jarak dan berdasarkan waktu.

3 Tabbed Pane

(Tentang)

Berisi data tentang penulis.

4 Text Area Berisi Peta Kabupaten Humbang Hasundutan

5 Radio Button (Johnson)

Pilihan untuk menentukan lintasan terpendek dengan Algoritma Johnson .

6 Radio Button

(Floyd Warshall)

Pilihan untuk menentukan lintasan terpendek dengan Algoritma Floyd Warshall.

7 Combo Box

(Daerah Asal)

Pilih daerah asal.

8 Radio Button

(Daerah Tujuan)

Pilih daerah tujuan.

9 JButton

(Proses)

Melakukan proses untuk menentukan lintasan terpendek.

10 JButton

(Reset)

mengembalikan tampilan form seperti pada saat sebelum proses penentuan lintasan terpendek dilakukan.

11 JButton

(Close)

Menutup Aplikasi.

12 Text Area Berisi informasi hasil rute daerah mana saja yang

akan dilalui.

3.4.1. Rancangan Halaman Data Rute dan Jarak

Gambar 3.9 Rancangan Halaman Data Rute dan Jarak


(49)

Algoritma Data Rute dan Jarak Tentang

PERBANDINGAN ALGORITMA JOHNSON DAN FLOYD WARSHALL DALAM PENENTUAN LINTASAN TERPENDEK

Studi Kasus (Humbang Hasundutan)

Oleh :

MARTA LIQUISA SIMAMORA

logo

Program Studi S1 ilmu Komputer

Fakultas Ilmu Komputer dan Teknologi Informasi USU Email : marthaliquisasimamora@gmail.com 1. JTable yang berisi data lintasan berdasarkan jarak. 2. JTable yang berisi data lintasan berdasarkan waktu.

3.4.2.Rancangan Halaman Tentang

Rancangan Halaman Tentang ini berfungsi menampilkan informasi tentang judul yang diangkat dan profil singkat penulis. Profil penulis meliputi biodata penulis serta data-data akademik. Rancangan Tentang dapat dilihat seperti pada gambar 3.10.

Gambar 3.10 Rancangan Halaman Tentang


(50)

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Tahap implementasi merupakan lanjutan dari tahap-tahap perancangan perangkat lunak. Pada tahap ini penulis akan membuat aplikasi yang telah dirancang dan yang akan diimplementasikan ke dalam bahasa pemrograman yang akan menghasilkan sebuah perangkat lunak. Analisis dan perancangan yang telah dibuat dengan baik akan membantu dalam pengerjaan ke tahap implementasi, sehingga hasil akhir yang diinginkan dapat tercapai. Sebagai syarat utama keberhasilan pengujian adalah perangkat lunak yang mamapu menampilkan lintasan terpendek secara akurat, sehingga dapat membantu user

untuk menentukan lintasan terpendek.

Misalkan lokasi umum dan persimpangan jalan Kabupaten Humbang Hasundutan adalah Vertex pada graf yang berarah, maka setiap pasangan vertex yang akan dihubungkan dengan sebuah sisi yang terdiri dari jarak untuk melakukan perjalanan diantara lokasi umum dan persimpangan jalan yang berhubungan. Misalkan dalam masalah ini lintasan yang akan dipilih adalah vertex A yang menjadi awal dan akan berahir pada

vertex H. Lintasan dengan panjang minimum dapat ditemukan dengan mendaftarkan

semua lintasan yang mungkin dilalui oleh vertex A sampai ke H yang kemudian memilih lintasan yang terpendek.

A

H F

G

E

C D

B 12 km

27,8 km

12,2 km

29,7 km

22,6 km

68,95 km

27,6 km

43,99 km

68,95 km

Gambar 4.1 Contoh Graf Pencarian Lintasan Terpendek

4.1.1 Analisis Perjalanan dengan menggunakan Algoritma Dijkstra

Algoritma Dijkstra adalah salah satu metode untuk memecahkan masalah pencarian lintasan terpendek. Algoritma ini biasanya diterapkan pada sebuah aplikasi pencari lintasan jalan yang terdekat dari suatu daerah ke darerah lainnya.


(51)

1. Beberapa titik daerah yang bisa dijangkau secara langsung dan juga jarak antara daerah.

2. Menentukan daerah awal. 3. Menentukan daerah tujuan.

Jika dicontohkan dengan Graf pada Gambar 4.2

A C H G E F D B 12 km 27,8 km 12,2 km 29,7 km

68,95 km 68,95 km

22,6 km

27,6 km

43,99 km

Gambar 4.2 Graf Pencarian Lintasan Terpendek

Jika titik A adalah titik awal dan titik H adalah tujuan. Kemudian kita akan mencari lintasan manakah yang harus dilewati dan memiliki total jarak yang paling dekat. Untuk bisa mendapatkan lintasannya, maka graf diatas akan dicari titik baru dengan bobot terendah.

Langkah 1. Menetapkan tanda merah pada titik awal, kemudian pilih titik baru dengan bobot terkecil dan beri tanda merah pada titik baru yang memiliki bobot terkecil. A C H G E F D B 12 km 27,8 km 12,2 km 29,7 km

68,95 km 68,95 km

22,6 km

27,6 km

43,99 km

Gambar 4.3 Langkah Pertama Pencarian rute

Keterangan:

Pada langkah pertama A adalah titik awal, titik B adalah titik yang hanya dapat dilalui langsung dari titik A sehingga titik B diberi tanda merah.

Langkah 2. Memilih titik berikutnya yang memiliki bobot terkecil dari titik B dan memberi titik baru dengan tanda merah.


(52)

A C H G E F D B 12 km 27,8 km 12,2 km 29,7 km

68,95 km 68,95 km

22,6 km

27,6 km

43,99 km

Gambar 4.4 Langkah Kedua Pencarian Rute

Keterangan:

Pada langkah kedua ada dua titik yang bisa dilalui oleh titik B yaitu titik C dan D, pada gambar diatas titik yang terpilih adalah titik C karena titik C memiliki bobot terkecil dibandingkan dengan titik D, maka titik C diberi tanda merah.

Langkah 3. Memilih titik berikutnya yang memiliki bobot terkecil dari titik C dan memberi titik baru dengan tanda merah.

A C H G E F D B 12 km 27,8 km 12,2 km 29,7 km

68,95 km 68,95 km

22,6 km

27,6 km

43,99 km

Gambar 4.5 Langkah Ketiga Pencarian Rute

Keterangan

Pada langkah ketiga titik D adalah titik terpilih yang akan dilalui oleh titik C,dimana hanya titik D saja yang dapat dilalui oleh titik C, maka titik D diberi tanda merah.

Langkah 4. Memilih titik berikutnya yang memiliki bobot terkecil dari titik D dan memberi titik baru dengan tanda merah.

A C H G E F D B 12 km 27,8 km 12,2 km 29,7 km

68,95 km 68,95 km

22,6 km

27,6 km

43,99 km

Gambar 4.6 Langkah keempat Pencarian Rute

Keterangan:

Pada langkah keempat ada dua titik yang bisa dilalui oleh titik D yaitu titik E dan F, pada gambar diatas titik yang terpilih adalah titik E karena titik E memiliki bobot terkecil dibandingkan dengan titik F, maka titik E diberi tanda merah.

Langkah 5. Memilih titik berikutnya yang memiliki bobot terkecil dari titik E dan memberi titik baru dengan tanda merah.


(1)

Gambar 4.9. Tampilan Halaman Utama

Keterangan:

Pada tampilan halaman utama ini terdapat beberapa menu lainnya yaitu menu data lintasan dan jarak dan menu tentang, dalam tampilan utama berisiri pilihan algoritma untuk menentukan lintasan terpendek dengan Algoritma Djikstra dan Floy-Warshall, kemudian dalam tampilan utama terdapat Combo box dimana digunakan untuk menentukan daerah asal, Radio Button adalah sebagai pilihan daerah tujuan, dan terdapat juga tombol proses, reset dan close dan Text area.

Gambar 4.10. Tampilan Data Rute dan Jarak Keterangan:

Pada tampilan lintasan dan jarak ini hanya berisikan data lintasan yang didasarkan pada jarak dan waktu tempuh yang akan dilalui.

Gambar 4.11. Tampilan Hasil Lintasan Keterangan:

Pertama memilih daerah asal dan daerah tujuan,kemudian memilih algoritma yang akan digunakan untuk menghitung lintasan terpendek, kemudian diproses, yang nantinya akan ditampilkan lintasan mana saja yang akan dilalui berdasarkan algoritma yang telah dipilih. 4.1.4. Tampilan Halaman Tentang


(2)

Pada Tampilan Tentang terdapat tempat untuk menampilkan keterangan tentang aplikasi sekaligus profil singkat penulis. Tampilan Tentang dapat dilihat pada Gambar 4.12.

Gambar 4.12. Tampilan Tentang

4.2. Pengujian Sistem

Pengujian sistem disini adalah untuk mengetahui bagaimana kinerja dari sistem yang telah dirancang, dan untuk mengetahui hasil dari algoritma Djikstra dan Floyd-Warshall berdasarkan jarak dan waktu.

Gambar 4.13. Tampilan Hasil Pencarian Lintasan Terpendek dengan Algoritma Johnson


(3)

Gambar 4.13. Tampilan Hasil Pencarian Lintasan Terpendek dengan Algoritma Floyd-Warshall


(4)

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari penelitian tentang Lintasan Terpendek menggunakan Algoritma Floyd-Warshall dan Djikstra, maka dapat diambil kesimpulan sebagai berikut:

1. Lintasan Terpendek yang didapat adalah lintasan antar vertex dan hasilnya digambarkan dalam bentuk garis lintasan yang menghubungkan antara vertex yang satu dengan yang lainnya.

2. Algoritma Floyd-Warshall dan Dijkstra merupakan Alternatif lain yang digunakan dalam menentukan permasalahan Optimasasi.

3. Algoritma Floyd-Warshall dan Dijkstra dapat digunakan untuk melakukan pencarian Lintasan Terpendek berdasar pada jarak yang ditempuh.

4. Hasil yang diperoleh dari kedua algoritma tersebut lebih variatif dan lebih cepat dalam segi jarak dan waktu.

5.2. Saran

Sebagai saran yang ditujukan kepada pembaca yang ingin menentukan lintasan terpendek dengan menggunakan Algoritma Floyd-warshall dan Dijkstra, agar dapat mengembangkan aplikasi ini dan menyelesaikan persoalan Lintasan Terpendek dalam cakupan yang lebih besar lagi dan mengimplementasikannya dengan bahasa pemograman yang berbeda dan menggunakan algoritma yang berbeda.


(5)

Arsyad, Muhammad. 2011. Perancangan Aplikasi Sistem Pendukung Keputusan Pemilihan Trayek Angkutan Kota pada Perangkat Mobile Menggunakan Algoritma Floyd. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.

Dharwiyanti,S. & R.S. Wahono. 2003. Pengantar Unified Modeling Language (UML) .Texbox. Yogyakarta : UGM

Hakim R. & Ir. Sutarno, M.Si. 2009. Mastering Java : Konsep Pemrograman Java dan Penerapannya untuk Membuat Software Aplikasi. Jakarta : PT Elex Media Komputindo

Hendardi, Aprianto. 2012. Penerapan Algoritma Floyd-Warshall dalam Layanan Informasi berbasis Web untuk Pencarian Lintasan terpendek Antar Program Studi/Fakultas di UPN Veteran Jawa Timur. Skripsi. Jawa Timur, Indonesia : Universitas Pembangunan Nasional “Veteran”.

Iryanto. 2003. Pengantar Teori dan Aplikasi Graph. Medan: USU Press.

Kamayudi, Apri. 2009. Studi dan Implementasi Algoritma Djikstra, Bellman–Ford dan Floyd-Warshall dalam Menangani Masalah Lintasan Terpendek dalam Graf . Jurnal TA. Bandung, Indonesia : Institut Teknologi Bandung.

Lubis, Henny Syahriza. 2009. Perbandingan Algoritma Greedy dan Dijkstra untuk menentukan lintasan terpendek. Skripsi. Medan, Indonesia : Universitas Sumatera Utara.

Munir, Rinaldi. 2005. Buku Teks Ilmu computer Matematika Diskrit Edisi pertama. Bandung : Informatika.

Munir, Rinaldi. 2009. Matematika Diskrit. Edisi Ketiga. Bandung: Informatika.

Noviani, Enik. 2012. Optimalisasi Rute yang Ditempuh Taksi di PT.Citi Perdana Kendedes dengan Mengunakan Algoritma Shortest Path. Laporan Observasi. Malang, Indonesia : Universitas Negri Malang.

Rumbaugh, J., I Jacobson & G. Booch. 2006. The Unified Modeling Language Reference Manual. Westford : Pearson Education Inc.

Siang, Jong Jek. 2009. Matematika Diskrit dan Aplikasinya pada Ilmu Komputer. Yogyakarta: Andi.

Simamora, Hernando Bangun Partogi. 2008. Studi dan Implementasi Algoritma Djikstra dan Algoritma Floyd-Warshall dalam Menentukan Shortest Path pada Graf Berarah Berbobot. Skripsi. Medan. Indonesia : Universitas Negeri Medan. Sitanggang, M.P. 2011. Analisa Pemilihan Rute jalan di jalan Sei Padang sampai pusat

Kota dengan Algoritma Floyd-Warshaal dan Program Map Info Sebagai Tampilan. Skripsi. Medan. Indonesia : Universitas Sumatera Utara.


(6)

Susani, Indriyani Mulyawatik. 2012. Perbandingan Algoritma Djikstra, Bellman– Ford, dan Floyd–Warshall untuk mencari Lintasan terpendek (The Shortest Path Problem). Skripsi. Yogyakarta, Indonesia : Universitas Islam Negeri Sunan Kalijaga.

Syahfitri, Dina. 2012. Simulasi Pencarian Jarak Terdekat (Shortest Path) dengan

Menggunakan Algoritma A* (Studi Kasus Pada Perpustakaan Politeknik Negeri Medan. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.