Prototype penentuan jalur evakuasi bencana kebakaran dalam gedung menggunakan algoritma routing dinamis (Alg. Bellman-Ford) dengan penerapan protokol RIP.
KEBAK
ROUTIN
KARAN DA
NG DINA
u FALAM GE
AMIS ( AL
PENERA
untuk meme P Nama NIM JURUSAN FALKUTA UNIVERSEDUNG M
LGORITM
APAN PR
Tugas A enuhi salah sProgram Sarj Teknik Infor
Oleh : M. Vindy : 0753140
N TEKNIK AS SAINS D
SITAS SAN YOGYAK 2013
MENGGU
MA BELLM
ROTOKOL
Akhir satu syarat kjana (S‐1) rmatika
:
y Widyaratih 033 K INFORMA DAN TEKN NATA DHA KARTA 3
UNAKAN
MAN-FOR
L RIP
kelulusan ATIKA NOLOGI ARMAALGORI
RD) DEN
ITMA
GAN
(2)
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
(3)
(4)
(5)
“ 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.
(6)
(7)
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.
(8)
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.
(9)
(10)
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
8. Sahabat-sahabat saya dari Alldint music course, pecinta musik blues, seniman dan pecinta musik , teman berbagi dikost dan semua sahabat yang tidak dapat saya sebutkan satu persatu terimakasih telah datang dan
(11)
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.
Yogyakarta, Penulis
(12)
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 I PENDAHULUAN ... 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
(13)
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
(14)
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
(15)
1.1 Denah Sebuah Gedung ... 2
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
(16)
4.1 Jaringan Komputer ... 52
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
(17)
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
(18)
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 terpendek.
(19)
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
Pada gambar diatas sesuai pengaturan jalur dan prioritas yang ditetapkan maka terbentuk jalur seperti pada gambar diatas.
(20)
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
(21)
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
(22)
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 berdasarkan pada ide pencarian jarak terpendek dan konsep routing dinamis.
(23)
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 akhir
(24)
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 dilakukan dalam penulisan tugas akhir ini.
(25)
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
Secara umum, sebagian besar protokol routing didasarkan pada dua jenis algoritma routing terdistribusi: Link state dan Distance vector ( Sam Halabi, 2001).
(26)
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
(27)
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.
(28)
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 melibatkan jaringan dengan skala yang kecil.
(29)
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 tabel.
(30)
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 terbentuk jalur.
(31)
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 dalam routing dinamis, yaitu akan terjadi ketidakstabilan data.
(32)
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
(33)
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
Client merupakan terminal yang digunakan oleh operator untuk meminta layanan tertentu yang dibutuhkan. Terminal client dapat berupa PC, ponsel, komunikator, robot, televisi, dan peralatan lain yang membutuhkan informasi. Peran client adalah mengirimkan pesan berupa permintaan layanan ke server.
(34)
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 dengan Java yang bersifat umum. Untuk menyelesaikan penelitian ini dipilih
(35)
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 dimana perangkat lunak memulai permintaan atau sedang memproses
(36)
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);
(37)
}
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 memungkinkan string yang ditentukan bukan sutau InetAddress. Jika
(38)
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 sambungan direprestasikan sebagai soket yang normal, dalam bentuk
(39)
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 menghubungkan input dan filter output stream untuk koneksi.
(40)
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 terus menerus sehingga produk sesuai dengan keinginan dari user.
(41)
Tujuan
terus m diingin secara
METO
pada m
dinyata yang p sebaga bersih Masala terhada permas Gam
n utama dari Proses rev menerus, seh nkan oleh u
keseluruhan
ODOLOGI [Purtilo, L model prototy
Identifikas akan secara pasti terhada
i benchmar Identifikas dan mampu ah”, selalu ap pengemb salahan pada
mbar 3.1 Dau
i prototype [ visi dan pen hingga dida user. Proses
n maupun pa
Larson, Cla ype sebagai i objek, def a bersama-sa
ap batasan rk.
i resiko, t u menghasi
terdapat a bangan pro a area terseb
ur Prototype
[Thompson, ngujian terha apatkan prod testing dan artial pada b
ark-1991] m i berikut: finisi dari m
ama dengan kesuksesan
tidak ada p ilkan produ area abu-ab duk. Perjel but.
e
, Wishbow -adap produk duk yang se n revisi dap bagian dari mengambark masalah yang n memberik dari produ pengembang uk yang ber
bu yang m as dan per
- 1992] adal k dilakukan esuai denga pat dilakuka
produk.
kan proses
g harus dipe kan ukuran-uk yang dig
gan produk rstatus “Tid memberikan rtegas batas lah : n secara an yang an baik s-proses ecahkan -ukuran gunakan k yang dak ada resiko san dan
(42)
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 algoritma routing dinamis yaitu algoritma Bellman Ford dengan mengacu pada
(43)
protoko yang m terbata contoh penelit manfaa 3.2.1. IM telah di tujuan p papan p dalam s jalur ya petunjuk beberap
ol RIP ( Ro muncul.
Denah dis as untuk ben h kasus dalam
tian. Denah at dari sistem
MPLEMEN Denah yan itentukan d penelitian de petunjuk da sebuah jarin ang terbent k pada den pa router.
Contoh
outing Infor
esuaikan de ntuk denah y m kehidupa
dibuat sede m yang dibu
NTASI AL ng digunaka dengan mem engan seder alam denah ngan. Kemu
tuk pada s nanh ini m
h visualisasin
Gbr.3.2. V
rmation Pro
engan sken yang lain. S an sehari-har
emikian sed uat.
G. BELLM an disini ad mpertimban
rhana sehing pada sken udian jalan d
sebuah jarin merepresenta
nya terdapa
isualisasi hu
otokol) dises
nario pada s kenario ters ri dengan m derhana aga
MAN-FORD dalah denah gkan beber gga manfaat nario ini me dalam denah ngan. Sehin sikan sebua
at pada gamb
ubungan ant
suaikan den
saat pengap sebut hanya mempertimb ar tercapai m
D DALAM h berdasark rapa aspek,
t penelitian erepresentas h ini merep ngga hubun ah jaringan
bar berikut i
tar layar pad
ngan perma
plikasiannya a sebagai sal angkan tuju maksud dan SKENARI kan skenari yaitu mer tercapai. Ti sikan router presentasikan ngan antar n yang terd
ini da skenario salahan a, tidak lah satu uan dari n tujuan IO o yang realisasi iap-tiap r-router n jalur-papan diri dari
(44)
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 terbentuk tabel baru.
(45)
3..2.4. TOPO diterapk digunak Untuk t Untuk program bertuga kemudi protoko pengiri User se untuk m APLIKA A OLOGI JAR Berikut m kan sesuai kan dalam s
Gam
tiap-tiap kon setiap aplik m utama, ya as untuk m ian data ter ol yang su
m. Gam ebagai admi mengatur jal ASI B RINGAN merupakan g
i dengan skenario ini
mbar 3.3. T
neksi antar kasi memilik
ang memilik menerima be rsebut di o udah ditentu
mbar 3.4. H
n dapat men lur.
Etherne
gambaran t skenario d ini adalah p
opologi Jari
computer , ki server pe ki tugas ma entuk data olah oleh pr ukan dan d
Hubungan se ngoperasika et C topologi jar dan denah
peer to peer
ingan digambarka enerima, se asing-masing dari serve rogram utam dikirim kem
erver dan cli
an tiap-tiap a
ringan yang . Topologi
r.
an sebagai b erver pengir g. server pe er pengirim
ma sesuai mbali oleh
ient di tiap a
antarmuka a g akan i yang berikut: rim dan enerima . Yang dengan server aplikasi aplikasi D
(46)
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 pemberitahuan bahwa server lawan masih terhubung dengannya.
(47)
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 diwakili oleh spasi agar memudahkan saat pembacaan data versi “ ” tipe “ ” ip addr “ ” ip des “ ” hop
(48)
3 s d 3.2.7. DIAG Diag skenario ya dengan sken
A. sk
Gbr 3.6 B.skena versi B Pes terb Format tabe GRAM SEQ gram seque ang mungki nario berhas kenario berh
6. Diagram S
ario gagal
Gbr 3.7. Dia
“ ” ti
Buka koneksi
an koneksi buka
data Tipe
el 3.2 Form QUENCE
ence yang n terjadi pa sil dan gaga
hasil
Sequence Ske
agram Seque
ipe “ ”
dat up to d
3
mat Data tipe
terjadi pad ada saat pro al dan kemun
enario Berhas ence Skenario ip addr ta 1 data 10 e 3
da setiap a oses membe ngkinan-kem sil o Gagal “ ” agent berda entuk sebua mungkinan tabel asarkan ah jalur lain
(49)
D. skenar Gbr putu F. sken
Gbr 3.9. Dia Ce
Hops
C
U
Kirim
io kirim tab
r 3.8. Diagram us
nario ketika
agram Seque ek
Cek tabel
Update
m tabel Update bel m Sequence komp mati ence Skenario K E. sken Skenario kir secara fisik
o Komputer M Kirim tabel
ario jalur pu
im tabel dan
k
Mati secara f Cek statu
Hops =5
Update t
utus
jalur
fisik us
(50)
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)
(51)
3.2.8.2. PROSES PENAMBAHAN PADA UPDATE TABEL
(52)
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
(53)
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
(54)
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
(55)
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
(56)
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
(57)
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.
(58)
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 tersedia
(59)
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: -
(60)
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:
Pemicu: Use case ini digunakan apabila sisyem sensoringin memberikan sebuah kondisi dimana terjadi kebakaran di salah satu titik agent
(61)
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:
(62)
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
(63)
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:
(64)
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 vindywidyaratih@2011
(65)
me terh age terh yan me 3.3.3.2 Tampil lakukan set hubung ( ta ent. Field p
hubung den ng ditampi nampilkan p
2 ANTAR M
Gambar 3.
lan diatas m ting. Text A abel routing prioritas diis ngannya. To ilkan pada papan arah. MUKA HA
15. Antar M
merupakan ta Area diatas u g). Field ag
si prioritas ombol Chec a text are
ALAMAN P Muka Halam ampilan hal untuk menam gent digunak jarak dari k digunakan ea. Tombo PENGATUR man Pengatu laman peng mpilkan age kan untuk m agent terseb n untuk me ol tampil RAN uran gaturan. Use ent-agent la memberikan but ke agen encek tabel digunakan er dapat in yang n nama nt yang routing untuk
(66)
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
(67)
3.4 PERANCANGAN PROSES SISTEM 3.4.1 FLOWCHART SISTEM
Pada perancangan ini akan dijelaskan alur kerja sistem yang direpresentasikan dalam bentuk flowchart.
(68)
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
(69)
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
(70)
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));
} }
(71)
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.
(72)
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) tempTabel[x][0];
(73)
} 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(); }
(74)
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 dibaca, ketika menemukan ip yang sama maka akan mengembalikan
(75)
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, 0).equals(ipDest)) {
(76)
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))) {
(77)
(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
(78)
ValueAt(j, 1))) <=
Integer.valueOf(String.valueOf(arraySum[i][1]))) { if
(cekStatusComp((String)
tabel_utama.model.getValueAt(j, 0)) == false) { to = (String)
tabel_utama.model.getValueAt(j, 0);
hop1 = (String) tabel_utama.model.getValueAt(j, 1);
next = (String) tabel_utama.model.getValueAt(j, 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 { if
(cekStatusComp(arraySum[i][0]) == false) { to =
arraySum[i][0];
hop1 = arraySum[i][1];
next = arraySum[i][2];
(79)
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);
tabel_compare.model.setValueAt(arraySum[i][2], k,2); }
} } } } } } } else {
if (cekStatusComp(arraySum[i][0]) == false) {
if (!arraySum[i][0].equals("-")) {
(80)
arraySum[i][0];
hop1 = arraySum[i][1]; next = (String)
arraySum[i][2];
data1[0] = to; data1[1] =
String.valueOf(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 j = 0; j < tabel_utama.model.getRowCount(); j++) { if
(arraySum[i][0].equals(tabel_utama.model.getValueAt(j , 0))) {
if
(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] =
(81)
String.valueOf(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
(Integer.valueOf(String.valueOf(tabel_utama.model.get ValueAt(j, 1))) <=
Integer.valueOf(String.valueOf(arraySum[i][1]))) { if
(cekStatusComp((String)
tabel_utama.model.getValueAt(j, 0)) == false) { to =
(String) tabel_utama.model.getValueAt(j, 0); hop1 =
(String) tabel_utama.model.getValueAt(j, 1); next =
(82)
(String) tabel_utama.model.getValueAt(j, 2);
data1[0] = to;
data1[1] = String.valueOf(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 { 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] = String.valueOf(hop1);
data1[2] = next;
tabel_compare.model = (DefaultTableModel) tabel_compare.jTable1.getModel();
(83)
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);
tabel_compare.model.setValueAt(arraySum[i][2], k,2); }
} } } } } } } } } }
arrayCompare = new
String[tabel_compare.model.getRowCount()][3]; for (int p = 0; p <
tabel_compare.model.getRowCount(); p++) { String kolom1 = (String)
tabel_compare.model.getValueAt(p, 0); String kolom2 = (String)
String.valueOf(tabel_compare.model.getValueAt(p, 1)); String kolom3 = (String)
(84)
tabel_compare.model.getValueAt(p, 2);
for (int j = 0; j < 3; j++) { if (j == 0) {
arrayCompare[p][0] = kolom1; } else if (j == 1) {
arrayCompare[p][1] = kolom2; } else if (j == 2) {
arrayCompare[p][2] = kolom3; }
}
}
Terdapat 3 buah variabel lokal yang harus dibentuk pada saat method ini dijalankan yaitu to, hop1, dan next yang bertipe String dan satu variabel penanda ada dengan nilai awal sama dengan 1. Dilakukan perulangan sebanyak data sum untuk proses membandingan data. Data sum ke i mula-mula di cocokan dalam set tabel untuk mengetahui perambatan data baru. Jika dalam pengecekan pada tabel setting ada maka dilakukan proses pengecekan data sum ke [i][2] sama dengan data dalam tabel utama ke [j][2], jika sama maka mengubah nilai hopnya, hal ini menandakan bahwa menerima perubahan dari sumber informasi yang sama. Jika tidak, maka dilakukan proses perbandingan, jika Data sum ke [i][1] lebih kecil dari data dalam tabel utama maka ditambahkan pada tabel compare, jika dalam tabel compare sudah terdapat data ip yang sama , maka dilakukan perubahan nilai hop. Jika Data sum ke [i][1] lebih besar, maka nilai terkecil tetap dipertahankan pada tabel utama. tetapi jika ternyata data sum ke [i][0] tidak ada pada tabel seting, maka data tersebut merupakan perambatan
(1)
BAB VI PENUTUP
6.1. KESIMPULAN HASIL
1. Algoritma Bellman-Ford dapat diterapkan pada permasalahan pencarian jalur evakuasi terdekat bencana kebakaran di sebuah gedung menuju pintu keluar.
2. Penerapan algoritma Bellman-Ford didukung dengan beberapa aturan, sehingga tercapai hasil yang diinginkan. Aturan-aturan pendukung tersebut adalalah:
Menambah aturan main untuk menghindari looping-loop, yaitu dengan memanfaatkan aturan route poisoning dan Split Horizon
Adanya statik IP yaitu 160.189.0.254 sebagai penanda tujuan akhir dari setiap node ( dalam kenyataan disebut zona aman).
3. Dibutuhkan beberapa aturan RIP untuk tercapainya maksud dari aplikasi ini. Aturan-aturan yang dipakai adalah:
Inisialisasi data baru ( agent yang tidak terhubung langsung ). Agen- agen yang tidak terhubung langsung tidak dapat dikenali oleh agent penerima data, sehingga data baru tidak diperhitungkan maka akan menghasilkan output yang tidak sesuai. Maka menyadur dari protokol RIP, dibutuhkan mengenalan data baru untuk dimasukkan dalam tabel jalur.
(2)
Timer Basic Update pada RIP diaplikasikan pada sistem sebagai waktu selang pertukaran informasi yang dilakukan setiap 30 detik.
6.2. SARAN
Perlu adanya pemicu yang digunakan saat persebaran data jika pada satu titik tertentu terjadi kebakaran maka tetangganya tanpa menunggu 30 detik sudah menyebarkan informasi tersebut ( flag ).
(3)
DAFTAR PUSTAKA
Adhitya, Bayu P. Jurnal Studi dan Implementasi Persoalan Lintasan Terpendek Suatu Graf Dengan Algoritma Djikstra dan Algoritma Bellman-Ford.ITB.Bandung
Halabi, Sam. 2001. Internet Routing Architecture 2nd edition. Cisco Press. Indiana Polis, IN 46240 USA.
Harker. 1993. User participation in prototyping. Susan Harker. Communications of the ACM. Volume 36 , Issue 6 (1993).
Keraf, Servatius Ramatama Setiawan.2004. Implementasi Algoritma Abuaiadh-Kingston Dalam Pencarian Jalur Terpendek Dalam Wilayah Kota Yogyakarta. Skripsi Jurusan Teknik Informatika Universitas Sanata Dharma. Yogyakarta.
Kim Hamilton, Russel Miles, 2006. Learning UML 2.0. O’Reilly.
Modul Praktikul Arsitektur dan Routing Internet.2010.Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma. Yogyakarta.
Pan, Xiaoshan dkk. A Multi-agent Based Framework for the Simulation of Human and Social Behaviors during Emergency Evacuations . Jurnal.
Purtilo, Larson, Clark. 1991. A methodology for prototyping-in-the-large. James Purtilo, Aaron Larson and Jeff Clark. International Conference on Software
(4)
Engineering. Proceedings of the 13th international conference on Software engineering. May 13 – 17, 1991, Austin, TX USA.
Raka Yusuf. Jaringan Komputer 1 ( Modul 11). Pdf file.
Reilly, David & Michael.2002. Java TM Network Programming and Distibuted Computing. Addison Wesley.
Sommerville, 1995. Software Engineering. Ian Sommerville. Fifth Edition. Addison-Wesley. 1995.
Subali, I Made Putu.2004.Implematition RSA method on message delevery based on client-server paradigm. Skripsi Jurusan Teknik Informatika.Universitas Sanata Dharma. Yogyakarta.
Thompson, Wishbow. 1992. Prototyping: tools and techniques: improving software and documentation quality through rapid prototyping. Michael Thompson and Nina Wishbow. Proceedings of the 10th annual international conference on Systems documentation. October 13 – 16, 1992, Ottawa Canada.
(5)
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.
(6)
viii
ABSTRACT
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.