Back to blog
Security

Rate Limiting: Strategi Mencegah API-Mu Jebol Dihajar Bot

Seberapa tahan servermu jika diserang 1.000 request dalam satu detik? Pelajari teknik Rate Limiting agar aplikasimu tidak tumbang karena kehabisan RAM.

super admin·19 Juni 2026·2 min read
Rate Limiting: Strategi Mencegah API-Mu Jebol Dihajar Bot
Article Content

Kapasitas Server Bukanlah Tanpa Batas

Sebagai Backend Developer, tujuan utamamu saat menulis fungsi API bukanlah sekadar "mengirim data dari Database", tetapi juga "Memastikan server tidak meledak".

Misalnya, kamu membuat API Publik untuk "Cek Ongkos Kirim". Secara normal, manusia hanya akan memanggil API itu 1 atau 2 kali untuk mengecek harga. Tapi, bagaimana jika ada kompetitor bisnismu yang sengaja membuat *Bot Script* untuk memanggil API-mu 10.000 kali per detik demi menyedot (Scraping) semua data harga pengirimanmu ke database mereka?

Database-mu akan kelebihan beban (Overload), dan pengunjung manusia aslimu tidak akan bisa mengakses websitemu. Untuk mengatasinya, kamu WAJIB menerapkan lapisan keamanan yang disebut Rate Limiting (Pembatasan Kecepatan).

Cara Kerja Rate Limiting

Rate Limiting adalah penjaga pintu yang menghitung seberapa sering seseorang (berdasarkan IP Address atau Token JWT mereka) mengetuk pintu server dalam batas waktu tertentu.

Kamu bisa memasang aturan (Rule) sederhana di *Middleware* servermu (misalnya pakai *library* express-rate-limit di Node.js):

  • Aturan: Satu Alamat IP maksimal hanya boleh melakukan 100 *request* dalam waktu 15 menit.

Jika IP tersebut masih berkelakuan normal (misal 5 *request* / menit), permintaan mereka diloloskan. Tapi begitu permintaan ke-101 masuk sebelum waktu 15 menit berakhir, pintu server akan langsung tertutup!

Mengenal Error 429: Too Many Requests

Saat pengunjung melewati batas kecepatan tersebut, Server tidak akan lagi mengeksekusi kode *Backend* atau *Database*-mu. Server akan menolak *request* itu di tingkat paling depan dengan merespons menggunakan HTTP Status Code: 429 Too Many Requests.

Dalam respon tersebut, biasanya disertakan *header* Retry-After, yang memberi tahu bot tersebut: "Kamu sudah kena blokir. Silakan coba lagi dalam 800 detik ke depan."

Dimana Sebaiknya Meletakkan Rate Limiting?

  1. Di Kode Aplikasi (Middleware Node.js/PHP): Cukup mudah, tapi masih memakan sedikit CPU server karena *request*-nya sudah terlanjur menyentuh aplikasi.
  2. Di API Gateway / Nginx: Lebih aman, request sampah diblokir sebelum masuk ke *framework* Node.js-mu.
  3. Di Cloudflare / WAF (Paling Kuat): Trafik nakal akan diblokir langsung di jalur internet satelit sebelum bot tersebut bahkan menyentuh IP Address dari server fisikmu!

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates