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
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:
- Reusability — Tulis sekali, pakai berkali-kali
- Organization — Kode terbagi menjadi bagian-bagian kecil yang manageable
- Maintainability — Kalau ada bug, cuma perlu fix di satu tempat
- 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
thissendiri — mengambilthisdari 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
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
Prompt AI
Jelaskan kapan menggunakan SQL vs NoSQL. Kelebihan masing-masing?
Pertanyaan Reflektif
Pikirkan aplikasi yang sedang kamu bangun. Pilih SQL atau NoSQL?