Front-End & Back-End Development 3
JavaScript Lanjutan & Object-Oriented Programming
Judul Praktikum: Product Management System with Object-Oriented Programming
Tujuan Praktikum: Peserta mampu mengintegrasikan seluruh konsep Object-Oriented Programming (OOP), termasuk encapsulation, inheritance, polymorphism, abstraction, dan design patterns (Factory, Singleton, Observer) ke dalam satu sistem aplikasi yang fungsional: Product Management System untuk Health E-Commerce.
Deskripsi Singkat Aktivitas: Pada praktikum ini, peserta akan membangun sistem manajemen produk menggunakan pendekatan OOP secara menyeluruh. Peserta akan membuat struktur kelas produk dan turunannya, mengimplementasikan Factory pattern untuk pembuatan produk, Singleton pattern untuk manajemen inventori, Observer pattern untuk notifikasi stok, serta Order processing system untuk menghitung total pesanan dan memperbarui stok.
Langkah-Langkah Praktikum
1. Setup Project
- Clone starter project dari GitHub: Starter Project
- Jalankan perintah npm install
2. Struktur Folder
- Pastikan struktur folder sesuai:
product-management-system/
├── models/
│ ├── Product.js # Base Product class
│ ├── Vitamin.js # Vitamin class extends Product
│ ├── Supplement.js # Supplement class extends Product
│ └── MedicalEquipment.js # MedicalEquipment class extends Product
├── services/
│ ├── ProductFactory.js # Factory pattern implementation
│ ├── Inventory.js # Inventory management
│ └── OrderService.js # Order processing
├── observers/
│ ├── EmailNotifier.js # Email notifications
│ ├── SMSNotifier.js # SMS notifications
│ └── Logger.js # Logging system
├── utils/
│ └── helpers.js # Utility functions
├── test.js # Test all features
├── package.json
└── README.md
3. Buat Kelas Dasar Produk:
- Implementasikan Product class dengan encapsulation (getter/setter untuk price dan stock) serta dukungan observer pattern untuk notifikasi stok.
4. Buat Subclass Produk:
- Vitamin.js
- Supplement.js
- MedicalEquipment.js
Setiap subclass mewarisi Product dan meng-override metode calculateShipping().
5. Implementasikan Factory Pattern:
- Buat ProductFactory.js di folder services/ dengan metode statis createProduct(type, data) yang menghasilkan instance sesuai kategori produk.
6. Implementasikan Inventory (Singleton):
- Di file Inventory.js, buat sistem manajemen stok tunggal dengan metode:
- addProduct(product)
- getAllProducts()
- getProductsByCategory(category)
- getTotalValue()
7. Buat Order Service:
- Implementasikan OrderService.js untuk memproses pemesanan produk. Fitur utama:
- Mengecek ketersediaan stok
- Menghitung subtotal, ongkir, dan total
- Mengupdate stok setelah pemesanan berhasil
8. Tambahkan Observers:
- Implementasikan EmailNotifier.js, SMSNotifier.js, dan Logger.js di folder observers/ untuk mengirim notifikasi ketika stok berubah.
9. Integrasi dan Pengujian:
- Buat beberapa produk melalui ProductFactory.
- Tambahkan ke inventory.
- Lakukan subscribe observer ke produk tertentu.
- Proses pesanan dan periksa perubahan stok serta notifikasi yang muncul.
10. Visualisasi (Opsional):
- Buat UML Class Diagram untuk memetakan hubungan antar kelas dan pola desain yang digunakan.
Tools & Resource yang Dibutuhkan:
- Node.js dan npm
- Text editor (VS Code atau setara)
- Git & GitHub
- UML tool (Lucidchart / draw.io) - opsional
- GitHub repository:
- Starter Project
Contoh Output atau Hasil Akhir:
1. Fungsi berjalan penuh:
- Produk berhasil dibuat lewat Factory pattern
- Inventory dikelola via Singleton
- Observers aktif mengirim notifikasi saat stok berubah
- Order diproses otomatis dengan perhitungan total dan pengurangan stok
2. Output Console (Contoh):
{
success: true,
order: {
product: "Vitamin C 1000mg",
quantity: 5,
subtotal: 425000,
shipping: 5000,
total: 430000,
orderedAt: [Date]
}
}
Current stock: 45
Email Notifier: Stock for Vitamin C 1000mg updated to 45
Total Inventory Value: 8,750,000
Kriteria Keberhasilan / Penilaian Mandiri:
Semua class dan pattern (Factory, Singleton, Observer) terimplementasi dengan benar
Polymorphism berfungsi di calculateShipping()
Inventory menampilkan daftar produk dan nilai total dengan benar
OrderService dapat memproses pesanan dan mengupdate stok
Notifikasi observer berjalan ketika stok berubah
Tidak ada error pada saat integrasi dijalankan (node test.js)
Kode mengikuti prinsip OOP dan modularitas yang baik
Petunjuk Troubleshooting:
Masalah import/export module: Pastikan menggunakan export default dan import sesuai struktur file.
Observer tidak berjalan: Cek apakah subscribe() sudah dipanggil sebelum stok diperbarui.
Singleton tidak konsisten: Gunakan Inventory.getInstance() untuk memastikan hanya ada satu instance.
Error shipping calculation: Pastikan setiap subclass meng-override calculateShipping().
Stok tidak berkurang: Pastikan logika pengurangan stok ditulis di dalam OrderService.processOrder().
Durasi Praktik Disarankan: 60-90 menit.
Materi Github: https://github.com/Modul-FSD/komdigi-fsd-intermediate-modul-1-common-health-ecommerce-complete-testing
Kuis
Soal 1
Mengapa penggunaan async/await bisa membantu menghindari callback hell?
a. arena async/await tidak menggunakan Promise sama sekali
b. Karena async/await menghapus semua error otomatis
c. Karena async/await mengubah callback menjadi loop
d. Karena async/await membuat struktur kode lebih datar dan mudah dibaca
Jawab: D
Soal 2
Mengapa penggunaan var tidak disarankan dalam JavaScript modern?
a. Karena var hanya bisa digunakan di dalam loop
b. Karena var dapat menyebabkan bug akibat redeklarasi tanpa batas
c. Karena var tidak mendukung tipe data string
d. Karena var membutuhkan lebih banyak memori
Jawab: B
Soal 3
Fungsi filter() dalam JavaScript digunakan untuk…
a. Mencari satu elemen pertama yang cocok dengan kondisi
b. Mengubah setiap elemen array menjadi bentuk baru
c. Mengambil elemen yang memenuhi kondisi tertentu
d. Menjumlahkan seluruh elemen dalam array
Jawab: C
Soal 4
Sebuah perusahaan ingin membuat sistem e-commerce dengan berbagai jenis produk: vitamin, peralatan medis, dan e-book. Setiap jenis produk memiliki cara pengiriman berbeda. Konsep OOP apa yang paling tepat untuk mengimplementasikan perilaku berbeda tersebut dengan method yang sama?
a. Encapsulation
b. Polymorphism
c. Inheritance
d. Abstraction
Jawab: B
Soal 5
Dalam JavaScript, variabel yang tidak dapat diubah nilainya setelah dideklarasikan adalah…
a. var
b. function
c. const
d. let
Jawab: C
Soal 6
"Jika kita menulis kode seperti ini:
var name = ""Aiman"";
var name = ""Aila"";
a. Error karena redeklarasi tidak diizinkan
b. Program berhenti sebelum dijalankan
c. JavaScript otomatis mengganti nama variabel
d. Program akan tetap berjalan dan nilai menjadi “Aila”
Jawab: D
Soal 7
Manfaat utama Destructuring pada object dengan banyak properti adalah…
a. Menghapus properti yang tidak dibutuhkan
b. Mengubah seluruh struktur object menjadi array
c. Mempermudah pengambilan data tertentu tanpa harus memanggil semuanya
d. Mencegah data object agar tidak diubah
Jawab: C
Soal 8
Mengapa Object-Oriented Programming lebih cocok untuk proyek besar dibandingkan pendekatan prosedural?
a. Karena OOP lebih cepat dieksekusi oleh komputer
b. Karena OOP tidak memerlukan fungsi sama sekali
c. Karena OOP menggunakan lebih sedikit kode
d. Karena OOP membuat kode lebih terorganisir dan mudah dikelola
Jawab: D
Soal 9
Bagaimana Observer Pattern membantu menjaga arsitektur aplikasi tetap bersih?
a. Dengan memisahkan logika utama dari logika pemberitahuan
b. Dengan menggabungkan semua event menjadi satu method
c. Dengan memaksa semua observer berada di satu class
d. Dengan menghapus kebutuhan akan notifikasi
Jawab: A
Modul 2 Database & ODM (MongoDB & Mongoose)
Pernahkah Anda berpikir, bagaimana Instagram bisa menampilkan postingan temanmu secara instan? Atau bagaimana Tokopedia bisa menampilkan ribuan produk hanya dalam hitungan detik? Semua itu terjadi karena ada sistem database yang menyimpan, mengelola, dan memanggil data dengan cepat dan terstruktur.
Sepanjang modul ini, Anda akan mempelajari berbagai konsep dan praktik penting untuk memahami cara kerja database, khususnya MongoDB dan Mongoose. Pembelajaran dimulai dengan pengenalan GitHub Copilot yang dapat membantumu menulis kode lebih cepat dan efisien. Anda kemudian akan mempelajari dasar-dasar database dan MongoDB, mulai dari instalasi MongoDB di komputer lokal, penggunaan MongoDB Compass sebagai antarmuka grafis, hingga pengelolaan database di cloud menggunakan MongoDB Atlas.
Setelah memahami dasar-dasarnya, Anda akan mendalami konsep inti MongoDB seperti operasi query (find, filter, sort, aggregate), perbedaan antara MongoDB Query dan Mongoose ODM, serta cara membangun schema dan model data dengan Mongoose. Modul ini juga akan membimbingmu menerapkan operasi CRUD menggunakan Mongoose, memahami relasi antar data di MongoDB, hingga mempelajari Aggregation Pipeline dan teknik indexing untuk mengoptimalkan performa database.
Berikut adalah tujuan pembelajaran yang akan menjadi pedoman kita setelah menyelesaikan modul ini, kita diharapkan untuk:
2.1.1 Mengapa Anda Perlu Memahami Database & MongoDB
Sebelum kita membahas MongoDB, ada satu pertanyaan penting: mengapa Anda perlu memahami database sejak awal sebagai backend developer?
Karena hampir setiap aplikasi modern, mulai dari aplikasi kesehatan, e-commerce, perbankan, hingga sistem internal perusahaan, semuanya bergantung pada data. Jika Anda memahami cara menyimpan, mengambil, dan mengelola data secara efisien, Anda telah menguasai salah satu pilar terpenting dalam pembangunan aplikasi backend.
Untuk itu, mari kita mulai dari dasar: apa itu database, mengapa kita membutuhkannya, dan apa perbedaan utamanya dibanding menyimpan data di Javascript biasa.
2.1.2 Apa itu Database?
Anda pasti pernah berbelanja di Tokopedia atau Shopee, bukan? Coba bayangkan, setiap kali Anda membuka aplikasi, ribuan produk langsung tampil di layar hanya dalam hitungan detik. Mulai dari pakaian, elektronik, hingga makanan ringan, semuanya muncul dengan harga, deskripsi, dan penjual yang berbeda-beda. Sekarang bayangkan skala datanya.
Tokopedia memiliki lebih dari 12 juta penjual aktif, dan Shopee menampilkan ratusan juta produk dari berbagai kategori. Belum lagi data lain seperti akun pengguna, riwayat pesanan, ulasan, chat dengan penjual, hingga status pengiriman. Semuanya harus tersimpan dan bisa diakses kapan pun Anda membutuhkannya.
Nah, di titik ini, coba Anda renungkan sejenak. Bagaimana caranya mereka bisa menyimpan dan mengelola data sebanyak itu dengan cepat, aman, dan tetap bisa diakses jutaan pengguna secara bersamaan? Dan bagaimana jika data sebanyak itu hanya disimpan di variable JavaScript seperti ini:
let products = [
{ id: 1, name: "Vitamin C" },
{ id: 2, name: "Vitamin D" },
];
Sekilas, menyimpan data di variabel JavaScript terlihat sederhana. Namun, cara ini memiliki banyak keterbatasan. Misalnya, ketika server di-restart, seluruh data akan hilang. Jika datanya terlalu banyak, memori komputer bisa penuh. Proses pencarian data pun menjadi sangat lambat karena harus dilakukan satu per satu. Selain itu, data juga tidak tersimpan secara permanen atau persistent.
Inilah alasan mengapa kita memerlukan database, sebuah sistem penyimpanan data yang dirancang agar aman, cepat, dan mudah diakses. Database memiliki berbagai keunggulan utama:
- 💾 Persistent – Data tersimpan secara permanen di media penyimpanan
- 🔍 Searchable – Data dapat dicari dengan cepat
- 🔒 Reliable – Data tetap aman meskipun server dimatikan
- 📊 Scalable – Mampu menangani jutaan data dengan efisien
- 🚀 Performance – Mampu memproses query dengan cepat, bahkan pada data berukuran besar
Mari kita lihat ilustrasi berikut sebagai analogi sederhana:
Sebagai analogi sederhana, bayangkan Anda sedang berada di perpustakaan. Variabel JavaScript itu seperti sticky notes yang Anda tempel di papan, praktis dan cepat digunakan, tapi bisa hilang kapan saja. File JSON mirip seperti buku catatan, informasinya tersimpan, namun Anda harus membacanya satu per satu untuk menemukan data yang dicari. Sementara itu, database bagaikan perpustakaan dengan sistem katalog, semua data tersusun rapi, mudah dicari, dan bisa diakses hanya dalam hitungan detik!
2.1.3 Mengapa Kita Menggunakan MongoDB
Setelah memahami pentingnya database, muncul pertanyaan berikutnya: dari sekian banyak database, mengapa MongoDB?
MongoDB merupakan salah satu NoSQL database paling populer untuk aplikasi modern, terutama yang membutuhkan fleksibilitas tinggi dan struktur data yang tidak selalu tetap. Di bawah ini adalah ringkasan visual kelebihan dan kekurangan menggunakan MongoDB:
Mengapa Banyak Developer Memilih MongoDB?
- Mudah digunakan untuk aplikasi JavaScript/Node.js karena struktur datanya mirip JSON
- Perubahan struktur data tidak rumit
- Performa read/write sangat cepat
- Cocok untuk aplikasi yang datanya dinamis, cepat berubah, atau tidak memiliki pola yang ketat
- Mendukung deployment skala besar
Sederhananya: MongoDB sangat ideal untuk aplikasi modern yang berkembang cepat dan membutuhkan fleksibilitas tinggi.
2.1.4 SQL vs NoSQL - Apa Bedanya?
Dalam dunia pengembangan aplikasi, terdapat dua jenis utama database yang paling sering digunakan: SQL (Relational Database) dan NoSQL (Non-Relational Database). Keduanya sama-sama berfungsi untuk menyimpan data, tetapi memiliki cara kerja dan struktur yang berbeda.
- SQL – Relational Database
Contohnya seperti MySQL, PostgreSQL, dan SQL Server. Database jenis ini menyimpan data dalam bentuk tabel yang terdiri dari baris (rows) dan kolom (columns). Setiap tabel memiliki struktur yang tetap atau schema rigid, artinya semua data harus mengikuti format yang sama.
Database SQL juga menggunakan foreign key untuk menghubungkan antar tabel, dan seluruh proses pencarian atau manipulasi data dilakukan dengan bahasa SQL (Structured Query Language).
Contoh data SQL:
-- Tabel Products
| id | name | category | price |
|----|-----------|----------|--------|
| 1 | Vitamin C | Vitamin | 85000 |
| 2 | Vitamin D | Vitamin | 120000 |
-- Tabel Reviews
| id | product_id | user | rating |
|----|------------|-------|--------|
| 1 | 1 | Aiman | 5 |
| 2 | 1 | Aila | 4 |
- NoSQL – Non-Relational Database
Contohnya seperti MongoDB, Redis, dan Cassandra. Berbeda dengan SQL, database NoSQL menyimpan data dalam bentuk dokumen yang mirip dengan format JSON. Setiap dokumen bisa memiliki struktur yang berbeda—disebut schema fleksibel—dan data di dalamnya dapat bersifat nested atau embedded (menyimpan data di dalam data).
Contoh data NoSQL (MongoDB):
{
"_id": "507f1f77bcf86cd799439011",
"name": "Vitamin C 1000mg",
"category": "Vitamin",
"price": 85000,
"stock": 50,
"reviews": [
{ "user": "Aiman", "rating": 5, "comment": "Mantap!" },
{ "user": "Aila", "rating": 4, "comment": "Bagus" }
]
}
Di NoSQL, data ulasan (reviews) bisa langsung disimpan di dalam dokumen produk tanpa perlu tabel terpisah. Struktur ini membuat pengelolaan data menjadi lebih sederhana, fleksibel, dan efisien.
2.1.5 Kenapa Kita Pakai MongoDB?
Kalau Anda pernah membuka aplikasi e-commerce kesehatan, Anda pasti sadar bahwa setiap produk memiliki informasi yang berbeda-beda. Misalnya:
- Produk vitamin punya data dosage dan manufacturer
- Alat medis punya warranty dan specifications
- Obat punya prescription requirement
Nah, di sinilah MongoDB jadi pilihan yang tepat. Karena MongoDB menggunakan struktur data NoSQL yang fleksibel, setiap produk bisa memiliki field berbeda tanpa perlu mengubah struktur database keseluruhan.
Selain itu, MongoDB juga unggul dalam performa. Bayangkan saat Anda membuka halaman produk atau melakukan pencarian di e-commerce, hasilnya muncul hanya dalam hitungan detik. Itulah keunggulan MongoDB yang mampu menangani query cepat, pencarian real-time, dan data dalam jumlah besar dengan efisien.
Keunggulan lainnya, MongoDB menggunakan bahasa JavaScript untuk query-nya. Jadi, Anda tidak perlu belajar bahasa baru seperti SQL. Cukup satu bahasa untuk semuanya, mulai dari frontend (React), backend (Node.js), hingga database (MongoDB). Praktis, kan?
Dan bukan cuma kita yang mengandalkan MongoDB. Perusahaan besar seperti Uber yang melacak lebih dari 10 juta perjalanan per hari, atau eBay yang mengelola jutaan listing produk, hingga Forbes juga menggunakan MongoDB.
Sekarang setelah Anda tahu kenapa MongoDB menjadi pilihan utama, saatnya kita mulai praktik langsung! Di sub topik berikutnya, Anda akan belajar cara instalasi MongoDB di komputer lokal agar bisa mulai membuat dan mengelola database sendiri.
Kesimpulan
Database adalah sistem penyimpanan data yang dirancang untuk mengelola informasi dalam jumlah besar secara aman, cepat, dan terstruktur. Tanpa database, data hanya tersimpan sementara dan mudah hilang saat sistem dimatikan. Dengan database, semua informasi dapat disimpan secara persistent, mudah dicari, serta mampu menangani jutaan data dengan efisien.
Dalam pengembangan aplikasi modern, terdapat dua jenis utama database, yaitu SQL (Relational Database) dan NoSQL (Non-Relational Database). SQL memiliki struktur tabel yang kaku, sementara NoSQL — seperti MongoDB — menawarkan fleksibilitas tinggi dengan format mirip JSON. MongoDB sangat cocok untuk aplikasi yang dinamis seperti e-commerce, karena mendukung data kompleks dan beragam tanpa harus mengubah struktur database. Selain itu, MongoDB menggunakan JavaScript untuk query-nya, membuat integrasi dengan Node.js dan React menjadi lebih mudah dan efisien.
2.2 Instalasi MongoDB Lokal
Kita sudah memahami kenapa MongoDB menjadi pilihan tepat untuk aplikasi modern. Sekarang, saatnya beralih dari teori ke praktik!
Di bagian ini, Anda akan menginstal MongoDB langsung di komputer agar bisa membuat dan mengelola database sendiri. Dengan instalasi lokal, Anda bisa bereksperimen bebas tanpa perlu koneksi internet atau layanan cloud, ini sangat cocok untuk latihan dasar sebelum nanti kita menggunakan MongoDB Atlas (cloud database) di bagian berikutnya.
Sebelum memulai, pastikan koneksi internet Anda stabil dan tersedia ruang penyimpanan yang cukup, karena MongoDB membutuhkan beberapa ratus megabyte untuk proses instalasi. Setelah itu, pilih panduan instalasi sesuai sistem operasi yang Anda gunakan.
2.2.1 Instalasi di Windows
Langkah 1: Download MongoDB
- Buka situs resmi: mongodb.com/try/download/community
- Pilih pengaturan berikut:
- Version: 7.0.x (latest)
- Platform: Windows
- Package: MSI
- Klik Download untuk memulai unduhan.
Langkah 2: Install MongoDB
- Setelah file .msi terunduh, klik dua kali untuk memulai instalasi.
- Klik Next, lalu setujui License Agreement.
- Pilih opsi Complete (recommended).
- Pada bagian Service Configuration, pastikan:
- Install MongoD as a Service dicentang (penting!)
- Service Name: MongoDB
- Data Directory: C:\Program Files\MongoDB\Server\7.0\data
- Log Directory: C:\Program Files\MongoDB\Server\7.0\log
- Install MongoDB Compass juga dicentang
- Klik Install, tunggu hingga selesai, lalu Finish.
Langkah 4: Menjalankan MongoDB Service
Biasanya MongoDB otomatis berjalan sebagai Windows Service. Jika belum aktif, jalankan perintah berikut:
# Start MongoDB
net start MongoDB
# Check status
sc query MongoDB
Langkah 5: Menguji Koneksi
Sekarang, coba buka MongoDB shell dengan perintah:
# Buka MongoDB Shell
mongosh
# Anda akan masuk ke shell MongoDB
# Coba command:
show dbs
Anda akan melihat daftar database default seperti admin, config, dan local.
Pada versi terbaru MongoDB, Anda mungkin menyadari adanya perubahan penting: MongoDB Shell (mongosh) tidak lagi disertakan secara otomatis dalam instalasi MongoDB Server. Artinya, jika Anda ingin menggunakan command-line interface resmi untuk berinteraksi dengan database, Anda perlu menginstal mongosh secara terpisah. Banyak developer awalnya mengira mongosh tersedia secara langsung setelah memasang MongoDB Server, namun perubahan ini memang diterapkan untuk memisahkan pengelolaan tool CLI dari server.
Untuk membantu Anda memulai, berikut adalah langkah-langkah instalasi dan konfigurasi mongosh di Windows dengan urutan yang jelas dan mudah diikuti.
1. Mengunduh mongosh
Pertama, kunjungi halaman resmi MongoDB Shell dan unduh installer untuk Windows (biasanya berbentuk file .msi). Di halaman tersebut, Anda cukup memilih versi sistem operasi Anda lalu menekan tombol unduh.
2. Menjalankan Installer
Setelah file .msi selesai diunduh, buka file tersebut dan ikuti seluruh instruksi instalasi. Proses ini akan memasang mongosh ke direktori seperti:
C:\Program Files\MongoDB\mongosh\bin
3. Menambahkan mongosh ke PATH
Agar Anda dapat menjalankan perintah mongosh dari Command Prompt atau PowerShell tanpa perlu mengetikkan lokasi lengkap folder instalasinya, Anda perlu menambahkan folder bin ke dalam variabel lingkungan PATH.
Caranya sama seperti menambahkan PATH pada tools umum lainnya.
4. Memverifikasi Instalasi
Setelah konfigurasi selesai, buka Command Prompt atau PowerShell baru, kemudian ketik:
mongosh --version
Jika versi muncul, berarti mongosh telah terpasang dan dapat digunakan dengan benar.
Alternatif: Mengakses mongosh Melalui MongoDB Compass
Jika Anda menggunakan MongoDB Compass, Anda juga dapat membuka mongosh langsung dari antarmuka Compass tanpa perlu membuka terminal. Compass menyediakan tombol Open MongoDB Shell, sehingga Anda dapat menjalankan perintah mongosh secara langsung di dalam aplikasi tersebut.
Fitur ini memudahkan Anda untuk mulai bekerja tanpa harus berpindah aplikasi, terutama jika Anda baru memulai menggunakan MongoDB.
Berikut langkah-langkah untuk mengunduh dan menginstal mongosh di Windows:
- Unduh mongosh: Kunjungi halaman unduhan resmi MongoDB Shell di situs web MongoDB.
- Pilih Platform: Pastikan Anda memilih platform "Windows 64-bit (8.1+) (MSI)".
2.2.2 Instalasi di Mac dengan Homebrew
Kalau Anda pengguna Mac, Anda bisa menginstal MongoDB dengan sangat mudah menggunakan Homebrew, yaitu manajer paket populer di macOS. Prosesnya cepat dan bisa dilakukan langsung dari terminal.
Langkah 1: Instal Homebrew
Jika Anda belum punya Homebrew, jalankan perintah berikut di terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Langkah 2: Instal MongoDB
Selanjutnya, tambahkan repository MongoDB dan instal paketnya dengan perintah berikut:
# Tambahkan MongoDB tap
brew tap mongodb/brew
# Install MongoDB Community Edition
brew install mongodb-community@7.0
# Lihat file yang diinstall
brew list mongodb-community
Langkah 3: Menjalankan MongoDB
# Start MongoDB as background service
brew services start mongodb-community
# Check status
brew services list | grep mongodb
Jika statusnya started, berarti MongoDB sudah berjalan dengan baik di sistem Anda.
Langkah 4: Verifikasi Instalasi
# Check version
mongosh --version
# Test connection
mongosh
# Di dalam mongosh shell:
show dbs
exit
2.2.3 Instalasi MongoDB di Linux (Ubuntu/Debian)
Bagi Anda pengguna Linux, instalasi MongoDB juga bisa dilakukan langsung lewat terminal. Prosesnya terdiri dari empat langkah utama: menambahkan repository, menginstal paket, menjalankan layanan, dan memverifikasi instalasi.
Langkah 1: Import Public Key
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
Langkah 2: Tambahkan Repository MongoDB
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Langkah 3: Instal dan Jalankan MongoDB
# Update package database
sudo apt-get update
# Install MongoDB
sudo apt-get install -y mongodb-org
# Start MongoDB
sudo systemctl start mongod
# Enable auto-start on boot
sudo systemctl enable mongod
# Check status
sudo systemctl status mongod
Langkah 4: Verifikasi Instalasi
Untuk memastikan semuanya berfungsi, jalankan:
mongosh --version
mongosh
2.2.4 Troubleshooting MongoDB
Jika Anda menemukan kendala pada saat menggunakan MongoDB, perhatikan tabel troubleshooting berikut:
Selamat! Kini MongoDB sudah berhasil Anda instal di komputer Anda. Sebelum lanjut ke tahap berikutnya, yuk kita pastikan instalasi MongoDB Anda benar-benar siap dipakai.
2.2.5 Melakukan Verifikasi Instalasi MongoDB (Hands-On)
Di bagian ini, Anda akan masuk ke vibe coding mode untuk melakukan verifikasi instalasi MongoDB secara langsung. Anda akan menuliskan sebuah script sederhana untuk menguji koneksi ke mongodb://localhost:27017/test dan memastikan bahwa instalasi MongoDB di komputer Anda telah berjalan dengan benar. Aktivitas ini penting untuk memastikan bahwa Node.js dapat berkomunikasi dengan MongoDB tanpa hambatan. Tujuannya adalah memastikan koneksi berhasil, menampilkan pesan keberhasilan, atau menampilkan error apabila terjadi masalah.
Langkah-langkah coding:
1. Buat folder project baru
mkdir mongodb-test
cd mongodb-test
npm init -y
npm install mongoose
2. Buat file baru dengan nama test-connection.js.
3. Tulis script secara manual (Gunakan editor kode Anda).
4. Jalankan script.
5. Lihat hasilnya. Jika berhasil, terminal Anda akan menampilkan pesan bahwa koneksi ke MongoDB sukses.
💬 Ilustrasi:
Aiman dan Aila pun tersenyum puas — MongoDB berhasil diinstal dan bisa diakses dari Node.js! 🚀
Tips: Jika muncul error, pastikan MongoDB service sedang aktif:
- Windows: sc query MongoDB
- Mac: brew services list
- Linux: sudo systemctl status mongod
Kesimpulan
Menginstal MongoDB secara lokal memungkinkan Anda menjalankan database langsung dari komputer tanpa bergantung pada server eksternal. Dengan instalasi lokal, Anda dapat belajar, menguji, dan mengembangkan aplikasi lebih cepat dan fleksibel. Prosesnya mencakup mengunduh MongoDB dari situs resmi, mengatur environment path, menjalankan MongoDB server (mongod), serta mengaksesnya melalui terminal (mongosh).
Setelah instalasi berhasil diverifikasi, Anda dapat mulai membuat database, collection, dan dokumen secara offline. Ini memberi Anda pemahaman langsung mengenai cara kerja MongoDB dari level dasar—mulai dari penyimpanan data hingga eksekusi query—sebelum nantinya berpindah ke penggunaan GUI seperti MongoDB Compass untuk pengelolaan data yang lebih visual.
Komentar
Posting Komentar