Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [3] – Database Migration


Database Migration

Database Migration

kerja bareng temen, trus dapat update code baru dari temen, pas di-running, eh error TABLE NOT FOUND, *tonjoktemennya* gara2 gak bilang2 bikin table baru

ini biasa terjadi kalo bikin project bareng2 lebih dari satu orang, kalo komunikasinya gak bagus, bisa miss informasi, dan developer lain bisa kena masalah kayak ini

solusinya gimana?Β  Baca lebih lanjut

Pessimistic VS Optimistic Locking


guys, malam ini saya mau bagi2 daging (baca: ilmu) nih, seputar database, pessimistic dan optimistic locking.

#PessimisticLocking

langsung aja ke contoh kasus:
– ada sebuah aplikasi inventory, dimana bisa diakses oleh beberapa user secara bersamaan
– misal saat ini sedang diakses oleh 2 user, user A dan user B

mereka berdua melakukan hal ini secara bersamaan :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

A refresh data barang, yang didapat Dodol Subang 😦
B refresh data barang, yang didapat Dodol Subang πŸ˜€

kasus diatas dinamakan pessimistic locking, yang artinya siapa yang terakhir mengubah data barang, maka dia yang menang! #yeah!!!

apakah ada yang salah? sebenarnya gak ada yang salah, cuma secara kode etik (alah ngomong apa sih) sebenarnya bermasalah, ketika sebelum si B mengubah nama barang menjadi Dodol Subang, dia seharusnya tahu kalo nama barang telah berubah ke Dodol Garut, dengan begitu ada kemungkinan dia tidak akan jadi mengubah data nama barang tersebut.

#OptimisticLocking

berbeda dengan pessimistic locking, di Optimistic Locking, siapa yang mengubah pertama kali, maka dialah yang menang, yang terakhir mengubah, dia harus tahu dulu kalo sudah terjadi perubahan.

Jadi jika menggunakan Optimistic Locking kejadiannya akan seperti ini :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

B mendapatkan error, dan diberitahu kalo data sudah berubah
A senang πŸ˜€

#Contoh
berikut adalah contoh framework yang support optimistic locking :
– Hibernate Framework
– Java Persistence API
– …. silahkan sebutkan di komentar πŸ˜€

Jedis, Manajemen Transaksi di Redis


Tidak hanya database relational yang memiliki fitur transaksi. Redis juga memiliki fitur transaksi. Bagi yang tidak tahu apa itu transaksi, transaksi adalah melakukan lebih dari satu operasi, dimana transaksi dianggap berhasil jika semua operasi berhasil, dan transaksi dianggap gagal, walaupun hanya ada satu operasi yang gagal. Jika transaksi gagal, maka semua operasi harus dibatalkan. Baca lebih lanjut

Chive, MySQL Database Management Tool, Kompetitornya PhpMyAdmin


Hampir kebanyakan yang pake CPanel pasti pake PhpMyAdmin untuk melakukan proses management database MySQL. Bahkan lucunya, ada yang bilang, “saya menggunakana database phpmyadmin” πŸ˜€ Hehehe…

Chive merupakan sistem database management tool yang berbasis web, sama seperti dengan phpmyadmin. Dari segi fasilitas Chive hampir sama dengan fasilitas-fasilitas yang dimiliki oleh phpmyadmin. Bahkan dari segi design, chive lebih mewah dibandingkan phpmyadmin πŸ˜€ Namun salah satu kekurangan chive adalah ada di fasilitas export, chive tidak bisa export menjadi PDF, Excel dan file lainnya seperti phpmyadmin, chive hanya bisa export menjadi data sql saja.

Berikut ini adalah tampilan chive yang berjalan di komputer local saya :

 

Chive

Chive

Baca lebih lanjut

Instalasi Apache Cassandra di Linux


To de point aja, tidak usah dibahas apa itu cassandra, kenapa menggunakan cassandra dan sebagainya, jika ingin lebih jelas, silahkan liat website cassandranya diΒ http://cassandra.apache.org/.

Pertama download Apache Cassandra diΒ http://cassandra.apache.org/download/, download versi yang terbaru. Saya menggunakan versi 7 (walaupun saat ditulis artikel ini masih belum full release). Setelah itu ekstrak apache cassandranya ke lokasi direktori yang sesuai dengan yang anda inginkan.

Setelah itu masuk ke dalam direktori tempat menginstall cassandra tersebut melalui terminal / command . Setelah itu ketikkan perintah :

./bin/cassandra -f

Biarkan sampai selesai, jika terjadi error, artinya anda harus menjalankannya sebagai root atau administrator. Setelah selesai, maka program cassandra berhasil berjalan.

Untuk menjalankan aplikasi client cassandra, kita dapat menggunakan perintah :

./bin/cassandra-cli --host localhost --port 9160

localhost dan 9160 dapat anda ganti dengan nama host tempat terinstallnya cassandra, dan port yang digunakan untuk menjalankan cassandra server. Selamat mencoba.

Instalasi Apache CouchDB di Ubuntu


Apache CouchDB

Apache CouchDB

Apa itu Apache CouchDB? Apache CouchDB Merupakan salah satu database NoSQL yang berbasis dokumen. Apache CouchDB hampir sama dengan MongoDB, namun hal yang menjadikan Apache CouchDB setingkat dibawah MongoDB adalah Apache CouchDB tidak memiliki fasilitas Auto-Sharding seperti MongDB (saat ditulisnya artikel ini).

Pada artikel ini saya akan menjelaskan tentang tahapan instalasi Apache CouchDB pada sistem operasi Ubuntu? Kenapa Ubuntu? Karena saya menggunakan Ubuntu πŸ˜€ Dan sampai saat ini saya masih merasa puas menggunakan Ubuntu πŸ˜€

Menginstall Dependensi

Sebelum menginstall Apache CouchDB, hal pertama yang diperlukan adalah menginstall seluruh software-software yang diperlukan untuk melakukan proses kompilasi source Apache CouchDB. Ubuntu memberi kemudahan jika kita akan menginstall seluruh software dependensi Apache CouchDB, kita hanya perlu menggunakan perintah : Baca lebih lanjut

Pengenalan MongoDB untuk Pengguna Relational-DBMS


MongoDB

MongoDB

Pada artikel saya akan membahas tentang MongoDB sebuah sistem basis data yang menganut paham NoSQL. NoSQL itu bukan berarti anti menggunakan SQL (No-SQL), tapi NoSQL itu singkatan dari Not Only SQL. Artinya sebuah sistem basis data tidak hanya harus menggunakan perintah SQL untuk melakukan proses manipulasi data.Β Kali ini saya akan membahas MongoDB dari sudut pandang pengguna sistem basis data relasional seperti MySQL, Oracle dan sejenisnya.

Apa itu MongoDB

MongoDB merupakan sebuah sistem basis data yang berbasis dokumen (Document Oriented Database). Bagi pengguna RBDMS mungkin agak membingungkan, karena dalam MongoDB tidak ada yang namanya tabel, kolom dan baris. Dalam MongoDB yang ada hanyalah koleksi dan dokumen.Β Koleksi dalam MongoDB bisa kita anggap sebuah Folder (Directory) dan Dokumen bisa kita anggap berkas (File) dalam Folder (Koleksi) tersebut. Baca lebih lanjut

Model BasisΒ Data


Tahukan anda bahwa sebenarnya model basis data itu bukan hanya RELATIONAL. Sebenarnya banyak sekali model basis data, namun memang yang paling banyak digunakan itu yang RELATIONAL dan biasanya dikampus-kampus hanya diajarkan materis relational database. Untuk mengetahui model-model basis data apa aja yang ada, temen-temen bisa cek disini :

http://en.wikipedia.org/wiki/Database_model

Selemat belajar πŸ˜€