Idempoten

Idempoten adalah sifat beberapa operasi tertentu di matematika dan ilmu komputer. Operasi yang memiliki sifat ini dapat diterapkan (dilakukan) beberapa kali tanpa memberikan hasil berbeda dengan hasil penerapan pertama kali. Konsep idempoten muncul dalam beberapa hal di aljabar abstrak (khususnya, dalam teori proyektor dan closure operators) dan pada pemrograman fungsional (yang berhubungan dengan sifat referential transparency).

Istilah ini diperkenalkan oleh Benjamin Peirce, ketika membahas unsur aljabar yang tidak berubah ketika dipangkatkan dengan sebuah bilangan bulat positif. Idempoten berasal dari gabungan kata idem dan potence ("sama" dan "pangkat"), dan secara harfiah berarti "(kemampuan memiliki) hasil pangkat yang sama".

Definisi 
Suatu elemen  dari sebuah himpunan  yang dilengkapi dengan operator biner  dikatakan idempoten jika berlaku . Operator biner  dikatakan idempoten jika  untuk semua elemen di .

Contoh 
Berikut beberapa contoh objek matematika dan sifat idempoten mereka:

 Bilangan asli 0 dan 1 adalah elemen yang idempoten terhadap perkalian (karena 0 × 0 = 0 dan 1 × 1 = 1). Karena tidak ada bilangan asli lainnya yang memenuhi sifat ini (misalnya tidak berlaku bahwa 2 × 2 = 2), operasi perkalian pada bilangan asli bukanlah operasi yang idempoten. Secara formal, elemen idempoten dalam monoid  hanyalah 0 dan 1.
 Pada magma , elemen identitas  atau absorbing element , jika elemen tersebut ada, akan bersifat idempoten karena  dan 
 Pada grup , elemen identitas  adalah satu-satunya elemen idempoten. Hal ini terlihat karena untuk sembarang elemen  di  yang memenuhi , juga akan memenuhi . Selanjutnya mengalikan kedua ruas dari kiri dengan elemen invers dari  akan menghasilkan 
 Pada monoid  dan  dari himpunan kuasa  himpunan , yang masing-masing dilengkapi dengan operator gabungan  dan operator irisan , semua elemennya bersifat idempoten karena  untuk setiap  dan  untuk setiap . Oleh karena itu,  dan  adalah operasi yang idempoten pada .
 Semua elemen pada monoid  dan , dari domain Boole yang dilengkapi dengan logika disjungsi ∨ dan logika konjungsi ∧, bersifat idempoten. Akibatnya, kedua operator logika tersebut idempoten pada himpunan .
 Dalam gelanggang Boole, operator perkalian bersifat idempoten.
 Dalam semi-gelanggang tropikal, operator penjumlahan bersifat idempoten.

Fungsi idempoten 
Dalam monoid  dari fungsi-fungsi yang memetakan himpunan  ke dirinya sendiri dan dilengkapi dengan komposisi fungsi , elemen-elemen idempotennya adalah fungsi  yang memenuhi . Dengan kata lain, fungsi idempoten dalam monoid ini akan memenuhi  untuk semua  (citra dari setiap elemen di E adalah fixed point dari f ). Sebagai contoh, fungsi nilai mutlak  pada himpunan bilangan bulat adalah fungsi idempoten karena  berlaku untuk setiap bilangan bulat . Hal Ini mengartikan fungsi nilai mutlak adalah elemen yang idempoten terhadap komposisi fungsi, pada himpunan semua fungsi yang memetakan bilangan bulat ke bilangan bulat. Contoh lainnya dari fungsi idempoten adalahː

 fungsi identitas dan fungsi konstan;
 fungsi floor, ceil, dan fractional part;

Jika himpunan  memiliki  elemen, himpunan tersebut dapat dipartisi menjadi  titik tetap (fixed point) dan  titik tak-tetap dibawah pemetaan oleh f. Hal ini menghasilkan  sebagai banyaknya fungsi idempoten yang berbeda. Oleh karena itu, dengan mempertimbangkan semua kemungkinan partisi,

 

menyatakan banyaknya fungsi idempoten yang mungkin di himpunan . Barisan dari rumus banyaknya fungsi idempoten di atas untuk n = 0, 1, 2, 3, 4, 5, 6, 7, 8,… adalah 1, 1, 3, 10, 41, 196, 1057, 6322, 41393,… .

Sifat ke-idempoten-an fungsi tidak terawetkan dalam operasi komposisi. Sebagai contoh,  (dengan  menyakan operasi modulo) dan  adalah dua fungsi yang idempoten, namun fungsi komposisi  tidak. Walaupun pada kasus ini,  secara kebetulan bersifat idempoten. Contoh lain adalah fungsi negasi  pada domain Boole yang tidak idempoten, namun komposisi fungsi  bersifat idempoten.

Arti dalam ilmu komputer 
Dalam ilmu komputer, istilah idempoten dapat memiliki arti yang berbeda tergantung pada konteks penerapannya:

 dalam pemrograman imperatif, sebuah subrutin dengan efek samping (side effect) dikatakan idempoten jika status sistem tetap sama beberapapun banyak panggilan dilakukan. Secara matematika, subrutin idempoten ini adalah sebuah fungsi dari ruang system state ke dirinya sendiri yang memenuhi definisi pada pembahasan bagian di atas.
 dalam pemrograman fungsional, pure function bersifat idempoten jika dia idempoten dalam pengertian matematika yang diberikan dalam bagian definisi.

Idempoten adalah sifat yang sangat berguna dalam banyak situasi, karena operasi dengan sifat ini dapat diulangi atau dicoba ulang sesering yang diperlukan tanpa menimbulkan efek yang tidak diinginkan. Pada operasi yang tidak idempoten, algoritme mungkin perlu melacak apakah operasi sudah dilakukan atau belum.

Contoh dalam ilmu komputer 
Sebuah fungsi yang mencari nama dan alamat pelanggan di sebuah database umumnya idempoten, karena operasi ini tidak membuat isi database berubah. Demikian pula dengan mengganti alamat pengguna menjadi XYZ umumnya idempoten, karena data alamat terakhir akan tetap sama tidak peduli berapa kali data XYZ dikirim. Namun, menempatkan barang dalam daftar belanjaan toko daring umumnya tidak idempoten, karena penempatan barang beberapa kali akan menambah banyak pesanan. Membatalkan pesanan bersifat idempoten, karena pesanan tetap dibatalkan tidak peduli berapa kali permintaan pembatalan dilakukan.

Contoh aplikasi 
Contoh terapan yang dapat ditemui banyak orang dalam kehidupan sehari-hari mereka termasuk tombol pada lift dan tombol penyeberangan. Aktivasi tombol pertama kali akan mengubah sistem ke status meminta, sampai hingga permintaan dipenuhi. Aktivasi secara berulang tombol diantara waktu aktivasi awal dan waktu permintaan dipenuhi tidak memiliki pengaruh, kecuali sistem dirancang untuk dapat menyesuaikan waktu memenuhi permintaan berdasarkan jumlah aktivasi yang dilakukan.

Referensi

Daftar pustaka 

 “ Idempoten ” di FOLDOC
 
 
 
 
 
 hal. 443
 Peirce, Benjamin. Aljabar Asosiatif Linier 1870.