49
MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN ALGORITMA DIJKSTRA DAN PROGRAM DINAMIK IKA ROSNIUNI ANGRAINI SIREGAR 100823015 DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2017 UNIVERSITAS SUMATERA UTARA

MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN

ALGORITMA DIJKSTRA DAN PROGRAM DINAMIK

IKA ROSNIUNI ANGRAINI SIREGAR

100823015

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2017

UNIVERSITAS SUMATERA UTARA

Page 2: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

i

PERSETUJUAN

Judul : Menetukan Lintasan Terpendek Mengunakan

Algoritma Dijkstra dan Program Dinamik

Kategori : Skripsi

Nama : IKA ROSNIUNI ANGRAINI SIREGAR

Nomor Induk Mahasiswa : 100823015

Program Studi : Sarjana (S1) Ext Matematika

Departemen : Matematika

Fakultas : Matematika Dan Ilmu Pengetahuan Alam

Universitas Sumatera Utara

Disetujui di

Medan, Juli 2017

Disetujui Oleh

Departemen Matematika FMIPA USU Pembimbing

Ketua,

Dr. Suyanto, M.Kom Dra. Normalina Napitupulu, M.Sc

NIP.19590813198601 1 002 NIP.19631106198902 2 001

UNIVERSITAS SUMATERA UTARA

Page 3: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

ii

PERNYATAAN

MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN

ALGORITMA DIJKSTRA DAN PROGRAM DINAMIK

SKRIPSI

Menyatakan dengan sebenarnya bahwa skripsi yang saya serahkan benar-benar

merupakan hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang

masing-masing disebutkan sumbernya.

Medan, Juli 2017

IKA ROSNIUNI ANGRAINI SIREGAR 100823015

UNIVERSITAS SUMATERA UTARA

Page 4: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

iii

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pemurah dan

Maha Penyayang, dengan limpah karunia-Nya Penulis dapat menyelesaikan

penyusunan skripsi ini dengan judul Skripsi “

Menetukan Lintasan Terpendek Mengunakan

Algoritma Dijkstra dan Program Dinamik

Terimakasih penulis sampaikan kepada Ibu Dra. Normalina Napitupulu,

M.Sc selaku dosen pembimbing saya yang telah meluangkan waktunya selama

penyusunan skripsi ini. Terima kasih kepada Bapak Drs. Gim Tarigam, M.Si dan

Ibu Asima Manurung, S.Si,M.Si selaku dosen pembanding yang memberikan kritik

dan saran yang membangun dalam menyelesaikan skripsi penulis. Terima kasih

kepada Bapak Dr. Suyanto, M.Kom dan Bapak Drs. Rosman Siregar, M.Si selaku

Ketua Departemen dan sekertaris Departement Matematika FMIPA USU, Bapak

Dr. Kerista sebayang, M.S selaku Dekan FMIPA USU, seluruh Staff dan Dosen

Matematika FMIPA USU serta pegawai FMIPA USU. Terimakasih kepada

orangtua tercinta Ayahanda Rosman Siregar dan Ibunda Erni Fitriwati . Terima

kasih kepada sahabat-sahabat serta rekan-rekan kuliah yang telah membantu

penulis dalam menyelesaikan skripsi ini. Semoga Allah SWT membalasnya.

Medan, Juli 2017

IKA ROSNIUNI ANGRAINI SIREGAR 100823015

UNIVERSITAS SUMATERA UTARA

Page 5: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

iv

MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN

ALGORITMA DIJKSTRA DAN PROGRAM DINAMIK

ABSTRAK

Pada penelitian ini, untuk Menentukan Lintasan Terpendek digunakan beberapa

pendekatan algoritma diantaranya Mengunakan Algoritma Dijkstra Dan Program

Dinamik yang menghasilkan lintasan terpendek, pendekatan kedua algoritma

Dijkstra dan pendekatan algoritma Program Dinamik memberikan kekurangan dan

kelebihan. Penyelesaiaan algoritma lebih sederhana dan Pendekatan algoritma

Program Dinamik lebih optimal..

Kata Kunci: Algoritma Dijkstra, Lintasan Terpendek ,Algoritma Program Dinamik

UNIVERSITAS SUMATERA UTARA

Page 6: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

v

DETERMINING THE SHORTEST LEFT USING DIJKSTRA

ALGORITHM AND DYNAMIC PROGRAM

ABSTRACT

In this research, to determine the shortest path used some algorithm approach such

as Using Dijkstra Algorithm and Dynamic Program which produce shortest path,

Dijkstra algorithm approach and Dynamics Program algorithm approach give

shortness and excess. The algorithm settlement is simpler and the Dynamic

Program algorithm approach is more optimal.

Keywords: Dijkstra Algorithm, Shortest Path, Dynamic Program Algorithmk

UNIVERSITAS SUMATERA UTARA

Page 7: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

vi

DAFTAR ISI

Halaman

PERSETUJUAN i

PERNYATAAN ii

PENGHARGAAN iii

ABSTRAK iv

ABSTRACT v

DAFTAR ISI vi

DAFTAR GAMBAR viii

Bab 1. Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 2

1.6 Metodologi Penelitian 3

Bab 2. Landasan Teori

2.1 Riset Operasi 6

2.2 Graf 7

2.2.1 Sejarah Graf 7

2.2.2 Pengertian Graf 8

2.2.3 Terminologi Dalam Graf 9

2.2.4 Jenis-jenis Graf 9

2.3 Jaringan 13

2.4 Optimasi

2.4.1 Defenisi Optimasi 15

2.4.2 Permasalahan Optimasi 15

2.4.3 Teknik-teknik Optimasi 16

2.5 Model Lintasan Terpendek 16

2.6 Pohon Rentang Minimal (Minimum spanning tree) 17

2.7 Algoritma Algoritma Prim, Algoritma Floyd

Warshall, Algoritma Dijkstra dan Program Dinamik

18

2.7.1 Algoritma Prim 19

2.7.2 Algoritma Floyd Warshall 23

2.7.3 Algoritma Djikstra 23

2.7.4 Algoritma Program Dinamik

24

Bab 3. Pembahasan

3.1. Algoritma Djikstra 27

3.2. Algoritma Program Dinamik

3.2.1 Persoalan Lintasan Sederhana

3.2.2 Penyelesain Program Dinamik

29

29

30

UNIVERSITAS SUMATERA UTARA

Page 8: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

vii

3.2.3 Terminologi 34

3.3. Beberapa Kasus

3.3.1 Kasus Pertama

3.3.2 Kasus Kedua 37 40

Bab 4. Kesimpulan dan Saran 4.1. Kesimpulan 41

4.2. Saran 41

Daftar Pustaka 42

UNIVERSITAS SUMATERA UTARA

Page 9: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

viii

DAFTAR GAMBAR

Nomor

Gambar Judul Halaman

2.1 Ilustrasi Masalah Jembatan Konisberg 7

2.2 Representasi Graf dari Masalah Jembatan Konigsberg 8

2.3 Graf Lengkap (Complete Graph) 10

2.4 Graf Lingkaran C3 dan C4 11

2.5 Graf Teratur (Regular Graph) 11

2.6 Graf Bipartit (Bipartite Graph) 12

2.7 Graf Tak Sederhana (Unsimple Graph) 12

2.8 Graf Tak Berarah (Undirected Graph) 13

2.9 Graf Berarah (Directed Graph) 13

2.10 Jaringan (Network) 14

2.11 Graf G sebuah pohon, dan Graf H hutan dengan 3

kompone

18

2.12 Contoh Pohon Rentang Minimal (Minimum Spanning

Tree)

19

2.13 Contoh Penerapan dari Algoritma Prim 20

3.1 Graph ABCDEFG 28

3.2 Lintasan Sederhana 30

3.3.

UNIVERSITAS SUMATERA UTARA

Page 10: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

BAB 1 PENDAHULUAN 1.1 Latar Belakang Pencarian lintasan terpendek merupakan suatu permasalahan untuk menemukan lintasan antara dua node dengan jumlah bobot minimal. Pada pencarian lintasan terpendek antara dua lokasi yang berbeda dalam sebuah peta, node akan mempresentasikan lokasi pada peta untuk melakukan perjalanan antara dua lokasi tersebut. Banyak metode yang dapat digunakan untuk menyelesaikan permasalahan pencarian lintasan tependek diantaranya dengan menggunakan algoritma Dijkstra dan Program Dinamik dengan bantuan diagram kartesius Saat ini banyak masyarakat yang ingin mencari lintasan terpendek agar bisa menempuh lokasi-lokasi yang dituju dengan waktu yang lebih dekat oleh karena itu dibutuhkan suatu metode agar dapat lintasan terpendek menuju ke tempat yang dituju. Algoritma Dijkstra merupakan metode yang banyak digunakan. Dan dapat dihandalkan karena perhitungannya yang sederhana Demikian pula algoritma Program dinamik dengan bantuan diagram kartesius yang dapat dirumuskan dan mudah untuk diaplikasikan baik secara manual begitu pula dengan bantuan program Pemrograman dinamis istilah awalnya digunakan dalam 1940-an oleh Richard Bellman untuk menggambarkan proses pemecahan masalah dimana salah satu kebutuhan untuk menemukan satu keputusan terbaik dari beberapa keputusan. Dynamic Programming (biasa disingkat DP) adalah suatu teknik algoritma untuk memecahkan masalah dimana solusi optimal dari masalah tersebut dapat dipandang sebagai suatu deret keputusan. Persoalan partisi merupakan persoalan yang sering diterapkan dalam kehidupan sehari-hari seperti misalnya pada persoalan pembagian pekerjaan. Persoalan partisi sendiri memiliki banyak model dan karateristik. Persoalan yang dibahas dalam makalah ini adalah persoalan membagi pekerjaan untuk dikerjakan oleh N pekerja secara efisien sedemikian sehingga setiap pekerja mendapat pekerjaan yang relatif sama (perbedaan bobot yang diterima pekerja dibuat UNIVERSITAS SUMATERA UTARA

Page 11: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

2 seminimum mungkin). Penyelesaian persoalan ini salah satunya adalah dengan menggunakan algoritma program dinamis (dynamic programming). Berdasarkan latar belakang tersebut penulis tertarik untuk membuat tugas akhir dengan judul “Menentukan Lintasan Terpendek Mengunakan Algoritma Dijkstra dan Program Dinamik” 1.2 Perumusan Masalah Pada penelitian ini rumusan masalah yang akan dibahas adalah bagaimana menentukan model lintasan terpendek (spanning tree) dengan menggunakan Algoritma Dijkstra maupun Program Dinamik 1.3 Batasan Masalah Penulis memberikan batasan masalah yang akan diteliti yaitu: 1. Graph berarah dan berbobot 2. Rute yang akan dimodelkan adalah mempunyai node < 20 1.4 Tujuan Penelitian Penelitian ini memiliki tujuan untuk menentukan lintasan terpendek (spanning tree) mengunakan algoritma Dijkstra dengan membandingkannya dengan algoritma program dinamik 1.5 Manfaat Penelitian Dalam penulisan skiripsi ini, diharapkan mempunyai manfaat antara lain: 1. Bagi Peneliti Manfaat yang bisa diambil dari peneliti adalah peneliti mampu menerapkan ilmu yang telah peneliti pelajari, khususnya tentang lintasan terpendek dan pohon rentang minimal. Hal ini diharapkan dapat memantapkan pemahaman mengenai teori-teori yang diperoleh selama mengikuti perkuliahan serta mampu menerapkan ilmunya dalam kehidupan nyata khususnya dalam bidang grap tentang lintasan terpendek.. UNIVERSITAS SUMATERA UTARA

Page 12: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

3 2. Bagi Pembaca Manfaat bagi pembaca khususnya yang memiliki usaha dalam bidang industri menjadi salah satu bahan pertimbangan dalam membuat perencanaan pendistribusian hasil produksi dan penggunaan biaya seminimal mungkin agar perusahaan memperoleh keuntungan yang maksimal. Bagi pembaca lainnya penelitian ini dapat menambah pengetahuan tentang algoritma Dijkstra dan Program Dinamik Dengan membahas lintasan terpendek dengan algoritma Dijkstra dan Program Dinamik diharapkan dapat bermanfaat dalam pengembangan penyelesaian permasalahan yang berkaitan dengan lintasan terpendek dari suatu graf yang besar, dan juga agar dapat diterapkan dengan komputerisasi dalam bidang simulasi perlintasan lainnya. 1.6 Metode Penelitian Metode penelitian dalam menyelesaikan penelitian ini adalah sebagai berikut: 1. Mengumpulkan bahan-bahan yang berkaitan dengan spanning tree. Studi pustaka dengan cara mengumpulkan data atau informasi yang berkaitan dengan masalah, mengumpulkan konsep pendukung yang diperlukan dalam menyelesaikan masalah, sehingga didapatkan suatu ide mengenai bahan dasar pengembangan upaya pemecahan masalah. 2. Melakukan perhitungan manual dari semua lintasan yang terbentuk untuk memperoleh lintasan terpendek (optimal). 3. Menyelesaikan lintasan terpendek dengan mengunakan Metode Dijkstra 4. Meyelesaikan lintasan terpendek dengan metode Algoritma Program dinamik 5. Membandingkan hasil optimal dari algortima Metode Dijkstra dengan Program dinamik 6. Mengambil kesimpulan mana yang lebih optimal antara Algortima Dijkstra dengan Program dinamik dan memberikan saran UNIVERSITAS SUMATERA UTARA

Page 13: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

4 1.7 Sistematika Penulisan Penulisan pada skripsi ini akan mengikuti sistematika sebagai berikut: BAB 1 : PENDAHULUAN Bab ini menjelaskan tentang latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian yang digunakan dalam penelitian, serta sistematika dalam penulisan skripsi ini. BAB 2 : LANDASAN TEORI Bab ini menjelaskan mengenai teori graf, Lintasan Terpendek, Algoritma Dijkstra, Pendekatan Program Dinamik BAB 3 : PEMBAHASAN Bab ini membahas tentang teori graf, Lintasan Terpendek, Algoritma Dijkstra, Pendekatan Program Dinamik BAB 4 : KESIMPULAN DAN SARAN Bab ini menjelaskan tentang kesimpulan dari penelitian ini serta saran yang direkomendasikan untuk penelitian selanjutnya. UNIVERSITAS SUMATERA UTARA

Page 14: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

6 BAB 2 LANDASAN TEORI 2.1 Riset Operasi Pada tahun 1940 Istilah Riset Operasi pertama kali digunakan oleh Mc Closky dan Trefthen di suatu kota kecil, Bowdsey, Inggris. Pada masa awal perang 1939, pemimpin militer Inggris memanggil sekelompok ahli-ahli sipil dari berbagai disiplin dan megkoordinasikan mereka ke dalam suatu kelompok yang diserahi tugas mencari cara-cara yang efisien untuk menggunakan alat yang baru ditemukan yang dinamakan radar dalam suatu sistem peringatan dini menghadapi serangan udara. Kelompok ahli Inggris ini dan kelompok-kelompok lain berikutnya melakukan penelitian (research) pada operasi-operasi (operations) militer. Hasilnya sangat memuaskan, kesuksesan proyek manajemen radar ini menyebabkan pemimpin militer lebih mengandalkan riset operasi dalam membuat suatu keputusan operasional yang penting. (Hilier and Lieberman, 1990 : 4). Setelah perang, keberhasilan kelompok-kelompok penelitian operasi operasi di bidang militer menarik perhatian para industriawan yang sedang mencari penyelesaian terhadap masalah-masalah yang rumit. Pada tahun lima puluhan baik di Inggris maupun Amerika Serikat, adalah suatu dasa warsa penting dalam sejarah Riset Operasi. Selama periode ini, teknik-teknik program linear dan dinamik telah ditemukan dan diperluas. Langkah besar terjadi dalam penelitian murni tentang masalah persediaan produksi dan antri (queueing) (Mulyono, 2004:1-2). Riset operasi merupakan pengambilan keputusan dengan memanfaatkan pengetahuan ilmiah melalui usaha kelompok antar disiplin yang bertujuan untuk menentukan peggunaan terbaik sumber daya yang terbatas. Model riset operasi berkaitan dengan data deterministik biasanya jauh lebih sederhana dari pada yang melibatkan data probabilistik (Hamdy A. Taha, 1997 : 4). Riset Operasi, dalam arti luas dapat diartikan sebagai penerapan metode metode, teknik-teknik dan alat-alat terhadap masalah-masalah yang menyangkut operasi-opersi dari sistem-sistem, sedemikian rupa sehingga memberikan penyelesaian optimal (Mulyono, 2004 : 4). UNIVERSITAS SUMATERA UTARA

Page 15: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

7 Model lain dalam riset operasi selain program linear antara lain Dynamic Programming, Network Analysis, Markov Chain, Games Theory, Non Linear Programming, dan Integer Programming (Hardi Suyitno, 1997:1). Dalam riset operasi, masalah optimasi dalam pengambilan keputusan diperoleh dengan menerapkan model matematis yang berupa persamaan atau ketidaksamaan. Model matematika yang digunakan dalam metode riset operasi bersifat menyederhanakan masalah. Jika riset operasi akan digunakan untuk memecahkan suatu permasalahan, maka harus dilakukan lima langkah sebagai berikut. 1. Memformulasikan persoalan. 2. Mengobservasi sistem. 3. Memformulasikan model matematis dari persoalan yang dihadapi. 4. Mengevaluasi model dan menggunakannya untuk prediksi. 5. Mengimplementasikan hasil studi (Dimyati, 1999: 4). 2.2 Graf 2.2.1 Sejarah Graf Menurut catatan sejarah, masalah jembatan Konigsberg adalah masalah yang pertama kali menggunakan graf (tahun 1736). Ada tujuh buah jembatan yang menghubungkan daratan yang dibelah oleh sungai tersebut. Masalah dari jembatan Konigsberg adalah apakah mungkin melalui ketujuh buah jembatan itu masing-masing tepat satu kali dan kembali lagi ke tempat semula? Gambar 2.1 Ilustrasi Masalah Jembatan Konigsberg UNIVERSITAS SUMATERA UTARA

Page 16: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

8 Pada tahun 1736, seorang matematikawan Swiss, Leonard Euler, adalah orang pertama yang berhasil menemukan jawaban masalah ini ke dalam graf. Daratan (titik-titik yang dihubungkan oleh jembatan) dinyatakan sebagai titik yang disebut simpul dan jembatan dinyatakan sebagai garis yang disebut sisi. Setiap titik diberi label huruf A, B, C dan D. Graf yang dibuat Euler adalah sebagai berikut ini: Gambar 2.2 Representasi Graf dari Masalah Jembatan Konigsberg Jawaban yang dikemukakan oleh Euler adalah orang tidak mungkin melalui ketujuh jembatan itu masing-masing satu kali dan kembali lagi ke tempat asal keberangkatan jika derajat setiap simpul tidak seluruhnya genap. Pengertian dari derajat adalah banyaknya sisi yang bersisian dengan simpul. Sebagai contoh simpul A memiliki derajat 5, karena ada lima buah garis yang bersisian dengannya, simpul B, C dan D memiliki derajat 3. Karena tidak ada simpul yang berderajat genap, maka tidak mungkin dilakukan perjalanan berupa sirkuit (yang dinamakan dengan sirkuit Euler) pada graf tersebut. 2.2.2 Pengertian Graf Graf adalah kumpulan simpul (verteks) yang dihubungkan satu sama lain melalui sisi (edges) (Zakaria: 2006). Suatu graf G terdiri dari dua himpunan yaitu himpunan V dan himpunan E. 1. Simpul: V = himpunan simpul yang terbatas dan tidak kosong, misalkan � ={�1, �2, �3, … , �} 2. Sisi: E = himpunan sisi yang menghubungkan sepasang simpul, misalkan � = 1, 2, 3, … , ) Simpul-simpul pada graf dapat merupakan obyek sembarang seperti kota, atom-atom suatu zat, nama anak, jenis buah, komponen, alat elektronik dan sebagainya. Sisi dapat menunjukkan hubungan (relasi) sembarang seperti rute UNIVERSITAS SUMATERA UTARA

Page 17: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

9 penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan sebagainya. Notasi graf: G (V,E) artinya graf G memiliki V simpul dan E sisi. Menurut (Munir, Rinaldi : 2001), suatu graf G terdiri atas himpunan yang tidak kosong dari elemen-elemen yang disebut simpul, dan suatu daftar pasangan simpul yang tidak terurut disebut sisi. Himpunan simpul dari suatu graf G dinotasikan dengan V, dan daftar himpunan sisi dari graf tersebut dinotasikan dengan E. Untuk selanjutnya suatu graf G dinotasikan dengan G = (V,E). 2.2.3 Terminologi Dalam Graf Terminologi (istilah) yang berkaitan dengan graf akan sering digunakan, di bawah ini didefenisikan beberapa istilah yang sering dipakai. 1. Walk adalah suatu barisan berhingga dari simpul dan sisi secara bergantian, yang diawali dari simpul dan diakhiri dengansimpul. Bentuk umum dari walk : ��, �, ��, �, … , ����, ���, ��, � Dalam hal ini �� merupakan simpul awal dan �� merupakan simpul akhir. Jika simpul awal dan simpul akhir dari suatu walk adalah sama, maka walk disebut walk tertutup (close walk). 2. Trail adalah suatu walk dengan setiap sisinya berlainan. 3. Path adalah suatu walk dengan setiap simpulnya berbeda. 4. Cycle adalah suatu path yang memiliki simpul awal sama denga simpul akhir. 5. panjang (Length) adalah bilangan yang menyatakan banyaknya sisi yang muncul dalam suatu walk. 6. Edge e adalah sebuah jembatan untuk G jika G-e tidak terhubung. Secara umum edge e adalah jembatan untuk suatu graf G jika G-e mempunyai komponen terhubung lebih dari G. 2.2.4 Jenis-jenis Graf Graf dapat dikelompokkan menjadi beberapa jenis sesuai dengan sudut pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya rusuk ganda, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada rusuk (Munir: 2005). UNIVERSITAS SUMATERA UTARA

Page 18: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

10 Berdasarkan ada tidaknya gelang (loop) yaitu sisi yang menghubungkan sebuah simpul dengan dirinya sendiri atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis, graf sederhana dan graf tak sederhana. 2.2.4.1 Graf Sederhana (Simple Graph) Graf sederhana adalah graf yang tidak mempunyai sisi ganda dan atau, gelang. Pada graf sederhana, sisi adalah pasangan tak terurut (unordered pairs) (Harju: 2012). Jadi sisi (u,v) sama dengan (v,u). Menurut (Munir: 2005) graf sederhana juga dapat didefinisikan sebagai G = (V,E), terdiri dari V, himpunan tidak kosong simpul-simpul dan E, himpunan pasangan tak terurut yang berbeda yang disebut rusuk. Menurut (Siang: 2002) beberapa graf sederhana khusus yang sering digunakan adalah sebagai berikut. 2.2.4.1.1 Graf Lengkap (Complete Graph) Graf lengkap adalah graf sederhana yang setiap simpulnya mempunyai sisi ke simpul lain. Graf lengkap dengan n buah simpul dilambangkan dengan ��. Setiap simpul pada �� berderajat n – 1. Banyaknya rusuk pada graf lengkap yang terdiri dari n buah simpul adalah n(n – 1)/2. Gambar 2.3 Graf Lengkap (Complete Graph) UNIVERSITAS SUMATERA UTARA

Page 19: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

11 2.2.4.1.2 Graf Lingkaran Graf lingkaran adalah graf sederhana yang setiap simpulnya berderajat dua. Graf lingkaran dengan n simpul dilambangkan dengan ��. 2.2.4.1.3 Graf Teratur (Regular Graph) Graf teratur adalah graf yang setiap simpulnya mempunyai derajat yang sama. Apabila derajat setiap simpul adalah r, maka graf tersebut disebut sebagai graf teratur derajat r. Gambar 2.5 Graf Teratur (Regular Graph) 2.2.4.1.4 Graf Bipartit (Bipartite Graph) Graf G yang himpunan simpulnya dapat dikelompokkan menjadi dua himpunan bagian �� dan ��, sedemikian sehingga setiap sisi di dalam G menghubungkan sebuah simpul di �� ke sebuah simpul di �� disebut graf bipartit dan dinyatakan sebagai G (��, ��). UNIVERSITAS SUMATERA UTARA

Page 20: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

12 Gambar 2.6 Graf Bipartit (Bipartite Graph) 2.2.4.1.5 Graf Tak Sederhana (Unsimple Graph) Graf yang mengandung sisi ganda atau gelang dinamakan graf tak sederhana (unsimple graph) (Harju: 2012). Ada dua macam graf tak sederhana, yaitu graf ganda (multigraph) atau graf semu (pseudograph) Graf ganda adalah graf yang mengandung sisi ganda. Graf semu adalah graf yang mengandung gelang (loop). Gambar 2.7 Graf Tak Sederhana Selain berdasarkan ada tidaknya sisi ganda dan jumlah simpul pada suatu graf, graf juga dapat dikelompokkan berdasarkan orientasi arah pada sisinya. Pengelompokan berdasarkan orientasi arah pada sisinya digolongkan menjadi dua yaitu graf tak berarah dan graf berarah (Bondy, Murty: 1982). 2.2.4.1.6 Graf Tak Berarah (Undirected Graph) UNIVERSITAS SUMATERA UTARA

Page 21: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

13 2.2.4.1.7 Graf tak berarah adalah graf yang sisinya tidak mempunyai orientasi arah. Urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan (Siang: 2002). Jadi ���, ��) = ���, ��) adalah sisi yang sama. Gambar 2.8 Graf Tak Berarah (Undirected Graph) 2.2.4.1.8 Graf Berarah (Directed Graph) Graf berarah adalah graf yang setiap rusukya memiliki orientasi arah. Rusuk pada graf berarah disebut sisi (Harju: 2012). Pada graf berarah, (u,v) dan (v,u) menyatakan dua buah sisi yang berbeda. Jadi (u,v) ≠ (v,u). Untuk sisi (u,v), simpul u dinamakan simpul asal (initial vertex) dan simpul v dinamakan simpul terminal (terminal vertek). Graf berarah ini seringkali di jadikan dasar dalam pembentukan model mengenai aliran proses, peta lalu lintas, sistem jaringan listrik, jaringan telepon, analisis jejaring sosial, dan lain sebagainya. Pada graf berarah, adanya gelang diperbolehkan, tetapi rusuk ganda tidak. Gambar 2.9 Graf Berarah (Directed Graph) 2.3 Jaringan Jaringan (network) adalah istilah model untuk memvisualisasikan sebuah sistem jaringan agar sistem jaringan yang sesungguhnya bisa diketahui dan dipahami dengan mudah, cepat dan tepat. Jaringan secara visual pada dasarnya terdiri dari UNIVERSITAS SUMATERA UTARA

Page 22: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

14 rangkaian titik (simpul) dan garis/sisi. Sisi berfungsi untuk menghubungkan antar titik mewakili kegiatan, saluran, dan jalan. Sisi bisa berupa anak panah yang akan menunjukkan arah arus dari simpul awal atau sumber ke simpul akhir atau tujuan. Anak panah menandai arah arus, maka ada dua arah arus yang dapat terjadi yaitu arah arus yang searah dan arah arus yang dua arah. (Siswanto, 2006:381) Contoh 1. (Sistem jaringan transportasi darat) Sebuah home industri air minum mengoperasikan pipa dari rumah O ke rumah T. Untuk menyalurkan air ini ada beberapa alternatif rute yang bisa dilaluinya, dengan bentuk jaringan sebagai berikut: Gambar 2.10 Jaringan Sistem pipa tersebut ditunjukkan sisi (tanpa lengkungan), dengan O, A, B, C, D, E, T sebagai abjad yang menunjukkan rumah yang dilalui pipa, sedangkan angka-angka pada sisi menunjukkan jarak dari satu rumah ke rumah yang lainnya, dalam satuan m. Penyaluran air lewat pipa ini akan beroperasi dari rumah O ke rumah T. Dari berbagai permasalahan jaringan, ada empat macam model jaringan yang bisa digunakan untuk membantu pemecahan masalah-masalah jaringan, yaitu model distribusi terkendali, model rentang jaringan minimum, model rute terpendek, dan model aliran maksimum (Siswanto, 2006:381). UNIVERSITAS SUMATERA UTARA

Page 23: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

15 2.4 Optimasi 2.4.1 Definisi Optimasi Optimasi secara umum adalah untuk memaksimalkan atau mengoptimalkan sesuatu hal yang bertujuan untuk mengelola sesuatu yang dikerjakan, sehingga optimasi bisa dikatakan kata benda yang berasal dari kata kerja, dan optimasi bisa dianggap baik sebagai ilmu pengetahuan dan seni menurut tujuan yang ingin dimaksimalkan. (Dunia optimasi, optimasi, 2011) Optimasi (Wikipedia, optimasi, 2012) adalah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika, optimasi merujuk pada studi permasalahan yang mencoba untuk mencari nilai minimum dan maksimum dari suatu fungsi nyata. Untuk mencapai nilai minimum dan maksimum tersebut, secara sistematis dilakukan pemilihan integer atau bilangan nyata yang akan memberikan solusi yang optimal. Sedangkan menurut Kamus Besar Bahasa Indonesia, optimasi adalah prosedur yang digunakan untuk membuat sistem atau desain yang fungsional atau seefektif mungkin dengan menggunakan teknik aplikasi matematika. Optimasi merupakan suatu tindakan pengambilan keputusan terbaik pada suatu masalah, keputusan tersebut berupa memaksimalkan faktor yang diinginkan atau meminimumkan faktor yang tidak diinginkan menurut batasan yang diberikan. Optimasi juga dijadikan solusi untuk menentukan keputusan menyelesaikan suatu masalah. (Bidisha G, 2011). Dalam matematika dan ilmu komputer, sebuah masalah optimasi adalah masalah untuk menemukan solusi terbaik dari semua solusi. Masalah optimasi dapat dibagi menjadi dua kategori tergantung pada apakah variabel yang kontinyu atau diskrit. Masalah optimasi dengan variabel diskrit dikenal sebagai masalah optimasi kombinatorial . Dalam masalah optimasi kombinatorial, kami sedang mencari sebuah benda seperti grafik integer, permutasi atau dari himpunan berhingga (atau mungkin dihitung tak terbatas). UNIVERSITAS SUMATERA UTARA

Page 24: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

16 2.4.2 Permasalahan Optimasi Beberapa permasalahan dalam optimisasi adalah sebagai berikut: 1. Shortest Path Problem: Suatu permasalahan untuk mencari rute terpendek dari suatu tempat ke tempat yang lain. 2. Traveling Salesman Problem: Suatu permasalahan untuk mencari rute perjalanan agar semua tempat dapat dilewati dengan jarak yang optimal. 3. Assignment Problems: Suatu permasalahan untuk mencari solusi biaya pengeluaran agar seminimum mungkin dan memberikan tugas pekerjaan kepada mesin-mesin yang tersedia. 4. Scheduling Problems: Suatu permasalahan untuk mencari jumlah pekerja yang melakukan suatu proses kegiatan, agar pengeluaran biaya pekerja bisa diminimalkan dan hasil produksi tetap maksimal. 5. Routing Problems: Mengatur routing jaringan kabel agar biaya pemasangan kabel tidak besar. (Vinnet C., Parveen K. Y., & Pawan K. D., 2012:15). 2.4.3 Teknik Optimasi Teknik optimasi secara umum dapat dibagi menjadi dua bagian, yang pertama adalah Pemrograman Matematika (Mathematical Programming), dan yang kedua adalah Kombinasi Optimasi (Combinatorial Optimatimization). Dalam bidang Pemrograman Matematika dapat dibagi menjadi dua kembali, yaitu mendukung mesin vector (support vector machines) dan gradient descent. Dan pada bidang Kombinasi Optimasi kembali difokuskan lagi ke dalam dua bidang, yaitu Teori Graph (Graph Theory) dan Algoritma Genetik (Genetic Algorithm). Pemfokusan bidang tersebut dikarenakan beberapa parameter, diantaranya, Restorasi (Restoration), Pemilihan fitur (Feature selection), Klasifikasi (Classification), Clustering, RF assignment, Compression, dan sebagainya. Cara untuk membuat optimasi yang baik, adalah dengan memperhatikan hal-hal berikut ( Pradana, 2009 ). 1. Model titik awal (Model dan starting Point). 2. Menuju minimum/maksimum. UNIVERSITAS SUMATERA UTARA

Page 25: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

17 3. Mengelompokan masalah optimasi yang baik. 4. Menentukan permulaan. 5. Kendala pembatas memberikan sebuah pilihan. Hal lain secara global yang penting untuk diperhatikan adalah fokus terhadap model dan masalah serta cara berpikir yang analitis. Kita harus fokus terhadap model dan masalah agar tujuan utama dari kasus tersebut tercapai, jangan sampai terlalu konsen pada optimasi tetapi goalnya sendiri malah tidak tercapai. Sedangkan berpikir analitis dimaksudkan agar kita peka terhadap keadaan dan mampu berpikir secara bebas untuk menemukan solusi solusi yang diperlukan. Sebagai contoh sederhana implementasi teknik optimasi ini, yaitu untuk mengoptimalkan performance komputer pada saat memakai suatu program agar berjalan lebih lancar. Caranya adalah dengan mematikan program-program yang running namun sebenarnya tidak diperlukan. Jika komputer kita tidak sedang membutuhkan koneksi dengan jaringan, sebaiknya semua service yang mendukung ataupun berhubungan dengan jaringan, ada baiknya dimatikan. 2.5 Model Lintasan Terpendek Model lintasan terpendek adalah salah satu model jaringan yang dapat digunakan untuk menentukan jarak terpendek dari berbagai alternatif rute yang tersedia atau mencoba untuk memecahkan masalah pemilihan jaringan paling efisien yang akan menghubungkan satu titik ke titik yang lain. Suatu lintasan antara dua buah titik adalah serangkaian garis yang berbeda yang menghubungkan titik-titik tersebut. Untuk setiap dua titik dapat terjadi beberapa lintasan, maupun lintasan dengan jarak terpendek atau bobot minimum. Bobot minimum dapat berupa jarak, waktu tempuh atau ongkos transportasi dari satu titik ke titik yang lainnya yang berbentuk lintasan tertentu (Dimyati dan Dimyati, 2003:164). Rute terpendek yang dicari adalah lintasan dari sumber ke tujuan yang memecahkan persoalan jarak total minimum. Faktor-faktor yang mempengaruhi pemilihan lintasan diantaranya adalah waktu tempuh, jarak, ongkos, kemacetan, dan antrian. Terdapat beberapa macam persoalan lintasan terpendek sebagai berikut: 1. Lintasan terpendek antara dua buah titik tertentu. UNIVERSITAS SUMATERA UTARA

Page 26: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

18 2. Lintasan terpendek antara semua pasangan titik. 3. Lintasan terpendek dari titik tertentu ke semua titik yang lain. Dapat diselesaikan misalnya dengan menggunakan algoritma Prim. 4. Lintasan terpendek antara dua buah titik yang melalui beberapa titik tertentu. Dalam penyusunan skripsi ini yang pertama akan dibahas dibatasi pada lintasan terpendek dengan menggunakan algoritma Prim sehingga dapat digunakan dalam menentukan lintasan terpendek dari titik awal sampai titik akhir. 2.6 Pohon Rentang Minimal (Minimum Spanning Tree) Graf terhubung dan tidak memuat cycle disebut pohon. Graf yang setiap komponennya berupa pohon disebut hutan (forest). Sebagai contoh, graf G pada gambar berikut ini adalah pohon, dan graf H adalah hutan dengan 3 komponen. Gambar 2.11 Graf G sebuah pohon, dan Graf H hutan dengan 3 komponen Sebuah pohon rentang dengan di G dengan bobot minimal disebut pohon rentang minimal (minimum spanning tree). Contoh 2 dari pohon rentang minimal. UNIVERSITAS SUMATERA UTARA

Page 27: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

19 Gambar 2.12 Contoh Pohon Rentang Minimal 2.5 Algoritma Prim, Algoritma Floyd Warshall, Algoritma Dijkstra dan program dinamik Ada beberapa Algoritma yang umum digunakan dalam menentukan lintasan terpendek dari suatu simpul ke simpul lainnya diantaranya 2.5.1 Algoritma Prim Masalah pohon rentang minimal dapat dipecahkan dengan bantuan suatu algoritma yang ditemukan oleh Prim (1957). Algoritma ini biasa disebut dengan Algoritma Prim (Bondy dan Murty, 1976:146). Algoritma Prim adalah suatu algoritma di dalam teori graf yang bertujuan menentukan suatu pohon rentang dengan semua sisi di dalam pohon adalah minimal. Secara terurut algoritma Prim dapat dituliskan sebagai berikut. Input : Graf bobot G terhubung dengan n titik, Step 1 : Pilih sebuah titik v di G dan tulis T1 = v, UNIVERSITAS SUMATERA UTARA

Page 28: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

20 Step 2 : Pilih sebuah sisi ek dengan bobot minimal yang menghubungkan sebuah titik Tk dengan sebuah titik G yang bukan di Tk. Jika terdapat lebih dari satu sisi yang demikian, pilih salah satu sebarang. Tulis Tk+1 = Tk U {ek}, Step 3 : Jika n-1 sisi telah terpilih (k = n-1), berhenti dan beri pesan Tk+1 adalah pohon rentang minimal di G. jika k < n-1, kembali ke step 2. (Budayasa, 2007: 40). Contoh 3. (soal penerapan dari algoritma Prim). Sebuah rumah v1 mempunyai sumur air artesis yang disalurkan ke 5 tetangganya, yaitu rumah v2, v3, v4, dan v5. tetapi, rumah v6 juga ingin disalurkan. Panjang pipa dari rumah v1 ke rumah v2 panjangnya 4, dari rumah v1 ke v3 panjangnya 5, dari rumah v3 ke v4 panjangnya 4, dari rumah v2 ke v4 panjangnya 6, dari rumah v3 ke v6 panjangnya 18, dari rumah v4 ke v6 panjangnya 8, dari rumah v2 ke v5 panjangnya 7, dan dari rumah v5 ke v6 panjangnya 10. Gambar 2.13 Contoh Penerapan dari Algoritma Prim Dengan menggunakan algoritma Prim, step yang pertama kita pilih sebuah titik awal yaitu v1. Pilih sebuah sisi dengan bobot terkecil yaitu sisi (v1,v2) sehingga diperoleh graf berikut ini. UNIVERSITAS SUMATERA UTARA

Page 29: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

21 Pilih sisi dengan bobot terkecil, yaitu v1 v2 dengan bobot 3. Pilih sisi dengan bobot terkecil, yaitu v1 v3 dengan bobot 5. Pilih sisi dengan bobot terkecil, yaitu v3 v4 dengan bobot 4. Pilih sisi dengan bobot terkecil, yaitu v2 v5 dengan bobot 7. Pilih sisi dengan bobot terkecil, yaitu v4 v6 dengan bobot 8. UNIVERSITAS SUMATERA UTARA

Page 30: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

22 Gambar 2.14 Pohon Rentang Minimal dari Graf G Karena semua titik sudah terhubung dan tidak membentuk sikel, maka diperoleh pohon rentang minimal dengan bobot sebagai berikut. λ(v1,v2) + λ(v1,v3) + λ(v3,v4) + λ(v2,v5) + λ(v4,v6) = 3 + 5 + 4 + 7 + 8 = 27. Jadi, diperoleh pohon rentang minimal dengan bobot 27. 2.5.2 Algoritma Floyd Warshall Algoritma Floyd Warshall diciptakan oleh R. Floyd pada tahun 1962. Algoritma Floyd Warshall adalah salah satu pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu (Ramadhan, 2011). Floyd Warshall merupakan algoritma untuk pencarian lintasan terpendek pada suatu graf berbobot (weighted graph). Algoritma ini dapat melakukan analisis dan penyelesaian kerumitan suatu proses (Purwanto, 2005). Floyd Warshall menerapkan pencarian keseluruh titik yang ada. Dalam Algoritma Floyd Warshall terdapat fungsi yang dituliskan kedalam notasi matematika dapat dilihat pada persamaan (1): ���) = ���) + ���) . . . (1) Penjelasan: ���) = Nilai jarak yang sebenarnya. ���) = Nilai titik awal. ���) = Nilai titik akhir. 2.5.3 Algoritma Dijkstra Pencarian rute terpendek termasuk kedalam materi teori graph. Algoritma yang sangat terkenal untuk menyelesaikan persoalan ini adalah algoritma Dijkstra. Algoritma ini ditemukan oleh seorang ilmuwan komputer berkebangsaan Belanda yang bernama Edsger Dijkstra. Algoritma Dijkstra digunakan untuk menentukan UNIVERSITAS SUMATERA UTARA

Page 31: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

23 lintasan terpendek pada sebuah graph berarah. Contoh penerapan algoritma Dijkstra adalah lintasan terpendek yang menghubungkan dua lokasi, tempat berlainan tertentu (single-source single destination shortest path problem). Cara kerja algoritma Dijkstra adalah memakai strategi greedy dimana pada setiap langkah dipilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang sudah terpilih dengan simpul lain yang belum terpilih. Algoritma Dijkstra membutuhkan parameter tempat asal dan tempat tujuan. Hasil akhir algoritma ini adalah lintasan terpendek dari tempat asal ke tempat tujuan beserta rutenya. Jika menggunakan algoritma Dijkstra untuk menentukan lintasan terpendek dari suatu graph, maka akan menemukan lintasan yang terbaik karena pada penentuan lintasan yang akan dipilh akan dianalisis bobot dari node yang belum terpilih, lalu dipilih node dengan bobot terkecil. Algoritma Dijkstra mencari lintasan terpendek dari node asal ke vertex terdekatnya, kemudian ke vertekx kedua, dan seterusnya. Ada beberapa kasus pencarian lintasan terpendek yang diselesaikan menggunakan algoritma Dijkstra, yaitu: 1. Pencarian lintasan terpendek antara dua buah simpul tertentu (a pair shortest path) 2. Pencarian lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single source shortest path) 3. Pencarian lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermediate shortest path) Lintasan terpendek adalah suatu jaringan pengarahan perjalanan dimana seseorang pengarah jalan ingin menentukan lintasan terpendek anatara dua lokasi berdasarkan beberapa lintasan alternative yang tersedia dimana titik tujuan hanya satu. Gambar 2.14 menunjukkan suatu graph ABCDEFG yang berarah dan berbobot. A BC D EF G4 2 1 2 3 1 4 2 2 2 1 3 Gambar 2.14. Graph ABCDEFG UNIVERSITAS SUMATERA UTARA

Page 32: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

24 Ide algoritma Dijkstra adalah mendapatkan satu demi satu sisi mulai dari yang berbobot terkecil untuk membentuk pohon, suatu sisi walaupun berbobot kecil tidak akan diambil jika membentuk siklik dengan sisi yang sudah termasuk dalam pohon, yang menjadi masalah dalam implementasinya adalah keperluan adanya pemeriksaan kondisi siklik tersebut. Salah satu pemecahaannya adalah dengan subsetting yaitu pembentukan subset-subset yang disjoint dan secara bertahap dilakukan penggabungan atas tiap dua subset yang berhubungan dengan suatu sisi dengan bobot terpendek. 2.5.4 Algoritma Program Dinamik Program dinamik adalah suatu prosedur optimasi yang khusus dipergunakan untuk persoalan yang menyangkut sederetan keputusan. Setiap keputusan dirubah dari situasi sekarang kedalam situasi yang baru, sederetan keputusan yang masing-masing mempunyai sederetan keadaan, yaitu max (min) nilai dari rentetan keputusan, secara umum sama dengan jumlah dari nilai masing-masing keputusan dan keadaan rentetan keputusan tersebut. Selanjutnya pembahasan menyangkut berbagai contoh sedemikian hingga mhs/i dapat mengembangkan lebih luas dan gambaran yang lebih umum dimulai dengan melihat persoalan lintasan terbaik dari satu lokasi ke lokasi yang lain. Kemudian perluasan (elaborate) untuk memperlihatkan bagaimana satu “situasi” dapat meliputi (eucompass) lebih banyak informasi tentang lokasi dan mesti tertentu dalam suatu jalan yang mendekati ke suatu persoalan tertentu (particular) 2. persoalan lintasan sederhana Andaikan (suppose) sementara kita tinggal di suatu kota yang jalannya seperti ditunjukkan dalam gambar 1.1. semua jalan satu arah dan angka menunjukkan UNIVERSITAS SUMATERA UTARA

Page 33: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

25 pemetaan masing-masing perolehan (effort) biasanya digunakan waktu tetapi kadang-kadang biaya atau jarak) yang mewajibkan melintasi setiap blok, misalkan anda tinggal di A dan ingin ke B dengan perolehan total minimum (minimum total effort). Tentunya persoalan ini dapat diselesaikan dengan enumerasi, semua lintasan yang mungkin dari A ke B; upaya menambahkan masing-masing blok dengan blok dan kemudian memilih jumlahan terkecil. Ada 20 lintasan yang berbeda dari A ke B dan 5 Gambar 1.1. penjumlahan menghasilkan jumlah 6 bilangan sepasang lintasan khusus, jadi 100 penjumlahan akan menghasilkan 20 jumlahan lintasan untuk dipilih (compared) dimana perbandingan menghasilkan yang paling kecil dari 2 bilangan satu penjumlahan dibandingkan (dari tiga bilangan) menghasilkan terkecil dari tiga, dan seterusnya, 19 perbandingan lengkap diselesaikan secara enumerasi. Penyelesain yang lebih efisien dari metode brute-force enumeration disebut dengan Program Dinamik . UNIVERSITAS SUMATERA UTARA

Page 34: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

26 Berikut Langkah-langkah Algoritma Program Dinamik: Fungsi nilai optimal S adalah sekarang suatu fungsi dari pasangan bilangan (x,y) dilambangkan suatu titik pangkal dari pada suatu fungsi dari argumen literal seperti A atau C untuk pasangan (x,y) melambangkan suatu persimpangan jalan pada peta (untuk selanjutnya disebut vertex dan jaringan). Didefenisikan fungsi nilai optimal S(x,y) dengan S(x,y) = nilai perolehan minimum lintasan tersambung vertek (x,y) dengan vertek terminal (6,0) Garis lurus diagonal yang menghubungkan satu vertek dari jaringan dan yang berdekatan yang mewakili sebuah blok dari sautu kota yang disebut suatu busur dari jaringan. Misalakan symbol au (x,y) melambangkan perolehan yang berkaitan dengan suatu busur vertek (x,y) dengan vertek (x+1,y+1). Subscript u berarti busur secara diagonal naik dari (x,y). misalkan ad(x,y) melambangkan perolehan dari busur yang secara diagonal turun dari (x,y) ke (x+1,y-1) dan disebut bahwa au(x,y) atau ad(x,y) = ∞ (suatu hal yang sangat besar) jika ada busur yang tidak demikian dalam jaringan (contoh au(4,2) = ∞ ) Dalam istilah-istilah dari simbol-simbol ini prinsip optimalisasi yang diberikan relasi bertahap ganda S(x,y) = min

−++

+++ )1,1(),( )1,1(),( yxSyxa yxSyxadu Dan syarat batas yang nyata adalah S(6,0) = 0 Dimana perolehan dari (6,0) ke (6,0) adalah nol Kalau tidak (alternatively) dapat ditulis syarat batas nyata S(5,1)=2, S(5,-1)=1 seperti terlihat dengan mudah, tetapi ini adalah terpenuhi oleh (1,2) dan (1,3) dan konversi yaitu au(5,1) = ∞ dan ad(5,-1) = ∞ lagi pula (1,3) lebih sederhana untuk ditulis salah satu dari syarat batas adalah benar. UNIVERSITAS SUMATERA UTARA

Page 35: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

27 UNIVERSITAS SUMATERA UTARA

Page 36: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

27 BAB 3 PEMBAHASAN 3.1 Algoritma Dijkstra Pencarian rute terpendek termasuk kedalam materi teori graph. Algoritma yang sangat terkenal untuk menyelesaikan persoalan ini adalah algoritma Dijkstra. Algoritma ini ditemukan oleh seorang ilmuwan komputer berkebangsaan Belanda yang bernama Edsger Dijkstra. Algoritma Dijkstra digunakan untuk menentukan lintasan terpendek pada sebuah graph berarah. Contoh penerapan algoritma Dijkstra adalah lintasan terpendek yang menghubungkan dua lokasi, tempat berlainan tertentu (single-source single destination shortest path problem). Cara kerja algoritma Dijkstra adalah memakai strategi greedy dimana pada setiap langkah dipilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang sudah terpilih dengan simpul lain yang belum terpilih. Algoritma Dijkstra membutuhkan parameter tempat asal dan tempat tujuan. Hasil akhir algoritma ini adalah lintasan terpendek dari tempat asal ke tempat tujuan beserta rutenya. Jika menggunakan algoritma Dijkstra untuk menentukan lintasan terpendek dari suatu graph, maka akan menemukan lintasan yang terbaik karena pada penentuan lintasan yang akan dipilh akan dianalisis bobot dari node yang belum terpilih, lalu dipilih node dengan bobot terkecil. Algoritma Dijkstra mencari lintasan terpendek dari node asal ke vertex terdekatnya, kemudian ke vertekx kedua, dan seterusnya. Ada beberapa kasus pencarian lintasan terpendek yang diselesaikan menggunakan algoritma Dijkstra, yaitu: 1. Pencarian lintasan terpendek antara dua buah simpul tertentu (a pair shortest path) 2. Pencarian lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single source shortest path) 3. Pencarian lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermediate shortest path) Lintasan terpendek adalah suatu jaringan pengarahan perjalanan dimana seseorang pengarah jalan ingin menentukan lintasan terpendek anatara dua lokasi berdasarkan UNIVERSITAS SUMATERA UTARA

Page 37: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

28 beberapa lintasan alternative yang tersedia dimana titik tujuan hanya satu. Gambar 3.1 menunjukkan suatu graph ABCDEFG yang berarah dan berbobot. Ide algoritma Dijkstra adalah mendapatkan satu demi satu sisi mulai dari yang berbobot terkecil untuk membentuk pohon, suatu sisi walaupun berbobot kecil tidak akan diambil jika membentuk siklik dengan sisi yang sudah termasuk dalam pohon, yang menjadi masalah dalam implementasinya adalah keperluan adanya pemeriksaan kondisi siklik tersebut. Salah satu pemecahaannya adalah dengan subsetting yaitu pembentukan subset-subset yang disjoint dan secara bertahap dilakukan penggabungan atas tiap dua subset yang berhubungan dengan suatu sisi dengan bobot terpendek. Algoritma Dijkstra merupakan algoritma untuk menentukan lintasan terpendek dari sebuah titik terhadap titik yang lain. Langkah-langkah : 1. Mentukan sebuah titik awal (Vn) 2. Menentukan titik-titik yang terhubung langsung dengan titik awal dengan memberikan bobot berdasarkan bobot lintasannya. Pilih titk dengan bobot terkecil. 3. Jika titik tersebut yang dimaksud maka berhenti, jika tidak amati bobot titik terkecil yang terhubung ke titik yang dipilih. 4. Ubah bobot titik tersebut jika bobot total (bobot titik tersebut dg titik yang dipilih sebelumnya) lebih kecil dari bobot hubungan langsungnya (dengan titik awal); A BC D EF G4 2 1 2 3 1 4 2 2 2 1 3 Gambar 3.1 Graph ABCDEFG UNIVERSITAS SUMATERA UTARA

Page 38: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

29 5. Pilih sebuah titik dengan bobot terkecil, dan ulangi langkah 3. hingga mencapai titik tujuan. 6. Langkah-langkah proses pada algoritma dijkstra dapat dinyatakan dalam bentuk tabel iterasi. Berikut ini adalah tabel-tabel proses penentuan lintasan terpendek menggunakan algoritma dijkstra untuk kasus yang diberikan . 3.2 Algoritma Program Dinamik Program dinamik adalah suatu prosedur optimasi yang khusus dipergunakan untuk persoalan yang menyangkut sederetan keputusan. Setiap keputusan dirubah dari situasi sekarang kedalam situasi yang baru, sederetan keputusan yang masing-masing mempunyai sederetan keadaan, yaitu max (min) nilai dari rentetan keputusan, secara umum sama dengan jumlah dari nilai masing-masing keputusan dan keadaan rentetan keputusan tersebut. Selanjutnya pembahasan menyangkut berbagai contoh sedemikian hingga dapat mengembangkan lebih luas dan gambaran yang lebih umum dimulai dengan melihat persoalan lintasan terbaik dari satu lokasi ke lokasi yang lain. Kemudian perluasan untuk memperlihatkan bagaimana satu “situasi” dapat meliputi lebih banyak informasi tentang lokasi dan mesti tertentu dalam suatu jalan yang mendekati ke suatu persoalan tertentu r) 3.2.1 Persoalan lintasan sederhana Andaikan kita tinggal di suatu kota yang jalannya seperti ditunjukkan dalam gambar 3.1. semua jalan satu arah dan angka menunjukkan pemetaan masing-masing perolehan biasanya digunakan waktu tetapi kadang-kadang biaya atau jarak yang mewajibkan melintasi setiap blok, misalkan anda tinggal di A dan ingin ke B dengan perolehan total lintasan terpendek UNIVERSITAS SUMATERA UTARA

Page 39: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

30 Tentunya persoalan ini dapat diselesaikan dengan enumerasi, semua lintasan yang mungkin dari A ke B; upaya menambahkan masing-masing blok dengan blok dan kemudian memilih jumlahan terkecil. Ada 20 lintasan yang berbeda dari A ke B dan 5 Gambar 3.2.Lintasan Sederhana penjumlahan menghasilkan jumlah 6 bilangan sepasang lintasan khusus, jadi 100 penjumlahan akan menghasilkan 20 jumlahan lintasan untuk dipilih dimana perbandingan menghasilkan yang paling kecil dari 2 bilangan satu penjumlahan dibandingkan (dari tiga bilangan) menghasilkan terkecil dari tiga, dan seterusnya, 19 perbandingan lengkap diselesaikan secara enumerasi. Penyelesain yang lebih efisien dari metode brute-force enumeration disebut dengan Program Dinamik . 3.2.2 Penyelesaian Program Dinamik Untuk pengembangan pendekatan Program Dinamik salah satunya seperti berikut. Apakah secara diagonal keatas atau diagonal ke bawah dari A tetapi bagaimanapun diketahui penjumlahan dua bilangan yaitu hasil total yang diperoleh dari C ke B dengan lintasan (yaitu hasil minimum) terbaik, dan total hasil yang diperoleh dari D ke B dengan lintasan terbaik dengan membuat pilihan terbaik dari A. UNIVERSITAS SUMATERA UTARA

Page 40: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

31 Notasi hasil minimum dari C ke B ditulis Sc dan hasil minimum dari D ke B ditulis Sd, menjumlahkan ke Sc perolehan yang membutuhkan pergerakan dari a ke c, menghasilkan lintasan terbaik yang dimulai secara diagonal ke atas dari A. selanjutnya penjumlahan pada AD ke SD, diperoleh hasil lintasan terbaik yang dimulai secara diagonal ke bawah dari A, dan dapat dibandingkan dengan dua jumlah yang diperoleh hasil minimum secara keseluruahn dan keputusan yang pertama terbaik. Tentu saja semua ini didasarkan dari 2 bilangan SC dan SD yang mana belum diketahui. Bagaimanapun satu dari dua gagasan kunci Program Dinamik sudah membuat tidak merusak keadaan pengamatan yang hanya perolehan sepanjang lintasan terbaik dari C dan dari D ke B yang sejalan dengan perhitungan di atas, dan perolehan sekitar sembilan lintasan inferior dari setiap C dan D ke B tidak perlu dihitung. yang sering disebut prinsip optimalisasi yang ditetapkan seperti berikut. Lintasan terbaik dari A ke B disebut dengan keputusan awal dari A, lintasan yang tersisa ke B, dimulai dari titik selanjutnya setelah A, mestinya dari lintasan terbaik ke B. Dari defenisi SC dan SD di atas dapat disebut prinsip optimalisasi seperti rumus berikut : SA = min

+

+ DCSS01 Dimana SA adalah perolehan, minimum yang diperoleh dari A ke B dan disimbolkan min

yx yang berarti “jumlah terkecil dari x dan y”. Sekarang untuk gagasan kunci ke 2, yang mana bilangan SC dan SD tidak diketahui pada awalnya, dapat dihitung SC apabila diketahui dua bilangan SE dan SF (perolehan minimum masing-masing dari E dan F ke B dengan bantuan prinsip optimasi yang ditulis SC = min

+

+ FESS45 Demikian juga SD = min

+

+ GFSS37 UNIVERSITAS SUMATERA UTARA

Page 41: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

32 SE, SF, dan SG mulanya tidak diketahui, tetapi dapat dihitung jika SH, SI, Sj dan SK diperoleh, sebaliknhya bilangan ini tergantung pada SL, SM, dan SN yang selanjutnya tergantung pada SO dan SP. Sebab itu dapat dipergunakan rumus dari jenis diatas untuk menghitung semua nilai S. jika diketahui SO dan SP masing-masing perolehan minimum dari O dan P ke B. tetapi bilangan ini dengan sendirinya diketahui masing-masing 2 dan 1 dimana O dan P tertutup ke B yang hanya ada satu lintasan dari setiap point. Working out Cara Mundur dari O dan P ke A, sekarang diselesaikan perhitungannya. SL = 5 + SO SM = min

+

+ ROSS82 = 4 SN = 4 + SR = 5 SH = 3 + SL = 10 SI = min

+

+ MLSS43 = 8 SJ = min

+

+ NMSS22 = 6 SK = 2 +SN = 7 SE = min

+

+ IHSS12 = 9 SF = min

+

+ JISS21 = 8 SG = min

+

+ KjSS45 = 11 SD = min

+

+ GFSS37 = 14 SC = min

+

+ FESS45 = 12 SA = min

+

+ DCSS01 = 13 UNIVERSITAS SUMATERA UTARA

Page 42: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

33 Gagasan kunci kedua telah dihitung panjang dari lintasan perolehan minimum yang diperlukan dengan mempertimbangkan titik start lebih lanjut dan lebih jauh dari B. akhirnya pekerjaan kembali ke A, kemudian bilangan tersebut diperlukan oleh gagasan satu prinsip optimasi diketahui apabila diperlukan. Menetukan agar supaya lintasan terbaik mempunyai perolehan 13 (yaitu SA = 13), melakukan penjumlahan pada setiap titik dari 6 titik H,L,O,K,N,P dimana hanya satu keputusan yang mungkin dan melakukan dua penjumlahan dan perbandingan pada setiap sisa 9 titik dimana dua keputusan awal yang mungkin. Jumlah terhadap 20 penjumlahan dan 9 perbandingan, memperbandingkan dengan 100 penjumlahan dan 19 perbandingan untuk brute-force enumerasi digambarkan dengan mudah Tentu saja paling tidak kepentingan dalam menentukan lintasan terbaik yang sesungguhnya seperti diketahuinya total perolehan lintasan tersebut akan mudah diperoleh dinotasikan yang mana dua keputusan pertama yang mungkin menghasilkan minimum dalam kalkulasi sebelumnya. Pada setiap titik pada gambar . jika dimisalkan x mewakili suatu titik pangkal yang khusus dan dilambangkan dengan Px, simpul setelah simpul x pada lintasan optimal dari x ke B, maka table P dapat dihitung seperti table S diatas sebagai contoh, Pm=0 dimana 2 + So lebih kecil dari 8 + Sp, PI = M dimana 4 + SM lebih kecil dari 3 + SL, dan seterusnya. PJ = M mengirimkan pada M dimana PM = O mengatakan O selanjutnya dan B yang terdekat. Oleh karena itu lintasan terbaik adalah A-C-F-J-M-O-B. seperti pencekingan ketelitian perhitungan dijumlahkan perolehan sepanjang lintasan diatas 1+4+2+2+2+2=13 yang mana sama dengan SA, seperti musti jika dibuat tanpa kesalahan perhitungan. Barangkali mengherankan mhs/i mendengar bahwa ada tanpa gagasan kunci lagi Program Dinamik tentu saja, ada trik khusus untuk problema khusus dengan berbagai cara (antar analitis dan komputasi) dari 2 gagasan terdahulu, tetap selanjutnya pada buku ini dan pokok hanya prihatin dengan bagaimana dan kapan digunakan gagasan ini dan tidak dengan prinsip baru atau pengetahuan yang dalam. Umumnya prosedur Program Dinamik adalah secara eksak Pertama pengenalan “whole problem” dapat diselesaikan apabila nilai dari penyelesaian terbalik dari subproblem tertentu dapat ditentukan (dasar optimisasi) UNIVERSITAS SUMATERA UTARA

Page 43: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

34 Kedua realisasi bahwa apabila titik pangkal pada atau dekat di ujung “whole problem” subprogram adalah sederhana yang mempunyai penyelesaian dengan sendirinya (mudah). 3.2.3 Terminologi Untuk memperjelas pengertian tentang perluasan dan perpanjangan gagasan di atas, tujuan beberapa defenisi dan pengembangannya beberapa notasi, selanjutnya dikatakan aturan nilai ditetapkan untuk jenis subprogram fungsi nilai optimal (disini perolehan minimum) seperti contoh tulisan dibawah garis (subscript) dari S misalnya A disimbolkan dengan SA yaitu penjelasan dari fungsi S dan setiap penjelasan (pendapat) mengenalkan ke subprogram tertentu. Dengan defenisi S, subscript A menyatakan (indicates) bahwa lintasan terbaik dari A ke B yang diinginkan yang mana C berarti bahwa lintasan terbaik dari C ke B yang dicari (sought). Aturan yang berkaitan dengan keputusan pertama yang terbaik dengan setiap subprogram fungsi P dalam contoh disebut fungsi kebijaksanaan optimal. Prinsip optimasi menghasilkan suatu rumusan atau sekumpulan rumus yang berhubungan dengan bermacam ragam nilai dari S. Rumus ini disebut relasi bertahap ganda. Akhirnya, nilai dari nilai fungsi optimal S untuk argument yang dianggap nyata dari pernyataan dari problem dan dari defenisi dari S dengan tanpa perhitungan yang diinginkan nilai ini disebut syarat batas pada S. Dalam hal ini, untuk menyelesaikan persoalan dengan Program Dinamik dipilih argument dan fungsi nilai optimal dan defenisi bahwa fungsi sedemikian menggunakan prinsip optimilisasi untuk menulis relasi bertahap ganda. Dimulai dengan syarat batas, kemudian menggunakan relasi bertahap ganda untuk menentukan nilai optimal dan fungsi kebijaksanaan secara berbarengan. Apabila nilai optimal dan keputusan diketahui untuk nilai argument yang mewakili original whole problem penjelasannya komplit dan lintasan terbaik dapat dijajaki dengan mengunakan fungsi kebijaksanaan optimal itu sendiri. Sekarang dikembangkan notasi tertentu untuk persoalan lintasan sederhana yang tersedia yang membolehkan representasi yang lebih sistimatis dari prosedur dari pada rumus yang lebih sederhana.. disebut tidak ada yang baru tetapi dengan cara yang berbeda. Misalkan tempatkan kota ke peta (gambar 3.2) pada koordinat system seperti ditunjukkan dalam gambar 3.3 berikut. UNIVERSITAS SUMATERA UTARA

Page 44: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

35 Gambar 3.3. Lintasan Terpendek Pada Bidang Kartesius A H E L C O B 2 3 5 5 1 2 M 2 8 1 I F J 1 3 4 4 1 7 0 P 4 2 2 2 3 5 4 G D K 2 N y x UNIVERSITAS SUMATERA UTARA

Page 45: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

36 Sekarang titik A mempunyai koodinat (0,0), B mempunyai koordinat (6,0), I (3,1) dan seterusnya . Kita lakukan tidak menunjukkan satu arah jalan panah pada garis, tetapi dianggap sepanjang seluruhnya sisa dari bab ini yang lintasan dapat diterima selalu berlanjut dan selalu bergerak kedepan sebelah kanan. Fungsi niali optimal S adalah sekarang suatu fungsi dari pasangan bilangan (x,y) dilambangkan suatu titik pangkal dari pada suatu fungsi dari argument literal seperti A atau C untuk pasangan (x,y) melambangkan suatu persimpangan jalan pada peta (untuk selanjutnya disebut vertex dan jaringan). Didefenisikan fungsi nilai optimal S(x,y) dengan S(x,y) = nilai perolehan minimum lintasan tersambung vertek (x,y) dengan vertek terminal (6,0) …………….. ……… (3.1) Garis lurus diagonal yang menghubungkan satu vertek dari jaringan dan yang berdekatan yang mewakili sebuah blok dari sautu kota yang disebut suatu busur dari jaringan. Misalakan symbol au (x,y) melambangkan perolehan yang berkaitan dengan suatu busur vertek (x,y) dengan vertek (x+1,y+1). Subscript u berarti busur secara diagonal naik dari (x,y). misalkan ad(x,y) melambangkan perolehan dari busur yang secara diagonal turun dari (x,y) ke (x+1,y-1) dan disebut bahwa au(x,y) atau ad(x,y) = ∞ (suatu hal yang sangat besar) jika ada busur yang tidak demikian dalam jaringan (contoh au(4,2) = ∞ ) Dalam istilah-istilah dari simbol-simbol ini prinsip optimalisasi yang diberikan relasi bertahap ganda S(x,y) = min

−++

+++ )1,1(),( )1,1(),( yxSyxa yxSyxadu (3.2) Dan syarat batas yang nyata adalah S(6,0) = 0 (3.3) Dimana perolehan dari (6,0) ke (6,0) adalah nol Kalau tidak (alternatively) dapat ditulis syarat batas nyata S(5,1)=2, S(5,-1)=1 seperti terlihat dengan mudah, tetapi ini adalah terpenuhi oleh (1,2) dan (1,3) dan konversi yaitu au(5,1) = ∞ dan ad(5,-1) = ∞ lagi pula (1,3) lebih sederhana untuk ditulis salah satu dari syarat batas adalah benar. ``` UNIVERSITAS SUMATERA UTARA

Page 46: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

37 UNIVERSITAS SUMATERA UTARA

Page 47: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

BAB 4 PENUTUP 4.1 Kesimpulan Dari hasil penelitian dan pembahasan pada penelitian ini maka simpulan yang dapat diambil adalah sebagai berikut. 1. Dari proses perhitungan algoritma Dijkstra lebih sederhana dibandingkan dengan Algoritma Program Dinamik 2. Perhitungan dengan menggunakan Algoritma program dinamik S(x,y) = min

−++

+++ )1,1(),( )1,1(),(yxSyxa

yxSyxa

d

u lebih optimal dibadingkan dengan Algoritma Dijkstra 3. Perhitungan Lintasan terpendek dengan suatu denda Algoritma Program Dinamik berikut S (x,y,z) = (1-z)au(x,y) + zad(x,y) + min

−−+++

−−+ )1,21,1(3 ),21,1(zzyxS

zzyxS Lebih sempurna daripada Aldijkstra 4.2 Saran Dalam penulisan skiripsi ini penulis menuliskan beberapa saran sebagai berikut. 1. Diharapkan pada penelitian ini, pembaca bisa memberikan kritik dan saran yang membangun. Selanjutnya dari hasil penelitian ini dapat diterapkan pada penyelesaian permasalahan yang terjadi di suatu perusahaan, di instansi 2. Hasil penelitian ini juga bisa diterapkan diberbagai persoalan lintasan terpendek dengan mengunakan algoritama selain Algoritma Dijkstra dan Algoritma Program Dinamik UNIVERSITAS SUMATERA UTARA

Page 48: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

51 DAFTAR PUSTAKA Agung Juliansyah, Akbar Aswad, 2012, Matematika Diskrit Revisi Kelima Bandung, Informatika. Agustini, Dwi Hayu dan Rahmadi Y. Endra. 2004. Riset Operasional Konsep-konsep Dasar. Jakarta: PT. Rineka Cipta. Budayasa, I Ketut. 2007. Teori Graph dan Aplikasinya. Surabaya : Unesa University Press. Dimyati, T. T. & A. Dimyati. 1999. Operations Research Model-Model Pengambilan Keputusan. Bandung: Sinar Baru Algensindo. Dumairy. 2004. Matematika Terapan untuk Bisnis dan Ekonomi. Yogyakarta : BPFE Yogyakarta. Hillier S. Frederick dan Lieberman J. Gerald. 1990. Pengantar Riset Operasi. Jakarta: Erlangga. Indryani, R, Suprayitno, H, dan Astana, I.N.Y, 2004. Model Transportasi untuk Pengembangan Air Bersih di Kabupaten Badung, Provinsi Bali. Surabaya : Jurusan Teknik Sipil Institut Teknologi Sepuluh Nopember (ITS). Liu, C. L. 1995. Dasar-dasar Matematika Diskrit. Edisi ke-2 Jakarta: Gramedia Pustaka Mulyono, Sri. 2004. Riset Operasi. Jakarta : Lembaga Penerbit Fakultas Ekonomi UI. Nirwansah, Hendi dan Widowati. 2007. Efisiensi Biaya Distribusi dengan Metode Transportasi. Semarang : Jurusan Matematika FMIPA UNDIP Semarang. Nomor.net, Daftar Desa dan kelurahan di kecamatan Aek Nabara Barumun Kabupaten Padang Lawas, Negara kesatuan Republik Indonesia 2017. http://www.nomor.net/_kodepos.php?_i=desa-kodepos&daerah=Kecamatan Kab.Padang+Lawas&jobs=Padang+Lawas&urut=&asc=000010&sby=000000&no1 2&prov=Aek+Nabara+Barumun Munir, Rinaldi. 2005. Matematika Diskrit. Bandung : Informatika. Pradana, Bayu. 2006. Studi dan Implementasi Persoalan Lintasan Terpendek Suatu Graf dengan Algoritma Dijkstra dan Algoritma Bellman-ford. Bandung: Institut Teknologi Bandung. Rinaldi Munir, 2012. Matematika Diskrit Revisi Keempat Bandung: Informatika. UNIVERSITAS SUMATERA UTARA

Page 49: MENENTUKAN LINTASAN TERPENDEK MENGUNAKAN …

52 Qomariyah, S. 1995. Analisa Sistem Dalam Perencanaan dan Pengembangan Sumber Daya Air. Surabaya: Himpunan Ahli Teknik Hidraulik Surabaya. Siang, J.J. 2002. Matematika Diskrit dan Aplikasinya pada Program Komputer. Yogyakarta : Andi Siswanto. 2007. Operations Research. Yogyakarta : Erlangga. Sutarno, H. Dkk. 2003. Matematika Diskrit. Bandung: Lembaga Penerbit Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam Universitas Pendidikan Indonesia. Taha, A. Hamdy. 1997. Riset Operasi. Jakarta: Bina Rupa Aksara. UNIVERSITAS SUMATERA UTARA