Back to blog
Backend

API Idempotency: HP Nge-lag, Klik Bayar 5 Kali, Uang Kepotong Berapa?

Pernahkah aplikasimu loading lama, lalu kamu kesal dan menekan tombol 'Bayar' berkali-kali? Apakah saldomu akan terpotong 5 kali lipat? Ini rahasianya.

super admin·13 Juli 2026·2 min read
API Idempotency: HP Nge-lag, Klik Bayar 5 Kali, Uang Kepotong Berapa?
Article Content

Bayangin HP Kamu Nge-lag...

Bayangin Siti lagi checkout sepatu harga Rp 500.000 di sebuah aplikasi e-commerce. Waktu dia klik tombol "Bayar", koneksinya jelek dan layarnya loading muter-muter. Karena kesal, Siti nge-klik tombol "Bayar" itu secara brutal sampai 5 kali.

Masalahnya, setiap klik itu ternyata beneran ngirim HTTP POST Request ke Backend! Kalau Backend-nya bodoh, saldo Siti bakal kepotong 5 kali lipat jadi Rp 2.500.000 untuk sepatu yang cuma satu pasang. Siti pasti bakal ngamuk dan viralin aplikasimu di Twitter.

Nah, Di Sinilah Konsep Idempotency Masuk!

Untuk mencegah bencana ini, arsitektur REST API harus menerapkan prinsip Idempotency (Idempoten). Secara sederhana, Idempotency berarti: "Tidak peduli seberapa banyak kamu mengulangi perintah yang sama, hasil akhirnya akan tetap sama seperti jika kamu melakukannya satu kali."

Cara Kerja Idempotency Key

Bagaimana cara Backend tahu bahwa kelima request itu adalah pesanan yang sama, bukan 5 pesanan sepatu yang berbeda?

  • Saat Siti mau bayar, Frontend (Aplikasi HP) akan membuat satu kode acak unik, misalnya: Idem-Key: A1-B2-C3.
  • Klik pertama dikirim beserta kode tersebut. Backend memprosesnya, memotong saldo, dan menyimpan kode tersebut ke Database.
  • Karena Siti nge-klik 4 kali lagi, 4 request susulan masuk membawa kode A1-B2-C3 yang SAMA PERSIS.
  • Backend mengecek database dan tertawa: "Hei, kode A1-B2-C3 ini sudah saya proses 2 detik yang lalu!". Backend akan mengabaikan 4 klik sisanya dan langsung merespon: "Transaksi Sukses" tanpa memotong saldo lagi.

Intinya: Idempotency Key adalah tameng mutlak bagi aplikasi pembayaran. Ia memastikan user yang emosian atau internet yang suka putus-nyambung tidak akan pernah merusak data transaksi di database.

Mau langsung pakai template?

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

Browse Templates