Rancang Bangun Bus Tracking System Berbasis J2ME dan Web

advertisement
1.
Pendahuluan
Transportasi merupakan unsur penting dalam mendukung pertumbuhan
ekonomi dan pemerataan pembangunan. Salah satu alat transportasi umum yang
banyak diminati masyarakat adalah bus. Calon penumpang bus terkadang
mengalami ketidakpastian kapan bus yang akan mereka tumpangi tiba.
Ketidakpastian datangnya bus ini dapat dikarenakan berbagai macam faktor
dijalan. Akibatnya, calon penumpang banyak membuang waktu untuk menunggu
bus. Hal yang sama juga dialami oleh penjemput penumpang bus, yang perlu
mengetahui informasi keberadaan bus untuk dapat memperkirakan waktu
penjemputan. Disisi lain, pengelola bus juga perlu melakukan pemantauan
terhadap lokasi busnya.
Kemajuan teknologi semakin memudahkan manusia untuk berinteraksi satu
sama lain tanpa adanya batasan jarak dan waktu. Salah satu teknologi yang
berkembang pesat adalah teknologi komunikasi, contohnya mobile phone. Mobile
phone yang beredar saat ini beraneka ragam, salah satunya dari segi sistem
operasi. Sistem operasi pada mobile phone yang sekarang ini beredar antara lain,
symbian, iOS, android, windows phone, bada, dan lain sebagainya. Data statistik
menunjukkan hingga minggu ketiga bulan Februari tahun 2012, sistem operasi
Symbian masih merupakan sistem operasi dengan pengguna terbanyak, yaitu
sebesar 30%, disusul kemudian iOS dengan persentase pengguna 25,35%, dan
android dengan persentase pengguna sebanyak 24,72%, sistem operasi lainnya
hanya dibawah 10% dari pengguna [1].
Salah satu platform yang dapat berjalan di sistem operasi symbian adalah
Java 2 Micro Edition atau J2ME. J2ME adalah sebuah pengembangan bahasa
pemrograman berbasis Java yang berjalan dan diimplentasikan pada perangkat
bergerak seperti mobile phone. Aplikasi yang dibuat dengan J2ME ukurannya
relatif kecil, dan tidak banyak memakan sumber daya, sehingga tidak
mengganggu kinerja mobile phone secara keseluruhan [2].
Selain mobile phone, teknologi Global Positioning System (GPS) juga tidak
kalah berkembang. Kualitas ketelitian data GPS semakin meningkat, perangkat
lunak pengolah data GPS pun semakin banyak dalam jumlah dan ragamnya. GPS
receiver kini telah diperkecil ukurannya hingga sebesar IC, oleh karenanya
menjadi sangat terjangkau. Sekarang ini banyak GPS yang telah built-in dalam
mobile phone. Fitur ini dapat digunakan oleh user untuk menentukan lokasi
keberadaan device.
Dari permasalahan tersebut, maka dirancanglah suatu bus tracking system
berbasis J2ME dan Web Server yang bertujuan memberikan informasi kepada
pengguna maupun pengelola bus mengenai keberadaan bus.
2.
Kajian Pustaka
Salah satu penelitian yang membahas mengenai penerapan teknologi GPS
adalah Monitoring Lokasi Anak Menggunakan Handphone ber-GPS. Penelitian
tersebut ditujukan agar orang tua dapat memantau keberadaan anak. Aplikasi ini
mencocokkan format SMS (Short Message Service) yang masuk, jika valid maka
3
aplikasi akan mengaktifkan GPS untuk mendapatkan koordinat latitude dan
longitude. Selanjutnya aplikasi mendapatkan link static Google Map dengan
koordinat tersebut dan mengirimkannya ke nomor handphone pengirim SMS. SMS
dari handphone anak akan diterima oleh handphone orang tua. Melalui link static
Google Map orang tua dapat melihat lokasi keberadaan anak. Setiap pengiriman
link static Google Map akan ditulis dalam log dengan FileLogger [3].
Penelitian lainnya adalah Sistem Pelacakan Posisi Bus Trans Jogja Berbasis
Mobile dan Web. Penelitian ini ditujukan untuk melakukan pelacakan terhadap
bus Trans Jogja. Sistem yang dibangun dibagi menjadi dua, yaitu aplikasi client
dan aplikasi server. Aplikasi client dibangun pada mobile phone berbasis J2ME,
sedangkan aplikasi server dibangun menggunakan PHP dan diakses
menggunakan komputer. Data yang akan dikirim atau diakses oleh client
dilakukan melalui koneksi via GPRS. Aplikasi client memiliki satu aktor yaitu
user yang dalam hal ini adalah pengendara bus (supir bus). User dapat melihat
informasi lokasi dengan tampilan map dan dapat mengakses informasi-informasi
yang dibutuhkan. Di sisi server, admin sebagai aktor dapat menambah data lokasi
atau jalur bus, mengubah data dan menghapus data yang semuanya kemudian
diolah ke database [4].
Perbedaan penelitian pertama dengan penelitian ini adalah aplikasi pada
penelitian pertama mengaktifkan GPS melalui SMS sedangkan dalam penelitian
ini GPS aktif setelah user sign in, dan akan terus aktif hingga user sign out.
Penelitian kedua digunakan untuk membantu supir bus Trans Jogja memperoleh
informasi yang dibutuhkan sekaligus dapat mengetahui posisinya dengan tampilan
dalam map, sedangkan penelitian ini dibangun untuk membantu calon penumpang
bus maupun orang yang ingin menjemput kerabatnya yang menggunakan jasa
transportasi bus. Dalam penelitian ini diharapkan pengguna dapat melihat
informasi lokasi keberadaan bus dengan tampilan map melalui mobile phone.
Java 2 Micro Edition (J2ME) adalah satu set spesifikasi dan teknologi
JAVA yang fokus kepada perangkat yang memiliki jumlah memori yang terbatas,
menghabiskan sedikit daya dari baterai, layar yang kecil dan bandwith jaringan
yang rendah. Program J2ME, seperti semua program JAVA adalah diterjemahkan
oleh Virtual Machine (VM). Program-program tersebut di-compile dan
diterjemahkan oleh Java Virtual Machine(JVM) ke dalam bytecode. Inti dari
J2ME terletak pada configuration dan profile-profile. Suatu configuration
menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia
menggambarkan core library, virtual machine, fitur keamanan dan jaringan.
Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada
sebuah perangkat. Profile-profile menyediakan user interface(UI) API,
persistence, messaging library, dan sebagainya [2].
Global Positioning System (GPS) adalah sebuah sistem navigasi radio yang
terbentuk dari gabungan 24 buah satelit berikut stasiun-stasiun penerimanya. GPS
menggunakan satelit tersebut sebagai titik acuan untuk memperkirakan
(menghitung) posisi secara akurat sampai dengan hitungan meter. Untuk
4
mengetahui posisi, minimal diperlukan tiga buah satelit yang masing-masing
mengirimkan sinyal ke GPS Receiver [5].
Location API (JSR 179) dapat menghasilkan informasi posisi seperti halnya
perangkat penentu posisi lainnya, seperti GPS. Location API (JSR 179) dalam
J2ME masuk ke dalam optional package javax.microedition.location yang
memiliki kemampuan untuk menghasilkan informasi posisi sebuah peralatan. JSR
179 membutuhkan Connected Device Configuration (CDC) atau Connected
Limited Device Configuration (CLDC) versi 1.1 [6].
Google Static Maps API menyediakan fungsi untuk membuat sebuah
gambar peta Google Maps dalam halaman website tanpa membutuhkan
JavaScript atau halaman dinamis lainnya. Google Static Maps API
mengembalikan sebuah image (baik bertipe GIF, PNG atau JPEG) untuk
merespon HTTP request melalui sebuah URL [7].
3.
Metode Perancangan Sistem
Metode perancangan sistem yang digunakan dalam penelitian ini adalah
metode prototyping. Prototyping model adalah proses untuk membangun sebuah
model suatu sistem, berdasarkan pada kebutuhan user yang tidak
mengidentifikasikan secara jelas detail input, proses ataupun output [8].
Gambar 1 Metode Prototyping [8]
1. Listen To Customer
Tahap pertama yang dilakukan pada metode prototyping adalah Listen To
Customer. Pada tahap ini dilakukan proses pengumpulan data kebutuhan user
(user requirement) dengan cara membagikan kuesioner kepada 30 responden yang
dianggap sebagai sample user. Hasil analisis kebutuhan user adalah sebagai
berikut, user perlu mengetahui keberadaannya, melihat posisi bus di map dalam
radius tertentu dari user, melihat posisi bus tertentu di map, dan melihat posisi bus
5
dengan route tertentu di map. Hasil analisis kebutuhan admin adalah melihat
posisi bus di map dan dapat melakukan update data (edit, add dan delete).
2. Build/Revise Mock-up
Setelah proses pertama selesai dilakukan, maka pada tahap selanjutnya
adalah perancangan sistem. Pada tahap ini, sistem dirancang dengan
menggunakan Unified Model Language (UML) yang memanfaatkan tools
Rational Rose. Desain antarmuka aplikasi dibangun dengan memperhatikan daya
tarik aplikasi tanpa mengurangi sisi informasi yang diberikan. Kemudian
dibangunlah prototype bus tracking system yang didasarkan pada user
requirement yang di dapat pada tahap pertama.
3. Customer test drives mock-up
Setelah prototype dibangun, kemudian dilakukan proses evaluasi atau
pengujian untuk mengetahui apa saja yang masih menjadi kekurangan aplikasi
dan apa saja yang sudah sesuai dengan kebutuhan sistem. Evaluasi prototype
dilakukan sebanyak empat kali dengan tahapan sebagai berikut:
a.
Evaluasi Tahap Pertama
Pada prototype pertama ini masih terdapat beberapa kekurangan,
diantaranya adalah tampilan aplikasi yang kurang menarik, dan perlunya
menu help dan about.
b.
Evaluasi Tahap Kedua
Untuk memperbaiki prototype pertama, maka dibangunlah prototype
kedua dengan melengkapi beberapa kekurangan yang terdapat pada
prototype pertama. Setelah itu dilakukan evaluasi kembali. Hasil dari
evaluasi tahap kedua ini adalah perlunya pemberian proteksi jika user sign
in melalui dua atau lebih device. Hal ini diperlukan untuk menjaga
konsistensi lokasi. Disamping itu perlu ditambahkannya fungsi offline
online.
c.
Evaluasi Tahap Ketiga
Prototype ketiga dibangun dengan melengkapi kekurangan pada
prototype kedua. Hasil dari evaluasi tahap ketiga adalah perlunya
penambahan perkiraan waktu kedatangan bus. Perkiraan waktu didapat dari
jarak bus dengan user dibagi dengan kecepatan bus yang dianggap konstan
yaitu 40km/jam.
d.
Evaluasi Tahap Keempat
Pemberian perkiraan waktu pada prototype ketiga dirasa kurang
akurat, karena itu prototype dievaluasi kembali. Hasil dari evaluasi tahap
keempat adalah kecepatan bus dihitung dari kecepatan rata-rata bus selama
10 menit.
4.
Desain Sistem
Desain sistem yang dibangun menggunakan bahasa pemodelan UML yang
terdiri dari beberapa diagram diantaranya use case diagram, activity diagram,
sequence diagram, class diagram dan deployment diagram.
6
Use Case Diagram pada sistem yang dibuat memiliki dua aktor, yaitu
admin dan user. Masing-masing aktor memiliki aplikasi yang berbeda sesuai
dengan hak akses yang dimiliki. Use case diagram user dan admin dari bus
tracking system yang dibangun dapat dilihat pada Gambar 2.
Melihat Form Help
Melihat Halaman About
Melihat Form About
Melihat Halaman Help
User
Admin
<<include>>
Mengetahui Posisi User
GPS
Melihat Map
<<include>>
Manage Data
Melihat Map
<<extend>>
<<extend>>
<<extend>>
<<extend>>
Dalam Radius Tertentu By Specifik Bus
By Route
Insert
<<extend>>
<<extend>>
Update
Delete
Gambar 2 Use Case Diagram User dan Admin
Activity Diagram merupakan state diagram khusus, dimana sebagian besar
state adalah action dan sebagian besar transisi di-trigger oleh selesainya state
sebelumnya (internal processing) [9]. Dalam sistem yang dibangun, terdapat
beberapa aktifitas yang dilakukan oleh admin maupun user. Gambar 3 merupakan
aktifitas yang dapat dilakukan oleh user, sedangkan Gambar 4 merupakan
aktifitas yang dilakukan oleh admin.
User
Aplikasi
Serv er
Database
Google Map
Menampilkan
Menu Utama
start
Memilih Menu
Start
Mendapatkan
latitude&longitude User
no
valid?
yes
valid?
Mengirim Data
ke Server
Melihat Form
GPS
Menampilkan
Form GPS
Menentukan
Mode Map
Mengirim Data
ke Server
Mendapatkan
URL
no
Mengakses
Database
yes
Mengupdate
Data
Menampilkan
Data
Mengolah Data
Menjadi Url
Mendapatkan
Image Map
Melihat Map
Menampilkan
Image Map
end
Gambar 3 Activity Diagram User Melihat Map
7
Gambar 3 merupakan activity diagram user melihat map. Diagram ini
menggambarkan aktifitas-aktifitas yang terjadi ketika user ingin melihat map.
Sebelum user dapat mengakses menu, terlebih dahulu user harus sign in ke dalam
aplikasi. Setelah sign in, aplikasi akan menampilkan menu utama. Kemudian
aktifitas pertama user untuk dapat melihat map adalah memilih menu start.
Setelah memilih menu start, aplikasi akan mendapatkan data lokasi user
dengan menggunakan Location API pada J2ME. Kemudian aplikasi mengirimkan
data tersebut ke server. Di server data yang dikirim divalidasi kembali, apakah
user sign in dari dua atau lebih device. Apabila user tidak sign in dari dua atau
lebih device maka database akan di update sesuai dengan data yang dikirim
aplikasi. Selanjutnya user memilih menu start, lalu aplikasi akan menampilkan
data GPS user. Setelah itu aplikasi akan mendapatkan data mode map yang dipilih
oleh user pada form mode map kemudian mengirimkannya ke server. Server
mengolah data tersebut sehingga menghasilkan url. Aplikasi kemudian
manangkap url tersebut dan me-request url tersebut sehingga mendapatkan map
yang berupa image dari Google Maps. Map lalu ditampilkan pada aplikasi
sehingga user mendapatkan informasi visual suatu bus.
Admin
Sistem
DB
start
Menampilkan
Login
Input Username
Dan Pasword
Periksa Inputan
Username dan Password
Validasi
Menampilkan
Pesan salah
Tidak
Menampilkan
Menu
About
Help
Map
Add
Edit
Management
Data
Delete
Simpan
Perubahan
Logout
End
Gambar 4 Activity Diagram Admin
Gambar 4 menggambarkan aktifitas-aktifitas yang dilakukan admin.
Sebelum menjalankan aktifitasnya, admin harus login terlebih dahulu ke dalam
sistem. Kemudian admin dapat melakukan empat aktifitas utama, yaitu melihat
halaman about, melihat halaman help, melihat map, dan masuk ke halaman
management data. Pada halaman management data, admin dapat manage data
seperti menambah user, mengedit data user, dan menghapus user. Data yang telah
diubah kemudian disimpan dalam database server. Untuk mengakhiri aktifitas ini
admin harus logout terlebih dahulu.
8
Sequence Diagram digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event
untuk menghasilkan output tertentu. Diawali dari apa yang memicu aktifitas
tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output
apa saja yang dihasilkan [9].
: User
: ViewAplication
: Controller Application
: Server
: Database
: Google Maps
Memilih Menu Start
Mengakses Data GPS
Mengirim Data
Mengupdate Data
Request Done
Request Done
Menampiilkan Data GPS
Melihat Data GPS
Memilih Mode Map
Mendapat Data
Mengirim Data Ke Server
Mengakses Database
Return Data
Return URL
Merequest Image
Return Image
Menampilkan Map
Melihat Map
Gambar 5 Sequence Diagram User Melihat Map
Gambar 5 menjelaskan urutan proses yang terjadi untuk menampilkan
informasi visual user dan bus dengan tampilan map. Sebelum user dapat
mengakses menu, user terlebih dahulu harus sign in ke dalam aplikasi. Setelah
sign in, aplikasi akan menampilkan menu utama. Kemudian yang dilakukan oleh
user untuk menampilkan map adalah memilih menu start.
Setelah memilih menu start, aplikasi akan mengakses data GPS
menggunakan Location API pada J2ME. Application controller kemudian
mengirimkan data tersebut ke server. Server menerima data lalu
memperbaharuinya ke dalam database. Selanjutnya aplikasi akan menampilkan
data tersebut, sehingga user dapat melihat data GPS. Kemudian user melanjutkan
ke tahap berikutnya, yaitu memilih mode map. Setelah aplikasi mendapatkan data
mode map yang dipilih oleh user, controller mengirimkan data tersebut ke server.
Server mengolah data yang diberikan aplikasi kemudian mengakses database
untuk mendapatkan latitude dan longitude user. Kemudian server akan
memberikan url yang kemudian ditangkap oleh application controller.
Application controller me-request url yang didapat dari server, sehingga
9
didapatkan map yang berupa image dari Google Maps. Controller kemudian
menangkap map tersebut dan menampilkannya pada aplikasi.
Class Diagram dari sistem yang dibangun ditunjukkan Gambar 6. Class
MyBusTracker merupakan class utama pada class diagram yang dirancang.
Dalam class ini terdapat semua fungsi yang diperlukan untuk menjalankan
aplikasi, class yang lain hanya mengakses fungsi dari class utama tersebut.
Sehingga setiap class yang ada pada class diagram tersebut memiliki hubungan
dengan class MyBusTracker.
Gambar 6 Class Diagram Sistem
Deployment Diagram dari sistem yang dibangun ditunjukkan Gambar 7.
Terlihat bahwa terdapat beberapa perangkat yang digunakan saat deployment,
yaitu sebuah komputer yang bertugas sebagai server yang di dalamnya terdapat
database yang digunakan untuk menyimpan data-data, serta J2ME device untuk
client yang bertindak sebagai pengguna aplikasi.
Admin Web
Monitor Komputer
Web Server
User
J2ME Device
Gambar 7 Deployment Diagram
10
Database
5.
Perancangan Tabel
Tabel Admin_Pwd berfungsi menampung attribute-atrtibute admin, yaitu
user_id dan password. Terdapat dua field dalam tabel Admin_pwd ini, yaitu uid
yang merupakan field bertipe varchar, berfungsi untuk menampung user_id
admin. Pass merupakan field bertipe varchar, berfungsi untuk menampung
password admin. Struktur tabel Admin_Pwd ditunjukkan pada Tabel 1.
Tabel 1 Struktur Data Tabel Admin_Pwd
Field
uid*
pass
Type
varchar
varchar
Length
20
20
Keterangan
Primary key
password
Tabel All_Data berfungsi menampung semua data user. Dalam tabel ini
terdapat delapan field yaitu uid, pass, ses_id, type, route, lat, lon, cur_timestamp,
TotalDist, dan TotalTime. Uid merupakan field bertipe varchar, berfungsi untuk
menampung user id user. Field ini merupakan primary key dalam tabel. Pass yang
merupakan field bertipe varchar, berfungsi menyimpan password user. Ses_id
adalah field bertipe varchar, yang berfungsi menampung id yang diberikan saat
user sign in ke dalam sistem. Field ini berfungsi sebagai security untuk
memastikan user tidak sign in dari dua atau lebih device. Field berikutnya adalah
type, field ini berfungsi menampung data tipe user, apakah user adalah calon
penumpang atau bus. Field route berfungsi menampung data route bus, field ini
bertipe varchar. Field lat bertipe double berfungsi menyimpan data latitude user.
Field lon bertipe double berfungsi menyimpan data longitude user. Field
cur_timestamp bertipe timestamp, berfungsi menampung waktu terakhir user
meng-update data. Field TotalDist bertipe float, berfungsi menampung total jarak
yang telah ditempuh oleh bus. Field TotalTime bertipe float, berfungsi
menampung total waktu bus online. Struktur tabel AllData ditunjukkan pada
Tabel 2.
Tabel 2 Struktur Data Tabel All_Data
Field
uid*
pass
ses_id
type
route
lat
lon
cur_timestamp
TotalDist
TotalTime
Type
Varchar
Varchar
Varchar
Varchar
Varchar
Double
Double
Timestamp
Float
Float
Length
20
20
50
5
50
-
11
Keterangan
Primary key
password
id
Tipe user
Route bus
latitude
longitude
Waktu terakhir
Total jarak
Total waktu
6.
Pembangunan Sistem
Arsitektur Sistem yang dibangun ditunjukkan pada Gambar 8. Client
terbagi menjadi dua yaitu, user dan admin. User mengirimkan request
(permintaan) kepada server menggunakan mobile phone berbasis J2ME dengan
konektivitas via GPRS melalui WAP Gateway operator telekomunikasi,
sedangkan admin mengirimkan request kepada server menggunakan komputer.
Server akan menerima request dari client dan menghubungkan ke database
server, kemudian memproses request tersebut, lalu mengirimkan response
(tanggapan) ke client.
Gambar 8 Arsitektur Sistem
Aplikasi Mobile merupakan client dari sistem yang dibangun. Pada saat
aplikasi dijalankan, akan tampil splashscreen dan selang beberapa saat muncul
tampilan utama yang berisikan dua pilihan yaitu, sign in dan create account.
Untuk dapat menggunakan aplikasi, pengguna harus memiliki account terlebih
dahulu. Pengguna dapat membuat account baru dengan memilih create account
pada tampilan utama, maka aplikasi akan menampilkan Form Create Account.
Setelah pengguna membuat account, baru kemudian pengguna dapat
menggunakan aplikasi dengan sign in ke dalam aplikasi. Untuk sign in ke dalam
aplikasi, pengguna dapat memilih sign in pada tampilan utama aplikasi. Gambar 9
menunjukkan tampilan utama aplikasi mobile.
Gambar 9 Tampilan Utama
Pada Form Create Account, pengguna diminta memasukkan username dan
password yang diinginkan, serta confirm password. Setelah itu, data yang
12
dimasukkan pengguna akan dikirim ke server setelah melalui beberapa
pemeriksaan, yaitu pengguna sudah mengisi semua data yang diperlukan, dan
password yang dimasukkan sesuai dengan confirm password.
Kode Program 1 Create New Account
1. HttpConnection conn = (HttpConnection)
Connector.open("http://locator.16mb.com/SignIn.php?uid=" + uid + "&pass=" +
pass);
2. int code = conn.getResponseCode();
3. switch (code) {
4.
case HttpConnection.HTTP_OK:
5.
String content = readData(conn, code);
6.
message = content;
7. }
8. conn.close();
Baris pertama Kode Program 1 menunjukkan bahwa aplikasi mengirimkan
data username dan password ke server untuk kemudian diolah ke dalam database.
Kode Program 2 Insert User
1. $sqlInsert = "INSERT INTO alldata (uid, pass, type, cur_timestamp) VALUES
('".$_GET["uid"]."', '".$_GET["pass"]."', 'user', NOW())";
2.
if (!mysql_query($sqlInsert,$con)) {
3.
echo "The UserName already exist. Please Enter another UserName.";
4.
} else {
5.
echo "Success! Account Created!";
6.
}
Baris ke-3 dan ke-5 Kode Program 2 menunjukkan bahwa server merespond request dari client, dalam hal ini adalah mobile device. Respond dari
server ini kemudian ditangkap oleh aplikasi mobile lalu ditampilkan dalam bentuk
alert sebagai konfirmasi, apakah account berhasil dibuat atau tidak.
Mekanisme yang hampir sama juga dilakukan pada saat pengguna sign in ke
dalam aplikasi. Kemudian setelah aplikasi memastikan bahwa data tidak kosong,
aplikasi mengirimkan data yang dimasukkan pengguna ke server. Server akan merespond request dari client setelah mengecek ke dalam database apakah username
dan password yang dikirimkan cocok. Jika username atau password tidak cocok,
maka aplikasi akan menampilkan alert peringatan. Jika username dan password
yang dimasukkan cocok, maka aplikasi akan mendapatkan data lokasi user
(latitude dan longitude) menggunakan Location API pada J2ME. Potongan kode
program untuk mendapatkan lokasi user dapat dilihat pada Kode Program 3.
Kode Program 3 Mendapatkan Latitude dan Longitude
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
GPSstatus = "Getting data ...";
provider = LocationProvider.getInstance(criteria);
Location location = provider.getLocation(60);
Coordinates coordinates = location.getQualifiedCoordinates();
if (coordinates != null) {
GPSstatus = "GPS active";
latitude = coordinates.getLatitude();
longitude = coordinates.getLongitude();
} else {
GPSstatus = "GPS inactive";}
Aplikasi akan mendapatkan lokasi user setiap 30 detik kemudian
mengirimkan data tersebut ke server. Setelah proses tersebut, aplikasi akan
13
menampilkan menu pada aplikasi mobile. Terdapat 3 pilihan yang terdapat dalam
menu, yaitu start, help, dan credits seperti ditunjukkan Gambar 10.
Gambar 10 Tampilan Menu Aplikasi Mobile
Menu about memberikan informasi mengenai pembangun bus tracking
system ini, dan menu help memberikan petunjuk mengenai jalannya aplikasi.
Menu utama dalam aplikasi ini adalah menu start. Saat user memilih menu start,
aplikasi akan menampilkan form GPS. Form GPS memberikan informasi
mengenai status GPS user, apakah active atau inactive. Form ini juga
menampilkan data lokasi user berupa latitude dan longitude seperti ditunjukkan
Gambar 11.
Gambar 11 Form GPS
Terdapat dua command dalam form ini, yaitu back dan next. Command back
tersedia untuk kembali ke menu sedangkan command next hanya tersedia jika
aplikasi berhasil mendapatkan latitude dan longitude user. Command next
digunakan untuk melanjutkan ke form berikutnya, yaitu form mode map. Pada
form mode map terdapat choice group yang berisi pilihan mode map yang
tersedia, yaitu regular, track by specific bus, dan track by route. Mode regular
menampilkan semua bus dan user online dalam radius tertentu dari user dengan
tampilan map. Mode track by specific bus menampilkan user dan bus online yang
dipilih dengan tampilan map. Mode track by route menampilkan user dan semua
bus online dengan route yang pilih dengan tampilan map.
14
Gambar 12 Form Mode Map
Gambar 12 menunjukkan Form Mode Map. Data yang didapatkan pada
form ini akan dikirim ke server. Kode Program 4 menunjukkan penyaringan data
berdasarkan mode yang dilakukan oleh aplikasi untuk kemudian dikirim ke
server.
Kode Program 4 Penyaringan Data Mode Map Yang Ditentukan User
1. if (useLegend == false) {
2.
if (mode.equalsIgnoreCase("Regular")) {
3.
urls = "http://locator.16mb.com/ShowAll.php?width=" + width +
"&height=" + height + "&me=" + uid + "&radius=" + radius;
4.
}
5.
if (mode.equalsIgnoreCase("Track Specifik Bus")) {
6.
urls = "http://locator.16mb.com/ShowAll.php?width=" + width +
"&height=" + height + "&me=" + uid + "&track=" + plat;
7.
}
8.
if (mode.equalsIgnoreCase("Track By Route")) {
9.
urls = "http://locator.16mb.com/ShowAll.php?width=" + width +
"&height=" + height + "&me=" + uid + "&route=" + route;
10.
}
11. }
12. if (useLegend == true) {
13.
if (mode.equalsIgnoreCase("Track By Route")) {
14.
urls = "http://locator.16mb.com/ShowAll.php?width=" + width +
"&height=" + height + "&me=" + uid + "&route=" + route + "&legend=true";
15.
}
16.
if (mode.equalsIgnoreCase("Regular")) {
17.
urls = "http://locator.16mb.com/ShowAll.php?width=" + width +
"&height=" + height + "&me=" + uid + "&radius=" + radius + "&legend=true";
18.
}
19. }
Di server data yang diterima akan diolah sehingga menghasilkan sebuah url
untuk mendapatkan map berupa image dari Google. Aplikasi kemudian membaca
url yang telah diolah oleh server tersebut, kemudian menembakkannya untuk
mendapatkan image Google map. Proses tersebut masukkan ke dalam sebuah
fungsi yang mengembalikan sebuah image map, seperti ditunjukkan Kode
Program 5.
Kode Program 5 Mendapatkan Image Map
1.
2.
3.
4.
5.
connection = (HttpConnection) Connector.open(url);
connection.setRequestMethod(HttpConnection.GET);
inputStream = connection.openInputStream();
map = Image.createImage(inputStream);
return map;
15
Berikutnya adalah penggambaran image map pada aplikasi. Image digambar
pada Canvas di J2ME, seperti ditunjukkan Kode Program 6.
Kode Program 6 Penggambaran Gambar Map Di Dalam Aplikasi Mobile
1.
2.
3.
4.
5.
6.
7.
Image map = getGoogleMap(this.url);
if (map != null) {
g.drawImage(map, 0, 0, Graphics.LEFT | Graphics.TOP);
} else {
g.setColor(255, 0, 0);
g.drawString("Getting Image..", 20, 20, 0);
}
Tampilan map pada aplikasi mobile dengan mode-mode yang tersedia
ditunjukkan pada Tabel 3.
Tabel 3 Tampilan Map Dengan Beragam Mode
Mode Regular
Mode Regular dan Use Legend
Mode Track By Specifik Bus
Mode Track By Route
Mode Track By Route dan
Use Legend
16
Pada tampilan map, terdapat command back dan show legend. Command
show legend hanya akan tampil apabila user menggunakan mode use legend.
Legend berisi keterangan label pada map, username, kecepatan bus dan estimated
time of arrival suatu bus (ETA). Pada legend terdapat pula keterangan apabila user
terdeteksi di dalam bus, dalam hal ini user berada sekitar 20 meter dari bus.
Tabel 4 Tampilan Legend Aplikasi Mobile
Legend User Is In The Bus
Legend
Penghitungan ETA pada legend dilakukan dengan menggunakan rumus
seperti berikut :
v = kecepatan rata-rata (km/jam)
s = total jarak tempuh (km)
t = total waktu tempuh (jam)
Kecepatan rata-rata dihitung dengan cara membagi total jarak yang
ditempuh dengan total waktu yang ditempuh selama 10 menit atau pada 20 data.
Data tersebut diperoleh dari aplikasi yang melakukan update data setiap 30 detik,
ini berarti dalam 10 menit terdapat 20 data. Kemudian data ke-21 akan menjadi
data pertama. Sehingga dapat disimpulkan bahwa total jarak keseluruhan sama
dengan jarak rata-rata 19 data ditambah dengan 1 data terbaru yaitu data jarak ke21. Waktu keseluruhan sama dengan waktu rata-rata 19 data ditambah dengan
17
satu data terbaru yaitu data waktu ke-21. Jarak rata-rata 19 data dapat diperoleh
dari 19/20*jarak keseluruhan, hal yang sama juga dilakukan pada perhitungan
waktu rata-rata. Untuk mempermudah perhitungan maka diberikan konstanta 0,95
yang merupakan hasil dari 19/20. Kode program 7 merupakan proses perhitungan
total jarak dan total waktu.
Kode Program 7 Penghitungan Total Jarak dan Total Waktu
1.
2.
3.
4.
5.
6.
7.
8.
9.
$distance = $row['DISTANCE'];
$interval = $row['TIMEDIFF'];
$totalDistance = $row['TotalDist'];
$totalInterval = $row['TotalTime'];
if ($interval > 0) {
$totalDistance = ($totalDistance * 0.95) + $distance;
$totalInterval = ($totalInterval * 0.95) + $interval;
}
Aplikasi Web digunakan oleh admin untuk melakukan pemantau bus dan
manage data. Untuk masuk ke dalam aplikasi, admin harus melakukan login
terlebih dahulu. Setelah berhasil login ke dalam aplikasi, maka sistem akan
menampilkan halaman dashboard. Pada halaman dashboard terdapat beberapa
menu seperti map, management data, about dan help. Dalam menu map, admin
dapat melihat posisi bus dengan tampilan map dari Google Maps. Admin juga
dapat mengetahui apakah suatu bus online ataupun offline. Bus dikatakan offline
jika sistem tidak mendapatkan lokasi bus dalam 15 menit. Bus offline ditandai
dengan marker berwarna abu-abu. Pada bagian bawah halaman ini terdapat
keterangan yang menujukkan label pada peta, warna, dan waktu terakhir
pengiriman data yang dilakukan. Keterangan yang dituliskan dengan warna abuabu juga menunjukkan bus yang offline, sesuai dengan marker pada map.
Halaman Map pada aplikasi Web seperti ditunjukkan Gambar 13.
Gambar 13 Halaman Map Aplikasi Web
18
Menu berikutnya adalah management data, pada halaman ini admin dapat
melakukan tambah, ubah, dan hapus data. Apabila admin menambah data maka
data yang dimasukkan secara default akan bertipe bus. Tombol toogle type
digunakan untuk mengubah tipe dari data yang ada dari bus menjadi user dan
begitu pula sebaliknya. Saat admin memilih tombol edit, maka data yang
ditampilkan akan berubah menjadi textfield. Data kemudian dapat diubah oleh
admin. Menu berikutnya adalah menu about yang menampilkan informasi
mengenai pembangun sistem. Menu terakhir adalah menu help, menu ini berguna
untuk memudahkan admin dalam menggunakan aplikasi website. Halaman ini
berisi keterangan dan penjelasan lengkap mengenai penggunaan website.
Halaman Management Data pada aplikasi admin ditunjukkan Gambar 14.
Gambar 14 Halaman Management Data
7.
Pengujian Sistem
Pengujian Alfa merupakan pengujian program yang dilakukan oleh
pembuat aplikasi ataupun orang-orang yang terlibat di dalamnya. Pengujian alfa
hanya untuk sirkulasi internal dan masalah (error) atau ketidaklengkapan pada
aplikasi yang dapat diduga sebelumnya [10]. Tabel 5 merupakan pengujian alfa
pada sistem yang dibangun.
Tabel 5 Pengujian Alfa
Pengujian
Sign In
Create Account
Mendapatkan GPS data
Update GPS data setiap 30 detik
Map tampil sesuai mode
Map refresh setiap 30 detik
Online/Offline
Edit data user (insert, update, delete)
Status
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Valid
19
Pengujian Beta dilakukan dengan cara pembagian kuesioner kepada
sample user. Sample user berjumlah 30 responden yang berumur 17-30 tahun
yang rata-rata dalam sebulan menggunakan jasa transportasi bus sebanyak 1-4
kali. Responden berasal dari berbagai kalangan seperti guru, mahasiswa, siswa,
karyawan dan swasta. Kelompok pengujian beta tidak menyertakan orang-orang
yang terlibat dalam pembuatan aplikasi. Metode yang digunakan dengan cara
memberikan kuesioner yang berisi pertanyaan seputar aplikasi.
Dari hasil yang diperoleh dari jawaban para responden terhadap kuesioner,
maka dapat disimpulkan bahwa sebanyak 83,3% menjawab bahwa responden
belum pernah melihat aplikasi sejenis ini sebelumnya. Kemudian sebanyak 73%
menjawab bahwa aplikasi ini mudah digunakan, dan 83,3% menjawab bahwa
tampilan aplikasi menarik. Responden yang menjawab sistem dapat membantu
untuk menemukan lokasi bus yang ingin ditumpangi sebesar 80%. Jumlah
presentase dari responden yang menjawab aplikasi ini membantu dalam
melakukan koordinasi saat penjemputan penumpang sebesar 70%.
6.
Simpulan
Simpulan dari penelitian ini adalah bus tracking system berbasis J2ME dan
Web Server menggunakan teknologi Global Positioning System dapat dirancang
dan dibangun dengan cara mobile phone mendapatkan data GPS berupa latitude
dan longitude menggunakan Location API pada J2ME. Data tersebut kemudian
dikirimkan ke server, server lalu meng-update data tersebut ke dalam database.
Setelah itu untuk menampilkan map, mobile phone melakukan request ke server.
Kemudian server menentukan data yang akan ditampilkan dari database ke dalam
map sesuai dengan request dalam bentuk url. Mobile phone lalu menangkap url
yang dikirimkan oleh server, kemudian me-request ke Google Map. Maka mobile
phone akan mendapatkan image map dari Google Maps dan menampilkannya ke
dalam aplikasi. Dari hasil pengujian didapatkan kesimpulan bahwa sistem yang
dibangun membantu dalam memberikan informasi bus yang dicari. Adapun saran
yang dapat dimanfaatkan bagi pengembangan dimasa mendatang yaitu sistem
yang dibangun dapat dikembangkan dengan menggunakan teknologi Cloud.
7.
Daftar Pustaka
[1]
Pingdom, 2012, Nokia and Symbian still on top of the mobile web, but for
how long, http://royal.pingdom.com/2012/02/22/nokia-and-symbian-stillon-top-of-the-mobile-web-but-for-how-long/. Diakses tanggal 3 Maret 2012.
Tim Pengembang JENI, 2007, Buku Pedoman JENI, Malang: Depdiknas.
Hakim, 2011, Monitoring Lokasi Anak Menggunakan Handphone ber-GPS,
Institut Teknologi Sepuluh November.
Kumara, Kadek, 2011, Sistem Pelacakan Posisi Bus Trans Jogja Berbasis
Mobile dan Web Server, Sekolah Tinggi Manajemen Informatika dan
Komputer Amikom Yogyakarta.
[2]
[3]
[4]
20
[5]
Tim
Pengembang
Timble,
http://ww2.trimble.com/GPS_tutorial/whatGPS.aspx. What is GPS. Diakses
tanggal 20 Mei 2012.
[6] Mahmoud, Qusay, 2004, J2ME and Location-Based Services,
http://developers.sun.com/mobility/apis/articles/location/. Diakses tanggal
20 Maret 2012.
[7] Tim Pengembang Google, Static Maps API V2 Developer Guide,
https://developers.google.com/maps/documentation/staticmaps/.
Diakses
tanggal 20 Maret 2012.
[8] Pressman, Roger.S. 2001. Software Engineering : A Practioner’s Approach.
4th, Boston: McGrawHill.
[9] UML 1.3a lphaR S, Object ManagemenGroup Inc, March 1999.
[10] Vaughan, Tay, 2004, Multimedia: Making It Work, Edisi 6, Yogyakarta:
ANDI.
21
Download