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

APLIKASI PERBANDINGAN ALGORITMA BELLMAN-FORD
DAN DIJ KSTRA PADA PROSES PENCARIAN 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
2014

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

SK R I P SI
APLIKASI PERBANDINGAN ALGORITMA BELLMANN FORD
DAN DIJ KSTRA PADA PROSES PENCARIAN J ALUR

TERPENDEK BERBASIS DELPHI
Disusun Oleh :
BAYU SAT R I A P E R M ANA
0734010036
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 :
1

Tim Penguji :
1

Ir. Mu’tasim Billah, Ms
NIP. 196005041987031001

Dr. Ir. Ni Ketut Sari, MT.
NIP. 19650731 199203 1 001


2.

2

Chrystia Aji Putra, S.Kom
NPT. 386101002961

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

Henni Endah Wahanani, S.T, M.Kom
NPT. 3 7809 13 0348 1
Mengetahui
Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Surabaya

Ir. Sutiyono, MT

NIP. 19600713 198703 1 001

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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 ela 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 2013/2014
M en yet u j u i,
Pembimbing 1

Pembimbing 2


Ir. Mu’tasim Billah, Ms
NIP. 196005041987031001

Chrystia Aji Putra, S.Kom
NPT. 386101002961

Mengetahui,
Ketua Program Studi Teknik Informatika
Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Surabaya

Dr. Ir. Ni Ketut Sari, MT.
NIP. 19650731 199203 1 001

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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

Program Studi : TEKNIK INFORMATIKA
J urusan

: TEKNIK INFORMATIKA

Telah mengerjakan revisi Skripsi, dengan judul :
APLIKASI PERBANDINGAN ALGORITMA BELLMAN FORD DAN DIJ KSTRA
PADA PROSES PENCARIAN J ALUR TERPENDEK BERBASIS DELPHI
Surabaya, 24 J uli 2014

Dosen penguji yang memeriksa revisi,

1. Dr. Ir. Ni Ketut Sari, MT
NIP. 19650731 199203 2 001

{

}

2. Henni Endah Wahanani, ST, M.Kom
NPT. 3 7609 130 348 1

{

}

3. Intan Yuniar P, S.Kom, Msc
NPT. 3 8006 04 0198 1

{


}

Mengetahui,
Doesen Pembimbing 1,

Ir. Mu’tasim Billah, MT
NIP. 19600504 1988703 1 001

Dosen Pembimbing 2,

Chrystia Aji Putra, S.Kom
NPT. 3 8610 10 0296 1

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Pembangunan Nasional “Veteran” Jawa Timur.
2. Bapak Ir. Sutiyono, MT Selaku Dekan Fakultas Teknologi Industri UPN
“Veteran” Jawa Timur
3. Ibu Dr.Ir. Ni Ketut Sari, MT Selaku Kepala Jurusan Teknik Informatika.
FTI, UPN “Veteran” Jawa Timur.
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.
7. Buat kakak saya Ita Dwi Astutik dan Dina Eka Astutik terima kasih atas
semangat dan nasehatnya.

ii
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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

Penulis

iii
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
2.1.2. External Subroutines..........................................................................8
iv

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
BAB III METODOLOGI ...........................................................................................39

v

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
4.9. Pengujian Aplikasi ....................................................................................63
vi

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB V KESIMPULAN DAN SARAN .....................................................................78
5.1 Kesimpulan ................................................................................................78
5.2 Saran ..........................................................................................................78
DAFTAR PUSTAKA .................................................................................................79

vii

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.

Kata kunci : Rute terpendek, Algorithma Dijkstra, Algorithma Bellman Ford.

i

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Algoritma untuk mencari rute terpendek (shortest path) yang sudah
dikenal adalah algoritma Dijkstra dan Bellman-Ford, walaupun banyak juga
algorithma lainnya, seperti simulated annealing dan algorithma genetika. Kedua
1

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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 ?
2. Bagaimana menerapkan hasil analisa tersebut ke dalam bentuk aplikasi
komputer yang bersifat intuitif dan mudah dimengerti oleh user ?

2

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Adapun manfaat yang ingin diperoleh dari pengerjaan tugas akhir ini

adalah dapat membuat perangkat lunak untuk

menampilkan informasi bagi

pengguna dalam membandingkan algorithma Bellman Ford dan Dijkstra dalam
mencari rute terpendek, sehingga pengguna dapat mengetahui algorithma mana
yang lebih baik.

3

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Mengimplementasikan teknik algoritma yang akan digunakan. Detail
mengenai implementasi program dilakukan sesuai hasil analisis dan
perancangan aplikasi pada tahapan sebelumnya.
4

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Membahas berbagai konsep dasar dan teori-teori yang berkaitan
dengan topik masalah yang diambil dan hal-hal yang berguna
dalam proses analisis permasalahan.

5

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Berisi kesimpulan dan saran yang sudah diperoleh dari hasil
penulisan tugas akhir.

6

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Dijkstra. Dengan tehnik ini akan meningkatkan produktifitas programmer, dengan
mengurangi waktu yang dibutuhkan dalam penulisan (write), pengujian (test),
penelusuran kesalahan (debug) dan pemeliharan (maintain) suatu program. Pada
pembahasan berikut ini kita akan melihat bagaimana tehnik ini yang pendekatan
yang dilakukan secara modular, dapat membantu kita dalam membangun suatu
program.

7

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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 modulmodul 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 Subroutines
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
Diletakkan secara terpisah dari program yang menggunakan subroutine
tersebut. Subroutine ini dideklarasikan supaya bisa dipakai oleh program yang
lain. Untuk menggunakannya tentu seorang programmer harus mengetahui
8

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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:
a. Jelas, tepat dan tidak membingungkan.
b. Memberikan penyelesaian yang tepat.
c. Mempunyai akhir.
9

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Tujuan utama dari melakukan test terhadap algoritma adalah adalah
untuk menemukan kesalahan utama logika sejak awal, sehingga akan lebih mudah
diperbaiki. Data test diperlukan untuk melakukan test terhadap algoritma ini.
Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat
dimulai dengan menggunakan bahasa pemrograman yang dipilih. Setelah
pengcodingan, maka program dapat dijalankan pada komputer. Jika Program
sudah didesain dengan baik, maka akan mengurangi tingkat kesalahan dalam
melakukan testing program. Langkah ini perlu dilakukan beberapa kali, sehingga
program yang dijalankan dapat berfungsi dengan benar. Dokumentasi melibatkan
10

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Siklus informasi data merupakan bentuk yang masih mentah sehingga perlu diolah
untuk proses lebih lanjut. Data diolah melalui suatu model untuk dihasilkan
informasi.Data yang diolah untuk menghasilkan informasi menggunakan suatu
11

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Proses
Input

Data

Out put

Dasar

Penerima

Data

Hasil
Tindakan

Keputusan

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

AKURASI

TEPAT

R EL EV A N

gambar 2.2 dibawah ini

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

12

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Grafik adalah salah satu model yang paling fleksibel untuk struktur alam
dan buatan manusia. Mereka dapat digunakan untuk model berbagai jenis
hubungan dan dinamika proses secara fisik, biologis dan sistem sosial. Banyak
13

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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 transaksiaman, 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
subgraphs memilikinya juga. Sayangnya, menemukan subgraphs maksimal dari
jenis tertentu seringkali merupakan masalah NP-complete. Masalah yang sama
adalah menemukan subgraphs diinduksi dalam grafik yang diberikan. Sekali lagi,
beberapa sifat grafik penting adalah keturunan sehubungan dengan subgraphs
14

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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

Banyak terminologi yang akan sering digunakan dalam pembahasan
graph, diantaranya :
15

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
h. Terhubung (Connected) : Graf tak berarah G disebut graf terhubung jika untuk
setiap pasang simpul vi dan vj dalam himpunan V terdapat lintasan dari vi
ke vj. Jika tidak, maka graf G tak terhubung.

16

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
menggambarkan transisi mungkin, algoritma jalur terpendek dapat digunakan
untuk menemukan urutan optimal pilihan untuk mencapai keadaan tujuan tertentu,
atau untuk menetapkan batas bawah pada waktu yang dibutuhkan untuk mencapai
17

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Untuk sumber simpul tertentu (node) di grafik, algoritma menemukan
jalan dengan bobot terendah (yaitu lintasan terpendek) antara yang simpul dan
setiap simpul lainnya. Hal ini juga dapat digunakan untuk mencari jalur terpendek
dari simpul tunggal untuk tujuan tunggal simpul dengan menghentikan algoritma
sekali jalur terpendek ke tujuan sebelumnya yang telah ditentukan. Misalnya, jika
simpul dari grafik mewakili kota-kota dan tepi jalan merupakan jarak antara
pasangan kota dihubungkan oleh jalan langsung, algoritma Dijkstra dapat
digunakan untuk menemukan rute terpendek antara satu kota dan semua kota lain.
Akibatnya, jalur terpendek pertama banyak digunakan dalam protokol jaringan
routing, terutama IS-IS dan OSPF (Open Shortest Path First).

18

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
6. Jika seluruh simpul sudah selesai dikunjungi, maka selesai, selain
daripada itu dipilih simpul dengan jarak minimum dari simpul a
19

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Algoritma Bellman-Ford menghitung satu sumber jalur terpendek dalam

sebuah digraf berbobot. Untuk grafik dengan hanya non-negatif bobot tepi,
algoritma Dijkstra lebih cepat juga memecahkan masalah. Jadi, Bellman-Ford
20

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Struktur dasar dari Algoritma Bellman Ford sangatlah menyerupai yang
ada pada Algoritma Dijkstra , akan tetapi dibandingkan dengan memilih simpul
dengan bobot minimum yang belum digunakan secara greedy, algoritma Bellman
21

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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 :

Gambar 2.6. Flowchart Algoritma Bellman Ford

22

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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
Software Engineering).

23

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak
bisa lagi dibuat asal-asalan. Piranti lunak saat ini seharusnya dirancang dengan
memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust
24

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

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.
UML menyediakan beberapa notasi dan artifact standar yang bisa
digunakan sebagai alat komunikasi bag