Wednesday, June 8, 2016

Perintah Dasar Pada mongodb


Assalamualaikum, wah lelah juga seharian berpusing ria ngoprek kerjaa yang sepertinya tidak ada habisnya, sekedar rehat saya coba menulis singkat tentang MongoDB, kali ini saya akan membahas peritah" dasar yang biasanya digunakan pada mongodb, baiklah langsung saja pada pembahasan.

CREATE DATABASE
Tidak jauh beda dengan database lain semisal RDBMS, perintah" dasar seperti create database, drop database dll agak sedikit mirip.
Untuk membuat sebuah database baru pada mongodb agak sedikit beda, justru sebenarnya bahkan kita tidak perlu mengcreatenya, contohnya setelah kita masuk kedalam console databasenya dan gunakan perintah berikut

>use mydb
switched to db mydb

Secara default proses yang terjadi adalah sebagai berikut
- mengecek apakah database ada, jika ada masuk kedalam database
- jika database yang dimaksud tidak ada maka secara otomatis mongodb akan melakukan create database untuk kita dan masuk kedalam database tersebut, wow baik sekali...

untuk memasitikan kita menggunakan database yang benar sesuai yang kita maksud maka perintah simplenya adalah sebagai berikut :
>db
mydb
Nah, jika seperti diatas maka benar kita berada pada database mydb.
Kita juga dapat mengecek seluruh database pada repo mongodb berserta sizenya, dengan perintah berikut
>show dbs
local 0.78125GB
test 0.23012GB
atau gunakan perintah show databases yang akan menghasilkan output yang sama.
ada sedikit hal yang berbeda pada mongodb ini, ketika kita melihat database yang ada pada system kita dan sebenarnya sudah terbentuk, tapi mengapa tidak muncul pada saat kita menjalankan perintah diatas? jawabannya mudah, semua database yang ditampilkan hanya database yang setidaknya memiliki 1 document didalamnya.

yuk kita buktikan.
>db.movie.insert({"name":"tutorials mongodb"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
nahkan, database yang tadi kita harapkan kehadirannya akhirnya muncul juga...
Secara default database pada mongodb adalah test, jadi jangan lupa mengganti database yang aktif dengan perintah use NAMA_DATABASE. karena kalau tidak data apapun yang kita masukkan akan disimpan kedalam database test.

DROP DATABASE
Untuk menghapus database dari system kita juga semudah membuatnya, tapi pastikan database yang kita akan hapus tidak ada data penting yang pada akhirnya kita akan menyesal telah melenyapkan keberadaannya, karena penyesalan selalu datang terlambat sobat :(.
Tapi sudahlah yang lalu biarkan berlalu nanti kita buat database baru hahaha...

Perintah dasar untuk menghapus database pada mongodb adalah sebagai berikut :
db.dropDatabase()
Perintah diatas hanya akan menghapus database yang aktif, akan tetapi jika sebelumnya kita tidak memilih database manapun, maka secara default akan menghapus database test yang merupakan database default.

Contoh :
kita akan menghapus database mydb yang tadi kita buat, tapi alangkah baiknya sebelum melenyapkannya kita berpamitan terlebih dahulu dengan mengecek keberadaannya
>show dbs
  local 0.78125GB
   mydb 0.23012GB
   test 0.23012GB
>
untuk lebih meyakinkan lagi, mari kita pilih mydb sebagai database aktif atau gunakan perintah db untuk mengetahui apakah database tersebut merupakan database aktif atau bukan.

Nah, jika ternyata yang dimaksud ada, maka langsung saja kita hapus tanpa ragu
>use mydb
   switched to db mydb
>db.dropDatabase()
>{ "dropped" : "mydb", "ok" : 1 }
>
Akhirnya... berhasil juga kita menghapusnya dari system kita, tapi tidak dalam kenangan kita bersamanya :(...

Cek kembali list database kita saat ini :
>show dbs
   local 0.78125GB
   test 0.23012GB
>

Yippy berhasil.

CREATE COLLECTIONS
Seperti yang kita ketahui dalam sebuah RDBMS ada database yang berisi banyak table, table yang berisi banyak record dan field. Pada mongodb kita tidak akan menemukan istilah table, disini yang ada hanyalah collections yang sebenarnya sama saja dengan table.

Perintah dasar membentuk sebuah tabel seperti berikut
db.createCollection(name, options)
pada perintah diatas ada name dan options, name merupakan nama dari collection yang akan kita buat, sedangkan option adalah document dan digunakan untuk menspesifikasikan konfigurasi pada collection.

Parameter             Type                 DescriptionName                      String               Name of the collection to be created
Options                   Document        (Optional) Specify options about memory size and indexing

Mulai faham atau semakin membingungkan? berikut penjelasan tambahan terkait options

Field                      Type                  Description
capped                   Boolean             (Optional) If true, enables a capped collection.
                                                        Capped collection is a collection fixed size collecction
                                                        that automatically overwrites its oldest entries
                                                        when it reaches its maximum size.
                                                        If you specify true, you need to specify size parameter also.

autoIndexID          Boolean             (Optional) If true, automatically create index on _id field.s
                                                        Default value is false.
size                        number              (Optional) Specifies a maximum size in bytes for a capped
                                                         collection. If If capped is true, then you need to specify
                                                        this field also.
max                       number              (Optional) Specifies the maximum number of documents
                                                        allowed in the capped collection.

Maaf masih dalam bahasa inggris (sedang malas mentranslate-kan) :D

Contoh :
>use test
   switched to db test
>db.createCollection("mycollection")
  { "ok" : 1 }
>
kita dapat melakukan pengecekan terhadap collections yang kita miliki dengan perintah dibawah ini
>show collections
  mycollection
  system.indexes
Berikut contoh advanced create collection dengan dengan tambahan beberapa options penting :
>db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
  { "ok" : 1 }
>
Sebenarnya dimongodb kita bahkan tidak perlu melakukan create collections sebelumnya, semua akan mengalir dengan apa adanya alias otomatis ketika kita insert documents
>db.tutorialspoint.insert({"name" : "tutorialspoint"})
>show collections
   mycol
   mycollection
   system.indexes
   tutorialspoint
>
DROP COLLECTIONS
Membuat memang semudah membalikkan telapak tangan, bahkan tanpa command create collection pun kita bisa membuat collection secara otomatis, tapi bagaimana cara menghapusnya?
perintah dasarnya adalah db.COLLECTION_NAME.drop() 
contoh :-

Pertama, Cek collections 
>use mydb
   switched to db mydb
>show collections
   mycol
   mycollection
   system.indexes
   tutorialspoint
>
Selanjutnya Drop Collections
>db.mycollection.drop()
  true
>

sebenarnya langkah cek collection tidak perlu ada, hanya untuk memastikan saja.

Sekian perintah dasar untuk database Mongodb yaitu Create (database, collection & document) serta drop (database, collection & document).

Terimakasih atas perhatiannya, sampai jumpa diartikel" berikutnya...

SEMANGAT!!!

Tuesday, June 7, 2016

MongoDB Data Modeling

Kali ini kita akan sedikit membahas tentang MongoDB data modeling, perbedaannya yang mencolok dengan RDBMS pada umumnya. serta perbedaan struktur datanya.

Data pada mongodb memiliki flexibilitas scheme yang berbeda dengan RDBMS dimana scheme.document pada collection yang sama tidak membutuhkan sama sekali field struktur dan dalam satu field pada collection yang sama bisa terdapat beberapa type data yang berbeda.

BEBERAPA PERTIMBANGAN KETIKA MERANCANG SCHEME PADA MONGODB
  • Desain Scheme yang diinginkan berdasarkan kebutuhan
  • Kombinasikan Object kedalam satu document jika anda ingin menggunakannya secara bersamaan, atau anda dapat memisahkannya jika tidak terlalu mendesak (tapi pastikan anda tidak membutuhkan join)
  • Duplikat data (tapi batasi dalam taraf wajar) karena ukuran space yang kecil akan mempercepat proses pengelolaan data
  • Lakukan Join hanya pada proses penulisan data, bukan saat membaca data.
  • Optimalkan skema untuk collection yang paling sering digunakan.

Contoh :
Kita membutuhkan database desain untuk blog kita ini, dan lihat perbedaan antara desain schema database RDBMS dan Mongodb dengan requirement berikut :
  • Setiap Post memiliki ID title, description dan url yang unik.
  • Setiap Post dapat memiliki satu atau lebih tags.
  • Setiap Post memiliki nama dari penulisnya dan total like pada artikelnya.
  • Setiap Post memiliki komentar dengan menuliskan nama, komentar, data-time dan like dari mereka.
  • Setiap Post boleh tidak memiliki komentar satupun.

pada RDBMS kita dapat membuat desain schemenya sebagai berikut


Tapi dengan mongodb kita dapat membuat desain schemenya hanya dalam satu collection lebih simple seperti ini :
{
    _id: POST_ID
    title: TITLE_OF_POST,
    description: POST_DESCRIPTION,
    by: POST_BY,
    url: URL_OF_POST,
    tags: [TAG1, TAG2, TAG3],
    likes: TOTAL_LIKES,
    comments: [
       {
           user:'COMMENT_BY',
           message: TEXT,
           dateCreated: DATE_TIME,
           like: LIKES
       },
      {
            user:'COMMENT_BY',
            message: TEXT,
            dateCreated: DATE_TIME,
            like: LIKES
       }
    ]
}
Menarik bukan? ayo tunggu apalagi explorasi mongodb lebih lanjut.

Semangat...

Monday, June 6, 2016

Instalasi Mongodb pada Ubuntu Linux

http://ngulikmongo.blogspot.co.id/2016/06/instalasi-mongodb-pada-ubuntu-linux.html


Menyambung artikel sebelumnya Instalasi Mongodb pada OS Windows, maka kali ini kita akan membahas bagaimana instalasi pada OS Ubuntu Linux.
Pertamakali yang harus kita lakukan adalah import MongoDB public GPG Key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

buat file /etc/apt/sources.list.d/mongodb.list menggunakan perintah berikut pada terminal
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee
/etc/apt/sources.list.d/mongodb.list

Langkah selanjutnya, update repository ubuntu
sudo apt-get update
Lalu install mongodb
apt-get install mongodb-10gen=3.2.6
Setelah proses instalasi selesai, berikutnya kita jalankan service mongodb dengan perintah berikut
sudo service mongodb start
Untuk menghentikan(stop) mongodb service dapat dilakaukan dengan simple command berikut
sudo service mongodb stop
Dan perintah untuk restart service dapat dilakukan dengan perintah berikut
sudo service mongodb restart
ketika kita akan menggunakan mongodb console, maka kita dapat memanggilnya dengan perintah berikut pada terminal
mongo
Baiklah selesai sudah instalalsi mongodb pada Ubuntu Linux, pada artikel berikutnya akan kita bahas tentang manual penggunaan dan security dari database mongodb, simak terus.

Selamat Beraktifitas...

Instalasi Mongodb pada windows


Assalamualaikum...

Wah tak terasa sejak blog ini saya buat belum sempat untuk menuliskan kembali, tak terasa 4 tahun sudah sejak blog ini saya release dan tidak produktif, sampai sampai lupa jika memiliki blog ini hahahaa...

Baiklah tanpa panjang lebar, mengingat perkembangan teknologi yang begitu pesat, tak terasa mongodb menjadi salah satu nosql database yang masih sangat diminati, mengingat pertamakali munculnya menjadi sebuah gebrakan teknologi hingga kini menjadi salah satu primadona nosql database dunia, walau banyak database nosql bergulir diluar sana, tapi mongodb rasanya tak tergantikan dengan peningkatan performa dan features yang slalu dikembangkan.

Kita semua sudah tau apa itu nosql, jadi saya beranggapan anda sudah tau dan cukup faham apa itu nosql database, tapi jika tidak dapat merujuk kepada tulisan saya sebelumnya Mengenal Mongodb.
Mongodb sendiri sampai artikel ini saya tulis telah mencapai versi 3.2 dengan peningkatan features dan performa yang cukup signifikan, untuk jelasnya silahkan buka official websitenya

OS yang disupport pada database mongodb hampir mencakup seluruh OS, tapi ada sedikit perbedaan cara instalasinya, karena memang agak berbeda juga system yang digunakan serta binary file yang akan kita eksekusi sebagai installer nantinya.

MENGINSTALL MONGODB PADA WINDOWS
Untuk dapat menginsall mongodb pada windows, terlebih dahulu download release terakhir MongoDB dari link berikut http://www.mongodb.org/downloads, pastikan kita memilih environtmen yang benar dan sesuai dengan versi dari OS Windows kita, untuk mendapatkan OS Version pada windows kita gunakan perintah berikut pada command prompt

C:\>wmic os get osarchitecture
OSArchitecture
64-bit
C:\>
perlu diingat, versi 32bit dari database MongoDB hanya support untuk database yang berukuran kurang dari 2GB dan biasanya hanya digunakan untuk testing dan evaluasi system.

Baiklah, sekarang kita coba extrak terlebih dahulu file hasil download kita (jika berbentuk zip), atau langsung lakukan eksekusi file .msi dan lakukan proses instalasi sampai selesai.
Kita dapat mengekstrak mongodb pada lokasi yang berbeda, tidak harus c:/mongodb atau c:/Program Files/mongodb, caranya dengan menggunakan perintah CD FOLDER/DIR dan setelah berpindah direktory ketempat yang diinginkan, kini kita dapat menjalankan perintah instalasi selanjutnya.

Mongodb membutuhkan folder data untuk menyimpan file databasenya. dan secara default lokasi dari data mongodb terletak pada c:/data/db. sehingga kita perlu membuat folder ini dengan perintah
C:\>md data
C:\md data\db
pada command prompt atau buat secara manual.

jika kita menginstall Mongodb pada lokasi yang berbeda, maka kita harus memberitahukan alternatif dbpath tersebut pada mongod.exe yang merupakan server mongodb.

Pertama, kita harus masuk dahulu kedirektory instalasi mongodb menggunakan command prompt
sebagai contoh instalasi mongodb saya berada pada folder D:\set up\mongodb.
C:\>d:
D:\>cd "set up"
D:\set up>cd mongodb
D:\set up\mongodb>cd bin
D:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data"
setalah mengeksekusi baris perintah terakhir, maka akan muncul pesan waiting for connections, pada output console yang mengindikasikan bahwa mongod.exe telah berjalan dengan success.

Selanjutnya, buka command prompt yang lain dan jalankan beris perintah berikut
D:\set up\mongodb\bin>mongo.exe
MongoDB shell version: 2.4.6
connecting to: test
>db.test.save( { a: 1 } )
>db.test.find()
{ "_id" : ObjectId(5879b0f65a56a454), "a" : 1 }
>
 ini menandakan bahwa mongodb telah terinstall dan berjalan dengan semestinya, selanjutnya jika kita akan menjalankan mongodb maka kita hanya perlu mengeksekusi satu baris perintah
D:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data"
D:\set up\mongodb\bin>mongo.exe

Sekian pembahasan mengenai instalasi mongodb pada os window, lain kesempatan akan kita bahas lebih lanjut instalasi mongodb pada os lainnya seperti ubuntu linux dll.

Happy Coding, Programming is easy...

Tuesday, April 24, 2012

Mengenal MongoDB (tak kenal maka tak sayang)



MongoDB...

awal perjumpaan terasa aneh, Mongodb, dari namanya saja sudah aneh, terlebih ketika tau kl dia masuk keluarga NoSQL, eeeiittss, bukan dibaca "No SQL", tapi "Not Only SQL", aneh bukan???

akhirnya krn kebetulan dipekerjaan harus berhubungan dengan species lain dari database tersebut akhirnya terkesima jg dengan hasil yang didapat dan waw... ternyata mantabs...

y dah lanjut aja, tanpa membuang waktu lama ini dia beberapa penjelasan tentang MongoDB

MongoDB merupakan 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 kami 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.
Jika dibandingkan dengan RDBMS seperti MySQL, Koleksi dapat diibaratkan dengan Tabel dan Dokumen dapat diibaratkan dengan Baris dalam Tabel tersebut. Namun berbeda dengan Baris pada RDBMS, dokumen yang terdapat dalam MongoDB dapat memiliki berbeda atribut dengan dokumen lain walaupun berada dalam satu koleksi. Hal ini tidak dapat dilakukan dalam RBMS dimana sebuah baris dalam Tabel tidak mungkin memiliki kolom yang berbeda dengan baris yang lain jika berada dalam satu tabel.

Bahasa Perintah MongoDB
MongoDB tidak menggunakan bahasa yang biasa digunakan RDBMS (SQL atau PL/SQL). MongoDB menggunakan bahasa BSON, dimana BSON merupakan singkatan dari Binary JSON. Jika Anda terbiasa menggunakan JavaScript, pasti tidak akan terlalu sulit menggunakan MongoDB. Dibawah ini adalah contoh perintah MongoDB untuk menyimpan sebuah data Mahasiswa :
data = {
"nim" : "10106031",
"nama" : "Eko Kurniawan Khannedy"
}

db.mahasiswa.insert(data)
view raw mongodb.js This Gist brought to you by GitHub.

Mengapa MongoDB
MongoDB merupakan sistem basis data yang menggunakan konsep key-value, artinya setiap dokumen dalam MongoDB pasti memiliki key. Hal ini berbeda dalam RDMBS yang kita bisa tidak menggunakan primary key ketika membuat sebuah tabel. Sehingga walaupun kita membuat sebuah dokumen tanpa menggunakan primary key, tapi secara otomatis MongoDB memberinya sebuah key. Penggunaan konsep key-value sangat berperan penting, karena hal ini membuat MongoDB menjadi sistem basis data yang sangat cepat jika dibandingkan dengan non key-value seperti RDBMS.
MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi.
Selain replikasi, MongoDB juga mendukung sharding. Jika Anda pernah melakukan sharding di RDBMS yang sangat berdarah-darah , maka akan sangat kagum dengan sharding di MongoDB. Kapan kita menggunakan sharding? Saat Anda memiliki website yang sudah sangat besar jumlah penggunanya, datanya mencapat jutaan giga byte. Anda dapat menggunakan sharding, misal membasis basis data Anda menjadi per regional.
Salah satu kelebihan MongoDB lainnya adalah, MongoDB mendukung model pemrograman MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop.

Dukungan Bahasa Pemrograman
Saat ini hampir semua bahasa pemrograman modern mendukung MongoDB, seperti Java, C/C++, Python, Ruby, PHP, C# dan lain-lain. Jika Anda membutuhkan driver MongoDB untuk bahasa pemrograman yang anda gunakan, Anda dapat mencarinya disini http://www.mongodb.org/display/DOCS/Drivers

Kapan Tidak Menggunakan MongoDB
Hampir semua sistem basis data NoSQL tidak mendukung proses transaksi. Padahal hal ini sangat penting jika kita membangun sistem yang selalu memerlukan proses transaksi seperti sistem Bank misalnya. Oleh karena itu MongoDB sangat tidak cocok jika digunakan untuk membangun sistem berbasis transaksi, karena jika sistem basis data NoSQL (seperti MongoDB) digunakan dalam kasus ini, maka bisa dipastikan akan banyak terjadi kegagalan dalam sistem, terutama saat proses transaksi.

Kapan Menggunakan MongoDB
MongoDB merupakan basis data yang tidak relasional, hal ini membuat MongoDB sangat cepat saat melakukan proses manipulasi data dari pada sistem basis data relasional, selain itu MongoDB berbasis dokumen yang tidak memiliki struktur data yang teratur seperti tabel. MongoDB sangat cocok untuk membangun sebuah sistem seperti blog, forum, portal berita, social networking, dan website yang tidak membutuhkan proses transaksi seperti sistem bank.

MongoDB di Dunia Nyata
Saat ini MongoDB sudah banyak digunakan di dunia nyata. Walaupun MongoDB merupakan sistem basis data yang bisa dibilang masih muda (Tidak seperti MySQL dan Oracle), tp MongoDB sudah banyak digunakan pada website-website besar seperti foursquare dan lain-lain.

Dari mana Belajar MongoDB
Jika Anda tertarik mempelajari lebih jauh tentang MongoDB, Anda dapat mencari informasinya disini http://www.mongodb.org/display/DOCS/Home, namun jika Anda fakir bandwitdh, Anda dapat mengunduh dokumentasi MongoDB disini http://dl.mongodb.org/dl/docs/

Selamat belajar :idea: Olways Think Smart :D


nb : teman" silahkan berkunjung ke forum saya :  SaungForum
       untuk pembahasan selengkapnya mengenai mongodb silahkan klik link ini SaungForumMongo