Perancangan dan Implementasi Aplikasi Pemesanan Ruang...

19
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

Transcript of Perancangan dan Implementasi Aplikasi Pemesanan Ruang...

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

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 << 7);}

5. b0 |= (byte) opcode;

6. mBuffer.write(b0);

7. // second octet

8. byte b1 = 0;

9. if (mOptions.getMaskClientFrames()) {b1 = (byte) (1 << 7);}

10. long len = length;

11. // extended payload length

12. if (len <= 125) {

13. b1 |= (byte) len;

14. mBuffer.write(b1);

15. } else if (len <= 0xffff) {

16. b1 |= (byte) (126 & 0xff);

17. mBuffer.write(b1);

18. mBuffer.write(new byte[] {(byte)((len >> 8) & 0xff),

19. (byte)(len & 0xff)});

20. } else {

21. b1 |= (byte) (127 & 0xff);

22. mBuffer.write(b1);

23. mBuffer.write(new byte[] {(byte)((len >> 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.