BAB IV IMPLEMENTASI DAN PENGUJIAN Bab ini membahas mengenai implementasi dan pengujian terhadapa perangkat lunak yang dibangun pada Tugas Akhir ini. Pembahasan mengenai implementasi dipaparkan pada Subbab 4.1, sedangkan pembahasan mengenai pengujian akan disampaikan pada Subbab 4.2. 4.1 Implementasi Bagian ini akan memuat penjelasan mengenai batasan implementasi, lingkungan perangkat keras dan perangkat lunak, serta implementasi yang dilakukan berdasarkan hasil pada tahap perancangan. Penjelasan pada subbab ini meliputi lingkungan pengembangan yang digunakan, batasan implementasi dan proses dan hasil implementasi 4.1.1 Lingkungan Pengembangan Aplikasi ini dikembangkan dengan spesifikasi perangkat keras dan perangkat lunak sebagai berikut: 1. Sistem operasi Windows XP Professional Service Pack 2 2. Prosesor Intel Pentium 4 Clock 2.40 GHz 3. Memori RAM 1GB 4. Apache Ant 1.7.0 5. IDE Eclipse Europa 3.3.2 6. Java Standard Edition Development Kit Versi 6 Update 5 7. Android Standar Development Kit (SDK) versi m5-rc15 8. Android Development tools ( Emulator, Eclipse IDE Plugin, Dalvik Debug Monitor Service, Android Debug Bridge, Activity Creator) 9. Proxifier versi 2.7 trial license 4.1.2 Batasan Implementasi Batasan dalam melakukan implementasi perangkat lunak pelacakan dan penelusuran pada Tugas Akhir ini adalah saat ini perangkat lunak hanya mendukung GIS dengan server Google Map & Google Earth. Perangkat lunak IV-1 IV-2 juga hanya dibangun di atas emulator Android tidak di-deploy pada device karena saat Tugas Akhir ini dikerjakan belum terdapat handset Android di pasaran. 4.1.3 Permasalahan Implementasi Bagian ini akan memuat masalah-masalah dalam implementasi perangkat lunak pelacakan dan penelusuran terutama masalah yang disebabkan oleh keterbatasan dan kekurangan platform Android. Tabel IV-1 berisi daftar masalah-masalah tersebut, beserta alternatif cara penanganan, dan solusi implementasi yang digunakan dalam Tugas Akhir ini untuk menangani masalah tersebut. Tabel IV-1 Masalah Implementasi N Masalah Penanganan Implementasi Koneksi harus diredirect secara manual ke proxy server (menerapkan transparent proxy) SMS antar emulator harus disimulasikan secara manual Memanfaatkan software Proxifier yang memungkinkan pengarahan koneksi secara manual ke proxy server o 1 Emulator Android belum mendukung secara penuh koneksi jaringan pada lingkungan ber-proxy 2 Emulator Android belum mendukung koneksi SMS antar emulator 3 Emulator Android belum mendukung perangkat real untuk GPS receiver melainkan hanya mensupport data NMEA Data dari GPS receiver harus dimasukkan secara manual ke dalam emulator 4 Kelas Parcelable tidak dapat berjalan jika melakukan development pada IDE Eclipse Kompilasi harus menggunakan builder lain “Parcelables currently do not work if you're using Eclipse Untuk pengiriman SMS disimulasikan melalui menampilkan notifikasi. Untuk penerimaan SMS disimulasikan melalui telnet ke debug port dari Emulator Data dari GPS receiver didump ke log bernama NMEA yang kemudia dipush ke dalam emulator melalui perintah adb push NMEA /data/data/misc/lo cation/gps Menggunakan builder ANT IV-3 N Masalah Penanganan Implementasi Pengiriman pesan bertipe selain string harus dikonversi secara manual Untuk pengiriman tipe Location maka longitude & latitude dari tipe tersebut harus diekstraksi kemudian dikonversi ke string. Ketika penerimaan maka harus dikonversi balik dari string menjadi tipe Location. Mencari dokumentasi secara manual ataupun dari sumber lain. Tersedia third-party yang menyediakan dokumentasi tidak resmi untuk android di http://www.androidjavadoc .com IMSI harus diatur melalui kode program Mengatur IMSI melalui perintah SystemProperties. set( TelephonyPropertie s.PROPERTY_IMSI, nomor_telepon); Interaksi dengan objek di MapOverlay harus dilakukan melalui cara lain. Interaksi dengan objek di MapOverlay dilakukan melalui halaman lain, tidak langsung melalui halaman map. o 5 6 7 8 9 plugin. This is a known limitation” [GOO08] GTalk Service Android ternyata hanya mendukung pengiriman pesan string meskipun parameter method mendukung pengiriman tipe lain. “Althought the class Bundle can contain data of different types, GTalkService currently only supports string types” [GOO08] API Android belum didokumentasikan secara lengkap. “As with the entire SDK, this is an early look, so there likely are gaps in functionality and documentation” [GOO08] Emulator belum mendukung pengaturan nomor telepon (IMSI) Event handling pada MapOverlay belum diimplementasikan secara penuh. “Event handling and the focus mechanism for Overlays have not been fully implemented” [GOO08] Melakukan Terdapat API yang ternyata implementasi belum memiliki secara manual implementasi. “Note: this class is currently a mock-only” [GOO08] Melakukan implementasi secara manual IV-4 4.1.4 Implementasi Kelas Setiap kelas pada aplikasi diimplementasikan dalam bahasa java, dimana setiap kelas utama akan diimplementasikan dalam sebuah file. Kelas yang diimplementasikan mengacu pada perancangan yang telah dilakukan pada Subbab 3.4, namun disesuaikan dengan framework pengembangan pada platform Android. Daftar kelas yang telah diimplementasikan dapat dilihat pada Tabel IV-2: Tabel IV-2 Daftar Kelas Implementasi Nama Kelas Nama File Fisik HalamanMuka.java HalamanMuka HalamanPelacakan.java HalamanPelacakan HalamanPelacakanEdit.java HalamanPelacakanEdit HalamanPenelusuran.java HalamanPenelusuran HalamanPenelusuranEdit.java HalamanPenelusuranEdit HalamanPeta.java HalamanPeta Pelacakan.java Pelacakan R.java R ResponsePelacakan.java ResponsePelacakan ResponsePelacakanService.java ResponsePelacakanService TargetRemote.java TargetRemote KoneksiGps.java KoneksiGps KoneksiRemote.java KoneksiRemote Message.java Message HalamanKonfigEditWhitelist.java HalamanKonfigEditWhitelist HalamanKonfigKoneksi.java HalamanKonfigKoneksi HalamanKonfigPasswd.java HalamanKonfigPasswd HalamanKonfigWhitelist.java HalamanKonfigWhitelist HalamanPreferensi.java HalamanPreferensi Konfigurasi.java Konfigurasi HalamanKonfigEditWhitelist.java HalamanKonfigEditWhitelist HalamanKonfigKoneksi.java HalamanKonfigKoneksi HalamanKonfigPasswd.java HalamanKonfigPasswd HalamanKonfigWhitelist.java HalamanKonfigWhitelist HalamanPreferensi.java HalamanPreferensi Konfigurasi.java Konfigurasi IV-5 4.1.5 Implementasi Antarmuka Implementasi antarmuka dari perangkat lunak dilakukan berdasarkan rancangan yang telah terdapat pada Subbab 3.4.3 namun disesuaikan dengan komponen-komponen view yang tersedia pada framework GUI Android. Implementasi antarmuka ditampilkan dalam bentuk screenshot dari emulator. Gambar IV-1 memperlihatkan screenshot fitur utama sistem, sedangkan detail hasil implementasi antarmuka dapat ditemukan pada Lampiran E. Gambar IV-1 Antarmuka Hasil Penelusuran IV-6 4.2 Pengujian Bagian ini akan memuat penjelasan mengenai pengujian terhadap perangkat lunak yang telah diimplementasikan. Hal-hal yang akan dibahas antara lain adalah tujuan pengujian, rencana pengujian, dan analisis hasil pengujian. 4.2.1 Tujuan Pengujian Tujuan dilakukannya pengujian adalah untuk mengetahui apakah aplikasi telah berjalan sesuai dengan sasaran pembuatan aplikasi, yaitu menguji apakah implementasi dari perangkat lunak pelacakan dan penelusuran telah berjalan dengan baik atau tidak terhadap skenario use caseyang sudah dirancang. 4.2.2 Rencana Pengujian Pengujian aplikasi pelacakan dan penelusuran pada tugas akhir ini dilakukan berdasarkan rancangan setiap skenario dari use case (skenario untuk tiap use case dapat dilihat pada Lampiran A). Pengujian akan dilakukan dengan metode blackbox pada lingkungan/kondisi eksekusi yang ideal. 4.2.3 Lingkungan Pengujian Aplikasi diuji pada lingkungan dengan spesifikasi perangkat keras dan perangkat lunak sebagai berikut. 4.2.3.1 Spesifikasi Perangkat Keras Lingkungan Pengujian 1. Tiga (3) buah komputer dengan memori RAM 1 GB, Prosesor Intel Pentium 4 Clock 2.40 GHz, dan spesifikasi standar. 2. Akses internet dengan Local Area Network (LAN) pada lingkungan ber-proxy dengan alamat proxy server di cache.itb.ac.id:8080 4.2.3.2 Spesifikasi Perangkat Lunak Lingkungan Pengujian 1. Sistem operasi Windows XP Professional Service Pack 2 2. Java Standard Edition Development Kit Versi 6 Update 5 3. Android Development tools: Emulator dan Android Debug Bridge (ADB) 4. Proxifier versi 2.7 trial license IV-7 4.2.3.3 Spesifikasi Lain Lingkungan Pengujian 1. Tiga (3) buah akun jaringan ITB untuk mengakses internet 2. Tiga (3) buah akun layanan Google 3. Tiga (3) buah data uji GPS berupa file log yang berisi data GPS dalam format NMEA sentence GPRMC. 4.2.4 Prosedur Pengujian Persiapan yang dilakukan dalam melakukan pengujian aplikasi adalah sebagai berikut: 1. menyiapkan 3 buah komputer desktop yang terhubung ke internet dan menginstall sistem operasi Windows XP, platform Java SE, emulator Android, ADB , dan Proxifier. 2. mengkonfigurasi software Proxifier di masing-masing komputer untuk meredirect semua koneksi dari Emulator Android ke proxy server cache.itb.ac.id port 8080, kemudian memasukkan akun jaringan ITB agar dapat di-otentikasi oleh proxy server. 3. mengkonfigurasi XMPP Setting Emulator di masing-masing komputer dengan akun layanan Google yang sudah dipersiapkan sebelumnya. 4. memasukkan data uji NMEA di tiap emulator dengan perintah: adb push <nama-file-nmea> /data/data/misc/location/gps 5. melakukan proses pengujian sesuai dengan setiap skenario use case. 6. mencatat hasil pengujian. 4.2.5 Hasil Pengujian Tabel IV-3 memberikan daftar ringkasan hasil akhir pengujian. Detail pengujian dapat dilihat pada Lampiran F. Tabel IV-3 Hasil Pengujian No Skenario Hasil 1 UC-01-S01 Berjalan. 2 UC-01-S02 Berjalan. 3 UC-02-S01 Berjalan. 4 UC-02-S02 Berjalan. 5 UC-02-S03 Berjalan. 6 UC-02-S04 Berjalan. IV-8 7 UC-02-S05 Berjalan. 8 UC-02-S06 Berjalan. 9 UC-03-S01 Berjalan. 10 UC-04-S01 Berjalan. 11 UC-05-S01 Berjalan. 12 UC-06-S01 Berjalan. 13 UC-06-S02 Berjalan. 14 UC-06-S03 Berjalan. 15 UC-06-S04 Berjalan. 16 UC-06-S05 Berjalan. 17 UC-07-S01 Berjalan. 18 UC-07-S02 Berjalan. 4.2.6 Kesimpulan Hasil Pengujian Pada Subbab Analisis Hasil Pengujian ini akan dibahas mengenai hasil pengujian berdasarkan skenario yang telah diujikan pada Subbab 4.2.5. Skenario UC-01-S01 dan UC-02-S02 menguji apakah perangkat lunak dapat melakukan pelacakan. Pada kasus ini, pelacak berhasil mengirimkan request pelacakan melalui SMS. Namun karena emulator Android belum mendukung koneksi antar emulator melalui jaringan mobile maka target belum dapat menerima SMS tersebut. Sehingga untuk mensimulasikan skenario, sistem pelacak hanya menampilkan message yang dikirim melalui notifikasi, kemudian penguji melakukan pengiriman SMS secara manual ke sistem target melalui remote terminal dari emulator. Remote terminal ini diakses melalui cara: telnet localhost <port-emulator>, kemudian mengetikan perintah: sms send <nomorpengirim> <message>. Jika password yang dikirimkan benar, maka pesan yang diterima berupa koordinat lokasi, namun jika password salah, maka pesan berupa notifikasi kesalahan. Skenario UC-02-S01 hingga UC-02-S06 menguji apakah perangkat lunak dapat melakukan penelusuran melalui layanan koneksi paket data yang memanfaatkan arsistektur peer-to-peer dengan berbantuan server GTalk. Pada kasus ini, pelacak IV-9 berhasil mengirimkan request pelacakan kepada target. Jika pelacak menerima pesan error atau mengalami kondisi-kondisi seperti internet maka pelacak akan menampilkan pesan error sesuai kondisi yang terjadi. Skenario UC-03-S01 menguji apakah perangkat lunak dapat menampilkan peringatan jika target yang dilacak keluar dari batas yang telah ditentukan. Pada kasus ini, perangkat lunak berhasil menampilkan peringatan ketika target keluar dari batas yang telah ditentukan. Skenario UC-04-S01 menguji apakah perangkat lunak dapat menyimpan preferensi penelusuran secara persisten. Pada kasus ini, perangkat lunak berhasil menyimpan preferensi penelusuran. Skenario UC-05-S01 menguji apakah perangkat lunak dapat melakukan penelusuran secara otomatis setiap selang waktu tertentu. Pada kasus ini, perangkat lunak dapat melakukan pelacakan secara otomatis berdasarkan preferensi periode yang telah diatur. Skenario UC-06-S01 hingga UC-06-S05 menguji apakah perangkat lunak dapat menjawab request pelacakan secara otomatis. Pada kasus ini, perangkat lunak dapat menjawab request pelacakan secara otomatis tanpa perlu disetujui oleh pengguna. Jika request tidak berhasil melalui security profile maka sistem akan membalas dengan pesan kesalahan. Jika ternyata terdapat kondisi-kondisi yang mengakibatkan GPS tidak dapat diakses misalnya seperti GPS receiver tidak menerima sinyal dari satelit atau ketika receiver memasuki gedung, maka sistem akan mengembalikan lokasi terakhir yang diketahui. Skenario UC-07-S01 dan UC-07-S02 menguji apakah perangkat lunak dapat menyimpan konfigurasi sistem secara persisten. Pada kasus ini, perangkat lunak berhasil menyimpan semua konfigurasi sistem secara persisten Berdasarkan hasil pengujian terhadap 18 buah skenario tersebut, disimpulkan bahwa perangkat lunak yang telah dibangun pada Tugas Akhir ini telah berjalan dengan baik.