ALGORITMA MENCARI LINTASAN TERPENDEK

dokumen-dokumen yang mirip
Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

BAB I Pendahuluan 1.1. Latar Belakang

Aplikasi Graf pada Persoalan Lintasan Terpendek dengan Algoritma Dijkstra

Perbandingan Algoritma Dijkstra dan Algoritma Floyd-Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path)

Studi Algoritma Optimasi dalam Graf Berbobot

Pencarian Jalur Terpendek Pada Sistem Jaringan Komputer Menggunakan Algoritma Program Dinamis

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila /

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

Pengaplikasian Graf dalam Menentukan Rute Angkutan Kota Tercepat

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

BAB 2 LANDASAN TEORITIS

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

PENERAPAN ALGORITMA DIJKSTRA UNTUK MENEMUKAN RUTE TERPENDEK DAERAH WISATA DI KABUPATEN BANYUWANGI PADA LOCATION BASED SERVICE DI PLATFORM ANDROID

Implementasi Graf dalam Penentuan Rute Terpendek pada Moving Object

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

Pengaplikasian Graf dan Algoritma Dijkstra dalam Masalah Penentuan Pengemudi Ojek Daring

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Aplikasi Pohon dan Graf dalam Kaderisasi

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Bab II Tinjauan Pustaka

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Penerapan Algoritma Branch and Bound untuk Optimasi Rute Penempelan Poster di Papan Mading ITB

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

Penerapan Teori Graf Pada Algoritma Routing

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Algoritma Brute Force (lanjutan)

Algoritma Greedy (lanjutan)

Pengembangan Teori Graf dan Algoritma Prim untuk Penentuan Rute Penerbangan Termurah pada Agen Penyusun Perjalanan Udara Daring

Penerapan Algoritma Greedy dalam Penyetokan Barang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

APLIKASI ALGORITMA GREEDY DALAM PENENTUAN SPESIFIKASI KOMPUTER RAKITAN

Penerapan Algoritma Brute force dan Greedy pada Penjadwalan Disk

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Sudi dan Implementasi Algoritma Optimasi Pemotongan Bar Steel

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Program Dinamis Sebagai Algoritma Dalam Link State Routing Protocol

ALGORITMA OPTIMASI UNTUK MEMINIMALKAN SISA PEMOTONGAN BAR STEEL PADA PERUSAHAAN KONSTRUKSI

Penggunaan Metode Branch And Bound With Search Tree

Program Dinamis (Dynamic Programming)

Pengantar Matematika. Diskrit. Bahan Kuliah IF2091 Struktur Diksrit RINALDI MUNIR INSTITUT TEKNOLOGI BANDUNG

Penerapan Greedy pada Jalan Jalan Di Bandung Yuk! V1.71

Pencarian Solusi Optimal dalam Permainan Congklak dengan Program Dinamis

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Penerapan Algoritma Branch And Bound Dalam Optimasi Assigment Problem

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

Penerapan Algoritma Greedy Untuk Pemantauan Jaringan Komputer Berbasis Rute (Path-oriented)

Penyelesaian Traveling Salesman Problem dengan Algoritma Heuristik

PENGGUNAAN ALGORITMA HUNGARIAN DALAM MENYELESAIKAN PERSOALAN MATRIKS BERBOBOT

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Penggunaan Algoritma Dynamic Programming pada Aplikasi GPS Car Navigation System

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

Algorima Greedy Pada Self Serve Gas Station

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Implementasi Algoritma Greedy pada Permainan Ludo

STUDI DAN IMPLEMENTASI ALGORITMA DIJKSTRA, BELLMAN-FORD DAN FLOYD-WARSHALL DALAM MENANGANI MASALAH LINTASAN TERPENDEK DALAM GRAF

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Aplikasi Graf dalam Rute Pengiriman Barang

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Pemanfaatan Algoritma Program Dinamis dalam Pendistribusian Barang

Penyelesaian Traveling Salesperson Problem dengan Menggunakan Algoritma Semut

ALGORITMA BELLMAN-FORD DALAM DISTANCE VECTOR ROUTING PROTOCOL

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

Penyelesaian TSP Simetris dengan Algoritma Greedy Dua Arah

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

1. PENDAHULUAN 1.1 Latar Belakang

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penerapan Dynamic Programming pada sistem GPS (Global Positioning System)

UNIVERSITAS GUNADARMA

Transkripsi:

Abstrak ALGORITMA MENCARI LINTASAN TERPENDEK Indra Fajar 1, Gustian Siregar 2, Dede Tarwidi 3 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : fs_indra@yahoo.com 1, guzztian@yahoo.com 2, cyberdeta@yahoo.com 3 Pencarian lintasan terpek menjadi hal yang sangat diperlukan. Dalam kehidupan sehari-hari, pencarian jalur terpek digunakan misalkan oleh seorang pengara karaan bermotor, perutean pada jaringan komputer. Para pengara karaan bermotor mencari lintasan terpek antara satu tempat ke tempat lain, perutean pada jaringan komputer mencari delai yang paling minimum untuk mengirimkan data. Terdapat berbagai algoritma yang membahas pencarian lintasan terpek, antara lain algortima exhaustive search, algoritma Greedy, program dinamis. Algoritma exhaustive search mencari lintasan terpek dengan mengenumerasi semua rangkaian keputusan yang mungkin dari lintasan yang ada dan memilih rangkaian keputusan yang terbaik. Algoritma Djikstra dengan menggunakan prinsip Greedy mencari lintasan terpek dari satu simpul ke semua simpul lain yang terhubung. Sedangkan program dinamis yaitu dengan mengurangi pengenumerasian dengan prinsip optimalitas. Kata kunci: lintasan terpek, algoritma exhaustive search, algoritma Greedy, algoritma Djikstra, program dinamis. 1. Pahuluan Seiring dengan perkembangan teknologi yang makin pesat termasuk dalam aplikasi dari algoritma pencarian lintasan terpek, maka sangat penting untuk memilih algoritma yang tepat agar diperoleh hasil yang optimal. Ada banyak pilihan algoritma untuk mencari lintasan terpek diantaranya dengan algoritma Exhaustive search, algoritma Djikstra, dan Program Dinamis. Masing-masing algoritma mempunyai keuntungan dan kelemahan tergantung dari persoalan yang dihadapi. 2. Pencarian Lintasan Terpek 2.1 Algoritma Exhaustive search Mencari lintasan terpek dengan exhaustive search yaitu dengan mengenumerasi setiap lintasan yang mungkin dengan cara yang sistematis. Dari setiap kemungkinan tersebut dievaluasi satu persatu, selanjutnya bandingkan setiap lintasan yang telah dievaluasi, lintasan yang memberikan nilai terkecil merupakan lintasan terpek yang kita cari. Contoh pemecahan masalah dari graf : 1 20 2 3 100 0 50 50 0 30 30 5 Gambar 1 Graf berarah dengan 5 buah simpul Misalkan akan dicari lintasan terpek dari simpul 1 ke simpul 6. Banyaknya kemungkinan lintasan dari simpul 1 ke simpul 6 ada 2x2x1= kemungkinan lintasan. Kemudian enumerasi dan evaluasi setiap kemungkinan tersebut. No. Lintasan Jarak Keterangan 1. 1-2-3-6 160-2. 1-2-5-6 180-3. 1--3-6 130 -. 1--5-6 100 Solusi Tabel 1. Pencarian lintasan terpek dengan algoritma exhaustive search. Algoritma ini akan memberikan solusi yang paling optimal untuk semua kasus graf dengan bobot yang tidak negatif. Akan tetapi, untuk jumlah simpul yang 6 1

banyak algoritma ini tidak mangkus karena membutuhkan waktu komputasi yang lama. 2.2 Algoritma Dijkstra dengan Menggunakan Prinsip Greedy Secara harfiah greedy artinya tamak atau rakus, secara bahasa, tamak dan rakus mengandung pengertian yang negatif, yaitu mengambil semua kemungkinan yang ada tanpa memikirkan kosekuensi ke depan. Prinsip dari greedy adalah ambil apa yang diperoleh sekarang. Prinsip ini digunakan untuk memecahkan solusi optimum tapi dalam konteks yang baik. Algoritma Greedy menyelesaikan masalah langkah per langkah. Dari berbagai langkah, diambil keputusan yang terbaik dalam menentukah langkah mana yang terbaik. Salah satu algoritma mencari lintasan terpek yang paling terkenal adalah algoritma Djikstra yang ditemukan oleh matematikawan Belanda, Edsger Wybe Djikstra pada tahun 1959. Algoritma Djikstra menggunakan prinsip greedy dalam menentukan lintasan terpeknya. Pada setiap langkah, ambil sisi yang berbobot minimum yang menghubungkan sebuah simpul yang sudah terpilih dengan sebuah simpul lain yang belum terpilih. Lintasan dari simpul asal ke simpul yang baru haruslah merupakan lintasan terpek diantara semua lintasannya yang belum terpilih. Berikut adalah langkah-langkah pencarian lintasan terpek menggunakan algoritma Djikstra : 1. Graf yang dibuat direpresentasikan dalam matriks ketetanggaan M=[m ij ]. m ij = bobot sisi (i,j) m ii = 0 m ij =, bila tidak ada lintasan dari simpul i ke simpul j. 2. Dibuat tabel S = [s i ] s i = 1, jika simpul i termasuk lintasan terpek. s i = 0, jika simpul i tidak termasuk dalam lintasan terpek. 3. Dibuat tabel keluaran D = [d i ], yaitu jarak dari simpul awal ke simpul tujuan. Skema umum algoritma Djikstra : Procedure Djikstra (G: graf berbobot terhubung sederhana, dengan semua bobot positif) {G mempunyai simpul a= v 0, v 1, v n =z dan bobot w(v i,v j ), dimana w(v i,v j ) = jika { v i,v j } bukan merupakan sisi di G} for i:= 1 to n L(v i):= L(a):= 0 S:= {Setiap simpul diinisialisasi sehingga simpul simpul a bernilai nol dan semua simpul lain bernilai, dan S adalah himpunan kosong} while z S begin u:= sebuah simpul bukan anggota S dengan L(u) minimum. S:= S {u} for semua simpul v yang bukan anggota S If L(u)+w(u,v) < L(v) then L(v):= L(u)+w(u,v) {menambahkan sebuah simpul ke S yang mempunyai jumlah bobot minimum, dan memperbarui simpulsimpul yang bukan di S}.. {L(z)=panjang lintasan terpek dari simpul a ke simpul z}. Contoh lihat graf pada gambar 1 1. Matriks ketetanggaan M dari graf tersebut : 1 2 3 5 6 1 0 100 0 2 0 20 50 3 0 0 50 0 5 30 0 30 6 0 Tabel 1 Matriks ketetanggaan 2. Lintasan terpek dari simpul 1 ke semua simpul dalam graf Simpul Simpul Lintasan asal Tujuan Terpek Jarak 1 2 1-2 100 1 3 1--3 90 1 1-70 1 5 1--5 0 1 6 1--5-6 100 2.3 Program Dinamis Tabel 2 Lintasan terpek Untuk menentukan semua pasangan lintasan terpek dalam graf berbobot dapat dipakai program dinamis. Misalkan G=(V,E) adalah graf dengan n buah simpul, dan C adalah bobot untuk G sedemikian sehingga C(i,i)=0, 1 i n, dan C(i,j) adalah bobot dari sisi <i,j> jika <i,j> E(G) dan C(i,j)= jika i j dan <i,j> E(G). Masalah pasangan lintasan terpek adalah menentukan matriks A sedemikian sehingga A(i,j) adalah panjang lintasan terpek dari i ke j. Definisikan A k (i,j) adalah panjang lintasan terpek dari i ke j yang tidak melalui simpul yang lebih besar dari k. A(i,j) dapat diperoleh : 2

A j) = min{min{ A 1 k n k) + A ( k, j)}, C( i, j)} (1) Oleh karena itu A 0 (i,j) = C(i,j), 1 i n, 1 j n. Rumus (1) dapat dituliskan : k A j) = min{ A k 1(2) j), A k) + A ( k, j)}, Berikut ini adalah prosedur untuk memperoleh semua pasangan lintasan terpek Procedure Semua_Lintasan(COST,A,n) {COST(n,n) adalah bobot dari graf dengan n buah simpul, A(i,j) adalah bobot lintasan terpek dari simpul i ke simpul j} {COST(i,i)=0, 1 i n} A(i,j):=COST(i,j) for k:=1 to n do {untuk setiap pasangan simpul yang mungkin} A(i,j):=min{A(i,j),A(i,k)+A(k,j)}. Contoh mencari semua pasangan lintasan terpek dengan menggunakan program dinamis dari graf : 6 1 2 11 3 2 3 Gambar 2 Graf berarah dengan 3 buah simpul Tabel yang dibangkitkan berdasarkan program dinamis : A (0) 1 2 3 3 3 0 A (1) 1 2 3 3 3 7 0 (b) A (2) 1 2 3 3 3 7 0 (c) A (3) 1 2 3 3 3 0 (d) Tabel 3 Pembangkitan lintasan terpek dengan program dinamis. 3. Perbandingan Algoritma untuk Mencari Lintasan Terpek Berdasarkan penjelasan pada pembahasan sebelumnya maka dapat dibandingkan dari ketiga algoritma pencari lintasan terpek sebagai berikut: : 3.1 Algoritma Brute-force Algoritma brute-force sebagai pencari lintasan terpek hanya cocok untuk jumlah simpul yang sedikit saja. Untuk jumlah simpul yang banyak akan dibutuhkan waktu komputasi yang lama. Keadaan paling buruk dari suatu graf jika suatu simpul mempunyai sisi ke semua simpul lain dalam graf tersebut, maka banyaknya kemungkinan lintasan dari satu simpul ke satu simpul lain pada graf tersebut adalah P( n 2, n 2) + P( n 2, n 3) + P( n 2, n ) + P( n 2,0) ( n 2)! ( n 2)! ( n 2)! = + + + 0! 1! 2! ( n 2)! + + 1 < n! 3! P(n,k) = Permutasi dari n-buah diambil k-buah. Sedangkan waktu untuk menghitung bobot setiap lintasan adalah n. Sehingga total waktu komputasi yang dibutuhkan dari algoritma brute-force tersebut adalah T(n)= O n n!. ( ) (a) 3

3.2 Algoritma Dijkstra a. Instruksi dalam kalang for pertama for i:= 1 to n Kompleksitas algoritmanya O(n). b.kalang bersarang kalang while z S dan kalang for semua simpul v kompleksitas algoritmanya O(n 2 ). Sehingga kompleksitas algoritma Dijkstra adalah O(n)+O(n 2 )= O(n 2 ). Algoritma Dijkstra hanya mencari lintasan terpek dari suatu simpul tertentu ke semua simpul lainnya. Sehingga untuk mencari semua pasangan simpul terpek, total waktu komputasinya adalah T(n)=n.O(n 2 )=O(n 3 ). 3.3 Program Dinamis a. Instruksi pada kalang for bersarang pertama : Memberikan kompleksitas algortima O(n 2 ). b. Instruksi pada kalang for bersarang kedua : for k:=1 to n do Memberikan kompleksitas algoritma O(n 3 ). Sehingga total waktu komputasi (kompleksitas algoritmanya) adalah O(n 2 ) + O(n 3 ) = O(n 3 ). Dari ketiga algoritma pencari lintasan terpek di atas, algoritma-algoritma tersebut mempunyai kekurangan dan kelebihan masing-masing. a. Algoritma brute-force selalu menghasilkan solusi yang optimal. Akan tetapi, algoritma ini hanya cocok untuk simpul yang sedikit, karena waktu komputasinya yang besar yaitu O(n.n!). b. Algoritma Dijkstra sama halnya dengan algoritma brute-force selalu menghasilkan solusi optimal. Yang membedakannya adalah bahwa algoritma ini waktu komputasinya lebih kecil yaitu O(n 2 ). Sehinnga untuk mencari lintasan terpek dari semua simpul total waktu komputasinya adalah n.o(n 2 )=O(n 3 ). c. Program dinamis selalu menghasilkan solusi yang optimal dengan waktu komputasi O(n 3 ). Jika pada algortima Dijkstra hanya mencari lintasan terpek dari satu ke semua simpul lain, maka pada program dinamis semua pasangan lintasan terpek dicari.. Aplikasi Algortima Mencari Lintasan Tercepat Menggunakan Teknologi Mobile Algoritma pencari lintasan terpek dapat diaplikasikan dalam kehidupan sehari-hari. Salah satu aplikasi yang menguntungkan adalah mencari lintasan terpek dan tercepat antar kota dalam suatu pulau. Permasalahan tersebut dapat dimodelkan sebagai berikut : Basis Data Ponsel 2 Server Ponsel 1 Gambar 3 Skema pemrosesann lintasan terpek dengan teknologi mobile Misalkan kota-kota tersebut berada di Pulau Jawa. Dalam basis data terdapat jarak dan waktu tempuh dari kota-kota tersebut. Di dalam server berisi program pencari lintasan terpek dengan menggunakan salah satu dari ketiga jenis algoritma yang telah dijelaskan sebelumnya, misalkan algoritma Dijkstra. Server juga terhubung dengan sebuah ponsel (ponsel 1 pada gambar 3) untuk menerima permintaan dari pengguna (ponsel 2) kemudian mengirimkan data berupa lintasan tercepat yang didapat dengan menggunakan algoritma Dijkstra. Teknologi yang digunakan di sini adalah teknologi SMS (Short Message Service). Ponsel 2 mengirimkan permintaan berupa SMS yang berisi kota asal dan kota tujuan ke ponsel 1. Ponsel 1 akan mengirimkan data ke server, kemudian server akan mengambil data yang berhubungan dengan permintaan, berupa semua kota yang terhubung dengan kota asal dan kota tujuan yang diminta. Data yang telah didapatkan akan diolah oleh server dengan algoritma Dijkstra. Server melalui ponsel 1 mengirimkan data keluaran berupa lintasan tercepat kota yang diminta ke ponsel 2. Basis data yang telah ada setiap saat dapat diubah sesuai dengan kondisi yang ada. Misalkan terdapat jalur baru yang menghubungkan dua buah kota, waktu tempuh yang mengalami perubahan, dan jarak. Sehingga dengan basis data yang dinamis dihasilkan keluaran yang lebih akurat. Aplikasi ini sangat cocok dipakai oleh para pengemudi yang akan bepergian dari satu kota ke

kota lain, sehingga efektivitas baik dari segi waktu maupun biaya perjalanan akan lebih optimal. 5. Kesimpulan Penggunaan ketiga algoritma yang telah dijelaskan sebelumnya, yaitu algoritma brute-force, algoritma Dijkstra, dan program dinamis disesuaikan dengan keadaan. Misalkan jumlah simpul yang sedikit walaupun dengan ketiga algortima dapat dipakai, akan tetapi lebih baik digunakan algoritma bruteforce, karena algoritmanya mudah dibuat. Jika suatu graf mempunyai simpul yang banyak, maka algoritma brute-force tidak cocok digunakan karena memerlukan waktu komputasi yang lama, sehingga algoritma Dijkstra dan program dinamis dapat dipergunakan dengan waktu komputasi yang sama yaitu O(n 3 ). Banyak sekali aplikasi dari ketiga algoritma ini yang sangat dibutuhkan dalam kehidupan sehari-hari, antara lain mencari jarak tercepat dari satu kota ke kota lain, perutean pada jaringan komputer, dll. Daftar Pustaka [1] http://www.cs.usak.ca/resources/tutorial. Diakses tanggal 18 Mei 2005. [2] Horowitz, Ellis and Sahni, Sartaj. Fundamentals of Computer Algorithms. Computer Science Press, Inc. USA: 1978. [3] Munir, Rinaldi. Diktat Kuliah IF 2251 Strategi Algoritmik. Laboraorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika ITB. Bandung: 2005. [] Rosen, H. Kenneth. Discrete Mathematics and its Applications. McGraw-Hill. USA: 1999. [5] Tugas Akhir Ika Swastika (10100063) Pencarian Jalur Tercepat pada Rute antar Kota di Pulau Jawa dengan Teknologi Mobile. 5