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