5
tahapan ini dilakukan pula analisis terhadap kebutuhan client dan server. 3 Praproses Data 3.1 Ekstraksi Data Setelah dilakukan analisis kebutuhan, dilakukan survei terhadap ketersediaan data. Hal ini dilakukan untuk mengevaluasi setiap sumber data yang potensial dalam pengembangan sistem dan dilanjutkan dengan pengambilan data yang relevan (ekstraksi). Setelah data diperoleh, dilakukan pembersihan data untuk memeriksa kesalahan yang ada pada data spasial maupun data tekstual (atribut) kemudian dilakukan pengeditan dan pembuatan topologi sesuai fitur sumber datanya. Topologi pada peta digital adalah hubungan spasial antara masing-masing fitur (titik, garis, atau poligon) pada peta. Tahap ini menghasilkan layer peta yang dibutuhkan. 3.2 Transformasi Data Pada tahap ekstraksi data, telah dilakukan pembersihan data dan pembuatan topologi sesuai dengan fitur datanya. Sampai tahap ini, hasil coverage masih berada dalam sistem koordinat layar. Agar peta tersebut dapat digabungkan dengan peta lainnya untuk lokasi yang sama, maka peta tersebut harus ditransformasikan ke dalam sistem koordinat bumi. Proses ini biasa disebut koreksi geometrik (registrasi peta). 3.3 Pemuatan Data Setelah tahap ekstraksi dan transformasi data dilakukan, maka data telah siap untuk dimuat (load) ke dalam database. Pada tahap ini, dilakukan pula pengurutan dan peninjauan integritas suatu data. Tahap pemuatan data bertujuan memuat data yang terseleksi ke dalam database dan membuat indeks yang diperlukan. 4 Perancangan Prototipe 4.1 Perancangan Database Pada tahap ini, dilakukan perancangan konseptual database, perancangan logis database, dan perancangan fisik database. Perancangan konseptual mengidentifikasi data yang dibutuhkan dan desain proses dari sistem. Perancangan logis merupakan perancangan database dengan membuat diagram keterhubungan antartabel. Perancangan fisik dilakukan dengan
memilih spesifik.
struktur
penyimpanan
yang
4.2 Perancangan Sistem Perancangan sistem terdiri atas 3 tahap, yaitu perancangan arsitektur, perancangan proses, dan perancangan antarmuka. 5 Pembentukan Prototipe Pembentukan prototipe merupakan tahap untuk merealisasikan apa yang telah dirancang. Tahap ini meliputi implementasi database, implementasi arsitektur dan proses, dan implementasi antarmuka sistem. 6 Evaluasi Prototipe Evaluasi yang dilakukan pada prototipe ini mencakup uji fungsionalitas yang bertujuan memastikan bahwa semua fungsi dalam aplikasi ini dapat berjalan dengan baik. HASIL DAN PEMBAHASAN 1 Studi Pustaka Mobile Application adalah sebutan untuk aplikasi yang berjalan di mobile device (Purnama 2010). Ada sejumlah fitur yang saat ini sudah dianggap sebagai fitur standar yang harus ada pada sebuah ponsel, yaitu GPRS dan Java. Sistem Java yang bisa digunakan untuk membuat mobile application adalah Java 2 Micro Edition (J2ME), yang merupakan object-oriented programming. Keputusan untuk menggunakan platform J2ME diambil karena menurut informasi dari JavaWorld, J2ME memiliki keunggulan bahwa J2ME didesain untuk mendukung mobilitas pengguna dibandingkan dengan platform lain dalam dunia peralatan mobile. Penelitian ini merujuk kepada aplikasi wireless, yaitu aplikasi mobile yang digunakan untuk data yang diproses dan ditransaksikan melalui sistem client-server. Pada kondisi ini, ponsel akan bertindak sebagai client dan sebuah komputer akan bertindak sebagai server. GeoServer dipilih sebagai web map server. Tidak seperti tools lain, GeoServer dikemas dengan antarmuka administratif berbasis web yang mudah dioperasikan. Berdasarkan WMS Performance Shootout oleh Aime dan McKenna (2009), GeoServer lebih cepat antara 25% hingga 50% dalam membaca shapefile sedangkan MapServer dengan FastCGI sedikit lebih cepat. GeoServer dan
6
MapServer pun memiliki kinerja yang sama persis ketika menggunakan database PostGIS dan Oracle. 2 Analisis Kebutuhan 2.1 Analisis Kebutuhan Sistem Analisis kebutuhan yang dilakukan terdiri atas analisis kebutuhan fungsional perangkat lunak, analisis spesifikasi pengguna, analisis kebutuhan clientserver, dan analisis lingkungan pengembangan sistem. Pada tahap analisis kebutuhan fungsional perangkat lunak, diperoleh fungsi-fungsi umum sistem, yaitu: Menampilkan daftar layer peta Institut Pertanian Bogor tiap level dan layer dapat dipilih lebih dari satu. Menampilkan peta yang telah dipilih dari daftar layer peta. Menampilkan skala dan koordinat peta. Menampilkan screen menu untuk operasi pada peta, yaitu: zoom in, zoom out, getfeatureinfo, mylocation, refresh, dan reset view. Pengguna sistem ini adalah mahasiswa dan masyarakat umum sehingga hak akses terhadap data sistem bersifat publik. Sistem ini dibuat mengikuti arsitektur client-server. Client berupa telepon selular dengan sistem operasi Symbian yang termasuk series 60 3rd edition feature pack 2 dan memiliki fitur Wi-Fi. Server berupa web server dan database server. Jaringan berupa access point Wi-Fi yang banyak tersedia di kampus IPB. Berdasarkan analisis kebutuhan, spesifikasi perangkat lunak yang digunakan dalam pengembangan sistem adalah: Pengembangan client - Bahasa Pemrograman: Java. - Framework: J2ME. - Editor/Compilator: NetBeans IDE 7.0.1. - Emulator/SDK: S60 3rd Edition Feature Pack 2. Pengembangan web server - Arcview 3.3 sebagai perangkat lunak untuk mengolah data spasial. - Apache Tomcat 7.0.22 sebagai web server. - PostgreSQL 8.4 dengan ekstensi PostGIS 1.5.3 sebagai perangkat lunak ORDBMS.
-
GeoServer 2.0.3 sebagai web map server yang mengakomodasi data dalam bentuk peta. Server: ApacheFriends XAMPP version 1.7.1. Bahasa pemrograman: PHP. Editor: Notepad++.
Pengembangan database server - PostgreSQL 8.4 dengan ekstensi PostGIS 1.5.3 sebagai perangkat lunak Object-Relational Database Management System (ORDBMS). Spesifikasi perangkat keras yang dibutuhkan dalam pengembangan sistem ini adalah: Processor: Intel CoreTM i3 2.1 GHz. Sistem Operasi: Windows 7 professional 64-bit. Memori: 2048 MB RAM. Harddisk: 320 GB. 2.2 Analisis Batasan Sistem Batasan yang dimiliki oleh sistem ini antara lain: Emulator yang digunakan dalam penelitian ini merupakan bagian dari Symbian Series 60 3rd Edition Feature Pack 2 yang dimiliki oleh vendor Nokia dan mengindikasikan adanya access point Wi-Fi. Access point urutan pertama yang terdeteksi diasumsikan sebagai lokasi yang akan dikirim ke server. 2.3 Analisis Data Data yang digunakan pada penelitian ini adalah: Denah kampus IPB Darmaga dalam bentuk file AutoCAD (.dwg) yang diperoleh dari Direktorat Fasilitas dan Properti. Data hasil penelitian Khairani (2011) dalam bentuk shapefile (.shp) yang terdiri atas data ruangan gedung FAPERTA level 3, 4, 5, dan 6 yang di dalamnya juga terdapat ruangan FMIPA, FEMA, serta sebagian ruangan FEM, ruangan FMIPA yang terdapat di gedung FPIK dan FAPET, gedung FEM Rektorat, gedung fasilitas umum seperti gedung Perpustakaan, GWW, dan Rektorat. Data access point hanya mencakup access point yang berada di Departemen Ilmu Komputer, Departemen Fisika, Departemen
7
Matematika, FMIPA.
dan
ruang
Dekanat
3 Praproses Data 3.1 Ekstraksi Data Data denah kampus IPB Darmaga yang diperoleh dalam format AutoCAD (.dwg) diatur skala dan koordinatnya sehingga fitur spasial pada data tersebut memiliki ukuran dan koordinat yang sama dengan data hasil penelitian Khairani. Hal ini juga bertujuan menentukan letak posisi suatu bangunan dalam peta kampus IPB Darmaga agar mendekati posisi sesungguhnya dengan skala tertentu. Data tersebut kemudian disimpan dalam format drawing interchange/exchange format (.dxf), yaitu format data file CAD yang dikembangkan oleh Autodesk untuk memungkinkan interoperabilitas data antara AutoCAD dan program lain. Data dalam format .dxf kemudian dikonversi ke dalam bentuk shapefile dengan membuat topologi yang sesuai dengan fitur spasial (titik, garis, atau poligon) menggunakan ArcView 3.3. Penelitian ini tetap menggunakan format ESRI shapefile karena merupakan format data spasial yang didistribusikan paling umum (Obe & Hsu 2011). Cara kerjanya ialah dengan mengidentifikasi dan mengubah objek atau fitur spasial menjadi kumpulan koordinat x dan y. Proses ini menghasilkan 6 layer peta vektor (shapefile) yang berasal dari penelitian Khairani (2011) yang merepresentasikan 6 level peta ruangan gedung fakultas IPB dan 5 layer shapefile tambahan yang merepresentasikan jalan serta bangunan atau gedung IPB lainnya yang berada di sekitar gedung fakultas. Pembersihan data juga dilakukan pada tahap ini untuk mengoreksi kesalahan, menangani masalah data kosong (null), dan data yang tidak konsisten. 3.2 Transformasi Data Setelah melakukan ekstraksi data dan memperbaiki kesalahan-kesalahannya, hasil coverage tersebut masih berada dalam sistem koordinat layar. Agar peta dapat digunakan (ditumpangsusunkan) bersama dengan data spasial lain yang sudah ada, diperlukan proses georeferencing ke dalam sebuah sistem koordinat yang disebut koreksi geometrik (GIS Consortium Aceh Nias 2007). Geometrik citra adalah korelasi antara
koordinat suatu objek pada citra dengan koordinat pada permukaan bumi. Koreksi ini (rektifikasi) merupakan proses transformasi data, dari data yang belum mempunyai koordinat geografis menjadi data yang akan mempunyai koordinat geografis (georeferensi). Transformasi dilakukan menggunakan extensions Register and Transform tool ArcView 3.3. Setelah extensions ini diaktifkan pada menu File dan dipilih pada menu View, langkah selanjutnya ialah menentukan beberapa titik kontrol pada peta, yang mengacu pada titik kontrol lapangan (diperoleh dari pengukuran langsung dengan GPS atau interpolasi dari peta dasar yang sudah ada). Parameter tingkat akurasi dari proses rektifikasi ini adalah nilai yang dipresentasikan oleh selisih antara koordinat titik kontrol hasil transformasi dengan koordinat titik kontrol, yang dikenal dengan Root Mean Square (RMS) Error. Nilai RMS Error yang rendah akan menghasilkan hasil rektifikasi yang akurat. 3.3 Pemuatan Data Tahap selanjutnya yakni memuat data shapefile ke dalam database PostgreSQL. Proses konversi shapefile menjadi format .sql ini dilakukan menggunakan GUI PostGIS 1.5.3 yang disebut shp2pgsql-gui, yaitu plug-in yang terdapat dalam pgAdmin III. Tahapan yang dilakukan pertama kali ialah membuat database dengan nama ipb dan menggunakan template_postgis. Ketika program PostGIS Shapefile and DBF Loader (shp2pgsqlgui) digunakan (Gambar 4), database credentials langsung dibaca dari pgAdmin III untuk database yang dipilih. Langkah selanjutnya ialah memilih data shapefile yang ingin dikonversi, melakukan koneksi dengan PostGIS dan mengisi kolom Username dan Password yang sebelumnya disimpan saat proses instalasi. Setelah itu, dipilih database yang akan menjadi tempat penyimpanan pemuatan data shapefile, yaitu ipb pada kolom Database. Pada tab configuration, kolom Destination Schema, SRID, dan Geometry Column masing-masing bernilai default: public, -1, dan the_geom. Kolom Destination Table merupakan tabel yang akan berisi data yang dikonversi pada database yang dipilih. Kolom Spatial Reference System Identifier (SRID) merupakan integer yang berhubungan
8
dengan primary spatial_ref_sys.
key
dari
metatabel
Gambar 4 Shp2pgsql-gui. PostGIS menggunakan tabel ini untuk mendaftarkan sistem referensi spasial yang ada ke dalam database. Sistem referensi spasial yang paling umum digunakan ialah WGS 84 lon lat (EPSG:4326) karena mencakup seluruh dunia, dan merupakan sistem referensi spasial paling umum, dan karena data GPS disimpan dalam SRS ini. Oleh karena itu, kolom SRID diisi dengan nilai 4326, yaitu ID SRS dari European Petroleum Survey Group (EPSG). Sebagian besar sistem referensi spasial yang didefinisikan dalam PostGIS berasal dari EPSG, sehingga SRID yang digunakan dalam tabel biasanya sama dengan identifier EPSG. Saat impor data shapefile dilakukan, data yang telah terkonversi termuat secara otomatis ke dalam database pada PostgreSQL, serta tersusun berdasarkan kolom Destination Table yang diatur pada plug-in tersebut. 4 Perancangan Prototipe 4.1 Perancangan Database Berdasarkan data yang telah dikonversi, diperoleh 13 tabel pada PostgreSQL yang dapat dilihat pada Tabel 1. Setelah data dimuat dalam database, dilakukan perancangan konseptual berdasarkan analisis data dan kebutuhan sistem sehingga pemodelan database direduksi menjadi 12 tabel sebagai berikut: accesspoint Tabel yang menyimpan informasi access point Wi-Fi berupa id, essid, id
lokasi, latitude, longitude, area, bbox1, bbox2, bbox3, dan bbox4. geometry_columns jalan level1, level2, level3, level4, level5, dan level6 sekitarkampus Tabel agregasi sekitar1, sekitar2, sekitar3, dan sekitar4 menjadi satu tabel sekitarkampus. semualevel Tabel agregasi level1, level2, level3, level4, level5, dan level6 menjadi satu tabel semualevel. spatial_ref_sys
Tabel 1 Database hasil konversi shapefile menggunakan PostGIS Nama Deskripsi Tabel geometry_ Tabel yang menyediakan columns metadata untuk setiap kolom pada tabel yang didefinisikan sebagai objek spasial. jalan
Tabel yang menyimpan informasi nama jalan di lingkungan kampus IPB Darmaga.
level1, level2, level3, level4, level5, level6
Tabel yang menyimpan informasi ruangan kampus IPB Darmaga berupa kode ruang, nama ruang, level, fakultas, departemen, wing, dan id ruang.
sekitar1, sekitar2, sekitar3, sekitar4
Tabel yang menyimpan informasi bangunan sekitar ruangan kampus IPB Darmaga berupa nama bangunan.
spatial_ref _sys
Tabel yang berisi informasi tentang sistem referensi spasial.
Tahap selanjutnya ialah melakukan perancangan logis database yang menunjukkan diagram keterhubungan antartabel, dan ditampilkan pada Gambar 5. Setelah itu, dilakukan perancangan database secara fisik, yaitu proses pemilihan struktur penyimpanan yang spesifik dengan menentukan tipe data dari tiap atribut sehingga dapat diakses dengan mudah oleh sistem. Perancangan fisik database dapat dilihat pada Lampiran 1.
9
sekitarkampus PK
geometry_columns PK PK PK PK
semualevel
gid PK
f_table_catalog f_table_schema f_table_name f_geometry_column
nama_bangu the_geom
coord_dimension srid type
srid auth_name auth_srid srtext proj4text
jalan PK
gid
level6 PK
nama_jalan the_geom
gid
level5 PK
kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
gid kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
gid
level4 PK
kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
level3 PK
id essid id_lokasi latitude longitude area bbox1 bbox2 bbox3 bbox4
spatial_ref_sys PK
kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
accesspoint PK
gid kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
gid kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
level2 PK
gid
level1 PK
gid kd_ruang nama_ruang level fakultas departemen wing id_ruang the_geom
Gambar 5 Perancangan logis database. Tabel geometry_columns terdiri atas 7 kolom, yaitu f_table_catalog untuk menyimpan nama database (katalog), f_table_schema untuk menyimpan skema tabel, f_table_name untuk menyimpan nama tabel, f_geometry_column untuk menyimpan nama kolom geometri. Kolom coord_dimension adalah dimensi koordinat dari kolom geometri. Kolom SRID merupakan foreign key metatabel spatial_ref_sys. Kolom type menyimpan jenis geometri (titik, garis, poligon, multipoligon, dan lain-lain) sebagai character varying. PostGIS menggunakan tabel geometry_columns untuk menyimpan metadata yang terkait dengan kolom geometri pada database. Tabel ini secara otomatis dibuat saat instalasi PostGIS dan digunakan oleh alat-alat third-party untuk mengumpulkan daftar layer geometri pada database. Tabel spatial_ref_sys terdiri atas 5 kolom. Kolom SRID bernilai integer unik yang mengidentifikasi sistem referensi spasial dalam database. Kolom auth_name berisi nama dari badan standar atau standar yang sedang dikutip untuk sistem referensi, dalam hal ini “EPSG”. Kolom
auth_srid merupakan id dari sistem referensi spasial yang didefinisikan dalam auth_name. Kolom srtext merepresentasikan well-known text dari sistem referensi spasial. Kolom proj4text berisi string definisi koordinat proj4 (library yang digunakan PostGIS untuk menyediakan kemampuan transformasi koordinat) untuk SRID tertentu. PostGIS menggunakan tabel ini untuk mengatalogkan semua sistem referensi spasial yang tersedia ke dalam database. Metatabel spatial_ref_sys berisi nama sistem referensi spasial, parameterparameter yang diperlukan untuk memproyeksikan ke sistem lain, dan sumber definisi sistem. 4.2 Perancangan Sistem Perancangan pengembangan sistem dilakukan dengan pemodelan Unified Modeling Language (UML), yaitu sebuah bahasa yang telah menjadi standar dalam industri untuk memvisualisasi, merancang, dan mendokumentasikan sistem perangkat lunak. Tujuannya ialah menjadi bahasa umum untuk menciptakan model-model perangkat lunak komputer berorientasi objek. Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metode. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan terlebih dahulu menjadi sebuah class. Class diagram menggambarkan struktur dan deskripsi class, package, dan objek beserta hubungan satu sama lain. Class diagram sistem dapat dilihat pada Lampiran 2. 4.2.1 Perancangan Arsitektur Sistem dibuat mengikuti arsitektur three-tier yang terdiri atas client, web server, dan database server. Client berfungsi sebagai presentation tier, web server berfungsi sebagai application tier, dan database server berfungsi sebagai data tier. Arsitektur sistem dapat dilihat pada Gambar 6. Komponen pertama adalah client yang berupa telepon selular untuk menjalankan aplikasi.
10
Gambar 6 Arsitektur sistem. Komponen kedua adalah web server. Web server terdiri atas web map server yaitu GeoServer dan Apache web server. GeoServer berfungsi sebagai aplikasi untuk menyimpan dan mengolah data geospasial serta mengirim response layanan berupa peta Institut Pertanian Bogor maupun informasinya ke client. Apache web server dengan aplikasi PHP mengolah data lokasi berdasarkan SSID access point Wi-Fi yang dikirim oleh client. Koneksi client dengan server terjadi melalui protokol HTTP. Komponen ketiga adalah database server. Database server berfungsi untuk menyimpan data yang dibutuhkan sistem. 4.2.2 Perancangan Proses Proses dimulai dengan mengirim permintaan GetCapabilities ke GeoServer. GeoServer merespon permintaan tersebut dalam format XML. Hasil dari permintaan ini berupa daftar layer peta. Layer peta yang ditampilkan adalah semua layer yang telah dimuat dalam GeoServer. Peta akan ditampilkan sesuai layer yang telah dipilih. Setelah peta ditampilkan, pengguna dapat memilih menu yang diinginkan untuk pemrosesan peta lebih lanjut, yaitu menu Zoom in, Zoom out, GetFeatureInfo, MyLocation, Refresh, atau Reset view. Menu Zoom in dan Zoom out digunakan untuk memperbesar dan memperkecil peta, GetFeatureInfo digunakan untuk meminta informasi tentang fitur spesifik yang ditunjukkan pada peta, dan menu MyLocation digunakan untuk mengidentifikasi lokasi
pengguna berdasarkan jaringan Wi-Fi yang dideteksi. Wi-Fi pertama yang dideteksi kemudian dikirim ke web server untuk mendapatkan data lokasi dengan melakukan query ke database server. Selanjutnya, web server merespon permintaan dalam format Java Script Object Notation (JSON). Data lokasi dari database server harus didapatkan melalui web server. Hal tersebut dilakukan karena client menggunakan HTTP request untuk mendapatkan data. Jadi, data dari database server diproses terlebih dahulu oleh web server agar dapat digunakan oleh client. Menu refresh digunakan untuk menyegarkan tampilan peta, dan menu reset view berfungsi mengembalikan tampilan peta seperti saat awal menampilkan peta berdasarkan layer yang dipilih. Proses detail fungsi sistem digambarkan dengan sequence diagram pada Lampiran 3. Sequence diagram menggambarkan interaksi antarobjek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. Jadi, sequence diagram digunakan untuk memvisualisasikan urutan panggilan dalam suatu sistem untuk melakukan fungsi tertentu. 4.2.3 Perancangan Antarmuka J2ME menyediakan sejumlah class yang digunakan sebagai objek antarmuka. Secara hirarki, susunan class yang menjadi antarmuka di J2ME dapat dilihat pada Gambar 7 (Purnama 2010). Displayable
Screen
Alert
Form
Canvas
List
TextBox
GameCanvas
Gambar 7 Hirarki class antarmuka di J2ME. Class Displayable merupakan induk dari semua antarmuka J2ME. Class ini akan diturunkan menjadi class Screen yang mewakili layar J2ME kategori high level user interface, dan layar Canvas yang mewakili low level user interface. Kedua
11
jenis antarmuka ini bisa digunakan secara bergantian, tetapi tidak dapat digunakan secara bersamaan. Pada saat tertentu, hanya ada satu objek antarmuka yang dinyatakan sebagai antarmuka yang tampak oleh pengguna (visual-page). Akan tetapi, semua objek antarmuka bisa menjadi antarmuka yang sedang mengalami modifikasi konten (activepage). Display merupakan class yang disediakan oleh J2ME untuk mengelola tampilan di layar, yaitu kegiatan untuk memperoleh informasi mengenai konteks layar yang sedang digunakan dan informasi mengenai objek yang sedang berada di layar. Sebuah objek Display menjadi penentu bagi aplikasi dalam mengatur antarmuka yang menjadi visualpage. Hanya ada satu objek Display untuk sebuah class MIDlet. Aplikasi yang dibuat bisa merujuk kepada objek Display tersebut melalui method getDisplay(). Perancangan antarmuka pada penelitian ini difokuskan pada antarmuka client. Antarmuka yang akan dibuat terdiri atas beberapa halaman dan tiap halaman memiliki 3 bagian, yaitu bagian judul, bagian layar utama, dan bagian menu. Bagian judul akan berisi nama halaman yang sedang dilihat, bagian layar utama berisi informasi yang akan ditampilkan dari tiap halaman, bagian menu terdiri atas menu 1 dan menu 2. Bagian menu ini merupakan objek Command, yaitu objek visual yang digunakan untuk mengaktifkan fitur dalam aplikasi secara interaktif. Objek Command merepresentasikan tombol keypad pada device yang bila ditekan maka aplikasi akan terpicu untuk melakukan proses tertentu. Perancangan antarmuka di sisi client dapat dilihat pada Gambar 8.
Gambar 8 Perancangan antarmuka.
5 Pembentukan Prototipe 5.1 Implementasi Database Alasan utama PostgreSQL dipilih sebagai platform untuk mendirikan PostGIS ialah kemudahan perluasan yang disediakan untuk membuat tipe dan operator baru serta untuk mengendalikan operator indeks. Agregasi tabel level dan sekitar menjadi tabel semualevel dan sekitarkampus yang dijelaskan sebelumnya, diperoleh dengan melakukan export tabel level1, level2, level3, level4, level5, dan level6 ke dalam format CSV dengan query “SELECT * FROM level1, level2, level3, level4, level5, level6” dan mengurutkan
atribut serta data tersebut sehingga diperoleh 1988 record. Data hasil export tersebut disalin kembali ke dalam database dengan query “COPY nama_tabel_tujuan_PostgreSQL FROM ‘direktori/letak_file_csv’ WITH DELIMITER ‘,’ CSV HEADER”.
Hal yang sama dilakukan pada tabel sekitar1, sekitar2, sekitar3, dan sekitar4 untuk digabung menjadi tabel sekitarkampus dengan 383 record. Langkah selanjutnya ialah masuk pada aplikasi GeoServer yang akan digunakan untuk merepresentasikan data PostGIS pada platform web dengan default username admin, password geoserver. Untuk menjalankan GeoServer di bawah konteks layanan web server yang ada, membutuhkan plug-in servlet untuk web server-nya seperti Tomcat, dan menginstal Java versi web archive. Arsitektur threetier yang dibangun untuk pembuatan peta pada GeoServer dapat dilihat pada Gambar 9.
Gambar 9 Arsitektur GeoServer sebagai web map server.
12
Tahapan pembuatan suatu layer pada GeoServer ini meliputi: 1 Membuat workspace Workspace merupakan ruang kerja yang menampung layer-layer yang akan dibuat. Workspace Name yang telah dibuat pada penelitian ini adalah map_ipb, dengan Namespace URI http://sigipb.ac.id, dan dibuat sebagai default workspace. 2 Melakukan penyimpanan data (store) Stores merupakan ruang konfigurasi untuk mengatur penyimpanan data yang tersedia ke dalam GeoServer. Terdapat pilihan konfigurasi berdasarkan sumber data yang dimiliki, yang berupa vektor atau raster. Sumber data yang dimiliki pada penelitian ini berupa data vektor, maka database PostGIS dipilih untuk konfigurasi ini. 3 Membuat layer pada GeoServer Penelitian ini menggunakan GeoServer versi 2.0.3. Sebelum layer terbentuk, perlu dilakukan konfigurasi data yang disediakan GeoServer pada menu layer guna melengkapi informasi yang dibutuhkan untuk setiap layer. Informasi tersebut meliputi nama layer, pemilihan nilai sistem referensi koordinat (EPSG:4326), bounding box peta yang di-generate dari data, dan memilih default style. Layer-layer yang terbentuk kemudian dikonversi oleh layanan yang terdapat pada GeoServer menjadi file dengan format XML. File XML inilah yang ketika dilakukan parsing akan menghasilkan URL dengan halaman web yang berupa suatu penyajian data dalam bentuk peta. Penelitian ini membangun 9 layer dalam GeoServer, yaitu layer jalan, level1, level2, level3, level4, level5, level6, sekitar fakultas, dan layer semua level fakultas, yang kemudian dari layer tersebut dibuat 7 layer groups yaitu layer ipb, ipb_level1, ipb_level2, ipb_level3, ipb_level4, ipb_level5, dan ipb_level6. 4 Menyesuaikan style peta Untuk menghasilkan suatu layer peta, diperlukan style dari layer yang sesuai dengan tipe layer tersebut (point, line, polygon atau multipolygon). GeoServer telah menyediakan default style yang terdapat dalam library-nya dalam format Styled Layer Descriptor (SLD).
File SLD ini merupakan dokumen XML yang berfungsi mengatur tampilan peta. Layer jalan menggunakan style jalan yang disalin dan diedit dari default style simple_roads, layer level1 hingga level6 dan semualevel menggunakan style fakultas yang disalin dan diedit dari default style polygon, dan layer sekitarfakultas menggunakan style sekitarfakultas yang juga disalin dan diedit dari default style polygon. Style jalan, fakultas, dan sekitarfakultas dapat dilihat pada Lampiran 4. 5 Melihat hasil peta Untuk melihat peta sesuai layer yang telah dibuat, pengguna dapat mengakses menu Layer Preview. Peta yang dilihat pada menu tersebut hanya dapat diakses pada GeoServer dan hanya bertujuan menguji tampilan peta yang telah dibuat. Pada penelitian ini, peta diakses melalui client. 5.2 Implementasi Arsitektur dan Proses Open Geospatial Consortium (OGC) adalah organisasi standar yang diterima dalam dunia GIS. OGC telah menggariskan serangkaian layanan web yang harus tersedia pada tiap server pemetaan. Semua klien web pemetaan open source dan tools desktop mengonsumsi layanan web OGC. Pendistribusian data yang didukung oleh OGC WMS ialah HTTP. HTTP mendukung 2 metode permintaan: GET dan POST. Spesifikasi WMS dasar hanya mendefinisikan HTTP GET untuk memanggil operasi (Kolodziej 2004). Ada 3 operasi yang didefinisikan oleh spesifikasi WMS, yaitu GetCapabilities, GetMap, dan GetFeatureInfo. Berikut ini adalah contoh permintaan WMS, diberikan sebagai permintaan HTTP GET (dengan pergantian baris ditambahkan untuk kejelasan) kepada host GeoServer: http://suite.opengeo.org/geo server/wms? SERVICE=WMS& VERSION=1.3.0& REQUEST=GetMap& LAYERS=usa:states& SRS=EPSG:4326& BBOX=24.956,124.731,49.372,66.97& FORMAT=image/png& WIDTH=600& HEIGHT=255
13
Pada contoh di atas, http://suite.opengeo.org/ ialah domain GeoServer, geoserver/ ialah directory path, wms? ialah nama script Common Gateway Interface (CGI) yang memproses permintaan WMS klien. Tanda tanya dikaitkan setelah nama script untuk memisahkannya dari daftar parameter permintaan OGC. Tiap parameter yang tidak bersifat case-sensitive dipisahkan oleh ampersand (&). SERVICE=WMS& merupakan parameter permintaan jenis layanan, VERSION=1.3.0& merupakan detail server, REQUEST=GetMap& merupakan jenis permintaan, LAYERS=usa:states& merupakan nama layer, SRS=EPSG:4326& merupakan proyeksi yang digunakan, BBOX=24.956,-124.731,49.372,66.97& merupakan bounding box atau koordinat latitude longitude, dan FORMAT=image/png&, WIDTH=600&, dan HEIGHT=255 merupakan properti gambar. 5.2.1 Mendapatkan GetCapabilities Permintaan GetCapabilities mengembalikan tingkat layanan metadata WMS server yang dapat dibaca mesin (dan dapat dibaca manusia), deskripsi dari konten informasi layanan WMS dan parameter permintaan yang dapat diterima. Respon permintaan GetCapabilities adalah informasi umum layanan dan informasi tentang peta yang tersedia berupa dokumen “capabilities”, yakni konfigurasi file XML yang disediakan pada permintaan WMS klien. File XML ini berisi metadata tentang WMS server yang mengindikasikan data dan kemampuan. Server mengirim informasi ini ketika permintaan sebagai dokumen XML diformat berdasarkan Document Type Definition (DTD). Bagian yang penting dari XML WMS capabilities adalah layer dan style. File XML ini diperlukan untuk spesifikasi WMS dan memenuhi Document Type Definition WMS OGC. Ketika melakukan permintaan peta, WMS klien menetapkan informasi layer dan style terkait. WMS klien perlu mencari tahu apa yang dapat diminta dari WMS server (mengetahui kemampuan layanan WMS server). Untuk mencari tahu layer yang disediakan oleh WMS server dan proyeksi yang didukung, WMS klien membuat permintaan capabilities. Tujuan lain permintaan GetCapabilities adalah untuk
menerangkan disediakan.
layanan
GetMap
yang
Contoh GetCapabilities request dalam implementasi sistem ini ialah http://localhost:8080/geoser ver/wms?request=GetCapabilit ies. Respon permintaan berupa file dengan MIME type yang ditetapkan dalam “text/xml”. Layanan metadata ini memungkinkan WMS klien untuk memformulasikan permintaan yang valid dan memungkinkan konstruksi katalog yang dapat dicari dan mengarahkan WMS klien kepada WMS server tertentu. Operasi GetCapabilities perlu menerima daftar lengkap dari dukungan antarmuka server dan layer peta yang dapat melayani respon permintaan antarmuka peta. Operasi GetCapabilities menyediakan WMS klien dari WMS server dengan fungsi sebagai berikut: Semua antarmuka yang dapat didukung oleh WMS server. Format gambar yang dapat dilayani (GIF, JPEG, PNG). Daftar sistem referensi spasial yang tersedia untuk pengiriman data peta dari WMS server. Daftar format exception untuk pengembalian exception yang tersedia dari WMS server. Daftar kemampuan rinci vendor (properti) yang tersedia untuk modifikasi atau mengatur aksi dari WMS server tertentu. Daftar satu atau lebih layer peta yang tersedia dari WMS server. Dukungan WMS server terhadap antarmuka FeatureInfo. Parameter permintaan yang sesuai dengan OGC dapat dilihat pada Lampiran 5. Skema permintaan GetCapabilities yang sesuai dengan parameter tersebut dapat dilihat pada Gambar 10.
Gambar 10 Skema permintaan GetCapabilities.
14
Pada tahap ini diperoleh informasi layer peta yang telah dimuat dalam GeoServer dan ditampilkan dalam bentuk list. Layer list tersebut dapat dipilih sesuai keinginan pengguna. 5.2.2 Mendapatkan GetMap Permintaan GetMap mengembalikan gambar peta geospasial dan parameter dimensional. Permintaan GetMap mengizinkan WMS klien untuk menspesifikasikan layer yang berbeda, sistem referensi spasial (SRS), area geografis, dan parameter lain yang menggambarkan format pengembalian peta. WMS server mengirim peta via HTTP ketika menerima permintaan seperti http://127.0.0.1:8080/geoser ver/wms?SERVICE=WMS&&request =GetMap&service=wms&styles=& layers=ipb_level6&bbox=106.7 14,6.57333333333333333,106.736, 6.544&SRS=EPSG:4326&width=24 0&height=320&format=image/pn g&exceptions=text/plain&vers ion=1.0.0.
Gambar 11 Skema permintaan GetMap.
Pada contoh di atas, 127.0.0.1:8080 adalah server hostname yakni localhost dengan optional port number 8080, geoserver/ adalah directory path, wms? Adalah nama script Common Gateway Interface (CGI) yang memproses permintaan WMS klien. Tanda tanya dikaitkan setelah nama script untuk memisahkannya dari daftar parameter. Parameter dipisahkan oleh ampersand (&). Nama parameter tidak bersifat casesensitive.
5.2.3 Mendapatkan GetFeatureInfo Permintaan GetFeatureInfo merespon informasi tentang fitur tertentu yang ditunjukkan pada peta. Jika WMS server mendukung operasi ini, query dapat dilakukan dan WMS klien dapat meminta informasi fitur peta dengan menambahkan parameter tambahan yang menspesifikasikan lokasi dan jumlah fitur terdekat pada informasi kembalian URL peta. Operasi GetFeatureInfo didesain untuk WMS klien dalam menyediakan informasi fitur pada semua gambar peta yang dikembalikan oleh permintaan GetMap sebelumnya.
Keluaran permintaan GetMap adalah peta tunggal yang terkait dengan parameter FORMAT dalam permintaan. Penelitian ini menggunakan permintaan FORMAT=PNG, sehingga objek yang dikembalikan berupa gambar PNG dengan MIME type image/png. Dalam permintaan non-picture (elemen grafis atau data fitur), parameter WIDTH, HEIGHT, TRANSPARENT, dan BGCOLOR tidak relevan. WIDTH dan HEIGHT adalah perintah ketika format keluaran adalah gambar. Format disesuaikan dengan skema yang diberikan OGC dan dapat dilihat pada Gambar 11. Setelah meminta operasi GetMap, respon dari server adalah peta sesuai layer yang telah dipilih sebelumnya.
Peta diidentifikasi dengan menyertakan semua informasi dalam permintaan GetMap. Permintaan GetFeatureInfo menyimpan muatan permintaan GetMap, dengan menambahkan parameter untuk mendefinisikan layer yang diminta. WMS server dapat mengembalikan halaman text/HTML/XML, gambar bahkan dokumen Word dalam respon permintaan GetFeatureInfo. Contoh format yang digunakan untuk mengirim permintaan GetFeatureInfo dalam penelitian ini ialah http://127.0.0.1:8080/geoser ver/wms?SERVICE=WMS&&request =GetFeatureInfo&service=wms& styles=&layers=ipb_level6&bb ox=106.714,-
15
6.57333333333333333,106.736, 6.544&SRS=EPSG:4326&width=24 0&height=272&format=image/pn g&query_layers=ipb_level6&in fo_format=text/plain&x=120&y =92&feature_count=1&exceptio ns=text/plain&version=1.0.0. WMS server mengembalikan respon berdasarkan permintaan INFO_FORMAT. Hasil permintaan operasi ini adalah informasi atribut yang terdapat pada peta. Skema permintaan GetFeatureInfo dapat dilihat pada Gambar 12.
daftar. Elemen pertama dalam daftar access point yang terdeteksi (berupa SSID) kemudian dikirim ke web server menggunakan protokol HTTP connection dengan method GET untuk mendapatkan informasi lokasi pengguna berdasarkan SSID tersebut. SSID akan diproses oleh Apache web server, dalam hal ini aplikasi web PHP, sebagai lokasi yang dicocokkan dengan essid pada tabel accesspoint dalam database. Apabila lokasi berupa SSID yang dikirim oleh client berada pada hasil query tabel accesspoint dengan semualevel, maka server merespon informasi berupa kode ruang, nama ruang, level, fakultas, departemen, wing, latitude, dan longitude. Namun apabila pada query tersebut tidak ditemukan lokasi yang sama, maka dilakukan query dengan tabel accesspoint dan sekitarkampus sehingga menghasilkan informasi berupa nama bangunan, latitude, dan longitude. 5.3 Implementasi Antarmuka Implementasi antarmuka pertama kali sistem dijalankan, yakni antarmuka request GetCapabilities, dengan antarmuka bagian judul berisi GeoServer, bagian layar utama berupa TextField.URL, bagian menu terdiri atas objek Command Go dan Exit, dapat dilihat pada Gambar 13.
Gambar 12 Skema permintaan GetFeatureInfo. 5.2.4 Mendapatkan MyLocation Modul identifikasi posisi pengguna diimplementasikan menggunakan library com.nokia.mid.iapinfo yang disediakan untuk pengembangan aplikasi J2ME pada Symbian Series 60 3rd Edition Feature Pack 2. Identifikasi lokasi dilakukan dengan mendapatkan semua access point yang tersedia dari sistem dan menambahkan nama access point ke
Gambar 13 Antarmuka request GetCapabilities dalam TextField. Setelah permintaan URL dikirim ke GeoServer dengan menekan menu Go, antarmuka selanjutnya adalah daftar layer (list) hasil respon GeoServer, yang dapat
16
dilihat pada Gambar 14. List adalah objek layar berisi sejumlah data yang bisa dipilih. Jenis List yang digunakan ialah Choice.MULTIPLE. Pengguna dapat memilih layer yang diinginkan untuk mendapatkan peta, atau tidak ada layer yang dipilih.
Gambar 14 Antarmuka daftar layer peta dalam multiple choice. Antarmuka peta diperoleh setelah menandai layer dan menu Get Map dipilih. Gambar peta yang dikirim oleh GeoServer ditampilkan pada bidang gambar (Canvas). Class Canvas didefinisikan sebagai class abstrak sehingga tidak bisa membuat objek langsung dari Canvas untuk digunakan dalam program. Untuk menggunakan class ini, harus dibuat class turunan dari class ini kemudian membuat objek dari class turunan ini. Di dalam class baru inilah dibuat instruksi penggambaran, lalu diinstansiasi menjadi objek yang akan menjadi antarmuka. Class Canvas memiliki method paint() yang harus di-override oleh class turunannya dan mengisinya dengan instruksi untuk melakukan penggambaran objek visual peta. Jika pengguna memilih menu Back, maka antarmuka kembali seperti pada Gambar 13. Sedangkan antarmuka peta dapat dilihat pada Gambar 15. Skala, informasi longitude dan latitude, serta kursor ditampilkan pada gambar peta di bagian bawah kiri dan bawah kanan. Pada antarmuka tersebut, terdapat pilihan screen menu yang dapat dilihat pada Gambar 16. Objek Command pada menu tersebut terdiri atas Zoom in, Zoom out,
GetFeatureInfo, MyLocation, Refresh, Reset view, dan Back. Untuk memberitahu sistem bahwa telah terjadi penekanan terhadap keypad, maka class MIDlet tempat objek Command itu berada harus mengimplementasikan interface CommandListener.
Gambar 15 Antarmuka peta IPB.
Gambar 16 Antarmuka screen menu. Setelah menggunakan interface tersebut, di dalam class MIDlet harus disebutkan objek yang akan merespon penekanan objek Command. Method setCommandListener() digunakan untuk memasang objek Command ke dalam objek antarmuka. Konsekuensi penggunaan interface CommandListener ialah harus menulis method commandAction() yang berisi daftar perintah yang akan dikerjakan jika objek Command ditekan.