Node.js Gak Cuma Buat Pro Aja: Bikin Aplikasi Simpel Nan Canggih Bareng Kita!

Bikin Aplikasi Simpel Node.js & Express: Studi Kasus To-Do List API

PPLG

PPLG

Penulis

29 May 2026
26 x dilihat

Gaes, lagi nyari ide project buat ngasah skill Node.js kalian? Atau mungkin masih ngerasa Node.js itu cuma buat aplikasi-aplikasi gede doang? Wah, salah besar, ngab! Vibes-nya Node.js itu justru fleksibel banget, cocok buat apa aja, dari yang super simpel sampe yang kompleks. Nah, kali ini, kita bakal spill gimana caranya bikin aplikasi sederhana tapi punya fungsi yang mantul banget pake Node.js.

Pokoknya, artikel ini didesain biar kalian langsung nyoba dan ngerti. Gak usah khawatir kalau masih newbie, kita bakal pandu pelan-pelan. Siap-siap, karena setelah ini, kalian auto bisa bikin aplikasi yang keren!

Konsep Inti: Simple To-Do List API

Oke, skuy! Aplikasi apa sih yang mau kita bikin? Biar gampang dicerna dan banyak fungsinya, kita bakal bikin Simple To-Do List API. Jadi, intinya kita punya daftar tugas yang bisa di-manage lewat API. Kenapa API? Biar nanti ke depannya kalau mau disambungin ke front-end (web atau mobile), udah siap.

Fitur apa aja yang bakal ada di To-Do List API kita ini?

  • GET /todos: Buat ngambil semua daftar tugas.
  • GET /todos/:id: Buat ngambil satu tugas spesifik berdasarkan ID-nya.
  • POST /todos: Buat nambah tugas baru.
  • PUT /todos/:id: Buat ngedit tugas yang udah ada.
  • DELETE /todos/:id: Buat ngapus tugas.

Kita bakal pake framework Express.js biar lebih gampang ngurusin routing dan request-nya. Express ini kayak jembatan ajaib yang bikin Node.js lebih gampang dijadiin web server. Dan biar simpel, data tugasnya kita simpen di memori aja dulu (array JavaScript), gak pake database beneran. Tapi tenang, kalau udah paham konsepnya, migrasi ke database itu gampang banget!

Langkah-langkah Praktis: Bikin API To-Do List Kamu Sendiri

Yuk, langsung aja kita mulai ngodingnya! Pastikan kalian udah install Node.js dan npm (Node Package Manager) di laptop ya.

Langkah 1: Inisialisasi Project Node.js

Pertama, kita bikin folder project baru dan inisialisasi project Node.js kita.

mkdir simple-todo-api
cd simple-todo-api
npm init -y

Perintah npm init -y itu biar gak ditanyain banyak hal, auto dibuatin file package.json yang isinya default.

Langkah 2: Install Express.js

Nah, sekarang kita install Express.js, si framework andalan kita.

npm install express

Nanti di package.json kalian bakal ada express di bagian dependencies.

Langkah 3: Bikin File Server Utama (app.js)

Sekarang, kita bikin file app.js sebagai pusat aplikasi kita.

simple-todo-api/app.js

// Import Express biar bisa dipake
const express = require('express');
// Bikin instance aplikasi Express
const app = express();
// Port server kita mau jalan di mana
const PORT = process.env.PORT || 3000;

// Middleware biar aplikasi bisa nge-parse JSON dari request body
// Ini penting banget kalo kita mau terima data dari client (misal pas POST/PUT)
app.use(express.json());

// Ini data to-do list kita, sementara di memori aja
let todos = [
    { id: 1, title: 'Belajar Node.js', completed: false },
    { id: 2, title: 'Bikin Aplikasi API', completed: true },
    { id: 3, title: 'Nongkrong di Cafe', completed: false }
];

// Helper function buat generate ID baru
const generateId = () => {
    const maxId = todos.length > 0 ? Math.max(...todos.map(t => t.id)) : 0;
    return maxId + 1;
};

// --- ROUTES API ---

// 1. GET semua To-Do List
app.get('/todos', (req, res) => {
    // Balikin semua data todos dalam bentuk JSON
    res.json(todos);
});

// 2. GET To-Do List berdasarkan ID
app.get('/todos/:id', (req, res) => {
    const id = parseInt(req.params.id); // Ambil ID dari URL, jangan lupa jadiin angka
    const todo = todos.find(t => t.id === id); // Cari to-do nya

    if (todo) {
        res.json(todo); // Kalo ketemu, balikin
    } else {
        // Kalo gak ketemu, kasih status 404 (Not Found)
        res.status(404).json({ message: 'To-Do gak ketemu, ngab!' });
    }
});

// 3. POST To-Do List baru
app.post('/todos', (req, res) => {
    // Ambil data dari body request
    const { title, completed } = req.body;

    // Validasi sederhana, judul gak boleh kosong
    if (!title) {
        return res.status(400).json({ message: 'Judul to-do wajib diisi!' });
    }

    const newTodo = {
        id: generateId(), // Pake helper buat ID baru
        title: title,
        completed: completed || false // Default false kalo gak dikirim
    };

    todos.push(newTodo); // Tambahin ke array kita
    res.status(201).json(newTodo); // Balikin to-do yang baru dibuat, status 201 (Created)
});

// 4. PUT (Update) To-Do List berdasarkan ID
app.put('/todos/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const { title, completed } = req.body;

    const todoIndex = todos.findIndex(t => t.id === id); // Cari indeksnya

    if (todoIndex !== -1) { // Kalo to-do nya ketemu
        // Update data to-do nya
        todos[todoIndex] = {
            ...todos[todoIndex], // Copy data lama
            title: title || todos[todoIndex].title, // Kalo title dikirim, pake yang baru, kalo gak pake yang lama
            completed: typeof completed === 'boolean' ? completed : todos[todoIndex].completed // Sama kayak title
        };
        res.json(todos[todoIndex]); // Balikin data yang udah diupdate
    } else {
        res.status(404).json({ message: 'To-Do gak ketemu buat diupdate!' });
    }
});

// 5. DELETE To-Do List berdasarkan ID
app.delete('/todos/:id', (req, res) => {
    const id = parseInt(req.params.id);

    const initialLength = todos.length; // Simpen panjang array awal
    todos = todos.filter(t => t.id !== id); // Filter, sisain yang ID-nya beda

    if (todos.length < initialLength) { // Kalo ada yang kehapus
        res.status(204).send(); // Status 204 (No Content) kalo berhasil hapus dan gak perlu balikin data
    } else {
        res.status(404).json({ message: 'To-Do gak ketemu buat dihapus!' });
    }
});

// Ini biar server kita dengerin request di port yang udah ditentuin
app.listen(PORT, () => {
    console.log(`Server udah nyala nih, di http://localhost:${PORT}, skuy cek!`);
});

Langkah 4: Jalankan Aplikasi Node.js Kamu

Udah ngoding kan? Sekarang waktunya kita nyalain servernya!

node app.js

Kalo berhasil, di terminal kalian bakal muncul pesan kayak gini:

Server udah nyala nih, di http://localhost:3000, skuy cek!

Langkah 5: Uji Coba API Kamu

Nah, ini bagian seru-nya! Kita bisa coba API yang udah kita bikin pake tool kayak Postman, Insomnia, atau bahkan curl di terminal. Atau kalo mau gampang, buka browser aja untuk request GET.

  • GET /todos: Buka browser kalian ke http://localhost:3000/todos. Kalian bakal liat semua to-do list kita di sana. Goks!

    [
        {"id":1,"title":"Belajar Node.js","completed":false},
        {"id":2,"title":"Bikin Aplikasi API","completed":true},
        {"id":3,"title":"Nongkrong di Cafe","completed":false}
    ]
    
  • GET /todos/1: Coba http://localhost:3000/todos/1 buat dapetin to-do dengan ID 1.

    {"id":1,"title":"Belajar Node.js","completed":false}
    
  • POST /todos: Pake Postman/Insomnia.

    • Method: POST
    • URL: http://localhost:3000/todos
    • Headers: Content-Type: application/json
    • Body (Raw - JSON):
      {
          "title": "Beli Kopi",
          "completed": false
      }
      
    • Kalo berhasil, kalian bakal dapet balasan to-do yang baru dengan ID unik.
  • PUT /todos/4 (misalnya ID 4 adalah to-do "Beli Kopi" yang baru kamu buat):

    • Method: PUT
    • URL: http://localhost:3000/todos/4
    • Headers: Content-Type: application/json
    • Body (Raw - JSON):
      {
          "title": "Beli Kopi Premium",
          "completed": true
      }
      
    • Balasannya bakal nunjukkin to-do dengan ID 4 udah terupdate.
  • DELETE /todos/2:

    • Method: DELETE
    • URL: http://localhost:3000/todos/2
    • Kalo berhasil, response-nya cuma status 204 No Content. Coba GET /todos lagi, to-do dengan ID 2 udah raib!

Tips Praktis Biar Ngoding Makin Asik:

  1. Gunakan nodemon: Daripada harus Ctrl+C terus node app.js setiap kali ada perubahan kode, mending pake nodemon. Install aja (npm install -g nodemon), terus jalankan nodemon app.js. Nanti dia auto restart server pas ada perubahan file. Mantul!
  2. Validasi Lebih Keras: Aplikasi kita tadi validasinya masih basic banget. Di real project, kalian butuh validasi yang lebih kuat buat tiap inputan, biar data yang masuk bersih dan aman.
  3. Error Handling yang Manusiawi: Kalo ada error, jangan cuma balikin pesan "something went wrong". Bikin pesan error yang lebih jelas dan kasih tahu user apa yang salah.
  4. Pake Database: Karena ini aplikasi sederhana, kita pake data di memori. Tapi kalo udah serius, skuy pake database kayak MongoDB (NoSQL) atau PostgreSQL (SQL). Banyak ORM/ODM keren kayak Mongoose atau Sequelize yang bikin interaksi database jadi gampang banget di Node.js.
  5. Struktur Folder yang Rapi: Untuk aplikasi yang lebih besar, penting banget punya struktur folder yang rapi (misal: routes/, controllers/, models/, utils/). Ini bikin kode lebih mudah dibaca dan di-maintain.

Kesimpulan:

Gimana, gaes? Gampang kan bikin aplikasi sederhana pake Node.js dan Express.js? Dari sini, kalian udah punya bekal dasar buat bikin API yang fungsional. Ini cuma permulaan, lho. Dari Simple To-Do List API ini, kalian bisa explore lebih jauh lagi. Misal, nambahin otentikasi user, integrasi database, atau bahkan bikin real-time app pake WebSockets.

Jadi, jangan takut buat coba-coba ya! Node.js ini powerful banget dan komunitasnya juga super supportif. Kalo ada error atau bingung, jangan sungkan buat nyari referensi atau nanya di forum. Ingat, setiap programmer hebat pasti pernah mulai dari yang simpel. Semangat ngoding, dan semoga cuan terus!

5.0

Berikan Rating

Komentar (0)

Silakan login untuk memberikan komentar.

Login Sekarang

Belum ada komentar. Jadilah yang pertama!

Menyukai Artikel (2)