Perancangan dan Implementasi Aplikasi Pemesanan Ruang Menggunakan Web Socket pada Platform Android (Studi Kasus: Fakultas Teknologi Informasi)
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer
Peneliti : William (672009038) Yos Richard Beeh, S.T., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Oktober 2013
Perancangan dan Implementasi Aplikasi Pemesanan Ruang Menggunakan Web Socket pada Platform Android (Studi Kasus: Fakultas Teknologi Informasi) 1)
William, 2)Yos Richard Beeh Fakultas Teknologi Informasi Universitas Krsiten Satya Wacana Jl. Diponegoro 52 – 60, Salatiga, 50711, Indonesia Email: 1)
[email protected], 2)
[email protected] Abstract The Facilities and Infrastucture Unit at FTI has a web-based room management system which is integrated with Google Calendar. Mobile data processing can be done using Google Calendar on Android device. The use two different application resulting data of room reservation is saved in two different places, FTI server and Google Calendar. Periodically, synchronization process is needed to prevent differenceces in data between them. Solution from this issue is a mobile application that can perform data manipulation on FTI server. Communication between application and server is created over HTPP which is upgrade to web socket connection. The result of this research is an Android application for room reservations at FTI. Keyword: Room Reservations, Web Socket Abstrak Bagian Sarana dan Prasarana FTI memiliki sistem pencatatan pemesanan ruang berbasis web yang berintegrasi dengan Google Calendar. Pengubahan data secara mobile dapat dilakukan dengan menggunakan Google Calendar pada perangkat mobile. Penggunaan dua aplikasi yang berbeda mengakibatkan data pemesanan ruang berada pada dua tempat yang berbeda, yaitu server FTI dan Google Calendar. Proses sinkronisasi secara berkala perlu dilakukan pada sistem pemesanan ruang untuk mencegah perbedaan data. Solusi dari permasalahan ini adalah sebuah aplikasi mobile yang dapat melakukan perubahan data pada server FTI. Komunikasi antara aplikasi dengan server FTI dibuat melalui koneksi HTTP yang diperbaharui menjadi koneksi web socket. Hasil dari penelitian ini adalah aplikasi yang berjalan pada platform Android untuk pemesanan ruang di FTI. Kata Kunci: Pemesanan Ruang, Web Socket 1)
Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya Wacana 2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana
1.
Pendahuluan
Pencatatan pemesanan ruang di Fakultas Teknologi Informasi saat ini telah memiliki sebuah sistem yang berbasis web [1]. Sistem yang telah ada terhubung dengan server di FTI dan terintegrasi dengan Google Calendar sehingga pemesanan ruang pun dapat diakses melalui web browser melalui jaringan internal FTI. Meskipun sudah terhubung dengan server di FTI, pemakaian Google Calendar untuk pencatatan pemesanan ruang seperti pencatatan sebelumnya tetap digunakan karena sistem yang sudah ada untuk sekarang ini hanya tersedia dalam bentuk web. Penggunaan Google Calendar ini dengan tujuan pemesanan dapat dilakukan melalui perangkat mobile yang memiliki aplikasi Google Calendar. Oleh sebab itu, sistem penjadwalan ruang yang sudah ada ini memiliki fitur untuk melakukan sinkronisasi data antara database sistem dengan Google Calendar. Penggunaan dua sistem yang berbeda mengakibatkan data pemesanan ruang berada di dua tempat yang berbeda, yaitu server FTI dan Google Calendar. Hal ini membutuhkan proses sinkronisasi data secara berkala agar data di server dan Google Calendar tidak berbeda. Proses sinkronisasi data pada sistem pemesanan ruang dilakukan oleh admin sistem yang secara manual harus melakukan sinkronisasi dengan mengirimkan request ke Google Calendar. Supervisor bagian Sarana dan Prasarana FTI dan laboran membutuhkan sebuah aplikasi mobile yang dapat mengubah data secara langsung pada server FTI, sehingga proses sinkronisasi data antara Google Calendar dan sistem pemesanan ruang tidak perlu dilakukan lagi. Berdasarkan data penggunaan mobile device pada bagian Sarana dan Prasarana FTI tahun 2013, 10 dari 14 orang menggunakan Android, sehingga aplikasi mobile yang dibutuhkan adalah aplikasi Android. Komunikasi antara aplikasi dengan server di FTI dapat dilakukan melalui koneksi HTTP. Koneksi HTTP saat ini dapat diperbaharui menjadi koneksi web socket yang menyediakan komunikasi dua arah (full-duplex) sehingga komunikasi antara server dengan aplikasi menjadi real-time. Kelebihan daripada web socket selain komunikasi dua arah juga dapat mengurangi latency dan bandwith [2]. Berdasarkan permasalahan yang ada pada Bagian Sarana dan Prasarana FTI dalam pencatatan pemesanan ruangan, perumusan masalah dari penelitian ini adalah bagaimana cara membuat aplikasi pada perangkat mobile untuk pemesanan ruang yang terhubung dengan server di FTI. Hasil dari penelitian ini adalah sebuah aplikasi mobile pada platform Android yang dapat mengubah data pada server FTI. 2.
Tinjauan Pustaka
Penelitian yang berjudul Sistem Pencatatan Penggunaan Ruang yang Terintegrasi dengan Google Calendar (Studi Kasus: Sarana dan Prasarana Fakultas Teknologi Informasi) telah menyediakan sistem pemesanan ruang yang terintegrasi dengan Google Calendar dan memiliki fitur – fitur yang dapat digunakan untuk melakukan pencatatan pemesanan ruangan serta laporan berkala mengenai pemakaian ruangan [1].
1
Penelitian lain yang berjudul Research of Web Real Time Communication Based on Web Socket membahas keunggulan dari web socket sebagai solusi untuk menyediakan komunikasi real time dibandingkan dengan teknologi sebelumnya seperti polling, long – polling dan streaming. Penelitian ini membuktikan keunggulan web socket sebagai solusi untuk komunikasi real-time dengan dilakukan percobaan untuk membandingkan performa dari web socket terhadap HTTP request yang menghasilkan kesimpulan bahwa web socket memiliki 10 kali performa lebih baik dari HTTP request [3]. Berdasarkan penelitian sebelumnya mengenai pembuatan sistem pemesanan ruang di FTI, sistem telah memiliki integrasi dengan Google Calendar sehingga FTI memiliki sistem pemesanan ruang dan dapat menggunakan aplikasi Google Calendar pada perangkat mobile untuk memasukkan data. Penelitian lain yang membahas tentang komunikasi real-time menggunakan web socket, ditemukan bahwa koneksi web socket dapat menyediakan komunikasi real-time dibandingkan dengan koneksi HTTP. Berdasarkan penelitian sebelumnya, maka dilakukan penelitian untuk pembuatan aplikasi mobile pada platform Android untuk melakukan pemesanan ruang di FTI yang dapat melakukan perubahan data pada server FTI. Komunikasi dengan server dilakukan menggunakan koneksi web socket agar pencatatan pemesanan ruangan yang dilakukan oleh beberapa orang dapat segera diinformasikan untuk mengurangi kesalahan pemesanan ruangan. Web socket adalah protocol yang menyediakan komunikasi dua arah (full duplex) antara client dengan server dan telah distandarisasikan oleh IETF (Internet Engineering Task Force) pada RFC 6455. Protocol ini disertai dengan handshake dari client dengan mengirim pesan melalui layer TCP. Sebelum ada web socket, komunikasi dua arah dilakukan dengan beberapa alternatif seperti polling, long-polling dan streaming. Namun, alternatif tersebut tidak menciptakan komunikasi dua arah (full – duplex), melainkan hanya mendekati komunikasi dua arah. Akibatnya, latency data dan network traffic akan meningkat dan biaya yang dikeluarkan akan semakin tinggi [4]. Beberapa bagian yang menjadi struktur pada web socket adalah sebagai berikut [4]: Handshake, merupakan request pertama dari client ke server untuk membuka koneksi web socket. Bagian ini terdiri dari handshake opening dan closing antara client dan server. Handshake dari client merupakan HTTP upgrade request yang dikirim ke server dan handshake dari server merupakan HTTP upgrade response untuk client. Data Framing, merupakan aturan dalam penyusunan struktur data yang digunakan dalam pengiriman data di web socket.
2
Gambar 1 Base Framing Protocol Web Socket [4]
Gambar 1 menggambarkan struktur data yang digunakan dalam pengiriman data pada protocol web socket RFC 6455. Struktur data pada protocol web socket terdiri dari opcode, payload length, payload data, dan beberapa bit yang digunakan untuk perkembangan protocol web socket selanjutnya. Setiap data yang dikirim pada web socket merupakan rangkaian frame (fragmentation) dengan setiap bitnya memiliki fungsi tersendiri. Tujuan utama dari fragmentation adalah untuk mengirim pesan yang memiliki ukuran tidak diketahui. Closing Connections, merupakan proses penutupuan koneksi web socket. Penutupan koneksi web socket dilakukan dengan mengirimkan closing handshake dari client berupa close frame disertai dengan kode status dan alasan penutupan koneksi. 3.
Metode dan Perancangan Sistem
Penelitian dilakukan melalui lima tahapan penelitian, (1) analisis kebutuhan dan pengumpulan data, (2) perancangan sistem, (3) perancangan aplikasi, (4) implementasi dan pengujian sistem, dan (5) penulisan laporan Analisis Kebutuhan dan Pengumpulan Data
Perancangan Sistem meliputi Perancangan Proses (UML), Perancangan Arsitektur, Perancangan Database, Perancangan Antarmuka Perancangan Aplikasi/ Program
Implementasi dan Pengujian Sistem, serta Analisis Hasil Pengujian
Penulisan Laporan Hasil Penelitian Gambar 2 Tahapan Metode Penelitian [5]
Gambar 2 menunjukkan tahapan metode penelitian. Pada tahap penelitian pertama dilakukan analisis kebutuhan dan pengumpulan data di bagian Sarana dan 3
Prasarana FTI, pengumpulan data juga termasuk studi literatur atau studi pustaka mengenai sistem yang akan dibuat. Tahap perancangan sistem sampai dengan tahap pengimplementasian menggunakan metode prototyping model. Prototyping model adalah metode yang digunakan untuk mendefinisikan serangkaian sasaran umum bagi perangkat lunak serta mengidentifikasikan kebutuhan input, pemrosesan, ataupun output detail [6].
Gambar 3 Prototyping Model [6]
Gambar 3 menunjukkan tahapan yang dilakukan pada prototyping model, yaitu (1) listen to customer, (2) build/ revise mock-up, dan (3) customer test-drives mock-up. Pada tahap pertama, dilakukan wawancara dengan supervisor Sarana dan Prasarana Fakultas Teknologi Informasi dan laboran mahasiswa untuk mengumpulkan data serta analisis proses pada sistem pencatatan ruang yang sudah ada. Tahap kedua, penelitian dilanjutkan dengan merancang sistem yang meliputi perancangan Unified Modelling Language (UML). Perancangan sistem juga meliputi perancangan antarmuka aplikasi untuk sisi client dan dilanjutkan dengan pembuatan aplikasi. Tahap terakhir, dilakukan pengujian aplikasi di bagian Sarana dan Prasarana Fakultas Teknologi Informasi bersama dengan supervisor dan laboran untuk menguji kelayakan dan kesesuaian aplikasi. Pada tahap ini akan dilakukan evaluasi secara keseluruhan dan apabila terdapat kekurangan maka tahap penelitian kembali lagi ke tahap pertama dan akan dilakukan evaluasi lagi. Berdasarkan hasil pengujian evaluasi pertama, aplikasi yang dibuat sudah sesuai dengan kebutuhan supervisor dan laboran bahwa aplikasi pada perangkat perangkat Android cukup dengan fitur – fitur melihat jadwal pemakaian ruangan, pencatatan, penghapusan peminjaman ruang dan penambahan, penghapusan ruang. Namun, aplikasi yang dibuat masih menggunakan database dummy sehingga untuk menyesuaikan sistem yang sudah ada, dilakukan perubahan pada aplikasi yang sebelumnya menggunakan database dummy diganti menggunakan database pada sistem yang ada. Pada evaluasi kedua, setelah database yang digunakan pada aplikasi sesuai dengan database sistem yang sudah ada, dilakukan perubahan tampilan antarmuka yang sebelumnya hanya menampilkan data penggunaan ruang dalam bentuk daftar menjadi tampilan calendar sehingga data penggunaan ruang dapat dilihat untuk setiap bulan atau setiap hari. Pada evaluasi kedua ini, platform Android minimum yang digunakan sebelumnya adalah 4.1.2 dan diturunkan agar mendukung platform Android 2.2.
4
Evaluasi terakhir adalah melakukan pengujian aplikasi menggunakan server yang ada di Fakultas Teknologi Informasi. Hasilnya, port yang digunakan untuk server aplikasi yaitu 8081 harus diganti dikarenakan port tersebut telah digunakan untuk server Apache. Port untuk server aplikasi diganti menjadi 8082. Pada Evaluasi terakhir juga dilakukan pengujian dengan melakukan pencatatan pemesanan ruangan oleh supervisor dan beberapa orang laboran untuk melihat proses pengiriman data ke server dan ke pengguna lain. Perancangan Sistem Sistem pencatatan peminjaman ruang memiliki digunakan oleh supervisor Sarana dan Prasarana FTI atau laboran. Sistem ini memiliki dua pengguna yang memiliki hak akses yang sama pada apliksi untuk melakukan pencatatan dan melihat jadwal peminjaman ruang.
Gambar 4 Rancangan Arsitektur Sistem
Gambar 4 adalah rancangan arsitektur sistem yang terdiri dari tiga bagian, yaitu client pada platform Android, server web socket, dan database server. Client merupakan aplikasi Android dengan modul web socket client Autobahn[7] untuk menyediakan koneksi web socket dan pada server merupakan aplikasi server dengan modul web socket menggunakan Web Socket SDK [9] untuk mengolah data di database server. Antara client dengan server dihubungkan dengan Internet pada koneksi HTTP yang di-upgrade menjadi koneksi web socket melalui handshake dari client.
5
Aplikasi pencatatan pemakaian ruang secara umum memiliki fitur – fitur yang diilustrasikan pada use case diagram pada gambar 5.
Gambar 5 Use Case Diagram Sistem
Gambar 5 adalah use case diagram sistem yang memiliki satu aktor yaitu supervisor Sarana dan Prasarana FTI atau laboran. Fitur – fitur yang dapat dilakukan aktor adalah (1) melihat jadwal pemakaian ruangan, (2) manajemen ruangan yang terdiri dari menambah ruang dan menghapus ruang, (3) manajemen kegiatan yang terdiri dari menambah kegiatan dan menghapus kegiatan.
Gambar 6 Class Diagram Aplikasi
Gambar 6 adalah class diagram pada rancangan aplikasi pencatatan penggunaan ruang. Pada class diagram terdapat tiga class yang menjadi view pada aplikasi (RoomView, CalendarView, dan EventView) yang terhubung dengan controller class (RoomController dan EventController) dan controller class akan mengakses model class sebagai model dari sistem pemesanan ruang.
6
4.
Hasil dan Pembahasan
Aplikasi pemesanan ruang di FTI pada platform Android telah sesuai dengan kebutuhan supervisor Bagian Sarana dan Prasarana FTI dan laboran. Aplikasi ini menyediakan fungsi untuk pencatatan pemesanan ruang yang dapat digunakan pada platform Android mulai dari versi 2.2. Komunikasi antara aplikasi dengan server untuk mengakses database sistem pemesanan ruang menggunakan koneksi web socket dengan membuat server web socket pada server FTI. Komunikasi dengan server web socket dibuka pada saat client login ke aplikasi. Proses pembukaan komunikasi dilakukan dengan mengirimkan handshake opening dari client ke server. Jika handshake yang dikirim dari client diterima oleh server dan handshake sesuai dengan protocol yang digunakan oleh server, maka server akan mengirim handshake balasan yang menyatakan bahwa koneksi web socket telah dibuka dan client terhubung dengan server. Jika server belum berjalan atau handshake dari client tidak sesuai dengan protocol web socket pada server, maka koneksi web socket antara client dengan server tidak akan terbuka. Kode Program 1 Handshake Opening dari Aplikasi [7] 1.
private void sendClientHandshake(WebSocketMessage.ClientHandshake message) throws IOException {
2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
// write HTTP header with handshake ... mBuffer.write("GET " + path + " HTTP/1.1"); mBuffer.crlf(); mBuffer.write("Host: " + message.mHost); mBuffer.crlf(); mBuffer.write("Upgrade: WebSocket"); mBuffer.crlf(); mBuffer.write("Connection: Upgrade"); mBuffer.crlf(); mBuffer.write("Sec-WebSocket-Key: " + newHandshakeKey()); mBuffer.crlf(); if (message.mOrigin != null && !message.mOrigin.equals("")) { mBuffer.write("Origin: " + message.mOrigin); mBuffer.crlf(); } if (message.mSubprotocols != null && message.mSubprotocols.length > 0) { mBuffer.write("Sec-WebSocket-Protocol: "); for (int i = 0; i < message.mSubprotocols.length; ++i) { mBuffer.write(message.mSubprotocols[i]); mBuffer.write(", "); } mBuffer.crlf(); } mBuffer.write("Sec-WebSocket-Version: 13"); mBuffer.crlf(); // Header injection ... } mBuffer.crlf(); }
Kode Program 1 adalah handshake opening dari client ke server untuk membuka koneksi web socket dengan server. Kode program pada baris ke – 4 sampai dengan baris ke – 27 adalah penulisan handshake ke ByteBufferOutputStream untuk dikirim melalui socket. Baris ke – 21 sampai dengan baris ke – 23 adalah kode program untuk penulisan subprotocol jika client 7
ingin menggunakan subprotocol yang ada di server. Baris ke – 26 merupakan penentuan versi dari protocol web socket yang digunakan, versi web socket yang digunakan antara client dengan server harus disesuaikan karena setiap versi web socket memiliki standart protocol yang berbeda. Urutan penulisan bagian – bagian pada handshake web socket tidak diharuskan berurutan seperti Kode Program 1 melainkan bagian – bagian tersebut harus terdapat di handshake web socket atau handshiake tidak akan diterima oleh server. Kode Program 2 Mengirim Web Socket Frame [7] 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
protected void sendFrame(int opcode, boolean fin, byte[] payload, int offset, int length) throws IOException { // first octet byte b0 = 0; if (fin) {b0 |= (byte) (1 << 7);} b0 |= (byte) opcode; mBuffer.write(b0); // second octet byte b1 = 0; if (mOptions.getMaskClientFrames()) {b1 = (byte) (1 << 7);} long len = length; // extended payload length if (len <= 125) { b1 |= (byte) len; mBuffer.write(b1); } else if (len <= 0xffff) { b1 |= (byte) (126 & 0xff); mBuffer.write(b1); mBuffer.write(new byte[] {(byte)((len >> 8) & 0xff), (byte)(len & 0xff)}); } else { b1 |= (byte) (127 & 0xff); mBuffer.write(b1); mBuffer.write(new byte[] {(byte)((len >> 56) & 0xff), (byte)((len >> 48) & 0xff), (byte)((len >> 40) & 0xff), (byte)((len >> 32) & 0xff), (byte)((len >> 24) & 0xff), (byte)((len >> 16) & 0xff), (byte)((len >> 8) & 0xff), (byte)(len & 0xff)}); } byte mask[] = null; if (mOptions.getMaskClientFrames()) { // a mask is always needed, even without payload mask = newFrameMask(); mBuffer.write(mask[0]); mBuffer.write(mask[1]); mBuffer.write(mask[2]); mBuffer.write(mask[3]); } if (len > 0) { if (mOptions.getMaskClientFrames()) { /// \todo optimize masking /// \todo masking within buffer of output stream for (int i = 0; i < len; ++i) { payload[i + offset] ^= mask[i % 4]; } } mBuffer.write(payload, offset, length); } }
Kode program 2 adalah fungsi untuk mengubah pesan yang akan dikirim melalui web socket client ke server ke dalam bentuk frame dan pembuatan frame
8
dilakukan berdasarkan pada protocol web socket yang digunakan. Baris ke – 3 sampai dengan 6 untuk menuliskan opcode pada frame, baris ke – 12 sampai dengan 31 untuk bagian payload atau pesan yang akan dikirim. Baris ke – 32 sampai dengan 48 untuk masking frame.
Gambar 7 Jadwal Setiap Bulan
Gambar 8 Jadwal Setiap Hari
Gambar 7 adalah tampilan antarmuka untuk client setelah login ke aplikasi. Tampilan ini untuk menampilkan jadwal pemakaian ruangan setiap bulannya berdasarkan ruangan yang dipilih. Pada tampilan jadwal setiap bulan, client dapat melihat jadwal secara detail per-harinya. Client dapat masuk ke menu tambah jadwal dan tambah ruang, dan client dapat mengubah tampilan menjadi tampilan jadwal per harinya seperti pada Gambar 8.
Gambar 9 Tambah dan Ubah Jadwal
Gambar 10 Tambah Ruang
Gambar 9 adalah tampilan antarmuka untuk menambah dan mengubah jadwal. Pada tampilan ini, client dapat menambah jadwal baru dengan mengisi 9
field yang tersedia. Field tersebut terdiri dari field title, daftar ruangan, daftar dosen, field pengguna, field nomor telepon pengguna, waktu mulai, waktu berhenti, field keterangan untuk jadwal yang ingin diulangi dalam waktu tertentu, dan field description. Gambar 10 adalah tampilan antarmuka untuk tambah ruang. Pada tampilan ini, client dapat menambah ruangan baru dengan mengisi field yang tersedia, yaitu field nama ruang. Pada tampilan ini juga ditampilkan daftar ruang yang sudah ada. Client dapat menghapus daftar ruangan yang ada dan penghapusan ruangan akan menghapus semua jadwal pada ruang tersebut. Pengujian Aplikasi Pengujian aplikasi pencatatan pemesanan ruang pada platform Android dilakukan dengan dua tipe pengujian, yaitu pengujian alfa dan beta. Pengujian alfa dilakukan oleh peneliti sendiri yang berperan sebagai pengguna aplikasi dengan melakukan simulasi melalui platform Android 4.1.2 serta emulator Android 2.2 yang terhubung dengan server localhost. Hasil dari pengujian alfa aplikasi dijelaskan pada Tabel 1 dengan menggunakan 12 indikator untuk menentukan hasil pengujian dan dapat disimpulkan bahwa fitur yang tersedia di aplikasi telah berjalan dengan baik dan sesuai dengan perancangan sistem dan dapat dikatakan bahwa fungsi – fungsi pada aplikasi berjalan dengan lancar. Tabel 1 Tabel Hasil Pengujian Alfa Aplikasi
No. Proses
Hasil yang Diharapkan
Hasil Program
Keterangan User memasukan username dan password Event muncul sesuai dengan tanggal event. Event muncul sesuai dengan waktu mulai dan waktu selesai event per harinya.
1
Login aplikasi
Menu calendar view
Sesuai
2
Calendar view per bulan
Daftar event muncul per bulan
Sesuai
3
Calendar view per hari
Daftar event muncul per hari
Sesuai
4
Ganti ruangan
Event muncul sesuai dengan ruang yang dipilih.
Sesuai
Detail event muncul
Sesuai
Event berkurang
Sesuai
Event bertambah
Sesuai
Event berubah
Sesuai
Event tidak bertambah
Sesuai
Memasukkan data event
Ruang bertambah
Sesuai
Memasukkan data ruang
Ruang terhapus dan event pada ruang
Sesuai
Memilih ruang yang ingin dihapus
7
Melihat detail dari event Menghapus event yang ada Menambah event
8
Mengubah event
5 6
9
10 11
Penambahan event dengan waktu yang bertabrakan dengan event lain Menambah ruang baru Menghapus ruang
10
Memilih ruang Long click pada tanggal tertentu Memilih event yang ingin dihapus Memasukkan data event Mengubah data event yang dipilih
12
13
14
Pemberitahuan dari server untuk aktifitas yang dilakukan client lain Menggunakan user yang sama untuk masuk aplikasi Kompatibilitas aplikasi
tersebut Broadcast pemberitahuan ke semua client yang terhubung dengan server Koneksi client pertama akan terputus dengan server Dapat digunakan mulai dari platform Android 2.2
Sesuai
Setiap penambahan dan penghapusan event atau ruang, login, client lain mendapatkan pemberitahuan.
Sesuai
Login dengan username yang telah login.
Sesuai
Menjalankan Aplikasi pada platform Android 2.2
Pengujian beta dilakukan oleh supervisor Bagian Sarana dan Prasarana Fakultas Teknologi Informasi dan laborandengan melakukan uji coba terhadap aplikasi. Hasil dari pengujian ini adalah sebuah kuisioner yang dibagikan kepada 10 pengguna aplikasi ketika menggunakan aplikasi yang disajikan pada Tabel 2. Berdasarkan hasil pengujian kepada pelanggan pada tabel 2, berdasarkan skala Likert [8] dapat digolongkan menjadi dua sisi, yaitu baik dan kurang. Persentase sisi baik dari seluruh pertanyaan adalah 91,42%. Berdasarkan hasil pengujian beta, dapat disimpulkan bahwa aplikasi dapat digunakan untuk melakukan pencatatan pemakaian ruang di FTI. Table 2 Hasil Pengujian Aplikasi Terhadap Pengguna No. 1. 2. 3. 4. 5. 6. 7.
Pertanyaan Apakah aplikasi pencatatan pemesanan ruang sudah berjalan dengan baik? Apakah proses pencatatan pemesanan ruang pada aplikasi mudah dilakukan? Apakah tampilan antarmuka aplikasi informatif? Apakah aplikasi pencatatan pemesanan ruang pada Android mempermudah pencatatan ruangan? Apakah fitur – fitur pada aplikasi sudah cukup memenuhi kebutuhan dalam pencatatan ruang? Apakah aplikasi pencatatan pemesanan ruang pada Android dapat menggantikan penggunaan Google Calendar? Apakah proses pada aplikasi berjalan dengan cepat? Total
Sangat Baik
Baik
Kurang
Sangat Kurang
8
2
0
0
7
3
0
0
5
4
0
0
7
1
1
0
4
2
4
7
2
1
0
5
3
2
0
47
17
6
0
Perbandingan dengan HTTP/1.0 dan HTTP/1.1 Perbandingan HTTP/1.0 dan HTTP/1.1 dilakukan dengan menggunakan dua aplikasi yang serupa terhadap satu client. Aplikasi pertama menggunakan request HTTP untuk mengambil web service pada server. Web service yang digunakan adalah JAX – WS (Java API for XML Web Services) yang mengirimkan data SOAP (Simple Object Access Protocol). Sedangkan aplikasi kedua menggunakan web socket untuk mengambil data yang berada di database server.
11
Indikator yang digunakan dalam pengujian aplikasi ini adalah ukuran data dan waktu untuk menerima data. Ukuran data yang akan dibandingkan dihitung berdasarkan data yang dikirim dari server ke client dan data yang digunakan pada kedua aplikasi menggunakan data yang sama. Untuk perhitungan waktu untuk dihitung mulai dari data pertama yang diterima oleh client sampai dengan data terakhir. Berdasarkan hasil pengujian pada Tabel 4 dapat dilihat bahwa ukuran data yang dikirim melalui web socket lebih kecil dibandingkan dengan HTTP. Hasil perbandinga ini dilakukan terhadap satu client dan bila disimulasikan dengan jumlah client lebih dari satu, makan perbandingan ukuran data antara web socket dengan HTTP untuk setiap pesan akan diakumulasikan sesuai dengan jumlah client yang digunakan. Misalnya, jika terdapat 100 client yang melakukan request untuk mendapatkan daftar event yang sudah ada, berdasarkan Tabel 4 maka ukuran data dari server ke client yang dilakukan melalui web socket menjadi 699.300 byte sedangkan pada HTTP menjadi 2.996.400 byte. Ukuran data menggunakan HTPP jauh lebih besar dibandingkan dengan ukuran data pada web socket dikarenakan (1) pengiriman data pada HTTP mengikutsertakan header untuk setiap data yang dikirim, dan (2) web service yang digunakan pada pengujian ini adalah SOAP web service yang memiliki file WSDL (Web Service Definition Language) ditambah dengan XSD (XML Schema Definition Language) yang memiliki struktur data yang kompleks demi kejelasan struktur data. Meskipun pengiriman data dapat menggunakan RESTful (Representational State Transfer) web services yang memiliki struktur data lebih sederhana dibandingkan dengan SOAP, setiap request dan response melalui HTTP selalu mengikutsertakan bagian header. Tabel 4 Tabel Perbandingan Ukuran Data dan Waktu Antara Web Socket dengan HTTP/1.0 dan HTTP/1.1 No. 1.
2.
3.
4.
5.
Keterangan Req. Ruang Client - Server Server - Client Req. Dosen Client – Server Server - Client Login Client – Server Server - Client Get Event Client - Server Server - Client Add Event Client - Server Server - Client
Ukuran Data (byte) HTTP Web Socket
HTTP
Waktu (s) Web Socket
692 6924
94 2803
~0.4925
~0.0188
678 9486
116 6647
~0.2039
~0.1828
777 905
128 304
~0.0125
~0.0527
809 29964
168 6993
~1.2811
~0.5527
1411 876
517 154
~0.9472
~0.9971
12
Byte Millions
40 35 30 25 20 15 10 5 0 -5 1
Get Event HTTP Get Event WS
10
100
1000
Client
Gambar 11 Grafik Perbandingan Ukuran Data Berdasarkan Jumlah Client
Gambar 11 menunjukkan grafik perbandingan ukuran data antara web socket dengan HTTP berdasarkan request Get Event pada Tabel 4. Pada Gambar 12 disimulasikan jika terdapat 10, 100 dan 1000 client untuk melakukan request dan akan menghasilkan perbedaan yang signifikan antara web socket dengan HTTP. 5.
Kesimpulan
Berdasarkan hasil penelitian yang dilakukan dapat disimpulkan bahwa, melalui aplikasi Android yang dibuat dapat menggantikan penggunaan Google Calendar sehingga penyimpanan data pemesanan ruang FTI menjadi satu tempat pada server FTI dan fitur pada aplikasi telah sesuai dengan kebutuhan bagian Sarana dan Prasarana. Selain itu, penggunaan koneksi web socket pada aplikasi memberikan beberapa keuntungan dibandingkan dengan koneksi HTTP karena dapat memberikan informasi pemesanan ruang secara real-time dan pengurangan bandwith dalam pengiriman dan penerimaan data. Saran untuk penelitian mengenai pembuatan aplikasi pemesanan ruang pada Android adalah pembuatan database local pada perangkat Android agar aplikasi dapat berjalan ketika tidak terhubung dengan server di FTI untuk mengurangi pemakaian bandwith serta penambahan fungsi untuk melakukan sinkronisasi data dengan database server.
13
6.
Daftar Pustaka
[1]
Brian Gideon, Yos Richard Beeh, 2013, Sistem Pencatatan Ruang yang Terintegrasi dengan Google Calendar (Studi Kasus: Sarana dan Prasaran Fakultas Teknologi Informasi), Jurnal. Salatiga. Fakultas Teknolgi Informasi, Universitas Kristen Satya Wacana. Wang, Vannesa, Frank Salim, Peter Moskovits, 2013, The Definitive Guide to HTML5 WebSocket: Build Real-Time Applications With HTML5, Apress Media LLC, New York. Qigang Liu, Xiangyang Sun, 2012, Research of Web Real-Time Communication Based on Web Socket, Int. J. Communication, Network and System Sciences Vol. 5, Sydney Institute of Language & Commerce, Shanghai University. I Fette, A Melnikov, 2011, The WebSocket Protocol, http://tools.ietf.org/html/rfc6455. Diakses pada tanggal 7 Oktober 2013. Hasibuan, Zainal A., 2007, “Metodologi Penelitian Pada Bidang Ilmu Komputer dan Teknologi Informasi : Konsep, Teknik, dan Aplikasi”, Jakarta : Ilmu Komputer Universitas Indonesia. Pressman, Roger S., 2001. Software Engineering a Practitioner’s Approach, New York: McGraw-Hill Higher Education. Autobahn WebSocket, 2013, WebSocket Client Library for native Java Android Application, http://autobahn.ws/, Diakses pada tanggal 20 September 2013. Rensis Linkert, 1932, A Technique for The Measurement of Attitude, Archieves of Psychology Vol. 22 No. 140 Hal. 5-55, New York University. The Source for Java Technology Collaboration, 2013, Web Sockets SDK, https://websocket-sdk.java.net/, Diakses pada tanggal 20 September 2013.
[2]
[3]
[4] [5]
[6] [7]
[8] [9]
14