Total Tayangan Halaman

Jumat, 11 November 2011

FUNCTIONAL PROGRAM

 Pemrograman fungsional merupakan paradigma pemrograman yang memperlakukan perhitungan sebagai evaluasi fungsi matematika dan menghindari perubahan data. Sebuah program fungsional terdiri dari Ungkapan  E (mewakili kedua algoritma dan input ). Pemrograman fungsional  ditandai dengan nilai-nilai, fungsi dan bentuk fungsional.
            Banyak bahasa pemrograman mendukung pemrograman fungsional dan imperatif tetapi sintaks dan fasilitas bahasa biasanya dioptimalkan untuk hanya satu dari salah satu program, dan faktor-faktor sosial seperti konvensi coding dan perpustakaan sering kali memaksa programmer menuju salah satu program.
Bahasa pemrograman fungsional merupakan hasil abstraksi generalisasi dan pemetaan tipe data.
 Bahasa pemrograman fungsional yang penting untuk alasan berikut:
        Fungsional program didistribusikan dengan tugas membebaskan  programmer dari
  modus perintah berpikir sekuensial kaku yang diperlukan untuk tugas perintah.
        Pemrograman fungsional berguna untuk pengembangan spesifikasi eksekusi dan
  implementasi prototipe.
        Pemrograman fungsional memiliki area aplikasi penting. Pemrograman kecerdasan
  buatan yang dilakukan dalam bahasa pemrograman fungsional dan teknik AI untuk
  bermigrasi ke aplikasi dunia nyata.
        Pemprograman fungsional mendorong pemikiran pada tingkat yang lebih tinggi dari
  abstraksi dengan menyediakan fungsi tatanan lebih tinggi yang dimodifikasi dan
  menggabungkan program yang telah ada.

 Bahasa pemrograman fungsional berdasarkan Lambda - kalkulus. Lambda Kalkulus  berkembang dari sebuah upaya Alonzo Church dan Stephen Kleene pada awal 1930-an untuk meresmikan gagasan komputabilitas (juga dikenal sebagai constructibility dan calculability efektif).
            Perhitungan semantik operasional dalam kalkulus lambda adalah dengan menulis pengurangan ekspresi lambda untuk bentuk normal. Untuk lambda kalkulus, ekspresi lambda dikurangi dengan substitusi. Artinya, kasus dari parameter dalam program diganti dengan argumen. Berdasarkan Lamda Kalkulus skema merupakan keturunan LISP, meskipun memiliki fitur penting, pada bagian ini kita mengabaikan fitur ini dan berkonsentrasi pada kalkulus seperti fitur lambda Skema. Skema memiliki dua jenis benda, atom dan daftar. Atom diwakili oleh string atau karakter. Sedangkan daftar diwakili oleh urutan dari atom atau dipisahkan dengan karakter dan tertutup dalam tanda kurung.
            Lambda kalkulus adalah pengaruh langsung pada bahasa pemrograman LISP( List Prosessing ), panggilan dengan parameter nama melewati mekanisme Algol-60, dan substitusi tekstual dilakukan oleh generator makro.  Eksplisit penggunaan dan sistematis lambda kalkulus dalam ilmu komputer dimulai pada awal tahun 1960 oleh Peter Landin, Christopher Strachy dan lainnya yang memulai teori semantik formal untuk sebuah bahasa pemrograman yang disebut semantik denotational.  Semantik Denotational, disebut operasional`\ dinamis ', karena ia melihat fungsi sebagai urutan operasi. Tujuan dari bahasa semantik denotational yaitu, untuk memberikan nilai ekspresi masing - masing didalam suatu program. Kita dapat mengekspresikan semantik dari kalkulus lambda sebagai fungsi matematika, Eval, atau dari ekspresi ke nilai.
 Desain perangkat keras baru yang muncul untuk mendukung pelaksanaan langsung dari lambda kalkulus atau combinators mendukung eksekusi paralel dari program fungsional, menghilangkan beban (sisi-effects, sinkronisasi, komunikasi) untuk mengontrol paralelisme dari programmer. LISP (list processing) dirancang oleh John McCarthy pada tahun 1958. Pemakaian LISP diminati diberbagai bidang seperti mekanisasi pembuktian teorema, pemodelan kecerdasan manusia dan pengolahan bahasa alami. Dalam setiap bidang ini, list processing dipandang sebagai kebutuhan mendasar.
 Haskell Berbeda dengan LISP dan Scheme, Haskell merupakan bahasa pemprograman fungsional modern. Haskell merupakan bahasa modern yang dirancang oleh ahli logika Haskell B. Curry dan komite internasional. Tujuan desain haskell adalah untuk memiliki bahasa Haskell fungsional yang menggabungkan ide - ide baru, baik dalam mencari bahasa fungsional atau untuk pengajaran, penelitian dan aplikasi. Haskell memiliki instalasi overhead yang digabungkan dengan sistem tipe polimorfis, murni fungsional I / O, array, abstraksi data dan dapat menyembunyikan informasi.

Konsep Dasar Pemrograman

Pengertian Dasar Program adalah rangkaian instruksi-instruksi dalam bahasa komputer yang disusun secara logika dan sistematis.

Pengertian Pemrograman adalah suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti  oleh komputer atau dikenal dengan bahasa pemrograman.
Konsep Dasar Pemrograman pada umumnya adalah IPO (Input Proses Output), lalu dikembangkan mejadi :
Originating -> input -> proses -> Output -> Distribution
||
Storage

Originating


Berhubungan dengan pengumpulan data yang biasanya merupakan pencatatan data kedokumen dasar. Setelah dikumpulkan dilakukan proses input.
Input
Tahapan ini merupakan proses pemasukan data kedalam proses komputer melalui peralatan input.
Proses
Tahap ini merupakan proses pengolahan data dari data yang sudah diinput berupa proses    menghitung membandingkan, mengurutkan, mengklasifikasikan, mengendalikan dan mencari di storage.
Output
Tahap ini merupakan proses untuk menghasilkan keluaran dari proses pengolahan data ke peralatan output berupa informasi (monitor, speaker, dsb)
Distribution
Tahap ini merupakan proses penyebaran informasi kepada pihak-pihak yang berhak dan membutuhkan informasi.
Storage
Tahap ini merupakan perekaman hasil pengolahan data storage yang nantinya dapat dipergunakan untuk input proses selanjutnya.

DATA 


Data adalah bahan mentah yang akan diolah menjadi informasi sehingga  dapat dipergunakan oleh user atau pemakai.

1. Tipe Data Dasar : Merupakan tipe data primitif yang tidak terstruktur yang didefinisikan oleh bahasa pemrograman.
Tipe data dasar dibagi menjadi lima bagian yaitu :
a. Numerik, yaitu menyimpan data berupa angka
b. Enumerasi, yaitu suatu urutan list dari nilai-nilai yang berbeda.
c. Boolean, yaitu tipe data untuk merepresentasikan True atau False.
d. Character, yaitu tipe data untuk menyimpan rangkaian karakter.
e. Internationalization, disebut I18N

2. Tipe Data Terstruktur : Merupakan tipe data campuran dari berbagai tipe data dasar. Contohnya array, record, string, list dan file.

3. Tipe Data didefinisikan oleh Pemakai : Tipe data ini biasanya disebut Enumerasi.

4. Tipe Data Penunjuk : Contoh tipe data penunjuk adalah pointer

Model Komputasi


Model Komputasi adalah suatu kumpulan dari nilai dan operasi-operasi. Ada 3 dasar model komputasi :
1. Model Fungsional, yaitu model perhitungan yang fungsional terdiri dari satu set nilai-nilai, fungsi dan operasi, aplikasi, fungsi dan komposisi fungsi.
2. Model Logika, yaitu logika model perhitungan terdiri dari suatu set nilai-nilai, definisi hubungan dan kesimpulan logis.
3. Model Imperative, yaitu model perhitungan yang imperative terdiri dari satu set nilai-nilai yang mencakup suatu status dan operasi tugas-tugas untuk memodifikasi status tersebut.

Prinsip Bahasa Pemrograman


Empat prinsip dasar perancangan bahasa pemrograman adalah:
1. Sintaks, menjelaskan bagaimana struktur program yang benar.
2.Tipe sistem dan semantik, menunjukkan tipe nilai yang dapat dimanipulasi oleh program dan arti(semantik) dari program, mencakup juga aturan penamaan entitas (variabel,fungsi,class,parameter,dll).
3. Manajemen memori, menunjuk kepada sekumpulan teknik yg membantu kita untuk memahami pemetaan letak dari nilai, struktur data, dan struktur program di dalam memori.
4. Exception handling, mengenai penanganan exception (hal-hal yang tak terduga seperti kesalahan input ketika menjalankan program).

Definisi Sintaks, Semantik, dan Pragmatik


Sintaks   : Aturan gramatikal / komposisi suatu program yang mengatur tata cara penulisanhuruf, angka dan karakter lain.
Contoh : Pada pembuatan program Pascal antara 2 statement dipisahkan oleh ; (titik koma)
X:=1;  X:=X+1;
Semantik : Mendefinisikan arti dari program yang benar secara sintaks dari bahasa pemrograman tersebut.
Contoh : Pada pembuatan program C
int vector[10]
Arti semantiknya akan menyebabkan ruang sebanyak 10
Pragmatik  : Kemampuan pemakai dalam mengaitkan kalimat dengan kontek-kontek yang sesuai bagi kalimat tersebut.
Contoh : (A+B)*(A-B)