Lewati ke konten utama

Tutorial NoSQL Komprehensif Menggunakan MongoDB

Pelajari tentang database NoSQL—mengapa NoSQL, bagaimana perbedaannya dari database relasional, jenis-jenisnya, dan rancang database NoSQL Anda sendiri menggunakan MongoDB.
Diperbarui 28 Sep 2026  · 9 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Seiring ledakan jumlah data yang dihasilkan di era digital, database menjadi krusial untuk menyimpan, mengelola, dan menganalisis data dalam jumlah besar. Secara garis besar, ada dua jenis database: database SQL dan NoSQL.

Database SQL menggunakan format terstruktur, dan data diorganisasikan ke dalam tabel dengan skema. Berbeda dengan database SQL, database NoSQL menawarkan skema yang fleksibel untuk menyimpan data semi-terstruktur dan tidak terstruktur. Database ini menyediakan infrastruktur yang diperlukan untuk mengelola dan memanfaatkan data dalam jumlah besar yang dihasilkan di lanskap digital saat ini.

Panduan komprehensif ini akan membahas dasar-dasar database NoSQL dan berbagai jenis database NoSQL beserta contoh yang tersedia di industri. Setelah memahami dasar-dasar ini, kita akan membahas MongoDB, salah satu database NoSQL populer, dan mempelajari cara melakukan operasi CRUD (Create, Retrieve, Update, dan Delete).

Apa itu NoSQL?

NoSQL adalah singkatan dari “Not Only SQL” dan dibuat untuk mengatasi keterbatasan pada database relasional. Database relasional mengikuti struktur yang kaku, memiliki format tabular, dan menggunakan SQL (Structured Query Language) untuk manipulasi data.

Database NoSQL menawarkan pendekatan yang lebih fleksibel untuk menyimpan data semi-terstruktur dan tidak terstruktur.

Keunggulan utama database NoSQL adalah cocok untuk menangani volume data besar dengan struktur yang beragam. Database NoSQL bersifat tanpa skema (schema-less), memungkinkan kelincahan dan skalabilitas yang lebih tinggi.

Namun, manfaat ini memiliki kompromi. Konsistensinya lemah dan dukungan untuk kueri kompleks terbatas. Terlepas dari keterbatasan tersebut, database ini banyak digunakan karena manfaat yang ditawarkannya dan melengkapi database SQL.

Anda dapat membaca lebih lanjut tentang perbedaan utama antara database SQL dan NoSQL serta beberapa kiat kapan memilih yang mana dari tutorial terpisah.

Jenis-jenis Database NoSQL

Untuk memenuhi kebutuhan berbagai kasus penggunaan, database NoSQL menggunakan beragam model data untuk mengorganisasikan dan mengakses data. Berikut 4 jenis database NoSQL yang umum.

  1. Berbasis pasangan key-value adalah bentuk paling sederhana dari database NoSQL. Data disimpan sebagai pasangan key dan value dan dapat diambil menggunakan key. Beberapa contohnya adalah Redis dan Amazon DynamoDB.
  2. Berorientasi kolom mengorganisasi data dalam kolom, bukan baris. Struktur ini efisien untuk mengambil data berdasarkan kolom. Apache Cassandra, HBase, dan Google Bigtable bersifat berorientasi kolom.
  3. Berbasis graf menyimpan data dalam struktur graf yang terdiri dari node, edge, dan properti. Neo4j dan Amazon Neptune adalah database berbasis graf yang populer.
  4. Berorientasi dokumen menyimpan data sebagai dokumen mirip JSON. Struktur dokumen dapat bervariasi dan bahkan memuat data bertingkat (nested). Ini adalah jenis database NoSQL yang banyak digunakan. Contohnya termasuk MongoDB dan CouchDB.

Untuk mempelajari lebih lanjut tentang berbagai jenis database, kami mendorong Anda merujuk ke tutorial kami, Database NoSQL: Yang Perlu Diketahui Setiap Data Scientist.

Setelah mempelajari apa itu NoSQL dan jenis-jenis database NoSQL, saatnya praktik langsung dengan database NoSQL.

Tutorial NoSQL: Merancang Database NoSQL untuk Platform Blog

Menyelami contoh praktis di dunia nyata sangat penting untuk memahami dan bereksperimen dengan konsep yang telah kita bahas. Mari kita telusuri sebuah tutorial NoSQL.

Misalkan Anda tertarik membangun platform blog Anda sendiri. Anda ingin membuat posting blog, mengizinkan komentar, dan menjaganya tetap diperbarui. Karena Anda tahu datanya tidak terstruktur, Anda memahami bahwa database NoSQL seperti MongoDB cocok untuk kasus penggunaan ini.

MongoDB adalah database NoSQL sumber terbuka. Alih-alih menggunakan tabel, MongoDB menyimpan data dalam dokumen mirip JSON. Ini memungkinkan representasi struktur dan relasi yang kompleks dengan mudah. Mudah untuk mengelola berbagai jenis data termasuk teks, angka, atau gambar, yang kemungkinan ada di blog.

Mari mulai dengan menyiapkan MongoDB di mesin Anda.

1. Menyiapkan MongoDB

Menginstal MongoDB cukup mudah. Kita dapat mengunduh dan memasangnya dari situs resmi MongoDB. Instruksi bervariasi untuk setiap sistem operasi, jadi periksa petunjuk instalasi untuk sistem operasi Anda di dokumentasi resmi mereka.

Setelah menginstal, jalankan MongoDB. Cukup buka terminal dan ketik perintah berikut sesuai sistem operasi Anda:

// Linux
sudo systemctl start mongod

//Mac OS
brew services start mongodb-community@7.0

Kita akan mendapatkan keluaran bertuliskan “Successfully started” seperti di bawah.

Output: Starting MongoDB

Keluaran: Memulai MongoDB. (Gambar ini dan semua gambar di bawah oleh Penulis)

Instalasi MongoDB sudah menyertakan shell MongoDB bernama mongosh yang dapat kita gunakan untuk berinteraksi dengan database MongoDB. Jadi, kita dapat menggunakannya tanpa instalasi tambahan.

Mulai shell MongoDB dengan menjalankan perintah berikut di terminal Anda:

mongosh

Menjalankan perintah mongosh akan memberikan keluaran di bawah yang menandakan koneksi ke database Anda.

Start the MongoDB shell

Mulai shell MongoDB.

Dengan MongoDB terpasang, kita akan lanjut mendefinisikan model data.

2. Mendefinisikan model data

Kita akan membuat database bernama “blog” dan dua koleksi bernama “posts” dan “comments”. Koleksi “posts” untuk menampung entri blog dan koleksi “comments” untuk menyimpan komentar pada postingan tersebut.

Setiap dokumen posting akan memiliki field untuk judul, konten, penulis, dan tanggal pembuatan, sementara setiap dokumen komentar akan memuat field untuk isi komentar, penulis, dan ID posting terkait.

Untuk menampilkan semua database yang ada, jalankan show dbs pada shell. Jika ini pertama kalinya Anda menggunakan MongoDB, Anda akan melihat keluaran di bawah.

Daftar database yang ada.

Secara default, kita akan menggunakan database test. Meskipun kita berada di database test, database belum dibuat sampai kita menyisipkan sebuah dokumen ke dalam koleksi di database.

Untuk membuat database baru, jalankan use <database_name>.

Dalam contoh kita, kita akan menggunakan “blog” sebagai nama database. Silakan jalankan use blog untuk membuat database baru. Seperti disebutkan di atas, menjalankan perintah show dbs tidak akan menampilkan database baru sampai kita menyisipkan sebuah koleksi ke dalam database. Oleh karena itu, jalankan perintah di bawah untuk membuat koleksi.

// create database
use blog

// create collection
db.createCollection("posts")
db.createCollection("comments")

Menjalankan use blog akan mengalihkan database dari “test” ke “blog”.

Keluaran: Membuat database dan koleksi.

Setelah membuat koleksi, kita dapat memverifikasinya dengan perintah show dbs.

Daftar database.

Kita telah berhasil membuat sebuah database dan koleksi.

3. Menerapkan operasi CRUD

MongoDB mendukung empat operasi utama CRUD (Create, Read, Update, Delete) untuk berinteraksi dengan data:

  1. Create: Untuk membuat dokumen di MongoDB, kita menyisipkannya ke dalam koleksi menggunakan metode insertOne() atau insertMany(). Dokumen dapat memuat data JSON apa pun yang valid, sehingga memungkinkan desain skema yang fleksibel.
  2. Read: Untuk membaca data dari MongoDB, kita melakukan kueri dengan metode find(). Kueri memfilter dokumen berdasarkan kriteria yang ditentukan dan mengembalikan hasilnya.
  3. Update: Untuk memperbarui dokumen, dapat digunakan updateOne() atau updateMany(). Metode ini memfasilitasi manipulasi data yang fleksibel.
  4. Delete: Untuk menghapus dokumen dari sebuah koleksi, kita menggunakan metode deleteOne() atau deleteMany(). Penghapusan dilakukan berdasarkan kriteria tertentu, seperti mencocokkan nilai suatu field.

Setelah melihat perintah-perintahnya, mari kita praktikkan melalui kasus penggunaan blog kita.

4. Membuat posting blog

Untuk menyisipkan dokumen ke dalam database MongoDB, ada dua metode.

  1. insertOne() : Metode ini menyisipkan satu dokumen dalam satu waktu
  2. insertMany() : Dengan metode ini, kita dapat menyisipkan banyak dokumen sekaligus.

Mari gunakan kedua metode untuk menambahkan posting blog ke database. Pada kode di bawah, kita membuat dokumen dalam koleksi “posts”. Setiap dokumen memiliki judul, konten, penulis, dan tanggal pembuatan.

// use insertOne() method to insert one document to the "posts" collection
db.posts.insertOne({
   title: "Introduction to NoSQL with MongoDB",
   content: "MongoDB is a NoSQL database that stores data in JSON format",
   author: "Arunn Thevapalan",
   createdAt: new Date()
})

// array of blog post documents
var postsData = [
   {
       title: "Getting Started with MongoDB",
       content: "Learn the basics of MongoDB",
       author: "Arunn Thevapalan",
       createdAt: new Date()
   },
   {
       title: "Advanced MongoDB Techniques",
       content: "Explore advanced features of MongoDB",
       author: "Jim Murphy",
       createdAt: new Date()
   }
];

// use insertMany() to insert multiple documents
db.posts.insertMany(postsData);

Keluaran ini menunjukkan bahwa server MongoDB telah berhasil menerima dan memproses permintaan insertOne.

Keluaran: Menyisipkan satu dokumen ke dalam sebuah koleksi.

Demikian pula, keluaran di bawah menunjukkan pemrosesan permintaan insertMany yang berhasil.

Keluaran: Menyisipkan beberapa dokumen ke dalam sebuah koleksi.

Dengan memahami operasi Create, berikutnya adalah operasi Read.

5. Melakukan kueri pada posting blog

Kita dapat menggunakan metode find() untuk mengambil data dari koleksi. Untuk mengambil posting blog di atas dari koleksi “posts”, jalankan perintah di bawah.

db.posts.find()

Metode find akan mengambil semua dokumen dalam koleksi “posts”. Keluaran di bawah menunjukkan semua dokumen yang kita sisipkan pada langkah sebelumnya.

Keluaran: Mengambil dokumen dari sebuah koleksi.

6. Menambahkan komentar ke sebuah posting

Misalkan kita ingin menambahkan beberapa komentar pada sebuah posting, kita dapat menyisipkan sebuah dokumen ke koleksi “comments”. Komentar dikaitkan dengan blog, oleh karena itu kita akan menyimpan referensi ke ID posting.

// use an object id from any of the above entries
var postId = ObjectId("664bfc27f74ef93812b2179e")

// insert one comment
db.comments.insertOne({
   postId: postId,
   content: "Informative article!",
   author: "Anne Smith",
   createdAt: new Date()
})

Keluaran ini menunjukkan bahwa server MongoDB telah menerima dan memproses permintaan.

Keluaran: Membuat dokumen yang mereferensikan dokumen lain.

7. Melakukan kueri komentar untuk sebuah posting

Untuk mengambil komentar yang dikaitkan dengan posting blog tertentu, metode find() dapat digunakan dengan filter kueri:

// retrieve the above comment

db.comments.find({postId: postId})

Keluaran di bawah menampilkan komentar yang kita sisipkan pada langkah sebelumnya.

Keluaran: Menemukan dokumen menggunakan kueri find.

Setelah pengguna membuat posting blog, mereka mungkin ingin memperbaruinya di kemudian hari. Jadi selanjutnya, mari kita lihat bagaimana kita dapat memperbarui dokumen yang sudah ada.

8. Memperbarui sebuah posting blog

Serupa dengan penyisipan, pembaruan juga dapat dilakukan secara individual atau kolektif.

  1. updateOne() : Metode ini memperbarui satu dokumen dalam satu waktu
  2. updateMany() : Metode ini memperbarui banyak dokumen sekaligus.

Coba ubah judul posting blog “Introduction to NoSQL with MongoDB” menjadi “Absolute Beginner Guide to NoSQL with MongoDB”.

Karena kita mengetahui ID posting dari salah satu langkah sebelumnya, jalankan kode di bawah untuk mengubah judul. Pastikan untuk memperbarui postId dengan ID dokumen Anda.

var postId = ObjectId("664bfc27f74ef93812b2179e");

db.posts.updateOne(
   { _id: postId },
   { $set: { title: "Absolute Beginner guide to NoSQL with MongoDB"} }
);

// verify update
db.posts.find({_id: postId})

Keluaran menunjukkan permintaan berhasil diproses. Ditemukan 1 dokumen yang cocok dan 1 dokumen dimodifikasi.

Keluaran: Memperbarui sebuah dokumen.

9. Menghapus sebuah posting blog

Untuk menghapus posting blog dapat digunakan deleteOne(). Serupa dengan operasi sebelumnya, opsional kita dapat menggunakan deleteMany() untuk menghapus beberapa dokumen sekaligus.

var postId = ObjectId("664bfc27f74ef93812b2179e");

// delete post
db.posts.deleteOne({ _id: postId });

// verify deletion -> no output
db.posts.find({_id: postId})

Keluaran mengonfirmasi penghapusan yang berhasil.

Output: Delete a document from a collection

Keluaran: Menghapus sebuah dokumen dari koleksi

Tentu saja, kita telah menyederhanakan rancangan sebuah platform blog, yang umumnya kompleks dengan berbagai operasi lain seperti sorotan, suka, tepuk tangan, rekomendasi, dan sebagainya. Namun semua operasi tersebut didasarkan pada salah satu operasi CRUD dan kini kita telah memahami konsep dasarnya dengan baik. Sekarang giliran Anda untuk mengeksplorasi dan bereksperimen dengan lebih banyak fitur berdasarkan operasi-operasi ini.

Kesimpulan

Tutorial ini memperkenalkan Anda pada database NoSQL. Kita mulai dari konsep dasar, definisi database NoSQL, bagaimana perbedaannya dari database relasional, dan jenis-jenisnya.

Kita kemudian memperluasnya untuk membahas MongoDB, database berbasis dokumen yang banyak digunakan. Terakhir, kita praktik langsung dengan contoh sederhana untuk merancang database bagi platform blog kita.

Wajar jika menemui kebuntuan saat merancang database untuk kasus penggunaan baru, dan kami mendorong Anda merujuk ke dokumentasi resmi untuk mengetahui fungsi dan contoh yang diperbarui.

Berikut beberapa kursus dan tutorial yang lebih mendalam jika Anda ingin memperluas pengetahuan tentang NoSQL.


Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

Sebagai senior data scientist, saya merancang, mengembangkan, dan menerapkan solusi machine learning berskala besar untuk membantu bisnis membuat keputusan yang lebih baik berbasis data. Sebagai penulis di bidang data science, saya berbagi pembelajaran, saran karier, dan tutorial praktis yang mendalam.

Topik
SQL

Lanjutkan Belajar bersama DataCamp

Kursus

Pengantar NoSQL

4 jam
10.8K
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya