APLIKASI PERBANDINGAN ALGORITMA BELLMAN-FORD DAN DIJKSTRA PADA PROSES PENCARIAN JALUR TERPENDEK BERBASIS DELPHI.

90  40  Download (0)

Teks penuh

(1)

APLIKASI PERBANDI NGAN ALGORITMA BELLMAN-FORD

DAN DIJ KSTRA PADA PROSES PENCARI AN J ALUR

TERPENDEK BERBASIS DELPHI

SKRIPSI

Oleh :

BAYU SATRIA PERMANA ( 0734010036 )

J URUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL ”VETERAN” J ATIM SURABAYA

(2)

SK R I P SI

APLIKASI PERBANDINGAN ALGORITMA BELLMANN FORD DAN DIJ KSTRA PADA PROSES PENCARIAN J ALUR

TERPENDEK BERBASIS DELPHI

Disusun Oleh :

B AYU SAT R I A P E R M ANA 073401003 6

Telah dipertahankan di hadapan dan diterima oleh Tim Penguji Tugas Akhir Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur

Pada Tanggal 22 Juli 2014 Pembimbing :

Intan Yuniar Pur basari, S.Kom, M.Sc NIP. 3 8006 04 0198 1

Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya

(3)

L E M BAR P E NG E SAH AN

PENGARSIPAN KINERJ A DOSEN BERBASIS WEB PHP DENGAN J QUERY

Disusun Oleh :

BAYU SATRIA PERMANA

NPM. 0734010036

T e la h d i set u j u i m en gi k u t i Uj ia n Nega r a L isa n T a h u n Ak a d em i k 20 13/2014

M en yet u j u i,

Pembimbing 1 Pembimbing 2

Ir. Mu’tasim Billah, Ms Chrystia Aji Putra, S.Kom NIP. 196005041987031001 NPT. 386101002961

Mengetahui,

Ketua Program Studi Teknik Informatika Fakultas Teknologi Industri

Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya

(4)

YAYASAN KESEJ AHTERAAN PENDIDIKAN DAN PERUMAHAN

UNIVERSITAS PEMBANGUNAN NASIONAL “ VETERAN “ J AWA

TIMUR

J alan Raya Rungkut Madya Gunung Anyar

Telp. ( 031 ) 8706369 ( Hunting ) Fax ( 031 ) 8706372 Sur abaya 60294

KETERANGAN BEBAS REVISI

Yang bertanda tangan di bawah ini menyatakan bahwa mahasiswa berikut : Nama : BAYU SATRIA PERMANA

Pr ogram Studi : TEKNIK INFORMATIKA J ur usan : TEKNIK INFORMATIKA Telah mengerjakan revisi Skr ipsi, dengan judul :

APLIKASI PERBANDINGAN ALGORITMA BELLMAN FORD DAN DIJ KSTRA PADA PROSES PENCARIAN J ALUR TERPENDEK BERBASIS DELPHI

(5)

KATA PENGANTAR

Puji syukur kita panjatkan kehadirat Allah SWT, Tuhan Yang Maha Esa yang telah memberikan rahmat serta hidayah-Nya sehingga penyusunan laporan ini dapat diselesaikan.

Laporan ini disusun untuk Tugas Akhir saya, dengan judul “ APLIKASI PERBANDINGAN ALGORITHMA BELLMAN-FORD DAN DIJ KSTRA PADA PROSES PENCARIAN J ALUR TERPENDEK BERBASIS DELPHI ”

Ucapan terima kasih saya sampaikan juga ke berbagai pihak yang turut membantu memperlancar penyelesaian Tugas Akhir ini, yaitu kepada:

1. Bapak Prof.Dr.Ir. Teguh Sudarto, MP Selaku Rektor Universitas

4. Ir. Mu’tasim Billah, MS dan Cristya Aji Putra, S.Kom selaku pembimbing, yang telah sabar dan arif dalam membimbing dan memberikan nasehat kepada saya.

5. Yisti Vita Via, S.ST, M.Kom selaku PIA Jurusan Teknik Informatika yang telah membantu saya.

6. Kedua orang tua saya masing-masing, ibu yang banyak memberikan Doa, Kasih Sayang, Cinta, Kesabaran sejak saya dalam kandungan serta bimbingan, dan semangat sampai saya menjadi sekarang ini, terima kasih banyak untuk semuanya dan terima kasih karena selalu menjadi orang tua yang baik buat saya. Kepada Ibu yang selalu men-support saya agar selalu bersemangat dan meraih cita-cita.

(6)

8. Buat Teman-temanku Adityo Nugroho, Candra Tantyo yang selalu memberi semangat dan dukungannya

Selesainya Tugas Akhir ini merupakan kebahagiaan tersendiri bagi penulis. Penulis menyadari bahwa dalam penyusunan Tugas Akhir ini masih banyak terdapat kekurangan yang harus diperbarui. Untuk itu penulis mengharapkan saran dan kritik demi kesempurnaan Tugas Akhir ini.

Demikianlah laporan ini disusun semoga bermanfaat, sekian dan terima kasih.

Surabaya, 06 Juli 2014

(7)

iv

DAFTAR ISI

ABSTRAK ...i

KATA PENGANTAR ...ii

DAFTAR ISI ...iv

DAFTAR GAMBAR ...viii

DAFTAR TABEL ...xii

BAB I PENDAHULUAN ...1

1.1. Latar Belakang ...1

1.2. Perumusan Masalah ...2

1.3. Batasan Masalah ...2

1.4. Tujuan ...3

1.5. Manfaat ...3

1.6. Metode Penelitian ...4

1.7. Sistematika Penulisan ...5

BAB II TINJAUAN PUSTAKA …...7

2.1. Algorithma Dan Pemrograman ...7

2.1.1. Internal Subroutines...8

(8)

v

2.1.3. Pendekatan Top Down...9

2.2. Konsep Dasar Informasi ...11

2.3. Teorema Graph ...13

2.4. Pemanfaatan Jalur Terpendek ...17

2.5. Algorithma Dijkstra ...18

2.6. Algorithma Bellman Ford ...20

2.7. Unified Modeling Language ...23

2.8. Semantik Dalam UML ...27

2.9. Notasi Dalam UML ...29

2.9.1. Actor ...29

2.9.2. Use Case ...29

2.9.3. Class Diagram ...30

2.9.4. Interface ...31

2.9.5. Interaction ...31

2.9.6. Note ...31

2.9.7. Dependency ...32

2.9.8. Association ...32

2.9.9. Generalization ...33

2.9.10. Realization ...33

2.10. Embarcadero RAD Studio ...33

(9)

vi

3.1. Analisis Permasalahan ...39

3.2. Analisis Dan Kebutuhan Fungsional ...40

3.3. Use Case Diagram ...41

3.4. Struktur Data Simpul ...42

3.5. Struktur Data Edge ...42

3.6. Struktur Tabel Solusi ...43

3.7. Source Code Drawing Path ...44

3.8. Source Code Algorithma Dijkstra ...46

3.9. Source Code Algorithma Bellman Ford ...48

3.10. Perancangan Sistem ...51

3.10.1. Tujuan Perancangan Sistem ...51

3.10.2. Perancangan Antar Muka ...52

BAB IV HASIL DAN PEMBAHASAN ...54

4.1. Implementasi Hasil Perancangan ...54

4.2. Implementasi Prosedur Bellman Ford ...54

4.3. Implementasi Prosedur Dijkstra ...55

4.4. Implementasi Tombol Ganti Font ...56

4.5. Implementasi Tombol Proses ...57

4.6. Implementasi Tombol Buat Baru ...58

4.7. Implementasi Tombol Simpan ...58

4.8. Implementasi Tombol Hapus ...61

(10)

vii

BAB V KESIMPULAN DAN SARAN ...78

5.1 Kesimpulan ...78

5.2 Saran ...78

DAFTAR PUSTAKA ...79

(11)

Abstrak

Transportasi merupakan aktifitas manusia untuk berpindah tempat dari satu titik ke titik lain. Kegiatan transportasi membutuhkan waktu dan biaya. Semakin jauh jarak yang harus ditempuh, maka biaya dan waktu yang dibutuhkan untuk menuju tempat akhir akan membesar. Jika transportasi dilakukan terhadap beberapa titik, dari titik 1 ke titik 2, dari titik 2 ke titik 3, dan seterusnya maka total biaya dan waktu merupakan akumulasi dari perjalanan di antara kedua titik tersebut. Oleh karena itu diupayakan adanya algoritma untuk menemukan rute terpendek yang menghubungkan dua buah titik.

Algoritma untuk mencari rute terpendek ( shortest path ) yang sudah dikenal adalah algoritma Dijkstra dan Bellman-Ford. Kedua algoritma ini memiliki cara kerja yang serupa yaitu dengan menggunakan tabel yang berisi nilai jarak di antara dua titik. Tipe graph yang diproses bisa directed graph maupun undirected graph.

Pada penelitian ini user akan diberi kebebasan membuat graph dengan jumlah node sesuai dengan keinginannya, lalu komputer akan mencari rute terpendek yang menghubungkan setiap node dalam graph dengan algoritma Dijkstra dan Bellman-Ford. Hasil akhir yang ingin diperoleh adalah perbandingan di antara kedua algoritma tersebut.

(12)

BAB I PENDAHULUAN

1.1. Latar Belakang

Transportasi merupakan aktifitas manusia untuk berpindah tempat dari satu titik ke titik lain. Kadang kala kegiatan ini dibarengi dengan kegiatan memindahkan barang. Dampak dari kegiatan transportasi adalah munculnya beragam teknologi, inovasi, dan permasalahan. Berbagai teknologi penunjang transportasi telah dibuat dan dikembangkan, misalnya kendaraan bermotor yang mampu menjangkau jarak yang jauh dengan bahan bakar sedikit, kendaraan bermotor yang mampu menjangkau jarak yang jauh dalam waktu singkat, munculnya kendaraan yang bisa mengangkut muatan dalam jumlah besar, dan sebagainya.

Kegiatan transportasi membutuhkan waktu dan biaya. Semakin jauh jarak yang harus ditempuh, maka biaya dan waktu yang dibutuhkan untuk menuju tempat akhir akan membesar. Jika transportasi dilakukan terhadap beberapa titik, dari titik 1 ke titik 2, dari titik 2 ke titik 3, dan seterusnya maka total biaya dan waktu merupakan akumulasi dari perjalanan di antara kedua titik tersebut. Penghematan bisa dilakukan jika jarak yang ditempuh merupakan jarak terpendek dari sejumlah jarak alternatif yang tersedia. Oleh karena itu diupayakan adanya algoritma untuk menemukan rute terpendek yang menghubungkan dua buah titik.

(13)

algoritma ini memiliki cara kerja yang serupa yaitu dengan menggunakan tabel yang berisi nilai jarak di antara dua titik. Tipe graph yang diproses bisa directed

graph maupun undirected graph. Adapun perbedaan dari algorithma Bellman ford

dengan algorithma Dijkstra adalah pada algorithma Bellman Ford terdapat bobot negative sehingga dalam proses pencarian rute terpendeknya tidak mencari semua kemungkinan seperti halnya pada algorithma Dijkstra, sehingga karena hal ini pula pada algorithma Dijkstra tidak mengenal bobot negatif.

Pada penelitian ini user akan diberi kebebasan membuat graph dengan jumlah node sesuai dengan keinginannya, lalu komputer akan mencari rute terpendek yang menghubungkan setiap node dalam graph dengan algoritma Dijkstra dan Bellman-Ford. Hasil akhir yang ingin diperoleh adalah perbandingan di antara kedua algoritma tersebut.

1.2. Perumusan Masalah

Berdasarkan latar belakang di atas, bisa diuraikan permasalahan dalam penelitian ini, yaitu:

1. Bagaimana melakukan analisa dan membandingkan unjuk kerja algoritma Dijkstra dan Bellman-Ford dalam menyelesaikan persoalan mencari rute terpendek (shortest path) pada sebuah graph ditinjau dari akurasi hasil proses dan jumlah langkah pencarian ?

(14)

1.3. Batasan Masalah

Agar tidak menyimpang dari tujuan yang ingin dicapai, penelitian ini dibatasi pada hal-hal sebagai berikut:

1. Penelitian ini fokus pada upaya membandingkan dua algoritma mencari rute terpendek, yaitu algoritma Dijkstra dan Bellman-Ford. Item-item yang menjadi perbandingan adalah banyaknya langkah penyelesaian pencarian rute terpendek dan pemilihan rute antar node untuk kedua algorithma tersebut. 2. Tipe graph yang digunakan pada penelitian ini bisa diatur secara bebas apakah

directed graph atau undirected graph.

3. Aplikasi yang dibuat dapat berjalan di sistem operasi windows 7.

4. Jumlah titik minimum yang tidak dibatasi, sesuai dengan keinginan user.

1.4. Tujuan

Adapun tujuan dari penelitian ini adalah menghasilkan aplikasi yang bisa membandingkan algoritma Dijkstra dan Bellman-Ford untuk proses mencari rute terpendek pada graph yang tidak berarah.

1.5. Manfaat

(15)

1.6. Metode Penelitian

Metode penelitian merupakan tahapan-tahapan yang dilalui oleh peneliti dari perumusan masalah sampai kesimpulan, yang membentuk sebuah alur yang sistematis. Metodologi penelitian ini digunakan sebagai pedoman penelitian dalam pelaksanaan penelitian ini agar hasil yang dicapai tidak menyimpang dari tujuan yang telah ditetapkan sebelumnya. Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas akhir ini adalah :

a. Studi Literatur

Mencari referensi dan bahan pustaka tentang teori-teori yang berhubungan dengan permasalahan yang akan dikerjakan dalam tugas akhir ini.

b. Studi Kasus

Mencari contoh-contoh kasus serupa yang berhubungan dengan permasalahan dalam tugas akhir ini.

c. Analisis dan Perancangan

Membuat analisa berdasarkan data-data yang sudah dimiliki, membuat model matematisnya dan merancang alur penyelesaian berdasarkan algoritma Bellman Ford dan Dijkstra. Perancangan aplikasi dimulai dengan perancangan antar muka aplikasi, kemudian merancang detail kombinasi dari kedua algoritma tersebut.

d. Implementasi Program

(16)

e. Pengujian Aplikasi

Pengujian dilakukan pada aplikasi yang telah dibuat. Menguji validitas dan efektifitas algoritma yang diterapkan pada aplikasi.

f. Evaluasi dan Penarikan kesimpulan

Evaluasi dilakukan untuk mengetahui kinerja aplikasi kompresi data teks sesuai ukuran dan format data teksnua, selanjutnya dilakukan penarikan kesimpulan.

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, identifikasi masalah, maksud dan tujuan yang ingin dicapai, batasan masalah, metodologi penelitian yang diterapkan dalam memperoleh dan mengumpulkan data, waktu dan tempat penelitian, serta sistematika penulisan. BAB II TINJ AUAN PUSTAKA

(17)

BAB III METODOLOGI

Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta model matematis untuk analisisnya.

BAB IV HASIL DAN PEMBAHASAN

Membahas mengenai pengimplementasian aplikasi yang telah dibuat ke perangkat yang akan digunakan serta melakukan pengujian terhadap aplikasi yang telah diimplementasikan tersebut. BAB V KESIMPULAN DAN SARAN

(18)

BAB II

TINJ AUAN PUSTAKA

2.1. Algorithma Dan Pemr ograman

Pada era tahun 1950 –1960, kecepatan komputer sangat rendah dan disertai juga dengan keterbatasan dari media penyimpan, sehingga tentunya berakibat juga dengan keterbatasan dalam penulisan program-program komputer. Namun di era saat ini, dengan kecepatan komputer yang cukup handal demikian juga ketersediaan dari media penyimpan yang cukup handal dan besar, serta didukung juga dengan perkembangan bahasa pemrograman yang ada sehingga peneliti dapat dengan mudah membuat suatu program. Permasalahan yang timbul dalam pembuatan program tersebut adalah bagaimana peneliti dapat memahaminya, sehingga apabila terdapat perubahan yang akan dilakukan peneliti dapat memperbaikinya secara mudah. Hal ini tentu saja harus peneliti perhatikan terutama apabila peneliti melihat dari biaya yang harus dikeluarkan dalam pembuatan program tersebut. Istilah Pemrograman Terstruktur (Structured

Programming) mengacu dari suatu kumpulan tehnik yang dikemukan oleh Edsger

(19)

Dalam pemrograman secara modular, suatu program akan dipilah kedalam sejumlah modul, dimana setiap modul menjalankan fungsinya sendiri. Tentunya fungsi yang dijalankan oleh setiap modul sangat terbatas sesuai dengan ruang lingkup yang akan dikerjakan. Dengan adanya sejumlah modul program ini tentu saja kesalahan yang timbul dapat dikurangi. Setiap program tentu akan memiliki program utamanya, yang kemudian akan memanggil sejumlah modul-modul yang ada.

Pemrograman secara modular ini dapat diimplementasikan dengan penggunaan subroutine, suatu kelompok instruksi yang menjalankan suatu pengolahan yang sifatnya terbatas seperti pencetakan, pembacaan untuk proses input atau untuk proses penghitungan. Subroutine dapat dikelompokkan menjadi

internal subroutine dan external subroutine. ( Sumber Pustaka : Roger S.

Pressman, 2003).

2.1.1. Internal Subr outines

Internal Subroutines adalah bagian dari suatu program yang digunakan.

Dideklarasikan cukup sekali saja, untuk sejumlah proses yang sama akan dilakukan oleh program tersebut. Program akan memanggil subroutines tersebut jika diperlukan dan apabila telah selesai, kontrol selanjutnya dikembalikan ke instruksi berikutnya. Instruksi yang mengendalikan kontrol transfer ke suatu

subroutine umumnya dikenal sebagai call dan return.

2.1.2. External Subroutines

(20)

dimana ? , apa namanya ?, bagaimana pengiriman datanya ?, bagaimana jawaban yang akan diperoleh ?. Subroutine ini biasanya digunakan untuk pemrosesan yang komplek, yang dibutuhkan oleh banyak user.

2.1.3. Pendekatan Top Down

Pemrograman terstruktur mempergunakan Pendekatan Top-Down dalam perencanaan program. Merupakan pendekatan yang menggambarkan pemecahan modul kompleks/besar menjadi modul-modul yang lebih sederhana/kecil Berbentuk Struktur Hirarki. Di dalam pemrograman terstruktur, terdapat 3 bentuk struktur perintah yang dipergunakan :

a. Sequence Structure

b. Loop Structure

c. Selection Structure

Struktur perintah yang instruksinya dieksekusi berdasarkan urutannya. Dimulai dari bagian atas dan diakhiri di bagian bawahnya. Digambarkan dengan bujur sangkar, sebagai simbol untuk : Input dan Output Operasi aritmatika. Operasi pemindahan data dalam memori komputer. Menggambarkan perulangan eksekusi dari satu atau lebih instruksi Menggambarkan struktur yang mengeksekusi suatu instruksi hanya apabila kondisinya terpenuhi.

Algoritma merupakan sekumpulan langkah-langkah untuk menyelesaikan suatu tugas. Penamaan “Algoritma” diambil dari seorang ahli matematika bernama Al-Khwarizmi. Sebuah algoritma harus:

(21)

Tujuh langkah dasar dalam pengembangan program : a. Definisi Masalah.

b. Outline Solusi.

c. Pengembangan outline ke dalam algoritma. d. Melakukan test terhadap algoritma.

e. Memindahkan algoritma ke dalam bahasa pemrograman. f. Menjalankan program pada komputer.

g. Dokumentasi dan pemeliharaan program.

h. Pada tahap ini memerlukan pemahaman terhadap permasalahan dengan membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.

Setelah permasalahan didefinisikan, permasalahan dapat di bagi kedalam tugas tugas atau langkah langkah yang lebih kecil dan menghasilkan outline solusi. Outline solusi pada langkah kedua dikembangakan menjadi algoritma yaitu sebuah set langkah yang menggambarkan tugas yang akan dikerjakan dan urutan pengerjaannya.

(22)

eksternal dokumentasi (hierarchy chart, algoritma solusi, dan hasil data test) dan internal dokumentasi (coding program). Pemeliharaan program meliputi perubahan yang dialami oleh program (perbaikan ataupun penambahan modul, dan lain-lain). ( Sumber Pustaka : Roger S. Pressman, 2003).

2.2. Konsep Dasar Infor masi

Konsep dasar informasi adalah data yang kemudian diolah dengan kriteria tertentu untuk menghasilkan informasi yang dibutuhkan. Data dapat diartikan segala sesuatu yang perlu diolah terlebih dahulu untuk mendapatkan suatu informasi. Definisi Sistem Informasi Informasi merupakan hal yang sangat penting bagi manajemen dalam mengambil suatu keputusan. Suatu informasi dapat diperoleh dari sistem informasi atau juga disebut dengan Processing system atau information Processing system atau

information-generating system. Sistem informasi didefinisikan oleh Robert A.

Leitchdan K. Roscoe Davis adalah “suatu sistem didalam sebuah organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung orperasi, bersifat menejerial dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan”. Penggunaan teknologi komputer sangat diperlukan untuk membantu pengolahan data yang bersifat rutin dan membutuhkan ketelitian yang tinggi diantaranya : siklus informasi, kualitas informasi, nilai informasi.

a. Siklus Informasi

(23)

model prosestetentu agar dapat lebih berguna dalam bentuk informasi. Data yang diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan tindakan dan menghasilkan suatu tindakan yang akan membuat sejumlah data kembali. Data tersebut akan ditangkap sebagai input, diproses kembali melalui suatu model sampai membentuk suatu siklus informasi.

Gambar 2.1 Siklus Informasi ( Sumber Pustaka : Dikatara, 2011).

b. Kualitas Informasi

Kualitas informasi merupakan bagian dari karakteristik informasi,diukur

berdasarkan Relevansi, Tepat waktu, dan Akurasi hal ini dapat digambarkan pada gambar 2.2 dibawah ini

Gambar 2.2. Komponen Kualitas Informasi ( Sumber Pustaka : Dikatara, 2011).

(24)

c. Nilai Informasi

Nilai dari informasi ditentukan dari dua hal, yaitu manfaat dan biaya untuk mendapatkannya. Suatu informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya untuk mendapatkannya. Akan tetapi perlu diperhatikan bahwa informasi yang digunakan didalam suatu sistem informasi umumnya digunakan untuk beberapa kegunaan. Sehingga tidak memungkinkan dan sulit untuk menghubungkan suatu bagian informasi pada suatu masalah tertentu dengan biaya untuk memperolehnya. Pengukuran nilai informasi biasanya dihubungkan dengan analisis Cost Effectiveness atau Cost Benefit. ( Sumber

Pustaka : Dikatara, 2011).

2.3. Teorema Graph

Dalam matematika dan ilmu komputer, teori grafik adalah studi tentang grafik, struktur matematis yang digunakan untuk model hubungan berpasangan antara objek dari koleksi tertentu. Sebuah "grafik" dalam konteks ini mengacu pada koleksi simpul atau 'node' dan koleksi tepi yang menghubungkan pasangan

vertex. Sebuah grafik dapat diarahkan, yang berarti bahwa tidak ada perbedaan

antara dua simpul yang terkait dengan setiap sisi, atau tepi yang dapat diarahkan dari satu titik ke yang lain; lihat grafik (matematika) untuk definisi yang lebih rinci dan untuk variasi lain dalam jenis grafik yang biasanya dipertimbangkan. Grafik dipelajari dalam teori graf tidak harus bingung dengan grafik fungsi atau jenis lain dari grafik.

(25)

masalah kepentingan praktis dapat diwakili oleh grafik. Dalam ilmu komputer, grafik digunakan untuk mewakili jaringan komunikasi, data organisasi, perangkat komputasi, perhitungan aliran, dan lain-lain Salah satu contoh praktis: Struktur link dari sebuah situs web dapat diwakili oleh sebuah grafik diarahkan. Simpul adalah halaman web tersedia di situs web dan tepi diarahkan dari halaman A ke B Halaman ada jika dan hanya jika A berisi link ke B. Pendekatan yang sama dapat diambil untuk masalah dalam perjalanan, biologi, desain chip komputer, dan banyak bidang lainnya. Perkembangan algoritma untuk menangani grafik karenanya kepentingan utama dalam ilmu komputer. Ada, transformasi grafik sering diformalkan dan diwakili oleh sistem menulis ulang grafik. Mereka baik secara langsung digunakan atau sifat dari sistem menulis ulang (misalnya pertemuan) yang dipelajari. Melengkapi sistem transformasi grafik fokus pada aturan-yang berbasis di-memori manipulasi grafik diarahkan database transaksi-aman, penyimpanan persisten dan query dari grafik-terstruktur.

Ada banyak literatur pada teori grafis. Beberapa diantaranya ditemukan dibuat oleh Harary dan Palmer (1973). Masalah yang umum, yang disebut masalah isomorfisme subgraf, adalah menemukan grafik tetap sebagai suatu subgraf dalam grafik yang diberikan. Salah satu alasan untuk tertarik pada pertanyaan seperti itu adalah bahwa sifat-sifat grafik banyak keturunan untuk

subgraphs, yang berarti bahwa grafik memiliki properti jika dan hanya jika semua

(26)

diinduksi, yang berarti bahwa grafik memiliki properti jika dan hanya jika semua

subgraphs diinduksi juga memilikinya. Mencari subgraphs diinduksi maksimal

dari jenis tertentu juga sering disebut NP-complete. Berikut ini merupakan salah contoh model graph berbobot dan tidak berbobot :

Gambar 2.3. Contoh Model Graph Tanpa Bobot( Sumber Pustaka :

Wikipedia, 2011).

Gambar 2.4. Contoh Model Graph Dengan Bobot ( Sumber Pustaka : Elnico,

2011).

(27)

a. Bertetangga (Adjacent) : Dua buah simpul pada graf tak-berarah G dikatakan bertetangga jika keduanya terhubung langsung dengan sebuah sisi.

b. Bersisian (Incident) : Untuk sembarang sisi e = (vj, vk), sisi e dikatakan bersisian dengan simpul vj dan vk.

c. Simpul Terpencil (Isolated Vertex) : Simpul yang tidak mempunyai sisi yang bersisian dengannya disebut simpul terpencil.

d. Graf Kosong (Null Graph atau Empty Graph) : Graf yang himpunan sisinya merupakan himpunan kosong disebut graf kosong.

e. Derajat (Degree) : Derajat suatu simpul pada graf tak berarah adalah jumlah sisi yang bersisian dengan simpul tersebut. Pada graf berarah, derajat suatu simpul ialah jumlah busur yang masuk ke simpul ditambah dengan jumlah busur yang keluar dari simpul.

f. Lintasan (Path) : Lintasan yang panjangnya n dari simpul awal vo ke simpul tujuan vn di dalam graf G ialah barisan berselang-seling simpul-simpul dan sisi-sisi yang berbentuk v0, e1, v1, e2, v2, … , vn-1, en, vn, sedemikian sehingga e1 = (v0,v1), e2 = (v1,v2), … , en = (vn-1,vn) adalah sisi-sisi dari graf G dengan panjang lintasan adalah jumlah sisi dalam lintasan tersebut. g. Siklus (Cycle) atau Sirkuit (Circuit) : Lintasan yang berawal dan berakhir

pada simpul yang sama disebut sirkuit atau siklus. Panjang sirkuit adalah jumlah sisi di dalam sirkuit tersebut.

(28)

i. Upagraf (Subgraph) dan Komplemen Upagraf : Misalkan G = (V,E) adalah sebuah graf. G1 = (V1, E1) adalah upagraf dari G jika V1 ⊆ V dan E1 ⊆ E. Maka, komplemen dari upagraf G1 terhadap graf G adalah graf G2 = (V2, E2) sedemikian sehingga E2 = E – E1 dan V2 adalah himpunan simpul yang anggota-anggota E2 bersisian dengannya.

j. Upagraf Merentang (Spanning Subgraph) : Upagraf G1 = (V1, E1) dari G = (V,E) dikatakan upagraf merentang jika V1 = V (yaitu G1 mengandung semua simpul dari G)

k. Cut-Set : Cut-set dari graf terhubung G adalah himpunan sisi yang bila

dibuang dari G menyebabkan G tidak terhubung. Jadi, cut-set selalu menghasilkan dua buah komponen terhubung. Nama lain untuk cut-set ialah bridge (jembatan).

l. Graf Berbobot (Weighted Graph) : Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga (bobot). Graf inilah yang digunakan untuk mencari lintasan terpendek. ( Sumber Pustaka : Syaifulhamzah, 2011 )

2.4. Pemanfaatan J alur Terpendek

Pencarian jalur terpendek diterapkan untuk secara otomatis mencari arah antara lokasi fisik, seperti mengemudi petunjuk pada pemetaan situs web seperti

MapQuest atau Google Maps. Jika salah satu merupakan mesin abstrak

nondeterministic sebagai grafik di mana simpul menggambarkan keadaan dan tepi

(29)

keadaan tertentu. Dalam pola pikir jaringan atau telekomunikasi, ini masalah jalan terpendek adalah kadang-kadang disebut masalah jalan min-delay dan biasanya diikat dengan masalah jalan terluas. Sebagai contoh, algoritma dapat mencari jalan terpendek terluas, atau terluas terpendek. ( Sumber Pustaka : Syaifulhamzah,

2011 )

2.5. Algorithma Dijkstra

Algoritma Dijkstra, dikembangkan oleh ilmuwan komputer Belanda Edsger Dijkstra pada tahun 1956 dan diterbitkan pada tahun 1959, adalah sebuah pencarian grafik algoritma yang memecahkan masalah jalan satu sumber terpendek untuk sebuah grafik dengan bobot tepi nonnegatif, menghasilkan berupa pohon jalur terpendek. Algoritma ini sering digunakan dalam routing dan sebagai subrutin dalam algoritma grafik lainnya.

(30)

Algoritma Dijkstra asli tidak menggunakan antrian prioritas min-dan berjalan dalam O (| V | 2). Ide dari algoritma ini juga diberikan dalam (Leyzorek et al. 1957). Implementasi umum berdasarkan antrian min-prioritas dilaksanakan oleh tumpukan fibonacci dan berjalan dalam O (| E | + | V | log | V |) adalah hasil penelitian Fredman (Fredman & Tarjan 1984). Ini adalah asimtotik yang dikenal tercepat satu sumber-jalan terpendek algoritma untuk grafik diarahkan secara khusus dengan bobot nonnegatif terbatas.

Langkah-langkah Algoritma Dijkstra :

1. Inisialisasikan suatu nilai jarak untuk setiap vertex dengan nilai 0 untuk simpul awal dan nilai tak hingga untuk setiap simpulnya. 2. Tandailah seluruh simpul sebagai belum dikunjungi dan fentukan

simpul a sebagai simpul saat ini.

3. Untuksimpul saat ini, perhitungkan seluruh tetangga langsungnya yang belum dikunjungidan kalkulasikan jarak alternativ dari simpul

a.Jika jarak yang didapatkan lebih kecil daripada jarak yang sudah

dicatat sebumya, maka jarak yang minimum akan disimpan.

4. Jika kita sudah selesai dengan pengecekan terhadap semua tetangga terdekat dari simpul saat ini, simpul ditandai sebagai sudah dikunjungi.

5. Sebuah simpul yang sudah ditandai sebagai sudah dikunjungi tidak akan pernah diperiksa ulang dan jarak yang tercatat adalah akhir dan minimal.

(31)

untuk ditetapkan sebagai simpul saat ini dan ulangi langkah 3.( Arie,

2009 )

Berikut ini merupakan Flowchart dari algorithma dijkstra secara umum:

Gambar 2.5. Flowchart Algoritma Dijkstra

2.6. Algorithma Bellman Ford

(32)

digunakan terutama untuk grafik dengan bobot tepi negatif. Algoritma ini dinamai sesuai pembuatnya, Richard Bellman dan Lester Ford Jr.

Jika graf berisi "siklus negatif", yaitu, siklus yang ujung-ujungnya jumlah untuk nilai negatif, kemudian berjalan sewenang-wenang berat badan rendah dapat dibangun, yaitu, mungkin tidak ada jalan terpendek. Bellman-Ford dapat mendeteksi siklus negatif dan melaporkan keberadaan mereka, tetapi tidak dapat menghasilkan jawaban yang benar jika siklus negatif dicapai dari sumber.

Menurut Robert Sedgewick, "bobot negatif tidak hanya keingintahuan matematika, muncul dalam cara alami ketika kita mengurangi masalah lain untuk jalur terpendek ". Ketika graph G berisi siklus negatif. Satu NP-Complete varian dari masalah jalan terpendek mencari jalur terpendek di G (mengandung siklus negatif) sehingga tidak ada tepi diulang. Sedgewick memberikan pengurangan dari masalah jalan Hamiltonian ini merupkan masalah varian.

Bellman-Ford mempunyai struktur dasar yang sangat mirip dengan algoritma Dijkstra, tapi bukannya rakus memilih node minimum berat badan yang belum diproses untuk diperiksa, itu hanya melepaskan semua tepi. Pengulangan memungkinkan jarak minimum untuk secara akurat menyebarkan seluruh grafik, karena, dalam ketiadaan siklus negatif, jalur terpendek hanya dapat mengunjungi setiap node paling banyak sekali. Berbeda dengan pendekatan Greedy, yang tergantung pada asumsi-asumsi struktural tertentu berasal dari bobot positif, pendekatan langsung meluas ke kasus umum.

(33)

Ford secara sederhana melakukan pengecekan terhadap semua sisi dan melakukannya sejumlah V-1 kali, dimana V adalah banyaknya simpul yang terdapat didalam graf. Pengulangan ini memungkinkan jarak terpendek untuk dihitung secara akurat bertahap di dalam graf dengan kemungkinan suatu simpul dikunjungi dalam lintasan tersebut adalah sebanyak-banyaknya satu kali saja.

Bellman-Ford berjalan dalam O (| V | · | E |) waktu, dimana | V | dan | E | adalah jumlah simpul dan tepi masing-masing. ( Arie, 2009 )

Berikut ini adalah flowchart algorithma Bellman-Ford :

(34)

2.7. Unified Modelling Language

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah

menjadi standar dalam industri untuk menentukan, visualisasi, merancang dan mendokumentasikan artifact dari sistem software, untuk memodelkan bisnis dan sistem non software lainnya. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks.

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented

(35)

Object Management Group, Inc. (OMG) adalah sebuah organisasi

international yang dibentuk pada 1989, didukung lebih dari 800 anggota, terdiri dari perusahaan sistem informasi, software developer, dan pada user sistem komputer. Organisasi ini salah satunya bertugas membuat spesifikasi “manajemen objek” untuk menetapkan kerangka bersama dalam rekayasa software.

Gambar 2.7. Metodologi dalam UML ( Sumber Pustaka : Egadinioniputri, 2011 )

Sasaran OMG adalah membantu perkembangan object-oriented

technology dan mengarahkannya dengan mendirikan Object Management

Architecture (OMA). OMA menentukan infrastruktur konseptual yang didasarkan

pada seluruh spesifikasi yang dikeluarkan OMG.

OMG kemudian mengeluarkan UML, dimana dengan adanya UML ini diharapkan dapat mengurangi kekacauan dalam bahasa pemodelan yang selama ini terjadi dalam lingkungan industri. UML diharapkan juga dapat menjawab masalah penotasian dan mekanisme tukar menukar model yang terjadi selama ini.

(36)

walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas yang sama.

Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik.

Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebutan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan. Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat.

(37)

digunakan atau dihasilkan dalam proses pengembangan perangkat. Contohnya adalah source code yang dihasilkan oleh proses pemrograman.

Yang harus diperhatikan untuk menjaga konsistensi antar artifact selama proses analisis dan desain adalah bahwa setiap perubahan yang terjadi pada satu artifact harus juga dilakukan pada atifact sebelumnya.

Untuk membuat suatu model, UML memiliki diagram grafis sebagai berikut

use case diagram class diagram behavior diagram

statechart diagram activity diagram interaction diagram

o sequence diagram

o collaboration diagram implementation diagram

component diagram deployment diagram

Diagram-diagram tersebut diberi nama berdasarkan sudut pandang yang berbeda-beda terhadap sistem dalam proses analisis atau rekayasa.

Dibuatnya berbagai jenis diagram diatas karena :

(38)

saling bebas (independent). Sudut pandang tunggal senantiasa tidak mencukupi untuk melihat sistem yang besar dan kompleks.

2. Diagram yang berbeda-beda tersebut dapat menyatakan tingkatan yang berbeda-beda dalam proses rekayasa.

3. Diagram-diagram tersebut dibuat agar model yang dibuat semakin mendekati realitas.

2.8. Semantik Dalam UML

OMG telah menetapkan semantik (makna istilah) semua notasi UML

dalam model struktural dan model behavior. Model struktural (model statis), menekankan stuktur obyek dalam sebuah sistem, menyangkut kelas-kelas,

interface, atribut dan hubungan antar komponen. Model behavioral (model

dinamis), menekankan perilaku obyek dalam sebuah sistem, termasuk metode, interaksi, kolaborasi dan state history.

Tujuan utama UML diantaranya untuk :

1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum.

2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa.

(39)

Kedua, UML menekankan pada apa yang dapat dikerjakan dengan metode-meode tersebut.

Ketiga, UML berfokus pada suatu bahasa pemodelan standar, bahkan pada proses standar. Meskipun UML harus diaplikasikan dalam konteks sebuah proses, dari pengalaman, bahwa organisasi dan masalah yang berbeda juga memerlukan proses yang berbeda pula.

UML tidak mencakup : a. Bahasa Pemrograman

UML adalah bahasa pemodelan visual, bukan dimaksudkan untuk menjadi suatu bahasa pemrograman visual, tetapi UML memberikan arah untuk bergerak kearah kode.

b. Tool (software aplikasi) pemodelan

Membuat standar sebuah bahasa diperlukan oleh tool-tool dan proses. UML mendefinisikan semantik dan notasi, bukan sebuah tool. Contoh tool yang menggunakan UML sebagai bahasanya adalah Rational Rose dan Enterprise

Architect.

c. Proses rekayasa

UML digunakan sebagai bahasa dalam proyek dengan proses yang berbeda-beda. UML bebas dari proses dan mendefinisikan sebuah proses standar bukan tujuan UML atau RFP dari OMG. Dalam pembahasan ini kita akan menggunakan sebuah proses yang dikeluarkan Rational Software, yaitu Rational Unified Process (RUP)

(40)

2.9. Notasi Dalam UML 2.9.1. Actor

Gambar 2.8. Notasi Actor. ( Sumber Pustaka : Egadioniputri, 2011).

Actor menggambarkan segala pengguna software aplikasi (user). Actor

memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai contoh sebuah actor dapat memberikan input kedalam dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah actor berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah actor mungkin seorang manusia, satu device, hardware atau sistem informasi lainnya.

2.9.2. Use Case

Gambar 2.9. Notasi Use Case. ( Sumber Pustaka : Egadioniputri, 2011 ).

Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem

untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut.

Use-case Konkret adalah use case yang dibuat langsung karena keperluan actor.

Actor dapat melihat dan berinisiatif terhadapnya

Use-case Abstrak adalah use case yang tidak pernah berdiri sendiri. Use case

(41)

memperumum (generalize) use case lainnya. Untuk menggambarkannya dalam use case model biasanya digunakan association relationship yang memiliki stereotype include, extend atau generalization relationship. Hubungan include menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use case lainnya. Hubungan extend antar use case berarti bahwa satu use case merupakan tambahan fungsionalitas dari use case yang lain jika kondisi atau syarat tertentu terpenuhi.

2.9.3. Class Diagram

Gambar 2.10. Notasi Class. ( Sumber Pustaka : Egadioniputri, 2011).

Class merupakan pembentuk utama dari sistem berorientasi obyek,

karena class menunjukkan kumpulan obyek yang memiliki atribut dan operasi yang sama. Class digunakan untuk mengimplementasikan interface.

Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang

dibangun. Class bisa merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.

Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang paling atas untuk nama class, persegi panjang paling bawah untuk operasi, dan persegi panjang ditengah untuk atribut.

(42)

2.9.4. Inter face

Gambar 2.11. Notasi Interface. ( Sumber Pustaka : Egadioniputri, 2011).

Interface merupakan kumpulan operasi tanpa implementasi dari suatu class.

Implementasi operasi dalam interface dijabarkan oleh operasi didalam class. Oleh karena itu keberadaan interface selalu disertai oleh class yang mengimplementasikan operasinya. Interface ini merupakan salah satu cara mewujudkan prinsip enkapsulasi dalam obyek.

2.9.5. Interaction

Gambar 2.12. Notasi Interaction. ( Sumber Pustaka : Egadioniputri, 2011).

Interaction digunakan untuk menunjukkan baik aliran pesan atau informasi antar

obyek maupun hubungan antar obyek. Biasanya interaction ini dilengkapi juga dengan teks bernama operation signature yang tersusun dari nama operasi, parameter yang dikirim dan tipe parameter yang dikembalikan

2.9.6. Note

(43)

Note digunakan untuk memberikan keterangan atau komentar tambahan dari suatu

elemen sehingga bisa langsung terlampir dalam model. Note ini bisa disertakan ke semua elemen notasi yang lain.

2.9.7. Dependency

Gambar 2.14. Notasi Dependency. ( Sumber Pustaka : Egadioniputri, 2011).

Dependency merupakan relasi yang menunjukan bahwa perubahan pada salah satu

elemen memberi pengaruh pada elemen lain. Elemen yang ada di bagian tanda panah adalah elemen yang tergantung pada elemen yang ada dibagian tanpa tanda panah.

Terdapat 2 stereotype dari dependency, yaitu include dan extend. Include menunjukkan bahwa suatu bagian dari elemen (yang ada digaris tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada di garis dengan panah).

Extend menunjukkan bahwa suatu bagian dari elemen di garis tanpa panah bisa

disisipkan kedalam elemen yang ada di garis dengan panah. 2.9.8. Association

Gambar 2.15. Notasi Asociation. ( Sumber Pustaka : Egadioniputri, 2011).

Association menggambarkan navigasi antar class (navigation), berapa banyak

obyek lain yang bisa berhubungan dengan satu obyek (multiplicity antar class) dan apakah suatu class menjadi bagian dari class lainnya (aggregation).

Navigation dilambangkan dengan penambahan tanda panah di akhir garis.

Bidirectional navigation menunjukkan bahwa dengan mengetahui salah satu class

(44)

navigation hanya dengan mengetahui class diujung garis association tanpa panah

kita bisa mendapatkan informasi dari class di ujung dengan panah, tetapi tidak sebaliknya. Aggregation mengacu pada hubungan “has-a”, yaitu bahwa suatu class memiliki class lain, misalnya Rumah memiliki class Kamar.

2.9.9. Generalization

Gambar 2.16. Notasi Generalization. ( Sumber Pustaka : Egadioniputri, 2011).

Generalization menunjukkan hubungan antara elemen yang lebih umum ke

elemen yang lebih spesifik. Dengan generalization, class yang lebih spesifik (subclass) akan menurunkan atribut dan operasi dari class yang lebih umum (superclass) atau “subclass is superclass”. Dengan menggunakan notasi generalization ini, konsep inheritance dari prinsip hirarki dapat dimodelkan

2.9.10.Realization

Gambar 2.17. Notasi Realization. ( Sumber Pustaka : Egadioniputri, 2011).

Realization menunjukkan hubungan bahwa elemen yang ada di bagian tanpa

panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada di bagian dengan panah. Misalnya class merealisasikan package, component merealisasikan class atau interface

2.10.Embarcadero RAD Studio

(45)

pascal yang diciptakan oleh Niklaus Wirth. Pada masa itu, Wirth bermaksud membuat bahasa pemrograman tingkat tinggi sebagai alat bantu mengajar logika pemrograman komputer kepada para mahasiswanya. Bahasa pemrograman pascal ini kemudian dikembangkan oleh Borland yang merupakan salah satu perusahaan software menjadi sebuah tools dengan dibuatkan kompiler dan dijual ke pasar dengan nama TURBO PASCAL.

Seiring dengan ditemukannya metode pemrograman berorientasi obyek, bahasa pemrograman pascal berevolusi menjadi object pascal dan dikembangkan oleh Borland dengan nama Borland Delphi. Keberhasilan Borland dalam mengembangkan Delphi menjadikan salah satu bahasa yang populer dan disukai oleh banyak programmer, disamping Visual Basic yang dikeluar Microsoft di kemudian hari. Lingkungan pengembangan Delphi yang mudah, intuitif dan memudahkan pemakai, berhasil melampaui popularitas rivalnya, yaitu Visual Basic, sehingga pernah menyandang predikat “VB-Killer”.

Karena tuntutan perkembangan teknologi, Borland berganti nama menjadi Code Gear, tetapi tetap mempergunakan nama Delphi untuk tools yang berbasis object pascal ini. Tidak lama kemudian Code Gear diakuisisi oleh Embarcadero dan namanya pun berubah menjadi Embarcadero RAD Studio dengan tetap mempertahankan Delphi sebagai salah satu tools-nya. Beberapa kelebihan yang dimiliki oleh Embarcadero Delphi 2010 ini antara lain :

1. Delphi dibangun dengan menggunakan arsitektur native compiler, sehingga proses kompilasi instruksi menjadi bahasa mesin menjadi lebih cepat.

(46)

ketergantungan terhadap library ataupun file-file pendukung lainya, sesuai dengan prinsip build once, runs everywhere.

3. Delphi mempunyai kemampuan selective object linking, sehingga apabila terdapat pemanggilan sebuah library dan ternyata tidak terdapat instruksi dalam library tersebut yang dipergunakan dalam system, maka secara otomatis, kompiler tidak akan menyertakan library tersebut dalam proses kompilasinya. Hal ini berbeda dengan tools lain yang tidak mempunyai kemampuan seperi itu. Dengan adanya kemampuan tersebut, maka file eksekusi yang dihasilkan delphi menjadi lebih optimal.

4. Lingkungan pengembangan Delphi sangat intuitif karena semua komponen yang menjadi alat utama desain visual telah ditampilkan saat pertama kali langsung dapat diamati oleh user dan dapat digunakan secara langsung. ( Alan

Denis, 2003 ).

Gambar 2.18. Tampilan Awal Delphi

Dalam delphi seperti halnya bahasa visual lainnya menyediakan komponen. Komponen adalah “jantung” bagi pemograman visual. Componen

(47)

Standard, Additional, Win32, System, dan beberapa lainnya. Berikut ini adalah uraian yang komponen palet yang paling sering dipergunakan, termasuk dalam tugas akhir ini.

Gambar 2.19. Daftar komponen palet standard Delphi

Tampak pada palet standard diatas (dengan urutan dari kiri ke kanan), adalah frame, main menu, pop up menu, label, edit text, memo, button, check box, radio button, list box, combo box, scroll bar, group box, radio group, panel dan action list.

Gambar 2.20. Daftar komponen palet additional

Pada palet additional terdapat komponen bit button, speed button, mask edit, string grid, draw grid, image, shape, bevel, scroll box, list box, splitter, static text, tlink label, control bar, application events, value list edit, labeled edit, buttoned edit, color box, color list box, category button, button group, dock tab set, tab set, tray icon, flow panel, grid panel, balloon hint, category group dan action manager.

(48)

Pada palet win 32 terdapat komponen tab control, page control, image list, rich edit, track bar, progress bar, up down, hot key, animate, date time picker, month calendar, tree view, list view, header control, status bar, tool bar, cool bar, page scroller, Combo Box Ex, XP Manifest, Shell Resource.

Gambar 2.22. Daftar komponen palet system

Komponen yang terdapat dalam palet system adalah timer, paint box, media player, ole container, comadmin dialog, DDE Client Conv, DDE Client Item, DDE Server Conv dan DDE Server Item.

Gambar 2.23. Daftar Komponen Palet Dialog

Komponen yang terdapat dalam palet dialog adalah open dialog, save dialog, open picture dialog, save picture dialog, open text file dialog, save text file dialog, font dialog, color dialog, print dialog, printer setup dialog, find dialog, replace dialog, page setup dialog.

(49)
(50)

BAB III METODOLOGI

Analisa adalah tahap aktifitas kreatif dimana analis berusaha memahami permasalahan secara mendalam. Ini adalah proses interative yang terus berjalan hingga permasalahan dapat dipahami dengan benar. Analisis bertujuan untuk mendapatkan pemahaman secara keseluruhan tentang sistem yang akan dibuat berdasarkan masukan dari pihak-pihak yang berkepentingan dengan sistem tersebut.

3.1. Analisis Per masalahan

Permasalahan yang dibuat dalam tugas akhir ini adalah membuat simulasi algoritma Bellman-Ford dan Dijkstra untuk mencari rute terpendek, kemudian mengimplementasikannya pada proses aplikasinya. Hasil simulasi algoritma Bellman-Ford dan Dijkstra yang telah dibuat ini kemudian dilakukan uji coba, sehingga kita bisa melihat hasil pencarian dan simulasi yang telah dibuat. Rute dari hasil penelitian dengan metode Bellman-Ford dan Dijkstra ini beserta pengimplementasiannya akan dibandingkan dengan rure aslinya. Perbandingan yang akan dilakukan adalah berupa total jarak tempuh dan langkah pencarian pada graph yang sebelum dicari rute terpendeknya dan graph yang sesudah ditentukan rute terpendeknya.

(51)

3.2. Analisis dan Kebutuhan fungsional a. Actor Identification

Tahap pertama yang dilakukan dalam melakukan analisis berorientasi objek menggunakan UML adalah menentukan actor atau pengguna sistem. Kata aktor dalam konteks UML, menampilkan peran (roles) yang pengguna (atau sesuatu di luar sistem yang dikembangkan yang dapat berupa perangkat keras, end

user, sistem yang lain, dan sebagainya).

b. Analisis dan Kebutuhan non-fungsional

Analisis dan kebutuhan non-fungsional meliputi analisis dan kebutuhan pengguna, analisis dan kebutuhan perangkat keras, serta analisis dan kebutuhan perangkat lunak. Adapun perangkat keras yang dipergunakan dalam pelaksanaan tugas akhir ini adalah :

1. Processor : Intel Multi Core, 2.2 Ghz. 2. Memory : 1024 MB DDR 3.

3. Hard Drive : 160 GB dengan ruang kosong 12 GB.

4. Display Adapter : Intel Graphics Chipset, true color, res. 1366 x 768. 5. Monitor : LCD monitor.

6. Keyboard dan Mouse Standar.

Sedangkan perangkat lunak yang dipergunakan dalam pelaksanaan tugas akhir ini adalah :

1. Sistem Operasi : Microsoft Windows 7 Profesional 64 bit. 2. Editor Dokumen : Microsoft Office Profesional 2010.

(52)

c. Analisis dan Kebutuhan Pengguna (user)

Pengguna diartikan sebagai orang yang mengakses dan menggunakan perangkat lunak aplikasi pencari rute terpendek dengan algoritma Bellman-Ford dan Dijkstra, dalam hal ini pengguna harus memiliki kemampuan dasar untuk mengoperasikan komputer dan memiliki kapabilitas dalam menggunakan aplikasi komputer.

3.3. Use Case Diagram

Use case diagram digunakan untuk menggambarkan fungsionalitas yang

diharapkan dari sebuah sistem. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case diagram pada Gambar 3.1 menggambarkan bagaimana proses yang terjadi pada aplikasi pencari rute terpendek serta bagaimana pengguna melakukan interaksi terhadap user.

Pada use case dalam gambar 3.1 tersebut terjadi beberapa proses yaitu : 1. User dapat melakukan proses penggambaran graph.

2. User dapat melakukan pencarian rute terpendek.

(53)

3.4. Struktur Data Simpul

Dalam tugas akhir ini, struktur data simpul didefinisikan sebagai berikut :

Penjelasan struktur data tersebut adalah :

1. Variabel X dan Y mewakili koordinat X dan Y pusat node. 2. Caption digunakan untuk menyimpan label setiap node.

3. Prev digunakan untuk menghubungkan dengan node sebelumnya.

4. Node digunakan untuk menyimpan data node itu sendiri.

5. Next digunakan untuk menghubungkan dengan node berikutnya.

3.5. Struktur Data Edge

(54)

Penjelasan struktur data tersebut adalah :

1. Variabel StartNode dan EndNode menunjukkan node awal dan akhir edge. 2. Weight digunakan untuk menyimpan nilai setiap edge.

3. Prev digunakan untuk menghubungkan dengan edge sebelumnya.

4. Edge digunakan untuk menyimpan data edge itu sendiri.

5. Next digunakan untuk menghubungkan dengan edge berikutnya.

3.6. Struktur Tabel Solusi

Dalam tugas akhir ini, struktur tabel solusi didefinisikan sebagai berikut :

Penjelasan struktur data tersebut adalah :

1. Baris, Kolom digunakan untuk menyimpan nilai baris dan kolom pada sel. 2. Value digunakan menyimpan nilai pada suatu sel.

3. State digunakan untuk menyimpan state suatu sel.

(55)

4. Lright,Lleft,Lup,Ldown digunakan untuk menghubungkan sel di sebelah kiri,

kanan, atas dan bawah.

5. Done, digunakan untuk menyimpan status kunjungan pada sel.

6. Enabled, digunakan untuk status aktifitas sel.

7. Number, digunakan untuk pemberian nomor urut sel.

8. Test Route, digunakan untuk jalur lintasan teruji.

9. Test Value, digunakan untuk menyimpan nilai jalur lintasan teruji.

10.Mincost, digunakan untuk menyimpan nilai minimum pada sel.

11.Shortest, digunakan menyimpan jalur tercepat menuju sel.

12.Next, digunakan untuk link ke proses selanjutnya.

3.7. Sour ce Code Drawing Path

(56)
(57)

Penjelasan source code diatas adalah :

Sistem akan memeriksa terlebih dahulu apakah jalurnya kosong atau tidak. Jika tidak maka sistem akan melakukan proses penggambaran jalur sesuai koordinat yang dipilih user, sekaligus akan menjumlahkan bobot setiap jalur. Proses tersebut akan diulang sampai semua jalur telah dikosongkan.

3.8. Sour ce Code Algorithma Dijkstra

MinVal = -1

MinCol = 0

Path = ''

TempProcess = ProcessRootDijkstra

while (TempProcess <> nil) do

if TempProcess^.Enabled then

if not(TempProcess^.Done) then

TempProcess := TempProcess^.Next;

Inc (DStep)

TempProcess := ProcessRootDijkstra;

while (TempProcess <> nil) do

if TempProcess^.Enabled then

if (TempProcess^.Number = MinCol) then

TempProcess^.TestValue = 0

TempProcess^.TestRoute = TempProcess^.Shortest

TempProcess^.Done = True

else

(58)

Penjelasan source code diatas adalah :

Pertama kali sistem menginisialisasi rute minimum adalah -1 dan kolom minimum adalah nol. Kemudian dilakukan pencarian arah dengan cost terendah dengan memanggil sub rutin ProcessRootDijkstra. Hasil proses dari sub rutin tersebut digunakan untuk mengupdate nilai minimum cost dan rute terendah ke semua node. Hasil tersebut masih diuji kembali dengan memanggil sub rutin

ProcessRootDijkstra. Hasil pengujian akan ditampilkan pada form berikut

langkah-langkah pencarian serta bobot terendah yang diperoleh.

Pada proses pencarian rute terpendek menggunakan algorithma dijkstra memang digunakan pengujian dua kali pada setiap lintasan dan node yang terdapat dalam suatu graph, sehingga dapat dikatakan proses pencarian dengan dijkstra proses verifikasinya lebih baik.

TempProcess = TempProcess^.Next

TempProcess := ProcessRootDijkstra;

while (TempProcess <> nil) do

if TempProcess^.Enabled then

CountPath(TempProcess)

TempProcess = TempProcess^.Next

MemoDijkstra.Clear

TempProcess = ProcessRootDijkstra

while (TempProcess <> nil) do

if TempProcess^.Enabled then

MemoDijkstra.Lines.Add(IntToStr(TempProcess^.Number)

+ ' -> ' + TempProcess^.Shortest + ' = ' +

IntToStr(TempProcess^.MinCost))

(59)

3.9. Sour ce Code Algorithma Bellman Ford

if (Source <> Target) then

begin

TempProcess = ProcessRootBellmanFord

while (TempProcess <> nil) do

TempProcess := ProcessRootBellmanFord

(60)

while (TempEdge <> nil) do

if ((TempEdge^.Edge.StartNode.Caption = St1) and

(TempEdge^.Edge.EndNode.Caption = St2)) or

((TempEdge^.Edge.StartNode.Caption = St2) and

(TempEdge^.Edge.EndNode.Caption = St1)) then

TempProcess^.TestValue := TempProcess^.TestValue +

TempEdge^.Edge.Weight;

TempProcess = ProcessRootBellmanFord

while (TempProcess <> nil) do

TempProcess := ProcessRootBellmanFord;

while (TempProcess <> nil) do

if (TempProcess^.Number = Source) then

TempProcess^.TestValue = MinVal

(61)

Penjelasan source code diatas adalah :

Pertama kali sistem akan mengubah nilai test route pada intermediate node, dengan cara menginisialisai proses temporer dengan memanggil sub rutin

ProcessRootBellmanFord. Sistem kemudian memeriksa apakah variabel

tempProcess tidak null (atau nil), jika ya tempRoute akan diberikan nilai dari rute terpendeknya.

Selanjutnya sistem akan menghitung nilai cost pada path dengan melakukan pemeriksaan secara iteratif dengan cara mencari jalur terpendek antara variabel testvalue dan Mincost, sampai dengan keseluruhan node telah diuji dan dibandingkan untuk memastikan hasilnya.

if (Source > NodeList.Items.Count) then

Source = 1

else if (Stable = NodeList.Items.Count) then

(62)

3.10. Perancangan Sistem

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

3.10.1.Tujuan Perancangan Sistem

Perancangan sistem merupakan tindak lanjut dari tahap analisa. Perancangan sistem bertujuan untuk memberikan gambaran sistem yang akan dibuat. Dengan kata lain perancangan sistem didefinisikan sebagai penggambaran atau pembuatan sketsa dari beberapa elemen yang terpisah kedalam satu kesatuan yang utuh dan berfungsi. Selain itu juga perancangan bertujuan untuk lebih mengarahkan sistem yang terinci, yaitu pembuatan perancangan yang jelas dan lengkap yang nantinya akan digunakan untuk pembuatan simulasi. Aplikasi kompresi ini dibuat dengan sederhana, sehingga diharapkan user dapat dengan mudah menggunakan aplikasi kompresi ini.

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

(63)

3.10.2.Perancangan Antar Muka

Perancangan antarmuka dibutuhkan untuk mewakili keadaan sebenarnya dari aplikasi yang akan dibangun. Dan seperti developer visual lainnya, Embarcadero RAD Studio sudah menyediakan berbagai macam komponen untuk menghemat waktu pengembangan sesuai dengan kebutuhan developer. Berikut akan disajikan perancangan antarmuka dari aplikasi yang akan dibangun :

Gambar 3.2. Perancangan Antar Muka Halaman Pertama

Pada rancangan form halaman pertama diatas terdapat tujuh tombol, yaitu buat_baru, ganti_font, refresh, Process, Simpan, Hapus dan Hapus. Sedangkan komponen lain yang tampak pada gambar 4.1. tersebut adalah TImage (untuk membuat graph), TFontDialog (untuk menampilkan dialog font) dan Listbox (untuk menampilkan rute yang terbentuk).

(64)

Gambar 3.3. Perancangan Antar Muka Halaman Kedua

Pada rancangan form halaman kedua diatas terdapat empat area layar dengan fungsinya adalah menampilkan rute terpendek algorithma Dijkstra (area satu), rute terpendek algorithma Bellman-Ford (area dua), langkah pemilihan rute algorithma Dijkstra (area tiga) dan langkah pemilihan rute algorithma Bellman-Ford (area empat).

(65)

BAB IV

HASIL DAN PEMBAHASAN

4.1. Implementasi Hasil Per ancangan

Berikut ini merupakan implementasi dari hasil perancangan yang telah dibuat sebelumnya. Dalam melakukan proses implementasi ini, terdapat beberapa penyesuaian yang diperlukan. Penyesuaian yang dilakukan meliputi penggunaan tipe data ataupun pembuatan prosedur atau fungsi, yang mungkin tidak terdapat dalam proses analisa ataupun perancangan sistem.

Langkah penyesuaian tersebut dilakukan agar proses pembuatan aplikasi dapat berjalan dengan baik sesuai tujuan dan hasil yang diharapkan, sehingga tugas akhir ini dapat terselesaikan dengan baik. Berikut ini adalah langkah-langkah implementasinya :

4.2. Implementasi Pr osedur Bellman Ford

begin

RefreshCanvas(False, ImageBellmanFord);

TempProcess := ProcessRootBellmanFord;

while (TempProcess <> nil) do

begin

if TempProcess^.Enabled and TempProcess^.Done then

DrawPath(TempProcess, ImageBellmanFord);

TempProcess := TempProcess^.Next;

end;

(66)

Penjelasan source code proseduer Bellman Ford diatas adalah :

Pertama kali sistem akan melakukan refresh canvas dengan tujuan menyiapkan tempat penggambaran graph sesuai rute terpendek yang telah dicari. Kemudian proses penggambaran graph dikerjakan selama variabel TempProcess belum bernilai nil. Sesudah melakukan penggambaran graph, sistem akan menampilkan urutan langkah-langkah pemilihan rute.

4.3. Implementasi Pr osedur Dijkstra

TempProcess := ProcessRootBellmanFord;

while (TempProcess <> nil) do

begin

if TempProcess^.Enabled then

MemoBellmanFord.Lines.Add(IntToStr(TempProcess^.Number) +

' -> ' + TempProcess^.Shortest + ' = ' +

IntToStr(TempProcess^.MinCost));

TempProcess := TempProcess^.Next;

end;

end;

begin

RefreshCanvas(False, ImageDijkstra);

TempProcess := ProcessRootDijkstra;

while (TempProcess <> nil) do

begin

DrawPath(TempProcess, ImageDijkstra);

TempProcess := TempProcess^.Next;

end;

(67)

Penjelasan source code proseduer Bellman Ford diatas adalah :

Pertama kali sistem akan melakukan refresh canvas dengan tujuan menyiapkan tempat penggambaran graph sesuai rute terpendek yang telah dicari. Kemudian proses penggambaran graph dikerjakan selama variabel TempProcess belum bernilai nil. Sesudah melakukan penggambaran graph, sistem akan menampilkan urutan langkah-langkah pemilihan rute.

4.4. Implementasi Tombol Ganti Font

Penjelasan source code tombol ganti font diatas adalah :

Jika user menekan tombol tersebut akan tampil kotak dialog font dan font pada canvas akan diganti sesuai pilihan user, kemudian canvas akan di refresh.

while (TempProcess <> nil) do

begin

if TempProcess^.Enabled then

MemoDijkstra.Lines.Add(IntToStr(TempProcess^.Number)

+ ' -> ' + TempProcess^.Shortest + ' = ' +

IntToStr(TempProcess^.MinCost));

TempProcess := TempProcess^.Next;

end;

if CaptionFont.Execute then

begin

ImageData.Canvas.Font := CaptionFont.Font;

ImageDijkstra.Canvas.Font := CaptionFont.Font;

ImageBellmanFord.Canvas.Font := CaptionFont.Font;

RefreshCanvas(True, ImageData);

RefreshCanvas(True, ImageDijkstra);

RefreshCanvas(True, ImageBellmanFord);

(68)

4.5. Implementasi Tombol Proses

Penjelasan source code tombol proses diatas adalah :

Jika belum terdapat edge dan node, sistem akan menampilkan pesan kesalahan pada user, selain itu sistem akan menjalankan prosedur DoDijkstra

dan prosedur DoBellmanFord. Kemudian informasi bobot graph asal dan bobot hasil perhitungan dengan algorithma Dijkstra dan algorithma Bellman Ford akan ditampilkan pada form.

Begitu juga dengan langkah-langkah pemilihan rute dari algorithma Dijkstra dan algorithma Bellman Ford tersebut juga akan ditampilkan pada form di halaman kedua.

if (EdgeRoot = nil) then

MessageDlg('Anda harus membuat node dan edge terlebih

dahulu.', mtError, [mbOK], 0)

LabelBobotDijkstra.Caption := 'Dijkstra: ' +

IntToStr(HitungBobot(ProcessRootDijkstra, True));

LabelBobotBellmanFord.Caption := 'Bellman-Ford: ' +

IntToStr(HitungBobot(ProcessRootBellmanFord, True));

LabelJumlahLangkahDijkstra.Caption := 'Dijkstra: ' +

IntToStr(DStep);

LabelJumlahLangkahBellmanFord.Caption :=

'Bellman-Ford: ' + IntToStr(BFStep);

Figur

Gambar 2.5. Flowchart Algoritma Dijkstra

Gambar 2.5.

Flowchart Algoritma Dijkstra p.31
Gambar 2.6. Flowchart Algoritma Bellman Ford

Gambar 2.6.

Flowchart Algoritma Bellman Ford p.33
Gambar 2.7. Metodologi dalam UML ( Sumber Pustaka : Egadinioniputri, 2011 )

Gambar 2.7.

Metodologi dalam UML ( Sumber Pustaka : Egadinioniputri, 2011 ) p.35
Gambar 2.13. Notasi Note. ( Sumber Pustaka : egadioniputri, 2011).

Gambar 2.13.

Notasi Note. ( Sumber Pustaka : egadioniputri, 2011). p.42
Gambar 2.18. Tampilan Awal Delphi

Gambar 2.18.

Tampilan Awal Delphi p.46
Gambar 2.21. Daftar komponen palet win 32

Gambar 2.21.

Daftar komponen palet win 32 p.47
Gambar 2.22. Daftar komponen palet system

Gambar 2.22.

Daftar komponen palet system p.48
Gambar 2.24. Membuat aplikasi sederhana dengan Delphi

Gambar 2.24.

Membuat aplikasi sederhana dengan Delphi p.48
Gambar 3.1. Use Case Diagram Aplikasi Pencari Rute Terpendek

Gambar 3.1.

Use Case Diagram Aplikasi Pencari Rute Terpendek p.52
Gambar 3.2. Perancangan Antar Muka Halaman Pertama

Gambar 3.2.

Perancangan Antar Muka Halaman Pertama p.63
Gambar 3.3. Perancangan Antar Muka Halaman Kedua

Gambar 3.3.

Perancangan Antar Muka Halaman Kedua p.64
Gambar 4.1. Bentuk Graph Pada Pengujian Pertama

Gambar 4.1.

Bentuk Graph Pada Pengujian Pertama p.75
Gambar 4.2. Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning

Gambar 4.2.

Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning p.75
Gambar 4.3. Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna

Gambar 4.3.

Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna p.76
Gambar 4.4. Tampilan Informasi Hasil Perhitungan Pada Graph Pertama Pada

Gambar 4.4.

Tampilan Informasi Hasil Perhitungan Pada Graph Pertama Pada p.76
Tabel 4.1. Daftar Rute Yang Ditempuh

Tabel 4.1.

Daftar Rute Yang Ditempuh p.77
Gambar 4.6. Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna

Gambar 4.6.

Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna p.78
Gambar 4.5. Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning

Gambar 4.5.

Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning p.78
Gambar 4.7. Tampilan Informasi Hasil Perhitungan Pada Graph Pertama Untuk

Gambar 4.7.

Tampilan Informasi Hasil Perhitungan Pada Graph Pertama Untuk p.79
Gambar 4.9. Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna

Gambar 4.9.

Rute Terpendek Menggunakan Algorithma Bellman Ford. Warna p.80
Gambar 4.8. Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning

Gambar 4.8.

Rute Terpendek Menggunakan Algorithma Dijkstra. Warna Kuning p.80
Gambar 4.10. Informasi Hasil Perhitungan Pada Graph Pertama Untuk

Gambar 4.10.

Informasi Hasil Perhitungan Pada Graph Pertama Untuk p.81
Gambar 4.12. Rute Terpendek Menggunakan Algorithma Dijkstra (Node Awal 1)

Gambar 4.12.

Rute Terpendek Menggunakan Algorithma Dijkstra (Node Awal 1) p.82
Gambar 4.13. Rute Terpendek Menggunakan Algorithma Bellman Ford ( node

Gambar 4.13.

Rute Terpendek Menggunakan Algorithma Bellman Ford ( node p.82
Gambar 4.11. Bentuk Graph Pada Pengujian Kedua

Gambar 4.11.

Bentuk Graph Pada Pengujian Kedua p.82
Gambar 4.16. Rute Terpendek Dengan Algorithma Bellman Ford (Node Awal 3).

Gambar 4.16.

Rute Terpendek Dengan Algorithma Bellman Ford (Node Awal 3). p.84
Gambar 4.17. Tampilan Informasi Hasil Perhitungan Pada Graph Kedua Untuk

Gambar 4.17.

Tampilan Informasi Hasil Perhitungan Pada Graph Kedua Untuk p.84
Gambar 4.15. Rute Terpendek Menggunakan Algorithma Dijkstra (Node Awal 3)

Gambar 4.15.

Rute Terpendek Menggunakan Algorithma Dijkstra (Node Awal 3) p.84
Gambar 4.18. Bentuk Graph Pada Pengujian ketiga

Gambar 4.18.

Bentuk Graph Pada Pengujian ketiga p.85
Gambar 4.19. Rute Terpendek Menggunakan Algoritma Dijkstra, Daftar Rute

Gambar 4.19.

Rute Terpendek Menggunakan Algoritma Dijkstra, Daftar Rute p.86

Referensi

Memperbarui...