Lompat ke isi

Idempoten: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
memperbaiki terjemahan
perbaikan terjemahan
Baris 12: Baris 12:
* 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]] <math>(\N, \times)</math> hanyalah 0 dan 1.
* 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]] <math>(\N, \times)</math> hanyalah 0 dan 1.


* Dalam [[Magma (aljabar)|magma]] <math>(M,\,\cdot)</math>, [[elemen identitas]] <math>e</math> atau ''absorbing element'' <math>a</math>, jika elemen tersebut ada, akan bersifat idempoten karena <math>e\cdot e = e</math> dan <math>a\cdot a = a.</math>
* Pada [[Magma (aljabar)|magma]] <math>(M,\,\cdot)</math>, [[elemen identitas]] <math>e</math> atau ''absorbing element'' <math>a</math>, jika elemen tersebut ada, akan bersifat idempoten karena <math>e\cdot e = e</math> dan <math>a\cdot a = a.</math>
* Dalam [[Grup (matematika)|grup]] <math>(G,\,\cdot)</math>, elemen identitas <math>e</math> adalah satu-satunya elemen idempoten. Hal ini terlihat karena untuk sembarang elemen <math>x</math> di <math>G</math> yang memenuhi <math>x\cdot x = x</math>, juga akan memenuhi <math>x\cdot x = x\cdot e</math>. Dengan mengalikan kedua ruas dari kiri dengan [[elemen invers]] dari <math>x</math>, didapatkan <math>x = e.</math>
* Pada [[Grup (matematika)|grup]] <math>(G,\,\cdot)</math>, elemen identitas <math>e</math> adalah satu-satunya elemen idempoten. Hal ini terlihat karena untuk sembarang elemen <math>x</math> di <math>G</math> yang memenuhi <math>x\cdot x = x</math>, juga akan memenuhi <math>x\cdot x = x\cdot e</math>. Selanjutnya mengalikan kedua ruas dari kiri dengan [[elemen invers]] dari <math>x</math> akan menghasilkan <math>x = e.</math>
* Untuk sebarang monoid (𝒫 ''(E),'' ∪) dan (𝒫 ''(E),'' ∩) dari ''powerset'' himpunan ''E,'' yang masing-masing dilengkapi [[Gabungan (teori himpunan)|operator gabungan]] dan [[Irisan (teori himpunan)|operator irisan persimpangan]] , semua elemennya idempoten; Oleh karena itu, dan adalah operasi idempoten pada 𝒫 ( ''E'' ).
* Pada monoid <math>(\mathcal P(E),\,\cup)</math> dan <math>(\mathcal P(E),\,\cap)</math> dari [[himpunan kuasa]] <math>\mathcal P(E)</math> himpunan <math>E</math>'','' yang masing-masing dilengkapi dengan [[Gabungan (teori himpunan)|operator gabungan]] <math>\cup</math> dan [[Irisan (teori himpunan)|operator irisan]] <math>\cap</math>, semua elemennya bersifat idempoten karena <math>x\cup u = x</math> untuk setiap <math>x\in\mathcal P(E)</math> dan <math>x\cap x = x</math> untuk setiap <math>x\in\mathcal P(E)</math>. Oleh karena itu, <math>\cup</math> dan <math>\cap</math> adalah operasi yang idempoten pada <math>\mathcal P(E)</math>.
* Dalam monoid ({0, 1},) dan ({0, 1}, ) dari ''Boolean domain'' dengan [[logika disjungsi]] ∨ dan [[logika konjungsi]] ∧, semua elemennya idempoten.
* Semua elemen pada monoid <math>(\{0,1\},\,\vee)</math> dan <math>(\{0, 1\},\, \wedge)</math>, dari [[domain Boole]] yang dilengkapi dengan [[logika disjungsi]] ∨ dan [[logika konjungsi]] ∧, bersifat idempoten. Akibatnya, kedua operator logika tersebut idempoten pada himpunan <math>\{0,\,1\}</math>.
* Dalam [[gelanggang Boolean]], operator perkalian bersifat idempoten.
* Dalam [[Gelanggang Boolean|gelanggang Boole]], operator perkalian bersifat idempoten.
* Dalam ''tropical semiring'', operator penjumlahan bersifat idempoten.
* Dalam [[semi-gelanggang tropikal]], operator penjumlahan bersifat idempoten.


=== Fungsi idempoten ===
=== Fungsi idempoten ===
Dalam monoid (''E <sup>E</sup>'', ∘) [[Fungsi (matematika)|fungsi]] dari himpunan ''E'' ke dirinya sendiri dengan [[komposisi fungsi]] , elemen idempoten adalah fungsi {{Nowrap|''f'': ''E'' → ''E''}} yang bersifat {{Nowrap|1=''f'' ''f'' = ''f''}}, dengan kata lain untuk semua ''x'' di ''E'', {{Nowrap|1=''f''(''f''(''x'')) = ''f''(''x'')}} ([[Citra (matematika)|citra]] dari setiap elemen di ''E'' adalah ''fixed point'' dari ''f'' ). Sebagai contoh, mengambil nilai [[Nilai absolut|absolut]] ''abs''(''x'') <ref>Notasi yang lebih umum adalah <math>|x|</math>, namun lebih sulit dibaca untuk ekpresi yang bertingkat.</ref> dari [[bilangan bulat]] ''x'' adalah fungsi idempoten karena ''abs''( ''abs''(''x'')) = ''abs''(''x'') benar untuk setiap bilangan bulat ''x''.<ref>Faktanya, persamaan ini berlaku untuk semua bilangan [[Bilangan rasional|rasional]], [[Bilangan riil|real]], bahkan juga [[Bilangan kompleks|kompleks]].</ref> Hal Ini mengartikan ''abs'' [[Komposisi fungsi|∘]] ''abs'' = ''abs''<ref>Ini adalah persamaan antar fungsi. Dua fungsi dikatakan sama jika mereka memiliki ''domain'' dan [[Citra (matematika)|citra]] yang sama, dan nilai fungsi mereka sama untuk semua elemen di ''domain''.</ref> terpenuhi, yakni fungsi ''abs'' adalah elemen idempoten di himpunan semua fungsi [dari bilangan bulat ke bilangan bulat]<ref>This set of functions is formally denoted as [[Integer number|ℤ]]<sup>ℤ</sup>.</ref> menurut komposisi fungsi. Oleh karena itu, ''abs'' memenuhi definisi fungsi idempoten di atas. Contoh lainnya termasuk:
Dalam monoid <math>(E^E,\,\circ)</math> dari [[Fungsi (matematika)|fungsi-fungsi]] yang memetakan himpunan <math>E</math> ke dirinya sendiri dan dilengkapi dengan [[komposisi fungsi]] <math>\circ</math>, elemen-elemen idempotennya adalah fungsi <math>f:E\to E</math> yang memenuhi <math>f\circ f = f</math>.<ref>Ini adalah persamaan antar fungsi. Dua fungsi dikatakan sama jika mereka memiliki ''domain'' dan [[Citra (matematika)|citra]] yang sama, dan nilai fungsi mereka sama untuk semua elemen di ''domain''.</ref> Dengan kata lain, fungsi idempoten dalam monoid ini akan memenuhi <math>f(f(x))=f(x)</math> untuk semua <math>x\in E</math> ([[Citra (matematika)|citra]] dari setiap elemen di ''E'' adalah ''fixed point'' dari ''f'' ). Sebagai contoh, [[Nilai absolut|fungsi nilai mutlak]] <math>\operatorname{abs}(x)</math><ref>Notasi yang lebih umum adalah <math>|x|</math>, namun lebih sulit dibaca untuk ekpresi yang bertingkat.</ref> pada himpunan [[bilangan bulat]] adalah fungsi idempoten karena <math>\text{abs}(\text{abs}(x))=\text{abs}(x)</math> berlaku untuk setiap bilangan bulat <math>x</math>.<ref>Faktanya, persamaan ini berlaku untuk semua bilangan [[Bilangan rasional|rasional]], [[Bilangan riil|real]], bahkan juga [[Bilangan kompleks|kompleks]].</ref> 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]] bersifat idempoten;
* [[fungsi identitas]] dan [[fungsi konstan]];
* [[fungsi konstan]] bersifat idempoten;
* fungsi ''floor'', ''ceil'', dan ''fractional part'';
* fungsi ''floor'', ''ceil'', dan ''fractional part'' bersifat idempoten;


Jika himpunan ''E'' memiliki ''n'' elemen, kita dapat mempartisi himpunan tersebut menjadi ''k'' ''fixed poin''t dan {{Nowrap|''n'' ''k''}} ''non-fixed point'' dibawah pemetaan ''f''. Hal ini menghasilkan ''k<sup>n</sup>''<sup>-''k''</sup> fungsi idempoten yang berbeda. Oleh karena itu, dengan mempertimbangkan semua kemungkinan partisi,
Jika himpunan <math>E</math> memiliki <math>n</math> elemen, himpunan tersebut dapat dipartisi menjadi <math>k</math> titik tetap (''fixed point'') dan <math>n-k</math> titik tak-tetap dibawah pemetaan oleh ''f''. Hal ini menghasilkan <math>k^{n-k}</math> sebagai banyaknya fungsi idempoten yang berbeda. Oleh karena itu, dengan mempertimbangkan semua kemungkinan partisi,


: <math>\sum_{k=0}^n {n \choose k} k^{n-k}</math>
: <math>\sum_{k=0}^n {n \choose k} k^{n-k}</math>


adalah 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,… {{OEIS|A000248}}.
menyatakan banyaknya fungsi idempoten yang mungkin di himpunan <math>E</math>. [[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,… {{OEIS|A000248}}.


Sifat keidempotenan tidak terawetkan <!--bukan alih bahasa yang baik, bukan?-->dalam komposisi fungsi.<ref>If ''f'' and ''g'' commute, i.e. if {{Nowrap|1=''f'' ∘ ''g'' = ''g'' ∘ ''f''}}, then idempotency of both ''f'' and ''g'' implies that of {{Nowrap|''f'' ∘ ''g''}}, since {{Nowrap|1=(''f'' ∘ ''g'') ∘ (''f'' ∘ ''g'') = (''f'' ∘ ''f'') ∘ (''g'' ∘ ''g'') = ''f'' ∘ ''g''}}, using the associativity of composition.</ref> Sebagai contoh, {{Nowrap|1=''f''(''x'') = ''x''}} [[Aritmetika modular|mod]] 3 dan ''g'' (''x'') = max(''x'', 5) adalah dua fungsi idempoten, tetapi {{Nowrap|''f'' ∘ ''g''}} tidak,<ref>Sebagai contoh, ''f''(''g''(7)) = ''f''(7) = 1, namun ''f''(''g''(1)) = ''f''(5) = 2 ≠ 1</ref> meskipun {{Nowrap|''g'' ∘ ''f''}} secara kebetulan idempoten.<ref>juga menunjukkan sifat komutatif ''f'' dan ''g'' bukan sebuah [[Syarat perlu (matematika)|syarat perlu]] agar sifat idempoten tetap berlaku.</ref> Contoh lain adalah fungsi negasi {{Nowrap|¬}} pada domain Boolean yang tidak idempoten, namun {{Nowrap|¬ ∘ ¬}} idempoten.
Sifat ke-idempoten-an fungsi tidak terawetkan dalam operasi komposisi.<ref>If ''f'' and ''g'' commute, i.e. if {{Nowrap|1=''f'' ∘ ''g'' = ''g'' ∘ ''f''}}, then idempotency of both ''f'' and ''g'' implies that of {{Nowrap|''f'' ∘ ''g''}}, since {{Nowrap|1=(''f'' ∘ ''g'') ∘ (''f'' ∘ ''g'') = (''f'' ∘ ''f'') ∘ (''g'' ∘ ''g'') = ''f'' ∘ ''g''}}, using the associativity of composition.</ref> Sebagai contoh, <math>f(x)=x \text{ mod } 3</math> (dengan <math>\text{mod}</math> menyakan operasi [[Aritmetika modular|modulo]]) dan <math>g(x)=\max(x,5)</math> adalah dua fungsi yang idempoten, namun fungsi komposisi <math>f\circ g</math> tidak.<ref>Sebagai contoh, ''f''(''g''(7)) = ''f''(7) = 1, namun ''f''(''g''(1)) = ''f''(5) = 2 ≠ 1</ref> Walaupun pada kasus ini, <math>g\circ f</math> secara kebetulan bersifat idempoten.<ref>juga menunjukkan sifat komutatif ''f'' dan ''g'' bukan sebuah [[Syarat perlu (matematika)|syarat perlu]] agar sifat idempoten tetap berlaku.</ref> Contoh lain adalah fungsi negasi {{Nowrap|¬}} pada domain Boole yang tidak idempoten, namun komposisi fungsi {{Nowrap|¬ ∘ ¬}} bersifat idempoten.


== Arti dalam ilmu komputer ==
== Arti dalam ilmu komputer ==
Dalam [[ilmu komputer]], istilah ''idempoten'' mungkin memiliki arti yang berbeda tergantung pada konteks penerapannya:
Dalam [[ilmu komputer]], istilah ''idempoten'' dapat memiliki arti yang berbeda tergantung pada konteks penerapannya:


* dalam [[pemrograman imperatif]], [[subrutin]] dengan ''side effect'' bersifat idempoten jika status sistem tetap sama setelah baik sekali maupun beberapa kali panggilan. Dengan kata lain, fungsi dari ''state space'' sistem ke dirinya sendiri pada konteks subrutin tersebut bersifat idempoten dalam pengertian matematika yang diberikan dalam [[Idempoten#Definisi|definisi]];
* 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 [[Idempoten#Definisi|definisi]].
* dalam [[pemrograman fungsional]], ''pure function'' bersifat idempoten jika dia idempoten dalam pengertian matematika yang diberikan dalam bagian [[Idempoten#Definisi|definisi]].


Ini adalah sifat yang sangat berguna dalam banyak situasi, karena ini berarti bahwa operasi 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.
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 ===
=== 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 XYZ dilakukan. Namun, menempatkan barang dalam daftar belanjaan [[Perdagangan elektronik|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.
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 [[Perdagangan elektronik|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 aplikasi ==
Contoh terapan yang dapat ditemui banyak orang dalam kehidupan sehari-hari mereka termasuk tombol pada [[lift]] dan [[Penyeberangan pejalan kaki|tombol penyeberangan]].<ref>https://web.archive.org/web/20110523081716/http://www.nclabor.com/elevator/geartrac.pdf For example, this design specification includes detailed algorithm for when elevator cars will respond to subsequent calls for service</ref> Aktivasi tombol pertama kali akan mengubah sistem ke status ''meminta'', sampai hingga permintaan ''dipenuhi''. Aktivasi tombol berulang diantara waktu aktivasi awal dan waktu permintaan yang dipenuhi tidak memiliki pengaruh, kecuali sistem dirancang untuk dapat menyesuaikan waktu memenuhi permintaan berdasarkan jumlah aktivasi.
Contoh terapan yang dapat ditemui banyak orang dalam kehidupan sehari-hari mereka termasuk tombol pada [[lift]] dan [[Penyeberangan pejalan kaki|tombol penyeberangan]].<ref>https://web.archive.org/web/20110523081716/http://www.nclabor.com/elevator/geartrac.pdf For example, this design specification includes detailed algorithm for when elevator cars will respond to subsequent calls for service</ref> 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 ==
== Referensi ==

Revisi per 27 Maret 2022 03.37

Tombol[pranala nonaktif permanen] pada lift. Menekan salah tombol sebuah lantai adalah operasi idempoten, karena memiliki efek yang sama baik dilakukan sekali atau beberapa kali.

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 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 .[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.

Referensi

  1. ^ Polcino & Sehgal (2002), p. 127.
  2. ^ Valenza, Robert (2012). Linear Algebra: An Introduction to Abstract Mathematics. Berlin: Springer Science & Business Media. hlm. 22. ISBN 9781461209010. An element s of a magma such that ss = s is called idempotent. 
  3. ^ 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. 
  4. ^ George Grätzer (2003). General Lattice TheoryPerlu mendaftar (gratis). Basel: Birkhäuser.  Here: Sect.1.2, p.5.
  5. ^ Garrett Birkhoff (1967). Lattice Theory. Colloquium Publications. 25. Providence: Am. Math. Soc. . Here: Sect.I.5, p.8.
  6. ^ 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.
  7. ^ Notasi yang lebih umum adalah , namun lebih sulit dibaca untuk ekpresi yang bertingkat.
  8. ^ Faktanya, persamaan ini berlaku untuk semua bilangan rasional, real, bahkan juga kompleks.
  9. ^ If f and g commute, i.e. if fg = gf, then idempotency of both f and g implies that of fg, since (fg) ∘ (fg) = (ff) ∘ (gg) = fg, using the associativity of composition.
  10. ^ Sebagai contoh, f(g(7)) = f(7) = 1, namun f(g(1)) = f(5) = 2 ≠ 1
  11. ^ juga menunjukkan sifat komutatif f dan g bukan sebuah syarat perlu agar sifat idempoten tetap berlaku.
  12. ^ https://web.archive.org/web/20110523081716/http://www.nclabor.com/elevator/geartrac.pdf For example, this design specification includes detailed algorithm for when elevator cars will respond to subsequent calls for service

Daftar pustaka