Terakhir diperbarui: 15/10/2026
Dalam ilmu komputer, idempotensi adalah properti operasi yang jika diterapkan beberapa kali akan menghasilkan efek akhir yang sama seperti jika diterapkan sekali saja. Jika Anda mengirimkan permintaan yang sama ke server lima kali, sistem idempoten memastikan bahwa hasil di server tidak berubah setelah upaya pertama berhasil.
Selain memastikan hasil yang sama, karakteristik utama operasi idempoten adalah tidak menghasilkan efek samping dengan panggilan tambahan. Hal ini merupakan persyaratan inti untuk membangun sistem terdistribusi yang tangguh, di mana pemadaman jaringan atau waktu tunggu yang terputus-putus dapat menyebabkan klien mengirim pesan yang sama lebih dari satu kali.
Idempotensi adalah properti operasi dalam matematika dan ilmu komputer yang jika permintaan yang sama dijalankan beberapa kali akan menghasilkan status dan hasil sistem yang sama persis seperti jika dijalankan sekali saja.
Dalam arsitektur Distributed Cloud, API, dan sistem pemrosesan pembayaran, idempotensi sangat penting untuk toleransi kesalahan: idempotensi memungkinkan klien dan layanan mencoba kembali permintaan jaringan yang gagal atau habis waktunya secara aman tanpa menyebabkan efek samping yang tidak diinginkan seperti data duplikat atau tagihan ganda.
Coba lagi permintaan dengan aman setelah waktu habis atau koneksi terputus tanpa takut menduplikasi tindakan (seperti menagih kartu kredit dua kali).
Pengguna tidak memerlukan pelacakan status yang kompleks untuk mengetahui apakah permintaan sebelumnya berhasil atau tidak; mereka cukup "mencoba lagi hingga berhasil".
Sistem terdistribusi dapat pulih dari error dengan memutar ulang log atau mengirim ulang pesan yang terlewat tanpa merusak data.
Standar REST menentukan cara berbagai jenis permintaan web harus berperilaku. Beberapa metode HTTP secara alami "aman" atau idempoten berdasarkan desainnya, yang berarti spesifikasi mengharapkan metode tersebut berperilaku secara terprediksi meskipun diulang. Yang lain dirancang untuk membuat data baru dan memerlukan perhatian ekstra agar aman untuk dicoba lagi.
Menurut RFC 9110, beberapa metode standar secara inheren bersifat idempoten. Pengulangan tindakan ini tidak boleh mengubah status server di luar permintaan awal.
Beberapa metode tidak bersifat idempoten karena tugas utamanya adalah mengubah data dengan cara membuat sesuatu yang baru atau memodifikasi sebagian dari kumpulan data yang ada.
Idempotensi sering kali diperlukan dalam sistem yang kita bangun. Dalam beberapa kasus, hal ini ditangani untuk kita. Dalam kasus lain, kita sebagai developer perlu mengambil tindakan untuk mewujudkannya.
Contoh paling terkenal adalah masalah "tagihan ganda". Jika browser pengguna hang saat mereka membayar penerbangan, mereka mungkin akan mengklik "Bayar" lagi. API pembayaran yang menggunakan kunci idempotensi memastikan bahwa klik kedua dikenali sebagai percobaan ulang. Hal ini melindungi rekening bank pelanggan dan mengurangi biaya operasional penanganan pengembalian dana untuk transaksi duplikat.
Alat seperti Terraform dan Ansible mengandalkan idempotensi. Saat Anda menjalankan skrip untuk "membuat bucket penyimpanan 10 GB", alat ini akan memeriksa status cloud Anda saat ini.
API web modern sering kali mengimplementasikan header Kunci Indempotensi (kini merupakan draf IETF yang terstandardisasi) untuk memungkinkan developer membangun integrasi yang lebih tangguh.
"Upsert" (update atau insert) adalah operasi database klasik yang bersifat idempoten. Alih-alih "Insert" yang sederhana, upsert berarti: "Jika kumpulan data ini ada, lakukan update; jika tidak, buatlah."
Google Cloud menyediakan beberapa alat yang memudahkan developer mengimplementasikan pola ini. Membangun platform terkelola mengurangi jumlah kode "boilerplate" yang perlu Anda tulis untuk menjaga keamanan data Anda.


Pelajari cara men-deploy layanan yang tangguh dan idempoten di Cloud Run sekarang.