• Tidak ada hasil yang ditemukan

Prototype penentuan jalur evakuasi bencana kebakaran dalam gedung menggunakan algoritma routing dinamis (Alg. Bellman-Ford) dengan penerapan protokol RIP - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Prototype penentuan jalur evakuasi bencana kebakaran dalam gedung menggunakan algoritma routing dinamis (Alg. Bellman-Ford) dengan penerapan protokol RIP - USD Repository"

Copied!
125
0
0

Teks penuh

(1)
(2)

EVACUATION ROUTES IN BUILDINGS USING DYNAMIC

ROUTING ALGORITHM (Bellman-Ford algorithm) WITH

APPLICATION PROTOCOL RIP

A Thesis

Presented as Partial Fullfillment of the Requirements To Obtain the Sarjana Komputer Degree In Study Program of Informatics Engineering

By :

Name : M. Vindy Widyaratih

NIM : 075314033

INFORMATICS ENGINEERING DEPARTMENT

FACULITY OF SCIENCE AND TECHNOLOGY

Sanata Dharma University

YOGYAKARTA

(3)
(4)
(5)

“ Fokuslah pada kebaikan , bukan pada tujuan akhir”

- Ine Febrianti –

“ Waktu terbaik untu berbahagia adalah sekarang. Tempat untuk berbahagia adalah disini. Dan cara terbaik untuk berbahagia adalah membahagiakan orang lain”

- Mario Teguh-

“ Everybody wants to go to heaven, but no one wants to die to go there”

- B.B. King-

“The beautiful thing about learning is nobody can take it away from you” -BB.King-

“ In order to change the world, you have to get your head together first” - Jimi Hendrix-

Skripsi ini saya persembahkan untuk:

Tuhan Yesus Kristus atas kelimpahan rahmat yang tak terkira, Mama dan Papa saya tersayang atas semua yang telah diberikan, vanny, vio, sahabat-sahabat saya yang dengan penuh kasih mensupport saya serta semua dosen TI di Universitas Sanata Dharma.

(6)
(7)

Gedung mempunyai penanda jalur evakuasi bencana yang bersifat statis, yaitu tidak dapat berubah. Akan timbul masalah jika titik terjadinya bencana pada jalur evakuasi, sehingga akan mengarahkan orang pada titik bahaya. Maka diperlukan solusi untuk memecahkan masalah tersebut dengan membuat jalur evakuasi bersifat dinamis, yaitu bisa berubah ke arah menuju jalur yang lebih aman. Untuk menyelesaikanya dibutuhkan beberapa cara kerja dan aturan RIP ( Routing Information Protokol) dan algoritma penghitung jarak terpendek

Bellman-Ford.

Tujuan penelitian ini adalah menerapkan Algoritma pencarian jarak terpendek Bellman-Ford dan beberapa aturan dari RIP ( Routing Information Protokol) dalam proses menentukan jalur evakuasi bencana kebakaran dalam

gedung. Sehingga menghasilkan output berupa aplikasi prototipe yang dapat menampilkan jalur evakuasi bencana kebakaran yang bersifat dinamis.

(8)

The building has a disaster evacuation route markers that are static, that

can not be changed. But it could become a problem if the point of the disaster on

the evacuation route, so it will drive people to the danger point. Then needed a

solution to solve this problem by creating dynamic evacuation routes, which could

change the direction towards a more secure path. For menyelesaikanya needed

some way of working and the rules of RIP (Routing Information Protocol) and

calculating the shortest distance algorithm Bellman-Ford.

The purpose of this study is to apply the search algorithm Bellman-Ford

shortest distance and some of the rules of the RIP (Routing Information Protocol)

in the process of determining the line of fire in a building evacuation. Resulting

output prototype application that can display evacuation routes catastrophic fires

that are dynamic.

(9)
(10)

Puji dan syukur kehadirat Tuhan Yang Maha Esa, karena pada akhirnya penulis dapat menyelesaikan penelitian tugas akhir ini yang berjudul “Pengenalan Pola Klasifikasi Daftar Ulang Calon Mahasiswa Baru Universitas Sanata Dharma dengan Algoritma Reduct Based Decision Tree (RDT)”.

Penelitian ini tidak akan selesai dengan baik tanpa adanya dukungan, semangat, dan motivasi yang telah diberikan oleh banyak pihak. Untuk itu, penulis ingin mengucapkan terima kasih kepada:

1. Ibu Ridowati Gunawan, S.Kom., M.T. selaku ketua program studi Teknik Informatika.

2. Bapak H. Agung Hernawan, S.T., M.Kom. selaku dosen pembimbing atas kesabaran, waktu, dan kebaikan yang telah diberikan.

3. Bapak Albertus Agung Hadhiatma, S.T., M.T selaku dosen penguji atas kritik dan saran yang telah diberikan.

4. Pihak sekretariat dan laboran Fakultas Sains dan Teknologi yang turut membantu penulis dalam menyelesaikan tugas akhir ini.

5. Kedua orang tua, bapak Benedictus Suwandi dan ibu Luciana Etik Widyastuti atas kasih sayang, semangat, dan dukungan yang tak henti-hentinya diberikan kepada penulis.

6. Adik-adik saya Lourencia Vanny dan Videllia Violina atas dukungan dan doa yang tak henti-hentinya diberikan kepada penulis.

7. Atanasius Tendy, Ignatius Wijaya Kusuma dan Andreas Caesario E.B Terimakasih atas bantuannya yang tak terhingga, sehingga penulis mampu menyelesaikan semua ini. Terimakasih juga atas doa dan dukungannya. Semoga Tuhan Memberkati

(11)

terimakasih atas pelajaran hidup yang tidak pernah saya lupakan.

9. Teman-teman RPL, Tendy, Sinta, Beta, Obi. Terimakasih atas banyak pengalaman yang didapat dalam setiap diskusi

10.Seluruh Teman-teman TI 2007 lainnya atas segala kebersamaan dan dukungan yang selalu diberikan kepada penulis.

11.Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu per satu.

Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu, penulis sangat membutuhkan saran dan kritik untuk perbaikan di masa yang akan datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi semua pihak.

(12)

HALAMAN JUDUL (INGGRIS) ... ii

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

PERNYATAAN KEASLIAN KARYA ... vi

ABSTRAK ... vii

ABSTRACT ... viii

LEMBAR PERSETUJUAN PUBLIKASI ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvii

BAB IPENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 5

1.3 Tujuan Penelitian ... 5

1.4 Luaran Penelitian ... 5

1.5 Metodologi Penelitian ... 6

1.6 Sistematika Penulisan ... 6

BAB II LANDASAN TEORI ... 8

2.1 Teori Internet Routing ... 8

2.2 Algoritma Bellman-Ford ... 11

2.2.1 Pengertian ... 11

2.2.2 Pengaplikasian Alg. Bellman-Ford pada sistem ... 12

(13)

3.1 Metode Pengembangan Sistem ... 23

3.2 Analisis Sistem ... 25

3.2.1 Implementasi Alg. dalam sistem ... 26

3.2.2 Kebutuhan Sistem ... 27

3.2.3 Konsep Kerja Sistem ... 27

3.2.4 Topologi Jaringan ... 28

3.2.5 Proses Pembentukan Jalur ... 29

3.2.6 Format Data ... 30

3.2.7 Diagram Sequence ... 31

3.2.8 Diagram State ... 33

3.2.9 Diagram Kelas ... 36

3.3 Perancangan Umum Sistem ... 39

3.3.1 Diagram Use Case ... 39

3.3.2 Narasi Use Case ... 40

3.3.3 Perancangan Antar Muka ... 47

3.3.3.1 Antar Muka Halaman Utama ... 47

3.3.3.2 Antar Muka Halaman Pengaturan ... 48

3.3.3.3 Antar Muka Papan Arah ... 49

3.4 Perancangan Proses Sistem ... 50

3.4.1 Flowchart Sistem ... 50

BAB IV IMPLEMENTASI PROGRAM ... 51

4.1 Aplikasi yang digunakan ... 51

4.2 Implementasi Topologi Jaringan ... 51

4.3 Kelas Program Utama ... 52

4.4 Kelas Send Server ... 71

4.5 Kelas Received Server ... 74

(14)

4.9 Tampilan Sistem ... 83

BAB V ANALISIS SISTEM ... 87

5.1 Keluaran Program ... 87

5.2 Uji Black Box dan Uji White Box ... 96

BAB VI PENUTUP ... 105

6.1 Kesimpulan ... 105

6.2 Saran ... 106

(15)

1.2 Jaringan layar petunjuk evakuasi sesaui denah ... 2

1.3 Jaringan layar petunjuk ketika terjadi kebakaran ... 3

1.4 Jaringan layar petunjuk ketika terjadi kebakaran dan solusinya ... 3

BAB II LANDASAN TEORI ... 2.1 Proses Inisialisasi tabel Routing ... 12

2.2 Proses Terbentuknya Tabel Routing ... 13

2.3 Proses Pertukaran dan update tabel routing ... 14

2.4 Contoh Domain yang menggunakan RIP ... 14

2.5 Ketidak Stabilan data pada Alg. Bellman-Ford ... 15

BAB III ANALISA DAN PERANCANGAN SISTEM ... 3.1 Daur Prototipe ... 24

3.2 Visualisasi Hubungan antar layar pada skenario ... 26

3.3 Topologi Jaringan ... 28

3.4 Hubungan Server dan CLient ditiap aplikasi ... 28

3.5 Hubungan pengguna dan aplikasi ... 29

3.6 Diagram Sequence Skenario Berhasil ... 31

3.7 Diangram Sequence Skenario Gagal ... 31

3.8 Diagram Sequence Kirim Tabel ... 32

3.9 Diagram Sequence skenario komputer mati secara fisik ... 32

3.10 Diagram State pembentukan jalur ... 33

3.11 Flowchart proses penambahan pada tabel jalur ... 34

3.12 Flowchart proses perbandingan untuk mencari nilai terkecil ... 35

3.13 Diagram Use Case ... 39

3.14 Antar Muka Halaman Utama ... 47

3.15 Antar Muka Halaman Pengaturan ... 48

(16)

4.2 Halaman Utama ... 83

4.3 Halaman Pengaturan ... 84

4.4 Papan petunjuk ... 84

4.5 Tabel Utama ... 85

4.6 Tentang Program ... 85

4.7 Peringatan Server Tidak Dapat dihubungi ... 86

BAB V ANALISIS SISTEM ... 5.1 Skenario Pengujian ... 87

5.2 Pengaturan Pada komputer A ... 88

5.3 Pengaturan Pada komputer B ... 88

5.4 Pengaturan Pada komputer C ... 89

5.5 Pengaturan Pada komputer D ... 89

5.6 Papan Petunjuk A skenario normal ... 90

5.7 Tabel A skenario normal ... 90

5.8 Papan petunjuk B skenario normal ... 91

5.9 Tabel B skenario normal ... 91

5.10 Papan Petunjuk C skenario normal ... 91

5.11 Tabel C skenario normal ... 92

5.12 Papan Petunjuk D skenario normal ... 92

5.13 Tabel D skenario normal ... 92

5.14 Papan petunjuk masing-masing komputer skenario kebakaran ... 93

5.15 Tabel pada masing-masing komputer skenario kebakaran ... 94

(17)

3.2 Format data tipe 3 ... 31

3.3 Kelas Program Utama ... 37

3.4 Kelas Send Server ... 37

3.5 Kelas Received Server ... 38

3.6 Kelas Routing Tabel Converter ... 38

3.7 Nomor Use Case ... 40

5.1 Tabel Agen A ... 87

5.2 Tabel Agen B ... 88

5.3 Tabel Agen C ... 88

(18)

BAB I

PEMIKIRAN DASAR

1.1. LATAR BELAKANG

Seperti yang kita ketahui bahwa gedung mempunyai ruang-ruang yang

banyak dan lebih rumit dibandingkan dengan rumah atau industri kecil. Untuk

menanggulangi bencana kebakaran selain disediakan tabung pemadam api juga

terdapat tanda-tanda jalur evakuasi bencana yang terdapat dalam setiap pintu

gedung. Tanda-tanda tersebut mengarahkan orang ketika menyelamatkan diri

dari sebuah bencana. Biasanya jalur evakuasi merupakan jalur terpendek keluar

dari gedung tersebut.

Permasalahan muncul ketika tempat terjadinya bencana merupakan jalur

evakuasi. Tempat terjadinya kebakaran kemungkinan pintu keluar menuju tempat

yang lebih aman atau pintu-pintu yang mengarahkan orang ke jalur aman. Maka

orang akan kebingungan untuk mencari jalan keluar dan kemungkinan terburuk

adalah orang akan terjebak dalam gedung tersebut. Hal tersebut yang merupakan

kekurangan jalur-jalur evakuasi yang bersifat statis. Maksud dari statis disini

adalah jalur-jalur tersebut tidak dapat berubah menunjuk ke jalur yang lebih

aman secara otomatis.

Berdasarkan pemikiran diatas, maka munculah ide untuk membuat

prototype tanda-tanda jalur evakuasi yang bersifat dinamis. Artinya ketika terjadi bencana kebakaran pada jalur evakuasi maka dengan sendirinya tanda-tanda

tersebut akan berubah mengarahkan ke jalur yang lebih aman. Ide ini

berdasarkan pada proses routing dinamis pada sebuah jaringan komputer yang

menghubungkan antar router dengan mengacu pada teori pencarian jarak

(19)

Sebagai penjelasan , berikut adalah salah satu contoh kasus penerapan

penentuan jalur evakuasi dinamis dalam denah gedung yang sederhana.

Gbr.1.1Denah Sebuah Gedung

Sesuai skenario denah diatas terdapat empat papan petunjuk jalur

evakuasi. Dalam denah tersebut terdapat dua pintu keluar. Dalam contoh

dibawah ini akan dijelaskan skenario penentuan jalur evakuasinya.

Gbr.1.2.Jaringan Layar Petunjuk Evakuasi sesuai dengan Denah

(20)

Gbr.1.3. Jaringan Layar Petunjuk ketika terjadi kebakaran

Ditetapkan skenario jika salah satu pintu keluar terjadi kebakaran,

sememntara pintu keluar tersebut merupakan jalur terpendek menuju zona aman,

maka sistem akan kembali saling bertukar informasi tabel jalur sehingga

terbentuk jalur baru seperti pada gambar dibawah ini :

Gbr.1.4. Jaringan Layar Petunjuk ketika terjadi kebakaran dengan solusinya

Gambar diatas merupakan gambar jaringan layar petunjuk jalur evakuasi

sesuai dengan denah berdasarkan skenario (Gbr.1.2). Gambar berikutnya adalah

(21)

solusi dengan menggunakan algoritma routing dinamis terdapat digambar

selanjutnya (Gbr.1.4). Seperti telah dijelaskan di skenario diatas.

Routing dinamis merupakan sebuah proses routing dimana ketika routing

protokol digunakan untuk menemukan network dan melakukan update routing table pada router (Raka Yusuf, 2010). Jadi dengan demikian setiap router

memiliki informasi mengenai router-router dalam sebuah jaringan / network. Berdasarkan konsep routing dinamis seperti dijelaskan diatas maka dalam hal ini proses routing dianalogikan menjadi sebuah proses evakuasi bencana kebakaran pada sebuah gedung. Dimana jalur-jalur evakuasi dianalogikan

menjadi sebuah router. Kemudian orang-orang yang akan menyelamatkan diri

dianalogikan menjadi sebuah data dan bencana kebakaran itu sendiri

dianalogikan sebuah kejadian dimana terdapat router dalam eternet yang putus.

Dengan begitu terlihat persamaan perilaku antara data dan manusia. Yaitu

sama-sama mencari jalur yang aman agar dapat mencapai tujuan, dalam hal ini

manusia menuju pintu keluar

Terdapat beberapa algoritma routing untuk menyelesaikan permasalahan

diatas. Algoritma – algoritma tersebut adalah untuk menyelesaikan permasalahan

diatas dipilih Algoritma Bellman-Ford. Algoritma Bellman-Ford memungkinkan sebuah router menyalin table routing secara periodik dari router ke router. Perubahan table routing ini diupdate oleh router yang saling berhubungan ketika terjadi perubahan topologi (Aditya Bayu, 2008). Algoritma ini disebut juga

Algoritma Bellman-Ford. Algoritma ini lebih cocok diterapkan pada pembuatan jalur evakuasi sebab jaringan tidak terlalu besar, hanya melibatkan beberapa

agent. Dan setiap agent dapat menampung informasi dari agent-agent yang lain.

Sehingga saat terjadi kebakaran agent-agent tersebut akan cepat mengupdate

(22)

1.2. RUMUSAN MASALAH DAN BATASAN MASALAH

Rumusan Masalah :

Menerapkan ide proses pencarian jarak terpendek dalam pementuan jalur

evakuasi bencana kebakaran pada gedung dengan memanfaatkan Algortima

Bellman-Ford dengan dilengkapi aturan-aturan yang mengacu pada protokol

routing RIP ( Routing Information Protokol). Batasan Masalah :

1.Aplikasi ini adalah bentuk prorotipe sehingga tidak diaplikasikan nyata pada

gedung.

2.Aplikasi ini akan diimplementasikan dan di uji cobakan pada kurang lebih

empat perangkat komputer, dengan skenario denah tersendiri dan sederhana

demi tercapai tujuan penelitian dikarenakan efisiensi alat. Hasil akan sama

jika diaplikasikan pada lebih dari empat komputer.

1.3. TUJUAN PENELITIAN

Tujuan penelitian ini adalah :

1. Menerapkan ide proses pencarian jarak terpendek ke dalam penentuan jalur

evakuasi bencana kebakaran pada sebuah gedung.

2. Menerapkan konsep routing dinamis dengan menggunakan Algoritma

Bellman-Ford pada penentuan jalur evakuasi bencana pada gedung.

1.4. LUARAN PENELITIAN

Luaran dari penelitian ini adalah sebuah program aplikasi ( prototype ) yang berfungsi sebagai penentuan jalur evakuasi bencana kebakaran di sebuah gedung

(23)

1.5. METODOLOGI PENELITIAN

Dalam melaksanakan pengumpulan data untuk penyusunan laporan

maka metologi penelitian yang akan dilakukan adalah sebagai berikut:

1. Metodologi Kepustakaan (Literatur).

Pengumpulan data yang dilakukan dengan cara membaca referensi

berupa buku – buku, laporan – laporan, karya ilmiah, makalah di

internet dan sebagainya yang berhubungan dengan penulisan tugas

akhir ini.

2. Merancang Program.

Penulis tahap ini penulis mencoba menganalisa sistem yang akan

dibuat serta merancang protokol pertukaran data , tampilan antar muka

(user interface) yang akan di gunakan pada sistem yang akan di buat.

3. Implementasi Perangkat Lunak.

Setelah perancangan selesai di buat penulis mengimplementasikan

rancangan program ke bahasa program sesungguhnya.

4. Pengujian dan analisa

Hasil keluaran program diuji dan analisa menggunakan metode Black box dan White box.

1.6. SISTEMATIKA PENULISAN

Sistematika penulisan laporan ini terbagi atas enam bab dengan garis besar

sebagai berikut:

BAB I. PENDAHULUAN

Berisi latar belakang, perumusan masalah, tujuan, metodologi penelitian, batasan

masalah dan sistematika penulisan laporan.

BAB II. DASAR TEORI

Bab ini berisi landasan teori yang dipakai untuk pembahasan penulisan tugas

(24)

BAB III. ANALISIS SISTEM DAN PERANCANGAN

Bab ini merupakan bab yang membahas tentang analisa dan gambaran

perancangan sistem aplikasi yang dibuat.

BAB IV. IMPLEMENTASI

Bab ini berisi implementasi dari rancangan sistem yang dibuat pada bab

sebelumnya serta mengimplementasikan densain ke dalam program

sesungguhnya.

BAB V. ANALISIS HASIL

Bab ini berisi pengujian pengiriman pesan, test pesan dalam database serta

analisa hasil dari test.

BAB VI. PENUTUP

Bab ini berisi tentang kesimpulan dari pembahasan dan implementasi yang telah

(25)

BAB II

LANDASAN TEORI

2.1.TEORI INTERNET ROUTING

Routing

Routing dalam jaringan merupakan suatu protokol atau aturan yang digunakan untuk mendapatkan rute atau jalur dari satu jaringan ke jaringan

lain yang dituju. Dalam tiap jaringan memiliki router sebagai jembatan penghubung antar jaringan. Informasi router secara dinamis atau statis disebarkan secara periodik ke router lain.

Dalam routing dikenal tiga jenis bentuk routing, yaitu Routing Statik,

Routing Dinamis, dan RoutingDefault. Routing Statik

Mengacu pada rute dengan tujuan yang dicantumkan secara manual,

atau statis seperti namanya didalam router. Jaringan ini tidak bergantung pada keberadaan dan keadaan jaringan itu sendiri.

Routing Default

Lalu lintas tujuan tidak diketahui. Hal ini merupakan cara termudah

domain routing terhubung dengan titik terluar. Routing Dinamis

Mengacu pada protokol interior dan eksterior. Pencapaian tujuan pada

jaringan bergantung pada keberadaan dan keadaan jaringan. Jika tujuan

sedang sedang down, rute menghilang dari tabel routing, dan dibentuklah rute baru hingga mencapai tujuan.

Konsep Protokol Routing

(26)

Protokol Routing Link state ( OSPF )

Link state routing protokol, seperti sistem jalan terpendek terbuka pertama dan menengah untuk sistem intermediate, memanfaatkan model

database direplikasi didistribusikan dan dianggap protokol routing yang lebih

kompleks. protokol link state bekerja atas dasar bahwa router bertukar informasi elemente disebut link state, yang membawa informasi tentang link dan node dalam domain routing. ini berarti bahwa router menjalankan protokol link state tidak bertukar tabel routing sebagai jarak vektor protokol lakukan. agak, mereka bertukar informasi tentang tetangga yang berdekatan

dan jaringan dan memasukkan informasi metrik terkait dengan koneksi.

salah satu cara untuk melihat link state routing protokol adalah sebagai teka-teki jigsaw. setiap router dalam jaringan menghasilkan sepotong teka-teki (link state) yang menjelaskan dirinya sendiri dan mana terhubung ke potongan puzzle yang berdekatan. juga menyediakan daftar metrik yang

sesuai untuk koneksi dengan setiap bagian dari teka-teki. sepotong router

lokal jika teka-teki ini kemudian andal didistribusikan ke seluruh jaringan,

router oleh router, melalui mekanisme flooding, sampai semua node dalam domain telah menerima salinan potongan puzzle. distribusi selesai, setiap

router dalam jaringan memiliki salinan dari setiap bagian dari teka-teki dan menyimpan potongan teka-teki dalam apa yang disebut sebagai database link state. setiap router kemudian dengan sendirinya mengkonstruksi teka-teki, hasil yang merupakan salinan identik dari seluruh teka-teki pada setiap router

(27)

Protokol Routing Distance Vektor ( RIP )

Menggunakan prinsip algoritma Bellman-Ford, yang merupakan nama

penemu algoritma pencarian jarak terpendek, yaitu algoritma Bellman-Ford.

setelah memilih jalur terbaik, router kemudian mengirimkan vektor jarak ke tetangganya, memberitahu mereka tentang awalan mencapai tujuan dan metrik

yang sesuai terkait dengan jalan itu telah memilih untuk mencapai awalan.

Secara paralel, tetangga juga menghitung jalur terbaik ke setiap tujuan yang

tersedia dan kemudian memberitahu tetangga mereka dari jalan yang tersedia

untuk mencapai tujuan. Setelah menerima pesan dari tetangga merinci tujuan

dan metrik terkait yang telah memilih tetangga, router akan menentukan bahwa ada jalan yang lebih baik melalui tetangga alternatif. router akan memberitahukan dari jalan yang dipilih (dan metrik terkait) untuk mencapai

tujuan masing-masing. siklus ini terus berlanjut sampai semua router telah berkumpul pada pemahaman umum dari jalur terbaik untuk mencapai setiap

awalan tujuan ( Sam Halabi, 207).

Dalam Aplikasi ini menyadur beberapa cara kerja protokol RIP. Cara

kerja yang digunakan adalah:

1. Cara kerja menginisialisasi agent baru untuk dimasukan dalam

tabel jalur. Dalam sistem ini, setiap agent yang menjadi agent

tetangga membawa informasi mengenai agent lain yang terhubng

dengan agent tetangga. Sebagai agent penerima informasi harus

menyertakan informasi agent yang tidak terhubung langsung

denganya. Agent penerima menginisialisasi agent baru dan

memasukan dalam tabel jalurnya. Sehingga dalam tabel jalur yang

agent punya mempunyai informasi yang lengkap mengenai

keadaan jaringan.

(28)

basic update pada sistem. Default Timer Basic pada RIP adalah

sebesar 30 180 240. Angka awal sebesar 30 menunjukan proses

update informasi berselang waktu selama 30 detik. Kemudian

angka 180 menunjukan time invalid, yaitu selang maksimal waktu

respon dari router lawan. Jika waktu respon lebih dari 180 detik, maka dinyatakan router putus. Kemudian angka terakhir sebesar 240 menunjukan time flush. Dalam masalah ini menyadur time

update dari RIP yaitu sebesar 30 detik untuk proses

menginformasikan data pada tiap agent.

3. Untuk mengatasi ketidak stabilan informasi RIP menggunakan

algoritma SplitHorizon dan Route Poisoning.

2.2.ALGORITMA BELLMAN-FORD

2.2.1. PENGERTIAN

Algoritma Bellman Ford adalah salah satu algoritma dalam routing

dinamis. Algoritma Bellman-ford menghitung jarak terpendek dari suatu

graph berbobot. Dalam routing internet algortima Bellman ford digunakan

pada protocol distance vector. Contohnya dalam Routing Information Protokol (RIP). Algoritma ini didistribusikan karena melibatkan jumlah node dalam suatu Autonomous System.

Keuntungan dari Algoritma Bellman-Ford adalah:

- Baik untuk jaringan berskala besar

- Proses persebaran informasi cepat

Berdasar dari keunggulan dan kelemahan algortima BellmanFord

diatas maka algoritma tersebut lebih tepat diterapkan dalam sistem penentuan

jalur evakuasi tersebut. Karena mempertimbangan dalam sistem tersebut

(29)

2.2.2. PENGAPLIKASIAN ALGORTIMA BELLMAN FORD DALAM

SISTEM

- Setiap node menghitung jarak dari dirinya dan semua node lain dalam

jaringan. Dan menyimpan informasi tersebut dalam sebuah tabel.

- Setiap node mengirimkan tabel kesemua node tetangga.

- Ketika sebuah node menerima tabel jarak dari tetangganya, ia

menghitung rute terpendek ke semua node lainnya dan update tabel

sendiri untuk menggambarkan perubahan yang terjadi.

Berikut merupakan proses pengolahan data dalam tabel berdasarkan

algoritma Bellma-Ford menurut Forouzan dalam edisi bukunya yang ke 4.

In distance vector routing, each node shares its routing table with its

immediate neighbors periodically and when there is a change ( Forouzan, 4th edition). Artinya dalam routing menggunakan protokol distance vector, setiap node membagikan tabel routingnya kepada tetangganya ( node yang

terhubung langsung dengannya) secara berkala dan ketika terjadi perubahan

(30)

Gbr. 2.1. Proses Inisialisasi Tabel Routing

Gbr. 2.2. Proses Terbentuknya Tabel Routing

Pertama router memiliki informasi table routing yang didapat dari proses inisilisasi pada dirinya sendiri. Kemudian akan terjadi

pertukaran table routing. Sehingga setiap router mendapat informasi tabel routing dari tetangganya. Router akan menginisilisasi table yang diterima, dan menambahkan jumlah hop tabel sebelumnya dengan hop

antara dirinya dengan router pengirim. Sehingga terbentuk table baru. Tabel tersebut akan dibandingakan dengan table lama untuk mencari

jarak terdekatnya dan disimpan dalam table baru. Tabel inilah yang

yang menjadi pengganti tabel utama dan dikirim kembali ke router

tetangga. Begitu seterusnya hingga tabel routing konvergen dan

(31)

Gbr.2.3. Proses Pertukaran dan Update Tabel Routing

Gbr.2.4. Contoh Domain yang Menggunakan RIP

Namun terdapat kelemahan algoritma Bellma-Ford jika diterapkan

(32)

Gbr.2.5. Ketidakstabilan data pada algoritma Bellma-Ford

Contoh diatas merupakan bentuk ketidakstabilan data yang

terjadi pada tiga buah node. Keadaan ketika tiga buah node terhubung

sempurna, A memiliki informasi bahwa jika menuju ke X mempunyai

bobot tanpa melewati manapun. Dan B memiliki informasi bahwa

menuju ke X mempunyai bobot 6 melewati A. Kemudian X

memberikan informasi ke A bahwa jalur terputus, maka A mengupdate

datanya menjadi menuju X mempunyai bobot tak berhingga. B

mengirimkan data ke A, A mengupdate kembali datanya sesuai dengan

algoritma menjadi menuju X mempunyai bobot 10 melalui B, begitu

sebaliknya, sehingga nilai sampai tak berhingga. Hal ini yang disebut

ketidak stabilan data.

Maka untuk mengatasi hal tersebut terjadi pada aplikasi

dilakukan modifikasi algoritma menggunakan metode split horizon

yang di gabung dengan metode route poisoning.

Split Horizon adalah metode yang diterapkan untuk menghindari routing loops. Ketika mendapatkan informasi bahwa ada jalur terputus maka akan segera menginformasikan pada router

tetangga yang lain, tanpa mengembalikan informasi tersebut pada

(33)

informasi mengenai router A, maka router B akan segera mengirimkan informasi tersebut ke router C, tetapi router B tidak mengirmkan informasi ke router A.

Dapat terjadi kemungkinan, router C mengirimkan informasinya terlebih dahulu ke pada router B, seperti dijelaskan pada skenario diatas. Untuk mencegah terjadinya looping nilai maka

diterapkan metode Route Poisoning yaitu memberikan nilai tertinggi pada jalur yang terputus. Dan dianggap sebagai nilai mutlak.

(Forouzan 2007).

2.3.CLIENT SERVER

ClientServer

Menurut (Dharma Oetomo, 2006), Client Server merupakan model konektivitas pada jaringan yang membedakan pada fungsi komputer apakah

sebagai client atau sebagai server. Client server ini menempatkan sebuah komputer sebagai server yang bertugas memberikan layanan pada terminal-terminal lain (client) yang terhubung dalam sistem jaringan itu.

Pada dasarnya, Client server dibentuk oleh tiga komponen dasar, yaitu

client, connector, dan server. 1. Client

(34)

2. Connector

Connector merupakan komponen perantara yang memungkinkan client dan server untuk saling terhubung dan berkomunikasi satu sama lain. Connector ini sapat berupa Transaction Monitor (TC), Remote Procedure Calling (RPC), atau Object Request Broker (ORB).

3. Server.

Server merupakan pihak yang menyediakan layanan. Server ini dapat berupa basis data SQL, server groupware, server obyek atau

web. Secara umum, server berperan menerima pesan permintaan layananan dari client, memproses permintaan tersebut dan mengirimkan hasil permintaan kepada client. (Dharma Oetomo 2006)

2.4.PEMROGRAMAN JAVA

2.4.1. PENDAHULUAN

Java adalah bahasa pemrograman serbaguna. Dalam sejumlah

literature disebutkan bahwa java merupakan hasil perpaduan sifat dari

sejumlah bahasa pemrograman, yaitu C, C++, Objek-C, SmallTalk dan

Common LISP ( Abdul Kadir 2005).

Java merupakan bahasa pemrograman berorientasi objek.

Pemrograman berorientasi objek merupakan pengembangan perangkat lunak

yang saat ini popular. Dalam java sudah terdapat kelas-kelas yang mendukung

pengembangan program aplikasi penggunakanya, hanya tinggal memanggil

kelas yang kita butuhkan dengan konsep pewarisan. Dalam java dibedakan

dua jenis program, yaitu applet dan aplikasi. Applet adalah program yang

dibuat untuk web server. Sementara aplikasi adalah program yang dibuat

(35)

jenis program yang kedua, sebab dalam penyelesaiannya tidak dibutuhkan

web server atau web browser.

Dalam penyelesaian peneliatian ini, akan dibagi kelas-kelas objek seperti

konsep penyelesaian bahasa pemrograman Java.

2.4.2. PEMROGRAMAN JARINGAN DENGAN JAVA ( JAVA

NETWORK PROGRAMMING)

Pemrograman Jaringan menciptakan dimensi baru untuk aplikasi

perangkat lunak. Alih-alih berurusan dengan single user atau sumber daya dari

mesin tunggal ( seperti file dan koneksi database, pemrograman perangkat

lunak jaringan memberikan kemampuan untuk berkomunikasi dengan mesin

tersebar di seluruh dunia. Hal ini memberikan akses perangkat lunak untuk

berpotensi dengan jutaan sumberdaya eksternal serta jutaan pengguna.

Aplikasi konekstivitas tersebut hanya dibatasi oelh imajinasi dan bandwidth

dari koneksi jaringan.

2.4.3. TCP ( TRANSMISSION CONTROL PROTOCOL)

2.4.3.1. TCP DAN PARADIGMA CLIENT/SERVER

Paradigma Klien / server membagi software manjadi dua

kategori, klien dan server. Seorang klien perangkat lunak memulai

koneksi dan mengirimkan permintaan, sedangkan server adalah perangkat

lunak yang mendengarkan koneksi dan permintaan proses. Dalam konteks

pemrograman UDP, tidak ada koneksi yang sebenarnya didirikan dan

apliaksi UDP mungkin baik memulai dan menerima permintaan pada

soket yang sama. Dalam konteks TCP, dimana koneksi yang didirikan

antara mesin, paradigm ini jauh lebih relevan. Ketika perangkat lunak

bertindak sebagai klien atau sebagai server, ia memiliki peran kaku. Peran

(36)

permintaan. Pada saat waktu tertentu satu program perangkat lunak

menjadi klien dan satu program perangkat lunak harus menjadi server.

2.4.3.2. TCP SOCKET DAN JAVA

Java menawarkan dukungan yang baik untuk soket TCP, dalam

bentuk dua kelas soket, yaitu java.net.Socket dan java.net.ServerSocket.

Saat menulis perangkat lunak klien yang terhubung ke sebuah layanan,

maka harus menggunakan kelas Socket. Saat menulis perangkat lunak

server yang terhubung pada port lokal, maka harus menggunakan kelas

ServerSocket.

2.4.3.3. KELAS SOCKET PADA JAVA

Kelas Socket socket mewakili client, dan merupakan saluran

komunikasi antara dua TCP port komunikasi milik satu atau dua mesin.

Sebuah socket dapat terhubung ke port pada sistem lokal, menghindari

kebutuhan untuk mesin kedua, tetapi perangkat lunak jaringan biasannya

melibatkan dua mesin. Socket TCP tidak dapat berkomunikasi lebih dari

dua mesin. Namun jika fungsi ini diperlukan maka aplikasi klien harus

membangun koneksi socket ganda pada setiap mesin.

Konstruktor:

Ada beberapa kontruktor untuk kelas java.net.Socket. Dua

konstruktor yang diperbolehkan adalah berparameter Boolean untuk

menentukan apakah socket UDP atau TCP yang akan digunakan telah

usang.

try

{

// Connect to the specified host and port

Socket mySocket = new Socket ( "www.awl.com", 80);

(37)

}

catch (Exception e)

{

System.err.println ("Err – " + e);

}

Beberapa konstruktor:

 protected Socket () Membuat socket tidak terhubung

menggunakandefault implementasi yang disediakan oleh pabrik socket

untuk saat ini.

 Socket (InetAddress address int port) throws

java.io.IOException,java.lang.SecurityException

– Menciptakan soket terhubung ke alamat IP dan port tertentu. Jika

koneksi tidak dapat dibentuk atau jika hubungan ke host melanggar

batasan keamanan maka eksepsi dilempar.

 Socket (InetAddress address, int port,

InetAddress localAddress int localPort) throws

java.io.IOException,java.lang.SecurityException

– Menciptakan soket terhubung ke alamat IP dan port yang ditetapkan

dan terikat ke alamat lokal tertentu dan port lokal. Hal ini

diimplementasikan pada kasus multihoming host ( sebuah mesin

dimana localhost dikenal dengan dua atau lebih alamat IP).

 protected Socket (SocketImpl implementation)—

membuat socket tidak terhubung dengan soket yang menggunakan

implemenyasi yang ditentukan.

 Socket (String host, int port) throws

java.net.UnknownHostException

java.io.IOException,java.lang.SecurityException

-- Menciptakan socket terhubung ke host tertentu dan port. Metode ini

(38)

hostname tidak ditemukan maka koneksi tidak dapat dibangun.

menciptakan soket terhubung ke host tertentu

dan port.

 Socket (String host, int port, InetAddress

localAddress, int localPort) throws

java.net.UnknownHostException, java.io.

IOException, java.lang.SecurityException –

Menciptakan soket soket terhubung ke host dan port tertentu dan

terikat ke port dan alamat lkal tertentu. Hal ini memungkinkan nama

host yang akan ditentukan sebagai string dan bukan InetAddress, serta

memungkinkan alamat dan port tertentu terikat. Parameter lokal ini

berguna untuk host multihoming ( yaitu, sebuah mesin dimana

localhost diketahui oleh dua atau lebih alamat IP).

2.4.3.4. KELAS SERVER SOCKET PADA JAVA

Soket Server digunakna untuk menyediakan layanan TCP.

Soket klien mengikat setiap port bebas pada mesin lokal, dan terhubung

ke port server tertentu dan host. Sedangkan server socket mengikat ke

port tertentu pada mesin lokal sehingga klien jarak jauh mendapatkan

layanan. Koneksi soket klien akan terhubung ke satu mesin, sedangkan

server soket dapat menerima permintaan beberapa klien. Cara kerjanya

sederhana, klien menyadari layanan yang berjalan pada sebuah port (

biasanya nomor port dikenal dan digunakan untuk protocol tertentu, tetapi

server pada nomor port tidak standar juga. Keduanya membuat

sambungan dalam server maka koneksi diterima. Beberapa sambungan

dapat diterima pada waktu yang sama, atau server dapat memilih untuk

menerima satu sambungan pada saat tertentu. Setelah diterima maka

(39)

socket objek. Satu-satunya perbendaan antara server dank lien adalah

bahwa server mengikat port tertentu menggunakan server socket yang

objek. Objek server socket bertindak sebagai pabrik untuk koneksi. Klien

tidak perlu membuat turunan dari kelas Socket sendiri. Hubungan ini

dimodelkan sebagai socket yang normal, sehingga anda dapat

(40)

BAB III

ANALISA DAN PERANCANGAN SISTEM

3.1. METODE PENGEMBANGAN SISTEM

Terdapat beberapa metode pengembangan perangkat lunak yang umum

digunakan. Perkembangan teknologi informasi yang cepat pada bidang analisis

dan pemrogramannya mengakibatkan metode pengembangan perangkat lunak

juga berkembang. Metode yang lebih baru telah mengadopsi metode yang

berorientasi obyek. Metodologi yang cukup populer saat ini adalah metode

prototype.

3.1.1. METODE PROTOTIPE

Prototype merupakan metodologi pengembangan software yang

menitik-beratkan pada pendekatan aspek desain, fungsi dan user-interface.

Developer dan user fokus pada user-interface dan bersama-sama

mendefinisikan spesifikasi, fungsi, desain dan bagaimana software bekerja.

Developer dan user bertemu dan melakukan komunikasi dan menentukan

tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang

akan dibutuhkan. Developer mengumpulkan detail dari kebutuhan dan

memberikan suatu gambaran dengan cetak biru (prototype).

Dari proses tersebut akan diketahui detail-detail yang harus

dikembangkan atau ditambahkan oleh developer terhadap cetak biru, atau

menghapus detail-detail yang tidak diperlukan oleh user. Proses akan terjadi

(41)
(42)

Merumuskan hipotesa prototype, setelah resiko dinyatakan

pengembang mendesain secara terperinci sebuah prototype yang

menggambarkan keseluruhan sistem dan resiko-resiko yang mungkin

berpengaruh pada sistem. Prototype juga memberikan potensi terhadap

perbaikan-perbaikan terhadap produk.

Membangun perancangan prototype, perancangan prototype

berdasarkan hipotesa kedalam produk prototype. Tujuan yang utama

dari membangun suatu prototipe adalah untuk menjawab satu atau

lebih pertanyaan mengenai karakteristik fungsional dari produk .

Eksperimental, prototipe harus dicoba-coba untuk menentukan

perilakunya dan mengumpulkan keluaran dari instrumentasi sistem

sehingga didapat produk yang sesuai dengan keinginan user.

Evaluasi, Hasil dari eksperimen harus dievaluasi untuk menilai

kebenaran dan efisiensi prototype.

Proses yang berulang-ulang, proses yang keseluruhan diulangi

sampai salah satu dari tiga hasil dicapai:

Didapat informasi yang cukup dari prototype sehingga dapat

dimulainya proses pengembangan produk. Untuk beberapa masalah

yang tidak terpecahkan telah dapat ditemukan solusi yang lebih mudah

atau setara dengan tetap memperhatikan cost dan manfaat. Didapat

prototype yang memiliki mutu yang sesuai dengan spesifikasi produk

yang ingin dibuat sehingga proses pembuatan produk dapat dilakukan

dengan menggunakan prototype yang ada.

3.2 ANALISA SISTEM

Sistem yang akan dikembangkan penulis adalah sistem penentuan jalur

evakuasi bencana kebakaran di sebuah gedung dengan memanfaatkan algoritma

routing dinamis. Sistem dikembangkan dengan memanfaatkan salah satu

(43)
(44)

3.2.2. KEBUTUHAN SISTEM

Sistem ini akan dikembangkan pada aplikasi desktop. Aplikasi ini dikembangkan pada sistem operasi windows 7 dengan tool pengembang Netbeans 6.9. Bahasa pemrograman yang digunakan adalah bahasa Java.

Java sendiri memiliki fasilitas – fasilitas yang mempermudah dalam

pengembangan sistem ini. Sistem ini dikembangakan dengan memanfaatkan

pemrograman socket untuk mengubungkan satu perangkat komputer dengan perangkan komputer yang lain dalam pertukaran data dan informasi.

3.2.3. KONSEP KERJA SISTEM

Admin dapat mengatur bentuk jaringan antar papan petunjuk dengan

mengisikan alamat ip tujuan , prioritas dan arah. Data yang telah dimasukan

oleh admin, akan ditampilan pada tabel. Kemudian Server penerima pesan

dapat di hidupkan dengan menekan tombol Up Server. Setelah itu dimulai

proses komunikasi dengan menekan tombol run. Informasi yang diterima

diolah oleh masing-masing server sampai terbentuk tabel arah pada hingga

tercapai tabel yang konvergen. Untuk simulasi titik yang terjadi kebakaran,

menggunakan tombol sensor kebakaran. Secara otomatis akan meningkatkan

prioritas hingga dalam perhitungan dinggap jalur terputus karena prioritas

melampaui batas. Dan kemudian dilakukan pengiriman data baru hingga

terbentuk tabel baru. Untuk mensimulasi titik yang telah terjadi kebakaran

kembali pulih, maka dapat digunakana tombol Sensor mati, yang artinya

prioritas kembali seperti semula dan dilakukan pengiriman data baru hingga

(45)
(46)

Gambar 3.5. Hubungan pengguna dan aplikasi

3.2.5. PROSES PEMBENTUKAN JALUR

1. Admin akan mengisikan ip tujuan, prioritas dan arah. yang akan

dimasukan pada tabel seting, sebagai tabel pembentuk pertama.

ip tujuan : ip server lawan yang terhubung dengannya secara

langsung

priotitas : jarak antara server dengan server lain

arah : arah server dengan server lain

2. Admin akan menaikan sistem server penerima. Sehingga server

penerima pada posisi listen dan siap menerima data dari server lain.

3. Ketika tombol run ditekan maka server pengirim mulai mengirim

data dalam bentuk array

Tipe 2 merupakan bentuk proses Hand Shake sebelum informasi berupa data tabel di kirim.

Tipe 3 : merupakan bentuk informasi berupa data tabel yang

kemudian diolah sesuai dengan algoritma Bellman-Ford.

Mula-mula server akan mengirimkan tipe data 2 sebagai bentuk

Hand Shake kepada tetangga yang terhubung dengannya. Di sisi lain, server juga menerima tipe data 2 dari server lawan, yang

dimasukan dalam tabel sebagai bentuk informasi awal dan

(47)

Setelah terbentuk tabel, maka server mengirm tabel dalam bentuk

data tipe 3. Server juga menerima data tipe 3 yang merupakan

informasi tabel dari tetangga, kemudian melakukan update tabel

sesuai dengan algoritma Bellma-Ford.

 

3.2.6. FORMAT DATA

Format data Tipe 2

tabel 3.1 Format data tipe 2

versi : adalah versi dari protokol/sistem tersebut dalam hal

ini versi 1. Sebab belum terjadi perubahan atau penambahan

ke bentuk/versi 2.

tipe : adalah tipe data yang dikirimkan.

Tipe 2 : merupakan tipe data inisialisasi jalur dan

pemberitahuan bahwa jalur belum terputus.

Tipe 3 : merupakan tipe data informasi tabel

Ip addr : merupakan ip sendiri dari agent tersebut

Ip destination dan ip source : merupakan ip yang dituju

untuk pengiriman data

Hops : prioritas ( jumlah hops) dari rentang nilai 1 sampai

dengan 5. Nilai terkecil mewakili prioritas tinggi, yang

berarti jalur paling cepat dan paling mungkin di lalui.

Pemberian prioritas oleh user dapat berdasarkan jarak, lebar

jalan atau kemudahan akses jalan.

“ “ : merupakan delimiter atau pemisah antar data, yang

(48)
(49)
(50)

3.2.8. DIAGRAM STATE

3.2.8.1. PROSES PEMBENTUKAN JALUR

Gambar 3.10. Diagram State pembentukan jalur

Server Listen Client Ready

Berhasil  Info server gagagal

Olah Tipe 2 Kirim Tipe 3

Berhasil 

ProsesPembahar

uan tabel Kirim Tipe 3

Nilai Hop = 105

Nilai Hop = nilai semula (Kirim Tipe 2)

(gagal)

(berhasil)

(Kirim Tipe 3)

(gagal)

(berhasil) (selalu)

(sensor hidup ditekan)

(sensor mati ditekan) (selalu)

(51)

3.2.8.2. PROSES PENAMBAHAN PADA UPDATE TABEL

(52)

3.2.8.3. PROSES PERBANDINGAN UNTUK MENCARI NILAI

TERKECIL PADA PROSES UPDATE TABEL

Sum [i][2] ==ut[j][2] End

Start

Status set == true

Ya

Ubah nilai hop pd tabel utama Ya

Sum[i][1] <=ut[j][1] tidak

Status compare==false

Status ut==false

Tidak ya

Tidak

Tambakan pada tab. compare ya

Tidak Tidak

Ya

(53)

3.2.9. DIAGRAM KELAS

3.2.9.1 PROGRAM UTAMA

ProgramUtama

 versi : String

 type : String

 ipAddr : String

 ipDes : String

 hop : String

 jarak : int

 jarak2 : int

 arraySum : String [][]

 tempTabel : String [][]

 hoopsnya : int

 rs : ReceivedServer

 ss : SendServer

 set : Setting

 tabel_utama : Tabel_utama

 tabel_compare : Tabel_compare

 tampilan : Tanpilan

 programUtama() : konstruktor

(54)

 Tipe2() : void

 Tipe3() : void

 Tipe4() : void

 Tipe5(String,String) : void

 cekStatus : boolean

 cekStatusComp : boolean

 compareData() : void

 receivedData : void

 setTabelUtama() : void

 startServer() : void

 tabelArah() : void

Tabel 3.3 Kelas Program Utama

3.2.9.2 SEND SERVER

SendServer 

 versi : String   ipAddr : String   ipDest : String   hop : String 

 portTipe = 9000 

(55)

 sendTipe1() 

 sendTipe2() 

 sendTipe3() 

 sendTipe4() 

 sendTipe5() 

Tabel 3.4 Kelas Send Server

3.2.9.3 RECEIVED SERVER

ReceivedServer  +  portTipe1 : int 

+  al : ArrayList  + s : ServerSocket  + k : String 

+ ReceivedServer() <<konstruktor>>  + ReceivedServer(String ) <<konstrukrot>> 

+ responServer(programUtama) : void 

Tabel 3.5 Kelas Received Server

3.2.9.4 ROUTING TABEL CONVERTER

RoutingTableConverter 

 

+ StringtoTable(String ) : static String  

+ TableToString(array) : static String 

(56)

3.3 PERANCANGAN UMUM SISTEM

3.3.1 DIAGRAM USE CASE

Pada sistem ini pengguna hanya admin saja, dan hanya dapat

menggunakan sistem ketika sudah melakukan login. Kegiatan yang dapat

dilakukan oleh admin adalah melakukan login, setelah itu admin dapat

mengatur jalur sesuai dengan skenario yang ada. Dalam sistem ini dibutuhkan

bantuan berupa sistem sensor untuk mewakili sensor sesungguhnya. Untuk

mengaktifkan sensor api dan sensor kepadatan dilakukan secara manual oleh

sistem sensor.

Gambar 3.13. Diagram Use Case Sistem Penentuan Jalur Evakuasi

ADMIN ADMIN

LOGIN

Mengatur Jalur <<depends on>> <<depends on>>

menghidupkan sensor api

SISTEM SENSOR SISTEM SENSOR

(57)

3.3.2 NARASI USE CASE

Deskripsi Umum Use Case dari tiap-tiap Use Case dijabarkan dalam tabel dibawah ini.

Nomor Use Case Nama Use Case Deskripsi SPE-001 Mengatur

Koneksi

Use case ini menggambarkan proses dimana pengguna

mengatur koneksi dari tiap-tiap

komputer sebagai tanda sesuai

dengan skenario denah yang ada.

SPE-002 Menjalankan

sensor Hidup

Use case ini menggambarkan

proses dimana admin

mengaktifkan sensor api yang

mewakili keadaan

sesungguhnya.

SPE-003 Menjalankan

sensor Mati

Use case ini menggambarkan

proses dimana admin

mengaktifkan sensor Mati

sebagai tanda jalur telah pulih

dan dapat dilewati mewakili

keadaan sesungguhnya.

(58)

Pengarang : Vindy Widyaratih

Tanggal : 13 Juli 2011

Versi : 1.0

Nama Use-case :

Nomor Use-case : Mengatur Jalur Jenis Use-Case

Prioritas : SPE-001 Business Requirements

Aktor Bisnis

Primer:

High

Aktor Pendukung

lainnya :

admin

Stakeholder

Lainnya Yang

Berhubungan:

-

Deskripsi: -

Prakondisi: Use case ini menggambarkan proses dimana pengguna melakukan pengaturan koneksi antar komputer

Pemicu: User telah melakukan autentifikasi melalui form login

Langkah Umum: Use case ini digunakan apabila penggunaingin melakukan pengaturan jaringan komputer ( agent).

Langkah

Alternatif:

Kegiatan Aktor Respon Sistem

Step 1: User mengisikan nama agent pada field yang

(59)

Step 2 : User mengisikan

prioritas dari tiap-tiap

koneksi yang dimiliki

Step 3 : User memilih

tombol Check untuk

menyebarkan data dan

menerima data

Step 6 : User memilih

tombol Tampil

Step 4 : sistem merima data

masukan dari user, kemudian

mengitung dengan menggunakan

alg. Bellman ford. Kemudian

menyimpannya menjadi sebuah

informasi dan disebarkan dengan

agent-agent lain yang terhubung

denganya.

Step 5: sistem menampilkan

daftar hubungan serta prioritas

pada text area

Step 7 : Sistem menampilkan

hasil pada form Tampilan yang

direpresentasikan dalam sebuah

tanda arah panah

Kesimpulan: Alt-Step 8: -

(60)

Aturan Bisnis: Sistem menampilkan Form Tampilan

Asumsi:

-Pengarang : Vindy Widyaratih

Tanggal : 13 Juli 2011

Versi : 1.0

Nama Use-case : Mengjalankan sensor Hidup Jenis Use-Case

Nomor Use-case : SPE-002 Business Requirements

Prioritas : High

Aktor Bisnis

Primer:

Sistem sensor

Aktor Pendukung

lainnya :

-

Stakeholder

Lainnya Yang

Berhubungan:

-

Deskripsi: Use case ini menggambarkan proses dimana sistem sensor menghidupkan sensor api

Prakondisi:

(61)

Langkah Umum: Kegiatan Aktor Respon Sistem

Step 1: User (mewakili system sensor) memilih

tombol sensor api Step 2: Sistem memberikan

informasi pada agent-agent lain

yang terhubung dengannya,

kemudian dari masing-masing

agent menghitung kembali

Step 3: hasil dari perhitungan

diinformasikan menyebar ke

seluruh agent

Step 4 : sistem menampilkan hasil

jalur terbaru yang ditampilkan

pada form Tampilan

Langkah

Alternatif:

Kesimpulan: Use case ini berhenti apabila sudah didapat hasil arah baru dan ditampilkan pada form Tampilan

Pasca Kondisi: Terjadi penghitungan ulang jalur dan arah tampil pada form

Tampilan

Aturan Bisnis:

(62)

Pengarang : Vindy Widyaratih

Tanggal : 13 Juli 2011

Versi : 1.0

Nama Use-case : Mematikan sensor api Jenis Use-Case

Nomor Use-case : SPE-003 Business Requirements

Prioritas : High

Aktor Bisnis

Primer:

Sistem sensor

Aktor Pendukung

lainnya :

-

Stakeholder

Lainnya Yang

Berhubungan:

-

Deskripsi: Use case ini menggambarkan proses dimana sistem sensor mematikan sensor api

Prakondisi:

Pemicu: Use case ini digunakan apabila sisyem sensoringin memberikan sebuah kondisi dimana agent yang menjadi titik kebakaran

mengalami pemulihan jalur, sehingga jalur dapat kembali

dilewati

Langkah Umum: Kegiatan Aktor Respon Sistem

Step 1: User (mewakili system sensor) memilih

(63)

informasi pada agent-agent lain

yang terhubung dengannya,

kemudian dari masing-masing

agent menghitung kembali

Step 3: hasil dari perhitungan

diinformasikan menyebar ke

seluruh agent

Step 4 : sistem menampilkan hasil

jalur terbaru yang ditampilkan

pada form Tampilan

Langkah

Alternatif:

Kesimpulan: Use case ini berhenti apabila sudah didapat hasil arah baru dan ditampilkan pada form Tampilan

Pasca Kondisi: Terjadi penghitungan ulang jalur dan arah tampil pada form

Tampilan

Aturan Bisnis:

(64)

3.3.3 PERANCANGAN ANTAR MUKA

Sistem ini tidak memiliki hirarki user, artinya dalam system ini hanya

admin atau user yang telah melakukan autentifikasi saja yang dapat

menggunakan sistem ini.

3.3.3.1ANTAR MUKA HALAMAN UTAMA

Gambar 3.14. Antar Muka Halaman Utama

Tampilan ini merupakan tampilan awal sistem. Dimana

user dapat memilih untuk langsung menampilkan papan

arah atau melakukan pengaturan koneksi.

- Bila user ingin melakukan pengaturan koneksi maka

memilih tombol Admin, maka system akan

menampilkan form login.

- Bila user ingin menampilkan papan arah maka pilih

tombol Tampil, maka system akan menampilkan form

Tampilan

   Caption

SISTEM BANTUAN PENENTUAN

JALUR EVAKUASI

Admin

Tampil

(65)
(66)

3.3.3.3 ANTAR MUKA TAMPILAN

Gambar 3.16 Antar Muka Halaman Tampilan (Papan Arah)

Text area diatas digunakan untuk menampilkan arah. Tombol

digunakan sebagai pengganti sensor api mewakili keadaan sesungguhnya. Jika

memilih tombol ini maka system akan mengirim informasi dan memenghitung

ulang tabel routing kemudian menampilkan pada text area. Tombol

digunakan untuk mematikan sensor sehingga jalur dapat kembali dilewati.

   Caption

FIRE HOME

(67)

3.4 PERANCANGAN PROSES SISTEM

3.4.1 FLOWCHART SISTEM

Pada perancangan ini akan dijelaskan alur kerja sistem yang

direpresentasikan dalam bentuk flowchart.

 

(68)

BAB IV

IMPLEMENTASI

4.1

APLIKASI YANG 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

(69)

Gambar 4.1 Jaringan komputer

4.3 Class ProgramUtama.java

Sebagai pengendali dari pertukaran data yang dilakukan oleh

tiap server maka dibutuhkan pengontrol yang mengolah tiap-tiap informasi yang dikirimkan masing-masing server. Untuk itu dibuat

sebuah kelas ProgramUtama.java

4.3.1 Tipe2()

Method Tipe2() merupakan method untuk menangani

pengolahan pesan bertipe 2. Data yang diterima dimasukkan dalam

array tabel utama. Mula-mula data yang diterima di cek hop yang

dimiliki , jika hop kurang dari 100 maka data dimasukan dalam tabel

utama dengan menggunakan method setTabelUtama(). Jika hop lebih

dari 100 yang artinya bahwa terdapat informasi jalur terputus, maka

data pada tabel compare di diubah menjadi data baru dengan hop 105.

public void Tipe2() throws UnknownHostException {

System.out.println("Data Client " + ipDest + "tipe

2");

ss.olahData(versi, ipAddr, ipDest, hop);

if (tampilan.kondisi == false) {

if (Integer.parseInt(hop) < 100) {

cekHop(ipDest, hop);

A B C D

(70)

setTabelUtama();

ss.sendTipe3(RoutingTableConverter.TableToString(dataTable)

);

} else {

System.out.println("terjadi kebakaran pada" +

ipDest);

if

(ipDest.equals(InetAddress.getLocalHost().getHostAddress())

) {

tampilan.jLabel1.setText("TERJADI

KEBAKARAN DI " +

InetAddress.getLocalHost().getHostAddress());

} else {

for (int i = 0; i <

tabel_compare.model.getRowCount(); i++) {

if (tabel_compare.model.getValueAt(i,

0).equals(ipDest)) {

tabel_compare.model.setValueAt(hop, i, 1);

} else if

(tabel_compare.model.getValueAt(i, 2).equals(ipDest)) {

tabel_compare.model.setValueAt(hop, i, 1);

}

}

}

ss.sendTipe3(RoutingTableConverter.TableToString(arrayCompa

re));

}

(71)

Data di tangkap oleh method olahData dengan parameter versi,

ipAddr, ipDest dan hop. Jika kondisi agent sedang tidak terbakar(false) maka dilakukan pengecekan terhadap nilai hop. Jika hop kurang dari

100 maka akan dilakukan pengecekan perubahan hop dengan

menggunakan method cekHop dengan parameter ipDest dan hop.

Kemudian dilakukan pengisian pada tabel utama dengan menggunakan

method setTabelUtama().

Setelah tabel utama terbentuk, maka tabel tersebut dikirimkan

dengan format data tipe3 dengan isi tabel di ubah dalam bentuk String

dengan menggunakan method TabletoString (dataTable) yang diambil

dari kelas Routing TableConverter. Tetapi jika hop lebih dari 105 yang

berarti dalam asumsi program ini bahwa terjadi pemutusan jalur dari

agen pengirim maka akan dilakukan proses update tabel dengan

mengubah nilai hop semula menjadi 105, setelah itu tabel dikirimkan

dengan menggunakan method sendTipe3 dengan parameter data tabel

yang telah diubah menjadi String.

4.3.2 Tipe3(String)

Method Tipe3(String, String) merupakan method yang

digunakan untuk menangani pengiriman data berupa tabel. Terdapat

dua parameter masukan pada method Tipe3() yaitu masukan pertama

bertipe String yang merupakan data tabel yang masih berupa data

String. Data keduan bertipe String yang merupakan ip dari pengirim

untuk proses mencarian hoop. Data String pertama berupa data String

diubah menjadi bentuk data array , diubah dengan menggunakan

method StringToTable() dan disimpan dalam tempTabel.

(72)

Ip digunakan untuk mencocokan data pada masukan pertama

admin untuk medapatkan nilai hoop. Nilain hoop ini digunakan untuk

melakukan proses menambah hoop pada data hoop pada tempTabel

dan menyimpannya pada tabel arraySum. Kemudian dari data

arraySum dilakukan proses perbandingan data untuk mencari nilai

terkecil untuk kemudian disimpan pada tabel Compare dengan

menggunakan method Compare().

public void Tipe3(String t, String ip) throws

UnknownHostException {

System.out.println("Data

TempTabel/tabelditerima");

System.out.println("PENGIRIM :" + ip);

tempTabel =

RoutingTableConverter.StringtoTable(t);

if (tampilan.kondisi == false) {

for (int i = 0; i <

set.jTable1.getRowCount(); i++) {

if (ip.equalsIgnoreCase((String)

set.jTable1.getValueAt(i, 0))) {

hoopsnya =

Integer.valueOf(String.valueOf(set.jTable1.getValueAt

(i, 1)));

}

}

System.out.println(tempTabel.length);

for (int x = 0; x < tempTabel.length; x++)

{

for (int j = 0; j < 3; j++) {

if (j == 0) {

arraySum[x][0] = (String)

(73)

} else if (j == 1) {

if

(!tempTabel[x][1].equals("-")) {

jarak =

Integer.parseInt(String.valueOf(tempTabel[x][1]));

jarak2 = jarak + hoopsnya;

arraySum[x][1] =

String.valueOf(jarak2);

}

} else if (j == 2) {

arraySum[x][2] = ip;

}

}

}

System.out.println("Data sum di tipe lima :

---");

for (int i = 0; i < arraySum.length; i++) {

for (int j = 0; j < 3; j++) {

System.out.print(arraySum[i][j] + "

");

}

System.out.println("\n");

}

compareData();

tabel_utama.jTableUtama.setModel(tabel_compare.model)

;

tabelArah();

ambilArah();

}

(74)

Data String yang diterima diubah menjadi bentuk data tabel

dan ditampung dalam variabel tempTabel. Dilakukan proses

perulangan sebanyak jumlah row dalam tabel setting untuk

mencocokkan ip pada tabel setting dengan ip pengirim. Jika memenuhi

syarat ip sama dengan ip pada tabel setting maka diambil nilai hopnya

dan di masukkan dalam variabel hopsnya. Setelah mendapat nilai hop maka dilakukan perulangan sebanyak panjang tempTabel dengan

variabel x dan perulangan kedua sebanyak jumlah kolom yaitu 3

dengan variabel j. Jika memenuhi syarat j sama dengan 0 maka nilai

arraySum ke [x][0] diisi dengan nilai tempTabel ke [x][0]. Jika

memenuhi syarat j sama dengan 1 maka selanjutnya jika memenuhi

syarat nilai temp tabel ke [x][1] tidak sama dengan “-“ maka nilai

[x][1] ditampung dalam variabel jarak untuk selanjutnya nilai jarak

ditambahkan dengan nilai hoopsnya disimpan dalam variabel jarak2

untuk selanjutnya nilai jarak2 disimpan dalam array sum ke [x][1].

Jika memenuhi syarat j sama dengan 2 maka nilai array sum ke [x][2]

di beri nilai ip pengirim. Keluar dari proses perulangan masih dalam

method tipe5 dikerjakan method compareData yang selanjutnya hasil

dari proses membandingkan tersebut menggantikan nilai keseluruhan

pada tabel utama. Selanjutnya proses pengambilan arah dikerjakan

oleh method ambilArah().

4.3.3 cekStatus()

Untuk menyaring data agar lebih valid, sehingga data yang

sama tidak akan dimasukan pada tabel utama, maka diperlukan method

cekStatus() yang bertipe boolean. Data sebagai penyaringnya adalah

data ip yang merupakan data unik. Data ip pada data tabel utama akan

(75)

nilai true, jika data ip tidak sama maka akan mengembalikan nilai

false.

public boolean cekStatus(String ipDest) {

boolean status = false;

for (int i = 0; i <

tabel_utama.model.getRowCount() && status == false;

i++) {

if (tabel_utama.model.getValueAt(i,

0).equals(ipDest)) {

status = true;

}

}

return status;

}

4.3.4 cekStatusComp()

Dengan fungsi sama seperti method cekStatus(), method

cekStatusComp digunakan untuk menyaring data dari tabel Compare

untuk mendapatkan nilai data yang valid. Data sebagai penyaringnya

adalah data ip yang merupakan data unik. Data ip pada data tabel

compare akan dibaca, ketika menemukan ip yang sama maka akan

mengembalikan nilai true, jika data ip tidak sama maka akan

mengembalikan nilai false.

public boolean cekStatusComp(String ipDest) {

boolean statuscomp = false;

for (int i = 0; i <

tabel_compare.model.getRowCount() && statuscomp ==

false; i++) {

if (tabel_compare.model.getValueAt(i,

(76)

statuscomp = true;

}

}

return statuscomp;

}

4.3.5 compareData()

Proses akhir dari pengolahan tabel dimana data dari array sum

dibandingkan dengan data dari tabel utama sebagai tabel pembentuk

awal sehingga mendaptakan nilai hoop terkecil dari data tersebut. Data

dibaca tiap baris kemudian jika menemukan ip yang sama , maka akan

dilakukan proses pembadingan untuk mencari nilai hoop terkecil dari

kedua data tersebut. Kemudian hasil akan disimpan dalam tabel

Compare yang selanjutnya data pada tabel compare merupakan data

pada tabel utama yang baru.

tabel_compare.model = (DefaultTableModel)

tabel_compare.jTable1.getModel();

String to = null;

String next = null;

String hop1 = null;

for (int i = 0; i < arraySum.length; i++) {

String data1[] = new String[3];

if (arraySum[i][0] != null) {

if (cekIpTabel(arraySum[i][0]) == true)

{

for (int j = 0; j <

tabel_utama.model.getRowCount(); j++) {

if

(arraySum[i][0].equals(tabel_utama.model.getValueAt(j

, 0))) {

(77)

(arraySum[i][2].equals(tabel_utama.model.getValueAt(j

, 2))) {

if

(cekStatusComp(arraySum[i][0]) == false) {

to = (String)

arraySum[i][0];

hop1 =

arraySum[i][1];

next = (String)

arraySum[i][2];

data1[0] = to;

data1[1] = hop1;

data1[2] = next;

tabel_compare.model

= (DefaultTableModel)

tabel_compare.jTable1.getModel();

tabel_compare.model.addRow(data1);

tabel_compare.jTable1.setModel(tabel_compare.model);

} else {

for (int k = 0; k <

tabel_compare.model.getRowCount(); k++) {

if

(arraySum[i][0].equals(tabel_compare.model.getValueAt

(k, 0))) {

tabel_compare.model.setValueAt(arraySum[i][1], k, 1);

}

}

}

} else {

if

Gambar

Gambar diatas merupakan gambar jaringan layar petunjuk jalur evakuasi
tabel.
tabel routing dari tetangganya. Router akan menginisilisasi table yang
Gambar 3.5.  Hubungan pengguna dan aplikasi
+7

Referensi

Dokumen terkait

Sebaliknya, tidak dimuatnya nas-nas semisal itu—demikian kata Syafaruddin al-Musawi—oleh masing-masing imam hadis tersebut dalam kitab shahihnya merupakan manipulasi golongan Sunni

Bahwa hak-hak yang dijamin oleh konstitusi dan hukum tersebut di atas belum dapat dinikmati oleh Pemohon karena kepergian suami Pemohon dari Indonesia disebabkan oleh penegakan

Dengan ini saya menyatakan bahwa isi intelektual skripsi saya yang berjudul “ DESAIN SENSOR SERAT OPTIK UNTUK PENGUKURAN INDEKS BIAS LARUTAN GARAM DAN LARUTAN

Komunikasi adalah proses penyampaian atau penerimaan pesan dari satu orang kepada orang lain, baik langsung maupun tidak langsung, secara tertulis, lisan,

Berdasarkan identifikasi masalah di atas, maka adapun yang menjadi rumusan masalah dalam penelitian ini adalah: “ Apakah Kolaborasi Model Pembelajaran Kooperatif

Program ini merupakan program yang terintegrasi antara sosialisasi bencana, sanitasi lingkungan yang dilakukan dengan bersih-bersih pantai ( coastal clean up ) dan pembuatan peta

• Adanya klaim yang dilakukan Negara terhadap kawasan hutan masyarakat adat, Negara belum mengakomodir kebutuhan masyarakat akan hutan. • Tidak adanya perlindungan

Pembenahan sistem dan politik hukum diarahkan kepada kebijakan untuk mendorong penyelenggaraan penegakan hukum, pemberantasan korupsi dan reformasi birokrasi yang ditujukan untuk