Node.js - MySQL Join: Panduan Pemula

Hai, para pemrogram yang sedang belajar! Hari ini, kita akan memulai perjalanan menarik ke dunia Node.js dan MySQL joins. Jangan khawatir jika Anda masih pemula dalam pemrograman – saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatu secara langkah demi langkah. Pada akhir panduan ini, Anda akan dapat menggabungkan tabel seperti seorang ahli!

Node.js - MySQL Join

Mengenali Konsep Dasar

Sebelum kita memasuki dunia joins, mari kita siapkan panggung dengan beberapa konsep dasar. Bayangkan Anda sedang mengorganisir pameran klub sekolah. Anda memiliki dua daftar: satu untuk siswa dan lainnya untuk klub. Menggabungkan daftar ini akan membantu Anda melihat siswa yang berada di klub mana. Itu sebenarnya apa yang kita lakukan dengan database!

Menyiapkan Lingkungan Kerja

Pertama-tama, pastikan kita memiliki semua yang diperlukan:

  1. Install Node.js dari situs resmi.
  2. Install MySQL dan siapkan database.
  3. Install modul MySQL untuk Node.js dengan menjalankan perintah:
npm install mysql

Sekarang, mari kita membuat koneksi ke database kita:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'school_club_fair'
});

connection.connect((err) => {
if (err) throw err;
console.log('Terhubung ke database!');
});

Kode ini membuat koneksi kita ke database. Ganti 'your_username' dan 'your_password' dengan kredensial MySQL Anda.

Tabel Members

Mari kita buat tabel pertama kita: Members. Tabel ini akan mewakili siswa-siswanya.

CREATE TABLE Members (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);

INSERT INTO Members (name, email) VALUES
('Alice', '[email protected]'),
('Bob', '[email protected]'),
('Charlie', '[email protected]');

Untuk membuat tabel ini di Node.js:

connection.query(`
CREATE TABLE Members (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
)
`, (err) => {
if (err) throw err;
console.log('Tabel Members dibuat!');
});

const members = [
['Alice', '[email protected]'],
['Bob', '[email protected]'],
['Charlie', '[email protected]']
];

connection.query('INSERT INTO Members (name, email) VALUES ?', [members], (err) => {
if (err) throw err;
console.log('Anggota ditambahkan!');
});

Tabel Committees

Sekarang, mari kita buat tabel Committees, yang mewakili klub-klub:

CREATE TABLE Committees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
member_id INT,
FOREIGN KEY (member_id) REFERENCES Members(id)
);

INSERT INTO Committees (name, member_id) VALUES
('Chess Club', 1),
('Debate Team', 2),
('Drama Club', 3),
('Chess Club', 2);

Di Node.js:

connection.query(`
CREATE TABLE Committees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
member_id INT,
FOREIGN KEY (member_id) REFERENCES Members(id)
)
`, (err) => {
if (err) throw err;
console.log('Tabel Committees dibuat!');
});

const committees = [
['Chess Club', 1],
['Debate Team', 2],
['Drama Club', 3],
['Chess Club', 2]
];

connection.query('INSERT INTO Committees (name, member_id) VALUES ?', [committees], (err) => {
if (err) throw err;
console.log('Klub ditambahkan!');
});

Sekarang kita memiliki tabel-tabel yang siap, mari kita jelajahi jenis-jenis join!

MySQL INNER JOIN

INNER JOIN mengembalikan catatan yang memiliki nilai yang cocok di kedua tabel. Itu seperti mencari siswa yang pasti berada di sebuah klub.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
INNER JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Kueri ini akan menunjukkan semua anggota dan klub yang mereka ikuti. Jika seorang anggota tidak berada di mana-mana klub, mereka tidak akan muncul dalam hasil.

MySQL LEFT JOIN

LEFT JOIN mengembalikan semua catatan dari tabel kiri (Members), dan catatan yang cocok dari tabel kanan (Committees). Itu seperti mencantumkan semua siswa, menunjukkan klub mereka jika ada.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
LEFT JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Ini akan menunjukkan semua anggota, bahkan jika mereka tidak berada di mana-mana klub (klub mereka akan NULL).

MySQL RIGHT JOIN

RIGHT JOIN mengembalikan semua catatan dari tabel kanan (Committees), dan catatan yang cocok dari tabel kiri (Members). Itu seperti mencantumkan semua klub, menunjukkan anggota jika ada.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
RIGHT JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Ini akan menunjukkan semua klub, bahkan jika mereka tidak memiliki anggota (nama anggota akan NULL).

Perbandingan Jenis JOIN

Berikut adalah tabel ringkasan jenis-jenis JOIN:

Jenis JOIN Deskripsi Kasus Penggunaan
INNER JOIN Mengembalikan catatan yang cocok dari kedua tabel Ketika Anda ingin data yang ada di kedua tabel
LEFT JOIN Mengembalikan semua catatan dari tabel kiri, catatan cocok dari tabel kanan Ketika Anda ingin semua catatan dari tabel pertama, tanpa peduli apakah ada yang cocok di tabel kedua
RIGHT JOIN Mengembalikan semua catatan dari tabel kanan, catatan cocok dari tabel kiri Ketika Anda ingin semua catatan dari tabel kedua, tanpa peduli apakah ada yang cocok di tabel pertama

Kesimpulan

Selamat! Anda telah belajar tentang MySQL joins di Node.js. Ingat, joins adalah seperti kerja detektif – Anda menghubungkan informasi dari sumber yang berbeda untuk mendapatkan gambaran yang lengkap. Latih dengan berbagai jenis scenario, dan segera Anda akan menjadi ahli dalam hubungan database!

Terus coding, tetap kurios, dan jangan lupa untuk bersenang-senang dalam perjalanan. Selamat bergabung!

Credits: Image by storyset