(STUDI KASUS : GEDUNG PERPUSTAKAAN IPB)
Oleh :
KHAMAMUDIN
G64101064
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2007
KHAMAMUDIN. Pengembangan Sistem Virtual Room Navigator dengan Algoritma Dijkstra untuk Pencarian Jalur Terpendek (Studi Kasus : Gedung Perpustakaan IPB). Dibimbing oleh KUDANG BORO SEMINAR dan AZIZ KUSTIYO.
Virtual Room Navigator (VRN) adalah sebuah sistem navigator ruangan interaktif dengan visualisasi tiga dimensi (3D). Sistem ini telah dibangun oleh Nugroho (2004) untuk membantu pengunjung gedung UPT Perpustakaan Pusat IPB, dalam menjelajah dan mengenali ruangan-ruangan di dalamnya. Sistem ini dipasang sebagai sumber informasi alternatif bagi pengunjung baru tentang tata ruangan dan tata letak di dalam bangunan. Akan tetapi sistem ini masih mempunyai banyak kekurangan, sehingga perlu dikembangkan lebih lanjut.
Pengembangan yang dilakukan di sini diantaranya adalah penambahan denah yang akan menginformasikan posisi dan arah pengguna, sehingga pengguna tidak akan tersesat di dalam sistem. Pengembangan yang lain adalah penambahan fungsi pencarian jalur terpendek menuju ruangan/lokasi tertentu untuk membantu pengguna yang ingin mencari ruangan/lokasi tertentu secara cepat, tanpa perlu menjelajah ruangan satu persatu. Untuk mengimplementasikan fungsi pencarian jalur terpendek ini dibutuhkan sebuah algoritma yang dapat menyelesaikan problem
shortest path. Algoritma yang akan digunakan adalah algortima Dijkstra.
Hasil dari penelitian ini adalah perbaikan dari sistem VRN sebelumnya dengan penambahan beberapa fungsi baru, yaitu fungsi pencarian jalur terpendek menuju lokasi/ruangan tertentu dan penambahan denah/peta untuk membantu pengguna mengetahui posisi dan arah pengguna saat itu dalam sistem. Dengan penambahan beberapa fungsi baru tersebut, diharapkan sistem ini lebih dapat memenuhi kebutuhan pengguna dalam mengenali tata letak ruangan dalam suatu bangunan. Kata Kunci : Virtual Room Navigator, komputer grafik, shortest path, algoritma Dijkstra
(STUDI KASUS : GEDUNG PERPUSTAKAAN IPB)
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Oleh :
KHAMAMUDIN
G64101064
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2007
Nama
: Khamamudin
NRP :
G64101064
Menyetujui,
Pembimbing I
Prof. Dr. Ir. Kudang B. Seminar, M.Sc.
NIP 131 475 575
Pembimbing II
Aziz Kustiyo, S.Si, M.Kom.
NIP 132 206 241
Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Dr. drh. Hasim, DEA
NIP 131 578 806
Alhamdulilahirobbil’alamin
Segala puji dan syukur penulis panjatkan kehadirat ALLAH SWT atas segala rahmat dan karunia-Nya telah memberikan kekuatan dan kelancaran kepada penulis selama menyelesaikan studi hingga tersusunnya skripsi ini.
Penelitian Tugas Akhir yang berjudul Pengembangan Sistem Virtual Room Navigator dengan Algoritma Dijkstra untuk Pencarian Jalur Terpendek ini, merupakan syarat penulis untuk menyelesaikan studi di Departemen Ilmu Komputer IPB.
Penyelesaian tulisan ini tidak terlepas dari keterlibatan berbagai pihak yang turut andil demi kelancaran penelitian ini. Sebagai penghargaan terhadap pihak-pihak yang telah berjasa tersebut, penulis menyampaikan terimakasih yang sebesar-besarnya kepada:
• Kedua orangtua serta adik-adik penulis yang telah memberikan semangat, do’a dan dukungan demi kelancaran penulis dalam penelitian.
• Prof. Dr. Ir. Kudang Boro Seminar, M.Sc. dan Aziz Kustiyo, S.Si, M.Kom. selaku pembimbing skripsi, serta Hari Agung, S.Kom, M.Si. selaku penguji. Terima kasih atas bimbingan, waktu, pikiran, dan perhatian yang diberikan kepada penulis.
• Segenap pimpinan dan staf Perpustakaan IPB. Terima kasih atas bantuan kemudahan, fasilitas, dan keramahan selama penulis berada di sana.
• Seluruh dosen dan staf departemen Ilmu Komputer atas segala bantuannya.
• Wisnu Adi Nugroho atas source code dan bahan-bahan yang penulis butuhkan dalam penelitian ini.
• Hartini yang selalu memberi semangat serta impian masa depan.
• Temen-temen satu kost, Didik, Bagus, Ranggo, Gianto, dan Voltak atas bantuan dan dukungannya.
• Wahyudi, kakak kelas dan teman seperjuanganku, terima kasih atas semua dorongan semangatnya.
• Teman-teman statistik 38, Mas Mamay, Asep, terima kasih atas perhatian dan kebersamaannya.
• Yani, Liesca, Novi, Toto, Supri, Made, Jawa, Yoki, Erwin, Rades, dan seluruh teman-teman ilkom angakatan 38 yang tidak dapat penulis sebutkan satu persatu, terima kasih atas segala bantuan, dorongan semangat, dan kerbesamaannya.
• Sanda, Faiq, David, adik-adikku ilkom 39 dan 40, terima kasih atas segala dukungan dan bantuannya.
• Semua pihak yang tidak bisa disebutkan satu persatu.
Akhirnya, penulis mohon maklum jika tulisan ini tidak dapat memenuhi kesempurnaan yang diharapkan. Penulis sadar bahwa masih banyak kekurangan dalam tulisan ini. Semoga penelitian ini dapat bermanfaat bagi diri penulis sendiri, pembaca, dan juga masyarakat pada umumnya. Amin.
Bogor, September 2007
Penulis menempuh pendidikan di SDN 3 Jogosimo Kecamatan Klirong Kabupaten Kebumen lulus pada tahun 1995, SMP Negeri 1 Klirong lulus tahun 1998, SMUN 1 Kebumen lulus pada tahun 2001. Pada tahun yang sama penulis diterima di Jurusan Ilmu Komputer FMIPA IPB melalui jalur UMPTN.
Pada bulan Februari-April 2005, penulis melaksanakan praktek lapang di Balai Penelitian dan Pengembangan Bioteknologi dan Sumber Daya Genetik Cimanggu, Bogor.
Selain menjalani kewajiban sebagai mahasiswa, sejak tahun 2006 penulis bekerja sebagai IT Administrator pada sebuah perusahaan yang bergerak di bidang telekomunikasi di Jakarta. Penulis juga pernah terlibat dalam berbagai project pembuatan software, di antaranya adalah sistem pengolah data calon pemilih untuk KPUD Kabupaten Bogor dan Padang.
DAFTAR GAMBAR ... viii
DAFTAR LAMPIRAN ... viii
PENDAHULUAN... 1
Latar Belakang ... 1
Tujuan ... 1
Ruang Lingkup ... 1
TINJAUAN PUSTAKA... 1
Objek Tiga Dimensi (3D) ... 1
Sistem Koordinat 3D ... 2 3D Engine... 2 3D State Engine... 2 Graph... 2 Path... 3 Shortest Path... 3 Algoritma Dijkstra... 3
Sistem Development Life Cycle... 4
Model Waterfall... 4
METODE PENELITIAN... 4
Fase Analisis kebutuhan dan definisi (Requirements analisys and definition)... 4
Fase Desain sistem dan perangkat lunak (System and software design)... 5
Fase Implementasi dan pengujian unit (Implementation and unit testing) ... 5
Fase Integrasi dan pengujian sistem (Integration and system testing)... 5
HASIL DAN PEMBAHASAN ... 5
Fase Analisis Kebutuhan dan Definisi... 5
Lingkup Masalah ... 5
Analisis Pengguna ... 5
Fungsi Sistem ... 6
Kebutuhan Antarmuka Eksternal... 6
Kebutuhan Fungsional ... 6
Fase Desain Sistem dan Perangkat Lunak ... 6
Desain Basis Data ... 7
Navigator ... 7
Editor ... 7
Fase Implementasi dan Pengujian Unit ... 8
Navigator ... 9
Implementasi Algoritma Dijkstra dalam VRN ... 9
Ilustrasi Pencarian Jalur Terpendek pada VRN ... 11
Kontrol Navigasi... 11
Implementasi Denah ... 11
Editor ... 12
Pengujian Unit ... 12
Fase Integrasi dan Pengujian Sistem ... 12
KESIMPULAN DAN SARAN ... 12
Kesimpulan... 12
Saran... 12
DAFTAR PUSTAKA ... 12
LAMPIRAN... 14
1 Sistem koordinat 3D ... 2
2 Perbandingan World Space dan Object Space dalam sistem koordinat 3D ... 2
3 Model waterfall... 4
4 Diagram Konteks VRN ... 7
5 Rancangan antar muka navigator... 7
6 Rancangan antar muka login ... 7
7 Rancangan antarmuka Editor... 8
8 Rancangan antarmuka form ganti password... 8
DAFTAR LAMPIRAN
Halaman 1 Diagram Alir Data (DAD) level 1 Administrator ... 152 Diagram Alir Data (DAD) level 2 Administrator proses 1.Login ... 15
3 Diagram Alir Data (DAD) level 2 Administrator proses 2. Manajemen VRN... 16
4 Diagram Alir Data (DAD) level 3 Administrator proses 2.1. Edit miniatur... 16
5 Diagram Alir Data (DAD) level 3 Administrator proses 2.2. Edit graph ... 17
6 Diagram Alir Data (DAD) level 3 Administrator proses 2.3. ganti password ... 17
7 Diagram Alir Data (DAD) level 1 Pengguna Biasa... 18
8 Diagram Alir Data (DAD) level 2 Pengguna biasa proses 2. Navigasi ... 18
9 Tabel Basis Data untuk Graph... 19
10 Hasil implementasi bagian navigator... 19
11 Diagram UML ... 20
12 Ilustrasi pencarian jalur terpendek (awal)... 21
13 Ilustrasi pencarian jalur terpendek (akhir) ... 21
14 Dialog box pencarian jalur terpendek... 22
15 Implementasi Denah ... 22
16 Implementasi bagian editor ... 23
17 Implementasi Form Login untuk editor... 23
18 Implementasi Form Ganti Password ... 23
19 Hasil pengujian untuk unit (bagian) navigator ... 24
20 Hasil pengujian untuk unit (bagian) editor ... 25
21 Hasil pengujian form login ... 27
22 Hasil pengujian form ganti password... 28
PENDAHULUAN
Latar BelakangSuatu bangunan/gedung yang berukuran besar dan memiliki banyak ruangan, misalnya perpustakaan, sering menghadapi masalah yang berkaitan dengan kemudahan pengunjung barunya dalam menjelajah ruangan yang ada untuk pertama kalinya.
Tidak semua orang bisa memberikan informasi sesuai dengan yang diinginkan pengunjung baru. Dalam banyak hal pengalaman bisa menjadi guru yang paling berharga. Dalam hal ini pengalaman yang diberikan melalui sistem adalah berupa informasi tata letak dalam bangunan/gedung.
Untuk itu dibutuhkan sistem yang dapat merepresentasikan bangunan/gedung sesuai dengan keadaan di dunia nyata dan kehidupan manusia sehari-hari. Sistem yang demikian memberikan pengalaman virtual dan kesan lebih kuat bagi pengunjung.
Sebuah sistem navigasi ruangan interaktif dengan visualisasi virtual tiga dimensi (3D) dengan nama Virtual Room Navigator (VRN) telah dikembangkan oleh Nugroho (2004) untuk memenuhi kebutuhan tersebut. Studi kasus yang diambil adalah gedung Unit Pelaksanaan Teknis (UPT) Perpustakaan Pusat IPB. Sistem ini dibangun dengan tujuan untuk membantu pengunjung baru gedung UPT Perpustakaan Pusat IPB untuk menjelajah dan mengenali ruangan-ruangan di dalamnya. Akan tetapi, sistem tersebut dirasa kurang interaktif karena pengguna diharuskan menjelajah sendiri ruangan-ruangan yang ada tanpa ada informasi tata letak ruang terlebih dahulu. Untuk itu ditambahkan beberapa fitur yang akan membantu dalam melakukan navigasi. Diantaranya adalah fitur untuk mencari jalan terpendek dari posisi sekarang menuju ke suatu ruangan tertentu.
Selain itu, kekurangan-kekurangan sistem yang lain seperti tidak adanya petunjuk arah mata angin dan peta yang akan menunjukkan posisi pengguna berada, dapat menyebabkan pengguna tersesat di dalamnya. Sehingga penambahan arah mata angin dan peta dirasa sangat perlu dilakukan.
Disamping itu, editor yang telah disediakan sebelumnya dirasa terlalu rumit, dan banyak fitur-fitur yang tidak diperlukan. Untuk itu perlu dibuatkan editor yang lebih sederhana dan sesuai dengan kebutuhan.
Tujuan
Tujuan dari penelitian ini adalah menyempurnakan sistem Virtual Room Navigator yang telah ada, tanpa menghilang-kan fungsi sebelumnya.
Perbaikan yang dilakukan diantaranya adalah:
1 Menambahkan fungsi pencarian jalan terpendek (shortest path) untuk menuju ruangan tertentu dengan menggunakan algoritma Dijkstra.
2 Menambahkan denah/peta dan arah mata angin yang akan menginformasikan posisi pengguna saat itu.
3 Membuatkan editor untuk meng-update
kondisi ruangan dan graph yang diguna-kan dalam pencarian jalan terpendek. Ruang Lingkup
Ruang lingkup penelitian ini dibatasi pada: 1 Sistem yang dikembangkan, yaitu Virtual Room Navigator, mengambil studi kasus gedung UPT Perpustakaan Pusat IPB. 2 Kemampuan editor terbatas pada:
a editing terbatas pada penambah-an/pengurangan objek, dan pemindah-an tata letak objek. Objek bisa berupa: meja, kursi, komputer, rak buku, dll b editing graph (terdiri dari kumpulan
node dan edge) yang akan digunakan dalam pencarian jalur terpendek
c bentuk bangunan, dinding, ruangan, pintu, jendela, lampu, dll yang bersifat permanen tidak bisa diedit
3 Algoritma pencarian jalur terpendek (shortest path) yang digunakan adalah algoritma Dijkstra.
4 Jenis graph yang dibuat melalui editor
adalah digraph.
TINJAUAN PUSTAKA
Objek Tiga Dimensi (3D)Objek 3D atau mesh adalah sekumpulan
face/poligon yang digabung menjadi objek baru. Pada dasarnya objek-objek yang kompleks terdiri dari poligon-poligon sederhana. Umumnya poligon yang menjadi dasar pembentukan bagi objek-objek lain adalah segitiga (Susanto 2000).
Poligon sendiri tersusun dari sekumpulan vertek. Bentuk poligon dintentukan dari posisi vertek-verteknya. Vertek-vertek ini menentu-kan titik sudut dari poligon tersebut.
Vertek tak lain adalah titik pada dunia tiga dimensi. Setiap vertek mempunyai nilai x, y, dan z.
Sistem Koordinat 3D
Objek 3D dibangun dalam sistem koordinat yang mempunyai 3 sumbu yaitu x, y dan z, atau disebut dengan sistem koordinat 3D. Aplikasi grafik 3D biasanya menggunakan dua jenis sistem koordinat
Cartesian, yaitu aturan tangan kiri dan aturan tangan kanan (Microsoft 2001). Dalam kedua sistem koordinat ini, arah dari sumbu x positif adalah ke kanan, dan arah dari sumbu y positif adalah ke atas. Yang membedakan dua sistem koordinat ini adalah arah sumbu z positifnya. Koordinat sistem dengan aturan tangan kiri arah sumbu z positif adalah menjauhi bidang gambar atau pengamat. Sedangkan aturan tangan kanan, sumbu positif z mengarah ke pengamat. Ilustrasi dari kedua sistem tersebut dapat dilihat pada Gambar 1.
Gambar 1 Sistem koordinat 3D (Microsoft 2001).
Dalam graifk 3D, terdapat tiga macam ruang (space) (Buchanan et al. 1997), yaitu 1 Ruang Dunia (World Space), yaitu
koordinat dari semua titik yang ada dalam dunia 3D. Koordinat World Space bersifat absolut, tidak pernah berubah, dan tidak terpengaruh dari arah objek atau kamera. 2 Ruang Objek (Object Space), yaitu titik
koordinat pada objek yang relatif terhadap posisi dan sudut putarnya. Koordinat Ruang Objek mengikuti objeknya, kemanapun arah objek dalam dunia 3D. 3 Ruang Kamera (Camera Space), yaitu
ruang 3D yang merepresentasikan kamera dari pengguna, atau layar komputer, dimana objek masih mempunyai kedalaman (koordinat z). Koordinat ruang kamera adalah seperti ruang objek, tetapi objeknya adalah kamera itu sendiri. Pada Gambar 2 diilustrasikan perbanding-an perbanding-antara World Space dan Object Space
dalam sistem koordinat 3D.
Gambar 2 Perbandingan World Space dan
Object Space dalam sistem koordinat 3D (Buchanan et al. 1997).
3D Engine
Software yang memproses struktur data bangun 3D, termasuk seluruh pencahayaan, aksi-aksi, dan informasi keadaan secara umum, dan me-render (menterjemahkan) dunia 3D dari sudut pandang pemain atau kamera disebut 3D Engine (LaMothe 2003). 3D Engine digunakan untuk mempercepat pembuatan aplikasi 3D, misalnya game. Contoh 3D Engine yang sering digunakan dalam pembuatan game adalah Valve, Quake Engine, dan Unreal Engine.
3D State Engine
3D State Engine adalah salah satu 3D
Engine yang dibuat oleh 3DState Ltd, Israel. 3D Engine ini dapat di-download secara gratis di alamat www.3dstate.com untuk keperluan pendidikan. Engine ini dikeluarkan dalam beberapa versi bahasa pemrograman. Diantaranya adalah versi 3D State untuk Visual Basic 6.0. Sistem koordinat 3D yang digunakan dalam 3D State adalah sistem koordinat kartesian dengan aturan tangan kanan (Buchanan et al. 1997).
Dalam paketnya, 3D State juga menyediakan beberapa tools, diantaranya adalah 3D Webmaker, yaitu sebuah tool world builder. World Builder adalah tools yang digunakan untuk membangun dunia 3D yang cukup kompleks.
Graph
Sebuah graph G berisi himpunan V, yang merupakan vertek-vertek dari G, bersama dengan himpunan E yang merupakan pasangan-pasangan dari vertek-vertek (V) yang berbeda-beda. Pasangan-pasangan ini disebut edge-edge dari G. Jika e=(v, w) adalah sebuah edge dengan vertek v dan w, maka v
dikatakan incident dengan v dan w. Jika pasangan tersebut (v, w) tidak diperhatikan urutannya, maka G disebut undirected graph. Namun jika diperhatikan urutannya, maka G disebut directed graph. Directed graph sering disingkat dengan digraph (Kruse 1989). Path
Path adalah sebuah graph tidak kosong P=(V,E), dimana V={x0, x1, ..., xk} dan
E={x0x1, x1x2, ..., xk-1xk}, dimana seluruh xi
adalah berbeda. Vertek x0 dan xk dihubungkan
oleh P dan mereka disebut ujung-ujung path, sedangkan x1, ..., xk-1 adalah vertek-vertek
tengah dari P. Panjang dari sebuah path
adalah jumlah dari edge-edge pada suatu path
(Diestel 2005). Shortest Path
Problem sorthest path melibatkan sebuah
graph terboboti yang digambarkan oleh sekumpulan tepi dan titik {E, V}. Diberikan sebuah titik awal, s, tujuannya adalah menemukan jalur terpendek yang ada antara s dengan sembarang titik dalam graph tersebut. Oleh karena itu, setiap jalur akan memiliki penjumlahan terkecil yang mungkin dari komponen tepi (u, v) dan bobotnya (w [u, v]) (Freeland et al. 1997). Algoritma yang dapat digunakan untuk mencari shortest path
diantaranya adalah algoritma Floyd dan algoritma Dijkstra.
Algoritma Dijkstra
Algoritma Djikstra (diambil dari nama penemunya, E.W. Dijkstra) digunakan untuk menyelesaikan masalah pencarian jalur terpendek (shortest path) dari suatu vertek ke vertek-vertek lainnya dalam suatu graph
G=(V, E). Di dalam hal ini edge-edge dalam
graph G tersebut mempunyai bobot yang berbeda (weighted graph) (Morris 1998). Algoritma Djikstra menjaga dua kumpulan vertek:
S = kumpulan vertek yang telah ditemukan jalur terpendeknya dari vertek awal
V-S = sisa vertek yang lain (disimbolkan juga dengan Q). Struktur data lain yang diperlukan
d = array yang berisi perkiraan jalur terpendek untuk tiap-tiap vertek
pi = array yang berisi predecessor
untuk tiap vertek
Operasi dasarnya adalah sebagai berikut 1 Inisialisasi d dan pi
2 Set S = kosong.
3 Selama ada vertek dalam V-S
a Urutkan vertek-vertek dalam V-S berdasarkan perkiraan jarak terpendek dengan sumber.
b Tambahkan u ke dalam S, dengan u adalah vertek dalam V-S yang terpendek.
c Lakukan prosedur relaxation untuk semua vertek-vertek dalam V-S yang terhubung lewat vertek u.
Algoritma Dijkstra dalam pseudo-code
menurut Morris (1998) adalah sebagai berikut shortest_paths( Graph g, Node s )
initialise_single_source( g, s ) S := { 0 } /* Make S empty */ Q := Vertices( g ) /* Put the vertices in a PQ */
while not Empty(Q)
u := ExtractCheapest( Q ); AddNode( S, u ); /* Add u to S */ for each vertex v in Adjacent( u ) relax( u, v, w )
Inisialisasi
Prosedur ini menginisialisasi graph sehingga semua vertek tidak mempunyai predecessor
(pi[v]=nil) dan perkiraan cost (jarak) untuk tiap vertek menuju s adalah tak terhingga atau
infinite (d[v]=∞).
initialise_single_source( Graph g, Node s ) for each vertex v in Vertices( g ) g.d[v] := infinity g.pi[v] := nil g.d[s] := 0;
Relaxation
Proses relaxation memperbaharui seluruh cost
(d) dalam himpunan vertek V-S yang terhubung melalui vertek u. Prosedur ini memeriksa, apakah cost atau perkiraan jarak terpendek dari vertek v dapat diperbaiki melalui vertek u (dengan membuat u sebagai
predecessor dari vertek v).
Algoritma dari prosedur relaxation adalah sebagai berikut
relax( Node u, Node v, double w[][] ) if d[v] > d[u] + w[u,v] then
d[v] := d[u] + w[u,v] pi[v] := u
System Development Life Cycle
Pada awalnya, pengembangan software
hanya dilakukan oleh seorang programmer
dengan menuliskan kode program untuk menyelesaikan suatu masalah. Sekarang, sistem yang dibangun sangat besar dan kompleks sehingga perancang, analis,
programmer, tester, dan pengguna harus bekerja bersama untuk membuat jutaan kode program.
Untuk mengatur semua ini, berbagai macam model System Development Life Cycle
(SDLC) telah dibuat. Diantaranya, waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, dan synchronize and stabilize (Kay 2002).
Model Waterfall
Model SDLC yang paling tua, dan terkenal paling baik, adalah waterfall: serangkaian fase dimana output dari setiap fase menjadi input bagi fase berikutnya (Kay 2002).
Model ini terbagi kedalam beberapa fase, yaitu (Somerville 2001):
1 Analisis kebutuhan dan definisi
(Requirements analisys and definition) Kegunaan sistem, batasan, dan tujuan ditentukan dengan melakukan konsultasi dengan pengguna sistem, yang kemudian akan didefinisikan secara detail dan disajikan sebagai spesifikasi sistem.
2 Desain sistem dan perangkat lunak (System and software design)
Proses desain sistem membagi-bagi kebutuhan baik dalam kebutuhan
hardware maupun software, yang akan menyusun keseluruhan arsitektur sistem.
Desain software melibatkan
pengidentifikasian dan pendeskripsian dasar abstraksi sistem software dan hubungan mereka.
3 Implementasi dan pengujian unit
(Implementation and unit testing)
Selama fase ini, desain software
diwujudkan sebagai sebuah set program atau unit-unit program. Pengujian unit melibatkan pengujian bahwa tiap unit bekerja sesuai dengan spesifikasinya. 4 Integrasi dan pengujian sistem (Integration
and system testing)
Unit-unit program tersebut digabungkan dan diuji sebagai sebuah sistem yang lengkap untuk menjamin bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak diserahkan kepada pengguna.
5 Penggunaan dan perawatan (Operation and maintenance)
Biasanya, ini adalah fase paling lama. Sistem dipasang dan digunakan dalam praktek. Perawatan melibatkan perbaikan kesalahan-kesalahan (error) yang belum ditemukan pada proses sebelumnya, meningkatkan implementasi unit-unit sistem dan melakukan penambahan kegunaan sistem apabila ditemukan kebutuhan baru.
Pada Gambar 3 diilustrasikan fase-fase dalam model waterfall tersebut.
Requirements definition
System and software design
Impelentation and unit testing
Integration and system testing
Operation and maintenance
Gambar 3 Model waterfall (Somerville 2001).
METODE PENELITIAN
Metode pengembangan sistem yang akan digunakan dalam penelitian ini adalah System Development Life Cycle (SDLC) dengan model waterfall.Metodologi pengembangan ini terbagi ke dalam lima fase, yaitu fase analisis kebutuhan dan definisi, fase desain sistem dan perangkat lunak, fase implementasi dan pengujian unit, fase integrasi dan pengujian sistem, dan fase penggunaan dan perawatan.
1 Fase Analisis kebutuhan dan definisi (Requirements analisys and definition) Fase ini dimulai dengan identifikasi permasalahan, alternatif solusi yang ada, menentukan tujuan sistem, dan mengidentifikasikan kendala-kendala sistem.
Pada sistem VRN, permasalahan yang timbul adalah kurangnya fasilitas yang ada pada sistem sehingga pengguna akan kesulitan mendapatkan informasi yang diinginkan. Untuk itu perlu ditambahkan beberapa fasilitas yang dapat membantu pengguna selama menggunakan sistem tersebut
diantaranya adalah penambahan fasilitas peta atau denah, arah mata angin, dan pencarian jalur terpendek. Diharapkan dengan penambahan fasilitas-fasilitas baru tersebut pengguna akan lebih mudah menggunakan sistem dan mendapatkan informasi yang diinginkan secara cepat.
2 Fase Desain sistem dan perangkat lunak (System and software design)
Dalam fase ini dilakukan kebutuhan sistem diabagi dalam kebutuhan hardware dan kebutuhan software. VRN adalah sistem yang menggunakan Engine 3D yang membutuhkan dukungan hardware yang cukup tinggi.
Dalam sistem yang telah dibuat oleh Nugroho (2004), disebutkan bahwa kebutuhan minimal hardware adalah sebagai berikut:
• Prosesor 1 GHz
• Memori internal 256 MB
• Kartu VGA 32 MB mendukung 3D • Monitor resolusi 800x600 pixel (24 bit) • Hardisk 70 MB
• Keyboard
sedangkan kebutuhan software untuk sistem ini adalah Sistem Operasi Microsoft Windows 98
Desain perangkat lunak melibatkan pengiden-tifikasian dan pendeskripsian dasar abstraksi sistem perangkat lunak dan hubungan mereka.
3 Fase Implementasi dan pengujian unit (Implementation and unit testing)
Selama fase ini, desain software
diwujudkan sebagai sebuah set program atau bagian-bagian program. Pengujian unit melibatkan pengujian bahwa tiap unit telah bekerja sesuai dengan spesifikasinya.
Sistem VRN yang baru, akan diimplementasikan dalam 2 unit program. Yaitu Editor, yang berguna untuk mengedit dunia 3D agar tata letak ruangannya selalui sesuai dengan kondisi dan tata letak ruangan pada dunia sebenarnya. Unit tersebut akan dibatasi penggunaannya oleh orang tertentu saja, yang berhak untuk melakukan perubahan-perubahan pada dunia 3D.
Unit kedua adalah sistem navigasi itu sendiri, dimana user secara umum bisa berinteraksi dengan sistem. Dalam pengembangan yang dilakukan untuk saat ini, ditambahkan beberapa fungsi yang belum ada pada sistem sebelumnya, yaitu penambahan denah atau peta yang menginformasikan lokasi pengguna dalam sistem berserta arahnya, dan fungsi untuk mencari
ruangan-ruangan tertentu dengan menggunakan algoritma Djikstra.
4 Fase Integrasi dan pengujian sistem (Integration and system testing)
Fase ini menggabungkan unit-unit program yang ada pada fase sebelumnya, menjadi satu kesatuan sistem yang lengkap. Dalam hal ini, sistem VRN yang terdiri dari 2 unit, yaitu unit editor dan navigasi, akan dikemas menjadi sebuah paket program yang lengkap.
Selanjutnya, akan dilakukan testing atau pengujian terhadap sistem sebelum sistem diserahkan kepada pengguna.
HASIL DAN PEMBAHASAN
Fase Analisi Kebutuhan dan Definisi Lingkup MasalahVirtual Room Navigator adalah suatu perangkat lunak yang digunakan untuk merepresentasikan suatu bangunan atau gedung dalam miniatur 3D. Tujuannya adalah untuk memenuhi kebutuhan pengguna akan informasi tata ruang dan tata letak suatu bangunan atau gedung.
Sistem ini telah diterapkan pada Gedung Perpustakaan IPB berupa miniatur gedung dalam bentuk objek 3D, yang penerapannya dilakukan pada lantai dua, tiga, dan empat. Analisis Pengguna
Pengguna dari sistem VRN dapat dibagi menjadi dua, yaitu
1 Pengelola perpustakaan IPB selaku administrator.
Administrator mempunyai tugas untuk melakukan perubahan yang berkaitan dengan tata letak pada ruangan yang ada. Setiap ada perubahan tata letak ruangan, operator harus melakukan update terhadap objek 3D pada sistem. Sehingga sistem akan selalu sesuai dengan kondisi sebenarnya.
2 Pengunjung perpustakaan.
Pengunjung perpustakaan (pengguna) dapat menggunakan sistem ini untuk menjelajahi gedung perpustakaan secara virtual. Pengguna juga dapat melakukan pencarian jalur terpendek yang bisa ditempuh dari suatu lokasi ke lokasi yang lainnya.
Fungsi sistem
Fungsi sistem secara umum adalah sebagai sarana informasi tata letak suatu bangunan kepada khalayak. Sistem ini juga dapat digunakan untuk mempromosikan suatu gedung yang baru dibangun. Sehingga ada gambaran secara umum bagi pengguna akan bangunan baru tersebut.
Fitur-fitur utama yang ada pada sistem adalah
• Tampilan ruangan dalam bentuk 3D yang dapat dikendalikan oleh pengguna untuk melakukan eksplorasi terhadap seluruh ruangan-ruangan yang ada.
• Tampilan denah yang berguna untuk membantu pengguna untuk mengetahui posisi dan arah pengguna saat ini dalam sistem, sehingga pengguna tidak akan tersesat didalamnya.
• Pencarian jalur terpendek.
Dengan fitur ini, pengguna dapat mencari jalur terpendek yang dapat ditempuh dari posisi saat ini menuju lokasi tertentu yang diinginkan pengguna.
• Editor
Editor adalah fitur yang hanya bisa diakses oleh administrator. Editor ini berguna untuk memperbaharui kondisi suatu ruangan, dan juga digunakan untuk menentukan jalur yang dapat dilalui oleh pengguna melalui fitur pencarian jalur terpendek.
Kebutuhan Antarmuka Eksternal A Antarmuka Pengguna
Antarmuka pengguna untuk perangkat lunak ini dikembangkan dengan menggunakan modus grafik. Perangkat lunak ini menerima masukan dari pengguna melalui perintah klik pada tetikus (mouse) atau yang diketikkan melalui papan kunci (keyboard).
Keluaran dari perangkat lunak ini dapat dilihat pengguna dengan menggunakan monitor secara langsung.
B Antarmuka Perangkat Keras
Kebutuhan minimum perangkat keras yang digunakan untuk menjalankan sistem VRN adalah sebuah PC dengan spesifikasi:
• Prosesor Intel Pentium 4 • Memori internal 256 MB
• Kartu VGA 32 MB yang mendukung aplikasi 3D
• Monitor dengan resolusi 1024 x 768 pixel
• Hard disk 70 MB. C Antarmuka Perangkat Lunak
Kebutuhan perangkat lunak yang dibutuhkan adalah
• Microsoft Windows XP
• 3D State Engine
Kebutuhan Fungsional
Kebutuhan fungsional sistem meliputi • Fungsi untuk menampilkan navigator. Ini
adalah fungsi utama yang dapat diakses oleh pengguna biasa. Fitur ini akan langsung ditampilkan pada saat sistem dijalankan.
• Fungsi navigasi.
• Fungsi ini merupakan fungsi utama sistem, yaitu untuk menjelajah ruangan-ruangan di dalam bangunan virtual. Navigasi dilakukan dengan menekan tombol pada
keyboard. Fungsi ini memiliki kemampuan untuk menggerakan pandangan user untuk maju, mundur, dan juga untuk memutar. Selama bernavigasi, posisi dan arah user dapat dilihat pada denah yang tersedia. • Fungsi pencarian jalur terpendek.
• Fungsi ini digunakan oleh user untuk mencari rute terpendek yang dapat ditempuh dari posisi user menuju lokasi yang diinginkan user.
• Fungsi untuk mengedit objek 3D.
• Fungsi ini hanya dapat diakeses oleh administrator, dengan melakukan proses
login terlebih dahulu. Disini operator dapat pembaharuan terhadap tata letak dan objek-objek yang ada dalam dunia 3D agar sesuai dengan kondisi yang sesungguhnya. Dalam editor ini, administrator juga dapat menentukan jalur-jalur yang dapat ditempuh dalam pencarian jalur terpendek. • Fungsi untuk validasi pengguna.
• Fungsi untuk validasi, apakah user dapat masuk sebagai administrator yang dapat mengakses fungsi editor.
• Fungsi untuk mengubah password.
• Fungsi yang digunakan untuk mengubah
password yang diperlukan untuk masuk dalam editor. Fungsi ini hanya dapat diakses oleh administrator yang telah melakukan proses login terlebih dahulu. Fase Desain Sistem dan Perangkat Lunak
Sistem VRN mempunyai dua kategori pengguna, yaitu pengguna biasa dan administrator. Oleh karena itu, sistem akan dibagi dalam dua unit, yaitu navigator dan
editor. Navigator adalah sistem yang digunakan oleh pengguna biasa. Editor adalah unit yang digunakan oleh administrator untuk melakukan pembaharuan terhadap objek-objek pada miniatur 3D. Diagram konteks sistem dapat dilihat pada Gambar 4. Untuk memperjelas Diagram Konteks atau Diagram Aliran Data (DAD) level 0 tersebut, dibuatlah DAD level 1, DAD level 2, dan DAD level 3 untuk proses yang terjadi pada Administrator, yang dapat dilihat pada Lampiran 1, Lampiran 2, Lampiran 3, Lampiran 4, Lampiran 5, dan Lampiran 6. Sedangkan DAD level 1 dan DAD level 2 Pengguna biasa dapat dilihat pada Lampiran 7 dan Lampiran 8.
Gambar 4 Diagram Konteks VRN. Desain Basis Data
Sistem VRN memerlukan dua basis data, yang masing-masing digunakan untuk menyimpan miniatur 3D dan menyimpan graph. Basis data yang digunakan untuk menyimpan miniature 3D telah disediakan oleh Engine 3DState. Sedangkan basis data yang digunakan untuk menyimpan graph, digunakan Microsoft Access. Tabel yang dibuat adalah tabel Node dan Edge, yang definisinya dapat dilihat pada Lampiran 9. Navigator
Perancangan antarmuka
Rancangan antarmuka untuk form Navigator dapat dilihat pada Gambar 5.
Gambar 5 Rancangan antar muka navigator.
Menu-menu yang ada pada form navigator
• File
Digunakan untuk mengakses menu exit, untuk keluar dari sistem.
• Go to
Menu yang digunakan untuk melakukan pencarian jalur terpendek.
• Administrator
Menu untuk masuk ke dalam mode editor. • Help
Menampilkan bantuan singkat tentang bagaimana cara menggunakan sistem ini. Perancangan Fungsi/Proses
Fungsi/proses dari Navigator adalah
1 Fungsi menampilkan miniatur 3D dari suatu bangunan.
2 Fungsi/proses melakukan navigasi. 3 Fungsi/proses mencari jalur terpendek 4 Fungsi/proses menampilkan posisi dan
arah user pada denah.
5 Fungsi/proses menampilkan halaman petunjuk penggunaan.
6 Fungsi/proses untuk login ke mode editor. 7 Fungsi/proses untuk keluar dari sistem.
Dalam form navigator, terdapat fungsi untuk melakukan login ke dalam modeeditor. Perancangan antarmuka untuk form login dapat dilihat paga Gambar 6
Gambar 6 Rancangan antar muka login. Editor
Perancangan antarmuka
Rancangan antarmuka untuk form Editor dapat dilihat pada Gambar 7
Menu-menu yang ada pada formEditor: • File
Menu untuk mengakses sub menu untuk menyimpan hasil perubahan, dan menu untuk keluar dari sistem.
• Password
Menu untuk mengakses form untuk mengganti password untuk masuk dalam
formEditor VRN Administrator pilihan menu pilihan menu hasil
manajemen tampilan miniatur 3D
Pengguna biasa
Form Login
Username:
File Go to Administrator Help Form Navigator
Tampilan miniatur 3D Denah
Password:
• Logout
Menu untuk keluar dari mode Editor, dan kembali ke modeNavigator.
• Help
Menu untuk menampilkan form yang berisi petunjuk singkat cara pengoperasian program.
Gambar 7 Rancangan antarmuka Editor. Perancangan Fungsi/Proses
Fungsi/Proses dari editor adalah
1 Fungsi/proses melakukan proses editing
pada miniatur 3D, yang bisa berupa a Menggeser objek
b Memutar objek
c Merubah ukuran objek (perbesar atau perkecil)
d Menambahkan objek baru. e Menghapus objek.
2 Fungsi/proses menambah atau mengurangi jalur yang akan digunakan dalam proses pencarian jalur terpendek.
Fungsi/proses ini bisa dibagi menjadi beberapa fungsi/proses lagi yaitu:
a Menambahkan node
b Menggeser posisi node
c Memberi nama node
d Menghapus node
e Menambah edge
f Menghapus edge
3 Fungsi/proses untuk menyimpan hasil perubahan yang telah dilakukan oleh administrator.
4 Fungsi/proses untuk mengubah password
yang digunakan untuk masuk kedalam mode editor
5 Fungsi atau proses untuk keluar dari mode editor, dan kembali ke mode navigator
6 Fungsi/proses untuk menampilkan
halaman petunjuk penggunaan editor. Dalam form editor, terdapat fungsi/proses untuk melakukan perubahan password.
Perancangan form untuk ganti password dapat dilihat pada Gambar 8
Gambar 8 Rancangan antarmuka form ganti
password.
Fase Implementasi dan Pengujian Unit Kedua bagian yang telah dirancang, yaitu navigator dan editor diimplementasikan menggunakan komputer dengan spesifikasi sebagai berikut:
• Prosesor Intel Pentium D 2.8 GHz • Memori internal DDR2 1 GB • Kartu VGA 256 MB
• Monitor 17” resolusi 1024x768 pixel • Hardisk 250 GB
Perangkat lunak yang digunakan dalam implementasi dapat dilihat pada Tabel 1. Tabel 1 Perangkat lunak dan fungsinya dalam
implementasi
Perangkat Lunak Fungsi Microsoft Windows XP Professional SP2 Sistem Operasi 3Dstate 3D Engine SDK 3D Engine yang memuat fungsi-fungsi pemrosesan objek 3D 3D Webmaker 2.0 Editor miniatur 3D
bangunan Microsoft Visual Basic 6.0 Bahasa pemrograman untuk implementasi sistem Microsoft Office Access 2003
Berkas data untuk penyimpanan password dan graph Adobe Photoshop 7.0 Pengolah gambar tekstur 2D
Microsoft Paint Pengolah gambar tekstur 2D
Form Editor File Password Logout Help
Tampilan miniatur 3D Objek
browser
Objek View
Form Ganti Password Username:
Password lama:
OK Password baru:
Navigator
Navigator diimplementasikan mengguna-kan bahasa pemrograman Microsoft Visual Basic 6.0 pada lingkungan Microsoft Windows XP. Tampilan layar navigator ini dapat dilihat pada Lampiran 10.
Implementasi Algoritma Dijkstra dalam VRN
Algoritma Dijkstra adalah algoritma untuk mencari jalur terpendek pada suatu graph.
Graph terdiri dari kumpulan vertek dan edge. Dalam sistem VRN ini, algoritma Djikstra diimplementasikan menggunakan pendekatan
Objek Oriented Programming (OOP). Sehingga akan dibentuk beberapa Class, yaitu
1 cPoint 2 cNode 3 cNodes 4 cEdge 5 cGraph
Hubungan keterkaitan antara 5 class ini digambarkan dengan diagram UML yang dapat dilihat pada Lampiran 11.
cPoint
cPoint adalah class untuk titik atau vertek dalam dunia 3D. Titik dalam dunia 3D dinyatakan dalam 3 koordinat, yaitu x, y dan z. Sehingga struktur class cPoint secara garis besar adalah sebagai berikut:
Class cPoint Atribut: • X Ækoordinat x • Y Æ koordinat y • Z Æ koordinat z Prosedur • setPoint • getPoint cNode
cNode sebenarnya adalah cPoint yang telah ditambah dengan atribut-atribut yang berguna dalam pencarian shortest path. Salah satunya adalah d, yaitu atribut yang berisi nilai perkiraan jarak terpendek sementara dari
node yang bersangkutan terhadap node source.
Class cNode
Atribut
• Point Æclass cPoint
• ID Æ id node
• Nama Æ nama node
• d Æ perkiraan jalur terpendek
cNodes
cNodes class yang berisi kumpulan class cNode. Class ini dibuat untuk memudahkan implementasi kumpulan vertek S dan Q.
Dalam class ditambahkan prosedur
ExtractNode, yang berfungsi untuk mengambil node yang mempunyai cost (nilai d) paling kecil.
ExtractNode
d = Nodes.Item(1).d For each node in Nodes
If node.d < d d=node.d ExtractNode = node Nodes.remove node
Sehingga struktur class cNodes secara garis besar adalah
Class cNodes
Atribut
• NodesÆ kumpulan classcNode
Prosedur
• addNode Æ menambahkan node
• ExtractNode Æ mengambil node
dengan d terkecil cEdge
Sesuai dengan namanya, cEdge adalah
class untuk edge, yaitu garis yang menghubungkan antara 2 node. Karena graph
yang akan dibentuk adalah graph yang mempunyai arah, maka node dibedakan jadi
node awal dan node akhir.
Untuk mengetahui jarak antara dua node
tersebut digunakan rumus jarak Jarak= 2 1 2 2 1 2 2 1 2
)
(
)
(
)
(
x
−
x
+
y
−
y
+
z
−
z
Struktur dari Class cEdge adalah sebagai berikut:Class cEdge
Atribut
• Node1Ænode awal • Node2Ænode akhir Prosedur
• getJarak
cGraph
Ini adalah class untuk implementasi graph, beserta pencarian shortest path-nya menggunakan algoritma Dijkstra.
Strukturnya secara umum adalah sebagai berikut:
Class cGraph
Atribut
• myNodesÆkumpulan semua node
• myEdgesÆ kumpulan semua edge
• myPath Æ urutan node yang merupakan hasil path terpendek dari suatu vertek ke vertek yang lain • S Æ instance dari cNodes,
merupakan kumpulan vertek yang telah ditemukan jalur terpendeknya • Q Æ instance dari cNodes,
merupakan kumpulan vertek yang belum ditemukan jalur terpendeknya • pi Æ array yang berisi predecessor
untuk tiap vertek Prosedur
• DijkstraÆ proses utama dari algoritma Djikstra
• InitDijkstraÆ inisialisasi Dijkstra • RelaxationÆ proses relaxation
• setSourceNode
• getShortestPath Æ mencari path
terpendek dari source node ke node
tertentu
Dijkstra
Prosedur utama untuk algoritma Dijkstra.
Source code-nya adalah sebagai berikut: Private Sub Djikstra()
Dim u As cNode 'inisialisasi InitDjisktra
While Q.Count <> 0
'ambil node dengan d (cost) paling kecil Set u = Q.ExtractNode
'tambahkan node u ke S S.addNode u
'untuk semua node (vertices) yang terhubung dengan u dan berada dalam list Q, ‘hitung ulang d (cost) -> relaxation Relaxation u
Wend End Sub
InitDijkstra
Ini adalah implementasi dari algoritma Dijkstra untuk bagian inisialisasi. Implementasinya dalam VB adalah sebagai berikut:
Private Sub InitDjisktra() Dim i As Integer
'd (cost untuk node) = tak hingga (Infinite) selain node source (0)
For i = 1 To myNodes.Count If i <> sNode.ID Then myNodes(i).d = Infinite Else myNodes(i).d = 0 End If Next i
'init pi (predecessor) untuk tiap node ReDim pi(myNodes.Count) As cNode
'kosongkan S, dengan cara set S sebagai instance baru
Set S = New cNodes
'isi Q dengan seluruh nodes pada graph Set Q = New cNodes
For i = 1 To myNodes.Count Q.addNode myNodes(i) Next i
End Sub
Relaxation
Implementasi dari algoritma relaxation, yaitu proses menghitung ulang semua cost (d) dalam himpunan vertek Q (V-S) yang
terhubung dengan node u.
Private Sub Relaxation(u As cNode) Dim i As Integer
Dim j As Integer Dim tEdge As cEdge 'untuk tiap2 node dalam Q For i = 1 To Q.Count
'cari node yang terhubung melalui node u
For j = 1 To myEdges.Count Set tEdge = myEdges(j)
If tEdge.Node1.ID = u.ID And tEdge.Node2.ID = Q.Nodes(i).ID Then 'jika terhubung melalui node u, ubah d jika lebih besar dari d(u)+w(u,v)
If Q.Nodes(i).d > u.d + tEdge.getJarak Then myGraph.Nodes(Q.Nodes(i).ID).d = u.d + tEdge.getJarak Set pi(Q.Nodes(i).ID) = u End If End If Next j Next i End Sub
setSourceNode dan getShortestPath
Sepasang prosedur ini digunakan untuk mencari jalur terpendek dari source node ke
node-node yang lainnya. Sebelum memanggil prosedur getShortestPath, harus dijalankan dulu setSourceNode dengan input salah satu
node pada graph sebagai source node. Kemudian akan dijalankan prosedur Dijkstra untuk mencari seluruh jalur terpendek yang bisa ditempuh dari source node menuju node-node yang lain. Selanjutnya, prosedur
getShortestPath akan mengembalikan nilai jalur terpendek dari source node menuju node
yang diinginkan.
Public Sub setNodeSource(sourceNode As cNode)
Set myPath = New Collection Set sNode = sourceNode
'lakukan algoritma djisktra Djikstra
End Sub
Public Function getShortestPath(nodeAkhir As cNode) As Boolean
Dim nodePath As cNode
Dim tempPath As New Collection 'temporari path (dalam urutan terbalik)
Set myPath = New Collection
Set nodePath = nodeAkhir
'jika tidak ditemukan path If nodePath.d = Infinite Then dSP = 0
getShortestPath = False Exit Function
End If
'jika ditemukan path tempPath.Add nodePath While nodePath.ID <> sNode.ID Set nodePath = pi(nodePath.ID) tempPath.Add nodePath Wend
dSP = nodeAkhir.d
Dim i As Integer
'buat path dari node awal ke node akhir For i = 0 To tempPath.Count - 1 myPath.Add tempPath.Item(tempPath.Count - i) Next i getShortestPath = True End Function
Ilustrasi Pencarian Jalur Terpendek pada VRN
Ilustrasi pencarian jalur terpendek menuju ruangan/lokasi yang diinginkan dapat dijelaskan sebagai berikut. Pada Lampiran 12, diilustrasikan proses awal pencarian jalur terpendek, dimana user berada pada ruangan E (diilustrasikan sebagai kotak hijau) dan akan mencari jalur yang bisa ditempuh untuk menuju ruangan C. Garis-garis warna biru beserta titik-titik warna merah adalah hasil implementasi graph pada ruangan tersebut.
Pada kasus ini, dapat dilihat bahwa node tujuannya adalah c1. Permasalahan yang timbul adalah menentukan node awal (source node) untuk pencarian shortest path, karena user tidak tepat berada di atas sebuah node. Untuk mengatasi masalah ini, penulis membuat sebuah node baru yang bersifat sementara dengan lokasi tepat pada lokasi user. Setelah itu dibuat beberapa edge yang bersifat sementara juga dari node baru tersebut menuju node-node lain yang masih berdekatan.
Setalah node dan edge baru tersebut terbentuk, sekarang dapat ditentukan bahwa node awal dari pencarian shortest path ini adalah node yang baru tersebut. Kemudian akan dijalankan algoritma Dijkstra untuk menentukan path terpendek yang dapat ditempuh menuju c1. Ilustrasinya dapat dilihat pada Lampiran 13.
Kontrol Navigasi
Pada bagian navigator ini, pengguna dapat melakukan navigasi dengan menggunakan tombol-tombol keyboard. Tombol yang digunakan adalah tombol panah atas untuk maju, tombol panah bawah untuk mundur, dan tombol kiri dan kanan untuk gerak berputar ke kiri dan ke kanan. Fungsi pencarian jalur terpendek, diimplementasikan melalui menu Go To. Pengguna dapat memilih pilihan ruangan/lokasi yang ada, atau dapat juga dengan mengetikkan secara langsung pada form yang disediakan. Tampilan form untuk pencarian jalur terpendek menuju suatu ruangan/lokasi tertentu dapat dilihat pada Lampiran 14.
Implementasi denah
Denah ditampilkan dalam sebuah area kecil disamping tampilan miniatur 3D. Tampilan ini akan merepresentasikan posisi dan arah dari pengguna dalam sistem miniatur 3D. Implementasi tampilan layar denah dapat dilihat pada Lampiran 15.
Editor
Sama halnya dengan navigator, editor juga diimplementasikan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0. Untuk keperluan penyimpanan password dan graph digunakan database Microsoft Office Access 2003. Tampilan implementasi layar editor dapat dilihat pada Lampiran 16. Sebelum pengguna dapat menggunakan fungsi-fungsi dalam editor, pengguna diharuskan memasukkan kata sandi (password) terlebih dahulu. Tampilan implementasi form login ini dapat dilihat pada Lampiran 17. Untuk melakukan penggantian
password, pengguna dapat menggunakan menu Change Password. Implementasi form
penggantian password ini dapat dilihat pada Lampiran 18.
Pengujian Unit
Setelah bagian navigator dan editor selesai diimplementasikan, selanjutnya masing-masing bagian akan diuji apakah fungsi/proses pada masing-masing bagian tersebut telah berjalan sebagaimana mestinya. Hasil pengujian untuk bagian navigator dapat dilihat pada Lampiran 19. Sedangkan hasil pengujian bagian editor dapat dilihat pada Lampiran 20. Fase Integrasi dan Pengujian Sistem
Setalah semua bagian-bagian sistem telah selesai diimplementasikan dan diuji, dan telah berjalan sesuai dengan fungsi yang diharapkan, selanjutnya masing-masing bagian ini, yaitu navigator dan editor disatukan menjadi satu kesatuan paket program.
Pengujian sistem (sistem testing) dilakukan untuk memastikan apakah semua kebutuhan fungsional sistem telah terpenuhi. Hasil uji sistem menggunakan metode black box dapat dilihat pada Lampiran 21 dan Lampiran 22.
KESIMPULAN DAN SARAN
KesimpulanSistem Virtual Room Navigator (VRN) yang dikembangkan kali ini merupakan kelanjutan dari sistem VRN sebelumnya, yang telah dikembangkan oleh Nugroho (2004). Pengembangan dilakukan berdasarkan saran-saran yang diberikan oleh pengembang sebelumnya. Fasilitas-fasilitas yang telah ditambahkan pada sistem VRN yang baru ini diantaranya adalah:
• Penambahan fasilitas denah 2D untuk mengetahui lokasi aktual tampak dari atas. • Fasilitas pencarian jalur terpendek untuk
mempermudah pencarian ruangan tertentu. • Fasilitas editor untuk mempermudah
sistem administrator dalam melakukan update miniatur 3D agar selalu sesuai dengan kondisi sesungguhnya.
Saran
Meskipun sistem ini merupakan perbaikan dari sistem sebelumnya, namun sistem ini masih mempunyai banyak kekurangan dan perlu pengembangan lebih lanjut. Pengembangan yang masih perlu dilakukan diantaranya adalah:
• Petunjuk ruangan terdekat yang berubah-ubah sesuai dengan lokasi aktual.
• Integrasi sistem VRN dengan sistem yang lainnya, misalnya dengan sistem pencarian buku.
• Penggantian engine 3D State dengan engine yang lebih baru agar bisa menghasilkan visualisasi yang lebih mendekati kenyataan.
DAFTAR PUSTAKA
Buchanan B, Pawaskar C, Hauck M, Mouton O. 1997. 3D Programming Guide. 3Dstate Ltd, Israel.
Diestel R. 2005. Graph Theory. Springer-Verlag Heidelberg, New York.
Freeland S, Thomas C, Robert L. 1997. Data Structures and Algorithms. McGill University:
School of Computer Science.
http://www.cs.mcgill.ca/~cs251/OldCo urses/1997/topic29/index.html. [7 Desember 2004]
Hadwiger M. 2001. Design and Architecture of a Portable and Extensible Multiplayer 3D Game Engine. Thesis. Institute of Computer Graphics Vienna University of Technology.
Kay R. 2002. System Development Life Cycle. Computer World Inc.
http://www.computerworld.com/action /article.do?command=viewArticleBasi c&articleId=71151&pageNumber=1. [21 Maret 2007]
Kruse RL. 1989. Data Structures and Program Design. Prantice Hall, India. LaMothe A. 2003. Tricks of the 3D Game
Programming Gurus. Sams Publishing, United States of America.
[Microsoft] Microsoft. 2001. Microsoft DirectX 8.1 Programmer’s Reference. Microsoft Corporation.
Morris J. 1998. Data Structures and Algorithms.
http://ciips.ee.uwa.edu.au/%7Emorris/ Year2/PLDS210/dijkstra.html. [28 September 2005]
Nugroho WA.2004. Pengembangan Sistem Virtual Room Navigator dengan Visualisasi 3D (Studi Kasus UPT Perpustakaan Pusat IPB). Skripsi. Departemen Ilmu Komputer FMIPA IPB, Bogor.
Sommerville I. 2001. Software Enginering.
Ed. ke-6. Pearson Education Limited. Susanto R. 2000. Tuntunan Praktis
Pemrograman Grafik 3D dengan Direct3D. PT Elex Media Komputindo, Jakarta.
Lampiran 1 Diagram Alir Data (DAD) level 1 Administrator
Lampiran 2 Diagram Alir Data (DAD) level 2 Administrator proses 1.Login
1.2. validasi password 1.1. Input Password pilihan menu password user data user tervalidasi database Administrator 2. Manajemen VRN 1. Login pilihan menu data user tervalidasi hasil manajemen Administrator
15
Lampiran 3 Diagram Alir Data (DAD) level 2 Administrator proses 2. Manajemen VRN
Lampiran 4 Diagram Alir Data (DAD) level 3 Administrator proses 2.1. Edit miniatur
2.1.1. load miniatur data user tervalidasi data miniatur 3D hasil manajemen miniatur 3D File 3DState 2.1.3. edit objek 2.1.2. add objek 2.1.4. delete objek 2.1.5. save miniatur data miniatur 3D File 3DState data miniatur 3D hasil manajemen Administrator 2.2. edit graph Administrator 2.1. edit miniatur data user tervalidasi hasil manajemen 2.3. ganti password
16
Lampiran 5 Diagram Alir Data (DAD) level 3 Administrator proses 2.2. Edit graph
Lampiran 6 Diagram Alir Data (DAD) level 3 Administrator proses 2.3. ganti password
2.3.1. Validasi Password data user tervalidasi password tervalidasi hasil manajemen 2.3.2 Penggantian password Administrator Database Password baru 2.2.1. load graph data user tervalidasi data graph hasil manajemen graph Database 2.2.2. edit node data graph 2.2.3. edit edge 2.1.4. save graph hasil manajemen data graph database Administrator
17
Lampiran 7 Diagram Alir Data (DAD) level 1 Pengguna Biasa
Lampiran 8 Diagram Alir Data (DAD) level 2 Pengguna biasa proses 2. Navigasi
Pengguna biasa data miniatur 3D Tampilan miniatur 3D 2.2. pencarian jalur terpendek 2.1. navigasi manual 2. Navigasi 1. Load miniatur 3D Data miniatur 3D Tampilan miniatur 3D
File 3DState Pengguna biasa
pilihan menu
Pengguna biasa
Lampiran 9 Tabel Basis Data untuk Graph
1. Tabel Node merupakan tabel yang menyimpan informasi node-node dalam graph
Nama kolom Tipe Data
Id Number Nama Text X Number Y Number Z Number
2. Tabel Edge merupakan tabel yang menyimpan informasi edge-edge dalam graph
Nama kolom Tipe Data
Id Number Node1 Number Node2 Number Jarak Number
Lampiran 10 Hasil implementasi unit navigator
Lampiran 11 Diagram UML cGraph myNodes : cNode myEdges : cEdge myPath : cNode S : cNodes Q : cNodes p : cNode Dijkstra InitDjikstra Relaxation setSourceNode getShortestPath cNodes Nodes : cNode addNode ExtractNode cEdge Node1 : cNode Node2 : cNode getJarak cNode Point : cPoint ID : Long Nama : String d : Double cPoint X : Double Y : Double Z : Double setPoint getPoint 0..* 0..* 0..*
20
Lampiran 12 Ilustrasi pencarian jalur terpendek (awal)
user
tujuan
Lampiran 13 Ilustrasi pencarian jalur terpendek (akhir)
user
tujuan
Lampiran 14 Dialog box pencarian jalur terpendek
Lampiran 15 Implementasi Denah
Lampiran 16 Implementasi unit editor
Lampiran 17 Implementasi Form Login untuk editor
Lampiran 18 Implementasi Form Ganti Password
Lampiran 19 Hasil pengujian untuk unit (bagian) navigator
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan Hasil Uji 1 Menguji fungsi untuk menampilkan miniatur 3D Sistem belum dijalankan Jalankan program navigator Muncul miniatur 3D perpustakaan pada form navigator sukses Tekan tombol panah atas
Kamera bergerak maju kedepan sukses Tekan tombol panah bawah Kamera bergerak mundur sukses Tekan tombol panah kiri Kamera berputar ke kiri (berlawanan arah jarum jam) sukses 2 Menguji fungsi navigasi Sistem navigator telah dibuka Tekan tombol panah kanan Kamera berputar ke kanan (searah jarum jam)
sukses
Kamera akan bergerak sendiri menuju lokasi yang dituju dengan melawati jalur yang terpendek sukses Mencari jalur terpendek dengan memilih lokasi-lokasi yang telah tersedia lewat menu Go To
Tampil jalur terpendek pada denah 2D
sukses
Kamera akan bergerak sendiri menuju lokasi yang dituju dengan melawati jalur yang
erpendek t sukses 3 Menguji fungsi pencarian jalur terpendek Sistem navigator telah dibuka Mencari jalur terpendek dengan mengetikan lokasi yang dituju lewat menu Go To Æ Go To ...
Tampil jalur terpendek pada denah 2D
sukses
4 Menguji fungsi menampilkan posisi dan arah
user pada denah Sistem navigator telah dibuka Pengguna melakukan navigasi
Pada denah ditunjukan posisi pengguna dan arahnya sukses 5 Menguji fungsi menampilkan halaman petunjuk penggunaan Sistem navigator telah dibuka Klik menu Help Æ Manual Tampil halaman petunjuk penggunaan sistem navigator - 6 Menguji fungsi untuk login ke mode editor Sistem navigator telah dibuka Klik menu Administrator Æ Login
Tampil form login untuk administrator sukses 7 Menguji fungsi untuk keluar dari sistem Sistem navigator telah dibuka Klik menu Exit
Keluar dari aplikasi dan kembali ke sistem Windows
sukses
Lampiran 20 Hasil pengujian untuk unit (bagian) editor
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan Hasil Uji M o enggeser bjek dengan menggunakan mouse
Objek yang terpilih bergeser lokasinya menuju tempat yang diinginkan sukses Memutar objek dengan menekan tombol RotL atau RotR
Objek yang terpilih berubah arahnya sukses Merubah ukuran objek dengan menekan tombol Dec atau Inc
Objek yang terpilih berubah ukurannya menjadi lebih kecil atau lebih besar
sukses Menambah objek baru dengan cara memilih objek dari objek browser kemudian menyeretnya ke tampilan editor
Tampil objek baru pada tampilan miniatur 3D sukses 1 Menguji fungsi editing miniatur 3D Objek yang akan di-edit telah dipilih Menghapus objek dengan cara menekan tombol Delete
Objek yang terpilih terhapus dari tampilan miniatur 3D sukses Me nod d nambahkan e baru engan posisi tombol node terpilih, kemudin klik pada lokasi yang diinginkan
Tampil node baru pada tampilan miniatur 3D sukses Menggeser posisi node menggunakan mouse
Node yang terpilih bergeser posisinya sukses 2 Menguji fungsi editing graph Node atau edge yang akan di-edit terlah terpilih Memberi nama node dengan cara klik kanan pada node terpilih, kemudian klik menu Name
Tampil nama node disebelah titik yang merepresentasikan node
sukses
Lampiran 20 lanjutan
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan Hasil Uji Menghapus node dengan cara menekan tombol Delete
Node yang terpilih menghilang dari tampilan miniatur 3D sukses Menambahkan edge baru dengan cara menekan tombol Edge, kemudian klik node awal dan node akhir
Tampil edge baru yang menghubungkan node awal dan node akhir yang dipilih
sukses
Menghapus edge dengan cara klik tombol Delete
Edge yang terpilih menghilang dari tampilan miniatur 3D sukses 3 Menguji fungsi untuk menyimpan hasil perubahan yang telah dilakukan Miniatur 3D dan graph telah selesai diperbarui Klik tombol Save Miniatur 3D dan graph tersimpan perubahannya sukses 4 Menguji fungsi untuk mengubah password Sistem editor telah terbuka Klik menu Password
Tampil form untuk mengubah password Sukses 5 Menguji fungsi untuk keluar dari editor dan kembali ke mode navigator Sistem editor telah terbuka Klik menu Logout
Keluar dari aplikasi editor dan kembali ke aplikasi navigator Sukses 6 Menguji fungsi untuk menampilkan halaman petunjuk penggunaan Sistem editor telah terbuka Klik menu Help Æ Manual Tampil halaman petunjuk penggunaan editor -
26
Lampiran 21 Hasil pengujian form login
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan Hasil Uji Pengguna tidak mengisi password, atau mengisi password yang salah, kemudian menekan tombol OK
Muncul pesan bahwa password salah dan harus mengulanginya lagi sukses Pengguna menekan tombol Cancel
Form login tertutup lagi, tanpa masuk ke form Editor
sukses
1 Validasi login Form login
telah terbuka Pengguna mengisi password yang benar kemudin menekan tombol OK
Form login tertutup, dan masuk ke form Editor
sukses
Lampiran 22 Hasil pengujian form ganti password
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan Hasil Uji Pengguna tidak mengisi password lama dengan benar
Muncul pesan bahwa password lama salah
sukses Pengguna tidak mengisikan password baru
Tombol OK tidak aktif sukses
Password baru tidak sama dengan konfirmasi password baru
Tombol OK tidak aktif sukses
Pengguna menekan tombol Cancel
Form ganti password tertutup, tanpa merubah password sukses 1 Menguji fungsi ganti password Form ganti password telah terbuka Pengguna mengisi password lama dengan benar, password baru sama dengan konfirmasi password baru, kemudin menekan tombol OK Muncul konfirmasi penggantian password Sukses