perancangan dan implementasi aplikasi pemesanan ruang ......real-time. kelebihan daripada . web...

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

Upload: others

Post on 28-Jan-2021

7 views

Category:

Documents


0 download

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)

    [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

    mailto:[email protected]:[email protected]

  • 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/