perancangan dan implementasi aplikasi pemesanan ruang ......real-time. kelebihan daripada . web...
TRANSCRIPT
-
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)
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
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].
-
2
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.
-
3
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
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
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
-
4
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.
-
5
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.
-
6
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.
-
7
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]
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
1. private void sendClientHandshake(WebSocketMessage.ClientHandshake message)
throws IOException {
2. // write HTTP header with handshake
3. ...
4. mBuffer.write("GET " + path + " HTTP/1.1");
5. mBuffer.crlf();
6. mBuffer.write("Host: " + message.mHost);
7. mBuffer.crlf();
8. mBuffer.write("Upgrade: WebSocket");
9. mBuffer.crlf();
10. mBuffer.write("Connection: Upgrade");
11. mBuffer.crlf();
12. mBuffer.write("Sec-WebSocket-Key: " + newHandshakeKey());
13. mBuffer.crlf();
14. if (message.mOrigin != null && !message.mOrigin.equals("")) {
15. mBuffer.write("Origin: " + message.mOrigin);
16. mBuffer.crlf();
17. }
18. if (message.mSubprotocols != null && message.mSubprotocols.length > 0) {
19. mBuffer.write("Sec-WebSocket-Protocol: ");
20. for (int i = 0; i < message.mSubprotocols.length; ++i) {
21. mBuffer.write(message.mSubprotocols[i]);
22. mBuffer.write(", ");
23. }
24. mBuffer.crlf();
25. }
26. mBuffer.write("Sec-WebSocket-Version: 13");
27. mBuffer.crlf();
28. // Header injection
29. ...
30. }
31. mBuffer.crlf();
32. }
-
8
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]
Kode program 2 adalah fungsi untuk mengubah pesan yang akan dikirim
melalui web socket client ke server ke dalam bentuk frame dan pembuatan frame
1. protected void sendFrame(int opcode, boolean fin, byte[] payload, int
offset, int length) throws IOException {
2. // first octet
3. byte b0 = 0;
4. if (fin) {b0 |= (byte) (1 56) & 0xff),
24. (byte)((len >> 48) & 0xff),
25. (byte)((len >> 40) & 0xff),
26. (byte)((len >> 32) & 0xff),
27. (byte)((len >> 24) & 0xff),
28. (byte)((len >> 16) & 0xff),
29. (byte)((len >> 8) & 0xff),
30. (byte)(len & 0xff)});
31. }
32. byte mask[] = null;
33. if (mOptions.getMaskClientFrames()) {
34. // a mask is always needed, even without payload
35. mask = newFrameMask();
36. mBuffer.write(mask[0]);
37. mBuffer.write(mask[1]);
38. mBuffer.write(mask[2]);
39. mBuffer.write(mask[3]);
40. }
41. if (len > 0) {
42. if (mOptions.getMaskClientFrames()) {
43. /// \todo optimize masking
44. /// \todo masking within buffer of output stream
45. for (int i = 0; i < len; ++i) {
46. payload[i + offset] ^= mask[i % 4];
47. }
48. }
49. mBuffer.write(payload, offset, length);
50. }
51. }
-
9
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
-
10
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
1 Login aplikasi Menu calendar view Sesuai User memasukan username
dan password
2 Calendar view per
bulan
Daftar event muncul
per bulan Sesuai
Event muncul sesuai dengan
tanggal event.
3 Calendar view per
hari
Daftar event muncul
per hari Sesuai
Event muncul sesuai dengan
waktu mulai dan waktu
selesai event per harinya.
4 Ganti ruangan
Event muncul sesuai
dengan ruang yang
dipilih.
Sesuai Memilih ruang
5 Melihat detail dari
event Detail event muncul Sesuai
Long click pada tanggal
tertentu
6 Menghapus event
yang ada Event berkurang Sesuai
Memilih event yang ingin
dihapus
7 Menambah event Event bertambah Sesuai Memasukkan data event
8 Mengubah event Event berubah Sesuai Mengubah data event yang
dipilih
9
Penambahan event
dengan waktu yang
bertabrakan dengan
event lain
Event tidak bertambah Sesuai Memasukkan data event
10 Menambah ruang
baru Ruang bertambah Sesuai Memasukkan data ruang
11 Menghapus ruang Ruang terhapus dan
event pada ruang Sesuai
Memilih ruang yang ingin
dihapus
-
11
tersebut
12
Pemberitahuan dari
server untuk
aktifitas yang
dilakukan client
lain
Broadcast
pemberitahuan ke
semua client yang
terhubung dengan
server
Sesuai
Setiap penambahan dan
penghapusan event atau
ruang, login, client lain
mendapatkan
pemberitahuan.
13
Menggunakan user
yang sama untuk
masuk aplikasi
Koneksi client pertama
akan terputus dengan
server
Sesuai Login dengan username
yang telah login.
14 Kompatibilitas
aplikasi
Dapat digunakan mulai
dari platform Android
2.2
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. Pertanyaan Sangat
Baik Baik Kurang
Sangat
Kurang
1. Apakah aplikasi pencatatan pemesanan ruang
sudah berjalan dengan baik? 8 2 0 0
2. Apakah proses pencatatan pemesanan ruang pada
aplikasi mudah dilakukan? 7 3 0 0
3. Apakah tampilan antarmuka aplikasi informatif? 5 4 0 0
4. Apakah aplikasi pencatatan pemesanan ruang
pada Android mempermudah pencatatan ruangan? 7 1 1 0
5. Apakah fitur – fitur pada aplikasi sudah cukup
memenuhi kebutuhan dalam pencatatan ruang? 4 2 4
6.
Apakah aplikasi pencatatan pemesanan ruang
pada Android dapat menggantikan penggunaan
Google Calendar?
7 2 1 0
7. Apakah proses pada aplikasi berjalan dengan
cepat? 5 3 2 0
Total 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.
-
12
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. Keterangan Ukuran Data (byte) Waktu (s)
HTTP Web Socket HTTP Web Socket
1. Req. Ruang
Client - Server 692 94
Server - Client 6924 2803 ~0.4925 ~0.0188
2. Req. Dosen
Client – Server 678 116
Server - Client 9486 6647 ~0.2039 ~0.1828
3. Login
Client – Server 777 128
Server - Client 905 304 ~0.0125 ~0.0527
4. Get Event
Client - Server 809 168
Server - Client 29964 6993 ~1.2811 ~0.5527
5. Add Event
Client - Server 1411 517
Server - Client 876 154 ~0.9472 ~0.9971
-
13
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.
-5
0
5
10
15
20
25
30
35
40
1 10 100 1000
Byte
M
illi
on
s
Client
Get Event HTTP
Get Event WS
-
14
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.
[2] Wang, Vannesa, Frank Salim, Peter Moskovits, 2013, The Definitive Guide to HTML5 WebSocket: Build Real-Time Applications With HTML5, Apress
Media LLC, New York.
[3] 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.
[4] I Fette, A Melnikov, 2011, The WebSocket Protocol, http://tools.ietf.org/html/rfc6455. Diakses pada tanggal 7 Oktober 2013.
[5] Hasibuan, Zainal A., 2007, “Metodologi Penelitian Pada Bidang Ilmu Komputer dan Teknologi Informasi : Konsep, Teknik, dan Aplikasi”,
Jakarta : Ilmu Komputer Universitas Indonesia.
[6] Pressman, Roger S., 2001. Software Engineering a Practitioner’s Approach, New York: McGraw-Hill Higher Education.
[7] Autobahn WebSocket, 2013, WebSocket Client Library for native Java Android Application, http://autobahn.ws/, Diakses pada tanggal 20
September 2013.
[8] Rensis Linkert, 1932, A Technique for The Measurement of Attitude, Archieves of Psychology Vol. 22 No. 140 Hal. 5-55, New York University.
[9] The Source for Java Technology Collaboration, 2013, Web Sockets SDK, https://websocket-sdk.java.net/, Diakses pada tanggal 20 September 2013.
http://tools.ietf.org/html/rfc6455http://autobahn.ws/https://websocket-sdk.java.net/