• Tidak ada hasil yang ditemukan

PENERAPAN ALGOITMA DIJKSTRA DALAM MENCAR

N/A
N/A
Protected

Academic year: 2018

Membagikan "PENERAPAN ALGOITMA DIJKSTRA DALAM MENCAR"

Copied!
7
0
0

Teks penuh

(1)

PENERAPAN ALGOITMA DIJKSTRA DALAM MENCARI LINTASAN TERPENDEK PADA JARINGAN KOMPUTER

Sri Mawarni

Teknik Elektro Politeknik Bengkalis Jl. Batin Alam, Sei-Alam, Bengkalis-Riau

mawar@polbeng.ac.id

Abstrak

Makalah ini membahas tentang salah satu penerapan teori graf dalam kehidupan yaitu penerapan algoritma Dijkstra (yang merupakan bagian teori dalam graf) pada jaringan komputer, jaringan komputer yang dimaksud pada makalah ini hanyalah secara umum (tidak termasuk jaringan internet). Dalam hal ini jaringan komputer digambarkan sebagai sebuah graf. Satu komputer dalam sebuah jaingan dianggap sebagai suatu simpul sedangkan kabel atau penghubung antar komputer dianggap sebagai sisi graf. Sisi didalam graf menyatakan saluran komunikasi (sering disebut link). Setiap sisi di-assign dengan sebuah label nilai yang disebut bobot atau weigh). Bobot tersebut dapat menyatakan jarak geografis (dalam kilometer), kecepatan transfer data, atau delai transmisi (waktu pengiriman). Setiap router memperlihatkan sebuah tabel yang disebut tabel rute (routing table). Tabel rute berisi router asal, router tujuan, dan simpul antara yang dilalui. Mencari lintasan terpendek dari router asal ke router tujuan dapat diartikan sebagai menentukan lintasan terpendek dari simpul asal ke simpul tujuan di graf yang mempresentasikan jaringan komputer tersebut. Algoritma Dijkstra adalah algoritma yang banyak digunakan untuk mencari lintasan terpendek. Tujuan pembuatan makalah ini adalah agar pembaca dapat mengerti dan mereprentasikan jaringan dalam bentuk graf. Dengan demikian pembaca dapat lebih mengerti mengenai aliran data dan juga hubungan antara satu komputer dengan komputer lain yang terjadi dalam satu jaringan.

Kata kunci : graf, jaringan komputer, algoritma Dijkstra.

1. PENDAHULUAN

Di era taknologi kini, jaringan komputer sudah sangat umum digunakan dalam berbagai aspek kehidupan masyarakat. Hampir setiap perusahaan atau institusi memiliki jaringan komputer yang berfungsi untuk mendukung aliran data dan informasi yang berlangsung dalam perusahaan atau institusi tersebut.

Jaringan komputer terdiri dari sejumlah komputer yang terhubung satu sama lain melalui saluran komunikasi (misalnya kabel, serat optic, gelombang mikro, gelombang radio). Antara satu komputer dengan komputer lain sering kali terpisah jauh secara geografis (antar kota atau antar negara) atau berada dalam wilayah yang sama (dalam satu gedung,

dalam satu area, dsb). Pesan yang dikirim dari satu komputer ke komputer lain umumnya dipecah menjadi sejumlah paket data yang berukuran lebih kecil. Saluran komunikasi yang digunakan untuk menghantarkan paket mempunyai keterbatasan kecepatan transmisi (umumnya kecepatan transmisi dinyatakan dalam satuan kbps-kilobit per second). Untuk menyampaikan paket data dari satu komputer ke komputer lainnya, sistem jaringan komputer harus dapat melakukan pemilihan rute yang tepat agar paket dapat sampai ke komputer tujuan dalam waktu yang cepat. Permasalahannya adalah bagaimana menentukan rute yang tepat sehingga paket data dapat sampai ke computer penerima dalam waktu yang sesingkat

(2)

paket data yang sampai ke suatu komputer dapat diarahkan ke komputer tetangga yang tepat sehingga paket menuju

komputer penerima dengan delai (delay) waktu yang minimum. Dengan kata lain, kita

harus menentukan lintasan terpendek yang akan dilalui oleh paket tersebut dari komputer pengirim ke komputer penerima. Perutean yang diharapkan adalah perutean adaptif (adaptive routing). Perutean adaptif bearti sistem jaringan komputer dapat menentukan rute baru apabila terjadi perubahan topologi jaringan (misalnya ada penambahan router

baru, kerusakan pada suatu router sehingga

router tersebut tidak bisa dilalui, atau perubahan kecepatan transmisi antar router)

Graf G didefinisikan sebagai pasangan himpunan (V, E) ditulis dengan notasi G = (V, E) yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (verticase atau node) dan E adalah

himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul.

Studi mengenai jaringan komputer ini sendiri juga semakin banyak dipelajari dan menjadi suatu topik yang menarik untuk dipelajari. Akan tetapi, karena perubahannya yang sangat pesat, orang-orang yang berusaha untuk melakukan studi-studi tersebut haruslah lebih sering memeriksa perkembangan baru apa saja yang telah terjadi dan diaplikasikan dalam jaringan komputer.

2. LANDASAN TEORI

2.1.Teori Graf

Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek sebagai noktah , bulatan atau titik, sedangkan hubungan antara objek dinyatakan dengan garis.

a. Definisi Graf

Secara matematis graf didefinisikan sebagai berikut :

b. Jenis-jenis graf.

Graf dapat dikelompokkan menjadi beberapa jenis tergantung dari sudut pandang pengelompokaknya.

-Graf sederhana (simple graph), yaitu graf yang tidak mengandung gelang maupun sisi ganda. Pada graf sederhana sisi adalah pasangan tak terurut (unordered pairs), jadi menuliskan sisi (u, v) sama saja dengan (v, u).

-Graf tak- sederhana (unsimple graph), yaitu graf yang mengandung sisi ganda atau gelang. Ada dua macam graf tak sederhana yaitu graf ganda dan graf semu. Graf ganda adalah graf yang mengandung sisi ganda. Sedangkan graf semu adalah graf yang mengandung gelang (loop).

Gambar 1.

Tiga buah graf : (a). graf sederhana, (b). graf ganda, dan (c). graf semu.

- Graf tak- berarah (undirected graph), yaitu graf yang sisinya tidak mempunyai orientasi arah. Pada graf tak berarah urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan, jadi (u, v) = (v, u).

Gambar 2.

(a). graf berarah, (b). graf ganda berarah

(3)

simpul v dinamakan smpul terminal (terinal vertex).

2.2. Definisi-definisi.

Graf merupakan sesuatu yang sangat penting dalam jaringan, dimana objek utamanya adalah kumpulan simpul dengan hubungan satu atau dua arah di antara simpul-simpul tersebut. Berikut adalah kumpulan definisi dan terminologi yang berkaitan dalam pembahasan lintasan terpendek.

Definisi 2.2.1. (Algoritma)

Algoritma adalah urutan logis langkah-langkah penyelesaian masalah yang disusun secara sistematis. Yang dapat dinyatakan secara deskriptif atau dengan bahasa pemograman.

Definisi 2.2.2. (Graf berbobot)

Graf berbobot adalah graf yang setiap sisi nya diberi sebuah harga (bobot).

Gambar 3. Graf Berbobot

.

Definisi 2.2.3. Lintasan (Path)

Lintasan yang panjangnya n dari simpul awal vo ke simpul tujuan vn di dalam graf G ialah barisan berselang-seling simpul-simpul dan sisi-sisi yang berbentuk v0, e1, v1, e2, v2, … , vn-1, en, vn, sedemikian sehingga e1 = (v0,v1), e2 = (v1,v2), … , en = (vn-1,vn) adalah sisi-sisi dari graf G.

Panjang lintasan adalah jumlah sisi dalam lintasan tersebut.

3. LINTASAN TERPENDEK

Persoalan mencari lintasan terpendek (shortest

path problem) dalam graf merupakan

persoalan optimasi.

Pencarian lintasan terpendek termasuk masalah yang paling umum dalam suatu

weighted-connected graph.

Yang akan dibahas di sini adalah algoritma Dijkstra yaitu mencari lintasan terpendek dari suatu verteks asal tertentu ke setiap verteks lainnya (algoritma ini juga berfungsi sangat optimal pada masalah singledestination).

3.1.Algoritma Dijkstra

Algoritma Dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan prinsip greedy yang menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukkannya ke dalam himpunan solusi. Input algoritma ini adalah sebuah graf berarah yang berbobot (weighted directed graph) G dan sebuah sumber vertex s dalam G dan V adalah himpunan semua vertices dalam graph G. Dalam naskah aslinya, algoritma Dijkstra diterapkan untuk mencari lintasan tependek pada graf berarah. Namun algoritma ini juga benar untuk graf tak-berarah. Algoritma Dijkstra dimulai dari sebuah simpul asal dan dalam setiap iterasinya menambahkan sebuah verteks lain ke lintasan terpendek pohon merentang. Verteks ini merupakan titik terdekat ke akar namun masih di luar bagian pohon.:

3.2. Jaringan Komputer

(4)

Tiap komputer, printer, atau periferal yang terhubung dengan jaringan disebut node. Sebuah jaringan komputer dapat memiliki dua, puluhan, ribuan atau bahkan jutaan node. Sebuah jaringan terdiri dari 2 atau lebih komputer yang saling berhubungan diantara satu dengan yang lain, dan saling berbagi sumber daya seperti printer, pertukaran file, atau memungkinkan untuk saling berkomunikasi secara elektronik.

Komputer yang terhubung tersebut, dimungkinkan berhubungan dengan media kabel, saluran telepon, gelombang radio, satelit, atau sinar infra merah.

4. HASIL DAN PEMBAHASAN

4.1. Analisa Algoritma Dijkstra.

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 terpendek diantara semua lintasannya ke simpul-simpul yang belum terpilih.

Selengkapnya algoritma Dijkstra adalah sebagai berikut :

1. Inisialisasi W berisi mula-mula hanya vs, field minpath tiap verteks v dengan Weight[vs, v], jika ada sisi tersebut, atau, +∞ jika tidak ada.

2. Lalu, dalam iterasi lakukan hingga (V-W) tak tersisa (atau dalam versi lain: jika ve ditemukan) dari field minpath tiap verteks cari verteks w dalam (V-W) yang memiliki minpath terkecil yang bukan tak hingga. Jika ada w maka masukkan w dalam W. Update minpath pada tiap verteks t adjacent dari w dan berada dalam (VW) dengan: minimum (minpath[t], minpath[w] + weight [w, t]).

2 5

Verteks-verteks dalam W dapat dibedakan dari verteks dalam (V-W) dengan suatu field yang

berfungsi sebagai flag atau dengan struktur liked-list. Informasi lintasan dapat diketahui dengan pencatatan predesesor dari setiap verteks yang dilakukan pada saat update harga minpath tersebut (fungsi minimum). Jika minpath[t] di-update dengan (minpath[w] + Weight [w, t]) maka predesesor dari t adalah w. Pada tahap inisialisasi predesesor setiap verteks diisi oleh vs. Algoritma Dijkstra membuat label yang menunjukkan simpul-simpul. Label-label ini melambangkan jarak dari simpul asal ke suatu simpul lain. Dalam graf, terdapat dua macam label, sementara dan permanen. Label sementara diberikan untuk simpul-simpul yang belum dicapai. Nilai yang diberikan untuk label sementara ini dapat beragam.

Label permanen diberikan untuk simpul-simpul yang sudah dicapai dan jarak ke simpul-simpul asal diketahui. Nilai yang diberikan untuk label ini ialah jarak dari simpul ke simpul asal.

Suatu simpul pasti memiliki label permanen atau label sementara. Tetapi tidak keduanya.

Gambar 4 :

(a). Simpul A berlabel sementara dengan jarak 0, (b). Simpul B berlabel permanen dengan jarak 5

(a) (b)

Algoritma dimulai dengan menginisialisasi simpul manapun di dalam graf (misalkan simpul A) dengan label permanen bernilai 0 dan simpul-simpul sisanya dengan label sementara bernilai 0.

(5)

Algoritma ini kemudian memilih nilai sisi terendah yang menghubungkan simpul dengan label permanent (dalam hal ini simpul A) ke sebuah simpul lain yang berlabel sementara (misalkan simpul B).

Kemudian label simpul B di-update dari label sementara menjadi label permanen. Nilai simpul B merupakan penjumlahan nilai sisi dan nilai simpul A.

Gambar 6 :

Nilai simpul B menjadi permanen

Langkah selanjutnya ialah menemukan nilai sisi terendah dari simpul dengan label sementara, baik simpul A maupun simpul B (misalkan simpul C).

Ubah label simpul C menjadi permanen, dan ukur jarak ke simpul A.

Gambar 7 :

Nilai simpul C berubah.

2 5

3 6

Proses ini berulang hingga semua label simpul menjadi permanen.

Gambar 8 :

Semua nilai simpul menjadi permanent

6

Lamanya waktu untuk menjalankan Algoritma Dijkstra pada suatu graf dengan E (himpunan sisi) dan V (himpunan simpul) dapat dinyatakan sebagai fungsi E dan V menggunakan notasi Big-O.

Waktu yang dibutuhkan algoritma Dijkstra untuk bekerja ialah sebesar O(V*log V + E). Implementasi paling sederhana dari algoritma Dijkstra ialah penyimpanan simpul dari suatu himpunan ke dalam suatu array atau list berkait.

4.1. Lintasan Terpendek dari Routing Jaringan Komputer.

Jaringan komputer dapat dimodelkan sebagai sebuah graf terhubung dengan setiap simpul menyatakan sebuah komputer bisa berupa terminal komputer atau router . Router adalah kompute yang didedikasikan untuk mengarahkan pesa, dalam hal ini di asumsikan simpul menyatakan router, sedangkan terminal komputer yang menyatakan end user dianggap cabang dari router). Sisi di dalam graf menyatakan saluran komunukasi (link), setiap sisi di-assign dengan sebuah label nilai (bobot atau weight). Bobot tersebut dapat menyatakan jarak geografis (dalam kilometer), kecepatan transfer data, atau delay transmisi (waktu pengiriman). Perhatikan gambar berikut ini : A

B

D

C 0

0

0 2

A

B

D

C 0

0 2

3

A

B

D

C 2 2

0 5

7

3

(6)

Gambar 9.

Jaringan Komputer

Lintasan terpendek yang dihasilkan dari algoritma Dijkstra (berdasarkan delai) untuk jaringan komputer pada gambar 9 ditabulasikan dalam tabel 1 berikut.

Tabel 1.

Lintasan TerpendekJaringan Komputer pada gambar .9. Router

Asal Router Tujuan

Lintasan

Hasil pembentukan tabel rute (berdasarkan hasil algoritma Djikstra) ditunjukkan pada gambar 10.

Gambar 10.

Jaringan Komputer Dengan Tabel Rute Pada Setiap Router.

5. KESIMPULAN

[a] Jaringan komputer dapat dimodelkan sebagai sebuah graf terhubung dengan setiap simpul menyatakan sebuah komputer.

[b] Menentukan lintasan terpendek pada routing jaringan komputer merupakan persoalan optimasi.

[c] Pencarian lintasan terpendek menggunakan graf berbobot.

[d] Algoritma Dijkstra merupakan algoritma yang paling sering digunakan dalam mencari lintasan terpendek, karena paling efisien (mangkus), tidak membutuhkan waktu yang banyak.

[e] Salah satu implementasi dari algoritma Dijkstra ialah penyimpanan simpul dari suatu himpunan ke dalam suatu array atau list berkait.

(7)

DAFTAR REFERENSI

Munir, R. 2005. Buku Teks Ilmu Komputer Matematika Diskrit”, Informatika. Bandung.

http://www.informatika

org/rinaldi/matdis/2007-2008/makalah (23 Juni 2008)

http://www.uty.ac.id/weekend-ti/suparman-mtmk%20diskret/matematika-diskrit-10.doc (23 Juni 2008)

http://www,rkaligi.net/php/algoritma djikstra-mencari jarak terpendek-11.html. (23 Juni 2008)

Gambar

Gambar 3. Graf Berbobot sumber vertex s dalam G dan V adalah
Gambar 8 : Semua nilai simpul menjadi permanent
Gambar 10.

Referensi

Dokumen terkait

dilakukan menunjukkan bahwa dari 12 aspek minat karir yang diungkap tes RMIB, hanya ada 3 aspek minat karir yang menunjukkan adanya perbedaan yang signifikan

Ada tiga aspek yang terdapat dalam Nilai-Nilai Dasar Perjuangan HMI untuk mewujudkan kerukunan hidup umat beragama di Indonesia,pertama, aspek ketauhidan (Ketuhanan Yang

3.3 Menganalisis prinsip perancangan, pembuatan, penyajian, dan pengemasan bahan pangan setengah jadi dari hasil peternakan (daging, telur, susu) dan perikanan

Penerbitan ini juga diharapkan dapat meluaskan lagi skop perbahasan agar tidak hanya berkisar terhadap kesalahan syariah dan kuasa mahkamah syariah tetapi mampu melihat

Hal ini berlaku pada tusing yang berupa kependekan kata, yang dikenal dengan istilah "sibra" (singkatan Braille). Catatan lebih lanjut mengenai sibra ini dapat dilihat pada

Pemilihan Umum pada tahun 2014 ada dua Pemilu yakni Pemilu Legislatif pada bulan April 2014 dan Pemilu Presiden dan Wakil Presiden pada bulan Juli 2014. Fenomena yang terjadi

Pendekatan kritis dapat dijadikan sebagai suatu alat untuk melihat bagaimana sensualitas dan tubuh perempuan begitu eksis dalam film horor di Indonesia, karena

Betonarme karkas yapı tasarımı için Türkiyede en çok kullanılan üç yazılım ( İdestatik Probina ve Sta4cad ) ile tasarlanan 6 farklı çok basit yapının sonuçları