Menghubungkan Node.js dengan Database SQL dan NoSQL

Menghubungkan Node.js dengan Database SQL dan NoSQL

2025-06-09

Dalam pengembangan aplikasi backend menggunakan Node.js, salah satu hal paling penting adalah bagaimana mengelola data dengan efektif. Untuk itu, kita butuh koneksi yang baik dengan database. Pada dasarnya, ada dua jenis database yang umum dipakai: SQL (Relasional) dan NoSQL (Non-Relasional).

Di artikel ini, kita akan bahas perbedaan antara SQL dan NoSQL, bagaimana cara menghubungkan Node.js ke kedua tipe database ini, serta tips agar koneksi database di Node.js kamu berjalan lancar dan mudah dikelola.


Mengenal Database SQL dan NoSQL

Apa itu Database SQL?

Database SQL adalah jenis database relasional yang menyimpan data dalam tabel dengan struktur yang ketat dan terdefinisi melalui schema. Contohnya adalah MySQL, PostgreSQL, dan Microsoft SQL Server. Cocok digunakan untuk aplikasi yang membutuhkan integritas data tinggi, transaksi kompleks, dan relasi antar data yang jelas.

Apa itu Database NoSQL?

NoSQL adalah database non-relasional yang menyimpan data dalam format yang lebih fleksibel, seperti dokumen, key-value, graph, atau column. Contoh populer adalah MongoDB, Redis, dan Cassandra. NoSQL sangat cocok untuk aplikasi dengan data semi-terstruktur, kebutuhan skalabilitas tinggi, dan cepat berkembang.


Menghubungkan Node.js dengan Database SQL (MySQL/PostgreSQL)

Untuk menghubungkan Node.js dengan database SQL, kita biasanya menggunakan package khusus seperti mysql2 untuk MySQL atau pg untuk PostgreSQL.

Contoh Koneksi ke MySQL dengan mysql2

Pertama, install package mysql2:

npm install mysql2

Kemudian buat koneksi ke database MySQL:

const mysql = require('mysql2');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'passwordmu',
  database: 'mydb'
});

connection.connect(err => {
  if (err) {
    return console.error('Koneksi gagal: ' + err.message);
  }
  console.log('Terhubung ke database MySQL!');
});

// Contoh query sederhana
connection.query('SELECT * FROM users', (err, results) => {
  if (err) throw err;
  console.log(results);
});

connection.end();

Menghubungkan Node.js dengan Database NoSQL (MongoDB)

MongoDB adalah salah satu database NoSQL yang paling populer dan banyak digunakan bersama Node.js. Untuk memudahkan interaksi dengan MongoDB, kita sering menggunakan mongoose sebagai ODM (Object Data Modeling).

Contoh Koneksi MongoDB dengan Mongoose

Install package mongoose:

npm install mongoose

Lalu buat koneksi seperti ini:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydb', {
  useNewUrlParser: true,
  useUnifiedTopology: true
}).then(() => {
  console.log('Terhubung ke MongoDB!');
}).catch(err => {
  console.error('Gagal koneksi ke MongoDB:', err.message);
});

Perbedaan Utama SQL vs NoSQL

Aspek SQL NoSQL
Struktur Data Tabel dengan schema tetap Format fleksibel (dokumen, key-value)
Skema Ketat dan terdefinisi Fleksibel, bisa berubah-ubah
Transaksi Mendukung transaksi kompleks Dukungan transaksi terbatas
Skalabilitas Vertikal (tambah resource server) Horizontal (tambah node server)
Contoh Database MySQL, PostgreSQL, SQL Server MongoDB, Redis, Cassandra

Tips Koneksi Database di Node.js agar Efektif

  1. Gunakan Async/Await

    Untuk menjaga kode tetap rapi dan mudah dibaca, gunakan async/await saat melakukan operasi database.

  2. Tangani Error dengan Baik

    Selalu gunakan blok try...catch atau callback error handling untuk memastikan aplikasi tidak crash saat koneksi gagal.

  3. Pakai ORM/ODM jika Perlu

    Gunakan ORM (seperti Sequelize untuk SQL) atau ODM (seperti Mongoose untuk MongoDB) untuk memudahkan pengelolaan model dan query.

  4. Connection Pooling

    Untuk performa lebih baik, gunakan connection pooling agar koneksi database dapat dipakai ulang tanpa harus buat koneksi baru setiap request.


Kesimpulan: SQL atau NoSQL, Mana yang Harus Dipilih?

Pemilihan antara SQL dan NoSQL tergantung pada kebutuhan proyekmu:

  • Gunakan SQL jika data yang akan disimpan bersifat sangat terstruktur dan membutuhkan konsistensi data tinggi.
  • Pilih NoSQL untuk aplikasi dengan data yang fleksibel, cepat berubah, atau membutuhkan skalabilitas horizontal.

Node.js sangat fleksibel untuk diintegrasikan dengan kedua jenis database ini. Jadi, kamu bisa gunakan keduanya dalam satu aplikasi sesuai kebutuhan.