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,[1] 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 .[2][3] Operator biner dikatakan idempoten jika untuk semua elemen di .[4][5]
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 monoid dari fungsi-fungsi yang memetakan himpunan ke dirinya sendiri dan dilengkapi dengan komposisi fungsi, elemen-elemen idempotennya adalah fungsi yang memenuhi .[6] 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[7] pada himpunan bilangan bulat adalah fungsi idempoten karena berlaku untuk setiap bilangan bulat .[8] 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ː
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,… (barisan A000248 pada OEIS).
Sifat ke-idempoten-an fungsi tidak terawetkan dalam operasi komposisi.[9] Sebagai contoh, (dengan menyakan operasi modulo) dan adalah dua fungsi yang idempoten, namun fungsi komposisi tidak.[10] Walaupun pada kasus ini, secara kebetulan bersifat idempoten.[11] 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.[12] 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.
^Doneddu, Alfred (1976). Polynômes et algèbre linéaire (dalam bahasa Prancis). Paris: Vuibert. hlm. 180. Soit M un magma, noté multiplicativement. On nomme idempotent de M tout élément a de M tel que a2 = a.
^Ini adalah persamaan antar fungsi. Dua fungsi dikatakan sama jika mereka memiliki domain dan citra yang sama, dan nilai fungsi mereka sama untuk semua elemen di domain.
^Notasi yang lebih umum adalah , namun lebih sulit dibaca untuk ekpresi yang bertingkat.
^Faktanya, persamaan ini berlaku untuk semua bilangan rasional, real, bahkan juga kompleks.
^If f and g commute, i.e. if f ∘ g = g ∘ f, then idempotency of both f and g implies that of f ∘ g, since (f ∘ g) ∘ (f ∘ g) = (f ∘ f) ∘ (g ∘ g) = f ∘ g, using the associativity of composition.
Goodearl, K. R. (1991), von Neumann regular rings (edisi ke-2), Malabar, FL: Robert E. Krieger Publishing Co. Inc., hlm. xviii+412, ISBN978-0-89464-632-4, MR1150975