• Tidak ada hasil yang ditemukan

BAB 2 TINJAUAN PUSTAKA Teori yang berkaitan dengan Software Engineering

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 TINJAUAN PUSTAKA Teori yang berkaitan dengan Software Engineering"

Copied!
40
0
0

Teks penuh

(1)

9

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)

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 :

(3)

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.

(4)

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

(5)

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.

(6)

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

(7)

• 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.

(8)

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

(9)

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.

(10)

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,

(11)

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

(12)

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.

(13)

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

(14)

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

(15)

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

(16)

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 :

(17)

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,

(18)

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.

(19)

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

(20)

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).

(21)

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.

(22)

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.

(23)

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.

(24)

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.

(25)

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).

(26)

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).

(27)

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).

(28)

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 :

(29)

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).

(30)

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.

(31)

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).

(32)

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).

(33)

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).

(34)

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

(35)

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).

(36)

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.

(37)

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.

(38)

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

(39)

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.

(40)

Gambar

Gambar 2.1 Metode Waterfall  Tahap-tahap dalam waterfall :
Gambar 2.2 Contoh Class Diagram
Gambar 2.3 Contoh Use Case
Gambar 2.4 Contoh Sequence Diagram
+7

Referensi

Dokumen terkait

Puji syukur penulis ucapkan kepada Tuhan Yesus karena skripsi dengan judul “Analisis Pengaruh Kinerja Keuangan, Kompensasi, Corporate Governance terhadap Manajemen Laba (Studi

juga mencakup seleksi atas tenaga konsultan baik konsultan perorangan (individual consultant) maupun perusahaan konsultan (firm consultant) sesuai dengan prosedur

hal ini bertujuan untuk mengetahui keakuratan pencatatan tarif Penerimaan Negara Bukan Pajak (PNBP) di Taman Nasional Bali Barat berdasarkan Peraturan Pemerintah

Tidak hanya menempuh pendidikan formal ia juga menempuh pendidikan informal yang diberikan ayahnya secara langsung ia mendapatkan pendidikan agama dari ayahnya

Bootloader Chip /IC pada Arduino Board telah diisi oleh program yang dinamakan Arduino bootloader , yang menmungkinkan kita meng- upload code   program tanpa menggunakan

Beberapa ketentuan dalam Peraturan Menteri Perindustrian Nomor 1 Tahun 2019 tentang Pertimbangan Teknis Impor Besi atau Baja, Baja Paduan, dan Produk Turunannya (Berita

Melihat dari penelitian yang dilakukan oleh Wati (2012) di perairan Desa Pengudang dengan karakteristik wilayahnya hampir sama dengan desa Teluk Bakau,

Analisis regresi dimaksudkan untuk mengungkapkan adanya pengaruh antara variabel X (Partisipasi dalam Kegiatan MGMP) dan variabel Y (Kompetensi Profesional Guru