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