Repost dari artikel saya di PC Mild 23/2010
Database menjadi bagian penting dalam sebuah aplikasi. Kegunaan utamanya adalah menyimpan berbagai data dinamis dari aplikasi tersebut. Salah satu kendala dalam penggunaan RDBMS (Relational Database Management System) seperti MySql dan SQL Server adalah kesulitannya dalam membuat struktur penyimpanan data yang tidak tabular dan dengan field yang mudah berubah.
Beberapa kendala lain yang ditemukan dalam RDBMS membuat para developer menciptakan suatu DBMS yang tidak bergantung pada struktur tabel dan syntax SQL. MongoDB adalah salah satu DBMS NoSQL berbasis document-oriented yang sedang berkembang pesat saat ini, karena juga berbasis open source. Untuk lebih jelasnya bisa mengunjungi website resminya di http://www.mongodb.org.
Berikut ini adalah sekilas bagaimana cara menggunakan MongoDB dengan bahasa Java.
- Download program mongoDB di website resminya, http://www.mongodb.org/downloads, pilih platform yang digunakan. Dalam artikel ini penulis menggunakan platform Windows 7 64-bit, tetapi program yang tersedia dalam CD adalah untuk Windows 32-bit. Platform lain yang tersedia adalah OS X (Mac), Linux, dan Solaris. Anda juga bisa mendownload source code-nya jika ingin mempelajarinya.
Tampilan website download MongoDB
- Sebelum menjalankan program mongoDB server, pertama-tama siapkan folder “
data\db
” pada drive C Anda. Secara default MongoDB akan menyimpan seluruh data di folder tersebut. - Setelah itu, extract program dalam MongoDB ke folder “
C:\mongoDB
”. Untuk menjalankan server MongoDB, jalankan file “mongod.exe
”. Sebuah jendela terminal akan muncul menandakan bahwa server telah berjalan. Anda bisa mencobanya dengan menjalankan client MongoDB dengan menjalankan file “mongo.exe”. Ketik “help” untuk bantuan.Console MongoDB Server
- Sebelum menggunakan MongoDB pada program Java Anda, pertama-tama download terlebih dahulu driver yang disediakan. Ketika artikel ini ditulis, driver MongoDB untuk Java tersedia dalam versi 2.3. Driver ini berfungsi untuk menghubungkan MongoDB dengan bahasa pemrograman yang digunakan. Driver untuk Java bisa didownload pada https://github.com/mongodb/mongo-java-driver/downloads atau tersedia dalam CD.
- Install driver tersebut dalam project program Anda. Cara instalasinya berbeda-beda, tergantung IDE (Integrated Development Environment) apa yang Anda gunakan. Dalam artikel ini menggunakan NetBeans IDE versi 6.9.1. Caranya adalah dengan mengklik kanan project, pilih Properties, lalu masuk pada menu libraries. Tambahkan file jar dari driver dengan cara mengklik tombol Add Jar/Folder. Anda bisa langsung menggunakan source code pada CD untuk mencobanya.
Instalasi driver MongoDB melalui NetBeans
- Langkah berikutnya adalah membuat koneksi. Koneksi antara program Java dengan database dapat dengan mudah dibuat. Class yang merepresentasikan koneksi adalah
com.mongodb.Mongo
. Jika Anda menggunakan MongoDB dalam satu komputer yang sama dengan program Java Anda, maka tidak perlu menentukan host dan port yang digunakan. Jadi pembuatan koneksinya adalah cukup dengan membuat object dari class Mongo. Perlu diketahui bahwa ada beberapa Exception yang harus dideklarasikan dalam try-catch-nya, yaitucom.mongodb.MongoException
danjava.net.UnknownHostException
.import com.mongodb.Mongo; //...kode lain Mongo mongo = new Mongo(); // atau new Mongo("host:port");
- Setelah koneksi terbentuk, langkah berikutnya adalah menentukan database yang digunakan. Jika dengan MySQL Anda harus membuat terlebih dahulu database-nya melalui client atau phpMyAdmin, dengan MongoDB, jika database belum pernah dibuat, maka secara otomatis MongoDB akan membuatkannya. Dalam driver Java, database direpresentasikan dalam class
com.mongodb.DB
. Karena itu, cukup membuat object dari class DB tersebut, kemudian mendapatkan data DB dari koneksi yang sudah ada.import com.mongodb.Mongo; import com.mongodb.DB; //...kode lain Mongo mongo = new Mongo(); DB db = mongo.getDb("rumahsakit");
- Bisa dibilang, dalam MongoDB ini tabel dinyatakan dengan nama
Collection
, yaitu record-record yang tergabung menjadi satu kumpulan. Collection ini bisa didapatkan dari fungsi object databasegetCollection()
, dan disimpan sebagai representasi classcom.mongodb.DBCollection
. Bagi yang terbiasa menggunakan MySQL, anggap saja ini untuk mendapatkan tabel yang akan dimanipulasi.import com.mongodb.Mongo; import com.mongodb.DB; import com.mongodb.DBCollection; //...kode lain Mongo mongo = new Mongo(); DB db = mongo.getDb("rumahsakit"); DBCollection collection = db.getCollection("dokter");
- Record dalam MongoDB disebut dengan
document
. Setiap document merupakan bagian dari Collection. Dengan menggunakan driver Java, document direpresentasikan dalam interfacecom.mongodb.DBObject
. Karena itu adalah sebuah interface, maka Anda tidak dapat secara langsung menggunakannya, namun biasanya dengan membuat class yang mengimplementasikan interface tersebut. Namun Anda tidak perlu membuatnya, karena dapat juga menggunakan classcom.mongodb.BasicDBObject
. Untuk menambahkan document ke dalam collection, buat saja sebuah object dariBasicDBObject
. Untuk mengatur field yang akan diisi, gunakan methodput()
. Kemudian untuk menambahkannya ke dalam collection, gunakan methodinsert()
.BasicDBObject object = new BasicDBObject(); object.put("id", "310710040"); object.put("nama", "Muhammad Fauzil Haqqi"); collection.insert(object); //didapatkan dari kode sebelumnya
- Setelah data dimasukkan, untuk mengambilnya dapat menggunakan method
find()
pada object collection. Nilai kembali dari method ini adalah classcom.mongodb.DBCursor
, sebuah class yang mirip dengan Iterator, sehingga Anda bisa menelusurinya satu-persatu seperti kode berikut ini.ArrayList list = new ArrayList(); DBCursor cursor = collection.find(); while (cursor.hasNext()) { DBObject object = cursor.next(); list.add(object); }
- Untuk mengubah nilai dalam document tersebut, dapat menggunakan method
update()
dari collection. Method ini memiliki 2 parameter, yaitu parameter pertama untuk kriteria (hampir sama seperti WHERE pada SQL), sedangkan parameter kedua adalah document baru yang dimasukkan. Kedua parameter tersebut adalah object dari class DBObject.BasicDBObject kriteria = new BasicDBObject(); kriteria.put("id", "310710040"); BasicDBObject object = new BasicDBObject(); object.put("id", "310710040"); object.put("nama", "Muhammad Fauzil Haqqi"); collection.update(kriteria, object);
- Untuk menghapus document, hampir sama dengan cara mengupdate. Hanya saja method yang digunakan adalah
remove()
. Hampir sama seperti syntax SQL DELETE, method ini menerima kriteria document yang akan dihapus, namun dalam bentuk object dari class DBObject.BasicDBObject kriteria = new BasicDBObject(); kriteria.put("id", "310710040"); collection.remove(kriteria);
- Untuk menutup koneksi MongoDB, cukup menggunakan object koneksi Mongo sebelumnya, lalu memanggil method
close()
.mongo.close();
- Beberapa hal lain yang penting Anda ketahui tentang MongoDB adalah:
- MongoDB secara otomatis akan membuatkan Database, Collection, Document, beserta field di dalamnya jika Anda belum pernah membuatnya. Dengan demikian Anda tidak perlu membuat batch SQL yang begitu panjang untuk persiapan membuat database.
- Setiap document yang dibuat dalam MongoDB akan selalu memiliki index id yang unik. Hal ini secara global dapat mempercepat proses pencarian data.
- MongoDB lebih mudah diimplementasikan dalam database berukuran besar yang terpisah dalam banyak server. Berbeda dengan RDBMS yang cukup sulit dalam melakukan konfigurasinya.
- MongoDB tetap dapat membuat record yang berelasi terhadap record lainnya.
Mudah bukan? Selamat mencoba.
Download source code secara keseluruhanArtikel ini telah dipublikasikan di media cetak tabloid PC Mild edisi 23 tahun 2010 lalu.
Salam kenal nih buat mas Haqqi. Artikelnya bagus dan sangat membantu.
Sebelumnya saya juga sudah baca artikel mas Haqqi di PCMedia. Mas Haqqi mengatakan ada contoh/artikel mengenai mongoDB yang menggunakan PHP di blog ini. Tapi kok saya gak nemu ya. Mohon petunjuknya, hehe
eh, akhirnya ada yang komen juga tentang ini. hehe.. memang belum saya post di sini. nunggu komentar kayak gini dulu. biar tahu ada yang bener2 baca artikel saya apa nggak. hehe.. tunggu ya..
Ooo, gt tho.
hahaha, OK saya tunggu artikelnya
Sukron mas Haqqi, MongoDB Is the best, tetapi masih butuh banyak pembenahan, by the way, mas haki saya mau bertanya nie, klw mau buat reportnya pake iReport dengan RDBMS MongoDB bagaimana ya ?
maklum mas masih newbie …. hehehhehe
saya nyasar kesini sewaktu lagi cari artikel tentang java.
java itu apa y
Supperrr broo..
thx utk ilmunya..
main” ke tmpat saya..
makasih buat tutorialnya. sekarang lagi nyoba pakai mongodb ini buat tugas kuliah.
wah, mantab!