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 x dari sebuah himpunan S yang dilengkapi dengan operator biner \cdot dikatakan idempoten jika berlaku x\cdot x = x. Operator biner \cdot dikatakan idempoten jika x\cdot x = x untuk semua elemen di S.

## 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 (\N, \times) hanyalah 0 dan 1.
* Pada magma (M,\,\cdot), elemen identitas e atau *absorbing element* a, jika elemen tersebut ada, akan bersifat idempoten karena e\cdot e = e dan a\cdot a = a.
* Pada grup (G,\,\cdot), elemen identitas e adalah satu-satunya elemen idempoten. Hal ini terlihat karena untuk sembarang elemen x di G yang memenuhi x\cdot x = x, juga akan memenuhi x\cdot x = x\cdot e. Selanjutnya mengalikan kedua ruas dari kiri dengan elemen invers dari x akan menghasilkan x = e.
* Pada monoid (\mathcal P(E),\,\cup) dan (\mathcal P(E),\,\cap) dari himpunan kuasa \mathcal P(E) himpunan E*,* yang masing-masing dilengkapi dengan operator gabungan \cup dan operator irisan \cap, semua elemennya bersifat idempoten karena x\cup u = x untuk setiap x\in\mathcal P(E) dan x\cap x = x untuk setiap x\in\mathcal P(E). Oleh karena itu, \cup dan \cap adalah operasi yang idempoten pada \mathcal P(E).
* Semua elemen pada monoid (\{0,1\},\,\vee) dan (\{0, 1\},\, \wedge), dari domain Boole yang dilengkapi dengan logika disjungsi ∨ dan logika konjungsi ∧, bersifat idempoten. Akibatnya, kedua operator logika tersebut idempoten pada himpunan \{0,\,1\}.
* Dalam gelanggang Boole, operator perkalian bersifat idempoten.
* Dalam semi-gelanggang tropikal, operator penjumlahan bersifat idempoten.

### Fungsi idempoten
Dalam monoid (E^E,\,\circ) dari fungsi-fungsi yang memetakan himpunan E ke dirinya sendiri dan dilengkapi dengan komposisi fungsi \circ, elemen-elemen idempotennya adalah fungsi f:E\to E yang memenuhi f\circ f = f. Dengan kata lain, fungsi idempoten dalam monoid ini akan memenuhi f(f(x))=f(x) untuk semua x\in E (citra dari setiap elemen di *E* adalah *fixed point* dari *f* ). Sebagai contoh, fungsi nilai mutlak \operatorname{abs}(x) pada himpunan bilangan bulat adalah fungsi idempoten karena \text{abs}(\text{abs}(x))=\text{abs}(x) berlaku untuk setiap bilangan bulat x. 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 E memiliki n elemen, himpunan tersebut dapat dipartisi menjadi k titik tetap (*fixed point*) dan n-k titik tak-tetap dibawah pemetaan oleh *f*. Hal ini menghasilkan k^{n-k} sebagai banyaknya fungsi idempoten yang berbeda. Oleh karena itu, dengan mempertimbangkan semua kemungkinan partisi,

: \sum_{k=0}^n {n \choose k} k^{n-k}

menyatakan banyaknya fungsi idempoten yang mungkin di himpunan E. 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, f(x)=x \text{ mod } 3 (dengan \text{mod} menyakan operasi modulo) dan g(x)=\max(x,5) adalah dua fungsi yang idempoten, tetapi fungsi komposisi f\circ g tidak. Walaupun pada kasus ini, g\circ f secara kebetulan bersifat idempoten. Contoh lain adalah fungsi negasi  pada domain Boole yang tidak idempoten, tetapi 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 di antara 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

* “  ” di FOLDOC
* 
* 
* 
* 
* 
* hal.&nbsp;443
* Peirce, Benjamin. ''Aljabar Asosiatif Linier'' 1870.
*