Membuat Database Sederhana NoSQL Menggunakan MongoDB

Pada artikel sebelumnya saya telah memperlihatkan cara membuat database MySQL di Xampp. Selanjutnya pada artikel ini, kita akan belajar cara membuat database NoSQL menggunakan MongoDB, dirinci dengan tahapan-tahapannya.

Artikel ini juga dibuat sebagai salah satu tugas mata kuliah Big Data, tentang membuat database NoSQL.

Tapi sebelum itu, kita harus mengetahui apa itu MongoDB?
Jadi MongoDB adalah salah satu database NoSQL yang paling populer saat ini. Database ini menawarkan fleksibilitas dan skalabilitas yang tinggi, sehingga sering digunakan dalam berbagai aplikasi modern. MongoDB juga merupakan database NoSQL yang menyimpan data dalam format dokumen JSON. Database ini tidak menggunakan tabel dan baris seperti database relasional, tetapi menggunakan koleksi dan dokumen.

Berikut langkah-langkahnya:
  1. Download MongoDB pada link di samping (download MongoDB)

  1. Download MongoDB Shell pada link di samping (download MongoDB Shell)


  1. Jalankan installer dan ikuti instruksi pemasangan
  1. Tambahkan direktori bin MongoDB dan MongoDB Shell ke dalam variabel PATH sistem Anda
    • Buka Control Panel > ketik edit the system environment variables > klik Environment Variables, di bawah System Variables, cari variable Path, lalu klik Edit
    • Tambahkan lokasi direktori bin MongoDB dan MongoDB Shell (misalnya, C:\Program Files\MongoDB\mongosh-2.2.5-win32-x64\bin)
  1. Setelah instalasi selesai, kita perlu menjalankan MongoDB server (mongosh). Buka command prompt lalu jalankan perintah query "mongosh"
  1. Untuk menampilkan database apa saja yang telah ada di MongoDB, dapat menggunakan perintah query "show dbs"
  1. Untuk menggunakan database tertentu (misal database dinamakan Nurfakhirah), dapat menggunakan perintah query "use Nurfakhirah"
  1. Selanjutnya, kita akan membuat collection yang diberi nama Customer dan Product, dengan menggunakan perintah query "db.createCollection("Customer")" dan "db.createCollection("Product")"
  1. Untuk melihat apakah collection yang sudah dibuat telah tersedia dalam database Nurfakhirah, dapat menggunakan perintah query "show collections"

  1. Untuk menambahkan data ke dalam collection, misal saya ingin menambahkan 5 data ke dalam collection Customer, dapat menggunakan perintah query : db.Customer.insertMany (lalu ketik data-data yang ingin dimasukkan, seperti contoh pada gambar di bawah)
  1. Untuk melihat apakah data tersebut sudah ada dalam collection Customer, dapat menggunakan perintah query "db.Customer.find()"
  1. Selanjutnya saya juga akan menambahkan data ke dalam collection Product. Perintah query nya sama dengan collection Customer menggunakan db.Product.insertMany. Untuk perintah query lengkapnya dapat dilihat pada gambar berikut:
  1. Untuk melihat apakah data tersebut sudah ada dalam collection Product, dapat menggunakan perintah query "db.Product.find()"

  1. Untuk menampilkan data dari variabel harga yang lebih dari/sama dengan pada collection product 9.000.000, dapat menggunakan: 
  • Perintah query: db.Product.find({harga: {$gte: 9000000}})
  • Outputnya: 


  1. Untuk menampilkan data dari variabel harga yang kurang dari 8.000.000 pada collection Product, dapat menggunakan 
  • perintah query: db.Product.find({harga: {$lte: 8000000}})
  • Outputnya:

"MENGOPERASIKAN AGGREGATE FUNCTION"
  1. Menghitung Jumlah Data yang Ada di Collection 'Customer'
Untuk menghitung jumlah data dalam collection Customer, dapat menggunakan operasi agregasi dengan syntax '$count'
  • Perintah query: db.Customer.aggregate([{$count: "Total_Customers"}])
  • Outputnya:  


  1. Mengelompokkan Berdasarkan Umur dan Menghitung Jumlahnya
Misalnya kita ingin mengelompokkan pelanggan berdasarkan umur dan menghitung jumlah pelanggan dalam setiap kelompok umur.
  • Syntaxnya: db.Customer.aggregate([{$group: {_id: “$umur”, count: {$sum: 1}}}]) 
  • Outputnya:


  1. Menghitung Rata-rata Umur Pelanggan
Untuk menghitung rata-rata umur pelanggan, caranya:
  • Syntax: db.Customer.aggregate([{$group: {_id: null, averageAge: {$avg: “$umur”}}}])
  • Outputnya:

  1. Menampilkan Hanya Nama dan Email Pelanggan
Untuk menampilkan hanya nama dan email dari setiap pelanggan, dapat dengan cara:
  • Syntax: db.Customer.aggregate([{$project: {_id: 0, nama: 1, email: 1}}])
  • Outputnya:

  1. Mengelompokkan Berdasarkan Alamat dan Menghitung Jumlah Pelanggan di Setiap Alamat
Untuk mengelompokkan pelanggan berdasarkan alamat dan menghitung jumlah pelanggan di setiap alamat, caranya: 
  • Syntax: db.Customer.aggregate([{$group: {_id: “$alamat”, count: {$sum: 1}}}])
  • Outputnya: 

  1. Mengurutkan Pelanggan Berdasarkan Nama
Untuk mengurutkan pelanggan berdasarkan nama secara ascending, dapat dengan cara:
  • Syntax: db.Customer.aggregate([{$sort: {nama: 1}}])
  • Outputnya:

  1. Menambahkan Kategori Baru dengan Nilai yang Dihitung
Misalnya, kita ingin menambahkan data baru 'ageCategory' yang mengkategorikan pelanggan sebagai 'dewasa' jika umur mereka lebih dari 18 tahun. Dengan cara:
  • Syntax: db.Customer.aggregat([{$addFields:{ageCategory:{$cond:{if:{$gt:["$umur", 18]}, then: "Dewasa", else: "Anak-anak"}}}])
  • Outputnya:

  1. Filter dan Kelompokkan Pelanggan Berdasarkan Kriteria Tertentu
Misalnya, kita hanya ingin menampilkan pelanggan yang berumur 21 tahun dan kemudian mengelompokkan mereka berdasarkan alamat. Dapat dengan cara:
  • Syntax: db.Customer.aggregate([{$match: {umur: 21}},{$group: {_id: ”$alamat”, count: {$sum: 1}}}])

  • Outputnya:

"MELAKUKAN AGREGASI PADA COLLECTION PRODUCT"

  1. Menghitung Total Jumlah Produk
Untuk menghitung total jumlah produk dalam koleksi 'Product'
  • Syntax: db.Product.aggregate([{ $count: "total_products" }])
  • Outputnya:

  1. Mengelompokkan Produk Berdasarkan Harga dan Menghitung Jumlahnya
Misalnya, kita ingin mengelompokkan produk berdasarkan kisaran harga dan menghitung jumlah produk dalam setiap kelompok harga, caranya:
  • Syntaxnya: db.Product.aggregate([{$bucket: {groupBy: "$harga",boundaries: [3000000, 6000000, 9000000, 12000000],default: "Other",output: {count: {$sum: 1},products: {$push: "$nama"}}}}])

  • Outputnya:

  1. Menghitung Rata-rata Harga Produk
Untuk menghitung rata-rata harga produk, dapat dengan cara:
  • Syntaxnya: db.Product.aggregate([{ $group: { _id: null, averagePrice: { $avg: "$harga" } }}])
  • Outputnya: 

  1. Menampilkan Hanya Nama dan Stok Produk
Untuk menampilkan hanya nama dan stok dari setiap produk, dapat dengan cara:
  • Syntax: db.Product.aggregate([{ $project: { _id: 0, nama: 1, stok: 1 } }])
  • Outputnya:

  1. Mengelompokkan Berdasarkan Stok dan Menghitung Jumlah Produk di Setiap Kelompok
Untuk mengelompokkan produk berdasarkan jumlah stok dan menghitung jumlah produk di setiap kelompok, dapat dilakukan dengan cara:
  • Syntax: db.Product.aggregate([{ $group: { _id: "$stok", count: { $sum: 1 } } }])

  • Outputnya:
  1. Mengurutkan Produk berdasarkan Harga
Untuk mengurutkan produk berdasarkan harga secara ascending, dapat dengan cara:
  • Syntax: db.Product.aggregate([{ $sort: { harga: 1}}])
  • Outputnya:

  1. Menambahkan Kategori Baru dengan Nilai yang Dihitung
Misalnya, kita ingin menambahkan bidang baru yaitu 'priceCategory' yang mengkategorikan produk sebagai "Murah" jika harganya kurang dari 5.000.000, "Sedang" jika antara 5.000.000 dan 10.000.000, dan "Mahal" jika lebih dari 10.000.000. Dapat dilakukan dengan cara:
  • Syntax: db.Product.aggregate([{$addFields: {priceCategory: {$switch: {branches: [{ case: { $lt: ["$harga", 5000000] }, then: "Murah" },{ case: { $and: [ { $gte: ["$harga", 5000000] }, { $lt: ["$harga", 10000000] } ] }, then: "Sedang" },{ case: { $gte: ["$harga", 10000000] }, then: "Mahal" }],default: "Tidak Diketahui"}}}}])
  • Outputnya: 


Sekian tutorial membuat database NoSQL menggunakan MongoDB
Terima Kasih

Nurfakhirah Inayah Ismail
210907502059
Bisnis Digital 2021




Posting Komentar

0 Komentar