BAB IV IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dijabarkan implementasi dan pengujian dari perangkat lunak yang dibangun berdasarkan hasil analisis dan perancangan pada BAB III.
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 bada subbab ini meliputi lingkungan pengembangan yang digunakan, batasan implementasi dan proses dan hasil implementasi.
4.1.1 Lingkungan Pengembangan Aplikasi ini dikembangkan menggunakan sistem operasi Windows XP Professional Service Pack 2 (5.1 Build 2600) dengan spesifikasi perangkat keras: prosesor AMD Turion 64 Mobile MK-36
2.0 GHz, dan memori DDR 1024 MB. Tools yang
digunakan untuk pengembangan adalah Netbeans IDE 5.5.1 dengan Mobility pack 5.5.1 dan Sun Java SDK Standard Edition version 1.6.0_01, selain itu digunakan Sony Erricsson SDK 2.2.4 Wireless Toolkit dan Sun Java Wireless Toolkit 2.5.1. Pengembangan aplikasi ini hanya menggunakan pustaka standar yang disediakan dari platform J2ME dan tidak menggunakan pustaka dari paket opsional tertentu (JSR).
4.1.2 Batasan Implementasi Aplikasi yang dibangun pada tugas akhir ini memiliki batasan sebagai berikut: •
Hanya diimplementasikan pada profile MIDP 2.0 dan CLDC 1.1
•
Compatible dengan semua mobile phone merk SonyEricsson dengan Java Platform Versi 7
•
Antarmuka aplikasi client tampil optimal pada mobile phone merk SonyEricsson dengan layar berukuran 176x220 pixels.
•
Bebreapa fungsional utama tertentu, sangat tergantung pada availability dan kualitas koneksi internet dengan GPRS yang ada pada perangkat, fungsional ini mencakup penambahan dan penghapusan contact.
4.1.3 Proses dan Hasil Implementasi Pengembangan aplikasi dengan J2ME terdiri dari beberapa tahapan yaitu implementasi kelas, implememtasi antarmuka dan pemaketan. Proses implementasi IV-1
IV-2 dilakukan pada emulator yang tersedia oleh Sun J2ME Wireless Toolkit 2.5.1 dan Sony Ericsson WTK 2.2.4, dan perangkat mobile Sony Ericsson W810i dengan kompiler Sun Java SDK 1.6.0_01.
4.1.3.1 Implementasi Kelas Implementasi kelas aplikasi dilakukan berdasarkan kelaskelas yang diperoleh pada tahap
perancangan.
Implementasi
dilakukan
dengan
menggunakan
bahasa
pemrograman Java. Dalam implementasi ini ada beberapa penambahan kelas yang belum ada pada tahap perancangan. Daftar implementasi kelas dapat dilihat pada Tabel IV-1 Tabel IV-1 Daftar Implementasi Kelas
No
Nama Kelas
Nama File Source Code
1
MainMidlet
BrianMidlet.java
2
LoginScreen
LoginScreen.java
3
SigningScreen
SigningScreen.java
4
Session
Session.java
5
ContactScreen
ContactScreen.java
6
MessageScreen
MessageScreen.java
7
AddStatusScreen
AddStatusScreen.java
8
StatusScreen
StatusScreen.java
9
ConnectionHandler
ConnectionHandler.java
10
DirectConnectionHandler DirectConnectionHandler.java
11
Util
Util.java
12
YahooUser
YahooUser.java
13
YMSG9Packet
YMSG9Packet.java
14
Session
Session.java
15
SessionListener
SessionListener.java
16
SessionEvent
SessionEvent.java
17
YahooClient
YahooClient.java
18
Config
BrianConfig.java
19
ActiveContactHandler
ActiveContactHandler.java
IV-3
4.1.3.2 Implementasi Antarmuka Antarmuka perangkat lunak yang telah dirancang pada subbab 3.4 diimplementasikan dengan beberapa modifikasi. Pada saat implementasi dilakukan juga penambahan komponen yang belum ada pada rancangan, serta penambahan beberapa antarmuka yang tidak terdapat pada saat perancangan antarmuka. Antarmuka aplikasi ini secara lengkap dapat dilihat pada lampiran. Antarmuka yang ditambahkan adalah : 1. AddContactScreen Layar yang ditampilkan ketika user ingin menambah contact baru, sebleumnya layar ini berupa popup pada layar ContactScreen. 2. StatusScreen Layar yang ditampilkan ketika user ingin mengganti status nya. 3. InfoContactScreen Layar yang ditampilkan ketika user ingin menambah contact baru, sebleumnya layar ini berupa popup pada layar ContactScreen.
4.1.3.3 Pemaketan Proses pemaketan dilakukan untuk menghasilkan sebuah file instalasi yang dikenali oleh perangkat mobile. File instalasi untuk platform J2ME terdiri dari dua buah file yaitu file jar dan file jad. File jar adalah file yang berisi kumpulan file .class hasil kompilasi dan verifikasi file java. File jad adalah sebuah file yang mendeskripsikan aplikasi Java yang ada pada file jar. Proses pembuatan kedua file ini telah disediakan oleh IDE Netbeans dan J2ME Wireless Toolkit yaitu dengan memilih menu Build, file jad dapat dimodifikasi dengan memilih menu settings. File hasil pemaketan (jar dan jad) dapat disimpan pada subdirektori dist/ pada direktori project sesuai konfigurasi J2ME Wireless Toolkit. Kedua file hasil pemaketan, yaitu BrianMessenger.jar dan BrianMessenger.jad, dapat diinstal ke perangkat mobile.
4.2 Pengujian Tujuan dilakukannya pengujian terhadap suatu perangkat lunak adalah untuk mengetahui apakah aplikasi telah berjalan sesuai dengan sasaran pembuatan aplikasi. Pengujian aplikasi ini dilakukan dengan menguji apakah aplikasi berjalan sesuai dengan sasaran aplikasi yaitu skenario untuk tiap use case yang telah dibuat. Pengujian dilakukan pada dua lingkungan yang berbeda yaitu yang pertama dilakukan menggunakan emulator pada komputer desktop dengan jaringan kabel dan yang kedua
IV-4 dilakukan pada telepon seluler dengan jaringan nirkabel. Pengujian pertama dibutuhkan karena dengan menggunakan emulator dan koneksi jaringan kabel, pengujian dapat lebih cepat dilakukan, sehingga kesalahan aplikasi dapat cepat diidentifikasi. Proses pengujian lebih cepat dilakukan karena pengujian pertama tidak mengalami keterbatasan spesifik perangkat mobile dan koneksi nirkabel pada kasus nyata seperti misalnya server yang sedang down, koneksi provider yang sedang lambat, dan sebagainya. Pengujian kedua merupakan pengujian pada lingkungan sebenarnya yaitu lingkungan tujuan aplikasi ini dikembangkan. Pengujian kedua dilakukan pada sebuah telepon seluler yang mendukung Java dan menggunakan koneksi nirkabel dari layanan GPRS sebuah provider seluler. Pengujian di kedua platform tersebut diharapkan sama hasilnya, jika tidak sama berarti ada masalah di availability dan kualitas koneksi nirkabel dari layanan GRPS sebuah provider seluler.
4.2.1 Rencana Pengujian Seperti telah disebutkan sebelumnya bahwa pengujian akan dilakukan dengan mengacu pada skenario tiap use case, baik untuk skenario normal ataupun skenario alternatif. Metode yang digunakan dalam pengujian tiap use case adalah metode black-box. Metode black-box digunakan ketika pengujian memperhatikan masukan dan keluaran akhir dari use case yang dijalankan. Rencana untuk kedua lingkungan pengujian dapat dilihat pada Tabel IV-2.
4.2.2 Prosedur Pengujian Berikut adalah prosedur rencana pengujian aplikasi ini, pengujian tidak terurut, dan bisa saja melibatkan beberapa use case sekaligus. Tabel IV-2 Rencana Pengujian
No.
Use Case
Pengujian
Use case ID
1
Login
Skenario normal
UC01-001
2
Logout
Skenario normal
UC02-001
3
Send Message
Skenario normal
UC03-001
Skenario alternatif
UC03-002
4
Receive Message
Skenario normal
UC04-001
5
Add New Contact
Skenario normal
UC05-001
6
Remove Contact
Skenario normal
UC06-001
7
Change Status
Skenario normal
UC07-001
IV-5
8
Manage View
Skenario normal
UC08-001
Skenario alternatif
UC08-002
Sebelum melakukan pengujian, ada beberapa hal yang harus dipersiapkan yaitu: 1. Perangkat mobile atau emulator yang mendukung platform Java dengan spesifikasi minimum konfigurasi CLDC 1.1 dan MIDP 2.0 dan agar tampilannya optimal, ukuran layar sebaiknya 176 x 220 pixels. 2. Koneksi, pengujian dengan emulator dapat menggunakan koneksi kabel, sedangkan untuk pengujian dengan perangkat mobile dibutuhkan koneksi nirkabel dari provider seluler (misal: GPRS). Pengujian akan dilakukan terhadap setiap use-case dan dilakukan terurut sesuai dengan apa yang akan user lakukan pada umumnya ketika mengeksekusi program. Sehingga secara berurutan testing akan dilakukan terhadap: 1. Login 2. Send Message 3. Receive Message 4. Change Status 5. Add Contact 6. Delete Contact 7. Manage View 8. Logout
Semua use case selain login menjalankan use case login sehingga pengujian terhadap ketujuh use case ini mencakup pengujian terhadap use case login.
4.2.3 Kasus Pengujian Kasus uji yang dibahas pada subbab ini adalah pengujian pada telepon seluler dengan koneksi nirkabel. Telepon seluler yang digunakan adalah Sony Ericsson W810i. Perangkat ini dipilih karena mendukung konfigurasi CLDC 1.1 dan profile MIDP 2.0. Jaringan nirkabel yang digunakan adalah jaringan Indosat IM3 (IND INDOSAT). Wireless Internet yang digunakan adalah GPRS. Pengujian use case untuk kasus ini dapat dilihat pada Tabel IV-3.
IV-6
4.2.4 Pengujian Aplikasi Terkait Penggunaan resource dan Kualitas Jaringan Pengujian ini untuk menguji aplikasi terkait pemakaian sumberdaya (memori hardware) dan juga kualitas jaringan (wireless Internet). Pengujian ini untuk menguji performansi aplikasi apabila menggunakan emulator ataupun langsung di device, pengujian terkait kualitas jaringan akan dibandingkan jika menggunakan wireless Internet dan cable Internet.
Untuk pemakaian resource akan dibandingkan penggunaan memori dan sisa memori kosong pada KVM ketika aplikasi baru di launch dan ketika aplikasi sedang berjalan dan sedang memasuki messaging state [OSB03], hasil pengujiannya bisa dilihat di Tabel IV-3 . Proses yang dilakukan meliputi, proses autentifikasi dari proses login, hingga masuk ke messaging state, messaging state ditandai dengan tampilan layar yang berubah dari SigningScreen menjadi ContactScreen.
Runtime runtime = Runtime.getRuntime();
//mendapatkan runtime
long total = runtime.totalMemory();
//mendapatkan total memori
long before = runtime.freeMemory();
// mendapatkan sisa memori
//do process long after = runtime.freeMemory(); long memoryUsed = before – after;
Sedangkan untuk kualitas jaringan akan dihitung berdasarkan waktu tempuh pesan dari client, ke server, hingga kembali lagi ke client, untuk ini digunakan timestamp ketika message dikirim, dan message diterima, message nya unik (buzz message) dan dikirimkan ke identitas sendiri, hasil pengujiannya bisa dilihat di Tabel IV-3 dan Tabel IV-4
long start = System.currentTimeMillis(); //mendapatkan waktu sekarang //do process long end = System.currentTimeMillis(); //waktu setelah proses long elapsedTime = end-start; //waktu yang ditempuh
IV-7
Tabel IV-3 Perbandingan Pengujian Memori
Benchmark Total Memori (bytes)
Sony Ericcson SDK 2.2.4 Emulator
Sony Erricson W810i
4194304
1048512
4170044
846336
3894156
611808
275888
234528
6.6%
22.3%
Sisa memori ketika aplikasi di launch (bytes) Sisa Memori untuk setelah dilakukan proses (bytes) Total penggunaan memori untuk proses (bytes) Persentase penggunaan memori
Tabel IV-4 Perbandingan Pengujian Kecepatan
Benchmark Elapsed Time (ms)
Emulator (Cable
Emulator (Wireless
Sony Ericsson
Internet)
Internet)
W810i
1296
3094
2465
4.2.5 Analisis Hasil Pengujian Analisis hasil pengujian dilakukan terhadap kedua platform, platform pertama adalah dengan emulator Sony Ericsson WTK 2.24 dengan device Sony Ericsson W810i sebagai emulatornya. Platform kedua adalah langsung di mobile device. Yang menjadi bahan analisis adalah proses pada saat melakukan penambahan contact baru dan penghapusan contact. Jika menggunakan mobile device, kedua proses tersebut
IV-8 akan menimbulkan defect ketika kualitas koneksi internet nirkabel tidak begitu bagus. Pengujian berjalan sempurna ketika dilakukan melalui emulator, dan sesuai dengan hasil yang diharapkan. Pengujian terkait penggunaan resource pada emulator dan device menunjukkan hasil yang berbeda, penggunaan resource di mobile device lebih banyak, karena ada fungsi-fungsi lain yang dijalankan (fungsi terkait device sebagai telepon seluler). Sedangkan pengujian kecepatan penyampaian pesan menunjukkan kualitas jaringan yang digunakan, pengujian dengan emulator dan dengan cable Internet dianggap sebagai kondisi ideal.
Use case terkait penambahan dan penghapusan contact untuk beberapa keadaan tidak berjalan dengan baik, ketika kualitas jaringan tidak begitu bagus, ketika waktu kirimterima pesan terlalu lama, maka akan dianggap time out, dan kedua use case tersebut tidak berjalan sempurna. Sedangkan pada kondisi ideal (pengujian dengan emulator dan koneksi Internet cable), kedua use case berjalan sempurna, karena kualitas jaringan yang bagus (waktu tempuh pesan lebih singkat).
IV-9
Tabel IV-5 Skema pengujian dan pengujian use case Use case
UC01001
UC02001
Deskripsi Pengujian use case login
Pengujian use case logout
UC03001 Pengujian use case send message UC03002
UC04001
Pengujian use case receive message
Prosedur Pengujian
Masukan
o Jalankan BrianMessenger o Masukkan username dan password yang valid o Tekan tombol login o Tunggu sampai masuk contact screen o Jalankan BrianMessenger o Login ke yahoo o Pilih menu logout dari layar contact screen atau message screen o Jalankan BrianMessenger Login ke yahoo o Pilih contact yang akan dikirmkan pesan o Tekan tombol fire atau menu send message o Masukkan teks pesan o Tekan tombol fire untuk mengirim pesan o Jalankan BrianMessenger dan Login ke Yahoo o Buka window contact yang telah terbuka o Tekan tombol fire o Masukkan teks pesan o Tekan tombol fire untuk mengirim pesan o Jalankan BrianMessenger dan Login ke Yahoo o Dengan menggunakan client yahoo yang lain, kirimkan pesan ke account yang sedang online dengan aplikasi ini
Username dan password yang valid dari Account Yahoo
Keluaran yang Diharapkan
Kriteria Evaluasi Hasil
Hasil yang Didapat
Kesimpulan
Tampilan berubah dari signing screen menjadi contact sreeen. Contact screen akan diupdate dengan list contact
Proses login tidak time out tanda proses login berhasil. Layar contact screen berisi contact dan jika ada offline message akan ditampilkan
Tampilan berubah dari signing screen dan masuk ke contact screen, menampilkan offline message jika ada.
diterima
Penekanan tombol logout
Layar kembali ke login screen, dan session yahoo di reset. Dan account offline.
Layar login screen ditampilkan, account offline.
Tampilan berubah login screen dan offline
menjadi account
diterima
Penekanan tombol send message atau fire, pesan yang akan dikirmkan
Message Screen terupdate dengan pesan yang dikirim, dan pesan sukses diterima oleh contact tujuan
Isi pesan sesuai dengan yang dikirimkan, dan pesan diterima oleh contact yang tepat
Message screen terupdate, dan pesan diterima oleh contact tujuan, isi pesan sama dengan yang dikirimkan
diterima
Penekanan tombol send message atau fire, pesan yang akan dikirmkan
Message Screen terupdate dengan pesan yang dikirim, dan pesan sukses diterima oleh contact tujuan
Isi pesan sesuai dengan yang dikirimkan, dan pesan diterima oleh contact yang tepat
Message screen terupdate, dan pesan diterima oleh contact tujuan, isi pesan sama dengan yang dikirimkan
diterima
-
Ada notifikasi pesan diterima, dan active window contact diupdate. Layar message screen terupdate dengan pesan yang baru diterima.
Isi pesan sesuai dengan yang dikirimkan, ada notifikasi.
Ada notifikasi pesan diterima, active window contact terupdate, layar message screen terupdate dengan pesan yang bru diterima, isi pesan sesuai yang dikirmkan
diterima
IV-10
UC05001
Pengujian use case add new contact
UC06001
Pengujian use case remove contact
o Jalankan BrianMessenger o Login ke Yahoo o Tekan tombol add new contact pada menu untuk membuka add contact screen o Pilih group dimana contact baru akan ditambahkan o Masukkan id contact baru yang valid o Jalankan BrianMessenger dan Login ke Yahoo o Arahkan kepada contact yang ingin dihapus o Tekan tombol delete untuk menghapus contact pada menu dan layar konfirmasi
UC07001
Pengujian use case change status
o Jalankan BrianMessenger dan login ke Yahoo o Tekan tombol change status o Pilih status yang akan dipilih o Masukkan custom status (optional)
UC08001
Pengujian use case manage view
o Jalankan BrianMessenger dan Login ke Yahoo o Tekan switch offline contact pada menu
UC08002
Pengujian use case manage view
o Jalankan BrianMessenger dan Login ke Yahoo o Tekan switch offline contact pada menu
Penekanan tombol fire, masukan group dan id contact yang valid
Kembali ke layar contact screen, contact screen terupdate dan contact yang baru di add ada dalam contact list.
Ada notfifikasi pada contact yang ditambahkan, dan jika authorisasi berhasil, maka contact yang baru ditambahkan ada pada contact list.
Ada notifikasi, dan contact yang baru ada dalam contact list, contact screen diupdate. Kembali ke layar contact screen
diterima
Penekanan tombol delete contact pada menu, dan tombol delete
Kembali ke layar contact screen, contact screen treupdate dan contact yang dihapus tidak ada dalam contact list.
Contact list tidak berisi contact yang sudah dihapus
Contact yang lama sudah tidak ada dalam contact list, contact screen terupdate. Kembali ke layar contact screen
diterima
Penekanan tombol chenge status dan masukan custom status
Kembali ke layar contact screen, titlebar contact screen terupdate dengan status baru, jika status yang dipilih invisible, maka account tidak terlihat online pada contact list account lain, dan status user terupdate dengan status yang baru
Status terupdate dengan yang baru. Contact screen terupdate.
Contact screen terupdate dengan status yang baru, jika status baru invisible, account terlihat offline, dan status account terupdate pada contact list account lain.
diterima
ContactScreen akan terupdate dengan hanya menampilkan list contact yang online
Contactscreen akan terupdate dan hanya menampilkan contact yang online
Contactscreen akan terupdate dan hanya menampilkan contact yang online
diterima
ContactScreen akan terupdate, menampilkan semua contact
Contactscreen akan terupdate dan menampilkan semua contact
Contactscreen akan terupdate dan menampilkan semua contact
diterima
Penekanan tombol switch offline contact Penekanan tombol switch offline contact