Kamis, 17 Maret 2011

paradigma pemrograman fungsional

MAKALAH
PEMROGRAMAN BERORIENTASI OBJEK
Tentang
“PARADIGMA PEMROGRAMAN FUNGSIONAL”





OLEH:
1.Tanfaus Sakinah (07621033) 5.Alfin Hilmi (07621049)
2.Prasetyo Winardi (07621037) 6.Foundra Irawan (076210 )
3.Dewi Maya Sariv (07621032) 7.M.Hazin (076210 )
4.Ahmad Fahrudi (07621025) 8.Safi’ul Arif (076210 )



JURUSAN TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH GRESIK
2010
PARADIGMA PEMROGRAMAN FUNGSIONAL
1. SEKILAS TENTANG PEMROGRAMAN
Kata pemrograman dapat diartikan sebagai cara membuat program; dalam konteks ini berarti membuat program komputer. Dapat juga dikatakan bahwa pemrograman merupakan suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu. Perintah-perintah ini membutuhkan suatu bahasa tersendiri yang dapat dimengerti oleh komputer.
Bahasa merupakan suatu kumpulan simbol-simbol atomic yang terbatas. Kumpulan simbol ini disebut dengan alphabet. Untaian simbol ditulis secara berurutan dari satu ke yang lainnya setelahnya. Satu untaian yang tidak terlihat, disebut dengan untaian kosong (empty string), biasanya dilambangkan dengan "". Beberapa untaian menjadi bagian dari suatu bahasa, beberapa yang lainnya tidak. Untaian yang menjadi bagian dari suatu bahasa disebut dengan kata atau kalimat. Bahasa yang dapat dimengerti oleh komputer disebut dengan Bahasa Pemrograman. Bahasa Pemrograman mempengaruhi cara dan teknik pemrograman.

2. KONSEP DASAR PEMROGRAMAN FUNGSIONAL
Komputer bahasa terutama dibagi dalam kategori pada paradigma pemrograman dasar yang didukung. Dalam pengembangan produk perangkat lunak atau dalam setiap modul program berskala besar ilmiah, pilihan bahasa tergantung pada paradigma ini pemrograman yang digunakan untuk menguraikan tujuan program. Bahasa ini dapat dibagi ke dalam bahasa pemrograman prosedural, bahasa deklaratif, bahasa berorientasi objek dan bahasa Pemrograman Fungsional.
Berlawanan dengan konsep pemrograman populer yang digunakan dalam proses pengembangan perangkat lunak komersial online, Pemrograman Fungsional dissects masalah menjadi kumpulan fungsi. Alih-alih menekankan pada perubahan negara, Pemrograman Fungsional menggunakan fungsi untuk mengambil input dan menghasilkan output yang diinginkan. Asal-usul Pemrograman Fungsional dapat ditelusuri untuk Lambda Calculus, yang dikembangkan untuk bekerja dengan rekursi, fungsi aplikasi dan definisi.
Pemrograman Fungsional menghambat fungsi-fungsi yang dapat mengubah keadaan internal atau membuat perubahan terlihat nilai fungsi itu kembali. Ini "fungsi murni" kebal terhadap perubahan karena efek runtime dan dengan demikian hanya menghasilkan output yang diperlukan ketat di nominal dengan masukan yang diberikan.
Fungsional Pemrograman memiliki manfaat sebagai berikut:
• Dalam Pemrograman Fungsional, lebih mudah untuk matematis membuktikan bahwa suatu program benar.
• Pemrograman Fungsional istirahat masalah dalam modul. Oleh karena itu relatif mudah untuk menulis fungsi yang lebih kecil bukan menggunakan satu besar. Hal ini akhirnya mengurangi kesalahan dan meningkatkan keterbacaan.
• Proses Debugging dalam program fungsional sederhana karena fungsi ditentukan dengan baik dan lebih kecil.
• Sangat mudah untuk melakukan tes untuk program fungsional sebagai fungsi independen dari sistem negara.
• Program fungsional yang portabel. Fungsi yang sama dapat digunakan dalam tujuan yang berbeda bila digunakan dalam koleksi yang berbeda.
Bahasa pemrograman fungsional lebih disukai untuk tujuan ilmiah dan akademik lebih dalam proyek untuk perangkat lunak komersial dan pengembangan aplikasi. Namun demikian, beberapa bahasa pemrograman fungsional seperti XSLT (XML), Ocaml, Haskell, Mathematica, dll Erlang bekerja di aplikasi industri dan komersial. Juga, SQL (Structured Query Language) dan Spreadsheets menggunakan konsep-konsep tertentu Pemrograman Fungsional.
Pemrograman fungsional adalah himpunan bagian dari pemrograman deklaratif. Program yang ditulis dengan menggunakan paradigma ini menggunakan fungsi, blok kode yang ditujukan untuk berperilaku seperti fungsi matematika. Bahasa fungsional menghambat perubahan dalam nilai variabel-variabel melalui penugasan, membuat banyak menggunakan rekursi sebagai gantinya.
3. PARADIGMA PEMROGRAMAN FUNGSIONAL
Sebuah paradigma pemrograman adalah gaya fundamental pemrograman komputer. (Bandingkan dengan metodologi, yang merupakan gaya pemecahan masalah rekayasa perangkat lunak khusus.) Paradigma berbeda dalam konsep dan abstraksi digunakan untuk mewakili unsur-unsur dari sebuah program (seperti objek, fungsi, variabel, kendala, dll) dan langkah-langkah yang membentuk sebuah perhitungan (penugasan, evaluasi, continuations, aliran data, dll).
Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika. Fungsi dapat berbentuk sebagai fungsi “primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Pemrogram mengasumsikan bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Penyelesaian masalah didasari atas aplikasi dari fungsi-fungsi tersebut. Jadi dasar pemecahan persoalan adalah transformasional. Semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara, melalui aplikasi fungsi.
Paradigma fungsional tidak lagi mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang “variabel”. Pemrogram tidak perlu mengetahui bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi adalah “kotak hitam” , yang menjadi perhatiannya hanya keadaan awal dan akhir. Dengan merakit kotak hitam ini, pemrogram akan menghasilkan program besar.
Berlainan sekali dengan paradigma procedural, program fungsional harus diolah lebih dari program prosedural ( oleh pemroses bahasanya ), karena itu salah satu keberatannya adalah kinerja dan efisiensinya.
Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL dan LISP. paradigma pemrograman fungsional Memandang penyelesaian masalah sebagai komposisi dan aplikasi yang memetakan masalah ke jawaban.

4. NOTASI FUNGSIONAL
Program adalah model solusi persoalan dari informatik, berisi kumpulan informasi penting yang mewakili persoalan itu. Dalam konteks fungsional, program direpresentasi dalam himpunan nilai type, dengan nilai-nilai dari type adalah konstan.
Pada pemrograman fungsional solusi persoalan diungkapkan menjadi identifikasi dari 1 atau beberapa fungsi, yang jika di”aplikasi” dengan nilai yang diberikan akan memberikan hasil yang diharapkan. Jadi fungsi adalah asosiasi antara 2 type, yaitu domain dan range. Domain dan range dapat berupa :
• Type dasar
• Type terkkomposisi
Untuk menuliskan suatu program fungsional, dapat dipakai suatu bahasa ekspresi , ada 3 macam bentuk komposisi ekspresi :
• Ekspresi fungsional dasar
• Kondisional
• Rekursif
Berikut ini diberikann ilustrasi mengenai perbedaan antara program fungsional dengan program imperative ( procedural ).
Perhatikan sebuah program yang ditulis dalam bahasa algoritmik sebagai berikut :
PROGRAM PLUSAB
{Membaca dua buah nilai a dan b integer, menghitung jumlahnya dan menuliskan hasilnya}
Kamus :
a, b : integer
Algoritma :
Input (a, b)
Output (a+b)





Program tersebut mengandung instruksi pembacaan nilai (input) dan penulisan hasil (output). Program akan menunggu aksi pembacaan dilakukan, melakukan kalkulasi dan akan mencetak hasil. Ada suatu sekuens (urut-urutan) aksi yang dilakukan .
Kelakuan dari program fungsional berbeda. Dalam pemrograman fungsional tidak ada aksi menggunakan baca/tulis, merubah state. Pada konteks fungsional , pengetik memakai 3+4 sistem menghasilkan 7. Semua yang dilakukan pemakai ini telah mewakili aksi baca/tulis pada program aksional (berdasarkan “aksi”, action)
Pemrograman fungsional didasari atas analisa top-down. Analisa top-down dalam pemrograman fungsional :
• Problema,
• Spesifikasi,
• Dekomposisi pada persoalan “antara”, berarti menciptakan sebuah fungsi antara.

5. EKSPRESI DASAR PADA PROGRAM FUNGSIONAL
Pada pemrograman fungsional, pemrogram mulai dari fungsi dasar yang disediakan oleh pemroses bahasa untuk membuat fungsi lain yang melakukan aplikasi terhadap fungsi dasar tersebut. Fungsi yang paling dasar pada program fungsional disebut operator. Pada ekspresi fungsional, diasumsikan bahwa tersedia operator aritmatika (*, /, +, - ), operator rasional ( >, <, =, <, >) dan operator Boolean (And dan Or).
Ekspresi adalah gabungan dari : nama, symbol, operator, fungsi, (, ), yang dapat menghasilkan suatu nilai berkat evaluasi dari ekspresi. Hasil suatu ekspresi berupa numeric atau Boolean. Ekspresi yang hasilnya numeric disebut ekspresi numeric. Ekspresi yang hasilnya Boolean disebut ekspresi Boolean.
Selain menggunakan konstanta numeric tersebut, ekspresi dapat berupa ekspresi aljabar :
• Abstraksi dengan menggunakan “nama”,
• Namanya memepunyai “nilai”,
Yang mengandung operator aritmatika.
Evaluasi ekspresi tergantung kepada presedensi dan aturan yang ditetapkan.

• untuk pemecahan masalah idealnya adalah hanya dengan menekan sebuah tombol saja.
• Pada pemrograman fungsional, kita dihadapkan kepada cara berfikir melalui fungsi ( apa yang akan direalisasikan ) tanpa memperdulikan bagaimana memori computer dialokasika, diorganisasi, diimplementasi.
• Pada paradigm fungsional, kita juga “terbebas” dari persoalan eksekusi program, karena eksekusi program hanyalah aplikasi terhadap sebuah fungsi .

0 komentar:

Template by : kendhin x-template.blogspot.com