Anda di halaman 1dari 10

APLIKASI INSTANT MESSAGING DAN REAL

TIME DOODLE
DENGAN TEKNIK NON BLOCKING
MENGGUNAKAN NODE.JS
DI LINGKUNGAN JARINGAN WLAN
Triatmaji Dewantoro
Yoshua Norza
Ricky Adrian
Robby Saleh
Universitas Bina Nusantara, Jl. Syahdan No. 9, 021-5345830, rickyadrian65@gmail.com;
triatmaji20@gmail.com; yoshuanorza@gmail.com;

ABSTRAK
Platform node.js memiliki beberapa keunggulan yang dapat membatu sebuah aplikasi web berjalan lebih
baik dengan tidak membebani server dan jaringan. Selain node.js, penelitian ini juga menggunakan
framework dan template engine pendukung lainnya. Seperti socket.io, express.js, jade dan stylus.
Metodologi penelitian menggunakan metode incremental development yang merupakan salah satu metode
dalam software development lifecycle. Tujuan dari penelitian ini adalah untuk menghasilkan sebuah aplikasi
instant messaging dengan fitur real time doodle yang diujicobakan dalam sebuah jaringan WLAN. Pada
tahap evaluasi dilakukan uji coba terhadap kinerja aplikasi, fitur-fitur unggulan yang dimiliki node.js dan
framework pendukung lainnya. Dari penelitian ini hasil yang didapatkan adalah CPU usage lebih kecil
79.16% di sisi server dan 33.33% di sisi client dibandingkan dengan aplikasi instant messaging yang
menggunakan PHP. Selain itu dihasilkan juga bahwa aplikasi ini tidak mengharuskan server untuk selalu
melakukan check terhadap request karena menggunakan teknologi push. Berbeda dengan teknologi pull
yang selalu melakukan check sehingga terjadi perubahan memory dalam beberapa waktu meskipun dalam
kondisi tidak ada activity.
Kata kunci: Instant Messaging, Doodle, Non-Blocking, Node.js, Socket .io, Express.js.

1. PENDAHULUAN

1.1

Latar Belakang

Jejaring sosial dalam satu dekade terakhir seolah menjadi sebuah fenomena di seluruh dunia.
Dari berbagai macam jejaring sosial yang kini tersedia, Instant Messaging (IM) adalah salah satu yang
paling banyak digunakan. Dalam sebuah laporan analysysmason.com dinyatakan bahwa 45% dari
pengguna smartphone lebih memilih menggunakan fasilitas instant messaging dibandingkan dengan
text messaging tradisional (SMS) (analysysmason.com). Dari hasil laporan tersebut, disimpulkan
bahwa aplikasi chat (instant messaging) secara real time dengan tidak membebani jaringan dan client
devices sudah menjadi alternatif yang signifikan dalam teknologi komunikasi.
Selain itu hadir pula teknologi Node.js. Sebuah platform yang dirancang untuk pengembangan
aplikasi web dan diimplementasikan di server. Node.js mampu melakukan proses baik secara blocking
(synchronous) maupun non-blocking (asynchronous). Dengan kemampuan Node.js yang dapat
melakukan non-blocking, maka terbuka kemungkinan untuk membuat aplikasi web instant messaging
yang ringan, real-time dan efisien (nodejs.org). Node.js juga dapat diintegrasikan dengan socket.io
yang merupakan framework dari websocket. Dengan websocket, antara client dan server dapat saling
melakukan push message kapan saja (WebSocket.org).
Aplikasi ini akan dibuat berdasarkan ide untuk membuat aplikasi instant messaging dan doodle
dengan menggunakan teknologi yang dapat mengurangi beban server, jaringan dan client. Dengan
penelitian ini, diharapkan terbentuk sebuah sistem baru yang dapat menjadi alternatif di antara aplikasi
instant messaging yang sudah ada.

1.2

Kajian Pustaka

Node.js merupakan sebuah platform yang dirancang untuk web server. Platform ini ditulis dalam
bahasa JavaScript dan menggunakan teknik non-blocking atau asynchronous untuk mempercepat
proses. Dalam asynchronous sebuah operasi tidak harus menunggu selesai dikerjakan untuk
melakukan operasi yang lain (Leonard, A. 2011. p216). Tidak seperti PHP, ASP.NET, Java,
ColdFusion, Perl, Ruby dan Python yang masih banyak digunakan sebagai aplikasi web server,
penggunaan Node.js sebagai aplikasi web server masih sangat jarang karena Node.js baru
diperkenalkan pertama kali awal tahun 2011 oleh Ryan Lienhart Dahl. Menurut hasil survey dari
W3Techs.com, penggunaan PHP sebagai server-side programming language adalah yang paling
banyak hingga mencapai 78.7 %. Kemudian diikuti oleh ASP.NET sebanyak 20.1 %, Java 4.1 %,
ColdFusion 1.1 %, Perl 0.8 %, Ruby 0.5 % dan Phyton 0.2 %. (W3Techs.com)
Node.js bukanlah yang pertama kali menerapkan teknik non-blocking ini. Perl, Ruby dan Phyton
juga menerapkan teknik non-blocking. Perbedaannya adalah implementasi. Node.js lebih mudah
karena menggunakan JavaScript dan kebanyakan web programmer sudah terbiasa menggunakan
Javascript.
Selain itu, Node.js juga dapat diintegrasikan dengan teknologi WebSocket. Salah satu
framework WebSocket yang dapat digunakan oleh Node.js adalah socket.io. Dengan WebSocket,
antara client dan server dapat saling melakukan push message kapan saja (WebSocket.org).
Keunggulan lain dari socket.io adalah cross browser yang berarti aplikasi web yang dibuat dapat
dijalankan di browser manapun.
Melihat kelebihan-kelebihan tersebut ada peluang yang memungkinkan untuk dibuatnya sistem
yang lebih baik dengan tidak membebani kerja server. Untuk pembuktian hipotesis tersebut, maka
dibuatlah sebuah aplikasi web instant messaging dan real time doodle yang diperuntukkan dan akan
diuji coba pada jaringan WLAN.

1.3 Tujuan dan Manfaat Penelitian


Tujuan dari penelitian ini adalah membuat aplikasi web instant messaging dan doodle dengan
teknik non-blocking dengan menggunakan Node.js.
Manfaat yang diharapkan dari hasil penelitian ini adalah dihasilkannya sebuah aplikasi web
instant messaging dan doodle yang bekerja secara real time namun tetap tidak membebani server,
jaringan dan client. Selain itu, dengan adanya fitur doodle pada aplikasi instant messaging diharapkan
dapat melakukan chat dengan lebih efektif dan interaktif.

2. METODE PENELITIAN
Metodologi yang digunakan untuk mencapai tujuan dan manfaat adalah sebagai berikut:
1. Studi Pustaka
Studi pustaka dilakukan dengan pengkajian skripsi, jurnal dan text book yang berhubungan
dengan penelitian.
2. Perancangan
Perancangan aplikasi yang kami lakukan menggunakan incremental model yang terdiri dari:
a. Communication
Mengumpulkan requirement yang dibutuhkan untuk pembangunan aplikasi.
b. Planning
Membuat estimasi dan perencanaan kerja.
c. Modelling
Analisis: melakukan analisis terhadap requirement yang dibutuhkan.
Desain: membuat perancangan sesuai dengan hasil dari analisis.
Perancangan dilakukan dengan menggunakan UML.
d. Construction
Coding.
Testing.
e. Deployment

3. HASIL DAN BAHASAN


Untuk membuktikan kelebihan dari teknologi node.js yaitu non-blocking dan push, maka
dilakukan pengujian terhadap aplikasi yang telah kami buat. Pengujian atau evaluasi yang kami
lakukan diantaranya adalah pengujian teknik non-blocking, pengujian kompatibilitas browser,
pengujian fitur doodle, pengujian pemakaian CPU, pengujian teknologi push, evaluasi kuesioner,
evaluasi tampilan antarmuka. Berikut adalah ulasan dari masing-masing pengujian atau evaluasi.

3.1 Pengujian Teknik Non-Blocking


Tujuan dari pengujian ini adalah untuk membuktikan bahwa dengan teknik non-blocking
transaksi yang dilakukan client yang memerlukan proses pada server, seperti chatting yang
memerlukan proses penyimpanan pada database server, akan terproses dengan cepat.
Pengujian ini tidak dilakukan langsung terhadap aplikasi instant messaging. Alasannya karena
membutuhkan user yang banyak untuk menjalankan aplikasi instant messaging agar perbedaan
kecepatan terlihat jelas. Pengujian ini dilakukan dengan menjalankan 2 program sederhana yang dicode dengan teknik non-blocking dan blocking dari node.js. Proses yang pertama menjalankan looping
yang selanjutnya menampilkan kata Thanks for waiting! pada browser. Proses yang kedua
menampilkan kata Hello!. Program yang dijalankan dengan teknik blocking menggunakan port
8000, sedangkan program yang dijalankan dengan teknik non-blocking menggunakan port 8080.
Dari hasil yang didapat, program yang dijalankan dengan teknik blocking berjalan dengan
sequence. Artinya proses yang kedua harus menunggu proses pertama sampai selesai untuk dapat
dieksekusi. Sedangkan pada teknik non-blocking, proses kedua dapat langsung dieksekusi setelah
proses pertama dieksekusi tanpa harus menunggu proses pertama selesai dieksekusi.
Dengan demikian dapat disimpulkan bahwa teknik non-blocking program yang dibuat dapat
berjalan lebih optimal dan cepat dibandingkan dengan teknik blocking.

3.2 Pengujian Kompatibilitas Browser


Tujuan dari pengujian ini adalah untuk membuktikan bahwa aplikasi yang dibuat dapat
dijalankan oleh user di browser manapun. Untuk menguji seberapa kompatibel aplikasi instant
messaging dan doodle yang dibuat dengan browser maka dilakukan pengujian dengan cara
menjalankan aplikasi tersebut pada beberapa browser. Dalam pengujian aplikasi web akan dijalankan
pada browser Google Chrome, Mozilla Firefox dan Internet Explorer.
Berikut adalah hasil dari pengujian yang dilakukan untuk di setiap browser.

Gambar 1 Halaman Chat in Room pada Google Chrome

Gambar 2 Halaman Chat in Room pada Mozilla Firefox

Gambar 3 Halaman Chat in Room pada Internet Explorer


Berdasarkan hasil pengujian yang didapat, aplikasi instant messaging yang dibuat dengan
node.js dapat berjalan di Google Chrome, Mozilla Firefox dan Internet Explorer. Demikian juga
dengan fitur doodle, setiap browser yang diujikan juga dapat menjalankan fitur ini. Perbedaannya
hanya dari tampilan yang tidak begitu mencolok. Hal ini menunjukkan bahwa aplikasi web yang
dibuat dengan teknologi Node.js mempunyai kompatibilitas yang baik terhadap setiap browser.

3.3 Pengujian Fitur Doodle


Tujuan dari pengujian ini adalah untuk membuktikan apakah fitur doodle yang dibuat sudah
dapat berjalan dengan baik atau belum. Pengujian fitur doodle dilakukan dengan menggunakan 2
komputer yang sedang aktif menggunakan aplikasi ini. Kedua komputer tersebut kemudian
mengaktifkan fitur chat personally agar dapat mengaktifkan fitur doodle. Setelah itu, masing-masing
komputer mengaktifkan fitur doodle dengan mengklik fitur doodle.
Pengujian dilakukan sebanyak dua kali. Pada pengujian I komputer pertama menggambar garis
lurus dari atas ke bawah di sebelah kiri sehingga garis lurus yang digambar juga muncul secara real
time pada layar komputer dua. Kemudian komputer kedua menggambar garis lurus dari atas ke bawah
di sebelah kanan sehingga garis lurus yang digambar juga muncul secara real time pada layar
komputer satu. Pada pengujian II juga dilakukan hal yang sama seperti pengujian I. Berikut adalah
data hasil pengujian doodle yang didapatkan setelah melakukan pengujian.

Gambar 4 Tampilan Doodle di Komputer 1 pada Pengujian Doodle

Gambar 5 Tampilan Doodle di Komputer 2 pada Pengujian Doodle

Pada pengujian doodle yang pertama, garis yang dibuat oleh komputer 1 menampilkan garis
yang sama di komputer 2. Begitu juga sebaliknya, garis yang dibuat oleh komputer 2 menampilkan
garis yang sama di komputer 1. Dan pada pengujian yang kedua, garis yang dibuat oleh komputer 1
menampilkan garis yang sedikit berbeda di komputer 2. Pada komputer 2 muncul garis tambahan yang
menghubungkan garis pertama dan garis kedua yang dibuat oleh komputer 1. Begitu juga sebaliknya,
garis yang dibuat oleh komputer 2 menampilkan garis yang sedikit berbeda di komputer 1. Pada
komputer 1 muncul garis tambahan yang menghubungkan garis pertama dan garis kedua yang dibuat
oleh komputer 2.
Berdasarkan hasil tersebut dapat disimpulkan bahwa fitur doodle yang dikembangkan masih
mengandung bugs sehingga hasil yang didapatkan belum sempurna. Hal tersebut kemungkinan besar
dikarenakan adanya perintah-perintah pemrograman yang tidak terkirim dari komputer 1 ke komputer

2, ketika di komputer 1 dilakukan aksi penggambaran lalu dilakukan penggambaran selanjutnya.


Begitu pula yang terjadi sebaliknya jika aksi penggambaran dilakukan oleh komputer 2. Sehingga
terjadi kesalahan dalam menampilkan penggambaran dari aksi komputer 1 di komputer 2 atau
sebaliknya. Dengan demikian fitur doodle ini masih membutuhkan perbaikan untuk mendapatkan
hasil yang lebih baik sehingga user dapat menggunakan fitur ini dengan nyaman.

3.4 Pengujian Pemakaian CPU (CPU Usage)


Tujuan dari pengujian ini adalah untuk membuktikan bahwa aplikasi instant messaging dan
doodle yang dibangun memiliki CPU usage atau pemakaian CPU yang kecil baik dari sisi server
maupun client. Pada pengujian ini dilakukan perbandingan antara aplikasi instant messaging yang
dibuat dengan Node.js dan aplikasi yang dibuat dengan PHP versi 3.01. Aplikasi PHP yang diuji
menggunakan teknik blocking dan teknologi pull. Web server yang digunakan pada aplikasi PHP
adalah Apache versi 2.2. Sedangkan aplikasi yang dibuat dalam penelitian ini menggunakan teknik
non-blocking dan teknologi push. Dengan demikian akan terlihat perbandingan CPU usage antara
aplikasi instant messaging yang dibangun dengan Node.js dan yang dibangun dengan PHP. Berikut
adalah data hasil pengujian yang dilakukan.
Tabel 4.1 Penggunaaan CPU Server Aplikasi Instant Messaging Node.js pada Pengujian I
Proses
CPU Usage (%)
node.exe
0
cmd.exe
0
conhost.exe
0
Tabel 4.2 Penggunaan CPU Server Aplikasi Instant Messaging PHP pada Pengujian I
Proses
CPU Usage (%)
httpd.exe
0.08
Tabel 4.3 Penggunaaan CPU Client Aplikasi Instant Messaging Node.js pada Pengujian I
Proses
CPU Usage (%)
Tab:beeChat
0
Tabel 4.4 Penggunaaan CPU Client Aplikasi Instant Messaging PHP pada Pengujian I
Proses
CPU Usage (%)
Tab: Chat
2
Tabel 4.5 Penggunaaan CPU Server Aplikasi Instant Messaging Node.js pada Pengujian II
Proses
CPU Usage (%)
node.exe
0.05
cmd.exe
0
conhost.exe
0
Tabel 4.6 Penggunaan CPU Server Aplikasi Instant Messaging PHP pada Pengujian II
Proses
CPU Usage (%)
httpd.exe
0.24
Tabel 4.7 Penggunaaan CPU Client Aplikasi Instant Messaging Node.js pada Pengujian II
Proses
CPU Usage (%)
Tab:beeChat
6
Tabel 4.8 Penggunaaan CPU Client Aplikasi Instant Messaging PHP pada Pengujian II
Proses
CPU Usage (%)
Tab: Chat
8
Berdasarkan hasil pengujian, pada pengujian I server Node.js memiliki CPU usage 0 % dan client
memiliki CPU usage 0%. Sedangkan server PHP memiliki CPU usage 0.08 % dan client memiliki
CPU usage 2 %. Pada pengujian II, server Node.js memiliki CPU usage 0.05 % dan client memiliki
CPU usage 6%. Sedangkan server PHP memiliki CPU usage 0.24 % dan client memiliki CPU usage
8%.

Dengan demikian dapat disimpulkan bahwa aplikasi instant messaging yang dibangun dengan
Node.js di sisi server memiliki CPU usage yang lebih kecil 79.16 % dibandingkan dengan aplikasi
instant messaging PHP. Dan aplikasi instant messaging yang dibangun dengan Node.js di sisi client
memiliki CPU usage yang lebih kecil 33.33 % dibandingkan dengan aplikasi instant messaging PHP.

3.5 Pengujian Teknologi Push


Tujuan dari pengujian ini adalah untuk membuktikan bahwa aplikasi yang dibuat menggunakan
teknologi push. Pada pengujian ini dilakukan perbandingan dengan teknologi pull. Untuk
pembandingnya adalah aplikasi instant messaging sederhana dengan teknologi pull dan teknologi
blocking yang menggunakan PHP versi 3.01. Web server yang digunakan adalah Apache versi 2.2.
Pengujian ini dilakukan dengan menggunakan task manager dari browser Google Chrome. Pada
task manager terdapat memory yang menjadi indikator apakah aplikasi menggunakan teknologi push
atau menggunakan teknologi pull. Aplikasi yang menggunakan teknologi push, akan terjadi perubahan
pada memory setiap kali ada activity yang dilakukan oleh client. Sedangakan aplikasi yang
menggunakan teknologi pull akan terjadi perubahan pada memory setiap beberapa waktu walaupun
tidak ada activity yang dilakukan oleh client. Masing-masing aplikasi diuji dalam keadaan idle dan
dilihat perubahan memory yang terjadi dalam waktu 5 detik.
Pada aplikasi instant messaging Node.js, saat t = 0 detik memiliki memory = 16448 KB.
Kemudian saat t = 5 detik, memory = 16448 KB. Sedangkan pada aplikasi instant messaging PHP,
saat t = 0 detik memiliki memory = 15804 KB. Kemudian saat t = 5 detik, memory = 15924 KB.
Berdasarkan hasil pengujian, pada aplikasi instant messaging Node js tidak terjadi perubahan
memory dalam waktu 5 detik. Sedangkan pada aplikasi instant messaging PHP terjadi perubahan
memory dalam waktu 5 detik. Dengan demikian dapat disimpulkan bahwa aplikasi instant messaging
yang dibuat menggunakan teknologi push yang tidak mengharuskan server untuk selalu mengecek
apakah ada request yang masuk atau tidak. Berbeda dengan teknologi pull yang selalu mengecek
request dari client sehingga terjadi perubahan memory setiap beberapa waktu.

4. SIMPULAN DAN SARAN


4.1 Simpulan
Berdasarkan hasil evaluasi , dapat ditarik kesimpulan sebagai berikut:
1. Aplikasi dapat melakukan chat secara real-time antar penggunanya. Baik secara personal maupun
secara kelompok.
2. Aplikasi dapat digunakan untuk melakukan doodle secara real-time antar 2 penggunanya tapi
masih mengandung bugs sehingga hasil yang didapat belum sempurna.
3. Aplikasi ini memiliki CPU usage lebih efisien dengan presentasi sebesar 79.16% di sisi server dan
33.33% di sisi client dibandingkan dengan aplikasi instant messaging yang menggunakan PHP.
4. Aplikasi menggunakan teknologi push yang tidak mengharuskan server melakukan check terhadap
request. Hal ini dibuktikan dengan tidak adanya perubahan memory saat aplikasi tidak melakukan
activity. Sedangkan pada aplikasi yang menggunakan teknologi pull, terdeteksi adanya perubahan
memory meskipun dalam kondisi tidak melakukan activity.

4.2 Saran
Berdasarkan penelitian yang telah dilakukan dan hasil evaluasi, maka disarankan:
1. Aplikasi dapat diimplementasikan pada suatu jaringan Wi-Fi internal yang telah memiliki
jumlah pengguna tetap yang banyak.
2. Aplikasi dapat dibuat sebagai client native application pada berbagai platform mobile device
seperti Android, Blackberry, atau iOS.

5. REFERENSI
Analysys Mason. (2012).Almost Half of Consumers with Smartphones Use Instant or Over-The-Top
Messaging Services and One in Five Use VOIP Apps. Diperoleh (22-01-2012) dari
http://www.analysysmason.com/About-Us/News/Press-releases1/Consumer-voice-messaging-PROct2012/.
Kaazing Corporation. (n.d). Diperoleh (12-24-2013) dari http:// websocket.org.
Leonard, A. (2011). Pro Java 7 NIO 2. New York: Apress.
Node.JS Org. (n.d). Diperoleh (01-07-2013) dari http://nodejs.org/.

6. RIWAYAT PENULIS
Nama
Tempat Tanggal Kelahiran
Pendidikan Akhir
Pekerjaan
Pengalaman Organisasi
2007-2009

:
:
:
:
:
:

Triatmaji Dewantoro
Jakarta, 11 April 1991
Teknik Informatika S1, BINUS UNIVERSITY
Mahasiswa

Nama
Tempat Tanggal Kelahiran
Pendidikan Akhir
Pekerjaan
Pengalaman Organisasi
2006-2009
2009-2010

:
:
:
:
:
:
:

Yoshua Norza
Jakarta, 11 Mei 1991
Teknik Informatika S1, BINUS UNIVERSITY
Wiraswasta dan Instruktur Binus Center paruh waktu

Nama
Tempat Tanggal Kelahiran
Pendidikan Akhir
Pekerjaan
Pengalaman Organisasi
2010-2011
2011-2012
2013-2014

:
:
:
:
:
:
:
:

Anggota Divisi Dakwah Majlis Talim Al-Khawarizmi


Ketua Umum Dakwah Majlis Talim Al-Khawarizmi
Ketua Divisi Kaderisasi IKRIMA

Nama
Tempat Tanggal Kelahiran
Pendidikan Akhir
Pekerjaan

:
:
:
:

Robby Saleh, S.Kom., M.T


Jakarta, 28 Januari 1978
Teknik Elektro S2, Universitas Indonesia
SCDC Manager BINUS UNIVERSITY

OSIS SMAN 65 Jakarta

Anggota klub basket SMAN 65


Aktivis HIMTI Binus
Ricky Adrian
Jakarta, 21 Juni 1990
Teknik Informatika S1, BINUS UNIVERSITY
Guru Prima Privat

Anda mungkin juga menyukai