Abstrak - Di era yang semakin modern pemakaian internet sebagai salah satu media telah menjadi salah satu kebutuhan di berbagai kalangan. Tidak hanya sebagai media untuk memperoleh informasi secara cepat dan mudah, internet juga kini telah mulai berkembang menjadi sebuah sistem yang menyediakan perangkat lunak di dalamnya dan bisa di akses oleh pengguna secara mudah.
Aplikasi berbasis web dan berbasis mobile ini bertujuan untuk memberikan informasi kepada masyarakat kampus, sehingga dapat mengetahui perkembangan kampus ataupun perkembangan suatu mata kuliah secara online. Dengan menggunakan aplikasi ini,pengguna dapat mengaksesnya di mana dan kapan saja melalui handphone ataupun laptop.
Uji coba yang dilakukan pada aplikasi tugas akhir ini, bertujuan untuk menunjukkan sinkronisasi antara aplikasi website dan aplikasi mobile yang berjalan di android. Sehingga pengguna yang mengakses menggunakan webiste ataupun menggunakan telepon genggam berbasis android dapat mendapatkan data yang sama.
Kata kunci: Android, Forum, Bulletin Board
1. Pendahuluan
Di era yang semakin modern pemakaian internet sebagai salah satu media telah menjadi salah satu kebutuhan di berbagai kalangan. Tidak hanya sebagai media untuk memperoleh informasi secara cepat dan mudah, internet juga kini telah mulai berkembang menjadi sebuah sistem yang menyediakan perangkat lunak di dalamnya dan bisa di akses oleh user secara mudah.
Dengan kemudahan era internet pada zaman sekarang ini, maka informasi dapat disampaikan dengan lebih mudah, lebih cepat dan dengan biaya yang lebih murah. Oleh karena itu penulis berinisatif membuat aplikasi informasi bulletin board untuk menampilkan info – info atau berita – berita terbaru tentang perkuliahan maupun kegiatan kampus.
Oleh karena itu dengan adanya aplikasi ini dapat membantu mahasiswa maupun dosen untuk dapat mengetahui perkembangan yang terjadi di dalam kampus, walaupun sedang tidak berada di dalam kampus..
Makalah ini terdiri dari beberapa bab yang dijelaskan sebagai berikut.
1. BAB 1, Pendahuluan, menjelaskan latar belakang masalah, tujuan dan manfaat pembuatan tugas akhir, permasalahan, batasan masalah, metodologi yang digunakan, dan sistematika penyusunan tugas akhir.
2. BAB 2, Tinjauan Pustaka, memaparkan beberapa teori penunjang yang berhubungan dengan pokok pembahasan dan mendasari . 2. Dasar Teori
Pada dasar teori ini akan dijelaskan teori – teori yang mendukung dalam pembuatan aplikasi.
2.1 Android
Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di release oleh Google. Saat ini disediakan Android SDK (software Development kit) sebagai alat bantu dan API diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
2.2 Koneksi HTTP
Koneksi HTTP merupakan salah satu fitur yang diusung Android. Dengan fitur ini, aplikasi berbasis Android dapat terkoneksi ke web server untuk saling berkomunikasi. Koneksi HTTP memiliki 2 macam metode request, GET dan POST.[1]
• Metode Get
Dengan menggunakan metode GET, HTTP Client bisa mengambil informasi dari server dengan mengirimkan data melalui URI walaupun bisa juga dengan form yang menggunakan metode GET yang mana ujung - ujungnya duit data tersebut tetap dikirimkan juga melalui URL.
Hasil dari permintaan dengan metode GET dapat bersifat cacheable. Dan metode GET juga memiliki kondisional Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, ataupun If-Range yang ditujukan untuk menentukan apakah hasil dari permintaan HTTP Client akan diberikan server atau tidak. Ini bertujuan untuk mengurangi trafik antara HTTP Client dan Server yang mana jika hasil permintaan hasil permintaan tersebut sudah pernah ada di HTTP Client (sudah pernah diminta sebelumnya) maka HTTP Server tidak lagi memberikan permintaan tersebut.
• Metode Post
Metode POST digunakan untuk mengirimkan data dari HTTP Client untuk diproses di HTTP Server, kemudian HTTP server memberikan hasil dari proses tersebut ke HTTP Client. Data yang dikirimkan dengan metode POST disertakan pada baris permintaan (body of request) bukan pada URI. Dan hasil dari permintaan dengan metode POST ini tidak bersifat cacheable.
APLIKASI BULLETIN BOARD MOBILE BERBASIS ANDROID
Arya Pradana, Ary Mazharuddin S. S.Kom, M.Comp.ScJurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember
2.3 JSON (JavaScript Object Notation)
JSON merupakan metode pertukaran data berupa text-based, dan memiliki format yang mudah dibaca. JSON memiliki penggunaan yang sama dengan XML, tetapi dengan metode penulisan yang berbeda.
Penggunaan JSON secara umum terdiri dari fungsi encode dan decode. Contoh penggunaan sintaks encode pada metode JSON dapat dilihat pada Gambar 2.1, sedangkan hasil keluaran dari sintaks tersebut dapat dilihat pada Gambar 2.2.
Untuk sintaks JSON pada proses decode dapat dilihat pada Gambar 2.3, dan hasil keluaran dari proses decode tersebut dapat dilihat pada Gambar 2.4.
Penulis menggunakan metode JSON dalam pengiriman data yang dilakukan, karena JSON memiliki beberapa kelebihan – kelebihan dibandingkan XML, kelebihan – kelebihan tersebut adalah
• Format Penulisan.
Untuk merepresentasikan sebuah struktur data yang rumit dan berbentuk hirarkis penulisan JSON relatif lebih terstruktur dan mudah.
• Ukuran.
Ukuran karakter yang dibutuhkan JSON lebih kecil dibandingkan XML untuk data yang sama. Hal ini tentu berpengaruh pula pada kecepatan pertukaran data, walaupun tidak signifikan untuk data yang kecil, namun cukup berarti jika koneksi yang digunakan relatif lambat untuk mengakses aplikasi web kaya fitur yang
memanfaatkan pertukaran data. Di sini JSON lebih unggul dibandingkan XML, kecuali jika data dikompresi terlebih dahulu sebelum dikirimkan, perbedaan JSON dan XML yang telah dikompresi tidaklah signifikan.
• Browser Parsing.
Proses parsing merupakan proses pengenalan token atau bagian-bagian kecil dalam rangkaian dokumen XML/JSON. Contohnya, terdapat data text dalam format JSON. Data tersebut harus di-parsing terlebih dahulu sebelum dapat diakses dan dimanipulasi. Browser parsing berarti proses parsing yang terjadi pada sisi client/browser.
Melakukan browser parsing pada JSON lebih sederhana dibandingkan pada XML, JSON menggunakan function JavaScript eval() untuk melakukan parsing. Sementara dokumen XML di-parsing oleh XMLHttpRequest. Rata-rata survei menobatkan JSON sebagai pemenang jika diadu kecepatan parsingnya.
3. Metodologi
Pada metodologi ini akan dijelaskan dasar – dasar perancangan aplikasi.
3.1 Arsitektur Sistem
Pada Gambar 3.1 merupakan arsitektur website bulletin board. Proses yang dilakukan, pengguna mengakses website yang terdapat pada web server. Jika terjadi request untuk mengakses database, maka web server akan meneruskannya kepada server database yang menggunakan MySql dan menampilkan hasilnya pada website yang diakses oleh pengguna.
Gambar 3.1 Arsitektur Website
Sedangkan bentuk arsitektur aplikasi bulletin board pada telepon genggam, dapat dilihat pada Gambar 3.2. Pada telepon genggam berbasis android, telah diinstal aplikasi klien untuk menampilkan data – data yang terdapat pada database. Sebagai penjembatan antara aplikasi klien dan dan database, penulis menggunakan perantara file .php yang terdapat pada web server.
Gambar 3.2 Arsitektur Aplikasi Mobile Di dalam web server dibedakan menjadi dua folder, yaitu folder pertama berisi file – file html dan php yang berfungsi untuk menampilkan website. Folder kedua berisi file – file php yang berfungsi untuk menangkap request dari aplikasi java dan berfungsi untuk memberikan response <?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d' =>4,'e'=>5);
echo json_encode($arr); ?>
Gambar 2.1 Sintaks Encode JSON[2] {"a":1,"b":2,"c":3,"d":4,"e":5}
Gambar 2.2 Hasil Encode JSON[2]
<?php
$json = '{"foo-bar": 12345}'; $obj = json_decode($json); print $obj->{'foo-bar'}; ?>
Gambar 2.3 Sintaks Decode JSON[2] 12345
kepada aplikasi java. Selain itu file php tersebut merupakan penjembatan antara database MySql dengan aplikasi java.
Untuk request dan response data yang cukup banyak, maka digunakanlah komunikasi data JSON. Data dari web server diolah ke dalam php sehingga membentuk suatu obyek, kemudian obyek tersebut diencode dan dikirimkan kepada aplikasi java. Oleh aplikasi java, response yang diberikan oleh web server didecode menjadi suatu obyek yang nantinya dapat diproses ke dalam aplikasi.
3.2 Struktur Database
Pada model data konseptual terdapat 3 tabel, yaitu tabel hak akses, tabel user dan tabel thread. Tabel tersebut dapat dilihat pada Gambar 3.3.
Gambar 3.3 CDM Bulletin Board 3.3 Struktur Tabel
Berikut ini merupakan struktur tabel serta keterangan masing masing tabel dan field yang ada pada database.
1. Pada tabel 3-1, merupakan tabel hakakses, berisi tipe akses yang dapat dimiliki oleh user. Ada dua tipe akses yang dimiliki oleh user, yaitu sebagai mahasiswa dan sebagai dosen. Dalam pengembangannya nanti, tipe akses dapat ditambahkan sesuai dengan kebutuhan.
Tabel 3-1 Tabel hakakses Nama Tipe
Data
Lebar Keterangan
id_akses integer - Primary key jabatan varchar 20 Tipe akses
2. Tabel 3-2 merupakan tabel user, berisi data data user yang terdiri dari nama, username, password dan previlage atau hak akses. Tabel ini berfungsi sebagai untuk menyimpan database pengguna.
Tabel 3-2 Tabel user
Nama Tipe Data Lebar Keterangan id_user integer - Primary key username varchar 100 Username password varchar 100 Password previlage integer - Tipe hak akses nama varchar 100 Nama user
3. Tabel 3-3 merupakan tabel thread, merupakan tabel utama yang memproses sehingga dapat tercipta mini forum yang dinamis.
Tabel 3-3 Tabel thread Nama Tipe
Data
Lebar Keterangan Postid integer - Primary key Author varchar 255 Nama user
Tittle varchar 255 Judul posting Post text 255 Isi posting Showtime varchar 255 Waktu posting
Realtime integer - Waktu dalam microsecond Lastposter varchar 255 User yang
memposting terakhir Numreplies integer - Jumlah suatu
topik dibalas Parentid integer - Id parent Lastrepliedto integer - Balasan terakhir
3.3 Use Case Sistem
Pada use case seperti pada Gambar 3.4, pengguna di bedakan menjadi dua. Yaitu dosen dan mahasiswa. Namun keduanya memiliki hak – hak yang sama. Tidak ada perbedaan antara keduanya.
Gambar 3.4 Use Case Sistem 4. Implementasi Sistem
Salah satu implementasi sistem adalah mengirimkan data dari database, kepada aplikasi mobile dengan menggunakan metode JSON untuk
memudahkan pengiriman dan pembacaan data. Implementasinya dapat dilihat pada Gambar 4.1.
Setelah itu, salah satu implementasi sistem adalah melakukan koneksi dari aplikasi mobile kepada web server. Pseudocode dari implementasi tersebut dapat dilihat pada Gambar 4.2.
Setelah koneksi berhasil dilakukan, untuk menampilkan daftar thread yang terdapat pada database, menggunakan fungsi seperti pada gambar 4.3.
5. Uji Coba dan Evaluasi
Pada bagian ini akan dibahas mengenai uji coba dan evaluasi perangkat lunak. Perangkat lunak ini diuji coba dari segi fungsionalitas performa dan kompabilitas ketika dijalankan.
5.1 Uji Coba Fungsionalitas
Uji coba ini di lakukan untuk melihat apakah fungsi fungsi dasar dari perangkat lunak ini berjalan seperti yang di harapkan atau tidak. Uji coba fungsionalitas ini dilakukan pada aplikasi mobile.
Pada Gambar 5.1, merupakan gambar uji coba untuk melihat daftar thread yang ada di dalam database.
Gambar 5.1 Tampilan Daftar Thread
Pada tampilan daftar thread di Gambar 5.1, pengguna dapat melihat isi dari thread yang ada, serta dapat membuat thread baru. Untuk melakukannya, tekan tombol menu, lalu pilih menu “Post”, maka akan keluar tampilan seperti pada Gambar 5.2.
Gambar 5.2 Tampilan Posting Thread
Setelah melakukan posting, maka tampilan yang keluar dapat dilihat pada Gambar 5.3
begin
create HttpClient; var HttpRequest = null; var responstream = null; var responstring = null; if requestMethod == PostMethod then HttpRequest = create HttpPost; if httpRequest != null
then encodePostParameter if requestMethod == GetMethod then httpRequest = create HttpGet if httpRequest != null
response = execute httpRequest if response != null
responsetream = response getContent responsestring = generate responseString return responsestring
finish
Gambar 4.2 Pseudocode Koneksi
begin;
createJsonArray(response); getIndex;
for i=0 until i<getIndex HashMap temp;
JSONObject data = JSONArray.GetObject(i); InputList(data);
endfor finish
Gambar 4.3 Menampilkan List Thread begin;
var getquery;
var response = array;
while getquery = runQuery query array[title] = getquery2[title]; array[author] = getquery2[author]; array[postid] = getquery2[postid]; array[showtime]=getquery2[showtime] ;
response[] = object array; endwhile;
json_encode response; finish;
Gambar 5.3 Tampilan Hasil Posting
Untuk selanjutnya, menu yang akan dicoba adalah menu untuk melihat daftar balasan yang terdapat pada suatu thread. Untuk masuk ke daftar balasan, pengguna dapat mengklik pada thread yang diinginkan. Setelah thread diklik maka akan keluar tampilan seperti pada Gambar 5.4.
Gambar 5.4 Tampilan Daftar Balasan
Pada Gambar 5.4 dapat dilihat bahwa belum ada balasan yang dilakukan pada thread sistem digital. Jika ingin melakukan balasan, pengguna dapat mengklik pada menu “Reply”. Tampilan yang keluar setelah menu tersebut diklik dapat dilihat pada Gambar 5.5.
Gambar 5.5 Tampilan Reply Conversation
Setelah dilakukan posting maka tampilan yang terjadi dapat dilihat pada Gambar 5.6.
Gambar 5.6 Hasil Reply Thread 5.2 Uji coba performa
Uji coba performa di lakukan untuk mengetahui kecepatan perangkat lunak dalam mengatasi banyaknya request dalam satuan waktu yang di lakukan secara bersamaan dan dalam jumlah tertentu. Kecepatan perangkat lunak mulai di ukur ketika request di kirim sampai halaman peta dapat tampil secara penuh. Dalam uji coba ini obyek yang di gunakan adalah halaman daftar index, sehingga nanti di ketahui berapa waktu yang di butuhkan untuk menampilkan sebuah halaman daftar index thread.
Percobaan yang di lakukan menggunakan tools yang di sebut apache benchmark. Adapun dalam apache benchmark sintaks yang di gunakan
adalah sebagai berikut :
Pada Gambar 5.7 di jelaskan bahwa ab adalah singkatan dari Apache Benchmark. -c 20 adalah jumlah concurrent connection, sebanyak 20 koneksi secara bersamaan, -n 1000 adalah jumlah request yang mau dikirim, sebanyak 1000 request..
Tabel 5-1 Hasil Percobaan Apache Benchmark Request Concurency Request/Second Transfer
Rate 1000 10 21,80 10,20 kb/sec 1000 20 22,07 10,32 kb/sec 1000 50 20,91 9,78 kb/sec 1000 90 22,34 10,45 kb/sec 1000 100 19,12 8,94 kb/sec ab -n 50 –c 1000 [halaman yang ingin
Tabel 5-2 Hasil Percobaan Apache Benchmark Request Concurency Request/Second Transfer
Rate 500 10 22,04 10,31 kb/sec 500 20 22,47 10,51 kb/sec 500 50 19,08 8,92 kb/sec 500 90 22.24 10,40 kb/sec 500 100 21,89 10,24 kb/sec
Pada Tabel 5-1 dapat dilihat penulis menggunakan jumlah request yang tetap, sebanyak 1000 request dengan jumlah konkurensi yang berbeda – beda. Sedangkan dari Tabel 5-2, penulis menggunakan jumlah request 500, dan jumlah konkurensi yang berbeda – beda. Dari kedua percobaan tersebut, dapat ditarik kesimpulan, bahwa jumlah request per second selain dipengaruhi oleh transfer rate, juga dipengaruhi oleh konkurensi dan jumlah request yang dikirimkin. Transfer rate sendiri, dipengaruhi oleh kemampuan web server dalam mengirimkan respon, serta kemampuan jaringan internet dalam menangkap respon.
5.3 Uji Coba Kompabilitas
Pada Gambar 5.8 merupakan spesifikasi telepon genggam yang digunakan untuk melakukan uji coba kompabilitas.
Gambar 5.8 Spesifikasi Telepon Genggam Hasil dari uji coba dari berbagai macam telepon genggam yang digunakan, dapat dilihat pada Gambar 5.9.
Gambar 5.9 Hasil Uji Coba 6. Kesimpulan
Dari hasil pengamatan selama perancangan, implementasi perangkat lunak
yang dilakukan, dapat diambil simpulan sebagai berikut :
1. Koneksi antara web server dan aplikasi mobile di android telah berhasil diimplementasikan dengan menggunakan metode http request dan response
2. Metode pengiriman data yang digunakan dalam pengiriman data dari web server ke aplikasi mobile di android menggunakan metode JSON
3. Antar muka dalam aplikasi android telah dapat diimplementasikan dengan menggunakan software droidraw.
7. Daftar Pustaka
[1] Robertus Lilik Haryanto, 2010, Pengiriman Data GET/POST Pada Koneksi HTTP
<URL :
[2] JSON, PHP team, 2001-2010, JSON Book
Manual, <URL : diakses 15 Desember 2010>
[3] Peter. 2008. ab apache benchmark. <URL : 2011>