Sebelum menulis query pertama, komputer kita membutuhkan proses server MongoDB yang berjalan: program bernama mongod (MongoDB Daemon) yang menyimpan data, memproses perintah, dan menerima koneksi dari client. Chapter ini memandu kita memasang MongoDB Community 9.0 — edisi gratis dan open source — di Ubuntu/Debian, macOS, dan Windows, lalu menjalankan mongod beserta file konfigurasinya.

Peta langkah yang akan kita tempuh:

  • Memasang paket resmi dari repositori MongoDB (apt, Homebrew, atau MSI).
  • Menjalankan mongod sebagai layanan sistem maupun secara manual.
  • Membaca file konfigurasi YAML dasar.
  • Menguji instalasi dengan perintah sederhana.

Instalasi di Ubuntu / Debian #

Repositori bawaan distribusi Linux umumnya berisi versi lama atau tidak menyediakan MongoDB sama sekali, jadi kita memakai repositori resmi repo.mongodb.org yang selalu membawa versi terbaru (9.0 saat Course ini ditulis).

Pertama, pasang prasyarat dan impor kunci GPG MongoDB:

bash
sudo apt-get install gnupg curl
curl -fsSL https://pgp.mongodb.com/server-9.asc | \
  sudo gpg -o /usr/share/keyrings/mongodb-server-9.gpg --dearmor

Kemudian daftarkan repositori. Baris berikut memakai codename noble (Ubuntu 24.04); sesuaikan dengan distribusi kita — jammy untuk Ubuntu 22.04, atau trixie dengan komponen main untuk Debian 13:

bash
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-9.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/9.0 multiverse" | \
  sudo tee /etc/apt/sources.list.d/mongodb-org-9.0.list

Terakhir, muat ulang indeks paket dan pasang MongoDB:

bash
sudo apt-get update
sudo apt-get install -y mongodb-org

Paket mongodb-org adalah metapackage yang menarik beberapa komponen sekaligus:

PaketIsi
mongodb-org-serverBinary mongod (server)
mongodb-org-mongosBinary mongos (router untuk sharded cluster)
mongodb-org-toolsUtilitas impor/ekspor seperti mongodump, mongorestore
mongodb-mongoshShell mongosh (dibahas tuntas di Chapter terpisah)

Instalasi di macOS #

Instalasi di macOS menggunakan Homebrew dari tap resmi MongoDB:

bash
brew tap mongodb/brew
brew trust mongodb/brew
brew install [email protected]

Tiga perintah tersebut melakukan hal berbeda: tap menambahkan repositori formula MongoDB ke Homebrew, trust menandai tap sebagai sumber tepercaya, dan install memasang binary mongod versi 9.0. Homebrew otomatis memilih varian Mac Intel maupun Apple Silicon.

Instalasi di Windows #

Windows memakai installer grafis berbentuk berkas MSI. Unduh installer dari mongodb.com/try/download/community , lalu pada formulir unduhan pilih:

  • Version: 9.0.x (Current),
  • Platform: Windows x64,
  • Package: msi.

Jalankan berkas .msi yang terunduh, lalu ikuti wizard:

  1. Pilih tipe setup Complete untuk lokasi dan komponen bawaan.
  2. Pada langkah Service Configuration, biarkan opsi Install MongoD as a Service tercentang. Installer akan mendaftarkan layanan bernama MongoDB, membuat direktori data dan log, lalu menyalakan server begitu instalasi selesai.
  3. Opsi Install MongoDB Compass boleh diabaikan sekarang — kita bahas Compass di Chapter tersendiri.

Setelah terpasang, layanan bisa dikelola dari terminal administrator:

bash
net start MongoDB
net stop MongoDB

Menjalankan mongod #

Sebagai layanan sistem (Linux) #

Paket apt mendaftarkan mongod sebagai layanan systemd, tetapi tidak otomatis menyalakannya. Jalankan dan aktifkan agar ikut menyala saat boot:

bash
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

Status active (running) menandakan server hidup dan mendengarkan port 27017. File konfigurasi berada di /etc/mongod.conf, data di /var/lib/mongodb, dan log di /var/log/mongodb/mongod.log.

Sebagai layanan Homebrew (macOS) #

bash
brew services start [email protected]
brew services stop [email protected]

Homebrew menjalankan mongod di latar belakang dan membaca konfigurasi dari /opt/homebrew/etc/mongod.conf (Apple Silicon) atau /usr/local/etc/mongod.conf (Intel).

Manual dengan –dbpath #

Menjalankan mongod secara manual membantu kita memahami apa yang terjadi. Buat dahulu direktori data, lalu nyalakan server dengan opsi --dbpath:

bash
mkdir -p ~/mongo-data
mongod --dbpath ~/mongo-data

Bila berjalan mulus, log di terminal memunculkan baris kunci berikut (contoh ini diambil dari instance latihan pada port 28017; tanpa opsi --port, nilai yang tampil adalah 27017):

text
{"t":{"$date":"2026-10-17T13:14:41.790+00:00"},"s":"I","c":"NETWORK","id":23016,"ctx":"listener","msg":"Waiting for connections","attr":{"port":28017,"ssl":"off"}}

Server berjalan di latar depan; hentikan dengan Ctrl+C saat berlatih. Direktori data harus ada sebelum server dinyalakan — jika tidak, mongod langsung berhenti dengan pesan galat:

text
{"t":{"$date":"2026-10-17T13:14:36.451+00:00"},"s":"E","c":"CONTROL","id":20557,"ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"NonExistentPath: Data directory /tmp/direktori-belum-ada not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the 'storage.dbPath' option in the configuration file."}}

File konfigurasi YAML #

Daftar opsi baris perintah yang panjang cepat menjadi sulit dibaca. Karena itu instalasi resmi memakai file konfigurasi YAML — di Linux /etc/mongod.conf — yang dimuat lewat mongod --config <berkas>. Berikut contoh isinya:

text
storage:
  dbPath: /var/lib/mongodb
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
net:
  port: 27017
  bindIp: 127.0.0.1

Mari kita baca arti setiap blok:

  1. storage.dbPath — direktori tempat berkas data WiredTiger disimpan; padanan opsi --dbpath.
  2. systemLog — tujuan log berkas, lokasinya, dan logAppend: true agar log baru ditambahkan, bukan menimpa yang lama.
  3. net.port — port yang didengarkan server; 27017 adalah bawaan MongoDB.
  4. net.bindIp — alamat yang diizinkan menerima koneksi. Nilai 127.0.0.1 berarti hanya komputer lokal; ubah hanya bila client lain harus terhubung.

Setiap opsi baris perintah punya pasangan kunci YAML, jadi file ini menjadi satu sumber kebenaran konfigurasi server. Perubahan isi baru berlaku setelah mongod dijalankan ulang.

Uji Cepat Instalasi #

Tutup proses instalasi dengan dua pemeriksaan singkat. Pertama pastikan binary dikenali dan versinya benar:

bash
mongod --version

Output yang Dihasilkan:

text
db version v9.0.2
Build Info: {
    "version": "9.0.2",
    "gitVersion": "c4d309807b94ac30edcca32e35e88a9598eadfc8",
    "openSSLVersion": "OpenSSL 3.5.7 9 Jun 2026",
    "modules": [],
    "allocator": "tcmalloc-google",
    "javascriptEngine": "mozjs-wasm",
    "environment": {
        "distmod": "debian13",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Kedua, pastikan server hidup dan merespons perintah dari mongosh (versi lengkap pemeriksaan ada di Chapter Verifikasi Instalasi):

js
db.version()

Output yang Dihasilkan:

text
9.0.2
js
db.adminCommand({ ping: 1 })

Output yang Dihasilkan:

text
{
  ok: 1,
  '$clusterTime': {
    clusterTime: Timestamp({ t: 1792243653, i: 1 }),
    signature: {
      hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0),
      keyId: Long('0')
    }
  },
  operationTime: Timestamp({ t: 1792243653, i: 1 })
}

Dua hasil tersebut menandakan instalasi selesai: versi server 9.0.2 dan nilai ok: 1 yang membuktikan server menjawab perintah. Nilai clusterTime dan operationTime adalah cap waktu replika yang berubah setiap eksekusi — bentuk keluarannya yang penting, bukan angkanya.

Rangkuman #

  • MongoDB Community 9.0 dipasang lewat repositori resmi repo.mongodb.org (Ubuntu/Debian), tap mongodb/brew (macOS), atau installer MSI (Windows).
  • mongod adalah proses server; jalankan sebagai layanan (systemctl / brew services) untuk pemakaian rutin, atau manual dengan --dbpath untuk belajar.
  • Direktori data wajib dibuat sebelum mongod dinyalakan; galat NonExistentPath menandakan direktori belum ada.
  • File konfigurasi YAML (mongod.conf) menggantikan opsi baris perintah dan dibaca lewat mongod --config.
  • Kombinasi mongod --version, db.version(), dan db.adminCommand({ ping: 1 }) cukup untuk memastikan instalasi sehat.