Teknik Routing Dengan Strategi Algoritma

Teknik Routing Dengan Strategi Algoritma Backtracking Dalam
Sistem Jaringan Komputer
Fajar Sudrajat / 1234015008, Firman Firdaus / 1234015015
Program Studi Teknik Informatika UPN Veteran Jatim
Jl. Raya Rungkut Madya, Gunung Anyar, Jawa Timur 60294, Indonesia
e-mail : 80fsudrajat@gmail.com / dudung.mamang@yahoo.com

ABSTRAK
Salah satu teknologi sistem jaringan komputer yang sedang berkembang pesat saat ini adalah
Internet. Untuk membangun sebuah jaringan Internet dibutuhkan suatu mekanisme routing yang
digunaka untuk mengintegrasikan seluruh komputer dengan tingkat fleksibilitas yang tinggi. Routing
merupakan bagian utama dalam memberikan suatu performansi dalam jaringan. Oleh sebab itu,
perancanaan teknik routing dengan routing algorithm menjadi penting untuk pengelolaann pada
sebuah jaringaan computer. Dalam jaringan komputer, routing adalah proses untuk menentukan jalur
komunikasi antara sumber dan tujuan dari sebuah paket. Routing adalah fungsi utama dari network
layer dalam OSI Reference Model. Pada kebanyakan jaringan komputer, sebuah paket data
memerlukan banyak loncatan antarhost untuk mencapai tujuan. Selama terdapat jalur fisik antara
kedua mesin, sebuah algoritma routing harus dapat memastikan bahwa data yang dikirim dari mesin
sumber diterima oleh mesin tujuan. Backtracking adalah algoritma yang berbasis pada algoritma
DFS (Depth-First Search) yang dapat mencari solusi sebuah persoalan dengan lebih mangkus.
Algoritma ini dapat menemukan solusi sebuah persoalan tanpa perlu memeriksa semua

kemungkinan solusi dan hanya mempertimbangkan pencarian yang mengarah ke solusi. Makalah ini
memaparkan penerapan algoritma backtracking sebagai algoritma routing pada jaringan komputer.
Kata kunci: Routing algorithm, backtracking, DFS, jaringan komputer.

I.

PENDAHULUAN
Pada saat ini, persoalan routing
pada jaringan komputer termasuk
jenis persoalan dengan instansiasi
yang besar. Dimana kini seluruh dunia
sudah terhubung dengan jaringan
internet yang memiliki milyaran titik
yang sudah tentu membutuhkan
strategi routing yang menggunakan
algoritma-algoritma
khusus untuk
menjamin interkoneksi dan efisiensi.




Sebelum kita mengenal Strategi
Algoritma, maka kita perlu mnegenal
pengertian dari masing-maasing kata
tersebut.
Strategi: adalah rencana yang cermat
mengenai kegiatan untuk mencapai
sasaran khusus (KBBI).

Algoritma: adalah urutan langkahlangkah
yang
benar
untuk
memecahkan suatu masalah secara
komputasi.
Jadi Strategi Algoritma adalah Kumpulan
metode atau tekhnik untuk memcahkan
masalah, guna mencapai yang ditentukan,
yang dalam hal ini deskripsi metode atau
teknik tersebut dinyatakan dalam suatu urutan

langkah-langkah komputasi yang benar dalam
penyelesaian masalah / persoalan.
Algoritma routing dapat dibagi
menjadi dua kelas: nonadaptive dan
adaptive. Algoritma nonadaptive tidak
mendasarkan keputusan routing pada
keadaan lalu lintas data dan topologi
jaringan saat ini. Pemilihan jalur
komunikasi
yang
digunakan
antarmesin
pada
algoritma
ini
ditentukan dari awal dan ditanamkan
ke router pada saat jaringan
diaktifkan. Algoritma routing ini disebut



1

juga static routing. Kebalikannya,
algoritma adaptive menentukan jalur
komunikasi berdasar kondisi jaringan
saat ini, seperti topologi yang
digunakan dan juga kondisi lalu lintas
data. Algoritma adaptive (dynamic
routing) memperoleh informasi untuk
proses routing secara lokal, dari router
terdekat atau dari semua router yang
ada di jaringan.
Pengelolaan routing yang baik
harus dapat mencari jalan yang
menghubungkan antar titik, dimana
ketika ada banyak jalan (route)
ditemukan, harus ditentukan route
yang memiliki cost terkecil untuk
meningkatkan efisiensi beserta route
alternatif jika route utama tidak dapat

dilalui. Untuk persoalan dengan
instansiasi yang besar, solusi dari
persoalan tersebut menjadi lebih sulit
ditentukan sehingga perlu sebuah
prosedur umum yang berisi langkahlangkah penyelesaian persoalan, yang
dinamakan algoritma.
Algoritma routing yang akan
dibahas pada makalah ini adalah
algoritma backtracking atau dari kelas
algoritma adaptive. Algoritma routing
harus dapat mendeteksi adanya cacat
pada sebuah host yang akan dilalui
paket data dan menentukan jalur lain
yang dapat dilalui untuk mencapai
mesin tujuan. Cacat tersebut dapat
berupa mesin yang mati atau
ketidakmampuan
mesin
tersebut
untuk meneruskan paket data ke

mesin lain.
Selain
untuk
memastikan
tersampaikannya paket dari sumber
ke tujuan, pemilihan algoritma routing
juga
harus
mempertimbangkan
besarnya
biaya
(memori
dan
bandwidth) yang diperlukan. Dipilihnya
backtracking sebagai algoritma routing
juga berdasar pertimbangan di atas:
efektivitas untuk memperoleh solusi
(dalam hal ini route dari sumber ke
tujuan)
dan

efisiensi
dalam
penggunaan sumber daya komputasi.
II.

METODE PENELITIAN
Pada bab ini dijelaskan tentang
teknik
routing
dengan
strategi
algoritma Backtracking dalam system
jaringan komputer, tahapan penelitian
makalah ini adalah dengan studi
literatur Studi literatur merupakan
pencarian referensi teori yang relefan

dengan kasus atau permasalahan
yang ditemukan.


A. Studi Literatur
Studi Literatur yang kami laukan guna untuk
mendapatkan perbandingan informasi data
yang telah didapat dengan membaca buku –
buku
referensi
ataupun
jurnal
untuk
mempermudah penyelesaian masalah yang
dihadapi sehingga dapat terpecahkan dengan
solusi yang telah teruji dan sesuai standar.
B. Hasil Studi Literatur
Berikut merupakan beberapa
analisis dari berbagai studi literatur
yang telah kami lakukan :
2.2.1 Prinsip Kerja Algoritma Backtracking
Algoritma
Backtracking
merupakan

algoritma
yang
berbasiskan
DFS
(Depth
First
Search).
Yang
dilakukan
oleh
algoritma
ini
adalah
mencari
kemungkinan
solusi
dengan
menelusuri hingga node terdalam.
Kemudian
dilakukan

perjalanan
kembali dengan melalui node-node
calon solusi yang telah dikunjungi
untuk menemukan jalur solusi lain
yang lebih sesuai. Dengan kata lain,
algoritma
ini
akan
melakukan
pencarian solusi secara berurutan dari
jalur solusi satu ke jalur solusi lain.
Namun akan berhenti bila solusi yang
sesuai telah ditemukan atau tidak ada
lagi simpul hidup untuk runut-balik.
Algoritma
backtracking
secara
signifikan memperbaiki kompleksitas
algoritma
yang

dijumpai
pada
algoritma brute force
2.2.2.

Langkah – langkah algoritma

Secara umum, langkah-langkah Algoritma
backtracking adalah sebagai berikut :
Algoritma
backtracking
mencari solusi dengan menelusuri
pohon dengan prinsip DFS. Di setiap
simpul yang dikunjungi, algoritma
akan mengecek apakah lintasan yang
tercipta
mengarah
ke
solusi
(memenuhi fungsi pembatas). Jika
lintasan tidak mengarah ke solusi,
simpul tersebut akan ‘dibunuh’ dan
menjadi simpul mati. Simpul mati ini
tidak akan diperluas lagi. Jika

2

2.2.3

pembentukan
lintasan
berakhir
dengan simpul mati, proses pencarian
akan membangkitkan simpul anak
yang lain. Bila tidak ada lagi simpul
anak yang dapat dibangkitkan,
pencarian solusi dilanjutkan dengan
melakukan runut-balik (backtrack) ke
simpul hidup terdekat, yaitu orang tua.
Simpul ini akan menjadi expand-node
yang baru..
Rancangan Penelitian
Berikut ini rancangan penelitian
yang akan kami lakukan untuk
menganalisis Penerapan Algoritma
Backtracking
sebagai
Routing
Algorithm pada Jaringan Komputer

1. Menguji
dengan
menggunakan
metode exhaustive traversal,karena
memberikan fleksibilitas yang paling
baik untuk teknik pencarian graf
2. Membandingankan
algoritma
backtracking dengan algoritma lain
dengan
memperhitungkan
waktu
komputasi dan evektivitas pencarian
masalah yang dicari.

III.

HASIL PEMBAHASAN

3.1 PENGUJIAN DENGAN
EXHAUSTIVE TRANVERSAL

METODE

Semakin besar skala jaringan,
semakin rumit juga cara mengatur dan
tingkat kompleksitasnya. Sehingga
munculah teknik-teknik tertentu untuk
mengatur
jaringan
tersebut.
Kebanyakan teknik-teknik tersebut
mengatur interkoneksi antar titik dan
mengatur komunikasi dan paket dari
titik-titik. Salah satu yang akan
dibahas dalam paper ini adalah Teknik
Routing Dengan Strategi Algoritma
Backtracking Dalam Sistem Jaringan
Komputer. Algoritma routing yang
berdasar pada teknik pencarian graf
telah terbukti memberikan fleksibilitas
yang paling baik. Jika digunakan
metode exhaustive traversal, paket
data dikirim melalui semua node yang
dapat dikunjungi sampai node tujuan
ditemukan. Dengan metode ini,
sebuah node pada jaringan dapat
dikunjungi lebih dari satu kali,

sehingga dapat menghasilkan beban
yang tidak perlu bagi jaringan.
Pendekatan yang dilakukan untuk
mencegah redundansi kunjungan
paket data ke sebuah node adalah
dengan menyimpan informasi status
pada header pesan yang dikirim.
Misalkan sebuah paket mempunyai
struktur (R, TD, message). R adalah
vektor n-bit yang berfungsi sebagai
routing tag. Jika bit i pada R
terdefinisi, maka paket data harus
melalui dimensi i. Jika R = 0, maka
paket data telah mencapai tujuan. TD
adalah himpunan dimensi yang telah
dilalui oleh paket data. Pada host
sumber, TD diinisialisasi dengan nilai
0. Selama perjalanan, setiap melalui
node antara sumber dan tujuan, nilai
R dan TD diperbaharui. Proses routing
pada titik-titik antara (intermediate
node) melalui beberapa tahap. Tahap
pertama adalah mentransmisikan
paket data melalui jalur terpendek
(shortest path) ke node tujuan. Jika
jalur tertutup oleh komponen (node /
host) yang cacat, maka himpunan
dimensi yang pernah dilalui oleh paket
data sampai saat ini dapat digunakan
untuk menghitung alamat semua node
yang pernah dilalui oleh paket data ini.
Semua node tetangga dari node
tersebut tidak lagi dijadikan kandidat
sebagai jalur yang dilalui paket data.
Jika semua node tetangga telah dilalui
atau semua tertutup oleh komponen
yang cacat, maka paket data akan
melakukan
backtrack
ke
node
sebelumnya. Misalkan, kita ingin
mengirim paket data dari node 0010
ke node 1101 seperti terlihat pada
Gambar 1.

3

Gambar
1:
Graf
yang
menunjukkan jalur komunikasi pada
sebuah jaringan komputer.
Awalnya, paket data akan melalui
dimensi 0 untuk mencapai node 0011,
kemudian melalui dimensi 1 untuk
mencapai node 0001. Kerusakan
pada
jalur
komunikasi
yang
seharusnya dipilih, yaitu jalur dari
0001 ke 0101 dan dari 0001 ke 1001
menyebabkan paket data terkirim ke
node 0000. Di node 0000, kerusakan
terdeteksi pada dua jalur komunikasi.
Daftar dimensi yang telah dilalui oleh
paket data tersimpan pada header
paket. Daftar ini dapat digunakan
untuk menyusun ulang semua node
yang telah dilalui paket data. Dari
informasi ini, node 0000 dapat
menentukan bahwa node 0010 pernah
dilalui oleh paket data. Hal ini
menyebabkan node 0000 untuk
melalukan backtrack dengan mengirim
ulang paket data ke node 0001. Di
node 0001, semua kemungkinan jalur
telah
diperiksa
sehingga
menyebabkan paket data backtrack ke
node 0011 dengan isi pesan (1110, [0,
1, 0, 0, 1], message). Algoritma
routing pada node 0011 akan memilih
dimensi terkecil untuk melakukan
pergerakan menuju node tujuan, yaitu
node 2, sehingga paket yang dikirim
ke node 0111 berisi (1010, [0, 1, 0, 0,
1, 2], message). Node 0111 akan
memilih dimensi 1 dan mengirim
pesan (1000, [0, 1, 0, 0, 1, 2 ,1],
message) ke node 0101. Node 0101
kemudian mengirim paket data ke
node 1101 yang merupakan node
tujuan. Proses backtracking pada
pengiriman paket data di atas
diilustrasikan pada Gambar 2.

Gambar
2:
Pohon
dinamis
yang
menggambarkan proses backtracking dalam
pengiriman paket data dari 0010 ke 1101
Pseudocode untuk routing
dengan algoritma backtracking dapat
dilihat pada Gambar 3. Algoritma
tersebut adalah algoritma yang akan
diterapkan oleh tiap node saat
memperoleh kiriman paket data dari
node lain.
function min(input X: vektor biner) : integer
{fungsi untuk memperoleh nilai minimum dari
komponen
vektor biner X
}
function notVisited(anyNode: node) : boolean
{fungsi untuk untuk mengecek apakah node
anyNode sudah pernah dikunjungi atau belum.
Fungsi mengembalikan nilai true bila anyNode
belum dikunjungi, false bila sebaliknya
}
function
boolean

noFault(anyDimension:

integer)

:

{ fungsi untuk mengecek apakah path dari
node saat ini dengan dimensi anyDimension
cacat atau tidak. Fungsi
mengembalikan nilai true bila tidak cacat, false
bila cacat.
}
function getNode() : node
{fungsi untuk memperoleh node berdasar
dimensi pergerakan dan node saat ini }
procedure stop()

4

{ prosedur untuk menghentikan proses /
eksekusi algoritma, dilakukan misalnya karena
data sudah dikirim ke node lain oleh node ini.
}

endif
if node saat ini memperoleh paket dari node
dengan
dimensi g then begin

procedure BacktrackRouting
PaketData)

(input

msg:

{ PaketData adalah data dengan struktur (R,
TD, message), dimana R adalah (rn-1, rn2, ..., r1, r0). Notasi ⊕ adalah operasi XOR
(exclusive OR) pada vektor biner.
ei merepresentasikan sebuah vektor bit
berukuran n dengan bit i bernilai 1 dan bit-bit
yang lain bernilai 0. Notasi & adalah operasi
penggabungan list.
}

kirim ulang (R ⊕ eg, TD&g, message ) ke
node
sebelumnya
{backtrack ke node sebelumnya}
Endif

Gambar 3: Pseudocode routing algorithm
dengan menerapkan algoritma backtracking
3.2
PERBANDINGAN
ALGORITMA
BACKTRACKING DENGAN ALGORITMA BFS

Deklarasi
j, n, h : integer
Algoritma:
if R = 0 then node tujuan sudah tercapai

for j := 0 to n – 1 and not b do begin
if notVisited(getNode(rj)) then
kirim (R ⊕ ei, TD&j, message ) melalui
dimensi j.
stop()
endif
endfor
if
notFault(min(R))
notVisited(getNode(min(R)))

and

then
begin
kirim (R ⊕ eh, TD&h, message ) melalui
dimensi h
stop()

5

dapat
memanfaatkan
algoritma BFS. Dimana algoritma ini
biasanya digunakan ketika teknik
routing yang digunakan adalah static
routing. Algoritma breadth-first adalah
algoritma pencarian yang melakukan
pencarian
secara
melebar,
mengunjungi semua simpul dalam
sebuah
graf
secara
preorder.
Algoritma ini mengunjungi sebuah
simpul , lalu mengunjungi semua
simpul yang bertetangga dengan
simpul tersebut. Lalu mengunjungi
simpul-simpul
yang
bertetangga
dengan tetangga dari simpul tersebut.
Dengan kata lain, jika sebuah graf
tersebut adalah pohon berakar, maka
algoritma akan mengunjungi semua
simpul pada level 1, selanjutnya level
2, dan seterusnya hingga semua
simpul selesai dikunjungi atau ketika
apa yang dicari sudah ditemukan.
Algoritma ini menggunakan struktur
data queue, dimana queue itu
digunakan untuk menyimpan simpulsimpul yang telah dikunjungi, untuk
digunakan sebagai acuan untuk
mengunjungi
simpul-simpul
yang
bertetangga dengan simpul-simpul
yang telah dikunjungi tersebut. Secara
umum, langkah-langkah algoritma
Breadth-first adalah sebagai berikut :
1. Menentukan simpul yang menjadi akar
(misal dinamakan simpul x.
2. Melakukan kunjungan terhadap simpulsimpul yang bertetangga dengan simpul x
(level 1).
3. Melakukan kunjungan terhadap simpulsimpul yang bertetangga dengan simpul level
1, tetapi bukan akar.
4. Melakukan kunjungan terhadap simpulsimpul yang bertetangga dengan simpul level
2, tetapi bukan merupakan simpul level 1
5. Untuk setiap simpul yang dikunjungi,
diperiksa apakah merupakan simpul tujuan
atau bukan. Jika merupakan simpul tujuan,
maka searching berakhir, jika bukan maka
searching akan terus berlanjut hingga semua

simpul dikunjungi atau hingga simpul tujuan
ditemukan
Karena seluruh simpul yang telah dikunjungi
harus disimpan, maka kompleksitas ruang
algoritma BFS adalah O(jumlah simpul+jumlah
sisi). Hal ini menunjukkan bahwa algoritma
BFS memerlukan ruang besar dan tidak cocok
untuk pemecahan masalah besar. Angka
yang sama menunjukkan kompleksitas waktu
terburuk, di mana setiap simpul harus
diperiksa. Kompleksitas waktu terbaik, O(1),
didapat jika solusi ditemukan pada pencarian
pertama. Walaupun memiliki kompleksitas
ruang dan waktu yang kurang baik, algoritma
BFS dapat mencari solusi secara tuntas,
berarti algoritma ini akan menemukan solusi
terbaik dan terdekat bagaimanapun bentuk
graf
tersebut
sedangkan
Algoritma
backtracking secara signifikan memperbaiki
kompleksitas algoritma yang dijumpai pada
algoritma brute force. Jika jumlah simpul
dalam pohon ruang status adalah 2n atau n!,
maka pada kasus terburuk, backtracking
memerlukan waktu O(p(n)2n) atau O(q(n)n!)
dengan p(n) dan q(n) adalah polinom derajat n
yang menyatakan waktu komputasi setiap
simpul.
Algoritma breadth-first ini dilakukan untuk
mencari route yang memungkinkan untuk
menghubungkan sebuah titik ke sebuah titik
yang lain, atau dalam representasi graf,
menghubungkan dari sebuah simpul ke simpul
yang lain melalui sisi-sisi yang ada. Sisi-sisi ini
baru dianggap valid ketika kedua node
terhubung secara fisik dalam dunia nyata (bisa
wired maupun wireless), dan network
administrator mendefinisikan route antar
kedua titik tersebut.sama seperti tujuan
algoritma brcktraking karena setiap Algoritma
routing harus dapat mendeteksi adanya cacat
pada sebuah host yang akan dilalui paket data
dan menentukan jalur lain yang dapat dilalui
untuk mencapai mesin tujuan. Cacat tersebut
dapat berupa mesin yang mati atau
ketidakmampuan mesin tersebut untuk
meneruskan paket data ke mesin lain. Selain
untuk memastikan tersampaikannya paket dari
sumber ke tujuan, pemilihan algoritma routing
juga harus mempertimbangkan besarnya
biaya (memori dan bandwidth) yang
diperlukan. Dipilihnya backtracking sebagai

6

algoritma routing juga berdasar pertimbangan
di atas: efektivitas untuk memperoleh solusi
(dalam hal ini route dari sumber ke tujuan) dan
efisiensi dalam penggunaan sumber daya
komputasi

http://informatika.stei.itb.ac.id/~rinaldi.munir/St
mik/2006-2007/Makalah2007.htm
tanggal akses: 28 November 2014, pukul
23.00
google, jaringan komputer algoritma routing

IV.

KESIMPULAN & SARAN
Penggunaan
algoritma
backtracking untuk algoritma routing
pada jaringan komputer secara teoritis
dapat selalu menyampaikan paket
yang dikirim ke mesin tujuan,
meskipun terdapat komponen yang
cacat (fault) pada jaringan komputer,
selama masih terdapat jalur fisik
antara mesin sumber dan mesin
tujuan.
Penerapan
algoritma
backtracking seperti diilustrasikan
pada makalah ini juga cukup hemat
dari sisi penggunaan sumber daya
komputasi.
Algoritma
ini
juga
mencegah dilaluinya sebuah node
lebih dari satu kali tanpa perlu,
sehingga beban jaringan dapat
dikurangi.

http://biramandianto.blogspot.com/2009/01/jaringankomputer-algoritma-routing.html
Tanggal akses: 10 November 2014, pukul
22.45

Secara garis besar algoritma BFS dan
Backtracking dapat memecahkan masalahmasalah klasik dalam teori graf dengan
mangkus. Pemilihan algoritma yang digunakan
untuk memecahkan masalah disesusaikan
dengan kebutuhan, karena algoritma BFS dan
Backtracking yang menggunakan perinsip
Depth First Search (DFS) memiliki kelebihan
dan kekurangan masing-masing.

V.

DAFTAR PUSTAKA

Wikipedia, Breadth-First Search,
http://en.wikipedia.org/wiki/Breadth_first_searc
h.
Tanggal akses: 03 Desember 2014, pukul
22.30
Makalah, Penerapan Algoritma Backtracking
sebagai Routing Algorithm pada Jaringan
Komputer

7