Jika Sobat Digital sedang membangun aplikasi dengan Node.js dan mencari cara untuk mengelola database dengan lebih mudah, Sequelize bisa jadi solusinya.
Bayangkan, dengan sedikit kode, kamu bisa mengelola database secara efisien, mendefinisikan relasi antar-tabel, dan menangani data dengan fleksibel, itulah kehebatan sequelize.
Mari simak lebih lanjut dan pelajari cara menggunakan sequelize untuk mengoptimalkan pengembangan aplikasimu.
Daftar Isi Artikel
ToggleMemulai Project Node.js: Instalasi dan Setup Awal
Panduan langkah demi langkah untuk membantu kamu memulai proyek Node.js, yaitu:
1. Instalasi Node.js dan npm
Kunjungi nodejs.org dan unduh versi terbaru dari Node.js sesuai dengan sistem operasi, yaitu Windows, macOS, atau Linux. Instalasi Node.js juga akan menginstal npm (Node Package Manager) secara otomatis.
Setelah instalasi selesai, buka terminal atau command prompt dan jalankan perintah berikut untuk memastikan Node.js dan npm terinstal dengan benar:node -v npm -v
2. Membuat Proyek Baru
Langkah berikutnya buat folder baru untuk proyekmu: mkdir my-node-project cd my-node-project
Lalu jalankan perintah berikut untuk membuat file package.json, yang menyimpan informasi tentang proyek dan dependensi yang diperlukan.
npm init -y
Perintah ini akan membuat file package.json dengan pengaturan default.
3. Instalasi Express.js
Express adalah framework web yang populer untuk Node.js. Instal Express dengan menjalankan perintah berikut:
npm install express
4. Membuat File Server
Langkah keempat buat file baru bernama server.js atau app.js di dalam direktori proyek kamu.
Buka file tersebut dengan editor teks pilihan kamu (seperti Visual Studio Code) dan tambahkan kode berikut untuk membuat server dasar:
const express = require(‘express’); const app = express(); const port = 3000; app.get(‘/’, (req, res) => { res.send(‘Hello World!’); }); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });
5. Menjalankan Server
Terakhir, kembali ke terminal dan jalankan server dengan perintah:
node server.js
Lalu buka browser dan navigasikan ke http://localhost:3000. Jika semuanya berjalan dengan baik, kamu akan melihat pesan “Hello World!”.
Baca Juga: Node JS Adalah: Pengertian, Cara Kerja, Kelebihan dan Contoh Penggunaannya
Instalasi Sequelize ORM dan Koneksi ke MySQL di Node.js
Panduan instalasi Sequelize ORM dan cara menghubungkannya ke database MySQL adalah sebagai berikut:
1. Persiapan Awal dan Buat Proyek Node.js Baru
Sebelum memulai, pastikan kamu sudah menginstal Node.js dan MySQL di sistem. Juga, pastikan MySQL server berjalan.
Buat direktori proyek melalui kode berikut:
mkdir my-sequelize-project cd my-sequelize-project
Kemudian inisialisasi proyek:
npm init -y
3. Instalasi Dependensi
Langkah berikutnya Instal Sequelize dan driver MySQL yang diperlukan menggunakan npm:
npm install sequelize mysql2
4. Konfigurasi Koneksi Database
Buat folder bernama ‘config’ dan di dalamnya buat file database.config.js.module.exports = { HOST: “localhost”, USER: “root”, // Ganti dengan username MySQL Anda PASSWORD: “your_password”, // Ganti dengan password MySQL Anda DB: “your_database_name”, // Ganti dengan nama database Anda DIALECT: “mysql”, };
Selanjutnya buat folder bernama ‘database’ dan di dalamnya buat file index.js
const { Sequelize } = require(“sequelize”); const { DB, USER, PASSWORD, HOST, DIALECT } = require(“../config/database.config”); const sequelize = new Sequelize(DB, USER, PASSWORD, { host: HOST, dialect: DIALECT, }); module.exports = sequelize;
5. Menguji Koneksi
Buat file app.js di direktori proyek kamu untuk menguji koneksi ke database:
const sequelize = require(“./database/index”); sequelize.authenticate() .then(() => { console.log(‘Connection has been established successfully.’); }) .catch(err => { console.error(‘Unable to connect to the database:’, err); });
6. Menjalankan Aplikasi
Langkah selanjutnya jalankan aplikasi dengan perintah berikut:
node app.js
Jika koneksi berhasil, kamu akan melihat pesan “Connection has been established successfully.”
7. Membuat Model
Buat folder bernama models dan di dalamnya buat file book.model.js:
const { DataTypes } = require(“sequelize”); const sequelize = require(“../database/index”); const Book = sequelize.define(“Book”, { title: { type: DataTypes.STRING, allowNull: false, }, author: { type: DataTypes.STRING, allowNull: false, }, release_date: { type: DataTypes.DATE, allowNull: false, }, }); module.exports = Book;
8. Sinkronisasi Model dengan Database
Di dalam file app.js, tambahkan kode berikut untuk menyinkronkan model dengan database:
const Book = require(“./models/book.model”); sequelize.sync({ force: true }) .then(() => { console.log(“Database & tables created!”); }) .catch(err => { console.error(‘Unable to create table:’, err); });
9. Menjalankan Kembali Aplikasi
Terakhir, jalankan kembali aplikasi dengan perintah berikut:
node app.js
Kamu akan melihat pesan “Database & tables created!” jika tabel telah berhasil dibuat.
Membuat CRUD dengan Sequelize dan Express JS
Panduan untuk membuat CRUD (Create, Read, Update, Delete) API menggunakan Express dan Sequelize dengan database MySQL, yaitu:
1. Persiapan Proyek
Pastikan kamu telah menginstal Node.js. Jika belum, kamu dapat mengunduhnya dari nodejs.org. Kemudian buat direktori baru dan inisialisasi proyek Node.js:
mkdir my-crud-api cd my-crud-api npm init -y
2. Instalasi Dependensi
Instal Express, Sequelize, MySQL2, dan Nodemon:
npm install express sequelize mysql2 npm install –save-dev nodemon
3. Konfigurasi Database
Buat folder config dan di dalamnya buat file db.config.js:
module.exports = { HOST: “localhost”, USER: “root”, // Ganti dengan username MySQL Anda PASSWORD: “your_password”, // Ganti dengan password MySQL Anda DB: “your_database_name”, // Ganti dengan nama database Anda DIALECT: “mysql”, };
4. Membuat Koneksi Sequelize
Buat folder database dan di dalamnya buat file index.js:
module.exports = { HOST: “localhost”, USER: “root”, // Ganti dengan username MySQL Anda PASSWORD: “your_password”, // Ganti dengan password MySQL Anda DB: “your_database_name”, // Ganti dengan nama database Anda DIALECT: “mysql”, };
5. Membuat Model
Buat folder models dan di dalamnya buat file book.model.js:
const { DataTypes } = require(“sequelize”); const sequelize = require(“../database/index”); const Book = sequelize.define(“Book”, { title: { type: DataTypes.STRING, allowNull: false, }, author: { type: DataTypes.STRING, allowNull: false, }, summary: { type: DataTypes.TEXT, allowNull: false, }, }); module.exports = Book;
6. Membuat Controller
Buat folder controllers dan di dalamnya buat file book.controller.js:const Book = require(“../models/book.model”); exports.create = async (req, res) => { try { const book = await Book.create(req.body); res.status(201).json({ message: “Book created”, data: book }); } catch (error) { res.status(500).json({ message: error.message }); } }; exports.findAll = async (req, res) => { try { const books = await Book.findAll(); res.status(200).json(books); } catch (error) { res.status(500).json({ message: error.message }); } }; exports.findOne = async (req, res) => { try { const book = await Book.findByPk(req.params.id); if (book) { res.status(200).json(book); } else { res.status(404).json({ message: “Book not found” }); } } catch (error) { res.status(500).json({ message: error.message }); } }; exports.update = async (req, res) => { try { const [updated] = await Book.update(req.body, { where: { id: req.params.id } }); if (updated) { const updatedBook = await Book.findByPk(req.params.id); res.status(200).json({ message: “Book updated”, data: updatedBook }); } else { res.status(404).json({ message: “Book not found” }); } } catch (error) { res.status(500).json({ message: error.message }); } }; exports.delete = async (req, res) => { try { const deleted = await Book.destroy({ where: { id: req.params.id } }); if (deleted) { res.status(204).send(); } else { res.status(404).json({ message: “Book not found” }); } } catch (error) { res.status(500).json({ message: error.message }); } };
7. Membuat Rute
Buat folder routes dan di dalamnya buat file book.routes.js:
const express = require(“express”); const bookController = require(“../controllers/book.controller”); const router = express.Router(); router.post(“/”, bookController.create); router.get(“/”, bookController.findAll); router.get(“/:id”, bookController.findOne); router.put(“/:id”, bookController.update); router.delete(“/:id”, bookController.delete); module.exports = router;
8. Mengatur Server Express
Buat file app.js di direktori proyek kamu:
const express = require(“express”); const cors = require(“cors”); const db = require(“./database/index”); const bookRoutes = require(“./routes/book.routes”); const app = express(); const port = 3000; app.use(cors()); app.use(express.json()); app.use(“/api/books”, bookRoutes); db.sync().then(() => { console.log(“Database synced”); }).catch(err => console.error(“Failed to sync database:”, err)); app.listen(port, () => console.log(`Server running at http://localhost:${port}`));
9. Menjalankan Aplikasi
Jalankan aplikasi menggunakan Nodemon untuk pengembangan:
npx nodemon app.js
Sekarang kamu dapat mengakses API CRUD di endpoint http://localhost:3000/api/books.
10. Menguji API
Pakai Postman atau alat serupa untuk menguji API dengan melakukan operasi CRUD:
- POST /api/books: Untuk menambahkan buku baru.
- GET /api/books: Untuk mendapatkan semua buku.
- GET /api/books/:id: Untuk mendapatkan buku berdasarkan ID.
- PUT /api/books/:id: Untuk memperbarui buku berdasarkan ID.
- DELETE /api/books/:id: Untuk menghapus buku berdasarkan ID.
Dengan langkah-langkah ini, kamu telah berhasil membuat CRUD API menggunakan Express dan Sequelize dengan database MySQL.
Baca Juga: CRUD Adalah : Fungsi & Pentingnya Menggunakan CRUD
Raih Keunggulan Kompetitif dengan Kursus ITBOX
Dengan mempelajari Sequelize, kamu tidak hanya akan meningkatkan efisiensi dalam pengelolaan database, tetapi juga memperkuat pondasi pengembangan aplikasi secara keseluruhan.
Jika kamu ingin memperdalam pengetahuan dan keterampilan lebih lanjut, kami sangat merekomendasikan untuk mengikuti Kursus Online Database di ITBOX.
Kursus ini menawarkan berbagai keuntungan menarik, termasuk materi yang komprehensif, akses seumur hidup ke video pembelajaran, dan fleksibilitas belajar sesuai dengan waktu kamu.
Mulailah perjalanan kamu di bidang database sekarang, dan optimalkan keterampilan di dunia pengembangan aplikasi bersama ITBOX!


