4
BAB II. LANDASAN TEORI
2.1. Database
Database dapat dijelaskan sebagai kumpilan koleksi data yang terintegrasi. Data adalah sebuah representasi dari beberapa objek fisik maupun konseptual. Database berisikan penjelasan tentang struktur yang dimilikinya. Penjelasan ini dinamakan metadata – data yang berisikan data. Database saling terintegrasi dan memiliki hubungan antar data didalamnya (Berg, Seymour, & Goel, 2013)
2.1.1. Database Management System
Database management system (DBMS) adalah sebuah paket perangkat lunak yang melakukan kontrol terhadap pembuatan, pemeliharaan dan penggunaaan sebuah database. DBMS mengizinkan beberapa user dalam mengakses sebuah program database secara bersamaan. DBMS dapat menggunakan bebrapa model database seperti seperti model relational maupun model berbasis objek untuk mendukung pengembangan sebuah aplikasi. DBMS menggunakan bahasa query yang merupakan bahasa pemrograman tingkat tinggi, dimana bahasa tersebut akan menyederhanakan program aplikasi database (Gelogo & Lee, 2012) .
2.1.2. Database Replication
(Mazilu, 2010) mejelaskan bahwa replikasi database adalah proses pembuatan dan pemeliharaan beberapa instansi dalam sebuah database yang
sama dan proses pembagian data atau perubahan rancangan database antara database tanpa harus melakukan duplikasi seluruh system database. Dalam implementasinya, sebuah server database memegang duplikasi master dari sebuah database sementara server database tambahan lainnya memegang duplikasi slave dari database tersebut. Duplikasi lain dari database tersebut akan selalu tersinkron dengan master.
Database yang asli disebut dengan Design Master sementara tiap duplikasinya disebut dengan replica. Design master dan replica membentuk sebuah replica set, hanya ada satu design master untuk tiap replica set. Sinkronisasi akan memastikan tiap duplikasi dari database memiliki objek dan data yang sama dengan database master. Ketikaproses sinkronisasi dijalankan, hanya data yang mengalami perubahan yang akan berubah di database replica, rancangan database juga dapat tersinkron dengan melakukan perubahan rancangan pada database master.
Replikasi database ini dapat berfungsi sebagai back up karena database replika dapat mengambil alih posisi database master apabila database master yang sedang berjalan mengalami down time. Hal ini dapat dijelaskan pada gambar 2.2 dibawah ini dimana database distributor yang berlaku sebagai database master memiliki database publisher sebagai database slave (replikasi).
Gambar 2.1 – Contoh Skema Replikasi Database
2.1.3. Database Sharding
Sharding adalah istilah yang digunakan untuk menjelaskan praktek penggunaan beberapa server pada sebuah database yang sama dan melakukan konfigurasi untuk dapat menyimpan data secara terpisah di server – server yang berbeda. Proses ini akan meningkatkan kinerja database karena tiap server akan menangani data yang berbeda, jika satu server database menjadi sangat besar maka akan mempengaruhi waktu eksekusi query. Kendati memiliki keuntungan yang dapat terlihat, replikasi lebih direkomendasikan daripada sharding karena replikasi menyediakan peningkatan kinerja dan reliablility (Patel, Mosin, & Vasava, 2014).
Gambar 2.2 – Contoh Arsitektur Database Sharding
2.1.4. Prediksi Kecenderungan Database di Masa Depan
Saat ini database sudah mulai memakai logika secara kompleks. Fitur lainnya yang sedang dikembangkan adalah konsep pemisahan lokasi dari konsep abstrak database itu sendiri. Fitur ini memungkinkan database untuk ditempatkan di beberapa lokasi dan melakukan proses query sebagai unit yang berkelanjutan. Hal ini mungkin terhadi karena juga ditunjang oleh peningkatan kecepatan jaringan (Berg, Seymour, & Goel, 2013). Berikut adalah beberapa point tentang kecenderungan database di masa depan :
‐ Database dana manajemen data berada pada titik balik
‐ Pergantian arsitektur seperti cloud computing dan kebutuhan untuk dapat menangani ukuran data dalam jumlah yang sangat besar
‐ Database akan digunakan diluar batas yang biasanya. Salah satu conohnya adalah Google’s Map Reduce. Koleksi data (bukan database)
semakin meningkat kepentingannya dalam mendapatkan dan menghubungkan ilmu pengetahuan. Cloud, mobile, dan aplikasi virtual akan menjadi penentu perubahan.
2.2. Relational
Database Model
Relational Database menggunakan gagasan tentang database yang diuraikan kedalam beberapa tabel dimana tiap kolom dalam tabel tersebut merepresentasikan field dan tiap baris merepresentasikan data dari tiap field. Tabel dapat terhubung antara satu sama lain dengan memanfaatkan penggunaan
foreign key. Pada level abstract, suatu tabel merepresentasikan sebuah entitas
seperti pengguna, pelanggan atau pemasok (Berg, Seymour, & Goel, 2013). Rancangan sebuah database dengan model relational dapat dijelaskan pada gambar 2.3.
Menurut (Bhat & Jadhav, 2010) Database Relational sedang menghadapi banyak tantangan diantaranya :
‐ Kinerja database yang sulit untuk diprediksi ketika bekerja dengan menggunakan database yang diakses oleh banyak aplikasi, kinerja database menjadi sulit diperdiksi karena tiap aplikasi memiliki cara yang berbeda dalam menggunakan shared database tersebut.
‐ Integritas data menjadi sulit apabila menggunakan database yang diakses oleh banyak aplikasi karena tidak ada satupun aplikasi yang memiliki kontrol data. Hal ini menyulitkan karena tidak ada kepastian bahwa semua aplikasi beroperasi dalam prinsip bisnis yang sama
‐ Database operasional memerlukan perancangan strategi yang berbeda dengan database report. Skema database operasional mencerminkan kebutuhan operasional yang aplikasi butuhkan, seringkali menyebabkan skema yang dinormalisasi dengan beberapa area yang di denormalisasi dengan alasan kecepatan. Database report memiliki skema denormalisasi yang tinggi dengan tingkat redudansi yang besar didalamnya untuk mendukung kebutuhan reporting yang luas.
Gambar 2.3 – Contoh Skema Relational Database
2.2.1. Karakteristik Database Relational
(Berg, Seymour, & Goel, 2013) menjelaskan bahwa struktur internal operasi database relational pada dasarnya selalu mengarah pada ‘baris’ yang ada pada tabel. Pengguna akan berinteraksi dengan pandangan logis dari data dan tidak perlu tahu apa-apa tentang struktur internal yang sebenarnya. Penjelasan tentang karakteristik database secara menyeluruh telah dirangkum oleh (Berg, Seymour, & Goel, 2013) ke dalam tabel berikut.
Skema Database Fungsi Database Pendekatan Database
‐ Skema Konseptual secara logika
menjelaskan seluruh isi
data dalam database
‐ Skema internal (Skema Fisik) menjelaskan
tentang bagaimana data
disimpan
‐ Skema eksternal menjelaskan data yang
digunakan oleh user
‐ Manajemen kamus data ‐ Manajemen penyimpanan
data
‐ Transformasi dan presentasi data
‐ Manajemen Keamanan ‐ Kontrol akses untuk
banyak pengguna
‐ Manajemen backup dan pemulihan
‐ Manajemen integritas data ‐ Antar muka aplikasi dan
bahasa database dalam
menunjang bahasa
pemrograman
‐ Antar muka komunikasi database ‐ Data Definition Languange (DDL) : Menjelaskan struktur database ‐ Data Manipulation Language (DML) : Melakukan penarikan, penambahan, penghapusan, serta perubahan data dalam database ‐ Data Control Language (DCL) : Kontrol akses terhadap data
2.2.2. MySQL
MySQL adalah sistem manajemen database relasional dan mengimplementasikan SQL (Structured Query Language), yang merupakan bahasa query standar database relasional. MySQL bersifat open source, dan merupakan database yang paling banyak digunakan dan dapat menangani
database yang sangat besar (Ionescu & Istoc, 2011). Karakteristik database MySQL dapat dijelaskan pada tabel 2.1 dibawah ini.
Tabel 2.2 – Karakteristik MySQL
Karakteristik MySQL Penjelasan
Kinerja yang tinggi MySQL dapat berjalan di berbagai sistem operasi seperti:
Linux, Windows, Mac OS X, Solaris.Meanwhile, ia dapat
bekerja dengan jutaan tranzactions.
Kemudahan penggunaan MySQL mudah untuk dikonfigurasi serta memiliki banyak
pilihan software untuk melakukan pengelolaan database
Skalabilitas MySQL adalah open source dan dapat dengan mudah
disesuaikan oleh pengguna dalam mengembangkan
aplikasi sesuai kebutuhan sendiri. Database ini juga dapat
mengelola database yang sangat besar.
Kecepatan Dapat dikembangkan dengan berbagai jenis bahasa
pemrograman seperti: Java, PHP, Python, C ++, C, Perl
dan memberikan kecepatan pengolahan data yang baik
Keamanan MySQL memberikan keamanan melalui penerapan
password terenkripsi dan memastikan perlindungan data
melalui mekanisme tertentu.
2.3. NoSQL
Database Model
NoSQL (Not Only SQL) merupakan salah satu jenis dari database management system yang menggunakan kelompok data yang tidak bersifat non-relational, dimana database tidak dibangun kedalam tabel – tabel, dan tidak
menggunakan SQL dalam melakukan manipulasi data. NoSQL database management systems sangat berguna ketika bekerja dengan jumlah data yang sangat besar dan data – data didalamnya tidak memerlukan model relational (Moniruzzaman & Hossain, 2013).
2.3.1. Klasifikasi NoSQL Database
Menurut (Arora & Aggarwal, 2013) , Database NoSQL model dibagi menjadi 4 jenis diantaranya :
‐ Key-Value Database
Penyimpanan data menggunakan key value dilakukan dalam sebuah form yang berisi key dan value. Tiap key bersifat unik dan key akan digunakan untuk mendapatkan value. Kecepatan query yang dihasilkan oleh database ini lebih tinggi dibandingkan dengan database relational. Dynamo dan Riak adalah contoh dari database key-value. Database ini digunakan dalam aplikasi yang skema database nya terus berkembang secara berkelanjutan.
Gambar 2.4 – Penyimpanan Key-Value Database
‐ Column Oriented Database
Penyimpanan data berbasis kolom dilakukan dengan menyimpan data data dalam sekumpulan kolom, kolom – kolom tersebut disimpan dalam sebuah file yang sama yang disebut dengan colum families. Database jenis ini biasa dipakai untuk aplikasi yang secara intensif dipakai oleh user. Hbase dan Cassandra adalah contoh database berbasis kolom.
Gambar 2.5 – Struktur Data Column Database
‐ Document Database
Penyimapanan data dalam dokumen ini hampir mirip dengan key-value database, namun data yang disimpan dalam document database ini disimpan dalam format JSON atau XML. Database jenis ini digunakan untuk aplikasi yang data – data di dalamnya sering mengalami perubahan seperti aplikasi Customer Relationship Management.
Gambar 2.6 – Struktur Data Document Database
‐ Graph Database
Database grafik menggunakan struktur grafik untuk menyimpan data. Database jenis ini cocok digunakan oleh aplikasi yang memiliki banyak interkoneksi antar data seperti aplikasi media social. OrientDB dan neo4j adalah contoh dari jenis database ini.
Gambar 2.7 – Struktur Data Graph Database
2.3.2. NoSQL Database Query
Penggunaan query adalah salah satu bagian yang dijabarkan tidak secara rinci pada database NoSQL. Salah satu kemungkinan dari proses query pada database NoSQL adalah dengan menggunakan perintah SQL yang sangat terbatas. Database NoSQL menggunakan operasi semacam get (key) untuk mendapatkan data dari key yang dipanggil, put (key, value) untuk melakukan proses insert atau update serta perintah delete (key) untuk menghapus key yang ada di database. Beberapa database NoSQL memerlukan perintah tambahan
execute (key) untuk menjalankan perintah – perintah diatas.
Distribusi data secara horizontal pada database NoSQL menyebabkan tidak didukungnya perintah join atau order by seperti yang ada pada database relational. Apabila diperlukan, maka operasi join maupun order by dapat dilakukan dari sisi client. Operasi seleksi pada database NoSQL sering dijelaskan pada level API (Pokorny, 2013).
2.3.3. Arsitektur NoSQL Database
Arsitektur dari beberapa jenis NoSQL menggunakan beberapa kemungkinan distribusi untuk memastikan ketersediaandalam mengakses replikasi data. Kebanyakan dari database NoSQL menggunakan replikasi data yang bersifat asynchronous. Hal ini akan membuat proses write ke database menjadilebih cepat karena tidak bergantung kepada lalu lintas jaringan tambahan (Pokorny, 2013). Pada tabel 2.3 akan dijelaskan karakteristik dari beberapa jenis database NoSQL dalam hal model data, cara melakukan query, metode replikasi
(A – asynchronous, S - synchronous) serta kemungkinan transaksi (L – Transaksi Lokal, N – tidak ada transaksi).
Tabel 2.3 – Perbedaan karakteristik antar jenis database NoSQL
Nama Pembuat Model Data Query Replikasi Transaksi
Big Table Google (Key, {value}) Seleksi kombinasi
antara kolom dan
baris serta
timestamp
A + S L
HBase Apache Kumpulan
kolom
JRUBY IRB
berbasis shell
A L
SimpleDB Amazon (Key,
{attribute}), attribute = (name, value) Restricted SQL. Operasi select, delete, getAttributes, putAttributes A N
Voldemort LinkeId Sama dengan
SImpleDB
Operasi get dan
put yang
sederhana
A N
MongoDB 10gen Dokumen
terstruktur yang berbasis objek Manipulasi dari koleksi objek yang ada A N
CouchDB Couchbase Dokumen
yang berisi nama item Menggunakan javascript dan MapReduce A N
Banyaknya jenis database NoSQL menjadikan sulit untuk dapat mengembangkan query standar yang dapat diterima oleh semua jenis database NoSQL. Namun demikian, (Meijer & Bierman, 2011) melakukan penelitian dan menghasilkan sebuah model matematika yang dapat digunakan oleh database NoSQL secara umum yang dinamakan key-value relationship dan menunjukkan bahwa model matematika ini bekerja seperti konsep primary key – foreign key yang ada pada database relational.
2.3.4. MongoDB
MongoDB adalah salah satu jenis database dokumen yang memberikan kinerja dan ketersediaan tinggi serta skalabilitas yang mudah. Dalam penggunaannya, MongoDB menggunakan beberapa database. Satu database memegang sekumpulan data yang disebut sebagai collections. Sebuah collection memegang sekumpulan dokumen. Sebuah dokumen berisi kumpulan pasang key, value. Dokumen memiliki skema yang dinamis. Skema yang dinamis ini berarti bahwa dokumen – dokumen yang berada pada collections yang sama tidak perlu memiliki kolom dan struktur yang sama. Kolom data dalam setiap dokumen yang ada pada collections bisa memiliki tipe data yang berbeda (MongoDB, Inc, 2013)
Seperti yang dijelaskan pada (MongoDB, Inc, 2013), berikut adalah fitur – fitur utama pada MongoDB.
MongoDB menyimpan data dalam dokumen dengan format JSON. JSON menyediakan model data yang beraneka ragam yang dapat dipetakan ke banyak bahasa pemrograman yang bersifat native.
‐ Power
MongoDB menyediakan banyak fitur yang telah tersedia pada RDBMS seperti index, query dinamis, sorting, dan aggregasi sederhana. Fitur ini yang akan memberikan fungsionalitas yang luas jika beralih dari database relational ke MongoDB dengan kelebihan fleksibilitas serta kapabilitas yang diizinkan oleh model non-relational.
‐ Kecepatan
Dengan menjaga data terkait secara sekaligus dalam sebuah dokumen, query bisa jauh lebih cepat daripada dalam database relasional di mana data terkait dipisahkan menjadi beberapa tabel dan kemudian perlu digabungkan (join). MongoDB juga memudahkan untuk melakukan skala database. Autosharding memungkinkan untuk melakukan skala cluster linear dengan menambahkan lebih banyak mesin. Hal ini akan meningkatkan kemungkinan untuk meningkatkan kapasitas tanpa harus mengalamin downtime dimana akan sangat bermanfaat bagi aplikasi yang sering diakses seperti aplikasi berbasis web.
‐ Penggunaan yang mudah
MongoDB bekerja sangat keras agar dapat dengan mudah dipasang, dikonfigurasi dan digunakan. MongoDB menyediakan beberapa pilihan konfigurasi dan sebisa mungkin tidak secara otomatis melakukan operasi tanpa persetujuan pengguna. Hal ini berarti MongoDB bekerja
diluar kebiasaan database pada umumnya dan pengguna dapat langsung mengembangkan aplikasi menggunakan MongoDB ketimbang harus menghabiskan waktu untuk proses konfigurasi database sesuai dengan kebutuhan pengguna.
2.4. Aplikasi
Berbasis
Web
Aplikasi Web mengacu pada aplikasi yang diakses melalui browser Web melalui jaringan dan dikembangkan dengan menggunakan bahasa yang didukung oleh browser seperti HTML atau Javascript. Dalam eksekusinya, aplikasi web tergantung pada Web browser dan mencakup banyak aplikasi yang sering digunakan sehari - hari seperti penjualan ritel online, lelang online, dan webmail.
Aplikasi Web dibutuhkan dalam bidang interaksi bisnis-ke-bisnis melalui jaringan, misalnya, untuk perusahaan-perusahaan di luar negeri yang melakukan proyek outsourcing satu sama lain. Penerapan infrastruktur aplikasi Web dapat menyediakan kemudahan dalam menjalankan proses - proses penting seperti transfer dana dan update informasi harga (Al-Fedaghi, 2011).
2.4.1. Kinerja Aplikasi Berbasis Web
Penelitian yang dilakukan oleh (Nabil, Mosad, & Hefny, 2011) memetakan kinerja aplikasi berbasis web ke dalam sebuah model kualitas aplikasi berbasis web. Model tersebut membagi kualitas aplikasi berbasis web menjadi 3 jenis persepektif yaitu perspektif pengunjung, pengembang dan pemilik.
Aplikasi Web digunakan oleh populasi yang beragam dari pengunjung dengan latar belakang heterogen dalam hal pengetahuan, keterampilan, dan kebutuhan. Tujuan utamanya adalah bahwa Aplikasi Web tersebut dapat memfasilitasi informasi yang dicari oleh pengunjung yang dapat meningkatkan kinerja dan persepsi mereka dalam kaitannya dengan aplikasi web yang digunakan. Oleh karena itu, faktor kualitas pengunjung menjadi isu – isu kritikal untuk pengembangan Aplikasi Web.
‐ Perspektif Pengembang
Komunikasi antara perusahaan dan pelanggan, selain diskusi tatap muka, terjadi melalui satu atau lebih media melalui interaksi dengan media oleh kedua belah pihak. Fitur antarmuka berbasis web menjadi pilihan menarik sebagai media interaksi antara perusahaan dan pelanggannya. Kebutuhan untuk mengembangkan aplikasi web yang terintegrasi dari kebutuhan pengunjung dan promosi pemilik dengan berbagai karakteristik kualitas masalah yang paling penting untuk setiap pengembang aplikasi web. ‐ Perspektif Pemilik
Banyak perusahaan telah menyadari, karena pasar mereka telah menjadi lebih global dan berorientasi layanan menggunakan aplikasi web. Aplikasi web menjanjikan potensi manfaat bagi perusahaan, termasuk biaya transaksi dikurangi, mengurangi waktu untuk menyelesaikan transaksi, mengurangi kesalahan administrasi, respon lebih cepat terhadap peluang pasar baru, meningkatkan pemantauan pilihan pelanggan, meningkatkan intelijen pasar, penyebaran lebih tepat waktu informasi kepada para pemangku kepentingan, dan lebih tinggi iklan disesuaikan
dan promosi. Berdasarkan penelitian literatur yang luas di bidang model kualitas web, kami menemukan bahwa pemilik WBA Perusahaan ini terutama berkaitan dengan tiga faktor kualitas: diferensiasi, popularitas, dan profitabilitas.
2.4.2. Python
Sebuah bahasa pemrograman open source yang berkembang pesat, Python memiliki rancangan berbasis object oriented dan dukungan modul – modul eksternal yang dapat meningkatkan produktifitas programmer. Python secara luas digunakan dalam berbagai jenis pengembangan perangkat lunak, termasuk perhitungan-intensif, pemrograman ilmiah dan pengembangan aplikasi bebasis web. Beberapa projek perhitungan ilmiah yang menggunakan python sebagai bahasa pemrogaramannya (Xia, McClelland, & Wang, 2010)
Gambar 2.8 – Contoh Penggunaan Sintaks Python