hei…hei akhirnya bisa nulis lagi, atau lebih tepatnya berhasil ilangin mager untuk lanjut nulis v:
btw apa kabar kalian? aku makin lama diem dirumah makin menggila ini karena bingung ga ada tujuan :v , oh iya katanya sih udah mulai new normal jadi ayo kita sama sama beradaptasi dengan kebiasaan baru dan tetep jaga kesehatan (tumben ngomong bener)
ok balik ke topik bahasan kali ini kita bakal kenalan dulu dengan MongoDB, sebenernya ada yang request untuk materi Many to many dengan sequelize (Riki Pebrianto) tapi berhubung aku lagi pindah device dan materi itu ada di device lama jadi mungkin next story aku bakal bahas itu.
oh iya alasan aku mau angkat materi tentang MongoDB itu sebenernya simpel, ada temen ku yang rekomendasiin untuk pakai ini v: katanya sih bagus untuk peforma dll. jadi setelah ku explore ternyata menarik juga. biar ga lama yuk mulai ke materi
bagi kalian yang terbiasa membuat sistem berbasis website tentu sudah familiar dengan Relational Database seperti MySQL. namun MongoDB merupakan database yang bersifat NoSQL. nah kira kira apa sih NoSQL itu? kalau MySQL adalah database yang mengandalkan relasi antar data maka NoSql adalah kebalikannya, yak tanpa relasi. mungkin kalian yang sudah sering membuat database yang memiliki banyak relasi akan perlu beradaptasi dengan cara kerja NoSQL, aku sendiri masih mencoba untuk akur dengan si MongoDB ini wkwkkw. tapi tenang aja, meski MongoDB buka ndatabase yang mengandalkan relasi / JOIN kita tetap bisa mendapatkan hasil yang sama dengan beberapa cara.
sebelum lanjut tentu kalian ingin tau apa sih kelebihan menggunakan MongoDB(NoSQL) dibandingkan dengan MySQL tapi kalian juga harus tau dibalik kelebihannya MongoDB masih memiliki kelemahan juga. berikut penjelasannya:
Kelebihan:
- Performa yang ditawarkan MongoDB lebih cepat disebabkan oleh memcached dan format dokumennya yang berbentuk seperti JSON
- NoSQL digunakan menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar
- Menggunakan OOP dalam pengaksesan atau manipulasi datanya
- Dynamic Schema (NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku dan sangat cocok untuk data yang tidak terstruktur).
Kekurangan:
- Hosting pada Nosql Masih cukup mahal
- Belum banyak hosting yang support
- berpindah antar satu produk database noSQL lainnya perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal.
oh iya sebutan/istilah beberapa komponen di MongoDB juga berbeda dengan Relational Database, untuk lebih jelasnya bisa lihat gambar dibawah ini:
sederhananya kalau di Relational Database kita memiliki kumpulan record / row makan di MongoDB itu disebut kumpulan document. lalu kumpulan record itu disimpan dalam tabel, sedangkan MongoDB disimpan dalam collection (jadi bisa dibilang beda cara penyebutan saja)
contoh data yang disimpan MongoDB:
{
"_id" : ObjectId("88d955492b7c8eb21818bd09"),
"alamat" : {
"street" : "2 Avenue",
"zipcode" : "10075",
"building" : "1480",
"coord" : [ -73.9557413, 40.7720266 ]
},
"borough" : "Manhattan",
"cuisine" : "Italian",
"grades" : [
{
"date" : ISODate("2014-10-01T00:00:00Z"),
"grade" : "A",
"score" : 11
},
{
"date" : ISODate("2014-01-16T00:00:00Z"),
"grade" : "B",
"score" : 17
}
],
"name" : "Vella",
"restaurant_id" : "41704620"
}
dapat kalian lihat dengan bahwa data diatas terdiri dari berbagai jenis tipe data, dan MongoDB juga memungkinkan kita untuk menyimpan data dengan format berbeda dalam satu collection / table. bisa saja data berikutnya di collection tersebut seperti ini
{
"_id" : ObjectId("54c955492b7c8eb21818bd09"),
"alamat" : "Rome"
"name" : "Vella",
"restaurant_id" : "41704620"
}
jadi kita bisa lebih mudah ketika nantinya akan melakukan scale-up sistem kita. namun hati hati dalam melakukannya agar tidak terjadi disaster karena error v:
mungkin udah ada yang penasaran nih gimana contoh penggunaan MongoDB, yuk lihat contoh sederhana penggunaannya di bawah ini:
- setelah kalian menginstall dan menjalankan MongoDB tiba waktunya untuk membuat database baru untuk membuat dan menggunakan database kalian bisa gunakan perintah
use namaDatabase
contoh
use todoList
kode diatas artinya kalian membuat (jika sebelumnya belum ada) database dengan nama todoList dan menggunakannya
2. setelah database siap tiba saatnya kalian membuat collection baru, kalian bisa membuatnya terlebih dahulu ATAU kalian bisa membuat collection langsung saat memasukan data. aku rekomendasikan buat langsung saat kalian akan menambahkan data karena lebih efisien. untuk itu kalian bisa gunakan perintah
db.namaCollection.insert({data})
contoh:
db.tugasKuliah.insert({
matkul: "pemrograman web",
deadline: "7 juli 2020",
tugas: "belajar mongodb"
})
dengan menjalankan perintah diatas maka kita akan secara otomatis membuat sebuah collection dengan nama tugasKuliah(jika sebelumnya belum ada) dan menambahkan data ke collection tersebut.
tapi jika kalian ingin membuat collection dulu sebelum memasukan data bisa dengan perintah
db.createCollections("nama_koleksi")
tapi seperti yang sebelumnya kubilang kurang efisien
3. kalian bisa cek data yang sudah ada di collection dengan menjalankan perintah
db.namaCollection.find()
contoh:
db.todoList.find()
perintah diatas akan menampilkan seluruh data dalam collection todoList
kalian juga bisa memfilter data yang ditampilkan dengan menambahkan parameter dalam fungsi find()
contoh:
db.todoList.find({matkul: 'pemrograman web'})
maka yang ditampilkan adalah data dengan matkul pemrograman web (sederhananya itu seperti WHERE di MySql)
4. kalau kalian ingin mengupdate data bisa dengan perintah
db.namaCollection.update({data lama}, {data baru})
contoh:
db.tugasKuliah.update(
{tugas:'belajar mongodb'}
,
{deadline: "11 juli 2020",}
)
perintah diatas akan mengupdate deadline data dengan tugas ‘belajar mongodb’ menjadi ‘11 juli 2020'
5. menghapus data
kalau kalian udah ga perlu sama datanya tinggal hapus aja dengan perintah berikut
db.namaCollection.remove({data lama})
contoh:
db.namaCollection.remove({tugas:'belajar mongodb'})
jadi nanti data yang memiliki tugas ‘belajar mongodb’ akan dihapus.
oh iya seperti yang kubilang di awal kalo dengan MongoDB kalian masih bisa mendapat hasil yang mirip mirip sama JOIN di MySQL dengan cara Referenced Document dan Embedded Document. kalo seri ini nanti aku lanjutin kemungkinan aku bakal bahas tentang ini lebih dalam, tapi liat sikon dulu ya wkwwk sementara coba explore aja dulu bagian itu
untuk tambahan terakhir aku mau kasi tau kalian kalo untuk manage MongoDB kalian juga bisa pakai software tambahan biar ga kesulitan pakai command line. software yang bisa kalian coba antara lain:
- Robo 3T
- MongoDB Compass
- dll
okey itu dulu pembahasan kali ini, cukup singkat karena aku pribadi masih belum explore terlalu dalam. masih susah damai ama si MongoDB ini hehe, terlepas dari kekurangannya menurutku ini adalah sesuatu yang pantas kita cicipi wkwkkwkw, jadi jangan lupa untuk explore lagi karena yang aku bahas baru dasar bangettt.
Kalau ada yang punya pendapat lain atau mungkin kurang setuju ama yang aku tulis bisa kita diskusi di kolom komentar ya. Kalau ada salah kata atau sejenisnya mohon dimaafkan dan kalau bisa dikoreksi agar aku bisa lebih baik lagi kedepannya.
Oke itu dulu untuk seri kali ini, saya Merta pamit undur diri dan ingat untuk ‘Haus akan ilmu baru’ :)