PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PRO OTOTYPE E PENENT TUAN JAL LUR EVA AKUASI BENCANA B A KEBAK KARAN DA ALAM GE EDUNG M MENGGU UNAKAN ALGORIITMA ROUTIN NG DINA AMIS ( AL LGORITM MA BELLM MAN-FOR RD) DENGAN PENERA APAN PR ROTOKOL L RIP
Tugas A Akhir uuntuk memeenuhi salah ssatu syarat kkelulusan P Program Sarjjana (S‐1) Teknik Inforrmatika Oleh : Nama NIM
: M. Vindyy Widyaratih : 0753140 033
JURUSAN N TEKNIK K INFORMA ATIKA F FALKUTA AS SAINS D DAN TEKN NOLOGI UNIVERS SITAS SAN NATA DHA ARMA YOGYAK KARTA 20133
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PROTOTYPE DETERMINATION OF DISASTER FIRE 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 2013
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
“Bersama Tuhan disamping saya , saya dapat melakukan hampir segalanya”
“ 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.
Terimakasih
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
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. Kata kunci : jalur evakuasi, bellman-ford, RIP ( Routing Information Protokol)
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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. Keywords: evacuation routes, bellman-ford, RIP (Routing Information Protocol)
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
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 hentihentinya 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
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
mewarnai hari-hari serta merubah segalanya menjadi lebih indah serta 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
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL ...............................................................................................i 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 2.3 Client Server ( Java Netwok Programing) ................................................... 16 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.5 Pemrograman Java. ...................................................................................... 17 BAB III ANALISA DAN PERANCANGAN SISTEM..................................... 23 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.6 Kelas Routing Tabel Converter .................................................................... 75
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.7 Kelas Setting ................................................................................................. 77 4.8 Kelas Tampilan............................................................................................. 81 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 DAFTAR PUSTAKA ......................................................................................... 107
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR BAB I PENDAHULUAN ........................................................................................ 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 3.16 Antar Muka Tampilan ............................................................................... 49
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.17 Flowchart sistem ....................................................................................... 50 BAB IV IMPLEMENTASI PROGRAM ............................................................... 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 5.16 Papan petunjuk masing-masing komputer skenario recovery .................... 95
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
3.1 Format data tipe 2 ......................................................................................... 30 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 5.4 Tabel Agen D ............................................................................................... 89
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
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 scenario ketika terjadi bencana di jalur evakuasi terdekat (Gbr.1.3). Kemudian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
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 samasama 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 jalur evakuasi dan mengarahkan ke jalur yang paling terdekat untuk keluar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Routing Default. 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).
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
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 tekateki (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 dalam jaringan ( Sam Halabi, 2001).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
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. 2. Timer basic update pada RIP yang digunakan pula sebagai timer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
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 Split Horizon 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
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 router yang terputus. Sebagai contoh, router B menerima update
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
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 Client Server 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 terminalterminal 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
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);
// ......
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
} 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
InetAddress
address,
localAddress
int
int
port,
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
hostname tidak ditemukan maka koneksi tidak dapat dibangun. menciptakan
soket
terhubung
ke
host
tertentu
dan port.
Socket
(String
localAddress,
host,
int
int
port,
throws
localPort)
java.net.UnknownHostException, IOException,
InetAddress
java.io.
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
2.4.3.4.
diketahui
oleh
dua
atau
lebih
alamat
IP).
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gam mbar 3.1 Dauur Prototypee
Tujuann utama darii prototype [[Thompson,, Wishbow - 1992] adallah : Proses revvisi dan penngujian terhaadap produkk dilakukann secara terus menerus, m sehhingga didaapatkan prodduk yang seesuai dengaan yang diinginnkan oleh uuser. Proses testing dann revisi dappat dilakukaan baik secara keseluruhann maupun paartial pada bbagian dari produk.
ODOLOGI METO [Purtilo, L Larson, Claark-1991] m mengambarkkan prosess-proses pada model m prototyype sebagaii berikut: Identifikasi objek, deffinisi dari m masalah yangg harus dipeecahkan dinyataakan secaraa bersama-saama dengann memberikkan ukuran--ukuran yang ppasti terhadaap batasan kesuksesan dari produuk yang diggunakan sebagai benchmarrk. Identifikasi resiko, tidak t ada pengembang p gan produkk yang bersih dan mampuu menghasiilkan produuk yang berrstatus “Tiddak ada Masalaah”, selalu terdapat area a abu-abbu yang m memberikan resiko terhadaap pengembbangan produk. Perjelas dan perrtegas batassan dan permassalahan padaa area tersebbut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
protokool RIP ( Roouting Inforrmation Prootokol) disessuaikan denngan permasalahan yang m muncul. Denah disesuaikan deengan skennario pada ssaat pengapplikasiannyaa, tidak terbataas untuk benntuk denah yyang lain. Skenario terssebut hanyaa sebagai sallah satu contohh kasus dalam m kehidupaan sehari-harri dengan m mempertimbangkan tujuuan dari penelittian. Denah dibuat sedeemikian sedderhana agaar tercapai m maksud dann tujuan manfaaat dari sistem m yang dibuuat.
MPLEMEN NTASI ALG. BELLM MAN-FORD D DALAM SKENARIIO 3.2.1. IM Denah yanng digunakaan disini addalah denahh berdasarkkan skenario yang telah diitentukan ddengan mem mpertimbangkan beberrapa aspek, yaitu merrealisasi tujuan ppenelitian deengan sederrhana sehinggga manfaatt penelitian tercapai. Tiiap-tiap papan ppetunjuk daalam denah pada skennario ini meerepresentassikan routerr-router dalam sebuah s jarinngan. Kemuudian jalan ddalam denahh ini mereppresentasikann jalurjalur yaang terbenttuk pada ssebuah jarinngan. Sehinngga hubunngan antar papan petunjukk pada dennanh ini merepresenta m sikan sebuaah jaringann yang terddiri dari beberappa router. Contohh visualisasinnya terdapaat pada gambbar berikut iini
Gbr.3.2. Visualisasi huubungan anttar layar padda skenario
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3..2.4. TOPO OLOGI JAR RINGAN Berikut m merupakan ggambaran ttopologi jarringan yangg akan diterapkkan sesuaii dengan skenario ddan denah. Topologii yang digunakkan dalam skenario s ini ini adalah peer p to peerr. A
C
B
D
Etherneet
Gam mbar 3.3. Topologi Jariingan
Untuk tiap-tiap t konneksi antar computer , digambarkaan sebagai bberikut: Untuk setiap aplikkasi memilikki server peenerima, seerver pengirrim dan program m utama, yaang memilikki tugas maasing-masingg. server peenerima bertugaas untuk menerima m beentuk data dari serveer pengirim. Yang kemudiian data terrsebut di olah o oleh prrogram utam ma sesuai dengan protokool yang suudah ditentuukan dan dikirim d kem mbali oleh server pengirim.
APLIKA ASI
Gam mbar 3.4. Hubungan H seerver dan cliient di tiap aaplikasi
User seebagai admin dapat menngoperasikaan tiap-tiap antarmuka a aaplikasi untuk m mengatur jallur.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
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 versi
“”
tipe
“”
ip addr
“”
ip des
“”
hop
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Format data Tipe 3 versi
“”
tiipe
“”
ip
“”
tabel
addr datta 1 up to data d 10
tabeel 3.2 Form mat Data tipee 3 33.2.7. DIAG GRAM SEQ QUENCE Diaggram sequeence yang terjadi padda setiap aagent berdaasarkan sskenario yaang mungkin terjadi paada saat prooses membeentuk sebuaah jalur ddengan skennario berhassil dan gagaal dan kemunngkinan-kem mungkinan lain A. skkenario berhhasil B Buka koneksi
Pesan koneksi terb buka
Gbr 3.66. Diagram S Sequence Skeenario Berhassil
B.skenaario gagal
Gbr 3.7. Diaagram Sequeence Skenarioo Gagal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
D. skenario kirim tabbel
E. skenario jalur puutus
Ceek
Cek statu us
Hops
C Cek tabel
U Update
Hops =5 Update ttabel
K Kirim tabel
Kirim m tabel Update
Gbrr 3.8. Diagram m Sequence Skenario kirim tabel dan jalur putuus
F. skennario ketika komp mati secara fisikk
Gbr 3.9. Diaagram Sequeence Skenarioo Komputer Mati M secara ffisik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.2.8. DIAGRAM STATE 3.2.8.1. PROSES PEMBENTUKAN JALUR
Client Ready
Server Listen
(selalu)
(Kirim Tipe 2) Berhasil
Info server gagagal
(gagal)
(berhasil)
Olah Tipe 2
(selalu)
Kirim Tipe 3
(Kirim Tipe 3) Berhasil
(berhasil)
(gagal)
ProsesPembahar uan tabel
Kirim Tipe 3 (selalu)
(sensor hidup ditekan) Nilai Hop = 105 (sensor mati ditekan) Nilai Hop = nilai semula
Gambar 3.10. Diagram State pembentukan jalur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
3.2.8.2. PROSES PENAMBAHAN PADA UPDATE TABEL
Gambar 3.11. Flowchart proses summary pada tabel jalur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
3.2.8.3. PROSES PERBANDINGAN UNTUK MENCARI NILAI TERKECIL PADA PROSES UPDATE TABEL
Start
Status set == true
Ya
Sum [i][2] ==ut[j][2]
Ya
Tidak
Sum[i][1] <=ut[j][1]
End
Tidak
tidak
Tidak
Ubah nilai hop pd tabel utama
ya
Status compare==false
Tambakan pada tab. compare
ya
Tidak
Status ut==false
Ya
Gambar 3.12. Flowchart proses pembadingan nilai untuk mencari nilai terkecil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
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 Tipe1() : void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
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
olahData(versi,ipaddr,ipdest,hop)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
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() <
> + ReceivedServer(String ) <> + 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
Tabel 3.6 Kelas Routing Tabel Converter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
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. LOGIN
<<depends on>>
Mengatur Jalur ADMIN
menghidupkan sensor api
mematikan sensor api
SISTEM SENSOR
Gambar 3.13. Diagram Use Case Sistem Penentuan Jalur Evakuasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3.3.2 NARASI USE CASE Deskripsi Umum Use Case dari tiap-tiap Use Case dijabarkan dalam tabel dibawah ini. Nomor Use Case SPE-001
Nama Use Case
Deskripsi
Mengatur
Use case ini menggambarkan
Koneksi
proses
dimana
pengguna
mengatur koneksi dari tiap-tiap komputer sebagai tanda sesuai dengan skenario denah yang ada. SPE-002
Menjalankan
Use case ini menggambarkan
sensor Hidup
proses
dimana
admin
mengaktifkan sensor api yang mewakili
keadaan
sesungguhnya. SPE-003
Menjalankan
Use case ini menggambarkan
sensor Mati
proses
dimana
mengaktifkan
sensor
admin Mati
sebagai tanda jalur telah pulih dan dapat dilewati mewakili keadaan sesungguhnya. tabel 3.7 Nomor Use Case
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Tanggal : 13 Juli 2011 Versi : 1.0 Pengarang : Vindy Widyaratih Nama Use-case : Nomor Use-case :
Mengatur Jalur
Jenis Use-Case
Prioritas :
SPE-001
Business Requirements
Aktor Bisnis
High
Primer: Aktor Pendukung
admin
lainnya : 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 pengguna ingin melakukan pengaturan jaringan komputer ( agent). Kegiatan Aktor
Langkah
Step 1: User mengisikan
Alternatif:
nama agent pada field yang
Respon Sistem
tersedia
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Step 2 : User mengisikan prioritas dari tiap-tiap koneksi yang dimiliki
Step 3 : User memilih tombol Check untuk menyebarkan data dan menerima data 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 6 : User memilih tombol Tampil Step 7 : Sistem menampilkan hasil pada form Tampilan yang direpresentasikan dalam sebuah tanda arah panah Kesimpulan:
Alt-Step 8: -
Pasca Kondisi:
Use case ini berhenti apabila user memilih tombol Tampil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Aturan Bisnis:
Sistem menampilkan Form Tampilan
Asumsi:
-
Tanggal : 13 Juli 2011 Versi : 1.0 Pengarang : Vindy Widyaratih
Nama Use-case :
Mengjalankan sensor Hidup
Jenis Use-Case
Nomor Use-case :
SPE-002
Business Requirements
Prioritas :
High
Aktor Bisnis
Sistem sensor
Primer: 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 sensor ingin memberikan sebuah kondisi dimana terjadi kebakaran di salah satu titik agent
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
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:
-
Asumsi:
-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Tanggal : 13 Juli 2011 Versi : 1.0 Pengarang : Vindy Widyaratih Nama Use-case :
Mematikan sensor api
Jenis Use-Case
Nomor Use-case :
SPE-003
Business Requirements
Prioritas :
High
Aktor Bisnis
Sistem sensor
Primer: 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 sensor ingin 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 tombol sensor mati
Step 2: Sistem memberikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
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:
-
Asumsi:
-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
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.1 ANTAR MUKA HALAMAN UTAMA
Caption
SISTEM BANTUAN PENENTUAN
JALUR EVAKUASI
Admin
Tampil vindywidyaratih@2011
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.3.3.22 ANTAR M MUKA HA ALAMAN P PENGATUR RAN
Gambar 3.15. Antar M Muka Halam man Pengatuuran Tampillan diatas m merupakan taampilan hallaman penggaturan. Useer dapat melakukan setting. Text Area A diatas uuntuk menam mpilkan ageent-agent lain yang memberikann nama terhhubung ( taabel routingg). Field aggent digunakkan untuk m ageent. Field prioritas p diissi prioritas jarak dari agent tersebbut ke agennt yang terhhubung denngannya. Toombol Check digunakann untuk meencek tabel routing yanng ditampiilkan padaa text areea. Tombool tampil digunakan untuk menampilkan ppapan arah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
3.3.3.3 ANTAR MUKA TAMPILAN
Caption
HOME
FIRE
Gambar 3.16 Antar Muka Halaman Tampilan (Papan Arah)
Text area diatas digunakan untuk menampilkan arah. Tombol
FIRE
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3.4 PERANCANGAN PROSES SISTEM 3.4.1 FLOWCHART SISTEM Pada perancangan ini akan dijelaskan alur kerja sistem yang direpresentasikan dalam bentuk flowchart.
Gambar 3.15. Flowchart sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV IMPLEMENTASI 4.1 APLIKASI YANG DIGUNAKAN Implementasi
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 JARINGAN Pada 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 server.
51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Ethernet
A
B
C
D
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
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)); } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
}
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
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];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
} 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(); } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
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
=
tabel_compare.model.getRowCount()
0; &&
i
statuscomp
< ==
false; i++) { if
(tabel_compare.model.getValueAt(i,
0).equals(ipDest)) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
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))) { if
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
(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 (Integer.valueOf(String.valueOf(tabel_utama.model.get
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
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]; data1[0] = to;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
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("")) { to = (String)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
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] =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
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 =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
(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();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
data baru. Data tersebut dicocokan pada tabel utama, jika data ada maka kembali dilakukan proses perbandingan, jika tidak ada maka dianggap data baru, ditambakan pada tabel compare.
4.3.6 receivedData() Method yang digunakan untuk melakukan penanganan terhadap data, kerena setiap data memiliki spesifikasi tersendiri yaitu penanganan data disesuaikan dengan tipe data tersebut. Data yang diterima berupa data String dipisahkan dengan menggunakan tokenizer untuk medapatkan data versi, tipe, ipaddr, ipdest dan hoopnya. jika menemukan data dengan tipe 2 maka data diolah oleh method Tipe2(),menemukan data dengan tipe 3 maka data diolah oleh method Tipe3(). public void receiveData() throws UnknownHostException { if (rs.k.contains("dua")) { StringTokenizer
st
=
new
=
new
StringTokenizer(rs.k); versi = st.nextToken(); type = st.nextToken(); ipDest = st.nextToken(); ipAddr = st.nextToken(); hop = (st.nextToken()); Tipe2();
} else if (rs.k.contains("tiga")) { String Array[] = new String[4]; StringTokenizer
st
StringTokenizer(rs.k); for (int i = 0; i < 4; i++) { Array[i] = st.nextToken(); } Tipe3(Array[3], Array[2]);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
} }
mula-mula kelas Received Server menerima data string k, kemudian data tersebut diolah oleh method receivedData di kelas ProgramUtama. Mula-mula setiap data yang masuk dilakukan pengecekan apakah data mengandung data tipe 2 atau tipe 3. Setiap data dipisahkan oleh pemisah atau delimiter berupa spasi, sehingga memanfaatkan kelas StringTokenizer untuk memisahkan setiap isi data, yang kemudian data tersebut diolah oleh method Tipe2 untuk penanganan data lebih lanjut, begitu juga yang terjadi pada tipe 3 data yang dikirim berupa String tabel. Setiap data yang dipisahkan oleh token, dimasukkan dalam sebuah array. Data yang digunakan oleh pengolah data tipe 3 adalah data tabel pada array ke 3 dan data ip pengirim pada array ke 2.
4.3.7 setTabelUtama() Merupakan pembentuk tabel utama sebagai tabel awal. Data yang diterima dari tipe 2 di masukan dalam tabel utama sebagai tabel pembentuk awal. public void setTabelUtama() { String data[] = new String[3]; ss.olahData(versi, ipAddr, ipDest, hop);
data[0] = ipDest; data[1] = String.valueOf(hop); data[2] = "0";
if (tabel_utama.model != null) { if (cekStatus(ipDest) == false) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
tabel_utama.model = (DefaultTableModel) tabel_utama.jTableUtama.getModel(); tabel_utama.model.addRow(data);
tabel_utama.jTableUtama.setModel(tabel_utama.model); } } else { tabel_utama.model
=
(DefaultTableModel)
tabel_utama.jTableUtama.getModel(); tabel_utama.model.addRow(data);
tabel_utama.jTableUtama.setModel(tabel_utama.model); }
String
dataTable[][]
=
new
String[tabel_utama.model.getRowCount()][3]; for
(int
i
=
0;
i
<
tabel_utama.model.getRowCount(); i++) { String
kolom1
=
(String)
=
(String)
tabel_utama.model.getValueAt(i, 0); String
kolom2
String.valueOf(tabel_utama.model.getValueAt(i, 1)); String
kolom3
=
tabel_utama.model.getValueAt(i, 2);
for (int j = 0; j < 3; j++) { if (j == 0) { dataTable[i][j] = kolom1; } else if (j == 1) { dataTable[i][j] = kolom2; } else if (j == 2) { dataTable[i][j] = kolom3; } }
(String)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
}
ss.sendTipe5(RoutingTableConverter.TableToString(data Table)); }
mula-mula membentuk array data dengan matrik 3x1 untuk menampung data inputan dari tipe 4. Mula-mula cek apakah tabel utama tidak sama dengan null, jika iya maka cek kembali apakah ip destinasi nya sudah ada dalam tabel, jika sudah ada maka data tidak dimasukkan, jika tidak ada maka data dimasukkan. Jika tabel utama masih berisi null , maka data dimasukan ke dalam tabel. Kemudian data dalam tabel diubah dalam bentuk matrik dua dimensi untuk keperluan pengiriman isi tabel yang ditampung dalam array dataTabel[][].
4.4
Class SendServer.java Merupakan server pengirim yang mempunyai fungsi sebagai client side dari sistem pencarian jalur evakuasi ini. Server ini bertugas untuk mengirimkan data sesuai dengan permintaan. Struktur kelas pada SendServer.java:
4.4.1 olahData(versi,ipaddr,ipdest,hop) Merupakan method dengan parameter String versi, String ipAddr, String ipDest dan String hop yang berguna untuk pengumpul data, yang kemudian akan dikirim dalam satu string. public
void
olahData(String
String ipdes, String hop) { this.versi = versi;
versi,
String
ipaddr,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
this.ipAddr = ipaddr; this.ipDest = ipdes; this.hop = hop; }
4.4.2 sendTipe2() Merupakan method yang berfungsi untuk mengirimkan method tipe 2. public void sendTipe2() { try { final
Socket
s2
=
new
Socket(ipDest,
portTipe1);
Runnable set = new Runnable() {
public void run() { //
Get
output
stream
associated
with the socket OutputStream s1out = null; try { s1out = s2.getOutputStream(); BufferedWriter
bw
=
new
BufferedWriter(new OutputStreamWriter(s1out)); // Send your string! bw.write(versi + " " + "dua" + " " + ipAddr + " " + ipDest + " " + hop); //
Close
the
connection,
not the server socket bw.close(); s2.close(); } catch (IOException ex) { } finally { try { s1out.close(); } catch (IOException ex) {
but
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
} } } };
Thread th = new Thread(set); th.start(); } catch (UnknownHostException ex) { } catch (IOException ex) { JOptionPane.showMessageDialog(null,
"SERVER
" + ipDest + " GAGAL DIHUBUNGI"); } }
4.4.3 sendTipe3(String) Merupakan method yang berfungsi untuk mengirim paket data tipe 5. public void sendTipe5(final String s) { try { final
Socket
s5
=
new
Socket(ipDest,
portTipe1);
Runnable set = new Runnable() {
public void run() { //
Get
output
stream
associated
with the socket OutputStream s1out = null; try { s1out = s5.getOutputStream(); BufferedWriter
bw
=
new
BufferedWriter(new OutputStreamWriter(s1out)); // Send your string! bw.write(versi + " " + "Type5" + " " + ipAddr + " " + s);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
//
Close
the
connection,
but
not the server socket bw.close(); s5.close(); } catch (IOException ex) { } finally { try { s1out.close(); } catch (IOException ex) { } } } };
Thread th = new Thread(set); th.start(); } catch (UnknownHostException ex) { } catch (IOException ex) { JOptionPane.showMessageDialog(null,
"SERVER
" + ipDest + " GAGAL DIHUBUNGI"); } } }
4.5
Class ReceivedServer.java Kelas
ReceivedServer.java
berfungsi
untuk
menerima
informasi data, yang kemudian data tersebut dilempar ke kelas programUtama.java untuk diolah. 4.5.1 responServer ( programUtama) Merupakan method yang digunakan untuk membuka socket untuk menerima data dalam bentuk String. // Register your service on port 9000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
try { s = new ServerSocket(portTipe1); } catch (IOException e) { e.printStackTrace(); }
// Run the listen/accept loop forever while (true) { try { //
Wait
here
and
listen
for
a
connection Socket s1 = s.accept();
BufferedReader
br
=
new
BufferedReader(new InputStreamReader(s1.getInputStream()));
k = br.readLine(); //
System.out.println("data diterima server" +k );
br.close(); s1.close();
prog.receiveData(); } catch (IOException e) { e.printStackTrace(); } } }
4.6
Class RoutingTableConverter.java Merupakan kelas yang digunakan untuk pengolahan data dalam bentuk tabel. Dalam kelas ini terdapat dua method yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
berfungsi masing-masing untuk mengubah data string menjadi array 2 dimensi ( matrik) dan mengubah data array 2 dimensi ( matrik) menjadi data string. 4.6.1 StringtoTable(String) Merupakan method yang berfungsi untuk mengubah data string menjadi data matrik. String result[][] = new String[10][3]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 3; j++) { result[i][j]="-";
}
} String hapuskoma = input.replace(",", " "); String
hapustitikkoma
=
hapuskoma.replace(";", " "); StringTokenizer
st
=
new
StringTokenizer(hapustitikkoma); int i = 0; int j = 0; while (st.hasMoreTokens()) { result[i][j] = st.nextToken(); j++; if (j == 3) { i++; j = 0; } } for (int p = 0; p < 10; p++) { for (int k = 0; k < 3; k++) { System.out.print(result[p][k] ");
+
"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
} System.out.println(); } return result;
4.6.2 TabletoString (array) Merupakan method yang digunakan untuk mengubah bentuk array 2 dimensi ( matrik) menjadi data string. String result = ""; for (int i = 0; i < input.length; i++) { for (int j = 0; j < 3; j++) { String temp = input[i][j]; if (j < 2) { result = result + temp + ","; } else { result = result + temp; } } result = result + ";"; }
return result; }
4.7
Class Setting.java
if (count == 10) { JOptionPane.showMessageDialog(null, "Data Max tercapai"); } else { String datarow[] = new String[3]; datarow[0] = IpTujuanField.getText();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
datarow[1] = (String)
4.7.1 F u n
prioritasComboBox.getSelectedItem(); datarow[2] = (String) jArahComboBox.getSelectedItem();
g
model.addRow(datarow);
s
jTable1.setModel(model);
i
count++; }
Button INPUT Tombol INPUT ini difungsikan untuk memasukan data dalam tabel yang sudah disediakan. Batas maksimal data yang boleh ditampung adalah 10 data. Setiap variabel datan dimasukan dalam kolom-kolom yang sudah disediakan. Kolom pertama untuk data IP tujuan, kolom kedua untuk prioritas ( hop) dan kolom ke tiga untuk data arah. 4.7.2 Fungsi Button UP SERVER condition = 1; Runnable startServer = new Runnable() {
public void run() { try { pu.startServer(); } catch (IOException ex) {
Logger.getLogger(Setting.class.getName()).log(Lev el.SEVERE, null, ex); } } };
Thread start = new Thread(startServer); this.start = start;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
start.start();
Fungsi
tombol
UP
SERVER
disini
berguna
untuk
menghidupkan kenerja thread Server pada kondisi siap menerima data. Thread ini menjalankan method startServer() pada kelas Program Utama. 4.7.3 Fungsi Button RUN run = new Runnable() {
@SuppressWarnings("static-access") public void run() {
int i = 0; int j = jTable1.getModel().getRowCount();
while ( true) { try { runData.sleep(5000); pu.ss.olahData("1", ipField.getText(), String.valueOf(jTable1.getValueAt(i, 0)), String.valueOf(jTable1.getValueAt(i, 1)));
if(String.valueOf(jTable1.getValueAt(i,0)).equalsI gnoreCase("160.189.0.254")){
pu.setIpDest("160.189.0.254");
pu.setHop(String.valueOf(jTable1.getValueAt(i, 1))); pu.setTabelUtama(); } else if
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
(String.valueOf(jTable1.getValueAt(i, 1)).equalsIgnoreCase("105")){ if(i <= j){ pu.ss.sendTipe2(); } } else { pu.ss.sendTipe2(); } i++; if (i == j) { i = 0; j = jTable1.getModel().getRowCount(); }
} catch (InterruptedException ex) {
Logger.getLogger(Setting.class.getName()).log(Leve l.SEVERE, null, ex); } }
}
};
runData = new Thread(run); //
this.runData = runData; runData.start();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Tombol RUN disini berperan sangat penting, karena pada tombol inilah proses eksekusi tiap data dilakukan. Tiap- tiap baris data di eksekusi dengan menampung data pada fungsi OlahData() pada kelas sendServer(). Dilakukan pengecekan terhadap data, Jika data IP Tujuan adalah 160.189.0.254 maka tindakan yang dilakukan adalah langsung memasukan pada tabel utama, sebab ip tersebut merupakan IP fiktif yang bersifat statis sebagai penunjuk pintu keluar. Jika tidak memenuhi syarat pertama, kembali dilakukan pengecekan apakah hop yang pada Ip Tujuan tersebut sama dengan 105, jika syarat terpenuhi maka dilakukan pencatatan data pada tabel compare tanpa melalui proses komparasi, sebab nilai prioritas 105 menandakan bahwa jalur terputus, dan informasi disebarkan. Dalam kondisi ini berupa kondisi interupt maka langsung mengirim tipe data 2. Jika syarat diatas tidak terpenuhi maka dilakukan pengiriman data secara normal sesuai dengan protokol yang sudah ditetapkan, yaitu mengirim data Tipe 1 sebagai konfirmasi koneksi dan data.
4.8
Class Tampilan.java
4.8.1 Fungsi tombol Sensor Hidup SensorMati.setEnabled(true); SensorHidup.setEnabled(false); simpan = new String[pu.set.jTable1.getRowCount()][3]; for (int i = 0; i < pu.set.jTable1.getRowCount(); i++) { String kolom1 = (String) pu.set.jTable1.getValueAt(i, 0); String kolom2 = String.valueOf(pu.set.jTable1.getValueAt(i, 1)); String kolom3 =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
String.valueOf(pu.set.jTable1.getValueAt(i, 2));
for (int j = 0; j < 3; j++) { if (j == 0) { simpan[i][j] = kolom1; } else if (j == 1) { simpan[i][j] = kolom2; } else if (j == 2) { simpan[i][j] = kolom3; } } }
for (int i = 0; i < pu.set.jTable1.getRowCount(); i++) { pu.set.jTable1.setValueAt("105",i ,1); }
Fungsi tombol disini mewakili sistem sensor sesungguhnya. Jika sensor ini dijalankan, maka mula-mula data asli pada tabel setting di simpan dalam bentuk array simpan, untuk melindungi data asli inputan user. Kemudian dilakukan perulangan pada setipa baris data untuk mengubah nilai prioritas menjadi 105, yang menandakan agent tersebut terputus dari semua agent yang terhubung dengannya.
4.8.2 Fungsi tombol Sensor Mati SensorMati.setEnabled(false); SensorHidup.setEnabled(true);
for (int i = 0; i < pu.set.jTable1.getRowCount(); i++) { pu.set.jTable1.setValueAt(simpan[i][1],i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
,1); }
Tombol Seensor Mati mewakili keadaan k dim mana kondissi telah kemballi normal daan sensor tiidak lagi hiddup. Maka proses penggiriman data dilakukan d ddengan menngirim datta asli inpputan user. Maka Dilakukkan perulanngan sebanyyak jumlahh data untuuk mengubaah data menjaddi data asli yyang telah disimpan padda array sim mpan.
4..9
TAMP PILAN SIS STEM
4..9.1 Halam man Utama
Gam mbar.4.2 Haalaman Utam ma
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
4..9.2 Halam man Pengatu uran
G Gambar.4.3 Halaman Peengaturan 4..9.3 Papan Petunjuk
Gambaar.4.4 Papann Petunjuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
4..9.4 Tabel U Utama
Gambar..4.5 Tabel U Utama
4..9.5 Tentan ng Program m
Gambar.4.6 Tentang Program P
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
4..9.6 Peringgatan Serverr Tidak Dappat Dihubun ngi
Gambar.4.77 Pesan peringatan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V A ANALISIS S HASIL
5.1 KELU UARAN PR ROGRAM Skenario 4 kompputer sebagaai agent A , agent B, agent C daan agent D dengan topoloogi sebagai bberikut:
Gam mbar 5.1 Skkenario penggujian 5.1.1. PENG GATURAN Agent A deengan ip 172.23.10.1911 memiliki ttabel pengatturan Tujuan
P Prioritas
Arah
172.23.100.191
0
-
172.23.100.157
1
ATAS
172.23.100.241
1
KANAN N
160.189.00.254
1
KIRI
Tabbel 5.1 Tabeel Agent A
87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
Dalam sisttem tampilann pengaturaannya menjaadi:
Gambar 5.22 Pengaturaan pada kom mputer A Agent B deengan ip 1722.23.10.2411 memiliki tabel t pengatturan Tujuan
P Prioritas
Arah
172.23.100.241
0
-
172.23.100.191
1
KIRI
172.23.100.159
3
KANAN N
Tabel 5.2 Tabel T Agentt B Dalam sisttem tampilann pengaturaannya menjaadi:
Gambaar 5.3 Pengaaturan pada komputer B Agent C deengan ip 1722.23.10.1599 memiliki tabel t pengatturan Tujuan
P Prioritas
Arah
172.23.100.159
0
-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
172.23.100.157
5
ATAS
172.23.100.241
3
KIRI
160.189.00.254
1
KANAN N
Tabel 5.3 Tabel T Agentt C Dalam sisttem tampilann pengaturaannya menjaadi:
Gambar 5.44 Pengaturaan pada kom mputer C Agent D deengan ip 172.23.10.1577 memiliki ttabel pengatturan Tujuan
P Prioritas
Arah
172.23.100.157
0
-
172.23.100.191
1
BAWAH
160.189.00.254
5
KIRI
Tabel 5.4 Tabel T Agentt D Dalam sisttem tampilann pengaturaannya menjaadi:
Gambar 5.55 Pengaturaan pada kom mputer D
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
5.1.2. KONV VERGENSII JALUR Settelah kompputer A, B , C dan D dijalankann sehingga terjadi pertukarann data peengolahan data makaa menghasilkan jalurr yang konvergenn, artinya baahwa didapat hasil akhhir dari prosses pertukarran dan pengolahaan data. H Hasil direprresentasikann berupa aarah sepertti pada tampilan berikut b ini: Komputerr A
Gambar 5.6 Papan pettunjuk kompputer A skennario normaal b dengan tabbel jalur hasiil pengolahaan sebagai berikut:
Gambar 5.7 Tabel padda komputerr A skenarioo normal wa menuju 160.189.0..254 atau ddesebut areaa aman Menunnjukan bahw dengan priioritas 1 tannpa melalui agent tetanggga mempunnyai arah Kiri K
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
Komputerr B
Gambar 5.8 Papan peetunjuk padaa komputer B skenario nnormal Dengan infformasi tabeel jalur sebaagai berikut::
Gambar 5.9 Tabel padda komputerr B skenarioo normal mpat amann (160.1899.0.254) Daari komputer B mennuju ke tem melewati komputer A dengan ipp 172.23.10.191 dengann prioritas tterkecil yaitu 2. Komputerr C
Gambar 5.10 Papan peetunjuk kom mputer C skeenario norm mal Dengan infformasi tabeel routing seebagai berikkut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
Gambar 5.11 Tabel paada komputeer C skenariio normal menuju Dari informasi ttabel diatas, jalur denggan prioritaas terkecil m mputer C menuju m 1600.189.0.2544 tanpa 160.189.0.2254 adalah dari kom m melalui koomputer tettangga denngan priorittas 1. Sehhingga arahh yang dditampilkann adalah Kannan menujuu tempat amaan. Komputerr D
Gambar 5.12 Tabel paada komputeer D skenariio normal Dengan infformasi tabeel jalur sebaagai berikut::
Gambar 5.13 Tabel paada komputeer D skenarrio normal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
wa menuju tempat amaan (160.1899.0.254) Dalam tabel diinformasikan bahw Komputer A ( 172.23.10.191) denggan prioritass terkecil 2 dengan melewati K arah Bawah menuju koomputer A.
5.1.3. GANG GGUAN PA ADA SALA AH SATU A AGENT Jika dalam m skenario komputer A menghiddupkan sensor api menanddakan bahw wa titik terssebut tidak dapat dileewati maka,, setiap kompuuetr akan salling mengirrimkan dataa jalur untukk kemudiann diolah kemballi hingga menghasilkkan jalur bbaru yang konvergenn. Dari skenariio dan prosees tersebut ddihasilkan petunjuk jaluur sebagai berikut:
Kompuuter A
Kompuuter B
Kompuuter C
Kompuuter D
Gambaar 5.14 Papaan petunjuk masing-massing kompuuter pada skeenario kebakaaran Dengann informastii tabel routinng sebagai berikut: b
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
Kompuuter A
Kom mputer B
Kompuuter C
Kom mputer D
Gambar 5.15 Tabel pada masing-masing koomputer skkenario kebaakaran Terlihat baahwa kompuuter B dan D mengubaah arahnya m melalui m tabel kompuuter C untukk menuju ke zona aman ( 160.189.00.254). dalam informasi jalur juuga dijelaskkan bahwa menuju 172.23.10.1991 atau kompuuter A
m mempunyai
prioritas
tertinggi
yaitu
105
yang
menanddakan bahw wa jalur tidakk dapat dilewati.
5.1.4. RECOVERY JAL LUR ( PEM MULIHAN JJALUR) Dapat terjaadi kemungkinan jalur yang sebeluumnya menngalami gangguuan
dapat
kompuuter
melakkukan
berfungsii
kembali..
penngiriman
Sehinggaa
informasi.
masing--masing Setelah
terjadi
pengolahan inform masi maka dihasilkan d innformasi jaluur yang konnvergen sehinggga menghassilkan jalur ssebagai beriikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
Kompuuter A
Kom mputer B
Kompuuter C
Kom mputer D
Gambar 5.16 Papaan petunjukk masing-maasing kompuuter pada skkenario recovery jaluur Dengann informasi tabel jalur ssebagai beriikut: Kompuuter A
Kom mputer B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
Kompuuter C
Kom mputer D
G Gambar 5.17 Tabel padda masing-m masing komp mputer skenaario recoveryy jalur
5.2 UJI B BLACK BOX X DAN WH HITE BOX 5.2.1
UJI BLAC CK BOX Fungsi
H Hasil Pengu ujian B Berhasil
Keteranggan
Tidak Berhasil
Informasi
data
jaalur
di
informasi
data
jaalur
inputkan kedalam tabel (
dapat
dimasukkkan
tombol inpput)
dalam tabbel pengatuuran jalur.
Menghapuus data padaa tabel
Data dapaat dihapus jika user mengginginkan ddata dihapus
Data tidaak lebih ddari 10
Data
ttidak
daapat
diinputkann kembali jika
dalam tabeel pengaturnn jalur
sudah
bberjumlah
10
data Tombol UpServer U bberfungsi menjalankkan server penerima
Tombol
UpSerrver
berfungsi dengan baik b
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
untuk membuka socket guna menerima data Threat
berfungsi
mengirimkan
data-data
(
Threat yang berfungsi untuk
Tombol Run)
data
mengirimkan secara
dapat
berkala
berjala
sesuai
dengan algoritma. Tabel menunjukan nilai yang
sesuai pada setiap komputer
Tabel menunjukan nilai yang
sesuai
dengan
prhitungan teoritis. Papan petunjuk menunjukkan
Papan
petunjuk,
arah yang benar pada setiap
menunjukan arah yang
komputer
benar
sesuai
dengan
hasil perhitungan jarak terpendek. Tombol
Sensor
berfungsi
mengubah
hidup
data
Nilai prioritas berubah menjadi
prioritas menjadi 105
105
ketika
tombol Sensor Hidup dipilih
yang
emnandakan pada
titik
bahwa tersebut,
terjadi kebakaran. Tombol
Sensor
mati
berfungsi
mengembalikan
data seperti semula
Nilai
prioritas
pada
tabel kembali seperti data
awal
dan
menjalankan
proses
pengiriman data. Tabel 5.5 Tabel Uji Black Box
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
B Berdasarkann uji fungsi diatas, semua funggsi dalam program berjalan b ddengan sem mestinya. 5.2.2
UJI WHITE BOX Pengujian berdasarkaan teori algoritma Bellm man-Ford mputer. Tabel awaal yang dimiiliki masingg-masing kom Komputerr A A B C D S
0 1 ‐ 1 1
Kom mputer B
‐‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
A B C D S
1 0 3 ‐ ‐
‐ ‐ ‐ ‐ ‐
Kom mputer C A B C D S
‐ 3 0 5 1
‐ ‐ ‐ ‐ ‐
Komputer D A B C D S
1 ‐ 5 0 ‐
‐ ‐ ‐ ‐ ‐
Proses uppdate tabel k komputer A
Kompuuter A menddapat inform masi tabel jaalur dari D A B C D S
1 ‐ 5 0 ‐
‐ ‐ ‐ ‐ ‐
A B C D S
1 0 3 ‐ ‐
‐ ‐ D ‐ ‐
+1=
A B C D S
2 ‐ 6 1 ‐
D D D D D
A B C D S
0 1 ‐ 1 1
‐ ‐ ‐ ‐ ‐
A B C D S
0 1 6 1 1
‐ ‐ D ‐ ‐
A B C D S
2 1 4 ‐ ‐
B B B B B
A B C D S
0 1 6 1 1
‐ ‐ D ‐ ‐
A B C D S
0 1 4 1 1
‐ ‐ B ‐ ‐
masi tabel jaalur dari B Kompuuter A menddapat inform +1=
Proses update tabel k komputer B
Kompuuter B menddapat inform masi tabel jaalur dari C
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
A B C D S
‐ 3 0 5 1
A B C D S
‐ 6 3 8 4
C C C C C
A B C D S
1 0 3 ‐ ‐
‐ ‐ ‐ ‐ ‐
A B C D S
1 0 3 8 4
‐ ‐ C C
masi tabel jaalur dari A Kompuuter B menddapat inform A B C D S
‐ ‐ ‐ ‐ ‐
0 1 ‐ 1 1
‐ ‐ ‐ ‐ ‐
A B C D S
1 2 ‐ 2 2
A A A A A
A B C D S
1 0 3 2 2
‐ ‐ ‐ A A
A B C D S
1 0 3 2 2
‐ ‐ ‐ A A
A B C D S
6 3 0 5 1
D ‐ ‐ ‐ ‐
A B C D S
4 3 0 5 1
B ‐ ‐ ‐ ‐
Proses uppdate tabel komputer C
Kompuuter C menddapat inform masi tabel jaalur dari D A B C D S
1 ‐ 5 0 ‐
‐ ‐ ‐ ‐ ‐
A B C D S
6 ‐ 11 5 ‐
D D D D D
A B C D S
‐ 3 0 5 1
‐ ‐ ‐ ‐ ‐
Kompuuter C menddapat inform masi tabel jaalur dari B A B C D S
1 0 3 ‐ ‐
‐ ‐ ‐ ‐ ‐
A B C D S
4 3 6 ‐ ‐
B B B B B
A B C D S
6 3 0 5 1
D ‐ ‐ ‐ ‐
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
komputer D Proses uppdate tabel k
Kompuuter D menddapat inform masi tabel jaalur dari C A B C D S
‐ 3 0 5 1
‐ ‐ ‐ ‐ ‐
A B C D S
‐ 8 5 10 6
D D D D D
A B C D S
1 ‐ 5 0 ‐
‐ ‐ ‐ ‐ ‐
A B C D S
1 8 5 0 6
A B C D S
1 2 5 0 2
‐ D ‐ ‐ D
masi tabel jaalur dari A Kompuuter D menddapat inform A B C D S
0 1 ‐ 1 1
‐ ‐ ‐ ‐ ‐
A B C D S
1 2 ‐ 2 2
A A A A A
A B C D S
1 8 5 0 6
‐ D ‐ ‐ D
‐ A ‐ ‐ A
melihat pakeet data darii proses Pengujian menggunakkan wireshaark untuk m komunikasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
Gambar 5.18 Capturee Dari kompputer D ke K Komputer A
Gambar 5.19 Capturee Dari kompputer A ke kkomputer D
Pengujian pergerakann data sesuaii proses algooritma yangg diambil daari hasil output netb tbean saat prrogram berjalan. Contoh : K Komputer D Pertama kkali komputeer D runningg: Hasil penggambilan daata : Data Client 1172.23.10.157tiipe 2 Data TempT Tabel/tabelditerrima PENGIRIM :172.23.10.1577 172.23.10.1577 0 Data sum di tipe lima : ----------------------------172.23.10.1577 0 172.23.10.157
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
Data COMPARE : ---------------------------172.23.10.157 0 -
Komputer D menerima data tabel informasi dari komputer A ( 172.23.10.191) proses I : Data TempTabel/tabelditerima PENGIRIM :172.23.10.191 172.23.10.191 0 172.23.10.157 1 Data sum di tipe lima : ---------------------------172.23.10.191 1 172.23.10.191
172.23.10.157 2 172.23.10.191
Data COMPARE : ---------------------------172.23.10.157 0 172.23.10.191 1 -
Komputer D menerima data tabel informasi dari komputer C ( 172.23.10.159) proses II : Data Client 172.23.10.191tipe 2 Data TempTabel/tabelditerima PENGIRIM :172.23.10.159 172.23.10.159 0 172.23.10.157 5 Data sum di tipe lima : ---------------------------172.23.10.159 5 172.23.10.159
172.23.10.157 10 172.23.10.159
Data COMPARE : ---------------------------172.23.10.157 0 -
172.23.10.191 1 -
Komputer D mengupdate informasi dari dirinya sendiri (proses III) :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
Data TempTabel/tabelditerima PENGIRIM :172.23.10.157 172.23.10.157 0 172.23.10.191 1 172.23.10.159 5 Data sum di tipe lima : ---------------------------172.23.10.157 0 172.23.10.157
172.23.10.191 1 172.23.10.157
172.23.10.159 5 172.23.10.157
Data COMPARE : ---------------------------172.23.10.157 0 -
172.23.10.191 1 -
172.23.10.159 5 -
Komputer D mendapat informasi tabel jalur dari komputer A : Data TempTabel/tabelditerima PENGIRIM :172.23.10.191 172.23.10.191 0 172.23.10.157 1 172.23.10.241 1 160.189.0.254 1 Data sum di tipe lima : ---------------------------172.23.10.191 1 172.23.10.191
172.23.10.157 2 172.23.10.191
172.23.10.241 2 172.23.10.191
160.189.0.254 2 172.23.10.191
Data COMPARE : ---------------------------172.23.10.157 0 -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
172.23.10.191 1 -
172.23.10.159 5 -
172.23.10.241 2 172.23.10.191
160.189.0.254 2 172.23.10.191
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
105
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
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 ).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 AbuaiadhKingston 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
107
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
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. AddisonWesley. 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.