IMPLEMENTASI ALGORITMA DIJKSTRA
UNTUK PENCARIAN LOKASI RUANGAN
Studi Kasus : RS. Bethesda Yogyakarta
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh :
Agnes Christy Mara Devvi
NIM : 045314070
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
DIJKSTRA ALGORITHM IMPLEMENTATION
TO SEARCH ROOM LOCATION
Objective : Yogyakarta Bethesda Hospital
FINAL ASSIGNMENT
Presented as a Meaning
For Gaining Engineering Holder
In Informatics Enginering Study Program
By :
Agnes Christy Mara Devvi
NIM : 045314070
INFORMATICS ENGINEERING DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
ii
iii
iv
INTISARI
Pencarian lokasi ruangan di rumah sakit, khususnya RS. Bethesda,
merupakan suatu masalah yang dihadapi pengunjung awam pada umumnya.
Dalam skripsi ini di buat suatu program bantu dengan mengimplementasikan
algoritma dijkstra untuk pencarian lokasi ruangan di rumah sakit dengan studi
kasus di RS. Bethesda. Algoritma dijkstra ini, diimplementasikan dengan bahasa
pemrograman Visual Basic 6.0 dan untuk penyimpanan data-data ruangannya, di
gunakan MySQL 5.0.
Masukan untuk program bantu ini, berupa nama ruangan yang ingin di tuju
dan pintu masuk. Keluaran dari program bantu ini berupa letak ruangan tersebut,
lengkap dengan petunjuk berupa gambar denah yang disertai dengan jalur
terpendek untuk sampai ke ruangan tersebut.
v
ABSTRACT
Searching room location in a hospital, especially in Bethesda Hospital, is
one of the common problems faced by new visitor. From this Thesis, an assistance
program is made by implementing dijkstra algorithm to search location of rooms
in hospital, with Bethesda Hospital as the objective. This djikstra algorithm, was
implemented by using Visual Basic 6.0 and to store the data of rooms, MySQL
5.0 is used.
The Input of this assistance program is the name of the room desired and
entrance, and the output of this assistance program is the location of the room,
with direction drawn in the map, showing the shortest route to the desired room.
vi
KATA PENGANTAR
Puji syukur saya ucapkan ke hadirat Allah, SWT atas berkat dan limpahan
kasih karunia yang telah diberikan-Nya sehingga penulis bisa menyelesaikan
tugas akhir dan menyusun laporan ini dengan judul “Implementasi Algoritma
Dijkstra Untuk Pencarian Lokasi Ruangan dengan Studi Kasus di RS Bethesda
Yogyakarta”.
Dorongan serta nasehat dari berbagai pihak sangat membantu dalam
pembuatan tugas akhir ini sampai tersusunnya laporan ini. Untuk itu, penulis ingin
mengucapkan terima kasih kepada :
1. Bapak Puspaningtyas Sanjoyo Adi, S.T.,M.T selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.
2. Bapak Drs.Jong Jek Siang, M.Sc selaku Dosen Pembimbing Tugas Akhir yang
telah membimbing dan menyediakan waktu dalam memberikan pengarahan
selama pembuatan tugas akhir dan penulisan laporan tugas akhir ini.
3. Pihak RS. Bethesda yang telah memberikan ijin pada penulis untuk melakukan
penelitian di Rs. Bethesda Yogyakarta.
4. Ibu dan Bapakku tercinta, yang selalu memberikan dorongan pada penulis
untuk selalu maju dan terus berjuang untuk menggapai masa depan yang lebih
baik. Terima kasih atas doa yang senantiasa selalu menemani langkahku.
5. Papa tersayang ku, yang selalu memberikanku motivasi untuk maju, untuk
selalu berusaha menjadi yang terbaik. “ I love u, my father….. I miss u “
6. Nenek dan Kakek ku tersayang yang senantiasa memberikan saran, doa dan
dukungan untuk penulis.
7. Eko Budi Kuncoro atas kritik, masukan dan semangat untuk segera
menyelesaikan tugas akhir ini, yang tak pernah lelah menjadi tempat keluh
kesahku.
Kakak dan adekku tersayang, mbak wiwik dan mas aan ( kakak terhebatku ) yang
selalu menemaniku, yang selalu menjadi tempatku berkeluh kesah. Buat
vii
viii
ix
x
DAFTAR ISI
Halaman
HALAMAN JUDUL ............................................................................................ i
HALAMAN JUDUL ( DALAM B.INGGRIS ) ................................................. ii
HALAMAN PERSETUJUAN PEMBIMBING ................................................ iii
HALAMAN PENGESAHAN .............................................................................. iv
INTISARI ............................................................................................................. v
ABSTRACT .......................................................................................................... vi
KATA PENGANTAR .......................................................................................... vii
PERNYATAAN KEASLIAN KARYA .............................................................. ix
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS ........................................... x
DAFTAR ISI......................................................................................................... xi
DAFTAR GAMBAR ............................................................................................ xiv
DAFTAR TABEL ................................................................................................ xv
DAFTAR LAMPIRAN ........................................................................................ xvi
BAB I
PENDAHULUAN........................................................................................ 1
1.1 Latar Belakang Masalah.................................................................... 1
1.2 Rumusan Masalah ............................................................................. 2
1.3 Batasan Masalah ............................................................................... 2
1.4 Tujuan Penelitian .............................................................................. 3
1.5 Metode Penelitian ............................................................................. 3
1.6 Sistematika Penyusunan Laporan ..................................................... 3
BAB II
LANDASAN TEORI................................................................................... 5
2.1 Pengenalan Graf ................................................................................ 5
2.2 Lintasan Terpendek........................................................................... 6
2.3 Algoritma Dijkstra ............................................................................ 7
xi
2.4 Visual Basic 6.0 ................................................................................ 12
2.5 MYSQL 5.0....................................................................................... 13
BAB III
ANALISA DAN PERANCANGAN SISTEM........................................... 15
3.1 Gambaran Sistem .............................................................................. 15
3.2 Fase Definisi ..................................................................................... 17
3.3 Fase Analisis Masalah....................................................................... 18
3.4 Gambaran Sistem Baru ..................................................................... 20
3.5 Requirement Analisis ........................................................................ 23
3.6 Perancangan Basis Data .................................................................... 23
3.6.1. Pemodelan Proses.............................................................. 23
3.6.2. Pemodelan Data ................................................................ 30
3.7 Desain Input Output ......................................................................... 31
3.7.1. Desain Input ...................................................................... 31
3.7.2. Desain Output ................................................................... 33
3.8 Perancangan Proses .......................................................................... 33
3.8.1. Pembuatan Matrik Jarak.................................................... 34
3.8.2. Pembagian Ruang Lingkup............................................... 35
BAB IV
IMPLEMENTASI DAN ANALISA .......................................................... 42
4.1 Implementasi Program ...................................................................... 42
4.1.1. Implementasi Algoritma Dijkstra...................................... 42
4.1.1.1. Menentukan Titik Awal .................................. 43
4.1.1.2. Menentukan Titik Tujuan................................ 44
4.1.1.3. Menentukan Ruang Lingkup........................... 45
4.1.1.4. Iterasi Algoritma Dijkstra ............................... 46
4.1.2. Implementasi Pembuatan Output ...................................... 50
4.1.2.1. Output Berupa Kode Ruangan dan Nama
Ruangan Jalur Terpendek.............................. 51
xii
4.1.2.2. Output Berupa Denah RS. Bethesda Disertai
Jalur Terpendek............................................. 54
4.2 Hasil Implementasi............................................................................ 56
4.2.1. Menu Utama...................................................................... 56
4.2.2. Menu Input Titik Awal dan Titik Tujuan.......................... 57
4.2.3. Tampilan Output ............................................................... 58
4.3 Analisa Hasil ..................................................................................... 61
4.3.1. Pengaruh Pembagian Ruang Lingkup............................... 61
4.3.2. Waktu Iterasi Algoritma Dijkstra...................................... 63
BAB V
KESIMPULAN DAN SARAN ................................................................... 65
5.1 Kesimpulan ....................................................................................... 65
5.2 Saran.................................................................................................. 65
xiii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Gambar Graf Kasus Implementasi Algoritma Dijkstra...................... 8
Gambar 3.1. Denah Rumah Sakit Bethesda Yogyakarta ....................................... 16
Gambar 3.2 Flowchart Pencarian Jalur Terpendek ................................................ 22
Gambar 3.3 Use Case Diagram.............................................................................. 23
Gambar 3.4 Context Diagram ................................................................................ 24
Gambar 3.5 Diagram Berjenjang ........................................................................... 25
Gambar 3.6. Data Flow Diagram Level 1 .............................................................. 26
Gambar 3.7. Data Flow Diagram Level 2 Proses 1 ............................................... 27
Gambar 3.8. Data Flow Diagram Level 2 Proses 3 ............................................... 28
Gambar 3.9. Data Flow Diagram Level 2 Proses 5 ............................................... 29
Gambar 3.10. E-R Diagram ................................................................................... 30
Gambar 3.11. Relational Model ............................................................................. 30
Gambar 3.12 Graf Keseluruhan Rumah Sakit Bethesda Lantai 1.......................... 39
Gambar 3.13 Graf Gedung IGD & IRJ Rumah Sakit Bethesda Lantai 2 .............. 40
Gambar 3.14 Graf Gedung IGD & IRJ Rumah Sakit Bethesda Lantai 3………... 41
Gambar 4.1. Tampilan Menu Utama...................................................................... 57
Gambar 4.2 Tampilan Menu Untuk Kategori Fasilitas Umum............................. 58
Gambar 4.3. Tampilan Output Yang Berupa Gambar Denah RS. Bethesda
Dilengkapi dengan Jalur Terpendek....................................................... 59
Gambar 4.4. Tampilan Output Jalur Terpendek Yang Berupa Kode Ruangan
dan Nama Ruangan ................................................................................. 60
Gambar 4.5. Tampilan Menu Ketika Output pada Gambar 4.3 Ditutup................ 61
xiv
DAFTAR TABEL
Halaman
Tabel 2.1. Tabel Perhitungan Algoritma Dijkstra.................................................. 11
Tabel 3.1. Tabel Couses dan Effects ...................................................................... 18
Tabel 3.1. Tabel Contoh Kasus Penyempitan Ruang Lingkup .............................. 36
Tabel 3.2. Tabel Aturan Ruang Lingkup Pengecekan Titik................................... 37
Tabel 4.1. Tabel Pengaruh Pembagian Ruang Lingkup......................................... 62
Tabel 4.2.Tabel Percobaan Yang Mempengaruhi Waktu Iterasi Algoritma
Dijkstra................................................................................................. 63
xv
DAFTAR LAMPIRAN
Lampiran A. Tabel Ruangan
Lampiran B. Tabel Jarak
xvi
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Para pengunjung rumah sakit biasanya menginginkan sampai ke ruangan
yang ingin dikunjungi dengan cepat, hal ini disebabkan karena biasanya orang
datang ke rumah sakit dalam keadaan terburu – buru ingin mengunjungi teman
atau saudaranya yang sedang sakit. Kejadian dimana seorang pengunjung tersesat
sewaktu mencari ruangan dirumah sakit, terjadi jika pengunjung tersebut tidak
mengetahui dimana lokasi ruangan yang ingin dituju, sedangkan rumah sakit yang
dikunjungi memiliki area yang sangat luas dengan lorong – lorong yang sangat
banyak.
Sebenarnya tiap – tiap ruangan di rumah sakit mempunyai jalur terpendek
sendiri – sendiri dari pintu masuk rumah sakit, hanya saja mungkin bagi
pengunjung yang baru pertama kali datang ke rumah sakit tersebut tidak
mengetahui jalur terpendek tersebut. Sehingga timbul masalah bagaimana agar
pengunjung rumah sakit yang baru datang pertama kali ke rumah sakit tidak
tersesat ketika mencari salah satu ruangan yang ada di rumah sakit dan agar para
pengunjung dapat menemukan ruangan yang ingin dikunjunginya dengan cepat
dengan memanfaatkan jalur terpendek untuk menuju ke ruangan tersebut.
1
2
1.2 Rumusan Masalah
Dari latar belakang masalah diatas dapat dirumuskan menjadi masalah
sebagai berikut :
Bagaimana mengimplementasikan algoritma dijkstra dalam pencarian jalur
terpendek suatu lokasi ruangan di Rumah Sakit Bethesda dengan cepat ?
1.3 Batasan Masalah
Dalam pembuatan program Bantu pencarian lokasi di rumah sakit
dilakukan beberapa batasan masalah sebagai berikut :
1. Studi kasus dilaksanakan di Rumah Sakit Bethesda Yogyakarta.
2. Data ruangan dan jarak antar ruangan yang ada merupakan data
Rumah Sakit Bethesda Yogyakarta tahun 2003.
3. Ruangan yang bisa dituju adalah Ruang Rawat Inap Pasien, Klinik,
Laboratorium, Ruang Administrasi, ATM, Ruang Operasional,
Farmasi, IGD, Staff Bethesda dan fasilitas umum.
4. Program dibuat dengan bahasa pemrograman Visual Basic 6.0 dengan
database MYSQL 5.0
5. Dalam melakukan pencarian jarak terpendek algoritma yang di
gunakan adalah algoritma dijkstra.
3
1.4 Tujuan Penelitian
Tujuan penyusunan skripsi :
Membuat suatu program Bantu dengan mengimplementasikan algoritma
dijkstra, untuk mencari jalur terpendek menuju ruangan – ruangan yang ada di
Rumah Sakit Bethesda.
1.5 Metode Penelitian
Metode Penelitian :
1. Studi pustaka tentang metode dijkstra, bahasa pemograman VB 6.0,
database MySQL 5.0.
2. Survey lokasi di rumah sakit Bethesda untuk mengetahui secara
langsung jalur-jalur tiap ruangan di rumah sakit.
3. Implementasi pencarian jarak terpendek dengan menggunakan metode
dijkstra dalam suatu program
1.6 Sistematika Penyusunan Laporan
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan masalah, batasan
masalah, tujuan penelitian, metodologi penelitian dan sistematika penyusunan
laporan.
BAB II LANDASAN TEORI
Bab ini secara umum berisi tentang landasan teori yang mendukung
pembuatan program.
4
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi tentang gambaran sistem baru, pembahasan analisis
terhadap sistem informasi yang dibuat, analisis kebutuhan sistem dan desain
perancangan sistem.
BAB IV IMPLEMENTASI DAN ANALISA HASIL
Bab ini berisi tentang pengimplementasian dari rancangan sistem yang
telah dibuat pada bab III dengan menggunakan bahasa pemrograman VB6.0 dan
database MYSQL 5.0 dan analisa dari hasil pengimplementasian algoritma
dijkstra dalam pencarian jalur terpendek.
BAB V PENUTUP
Bab ini berisi tentang hasil implementasi yang mencakup kesimpulan
dan saran dari penyusunan laporan Tugas Akhir .
BAB II
LANDASAN TEORI
2.1 Pengenalan Graf
Graf adalah himpunan titik yang dihubungkan dengan garis-garis. Dalam
kehidupan sehari-hari banyak sekali persoalan yang diimplementasikan dengan
graf. Bidang-bidang yang menggunakan penerapan graf antara lain Switching
network, Coding theory, Electrical analysis, Operation research, Aljabar,
Computer science, dan Kimia. Suatu graf G terdiri dari 2 himpunan yang
berhingga, yaitu himpunan titik-titik tidak kosong yang disimbolkan dengan V(G)
dan himpunan garis-garis yang disimbolkan dengan E(G) sehingga dapat ditulis
menjadi notasi G = (V,E).
Terdapat beberapa istilah penting yang berkaitan dengan graf. Berikut ini
didefinisikan beberapa terminologi yang sering digunakan:
• Derajat ( Degree )
Derajat suatu simpul pada graf tak berarah adalah jumlah sisi yang bersisian
dengan simpul tersebut. Pada graf berarah, derajat simpul v dinyatakan dengan
din
(v) dan dout
(v), yang dalam hal ini:
din
(v) = derajat masuk (in-degree) , jumlah simpul yang masuk ke simpul v
dout
(v) = derajat keluar (in-degree), jumlah simpul yang keluar dari simpul v
Dimana, d(v) = din
(v) + dout
(v).
• Vertex atau node
Adalah simpul atau titik.
5
6
• Edge ( garis )
Adalah sebuah garis yang menghubungkan 2 titik.
• Walk
Adalah barisan titik – titik dan garis secara berselang seling.
• Lintasan ( Path )
Adalah sebuah walk dimana yang semua garisnya harus berbeda,
• Siklus ( Cycle ) atau Sirkuit ( Circuit )
Adalah sebuah lintasan yang berawal dan berakhir pada titik yang sama.
• Distance ( jarak )
Adalah panjang garis antara kedua titik
• Graf Berbobot ( Weighted Graph )
Adalah graf yang setiap sisinya diberi harga (bobot).
2.2 Lintasan Terpendek
Lintasan terpendek merupakan salah satu dari masalah yang dapat
diselesaikan dengan graf. Beberapa algoritma yang digunakan untuk
menyelesaikan persoalan pencarian lintasan terpendek adalah:
1. Algoritma Dijkstra
2. Algoritma Bellman-Ford
3. Algoritma Floyd-Warshall.
Dari ke tiga algoritma di atas Algoritma Dijkstra merupakan algoritma
yang paling tepat untuk menangani masalah pencarian lintasan terpendek pada
graf berarah dengan bobot-bobot sisi (edge weights) yang bernilai tidak-negatif.
7
2.3 Algoritma Dijkstra
Algoritma ini ditemukan oleh Edsger Dijkstra . Yang merupakan salah
satu algoritma dalam memecahkan permasalahan jarak terpendek (shortest path
problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi
(edge weights) yang bernilai tidak-negatif.
Untuk lebih jelasnya maka dapat digambarkan sebagai berikut : Misalkan
G adalah graf berarah berlabel dengan titik-titik V(G) = { v1,v2,v3,………,vn } dan
path terpendek yang dicari adalah dari v1 ke vn . Algoritma Dijkstra dimulai dari
titik v1 . Dalam iterasinya, algoritma akan mencari satu titik yang jumlah
bobotnya dari titik 1 terkecil. Titik-titik yang terpilih dipisahkan dan tidak
diperhatikan lagi dalam iterasi berikutnya. Misalkan :
V(G) = { v1,v2,v3,………,vn }
L = Himpunan titik-titik € V(G) yang sudah terpilih dalam alur
path terpendek
D(j) = Jumlah bobot path terkecil dari v1 ke vj.
w(I,j) = Bobot garis dari titik vi ke titik vj.
w*(1,j) = Jumlah bobot path terkecil dari v1 ke vj.
Secara formal, algoritma Dijkstra untuk mencari path terpendek adalah sebagai
berikut :
1. L = { }
V = { v2, v3,…., vn }
2. Untuk i= 2,……, n , lakukan D(i) = w(1,i)
3. Selama vn ∉ L lakukan :
8
a. Pilih titik vk € V-L dengan D(k) terkecil
L = L U { vk }
b. Untuk setiap vj € V-L lakukan :
Jika D(j) > D(k) +W(k,j) maka ganti D(j) dengan D(k) + W(k,j)
4. Untuk setiap vj € V, w*(1,j) = D(j)
Menurut alagoritma diatas, path terpendek dari titik v1 ke vn adalah melalui
titik titik dalam L secara berurutan, dalam jumlah bobot path terkecilnya adalah
D(n). Untuk lebih memahami algoritma dijkstra, maka berikut contoh soal
pencarian jalur terpendek dari graf pada gambar 2.1 di bawah ini .
Gambar 2.1 Gambar graf kasus implementasi algoritma dijkstra
Kasus :
Dari gambar graf 2.1 diatas maka carilah jalur terpendek dari titik a
sampai dengan titik e.
Penyelesaian :
Va Vb Vc Vd Ve
Va ∞ 5 4 6 7
Vb 5 ∞ 7 8 6
W = Vc 4 7 ∞ 3 4
Vd 6 8 3 ∞ 5
Ve 7 6 4 5 ∞
a bc
de
5
6
5
6
4 7
8 4 3
7
9
Ada 4 langkah yang dilakukan untuk menyelesaikan masalah diatas, yaitu :
1. Mula- mula L= { } dan V= { Vb,Vc,Vd,Ve}
2. D(b) = W(a,b) = 5 ; D(c) = W(a,c) = 4
D(d) = W(a,d) = 6 ; D(e) = W(a,e) = 7
3. V – L = { Vb,Vc,Vd,Ve } – { } = { Vb,Vc,Vd,Ve }
Vn = Ve ∉ L, sehingga langkah 3(a) – 3(b) dilakukan.
3(a) : D(k) terkecil adalah D(c) sehingga vk = Vc
L = L ∪ {vk} = { } ∪ { Vc } = { Vc }
3(b) : V-L = { Vb,Vc,Vd,Ve } – { Vc } = { Vb,Vd,Ve }
k = c ( dari langkah 3(a) )
Diselidiki tiap titik dalam V-L
Untuk j = b :
D(j) = D(b) = 5 ; D(k) + W(k,j) = D(c) + W(c,b) = 4 + 7 = 11
Karena D(b) > D(c) + W(c,b) maka D(b) tetap = 5
Untuk j = d :
D(j) = D(d) = 6 ; D(k) + W(k,j) = D(c) + W(c,d) = 4 + 3 = 7
Karena D(d) > D(c) + W(c,d) maka D(d) tetap = 6
Untuk j = e :
D(j) = D(e) = 7 ; D(k) + W(k,j) = D(c) + W(c,e) = 4 + 4 = 8
Karena D(e) > D(c) + W(c,e) maka D(e) tetap = 7
10
Langkah selanjutnya kembali ke langkah 3(a), kerena Ve ∉ L
V-L = { Vb,Vd,Ve } ≠ ∅
Diantara D(k) ( k = b,d,e ) hasil iterasi langkah 3(b), D(k) yang terkecil adalah
D(b), sehingga Vk =Vb
Maka sekarang, L = L ∪ { Vb } = { Vc } ∪ { Vb } = { Vb,Vc }
3(b) : V- L = { Vb,Vc,Vd,Ve } – { Vb,Vc } = { Vd,Ve }
Langkah 3(b) untuk mengecek setiap titik dalam V-L diulangi lagi.
Langkah 3(a) dan 3(b) di ulang-ulang terus hingga Ve ∈ L. Hasil iterasi
selengkapnya dapat dilihat pada tabel 2.1.
11
Indeks k shg
D(k) minuman L
V-L
D(b)
D(c)
D(d)
D(e)
-
∅
{Vb,Vc,Vd, Ve }
W(a,b) = 5
W(a,c) = 4
W(a,d) = 6
W(a,e) = 7
c
{Vc}
{Vb,Vd,Ve}
Min (D(b),D(c)+W(c,b)) = Min(5, 4 + 7) = 5
4( tetap )
Min (D(d),D(c)+W(c,d)) = Min(6,4+3) = 6
Min (D(e),D(c)+W(c,e)) = Min (7,4+4) = 7
b
{Vb,Vc}
{Vd,Ve}
5( tetap )
4( tetap )
Min (D(d),D(b)+W(b,d) = Min(6,5+8) = 6
Min (D(e),D(b)+W(b,e) = Min(7,5+6) = 7
d
{Vb,Vc,Vd}
{Ve}
5( tetap )
4( tetap )
6( tetap )
Min D(e),D(d)+W(d,e) = Min(7,6+5) = 7
e
{Vb,Vc,Vd,Ve}
Tabel 2.1 Perhitungan Algoritma Dijkstra
12
Dari tabel perhitungan algoritma yang ditunjukkan pada tabel 2.1 dapat
dilihat karena vn = Ve ∈ L, maka iterasi dihentikan. Path terpendek dari Va
sampai ke Ve adalah 7 dengan jalur yang dibaca mundur sebagai berikut :
Pada iterasi k = d tidak terjadi penurunan jarak ( dari 7 tetap 7 ). Ini berarti
bahwa titik pada indeks k = d (Vd) bukan jalur path. Naik 1 baris diatasnya pada
iterasi k = b tidak terjadi penurunan jarak ( dari 7 tetap 7 ), Ini berarti bahwa titik
pada indeks k = b (Vb) bukan jalur path. Naik 1 baris diatasnya pada iterasi k = c
juga tidak terjadi penurunan jarak ( dari 7 tetap 7 ), Ini berarti bahwa titik pada
indeks k = c (Vc) bukan jalur path.
Jadi path terpendek adalah Va → Ve dengan total jarak = 7.
2.4 Visual Basic 6.0
Microsof Visual Basic 6.0 adalah salah suatu developement tools untuk
membangun aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi,
Visual Basic menggunakan pendekatan Visual untuk merancang user interface
dalam bentuk form, sedangkan untuk kodingnya menggunakan bahasa Basic yang
cenderung mudah dipelajari. Kelebihan dari Visual Basic adalah kemampuannya
untuk mengkompilasi program dalam bentuk Native Code, yaitu optimisasi pada
saat prosesor mengkompilasi dan menjalankan program tersebut. Selain itu Visual
Basic juga menyediakan fasilitas antar muka penulisan kode program yang lebih
mudah dimengerti dan dipakai sehingga berbagai tipe program dapat
dikembangkan didalamnya, misalnya EXE,DLL dan OCX, bahkan program –
program yang berbasis internet
13
2.5 MYSQL 5.0
SQL adalah bahasa terstruktur yang digunakan untuk query, meng-update
dan memanipulasi database. Tabel adalah suatu struktur dalam database yang
dipakai untuk menyimpan data. Primary Key adalah suatu indeks pengurutan data
yang secara fisik bergabung dengan table. Primary key diperlukan SQL Server
untuk menjaga suatu table , agar mengikuti aturan tertentu dan untuk
mempercepat pencarian berdasarkan primary key. String adalah rangkaian
karakter, angka dan symbol-simbol lainnya. Banyak fungsi string yang disediakan
MySQL untuk memanipulasi data string sehingga memudahkan pengolahan data.
Insert(str,pos,len,newstr)
Menyisipkan string ke dalam string lain dimulai pada posisi tertentu
sebanyak panjang string tertentu.
Substring(str,pos,len)
Untuk mengambil sebagian string mulai dari posisi tertentu sebanyak
panjang tertentu.
Stored Procedure adalah suatu sub program atau sekelompok perintah atau
sekelompok perintah SQL tersimpan dan menyatu dalam suatu database. Store
Prosedur dan Trigger adalah fasilitas baru yang ditambahkan dalam MySQL versi
5.0. Dengan adanya fasilitas ini menjadikan MySQL sebagai aplikasi database
yang secara penuh dapat menerapkan konsep pemrograman Client-Server, bukan
hanya Multi-User.
ODBC ( Open Database onectivity ) merupakan standart yang digunakan
oleh Microsoft untuk melakukan koneksi database melalui driver – driver yang
14
independent terhadap suatu produk. ODBC bekerja dalam lingkup system operasi
windows. Konektor ODBC adalah program dan driver yang bisa mengaitkan suatu
program ( termasuk program database server, misalnya MySQL ) dengan ODBC.
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Gambaran Sistem
Rumah Sakit Bethesda merupakan salah satu rumah sakit terbesar yang
ada di Yogyakarta. Rumah sakit ini melayani pengobatan pasien rawat inap dan
rawat jalan, konsultasi kesehatan, layanan laboratorium dan layanan kesehatan
lainnya. Ruangan yang ada di rumah sakit ini sangat banyak sehingga sering
menimbulkan kebingungan bagi para pengunjung untuk mencari lokasi suatu
ruangan. Ruangan yang ada di rumah sakit ini antara lain ruang rawat inap pasien,
laboratorium, klinik, kas bank, ATM dan lain sebagainya. Pintu masuk yang
disediakan di rumah sakit ini ada 3, yaitu : pintu masuk IGD & IRJ, pintu masuk
pengunjung pasien rawat inap dan pintu masuk samping paviliun Srikandi. Untuk
pengunjung yang baru pertama kali datang ke Rumah Sakit Bethesda mungkin
akan merasa kebingungan untuk mencari lokasi ruangan yang ingin mereka
kunjungi. Sehingga pihak rumah sakit menyediakan fasilitas layanan informasi
untuk memudahkan para pengunjung untuk menemukan ruangan yang ingin
dikunjunginya. Mereka dapat menanyakan lokasi ruangan tersebut pada petugas
informasi, sehingga pengunjung akan memperoleh informasi yang diinginkannya.
Pengunjung akan menemukan ruangan yang ingin dikunjungi dengan bantuan
petunjuk yang ada di setiap lorong Rumah Sakit Bethesda. Gambaran mengenai
lokasi ruangan yang ada di Rumah Sakit Bethesda ini dapat dilihat pada gambar
3.1.
15
16
Gambar 3.1 Denah Rumah Sakit Bethesda Yogyakarta
17
3.2 Fase Definisi
Masalah pokok yang terjadi pada Rumah Sakit Bethesda ini adalah
bagaimana cara untuk memberikan informasi mengenai lokasi ruangan yang ada
dirumah sakit ini dengan cara yang mudah di mengerti oleh pengunjung secara
efektif dan efisien. Masalah-masalah tersebut dapat dikategorikan pada PIECES
sebagai berikut :
1. Performance
Pada sistem lama yang masih manual, pengunjung harus mencari petunjuk
yang ada pada tiap-tiap lorong rumah sakit untuk sampai ke lokasi ruangan
yang ingin dikunjungi.
2. Information
Kemungkinan pengunjung akan merasa kebingungan dalam menemukan
lokasi yang ingin dikunjungi jika lokasi ruangan tersebut cukup jauh dari
pintu masuk. Karena saat mereka menanyakan informasi mengenai lokasi
tersebut pada petugas rumah sakit maka informasi yang didapat, hanya
berupa petunjuk yang panjang berupa kata-kata yang susah untuk diingat.
3. Economics
Tidak ada masalah dalam hal economics.
4. Control
Kemungkinan pengunjung tersesat pada saat mencari lokasi ruangan yang
ingin dikunjungi besar apalagi jika pengunjung tersebut baru pertama kali
datang ke RS. Bethesda.
18
5. Efficiency
Membutuhkan waktu yang lama (kurang efisien) bagi pengunjung untuk
mencari lokasi ruangan yang ingin dikujungi, jika pengunjung harus
menanyakan lokasi tersebut pada petugas dan pengunjung harus mencari
lokasi tersebut dengan berpedoman pada papan petunjuk yang ada pada
tiap lorong rumah sakit
6. Service
Pelayanan tidak maksimal, karena sistem yang masih manual dapat
memungkinkan pengunjung merasa kebingungan saat ingin mencari lokasi
ruangan yang baru pertama kali dikunjungi.
3.3 Fase Analisis Masalah
Pada fase ini dapat di gambarkan dengan tabel 3.1 dibawah ini.
Problem or oportunity Couses and effects System objectives System constraint
1. Pada sistem lama
yang masih manual
pengunjung harus
menanyakan lokasi
ruangan pada
petugas layanan
informasi dan
mencari petunjuk
yang ada pada
1. Proses pencarian
lokasi dengan
menanyakan
lokasi ruangan
pada petugas
layanan
informasi dan
mencari petunjuk
yang ada pada
1. Mempermudah
staff RS.
Bethesda
dalam
melayani
pengunjung
untuk
menemukan
lokasi ruangan
1. Sistem
berjalan pada
sistem
operasi
Windows
2. Database
engine
berjalan pada
platform
19
setiap lorong
rumah sakit untuk
sampai ke lokasi
ruangan yang ingin
dikunjungi.
2. Kemungkinan
pengunjung akan
merasa
kebingungan
dalam mencari
lokasi ruangan
3. Kemungkinan
pengunjung akan
tersesat saat
mencari lokasi
ruangan yang ingin
dikunjungi besar.
4. Pelayanan tidak
maksimal
setiap lorong
rumah sakit
memakan banyak
waktu dan kurang
efisien.
2. Informasi yang
tidak jelas dapat
membuat
pengunjung
tersesat dan
kebingungan
pada saat mencari
lokasi ruangan
yang ada dirumah
sakit ini.
yang ingin
dikunjungi
2. Mempermudah
pengunjung
untuk
menemukan
lokasi ruangan
yang ingin
dikunjungi
MySQL.
3. Sistem
dirancang
untuk single
user.
Tabel 3.1 Tabel Couses dan Effects
20
3.4 Gambaran Umum Sistem Baru
Sistem ini dibuat untuk mempermudah proses pencarian lokasi ruangan di
Rumah Sakit Bethesda Yogyakarta, karena system ini merupakan system yang
sudah terkomputerisasi. Ada 2 macam pengguna yang dapat mengakses progam
bantu ini, yaitu : pengunjung RS. Bethesda dan admin.
Proses untuk pengunjung RS. Bethesda diawali ketika pengunjung
memilih salah satu kategori ruangan yang di tawarkan pada program bantu ini.
Dimana pengunjung akan ditawarkan berbagai pilihan kategori ruangan yang ada
dirumah sakit ini. Kemudian setelah pengunjung memilih salah satu kategori yang
ditawarkan maka sistem akan memberikan output yang berupa nama-nama
ruangan yang termasuk dalam kategori ruangan yang telah dipilih. Pengunjung
bisa memilih nama ruangan yang ingin di kunjungi atau juga bisa kembali ke
menu sebelumnya. Setelah nama ruangan dipilih maka pengunjung harus
menentukan dari pintu mana pengunjung tersebut masuk . Dimana ada 3 pintu
masuk yang tersedia di rumah sakit ini yaitu pintu masuk IGD & IRJ, pintu masuk
pengunjung pasien rawat inap dan pintu masuk samping paviliun Srikandi.
Sebagai hasilnya maka sistem akan memberikan output berupa jarak dan jalur
terpendek dari pintu masuk sampai ke ruangan yang ingin di kunjungi yang
dilengkapi dengan denah RS. Bethesda.
Admin mempunyai hak akses lebih pada program bantu ini. Pada program
bantu ini ada 2 macam admin, yaitu admin dan super admin. Dimana super admin
mempunyai hak lebih dari pada admin. Admin hanya bisa mengolah data ruangan
dan mengedit password admin itu sendiri. Pengolahan data ruangan disini adalah
21
admin dapat melihat semua data ruangan yang ada di RS. Bethesda dan meng-
update data ruangan yang ada. Update data ruangan, di gunakan jika ada suatu
ruangan yang sedang di renovasi sehingga ruangan tersebut untuk sementara tidak
dapat digunakan. Sehingga ketika ruangan tersebut diakses oleh pengunjung
RS.Bethesda maka pengunjung tersebut akan memperoleh informasi bahwa
ruangan tersebut sedang di renovasi dan jika ruangan tersebut telah selesai
direnovasi, maka admin dapat mengembalikan data ruangan tersebut. Untuk super
admin, selain bisa mengolah data ruangan, super admin juga bisa mengolah data
admin. Yang dimaksud mengolah data admin adalah super admin bisa melihat
semua data admin, memasukan data admin baru dan menghapus data admin. Flow
chart system yang dibuat untuk pencarian jalur terpendek tampak pada gambar3.2.
22
Start
Input kategori ruangan
Input ruangan yang ingin dikunjungi
Pilih pintu masuk
Inisialisasi titik awal, titik tujuan
Penentuan ruang lingkup
Iterasi algoritma Dijkstra
Jarak dan jalur terpendek dari titik awal ke titik tujuan
END
Gambar 3.2 Flowchart Pencarian Jalur Terpendek
3.5 Requirement Analysis
Use case diagram program bantu pencarian lokasi ruangan di RS. Bethesda
dapat digambarkan pada gambar 3.3 dibawah ini.
User
Pilih ruangan yang ingin dituju
Tentukan pintu masuk
Pilih kategori ruangan yang ditawarkan
Admin
Edit Data Ruangan
Login
Hapus Data Ruangan
Restore Data Ruangan
<< depend on >>
<< depend on >>
Pengolahan data ruangan
Edit password admin
<< extends >>Lihat Data Ruangan
Pengolahan data adminRegister data admin baru
Hapus data admin
<< extends >>
Lihat Data Admin
Gambar 3.3 Use Case Diagram
3.6 Perancangan Basis Data
23
3.6.1 Pemodelan Proses
Pemodelan proses pada sistem yang dibuat dapat digambarkan pada
context diagram, diagram berjenjang dan data flow diagram, ketiganya nampak
pada gambar 3.4, 3.5, 3.6, 3.7, 3.8 dan 3.9.
24
Program bantu pencarian lokasi ruangan di RS
Bethesda Yogyakarta
User
kategori ruangan, nama ruangan
dan pintu masuk
jarak dan jalur terpendek lengkap dengan denah
RS.Betehsda
Admin
kategori ruangan, nama ruangan,pintu masuk,
data admin barudan data ruangan baru
jarak dan jalur terpendek lengkap dengan denah
RS.Bethesda, data admin barudan data ruangan baru
Gambar 3.4 Context Diagram
25
0---------------------------PROGRAM BANTU
PENCARIAN LOKASI RUANGAN DI RS.BETHESDA YOGYAKARTA
1-----------------------
PEMILIHAN KATEGORI RUANGAN
1.2P---------------------
PENENTUAN PINTU MASUK
2P------------------------VALIDASI ADMIN
1.1P---------------------PEMILIHAN
NAMA RUANGAN
YANG INGIN DITUJU
1.3P-----------------------PENENTUAN
JALUR TERPENDEK KE
RUANGAN YANG INGIN
DITUJU
5.1P-------------------
LIHAT DATA RUANGAN
5.2P---------------------
EDIT DATA RUANGAN
5.3P-------------------
HAPUS DATA RUANGAN
5.4P------------------
RESTORE DATA
RUANGAN
3 -----------------------PENGOLAHAN DATA ADMIN
5----------------------PENGOLAHAN
DATA RUANGAN
6P------------------------
LOGOUT
3.3P---------------------
REGISTER DATA ADMIN
BARU
3.4P---------------------
HAPUS DATA ADMIN
4P-----------------------
EDIT PASSWORD
ADMIN
3.1P-------------------
VALIDASI SUPER ADMIN
3.2P--------------------
LIHAT DATA ADMIN
Gambar 3.5 Diagram Berjenjang
26
User
Adm in
1-------------------------
PEM ILIHAN KATEG O RI RUANG AN
2-------------------------VALIDASI ADM IN
3. adm inusernam e , passwd
usernam e,passwd
1. ruangan
Kategori_ruangan yang pilihan
usernam e , passwd
3 -------------------------
PENG O LAHAN DATA ADM IN
5------------------------
PENG O LAHANDATA RUANG AN
user valid
data adm in baru
6------------------------
LO G O UT
data ruangan baru
data ruangan baru
data ruangan baru
data adm in baru
kategori_ruangan pilihankategori_ruangan pilihan
data ruangan sesuai kategori_ruangan pilihandata ruangan sesuaikategori_ruangan pilihan
perintah logout
4P----------- --------------EDIT PASSW O RD
ADM IN
user valid
usernam e,passwd baru
usernam e,passwd baru
data adm in baru
Gambar 3.6 Data Flow Diagram Level 1
27
1-------------------------------------------------------------------------
1.1P-------------------------
PEMILIHAN NAMA RUANGAN
YANG INGIN DITUJU
1. ruangan
2. jarak
Admin
User
nama ruangan pilihan
nama ruangan pilihan
1.2P-------------------------
PENENTUAN PINTU MASUK
1.3P---------------------------
PENENTUAN JALUR
TERPENDEK KE RUANGAN YANG
INGIN DITUJU
nama pintu masuk
titik tujuan
titik awal
kode_ruangan_asal
Kode_ruangan_tujuan
jarak
jarak, jalur terpendek
kode_ruangan
kode_ruangan
Nama ruangan pilihan
pintu masuk piliahan
jarak, jalur terpendek
Pintu masuk pilihan
Gambar 3.7 Data Flow Diagram Level 2 Proses 1
28
3------------------------------------------------------- -----------------------------------
3.3P---------------------------
REGISTER DATA ADMIN BARU
3.4P---------------------------
HAPUS DATA ADMIN
3.1P---------------------------
VALIDASI SUPER ADMIN
Admin
username,passwd superadmin
user valid
data admin baru
user valid
data admin baru
level admin, data admin baru
3.2P---------------------------
LIHAT DATA ADMIN
user valid
level admin data admin 3. admin
username,password
username,password
level admin
data admin baru
level admin, data admin baru
data admin baru
Gambar 3.8 Data Flow Diagram Level 2 Proses 3
29
Admin
1. ruangan
5------------------------------------------------------------------ -------------
5.1P---------------------------
LIHAT DATA RUANGAN
5.2P---------------------------
EDIT DATA RUANGAN
5.3P---------------------------
HAPUS DATA RUANAN
5.4P--------------------------
RESTORE DATA RUANAN
username,password
status ruangan
data ruangan
data ruangan baru
perubahan statusruangan
perubahan status ruangan
user valid
Status ruangan
data ruangan baru
status ruangan baru
status ruangan baru
data ruangan baru
status ruangan baru
status ruangan baru
Gambar 3.9 Data Flow Diagram Level 2 Proses 5
30
3.6.2 Pemodelan Data
Pemodelan data untuk sistem yang dibuat nampak pada gambar 3.10 dan
3.11 dibawah ini.
Ruangan
Jarak
kode_ruangan
nama_ruangan
kategori_ruangan
jarak
(1,N) (1,N)
Adminpengolahan
username passwd
level
(1,1) (1,N)status
line x1
y1
Gambar 3.10 E-R Diagram
Ruangan
PK kode_ruangan
nama_ruangan kategori_ruangan x1 y1 status line
Jarak
**kode_ruangan_asal **kode_ruangan_tujuan jarak
Admin
PK username
passwd level
Gambar 3.11 Relational Model
31
3.7 Desain Input Output
3.7.1 Desain Input
Ada 11 kategori ruangan yang disediakan pada program bantu ini. Dimana
tiap kategori terdiri dari beberapa ruangan. Isi dari tiap-tiap kategori tersebut
adalah :
1. Kategori Ruangan Pasien
Yang terdiri dari 2 kategori, yaitu paviliun dan ruangan biasa.
Paviliun : Paviliun Srikandi, Shinta, Anggrek, Gardena,
Flamboyan, Hibiscus, Dahlia, Bakung, Canna, Edelweis dan Jasmine.
Ruangan Biasa : Ruang Bayi, Galilea ,I, III, IV,VI,VII, A, B, C, D,
E, F , G, H, I, J, dan N.
2. Kategori Klinik
Terdiri dari semua klinik yang ada di RS.Bethesda yaitu klinik laktasi,
gizi, akupuntur, psikiatri, karyawan, psikologi, CB anak sehat, mata, kulit, gigi &
mulut, THT, alergi, kebidanan, fisioterapi, saraf, penyakit dalam, bedah, dan
polikinik Kartini.
3. Kategori IGD
Terdiri dari pintu masuk ruang IGD, tempat pendaftaran pasien IGD dan
ruang IRD.
4. Kategori Laboratorium
Terdiri dari laboratorium anatomi & patologi, mikrobiologi, radiologi,
klinik dan patologi klinik.
32
5. Kategori Farmasi
Terdiri dari medical record, satelit farmasi rawat jalan dan farmasi pusat
pasien rawat inap.
6. Kategori Staff Bethesda
Terdiri dari ruang dokter, sekretariat, wakil direktur & direktur, kepala
IRD, kantor IRJ, humas & pemasaran, bagian kepegawaian, panitia rekam medik,
PDI, PSMRS, PSP, PYC, PKPKY, PKBRS, BMKK, IDI, PDE, komite bidang
diklat, komite gerejani, komite dana pension YAKKUM, komite medis.
7. Kategori Operasional
Terdiri dari dapur, instansi gizi, petrollena, ruang diklat, kantor
elektromedik, ruang senam & fitness, studio, unit jahit, liner bersih, liner kotor,
ruang operasional, PSPM dan ruang rapat.
8. Kategori Staff Administrasi
Terdiri dari loket administrasi, ruang akutansi & keuangan, loket askes,
kantor piutang.
9. Kategori ATM
Terdiri dari ATM BRI, kas BRI, kas Lippo Bank dan kas BPD DIY.
10. Kategori Fasilitas Umum
Terdiri dari toilet, café, lift, tempat layanan informasi dan mini market.
11. Kategori Lain-lain
Terdiri dari unit perawatan ginjal dan ruang cuci darah, ruang bersalin,
ruang pemulihan dan ruang fisioteraphi.
33
3.7.2 Desain Output
Desain output dari program bantu ini adalah berupa jarak terpendek dan
jalur terpendek dari pintu masuk sampai ke ruangan yang ingin di kunjungi oleh
pengguna program bantu yang disertai dengan denah RS.Bethesda.
3.8 Perancangan Proses
Untuk menemukan jalur terpendek ke setiap ruangan yang ada di rumah
sakit ini, digunakan suatu algoritma pencarian jarak terpendek yaitu algoritma
dijkstra. Untuk mengimplementasikan algoritma ini, maka denah rumah sakit di
ubah ke dalam bentuk graf. Data jarak dan ruangan didapat dari pihak Bethesda
Yogyakarta berbentuk denah rumah sakit dengan skala 1 : 125 cm untuk gedung
lantai 1 kecuali gedung IGD dan IRJ, karena untuk gedung IRJ dan IGD di
berikan data asli tanpa skala.
Dalam pengimplementasian perubahan denah rumah sakit ke dalam graf
ada beberapa aturan yang dipakai, antara lain :
1. Setiap ruangan, pertigaan dan perempatan dijadikan suatu titik.
2. Jika ruangan berupa ruang rawat inap pasien maka ada aturan berbeda untuk
ruang rawat inap pasien yang berupa paviliun dan bangsal. Hal ini disebabkan
karena untuk ruang rawat inap pasien yang berupa paviliun mempunyai pintu
masuk sendiri-sendiri untuk setiap pasiennya, sedangkan untuk ruang rawat
inap pasien yang berupa bangsal pintu masuk hanya 1. Aturan tersebut adalah
sebagai berikut :
34
Jika ruang rawat inap pasien yang dituju berupa bangsal maka titik
diletakan di pintu masuk ruangan.
Jika ruangan rawat inap pasien berupa paviliun maka titik diletakan di
ruang perawat paviliun tersebut.
3. Untuk ruangan selain ruang rawat inap pasien maka titik di letakan di pintu
masuk ruangan tersebut.
3.8.1 Pembuatan Matriks Jarak
Dalam menentukan jarak antar titik pada graf, langkah yang dilakukan
adalah dengan mengukur jarak pada denah rumah sakit yang berskala 1 : 125 cm
untuk gedung lantai 1 kecuali gedung IGD dan IRJ, untuk gedung IGD dan IRJ
dihitung tanpa skala karena data yang di dapat sudah berupa data asli tanpa skala.
Untuk jalur yang hanya searah maka pada tabel jarak hanya ada jarak
antara titik awal ke titik tujuan, tidak sebaliknya, tetapi untuk jalur yang 2 arah,
maka pada tabel jarak akan ada jarak antara titik awal ke titik tujuan dan
sebaliknya tetapi titik tujuan dijadikan titik awal dan titik awal dijadikan titik
tujuan. Jarak antar titik dikatakan ∞ jika kedua titik tidak terhubung langsung.
Jika kedua titik terhubung langsung maka dalam field jarak pada tabel jarak akan
diisi jarak antara kedua titik tersebut. Tabel jarak untuk graf rumah sakit Bethesda
nampak pada Lampiran B.
35
3.8.2 Pembagian Ruang Lingkup
Untuk efisiensi pengimplementasian algoritma dijkstra pada program,
maka dari keseluruhan graf rumah rumah sakit Bethesda Yogyakarta akan dibagi
menjadi 9 ruang lingkup seperti yang nampak pada gambar 3.12, 3.13 dan 3.14,
yaitu ruang lingkup A, B, C, D, E, F, G dan H, I, dengan pembagiannya sebagai
berikut :
Ruang Lingkup A
Meliputi sebagian besar paviliun ruang rawat inap pasien yang dimulai dari
pintu masuk samping paviliun Srikandi sampai dengan pertigaan selasar utama
paviliun Dahlia.
Ruang Lingkup B
Meliputi paviliun Edelweis, ruang pertemuan I dan semua ruangan yang
dimulai dari pintu masuk pengunjung pasien rawat inap sampai dengan pertigaan
selasar utama.
Ruang Lingkup C
Meliputi semua ruangan di gedung IRJ dan IGD lantai 1 yang dimulai dari
pintu masuk IRJ sampai dengan selasar belakang IRJ.
Ruang Lingkup D
Meliputi semua ruangan bangsal pasien rawat inap dari A sampai N, ruang
jenazah dan parkir ambulans, yang dimulai dari dapur kecil.
Ruang Lingkup E
Meliputi PSPM, dapur besar dan selasar penghubung antara ruang lingkup B,
C dan D.
36
Ruang Lingkup F
Meliputi semua ruangan rawat inap pasien I sampai VII kecuali VI, ruang
Galilea, yang dimulai dari selasar utama sampai dengan selasar utama paviliun
Dahlia.
Ruang Lingkup G
Meliputi ATM BRI dan minimarket
Ruang Lingkup H
Meliputi semua ruangan di gedung IRJ dan IGD lantai 2
Ruang Lingkup I
Meliputi semua ruangan di gedung IRJ dan IGD lantai 3
Untuk efisiensi penerapan algoritma dijkstra, maka di buat aturan
pembagian ruang lingkup pengecekan titik berdasarkan ruang lingkup pintu
masuk dan ruang lingkup titik tujuan. Pada aturan pembagian ruang lingkup
pengecekan titik, ada beberapa contoh kasus yang menyebabkan ruang lingkup
pengecekan titik dipersempit, karena pada kenyataannya ada ruang lingkup yang
sebenarnya tidak masuk ke dalam jalur terpendek. Contoh-contoh kasusnya dapat
di lihat pada table 3.2 di bawah ini.
Titik Asal Titik Tujuan Ruang Lingkup Jalur Terpendek
A1 C3 A,B,C,E,F
A1 D4 A,B,D,E,F
B1 C24 B,C,G
B1 E6 B,E
B1 D4 B,D,E
37
C1 B31 B,C,G
C1 F2 B,C,E,F
C1 A12 A,B,C,E,F
Tabel 3.2 Tabel Contoh Kasus Penyempitam Ruang Lingkup Pengecekan Titik
Dari beberapa contoh kasus pada table 3.2 di atas, maka aturan pembagian
pengecekan titik nampak pada tabel 3.3 dibawah ini.
Ruang Lingkup Pintu
Masuk
Ruang Lingkup Titik
Tujuan
Ruang Lingkup Pengecekan
Titik
A A A
A B AB,F
A C A,B,C,E,F
A D A,B,D,E,F
A E A,B,E,F
A F A,F
A G A,B,F,G
A H A,B,C,E,F,H
A I A,B,C,E,F,H,I
B A A,B,F
B B B
B C B,C,G
B D B,D,E
38
B E B,E
B F B,F
B G B,G
B H B,C,G,H
B I B,C,G,H,I
C A A,B,C,E,F
C B B,C,G
C C C
C D C,D,E
C E C,E
C F B,C,E,F
C G C,G
C H C,H
C I C,H,I
Tabel 3.3 Tabel Aturan Ruang Lingkup Pengecekan Titik
39
C 1
C 7 C8
C 36
C 14
C 10
C 11
C13
C 34C 30
C 31C 35
C 3
C 6
C 20
C 29C 28 C33
C 23C 27
C 24
C 32
C 22 C 38
C 17
C 16
C15
C 26
C 21
D 9
E5
E 7
E2
E1
E3
D 1
D 2
D 3
D 12
D 8
D 10
D15
D 18
D 16
D 13
D 30
D 11
D 31
D 27
D 25
D 24
D23
D 26
D 20
D 22
D 19
D 21
D 5
D 4
D 7
D 6
D 29
D 28
D 17
B28
B27 B26 B 25
B12
B 11 B13B 10
B 4
B3
B1
B 2
B7B6
B8
B 9
B14
B24
B21
B22B23
B15
B 30
B29
B 31
B16
B18
F1
F2
F3
F4
F5
F6F7
F9
F11
F12
F8
A 19
F10
A28A29
A 26
A 13
A 8
A 17
A 9
A 11
A 14A 16
A 15
A 12
A 2
A 5
A 7
A 10
A 6
A 25
A 21
A 22A 23
A 18
A24A 27
A 20
A 1
A 4
B 17
B 19
B20
F13
A 3
C 19
C25
B5
E4
D 14
E 6
C 5
C 37
C2G 1
G 2
D 32
R uang Lingkup A
R uang Lingkup F
R uang L ingkup B
R uang Lingkup G
R uang Lingkup C
R uang Lingkup E
R uang Lingkup D
A 30A 31
C 18
C 4 C 12
C 9
D 33D 34
F14
F15
Gambar 3.12 Graf Keseluruhan Rumah Sakit Bethesda Lantai 1
= Tangga dan Lift yang menghubungkan antar lantai = Pintu Masuk
40
H1
H2
H3
H13
H10
H7
H8H9
H6H4
H5
H11
H15
H31
H17 H18
H19
H20
H21
H22
H23
H24
H25 H26H27
H28H29
H30
H41
H33
H34
H35
H36H37H38H39
H40
H14
H12
H32
H16
Ruang Lingkup H
H42
H43
Gambar 3.13 Graf Gedung IGD & IRJ Rumah Sakit Bethesda Lantai 2
= Tangga dan Lift yang menghubungkan antar lantai gedung IGD dan IRJ
41
I1
I2
I3
I4
I5
I6
I7I8I9I10
I11
I12
I13 I14I15
I16
I17
I18
I19
I20
I21
I22
I23
I24
I25
I26I27
I28
I29
I30
I31 I32
Ruang Lingkup I
I33
Gambar 3.14 Graf Gedung IGD & IRJ Rumah Sakit Bethesda Lantai 3
= Tangga dan Lift yang menghubungkan antar lantai gedung IGD dan IRJ
BAB IV
IMPLEMENTASI DAN ANALISA HASIL
Pada bab ini akan dibahas tentang implementasi pembuatan program bantu
pencarian lokasi di RS. Bethesda Yogyakarta dengan menggunakan bahasa
pemograman Visual Basic 6.0 dan databasenya menggunakan MySQL 5.0. Pada
bab ini juga akan dibahas tentang analisa dari program bantu tersebut dan
pembahasannya.
4.1 Implementasi Program
Program bantu ini dibuat untuk membantu pengunjung RS. Bethesda
untuk memperoleh jalur terpendek dalam mencari ruangan yang ingin dikunjungi
dan mempermudah pihak rumah sakit dalam memberikan pelayanan yang lebih
baik dan mudah untuk pengunjung maupun pengguna jasa RS. Bethesda.
4.1.1 Implementasi Algoritma Dijkstra
Pada bagian ini akan dibahas beberapa listing program yang berhubungan
dengan implementasi algoritma dijkstra dalam bahasa pemrograman Visual Basic
6.0. Untuk efisiensi pengimplementasian algoritma dijkstra maka di buat strore
prosedur algoritma_dijkstra() yang akan dipanggil dalam bahasa pemrograman
Visual Basic 6.0.
42
43
4.1.1.1 Menentukan titik awal
Titik awal yang dimaksud disini adalah kode pintu masuk yang telah
dipilih oleh pengguna program bantu ini. Pada program bantu ini di sediakan 3
pintu masuk, yaitu pintu masuk IGD & IRJ, pintu masuk pengunjung pasien rawat
inap dan pintu masuk samping paviliun Srikandi. Dalam penentuan titik awal ini
digunakan event click() pada kontol option button berikut listing programnya :
Private Sub OptIgd_Click() TextIgd = "C1" kodeawal1 = TextIgd awal1 = Left(kodeawal1, 1) End Sub Private Sub OptPasien_Click() TextIgd = "B1" kodeawal1 = TextIgd awal1 = Left(kodeawal1, 1) End Sub Private Sub OptSamping_Click() TextIgd = "A1" kodeawal1 = TextIgd awal1 = Left(kodeawal1, 1) End Sub
Keterangan :
Pada tiap form kategori ruangan dipasang event click() pada ke 3 kontrol
option button, dimana kontrol option button ini digunakan untuk menampung ke
tiga pilihan pintu masuk yang di ada.
Ketika salah satu kontrol option button di click maka TextIgd ( kontrol
TextBox yang digunakan untuk menampung kode_ruangan dari pintu masuk yang
dipilih ) akan di isi dengan kode_ruangan pintu masuk yang telah di pilih oleh
pengguna program bantu ini. Kemudian isi dari TextIgd akan ditampung dalam
variabel kodeawal1 yang merupakan variabel titik awal yang akan digunakan
dalam iterasi algoritma djikstra, selanjutnya kodeawal1 ini akan dipotong 1 huruf
44
dari depan yang disimpan dalam variabel awal1 yang digunakan dalam penentuan
ruang lingkup.
4.1.1.2 Menentukan titik tujuan
Titik tujuan yang dimaksud disini adalah kode ruangan yang ingin
dikunjungi oleh pengguna program bantu ini, berikut listing program untuk
menetukan titik tujuan :
Set rs = New ADODB.Recordset rs.Open " select * from ruangan where nama_ruangan='" & ComboAdministrasi & "'", conn If Not rs.EOF Then
If status_ruangan = 0 Then kode = rs("kode_ruangan") kodeakhir1 = kode akhir = Left(kode, 1) Else MsgBox "Maaf, ruangan yang ingin di kunjungi
sedang di renovasi. . !!", vbCritical, "Error" ComboAdministrasi = "Pilih Ruang Administrasi
Yang Tersedia" CommandCari.Enabled = True CommandMenu.Enabled = True Exit Sub End If Else MsgBox "Silahkan pilih jenis ruang administrasi
terlebih dahulu. . !!", vbCritical, "Error" ComboAdministrasi = "Pilih Ruang Administrasi Yang
Tersedia" CommandCari.Enabled = True CommandMenu.Enabled = True Exit Sub End If Set rs = Nothing
Keterangan : Untuk memperoleh kode_ruangan dari ruangan yang telah di pilih oleh
pengguna program bantu ini digunakan query yang berfungsi untuk mengambil
data dari tabel ruangan yang nama ruangannya sama dengan nama ruangan yang
dipilih oleh pengguna program bantu pada kontrol combobox.
45
Pada penentuan titik tujuan ini, jika status ruangan yang ingin dituju oleh
pengguna program bantu ini adalah 1 ( yang berarti ruangan sedang di renovasi ),
maka program bantu ini akan memberikan informasi pada pengguna program
bantu bahwa ruangan yang ingin di kunjungi sedang di renovasi.
Data kode_ruangan yang dihasilkan dari query tersebut akan ditampung
dalam variabel kode, yang kemudian akan ditampung lagi pada variabel
kodeakhir1 yang merupakan variabel titik tujuan yang merupakan titik akhir
dalam iterasi algoritma dijksra, selanjutnya kode_ruangan tersebut akan dipotong
1 huruf dari depan yang ditampung dalam variable akhir, hal ini diperlukan untuk
menentukan ruang lingkup.
4.1.1.3 Menentukan ruang lingkup
Penentuan ruang lingkup berguna untuk mempercepat proses pengecekan
tiap titik, karena jika tidak dibagi kedalam beberapa ruang lingkup maka jumlah
titik yang di cek akan sangat banyak yaitu 227 titik, sehingga akan menyebabkan
proses pencarian jalur terpendek dengan algoritma dijkstra memakan waktu yang
relatif lama. Sehingga pada program bantu ini, graf RS. Bethesda dibagi menjadi 9
ruang lingkup. Untuk menentukan ruang lingkup maka dibuat store prosedur
untuk menentukan titik mana saja yang harus di cek dalam iterasi algoritma
dijkstra. Store prosedur untuk tiap titik asal dan titik tujuan yang berbeda juga
berbeda. Dimana aturan penentuan ruang lingkup harus sesuai dengan tabel aturan
pengecekan titik ruang lingkup yang dapat dilihat pada tabel 3.3 di halaman 37.
Berikut salah satu listing program store prosedur penentuan ruang lingkup :
46
DELIMITER $$; DROP PROCEDURE IF EXISTS `bethesda`.`lingkupA_A`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `lingkupA_A`(lingkup_awal varchar(1),lingkup_tujuan varchar(1)) BEGIN declare titik_lingkup varchar(4); declare jumlah int; declare x int default 1; declare cur1 cursor for select count(*) from ruangan
where Substring(kode_ruangan,1,1)=lingkup_awal OR Substring(kode_ruangan,1,1)=lingkup_tujuan;
declare cur2 cursor for select kode_ruangan from ruangan where substring(kode_ruangan,1,1)=lingkup_awal OR Substring(kode_ruangan,1,1)=lingkup_tujuan;
open cur1; open cur2; fetch cur1 into jumlah; set jumlah=jumlah+1; while x < jumlah do fetch cur2 into titik_lingkup; insert into titik values(x,titik_lingkup,1); set x =x+1; end while; CLOSE cur1; CLOSE cur2; END$$ DELIMITER ;$$
4.1.1.4 Iterasi algoritma dijkstra
Pada tahap ini ada beberapa tahap yang harus dilakukan untuk
mendapatkan jarak dan jalur terpendek dari pintu masuk sampai ke ruangan yang
ingin di kunjungi oleh penguna program bantu ini, berikut ini adalah tahap-tahap
iterasi algoritma dijkstra :
a. Menghitung jarak antara titik awal dengan semua titik-titik yang merupakan
titik yang termasuk dalam ruang lingkup hasil dari langkah3. Setelah di
dapatkan data jarak, maka semua data pada iterasi ini disimpan pada tabel
bantuan yaitu tabel iterasi_jarak. Berikut listing store prosedur nya:
47
set titik_terpilih=kode_asal; update titik set status1 = 0 where
kode_titik=titik_terpilih; select count(*) into jumlah from titik; set jumlah=jumlah+1; while x<jumlah do select kode_titik into in_kode_titik from titik where
nomor=x; select status1 into status_titik from titik where
nomor=x; if status_titik=1 then CALL ambil_jarak (kode_asal, in_kode_titik,
@jarak); select @jarak into in_jarak; insert into iterasi_jarak values(in_iterasiku,x,
kode_asal,in_kode_titik,in_jarak); set x=x+1; else insert into iterasi_jarak values (in_iterasiku,
x,kode_asal,in_kode_titik,999); set x=x+1; end if; end while; set kode_asalku=kode_asal;
b. Pengecekan apakah titik tujuan telah masuk kedalam himpunan titik terpilih.
Selama hasil pengecekan bernilai salah, berarti titik tujuan belum masuk ke
dalam himpunan titik terpilih dalam jalur terpendek. Sehingga akan dilakukan
2 langkah yaitu :
b1. Pilih titik terpilih yang termasuk dalam dalam ruang lingkup ( iterasi
terakhir ) dengan jarak terkecil. Berikut listing store prosedurnya :
if z>1 then select kode_titik into kode_asalku from
titik_terpilih where iterasi=in_iterasi; end if; call pilih_jaral_terpendek (in_iterasiku, @jarak,
@titik); select @jarak into in_jarak; set jarak_sementara=in_jarak; select @titik into in_titik; set titik_terpilih=in_titik; insert into titik_terpilih values (in_iterasiku,
in_titik,in_jarak); set waktu_akhir_iterasi=curtime();
48
set waktu_iterasi = timediff (waktu_akhir_iterasi, waktu_awal_iterasi);
insert into detail_waktu_iterasi values (kode_asalku, in_titik,waktu_awal_iterasi,waktu_akhir_iterasi);
set waktu_awal_iterasi=curtime(); if in_iterasiku=1 then set total_waktu_iterasi=waktu_iterasi; else set total_waktu_iterasi1=waktu_iterasi; set total_waktu_iterasi = addtime
(total_waktu_iterasi, total_waktu_iterasi1); end if; insert into waktu_iterasi values (in_iterasiku,
kode_asalku,in_titik,waktu_iterasi); set in_iterasi=in_iterasiku; set in_iterasiku=in_iterasiku+1; update titik set status1 = 0 where kode_titik =
titik_terpilih;
b2. Ruang lingkup titik – titik yang harus di cek akan dikurangi dengan titik
terpilih hasil dari langkah c1. Selanjutnya akan dilakukan lagi pengecekan
jarak dari titik terpilih hasil dari langkah c1 dengan semua titik yang masih
termasuk dalam ruang lingkup. Setelah di dapatkan data jarak, maka
semua data pada iterasi ini disimpan pada tabel bantuan yaitu tabel
iterasi_jarak. Berikut listing program pengecekan jarak tersebut :
declare cur1 cursor for select count(*) from titik; declare cur2 cursor for select kode_titik from titik;
open cur1; open cur2; fetch cur1 into jumlah; set x=1; set jumlah=jumlah+1; while x < jumlah do fetch cur2 into in_kode_titik; select status1 into status_titik from titik
where nomor=x; if status_titik=1 then call ambil_jarak2 (in_iterasi,
kode_asalku,in_kode_titik,@jarak); select @jarak into in_jarak2; call ambil_jarak3 (titik_terpilih,
in_kode_titik,jarak_sementara,@jarak); select @jarak into in_jarak;
49
if in_jarak2>in_jarak then insert into iterasi_jarak values
(in_iterasiku, x,titik_terpilih, in_kode_titik,in_jarak);
else insert into iterasi_jarak values
(in_iterasiku,x,titik_terpilih, in_kode_titik,in_jarak2);
end if; set x =x+1; else insert into iterasi_jarak values
(in_iterasiku,x,titik_terpilih, in_kode_titik,999);
set x =x+1; end if; end while; CLOSE cur1; CLOSE cur2;
Langkah c1 dan c2 akan terus dilakukan selama titik tujuan tidak sama dengan
titik terpilih.
c. Jika iterasi telah dihentikan maka akan di telesuri jalur terpendek dari pintu
masuk sampai dengan ke ruangan yang ingin dikunjungi oleh pengguna
program bantu ini. Dalam penelusuran jalur terpendek ini digunakan listing
program sebagai berikut :
select count(*) into jumlah_jalur from titik_terpilih; select jarak into jarak_akhir from titik_terpilih where
iterasi=jumlah_jalur; select kode_titik into jalur_tujuan from titik_terpilih
where iterasi=jumlah_jalur; set kode_awal_jalur=jalur_tujuan; insert into sementara values(a,jalur_tujuan); set z=1; while jumlah_jalur>1 do set iterasi_sebelum=jumlah_jalur-1; if a=1 then set in_iterasi_sebelum=jumlah_jalur-2; select kode_titik into jalur_asal from
titik_terpilih where iterasi=in_iterasi_sebelum; else set in_iterasi_sebelum=jumlah_jalur-2; select kode_titik into jalur_asal from
titik_terpilih where iterasi=in_iterasi_sebelum; end if;
50
select jarak into jarak_jalur from iterasi_jarak where iterasi=iterasi_sebelum and kode_ruangan_asal = jalur_asal and kode_ruangan_tujuan=jalur_tujuan;
set jumlah_jalur=jumlah_jalur-1; if jarak_jalur <> jarak_akhir then set waktu_akhir_jalur=curtime(); set waktu_jalur =timediff (waktu_akhir_jalur,
waktu_awal_jalur); set waktu_awal_jalur=curtime(); set a=a+1; select iterasi into iterasi_titik from
titik_terpilih where kode_titik=jalur_asal; set iterasi_titik=iterasi_titik+1; select kode_titik into jalur_tujuan_sementara
from titik_terpilih where iterasi=iterasi_titik; set kode_akhir_jalur=jalur_tujuan_sementara; insert into sementara values
(a,jalur_tujuan_sementara); select jarak into jarak_jalur_sementara from
titik_terpilih where kode_titik = jalur_tujuan_sementara;
set jarak_akhir=jarak_jalur_sementara; set jalur_tujuan=jalur_tujuan_sementara; if kode_akhir_jalur <> kode_tujuan then
insert into waktu_penentuan_jalur values (k,kode_awal_jalur,kode_akhir_jalur,waktu_jalur);
insert into waktu_iterasi_titik values(kode_awal_jalur,kode_akhir_jalur,waktu_awal_jalur,waktu_akhir_jalur);
end if; if k=1 then set total_jalur=waktu_jalur; else set total_jalur1=waktu_jalur; set total_jalur = addtime (total_jalur,
total_jalur1); end if; set k=k+1; set kode_awal_jalur=kode_akhir_jalur; end if; end while;
4.1.2 Implementasi Pembuatan Output
Pada program bantu ini terdapat 2 macam output yang di hasilkan yaitu
output yang berupa informasi mengenai jarak terpendek ( dalam satuan meter )
dan jalur terpendek ( kode ruangan dan nama ruangan ) dari pintu masuk sampai
51
ke ruangan yang ingin di kunjungi oleh pengguna program bantu ini, yang di
tampilkan dalam bentuk kalimat dan output visualisasi yang berupa gambar denah
RS. Bethesda yang disertai dengan jalur terpendek dari pintu masuk sampai ke
ruangan yang ingin di kunjungi oleh pengguna program bantu ini, yang
merupakan hasil dari implementasi algoritma dijkstra.
4.1.2.1 Output Berupa Kode Ruangan dan Nama Ruangan Jalur Terpendek
Untuk menampilkan kode ruangan dan nama ruangan dari jalur terpendek
yang telah di hasilkan dari implementasi algoritma dijkstra maka digunakan
function penentuan jalur() untuk memecah array jalur() yang penampung jalur
terpendek hasil dari implementasi algoritma dijkstra. Berikut listing program
function penentuan jalur():
Public Function penentu_jalur() c = 1 e = 1 Set rs = New ADODB.Recordset rs.Open " select count(*) as jumlahku from sementara", conn If Not rs.EOF Then jumlah = rs("jumlahku") b = jumlah End If Set rs = Nothing While jumlah > 0 If jumlah = b Then Set rs = New ADODB.Recordset rs.Open " select * from sementara where nomor='" &
jumlah & "' ", conn If Not rs.EOF Then jalurterpilih = rs("kode_titik") jalur_awal = jalurterpilih End If Set rs = Nothing Set rs = New ADODB.Recordset rs.Open " select * from ruangan where kode_ruangan='"
& jalurterpilih & "'", conn If Not rs.EOF Then ruang = rs("nama_ruangan") jalurterpendek = c & ". " & jalurterpilih & " ( "
& ruang & " )" jumlah = jumlah - 1
52
End If Set rs = Nothing Else Set rs = New ADODB.Recordset rs.Open " select * from sementara where nomor='" &
jumlah & "'", conn If Not rs.EOF Then jalurterpilih = rs("kode_titik") jalur_akhir = jalurterpilih End If Set rs = Nothing Set rs = New ADODB.Recordset
rs.Open " select * from ruangan where kode_ruangan='" & jalurterpilih & "'", conn
If Not rs.EOF Then ruang = rs("nama_ruangan") 'jalur_terpilih1(c) = jalurterpilih jalurterpendek = jalurterpendek & vbCrLf & c & ".
" & jalurterpilih & " ( " & ruang & " )" jumlah = jumlah - 1 'd = c - 1 End If Set rs3 = Nothing End If If c >= 2 Then If c = 2 Then jumlah1 = jumlah + 3 Else jumlah1 = jumlah + 2 End If Set rs = New ADODB.Recordset
rs.Open " select * from sementara where nomor='" & jumlah1 & "'", conn
If Not rs.EOF Then jalurterpilih = rs("kode_titik") jalur_awal = jalurterpilih End If Set rs = Nothing conn.Execute "call spinjalur('" & e & "','" &
jalur_awal & "', '" & jalur_akhir & "') " e = e + 1 End If c = c + 1 Wend hasil_akhir = "Jalur yang terpendek yang bisa dilewati adalah
" & vbCrLf & jalurterpendek End Function
53
Keterangan :
a) Untuk memecah data titik terpilih pada tabel bantu sementara maka digunakan
perulangan selama semua titik terpilih belum selesai di cek. Dalam
perulangan ini, pada iterasi awal dibuat query untuk mengambil data dari tabel
ruangan dengan kode_ruangannya adalah titik terpilih pada jalur terpendek
yang sedang di cek dalam perulangan ini. Dan variabel jalur terpendek (
penampung hasil yang akan ditampilkan pada output ) akan di isi dengan
jumlah titik yang telah di cek di ikuti kode ruangan dan nama ruangan dari
titik yang sedang di cek dalam perulangan ini.
b) Kemudian dilanjutkan ke perulangan berikutnya untuk mengecek titik
berikutnya, dimana pada perulangan ini dibuat juga query yang sama seperti
pada query sebelumnya. Pada perulangan ini variabel jalur terpendek (
penampung hasil yang akan ditampilkan pada output ) akan di isi dengan isi
dari variabel jalur terpendek hasil dari perulangan sebelumnya ditambah
dengan jumlah titik yang telah di cek di ikuti kode ruangan dan nama ruangan
dari titik yang sedang di cek dalam perulangan ini.
c) Dilakukan pemanggilan store prosedur spinjalur() untuk memasukan data jalur
dari titik yang di cek pada perulangan sebelumnya ke titik yang sedang di cek
pada perulangan saat ini ke dalam tabel bantu jalur yang akan digunakan
untuk membuat output berupa gambar denah RS. Bethesda yang di sertai
dengan jalur terpendeknya.
d) Perulangan akan dilanjutkan dengan melakukan langkah b dan d. Perulangan
akan dihentikan jika titik yang di cek adalah titik awal.
54
Hasil dari langkah diatas adalah urutan data jalur terpendek ( kode ruangan dan
nama ruangan) dari titik awal sampai dengan titik tujuan.
4.1.2.2 Output Berupa Denah RS. Bethesda Disertai Jalur Terpendek
Untuk mengimplementasikan visualisasi jalur terpendek hasil dari
implementasi algoritma dijkstra ke dalam bentuk gambar, dibutuhkan kontrol line
yang akan menunjukan jalur dari pintu masuk sampai ke ruangan yang ingin
dikunjungi oleh pengguna program bantu ini. untuk mengerakkan kontrol line
tersebut maka dibutukan kontrol timer. Berikut adalah langkah-langkah
pengimplementasian jalur terpendek ke bentuk gambar jalur terpendek pada denah
RS. Bethesda :
• Memecah tabel jalur yang menyimpan urutan jalur dari titik awal ke titik
tujuan. Data pada tabel jalur diambil per record untuk diambil data titik asal
dan titik tujuan jalur pertama, kontrol line titik asal dan titik koordinat ke 2
titik tersebut.
• Setelah di peroleh data tersebut maka kontrol line ini digerakan dari koordinat
titik asal sampai ke titik tujuan. Berikut listing program untuk menggerakkan
kontrol line tersebut :
If nama_line = "L69" Then Line69.BorderColor = vbRed Line69.BorderStyle = 1 Line69.BorderWidth = 3 If y1 < y2 Then
If Line69.y2 <> y2 Then If Line69.y2 < y2 Then Line69.y2 = Line69.y2 + 5 Else Line69.y2 = Line69.y2 - 5 End If End If
55
If Line69.y2 = y2 Then Line69.y2 = Line69.y2 If Line69.x2 > x2 Then Line69.x2 = Line69.x2 - 5 Else Line69.x2 = Line69.x2 + 5 End If If Line69.x2 = x2 Then Line69.x2 = Line69.x2 c = c + 1 End If End If Else If Line69.x2 <> x2 Then If Line69.x2 < x2 Then Line69.x2 = Line69.x2 + 5 Else Line69.x2 = Line69.x2 - 5 End If End If If Line69.x2 = x2 Then Line69.x2 = Line69.x2 If Line69.y2 > y2 Then Line69.y2 = Line69.y2 - 5 Else Line69.y2 = Line69.y2 + 5 End If If Line69.y2 = y2 Then Line69.y2 = Line69.y2 c = c + 1 End If End If End If
Keterangan :
Kontrol line titik awal akan di beri warna merah dengan ketebelan 3 agar
lebih mudah untuk dilihat. Kemudian akan dibandingkan apakah koordinat y2
titik asal lebih kecil dari koordinat y1 titik tujuan. Jika benar maka selama
koordinat kontrol line ini belum sampai ke koordinat y1 titik tujuan maka akan
dilakukan pengecekan apakah koordinat y2 kontrol line ini lebih besar dari
dari y1 koordinat titik tujuan maka koordinat y2 kontrol line ini akan ditambah
56
5, akan tetapi jika tidak lebih besar maka koordinat y2 kontrol line ini akan di
kurangi 5.
Kemudian jika koordinat y1 titik tujuan telah tercapai maka akan
dilakukan pengecekan untuk menggerakkan koordianat x2 kontrol line ini.
Sama seperti saat menggerakan koordinat y2 kontrol line untuk sampai ke
koordinat x1 titik tujuan maka jika koordinat x1 titik tujuan lebih besar dari
koordinat x2 kontrol line ini, koordinat x2 kontrol line ini akan ditambah 5
akan tetapi jika tidak lebih besar dari dari x1 koordinat titik tujuan maka
koordinat x2 kontrol line ini akan ditambah 5.
Jika koordinat x2 kontrol line ini telah mencapai koordinat x1 titik tujuan
maka perulangan untuk memecah tabel jalur yang menyimpan urutan jalur
dari titik awal ke titik tujuan dilanjutkan lagi sampai sudah tidak ditemukan
record lagi yang harus di cek.
4.2 Hasil Implementasi
Hasil dari implementasi pada sub bab 4.1 tersebut dapat di gambarkan
melalui capture – capture langkah-langkah penggunaan program bantu ini.
4.2.1 Menu Utama
Pada saat program bantu ini dipertama kali di eksekusi maka akan nampak
menu utama seperti pada gambar 4.1.
57
Gambar 4.1 Tampilan Menu Utama
Pada menu utama ini pengguna program bantu ini akan di beri informasi
tentang bagaimana langkah-langkah penggunaan program bantu ini sehinggga
dapat membantu menghindarkan pengguna program ini untuk melakukan
kesalahan saat menggunakan program bantu ini. Pada form ini juga ditawarkan
menu kategori ruangan yang di sediakan oleh program bantu ini. Jika pengguna
tidak mengetahui kategori ruangan mana yang sesuai dengan ruangan yang ingin
dikunjungi maka pengguna dapat memilih menu informasi untuk mendapatkan
kategori ruangan yang tepat untuk ruangan yang ingin dikunjunginya.
4.2.2 Menu Input Titik Awal dan Titik Tujuan
Saat pengguna program bantu ini memilih salah satu kategori ruangan
yang ditawarkan pada menu utama, maka gambar 4.2 dibawah ini merupakan
salah satu contoh tampilan menu kategori ruangan, yaitu kategori fasilitas umum.
58
Gambar 4.2 Tampilan Menu Untuk Kategori Fasilitas Umum
Pada form ini pengguna program bantu harus menentukan nama ruangan
yang ingin dikunjungi dengan memilih satu nama ruangan dari semua nama
ruangan yang telah di sediakan pada kontrol combobox. Selanjutnya pengguna
program bantu harus menentukan dari pintu masuk mana pengguna program bantu
tersebut masuk ke RS. Bethesda. Jika pengguna telah menentukan nama ruangan
yang ingin di kunjungi dan pintu masuk mana pengguna program bantu tersebut
masuk ke RS. Bethesda maka pilih tombol ”Cari” untuk diproses untuk
menghasilkan jarak terpendek dan jalur terpendek dari pintu masuk sampai
dengan ke ruangan yang ingin dikunjungi.
4.2.3 Tampilan Output
Ketika pengguna program bantu ini telah menentukan ruangan mana yang
ingin dikunjungi dan dari pintu masuk mana pengunjung itu masuk maka
59
pengguna program bantu ini tinggal memilih button cari sehingga akan muncul
output berupa jalur terpendek seperti yang ditujnjukan pada gambar 4.3 di bawah
ini.
Gambar 4.3 Tampilan Output Yang Berupa Gambar Denah RS. Bethesda
Dilengkapi dengan Jalur Terpendek
Pada form output ini akan nampak jalur terpendek dari pintu masuk yang
jika dilihat pada program yang sedang di eksekusi maka pintu masuk akan terlihat
kedip – kedip. Output gambar jalur terpendek pada denah RS.Bethesda ini akan
dibantu dengan output seperti pada gambar 4.4 ini untuk mengetahui kode
ruangan dan nama ruangan mana saja yang harus dilewati sesuai dengan gambar
output 4.3 diatas.
60
Gambar 4.4 Tampilan Output Jalur Terpendek Yang Berupa Kode Ruangan
dan Nama Ruangan
Jika output gambar jalur terpendek di tutup maka akan muncul form
seperti pada gambar 4.5. Hal ini bertujuan untuk membantu pengunjung jika
pengunjung lupa urutan jalur terpendek mulai dari tabel pintu masuk sampai ke
ruangan yang ingin dikunjungi. Pada form ini juga akan nampak jarak terpendek
dan waktu iterasi algoritma dijkstra.
61
Gambar 4.5 Tampilan Menu Ketika Output pada Gambar 4.3 Ditutup
4.3 Analisa hasil
4.3.1 Pengaruh Pembagian Ruang Lingkup
Pada pengimplementasian pencarian jalur terpendek ini, denah RS. Bethesda di
ubah menjadi suatu graf berarah . Setelah diubah menjadi graf maka dapat
dihitung jumlah titik yang ada pada graf tersebut yaitu 277 titik. Saat dilakukan
perhitungan algoritma djikstra dengan jumlah titik sebanyak itu maka proses
pencarian memakan waktu yang sangat lama sehingga diputuskan untuk membagi
graf tersebut menjadi 9 ruang lingkup seperti yang telah dijelaskan pada sub bab
3.8.2. Untuk mengetahui pengaruh sebelum graf RS. Bethesda dibagi menjadi 9
ruang lingkup dan sesudah dibagi 9 ruang lingkup, maka di buat percobaan seperti
dapat di lihat pada tabel 4.1.
62
No Titik
Awal
Titik
Tujuan
Waktu Iterasi
Dijkstra sebelum
dibagi menjadi 9
ruang lingkup
Waktu Iterasi
Dijkstra setelah
dibagi menjadi 9
ruang lingkup
Prosentase
waktu
pembagian
ruang lingkup
1 A1 A20 00:05:23 00:00:38 11,76 %
2 A1 B2 00:20:31 00:01:17 6,26 %
3 A1 C21 00:28:10 00:07:49 27.75 %
4 A1 D14 00:22:41 00:07:18 32,18 %
5 A1 E7 00:13:36 00:03:05 22,67 %
6 A1 F7 00:08:00 00:01:08 14,17 %
7 A1 G2 00:23:23 00:03:32 15,11 %
8 A1 H5 00:45:42 00:11:15 24,62 %
9 A1 I15 00:38:05 00:12:12 32,04 %
10 B1 A10 00:52:58 00:02:49 5,31 %
11 B1 B18 00:04:08 00:00:27 10,89 %
12 B1 C24 00:46:28 00:02:40 5,74 %
13 B1 D3 00:35:41 00:01:42 4,76 %
14 B1 E4 00:11:37 00:00:47 6,74 %
15 B1 F3 00:08:32 00:00:53 10,35 %
16 B1 G2 00:00:55 00:00:08 14,55 %
17 B1 H3 00:14:46 00:04:12 28,44 %
18 B1 I12 00:31:50 00:08:56 28,06 %
19 C1 A16 00:54:06 00:08:08 15.03 %
20 C1 B4 00:31:29 00:02:12 6.99 %
21 C1 C35 00:23:43 00:00:43 2,28 %
22 C1 D6 00:41:18 00:02:20 5,65 %
23 C1 E7 00:32:50 00:00:58 2,94 %
24 C1 F11 00:51:15 00:04:24 8,59 %
25 C1 G1 00:31:29 00:00:47 2,49 %
26 C1 H4 00:05:15 00:01:20 25,40 %
63
27 C1 I23 00:04:10 00:02:03 49,20 %
Rata-Rata penghematan waktu dengan pembagian ruang
lingkup
15,55 %
Tabel 4.1 Tabel Percobaan Pengaruh Pembagian Ruang Lingkup
Dari percobaan di atas dapat di dilihat bahwa perbedaan waktu iterasi
dijkstra sebelum dan sesudah dibagi menjadi 9 ruang lingkup sangat besar yaitu,
15,55%. Hal tersebut disebabkan karena pada pembagian ruang lingkup
RS.Bethesda telah ditentukan titik-titik mana saja yang harus di cek jaraknya pada
perhitungan iterasi algoritma dijkstra, sehingga dapat memperpendek waktu yang
di gunakan dalam iterasi algoritma djikstra.
4.3.2 Waktu Iterasi Algoritma Dijkstra
Untuk mengetahui faktor yang mempengaruhi waktu yang di perlukan
dalam pengimplementasian iterasi dijkstra, maka dilakukan percobaan yang dapat
di lihat pada tabel 4.2, dimana pada percobaan ini faktor yang diperhatikan ada 3
yaitu jumlah ruang lingkup, jumlah titik dan jarak titik asal ke titik tujuan.
No Titik
Asal
Titik
Tujuan
Jumlah Ruang
Lingkup
Jumlah Titik Waktu Jarak
1 A1 A12 1 31 00:00:27 106.6 m
2 C1 C13 1 38 00:00:47 53.1 m
3 B1 G2 2 33 00:00:08 25.6 m
4 A1 A5 1 31 00:00:06 34.9 m
5 B1 B5 1 31 00:00:04 14.8 m
6 B1 B26 1 31 00:00:26 73.4 m
Tabel 4.2 Tabel Percobaan Faktor Yang Mempengaruhi Waktu Iterasi Algoritma Dijkstra
64
Penjelasan Percobaan :
• Pada percobaan 1 dan 2 dapat dilihat bahwa jika jumlah ruang lingkup
sama akan tetapi jumlah titik berbeda maka dapat terlihat bahwa selisih
waktu yang diperlukan dalam iterasi dijkstra cukup besar yaitu 20 detik
pada contoh kasus ini.
• Pada percobaan 3 dan 4 dapat dilihat bahwa jika jumlah ruang lingkup
berbeda akan tetapi jumlah titik kurang lebih sama maka dapat terlihat
bahwa selisih waktu yang diperlukan dalam iterasi dijkstra sangat kecil,
yaitu 2 detik pada contoh kasus ini.
• Pada percobaan 5 dan 6 dapat dilihat bahwa jika titik asal dan titik tujuan
berada pada ruang lingkup yang sama akan tetapi jarak dari titik asal ke
titik tujuan berbeda cukup jauh, maka dapat terlihat bahwa selisih waktu
yang diperlukan dalam iterasi dijkstra cukup besar, yaitu 24 detik pada
contoh kasus ini.
Dari percobaan diatas, dapat disimpulkan bahwa, faktor yang mempengaruhi
waktu yang di perlukan dalam pengimplementasian iterasi algoritma dijkstra
adalah :
1. jumlah titik
2. jarak titik asal ke titik tujuan.
Jadi dapat dilihat bahwa faktor jumlah ruang lingkup tidak mempengaruhi waktu
pengimplementasian iterasi algoritma dijkstra.
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Dari hasil penelitian yang telah dilakukan di RS. Bethesda Yogyakarta
untuk menemukan jalur terpendek dengan mengunakan algoritma Dijkstra, maka
dapat di ambil kesimpulan sebagai berikut ini :
1. Pada program bantu ini, pembagian graf menjadi beberapa ruang lingkup
sangat penting, untuk menentukan titik mana saja yang harus di cek
jaraknya dalam iterasi algoritma djikstra.
2. Penghematan waktu iterasi dijkstra sesudah dibagi menjadi 9 ruang
lingkup adalah 15,55 %.
3. Ada 2 faktor penting yang mempengaruhi waktu pengimplementasian
iterasi algoritma dijkstra pada program bantu ini, yaitu : jumlah titik dan
jarak titik asal ke titik tujuan.
4. Semakin banyak jumlah titik, maka waktu pengimplementasian iterasi
algoritma dijkstra semakin banyak.
5. Pada program bantu ini jumlah ruang lingkup tidak mempengaruhi waktu
pengimplementasian algoritma dijkstra.
5.2 SARAN
Saran yang dapat diberikan agar program bantu ini dapat di buat lebih baik
lagi adalah sebagai berikut :
65
66
1. Sebaiknya digunakan bahasa pemrograman lain untuk membuat tampilan
lebih user friendly.
2. Tampilan Output sebaiknya dibuat lebih menarik agar pengguna program
bantu merasa lebih nyaman saat menggunakan program bantu ini.
3. Sebaiknya di tambahkan fasilitas untuk mencari ruangan dengan titik awal
bukan pintu masuk, akan tetapi bergantung atas keinginan pengguna
program bantu ini.
DAFTAR PUSTAKA
-, Pengembangan Sistem Pakar Menggunakan Visul Basic, Andi Offset, 2003
Agnes Maria Polina, Jong Jek Siang, Kiat Jitu Menyusun Skripsi Jurusan
Informatika/Komputer, Andi Offset, 2005
Agus, M., Alam, J., MySQL Server dan Aplikasinya dalam Visual Basic 6 dan Delphi
versi 5, PT Elex Media Komputindo, 2005
Bayu Adhitya Pradhana, Makalah Studi Dan Implementasi Persoalan Lintasan
Terpendek Suatu Graf Dengan Algoritma Dijkstra Dan Algoritma Bellman-
Ford
J.Bismoko., A.Supraktiknya., Pedoman Penulisan Skripsi, Universitas Sanata
Dharma, 2004
Jong Jek Siang, Matematika Diskret Dan Aplikasinya Pada Ilmu Komputer, Andi
Offset, 2002
Jeffery, Whitten, L., Lonnie, Bentley, D., dan Kevin, C.Ditman., Metode Desain dan
Analisis Sistem, Andi Offset, 2004
LPKMB MADCOMS, Panduan Pemrograman dan Referensi Kamus Visual Basic
6.0, Andi Offset, 2006
LAMPIRAN A
TABEL RUANGAN
1
Lampiran A : Tabel Ruangan Keterangan Kategori Ruangan :
A = ATM
AD = Administrasi
I = IGD
K = Klinik
KA = Kas Bank
L = Laboratorium
O = Operasional
PB = Ruangan Pasien Rawat Inap
PV = Paviliun Pasien Rawat Inap
S = Staff Bethesda
U = Fasilitas Umum
X = Lain-lain
Kode Ruangan
Nama Ruangan
Kategori Ruangan
X1
Y1
Status
Line
A1 Pintu Masuk Samping Paviliun Srikandi 6630 6165 0 L17 A2 Cafe U 7500 6165 0 L18 A3 Paviliun Srikandi PV 7500 5670 0 L19 A4 Perempatan Pav.Srikandi 7410 7710 0 L20 A5 Paviliun Shinta PV 6900 7635 0 L21 A6 Pertigaan Pav.Bakung 7410 10350 0 L22 A7 Pertigaan Pav.Anggrek 8040 7710 0 L23 A8 Paviliun Anggrek PV 8595 7605 0 L24 A9 Pertigaan Pav.Gardena 10140 7710 0 L25 A10 Paviliun Gardena PV 10140 7395 0 L26 A11 Pertigaan Pav.Flamboyan 11715 7680 0 L27 A12 Paviliun Flamboyan PV 14265 7800 0 L28 A13 Pojok Ruang Bayi 1 11715 8385 0 L29 A14 Pojok Ruang Bayi 2 14160 8385 0 L30 A15 Pintu Masuk Pav.Hibiscus1 11625 9000 0 L31 A16 Paviliun Hibiscus PV 9960 9000 0 L32 A17 Pintu Masuk Pav.Hibiscus2 8115 9000 0 L33 A18 Paviliun Dahlia PV 8115 10320 0 L34 A19 Pertigaan Selasa Utama Pav.Hibiscus 11715 10185 0 L35 A20 Ruang VI PB 11625 11400 0 L36 A21 Paviliun Bakung PV 7320 11415 0 L37 A22 Pertigaan Pav.Bakung 7455 12120 0 L40
2
A23 Pertigaan Pav.Shinta 6900 12120 0 L39 A24 Pertigaan Pav.Canna 1 8040 12120 0 L38 A25 Pintu Masuk Pav.Canna 1 8310 12795 0 L41 A26 Pertigaan Pav.Canna 2 10980 12120 0 L42 A27 Pojok Ruang VI 11700 12120 0 L43 A28 Pintu Masuk Pav.Canna 2 10905 12795 0 L44 A29 Paviliun Canna PV 9720 12795 0 L45 A30 Pertigaan Pav.Dahlia1 11715 10800 0 L47 A31 Pertigaan Pav.Dahlia2 8040 10800 0 L46 B1 Pintu Masuk Pengunjung 21225 4350 0 L48 B2
Pos Satpam Pintu Masuk Pengunjung Rawat Inap
U
21015
4605
0
L49
B3 Tempat Informasi Pusat U 21420 4815 0 L50 B4 Ruang PDE S 21735 5190 0 L51 B5 Tempat Map Rs.Bethesda U 21180 5040 0 L52 B6 Farmasi Pusat Pasien Rawat Inap F 20505 5460 0 L53 B7 Ruang Petrollena O 21135 5355 0 L54 B8 Ruang Operasional O 20400 6240 0 L55 B9 Kas BRI Ruang Lingkup B KA 20400 6600 0 L56 B10 Pertigaan Lab Mikrobiologi 1 21645 6870 0 L57 B11 Toilet Umum Samping Lab Mikrobiologi U 22440 6795 0 L58 B12 Pertigaan Lab Mikrobiologi 2 22680 6870 0 L59 B13 Laboratorium Mikrobiologi L 23280 6720 0 L60 B14 Pertigaan Samping Kas BRI 20595 6840 0 L61 B15 Pertigaan Depan Pav.Edelweys 19575 6840 0 L62 B16 Ruang Fisioteraphi Pasien Rawat Inap X 18825 4635 0 L64 B17 Kantor Elektromedik O 18345 4860 0 L63 B18 Paviliun Edelweys PV 17460 6840 0 L65 B19 Depan Kantor Elektromedik 18345 4635 0 L66 B20 Unit Perawatan Ginjal\Ruang Cuci Darah X 17895 4860 0 L67 B21 Loket Askes & Kantor Piutang AD 21540 7140 0 L68 B22 Pojok Petrollena 21630 7800 0 L69 B23 Pertigaan Petrollena 21150 7800 0 L70 B24 Laboratorium Radiologi L 20595 7890 0 L71 B25 Pertigaan Lab Klinik 1 22680 8220 0 L72 B26 Laboratorium Klinik L 22110 8310 0 L73 B27 Pertigaan Lab Klinik 21150 8220 0 L74 B28 Pertigaan Selasar Utama 21150 10125 0 L75 B29 Pertigaan Selasar Utama Ruang Pertemuan I 19605 10125 0 L76 B30 Pertigaan Ruang Pertemuan I 19605 8940 0 L77 B31 Ruang Pertemuan I O 19245 8940 0 L78 C1 Pintu Masuk Instansi Rawat Jalan 28395 4395 0 L79 C2 Pintu Masuk Instansi Gawat Darurat I 25365 4545 0 L80 C3 Toko U 28920 4620 0 L81 C4 Fotocopy U 27990 4665 0 L82
3
C5 Kas Lippo Ruang Lingkup C KA 28980 4905 0 L83 C6 Kas BRI Ruang Lingkup C KA 28980 5235 0 L84 C7 Medical Record Gedung IRJ Lantai 1 F 28410 5655 0 L85 C8 Tangga 1 Gedung IRJ Lantai 1 29190 5835 0 L86
C9 Laboratorium Patologi Klinik Gedung IRJ Lantai 1
L
29910
5595
0
L87
C10 Perempatan VIDE 1 B 30780 5730 0 L88 C11 Klinik Kebidanan K 30945 5070 0 L89 C12 Klinik Fisioterapi K 31455 5070 0 L90 C13 Toilet Umum 1 Gedung IRJ Lantai 1 U 31710 5490 0 L91 C14 Klinik Saraf K 31515 6150 0 L92 C15 Perempatan VIDC 1 B 27720 5820 0 L93 C16 Lift Gedung IRJ Lantai 1 Li 27390 5820 0 L94 C17 Farmasi Rawat Jalan F 26775 5385 0 L95 C18 Kas BPD DIY KA 26490 5640 0 L96 C19 Tangga 2 Gedung IRJ Lantai 1 26085 5640 0 L97 C20 Tempat Pendaftaran Pasien IGD I 25815 5040 0 L98 C21 Pertigaan VIDC 1 A 25935 5820 0 L99 C22 Pertigaan VIDC 1 C 25935 7125 0 L100C23 Ruang IRD I 25815 7650 0 L101C24 Ruang Kepala IRD S 26070 7680 0 L102C25 Ruang Dokter Jaga Gedung IRJ Lantai 1 S 26625 7230 0 L103C26 Unit DPK S 27135 7230 0 L104C27 Tangga 3 Gedung IRJ Lantai 1 27525 7230 0 L105C28 Perempatan VIDC 1 D 27720 7140 0 L106C29 Ruang Sekretariat PPKT RSB S 28035 6990 0 L107C30 Ruang Sector Fotocopy Gedung IRJ Lantai 1 U 28440 6990 0 L108C31 Ruang OPS S 29760 7215 0 L109C32 Klinik Bedah K 28110 7920 0 L110C33 Perempatan VIDE 1 D 30780 7140 0 L111C34 Klinik Penyakit Dalam K 32010 7140 0 L112C35 Ruang Pemulihan X 31290 7740 0 L113
C36 Toilet Umum Samping Klinik Penyakit Dalam Gedung I
U
27630
7800
0
L114
C37 Perempatan VIDE 1 A 28995 5835 0 L115C38 Perempatan VIDE 1 C 28995 7140 0 L116D1 Pojok Dapur Kecil 34645 10065 0 L117D2 Pertigaan Selasar Utama Ruang H 25515 10065 0 L118D3 Instansi Gizi O 24360 11955 0 L119D4 Pertigaan IMC 27000 10065 0 L120D5 Ruang A / IMC PB 27000 10800 0 L121D6 Ruang Doa U 28035 9720 0 L122D7 Pertigaan Selasar Utama Ruang Doa 28035 10065 0 L123D8 Pertigaan Selasar Utama Ruang B 28515 10065 0 L124D9 Ruang N PB 29325 10065 0 L125
4
D10 Ruang B PB 28620 11475 0 L126D11 Unit Jahit O 24360 13020 0 L127D12 Perempatan Ruang H 25515 12825 0 L128D13 Liner Bersih O 24360 15345 0 L129D14 Ruang H PB 26310 12720 0 L130D15 Pertigaan Ruang Penyuluhan 25515 14730 0 L131D16 Ruang Tunggu Daerah D U 25200 14730 0 L132D17 Pertigaan Ruang J 25515 16005 0 L133D18 Pertigaan Liner Bersih 24480 16005 0 L134D19 Ruang C PB 28425 14160 0 L135D20 Ruang D PB 28635 14160 0 L136D21 Ruang F PB 28635 16950 0 L138D22 Ruang E PB 28440 16950 0 L137D23 Pertigaan Ruang G 28500 17790 0 L139D24 Pojok Ruang G 28500 18345 0 L140D25 Pertigaan Lab Patologi & Anatomi 27225 17790 0 L142D26 Ruang G PB 29760 18435 0 L141D27 Laboratorium Patologi & Anatomi L 26730 18615 0 L144D28 Pintu Masuk Parkir Ambulans 24480 17790 0 L145D29 Liner Kotor O 24360 17340 0 L148D30 Ruang PSP O 22560 18525 0 L147D31 Ruang Jenazah O 25485 19590 0 L149D32 Ruang J PB 26340 16005 0 L150D33 Depan Lab. Patologi dan Anatomi 27225 18615 0 L143D34 Parkiran Mobil Ambulans O 24480 18525 0 L146
E1 Pertigaan Selasar Utama Ruang Pengawas Perawat
22650
10125
0
L151
E2 Ruang Piket Pengawas Perawat 22650 8895 0 L152E3 Pertigaan PSPM 23640 10125 0 L153E4 PSPM O 23640 10680 0 L154E5 Pertigaan Selasar Utama IRJ 24045 8895 0 L155E6 Selasar Belakang IRJ 25920 8895 0 L156E7 Dapur Besar O 24045 10155 0 L157F1 Administrasi Pasien Rawat Inap AD 19335 10035 0 L158F2 IBS K 19335 10800 0 L159F3 Kas BRI KA 18855 10035 0 L160F4 Perempatan Galilea 15945 10170 0 L161F5 Ruang Galilea PB 16035 11460 0 L162F6 Ruang I PB 10065 9000 0 L163F7 Ruang III PB 15840 9000 0 L164F8 Ruang Bersalin X 15945 8265 0 L165F9 Pojok Pav.Edelweis 17460 8295 0 L166F10 Pertigaan Ruang VII 14235 10170 0 L167F11 Ruang VII PB 14235 9615 0 L168F12 Pertigaan Ruang IV 12495 10170 0 L169
5
F13 Ruang IV PB 12495 10830 0 L170F14 Pertigaan Ruang Bayi 13020 10170 0 L171F15 Ruang Bayi PB 13020 9510 0 L172G1 ATM A 23595 4560 0 L167G2 Mini Market U 23400 4665 0 L168H1 Lift Gedung IRJ Lantai 2 Li 6720 3405 0 L1 H2 Perempatan VIDC B A Gedung IRJ Lantai 2 7485 3195 0 L2
H3 Satelit Farmasi Rawat Jalan Gedung IRJ Lantai 2
F
4920
2865
0
L3
H4 Kas BRI Gedung IRJ Lantai 2 KA 7320 2250 0 L4 H5 Klinik Laktasi K 7320 1290 0 L5 H6 Tangga 2 Gedung IRJ Lantai 2 4050 2865 0 L6 H7 Pertigaan VIDC 2 A Gedung IRJ Lantai 2 3600 3195 0 L7 H8 Klinik Paru K 2640 1905 0 L8
H9 Ruang Pertemuan & Perawatan Gedung IRJ Lantai 2
O
1575
2250
0
L9
H10 Toilet Umum 1 Gedung IRJ Lantai 2 U 1575 2640 0 L10 H11 Pojok Klinik Kulit 3600 4605 0 L11 H12 Klinik Kulit K 3165 4605 0 L12 H13 Klinik Gigi & Mulut K 1590 4605 0 L13 H14 Klinik Alergi K 1215 5895 0 L14 H15 Klinik THT K 1320 6360 0 L15 H16 Audio Metri 2010 6360 0 L16 H17 Klinik Mata K 3315 6360 0 L17 H18 Poliklinik Kartini K 4320 6360 0 L18 H19 Pertigaan VIDC 2 C Gedung IRJ Lantai 2 3600 6015 0 L19 H20 Tangga 3 Gedung IRJ Lantai 2 7080 6360 0 L20 H21 Pertigaan VIDC 2 D Gedung IRJ Lantai 2 7485 6015 0 L21 H22 Ruang Sekretariat\Wakil Direktur & Direktur S 8760 6360 0 L22 H23 Medical Record Gedung IRJ Lantai 2 F 8760 2250 0 L23 H24 Tangga 1 Gedung IRJ Lantai 2 10530 3405 0 L24 H25 Pertigaan VIDE 1 C Gedung IRJ Lantai 2 10170 6015 0 L25 H26 Ruang Dokter S 12480 6300 0 L26 H27 Ruang Akutansi & Keuangan AD 14490 6015 0 L44 H28 Toilet Umum 2 Gedung IRJ Lantai 2 U 14490 7470 0 L28 H29 Ruang Arsip Sekretariat Gedung IRJ Lantai 2 15720 7470 0 L29 H30 Loket Administrasi Gedung IRJ Lantai 2 AD 14490 4035 0 L30 H31 Perempatan VIDE 2 B Gedung IRJ Lantai 2 14205 3195 0 L31 H32 Klinik Akupuntur K 13980 1635 0 L32 H33 Klinik CB Anak Sehat K 15630 2265 0 L33 H34 Klinik Psikologi K 15120 1560 0 L34 H35 Toilet Umum 3 Gedung IRJ Lantai 2 U 16290 2640 0 L35 H36 Kantor IRJ S 16290 1005 0 L36 H37 Klinik Karyawan K 14640 1440 0 L37 H38 Klinik Psikiatri K 14040 1440 0 L38
6
H39 Klinik Gizi K 12810 1635 0 L40 H40 Depan Klinik Gizi 12555 3195 0 L39 H41 Ruang Konsultasi 12270 2265 0 L41 H42 Pertigaan VIDE 1 A Gedung IRJ Lantai 2 10170 3195 0 L42 H43 Perempatan VIDE 2 D Gedung IRJ Lantai 2 14205 6015 0 L43 I1 Litf Gedung IRJ Lantai 3 Li 6945 3690 0 L1 I2 Ruang Tamu VIP U 6945 2655 0 L2 I3 Pojok VIDE 1 Gedung IRJ Lantai 3 7635 3690 0 L3 I4 Auditorium Bethesda O 9000 2655 0 L4 I5 Pojok VIDE 2 Gedung IRJ Lantai 3 7635 5940 0 L5 I6 Samping Ruang Tamu VIP 7695 2655 0 L6 I7 Tangga 3 Gedung IRJ Lantai 3 7185 6435 0 L7 I8 Bagian Kepegawaian S 5505 6435 0 L8 I9 Komite Dana Pensiun YAKKUM S 4800 6435 0 L9 I10 Pertigaan VIDC3 C Gedung IRJ Lantai 3 3945 6180 0 L34 I11 Ruang PYC S 3570 5280 0 L11 I12 Ruang Rapat Gedung IRJ Lantai 3 O 3570 4410 0 L12 I13 Ruang Senam & Fitness O 3810 3225 0 L13 I14 Tangga 2 Gedung IRJ Lantai 3 4770 3225 0 L14 I15 Penitipan Anak X 2730 3225 0 L15 I16 PSMRS S 5040 3225 0 L16 I17 PGI S 5940 3225 0 L17 I18 Panitia Rekam Medik S 2745 5940 0 L18 I19 Ruang PKPKY S 2130 6345 0 L19 I20 Ruang PKBRS S 2130 7050 0 L20 I21 Ruang BMKK S 2565 7530 0 L21 I22 Kantor IDI S 3165 6855 0 L22 I23 Pojok Auditorium 1 10230 2655 0 L23 I24 Pojok Ruang Komite Diklat 10230 3270 0 L24 I25 Ruang Komite Bidang Diklat S 11400 3225 0 L25 I26 Ruang Studio O 12480 3225 0 L26 I27 Tangga 1 Gedung IRJ Lantai 3 10440 3690 0 L27 I28 Ruang Komite Gerejani S 12675 3225 0 L28 I29 Pojok Auditorium 2 10230 6180 0 L29 I30 Ruang Perpustakaan O 11580 6435 0 L30 I31 Ruang Diklat/Training O 12690 6435 0 L31 I32 Pav.Jasmine PV 13590 6180 0 L32 I33 Pertigaan VIDC 2 A Gedung IRJ Lantai 3 3945 3540 0 L33
LAMPIRAN B
TABEL JARAK
1
Lampiran B : Tabel Jarak
Titik Asal Titik Tujuan JarakA1 A2 10 A2 A1 10 A2 A3 6.3 A2 A4 18.2 A3 A2 6.3 A4 A2 18.2 A4 A5 6.7 A4 A6 28.8 A4 A7 6.9 A5 A4 6.7 A5 A23 52.5 A6 A4 28.8 A6 A18 8.1 A6 A21 13.8 A7 A4 6.9 A7 A8 5.3 A7 A17 14.4 A8 A7 5.3 A8 A9 20.3 A9 A8 20.3 A9 A10 4 A9 A11 17.3 A10 A9 4 A11 A9 17.3 A11 A12 28.6 A11 A13 8.8 A12 A11 28.6 A12 A14 6.4 A13 A11 8.8 A13 A14 27.5 A13 A15 7.3 A14 A12 6.4 A14 A13 27.5 A15 A13 7.3 A15 A16 18.2 A15 A19 13.2 A17 A7 14.4 A17 A16 21.5 A17 A18 14.1 A18 A17 14.1 A18 A6 8.1 A18 A31 6.1
2
A19 A15 13.2 A19 A30 6.6 A19 F12 9.8 A20 A27 7.8 A20 A30 7.6 A21 A6 13.8 A21 A22 7.1 A22 A21 7.1 A22 A23 6 A22 A24 7.3 A23 A5 52.5 A23 A22 6 A24 A22 7.3 A24 A25 7.9 A24 A26 32.8 A24 A31 15.3 A25 A24 7.9 A25 A29 13.2 A26 A24 32.8 A26 A27 8.8 A26 A28 7.2 A27 A20 7.8 A27 A26 8.8 A28 A26 7.2 A28 A29 15.7 A30 A19 6.6 A30 A20 7.6 A30 A31 41 A31 A18 6.1 A31 A24 15.3 A31 A30 41 B1 B2 3.3 B1 B16 26.7 B1 G2 25.6 B2 B1 3.3 B2 B3 5.6 B3 B2 5.6 B3 B5 5.9 B4 B5 7.7 B4 B10 19.4 B5 B3 5.9 B5 B4 7.7 B5 B6 9.7 B5 B7 3.1
3
B6 B5 9.7 B6 B8 9.2 B7 B5 3.1 B8 B6 9.2 B8 B9 4.3 B9 B8 4.3 B9 B14 3.4 B10 B4 19.4 B10 B11 8.7 B10 B21 4.3 B11 B10 8.7 B11 B12 3.7 B12 B11 3.7 B12 B13 5.9 B12 B25 27.9 B13 B12 5.9 B14 B9 3.4 B14 B15 11.3 B14 B24 11.5 B15 B14 11.3 B15 B18 25.2 B15 B30 22.9 B16 B1 26.7 B16 B19 5.6 B17 B19 2.5 B17 B20 5.6 B18 B15 25.2 B19 B16 5.6 B19 B17 2.5 B20 B17 5.6 B21 B10 4.3 B21 B22 5.7 B22 B21 5.7 B22 B23 6 B23 B22 6 B23 B24 6.1 B23 B27 5.4 B24 B14 11.5 B24 B23 6.1 B25 B12 27.9 B25 B26 7.3 B26 B25 7.3 B26 B27 10.1 B27 B23 5.4
4
B27 B26 10.1 B27 B28 20.8 B28 B27 20.8 B28 B29 16.4 B28 E1 16.3 B29 B28 16.4 B29 B30 14.1 B29 F1 4.9 B30 B15 22.9 B30 B29 14.1 B30 B31 4 B31 B30 4 C1 C2 36.5 C1 C3 8.7 C1 C4 6.8 C2 C1 36.5 C2 G1 18.1 C3 C1 8.7 C3 C5 2.8 C4 C1 6.8 C4 C7 5.4 C5 C3 2.8 C5 C6 4.6 C6 C5 4.6 C6 C7 10.3 C6 C37 6.1 C7 C4 5.4 C7 C6 10.3 C7 C15 7.5 C7 C37 7.5 C8 C9 10.1 C8 C37 2 C8 H24 5 C9 C8 10.1 C9 C10 10.1 C10 C9 10.1 C10 C11 10.7 C10 C13 11.2 C10 C14 8.7 C10 C33 13.5 C11 C10 10.7 C11 C12 9 C12 C11 9 C12 C13 6.6
5
C13 C10 11.2 C13 C12 6.6 C13 C14 9 C14 C10 8.7 C14 C13 9 C15 C7 7.5 C15 C16 4.2 C15 C28 13.5 C16 C15 4.2 C16 C17 11.5 C16 C18 12.4 C16 H1 5 C17 C16 11.5 C18 C16 12.4 C18 C19 2 C19 C18 2 C19 C21 2.9 C19 H6 5 C21 C19 2.9 C21 C20 9 C21 C22 13.5 C22 C21 13.5 C22 C23 5.2 C22 C25 7.7 C23 C22 5.2 C23 C24 3 C24 C23 3 C24 E6 15.1 C25 C22 7.7 C25 C26 4.6 C26 C25 4.6 C26 C27 6.3 C27 C26 6.3 C27 C28 2.9 C27 H20 5 C28 C15 13.5 C28 C27 2.9 C28 C29 4.5 C28 C36 8.3 C29 C28 4.5 C29 C30 3.1 C30 C29 3.1 C30 C32 10.5 C30 C38 7.4
6
C31 C33 10.6 C31 C38 9.7 C32 C30 10.5 C32 C36 8.1 C33 C10 13.5 C33 C31 10.6 C33 C34 13.5 C33 C35 10.6 C34 C33 13.5 C34 C35 9.6 C35 C33 10.6 C35 C34 9.6 C36 C28 8.3 C36 C32 8.1 C37 C6 6.1 C37 C7 7.5 C37 C8 2 C37 C38 13.5 C38 C30 7.4 C38 C31 9.1 C38 C37 13.5 D1 D2 10 D1 D3 25.1 D1 E7 6.6 D2 D1 10 D2 D4 16.8 D2 D12 31.3 D3 D1 25.1 D3 D11 8.8 D4 D2 16.8 D4 D5 11.5 D4 D6 12.3 D5 D4 11.5 D6 D4 12.3 D6 D7 3 D6 D8 5.3 D7 D6 3 D8 D6 5.3 D8 D9 9.1 D8 D10 15.7 D9 D8 9.1 D10 D8 15.7 D10 D19 31.3 D11 D3 8.8
7
D11 D12 13.8 D11 D13 24 D12 D2 31.3 D12 D11 13.8 D12 D14 9.8 D12 D15 21.5 D13 D11 24 D13 D18 9.1 D14 D12 9.8 D15 D12 21.5 D15 D16 3.9 D15 D17 14.8 D16 D15 3.9 D17 D15 14.8 D17 D18 11.9 D17 D32 9.1 D18 D13 9.1 D18 D17 11.9 D18 D29 11.9 D19 D10 31.3 D19 D20 2.5 D20 D19 2.5 D20 D21 31.3 D21 D20 31.3 D21 D22 2.5 D22 D21 2.5 D22 D23 9.6 D23 D22 9.6 D23 D24 6.9 D23 D25 14 D24 D23 6.9 D24 D26 14.3 D25 D23 14 D25 D28 32.2 D25 D33 7.1 D26 D24 14.3 D27 D33 6.5 D28 D25 32.2 D28 D29 8.5 D28 D34 7.3 D29 D18 11.9 D29 D28 8.5 D30 D34 21.1 D31 D34 18.2
8
D32 D17 9.1 D33 D25 7.1 D33 D27 6.5 E1 B28 16.3 E1 E2 13.3 E1 E3 10.4 E2 E1 13.3 E2 E5 16 E3 E1 10.4 E3 E4 7 E3 E7 4.9 E4 E3 7 E5 E2 16 E5 E6 21.5 E5 E7 14.8 E6 C24 15.1 E6 E5 21.5 E7 D1 6.6 E7 E3 4.9 E7 E5 14.8 F1 B29 4.9 F1 F2 7.6 F1 F3 3.8 F2 F1 7.6 F3 F1 3.8 F3 F4 34.8 F4 F3 34.8 F4 F5 12.9 F4 F6 13.2 F4 F10 19.3 F5 F4 12.9 F6 F4 13.2 F6 F7 2.3 F7 F6 2.3 F7 F8 8.3 F8 F7 8.3 F8 F9 16 F9 B18 14.4 F9 F8 16 F10 F4 19.3 F10 F11 6.3 F10 F14 13.1 F11 F10 6.3 F12 A19 9.8
9
F12 F13 7.4 F12 F14 6 F13 F12 7.4 F14 F10 13.1 F14 F12 6 F14 F15 7.4 F15 F14 7.4 G1 C2 18.1 G1 G2 2.8 G2 B1 25.6 G2 G1 2.8 H1 C16 5 H1 H2 4.3 H1 H3 6.7 H1 I1 5 H2 H1 4.3 H2 H4 4.6 H2 H21 15 H3 H1 6.7 H3 H6 8 H4 H2 4.6 H4 H5 5.1 H4 H23 6.5 H5 H4 5.1 H6 C19 5 H6 H3 8 H6 H7 2.9 H6 I14 5 H7 H6 2.9 H7 H8 7.9 H7 H10 13.6 H7 H11 6 H8 H7 7.9 H8 H9 6.1 H9 H8 6.1 H10 H7 13.6 H11 H7 6 H11 H12 2 H11 H19 7.5 H12 H11 2 H12 H13 8.5 H13 H12 8.5 H14 H15 2.2 H15 H14 2.2
10
H15 H16 3.5 H16 H15 3.5 H16 H17 6 H17 H16 6 H17 H19 2.5 H18 H19 4.3 H18 H20 13.9 H19 H11 7.5 H19 H17 2.5 H19 H18 4.3 H20 C27 5 H20 H18 13.9 H20 H21 3 H20 I7 5 H21 H2 15 H21 H20 3 H21 H22 6.7 H22 H21 6.7 H22 H25 7.7 H23 H4 6.5 H23 H42 8.7 H24 C8 5 H24 H40 9.6 H24 H42 3.4 H24 I27 5 H25 H22 7.7 H25 H26 14.1 H25 H42 15 H26 H25 14.1 H26 H43 7.6 H27 H28 6 H27 H43 2.1 H28 H27 6 H28 H29 7.5 H29 H28 7.5 H30 H31 3.7 H30 H43 10.6 H31 H30 3.7 H31 H32 7.6 H31 H33 9.2 H31 H34 9.6 H31 H40 9 H32 H31 7.6 H32 H38 2.7
11
H33 H31 9.2 H33 H35 2.9 H33 H36 7 H34 H31 9.6 H34 H37 2.7 H35 H33 2.9 H36 H33 7 H37 H34 2.7 H37 H38 2 H38 H32 2.7 H38 H37 2 H39 H41 2.6 H40 H24 9.6 H40 H31 9 H40 H41 7.2 H41 H39 2.6 H41 H40 7.2 H42 H23 8.7 H42 H24 3.5 H42 H25 15 H43 H26 7.6 H43 H27 2.1 H43 H30 10.6 I1 H1 5 I1 I2 6 I1 I3 4.3 I1 I17 5.7 I2 I1 6 I2 I6 4 I3 I1 4.3 I3 I5 15 I3 I6 4.5 I4 I6 7.5 I4 I23 7.5 I5 I3 15 I5 I7 2.6 I6 I2 4 I6 I3 4.5 I6 I4 7.5 I7 H20 5 I7 I5 2.6 I7 I8 10.4 I8 I7 10.4 I8 I9 3.5
12
I9 I8 3.5 I9 I10 5.2 I10 I9 5.2 I10 I11 5.9 I10 I18 7.1 I11 I10 5.9 I11 I12 5 I12 I11 5 I12 I33 4.9 I13 I15 6 I13 I33 2 I14 H6 5 I14 I16 4 I14 I33 3.4 I15 I13 6 I16 I14 4 I16 I17 5 I17 I1 5.7 I17 I16 5 I18 I10 7.1 I18 I19 3.6 I18 I22 6.1 I19 I18 3.6 I19 I20 3.5 I20 I19 3.5 I20 I21 2.8 I21 I20 2.8 I21 I22 6.1 I22 I18 6.1 I22 I21 6.1 I23 I4 7.5 I23 I24 4.5 I24 I23 4.5 I24 I27 2.6 I24 I29 15 I25 I26 5 I25 I27 5.7 I26 I25 5 I26 I28 2 I27 H24 5 I27 I24 2.6 I27 I25 5.7 I28 I26 2 I29 I24 15
13
I29 I30 6.2 I30 I29 6.2 I30 I31 7 I31 I30 7 I31 I32 5.2 I32 I31 5.2 I33 I12 4.9 I33 I13 2 I33 I14 3.4