BAB 2 TINJAUAN PUSTAKA
2.1 Teori Umum Pada bagian ini akan dibahas mengenai teori-teori umum yang digunakan di dalam penelitian ini. 2.1.1 Sistem Menurut Whitten dan Bentley (2007: 6), sistem merupakan sebuah kumpulan dari komponen yang saling berhubungan, serta berfungsi bersama untuk mencapai tujuan yang diinginkan. 2.1.2 Sistem Informasi Menurut Whitten dan Bentley (2007: 6), sistem informasi merupakan pengaturan orang, data, proses dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses, menyimpan dan menyediakan sebagai output informasi yang diperlukan untuk mendukung sebuah organisasi. Sistem informasi terbagi atas beberapa jenis. Berikut ini merupakan sistem informasi berdasarkan fungsinya : 1. Transaction Processing System (TPS) Sistem informasi yang meng-capture dan memproses data mengenai transaksi bisnis. 2. Management Information System (MIS) Sistem informasi yang menyediakan untuk laporan berorientasi manajemen berdasarkan pemrosesan transaksi dan operasi dari organisasi. 3. Decision Support System (DSS) Sistem informasi yang membantu mengidentifikasi kesempatan dalam pembuatan keputusan atau menyediakan informasi untuk pembuatan keputusan. 4. Executive Information System (EIS) Sistem informasi yang mendukung perencanaan dan penilaian kebutuhan dari manajer eksekutif. 5. Expert System Sistem
informasi
yang
meng-capture 7
keahlian
pekerja
dan
8 mensimulasikan keahlian tersebut kepada mereka yang tidak ahli. 6. Communication and Collaboration System Sistem informasi yang membuat komunikasi yang lebih efektif antar pekerja, rekan kerja, pelanggan, dan supplier agar dapat meningkatkan kemampuan mereka dalam berkolaborasi. 7. Office Automation System Sistem informasi yang mendukung aktivitas kantor bisnis secara luas yang menyediakan aliran kerja yang diperbaiki antara para pekerja
2.1.3 Layanan Virtual Menurut Lankes (2002, 2), layanan virtual digunakan untuk menghubungkan library dengan publik via jaringan elektronik. Layanan virtual memberikan banyak hal di dalam internet. Bahkan sering menggunakan perangkat yang sama.
2.1.4 Database Menurut Connolly dan Begg (2010: 65), Database merupakan sekumpulan data yang terhubung secara logis, dan deskripsi dari data tersebut didesain untuk memberi informasi dari kebutuhan suatu organisasi. Database merupakan tempat penyimpanan data yang besar dan dapat digunakan secara simultan oleh beberapa pengguna dan departemen. Pada database, data-data yang saling terintegrasi sangat diperlukan untuk menghindari kemungkinan terjadinya duplikasi data. Alih-alih file terputus karena data yang berlebihan, maka semua data terintegrasi dengan jumlah duplikasi yang rendah.
2.1.5 Database Management System (DBMS) Menurut Connolly dan Begg (2010: 66), DBMS merupakan sebuah sistem
perangkat
lunak
yang
memungkinkan
pengguna
untuk
mendefinisikan, membuat, memelihara dan mengontrol akses ke dalam database. DBMS juga merupakan sistem perangkat lunak yang berinteraksi dengan pengguna aplikasi program dan dengan database.
9 DBMS menyediakan beberapa fasilitas diantaranya : 1. Memungkinkan pengguna untuk mendefinisikan database, biasanya melalui Data Definition Languange (DDL). DDL memungkinkan pengguna untuk menentukan jenis dan struktur data dan kendala pada data yang akan disimpan dalam database. 2. Memungkinkan pengguna untuk memasukkan, mengubah, menghapus dan mengambil data dari database, biasanya melalui Data Manipulation Languange (DML). 3. Menyediakan kontrol akses terhadap database, salah satu contohnya adalah sistem keamanan. Yang melarang user yang tidak berkepentingan untuk mengakses database.
2.1.5.1 Komponen DBMS Menurut Connolly dan Begg (2010: 68), komponen DBMS terbagi menjadi 5, yaitu : 1. Hardware DBMS dan aplikasi membutuhkan hardware untuk beroperasi, hardware tersebut meliputi PC, mainframe dan jaringan komputer. 2. Software Komponen software itu terdiri dari software DBMS itu sendiri dan aplikasi program, bersama-sama dengan sistem operasi, termasuk perangkat lunak jaringan jika DBMS sedang digunakan melalui jaringan. 3. Data Data adalah komponen yang paling penting dalam DBMS, berasal dari sudut pandang end-user. Data bertindak sebagai jembatan antara mesin dan user. 4. Procedure Procedure mengacu kepada instruksi dan aturan yang mengatur perancangan dan penggunaan database. Pengguna sistem dan staf yang menangani database memerlukan prosedur yang didokumentasikan seperti bagaimana cara menggunakan atau menjalankan sistem. 5. People Komponen terakhir dari komponen DBMS, adalah manusia yang
10 terlibat langsung dengan sistem. Komponen ini meliputi database administrator, database designers, application developers dan end-user.
2.1.6 Internet Menurut Williams dan Sawyer (2011: 64), internet adalah jaringan yang sangat besar dari jaringan, menghubungkan jutaan komputer via protokol, perangkat keras dan jalur komunikasi. Internet merupakan infrastruktur yang tidak hanya mendukung web, tetapi juga sistem komunikasi seperti e-mail, instant messaging, newsgroup dan aktivitas lain.
2.1.6.1 Uniform Resource Locator (URL) Menurut Williams dan Sawyer (2011: 65), URL adalah kumpulan karakter yang menunjuk pada potongan informasi khusus di bagian mana saja pada web. Dengan kata lain URL adalah alamat situs web yang unik. Sebuah URL terdiri dari (1) protokol web, (2) nama domain atau server web, (3) direktori pada server tersebut dan (4) file yang terdapat pada direktori tersebut. Contoh URL : http://www.nps.gov/yose/home.htm.
2.1.7 World Wide Web ( WWW) Menurut Willliams dan Sawyer (2011: 60), WWW adalah sistem dengan standar yang diterima secara universal untuk menyimpan, menelusuri, memformat dan menampilkan informasi melalui arsitektur client/server dengan menggunakan fungsi transportasi internet.
2.1.7.1 Browser Menurut Williams dan Sawyer (2011: 64), browser adalah perangkat lunak yang memungkinkan anda mencari dan mengakses beragam komponen web. Beberapa contoh browser yaitu Chrome, Internet Explorer dan Mozilla.
2.1.7.2 Web Menurut Williams dan Sawyer (2011: 64), web adalah teknologi berbasis multimedia yang memungkinkan anda untuk mengakses lebih dari sekedar teks.
11 Menurut Williams dan Sawyer (2011: 65), website adalah sebuah lokasi komputer tertentu di web yang memiliki alamat unik yang disebut URL. Menurut Williams dan Sawyer (2011: 65), webpage adalah dokumen pada WWW yang bisa berisi teks, gambar, suara dan video.
2.1.8 Interaksi Manusia Dan Komputer Menurut Galitz (2007: 4), interaksi manusia dan komputer merupakan studi, perencanaan dan design bagaimana manusia dan komputer bekerja sama sehingga kebutuhan seseorang terpenuhi dengan cara yang paling efektif.
2.1.8.1 Eight Golden Rules Menurut Shneiderman dan Plaisant (2010: 88), terdapat 8 (delapan) aturan yang digunakan untuk merancang user interface, yaitu : 1. Berusaha untuk konsisten Konsisten di berbagai situasi baik dalam istilah-istilah yang digunakan pada setiap menu, pesan bantuan, dan dalam penggunaan tampilan seperti jenis tulisan, warna, dan layout. 2. Memenuhi kegunaan yang universal Mengetahui kebutuhan yang berbeda pada masing-masing pengguna, seperti perbedaan umur pengguna, kondisi pengguna, teknologi yang digunakan dan perbedaan kemampuan pengguna. Berdasarkan kemampuan dari pengguna terbagi menjadi 3 (tiga) jenis yaitu: 1. Novice atau first-time-users yang membutuhkan umpan balik yang informatif. 2. Knowledgeable intermittent users yang membutuhkan fasilitas bantuan yang jelas. 3. Expert frequent users yang membutuhkan umpan balik yang singkat dan dapat menggunakan shortcut. 3. Memberikan umpan balik yang informatif Setiap tindakan yang dilakukan oleh pengguna harus mendapatkan umpan balik yang memudahkan pengguna dalam mengetahui akibat dari tindakannya. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahan.
12 4. Merancang dialog untuk menghasilkan suatu penutupan Kegiatan yang dilakukan pengguna dipisahkan menjadi 3 (tiga) bagian yaitu bagian awal, tengah, dan akhir. Pada bagian akhir pengguna harus mendapatkan umpan balik yang informatif yang memudahkan pengguna dalam mengetahui dampak dari tindakan yang telah dilakukan. 5. Memberikan penanganan kesalahan Sistem akan memberikan suatu intruksi yang sederhana dan mudah di mengerti kepada pengguna jika terjadi kesalahan yang dilakukan. 6. Mudah kembali ke tindakan sebelumnya Pengguna tidak perlu khawatir bila melakukan kesalahan karena sistem menyediakan fitur yang dapat mengembalikan keadaan ke keadaan sebelum dilakukan kesalahan. 7. Mendukung tempat pengendalian internal Pengguna menjadi pengendali sistem dan bukan sebaliknya. Jadi peran pengguna dalam sistem adalah sebagai inisiator bukan responden. 8. Mengurangi beban ingatan jangka pendek Sistem yang dikembangkan berbentuk sederhana dan mudah diingat karena ingatan manusia yang terbatas. Penyederhanaan sistem misalnya menggabungkan tampilan-tampilan sejenis dan memberikan pelatihan dengan jangka waktu yang cukup
2.1.8.2 Lima Faktor Manusia Terukur Menurut Shneiderman dan Plaisant (2010: 32), dalam merancang sistem sebelumnya harus memperhatikan 5 (lima) faktor berikut: 1. Waktu belajar Waktu yang dibutuhkan seorang pengguna aplikasi untuk belajar menggunakan aplikasi tersebut. 2. Kecepatan kinerja Waktu yang dibutuhkan oleh pengguna aplikasi untuk melakukan suatu tugas. 3. Tingkat kesalahan pengguna Seberapa banyaknya dan jenis kesalahan apa yang dilakukan oleh pengguna aplikasi.
13 4. Daya ingat Seberapa baik Pengguna aplikasi dapat mengingat pengetahuan yang dimiliki tentang aplikasi tersebut dalam jangka waktu tertentu. 5. Kepuasan subjektif Seberapa besar ketertarikan pengguna aplikasi terhadap aspek – aspek interface aplikasi tersebut.
2.1.9 Rekayasa Piranti Lunak Menurut Pressman (2010: 4), piranti lunak merupakan sebuah instruksi (program komputer) yang ketika dijalankan akan menyediakan fitur, fungsi dan performance sesuai yang diinginkan. Struktur data yang memungkinkan program secara memadai memanipulasi informasi dan informasi deskriptif baik hard copy atau virtual yang menggambarkan operasi penggunaan program. Menurut Pressman (2010: 25), rekayasa piranti lunak merupakan proses, metode dan alat-alat yang memungkinkan sistem berbasis komputer yang kompleks untuk dibangun dengan tepat waktu dan dengan kualitas.
2.1.9.1 Scrum Methodology Menurut Pressman (2010: 82), scrum yang merupakan jenis metodologi atau kerangka kerja yang bersifat iteratif dan incremental dalam manajemen proyek yang berbasis agile software development. Fokus utama scrum adalah manajemen pengembangan produk. Prinsip Scrum digunakan sebagai panduan aktivitas pengembangan dengan framework requirements, analysis, design, evolution dan delivery.
Dalam setiap aktifitas framework, tugas-tugas terjadi di dalam sebuah pola proses yang disebut sprint. Sprint adalah elemen terpenting dalam scrum, dimana diberlakukan suatu batasan waktu berjangka sekitar satu minggu hingga satu bulan. Sprint memiliki durasi yang konsisten dan langsung bergulir saat sprint sebelumnya telah selesai. Pekerjaan yang dilakukan di dalam sebuah sprint diadaptasikan ke permasalahan yang terjadi dan didefinisikan bahkan sering dimodifikasi secara real-time oleh tim scrum. Berikut ini adalah gambaran proses Scrum :
14
Gambar 2.1 Alur Scrum Process (Sumber: Pressman, 2010: 83)
Scrum menekankan penggunaan satu set pola proses software yang telah terbukti efektif untuk proyek dengan timeline yang ketat, perubahan kebutuhan, dan kritikal bisnis. Tiap proses mendefinisikan satu set kegiatan pengembangan.
Menurut Sutherland (2010: 10), scrum bekerja melalui beberapa cara yang diantaranya : 1. Product backlog Merupakan daftar kebutuhan fitur produk yang diurutkan berdasarkan skala prioritas. Product backlog diurut berdasarkan besarnya nilai kepada customer atau bisnis. 2. Sprint Merupakan daftar pekerjaan yang dilakukan berulang-ulang, biasanya lama waktu sprint diantara 1-4 minggu. 3. Sprint planning meeting terdiri dari dua bagian yaitu menentukan apa yang akan diselesaikan di sprint saat ini yang berperan sebagai landasan bagi sprint berikutnya dan mengkomunikasikan cara menyelesaikan produk tersebut selama sprint tersebut.
15 4. Daily scrum Ketika sprint sudah dimulai, pertemuan singkat diadakan setiap hari oleh tim scrum biasanya berlangsung selama 15 menit untuk mengetahui perkembangan dan melakukan perencanaan scrum berikutnya . 5. Sprint review diadakan di akhir sprint untuk meninjau pekerjaan yang telah selesai dan mempresentasikan kepada stakeholder. 6. Sprint retrospective sebuah kesempatan bagi tim untuk meninjau dan membuat perencanaan untuk meningkatkan kinerja berikutnya.
2.1.10 Data Modelling Menurut Whitten dan Bentley (2007: 270), data modelling merupakan teknik untuk mengatur dan mendokumentasikan suatu sistem data. Data modelling biasa juga disebut database modelling karena data model akhirnya terimplementasi sebagai database.
2.1.10.1 Entity Relational Diagram (ERD) Menurut Whitten dan Bentley (2007: 271), ERD merupakan model data yang menggunakan beberapa notasi untuk menggambarkan data dalam konteks entitas dan hubungan yang dideskripsikan oleh data tersebut.
Gambar 2.2 ERD Model
(Sumber: Whitten dan Bentley, 2007: 270)
16 2.1.10.1.1 Entity Menurut Whitten dan Bentley (2007: 271), entity merupakan sekelompok orang, benda, peristiwa atau konsep tentang apa yang kita butuhkan untuk meng-capture dan menyimpan data.
Gambar 2.3. Entity (Sumber: Whitten dan Bentley, 2010: 271)
2.1.10.1.2 Attributes Menurut Whitten dan Bentley (2007: 272), attributes merupakan identifikasi yang spesifik dari data yang ingin disimpan pada tiap instance entity.
Gambar 2.4. Attributes (Sumber: Whitten dan Bentley, 2010: 272)
17 2.1.10.1.3. Relationships Menurut Whitten dan Bentley (2007: 275),
relationships
merupakan asosiasi natural bisnis yang terjadi antara satu atau lebih entitas.
Relationships
bisa
menampilkan
suatu
events
yang
menghubungkan entitas atau hanya afinitas logis yang ada di antara entitas.
Gambar 2.5. Relationships many-to-many (Sumber: Whitten dan Bentley, 2007: 275)
2.1.11 Unified Modelling Languange (UML) Menurut Whitten dan Bentley (2007: 841), UML merupakan standar bahasa untuk blueprints software. UML biasanya digunakan untuk visualisasi, spesifikasi dan konstruksi sistem software.
2.1.11.1 Use Case Diagram Menurut Whitten dan Bentley (2007: 246), use case diagram menggambarkan fungsi sistem dari perspektif pengguna eksternal dan dalam cara dan terminologi yang mereka mengerti. Untuk secara akurat dan mencapai hal ini dibutuhkan keterlibatan secara intensif oleh user dan ahli yang memiliki pengetahuan mengenai proses bisnis atau event.
18
Gambar 2.6 Use Case Diagram (Sumber: Whitten dan Bentley, 2007: 246) Berikut ini beberapa komponen dari use case diagram : 1. Actors Menurut Whitten dan Bentley (2007: 247), actors merupakan segala sesuatu yang membutuhkan untuk berinteraksi dengan sistem untuk bertukar informasi.
Gambar 2.7 Actors (Sumber: Whitten dan Bentley, 2007: 247)
2. Relationship Menurut Whitten dan Bentley (2007: 248), relationship merupakan hubungan yang digambarkan sebagai garis antara dua simbol pada diagram use case. Setiap hubungan yang terjadi bisa memiliki arti yang berbeda tergantung dari bagaimana garis ditarik dan apa jenis simbol yang dihubungkan.
19 Relationship memiliki beberapa jenis hubungan, yaitu : a. Associations Menurut Whitten dan Bentley (2007: 248), association merupakan sebuah hubungan antara actor dan use case setiap kali terjadi interaksi satu sama lain. Association digambarkan sebagai garis lurus/solid yang menghubungkan actor dan use case searah maupun dua arah.
Gambar 2.8 Relationship Association (Sumber: Whitten dan Bentley, 2007: 248) b. Extends Menurut Whitten dan Bentley (2007: 248), extends adalah sebuah use case yang berisi fungsi yang kompleks dan terdiri dari beberapa langkah, maka untuk menyederhanakan use case, membagi sebuah use case menjadi beberapa use case yang fungsionalitas dari use case aslinya agar lebih mudah dipahami.
Gambar 2.9 Relationship Extends (Sumber: Whitten dan Bentley, 2007: 249) c. Uses Menurut Whitten dan Bentley (2007: 249), uses terjadi ketika membuat use case mungkin bisa menggunakan dua atau
lebih
use
20 case yang sama. Oleh karena itu untuk mengurangi redudansi use, use case tersebut dibuat menjadi satu yang disebut abstract use case.
Gambar 2.10 Relationship Uses (Sumber: Whitten dan Bentley, 2007: 249) d. Depends on Menurut Whitten dan Bentley (2007: 249), depends on merupakan sebuah use case yang memiliki keterkaitan dengan use case lainnya. Di dalam depends on, sebuah use case tidak dapat dijalankan sebelum yang memiliki keterkaitan dengannya dijalankan.
Gambar 2.11 Relationship Depends on (Sumber: Whitten dan Bentley, 2007: 250) e. Inheritance Menurut Whitten dan Bentley (2007: 250), inheritance terjadi ketika 2(dua) atau lebih actors memiliki kesamaan perilaku. Actors tersebut dapat menggunakan use case yang sama.sehingga inheritance
21 dibuat untuk menyederhanakan penggambaran ketika mewarisi peran dari multiple real actor.
Gambar 2.12 Relationship Inheritance (Sumber: Whitten dan Bentley, 2007: 250)
2.1.11.2 Activity Diagram Menurut Whitten dan Bentley (2007: 390), activity diagram merupakan diagram yang dapat digunakan untuk menggambarkan grafis aliran proses bisnis, langkah penggunaan use case atau logika perilaku objek ( metode).
22
Gambar 2.13 Activity Diagram (Sumber: Whitten dan Bentley, 2007: 392)
Berikut ini merupakan keterangan dari contoh activity diagram diatas : 1. Initial node lingkaran padat yang mewakili awal proses 2. Actions persegi panjang bulat yang mewakili langkah-langkah individu. Urutan tindakan membentuk aktivitas total yang ditunjukkan oleh diagram. 3. Flow Panah pada diagram menunjukkan perkembangan melalui
23 tindakan. Kebanyakan mengalir tanpa perlu kata-kata untuk mengidentifikasikan, kecuali keluar dari keputusan. 4. Decision Bentuk berlian dengan satu aliran masuk dan dua atau lebih mengarah keluar. Mengalir keluar ditandai untuk menunjukkan kondisi. 5. Merge Bentuk berlian dengan dua atau lebih arus masuk dan satu arus keluar. Ini menggabungkan aliran yang sebelumnya dipisahkan oleh keputusan. 6. Fork Bar hitam dengan satu arus dan dua atau lebih mengalir keluar. 7. Join Bar hitam dengan dua atau lebih arus masuk dan satu arus keluar, tidak ada akhir pemrosesan konkuren. Semua tindakan yang masuk ke bergabung harus diselesaikan sebelum proses berlanjut. 8. Activity final Lingkaran padat di dalam lingkaran berongga mewakili akhir proses.
2.1.11.3 Sequence Diagram Menurut Whitten dan Bentley (2007: 394), sequence diagram merupakan diagram yang menggambarkan interaksi antara actor dan sistem untuk skenario dalam use case.
24
Gambar 2.14 Sequence Diagram (Sumber: Whitten dan Bentley, 2007: 395)
Berikut ini merupakan keterangan dari contoh sequence diagram diatas : 1. Actor Actor memulai use case ditunjukkan dengan use case simbol actor. 2. System Kotak mengindikasikan sistem sebagai “black box” atau sebagai keseluruhan. Colon ( : ) adalah notasi standar sequence diagram untuk mengindikasikan jalannya sistem. 3. Lifelines Garis vertikal yang bentok memperpanjang ke bawah dari actor dan simbol sistem yang menunjukkan urutan. 4. Activation bars Bars yang melakukan set dari garis hidup yang mengindikasikan batas waktu ketika participant sedang aktif di dalam
25 interaksi. 5. Input messages Garis panah lurus dari actor ke sistem mengindikasikan sebuah message input. 6. Output messages Garis panah lurus dari sistem ke actor yang ditunjukkan sebagai garis putus-putus.
Gambar 2.15 Sequence Diagram (Sumber: Whitten dan Bentley, 2007: 396) 7. Receiver Actor Actor lain atau sistem eksternal yang menerima pesan dari sistem yang digunakan 8. Frame Sebuah box yang bisa berisi satu atau lebih pesan untuk memisahkan bagian pada sequence. Ini bisa berisis
loops, alternate fragments, atau
optional. Menurut Fowler (2004: 59), alternative multiple fragment (alt) merupakan kondisi dimana eksekusi akan berjalan pada kondisi yang bernilai benar. Sementara fragment pada optional akan dieksekusi jika kondisi bernilai benar namun, hanya menggunakan satu jejak.
26 2.1.11.4 Class Diagram Menurut Fowler (2004: 35), class diagram merupakan sebuah diagram yang menggambarkan jenis objek dalam sistem dan berbagai jenis hubungan statis yang ada di antara mereka. Class diagram juga menunjukkan sifat dan operasi dari class dan kendala yang berlaku untuk objek yang terhubung. UML menggunakan fitur sebagai istilah umum yang mencakup sifat dan operasi dari suatu class.
Gambar 2.16 Class Diagram (Sumber: Martin Fowler, 2004: 36) Berikut ini merupakan keterangan dari contoh class diagram diatas : 1. Attribute Notasi attribut menggambarkan properti sebagai baris teks didalam kotak class itu sendiri. 2. Association Sebuah asosiasi adalah garis yang solid antara dua class,
27 diarahkan dari sumber class ke target class. 3. Multiplicity Multiplicity dari properti merupakan indikasi dari berapa banyak objek yang dapat mengisi properti. 4. Bidirectional association Bidirectional association adalah sepasang properties yang dihubungkan bersama sebagai inverses. 5. Operations Operasi adalah tindakan yang tahu untuk dilaksanakan, operasi yang paling jelas dengan metode. 6. Generalization Contoh
khas
generalisasi
melibatkan
pelanggan
dan
perusahaan bisnis. Mereka memiliki perbedaan tapi juga banyak kesamaan. Kesamaan dapat ditempatkan di pelanggan class umum. 7. Dependency Dependency ada antara dua elemen jika perubahan definisi satu elemen dapat menyebabkan perubahan ke yang lain.
2.2 Teori Khusus Pada bagian ini akan dibahas mengenai teori-teori khusus yang digunakan di dalam penelitian ini.
2.2.1 Hypertext Markup Languange (HTML) Menurut Williams dan Sawyer (2011: 68), HTML merupakan dokumen yang mengatur bahasa-bahasa yang digunakan untuk mendesain kebanyakan halaman web. HTML adalah suatu sistem untuk marking-up, tagging, sehingga dokumen tersebut dapat dipublikasikan ke web.
Menurut Robbin (2013: 2), HTML5 menawarkan berbagai fitur baru Untuk memudahkan pengembang aplikasi web dan memberikan bentuk penanganan yang lebih baik. Spesifikasi HTML5 didasarkan pada HTML 4.01, namun HTML5 menggunakan Document Object Model (DOM) sebagai dasarnya.
28 2.2.2 JavaScript Menurut
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 dan memudahkan dalam membuat interface yang interaktif dan dinamis. Menurut Rauch (2012: 15), JavaScript merupakan prototipe yang berorientasi objek, bahasa penulisan yang dinamis dengan loosed-typed. JavaScript secara teknis merupakan implementasi dari bahasa standar ECMAScript. Kemudian pada perkembangannya muncul V8 JavaScript yang merupakan
sebuah
mesin
javascript
baru
yang
datang
dengan
diperkenalkannya web browser chrome. Teknologi ini cepat dalam mengeksekusi dan tetap up-to-date dan mensupport fitur ECMAScript terbaru. 2.2.3 Asynchronous JavaScript and XML (AJAX) AJAX merupakan bahan utama dari dibangunnya web 2.0, yang diterjemahkan kedalam pengalaman pengguna untuk alasan mendasar. AJAX tidak perlu untuk mengambil seluruh dokumen HTML setiap user berinteraksi dengan server. Menurut Rauch (2012: 164), AJAX merupakan hal penting karena memungkinkan untuk menyingkirkan banyak data transfer, rendering dan overhead yang banyak tidak dibutuhkan oleh aplikasi web. 2.2.4 jQuery Menurut Freeman dan Robson (2011: 534),
jQuery merupakan
JavaScript library yang bertujuan untuk mengurangi dan menyederhanakan syntax javascipt. jQuery memberi solusi dari masalah terbesar JavaScript,
yaitu
kompleksitas dan kerumitan dari browser yang berbeda. jQuery merupakan senjata utama para designer web dalam permasalahan dengan JavaScript.
29 2.2.5 Hypertext Transfer Protocol (HTTP) Menurut Wang, Salim, dan Moskovits (2013: 3), HTTP merupakan protokol jaringan yang digunakan untuk komunikasi antara client dan server.di dalam HTTP/1.0 , koneksi yang terpisah dibuat 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.2.6 Node.js Node.js merupakan teknologi yang diumumkan oleh Ryan Dahl pada tahun 2009, teknologi ini tidak didesain untuk berjalan di browser. Node.js adalah teknologi untuk menjalankan JavaScript di dalam server. Menurut Rauch (2012: 1), Node.js memiliki kecepatan yang luar biasa dan performance dengan teknik yang disebut “event loop” dan ini berjalan diatas V8, yaitu penerjemah javascript dan virtual machine yang dibuat Google untuk membuat web browser chrome mereka berjalan sangat cepat. Ketika di peruntukkan untuk pengembangan web, Node.js mengubah panorama, tidak lagi dibutuhkan menulis scripts yang dieksekusi dengan web server yang diinstal secara terpisah seperti LAMP.
30 Menurut
Thompson
(2011:
1),
Node.js
telah
menjadi
asynchronous framework populer untuk JavaScript. Node.js merupakan aplikasi internet yang sangat scalable terutama web server. Program ini dituliskan dalam JavaScript, menggunakan event-driven, asynchronous I/O untuk meminimalkan overhead dan memaksimalkan skalabilitas. Node.js mengimplementasikan multiple websocket servers dan mendukung protokol HTTP.
2.2.7 Socket I/O Menurut Rauch (2012: 179), socket I/O adalah sebuah project yang dibuat untuk memberi solusi dari masalah yang paling umum, yaitu implementasi yang sederhana. Socket I/O memberikan banyak fleksibilitas ketika membentuk simple Application Programming Interface (API). Menurut Rauch (2012: 180), socket I/O memiliki fitur yang menarik yaitu komunikasi berdasarkan transports, tidak semuanya websocket yang berarti bahwa socket I/O bekerja pada berbagai macam browser dan devices. Bahkan ketika sebuah browser mendukung sebuah
websocket tetapi diblokir
oleh proxy atau firewall, socket I/O masih bisa berjalan.
2.2.8 Websocket Menurut Wang, Salim, dan Moskovits (2013: 7), websocket merupakan full duplex, dua arah, koneksi single socket. Dengan websocket, permintaan HTTP dapat menjadi satu permintaan untuk membuka koneksi websocket (baik websocket atau websocket melalui Transport Layer Security (TLS) , sebelum dikenal sebagai Secure Socket Layer( SSL) ), dan menggunakan sambungan yang sama dari client ke server dan server ke client. Websocket mengurangi latency karena sekali koneksi websocket didirikan, server dapat mengirim pesan yang telah tersedia. Sebagai contoh, tidak seperti polling, websocket membuat satu permintaan. Server tidak perlu menunggu permintaan dari client. Demikian pula, client dapat mengirim pesan ke server setiap saat.
31 Gambar ini membandingkan skenario polling sampel dengan skenario websocket :
Gambar 2.17 Polling vs Websocket (Sumber : Wang, Salim, dan Moskovits, 2013: 7)
Pada intinya, websocket tepat sebagai paradigma HTML5 dalam semantik dan penyederhanaan. Karena websocket tidak hanya menghilangkan workarounds dan latency tetapi juga menyederhanakan arsitektur konektivitas antar client/server.
2.3 Hasil Penelitian Sebelumnya Menurut Dilip (2011: 134), 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. Websocket menyediakan lintasan sederhana dari firewall dan router dan kompatibel dengan data biner. Websocket juga memungkinkan pertukaran data dengan cookie-based authentication.
32
Menurut Hamalainen ( 2011, 4), WebSockets 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.18 Websocket Protocol (Sumber : Hamalainen, 2013: 4)
Menurut Fette dan Melnikov (2011: 1), websocket protokol memungkinkan untuk melakukan komunikasi dua arah antar klien 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 efisiensi dan kehandalan karena HTTP pada dasarnya tidak didesain untuk melakukan komunikasi bidirectional.
33 Berikut ini hasil perbandingan koneksi HTTP dengan Websocket : Tabel 2.1 perbandingan HTTP dengan websocket (Sumber: Fette dan Melnikov, 2011)