BAB II LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

= himpunan tidak-kosong dan berhingga dari simpul-simpul (vertices) = himpunan sisi (edges) yang menghubungkan sepasang simpul

BAB 2 LANDASAN TEORI

Diktat Algoritma dan Struktur Data 2

BAB 2 LANDASAN TEORI

Aplikasi Teori Graf dalam Pencarian Jalan Tol Paling Efisien

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah.

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Pemanfaatan Directed Acyclic Graph untuk Merepresentasikan Hubungan Antar Data dalam Basis Data

BAB 2 LANDASAN TEORI

Studi dan Implementasi Struktur Data Graf

BAB II TINJAUAN PUSTAKA

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI. Menurut Schroeder (2000) Penjadwalan dapat didefinisikan sebagai suatu

BAB 2 TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN METODE TABU SEARCH

BAB 2 LANDASAN TEORI

Metode Pencarian & Pelacakan dengan Heuristik

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

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

APLIKASI PEWARNAAN SIMPUL GRAF UNTUK MENGATASI KONFLIK PENJADWALAN MATA KULIAH DI FMIPA UNY

BAB 2 LANDASAN TEORI

PENGEMBANGAN APLIKASI UNTUK MEMPERMUDAH PENCARIAN RUMAH SAKIT UMUM DENGAN ALGORITMA TABU SEARCH

PENENTUAN RUTE TERPENDEK PADA OPTIMALISASI JALUR PENDISTRIBUSIAN BARANG DI PT. X DENGAN MENERAPKAN ALGORITMA FLOYD-WARSHALL

Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Demak Semarang. Kend al. Salatiga.

G r a f. Pendahuluan. Oleh: Panca Mudjirahardjo. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

Elvira Firdausi Nuzula, Purwanto, dan Lucky Tri Oktoviana Universitas Negeri Malang

MENENTUKAN LINTASAN TERPENDEK SUATU GRAF BERBOBOT DENGAN PENDEKATAN PEMROGRAMAN DINAMIS. Oleh Novia Suhraeni 1, Asrul Sani 2, Mukhsar 3 ABSTRACT

BAB 2 LANDASAN TEORI. Definisi Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini:

BAB 2 LANDASAN TEORI

Penerapan Travelling Salesman Problem dalam Penentuan Rute Pesawat

Graf. Program Studi Teknik Informatika FTI-ITP

Aplikasi Algoritma Prim dalam Penentuan Pohon Merentang Minimum untuk Jaringan Pipa PDAM Kota Tangerang

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

STUDI PERBANDINGAN ALGORITMA CHEAPEST INSERTION HEURISTIC DAN ANT COLONY SYSTEM DALAM PEMECAHAN TRAVELLING SALESMAN PROBLEM

BAB 2 LANDASAN TEORI

Penerapan Graf dalam Optimasi Jalur Penerbangan Komersial dengan Floyd-Warshall Algorithm

Penerapan Teori Graf Pada Algoritma Routing

Pencarian Lintasan Hamilton Terpendek untuk Taktik Safe Full Jungle Clear dalam Permainan League of Legends

Representasi Graf dalam Jejaring Sosial Facebook

BAB I PENDAHULUAN. 1.1 Latar Belakang

LATIHAN ALGORITMA-INTEGER

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Kode MK/ Matematika Diskrit

PENYELESAIAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN METODE SIMPLE HILL CLIMBING

Graf. Matematika Diskrit. Materi ke-5

BAB III KONSEP DASAR TEORI GRAF. Teori graf adalah salah satu cabang matematika yang terus berkembang

PENYELESAIAN MASALAH ALIRAN MAKSIMUM DENGAN MENGGUNAKAN ALGORITMA DIJKSTRA DAN ALGORITMA FORD-FULKERSON TUGAS AKHIR

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. Persoalan lintasan terpanjang (longest path) merupakan persoalan dalam mencari

Aplikasi Pewarnaan Graf untuk Sistem Penjadwalan On-Air Stasiun Radio

PENDAHULUAN MODUL I. 1 Teori Graph Pendahuluan Aswad 2013 Blog: 1.

BAB 2 TINJAUAN PUSTAKA

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

BAB II LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

Pendeteksian Deadlock dengan Algoritma Runut-balik

Struktur dan Organisasi Data 2 G R A P H

Penerapan Algoritma Steiner Tree dalam Konstruksi Jaringan Pipa Gas

ANALISIS ALGORITMA ANT SYSTEM (AS) PADA KASUS TRAVELLING SALESMAN PROBLEM (TSP)

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penentuan Rute Terpendek Tempat Wisata di Kota Tasikmalaya Dengan Algoritma Floyd-warshall

Penerapan Graf pada PageRank

TEORI GRAF UNIVERSITAS MUHAMMADIYAH JEMBER ILHAM SAIFUDIN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK. Selasa, 13 Desember 2016

BAB II TINJAUAN PUSTAKA

Aplikasi Shortest Path dalam Strategy Game Mount & Blade: Warband

BAB II KAJIAN PUSTAKA. Sebuah graf G didefinisikan sebagai pasangan himpunan (V,E), dengan V

BAB 2 LANDASAN TEORI

Graf dan Pengambilan Rencana Hidup

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

Mata Kuliah Penelitian Operasional II OPERATIONS RESEARCH AN INTRODUCTION SEVENTH EDITION BY HAMDY A. TAHA BAB 6.

PENERAPAN GRAF DAN POHON DALAM SISTEM PERTANDINGAN OLAHRAGA

Deteksi Wajah Menggunakan Program Dinamis

Perancangan Sistem Transportasi Kota Bandung dengan Menerapkan Konsep Sirkuit Hamilton dan Graf Berbobot

APLIKASI SIMULATED ANNEALING UNTUK MENYELESAIKAN TRAVELLING SALESMAN PROBLEM

BAB 2 LANDASAN TEORI 2.2. Algoritma A* (A Star)

Transkripsi:

BAB II LANDASAN TEORI 2.1 Teori Graf 2.1.1 Defenisi Graf Graf G didefenisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G = (V,E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (vertices atau node) dan E adalah himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul (Munir, 2009). Simpul pada graf dapat dinomori dengan huruf, seperti a,b,c,d,..., atau dengan bilangan asli 1,2,3, atau juga gabungan dengan keduanya. Sedangkan untuk sisi yang menghubungkan antara simpul u dan v dinyatakan dengan (u,v) atau dapat dinyatakan dengan lambang e 1, e 2,e 3, dengan 1,2,3 adalah indeks. Dapat dikatakan bahwa jika e merupakan sisi yang menghubungkan simpul u dengan v, maka e dapat ditulis sebagai e = (u,v). Dalam aplikasinya, setiap simpul pada graf dapat dijadikan sebagai objek kehidupan, yaitu sebagai objek titik jaringan pesan atau komunikasi, lokasi penempatan kerja, titik kota, jalur transportasi dan lain sebagainya. Sedangkan untuk sisi graf dijadikan sebagai bobot jarak, waktu, biaya dan kendala lainnya. Dan juga busur (arcs) adalah yang menunjukan hubungan atau relasi dari sepasang simpul.

9 2.1.2 Jenis Graf Berdasarkan orientasi arah pada sisi dan bobotnya, maka secara umum graf dibedakan atas empat jenis : 1. Graf tidak berarah dan berbobot (undirected graph) Graf yang setiap sisinya tidak mempunyai arah anak panah tetapi memiliki bobot pada setiap sisinya. Urutan pasangan simpul yang terhubung oleh sisi tidak diperhatikan. Sehingga (u,v) = (v,u) adalah sisi yang sama. Sehingga graf tak berarah sering dipakai pada jaringan saluran telepon karena sisi pada graf tak berarah menyatakan bahwa saluran telepon dapat beroperasi pada dua arah. Perhatikan contoh graf tak berarah pada Gambar 2.1 dengan enam buah simpul dan sebelas buah sisi. A 3 8 5 D 1 7 4 B 2 6 E 3 10 C 6 F Gambar 2.1 Graf tak berarah dan berbobot 2. Graf berarah dan berbobot (directed graph) Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Secara umum sisi berarah disebut dengan busur (arc). Pada graf berarah (u,v) dan (v,u) menyatakan dua buah busur yang berbeda, dalam arti kata bahwa (u,v) (v,u). Jadi

10 untuk busur (u,v) simpul u dinamakan simpul asal dan simpul v dinamakan simpul terminal atau simpul tujuan. Graf berarah sering dipakai untuk menggambarkan aliran proses, peta lintas kota dan lain sebagainya. Sehingga pada graf berarah gelang atau looping diperbolehkan tetapi sisi ganda tidak diperbolehkan. Perhatikan contoh graf berarah pada Gambar 2.2 dengan enam buah simpul dan sebelas buah sisi. A 3 8 5 D 1 7 B 4 2 6 E 3 10 C 6 F Gambar 2.2 Graf berarah dan berbobot 3. Graf tidak berarah dan tidak berbobot Graf yang setiap sisinya tidak mempunyai arah dan tidak mempunyai bobot apapun. Perhatikan contoh graf tidak berarah dan tidak berbobot pada Gambar 2.3 A D B E C F Gambar 2.3 Graf tidak berarah dan tidak berbobot

11 4. Graf berarah dan tidak berbobot Graf yang setiap sisinya mempunyai arah tetapi tidak mempunyai bobot apapun. Perhatikan contoh graf berarah dan tidak berbobot pada Gambar 2.4 A D B E C F Gambar 2.4 Graf berarah dan tidak berbobot 2.1.3 Representasi Graf Terdapat beberapa cara mempresentasikan graf, tiga diantaranya yang sering digunakan adalah matriks ketetanggaan, matriks bersisian dan senarai ketetanggaan. 1. Matriks Ketetanggan (adjacency matrix) Misalkan G = (V,E) adalah graf dengan n simpul, n 1. Matriks ketetanggaan G adalah matriks yang berukuran n n. Bila matriks tersebut dinamakan A a ], maka a 1 jika simpul i dan j bertetangga atau terhubung, sebaliknya 0 ij jika simpul i dan j tidak bertetangga atau tidak terhubung. Matriks bertetanggaan hanya berisi 0 dan 1, selain dengan angka 0 dan 1, elemen matriks dapat juga dinyatakan dengan nilai false (menyatakan 0) dan true (menyatakan 1). a ij [ ij

12 Matriks ketetanggaan nol-satu tidak dapat digunakan untuk mempresentasikan graf yang mempunyai sisi ganda (graf ganda). Untuk graf semu, gelang pada simpul dinyatakan dengan nilai 1 pada matriks tetanggaannya. Tabel matriks ketetanggaan untuk graf ABCDEF dapat dilihat pada Tabel 2.1 A B C D E F A 0 1 1 1 0 0 B 0 0 0 1 1 0 C 0 1 0 0 0 1 D 0 0 0 0 1 1 E 0 0 1 0 0 0 F 0 0 0 0 1 0 Tabel 2.1 Matriks Tetanggaan Graf ABCDEF Jumlah elemen matriks ketetanggaan untuk graf dengan n simpul atau titik adalah 2 n. Jika setiap elemen membutuhkan ruang memori sebesar N, maka ruang memori yang diperlukan seluruhnya adalah 2 N n. Pada graf tidak berarah : a. Ruang memori yang diperlukan adalah 2 n n 2 b. Derajat simpulnya adalah d( v i ) a ij Pada graf berarah : n j 1 a. Jumlah nilai pada baris i d out a ij n j 1 b. Jumlah nilai pada kolom j d in a ij n i 1 2. Matriks Bersisian (incidency matrix)

13 Matriks bersisian menyatakan kebersisian simpul dengan sisi. Misalkan G = (V,E) adalah graf dengan n simpul dan m buah sisi. Matriks bersisian G adalah matriks yang berukuran n m. Baris menunjukkan label simpul, sedangkan kolom menunjukkan label sisi. Bila matriks tersebut dinamakan A a ], maka 1 jika simpul i bersisian dengan j, sebaliknya a 0 jika simpul i tidak bersisian dengan simpul j. ij [ ij a ij Matriks bersisian dapat digunakan untuk mempresentasikan graf yang mengandung sisi ganda atau sisi gelang. Derajat setiap simpul i dapat dihitung dengan menghitung jumlah seluruh elemen pada baris i (kecuali pada graf yang mengandung gelang atau looping). Jumlah elemen matriks bersisian adalah n m. Jika setiap elemen membutuhkan ruang memori sebesar N, maka ruang memori yang diperlukan seluruhnya adalah N n m. Perhatikan Gambar 2.5 menunjukkan graf berarah yang terdiri dari 6 simpul dan 10 sisi serta Tabel 2.2 yang menunjukkan matriks bersisian untuk graf ABCDEF. B e 1 A e 3 e 10 e 4 e 2 C e 5 E e 8 e 9 D e 7 F e 6 Gambar 2.5 Graf berarah ABCDEF e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e 10 A 1 0 0 1 0 0 0 0 0 0 B 0 0 1 0 0 0 0 0 0 0 C 0 1 0 0 1 0 0 0 0 0

14 D 0 0 0 0 0 0 0 1 0 0 E 0 0 0 0 0 0 0 0 1 1 F 0 0 0 0 0 1 1 0 0 0 Tabel 2.2 Matriks bersisian graf ABCDEF 3. Senarai Ketetanggaan (adjacency list) Jika dilihat dari segi implementasinya terhadap komputer matriks tetanggaan memiliki kebutuhan ruang memori yang boros. Hal ini dikarenakan matriksnya memiliki banyak elemen nol sedangkan didalam komputer elemen nol tidak perlu disimpan. Untuk mengatasi hal tersebut maka senarai ketetanggaan yang lebih baik. Senarai ketetanggaan mengurutkan simpul-simpul yang bertetangga dengan setiap simpul di dalam graf. Sebagai contoh perhatikan senarai ketetanggaan gambar 1.1 pada bab 1. 2.2 Permasalahan Optimasi Secara umum pencarian jalur terpendek dapat dibagi menjadi dua metode, yaitu metode konvensional dan metode heuristik. Metode konvensional diterapkan dengan menggunakan perhitungan matematika murni, sedangkan metode heuristik diterapkan dengan menggunakan perhitungan kecerdasan buatan. 1. Metode Konvensional Metode konvensional adalah metode yang diterapkan menggunakan perhitungan matematika murni. Ada beberapa metode konvensional yang sering digunakan untuk menyelesaikan masalah optimasi, diantaranya: algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman-Ford. 2. Metode Heuristik Metode heuristik adalah salah satu dari bidang kecerdasan buatan yang digunakan untuk menyelesaikan masalah optimasi. Terdapat beberapa algoritma dari metode heuristik yang sering digunakan dalam permasalahan

15 optimasi, diantaranya adalah algoritma genetika, algoritma pencarian tabu, jaringan saraf tiruan, algoritma semut dan lain-lain. 2.2.1 Permasalahan Lintasan Terpendek (Shortest Path Problem) Menurut Munir, 2009 persoalan lintasan terpendek di dalam graf merupakan salah satu persoalan optimasi. Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph), yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat dinyatakan sebagai jarak antar kota, waktu pengiriman pesan dan lain-lain. Dengan kata lain lintasan terpendek merupakan suatu jaringan atau kerangka jalur petunjuk perjalanan dari suatu simpul atau titik ke simpul lainnya atau yang menjadi tujuan perjalanan dengan beberapa pilihan jalur yang mungkin untuk di jalani. Gambar 2.6 menunjukkan graf berarah ABCDEF dan tidak berberbobot. A D C F B E Gambar 2.6 graf berarah ABCDEF Dapat dilihat pada Gambar 2.6 untuk malakukan suatu perjalanan dari simpul awal A ke simpul tujuan F, maka terdapat beberapa pilihan jalur yang mungkin untuk di tempuh, yaitu : Jalur ke-1 : A B C F Jalur ke-2 : A B E F Jalur ke-3 : A C F Jalur ke-4 : A D E F

16 Jalur ke-5 : A D E F Dari uraian jalur diatas dapat ditentukan jalur atau lintasan terpendek dengan mencari jarak suatu jalur antara simpul-simpulnya kemudian membandingkan dengan jarak pada jalur yang lain dan menentukan total jarak yang terpendek atau yang paling kecil. 2.3 Algoritma Tabu Search (TS) Tabu Search merupakan salah satu algoritma yang berada dalam ruang lingkup metode heuristik. Algoritma ini menggunakan short-term memory untuk menjaga agar proses pencarian tidak terjebak pada nilai optimum lokal. Algoritma ini menggunakan tabu list untuk menyimpan sekumpulan solusi yang baru saja dievaluasi. Selama proses optimasi, pada setiap iterasi, solusi yang akan dievaluasi akan dicocokkan terlebih dahulu dengan isi tabu list untuk melihat apakah solusi tersebut sudah ada pada tabu list. Apabila solusi tersebut sudah ada pada tabu list, maka solusi tersebut tidak akan dievaluasi lagi pada iterasi berikutnya. Dan jika sudah tidak ada lagi solusi yang tidak akan menjadi anggota tabu list, maka nilai terbaik yang baru saja diperoleh merupakan solusi yang sebenarnya. Beberapa elemen utama pada Tabu Search adalah sebagai berikut : 1. Representasi solusi : setiap solusi yang mungkin pada suatu permasalahan optimasi harus direpresentasikan. 2. Fungsi cost : setiap fungsi cost akan memetakan setiap solusi yang mungkin ke nilai cost-nya 3. Neightbourhood (tetangga) : suatu fungsi yang memetakan setiap solusi yang mungkin ke solusi-solusi yang lainnnya. 4. Tabu list : suatu list atau daftar yang berisi solusi gerakan terakhir. 5. Jumlah elemen yang harus ada pada suatu solusi. Algoritma Tabu Search secara garis besar dapat ditulis sebagai berikut :

17 Langkah 0 : Tetapkan : X = Matriks input berukuran (n x m). MaxItr = Maksimum Iterasi. Langkah 1 : S = bangkitkan solusi secara random. Langkah 2 : GlobalMin = FCost(S). Langkah 3 : Best = S. Langkah 4 : TabuList = [ ]. Langkah 5 : Kerjakan dari k = 1 sampai MaxItr: Langkah 6 : BestSoFar = Cost. Langkah 7 : BestMove = S. Langkah 8 : Kerjakan dari i = 1 sampai MaxItr: Langkah 9 : Kerjakan dari j = i sampai n: Langkah 10: L = Tukar(S[i],S[j]). Langkah 11: Cost = FCost(L). Langkah 12: Jika(L TabuList)atau(Cos<GlobalMin),kerjakan : Langkah 13: Jika (Cost < BestSoFar), kerjakan : Langkah 14: BestSoFar = Cost. Langkah 15: BestMove = L. Langkah 16: S = BestMove. Langkah 17: Tambahkan S ke Tabu List. Langkah 18: Jika BestSoFar < GlobalMin, kerjakan : Langkah 19: GlobalMin = BestSoFar. Langkah 20: Best = BestMove. Solusi Akhir adalah Best, dengan cost sebesar GlobalMin. Contoh penyelesaian kasus Travelling Sales Problem menggunakan algoritma TS : Misalkan pada kasus ini jalur yang ditetapkan dimulai dari kota ke-5 dan berakhir di kota ke-2. Menggunakan TS dengan maksimum 6 iterasi. Perhatikan Gambar 2.7 graf tidak berarah dan tidak berbobot 123456 dan Tabel 2.3 Matriks jarak antar titik. 1 3 2 4 6 5 Gambar 2.7 graf tidak berarah 123456

18 1 2 3 4 5 6 1 0 20 21 25 30 36 2 20 0 25 21 36 30 3 21 25 0 10 11 18 4 25 21 10 0 18 11 5 30 36 11 18 0 20 6 36 30 18 11 20 0 Tabel 2.3 Matriks jarak pada graf tidak berarah 123456 Jalur awal : 5 1 3 4 6 2 Panjang jalur = 102 Iterasi ke-1 : Tabu List : 5 1 3 4 6 2 Panjang jalur = 102 Tetangga (Jalur alternatif berikutnya) : Jalur ke-1 : 5 3 1 4 6 2 Panjang jalur = 98 BestSoFar = 98 Jalur ke-2 : 5 4 3 1 6 2 Panjang jalur = 115 Jalur ke-3 : 5 6 3 4 1 2 Panjang jalur = 93 BestSoFar = 93 Jalur ke-4 : 5 1 4 3 6 2 Panjang jalur = 113 Jalur ke-5 : 5 1 6 4 3 2 Panjang jalur = 112 Jalur ke-6 : 5 1 3 6 4 2 Panjang jalur = 101 BestSoFar = 93, yaitu pada jalur ke-3 diterima sebagai GlobalMin GlobalMin = 93 Iterasi ke-2 : Tabu List : 5 1 3 4 6 2 Panjang jalur = 102 5 6 3 4 1 2 Panjang jalur = 93

19 Tetangga (Jalur alternatif berikutnya) : Jalur ke-1 : 5 3 6 4 1 2 Panjang jalur = 85 BestSoFar = 85 Jalur ke-2 : 5 4 3 6 1 2 Panjang jalur = 102 Jalur ke-3 : 5 1 3 4 6 2 Panjang jalur = 102 Jalur ke-4 : 5 6 4 3 1 2 Panjang jalur = 82 BestSoFar = 82 Jalur ke-5 : 5 6 1 4 3 2 Panjang jalur = 116 Jalur ke-6 : 5 6 3 1 4 2 Panjang jalur = 105 BestSoFar = 82, yaitu pada jalur ke-4 diterima sebagai GlobalMin GlobalMin = 82 Iterasi ke-3 : Tabu List : 5 1 3 4 6 2 Panjang jalur = 108 5 6 3 4 1 2 Panjang jalur = 93 5 6 4 3 1 2 Panjang jalur = 82 Tetangga (Jalur alternatif berikutnya) : Jalur ke-1 : 5 4 6 3 1 2 Panjang jalur = 88 Jalur ke-2 : 5 3 4 6 1 2 Panjang jalur = 88 Jalur ke-3 : 5 1 4 3 6 2 Panjang jalur = 113 Jalur ke-4 : 5 6 3 4 1 2 Panjang jalur = 93 Jalur ke-5 : 5 6 1 3 4 2 Panjang jalur = 108 Jalur ke-6 : 5 6 4 1 3 2 Panjang jalur = 101 GlobalMin = 82 Seterusnya hingga 6 iterasi, dan pada iterasi ke-2 akan diperoleh suatu jalur terpendek, yaitu : Jalur ke-4 : 5 6 4 3 1 2 Panjang jalur = 82

20 2.4 Kompleksitas Algoritma Algoritma adalah urutan logis langkah-langkah penyelesaian masalah secara sistematis. Sebuah algoritma tidak saja harus benar tetapi juga harus efisien (Munir, 2009). Efisiensi algoritma dinilai berdasarkan kecepatan waktu eksekusi dan penggunaan struktur data yang menyebabkan banyaknya ruang memori komputer yang terpakai. 2.4.1 Efficiency Algoritma Algorima yang terbaik adalah bukan karena algoritma itu harus benar, akan tetapi juga harus di pandang dari efisiensinya. Jadi algoritma yang terbaik adalah algoritma yang efisien dalam penggunaan waktu eksekusi dan ruang memori komputer. Efisiensi algoritma juga berguna dalam membandingkan algoritma. sebuah masalah dapat mempunyai lebih dari satu jenis algoritma. Misalkan untuk masalah pengurutan data dalam array, dapat digunakan berbagai macam algoritma seperti: bubble sort, selection sort, merge sort dan lain-lain. 2.4.2 Kebutuhan Waktu dan Ruang Kebutuhan waktu suatu algoritma biasanya dihitung dalam satuan detik, milidetik dan lain sebagainya. Sedangkan untuk ruang memori yang digunakan dapat dihitung dalam satuan byte atau kilobyte. Biasanya seorang pengguna algoritma mengukur kebutuhan waktu sebuah algoritma dengan mengeksekusi langsung algoritma tersebut pada sebuah komputer, lalu dihitung berapa lama durasi waktu yang dibutuhkan untuk menyelesaikan sebuah persoalan yang berbeda-beda. Keakuratan waktu eksekusi algoritma dapat diperoleh dengan tidak menghitung kebutuhan waktu untuk menampilkan antarmuka program, operasi input/output dan sebagainya. Sehingga akan dihitung bagian inti dari programnya saja.

21 2.4.3 Kompleksitas Waktu Setelah siap untuk menjalankan suatu program maka untuk mengukur kompleksitas waktunya adalah dengan menghitung banyaknya operasi yang dilakukan oleh algoritma, seperti: operasi penjumlahan, pengurangan, perkalian, pembagian dan lain sebagainya. Namun yang paling idealnya adalah cukup menghitung berapa kali operasi yang sama terjadi secara berulang dan mencatat waktu yang terjadi selama eksekusi.