Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Mengenal MongoDB, Open Source Database NoSQL Document-Oriented

image

Mungkin sebagian Anda masih belum tahu, apa itu MongoDB, apakah sebuah RDBMS seperti halnya MySQL atau bukan ya? Dengan performa lebih cepat dibandingkan MySQL, MongoDB menawarkan sesuatu yang lain. Adapun nama-nama besar Foursquare, Disney, Forbes, Sourceforge ataupun Github telah menggunakannya. Penasaran? Yuk kita berkenalan lebih jauh dengan MongoDB, siapa tahu ke depannya bisa menjadi alternatif yang bisa Anda gunakan.

Sekilas Tentang NoSQL

Sebelum lanjut, kita perlu kenali terlebih dahulu konsep NoSQL. Buat apa? Pertanyaan yang bagus. NoSQL (singkatan dari Not Only SQL) sendiri adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS ataupun ODBMS. Perbedaan utamanya sendiri yaitu karena tidak mengenal istilah relation dan tidak menggunakan konsep schema. Kalau biasanya Anda menggunakan query ‘Join’ di sini Anda tidak bisa menggunakannya karena setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya alias independen.

Selain itu kalau di dalam konsep DBMS biasanya sebelum insert data Anda diharuskan untuk mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya, di konsep NoSQL ini Anda bisa menyimpan data tanpa perlu mendefinisikan tipe data dan ukurannya lagi. Jadi lebih fleksibel bila ada perubahan di masa mendatang.  Adapun beberapa database NoSQL yang ada saat ini yaitu Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya. Tentunya yang akan kita bahas di sini secara khusus adalah MongoDB.

Apa Itu MongoDB?

MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++. MongoDB sendiri sudah dikembangkan oleh 10gen sejak Oktober 2007, namun baru dipublikasikan pada Februari 2009. Selain karena performanya  4 kali lebih cepat dibandingkan MySQL serta mudah diaplikasikan, karena telah tergabung juga sebagai modul PHP.

Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection (ibaratnya tabel), document (ibaratnya record). Data modelnya sendiri disebut BSON dengan struktur mirip dengan JSON. Strukturnya cukup mudah dibaca, contohnya seperti ini.

{
"nama" : "budi",
"kontak" : {
"alamat" : "Jl. Mawar No. 15",
"kota" : "Jakarta",
"kodepos" : "12345",
"telp" : "081234567",
}
}

Dengan konsep key-value yang ada pada MongoDB, setiap document otomatis memiliki index id yang unik. Hal ini membantu mempercepat proses pencarian data secara global.

Kelebihan MongoDB

MongoDB hadir dengan beberapa kelebihan yaitu :
  1. Performa yang ditawarkan MongoDB lebih cepat dibandingkan MySQL ini disebabkan oleh memcached dan format dokumennya yang berbentuk seperti JSON
  2. Replikasi, adalah fitur yang sangat bermanfaat untuk backup data secara realtime. MongoDB sangat cocok digunakan untuk portal berita ataupun blog, namun belum cocok untuk digunakan pada sistem informasi yang berkaitan dengan keuangan karena MongoDB tidak mendukung transaction SQL
  3. Auto-sharding, merupakan fitur untuk memecah database yang besar menjadi beberapa bagian demi optimalisasi performa database. Penggunaannya sendiri sangat berguna ketika Anda memiliki website dengan database yang jutaan baris, sharding akan membantu memecahnya menjadi beberapa bagian
  4. MongoDB juga sudah mendukung C, C++, C#, Erlang, Haskell, Java, JavaScript, .NET(C# F#, PowerShell), Lips, Perl, PHP, Python, Ruby dan Scala
  5. Cross-platform, sehingga dapat digunakan di Windows, Linux, OS X dan Solaris
  6. Proses CRUD (Create, Read, Update, Delete) terasa sangat ringan
  7. Map/Reduce, akan sangat membantu ketika kita melakukan operasi agregasi. Dimana semua entry datangnya dari collection dan outputnya pun akan menjadi collection juga. Kalau di MySQL biasanya kita menggunakan query GROUP BY
  8. GridFS, spesifikasi yang digunakan untuk menyimpan data yang sangat besar

Instalasi MongoDB

Sebagai contoh kali ini, kita akan mencoba untuk menginstalasi MongoDB di Windows. Sebelum memulai, Anda harus mengunduh dari link berikut ini (tersedia untuk 32-bit dan 64-bit) : http://www.mongodb.org/downloads

Setelah diunduh silahkan diekstrak di drive C (bisa juga di drive lainnya). Buatlah folder sebagai lokasi penyimpanan database misalnya folder DB, dengan path seperti ini :

C:\Mongo\DB

Setelah folder di atas dibuat, lalu buka command prompt dan ketikkan perintah berikut ini:

C:\Mongo\bin>mongod –dbpath=C:\Mongo\DB

Perintah di atas digunakan untuk menjalankan MongoDB, jangan tutup jendela command prompt, tapi buka 1 lagi yang baru ( jadi ada 2 jendela command prompt dibuka). Ketik perintah berikut ini :

C:\Mongo\bin>mongo
MongoDB shell version: 1.8.2
connecting to: test
>
Untuk melihat database apa saja yang ada di MongoDB, ketikkan perintah berikut :

> show dbs;

Ingin menambahkan database baru? Coba ketik perintah ini (Anda dapat mengubah nama ‘universitas’ sesuai dengan nama yang Anda inginkan) :

> use universitas
switched to db universitas

Sekarang Anda sudah punya database universitas, sekarang saatnya kita membuat collection (bisa dianggap tabel), caranya cukup mudah tak perlu membuat tipe data ataupun panjang data. Cukup ketik perintah seperti berikut ini :

> db.mahasiswa.save({nama:’Budi’,NIM:’09136363',jurusan:’Sistem Informasi’,Fakultas:’Teknologi Informasi’})

Dari perintah di atas kita sudah memiliki 1 data mahasiswa yaitu Budi. Intinya ketika kita membuat collection baru, kita juga sudah memiliki 1 data. Selanjutnya Anda bisa menambah data baru lagi, dengan perintah insert seperti ini :

> db.mahasiswa.insert({nama:’Ani’,NIM:’09325336',jurusan:’Sistem Infomasi’,Fakultas:’Teknologi Informasi’})

Berarti kita sudah punya 2 baris data, nah Anda juga bisa menampilkan data yang sudah Anda simpan tadi dengan perintah berikut :

> db.mahasiswa.find()

Maka datanya akan tampil seperti ini :

{ “_id” : ObjectId(“459c98a2d342c633c50c8eaa”), “nama” : ”Budi”, “NIM” :”09136363?, “jurusan” : “Sistem Informasi”, “Fakultas” : “Teknologi Informasi” }
{ “_id” : ObjectId(“459c995fd342c633c50c8eab”), “nama” : “Ani”, “NIM” : “09325336?, “jurusan” : “Sistem Informasi”, “Fakultas” : “Teknologi Informasi” }

Nah, kok tiba-tiba muncul id ya? Kalau di MySQL itu namanya Primary Key yang harus dibuat, tapi di MongoDB, id muncul otomatis berikut datanya.
Selanjutnya kita akan mencoba untuk mengedit data, coba ketik perintah ini :

> person=db.mahasiswa.findOne({NIM:'09136363'})
{
"_id" : ObjectId("459c98a2d342c633c50c8eaa"),
"nama" : "Budi",
"NIM" : "09136363",
"jurusan" : "Sistem Informasi",
"Fakultas" : "Teknologi Informasi"
}
> person.jurusan='Teknik Informatika'
> db.mahasiswa.save(person);

Sedangkan perintah untuk menghapus data bisa dengan cara seperti ini :

db.mahasiswa.remove({NIM:'09136363'})

Cukup sederhana bukan? Nah lain waktu akan kita bahas lebih dalam lagi, selamat mencoba.

(thePinkFighter)

Tanggapan

  • Belakangan baru coba-coba sih. cuman masih belum bisa intgerasi dengan PHP, gagal konfigurasi. :(
    Btw, makasih penjelasan dan sedikit turorialnya.
    =D>
  • @^ hooh sama... pernah kenalan bentar.... tpi ga di terusin. :D
  • Diterusin aja dong, kalo skrg mongodb uda mulai jadi next LAMP - linux, apache, mongodb, php :D
    Gampang kok emang susahnya di mana mr Mockie?
  • edited December 2011
    heheh bisa aja, mysqlnya di singkirin.... bingung mas... ini kan bukan relational databse yah.. trus kalo ada data yg di rubah semisalkan nama author artikel nya, berarti harus ngerubah di semua record artikel yah?
  • keren nih om :D

    sekalian tutornya kalo dipake buat php kaya gimana dong hehe
    belum sempet buka php manual buat mongodb
  • kalo mau ngerubah struktur tabelnya gimana om... contohnya kita lupa, setelah nama harusnya kita ngisi alamat dulu. terus apakah pas mau nyimpen di penyimpanan berikutnya langsung aja di tambahin alamat? atau gimana? terus gimana kalo suatu saat kita lupa susunan penyimpanan nya yang harusnya jurusan dulu kita malah nulis faktultas dulu apa tidak berpengaruh.
  • untuk koneksi mongodb dengan PHP , bisa di lihat cara instalasi mongodbb driver untuk PHP di sini : http://blog.develio.us/index.php/2011/12/21/installasi-mongodb-driver-untuk-php-pada-server-centos/ , maaf saya pakenya linux centos bukan windows :D
  • heheh bisa aja, mysqlnya di singkirin.... bingung mas... ini kan bukan relational databse yah.. trus kalo ada data yg di rubah semisalkan nama author artikel nya, berarti harus ngerubah di semua record artikel yah?
    Nah itu juga sih masih saya pikirin juga :D
    Sempet perkenalan sebentar, mungkin kalo sudah ada waktu banyak bisa dilanjutin lagi
  • Kang TS, jgn keburu2. Mongodb nanti maju ke depan.
    Di company ane lagi buat portal berita, combine oracle 11g R2 dengan mongodb dengan java

    Sitenya masih beta. Kalo mau liat hasilnya di http://beta.iyaa.com

    Untuk instalasi mongodb di http://www.myee.web.id/?p=685 untuk centos
Sign In or Register to comment.