BAB 2 TINJAUAN PUSTAKA -...
Transcript of BAB 2 TINJAUAN PUSTAKA -...
9
BAB 2
TINJAUAN PUSTAKA
2.1. Teori yang berkaitan dengan Software Engineering
Teori yang berkaitan dengan software engineering adalah teori yang berkaitan
dengan ilmu software engineering yang menjadi landasan teori dalam perancangan
desain website Liveboard. Berikut teori-teori yang berkaitan dengan software
engineering :
2.1.1. Waterfall
Menurut (Sommerville, 2007, p. 66) model pengembangan software
Waterfall dikembangkan dari proses yang diperkenalkan oleh Winston W.
Royce pada tahun 1970. Dikarenakan prosesnya yang terus mengalir kebawah
secara berurutan maka metode ini dikenal sebagai Waterfall Model. Tahap-
tahap yang terdapat dalam metode ini adalah sebagai berikut :
Gambar 2.1 Metode Waterfall
Tahap-tahap dalam waterfall :
1. Requirement analysis and definition
Pada tahap ini layanan, batasan dan tujuan sistem ditentukan dengan
cara berkonsultasi dengan pengguna sistem. Hal ini didefinisikan secara
detil dan dijadikan sebagai spesifikasi sistem.
2. System and Software Design
10
Pada tahap ini ditentukan arsitektur sistem secara keseluruhan.
Software Design melibatkan proses identifikasi dan penggambaran
abstraksi dasar dari perangkat lunak beserta hubungannya. Hasilnya
adalah berupa berbagai diagram-diagram perancangan.
3. Implementation and unit testing
Pada tahap ini Software Design direalisasikan dalam bentuk
program atau unit program. Proses unit testing dilakukan untuk
memastikan setiap modul sesuai dengan spesifikasi yang telah
ditentukan.
4. Integration and system Testing
Program unit yang telah dibuat kemudian disatukan dan diuji coba
sebagai satu kesatuan sistem lengkap untuk memastikan spesifikasi
sistem telah tercapai. Setelah diuji, sistem software diberikan kepada
pengguna.
5. Operation and maintenance
Ini merupakan tahap terpanjang dalam proses pengembangan
perangkat lunak. Sistem dipasang pada lingkungan yang sebenarnya.
Proses maintenance melibatkan perbaikan error yang tidak ditemukan
pada tahap sebelumnya. Selain itu dilakukan juga peningkatan pada
fitur dan pelayanan yang terdapat dalam sistem tersebut.
2.1.2. Unified Modeling Language (UML)
Menurut (Booch, Rumbaugh, & Jacobson, 2005, p. 1) UML adalah
bahasa berbasiskan grafis yang berfungsi untuk memvisualisasikan,
menentukan, membangun dan mendokumentasikan objek-objek pada sistem
perangkat lunak intensif. UML membuat sebuah standar untuk penulisan
rancangan dari sebuah sistem, dimulai dari bagian konseptual seperti proses
bisnis dan fungsi sistem sampai bagian konkret seperti class, skema database
dan komponen perangkat lunak yang dapat digunakan kembali.
1. Class Diagram
Class Diagram adalah diagram yang menampilkan elemen statis
seperti class, interfaces, collaborations serta relasinya. Komponen-
kompenen utama class diagram adalah :
11
a. Class
Class adalah sebuah deskripsi dari sekumpulan objek yang
mempunyai atribut, operasi dan hubungan yang sama. Class
digambarkan dengan sebuah kotak dan mempunyai tiga
komplemen yaitu :
• Nama
Setiap class harus mempunyai nama untuk membedakan
class tersebut dengan class lainnya.
• Atribut
Atribut adalah representasi ciri yang mempunyai rentang
nilai tertentu. Sebuah class bisa tidak mempunyai atribut
maupun atribut yang tidak terbatas.
• Operasi
Operasi adalah abstraksi sesuatu yang dapat dilakukan
terhadap sebuah objek.
b. Relationship
Relationship adalah hubungan di antara elemen-elemen.
Relationship mempunyai beberapa jenis, yaitu :
• Dependencies
Dependencies adalah hubungan yang menyatakan sebuah
elemen menggunakan informasi dan operasi dari elemen
lainnya, tapi tidak sebaliknya.
• Generalizations
Generalizations adalah hubungan antara elemen umum
dengan elemen yang lebih spesifik. Generalizations
menggambarkan hubungan antara turunan dari orang tua ke
anak.
• Associations
Associations adalah hubungan struktural yang menetapkan
sebuah objek terhubung dengan objek lainnya.
• Aggregation
12
Aggregation adalah bentuk hubungan khusus dari
associations yang menggambarkan hubungan keseluruhan
dengan bagiannya (whole/part relationship) dimana siklus
hidup objek besar (whole) tidak bergantung kepada objek
yang lebih kecil (part).
• Composition
Composition adalah bentuk hubungan khusus dari
associations yang menggambarkan hubungan keseluruhan
dengan bagiannya (whole/ part relationship) dimana siklus
hidup objek lebih besar (whole) bergantung pada objek yang
lebih kecil (part). Pada kondisi objek kecil tidak hidup,
maka objek besar juga tidak dapat hidup.
Gambar 2.2 Contoh Class Diagram
2. Use Case
13
Use case adalah permodelan yang digunakan untuk membuat
struktur kelakuan dan kegunaan di dalam sebuah sistem.
Use case diagram merupakan diagram yang mendeskripsikan
sekumpulan perilaku yang dilakukan oleh sistem untuk
menghasilkan satu hasil yang bernilai untuk aktor. Komponen-
komponen utama use case diagram:
• Use Case
Use case adalah deskripsi perilaku yang dapat dilakukan
oleh aktor pada sistem tersebut.
• Aktor
Aktor merepresentasikan user yang mempunyai perannya
masing-masing terhadap setiap use case.
Gambar 2.3 Contoh Use Case
3. Sequence Diagram
Sequence diagram adalah diagram yang menggambarkan urutan
interaksi antar sekumpulan objek dan hubungannya, serta pesan yang
dikirim di antara objek tersebut. Sequence diagram digambarkan
dengan sebuah tabel yang menampilkan objek pada sumbu-x dan pesan
diurutkan sesuai waktu pada sumbu-y. Komponen-komponen utama
sequence diagram:
a. Actor atau Object
Actor atau Object adalah elemen yang mengirimkan message
dan menerima message. Object digambarkan dengan kotak yang
berisi nama objek dan nama class. Sedangkan actor
digambarkan dengan gambar orang.
14
b. Message
Message adalah pesan yang dikirimkan ke actor atau object
lainnya dengan melakukan suatu operasi. Message digambarkan
dengan panah. Jenis-jenis message :
• Call
Call message terbagi menjadi 2 jenis, yaitu :
� Synchronous Message
Message yang dikirim kepada actor atau object dengan
menunggu suatu operasi selesai dilakukan. Synchronous
message digambarkan dengan panah dengan bagian
ujungnya hitam penuh.
� Asychronous Message
Message yang dikirim kepada actor atau object tanpa
menunggu suatu operasi selesai dilakukan. Asynchronous
message digambarkan dengan panah dengan bagian
ujungnya tidak hitam penuh.
• Return
Message yang dikembalikan kepada actor atau object
pengirim sebagai tanggapan message yang telah dikirim
sebelumnya. Return digambarkan dengan panah dengan
garis putus-putus yang bagian ujungnya tidak hitam penuh.
• Send
Message yang digunakan untuk mengirimkan sinyal ke actor
atau object
• Create
Message yang digunakan untuk membuat sebuah object.
15
• Destroy
Message yang digunakan untuk menghancurkan sebuah
object yang telah dibuat sebelumnya.
c. Lifeline
Lifeline adalah garis yang menandakan hidup dari sebuah actor
atau object dalam sebuah sistem. Pada sequence diagram juga
terdapat control operator yang berfungsi untuk membuat operasi
struktural, seperti perulangan dan conditional. Control operator
yang dimilik oleh sequence diagram sebagai berikut :
• Optional
Teks yang ditulis adalah opt. Body control operator akan
dieksekusi jika sebuah keadaan terpenuhi. Kondisi itu
disebut dengan guard condition. Guard condition
merupakan sebuah ekspresi Boolean yang digambarkan
dengan tulisan yang diapit dengan kurung siku pada sebuah
lifeline actor atau object.
• Conditional
Teks yang ditulis adalah alt. Body control operator dibagi
menjadi sup-area. Setiap sup-area mempresentasikan
sebuah cabang dari conditional.
• Parallel
Teks yang ditulis adalah bar. Body control operator dibagi
menjadi beberapa bagian sub-area dengan menggunakan
garis horizontal putus-putus. Setiap sub-area
mempresentasikan operasi yang akan berjalan secara
bersamaan.
16
• Loop(iterative)
Teks yang ditulis adalah loop. Body control operator
dieksekusi secara berulang sebanyak n kali.
Gambar 2.4 Contoh Sequence Diagram
2.1.3. Object Oriented Analysis and Design (OOAD)
Menurut (Booch, Object-Oriented Analysis and Design With
Application Second Edition, 1994, p. 18) Object Oriented Analysis and Design
(OOAD) merupakan rekayasa pendekatan software dimana sistem dimodelkan
sebagai kumpulan objek yang saling berinteraksi, dan memperlakukan tiap
objek sebagai suatu instance dari sebuah class. Objek-objek tersebut terdiri dari
beberapa entitas yang punya kepentingan masing-masing dalam sistem.
OOAD pada dasarnya berbeda dengan pendekatan desain terstruktur
lainnya. OOAD memerlukan cara berpikir yang lain dan menghasilkan
arsitektur software yang jauh berbeda dengan desain terstruktur. Perbedaan ini
muncul dari kenyataan bahwa metode desain terstruktur dibangun berdasarkan
pemrograman terstruktur, sedangkan desain berbasis objek dibangun atas dasar
pemrogram berbasis objek.
Ada beberapa keuntungan dalam menggunakan OOAD, yaitu:
a. dapat menangani permasalahan yang kompleks
17
b. kelas dan objek dinyatakan secara eksplisit
c. lebih siap dalam menghadapi perubahan
2.1.4. Interaksi Manusia Komputer
Menurut (Krug, 2006) 5 hal penting dapat dilakukan designer website
untuk memastikan pengguna melihat dan mengerti sebanyak mungkin situs
yang dibuatnya adalah :
1. Membuat sebuah hierarki tampilan yang jelas
Salah satu cara terbaik untuk membuat sebuah halaman mudah
dimengerti dengan cepat adalah memastikan tampilan dari dari
elemen-elemen di halaman jelas dan menggambarkan secara jelas
hubungan antar elemen di halaman. Elemen-elemen mana yang
berkaitan, elemen mana yang merupakan bagian dari elemen
lainnya. Dengan kata lain, setiap halaman sebaiknya memiliki
hierarki tampilan yang jelas. Berikut ini adalah 3 ciri-ciri halaman
dengan hierarki tampilan yang jelas :
a. Semakin penting sesuatu maka semakin menonjol pula mereka.
Sebagai contoh : Judul yang paling penting biasanya lebih besar,
tebal dan diberi warna yang berbeda, selain itu diberikan jarak
ruang kosong yang besar, dekat dengan bagian atas halaman.
b. Sesuatu yang berkaitan secara logis biasanya juga diletakkan
bersamaan. Sebagai contoh : anda dapat menunjukkan bahwa
sesuatu adalah sejenis dengan mengumpulkan mereka bersama
di bawah judul, menampilkan mereka dengan gaya tampilan
yang sama, atau meletakkan mereka di area khusus.
c. Sesuatu yang “bersarang” secara visual menunjukkan bagian
dari. Sebagai contoh : sebuah judul bagian berada di atas judul
halaman tertentu, secara visual mencakup seluruh daerah isi dari
halaman, karena judul halaman merupakan bagian dari judul
bagian.
2. Konvensi umum merupakan teman anda
18
Kita sudah terbiasa mengetahui beberapa konvensi atau hal umum
yang berkaitan dengan layout halaman dan formatting yang
membuat kita lebih mudah dan cepat melakukan pencarian cepat di
koran dan menemukan cerita yang menarik bagi kita. Dan ketika
kita berjalan-jalan ke kota lain, kita belajar bahwa semua Koran
menggunakan konvensi yang sama, mungkin dengan beberapa
variasi, sehingga kita tahu konvensi dibuat untuk memudahkan
membaca Koran apapun.
Hal yang sama juga terjadi pada situs. Web sudah memiliki banyak
konvensi, yang kebanyakan diturunkan dari koran dan majalah, dan
konvensi yang baru akan terus bermunculan. Pada dasarnya
konvensi berawal dari ide cemerlang seseorang, Jika idenya berjalan
dengan baik, maka situs lain akan menirunya dan kebanyakan orang
yang sudah sering melihatnya tidak perlu penjelasan mengenai hal
itu. Proses adopsi membutuhkan waktu, namun hal ini berjalan
dengan cepat di internet, seperti yang lainnya. Sebagai contoh,
kebanyakan orang sekarang sudah tidak asing dengan konvensi
menggunakan keranjang belanja online, sehingga aman bagi
desainer untuk menggunakan sebuah icon keranjang tanpa memberi
label “Shopping Cart”.
Berikut adalah dua hal penting yang perlu diketahui tentang
konvensi situs :
a. Mereka sangat berguna. Sebagai sebuah aturan, konvensi hanya
menjadi konvensi jika mereka bekerja. Penerapan yang baik dari
konvensi membuat pengguna mudah untuk berpindah-pindah
dari satu situs ke situs lainnya tanpa mengeluarkan usaha yang
berlebihan untuk menyadari bagaimana sesuatu bekerja. Sebagai
contoh, ketika melihat daftar dari link ke bagian dari sebuah
situs dengan latar belakang tertentu di bagian kiri halaman,
meskipun terkadang kita ditemani beberapa hal lain pengguna
dapat menyadari bahwa itu merupakan link.
b. Perancang lebih sering enggan menggunakan kelebihan mereka.
Berhadapan dengan peluang menggunakan konvensi, adalah
cobaan bagi perancang untuk menemukan kembali sesuatu,
19
karena pada umumnya mereka merasa bahwa mereka digaji
untuk melakukan sesuatu yang baru dan berbeda, dan tidak sama
dengan hal sebelumnya.
Jika anda tidak menggunakan konvensi web yang ada, anda
harus memastikan bahwa anda telah menggantikannya dengan
sesuatu yang jelas dan mudah dimengerti atau mungkin anda
menambahkan nilai lebih yang membutuhkan sedikit
pembelajaran. Jika anda mencoba berinovasi, anda harus
mengerti bahwa nilai dari perubahan anda, dan banyak
perancang cenderung untuk mengabaikan beberapa nilai yang
ditawarkan konvensi.
3. Bagi halaman menjadi bagian yang jelas
Membagi halaman menjadi bagian yang jelas adalah penting karena
memungkinkan pengguna untuk memutuskan dengan cepat daerah
halaman untuk difokuskan dan area mana yang boleh diacuhkan.
Beberapa penelitian menunjukkan pengguna memutuskan dengan
cepat bagian mana yang memiliki informasi berguna dan
kebanyakan mereka tidak melihat ke bagian lainnya.
4. Buat dengan jelas bagian mana yang dapat diklik
Semenjak kebanyakan hal yang dilakukan orang adalah mencari hal
lain untuk diklik selanjutnya. Hal ini menjadi penting untuk
memperjelas bagian mana yang dapat diklik dan mana yang tidak.
5. Buat gangguan seminimum mungkin
Salah satu musuh terbesar dari halaman yang mudah dimengerti
adalah gangguan tampilan. Gangguan ini umumnya terbagi menjadi
dua jenis yaitu :
a. Busy-ness. Ketika setiap benda yang ada di halaman menarik
perhatian sehingga dapat membuat pengguna bingung.
b. Background noise. Beberapa bagian tidak terlihat sebagai
sumber gangguan, namun beberapa bagian kecil dari tampilan
mengganggu kita. Sebagai contoh : sebagai penanda batasan
20
antar menu biasanya terdapat garis, jika garis tercetak hitam atau
tebal maka akan sangat mengganggu untuk melakukan
pencarian menu, sebaiknya diganti menjadi abu-abu agar tidak
mengganggu. Setiap user memiliki toleransi yang berbeda untuk
tingkat gangguan. Beberapa mungkin tidak memiliki masalah
dengan busy pages dan background noise. Jadi sebaiknya
pastikan semua adalah gangguan tampilan sampai terbukti
mereka bukan.
2.1.5. Framework
Menurut (Husted, Dumoulin, Franciscus, & Winterfeldt, 2003, p. 5)
framework adalah aplikasi setengah jadi yang bersifat object-oriented sehingga
dapat digunakan kembali.
Jadi, Framework bisa dikatakan sebagai sebuah sistem setengah jadi
dengan fitur dasar yang telah tersedia agar programmer tidak lagi membuat
fitur-fitur dasar pada sistem yang ingin dikembangkan.
2.1.6. Lima Faktor Manusia Terukur
Menurut (Shneiderman, Plaisant, Cohen, & Jacobs, 2010, p. 32) untuk
merancang user interface, ada beberapa faktor pengukur yang harus dijadikan
evaluasi, yaitu :
1. Waktu Belajar
Merancang user interface yang mudah untuk user. Sehingga user
tidak memerlukan waktu lama untuk mempelajari cara penggunaan
aksi yang berhubungan dengan tugas.
2. Kecepatan Kinerja
Lamanya waktu yang diperlukan user untuk menyelsaikan sebuah
tugas.
3. Tingkat Kesalahan
Meminimalisir tingkat kesalahan yang mungkin terjadi dalam proses
penggunaan dan memberikan penanganan kepada user.
4. Daya Ingat
21
Bagaimana user dapat mempertahankan daya ingat mereka
mengenai interface setelah jangka waktu tertentu. Frekuensi
penggunaan interface akan meningkatkan daya ingat.
5. Kepuasan Subjektif
Tingkat kepuasan user dapat diketahui dengan melakukan interview
dan survey kepada user.
2.1.7. Kamus Data
Menurut (Kristanto, 2004) kamus data merupakan kumpulan elemen-
elemen atau simbol-simbol yang digunakan untuk membantu penggambaran
setiap field dalam suatu sistem. Kamus data terdiri atas daftar yang
terorganisasi dari elemen data yang berhubungan dengan sistem, sehingga
pengguna dan penganalisa sistem memiliki dasar pengertian yang sama
mengenai input, output, penyimpanan, dan proses. Berikut adalah simbol-
simbol yang digunakan dalam kamus data :
Tabel 2.1 Simbol-Simbol Kamus Data
Simbol Uraian = Terdiri dari, mendefinisikan, diuraikan menjadi, artinya + Dan () Opsional {} Iterasi [] Memilih salah satu alternatif ** Komentar @ Identifikasi atribut kunci
2.2. Teori yang berkait tema penelitian (tematik)
Teori yang terkait tema penelitian adalah teori yang berkaitan dengan tema
penelitian dan teori yang menjadi landasan dalam pembuatan website Liveboard.
Berikut teori-teori yang berkaitan dengan penelitian:
2.2.1. E-Learning
1. Pengertian E-Learning
Menurut (Horton, 2012, p. 1) E-Learning adalah penggunaan
teknologi elektronik untuk menciptakan pengalaman belajar. Definisi
22
ini sangat luas, memungkinkan secara bebas menentukan bagaimana
cara memformulasikan, mengatur dan membuat pengalaman. Sebab
pada definisi tersebut tidak disebutkan alat penyampaian dan sistem
manajemennya dengan jelas.
2. Tipe-tipe E-Learning
Menurut (Empy Effendi & Hartono Zhuang, 2005, p. 7) e-learning
mempunyai 2 tipe, yaitu :
a. Synchronous Training
Synchronous berarti “pada waktu yang bersamaan”. Jadi,
synchronous training adalah jenis pelatihan, dimana proses belajar
mengajar terjadi pada saat yang bersamaan ketika pengajar sedang
mengajar dan murid sedang belajar. Pelatihan synchronous training
lebih banyak digunakan seminar atau konferensi yang pesertanya
berasal dari berbagai negara. Penggunaan tersebut sering pula
dinamakan web conference atau webinar (web seminar) dan sering
digunakan di kelas – kelas yang universitasnya telah menerapkan
sistem online. Jadi, synchronous training mempunyai sifat yang
mirip pelatihan di ruang kelas. Namun, kelasnya bersifat maya
(virtual) dan peserta tersebar di seluruh dunia dan terhubung melalui
jaringan internet. Oleh karena itu, synchronous training lebih sering
dinamakan virtual classroom.
b. Asynchronous Training
Asynchronous berarti “pada waktu yang tidak bersamaan”.
Seseorang bisa mempelajari pelatihan yang dia ambil pada waktu
yang berbeda dengan pengajar yang memberikan pelatihan.
Pelatihan asynchronous lebih terkenal di dunia e-learning karena
memberikan keuntungan lebih bagi peserta pelatihan untuk
mengakses pelatihan kapanpun dan dimanapun.
Pelatihan ini berupa paket pembelajaran yang dapat dijalankan
di komputer manapun dan tidak melibatkan interaksi dengan
pengajar atau pelajar – pelajar yang terdaftar. Oleh karena itu,
pelajar dapat memulai pelajaran dan menyelesaikannya kapan saja.
Paket pembelajaran ini berbentuk bacaan dengan konten seperti
23
animasi, simulasi, permainan edukatif, maupun latihan atau tes
dengan jawabannya.
2.2.2. Big Data
Menurut (Dumbill, 2013, p. 1) big data adalah data yang melebihi
kapasitas pengolahan sistem database konvensional. Data tersebut terlalu besar,
bergerak terlalu cepat, atau tidak sesuai dengan arsitektur database anda. Untuk
mendapatkan hasil dari data tersebut, anda harus memilih cara alternatif untuk
memprosesnya.
2.2.3. NoSQL
Menurut (Firdausillah, Hidayat, & Dewi, 2012, p. 432) adanya
teknologi NoSQL dikarenakan berkembangnya aplikasi berbasis web yang
memerlukan pengolahan data dalam skala besar. Beberapa contoh website yang
memiliki pengolahan data dalam skala besar seperti Facebook, Twitter, Digg,
Google, Amazon, dan SourceForge. Website tersebut menyimpan dan
mengolah data puluhan gigabyte setiap hari, dan total keseluruhan data yang
disimpan oleh aplikasi tersebut sudah mencapai ukuran petabyte. Ukuran data
yang sangat besar menimbulkan permasalahan dari segi skalabilitas, karena
pertambahan data yang terjadi setiap saat. Peningkatan kemampuan server
secara vertikal yang dimiliki Relational Database Management System
(RDBMS) terbatas pada penambahan prosesor, memori, dan media
penyimpanan dalam satu node server. Sedangkan peningkatan kemampuan
server secara horizontal yang meliputi penambahan perangkat server baru
dalam suatu jaringan memerlukan biaya yang mahal dan sulit dalam
pengelolaannya. Salah satu cara yang diterapkan oleh website berskala besar
untuk mengatasi permasalahan tersebut dengan menggunakan NoSQL. NoSQL
menerapkan konsep BASE yang berarti Basically Available, Soft State, and
Eventually Consistent untuk meningkatkan availability dan partitioning data.
Basically Available memastikan bahwa sistem bekerja sepanjang waktu, Soft
State merupakan kondisi dimana sistem tidak harus konsisten setiap saat, dan
24
Eventually Consistent yang menekankan bahwa sistem akan menjadi konsisten
beberapa waktu kemudian.
NoSQL didasarkan pada teori CAP yaitu pemilihan dua dari tiga aspek
yang ada, yang harus dipenuhi oleh basis data yaitu Consistency, Avaibility, dan
Partition-Tolerance.
1. Consistency Avaibility (CA) berseberangan dengan Partition-
Tolerance dan biasanya berhubungan dengan replikasi.
2. Consistency Partition-Tolerance (CP) berseberangan dengan
Avaibility dalam penyimpanan data.
3. Avaibility Partition-Tolerance sistem mencapai kondisi eventual
consistency melalui replikasi dan verifikasi yang konsisten dalam
node yang telah terbagi-bagi.
Gambar 2.5 Teori CAP
Dalam basis data NoSQL penerapan konsep tersebut diterjemahkan
dalam empat konsep dasar yaitu :
1. Non-Relational
25
Konsep Non-Relational dalam basis data NoSQL meliputi hierarki,
graph, dan basis data berorientasi obyek yang sudah terlebih dahulu ada
sejak tahun 1960 sebelum akhirnya basis data relasional muncul pada
tahun 1970. Penggunaan basis data non-relational kembali merebak
seiring dengan bertambahnya aplikasi berbasis web yang memerlukan
banyak penyimpanan data. Meskipun memiliki kelemahan pada
konsistensi dan redundansi data, namun basis data non-relasional dapat
menyelesaikan beberapa permasalahan terkait dengan Avaibility, dan
Partition-Tolerance. Tugas pengecekan konsistensi dan redundansi data
diserahkan pada sisi aplikasi, sedangkan basis data non-relational hanya
bertugas memanipulasi penyimpanan saja.
2. MapReduce
MapReduce merupakan model pemrograman yang di adaptasi dari
pemrograman fungsional yang diimplementasikan untuk mengolah
dataset yang sangat besar. Tujuan dari MapReduce adalah merancang
suatu abstraksi baru yang memungkinkan pengguna untuk membuat
antarmuka pemrograman sederhana dan menyembunyikan detail yang
rumit dari paralelisasi, fault-tolerance, distribusi data, dan load
balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan
bahwa penerapan MapReduce dapat menyederhanakan antarmuka
pemrograman yang dapat mendukung paralelisasi dan distribusi
komputasi skala besar secara otomatis. Penggunaan library dalam
MapReduce memiliki beberapa keuntungan seperti load balancing,
optimasi perangkat penyimpanan yang nantinya akan meningkatkan
efisiensi sistem dan kemudahan dalam penggunaannya.
3. Schema-Free
NoSQL dan RDBMS mempunyai perbedaan dalam hal penerapan
skema basis data. Dalam basis data relasional, sebuah tabel didesain
dengan peraturan skema yang ketat. NoSQL menyimpan data dengan
aturan yang lebih longgar, artinya tidak seperti basis data yang
berdasarkan SQL tradisional , NoSQL tidak memiliki tabel, kolom,
26
primary dan foreign key, join, dan relasi. Dalam pengembangan basis
data relasional, developer/database administrator harus berhati-hati
dalam menentukan bagaimana tabel saling berelasi dan field yang ada di
dalam setiap tabel. Karena perubahan skema dalam RDBMS dapat
menimbulkan masalah ketergantungan dan integritas, seperti timbulnya
kolom null dan relasi kunci yang tidak cocok. Hal ini bukan masalah
dalam NoSQL karena adanya penerapan schemafree. Setiap dokumen
bertanggung jawab terhadap isinya sendiri, maksudnya null value dapat
dihilangkan dalam beberapa baris, dan field baru dapat didefinisikan
dalam setiap dokumen secara independen.
Manfaat lain dalam penggunaan schema-free adalah penghematan
dalam media penyimpanan. Dalam basis data relasional, setiap field
yang ada dalam tabel harus mempunyai nilai, walaupun nilai itu null.
Model data schema free artinya setiap baris memungkinkan memiliki
nilai sebanyak yang telah didefinisikan dalam tiap fields, dan tidak perlu
menggunakan nilai yang memang tidak diperlukan. Kelemahan dalam
penggunaan schema free adalah memunculkan lemahnya pendefinisian
struktur yang memungkinkan terjadinya penggunaan basis data yang
tidak konsisten. Jika tujuan pembangunan basis data didasarkan pada
konsistensi yang ketat, seperti wiki, document management systems,
discussion forums, blogs, dan support management systems, basis data
relasional masih merupakan pilihan yang tepat.
4. Horizontal Scaling
Horizontal scaling memungkinkan basis data dijalankan pada
beberapa server untuk meningkatkan kemampuan perangkat
penyimpanan dan meningkatkan efisiensi waktu. Hal ini memerlukan
kemampuan dinamis pempartisian data dalam serangkaian node (seperti
storage hosts) dalam suatu cluster server. Kemampuan untuk
meningkatkan kemampuan dengan menambahkan beberapa komputer
sangatlah penting dilakukan untuk data yang jumlahnya banyak, karena
vertical scaling dilakukan dengan meningkatkan kemampuan
spesifikasi single server (misalnya penambahan prosesor, memori, dan
peralatan penyimpanan) terbatas untuk dilakukan dan lebih mahal.
27
Horizontal scaling berarti memungkinkan dilakukannya
penambahan server dalam satu jaringan dan user tidak sadar jika ada
hardware yang diganti dari sisi server (transparent). Ada beberapa
teknik partisi yang digunakan dalam basis data untuk melakukan
horizontal scaling, salah satunya adalah consistent. Kunci dari
menerapkan consistent hashing adalah membuat suatu lingkaran atau
“ ring”. Setiap node dalam sistem yang ditandai dengan random value
dalam suatu space yang merepresentasikan posisi dari ring. Suatu kunci
item ditandai dengan sebuah node untuk memperoleh posisinya pada
ring, kemudian berpindah menuju node selanjutnya yang sudah
ditandai. Node memerankan peranan penting sebagai koordinator untuk
kunci yang akan digunakan dalam route request. Kemudian, setiap node
menjadi tanggung jawab dari daerah yang ada di ring di antara noder
dan node dalam ring sebelumnya.
NoSQL merupakan basis data non-relational dengan schema-free yang
mempunyai empat (4) model data yang dapat melakukan partisi untuk data
yang berukuran besar, melakukan query, replikasi data, dan mendukung adanya
konsistensi. Empat (4) model data NoSQL tersebut adalah :
1. Column-oriented
Penerapan column-oriented terdapat dalam Cassandra. Cassandra
menggunakan distribusi multidimensional map indexed dengan sebuah
key. Baris kunci yang sering digunakan dalam Cassandra adalah string
dengan panjang 16-36 bytes. Setiap kolom digabungkan menjadi sebuah
column families. Beberapa konsep dalam penerapan column-oriented.
Suatu kolom unit atomic dari informasi didukung oleh Cassandra yang
diekspresikan dengan nama value. Super-column merupakan gabungan
dari kolom dengan nama yang umum dan digunakan untuk pemodelan
tipe data yang kompleks. Baris secara unik mengidentifikasikan data
yang terdapat dalam column dan super-column. Dalam Cassandra baris
dapat dikenali dengan sebuah kunci. Column Family merupakan bagian
dari suatu unit abstraksi yang berisi baris kunci yang tergabung dalam
column dan super column yang memiliki struktur data yang tinggi.
Keyspace merupakan level tertinggi dari unit informasi yang terdapat
28
dalam Cassandra. Kumpulan column families sebenarnya merupakan
subordinat dari satu keyspace. Pada intinya model data column-oriented
memungkinkan suatu aplikasi secara bebas untuk mengembangkan
bagaimana informasi disusun berdasarkan suatu desain schema.
2. Document-oriented
Contoh penerapan model data document-oriented terdapat dalam
CouchDB yang dibangun oleh IBM. Basis data yang memiliki model
data document-oriented sangat bermanfaat untuk suatu domain yang
bentuk masukannya dokumen yang tidak terstruktur seperti web pages,
wikis, discussion forums, dan blogs. Data tersimpan dalam basis data
CouchDB yang mencakup serangkaian dokumentasi yang berisi
beberapa atribut dan nilai dengan masing-masing id yang unik dan
metadata. CouchDB tidak pernah melakukan overwrite document,
melainkan menambahkan dokumen baru ke basis data bila diperlukan
seperti ketika terjadi proses update.
3. Object-oriented
Basis data berorientasi objek adalah model basis data dimana
informasi direpresentasikan dalam bentuk objek yang digunakan dalam
pemrograman berorientasi obyek. OrientDB adalah contoh dari basis
data object-oriented. Dokumen OrientDB yang ada dalam suatu cluster,
dapat berupa fisik, logis atau in-memory, yang digunakan untuk
menyimpan link ke dalam data. Cluster adalah cara yang sangat umum
untuk mengelompokkan record, hal ini merupakan satu konsep yang
tidak ada dalam basis data relasional. Cara ini dapat mengelompokkan
semua record pada jenis tertentu, atau dengan nilai-nilai tertentu.
OrientDB menggunakan segmen data untuk menyimpan isi record.
Segmen data mirip dengan file physical cluster yang menggunakan dua
atau lebih file, yaitu satu atau beberapa file dengan ekstensi "oda"
(Orient Data) dan hanya satu file dengan ekstensi "odh" (Orient data
Holes).
29
4. Graph-oriented
Basis data grafik (GraphDB) adalah basis data yang menggunakan
struktur grafik yang berisi node, edge, dan properti untuk mewakili dan
menyimpan informasi. GraphDB diperlukan untuk data grafik yang
berskala besar, terutama yang dipergunakan oleh para peneliti biologi
jaringan dan situs jaringan sosial, seperti Facebook, dan Twitter.
GraphDB memetakan secara langsung objek ke aplikasi dan lebih
intuitif untuk menggambarkan data set asosiatif.
Beberapa keuntungan dari GraphDB adalah:
a. Intuitive
Intuitive, dimengerti oleh pikiran manusia, yaitu
menggambarkan entitas dan hubungan sebagai grafik masalah
umum yang akrab dengan manusia
b. Elemental
Elemental untuk ilmu komputer, yaitu grafik, terutama grafik
pohon (seperti binary-tree, B+ tree, red-black tree) berfungsi
sebagai struktur data dasar dalam ilmu komputer dan berbagai
masalah (shortest path dan max-flow) dapat diubah dan
diselesaikan dengan algoritma grafik.
c. Ubiquitous
Ubiquitous, yaitu pemodelan ER ke model jejaring sosial selalu
dikelilingi oleh grafik baik di komputer ataupun dalam
kenyataan.
Keunggulan lain dalam GraphDB adalah biasanya lintasan grafik
digunakan sebagai pengganti operasi join yang berpengaruh dalam
efisiensi query. GraphDB juga tergantung pada kurangnya schema yang
kaku di mana satu schema dapat selalu diubah dengan mudah pada
grafik, karena struktur grafik sendiri cukup fleksibel untuk mewakili
perubahan melalui edit edge dan properti. GraphDB juga dapat
mendukung semua fitur basis data yang kuat.
30
2.2.4. Hypertext Markup Language (HTML)
Menurut (Meloni, 2012, p. 2) HTML adalah sebuah bahasa untuk
menggambarkan text, gambar, dan dokumen yang mengandung informasi lain
di organisasikan dan terhubung secara bersama.
2.2.5. Hypertext Markup Language version 5 (HTML5)
HTML 5 adalah perkembangan terbaru dari HTML. (Murphy, Clark,
Studholme, & Manian, 2011, hal. 10) HTML5 mengandung semua fitur yang di
miliki HTML 4, walaupun dengan beberapa perubahan dan peningkatan
kinerja. Tetapi HTML5 juga memiliki beberapa fitur baru untuk membangun
aplikasi web dengan kualitas yang tinggi, beberapa fitur baru seperti :
1. Elemen semantik baru yang mengizinkan kita untuk mendefinisikan
beberapa bagian dari struktur HTML secara tidak ambigu
dibandingkan menggunakan banyak kelas dan ID.
2. Penambahan elemen baru untuk menambahkan video, audio, grafik
yang terbuat dari script dan beberapa aplikasi kaya konten lainnya.
3. Fitur baru untuk standarisasi fungsionalitas yang telah dibuat
sebelumnya, atau memiliki celah. Server memberikan peringatan
dan pesan validasi secara langsung.
4. Fitur baru untuk mengisi celah dalam fungsionalitas yang secara
tradisional terdapat pada standar terbuka seperti menentukan
bagaimana browser menangani markup error, memungkinkan
aplikasi web untuk bekerja secara offline, memungkinkan kita untuk
menggunakan koneksi dengan socket yang selalu terbuka untuk
transfer data aplikasi dan lagi-lagi audio, video dan canvas.
2.2.6. Cascading Style Sheets (CSS)
Menurut (Meloni, 2012, p. 46) CSS adalah bahasa yang mendefinisikan
elemen-elemen yang membentuk desain seperti font, colours, dan positioning
yang dimana digunakan untuk mendeskripsikan bagaimana informasi dalam
sebuah halaman web di bentuk dan ditampilkan.
31
2.2.7. Node.JS
Pada European JSConf tahun 2009, Ryan Dahl memperkenalkan sebuah
proyek yang sedang dikerjakan olehnya. Proyek yang dikerjakan adalah sebuah
platform yang menggabungkan Google’s V8 JavaScript engine, proses
pengulangan, dan low-level I/O API. Proyek itu bernama Node.JS. Node.JS
mempunyai performa yang tinggi dan concurrent yang tinggi. Node.JS
menggunakan bahasa pemrograman JavaScript. Tidak seperti JavaScript yang
dijalankan pada sisi client, Node.JS dijalankan pada sisi server.
Perkembangan Node.JS sangat cepat karena Node.JS menggunakan
bahasa pemrograman javascript. JavaScript adalah bahasa pemrograman yang
paling banyak digunakan oleh programmer, sehingga programmer tidak perlu
lagi mempelajari bahasa pemrograman lagi untuk menguasai Node.JS.
Node.JS diatur dari Node Package Manager atau npm. NPM berfungsi
untuk mengatur, mencari dan menginstal modul-modul Node.JS (Teixeira,
2013, p. 3).
2.2.8. PHP
PHP (PHP Hypertext Preprocessor) adalah sebuah bahasa scripting
yang berada pada sisi server. PHP bekerja dalam dokumen HTML untuk
memberikan kapasitas konten yang dihasilkan sesuai permintaan. PHP akan
dijalankan pada sisi server dan hasilnya akan dikirimkan ke browser dalam
bentuk HTML (Castagnetto, Rawat, Schumann, Scollo, & Veliath, 1999, p. 8).
2.2.9. JavaScript
Menurut (Meloni, 2012, p. 66) JavaScript dibuat oleh Netscape
Communications Corporation. JavaScript adalah bahasa web scripting pertama
yang didukung oleh browser, dan sangat populer sampai sejauh ini. JavaScript
hampir mudah untuk dipelajari seperti HTML, dan JavaScript bisa langsung
digabungkan dengan dokumen HTML.
Beberapa hal yang bisa kita lakukan dengan JavaScript :
32
1. Menampilkan pesan kepada pengguna sebagai bagian dari halaman
web, pesan tersebut bisa pada bagian status pada browser atau pada
bagian alert boxes.
2. Validasi pada formulir dan membuat kalkulasi (contoh : pada
formulir pemesanan bisa otomatis menampilkan jumlah total
pemesanan yang anda pesan).
3. Menggerakkan gambar atau membuat gambar yang bisa berubah
ketika mouse berada pada posisi di atas gambar tersebut.
4. Membuat tempat iklan yang interaktif dengan pengguna.
5. Mendeteksi browser yang digunakan atau fitur-fiturnya dan
melakukan fungsi khusus hanya pada browser yang mendukung.
6. Mendeteksi plug-ins yang diinstall dan memberitahukan kepada
pengguna jika memerlukan sebuah plug-ins.
7. Memodifikasi semua atau bagian tertentu pada sebuah halaman web
tanpa harus melakukan refresh halaman web tersebut.
8. Menampilkan atau berinteraksi dengan data yang didapat dari
server remote.
2.2.10. Asynchronous JavaScript and XML (AJAX)
Menurut (Meloni, 2012, p. 479) AJAX adalah fungsi dari sebuah
browser yang mengizinkan JavaScripts untuk keluar dari batasan sisi client dan
bekerja dengan file yang terdapat pada web server atau dengan program di sisi
server.
2.2.11. Real Time Processing
Real Time Processing adalah sistem aplikasi komputer yang mampu
memberikan respon terhadap input yang diberikan dalam waktu yang hampir
bersamaan (sebagai contoh: Air Traffic Control yang selalu memberikan detail
tentang kecepatan, ketinggian dan posisi pesawat terbang). Real Time
Processing semakin kompleks karena interkoneksi sistem. Misalnya, banyak
sistem real time harus berinteraksi dengan internet, communications services
dan dengan multimedia display system yang canggih.
33
Sistem real time harus menggunakan multiple processors yang dapat
meningkatkan ketahanan dan kehandalan sistem, tetapi arsitektur menjadi lebih
kompleks, oleh karena itu kesulitannya berada pada menentukan dan
memastikan kehandalannya. Dengan demikian, aplikasi real time harus
memerlukan teknik pemrograman dan menggunakan data yang tepat agar
sumber daya komputer bisa digunakan secara optimal (Henderson, 2009, p.
399).
2.2.12. Web browser
Jutaan website menggunakan dokumen hypertext yang tidak hanya
meliputi text saja, tetapi bisa terdapat gambar, video dan suara. Untuk
mengakses itu semua, user harus menggunakan web-browsing program.
Fungsi dasar sebuah web browser adalah mengirimkan request sebuah
halaman website dengan menggunakan alamatnya. Request tersebut akan
diproses oleh web server yang bersangkutan. Server tersebut mengirimkan
dokumen HTML kepada browser yang kemudian akan ditampilkan untuk user.
Biasanya, browser akan menyimpan dokumen dan file yang di-request pada
local cache di komputer user. Cache berfungsi untuk mengurangi jumlah data
yang harus dikirimkan kembali jika browser melakukan request kepada
halaman web yang sudah pernah diakses (Henderson, 2009, p. 503).
Fitur – fitur yang pada umumnya dimiliki oleh semua web browser :
1. Navigation Buttons yang digunakan untuk maju ke halaman
selanjutnya atau mundur ke halaman sebelumnya yang sudah pernah
diakses (Henderson, 2009, p. 504).
2. Tabs yang digunakan untuk memudahkan user dalam berpindah-
pindah halaman web jika halaman web yang diakses lebih dari satu
(Henderson, 2009, p. 504).
3. Sebuah search button yang menggunakan search engine yang
dipilih oleh user (Henderson, 2009, p. 504).
4. Sebuah fungsi untuk menyimpan sebuah halaman web sebagai
“ favorites” atau “bookmarks” untuk memudahkan user jika ingin
mengakses kembali halaman web tersebut (Henderson, 2009, p.
504).
34
2.2.13. HTML 5 WebSockets
HTML 5 WebSockets adalah teknologi web yang memungkinkan untuk
komunikasi dua arah dengan host jarak jauh. HTML 5 WebSockets
memungkinkan push message antara client dan server bisa dilakukan kapan
saja (Kaazing, 2013).
2.2.14. Webcam
Saat ini ribuan pemandangan real-time seluruh dunia dapat diakses
melalui web. Semua pemandangan tersebut dapat diakses berkat adanya kamera
digital dengan harga murah atau yang biasa disebut dengan webcam.
Untuk membuat webcam standar, user menghubungkan kamera digital
ke komputer biasa menggunakan kabel usb. Sebuah program yang digunakan
mengontrol kamera tersebut agar bisa mengambil gambar pada interval yang
sering kemudian di upload ke halaman web pengguna untuk menggantikan
gambar sebelumnya. User yang terhubung dengan web tersebut bisa melihat
gambar terbaru secara real-time berkat sebuah script yang dijalankan pada
server yang berfungsi untuk memperbarui gambar secara otomatis (Henderson,
2009, p. 504).
2.2.15. Web Service
Web Service adalah perangkat lunak yang dirancang untuk menawarkan
layanan atau kemampuan yang dapat dipanggil atau digunakan oleh aplikasi
lainnya. Dengan adanya web service sangat mempercepat evolusi aplikasi web
(Henderson, 2009, p. 508).
Terdapat beberapa cara untuk mengakses web service, yaitu :
1. Remote Procedure Call (RPC), yang umumnya menggunakan
WSDL dan mengikuti format yang sama dengan cara program
memanggil dan menggunakan fungsi library (Henderson, 2009, p.
509).
2. Sebuah organisasi yang didasarkan oleh pesan yang tersedia
daripada panggilan atau operasi (Henderson, 2009, p. 509).
35
3. Representational State Transfer (REST), sebuah aplikasi atau
service yang digunakan sebagai koleksi “resources” dengan alamat
tertentu (URLs) dan requests khusus menggunakan HTTP
(Henderson, 2009, p. 509).
Keuntungan menggunakan web service adalah programmer dan bahkan
user dapat membangun web aplikasi baru tanpa harus mengetahui rincian
bagaimana web service itu bekerja (Henderson, 2009, p. 509).
2.2.16. Sorting Algorithm
Sorting algorithm adalah algoritma yang efisien dalam melakukan
pengurutan elemen – elemen ke dalam urutan tertentu. Sorting algorithm
mempermudah pengurutan data nilai – nilai array dalam berbagai cara dalam
database. Sorting algorithm merupakan bagian penting dalam pengaturan data
sehingga efisiensi mereka selalu menjadi tolak ukur. Efisiensi sorting algorithm
lebih terlihat dalam mengurutkan data yang ukurannya beragam dan dalam
jumlah yang besar (Sareen, 2013, p. 522).
2.2.17. Web 3.0
Web 3.0 merupakan era baru dari fase evolusi web. Web 3.0
memberikan suatu pengalaman baru dalam web, yang disebut sebagai 'web
pintar'. Web 3.0 menggunakan teknologi-teknologi seperti Semantic Natural
Language untuk mencari dan menerima informasi dari web. Data dapat
berkomunikasi lintas aplikasi untuk memberikan pengalaman yang lebih
canggih, sehingga interaksi manusia dengan komputer dapat menjadi real-time.
Tidak hanya Semantic Natural Language, web 3.0 juga menggunakan
teknologi-teknologi lainnya seperti, data mining, microformats, artificial
intelligence, dan lain-lain (Waldbillig, 2012).
2.2.18. WebRTC
WebRTC bersifat gratis, open project yang memungkinkan web
browser mempunyai kemampuan Real-Time Communications (RTC) melalui
JavaScript API yang sederhana (WebRTC, Home, 2013).
36
WebRTC menawarkan kemampuan kepada web developers untuk
mengembangkan aplikasi multimedia yang realtime yang kaya fitur (sebagai
contoh: video chat) di web, tanpa memerlukan plugin. Ini bertujuan untuk
membangun platform RTC yang kuat yang bekerja di beberapa web browser
dan di beberapa platform (WebRTC, General Overview, 2013).
Sejauh ini hanya di dukung oleh browser Chrome dan Firefox. Proses
komunikasi ini dilakukan dengan cara peer-to-peer antar browser dimana
masing-masing pengguna terhubung dengan menggunakan URL unik (Dutton,
Getting Started with WebRTC, 2013).
WebRTC menggunakan RTCPeerConnection untuk melakukan
streaming data antar browser (peer to peer), namun di sini dibutuhkan sebuah
mekanisme untuk mengoordinasi komunikasi dan pesan kontrol, sebuah proses
yang kita kenal dengan signaling. Metode signaling dan protokolnya tidak
ditentukan oleh WebRTC, sehingga developer wajib membuat sendiri proses
signaling-nya. Pertukaran informasi lewat signaling harus diselesaikan sebelum
streaming peer-to-peer dapat dilakukan (Dutton, Getting Started with
WebRTC, 2013).
Signaling digunakan untuk bertukar tiga jenis informasi yaitu :
• Session Control Messages :
Untuk membuka dan menutup
komunikasi serta melaporkan error (Dutton, Getting
Started with WebRTC, 2013).
• Network Configuration :
Memberitahu berapa IP address
komputer dan port yang digunakan (Dutton, Getting
Started with WebRTC, 2013).
• Media Capabilites : Codecs
dan resolusi apa yang dapat dijalankan browser dan
bagaimana cara berkomunikasi dengan browser (Dutton,
Getting Started with WebRTC, 2013).
Untuk menjaga keamanan data, WebRTC memiliki beberapa fitur yaitu
:
37
• Implementasi WebRTC menggunakan secure protocols (Dutton,
Getting Started with WebRTC, 2013).
• Enkripsi diwajibkan untuk seluruh komponen WebRTC termasuk
mekanisme signaling (Dutton, Getting Started with WebRTC,
2013).
• WebRTC bukan sebuah plugin melainkan sebuah komponen yang
berjalan dalam browser sandbox dan tidak dalam proses terpisah,
komponen tidak membutuhkan instalasi terpisah dan di-update
ketika browser melakukan update (Dutton, Getting Started with
WebRTC, 2013).
• Akses kamera dan microphone dilakukan secara eksplisit dan
ketika kamera atau microphone dijalankan terlihat dengan jelas di
layar (Dutton, Getting Started with WebRTC, 2013).
Infrastruktur WebRTC sendiri menggunakan arsitektur JSEP
(JavaScript Session Establishment Protocol). Dalam arsitektur ini data
signaling disimpan dalam sebuah server khusus , bukan dalam browser.
Tujuannya untuk menghindari hilangnya data setiap kali halaman dimuat ulang.
Untuk berkomunikasi peer-to-peer dalam JSEP dibutuhkan proses offer dan
answer antar kedua belah pihak dalam bentuk Session Description Protocol
format (SDP) (Dutton, WebRTC in the real world : STUN, TURN and
signaling, 2013).
38
Gambar 2.6 Arsitektur JSEP
Dalam melakukan koneksi, pertama kali WebRTC melakukan metadata
signaling menggunakan server penengah. Ketika session telah terbuat proses
koneksi dilakukan secara langsung dengan peer-to-peer. Secara sederhana, jika
didunia ini setiap komputer memiliki alamat unik maka proses pertukaran data
antar komputer dapat dilakukan secara langsung tanpa bantuan penengah.
Gambar 2.7 A World Without NATs and Firewalls
Namun kenyataannya kebanyakan perangkat berada di belakang satu
atau lebih lapisan NAT, beberapa memiliki perangkat lunak antivirus yang
memblokir port dan protokol tertentu, dan banyak juga yang berada di belakang
proxy beserta firewall. Oleh karenanya aplikasi WebRTC menggunakan
framework ICE (Interactive Connectivity Establishment) untuk mengatasi
kompleksitas dunia networking.
Gambar 2.8 The Real World
39
Berikut gambaran proses yang dilakukan ICE untuk menemukan peers.
Pertama-tama ICE mencari jalan terbaik untuk berhubungan dengan peers
dengan cara mencoba semua kemungkinan dengan paralel dan memilih pilihan
terbaik. ICE pertama kali mencoba membuat koneksi dengan alamat host yang
didapat dari OS dan Network Card. Jika gagal berarti komputer host berada
dibelakang NAT, maka ICE mencoba mengambil address eksternal dengan
STUN server, dan jika gagal juga traffic diarahkan lewat TURN Relay Server.
Dengan kata lain (Dutton, WebRTC in the real world : STUN, TURN and
signaling, 2013) :
• Sebuah STUN server digunakan untuk mendapatkan alamat network
eksternal
• TURN server digunakan untuk menyampaikan traffic jika koneksi
peer-to-peer gagal.
Setiap TURN Server mendukung STUN, sebuah TURN Server
merupakan STUN Server yang dilengkapi dengan fungsionalitas relay data
secara builtin. Cara kerja STUN dan TRUN (Dutton, WebRTC in the real world
: STUN, TURN and signaling, 2013) :
1. STUN
NAT menyediakan IP Address yang digunakan untuk jaringan lokal,
namun alamat ini tidak dapat digunakan secara eksternal. Tanpa
alamat publik, tidak ada jalan bagi WebRTC peers untuk
berkomunikasi. Untuk memecahkan masalah ini WebRTC
menggunakan STUN.
STUN Server dijalankan di jaringan internet dan memiliki satu tugas
sederhana yaitu mengecek IP:port address dari request yang masuk
(dari aplikasi di belakang NAT) lalu mengirimkan alamatnya
kembali sebagai respon. Dengan kata lain, aplikasi menggunakan
STUN server untuk mencari IP:Port dari perspektif publik. Proses
ini memungkinkan WebRTC peer untuk mendapatkan alamat akses
host publik lalu mengirimkannya ke target atau peer lainnya dengan
mekanisme signaling (Dutton, WebRTC in the real world : STUN,
TURN and signaling, 2013).
40
Gambar 2.9 Using STUN Servers to Get Public IP:Port Addresses
2. TURN
RTCPeerConnection mencoba membuat koneksi langsung antar
peer melalui UDP. Jika gagal maka maka RTCPeerConnection
mengalihkan ke TCP. Jika cara tersebut masih gagal, Server TURN
dapat digunakan sebagai alternatif untuk berhubungan.
TURN Server memiliki alamat publik, sehingga dapat dihubungi
oleh peer walaupun mereka berada di belakang firewall atau proxy.
TURN server memiliki sebuah tugas sederhana yaitu untuk
menyampaikan stream. Namun tidak seperti STUN server, mereka
membutuhkan bandwidth yang lebih besar (Dutton, WebRTC in the
real world : STUN, TURN and signaling, 2013).
41
Gambar 2.10 The Full Monty: STUN, TURN and Signaling
Diagram menunjukkan TURN berjalan ketika STUN gagal, sehingga
masing-masing peer menggunakan sebuah TURN server untuk saling
terhubung (Dutton, WebRTC in the real world : STUN, TURN and signaling,
2013).
2.2.19. CodeIgniter
CodeIgniter adalah sebuah perangkat Application Development
Framework yang digunakan untuk membangun web menggunakan PHP.
CodeIgniter memudahkan programer untuk membangun web lebih cepat
karena programer tidak perlu menulis code dari awal. Programer dapat
membangun web dengan cara menggunakan library yang telah ada untuk
mengerjakan tugas – tugas yang biasa diperlukan, tampilan UI yang sederhana
dan menggunakan struktur yang logic untuk mengakses library. CodeIgniter
memungkinkan programmer bisa fokus dan kreatif pada proyek pengembangan
aplikasinya dengan meminimalkan jumlah kode yang dibutuhkan untuk tugas
yang diberikan (EllisLab, 2013).
42
2.2.20. Cassandra
Apache Cassandra adalah NoSQL database berskala besar dan open
source. Cassandra sangat cocok untuk mengatur data yang besar baik
terstruktur, semi terstruktur, maupun tidak terstruktur di data center dan cloud.
Cassandra memberikan ketersediaan terus menerus, skalabilitas linier dan
operasi yang mudah melalui banyak melalui banyak server tanpa suatu
kesalahan, bersamaan dengan data model dinamis yang kuat dan didesain untuk
fleksibilitas maksimal dan waktu respons yang cepat.
Gambar 2.11 Cassandra Ring
Cassandra menggunakan arsitektur “masterless” yang berarti semua
node mempunyai kedudukan yang sama. Cassandra menyediakan distribusi
data otomatis ke seluruh node yang terdapat dalam cluster database.
Casssandra menyediakan replikasi built-in dan dapat disesuaikan, yang
menyimpan salinan data di seluruh node yang dalam cluster cassandra. Hal ini
berarti jika ada cluster yang mati, maka satu atau lebih salinan data dapat
diambil dari mesin cluster lainnya. Replikasinya bisa diatur pada satu data
center, banyak data center, dan cloud.
Cassandra menyediakan pengembangan secara skalabilitas linier, yang
berarti kapasitas dapat ditambahkan dengan mudah dengan cara menambahkan
node baru secara online (DataStax, 2013).
2.2.21. JavaScript Object Notation (JSON)
(JSON.ORG, 2013) JSON (JavaScript Object Notation) adalah format
pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta
mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat
berdasarkan bagian dari Bahasa Pemrograman JavaScript, Standar ECMA-262
Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak
43
bergantung pada bahasa pemrograman apapun karena menggunakan gaya
bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++,
C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut,
menjadikan JSON ideal sebagai bahasa pertukaran data.
JSON terbuat dari dua struktur:
1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini
dinyatakan sebagai objek (object), rekaman (record), struktur
(struct), kamus (dictionary), tabel hash (hash table), daftar berkunci
(keyed list), atau associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan
bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector),
daftar (list), atau urutan (sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada
dasarnya, semua bahasa pemrograman modern mendukung struktur data ini
dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian
karena format data mudah dipertukarkan dengan bahasa-bahasa pemrograman
yang juga berdasarkan pada struktur data ini.
JSON menggunakan bentuk sebagai berikut:
1. Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek
dimulai dengan { (kurung kurawal buka) dan diakhiri
dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik
dua)dan setiap pasangan nama/nilai dipisahkan oleh , (koma).
Gambar 2.12 JSON Objek
2. Array adalah kumpulan nilai yang terurutkan. Larik dimulai
dengan [ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak
tutup). Setiap nilai dipisahkan oleh , (koma).
44
Gambar 2.13 JSON Array
3. Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda,
atau angka, atau true atau false atau null, atau sebuah objek atau
sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat.
Gambar 2.14 JSON Value
4. String adalah kumpulan dari nol atau lebih karakter Unicode, yang
dibungkus dengan tanda kutip ganda. Di dalam string dapat
digunakan backslash escapes "\" untuk membentuk karakter khusus.
Sebuah karakter mewakili karakter tunggal pada string. String
sangat mirip dengan string C atau Java.
45
Gambar 2.15 JSON String
5. Angka adalah sangat mirip dengan angka di C atau Java, kecuali
format oktal dan heksadesimal tidak digunakan.
Gambar 2.16 JSON Number
6. Spasi kosong (whitespace) dapat disisipkan di antara pasangan
tanda-tanda tersebut, kecuali beberapa detil encoding yang secara
lengkap dipaparkan oleh bahasa pemrograman yang bersangkutan.
46
2.3. Penelitian Sebelumnya
Menurut penelitian yang dilakukan oleh (Giannakos & Lapatas, 2010).
Penerapan E-learning pada versi pertama dari Web yaitu Web 1.0 seorang murid
hanya dapat secara pasif membaca materi yang disampaikan oleh guru. Pada
perkembangannya di Web 2.0 murid memiliki kemampuan untuk berinteraksi dengan
konten yang disampaikan seperti memberikan comment atau mengubah informasi
yang diberikan pengajar (wiki). Satu langkah kemudian dalam perkembangan dunia
Web adalah Web 3.0, dimana teknologinya memungkinkan murid dan guru belajar
secara kolaboratif dalam lingkungan yang disediakan.
Web 3.0 menyediakan teknologi-teknologi yang dapat diterapkan untuk
mendukung pembelajaran seperti smart interface dan autoupdate content. Selain itu
fitur-fitur lain yang dapat digunakan adalah
• Synchronous/Asyncronous and Social Content
Pembelajaran dilakukan secara langsung seperti didalam suatu kelas virtual
ataupun pembelajaran dilakukan dengan cara tidak langsung seperti melalui
artikel, materi, dan tugas.
• Wiki-enabled Interface
Setiap kata-kata yang digunakan didalam pembahasan bisa dihubungkan
langsung dengan wiki yang disediakan. Hal ini dapat dilakukan secara
otomatis maupun manual.
• Customized Background Search
Memberikan saran pencarian melalui media pencarian populer seperti
google. Dimana tiap topik pembahasan yang dilakukan hasil pencarian
ditampilkan secara khusus disuatu bagian tertentu didalam kelas.
Sedangkan berdasarkan hasil penelitian dari (Hussain, 2012) E-Learning sudah
berevolusi sejak awal penemuannya hingga saat ini. Berikut ini adalah generasi-
generasi dari E-learning yang telah ada :
• E-Learning 1.0
E-learning generasi ini biasanya dianggap sebagai panduan instruksi yang
dilakukan dengan komputer. Selanjutnya berkembang menjadi Learning
Management System (LMS) yang berfungsi untuk mendukung manajemen
proses pembelajaran seperti pengaturan materi, pemberian tugas dan
47
penilaian. Proses komunikasi antar guru dan murid dilakukan secara searah
yaitu penyampaian materi dari guru ke muridnya.
• E-Learning 2.0
Teknologi Web 2.0 membuat proses pembelajaran dapat dilakukan secara
lebih kolaboratif dengan menggunakan wiki, blog, podcasts dan media
sosial lainnya. Alat-alat tersebut memberikan konten yang dinamis untuk
mendukung kolaborasi dan interaksi antar pengguna. Pada versi ini proses
komunikasi dilakukan secara multi-directional dimana pengetahuan
dikembangkan secara bersama-sama.
• E-Learning 3.0
Kehadiran cloud computing dan teknologi baru seperti kapasitas
penyimpanan data yang besar, resolusi layar yang tinggi, perangkat layar
sentuh, dll. Serta peran Web 3.0, mengarahkan kita ke generasi selanjutnya
yaitu E-learning 3.0. Satu hal terpenting dari E-learning 3.0 adalah
kehadirannya dimana saja dan kapan saja dengan memanfaatkan perangkat
mobile untuk aksesnya.
Selanjutnya berdasarkan penelitian dari (CHISEGA-NEGRILĂ, 2013) dalam
Web 3.0 memiliki empat karakteristik utama :
• Distributed computing
• Extended smart mobile technology
• Collaborative intelligent filtering
• 3D visualization and interaction
Dimana karakteristik-karakteristik tersebut dapat dimanfaatkan untuk
mendukung proses pembelajaran dalam E-Learning. Walaupun dalam kenyataannya
ada untuk penerapan 3D visualization dan interaction memiliki kelemahan pada
beratnya aplikasi. Dan pada perkembangan kedepannya penerapan semantic web
(artificial intelligent) akan memberikan banyak kemudahan untuk pengguna dalam
memahami materi yang telah diekstraksi dari banyak sumber yang berbeda-beda.
48