MATERI PWPB KELAS XII

MATERI PWPB KELAS XII


Basis Data dalam Aplikasi Web

Basis data adalah kumpulan file-file yang mempunyai kaitan antara satu file dengan file lain sehingga membentuk suatu bangunan data untuk menginformasikan suatu perusahaan atau instansi dalam batasan tertentu


Ketika mengembangkan sebuah aplikasi web, tak jarang kita akan berhubungan dengan basis data. Basis data digunakan dalam dunia web untuk menyimpan berbagai data, mulai dari data pengguna (username, password, dst) maupun data aplikasi. Misalkan untuk membangun sebuah aplikasi portal berita, basis data dapat digunakan untuk menyimpan daftar berita yang pernah dipublikasikan oleh aplikasi.


Hal ini menyebabkan seorang pengembang web yang kompeten setidaknya harus memiliki pengertian yang baik tentang basis data. Walaupun tingkat penguasaan yang sangat mahir (expert) mungkin tidak diperlukan, kita tetap harus setidaknya mengerti dasar-dasar basis data dan bagaimana melakukan pemodelan data. Bagian ini akan membahas sedikit tentang basis data, dan contoh penggunaan salah satu basis data (CouchDB) di dalam aplikasi web dengan menggunakan NodeJS. Ingat bahwa pembahasan mengenai basis data pada tulisan ini hanya mencakup pengetahuan mendasar saja. Jika ingin belajar lebih lanjut tentang basis data, silahkan baca buku yang khusus membahas basis data.

Database Management System (DBMS)
Basis data adalah kumpulan data yang terorganisir dengan baik. Koleksi data ini kemudian dimodelkan berdasarkan berbagai aspek dalam dunia nyata, yang pada akhirnya akan mempermudah kita dalam mengambil informasi itu kembali. Misalnya, sebuah basis data perguruan tinggi dapat saja menyimpan data mahasiswa sedemikian rupa sehingga kita dapat dengan mudah mengambil informasi mata kuliah yang dipelajari mahasiswa pada setiap semesternya.

Database Management System (DBMS) merupakan sebuah perangkat lunak yang berhubungan dengan pengguna, aplikasi lainnya, dan basis data secara langsung untuk mengambil, menyimpan, dan menganalisa data yang ada. Sebuah DBMS umumnya memiliki fungsi-fungsi seperti:

1.      Definisi Data, yaitu fungsi yang memungkinkan kita untuk mendefinisikan model data dan kamus data.

2.      Manipulasi Data, yaitu fungsi yang memungkinkan kita untuk menambahkan, memperbaharui, maupun menghapus data yang telah kita simpan. Data selalu dimanipulasi berdasarkan model data yang telah ditentukan.

3.      Pengambilan Data, yaitu fungsi yang memungkinkan kita untuk mengambil data yang telah tersimpan dalam basis data.

4.      Administrasi Data, yaitu fungsi-fungsi administrasi data seperti penambahan indeks, hak akses data, back up, dan lain-lain.

Beberapa contoh DBMS populer misalnya MySQL, PostgreSQL, Microsoft SQL Server, Oracle, dan IBM DB2. DBMS berinteraksi dengan pengguna menggunakan aplikasi khusus yang biasanya dipaketkan dengan DBMS. Untuk berinteraksi dengan aplikasi, DBMS menggunakan sistem koneksi standar seperti ODBC atau JDBC. Baik aplikasi maupun pengguna biasanya berinteraksi dengan DMBS melalui sebuah bahasa khusus, misalnya SQL (Standard Query Language) atau Javascript.

DMBS dibagi berdasarkan model basis data yang didukungnya. Sampai dengan saat penulisan, model basis data yang paling populer masih model relasional (yang digunakan oleh MySQL, PostgreSQL, dll) [1].

Model Basis Data

Model Basis Data merupakan salah satu sistem pemodelan data yang menentukan struktur logis dari sebuah basis data, dan pada dasarnya mendefinisikan bagaimana sebuah data pada basis data disimpan, disusun, dan dimanipulasi.

Terdapat sangat banyak sekali model basis data yang ada, tetapi kita hanya akan membahas dua model yang paling populer pada masa penulisan, yaitu model relasional dan NoSQL (key-value dan document-oriented).


Basis Data Relasional

Model relasional pada basis data dibangun berdasarkan first order logic. Pada model relasional, berbagai data yang ada direpresentasikan oleh tuple, dan dikelompokkan ke dalam relasi antar data. Dalam implemenatsi tipikal dari model relasional, seluruh data tuple disimpan di dalam tabel-tabel yang merepresentasikan model data. Tabel-tabel ini kemudian dihubungkan sebagai penanda relasi antar tabel.

Setiap tabel yang ada di dalam implementasi model relasional biasanya memiliki kunci penanda yang bersifat unik untuk setiap tupleyang ada. Kunci ini dikenal dengan istilah primary key, yang memiliki kegunaan utama sebagai penanda identitas data. Identitas data dapat sangat berguna ketika kita ingin mengambil data spesifik (misal: nama dari karyawan dengan nomor karyawan X).

Tujuan utama dari model relasional adalah untuk memberikan cara deklaratif dalam menspesifikasikan dan mengambil data. Pengguna cukup memberitahukan informasi apa yang ingin diambil dari basis data, dan DBMS akan bekerja secara otomatis untuk mengambil data tersebut sesuai dengan prosedur dan model data yang ada. Pada model relasional, pemanggilan data secara deklaratif umumnya dilakukan dengan menggunakan bahasa SQL.


- NoSQL (Not Only SQL)

NoSQL merupakan sebuah model basis data yang relatif modern, pertama kali dicetuskan pada tahun 1998. Sebuah basis data NoSQL menyediakan mekanisme penyimpanan ataupun pengambilan data yang dimodelkan berbeda dengan model relasi antar tabel yang ada pada model relasional.

Terdapat banyak jenis dari model yang diadopsi oleh NoSQL, misalnya:

1.      Column-based,

2.      Document-based,

3.      Key-value,

4.      Graph, dan

5.      Multi-model.

Motivasi utama dari pendekatan model data yang berbeda pada NoSQL yaitu kesederhanaan perancangan, kemudahan pengembangan, dan kemudahan kontrol ketersediaan basis data. Pada kebanyakan kasus, model basis data yang diadopsi oleh NoSQL memberikan performa yang lebih baik dengan mengorbankan konsistensi data yang disimpan.


Transaksi Basis Data
sebuah transaksi adalah sekumpulan perintah yang dieksekusi terhadap basis data. Sebuah transaksi biasanya dijalankan di dalam DBMS, dan dianggap sebagai bagian terpisah dari transaksi lainnya. Hal ini berarti setiap transaksi dapat berjalan dan dibatalkan tanpa mempengaruhi transaksi lainnya. Sebuah transasksi juga harus bersifat logis, konsisten, dan dapat diandalkan karena transaksi merepresentasikan perubahan dalam basis data.

Sebuah transaksi merupakan unit eksekusi yang harus dijalankan secara penuh atau tidk sama sekali. Hal ini dilakukan untuk menjaga integritas dan kompleksitas data. Contoh dari sebuah transaksi adalah pengiriman dana dari satu rekening bank ke rekening lainnya. Operasi ini harus berjalan secara penuh, dan jika terdapat masalah operasi harus dibatalkan sepenuhnya juga karena:

1.      Jika operasi pengiriman berjalan sampai setengah dan dibatalkan, kita tidak dapat memastikan apakah dana sudah terkirim atau tidak, identitas pengirim dan penerima benar, serta berapa jumlah dana yang bergerak. Semua detil data yang disebutkan sebelumnya dapat saja hilang atau bahkan berubah karena transaksi yang belum diselesaikan.

2.      Jika sebagian operasi pengiriman selesai, tetapi operasi yang lain gagal (misal: dana masuk, tetapi data pengirim tidak masuk) maka proses verifikasi dan otorisasi transfer akan menjadi lebih kompleks dari yang seharusnya.

Pada basis data modern, DMBS akan memastikan sebuah transaksi berjalan dengan benar, dan jika tidak transaksi dibatalkan. Misalnya, pengguna lain tidak akan dapat mengakses data yang sedang diproses oleh sebuah transaksi. Berbagai hal lain juga dilakukan, dengan satu tujuan utama: apapun yang terjadi, data pengguna selalu konsisten dan benar. Pada contoh transaksi pengiriman dana perbankan, DBMS akan memastikan tidak ada kejadian di mana dana terpotong dari satu rekening tetapi tidak masuk ke rekening lainnya.

Transaksi dalam basis data umumnya memiliki empat sifat utama, yang dikenal dengan istilah ACID:

·         Atomic, yaitu sebuah transaksi dijalankan dalam satu unit. Jika sebuah perubahan dieksekusi, perubahan tersebut akan dijalankan dengan hanya satu kali proses. Tidak ada “setengah perubahan”. Jika transaksi gagal atau dibatalkan, data akan dikembalikan ke status valid terakhir.

·         Consistent, perubahan dan transaksi hanya dapat berjalan jika hasil dari perubahan tersebut merupakan data yang valid. Seluruh data yang masuk ke dalam basis data harus telah valid sesuai dengan seluruh aturan (CONSTRAINT, CASCADE, TRIGGER, dst) yang ada. Jika perubahan yang akan dilakukan tidak dapat menghasilkan data valid, transaksi akan dibatalkan, dan data dikembalikan ke status valid terakhir.

·         Isolated, yaitu sifat di mana sebuah transaksi terpisah dengan transaksi lainnya dan tidak ada orang atau sistem yang dapat melihat apa yang dilakukan oleh transaksi sampai proses transaksi selesai dijalankan.

·         Durable, begitu sebuah transaksi selesai dieksekusi, data hasil transaksi akan dijamin telah tersimpan dengan benar, apapun yang terjadi setelah transaksi tersebut dieksekusi. Hal ini berarti terdapat jaminan ketahanan terhadap hal-hal seperti mati listrik, error, dan crash.

Satu hal yang perlu diingat dari transaksi dan ACID adalah bahwa pada perangkat lunak yang mewajibkan adanya integritas data, dukungan sebuah DBMS terhadap ACID merupakan hal yang sangat penting dan tidak dapat dikompromikan. Tidak peduli apakah sebuah basis data tersebut adalah basis data relasional atau NoSQL, selama data dapat dipastikan aman dan mendukung ACID maka kita dapat menggunakan basis data tersebut.

Dukungan ACID pada sebuah basis data juga memastikan bahwa basis data tersebut dapat mendukung paralelisme dan konkurensi dengan baik, karena sifat isolasi dan atomik dari transaksi. Sifat atomik dan isolasi sangat penting untuk paralelisme, yang pada akhirnya akan memudahkan kita mengembangkan sebuah aplikasi web yang dapat menangani banyak proses dan pengguna sekaligus.

CouchDB

CouchDB merupakan salah satu basis data NoSQL yang dirancang untuk bekerja sangat baik dengan dunia web. CouchDB:

·         merupakan basis data document-oriented,

·         menggunakan format JSON untuk menyimpan data,

·         menggunakan JavaScript sebagai bahasa untuk mengakses data, dan

·         menggunakan HTTP sebagai API penghubung.

Keempat hal di atas menyebabkan CouchDB sangat cocok dan mudah diadopsi untuk pengembangan web. HTTP merupakan bahasa universal dalam web, dan JSON merupakan format pertukaran data yang dapat dimengerti oleh mayoritas bahasa dan sistem yang digunakan untuk mengembangkan web.

Komentar

Postingan populer dari blog ini

ISTILAH ISTILAH BASIS DATA

MENGENAL ISTILAH CSS

MENGENAL ISTILAH JAVASCRIPT