3 BAB III PERANCANGAN SISTEM DAN APLIKASI

advertisement
3 BAB III
PERANCANGAN SISTEM DAN APLIKASI
Dalam Tugas Akhir ini dikembangkan aplikasi bergerak berbasis context
aware dan LBS yang dinamakan dengan ItbInHand. ItbInHand bertujuan untuk
memberikan layanan berbasis lokasi kepada pengunjung di wilayah kampus ITB
yang menggunakan pernagkat bergerak. Aplikasi ini bersifat peka terhadap
perubahan lokasi yang dilakukan oleh pengunjung sehingga mereka dapat
mengetahui posisi aktualnya pada peta ITB melalui layar ponsel. Pengunjung juga
dapat mengetahui lokasi-lokasi penting yang ada disekitarnya melalui simbolsimbol landmark yang aktif. Pada landmark-landmark ini, pengunjung akan
menerima peringatan berupa nama lokasi dan dapat meminta informasi detail
tentang lokasi tersebut.
3.1
Gambaran Umum Sistem
Aplikasi ItbInHand merupakan aplikasi yang dirancang khusus untuk
perangkat bergerak terutama yang mendukung teknologi Java, dimana aplikasi ini
mampu menyediakan fasilitas berbagai jenis informasi yang dapat diakses oleh
perangkat telepon bergerak. Pada aplikasi ini client dapat melakukan pengaksesan
informasi yang diinginkan cukup dengan menekan tombol perintah yang terdapat
pada perangkat telepon bergerak.
Seluruh informasi yang diakses oleh client tersebut tidak lain berasal dari
basis data server, sehinggga client dapat meminta informasi kepada server dengan
menggunakan port yang telah ditentukan, kemudian server akan memroses,
setelah itu client dapat menerima informasi yang dibalas oleh server. Dengan
begitu client dapat melakukan semua aksi yang tersedia pada fasilitas aplikasi
tersebut selama perangkat telepon bergerak mendapatkan sinyal WLAN di
lingkungan kampus ITB.
18
3.1.1
Perancangan Sistem
ItbInHand adalah sistem aplikasi berbasiskan lokasi yang penulis serta tim
kembangkan, telah secara eksplisit menggambarkan adanya kemampuan navigasi
dan penunjukkan, dengan memberikan informasi mengenai lokasi pengguna
berada saat itu beserta fungsionalitas lain yang dapat diberikan. Pemilihan nama
ItbInHand setidaknya menggambarkan fungsi-fungsi yang dapat dipenuhi oleh
sistem LBS.
Aplikasi ItbInHand terbagi menjadi dua bagian utama, yaitu sisi client dan
sisi server, dengan media antara kedua bagian ini adalah sambungan internet
nirkabel. Pertimbangan menggunakan model client – server antara lain pada sisi
client tidak diperlukan media penyimpanan yang besar, dan semua client hanya
perlu mengirim pesan permintaan layanan ke server. Hampir seluruh file disimpan
dalam basis data server, sehingga sisi client tidak akan terlalu terbebani masalah
media penyimpanan dan pemrosesan data, terlebih bila digunakan jumlah data
yang sangat besar. Keuntungan yang lain adalah masalah pembaharuan basis data.
Untuk data yang berada pada sisi server, maka permasalahan seperti penggantian
konten basis data, ataupun pembaharuan informasi suatu lokasi hanya dilakukan
di sisi server saja. Penyedia layanan atau administrator tidak perlu mengubah
semua data di basis data client seperti halnya bila menggunakan model
standalone. Skalabilitas merupakan keuntungan tambahan lainnya, kita dapat
menambahkan sebanyak mungkin client, tentu saja diimbangi dengan kemampuan
sistem, tanpa harus menambahkan basis data ke setiap sisi client.
Bagaimanapun juga desain model sistem seperti ini masih memiliki
kekurangan, sebagai contoh adalah masalah transmisi data yang dibutuhkan dari
sisi server untuk mencapai sisi client. Tentu saja client akan merasa terganggu
apabila layanan yang diminta membutuhkan waktu yang lama hingga dilayani
oleh server. Selain itu masalah akan muncul ketika terjadi kongesti jaringan,
jaringan down, ataupun jika server mati. Maka jika itu terjadi, semua layanan
akan menjadi sia-sia. Masalah penggunaan bandwidth jaringan juga perlu
diperhatikan, terutama ketika jumlah client yang mengakses layanan sangatlah
19
banyak. Akan tetapi untuk tahap awal pembuatan sistem, masalah ini dapat
dikesampingkan karena jumlah client dibatasi.
3.1.2
Cara kerja sistem
Berikut akan dijabarkan sebuah gambaran umum mengenai cara kerja
aplikasi ini di lapangan
Gambar 3.1 Desain arsitektur sistem ItbInHand
Pada sistem ini akan terdapat aplikasi client dan server. Aplikasi client
dibangun dengan menggunakan teknologi J2ME. Istilah dari aplikasi client ini
biasa disebut dengan MIDlet. MIDlet sendiri hanya terbatas pada penanganan
user interface dan melakukan koneksi ke server, yang dalam hal ini melakukan
permintaan terhadap pelayanan HTTP yang terdapat di server. Sedangkan aplikasi
pada sisi server dibangun tiga komponen utama, yaitu application server, basis
data server, dan Web Server. Untuk application server dan Web Server akan
dibangun dengan PHP dan untuk dapat melakukan koneksi jaringan dari client ke
server digunakan Apache. Pada application server ini berfungsi untuk melayani
beberapa permintaan informasi dari pihak client, sedangkan untuk Web Server
berfungsi untuk melayani perubahan data dari pihak admin atau browsing data
dari pihak browser. Selain itu, juga terdapat basis data server yang akan
20
menyimpan data-data informasi yang digunakan untuk diakses oleh pihak client
maupun aplikasi web. Basis data yang digunakan pada sisi server ini adalah
MySQL. Pada aplikasi disisi client ini terdapat suatu menu layanan yang
berbentuk list menu, dimana menu layanan ini berfungsi bagi client untuk dapat
mengetahui informasi-informasi apa saja yang ditampilkan. Kemudian client
dapat mengakses salah satu menu layanan tersebut dan dari perangkat telepon
bergerak akan mengirimkan permintaan tersebut kepada server. Setelah itu, server
akan membalas permintaan dari client lalu dikirimkan kembali ke perangkat
telepon bergerak. Apabila pada sisi server melakukan perubahan suatu menu
layanan, maka sisi client pun dapat segera mengetahui perubahan menu layanan
tersebut dan client bias mengakses kembali menu layanan yang berubah tersebut
tanpa perlu membangun aplikasi lagi. Client dapat melakukan semua aksi yang
tersedia pada fasilitas aplikasi tersebut selama perangkat telepon bergerak
mendapatkan sinyal WLAN di lingkungan ITB.
3.2
Spesifikasi Sistem
Setelah menganalisis gambaran umum sistem yang diajabarkan pada
bagian sebelumnya, spesifikasi fungsional dan spesifikasi teknis dari sistem dapat
didata menjadi poin-poin berikut:
3.2.1
Spesifikasi fungsional
Spesifikasi fungsional merupakan pra-syarat layanan-layanan yang akan
disediakan oleh sistem ItbInHand. Spesifikasi tersebut antara lain :
1. Client mampu melakukan pengambilan secara berkala data posisi
koordinat dari GPS receiver yang terhubung dengan satelit GPS.
Koneksi antara GPS receiver dengan telepon seluler adalah dengan
menggunakan bluetooth. Untuk hal ini telepon seluler pengguna
harus memiliki JSR 82 Bluetooth API.
2. Client mampu melakukan pemrosesan pemilahan format data GPS
menjadi format yang diperlukan dalam parameter sistem. Hal ini
21
3. Client mampu melakukan koneksi dengan jaringan internet nirkabel
(WLAN). Java API yang mendukung hal ini adalah JSR 172 Web
Services API.
4. Server mampu mengenali dan merespon format data yang diterima
dari client.
5. Server mampu menyediakan fasilitas informasi yang diminta oleh
pengguna.
3.2.2
Spesifikasi teknis
Setelah penentuan spesifikasi fungsional, maka spesifikasi teknisnya dapat
ditentukan. Adapun spesifikasi teknis sistem ItbInHand adalah sebagai berikut:
1. Menggunakan media bluetooth-serial port antara receiver GPS
dengan devais pengguna.
2. Menggunakan koneksi HTTP melalui media WLAN antara client
dan server.
3. Mengekstrak data dari receiver GPS agar sesuai dengan format
layanan.
4. Menggunakan MySQL pada basis data dengan pendefinisian area
Point of Interest (POI) untuk memberikan iformasi area.
3.3
Perancangan Struktur Layanan Perangkat Lunak
Pada bagian perancangan aplikasi ini akan dijelaskan perancangan layanan
berbasis lokasi pada sistem ItbInHand dan dilanjutkan dengan pemodelan aplikasi
dengan diagram use case, deployment, sequence, dan kelas.
3.3.1
Perancangan basis data
Pada perancangan sistem ini, diperlukan sebuah sistem basis data yang
nantinya akan diintegrasikan dengan aplikasi server yang ada. Sistem basis data
tersebut nantinya akan dimanfaatkan untuk menyimpan data-data landmark dari
22
POI berupa titk lintang (longitude), titik bujur (latitude), beserta informasi
landmark tersebut. Informasi yang berkaitan dengan layanan diatas disimpan
dalam basis data MySQL dengan struktur data sebagai berikut
Gambar 3.2 Struktur dan format data yang disimpan dalam basis data
Tabel 3.1 Struktur data tabel pada basisi data di MySQL
Nama Kolom
Tipe Data
Keterangan
Longitude
varchar (255)
Titik lintang
Latitude
varchar (255)
Titik bujur
Nama
varchar (255)
Nama landmark
Keterangan
text
Informasi landmark
Selain memberikan informasi mengenai landmark, server juga memberi
layanan penentuan jarak terpendek (shortest path) dari suatu gedung ke gedung
lain. Data yg dikirimkan berupa gambar (image) dengan format .png. Data
tersebut kemudian disimpan pada C:\Program Files\xampp\htdocs\peta
23
Gambar 3.3 Contoh tampilan peta shortest path
3.3.2
Memunculkan peta wilayah
Peta wilayah direpresentasikan pada pengunjung dengan instance canvas
peta ITB yang merepresentasikan peta dengan posisi pengunjung pada peta dan
landmark-landmark yang ada di sekitarnya. Image peta ITB tersimpan dalam
package dengan format .png. Peta kampus ini mencakup seluruh wilayah kampus
ITB dengan batas-batas:
1. Batas Utara
Gerbang utara kampus ITB.
2. Batas selatan
Mencakup jalan Ganeca.
3. Batas Barat
Mencakup perbatasan kampus ITB dengan Jalan Tamansari.
4. Batas Timur
Mencakup bagian belakang Gedung Kuliah Umum (GKU) Timur.
Gambar peta ITB di-raster pada saat pembuatan instance ITBMap
berdasarkan parameter koordinat kiri-atas dan koordinat kanan-bawah peta. Setiap
parameter koordinat ini diekspresikan dalam nilai latitude, longitude dan altitude.
24
Gambar 3.4 Cakupan wilayah aplikasi ItbInHand
Sebelum aplikasi ini melakukan transisi ke screen peta, terlebih dahulu
akan dilakukan inisialisasi terhadap peta. Dalam proses inisialisasi ini, aplikasi
terlebih dahulu melakukan inisialisasi terhadap provider, landmark dan me-load
image yang dibutuhkan untuk menampilkan canvas peta ITB pada layar.
Insialisasi terhadap provider menjelaskan bagaimana hubungan aplikasi ini
dengan location provider-nya, dalam hal ini GPS receiver.
Location provider merepresentasikan sumber informasi lokasi. Pemilihan
location provider dilakukan dengan mendefinisikan parameter kriteria. Disinilah
dibutuhkan implementasi location API, dimana API ini akan memilih provider
berdasarkan kriteria yang paling mendekati definisi.
3.3.3
Diagram Use Case
Diagram use case meggambarkan sejumlah aktor eksternal dan
hubungannya dengan use case yang disediakan oleh sistem. Use case
mendeskripsikan fungsi-fungsi yang disediakan oleh sistem. Sedangkan aktor
merupakan seseorang atau sesuatu pelaku yang berinteraksi dengan sistem, yaitu
bagaimana dan siapa yang menggunakan sistem. Dalam berinteraksi, aktor akan
mengirim atau menerima pesan ke atau dari sistem.
25
Use case digambarkan hanya yang dilihat dari luar oleh aktor (keadaan
lingkungan sistem yang dilihat client) dan bukan bagaimana fungsi yang ada di
dalam sistem. Dalam aplikasi ItbInHand ini aktor dibagi menjadi dua kategori,
human actor dan system actors. Human actors didefinisikan sebagai client/visitor
yang sudah memilki device pendukung dan menggunakan aplikasi ItbInHand dan
berada pada lingkungan jaringan nirkabel (WLAN) ITB. Perangkat yang termasuk
pada
system
actors
adalah
GPS
receiver,
smartphone,
dan
aplikasi
ItbInHand.Berikut adalah diagramnya
MyPosition
FindPlace
Server
Visitor
ShortestPath
Gambar 3.5 Diagram use case
.
3.3.3.1 Identifikasi Use Case
Tabel 3.2 Deskripsi Use Case : layanan My Position
Use Case
Proses My Position
Aktor
Client
Deskripsi
Merupakan
proses
untuk
menu layanan My Position
26
menampilkan
Tabel 3.3 Typical course of events: layanan My Position
Aksi Aktor
Respon Sistem
1. Mengaktifkan aplikasi
2. Menampilkan splash screen sejenak,
ItbInHand
kemudian menampilkan Main Menu
3. Mengaktifkan layanan My
4. Menampilkan peta beserta landmark
Position
5. Mengaktifkan bluetooth.
6. Berjalan mendekati Landmark
7. Peta menunjukkan adanya alert bahwa
client berada di sekitar wilayah landmark.
8. Meminta layanan Landmark
9. Menampilkan koordinat landmark
Details
kemudian menyocokannya dengan basis
data
10. Memberikan informasi landmark yang
terdapat pada basis data
Tabel 3.4 Deskripsi Use Case : layanan Find Place
Use Case
Proses Find Place
Aktor
Client
Deskripsi
Merupakan proses untuk menampilkan menu layanan Find
Place
Tabel 3.5 Typical course of events: layanan Find Place
Aksi Aktor
1.
Mengaktifkan
ItbInHand
Respon Sistem
aplikasi 2. Menampilkan splash screen sejenak,
kemudian menampilkan Main Menu
3. Mengaktifkan layanan Find 4. Menampilkan pilihan posisi apa yang
Place
ingin diketahui client: ATM, bank, atau
toilet
5. Mengaktifkan salah satu posisi 6. Menampilkan posisi pada peta
yang diinginkan
27
Tabel 3.6 Deskripsi Use Case : layanan Shortest Path
Use Case
Proses Shortest Path
Aktor
Client
Deskripsi
Merupakan proses untuk menampilkan menu layanan Shortest
Path
Tabel 3.7 Typical course of events: layanan Shortest Path
Aksi Aktor
1.
Respon Sistem
Mengaktifkan
aplikasi 2. Menampilkan splash screen sejenak,
ItbInHand
kemudian menampilkan Main Menu
3. Mengaktifkan layanan Shortest
Path
4. Memilih daerah asal
5. Memilih daerah tujuan
6. Menanyakan apakah ingin melakukan
koneksi dengan server.
7. Jika iya, akan men-download image jarak
terpendek dari server. Jika tidak, akan
kembali ke menu awal
3.3.4
Diagram deployment
Pada UML, deployment diagram menyajikan tampilan perangkat keras
yang digunakan dalam pengimplementasian sistem, komponen dalam perangkat
keras, dan hubungan antara keduanya. Komponen diagram UML lainnya masih
memfokuskan
pada
pengimplementasian
fisik
dari
komponen
aplikasi.
Deployment diagram memberikan perspektif yang bereda dari aplikasi.
Deployment diagram menangkap konfigurasi dari elemen runtime pada aplikasi.
28
Tabel 3.8 Elemen diagram deployment
Elemen beser deskripsinya
Simbol
Node: Elemen yang mehasilkan lingkungan eksekusi
bagi komponen dalam sistem. Direpresentasikan dengan
ProductionServer
sebuah kubus dengan nama objek di dalamnya,diawali
dengan tanda titik dua (:) kemudian digarisbawahi.
Apabila diuraikan dalam bentuk deployment diagram, sistem ItbInHand
ini dapat dibagi menjadi dua bagian, yaitu pada sisi server dan sisi client. Pada sisi
server, aplikasi yang berjalan adalah web service, sedangkan pada sisi client
adalah aplikasi ItbInHand itu sendiri. Berikut adalah diagramnya.
:Server
:MobileDevice
Web Service
Tanoto
Gambar 3.6 Deployment diagram
3.3.5
Diagram sequence
Suatu diagram sequence menggambarkan, dalam bentuk garis parallel
vertikal, proses atau objek yang berbeda-beda yang muncul secara simultan, dan,
dalam bentuk anak panah horizontal, terjadi pertukaran pesan antara kedua belah
pihak, dengan urutan sesuai dengan tingkat kemunculan. Dalam beberapa kasus,
diagram sequence dapat memberikan spsesifikasi dari perilaku sistem. Dalam
kasus lain, diagram sequence tidak dapat memberikan perilaku sistem secara
lengkap, tetapi mampu memberikan use case dari sistem.
Berdasarkan use case yang telah dideskripsikan sebelumnya, maka
diagram sequence dari sistem ItbInHand ini adalah sebagai berikut.
29
Gambar 3.7 Diagram sequence menu My Position
Gambar 3.8 Diagram sequence Toilet dalam menu Find Place
30
Gambar 3.9 Diagram sequence Bank dalam menu Find Place
:MainMenu
:ItbInHand
:FindPlace
Visitor
commandAction()
Selection(pil: int)
FindPlace()
getDisplay()
commandAction()
goToATM()
getDisplay()
Gambar 3.10 Diagram sequence ATM dalam menu Find Place
31
Gambar 3.11 Diagram sequence menu Shortest Path
3.3.6
Diagram kelas
Pada UML, diagram kelas adalah suatu tipe struktur diagram statis yang
menjabarkan mengenai struktur dari sistem dengan menampilan class dari sistem,
atribut, dan hubungan antar class. Berikut adalah diagram kelas dari sistem
ItbInHand
32
Gambar 3.12 Diagram kelas aplikasi ItbInHand
3.3.7
Diagram flow chart
Start
Splash
screen
Main Menu
My Position
Find Place
Shortest Path
Load Peta &
Landmark
Choose
Area
Choose
Area
Get
Details
Load Image
Connect
WLAN?
Yes
Show
Details
Show
Image
Download
Image
Show
Image
End
Gambar 3.13 Diagram flow chart
33
No
Download