Pemrograman fungsional: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Menambah deskripsi pemrograman fungsional murni & tidak murni serta menambah lebih banyak contoh bahasa pemrograman yang mendukung pemrograman fungsional.
Wagino Bot (bicara | kontrib)
k →‎Referensi: Bot: Merapikan artikel
 
(8 revisi perantara oleh 5 pengguna tidak ditampilkan)
Baris 1:
Dalam [[ilmu komputer]], '''pemrograman fungsional''' ([[bahasa Inggris]]: '''Functional programming''') adimana program dibangun dengan menerapkan dan menyusun fungsi. Ini adalah paradigma pemrograman deklaratif di mana definisi fungsi adalah pohon ekspresi yang masing-masing mengembalikan nilai, bukan urutan pernyataan imperatif yang mengubah status program.
{{DISPLAYTITLE:Pemrograman fungsional}}
[[Berkas:Haskell-Logo.svg|jmpl|316x316px|[[Haskell]] merupakan salah satu contoh [[bahasa pemrograman]] berperadigma pemrograman fungsional dan dikategorikan sebagai bahasa pemrograman fungsional munri.]]
Dalam [[ilmu komputer]], '''pemrograman fungsional''' ([[bahasa Inggris]]: ''Functional programming,'' disingkat '''FP''') adalah [[paradigma pemrograman]] yang dimana suatu [[program komputer]] dijalankan dengan mengevaluasi [[Ekspresi (ilmu komputer)|ekspresi]] yang terdapat pada program komputer itu sendiri.<ref>{{Cite web|url=https://wiki.haskell.org/Functional_programming|title=Functional programming - HaskellWiki|website=wiki.haskell.org|language=en|access-date=2018-02-14}}</ref>
 
Dalam pemrograman fungsional, fungsi diperlakukan sebagai [[warga kelas satu]], yang berarti bahwa mereka dapat terikat ke nama (termasuk pengenal lokal), diteruskan sebagai argumen, dan dikembalikan dari fungsi lain, seperti yang bisa dilakukan tipe data lainnya. Hal ini memungkinkan program untuk ditulis dalam gaya deklaratif dan dapat disusun, di mana fungsi-fungsi kecil digabungkan secara modular..
Pemrograman fungsional biasanya menggunakan fungsi yang murni agar dapat menghindari [[data]] yang dapat berubah-ubah, efek samping dari dijalankannya fungsi, dan [[Variabel (ilmu komputer)|variabel]] yang dapat diakses dari lebih dari satu fungsi.<ref>{{Cite web|url=https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0|title=Master the JavaScript Interview: What is Functional Programming?|last=Elliott|first=Eric|date=2017-01-04|website=Medium|access-date=2018-02-14}}</ref>
 
Pemrograman fungsional terkadang diperlakukan sebagai sinonim dengan [[pemrograman fungsional murni]], bagian dari pemrograman fungsional yang memperlakukan semua fungsi sebagai fungsi matematika [[Sistem deterministik|deterministik]], atau fungsi murni. Ketika fungsi murni dipanggil dengan beberapa argumen yang diberikan, itu akan selalu mengembalikan hasil yang sama, dan tidak dapat dipengaruhi oleh keadaan yang bisa berubah atau efek samping lainnya.
Pemrograman fungsional dikategorikan menjadi '''pemrograman fungsional murni''' dan '''pemrograman fungsional tidak murni'''. Sederhananya, pemrograman fungsional murni mengacu pada pemrograman yang mana suatu fungsinya hanya dapat mengelola masukannya lalu memberikan semacam keluaran berdasarkan masukan tersebut. Artinya, fungsi tersebut tidak diizinkan untuk mengambil nilai pengubah global, melakukan pencetakan pesan ke layar, dan hal-hal lain yang termasuk pada istilah efek samping (''side effect'') pada pemrograman fungsional.<ref>{{Cite journal|last=Wadler|first=Philip|date=1992-02-01|title=The essence of functional programming|url=http://dl.acm.org/citation.cfm?id=143165.143169|publisher=ACM|pages=1–14|doi=10.1145/143165.143169|isbn=0897914538}}</ref>
 
== Bahasa Pemrograman ==
Contoh bahasa pemrograman yang mendukung pemrograman fungsional murni antara lain:
* [[Agda]]
* [[Clean (bahasa pemrograman)|Clean]]
* [[Coq]]
* [[Elm (bahasa pemrograman)|Elm]]
* [[Haskell]]
* [[Idris (bahasa pemrograman)|Idris]]
* [[Lisp]]
* [[Miranda (bahasa pemrograman)|Miranda]]
* [[Mercury (bahasa pemrograman)|Mercury]]
* [[PureScript]]
 
Adapun contoh bahasa pemrograman yang mendukung pemrograman fungsional tidak murni antara lain:
Baris 36 ⟶ 34:
{{reflist}}
 
{{Authority control}}
 
{{computer-stub}}
 
[[Kategori:Istilah komputer]]
[[Kategori:Paradigma pemrograman]]
 
 
{{computer-stub}}