PENGERTIAN PEMROGRAMAN FUNGSIONAL
Pemrograman Fungsional adalah sebuah pemrograman yang melakukan proses
komputasi sebagai evaluasi fungsi-fungsi matematika.
Pemrograman Fungsional sering disebut juga pemrograman yang aplikatif karena
fungsi-fungsinya yang di aplikasikan kedalam argumentasi menjadi deklaratif dan
non-prosedural.
Pemrograman Fungsional juga didasarkan pada konsep dasar matematika dari
sebuah fungsi dan seluruh kode programnya berupa fungsi-fungsi.
Karena pemrograman fungsional berdasarkan pada matematika maka akan lebih
mudah untuk mendeteksi bahwa program tersebut benar atau tidak.
Bahasa Pemrograman Fungsional lebih disukai untuk tujuan ilmiah dan dan
akademik, bukan untuk pengembangan perangkat lunak dan komersial. Namun, ada
beberapa bahasa pemrograman fungsional yang digunakan untuk komersial
pengembangan aplikasi diantaranya adalah :
1. XSLT
2. XML
TIGA KOMPONEN PRIMER BAHASA FUNGSIONAL
1. Objek Data
Menggunakan mekanisme struktur data tingkat tinggi. Contohnya :
Array atau List.
2. Fungsi Built-in
Untuk memanipulasi objek data dasar yang menyediakan sejumlah fungsi untuk
membuat serta mengakses list.
3. Functional Forms
Untuk membuat fungsi baru yang mengizinkan programmer mendefinisikan sebuah
operasi baru dari kombinasi fungsi yang ada.
LAMBDA KALKULUS PADA PEMROGRAMAN FUNGSIONAL
Lambda Kalkulus bisa disebut sebagai asal muasal bahasa pemrograman
fungsional yang dikembangkan untuk bekerja dengan aplikasi rekursif fungsi dan
definisi.
Ada 3 Elemen Pada Lambda Kalkulus Yaitu :
Lambang Primitif
Aplikasi Fungsi
Fungsi Ciptaan
Lambda Kalkulus Murni juga tidak memiliki fungsi tetap dan konstanta.
DARI LAMBDA KALKULUS KE BAHASA PEMROGRAMAN FUNGSIONAL
Ambil Lambda Kalkulus Dan :
· Perbaiki Strategy
Pengurangan
β-pengurangan dalam kalkulus λ-dapat terjadi di mana saja dan dalam urutan
apapun. ini dapat mempengaruhi penghentian dan efisiensi algoritma program.
Sebuah tetap strategi pengurangan memungkinkan programmer untuk alasan tentang
pemberhentian dan algoritmik kompleksitas.
· Tambahkan tipe
data primitif (integer, string), operasi primitif (aritmatika, logis), dan
struktur data primitif (daftar, catatan). Semua ini dapat dikodekan dalam
kalkulus λ-, namun pengkodean tidak wajar dan tidak efisien. Mengembangkan
model eksekusi efisien.
Berulang ulang oleh aturan β adalah cara yang sangat tidak efisien untuk
mengeksekusi program pada komputer.
PEMROGRAMAN FUNGSIONAL DAN IMPERATIVE
Ada dua kubu besar dalam bahasa pemrograman yaitu pemrograman fungsional
dan pemrograman imperative. Sampai saat ini kubu imperative masih mendominasi
di industri perangkat lunak dunia, seperti C, Java, C#, Pascal, dan Visual
Basic.
Namun, jangan remehkan fungsional karena kini mendapatkan tempat di
industri perangkat lunak dunia khususnya untuk memberi solusi terhadap isu
scalability, fault-tolerance, concurrency, parallel programming. Beberapa
bahasa pemrograman fungsional antara lain Erlang, Haskell, Scala
(multi-paradigm), F#, Clojure.
KELEBIHAN PEMROGRAMAN FUNGSIONAL
Adapun kelebihan dari bahasa pemrograman fungsional antara lain:
1. Singkat.
Program fungsional cenderung lebih ringkas dibanding program terstruktur (2
sampai 10 kali).
2. Mudah dimengerti.
Program fungsional seringkali lebih mudah untuk dimengerti. Dalam kasus
Quicksort, tidak terlalu diperlukan pengetahuan mengenai Haskell maupun
quicksort. Hal tersebut tidak dapat terjadi pada program C, yang membutuhkan
waktu untuk dimengerti, dan sangat mudah untuk melakukan kesalahn kecil yang
mengakibatkan program tidak dapat dieksekusi.
3. Tidak ada tumpukan
pada memori.
Tidak ada kemungkinan memperlakukan integer sebagai pointer, atau
dilanjutkan dengan pointer null.
4. Kode dapat
digunakan kembali.
Bahasa pemrograman fungsional menggunakan polymorphism, yang akan
meningkatkan penggunaan kembali kode.
5. Pelekatan yang
kuat.
Bahasa fungsional non-strict memliki fitur kuat lainnya: hanya
mengevaluasi program seperti yang diperlukan untuk menghasilkan jawaban, yang sering
disebut dengan lazy evaluation. Struktur data dievaluasi secukupnya untuk
menghasilkan jawaban, dan sebagian mungkin tidak dievaluasi sama sekali. Hal
ini memungkinkan “pelekatan” untuk menyusun bersama program yang sudah ada. Hal
ini memungkinkan penggunaan kembali program, atau potongan program lebih sering
dari yang dapat dilakukan oleh pengaturan terstruktur.
6. Abstraksi yang
kuat.
Secara umum bahasa fungsional menawarkan cara-cara baru yang kuat untuk
meng-enkapsulasi abstraksi. Abstraksi mengizinkan kita untuk menentukan
objek yang pekerjaan internalnya tersembunyi. Abstraksi merupakan kunci untuk
membangun program modular yang dapat dipelihara. Satu mekanisme abstraksi yang
kuat yang terdapat dalam bahasa fungsional adalah higher-order function.
7. Manajemen memori
yang terintegrasi.
Kebanyakan program rumit perlu mengalokasikan memori dinamis dari tumpukan
(heap). Setiap bahasa fungsional memudahkan pemrogram dari beban manajemen
penyimpanan tersebut. Penyimpanan dialokasikan dan diinisialisaikan secara
implisit, dan diselamatkan secara otomatis oleh kolektor sampah.
. KELEMAHAN FUNGSIONAL PROGRAMMING:
.Kode programnya cenderung agak lambat berkembang, Bahasa pemrogramannya
cenderung sulit untuk didebug, Kelemahan kedua bukanlah masalah yang terlalu
besar tetapi yang pertama agak mengganggu, namun walaupun demikian CPU time
selalu lebih murah daripada programmer time dan tidak apalah jika harus
menunggu sedikit lebih lama untuk melihat outputnya setelah menyimpannya
beberapa hari terhitung dari saat diprogram dan didebug. Namun demikian
pemrograman fungsional sekarang telah memiliki standard interface fungsi asing
atau foreign-function interface yang memperbolehkan kita untuk
berhubungan dengan kode program yang ditulis dalam berbagai jenis bahasa
pemrograman.
Extensible Stylesheet Language Transformations, disingkat XSLT,
adalah bahasa pemrograman berdasar XML yang digunakan
untuk transformasi dokumen XML menjadi dokumen XML atau format lainnya. Transformasi tidak
mengubah dokumen asli, melainkan menghasilkan dokumen baru berdasarkan isi
dokumen asli. XSLT sering digunakan untuk mengkonversi data dari satu XML schema ke schema lain, ke format XHTML, atau format
XML yang dapat diubah menjadi dokumen PDF.
XML (Extensible
Markup Language) adalah bahasa markup untuk keperluan umum yang disarankan
oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam.XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasa standar untuk melacak Internet.
Sumber : Google
Tidak ada komentar:
Posting Komentar