Kursus: Membuat Website dari Nol

Membuat API Sederhana

API (Application Programming Interface) memungkinkan komunikasi antara frontend dan backend. Dalam modul ini, kita akan membuat API sederhana menggunakan Node.js dan Express.js, serta menyimpan data di MongoDB.

1. Instalasi dan Setup

Pastikan Node.js telah terinstal. Kemudian, buat folder proyek dan inisialisasi dengan:

mkdir api-sederhana && cd api-sederhana
npm init -y

Instal Express dan Mongoose untuk koneksi ke MongoDB:

npm install express mongoose cors dotenv

2. Membuat Server dengan Express

Buat file server.js:

const express = require('express');
const mongoose = require('mongoose');
require('dotenv').config();

const app = express();
app.use(express.json());

// Koneksi ke MongoDB
mongoose.connect(process.env.MONGO_URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true
}).then(() => console.log("Database Connected")).catch(err => console.log(err));

app.get('/', (req, res) => {
    res.send('API Sederhana Berjalan');
});

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server berjalan di port ${PORT}`));

Tambahkan file .env untuk menyimpan koneksi database:

MONGO_URI=mongodb://localhost:27017/api_sederhana

3. Membuat Model Database

Buat folder models dan file User.js:

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
    name: String,
    email: String,
    age: Number
});

module.exports = mongoose.model('User', UserSchema);

4. Membuat Endpoint CRUD

Buat folder routes dan file userRoutes.js:

const express = require('express');
const User = require('../models/User');
const router = express.Router();

// Tambah User
router.post('/users', async (req, res) => {
    try {
        const user = new User(req.body);
        await user.save();
        res.status(201).json(user);
    } catch (err) {
        res.status(400).json({ error: err.message });
    }
});

// Ambil Semua User
router.get('/users', async (req, res) => {
    const users = await User.find();
    res.json(users);
});

// Ambil User Berdasarkan ID
router.get('/users/:id', async (req, res) => {
    const user = await User.findById(req.params.id);
    res.json(user);
});

// Update User
router.put('/users/:id', async (req, res) => {
    const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true });
    res.json(user);
});

// Hapus User
router.delete('/users/:id', async (req, res) => {
    await User.findByIdAndDelete(req.params.id);
    res.json({ message: "User dihapus" });
});

module.exports = router;

5. Menghubungkan Routes ke Server

Tambahkan ini di server.js:

const userRoutes = require('./routes/userRoutes');
app.use('/api', userRoutes);

6. Menjalankan Server

Jalankan server dengan:

node server.js

Atau jika menggunakan nodemon (lebih praktis):

npx nodemon server.js

7. Menguji API dengan Postman

  • POST /api/users → Tambah user
  • GET /api/users → Ambil semua user
  • GET /api/users/:id → Ambil user berdasarkan ID
  • PUT /api/users/:id → Update user
  • DELETE /api/users/:id → Hapus user

Dengan ini, API sederhana sudah bisa digunakan!

Let's Chat!