Lewati ke konten utama
menjadi.dev
Chapter 4.3 Data & Storage Menengah

SQL vs NoSQL: Dua Dunia Database

Perbedaan database relasional dan non-relasional

Tujuan Pembelajaran

  • Memahami perbedaan SQL dan NoSQL
  • Bisa memilih database yang tepat

Analogi

Diagram

      SQL = Lemari Arsip (Terstruktur):
| ID | Nama  | Jabatan | Gaji |
| 1  | Budi  | Manager | 10jt |

NoSQL = Gudang Fleksibel:
| {name: 'Budi', skills: ['JS']}   |
| {title: 'Post 1', tags: ['web']} |
    

SQL = terstruktur, NoSQL = fleksibel

Penjelasan Konsep

Bayangkan kamu adalah koki di restoran. Setiap kali ada pesanan nasi goreng, kamu tidak perlu menulis ulang resep dari awal — kamu sudah punya resep tersimpan di otakmu. Kamu tinggal ikuti langkah-langkahnya, masukkan bahan yang dipesan, dan hasilnya selalu nasi goreng yang enak. Fungsi dalam pemrograman bekerja dengan cara yang sama persis.

Fungsi (Function)

Fungsi (Function) adalah blok kode yang dirancang untuk melakukan tugas tertentu dan bisa digunakan berulang kali.

Fungsi menerima input (parameter), memprosesnya, dan menghasilkan output (return value). Manfaat menggunakan fungsi:

  1. Reusability — Tulis sekali, pakai berkali-kali
  2. Organization — Kode terbagi menjadi bagian-bagian kecil yang manageable
  3. Maintainability — Kalau ada bug, cuma perlu fix di satu tempat
  4. Abstraction — Sembunyikan kompleksitas, tunjukkan hanya yang penting

Tiga Cara Membuat Fungsi

Function Declaration

Cara klasik dengan kata kunci function:

function sapa(nama) {
  return `Halo, ${nama}!`;
}

Ciri: bisa dipanggil SEBELUM dideklarasikan (hoisting).

Function Expression

Fungsi disimpan dalam variabel:

const sapa = function(nama) {
  return `Halo, ${nama}!`;
};

Ciri: tidak bisa dipanggil sebelum didefinisikan, lebih fleksibel.

3. Arrow Function (ES6) — REKOMENDASI — Sintaks ringkas modern:

const sapa = (nama) => `Halo, ${nama}!`;

Arrow function punya beberapa keuntungan:

  • Sintaks lebih ringkas,

Terutama untuk fungsi sederhana

  • Tidak mengikat this sendiri — mengambil this dari scope di sekitarnya (lexical this)
  • Sempurna untuk callback dan method array (map, filter, reduce)

Parameter dan Return Value

Parameter adalah input fungsi — variabel yang dideklarasikan saat fungsi dibuat.

Argument adalah nilai aktual yang diberikan saat fungsi dipanggil.

function tambah(a, b) {  // a dan b adalah parameter
  return a + b;          // return mengembalikan nilai
}
const hasil = tambah(5,

3);  // 5 dan 3 adalah argument

Default Parameter (ES6)

function sapa(nama = 'Teman') {
  return `Halo, ${nama}!`;
}
sapa();        //

Contoh Kode

sql
-- SQL
CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100),
  email VARCHAR(100) UNIQUE
);

INSERT INTO users (name, email) VALUES ('Budi', 'budi@mail.com');

SELECT u.name, o.total
FROM users u
JOIN orders o ON u.id = o.user_id;

-- NoSQL (MongoDB)
db.users.insertOne({
  name: 'Budi',
  email: 'budi@mail.com',
  skills: ['JavaScript', 'Python'],
  address: { city: 'Jakarta' }
});

db.users.find({ 'address.city': 'Jakarta' });

Penjelasan Kode

Baris 2-5: CREATE TABLE. Baris 7: INSERT. Baris 9-11: JOIN. Baris 14-19: NoSQL insert dokumen. Baris 21: Query dokumen.

Prompt AI

Jelaskan kapan menggunakan SQL vs NoSQL. Kelebihan masing-masing?

Pertanyaan Reflektif

Pikirkan aplikasi yang sedang kamu bangun. Pilih SQL atau NoSQL?