EVACUATION ROUTES IN BUILDINGS USING DYNAMIC
ROUTING ALGORITHM (Bellman-Ford algorithm) WITH
APPLICATION PROTOCOL RIP
A Thesis
Presented as Partial Fullfillment of the Requirements To Obtain the Sarjana Komputer Degree In Study Program of Informatics Engineering
By :
Name : M. Vindy Widyaratih
NIM : 075314033
INFORMATICS ENGINEERING DEPARTMENT
FACULITY OF SCIENCE AND TECHNOLOGY
Sanata Dharma University
YOGYAKARTA
“ Fokuslah pada kebaikan , bukan pada tujuan akhir”
- Ine Febrianti –
“ Waktu terbaik untu berbahagia adalah sekarang. Tempat untuk berbahagia adalah disini. Dan cara terbaik untuk berbahagia adalah membahagiakan orang lain”
- Mario Teguh-
“ Everybody wants to go to heaven, but no one wants to die to go there”
- B.B. King-
“The beautiful thing about learning is nobody can take it away from you” -BB.King-
“ In order to change the world, you have to get your head together first” - Jimi Hendrix-
Skripsi ini saya persembahkan untuk:
Tuhan Yesus Kristus atas kelimpahan rahmat yang tak terkira, Mama dan Papa saya tersayang atas semua yang telah diberikan, vanny, vio, sahabat-sahabat saya yang dengan penuh kasih mensupport saya serta semua dosen TI di Universitas Sanata Dharma.
Gedung mempunyai penanda jalur evakuasi bencana yang bersifat statis, yaitu tidak dapat berubah. Akan timbul masalah jika titik terjadinya bencana pada jalur evakuasi, sehingga akan mengarahkan orang pada titik bahaya. Maka diperlukan solusi untuk memecahkan masalah tersebut dengan membuat jalur evakuasi bersifat dinamis, yaitu bisa berubah ke arah menuju jalur yang lebih aman. Untuk menyelesaikanya dibutuhkan beberapa cara kerja dan aturan RIP ( Routing Information Protokol) dan algoritma penghitung jarak terpendek
Bellman-Ford.
Tujuan penelitian ini adalah menerapkan Algoritma pencarian jarak terpendek Bellman-Ford dan beberapa aturan dari RIP ( Routing Information Protokol) dalam proses menentukan jalur evakuasi bencana kebakaran dalam
gedung. Sehingga menghasilkan output berupa aplikasi prototipe yang dapat menampilkan jalur evakuasi bencana kebakaran yang bersifat dinamis.
The building has a disaster evacuation route markers that are static, that
can not be changed. But it could become a problem if the point of the disaster on
the evacuation route, so it will drive people to the danger point. Then needed a
solution to solve this problem by creating dynamic evacuation routes, which could
change the direction towards a more secure path. For menyelesaikanya needed
some way of working and the rules of RIP (Routing Information Protocol) and
calculating the shortest distance algorithm Bellman-Ford.
The purpose of this study is to apply the search algorithm Bellman-Ford
shortest distance and some of the rules of the RIP (Routing Information Protocol)
in the process of determining the line of fire in a building evacuation. Resulting
output prototype application that can display evacuation routes catastrophic fires
that are dynamic.
Puji dan syukur kehadirat Tuhan Yang Maha Esa, karena pada akhirnya penulis dapat menyelesaikan penelitian tugas akhir ini yang berjudul “Pengenalan Pola Klasifikasi Daftar Ulang Calon Mahasiswa Baru Universitas Sanata Dharma dengan Algoritma Reduct Based Decision Tree (RDT)”.
Penelitian ini tidak akan selesai dengan baik tanpa adanya dukungan, semangat, dan motivasi yang telah diberikan oleh banyak pihak. Untuk itu, penulis ingin mengucapkan terima kasih kepada:
1. Ibu Ridowati Gunawan, S.Kom., M.T. selaku ketua program studi Teknik Informatika.
2. Bapak H. Agung Hernawan, S.T., M.Kom. selaku dosen pembimbing atas kesabaran, waktu, dan kebaikan yang telah diberikan.
3. Bapak Albertus Agung Hadhiatma, S.T., M.T selaku dosen penguji atas kritik dan saran yang telah diberikan.
4. Pihak sekretariat dan laboran Fakultas Sains dan Teknologi yang turut membantu penulis dalam menyelesaikan tugas akhir ini.
5. Kedua orang tua, bapak Benedictus Suwandi dan ibu Luciana Etik Widyastuti atas kasih sayang, semangat, dan dukungan yang tak henti-hentinya diberikan kepada penulis.
6. Adik-adik saya Lourencia Vanny dan Videllia Violina atas dukungan dan doa yang tak henti-hentinya diberikan kepada penulis.
7. Atanasius Tendy, Ignatius Wijaya Kusuma dan Andreas Caesario E.B Terimakasih atas bantuannya yang tak terhingga, sehingga penulis mampu menyelesaikan semua ini. Terimakasih juga atas doa dan dukungannya. Semoga Tuhan Memberkati
terimakasih atas pelajaran hidup yang tidak pernah saya lupakan.
9. Teman-teman RPL, Tendy, Sinta, Beta, Obi. Terimakasih atas banyak pengalaman yang didapat dalam setiap diskusi
10.Seluruh Teman-teman TI 2007 lainnya atas segala kebersamaan dan dukungan yang selalu diberikan kepada penulis.
11.Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu per satu.
Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu, penulis sangat membutuhkan saran dan kritik untuk perbaikan di masa yang akan datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi semua pihak.
HALAMAN JUDUL (INGGRIS) ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vi
ABSTRAK ... vii
ABSTRACT ... viii
LEMBAR PERSETUJUAN PUBLIKASI ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xv
DAFTAR TABEL ... xvii
BAB IPENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 5
1.3 Tujuan Penelitian ... 5
1.4 Luaran Penelitian ... 5
1.5 Metodologi Penelitian ... 6
1.6 Sistematika Penulisan ... 6
BAB II LANDASAN TEORI ... 8
2.1 Teori Internet Routing ... 8
2.2 Algoritma Bellman-Ford ... 11
2.2.1 Pengertian ... 11
2.2.2 Pengaplikasian Alg. Bellman-Ford pada sistem ... 12
3.1 Metode Pengembangan Sistem ... 23
3.2 Analisis Sistem ... 25
3.2.1 Implementasi Alg. dalam sistem ... 26
3.2.2 Kebutuhan Sistem ... 27
3.2.3 Konsep Kerja Sistem ... 27
3.2.4 Topologi Jaringan ... 28
3.2.5 Proses Pembentukan Jalur ... 29
3.2.6 Format Data ... 30
3.2.7 Diagram Sequence ... 31
3.2.8 Diagram State ... 33
3.2.9 Diagram Kelas ... 36
3.3 Perancangan Umum Sistem ... 39
3.3.1 Diagram Use Case ... 39
3.3.2 Narasi Use Case ... 40
3.3.3 Perancangan Antar Muka ... 47
3.3.3.1 Antar Muka Halaman Utama ... 47
3.3.3.2 Antar Muka Halaman Pengaturan ... 48
3.3.3.3 Antar Muka Papan Arah ... 49
3.4 Perancangan Proses Sistem ... 50
3.4.1 Flowchart Sistem ... 50
BAB IV IMPLEMENTASI PROGRAM ... 51
4.1 Aplikasi yang digunakan ... 51
4.2 Implementasi Topologi Jaringan ... 51
4.3 Kelas Program Utama ... 52
4.4 Kelas Send Server ... 71
4.5 Kelas Received Server ... 74
4.9 Tampilan Sistem ... 83
BAB V ANALISIS SISTEM ... 87
5.1 Keluaran Program ... 87
5.2 Uji Black Box dan Uji White Box ... 96
BAB VI PENUTUP ... 105
6.1 Kesimpulan ... 105
6.2 Saran ... 106
1.2 Jaringan layar petunjuk evakuasi sesaui denah ... 2
1.3 Jaringan layar petunjuk ketika terjadi kebakaran ... 3
1.4 Jaringan layar petunjuk ketika terjadi kebakaran dan solusinya ... 3
BAB II LANDASAN TEORI ... 2.1 Proses Inisialisasi tabel Routing ... 12
2.2 Proses Terbentuknya Tabel Routing ... 13
2.3 Proses Pertukaran dan update tabel routing ... 14
2.4 Contoh Domain yang menggunakan RIP ... 14
2.5 Ketidak Stabilan data pada Alg. Bellman-Ford ... 15
BAB III ANALISA DAN PERANCANGAN SISTEM ... 3.1 Daur Prototipe ... 24
3.2 Visualisasi Hubungan antar layar pada skenario ... 26
3.3 Topologi Jaringan ... 28
3.4 Hubungan Server dan CLient ditiap aplikasi ... 28
3.5 Hubungan pengguna dan aplikasi ... 29
3.6 Diagram Sequence Skenario Berhasil ... 31
3.7 Diangram Sequence Skenario Gagal ... 31
3.8 Diagram Sequence Kirim Tabel ... 32
3.9 Diagram Sequence skenario komputer mati secara fisik ... 32
3.10 Diagram State pembentukan jalur ... 33
3.11 Flowchart proses penambahan pada tabel jalur ... 34
3.12 Flowchart proses perbandingan untuk mencari nilai terkecil ... 35
3.13 Diagram Use Case ... 39
3.14 Antar Muka Halaman Utama ... 47
3.15 Antar Muka Halaman Pengaturan ... 48
4.2 Halaman Utama ... 83
4.3 Halaman Pengaturan ... 84
4.4 Papan petunjuk ... 84
4.5 Tabel Utama ... 85
4.6 Tentang Program ... 85
4.7 Peringatan Server Tidak Dapat dihubungi ... 86
BAB V ANALISIS SISTEM ... 5.1 Skenario Pengujian ... 87
5.2 Pengaturan Pada komputer A ... 88
5.3 Pengaturan Pada komputer B ... 88
5.4 Pengaturan Pada komputer C ... 89
5.5 Pengaturan Pada komputer D ... 89
5.6 Papan Petunjuk A skenario normal ... 90
5.7 Tabel A skenario normal ... 90
5.8 Papan petunjuk B skenario normal ... 91
5.9 Tabel B skenario normal ... 91
5.10 Papan Petunjuk C skenario normal ... 91
5.11 Tabel C skenario normal ... 92
5.12 Papan Petunjuk D skenario normal ... 92
5.13 Tabel D skenario normal ... 92
5.14 Papan petunjuk masing-masing komputer skenario kebakaran ... 93
5.15 Tabel pada masing-masing komputer skenario kebakaran ... 94
3.2 Format data tipe 3 ... 31
3.3 Kelas Program Utama ... 37
3.4 Kelas Send Server ... 37
3.5 Kelas Received Server ... 38
3.6 Kelas Routing Tabel Converter ... 38
3.7 Nomor Use Case ... 40
5.1 Tabel Agen A ... 87
5.2 Tabel Agen B ... 88
5.3 Tabel Agen C ... 88
BAB I
PEMIKIRAN DASAR
1.1. LATAR BELAKANG
Seperti yang kita ketahui bahwa gedung mempunyai ruang-ruang yang
banyak dan lebih rumit dibandingkan dengan rumah atau industri kecil. Untuk
menanggulangi bencana kebakaran selain disediakan tabung pemadam api juga
terdapat tanda-tanda jalur evakuasi bencana yang terdapat dalam setiap pintu
gedung. Tanda-tanda tersebut mengarahkan orang ketika menyelamatkan diri
dari sebuah bencana. Biasanya jalur evakuasi merupakan jalur terpendek keluar
dari gedung tersebut.
Permasalahan muncul ketika tempat terjadinya bencana merupakan jalur
evakuasi. Tempat terjadinya kebakaran kemungkinan pintu keluar menuju tempat
yang lebih aman atau pintu-pintu yang mengarahkan orang ke jalur aman. Maka
orang akan kebingungan untuk mencari jalan keluar dan kemungkinan terburuk
adalah orang akan terjebak dalam gedung tersebut. Hal tersebut yang merupakan
kekurangan jalur-jalur evakuasi yang bersifat statis. Maksud dari statis disini
adalah jalur-jalur tersebut tidak dapat berubah menunjuk ke jalur yang lebih
aman secara otomatis.
Berdasarkan pemikiran diatas, maka munculah ide untuk membuat
prototype tanda-tanda jalur evakuasi yang bersifat dinamis. Artinya ketika terjadi bencana kebakaran pada jalur evakuasi maka dengan sendirinya tanda-tanda
tersebut akan berubah mengarahkan ke jalur yang lebih aman. Ide ini
berdasarkan pada proses routing dinamis pada sebuah jaringan komputer yang
menghubungkan antar router dengan mengacu pada teori pencarian jarak
Sebagai penjelasan , berikut adalah salah satu contoh kasus penerapan
penentuan jalur evakuasi dinamis dalam denah gedung yang sederhana.
Gbr.1.1Denah Sebuah Gedung
Sesuai skenario denah diatas terdapat empat papan petunjuk jalur
evakuasi. Dalam denah tersebut terdapat dua pintu keluar. Dalam contoh
dibawah ini akan dijelaskan skenario penentuan jalur evakuasinya.
Gbr.1.2.Jaringan Layar Petunjuk Evakuasi sesuai dengan Denah
Gbr.1.3. Jaringan Layar Petunjuk ketika terjadi kebakaran
Ditetapkan skenario jika salah satu pintu keluar terjadi kebakaran,
sememntara pintu keluar tersebut merupakan jalur terpendek menuju zona aman,
maka sistem akan kembali saling bertukar informasi tabel jalur sehingga
terbentuk jalur baru seperti pada gambar dibawah ini :
Gbr.1.4. Jaringan Layar Petunjuk ketika terjadi kebakaran dengan solusinya
Gambar diatas merupakan gambar jaringan layar petunjuk jalur evakuasi
sesuai dengan denah berdasarkan skenario (Gbr.1.2). Gambar berikutnya adalah
solusi dengan menggunakan algoritma routing dinamis terdapat digambar
selanjutnya (Gbr.1.4). Seperti telah dijelaskan di skenario diatas.
Routing dinamis merupakan sebuah proses routing dimana ketika routing
protokol digunakan untuk menemukan network dan melakukan update routing table pada router (Raka Yusuf, 2010). Jadi dengan demikian setiap router
memiliki informasi mengenai router-router dalam sebuah jaringan / network. Berdasarkan konsep routing dinamis seperti dijelaskan diatas maka dalam hal ini proses routing dianalogikan menjadi sebuah proses evakuasi bencana kebakaran pada sebuah gedung. Dimana jalur-jalur evakuasi dianalogikan
menjadi sebuah router. Kemudian orang-orang yang akan menyelamatkan diri
dianalogikan menjadi sebuah data dan bencana kebakaran itu sendiri
dianalogikan sebuah kejadian dimana terdapat router dalam eternet yang putus.
Dengan begitu terlihat persamaan perilaku antara data dan manusia. Yaitu
sama-sama mencari jalur yang aman agar dapat mencapai tujuan, dalam hal ini
manusia menuju pintu keluar
Terdapat beberapa algoritma routing untuk menyelesaikan permasalahan
diatas. Algoritma – algoritma tersebut adalah untuk menyelesaikan permasalahan
diatas dipilih Algoritma Bellman-Ford. Algoritma Bellman-Ford memungkinkan sebuah router menyalin table routing secara periodik dari router ke router. Perubahan table routing ini diupdate oleh router yang saling berhubungan ketika terjadi perubahan topologi (Aditya Bayu, 2008). Algoritma ini disebut juga
Algoritma Bellman-Ford. Algoritma ini lebih cocok diterapkan pada pembuatan jalur evakuasi sebab jaringan tidak terlalu besar, hanya melibatkan beberapa
agent. Dan setiap agent dapat menampung informasi dari agent-agent yang lain.
Sehingga saat terjadi kebakaran agent-agent tersebut akan cepat mengupdate
1.2. RUMUSAN MASALAH DAN BATASAN MASALAH
Rumusan Masalah :
Menerapkan ide proses pencarian jarak terpendek dalam pementuan jalur
evakuasi bencana kebakaran pada gedung dengan memanfaatkan Algortima
Bellman-Ford dengan dilengkapi aturan-aturan yang mengacu pada protokol
routing RIP ( Routing Information Protokol). Batasan Masalah :
1.Aplikasi ini adalah bentuk prorotipe sehingga tidak diaplikasikan nyata pada
gedung.
2.Aplikasi ini akan diimplementasikan dan di uji cobakan pada kurang lebih
empat perangkat komputer, dengan skenario denah tersendiri dan sederhana
demi tercapai tujuan penelitian dikarenakan efisiensi alat. Hasil akan sama
jika diaplikasikan pada lebih dari empat komputer.
1.3. TUJUAN PENELITIAN
Tujuan penelitian ini adalah :
1. Menerapkan ide proses pencarian jarak terpendek ke dalam penentuan jalur
evakuasi bencana kebakaran pada sebuah gedung.
2. Menerapkan konsep routing dinamis dengan menggunakan Algoritma
Bellman-Ford pada penentuan jalur evakuasi bencana pada gedung.
1.4. LUARAN PENELITIAN
Luaran dari penelitian ini adalah sebuah program aplikasi ( prototype ) yang berfungsi sebagai penentuan jalur evakuasi bencana kebakaran di sebuah gedung
1.5. METODOLOGI PENELITIAN
Dalam melaksanakan pengumpulan data untuk penyusunan laporan
maka metologi penelitian yang akan dilakukan adalah sebagai berikut:
1. Metodologi Kepustakaan (Literatur).
Pengumpulan data yang dilakukan dengan cara membaca referensi
berupa buku – buku, laporan – laporan, karya ilmiah, makalah di
internet dan sebagainya yang berhubungan dengan penulisan tugas
akhir ini.
2. Merancang Program.
Penulis tahap ini penulis mencoba menganalisa sistem yang akan
dibuat serta merancang protokol pertukaran data , tampilan antar muka
(user interface) yang akan di gunakan pada sistem yang akan di buat.
3. Implementasi Perangkat Lunak.
Setelah perancangan selesai di buat penulis mengimplementasikan
rancangan program ke bahasa program sesungguhnya.
4. Pengujian dan analisa
Hasil keluaran program diuji dan analisa menggunakan metode Black box dan White box.
1.6. SISTEMATIKA PENULISAN
Sistematika penulisan laporan ini terbagi atas enam bab dengan garis besar
sebagai berikut:
BAB I. PENDAHULUAN
Berisi latar belakang, perumusan masalah, tujuan, metodologi penelitian, batasan
masalah dan sistematika penulisan laporan.
BAB II. DASAR TEORI
Bab ini berisi landasan teori yang dipakai untuk pembahasan penulisan tugas
BAB III. ANALISIS SISTEM DAN PERANCANGAN
Bab ini merupakan bab yang membahas tentang analisa dan gambaran
perancangan sistem aplikasi yang dibuat.
BAB IV. IMPLEMENTASI
Bab ini berisi implementasi dari rancangan sistem yang dibuat pada bab
sebelumnya serta mengimplementasikan densain ke dalam program
sesungguhnya.
BAB V. ANALISIS HASIL
Bab ini berisi pengujian pengiriman pesan, test pesan dalam database serta
analisa hasil dari test.
BAB VI. PENUTUP
Bab ini berisi tentang kesimpulan dari pembahasan dan implementasi yang telah
BAB II
LANDASAN TEORI
2.1.TEORI INTERNET ROUTING
Routing
Routing dalam jaringan merupakan suatu protokol atau aturan yang digunakan untuk mendapatkan rute atau jalur dari satu jaringan ke jaringan
lain yang dituju. Dalam tiap jaringan memiliki router sebagai jembatan penghubung antar jaringan. Informasi router secara dinamis atau statis disebarkan secara periodik ke router lain.
Dalam routing dikenal tiga jenis bentuk routing, yaitu Routing Statik,
Routing Dinamis, dan RoutingDefault. Routing Statik
Mengacu pada rute dengan tujuan yang dicantumkan secara manual,
atau statis seperti namanya didalam router. Jaringan ini tidak bergantung pada keberadaan dan keadaan jaringan itu sendiri.
Routing Default
Lalu lintas tujuan tidak diketahui. Hal ini merupakan cara termudah
domain routing terhubung dengan titik terluar. Routing Dinamis
Mengacu pada protokol interior dan eksterior. Pencapaian tujuan pada
jaringan bergantung pada keberadaan dan keadaan jaringan. Jika tujuan
sedang sedang down, rute menghilang dari tabel routing, dan dibentuklah rute baru hingga mencapai tujuan.
Konsep Protokol Routing
Protokol Routing Link state ( OSPF )
Link state routing protokol, seperti sistem jalan terpendek terbuka pertama dan menengah untuk sistem intermediate, memanfaatkan model
database direplikasi didistribusikan dan dianggap protokol routing yang lebih
kompleks. protokol link state bekerja atas dasar bahwa router bertukar informasi elemente disebut link state, yang membawa informasi tentang link dan node dalam domain routing. ini berarti bahwa router menjalankan protokol link state tidak bertukar tabel routing sebagai jarak vektor protokol lakukan. agak, mereka bertukar informasi tentang tetangga yang berdekatan
dan jaringan dan memasukkan informasi metrik terkait dengan koneksi.
salah satu cara untuk melihat link state routing protokol adalah sebagai teka-teki jigsaw. setiap router dalam jaringan menghasilkan sepotong teka-teki (link state) yang menjelaskan dirinya sendiri dan mana terhubung ke potongan puzzle yang berdekatan. juga menyediakan daftar metrik yang
sesuai untuk koneksi dengan setiap bagian dari teka-teki. sepotong router
lokal jika teka-teki ini kemudian andal didistribusikan ke seluruh jaringan,
router oleh router, melalui mekanisme flooding, sampai semua node dalam domain telah menerima salinan potongan puzzle. distribusi selesai, setiap
router dalam jaringan memiliki salinan dari setiap bagian dari teka-teki dan menyimpan potongan teka-teki dalam apa yang disebut sebagai database link state. setiap router kemudian dengan sendirinya mengkonstruksi teka-teki, hasil yang merupakan salinan identik dari seluruh teka-teki pada setiap router
Protokol Routing Distance Vektor ( RIP )
Menggunakan prinsip algoritma Bellman-Ford, yang merupakan nama
penemu algoritma pencarian jarak terpendek, yaitu algoritma Bellman-Ford.
setelah memilih jalur terbaik, router kemudian mengirimkan vektor jarak ke tetangganya, memberitahu mereka tentang awalan mencapai tujuan dan metrik
yang sesuai terkait dengan jalan itu telah memilih untuk mencapai awalan.
Secara paralel, tetangga juga menghitung jalur terbaik ke setiap tujuan yang
tersedia dan kemudian memberitahu tetangga mereka dari jalan yang tersedia
untuk mencapai tujuan. Setelah menerima pesan dari tetangga merinci tujuan
dan metrik terkait yang telah memilih tetangga, router akan menentukan bahwa ada jalan yang lebih baik melalui tetangga alternatif. router akan memberitahukan dari jalan yang dipilih (dan metrik terkait) untuk mencapai
tujuan masing-masing. siklus ini terus berlanjut sampai semua router telah berkumpul pada pemahaman umum dari jalur terbaik untuk mencapai setiap
awalan tujuan ( Sam Halabi, 207).
Dalam Aplikasi ini menyadur beberapa cara kerja protokol RIP. Cara
kerja yang digunakan adalah:
1. Cara kerja menginisialisasi agent baru untuk dimasukan dalam
tabel jalur. Dalam sistem ini, setiap agent yang menjadi agent
tetangga membawa informasi mengenai agent lain yang terhubng
dengan agent tetangga. Sebagai agent penerima informasi harus
menyertakan informasi agent yang tidak terhubung langsung
denganya. Agent penerima menginisialisasi agent baru dan
memasukan dalam tabel jalurnya. Sehingga dalam tabel jalur yang
agent punya mempunyai informasi yang lengkap mengenai
keadaan jaringan.
basic update pada sistem. Default Timer Basic pada RIP adalah
sebesar 30 180 240. Angka awal sebesar 30 menunjukan proses
update informasi berselang waktu selama 30 detik. Kemudian
angka 180 menunjukan time invalid, yaitu selang maksimal waktu
respon dari router lawan. Jika waktu respon lebih dari 180 detik, maka dinyatakan router putus. Kemudian angka terakhir sebesar 240 menunjukan time flush. Dalam masalah ini menyadur time
update dari RIP yaitu sebesar 30 detik untuk proses
menginformasikan data pada tiap agent.
3. Untuk mengatasi ketidak stabilan informasi RIP menggunakan
algoritma SplitHorizon dan Route Poisoning.
2.2.ALGORITMA BELLMAN-FORD
2.2.1. PENGERTIAN
Algoritma Bellman Ford adalah salah satu algoritma dalam routing
dinamis. Algoritma Bellman-ford menghitung jarak terpendek dari suatu
graph berbobot. Dalam routing internet algortima Bellman ford digunakan
pada protocol distance vector. Contohnya dalam Routing Information Protokol (RIP). Algoritma ini didistribusikan karena melibatkan jumlah node dalam suatu Autonomous System.
Keuntungan dari Algoritma Bellman-Ford adalah:
- Baik untuk jaringan berskala besar
- Proses persebaran informasi cepat
Berdasar dari keunggulan dan kelemahan algortima BellmanFord
diatas maka algoritma tersebut lebih tepat diterapkan dalam sistem penentuan
jalur evakuasi tersebut. Karena mempertimbangan dalam sistem tersebut
2.2.2. PENGAPLIKASIAN ALGORTIMA BELLMAN FORD DALAM
SISTEM
- Setiap node menghitung jarak dari dirinya dan semua node lain dalam
jaringan. Dan menyimpan informasi tersebut dalam sebuah tabel.
- Setiap node mengirimkan tabel kesemua node tetangga.
- Ketika sebuah node menerima tabel jarak dari tetangganya, ia
menghitung rute terpendek ke semua node lainnya dan update tabel
sendiri untuk menggambarkan perubahan yang terjadi.
Berikut merupakan proses pengolahan data dalam tabel berdasarkan
algoritma Bellma-Ford menurut Forouzan dalam edisi bukunya yang ke 4.
In distance vector routing, each node shares its routing table with its
immediate neighbors periodically and when there is a change ( Forouzan, 4th edition). Artinya dalam routing menggunakan protokol distance vector, setiap node membagikan tabel routingnya kepada tetangganya ( node yang
terhubung langsung dengannya) secara berkala dan ketika terjadi perubahan
Gbr. 2.1. Proses Inisialisasi Tabel Routing
Gbr. 2.2. Proses Terbentuknya Tabel Routing
Pertama router memiliki informasi table routing yang didapat dari proses inisilisasi pada dirinya sendiri. Kemudian akan terjadi
pertukaran table routing. Sehingga setiap router mendapat informasi tabel routing dari tetangganya. Router akan menginisilisasi table yang diterima, dan menambahkan jumlah hop tabel sebelumnya dengan hop
antara dirinya dengan router pengirim. Sehingga terbentuk table baru. Tabel tersebut akan dibandingakan dengan table lama untuk mencari
jarak terdekatnya dan disimpan dalam table baru. Tabel inilah yang
yang menjadi pengganti tabel utama dan dikirim kembali ke router
tetangga. Begitu seterusnya hingga tabel routing konvergen dan
Gbr.2.3. Proses Pertukaran dan Update Tabel Routing
Gbr.2.4. Contoh Domain yang Menggunakan RIP
Namun terdapat kelemahan algoritma Bellma-Ford jika diterapkan
Gbr.2.5. Ketidakstabilan data pada algoritma Bellma-Ford
Contoh diatas merupakan bentuk ketidakstabilan data yang
terjadi pada tiga buah node. Keadaan ketika tiga buah node terhubung
sempurna, A memiliki informasi bahwa jika menuju ke X mempunyai
bobot tanpa melewati manapun. Dan B memiliki informasi bahwa
menuju ke X mempunyai bobot 6 melewati A. Kemudian X
memberikan informasi ke A bahwa jalur terputus, maka A mengupdate
datanya menjadi menuju X mempunyai bobot tak berhingga. B
mengirimkan data ke A, A mengupdate kembali datanya sesuai dengan
algoritma menjadi menuju X mempunyai bobot 10 melalui B, begitu
sebaliknya, sehingga nilai sampai tak berhingga. Hal ini yang disebut
ketidak stabilan data.
Maka untuk mengatasi hal tersebut terjadi pada aplikasi
dilakukan modifikasi algoritma menggunakan metode split horizon
yang di gabung dengan metode route poisoning.
Split Horizon adalah metode yang diterapkan untuk menghindari routing loops. Ketika mendapatkan informasi bahwa ada jalur terputus maka akan segera menginformasikan pada router
tetangga yang lain, tanpa mengembalikan informasi tersebut pada
informasi mengenai router A, maka router B akan segera mengirimkan informasi tersebut ke router C, tetapi router B tidak mengirmkan informasi ke router A.
Dapat terjadi kemungkinan, router C mengirimkan informasinya terlebih dahulu ke pada router B, seperti dijelaskan pada skenario diatas. Untuk mencegah terjadinya looping nilai maka
diterapkan metode Route Poisoning yaitu memberikan nilai tertinggi pada jalur yang terputus. Dan dianggap sebagai nilai mutlak.
(Forouzan 2007).
2.3.CLIENT SERVER
ClientServer
Menurut (Dharma Oetomo, 2006), Client Server merupakan model konektivitas pada jaringan yang membedakan pada fungsi komputer apakah
sebagai client atau sebagai server. Client server ini menempatkan sebuah komputer sebagai server yang bertugas memberikan layanan pada terminal-terminal lain (client) yang terhubung dalam sistem jaringan itu.
Pada dasarnya, Client server dibentuk oleh tiga komponen dasar, yaitu
client, connector, dan server. 1. Client
2. Connector
Connector merupakan komponen perantara yang memungkinkan client dan server untuk saling terhubung dan berkomunikasi satu sama lain. Connector ini sapat berupa Transaction Monitor (TC), Remote Procedure Calling (RPC), atau Object Request Broker (ORB).
3. Server.
Server merupakan pihak yang menyediakan layanan. Server ini dapat berupa basis data SQL, server groupware, server obyek atau
web. Secara umum, server berperan menerima pesan permintaan layananan dari client, memproses permintaan tersebut dan mengirimkan hasil permintaan kepada client. (Dharma Oetomo 2006)
2.4.PEMROGRAMAN JAVA
2.4.1. PENDAHULUAN
Java adalah bahasa pemrograman serbaguna. Dalam sejumlah
literature disebutkan bahwa java merupakan hasil perpaduan sifat dari
sejumlah bahasa pemrograman, yaitu C, C++, Objek-C, SmallTalk dan
Common LISP ( Abdul Kadir 2005).
Java merupakan bahasa pemrograman berorientasi objek.
Pemrograman berorientasi objek merupakan pengembangan perangkat lunak
yang saat ini popular. Dalam java sudah terdapat kelas-kelas yang mendukung
pengembangan program aplikasi penggunakanya, hanya tinggal memanggil
kelas yang kita butuhkan dengan konsep pewarisan. Dalam java dibedakan
dua jenis program, yaitu applet dan aplikasi. Applet adalah program yang
dibuat untuk web server. Sementara aplikasi adalah program yang dibuat
jenis program yang kedua, sebab dalam penyelesaiannya tidak dibutuhkan
web server atau web browser.
Dalam penyelesaian peneliatian ini, akan dibagi kelas-kelas objek seperti
konsep penyelesaian bahasa pemrograman Java.
2.4.2. PEMROGRAMAN JARINGAN DENGAN JAVA ( JAVA
NETWORK PROGRAMMING)
Pemrograman Jaringan menciptakan dimensi baru untuk aplikasi
perangkat lunak. Alih-alih berurusan dengan single user atau sumber daya dari
mesin tunggal ( seperti file dan koneksi database, pemrograman perangkat
lunak jaringan memberikan kemampuan untuk berkomunikasi dengan mesin
tersebar di seluruh dunia. Hal ini memberikan akses perangkat lunak untuk
berpotensi dengan jutaan sumberdaya eksternal serta jutaan pengguna.
Aplikasi konekstivitas tersebut hanya dibatasi oelh imajinasi dan bandwidth
dari koneksi jaringan.
2.4.3. TCP ( TRANSMISSION CONTROL PROTOCOL)
2.4.3.1. TCP DAN PARADIGMA CLIENT/SERVER
Paradigma Klien / server membagi software manjadi dua
kategori, klien dan server. Seorang klien perangkat lunak memulai
koneksi dan mengirimkan permintaan, sedangkan server adalah perangkat
lunak yang mendengarkan koneksi dan permintaan proses. Dalam konteks
pemrograman UDP, tidak ada koneksi yang sebenarnya didirikan dan
apliaksi UDP mungkin baik memulai dan menerima permintaan pada
soket yang sama. Dalam konteks TCP, dimana koneksi yang didirikan
antara mesin, paradigm ini jauh lebih relevan. Ketika perangkat lunak
bertindak sebagai klien atau sebagai server, ia memiliki peran kaku. Peran
permintaan. Pada saat waktu tertentu satu program perangkat lunak
menjadi klien dan satu program perangkat lunak harus menjadi server.
2.4.3.2. TCP SOCKET DAN JAVA
Java menawarkan dukungan yang baik untuk soket TCP, dalam
bentuk dua kelas soket, yaitu java.net.Socket dan java.net.ServerSocket.
Saat menulis perangkat lunak klien yang terhubung ke sebuah layanan,
maka harus menggunakan kelas Socket. Saat menulis perangkat lunak
server yang terhubung pada port lokal, maka harus menggunakan kelas
ServerSocket.
2.4.3.3. KELAS SOCKET PADA JAVA
Kelas Socket socket mewakili client, dan merupakan saluran
komunikasi antara dua TCP port komunikasi milik satu atau dua mesin.
Sebuah socket dapat terhubung ke port pada sistem lokal, menghindari
kebutuhan untuk mesin kedua, tetapi perangkat lunak jaringan biasannya
melibatkan dua mesin. Socket TCP tidak dapat berkomunikasi lebih dari
dua mesin. Namun jika fungsi ini diperlukan maka aplikasi klien harus
membangun koneksi socket ganda pada setiap mesin.
Konstruktor:
Ada beberapa kontruktor untuk kelas java.net.Socket. Dua
konstruktor yang diperbolehkan adalah berparameter Boolean untuk
menentukan apakah socket UDP atau TCP yang akan digunakan telah
usang.
try
{
// Connect to the specified host and port
Socket mySocket = new Socket ( "www.awl.com", 80);
}
catch (Exception e)
{
System.err.println ("Err – " + e);
}
Beberapa konstruktor:
protected Socket () Membuat socket tidak terhubung
menggunakandefault implementasi yang disediakan oleh pabrik socket
untuk saat ini.
Socket (InetAddress address int port) throws
java.io.IOException,java.lang.SecurityException
– Menciptakan soket terhubung ke alamat IP dan port tertentu. Jika
koneksi tidak dapat dibentuk atau jika hubungan ke host melanggar
batasan keamanan maka eksepsi dilempar.
Socket (InetAddress address, int port,
InetAddress localAddress int localPort) throws
java.io.IOException,java.lang.SecurityException
– Menciptakan soket terhubung ke alamat IP dan port yang ditetapkan
dan terikat ke alamat lokal tertentu dan port lokal. Hal ini
diimplementasikan pada kasus multihoming host ( sebuah mesin
dimana localhost dikenal dengan dua atau lebih alamat IP).
protected Socket (SocketImpl implementation)—
membuat socket tidak terhubung dengan soket yang menggunakan
implemenyasi yang ditentukan.
Socket (String host, int port) throws
java.net.UnknownHostException
java.io.IOException,java.lang.SecurityException
-- Menciptakan socket terhubung ke host tertentu dan port. Metode ini
hostname tidak ditemukan maka koneksi tidak dapat dibangun.
menciptakan soket terhubung ke host tertentu
dan port.
Socket (String host, int port, InetAddress
localAddress, int localPort) throws
java.net.UnknownHostException, java.io.
IOException, java.lang.SecurityException –
Menciptakan soket soket terhubung ke host dan port tertentu dan
terikat ke port dan alamat lkal tertentu. Hal ini memungkinkan nama
host yang akan ditentukan sebagai string dan bukan InetAddress, serta
memungkinkan alamat dan port tertentu terikat. Parameter lokal ini
berguna untuk host multihoming ( yaitu, sebuah mesin dimana
localhost diketahui oleh dua atau lebih alamat IP).
2.4.3.4. KELAS SERVER SOCKET PADA JAVA
Soket Server digunakna untuk menyediakan layanan TCP.
Soket klien mengikat setiap port bebas pada mesin lokal, dan terhubung
ke port server tertentu dan host. Sedangkan server socket mengikat ke
port tertentu pada mesin lokal sehingga klien jarak jauh mendapatkan
layanan. Koneksi soket klien akan terhubung ke satu mesin, sedangkan
server soket dapat menerima permintaan beberapa klien. Cara kerjanya
sederhana, klien menyadari layanan yang berjalan pada sebuah port (
biasanya nomor port dikenal dan digunakan untuk protocol tertentu, tetapi
server pada nomor port tidak standar juga. Keduanya membuat
sambungan dalam server maka koneksi diterima. Beberapa sambungan
dapat diterima pada waktu yang sama, atau server dapat memilih untuk
menerima satu sambungan pada saat tertentu. Setelah diterima maka
socket objek. Satu-satunya perbendaan antara server dank lien adalah
bahwa server mengikat port tertentu menggunakan server socket yang
objek. Objek server socket bertindak sebagai pabrik untuk koneksi. Klien
tidak perlu membuat turunan dari kelas Socket sendiri. Hubungan ini
dimodelkan sebagai socket yang normal, sehingga anda dapat
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1. METODE PENGEMBANGAN SISTEM
Terdapat beberapa metode pengembangan perangkat lunak yang umum
digunakan. Perkembangan teknologi informasi yang cepat pada bidang analisis
dan pemrogramannya mengakibatkan metode pengembangan perangkat lunak
juga berkembang. Metode yang lebih baru telah mengadopsi metode yang
berorientasi obyek. Metodologi yang cukup populer saat ini adalah metode
prototype.
3.1.1. METODE PROTOTIPE
Prototype merupakan metodologi pengembangan software yang
menitik-beratkan pada pendekatan aspek desain, fungsi dan user-interface.
Developer dan user fokus pada user-interface dan bersama-sama
mendefinisikan spesifikasi, fungsi, desain dan bagaimana software bekerja.
Developer dan user bertemu dan melakukan komunikasi dan menentukan
tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang
akan dibutuhkan. Developer mengumpulkan detail dari kebutuhan dan
memberikan suatu gambaran dengan cetak biru (prototype).
Dari proses tersebut akan diketahui detail-detail yang harus
dikembangkan atau ditambahkan oleh developer terhadap cetak biru, atau
menghapus detail-detail yang tidak diperlukan oleh user. Proses akan terjadi
Merumuskan hipotesa prototype, setelah resiko dinyatakan
pengembang mendesain secara terperinci sebuah prototype yang
menggambarkan keseluruhan sistem dan resiko-resiko yang mungkin
berpengaruh pada sistem. Prototype juga memberikan potensi terhadap
perbaikan-perbaikan terhadap produk.
Membangun perancangan prototype, perancangan prototype
berdasarkan hipotesa kedalam produk prototype. Tujuan yang utama
dari membangun suatu prototipe adalah untuk menjawab satu atau
lebih pertanyaan mengenai karakteristik fungsional dari produk .
Eksperimental, prototipe harus dicoba-coba untuk menentukan
perilakunya dan mengumpulkan keluaran dari instrumentasi sistem
sehingga didapat produk yang sesuai dengan keinginan user.
Evaluasi, Hasil dari eksperimen harus dievaluasi untuk menilai
kebenaran dan efisiensi prototype.
Proses yang berulang-ulang, proses yang keseluruhan diulangi
sampai salah satu dari tiga hasil dicapai:
Didapat informasi yang cukup dari prototype sehingga dapat
dimulainya proses pengembangan produk. Untuk beberapa masalah
yang tidak terpecahkan telah dapat ditemukan solusi yang lebih mudah
atau setara dengan tetap memperhatikan cost dan manfaat. Didapat
prototype yang memiliki mutu yang sesuai dengan spesifikasi produk
yang ingin dibuat sehingga proses pembuatan produk dapat dilakukan
dengan menggunakan prototype yang ada.
3.2 ANALISA SISTEM
Sistem yang akan dikembangkan penulis adalah sistem penentuan jalur
evakuasi bencana kebakaran di sebuah gedung dengan memanfaatkan algoritma
routing dinamis. Sistem dikembangkan dengan memanfaatkan salah satu
3.2.2. KEBUTUHAN SISTEM
Sistem ini akan dikembangkan pada aplikasi desktop. Aplikasi ini dikembangkan pada sistem operasi windows 7 dengan tool pengembang Netbeans 6.9. Bahasa pemrograman yang digunakan adalah bahasa Java.
Java sendiri memiliki fasilitas – fasilitas yang mempermudah dalam
pengembangan sistem ini. Sistem ini dikembangakan dengan memanfaatkan
pemrograman socket untuk mengubungkan satu perangkat komputer dengan perangkan komputer yang lain dalam pertukaran data dan informasi.
3.2.3. KONSEP KERJA SISTEM
Admin dapat mengatur bentuk jaringan antar papan petunjuk dengan
mengisikan alamat ip tujuan , prioritas dan arah. Data yang telah dimasukan
oleh admin, akan ditampilan pada tabel. Kemudian Server penerima pesan
dapat di hidupkan dengan menekan tombol Up Server. Setelah itu dimulai
proses komunikasi dengan menekan tombol run. Informasi yang diterima
diolah oleh masing-masing server sampai terbentuk tabel arah pada hingga
tercapai tabel yang konvergen. Untuk simulasi titik yang terjadi kebakaran,
menggunakan tombol sensor kebakaran. Secara otomatis akan meningkatkan
prioritas hingga dalam perhitungan dinggap jalur terputus karena prioritas
melampaui batas. Dan kemudian dilakukan pengiriman data baru hingga
terbentuk tabel baru. Untuk mensimulasi titik yang telah terjadi kebakaran
kembali pulih, maka dapat digunakana tombol Sensor mati, yang artinya
prioritas kembali seperti semula dan dilakukan pengiriman data baru hingga
Gambar 3.5. Hubungan pengguna dan aplikasi
3.2.5. PROSES PEMBENTUKAN JALUR
1. Admin akan mengisikan ip tujuan, prioritas dan arah. yang akan
dimasukan pada tabel seting, sebagai tabel pembentuk pertama.
ip tujuan : ip server lawan yang terhubung dengannya secara
langsung
priotitas : jarak antara server dengan server lain
arah : arah server dengan server lain
2. Admin akan menaikan sistem server penerima. Sehingga server
penerima pada posisi listen dan siap menerima data dari server lain.
3. Ketika tombol run ditekan maka server pengirim mulai mengirim
data dalam bentuk array
Tipe 2 merupakan bentuk proses Hand Shake sebelum informasi berupa data tabel di kirim.
Tipe 3 : merupakan bentuk informasi berupa data tabel yang
kemudian diolah sesuai dengan algoritma Bellman-Ford.
Mula-mula server akan mengirimkan tipe data 2 sebagai bentuk
Hand Shake kepada tetangga yang terhubung dengannya. Di sisi lain, server juga menerima tipe data 2 dari server lawan, yang
dimasukan dalam tabel sebagai bentuk informasi awal dan
Setelah terbentuk tabel, maka server mengirm tabel dalam bentuk
data tipe 3. Server juga menerima data tipe 3 yang merupakan
informasi tabel dari tetangga, kemudian melakukan update tabel
sesuai dengan algoritma Bellma-Ford.
3.2.6. FORMAT DATA
Format data Tipe 2
tabel 3.1 Format data tipe 2
versi : adalah versi dari protokol/sistem tersebut dalam hal
ini versi 1. Sebab belum terjadi perubahan atau penambahan
ke bentuk/versi 2.
tipe : adalah tipe data yang dikirimkan.
Tipe 2 : merupakan tipe data inisialisasi jalur dan
pemberitahuan bahwa jalur belum terputus.
Tipe 3 : merupakan tipe data informasi tabel
Ip addr : merupakan ip sendiri dari agent tersebut
Ip destination dan ip source : merupakan ip yang dituju
untuk pengiriman data
Hops : prioritas ( jumlah hops) dari rentang nilai 1 sampai
dengan 5. Nilai terkecil mewakili prioritas tinggi, yang
berarti jalur paling cepat dan paling mungkin di lalui.
Pemberian prioritas oleh user dapat berdasarkan jarak, lebar
jalan atau kemudahan akses jalan.
“ “ : merupakan delimiter atau pemisah antar data, yang
3.2.8. DIAGRAM STATE
3.2.8.1. PROSES PEMBENTUKAN JALUR
Gambar 3.10. Diagram State pembentukan jalur
Server Listen Client Ready
Berhasil Info server gagagal
Olah Tipe 2 Kirim Tipe 3
Berhasil
ProsesPembahar
uan tabel Kirim Tipe 3
Nilai Hop = 105
Nilai Hop = nilai semula (Kirim Tipe 2)
(gagal)
(berhasil)
(Kirim Tipe 3)
(gagal)
(berhasil) (selalu)
(sensor hidup ditekan)
(sensor mati ditekan) (selalu)
3.2.8.2. PROSES PENAMBAHAN PADA UPDATE TABEL
3.2.8.3. PROSES PERBANDINGAN UNTUK MENCARI NILAI
TERKECIL PADA PROSES UPDATE TABEL
Sum [i][2] ==ut[j][2] End
Start
Status set == true
Ya
Ubah nilai hop pd tabel utama Ya
Sum[i][1] <=ut[j][1] tidak
Status compare==false
Status ut==false
Tidak ya
Tidak
Tambakan pada tab. compare ya
Tidak Tidak
Ya
3.2.9. DIAGRAM KELAS
3.2.9.1 PROGRAM UTAMA
ProgramUtama
versi : String
type : String
ipAddr : String
ipDes : String
hop : String
jarak : int
jarak2 : int
arraySum : String [][]
tempTabel : String [][]
hoopsnya : int
rs : ReceivedServer
ss : SendServer
set : Setting
tabel_utama : Tabel_utama
tabel_compare : Tabel_compare
tampilan : Tanpilan
programUtama() : konstruktor
Tipe2() : void
Tipe3() : void
Tipe4() : void
Tipe5(String,String) : void
cekStatus : boolean
cekStatusComp : boolean
compareData() : void
receivedData : void
setTabelUtama() : void
startServer() : void
tabelArah() : void
Tabel 3.3 Kelas Program Utama
3.2.9.2 SEND SERVER
SendServer
versi : String ipAddr : String ipDest : String hop : String
portTipe = 9000
sendTipe1()
sendTipe2()
sendTipe3()
sendTipe4()
sendTipe5()
Tabel 3.4 Kelas Send Server
3.2.9.3 RECEIVED SERVER
ReceivedServer + portTipe1 : int
+ al : ArrayList + s : ServerSocket + k : String
+ ReceivedServer() <<konstruktor>> + ReceivedServer(String ) <<konstrukrot>>
+ responServer(programUtama) : void
Tabel 3.5 Kelas Received Server
3.2.9.4 ROUTING TABEL CONVERTER
RoutingTableConverter
+ StringtoTable(String ) : static String
+ TableToString(array) : static String
3.3 PERANCANGAN UMUM SISTEM
3.3.1 DIAGRAM USE CASE
Pada sistem ini pengguna hanya admin saja, dan hanya dapat
menggunakan sistem ketika sudah melakukan login. Kegiatan yang dapat
dilakukan oleh admin adalah melakukan login, setelah itu admin dapat
mengatur jalur sesuai dengan skenario yang ada. Dalam sistem ini dibutuhkan
bantuan berupa sistem sensor untuk mewakili sensor sesungguhnya. Untuk
mengaktifkan sensor api dan sensor kepadatan dilakukan secara manual oleh
sistem sensor.
Gambar 3.13. Diagram Use Case Sistem Penentuan Jalur Evakuasi
ADMIN ADMIN
LOGIN
Mengatur Jalur <<depends on>> <<depends on>>
menghidupkan sensor api
SISTEM SENSOR SISTEM SENSOR
3.3.2 NARASI USE CASE
Deskripsi Umum Use Case dari tiap-tiap Use Case dijabarkan dalam tabel dibawah ini.
Nomor Use Case Nama Use Case Deskripsi SPE-001 Mengatur
Koneksi
Use case ini menggambarkan proses dimana pengguna
mengatur koneksi dari tiap-tiap
komputer sebagai tanda sesuai
dengan skenario denah yang ada.
SPE-002 Menjalankan
sensor Hidup
Use case ini menggambarkan
proses dimana admin
mengaktifkan sensor api yang
mewakili keadaan
sesungguhnya.
SPE-003 Menjalankan
sensor Mati
Use case ini menggambarkan
proses dimana admin
mengaktifkan sensor Mati
sebagai tanda jalur telah pulih
dan dapat dilewati mewakili
keadaan sesungguhnya.
Pengarang : Vindy Widyaratih
Tanggal : 13 Juli 2011
Versi : 1.0
Nama Use-case :
Nomor Use-case : Mengatur Jalur Jenis Use-Case
Prioritas : SPE-001 Business Requirements
Aktor Bisnis
Primer:
High
Aktor Pendukung
lainnya :
admin
Stakeholder
Lainnya Yang
Berhubungan:
-
Deskripsi: -
Prakondisi: Use case ini menggambarkan proses dimana pengguna melakukan pengaturan koneksi antar komputer
Pemicu: User telah melakukan autentifikasi melalui form login
Langkah Umum: Use case ini digunakan apabila penggunaingin melakukan pengaturan jaringan komputer ( agent).
Langkah
Alternatif:
Kegiatan Aktor Respon Sistem
Step 1: User mengisikan nama agent pada field yang
Step 2 : User mengisikan
prioritas dari tiap-tiap
koneksi yang dimiliki
Step 3 : User memilih
tombol Check untuk
menyebarkan data dan
menerima data
Step 6 : User memilih
tombol Tampil
Step 4 : sistem merima data
masukan dari user, kemudian
mengitung dengan menggunakan
alg. Bellman ford. Kemudian
menyimpannya menjadi sebuah
informasi dan disebarkan dengan
agent-agent lain yang terhubung
denganya.
Step 5: sistem menampilkan
daftar hubungan serta prioritas
pada text area
Step 7 : Sistem menampilkan
hasil pada form Tampilan yang
direpresentasikan dalam sebuah
tanda arah panah
Kesimpulan: Alt-Step 8: -
Aturan Bisnis: Sistem menampilkan Form Tampilan
Asumsi:
-Pengarang : Vindy Widyaratih
Tanggal : 13 Juli 2011
Versi : 1.0
Nama Use-case : Mengjalankan sensor Hidup Jenis Use-Case
Nomor Use-case : SPE-002 Business Requirements
Prioritas : High
Aktor Bisnis
Primer:
Sistem sensor
Aktor Pendukung
lainnya :
-
Stakeholder
Lainnya Yang
Berhubungan:
-
Deskripsi: Use case ini menggambarkan proses dimana sistem sensor menghidupkan sensor api
Prakondisi:
Langkah Umum: Kegiatan Aktor Respon Sistem
Step 1: User (mewakili system sensor) memilih
tombol sensor api Step 2: Sistem memberikan
informasi pada agent-agent lain
yang terhubung dengannya,
kemudian dari masing-masing
agent menghitung kembali
Step 3: hasil dari perhitungan
diinformasikan menyebar ke
seluruh agent
Step 4 : sistem menampilkan hasil
jalur terbaru yang ditampilkan
pada form Tampilan
Langkah
Alternatif:
Kesimpulan: Use case ini berhenti apabila sudah didapat hasil arah baru dan ditampilkan pada form Tampilan
Pasca Kondisi: Terjadi penghitungan ulang jalur dan arah tampil pada form
Tampilan
Aturan Bisnis:
Pengarang : Vindy Widyaratih
Tanggal : 13 Juli 2011
Versi : 1.0
Nama Use-case : Mematikan sensor api Jenis Use-Case
Nomor Use-case : SPE-003 Business Requirements
Prioritas : High
Aktor Bisnis
Primer:
Sistem sensor
Aktor Pendukung
lainnya :
-
Stakeholder
Lainnya Yang
Berhubungan:
-
Deskripsi: Use case ini menggambarkan proses dimana sistem sensor mematikan sensor api
Prakondisi:
Pemicu: Use case ini digunakan apabila sisyem sensoringin memberikan sebuah kondisi dimana agent yang menjadi titik kebakaran
mengalami pemulihan jalur, sehingga jalur dapat kembali
dilewati
Langkah Umum: Kegiatan Aktor Respon Sistem
Step 1: User (mewakili system sensor) memilih
informasi pada agent-agent lain
yang terhubung dengannya,
kemudian dari masing-masing
agent menghitung kembali
Step 3: hasil dari perhitungan
diinformasikan menyebar ke
seluruh agent
Step 4 : sistem menampilkan hasil
jalur terbaru yang ditampilkan
pada form Tampilan
Langkah
Alternatif:
Kesimpulan: Use case ini berhenti apabila sudah didapat hasil arah baru dan ditampilkan pada form Tampilan
Pasca Kondisi: Terjadi penghitungan ulang jalur dan arah tampil pada form
Tampilan
Aturan Bisnis:
3.3.3 PERANCANGAN ANTAR MUKA
Sistem ini tidak memiliki hirarki user, artinya dalam system ini hanya
admin atau user yang telah melakukan autentifikasi saja yang dapat
menggunakan sistem ini.
3.3.3.1ANTAR MUKA HALAMAN UTAMA
Gambar 3.14. Antar Muka Halaman Utama
Tampilan ini merupakan tampilan awal sistem. Dimana
user dapat memilih untuk langsung menampilkan papan
arah atau melakukan pengaturan koneksi.
- Bila user ingin melakukan pengaturan koneksi maka
memilih tombol Admin, maka system akan
menampilkan form login.
- Bila user ingin menampilkan papan arah maka pilih
tombol Tampil, maka system akan menampilkan form
Tampilan
Caption
SISTEM BANTUAN PENENTUAN
JALUR EVAKUASI
Admin
Tampil
3.3.3.3 ANTAR MUKA TAMPILAN
Gambar 3.16 Antar Muka Halaman Tampilan (Papan Arah)
Text area diatas digunakan untuk menampilkan arah. Tombol
digunakan sebagai pengganti sensor api mewakili keadaan sesungguhnya. Jika
memilih tombol ini maka system akan mengirim informasi dan memenghitung
ulang tabel routing kemudian menampilkan pada text area. Tombol
digunakan untuk mematikan sensor sehingga jalur dapat kembali dilewati.
Caption
FIRE HOME
3.4 PERANCANGAN PROSES SISTEM
3.4.1 FLOWCHART SISTEM
Pada perancangan ini akan dijelaskan alur kerja sistem yang
direpresentasikan dalam bentuk flowchart.
BAB IV
IMPLEMENTASI
4.1
APLIKASI YANG DIGUNAKANImplementasi Prototipe Penentuan Jalur Evakuasi
Menggunakan Alg.Routing dinamis menggunakan perangkat piranti
lunak:
1. Netbean Versi 6.5
Merupakan salah satu tools yang digunakan untuk pembuatan
aplikasi berbasis java.
2. WireShark
Merupakan tools yang digunakan untuk melihat perjalanan data dari
aplikasi yang sedang berjalan dalam sebuah jaringan.
4.2
IMPLEMENTASI TOPOLOGI JARINGANPada aplikasi berbasis Client-server maka akan membutuhkan suatu perangkat keras atau hardware dimana secara fisik terdiri dari
Server machine, dan Communication network.
Untuk Server machine yaitu yang merupakan server dari masing-masing agent menggunakan sistem operasi Windows XP .
Server ini yang menjalankan tugas seperti layaknya sebuah router
dan melakukan komunikasi data dengan server lain. Server ini sebagai tempat interaksi antarmuka pengguna seperti login, mengatur
topologi serta jalur, menjalankan sensor dan menampilkan hasil.
Kemudian untuk Comunication network menggunakan jaringan Ethernet yang akan menyediakan fasilitas komunikasi yang mengijinkan satu atau lebih pesan yang berisi layanan dikirim antar
Gambar 4.1 Jaringan komputer
4.3 Class ProgramUtama.java
Sebagai pengendali dari pertukaran data yang dilakukan oleh
tiap server maka dibutuhkan pengontrol yang mengolah tiap-tiap informasi yang dikirimkan masing-masing server. Untuk itu dibuat
sebuah kelas ProgramUtama.java
4.3.1 Tipe2()
Method Tipe2() merupakan method untuk menangani
pengolahan pesan bertipe 2. Data yang diterima dimasukkan dalam
array tabel utama. Mula-mula data yang diterima di cek hop yang
dimiliki , jika hop kurang dari 100 maka data dimasukan dalam tabel
utama dengan menggunakan method setTabelUtama(). Jika hop lebih
dari 100 yang artinya bahwa terdapat informasi jalur terputus, maka
data pada tabel compare di diubah menjadi data baru dengan hop 105.
public void Tipe2() throws UnknownHostException {
System.out.println("Data Client " + ipDest + "tipe
2");
ss.olahData(versi, ipAddr, ipDest, hop);
if (tampilan.kondisi == false) {
if (Integer.parseInt(hop) < 100) {
cekHop(ipDest, hop);
A B C D
setTabelUtama();
ss.sendTipe3(RoutingTableConverter.TableToString(dataTable)
);
} else {
System.out.println("terjadi kebakaran pada" +
ipDest);
if
(ipDest.equals(InetAddress.getLocalHost().getHostAddress())
) {
tampilan.jLabel1.setText("TERJADI
KEBAKARAN DI " +
InetAddress.getLocalHost().getHostAddress());
} else {
for (int i = 0; i <
tabel_compare.model.getRowCount(); i++) {
if (tabel_compare.model.getValueAt(i,
0).equals(ipDest)) {
tabel_compare.model.setValueAt(hop, i, 1);
} else if
(tabel_compare.model.getValueAt(i, 2).equals(ipDest)) {
tabel_compare.model.setValueAt(hop, i, 1);
}
}
}
ss.sendTipe3(RoutingTableConverter.TableToString(arrayCompa
re));
}
Data di tangkap oleh method olahData dengan parameter versi,
ipAddr, ipDest dan hop. Jika kondisi agent sedang tidak terbakar(false) maka dilakukan pengecekan terhadap nilai hop. Jika hop kurang dari
100 maka akan dilakukan pengecekan perubahan hop dengan
menggunakan method cekHop dengan parameter ipDest dan hop.
Kemudian dilakukan pengisian pada tabel utama dengan menggunakan
method setTabelUtama().
Setelah tabel utama terbentuk, maka tabel tersebut dikirimkan
dengan format data tipe3 dengan isi tabel di ubah dalam bentuk String
dengan menggunakan method TabletoString (dataTable) yang diambil
dari kelas Routing TableConverter. Tetapi jika hop lebih dari 105 yang
berarti dalam asumsi program ini bahwa terjadi pemutusan jalur dari
agen pengirim maka akan dilakukan proses update tabel dengan
mengubah nilai hop semula menjadi 105, setelah itu tabel dikirimkan
dengan menggunakan method sendTipe3 dengan parameter data tabel
yang telah diubah menjadi String.
4.3.2 Tipe3(String)
Method Tipe3(String, String) merupakan method yang
digunakan untuk menangani pengiriman data berupa tabel. Terdapat
dua parameter masukan pada method Tipe3() yaitu masukan pertama
bertipe String yang merupakan data tabel yang masih berupa data
String. Data keduan bertipe String yang merupakan ip dari pengirim
untuk proses mencarian hoop. Data String pertama berupa data String
diubah menjadi bentuk data array , diubah dengan menggunakan
method StringToTable() dan disimpan dalam tempTabel.
Ip digunakan untuk mencocokan data pada masukan pertama
admin untuk medapatkan nilai hoop. Nilain hoop ini digunakan untuk
melakukan proses menambah hoop pada data hoop pada tempTabel
dan menyimpannya pada tabel arraySum. Kemudian dari data
arraySum dilakukan proses perbandingan data untuk mencari nilai
terkecil untuk kemudian disimpan pada tabel Compare dengan
menggunakan method Compare().
public void Tipe3(String t, String ip) throws
UnknownHostException {
System.out.println("Data
TempTabel/tabelditerima");
System.out.println("PENGIRIM :" + ip);
tempTabel =
RoutingTableConverter.StringtoTable(t);
if (tampilan.kondisi == false) {
for (int i = 0; i <
set.jTable1.getRowCount(); i++) {
if (ip.equalsIgnoreCase((String)
set.jTable1.getValueAt(i, 0))) {
hoopsnya =
Integer.valueOf(String.valueOf(set.jTable1.getValueAt
(i, 1)));
}
}
System.out.println(tempTabel.length);
for (int x = 0; x < tempTabel.length; x++)
{
for (int j = 0; j < 3; j++) {
if (j == 0) {
arraySum[x][0] = (String)
} else if (j == 1) {
if
(!tempTabel[x][1].equals("-")) {
jarak =
Integer.parseInt(String.valueOf(tempTabel[x][1]));
jarak2 = jarak + hoopsnya;
arraySum[x][1] =
String.valueOf(jarak2);
}
} else if (j == 2) {
arraySum[x][2] = ip;
}
}
}
System.out.println("Data sum di tipe lima :
---");
for (int i = 0; i < arraySum.length; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(arraySum[i][j] + "
");
}
System.out.println("\n");
}
compareData();
tabel_utama.jTableUtama.setModel(tabel_compare.model)
;
tabelArah();
ambilArah();
}
Data String yang diterima diubah menjadi bentuk data tabel
dan ditampung dalam variabel tempTabel. Dilakukan proses
perulangan sebanyak jumlah row dalam tabel setting untuk
mencocokkan ip pada tabel setting dengan ip pengirim. Jika memenuhi
syarat ip sama dengan ip pada tabel setting maka diambil nilai hopnya
dan di masukkan dalam variabel hopsnya. Setelah mendapat nilai hop maka dilakukan perulangan sebanyak panjang tempTabel dengan
variabel x dan perulangan kedua sebanyak jumlah kolom yaitu 3
dengan variabel j. Jika memenuhi syarat j sama dengan 0 maka nilai
arraySum ke [x][0] diisi dengan nilai tempTabel ke [x][0]. Jika
memenuhi syarat j sama dengan 1 maka selanjutnya jika memenuhi
syarat nilai temp tabel ke [x][1] tidak sama dengan “-“ maka nilai
[x][1] ditampung dalam variabel jarak untuk selanjutnya nilai jarak
ditambahkan dengan nilai hoopsnya disimpan dalam variabel jarak2
untuk selanjutnya nilai jarak2 disimpan dalam array sum ke [x][1].
Jika memenuhi syarat j sama dengan 2 maka nilai array sum ke [x][2]
di beri nilai ip pengirim. Keluar dari proses perulangan masih dalam
method tipe5 dikerjakan method compareData yang selanjutnya hasil
dari proses membandingkan tersebut menggantikan nilai keseluruhan
pada tabel utama. Selanjutnya proses pengambilan arah dikerjakan
oleh method ambilArah().
4.3.3 cekStatus()
Untuk menyaring data agar lebih valid, sehingga data yang
sama tidak akan dimasukan pada tabel utama, maka diperlukan method
cekStatus() yang bertipe boolean. Data sebagai penyaringnya adalah
data ip yang merupakan data unik. Data ip pada data tabel utama akan
nilai true, jika data ip tidak sama maka akan mengembalikan nilai
false.
public boolean cekStatus(String ipDest) {
boolean status = false;
for (int i = 0; i <
tabel_utama.model.getRowCount() && status == false;
i++) {
if (tabel_utama.model.getValueAt(i,
0).equals(ipDest)) {
status = true;
}
}
return status;
}
4.3.4 cekStatusComp()
Dengan fungsi sama seperti method cekStatus(), method
cekStatusComp digunakan untuk menyaring data dari tabel Compare
untuk mendapatkan nilai data yang valid. Data sebagai penyaringnya
adalah data ip yang merupakan data unik. Data ip pada data tabel
compare akan dibaca, ketika menemukan ip yang sama maka akan
mengembalikan nilai true, jika data ip tidak sama maka akan
mengembalikan nilai false.
public boolean cekStatusComp(String ipDest) {
boolean statuscomp = false;
for (int i = 0; i <
tabel_compare.model.getRowCount() && statuscomp ==
false; i++) {
if (tabel_compare.model.getValueAt(i,
statuscomp = true;
}
}
return statuscomp;
}
4.3.5 compareData()
Proses akhir dari pengolahan tabel dimana data dari array sum
dibandingkan dengan data dari tabel utama sebagai tabel pembentuk
awal sehingga mendaptakan nilai hoop terkecil dari data tersebut. Data
dibaca tiap baris kemudian jika menemukan ip yang sama , maka akan
dilakukan proses pembadingan untuk mencari nilai hoop terkecil dari
kedua data tersebut. Kemudian hasil akan disimpan dalam tabel
Compare yang selanjutnya data pada tabel compare merupakan data
pada tabel utama yang baru.
tabel_compare.model = (DefaultTableModel)
tabel_compare.jTable1.getModel();
String to = null;
String next = null;
String hop1 = null;
for (int i = 0; i < arraySum.length; i++) {
String data1[] = new String[3];
if (arraySum[i][0] != null) {
if (cekIpTabel(arraySum[i][0]) == true)
{
for (int j = 0; j <
tabel_utama.model.getRowCount(); j++) {
if
(arraySum[i][0].equals(tabel_utama.model.getValueAt(j
, 0))) {
(arraySum[i][2].equals(tabel_utama.model.getValueAt(j
, 2))) {
if
(cekStatusComp(arraySum[i][0]) == false) {
to = (String)
arraySum[i][0];
hop1 =
arraySum[i][1];
next = (String)
arraySum[i][2];
data1[0] = to;
data1[1] = hop1;
data1[2] = next;
tabel_compare.model
= (DefaultTableModel)
tabel_compare.jTable1.getModel();
tabel_compare.model.addRow(data1);
tabel_compare.jTable1.setModel(tabel_compare.model);
} else {
for (int k = 0; k <
tabel_compare.model.getRowCount(); k++) {
if
(arraySum[i][0].equals(tabel_compare.model.getValueAt
(k, 0))) {
tabel_compare.model.setValueAt(arraySum[i][1], k, 1);
}
}
}
} else {
if