BAB 2 TINJAUAN PUSTAKA 2.1 Teori Umum 2.1.1 Jaringan

advertisement
BAB 2
TINJAUAN PUSTAKA
2.1
Teori Umum
2.1.1
Jaringan Komputer
(Forouzan, Behrouz A., 2007: 8). Jaringan atau network
merupakan dua komputer atau lebih yang saling berhubungan satu
sama lain, saling berkomunikasi secara elektronik, saling membagi
sumber daya (semisal: CD-ROM, Printer, File Sharing: pertukaran
file, Internet dan lainnya) dan juga dapat saling mempergunakan
sumber daya yang sama.
Jaringan terdistribusi adalah jaringan komputer yang cara
kerjanya dilakukan oleh semua perangkat komputer di dalamnya. Ini
berarti tidak ada perbedaan antara Server dengan Client. Sedangkan
jaringan tersentralisasi adalah jaringan komputer yang cara kerjanya
berbeda baik itu Server maupun Client. Pemusatan jaringan komputer
tersentralisasi adalah pada komputer Server.
2.1.2
Jenis – Jenis Network
Berdasarkan skala yang dapat dijangkau, jaringan komputer
dibagi menjadi tiga yaitu :
1. Local Area Network (LAN)
(Forouzan, Behrouz A., 2007: 13). Local Area Network
(LAN) secara umum adalah jaringan privat yang
menghubungkan
perkantoran,
gedung
atau
kampus.
Tergantung dari kebutuhan pengguna LAN dan teknologi
yang digunakan. Sampai sekarang, jaringan LAN terbatas
hanya sampai beberapa kilometer saja.
6
7
Gambar 2.1 Local Area Network
2. Metropolitan Area Network (MAN)
(Forouzan, Behrouz A., 2007: 15). Metropolitan Area
Network (MAN) adalah jaringan yang luas jangkauanya
berada tidak kurang dari jaringan LAN dan tidak seluas
jaringan WAN, yang biasanya hanya seluas kota.
Di
desain untuk pelanggan yang membutuhkan koneksi cepat,
koneksi internet lancar dan merupakan jaringan dengan
banyak end points di suatu kota atau hanya sebagian dari
sebuah kota tersebut.
Gambar 2.2 Metropolitan Area Network
3. Wide Area Network (WAN)
(Forouzan, Behrouz A., 2007: 14). Wide Area Network
(WAN) memungkinkan komunikasi data, gambar, suara
bahkan video dengan jarak yang relatif jauh dan dapat pula
berjarak antar negara, benua bahkan seluruh dunia
sekalipun. WAN dapat juga serumit backbone yang
terkoneksi jaringan internet atau juga hanya seperti
8
jaringan dial-up yang mengkoneksikan komputer dengan
internet.
Gambar 2.3 Wide Area Network
2.1.3
Media Transmisi Data
a.
Media Tembaga
Hampir
semua
jaringan
komputer
saat
ini
menggunakan kabel sebagai media transmisi. Media transmisi
ini memiliki batasan jangkauan dan tidak efisien karena
banyak memakai tempat. Media kabel ini biasanya digunakan
dalam jaringan lokal misalnya dalam satu gedung atau antar
gedung dalam suatu lembaga. Bila sumber data dan penerima
memiliki jarang yang tidak jauh kabel dapat digunakan dalam
media transmisi. Jenis kabel yang sering digunakan dalam
media transmisi adalah sebagai berikut :
1. Twisted-Pair
(Forouzan, Behrouz A., 2007: 193). Kabel
Twisted-Pair
secara
umum
adalah
kabel
Unshielded Twisted-Pair (UTP). IBM juga telah
membuat versi lain dari kabel Twisted-Pair yakni
kabel Shielded Twisted-Pair (STP). Kabel STP
memiliki lapisan metalfoil atau dapat juga berupa
jala-jala metal yang bertujuan untuk melindungi
konduktor didalamnya dari gangguan external
(noise).
9
Gambar 2.4 UTP dan STP
2. Coaxial
(Forouzan, Behrouz A., 2007: 195). Kabel
Coaxial
dapat
menyalurkan
sinyal
dengan
frekuensi yang lebih tinggi dari kabel twisted-pair,
dikarenakan keduanya sangat berbeda dari cara
penyusunannya. Dengan tidak menggunakan dua
kawat, kabel coaxial hanya memiliki satu kawat
sebagai konduktor utama (umumnya tembaga) dan
terbungkus
selubung
yang mengisolasi
yang
kemudian dibungkus lagi dengan metalfoil atau
jala-jala metal dan dapat pula dengan kombinasi
keduanya.
Gambar 2.5 Coaxial
10
3. Serat Optik
(Forouzan, Behrouz A., 2007: 198). Kabel
serat optik adalah kabel yang memiliki ukuran
kecil, mempunyai tiga komponen utama, yaitu
media transmisi, sumber cahaya, dan detektor.
Memiliki jarak jangkauan mencapai 2 km dengan
kecepatan tinggi yang dapat mencapai 600 Mbps.
cahaya melewati jalur lurus sepanjang jalur
tersebut memiliki zat dengan kepadatan yang sama.
Jika sinar cahaya yang secara konsisten melewati
jalur dengan kepadatan zat yang sama dan
kemudian berbeda kepadatan zatnya, maka cahaya
akan berbelok. Kelebihan media transmisi ini
memiliki kecepatan tinggi dan tidak terganggu
noise. Kekurangan media transmisi ini adalah
masih termasuk kabel yang mahal.
Gambar 2.6 Serat Optik
2.1.4
Perangkat Jaringan Komputer
1.
Ethernet Card
(Micro, Andi, 2012: 12). Ethernet card atau Network
Interface Card (NIC) atau LAN Card adalah perangkat yang
berfungsi sebagai media penghubung antara komputer dengan
11
jaringan luar. Pada ethernet card terdapat beberapa jenis port,
diantaranya port BNC (Barrel Nut Connector atau Bayonet
Net Connector) dan RJ-45, namun untuk sekarang ini yang
sering dipakai adalah port RJ-45.
Gambar 2.7 Ethernet Card
2.
Hub dan Switch
(Micro, Andi, 2012: 9). Hub dan Switch adalah
perangkat konsentrator yaitu perangkat yang digunakan untuk
menyatukan kabel-kabel dari workstation, Server, atau
perangkat host lainnya.Biasanya konsentrator ini digunakan
pada jaringan dengan topologi Star.Sebagai konsentrator,
Switch mempunyai kemampuan lebih lebih dibanding Hub.
Gambar 2.8 Switch
12
3.
Repeater
(Micro, Andi, 2012: 6). Repeater berfungsi untuk
memperkuat sinyal yang melemah karena melewati media
transmisi yang panjang cara kerja repeater ini dengan cara
menerima
sinyal
dari
satu
segmen
kabel
kemudian
memancarkan kembali sinyal tersebut dengan kekatan yang
sama dengan sinyal aslinya, sehingga jarak transmisi atau
kabel dapat diperpanjang.
Gambar 2.9 Repeater
4.
Router
(Micro, Andi, 2012: 23). Router merupakan perangkat
khusus yang digunakan untuk menangani konektivitas antara
dua jaringan atau lebih yang terhubung melalui paket
switching. Cara kerja router dengan melihat alamat asal dan
alamat tujuan dari paket yang melewatinya kemudian router
memutuskan rute yang akan dilewati paket tersebut untuk
sampai ke tujuan. Router mengetahui alamat masing-masing
komputer dilingkungan jaringan lokalnya, mengetahui alamat
bridge, dan router lainnya.
13
Gambar 2.10 Router
5.
Modem
(Micro, Andi, 2012: 1). Modem atau ModulatorDemodulator merupakan perangkat yang berfungsi merubah
sinyal analog menjadi sinyal digital. Secara umum digunakan
untuk memperoleh koneksi internet baik menggunakan kabel
telepon maupun sinyal mobile.
Gambar 2.11 Modem
6.
Access Point
(Sofana, 2008: 350).Access point adalah peralatan yang
digunakan pada Wireless Local Area Network (WLAN).
Access point bertugas mengatur dan menghubungkan beberapa
peralatan Wi-Fi. Access point dapat dianalogikan sebagai Hub,
14
hanya saja digunakan pada WLAN. Access point juga bisa
menggabungkan jaringan wireless dengan wired dan dapat
memperbesar jangkauan WLAN.
2.1.5
Kriptografi
(Kromodimoeljo, 2009: 5). Kriptografi adalah suatu metode
keamanan untuk melindungi suatu informasi dengan menggunakan
kata-kata sandi yang hanya bisa dimengerti oleh pihak yang berhak
mengakses informasi tersebut. Kriptografi merupakan satu-satunya
metode yang digunakan untuk melindungi informasi yang melalui
jaringan komunikasi yang menggunakan land line (kabel di bawah
tanah), satelit komunikasi, dan fasilitas microwave (gelombang
mikro). Prosedur-prosedur kriptografi juga bisa digunakan untuk
authentifikasi pesan, digital signature, dan identifikasi pribadi untuk
mengotorisasi transfer uang secara digital melalui ATM, kartu kredit,
dan melalui suatu jaringan.
Gambar 2.12 Proses Enkripsi dan Dekripsi
(Ariyus, 2008: 14). Kriptografi sebenarnya adalah suatu
metode yang sering sekali digunakan untuk melindungi berbagai
macam data yang prosesnya disebut dengan encryption, yaitu adalah
suatu proses yang mengkonversi sebuah pesan plain text menjadi
sebuah cipher text yang bisa dibalik ke bentuk asli seperti semula,
yang juga bisa disebut sebagai proses decoding atau decryption.
15
2.1.6
Sejarah Kriptografi
(Ariyus, 2008: 13). Kriptografi mempunyai sejarah yang
sangat panjang. Kriptografi sudah digunakan 4000 tahun yang lalu,
diperkenalkan oleh orang – orang Mesir lewat hieroglyph. Jenis
tulisan ini bukanlah bentuk standar untuk menulis pesan.
Gambar 2.13 Tulisan hieroglyph
(Ariyus, 2008: 13). Kriptografi berasal dari bahasa Yunani,
cryptos yang berarti rahasia dan graphein yang berarti tulisan.
Kriptografi adalah sebuah teknik dalam mengamankan dan mengirim
data dalam bentuk yang hanya diketahui oleh pihak yang berhak
membukanya.
Kriptografi
merupakan
ilmu
dan
seni
dalam
memproteksi informasi dengan mengubahnya ke dalam bentuk
himpunan karakter acak yang tidak dapat dibaca. Kriptografi adalah
sebuah cara yang efektif dalam mengamankan informasi-informasi
penting baik yang tersimpan dalam media penyimpanan maupun yang
ditransmisikan melalui jaringan komunikasi.
16
2.1.7
Tujuan Kriptografi
(Ariyus, 2008: 13). Tujuan kriptografi adalah melindungi data
dari ancaman yang disengaja atau tidak disengaja. Dewasa ini
ancaman bertambah karena semakin meluasnya akses melalui internet
atau teknologi bergerak. Aspek-aspek keamanan data dalam
kriptografi adalah sebagai berikut :
1) Confidentiality
Merupakan usaha untuk menjaga kerahasiaan
data. Data hanya boleh diakses oleh orang yang
berwenang. Contohnya data-data pribadi, data-data
bisnis, daftar gaji, data nasabah dan lainnya. Aspek
keamanan data menjadi sensitif dalam e-commerce dan
militer. Serangan dalam aspek ini antara lain dilakukan
dengan penyadapan, misalnya sniffer atau logger.
2) Integrity
Memastikan bahwa informasi yang dikirim
melalui jaringan tidak mengalami modifikasi oleh
pihak yang tidak berhak. Serangan dapat berupa
pengubahan data oleh orang yang tidak berhak,
misalnya dengan spoofing, yaitu virus yang dapat
mengubah berkas.
3) Availability
Informasi harus tersedia ketika dibutuhkan.
Serangan dapat berupa menghilangkan atau menghapus
data.
4) Authentication
Meyakinkan keaslian data, sumber data, orang
yang mengakses data, dan server yang digunakan.
Beberapa
cara
yang
dapat
digunakan
untuk
membuktikan keaslian data antara lain dengan what
17
you have (misalnya kartu identitas), what you know
(misalnya password atau PIN) dan what you are
(misalnya dengan biometric identity).
5) Access Control
Aspek ini berhubungan dengan mekanisme
pengaturan akses ke informasi, untuk mengatur siapa
yang boleh melakukan apa. Membutuhkan adanya
klasifikasi data, misalnya umum (public), pribadi
(private), rahasia (confidential) atau sangat rahasia (top
secret).
2.1.8
Waterfall Model
(Pressman, 2009: 39). Waterfall Model digunakan sebagai
pendekatan sistematis dalam mengembangkan perangkat lunak.
Model waterfall dapat disebut sebagai classic life cycle. Dalam model
waterfall, terdapat lima tahap dalam mengembangkan sebuah
perangkat lunak, yaitu:
Communication
Planning
Modeling
Construction
Deployment
Gambar 2.14 Proses pengembangan perangkat lunak waterfall
a.
Communication
Tujuan akhir dari fase communication adalah agar developer
memiliki gambaran sistem akhir yang akan dihasilkan dan
18
mengumpulkan kebutuhan dari perangkat lunak. Tahap
communication terdiri dari empat langkah, yaitu:
1.
Membuat garis besar dari tujuan dan sasaran dari
sistem akhir yang akan dihasilkan,
2.
Melakukan survei dengan menggunakan kuesioner
untuk menentukan target pengguna dan kebutuhan lain
yang diharapkan dari sistem yang akan dihasilkan,
3.
Menganalisis masalah dan kendala yang mungkin
terjadi beserta solusi untuk menyelesaikannya, dan
4.
Menganalisis kebutuhan perangkat keras, perangkat
lunak, authoring tools, serta delivery platform yang
tepat untuk digunakan pada tahap selanjutnya.
b.
Planning
Pada tahap planning, developer mulai membuat estimasi biaya
dan jumlah orang yang dibutuhkan dalam pengembangan
perangkat lunak. Selain estimasi, disusun juga penjadwalan
dengan membuat timeline agar perangkat lunak dapat berjalan
dan selesai tepat waktu.
c.
Modeling
Pada tahap modeling, developer melakukan analisis dan
merancang sistem dari perangkat lunak sesuai dengan
kebutuhan pengguna.
d.
Construction
Pada tahap construction, dilakukan perancangan kode (coding)
sesuai dengan rancangan perangkat lunak yang telah
ditentukan. Setelah perancangan kode selesai dilakukan, akan
dilakukan beberapa uji coba untuk menguji perangkat lunak
yang telah dibangun.
e.
Deployment
Pada tahap deployment, dilakukan implementasi sistem ke
dalam lingkungan tujuan.
19
2.1.9
Server
(Henderson, 2009: 507). Server merupakan komputer dengan
memory dan kapasitas hard disk yang besar yang menjadi pusat dari
sebuah jaringan komputer. Server bertugas untuk menyediakan
informasi dan layanan yang di request oleh user.
2.1.10 Web Browser
(Henderson, 2009: 503). Web browser adalah aplikasi
perangkat lunak yang berfungsi untuk mentransfer informasi pada
internet. Dengan begitu, pengguna dapat mengakses halaman web
pada internet. Selain itu web browser juga dapat digunakan untuk
mengakses data dalam web server di dalam sebuah jaringan yang
tertutup. Beberapa browser yang banyak digunakan adalah Chrome,
Firefox, Opera, Safari, dan Internet Explorer (W3.org). Web browser
tidak hanya diperuntukan untuk komputer desktop saja. Hadir pula
mobile web browser yang
digunakan untuk telepon selular yang
memiliki kemampuan untuk mengakses internet.
(Henderson, 2009: 503). Web browser mengirimkan request
sebuah halaman web ke webserver dengan menggunakan alamat web
tersebut. Kemudian server bertugas untuk mengirimkan halaman web
yang sesuai dengan request untuk selanjutnya ditampilkan di web
browser. Pada umumnya, web browser menyimpan file dan dokumen
yang direquest pada local cache. Cache berfungsi untuk mengurangi
jumlah data yang harus dikirim kembali jika web browser akan
melakukan request terhadap halaman web yang pernah diakses
Pada umumnya web browser memiliki fitur- fitur yang sama
diantaranya adalah :
1. (Henderson, 2009: 503). Navigation buttons yang
berfungsi agar user dapat berpindah maju ke halaman
20
selanjutnya atau mundur ke halaman sebelumnya yang
sudah dikunjungi
2. (Henderson, 2009: 503). Tabs yang berfungsi untuk
memudahkan pengguna dalam berpindah pindah
halaman web jika pengguna sedang mengakses ke lebih
dari satu halaman web secara bersamaan.
3. (Henderson, 2009 : 503). History, sebuah panel yang
menampilkan halaman- halaman web yang telah
dikunjungi
pengguna
dalam
beberapa
waktu
kebelakang. Dengan begitu, pengguna cukup memilih
alamat yang ada di history untuk kembali mengunjungi
web tersebut tanpa harus mengetik ulang alamat
webnya.
4. (Henderson, 2009: 503). Favorites atau bookmark,
kemampuan
webbrowser
untuk
menandai
atau
menyimpan halaman web yang dikehendaki pengguna.
Serupa dengan history, pengguna hanya perlu memilih
alamat web dalam daftar bookmark untuk dapat
mengakses halaman web tersebut tanpa harus mengetik
ulang alamat web.
2.1.11 Web Development
Web development adalah proses pembuatan sebuah website
untuk internet atau sebuah intranet. Dalam pembuatan sebuah website
digunakan berbagai macam bahasa pemrograman. Diantaranya
adalah:
1. HTML
(Henderson, 2009: 232). HTML (Hyper Text
Mark
Up
Language)
merupakan
bahasa
yang
digunakan untuk mendeskripsikan struktur sebuah
halaman web. HTML berfungsi untuk mempublikasi
dokumen online. (W3.org). Statement dasar dari
21
HTML disebut tags. Sebuah tag dinyatakan dalam
sebuah kurung siku (<>). Tags yang ditujukan untuk
sebuah dokumen atau bagian dari suatu dokumen
haruslah dibuat berupa pasangan. Terdiri dari tag
pembuka dan tag penutup. Dimana tag penutup
menggunakan tambahan tanda garis miring (/) di awal
nama tag. Contohnya <html> merupakan tag pembuka
dan </html> merupakan tag penutupnya.
Selain tag dasar terdapat juga tag A ,atau
anchor tag. Seperti beberapa tag HTML lainnya, tag A
digunakan bersamaan dengan atribut yang dapat
menjelaskan lebih spesifik mengenai apa yang akan
dikerjakan. Tag A biasanya digunakan bersamaan
dengan atribut <HREF> atau Hypertext Reference yang
berfungsi menghubungkan satu dokumen dengan
dokumen lainnya. Tag inilah yang membuat pengguna
dapat berpindah- pindah halaman dengan cara memilih
button tertentu.
2. CSS
(W3.org, 17 April 2015). CSS adalah bahasabahasa yang merepresentasikan halaman web. Seperti
warna, layout, dan font. Dengan menggunakan CSS,
seorang web developer dapat membuat halaman web
yang dapat beradaptasi dengan berbagai macam ukuran
layar. Pembuatan CSS biasanya terpisah dengan
halaman HTML. Meskipun CSS dapat disisipkan di
dalam halaman HTML. Hal ini ditujukan untuk
memudahkan
pengaturan
halaman
HTML
yang
memiliki rancangan yang sama.
Pada saat sebuah style diasosiasikan terhadap
sebuah elemen, maka format yang terdapat pada style
tersebut akan secara otomatis diaplikasikan ke setiap
22
elemen yang terasosiasikan tersebut. Sebagai contoh
jika kita ingin merubah format font pada heading
menjadi italic, maka kita hanya perlu mengaturnya
pada style yg terasosiasikan pada elemen heading.
Dengan begitu setiap elemen heading yang ada akan
memiliki format font yang italic.
Agar dapat berjalan, halaman CSS yang
terpisah dengan HTML haruslah diasosiasikan dengan
dokumen HTML yang dituju. Pada saat browser
melakukan load pada halaman HTML, maka secara
otomatis browser juga akan melakukan load terhadap
halaman CSS dan menggunakannya untuk menentukan
display dari sebuah halaman web.
(Henderson, 2009: 72). Style pada CSS
diaplikasikan dalam sebuah urutan yang bergantung
pada hubungan elemen- elemen yang terasosiasi.
Contohnya pada saat kita menentukan format style
pada sebuah div, maka setiap elemen yang berada
dalam div tersebut akan memiliki format style yang
sama.
3. Javascript
(Mcfarland, 2011: 1). Javascript merupakan
bahasa pemrograman yang bisa mengubah HTML
dengan animasi, interaktif, dan efek visual yang
dinamis. Javascript bisa membuat sebuah web pages
menjadi lebih berguna dengan memberikan feedback
yang cepat.
(Henderson, 2009: 256). Javascript adalah
salah satu bahasa pemrograman populer yang mampu
membuat halaman web dapat berinteraksi dengan
23
penggunanya. Javascript pertama kali dikembangkan
pada pertengahan dekade 90an. Meskipun memiliki
nama yang hampir serupa, javascript berbeda dengan
bahasa pemrograman Java. Untuk penulisannya,
javascript dapat disisipkan di dalam dokumen HTML
ataupun dijadikan dokumen tersendiri yang kemudian
diasosiasikan dengan dokumen lain yang dituju.
Javascript mengimplementasikan fitur yang
dirancang untuk mengendalikan bagaimana sebuah
halaman
web
berinteraksi
dengan
penggunanya.
Seperti tampilan pada window atau kendali pada menu
dan button. Javascript juga dapat digunakan untuk
memvalidasi sebuah webform pada browser sebelum
informasi pada form tersebut dikirim ke server
2.1.12 Instant Messaging
(Pagani, 2005: 88). Instant messaging atau IM adalah aplikasi
berbasis internet yang menyediakan komunikasi real-time antar
penggunanya.
Sebagian instant messaging dibuat untuk dapat berjalan di
berbagai device baik komputer desktop, komputer tablet, dan juga
smartphone. Sebagian lainnya hanya dapat dijalankan melalui device
tertentu.
Instant messaging dianalogikan seperti sebuah percakapan
telepon. Namun dengan basis teks bukan suara. Instant messaging
merupakan aplikasi yang real-time. Maksudnya adalah para
penggunanya dapat saling berkomunikasi apabila mereka dalam
kondisi online dan sama-sama terhubung dengan aplikasi IM.
24
2.2
Teori Khusus
2.2.1
Node.js
Menurut Rauch (2012: 1), Node.js pertama kali dikembangkan
oleh Ryan Lienhart Dahl pada tahun 2009. Platform ini dibuat untuk
memperoleh
performance
aplikasi
web
yang
tinggi
dan
mengoptimalisasikan lingkungan concurrent yang tinggi pula.
Platform Node.js memungkinkan bekerja dengan keandalan tinggi
dan dengan I/O non-blocking.
Node.js adalah sebuah platform yang dirancang untuk
webserver. Aplikasi ini ditulis dalam bahasa javascript dan berbasis
pada event (event driven). Tidak seperti kebanyakan bahasa javascript
yang dijalankan di client, Node.js dieksekusi sebagai aplikasi server.
Node.js memiliki efisiensi memory yang lebih baik apabila bekerja
dalam keadaan muatan yang banyak. Pengguna tidak perlu khawatir
dengan terjadinya deadlock karena tidak ada lock dalam Node.js.
Aplikasi ini terdiri dari V8 Javascript engine buatan Google. Inc dan
beberapa modul bawaan yang terintegrasi . Di dalam Node.js terdapat
operasi-operasi yang sifatnya synchronous dan asynchronous, tetapi
keunggulan Node.js ini terdapat pada asynchronous-nya atau bisa juga
disebut dengan non-blocking I/O . Node.js menggunakan pendekatan
event-driven berbasis infinite event loop dalam satu thread untuk
mengurangi jumlah memory. Manuel Kiessling (2012) berpendapat
bahwa Node.js merupakan model yang efisien untuk membangun
sebuah aplikasi yang harus bersinggungan dengan concurrency (dua
hal yang bekerja secara bersamaan).
Snippet atau Code Snippet adalah istilah pemrograman untuk
sebagian kecil dari re-usable source code atau teks. Biasanya, unit
operatif yang didefinisikan secara formal ini seringkali digunakan
untuk memperjelas makna dari sebuah fungsi yang “kacau”, atau
untuk meminimalkan pemakaian kode berulang yang umum bagi
fungsi-fungsi lain.
25
(Teixera, 2013: 4). Semenjak kemunculannya, Node.js telah
menyita perhatian dari kalangan industri. Banyak pelaku industri yang
menggunakan node untuk membuat layanan jaringan yang cepat dan
scalable. Salah satu alasannya adalah karena node.js menggunakan
javascript. Javascript adalah salah satu bahasa pemrograman yang
paling banyak digunakan. Kebanyakan web programmer
sudah
terbiasa menggunakan javascript pada browser.
Didalam node.js sudah terdapat HTTP server sehingga tidak perlu
menginstall program web server kembali. Kebalikannya dengan PHP
yang mengharuskan untuk menginstall aplikasi web server terlebih
dahulu agar bisa menggunakan HTTP Server.
Disamping itu terdapat perbedaan didalam letak eksekusinya . jika
di PHP dieksekusi di sisi server (serverside) dan hasilnya baru
ditampilkan disisi client dan node.js kebalikannya, sebelum
ditampilkan script JS dieksekusi di sisi client (clientside) melalui
browser yang digunakan.
2.2.2
Node Packet Manager
(npmjs.org, 17 April 2015). Node Package Manager atau
NPM adalah sebuah package manager untuk node.js. Fungsi dari
NPM adalah untuk mengatur, mencari, dan melakukan install modulmodul pada Node.js.
2.2.3
Express.js
(expressjs.com, 17 April 2015). Express.js adalah framework
node.js yang minimalis dan fleksibel. Express.js menyediakan
kumpulan fitur untuk membangun sebuah aplikasi web. Dengan
express.js programmer dapat menambahkan rute, memberikan
otentifikasi, dan kode pemrograman yang lebih struktural.
26
2.2.4
Operasi I/O
(Leonard, 2011: 212). I/O adalah suatu mekanisme pengiriman
data secara bertahap dan terus menerus melalui suatu aliran data dari
proses ke piranti (begitu pula sebaliknya). Fungsi I/O pada dasarnya
adalah mengimplementasikan algoritma I/O pada level aplikasi. Hal
ini dikarenakan kode aplikasi sangatlah fleksibel, dan bugs aplikasi
tidak mudah menyebabkan sistem crash.
Untuk memulai operasi I/O, CPU mengisi register yang
bersesuaian ke device controller. Sebaliknya device controller
memeriksa isi register untuk kemudian menentukan operasi apa yang
harus dilakukan. Pada saat operasi I/O dijalankan, ada dua
kemungkinan, yaitu synchronous I/O dan asynchronous I/O.
Gambar 2.15 Proses Synchronous dan Asynchronous I/O
27
2.2.5
Synchronous I/O
(Leonard, 2011: 215). Pada operasi synchronous I/O atau
blocking sebuah thread menunggu sampai I/O request selesai
dikerjakan baru dapat melakukan operasi selanjutnya Operasi
synchronous ini merupakan model operasi yang digunakan pada
sistem yang berbasis pada thread (thread-based system). Kelemahan
pada sistem adalah pada saat banyak request yang masuk ke server
akan menimbulkan block, yang selanjutnya akan berakibat terjadinya
deadlock.
2.2.6
Asynchronous I/O
(Leonard, 2011: 216). Biasa juga disebut non-blocking I/O.
Berbeda dengan operasi synchronous, dalam asynchronous sebuah
operasi tidak harus menunggu selesai dikerjakan untuk melakukan
operasi yang lain. Dengan begitu operasi tersebut tidak akan
melakukan blok terhadap operasi lainnya. Sehingga tidak terjadi
deadlock. Asynchronous digunakan pada sistem yang berbasiskan
pada event (event-driven system).
2.2.7
Websocket
(Wang, Salim, and Moskovits, 2013: 7). Websocket adalah
sebuah protocol dimana merupakan fitur konektivitas baru dari
HTML5. Websocket dapat melakukan perpindahan data 2 arah dalam
suatu waktu atau yang dikenal dengan transmisi data full-duplex.
Untuk menghasilkan sebuah koneksi dengan protocol websocket,
client harus melakukan request dengan protocol HTTP/1.1 dan
mendapat reply dari server sehingga HTTP dirubah menjadi
websocket yang dikenal dengan websocketopening handshake.
Sebagai perbandingan pada websocket terdapat juga konsep yang
28
bernama polling. Polling adalah fungsi yang bertugas untuk
melakukan proses update setiap detiknya.
Gambar 2.16 Polling send HTTP request
Sama halnya dengan kehidupan nyata, dalam komunikasi
antara client dengan server proses ini sangat menggangu dan tidak
produktif, karena hanya menimbulkan banyak permintaan yang
kosong dan terjadinya flooding terhadap server.
Gambar 2.17Polling vs Websocket
(Wang,Salim,dan Moskovits, 2013: 7)
Dapat dilihat pada gambar 2.17, bahwa konsep websocket
dengan polling memiliki perbedaan. Websocket memiliki efisiensi
29
dalam transimisi data real-time dibanding protokol HTTP biasa,
efisiensi merupakan faktor utama dalam transmisi data real-time.
2.2.8
Socket.io
Menurut Rauch (2012: 179), socket.io adalah sebuah library
javascript untuk aplikasi web yang real time yang ditujukan untuk
setiap browser dan mobile device. Dibuat oleh Guillermo Yauch, CTO
dari Learnboost. Socket.io memiliki kelebihan jika dibandingkan
dengan websocket. Salah satu fitur yang tidak dimiliki websocket
adalah heartbeat, dimana client akan mengirimkan pesan ke server
(atau dari server ke client lalu kembali lagi ke client) dalam interval
waktu tertentu untuk memastikan kondisi apakah client dalam kondisi
aktif atau tidak. Dalam penggunaannya, socket.io menggunakan
penanda dalam pemrogramannya yang disebut socket id
Gambar 2.18 Representasi Visual Socket.io
2.2.9
Hypertext Transfer Protocol (HTTP)
Menurut Wang, Salim, dan Moskovits (2013: 3), HTTP
merupakan protokol jaringan yang digunakan untukkomunikasi antara
client dan server.di dalam HTTP/1.0 , koneksi yang terpisah dibuat
30
untuk setiap request ke server, yang bisa di bilang kurang efektif.
Perkembangan berikutnya dari HTTP adalah HTTP/1.1, yang
membuat koneksi lama dapat digunakan kembali. Dengan koneksi
yang dapat digunakan kembali, browser bisa menginisialisasi koneksi
ke web server untuk mengambil halaman HTML, kemudian
menggunakan kembali sambungan yang sama. HTTP/1.1 mengurangi
latency antara request dengan mengurangi jumlah koneksi yang harus
dibuat dari client ke server.
Menurut Wang,Salim, dan Moskovits (2013: 4), HTTP
memperlakukan setiap permintaan dengan unik dan independen. Ada
keuntungan untuk protokol ini yaitu, server tidak perlu menyimpan
informasi mengenai sesi dan dengan demikian tidak memerlukan
storage data.
Dengan HTTP/1.0 dan HTTP/1.1 , inefisiensi utama berasal
dari berikut ini:
1. HTTP dirancang untuk berbagi dokumen, bukan untuk aplikasi
interaktif.
2. Jumlah informasi yang dibutuhkan protokol HTTP untuk
berkomunikasi antara client dan server bertambah dengan cepat,
ketika interaksi yang Anda miliki antara client
dan server
bertambah.
2.3
Hasil Penelitian Sebelumnya
Websocket di HTML5 merupakan kemajuan di bidang komunikasi
HTTP. Spesifikasi dari websocket memungkinkan saluran komunikasi dua
arah single-socket untuk mengirim dan menerima informasi antara browser
dan server. Dengan demikian, websocket menghindari koneksi dan
portabilitas masalah teknik lainnya dan memberikan solusi yang lebih efisien
daripada polling AJAX. Saat ini websocket di HTML5 adalah sarana terdepan
untuk memfasilitasi full-duplex, pertukaran data di web secara real time.
31
Websocket menyediakan lintasan sederhana dari firewall dan router dan
kompatibel dengan data biner. Websocket juga memungkinkan pertukaran
data dengan cookie-based authentication.
Menurut Hamalainen (2011, 4), Websocket merupakan komunikasi
full-duplex yang diperkenalkan sebagai bagian dari standar HTML5
mendatang. Spesifikasi lengkap gabungan dari Websocket API yang
ditetapkan oleh W3C dan protokol yang Websocket diusulkan sebagai IETF
RFC6455. The Websocket API mendefinisikan interface antara Browser dan
aplikasi web sementara protokol Websocket menentukan komunikasi protokol
antara browser dan aplikasi server.
Gambar 2.19 Websocket Protocol
(Hamalainen, 2013: 4)
Menurut Fette dan Melnikov (2011: 1), websocket protokol
memungkinkan untuk melakukan komunikasi dua arah antar client dalam
menjalankan program yang tidak dipercaya dalam lingkungan yang
terkendali ke remote host.
Websocket ini merupakan protokol yang terdiri dari opening handsake
yang diikuti berdasarkan dasar message framing, yang berdiri diatas TCP.
Tujuan dari teknologi ini adalah untuk menyediakan mekanisme untuk
aplikasi berbasis browser yang membutuhkan komunikasi dua arah dengan
server yang tidak bergantung kepada beberapa koneksi HTTP.
Menurut Fette dan Melnikov (2011: 1), pada jurnalnya yang berjudul
The Websocket Protocol, websocket didesain untuk menggantikan teknologi
komunikasi bidirectional yang menggunakan HTTP sebagai transport layer
untuk mendapatkan keuntungan dari infrastuktur yang ada (proxy, filtering
dan otentikasi). Teknologi tersebut di implementasi sebagai pertukaran antara
32
efisiensi dan kehandalan karena HTTP pada dasarnya tidak didesain untuk
melakukan komunikasi bidirectional.
Berikut ini hasil perbandingan koneksi HTTP dengan Websocket :
Tabel 2.1 Perbandingan HTTP dengan websocket
(Fette dan Melnikov, 2011)
Download