top of page

Apa Itu REST API? Cara Kerja dan Cara Membuat dengan Nodejs

nadiah888
9 jam yang lalu
6 menit membaca
Apa Itu REST API? Cara Kerja dan Cara Membuat

Hampir setiap aplikasi yang kamu pakai, dari e-commerce sampai aplikasi bank, berbicara dengan server lewat API. Bagi pemula, istilah REST API sering terdengar teknis: apa bedanya dengan API biasa, apa itu method GET dan POST, dan bagaimana cara membuatnya sendiri?


Artikel ini menjelaskan REST API dari awal: konsep, cara kerja request dan response, method HTTP, status code, sampai contoh membuat REST API CRUD dengan Node.js dan PostgreSQL. Setelah itu kamu akan tahu skill pendukung yang perlu dipelajari dan kesalahan yang sering terjadi.


Di bagian akhir ada solusi menarik untuk kamu yang ingin belajar Nodejs


Apa itu REST API?

API (Application Programming Interface) adalah jembatan yang memungkinkan satu aplikasi meminta data atau layanan dari aplikasi lain. REST adalah gaya perancangan API yang memakai protokol HTTP, dengan data yang umumnya dikirim dalam format JSON.


Bayangkan sebuah restoran. Kamu (aplikasi frontend) memesan lewat pelayan (API), lalu pelayan menyampaikan pesanan ke dapur (backend dan database) dan mengantar hasilnya kembali. Kamu tidak perlu tahu cara dapur bekerja, cukup tahu cara memesan.


Ciri REST API yang Perlu Kamu Ketahui:

Berbasis resource.Ā 

Setiap data punya alamat (URL), misalnya /employeesĀ untuk semua karyawan atau /employees/5Ā untuk satu karyawan.


Memakai method HTTP.Ā 

GET, POST, PUT, dan DELETE menyatakan aksi yang diminta terhadap resource itu.


Stateless.Ā 

Setiap request membawa semua informasi yang dibutuhkan server, dan server tidak mengingat request sebelumnya.


Mengembalikan status code.Ā 

Angka seperti 200 (berhasil) atau 404 (data tidak ditemukan) menjelaskan hasil request.

Karena pola ini seragam, satu backend bisa melayani aplikasi web, aplikasi mobile, dan layanan lain sekaligus. Node.js populer untuk membuatnya karena memakai JavaScript, bahasa yang sama dengan yang banyak dipakai di frontend.


Cara kerja REST API: dari request sampai response

Setiap interaksi dengan REST API mengikuti alur yang sama:

  1. ClientĀ (browser, aplikasi mobile, atau tools seperti Postman) mengirim request ke sebuah URL, misalnya GET /employees/5.

  2. Server Node.jsĀ menerima request, mencocokkannya dengan route yang tepat, dan memeriksa input.

  3. Logika aplikasiĀ berjalan. Bila perlu data, server menjalankan query ke database seperti PostgreSQL.

  4. Server membentuk responseĀ berisi status code dan data, umumnya dalam format JSON.

  5. Client menerima responseĀ dan menampilkannya kepada pengguna.

Contoh request dan response-nya:

GET /employees/5 HTTP/1.1
Host: api.contoh.com
{
  "id": 5,
  "name": "Sinta",
  "department": "Finance"
}

Langkah 2 sampai 4 melibatkan proses menunggu, baik menunggu database maupun jaringan. Itu sebabnya asynchronous JavaScript dan async/await menjadi fondasi yang wajib kamu pahami sebelum membuat REST API.


Method HTTP dan status code yang wajib kamu kenal

Method HTTP menyatakan aksi yang kamu minta, dan hampir selalu berpasangan dengan operasi CRUD di database:

Method

Fungsi

Operasi CRUD

Contoh endpoint

GET

Mengambil data

Read

GET /employees

POST

Membuat data baru

Create

POST /employees

PUT

Mengubah data

Update

PUT /employees/5

DELETE

Menghapus data

Delete

DELETE /employees/5

Ada juga PATCH untuk mengubah sebagian data saja, bukan seluruh data seperti PUT.

Status code memberi tahu client apa yang terjadi. Kamu tidak perlu menghafal semuanya, mulai dari enam yang paling sering dipakai:

Kode

Arti

Kapan dipakai

200 OK

Berhasil

GET atau PUT berhasil

201 Created

Data baru dibuat

POST berhasil

400 Bad Request

Input tidak valid

Field wajib kosong atau formatnya salah

401 Unauthorized

Belum terautentikasi

Login gagal atau token tidak ada

404 Not Found

Data tidak ditemukan

ID yang diminta tidak ada

500 Internal Server Error

Kesalahan di server

Ada bug atau error yang tidak tertangani

Memilih status code yang tepat terlihat sepele, tapi inilah yang membuat API-mu mudah dipakai dan di-debug oleh developer lain.


Contoh membuat REST API CRUD dengan Node.js dan PostgreSQL

Contoh ilustrasi berikut memakai Express (framework populer untuk Node.js, bukan satu-satunya pilihan) dan library pgĀ untuk terhubung ke PostgreSQL. Anggap sudah ada tabel employeesĀ dengan kolom id, name, dan department_id.

const express = require('express');
const { Pool } = require('pg');

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

const pool = new Pool({ connectionString: process.env.DATABASE_URL });

// READ: ambil semua karyawan
app.get('/employees', async (req, res) => {
  const result = await pool.query('SELECT * FROM employees ORDER BY id');
  res.json(result.rows);
});

// READ: ambil satu karyawan
app.get('/employees/:id', async (req, res) => {
  const result = await pool.query(
    'SELECT * FROM employees WHERE id = $1',
    [req.params.id]
  );
  if (result.rows.length === 0) {
    return res.status(404).json({ message: 'Karyawan tidak ditemukan' });
  }
  res.json(result.rows[0]);
});

// CREATE: tambah karyawan
app.post('/employees', async (req, res) => {
  const { name, department_id } = req.body;
  if (!name) {
    return res.status(400).json({ message: 'Nama wajib diisi' });
  }
  const result = await pool.query(
    'INSERT INTO employees (name, department_id) VALUES ($1, $2) RETURNING *',
    [name, department_id]
  );
  res.status(201).json(result.rows[0]);
});

app.listen(3000);

Endpoint PUTĀ dan DELETEĀ disusun dengan pola yang sama, jadi bagus untuk latihan pertamamu. Beberapa hal penting dari contoh ini:

  • Query memakai parameter ($1, $2), bukan menyambung string, untuk mencegah SQL injection.

  • Setiap endpoint mengembalikan status code yang sesuai: 200, 201, 400, atau 404.

  • Operasi database memakai awaitĀ karena sifatnya asynchronous.

  • Contoh ini sengaja dipersingkat. Versi yang siap dipakai di production masih butuh penanganan error, validasi input yang lebih lengkap, dan autentikasi.


Skill pendukung sebelum membuat REST API

REST API berdiri di atas beberapa fondasi. Kalau salah satunya lemah, kamu akan sering tersangkut di tengah jalan. Urutan berikut membantu mengisi celahnya.

  1. Setup environment dan Git.Ā Pasang Node.js, PostgreSQL, dan Git. Biasakan commit rutin sejak project pertama, karena riwayat kerja ini terlihat oleh recruiter di GitHub.

  2. JavaScript fundamental.Ā Kuasai array, object, function, dan closure. Konsep ini juga sering muncul sebagai soal teknis saat interview.

  3. Asynchronous JavaScript.Ā Akses database dan jaringan bersifat asynchronous. Pahami callback, promise, lalu async/await, termasuk cara menangani proses yang gagal.

  4. Cara kerja Node.js.Ā Pelajari event loop dan kenapa kode yang memblokir proses bisa membuat API terasa lambat.

  5. SQL dan PostgreSQL.Ā Pelajari tabel, relasi antartabel, index, dan join query. Banyak masalah performa API berawal dari query yang tidak efisien.

  6. Hubungkan Node.js dengan database.Ā Bangun operasi CRUD, dari yang sederhana sampai yang melibatkan beberapa tabel.

  7. Bangun REST API.Ā Susun route, pilih method HTTP dan status code yang tepat, validasi input, dan tangani error.

  8. Pengantar TypeScript.Ā Tipe data membantu menangkap kesalahan lebih awal, dan banyak tim backend memakainya.

  9. Docker dasar.Ā Bungkus API-mu dalam container supaya berjalan sama di laptop sendiri maupun di server.

Dua contoh ilustrasi berikut menunjukkan fondasi yang dipakai di balik setiap REST API. Pertama, async/await dengan penanganan error:

async function getUser(id) {
  try {
    const user = await db.findUserById(id);
    return user;
  } catch (error) {
    console.error('Gagal mengambil user:', error.message);
    throw error;
  }
}

Kedua, join query untuk menggabungkan dua tabel:

SELECT e.name, d.name AS department
FROM employees e
JOIN departments d ON d.id = e.department_id;

Kedua contoh itu sengaja dibuat pendek. Pola yang sama muncul di setiap REST API: kode JavaScript yang asynchronous, data di database, dan endpoint yang mengantarkannya ke aplikasi lain.


6 kesalahan umum saat membuat REST API

  • Tidak konsisten memilih method dan status code.Ā Misalnya memakai GET untuk menghapus data, atau selalu mengembalikan 200 meski terjadi error.

  • Tidak memvalidasi input.Ā Data dari client tidak boleh dipercaya begitu saja, karena input kosong atau salah format bisa merusak data atau memicu error.

  • Menyambung string untuk query SQL.Ā Gunakan query berparameter agar aman dari SQL injection.

  • Hanya menulis happy path.Ā Siapkan penanganan untuk data tidak ditemukan, input salah, dan koneksi database yang gagal.

  • Menyalin kode, termasuk dari AI, tanpa bisa menjelaskannya.Ā Alat bantu itu berguna, tapi kalau kamu tidak paham alurnya, kamu tidak bisa men-debug-nya.

  • Tidak menguji endpoint.Ā Coba setiap endpoint dengan tools seperti Postman sebelum menganggapnya selesai.


Project latihan REST API dan skill yang sering diuji saat interview

Portofolio backend yang meyakinkan tidak harus banyak, tapi harus menunjukkan kamu bisa menyambungkan API, database, dan penanganan error. Naikkan kompleksitasnya bertahap:

Tahap

Project

Yang dilatih

Pemula

API catatan atau to-do

CRUD, struktur route, validasi input

Menengah

API perpustakaan atau inventaris

Relasi antartabel, join query, error handling

Lanjut

REST API HR System (karyawan, departemen, cuti)

Desain database, alur data yang lebih kompleks, Dockerization

Selain project, siapkan juga topik yang sering muncul saat seleksi teknis: logika pemrograman, array, object, closure, async/await, dan join query SQL. Latih menjelaskan jawabanmu dengan kata sendiri, karena interviewer biasanya lebih tertarik pada cara berpikirmu daripada hafalan sintaks.


Mengenal Fullstack Node.js Batch 37 dari Code Academy

Kalau kamu ingin belajar membuat REST API secara terstruktur sampai jadi project, Code Academy sedang membuka Fullstack Node.js Batch 37. Programnya ditujukan bagi fresh graduate dan pemula Node.js yang sudah punya dasar pemrograman.

Yang dipelajari selama 8 minggu:

  • Setup environment (Node.js, PostgreSQL, Git)

  • SQL dan PostgreSQL fundamental

  • JavaScript fundamental dan asynchronous JavaScript

  • Node.js dan integrasi dengan PostgreSQL

  • Pengembangan REST API

  • Pengantar TypeScript

  • Final project: REST API HR System dan Dockerization


FAQ

Apa bedanya REST API dan API biasa?

API adalah istilah umum untuk antarmuka yang menghubungkan dua aplikasi. REST API adalah salah satu jenisnya, yaitu API yang mengikuti gaya REST dengan memakai HTTP, URL sebagai alamat resource, dan method seperti GET dan POST.


Apakah REST API hanya bisa dibuat dengan Node.js?

Tidak. REST API bisa dibuat dengan banyak bahasa dan framework, seperti Java, Python, Go, atau PHP. Node.js adalah salah satu pilihan populer, terutama bagi yang sudah mengenal JavaScript.


Apakah REST API harus terhubung ke database?

Tidak harus, tapi sebagian besar aplikasi menyimpan data sehingga REST API biasanya terhubung ke database seperti PostgreSQL. Karena itu, SQL dan operasi CRUD perlu dikuasai bersamaan.


Apakah wajib memakai framework seperti Express?

Tidak wajib, karena Node.js punya modul HTTP bawaan. Namun framework seperti Express mempermudah pengaturan route dan middleware, sehingga umum dipakai untuk belajar maupun project nyata.


Mulai dari langkah yang bisa kamu kerjakan hari ini

Backend tidak dipelajari dalam satu malam, tapi bisa dipelajari dengan urutan yang jelas. Pasang Node.js dan PostgreSQL, tulis satu endpoint CRUD, lalu tambahkan fitur sedikit demi sedikit sambil menjaga repository Git tetap rapi.


Kalau kamu ingin belajar bersama mentor dengan alur yang sudah tersusun sampai final project, Daftar sekarangg batch 37.


Ada pertanyaan? Hubungi admin Code Academy lewat WhatsApp +62 813-9971-0111 atau Instagram @codeid.academy.


Ā 
Ā 
Ā 

Komentar


Hubungi kami melalui WhatsApp
logo akademi kode.png

Kami hadir untuk membantu menjembatani kesenjangan antara calon pengembang dan perusahaan yang mencari talenta.

Kontak

​Telepon: 0813 9971 0111

Alamat

Jakarta

Gedung Mangkuluhur City Tower Satu Lantai 7, Jl. Gatot Subroto Kav. 1-3 Jakarta Selatan, DKI Jakarta 12930

Ā© 2024. Code Academy. Semua hak dilindungi undang-undang.

  • Instagram
  • Facebook
  • LinkedIn
  • TikTok
bottom of page