• Tidak ada hasil yang ditemukan

Perbandingan Algoritma L-Deque Danalgoritma Greedy Dalam Menentukan Rute Terpendek Antar Tempat Wisata Di Kabupaten Tapanuli Tengah

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma L-Deque Danalgoritma Greedy Dalam Menentukan Rute Terpendek Antar Tempat Wisata Di Kabupaten Tapanuli Tengah"

Copied!
14
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Algoritma

Algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu (Barakbah, dkk, 2013).

Kata algoritma mempunyai asal kata dari nama penulis buku Arab yang terkenal

yaitu Abu Ja‟far Muhammad ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca oleh orang Barat menjadi algorism). Al-Khuwarizmi menulis buku yang berjudul Kitab al jabar wal-muqabala, yang artinya “Buku pemugaran dan pengurangan”. Dari judul buku

itu juga diperoleh akar kata “aljabar” (algebra). Perubahan kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran -sm berubah menjadi thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma (Munir, 2014).

2.1.1 Karakteristik Algoritma

Menurut Bapak “Analisa Algoritma” (Knuth, 1973) algoritma yang baik dan benar harus

memiliki karakteristik sebagai berikut :

1. Input : Sebuah algoritma harus memiliki nol input atau lebih dari pengguna sebagai data masukan untuk diolah.

(2)

3. Finiteness : Sebuah algoritma harus terbatas dan berhenti dari proses yang telah dieksekusi.

4. Defineteness : Sebuah Algoritma harus jelas dan tidak menimbulkan makna ganda (ambigious).

5. Effectiveness : Langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

2.2 Konsep Dasar Graph

Teori graph merupakan salah satu cabang ilmu matematika yang banyak diterapkan dalam bidang ilmu. Penerapannya diberbagai bidang seperti di bidang teknologi komputer, listrik, fisika, kimia, arsitektur, teknik sipil dan dibidang lainnya. Teori graph ini juga banyak digunakan dalam kehidupan sehari-hari seperti pengaturan lampu lalu lintas, travelling salesmen problem, jaringan jalan raya dan jalan yang menghubungkan setiap kotanya, penjadwalan matakuliah di kampus dan lain-lain.

2.2.1Definisi Graph

Graph G didefenisikan sebagai pasangan himpunan yang terdiri dari vertex ( V ) dan

edge ( E ) yang ditulis dengan notasi G = ( V, E ), di mana dalam hal ini V adalah suatu

himpunan tidak kosong dari vertex- vertex ( simpul atau node ) pada graph G dan E adalah suatu himpunan edge (sisi atau arcs) yang menghubungkan sepasang vertex pada graph. V tidak boleh kosong, sedangkan E boleh kosong (Ristono & Puryani, 2011).

Contoh graph dapat dilihat pada gambar 2.1.

e5

e4 e2

e3

Gambar 2.1 Graph dengan 4 vertex dan 5 edge (Chairani, 2015) Pada gambar 2.1 diatas Graph G = ( V, E ), di mana :

A B

D C

(3)

V = { A, B, C, D }

2. E adalah himpunan rusuk, garis atau edge dari G, yaitu E = { e1, e2, e3, e4, e5 }

2.2.2 Jenis- Jenis Graph

Graph dikelompokkan menurut ada tidaknya edge yang loop atau ganda, berdasarkan jumlah vertex, atau berdasarkan orientasi arah pada pada edge (arcs) ( Munir, 2014).

Dilihat dari ada tidaknya edge yang loop atau ganda pada suatu graph, maka secara umum graph dikelompokkan menjadi dua jenis :

1. Graph Sederhana (simple graph) adalah graph yang tidak memiliki edge yang paralel atau loop. Vertex-vertex pada graph sederhana dihubungkan dengan satu edge ke setiap vertex yang lain dan tidak ada edge yang vertex awal dan akhirnya sama. Contoh graph sederhana dapat dilihat pada gambar 2.2.

Gambar 2.2 Graph Sederhana ( Hayati & Yohanes, 2014 )

(4)

( a ) ( b )

Gambar 2.3 (a) Multigraph, (b) Graph Semu ( Hayati & Yohanes, 2014 ) Dilihat dari orientasi arah pada sisinya (edge), maka secara umum graph dikelompokkan menjadi dua yaitu :

1. Graph tidak berarah (undirected graph) adalah graph yang sisinya (edge) tidak mempunyai orientasi arah. Pada graph ini, urutan pasangan vertex yang dihubungkan oleh vertex tidak diperhatikan (Munir, 2014). Contoh graph tidak berarah dapat dilihat pada gambar 2.4.

Gambar 2.4 Graph Tidak Berarah (Chairani, 2015)

2. Graph berarah (directed graph atau digraph) adalah graph yang setiap sisinya (edge) diberikan orientasi arah. Pada graph berarah (u,v) dan (v,u) menyatakan dua buah edge berarah (arc) yang berbeda, dengan kata lain (u,v) ≠ (v,u). Untuk edge berarah (u,v), vertex u dinamakan vertex asal (initial vertex) dan vertex v

(5)

Gambar 2.5 Graph Berarah (Chairani, 2015) 2.2.3Graph Berbobot (Weighted Graph)

Graph berbobot adalah graph yang setiap sisinya (edge) diberi sebuah harga (bobot).

Bobot pada tiap edge dapat berbeda-beda bergantung pada masalah yang dimodelkan dengan graph. Bobot dapat menyatakan jarak antara dua buah kota, waktu tempuh pesan (message) dari sebuah simpul (vertex) komunikasi ke simpul (vertex) komunikasi lain (dalam jaringan komputer), ongkos produksi dan sebagainya (Munir, 2014). Contoh graph berbobot dapat dilihat ada Gambar 2.6.

Gambar 2.6 Graph Berbobot (Chairani, 2015) 2.3 Shortest Path

(6)

menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya.

Lintasan terpendek (shortest path) adalah jalur yang dilalui dari suatu vertex ke vertex lain dengan besar atau nilai pada edge yang jumlah akhirnya dari vertex awal ke

vertex akhir paling kecil. Lintasan terpendek adalah lintasan minimum yang diperlukan

untuk mencapai suatu tempat dari tempat lain. Lintasan minimum yang dimaksud dapat

Algoritma L-Deque adalah sebuah algoritma pencarian lintasan terpendek (shortest path) yang menggunakan konsep Linear list atau daftar linear. Deque disebut queue ganda atau double queue, di mana penambahan dan penghapusan elemennya dapat dilakukan pada

kedua ujung sisinya, tetapi tidak dapat dilakukan di tengah-tengah list.

Deque adalah sebuah daftar yang menggabungkan sifat-sifat dari antrian dan

tumpukan (stack). Deque adalah sebuah daftar yang dapat melakukan penambahan dan penghapusan yang mungkin di kedua ujung. Sebuah deque sudah tekenal digunakan dalam algoritma D'Esopo-Pape, algoritma ini disebut L-Deque. Dalam Q deque digunakan penambahan L-Deque pada kedua ujungnya, sementara penghapusan dilakukan di kepala. Deque ini dapat diartikan sebagai “Q antrian dan Q tumpukan" yang dihubungkan secara seri. (Gallo & Pallotino, 1986).

Algoritma L-Deque untuk mencari lintasan terpendek dapat dirumuskan sebagai berikut:

1. Masukkan semua vertex yang ada pada graph ke dalam daftar data deque.

(7)

3. Periksa semua vertex yang dapat dikunjungi dari vertex asal (keberangkatan) pada data deque, dan periksa setiap edge (u,v) yang ada pada graph dan tentukan d[v] untuk lintasan terpendek pertama dengan cara :

i. Hitung : d[v] > d[u] + edge [u] [v]

ii. Jika d[v] > d[u] + edge [u] [v], maka d[v] = d[u] + edge [u] [v].

Jika d[v] < d[u] + edge [u] [v], maka nilai d [v] pada vertex tersebut yang dipilih.

4. Dengan cara yang sama, ulangi langkah 3 untuk menentukan lintasan terpendek berikutnya sampai vertex yang ada dalam dalam data deque sama dengan null.

Pada poin no. 3 di atas menggunakan teknik relax, di mana d(v) disebut estimasi shortest path atau bobot upper bound sebuah shortest path dari vertex asal ke vertex

tujuan serta pada setiap edge dilakukan relax sekali. Contoh sederhana penyelesaian sebuah graph untuk menentukan rute terpendek menggunakan algoritma L-Deque dengan vertex awal A dan vertex akhir F dapat dilihat pada gambar 2.7 dibawah ini.

Vertex asal pada graph diatas ialah vertex A, tandai vertex tersebut dengan nilai 0

dan beri nilai inf (∞) pada vertex lainnya. Dapat dilihat pada gambar 2.8. 0/- 10 ∞/- 12 ∞ / -

(8)

Vertex yang dapat dikunjungi dari vertex A ialah vertex B dengan bobot jarak 6 dan

juga vertex C dengan bobot jarak 10. Hitung d[v] untuk vertex B, d[v] > d[u] + edge

[u][v], d[“B”] > d[“A”] + edge [“A”][“B”], d[“B”] > 0 + 6, inf > 6 sehingga didapat

d[“B”] = 6 dan Tukar nilai inf (∞) pada vertex B dan hitung untuk vertex C, d[v] > d[u] + edge [u][v], d[“C”] > d[“A”] + edge [“A”][“C”], d[v] > 0 + 10, inf > 10, sehingga

didapat d[“C”] = 6 dan tukar nilai inf (∞) pada vertex C. Dapat dilihat pada gambar 2.9.

Gambar 2.9 Graph Rute yang dipilih dari Vertex A ke Vertex B dan Vertex C Selanjutnya memilih edge yang dapat dikunjungi dari vertex B, yaitu BE dengan bobot jarak 17. Hitung d[v] untuk vertex E, d[v] > d[u] + edge [u][v], d[“E”] > d[“B”] + edge [“B”][“E”], d[“E”] > 6 + 17, inf > 23 sehingga didapat d[“E”] = 23 dan Tukar nilai

inf (∞) pada vertex E. Edge BD juga dapat dikunjungi dari vertex B dengan bobot jarak 9, hitung d[v] untuk vertex D, d[v] > d[u] + edge [u][v], d[“D”] > d[“B”] + edge

[“B”][“D”], d[“D”] > 6 + 9, inf > 15 sehingga didapat d[“D”] = 15 dan tukar nilai inf

pada vertex D. Dapat dilihat pada gambar 2.10.

(9)

Selanjutnya memilih edge yang dapat dikunjungi dari vertex C yaitu CD dengan bobot jarak 12. Hitung d[v] untuk vertex D, d[v] > d[u] + edge [u][v], d[“D”] > d[“C”] + edge [“C”][“D”], 15 > 10 + 12, 15 > 22 “tidak” sehingga nilai d[“D”] sebelumnya yang

diambil untuk vertex D. Edge CB juga dapat dikunjungi dari vertex C dengan bobot jarak 8, hitung d[v] untuk vertex B, d[v] > d[u] + edge [u][v], d[“B”] > d[“C”] + edge

[“C”][“B”], 6 > 10 + 8, 6 > 18 “tidak” sehingga nilai d[“B”] sebelumnya yang diambil

untuk vertex B. Dapat dilihat pada gambar 2.11.

Gambar 2.11 Graph Rute yang dipilih dari Vertex C ke Vertex B dan Vertex D Selanjutnya memilih edge yang dapat dikunjungi dari vertex D yaitu DE dengan bobot jarak 7. Hitung d[v] untuk vertex E, d[v] > d[u] + edge [u][v], d[“E”] > d[“D”] + edge [“D”][“E”], 23 > 15 + 7, 23 > 22 sehingga didapat d[“E”] = 22 untuk vertex E.

Edge DF juga dapat dikunjungi dari vertex D dengan bobot jarak 16, hitung d[v] untuk vertex F, d[v] > d[u] + edge [u][v], d[“F”] > d[“D”] + edge [“D”][“F”], d[“F”] > 15 + 16,

inf > 31 sehingga didapat d[“F”] = 31 dan tukar nilai inf pada vertex F. Dapat dilihat pada gambar 2.12.

(10)

Selanjutnya memilih edge yang dapat dikunjungi dari vertex E yaitu EF dengan bobot jarak 5. Hitung d[v] untuk vertex F, d[v] > d[u] + edge [u][v], d[“F”] > d[“E”] + edge [“E”][“F”], 31 > 22 + 5, 31 > 27 sehingga didapat d[“F”]= 27 untuk vertex F. Dapat

dilihat pada gambar 2.13.

Gambar 2.13 Graph Rute yang dipilih dari Vertex E ke Vertex F Hasil yang didapat dari contoh sederhana menentukan rute terpendek dengan algoritma L-Deque ialah :

AB = 6 (direct) AC = 10 (direct) AD = 15 = AB + BD

2.5 Algoritma Greedy

Algoritma Greedy adalah sebuah algoritma untuk menemukan solusi optimum dalam permasalahan optimasi dengan cara menyelesaikan masalah langkah demi langkah.

Solusi yang dibentuk pada algoritma Greedy pada setiap langkah sebagai berikut : 1. Pada setiap langkah yang diambil harus pilihan yang terbaik, di mana pilihan

yang telah diambil pada suatu langkah tidak dapat diubah pada langkah selanjutnya.

2. Pendekatan yang digunakan dalam algoritma Greedy yaitu dengan memilih optimum local pada setiap langkah.

Permasalahan optimasi dalam konteks algoritma Greedy disusun oleh elemen-elemen sebagai berikut :

1. Himpunan Kandidat

(11)

Himpunan ini berisi elemen–elemen pembentuk solusi. Pada permasalahan lintasan terpendek dalam graph, himpunan kandidat ini adalah himpunan vertex dari graph tersebut.

2. Himpunan Solusi

Himpunan ini berisi kandidat- kandidat yang terpilih sebagai solusi permasalahan. Himpunan ini merupakan himpunan bagian dari himpunan kandidat.

3. Fungsi Seleksi

Fungsi yang pada setiap langkah memilih kandidat yang paling mungkin untuk mendapatkan solusi optimal. Kandidat yang dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya.

4. Fungsi Kelayakan

Fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak.

5. Fungsi Objektif

Fungsi yang memaksimalkan dan meminumkan nilai solusi. Tujuannya untuk memilih satu saja solusi terbaik dari masing-masing anggota himpunan solusi. Dalam algoritma Greedy sebagian masalah tidak selalu berhasil memberikan solusi yang benar-benar optimum. Tetapi, algoritma Greedy pasti memberikan solusi yang mendekati (approximation) nilai optimum (Hayati & Yohanes, 2104).

Algoritma Greedy untuk mencari lintasan terpendek dapat dirumuskan sebagai berikut:

1. Periksa semua edge yang langsung bersisian dengan vertex a. Pilih edge yang bobotnya terkecil. Edge ini menjadi lintasan terpendek pertama, sebut saja L(1).

2. Tentukan lintasan terpendek kedua dengan cara sebagai berikut:

i. Hitung: d(i) = panjang L(1) + bobot edge dari vertex akhir L(1) ke vertex i yang lain.

ii. Pilih d(i) yang terkecil.

(12)

Jika bobot edge (a, i) lebih kecil daripada d(i), maka L(2) = L(1) U (edge dari vertex akhir L(i) ke vertex i)

3. Dengan cara yang sama, ulangi langkah 2 untuk menentukan lintasan terpendek berikutnya.

Contoh sederhana penyelesaian sebuah graph untuk menentukan rute terpendek menggunakan algoritma Greedy dengan vertex awal A dan vertex akhir F dapat dilihat pada gambar 2.7.

Lintasan terpendek pertama yang harus dipilih dari edge yang langsung bersisian dengan vertex A ialah vertex B (AB) dengan bobot 6, ditunjukkan pada gambar 2.14.

10 12

16 6 8 9 7

5 17

Gambar 2.14 Graph Rute yang dipilih dari Vertex A ke Vertex B Selanjutnya memilih edge yang berdekatan dengan edge AB, yaitu edge BD dengan bobot 9 sehingga bobot totalnya 15, edge BE juga berdekatan dengan edge AB dengan bobot 17 sehingga bobot totalnya 23. Jadi memilih edge BD karena mempunyai bobot lebih kecil, ditunjukkan pada gambar 2.15.

Gambar 2.15 Graph Rute yang dipilih dari Vertex B ke Vertex D Selanjutnya memilih edge yang berdekatan dengan edge BD, yaitu edge DF dengan

(13)

bobot 7 sehingga bobot totalnya 22. Jadi memilih edge DE karena mempunyai bobot lebih kecil, ditunjukkan pada gambar 2.16.

Gambar 2.16 Graph Rute yang dipilih dari Vertex D ke Vertex E Selanjutnya memilih edge yang berdekatan dengan edge DE, yaitu edge EF dengan bobot 5 sehingga bobot totalnya 27, ditunjukkan pada gambar 2.17.

(14)

Gambar

Gambar 2.1  Graph dengan 4 vertex dan 5 edge (Chairani, 2015)
Gambar 2.2  Graph Sederhana ( Hayati & Yohanes, 2014 )
Gambar 2.3 (a) Multigraph, (b) Graph Semu ( Hayati & Yohanes, 2014 )
Gambar 2.6 Graph Berbobot (Chairani, 2015)
+7

Referensi

Dokumen terkait

Nilai R Square yang ditujukan pada tabel di atas sebesar 0,635 artinya variabel pemberian kredit, kemampuan manajerial dan diferensiasi produk mampu menjelaskan

Hasil penelitian Njurumana (2009) melaporkan bahwa pada komunitas agroforestri mamar di Timor memiliki biodiversitas flora yang tinggi mencapai 112 jenis, terdiri

singkong dan jagung, hanya 1 kali dalam 1 minggu. Partisipan biasanya membeli ubi di pasar untuk dikonsumsi. Kemudian jenis sayuran yang dikonsumsi partisipan

Dalam kaitannya dengan dar al-’ahd atau dar al-shulh ada dua hal yang perlu diperhatikan: pertama , negara yang memaklumkan perang kepada Islam atau yang memusuhi umat Islam

Data yang diperoleh dari hasil recall pola makan 24 jam. dibandingkan dengan studi literatur Daftar

Adapun kalau mashlahah lebih besar dari mafsadah maka kemaslahatan harus diwujudkan. Kalau terjadi kesamaan maka dikembalikan pada ijtihad. Beberapa contoh kasus terkait

viskositas terhadap tegangan tembus dan arus bocor berbagai minyak

Bagi guru, diharapkan pembelajaran matematika interaktif berbasis komputer ini dapat membantu guru dalam menyampaikan materi matematika pada siswa dan dapat menciptakan