-->

Pengertian Functional Programing Menurut Para Ahli

Advertisement
Pengertian Functional Programing 
Pemrograming fungsional adalah pemrograman yang berdasarkan teori fungsi matematika, fungsi matematika tersebut yang di proses dalam komputasi.

Sejarah Singkat JavaScript
JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, Kemudian namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript. Awal tahun 1995, Netscape baru saja meluncurkan dukungan terhadap Java Applet dalam browser. Untuk Mempermudah programmer non-Java dalam mengakses Java Applet tersebut, maka Netscape mengembangkan Javascript. Ditujukan untuk desainer dan pengembang web, Javascript dirancang untuk dapat digunakan tanpa memerlukan pengetahuan yang terlalu mendalam tentang pemrograman berorientasi objek. Javascript adalah bahasa scripting yang handal yang berjalan pada berjalan pada sisi client.

JavaScript merupakan sebuah bahasa scripting yang dikembangkan oleh Netscape. Untuk menjalankan script yang ditulis dengan JavaScript kita membutuhkan JavaScript-enabled. Browser yaitu browser yang mampu menjalankan JavaScript.

functionsyang maksudnya adalah memperlakukan fungsi sebagai objek kelas-pertama. Secara khusus, hal ini berarti dalam bahasa fungsional, fungsi dapat dilewatkan sebagai argumen bagi fungsi lainnya, mendapatkan kembali fungsi sebagai hasil operasi dari fungsi lainnya dan juga dapat menugaskan fungsi sebagai variabel dan kemudian menyimpannya dalam struktur data.

Untuk lebih jelasnya perhatikan contoh dibawah ini :
Procedural Functions
function hello(who) {
alert(‘Hello ‘+who); // outputs “Hello world”
}
hello(‘world’);

Functions As Variables
Ini mungkin sedikit asing dalam sintaks tetapi kebanyakan programmer sudah biasa dengan fungsi yang didefinisikan seperti sebuah variabel.

var hello = function (who) {
alert(‘Hello ‘+who); // outputs “Hello world”
}

hello(‘world’);

Passing Functions To Functions
Jika kita mendeklarasikan “hello” seperti sebuah variabel, maka fungsi tersebut dapat dilewatkan pada fungsi yang lain:
var say = function(what) {
what(‘say function’);
}

var hello = function (who) {
alert(‘Hello ‘+who); // outputs “Hello say function”
}
say(hello);

Untuk membandingkan kedua cara untuk menggunakan fungsi sebagai argumen, perhatikan contoh berikut ini:
var test = function () {
return “This is a String”;
}
var testCopy = test; // testCopy is a pointer to the test function()
var testStr = test(); // testStr contains “This is a string”
var testing = testCopy(); // testing contains “This is a string”

Setiap fungsi memiliki properti berikut : 
arguments – Sebuah array / objek yang mengandung argumen dilewatkan ke fungsi 
arguments.length – menyimpan sejumlah argumen dalam array 
arguments.callee – pointer ke fungsi pelaksana (memungkinkan fungsi anonim untuk rekursi). 
constructor – fungsi pointer ke fungsi konstruktor. 
length – jumlah argumen fungsi 
prototype – memungkinkan penciptaan prototype 

Setiap fungsi memiliki metode berikut : 
apply – sebuah metode yang memungkinkan Anda lebih easilly melewati argumen fungsi. 
call – memungkinkan Anda untuk memanggil fungsi dalam konteks yang berbeda. 
toSource – mengembalikan kode sumber dari sebuah objek. 
toString – mengembalikan sumber fungsi sebagai string. 
valueOf – Mengembalikan nilai primitif dari objek Boolean 

Paradigma Pemrograman Javascript
Paradigma pemrograman Adalah bahasa pemrograman yang memiliki pendekatan tersendiri untuk menyelesaikan masalah. Terdapat banyak paradigma pemrograman, hanya 5 yang populer dan banyak digunakan, yaitu: 
  1. Imperatif, 
  2. Fungsional,
  3. Orientasi objek, 
  4. Logis, dan 
  5. Simbolik. 
Contoh bahasa pemrograman berorientasi objek yaitu Java dan C#. Haskell dan Scheme utamanya adalah bahasa pemrograman fungsional. C merupakan bahasa imperatif, sementara Prolog adalah bahasa Logis dan Datalog dikenal sebagai bahasa dengan paradigma simbolik. 

Filsafat Pengembangan Javascript
Javascript merupakan sebuah bahasa yang berevolusi. Secara singkat, kita dapat melihat filsafat pengembangan Javascript dalam poin-poin berikut: 
Javascript mendukung paradigma pemrograman imparatif, fungsional, dan orientasi objek. 
Javascript memiliki model pemrograman fungsional yang sangat ekspresif. 
Pemrograman berorientasi objek (PBO) pada Javascript memiliki perbedaan dari PBO pada umumnya. 
Perlakukan program Javascript yang kompleks sebagai program-program kecil yang saling berinteraksi. 

Jika ingin mendapatakan hasil kode Javascript yang baik dan optimal, maka sebaiknya mengikuti empat prinsip dasar tersebut.

Objek pada Javascript
Javascript memiliki dua jenis tipe data utama, yaitu tipe data dasar dan objek. 
  1. Tipe data dasar pada Javascript adalah angka (numbers), rentetan karakter (strings), boolean (true dan false), null, dan undefined. Nilai-nilai selain tipe data dasar secara otomatis dianggap sebagai objek. 
  2. Objek dalam Javascript didefinisikan sebagai mutable properties collection, yang artinya adalah sekumpulan properti (ciri khas) yang dapat berubah nilainya. Pembuatan Objek pada Javascript
Objek pada Javascript bersifat class-free. Hal ini berarti tidak wajib mendefinisikan kelas terlebih dahulu untuk menggunakan sebuah objek (melalui inisiasi / constructor). 

Akses Nilai Properti
Akses nilai properti dapat dilakukan dengan dua cara, yaitu:
  1. Penggunaan kurung siku ([]) setelah nama objek. Kurung siku kemudian diisikan dengan nama properti, yang harus berupa string. Cara ini biasanya digunakan untuk nama properti yang adalah nama ilegal atau kata kunci Javascript.
  2. Penggunaan tanda titik (.) setelah nama objek diikuti dengan nama properti. Notasi ini merupakan notasi yang umum digunakan pada bahasa pemrograman lainnya. Sayangnya kita tidak dapat menggunakan notasi ini untuk nama ilegal atau kata kunci Javascript.
Contoh penggunaan kedua cara pemanggilan di atas adalah sebagai berikut:
mobil["warna-badan"] // Hasil: "merah"
jadwal.platform // Hasil: 34

Mengubah Nilai Properti
Cara mengubah nilai properti sama halnya dengan bahasa pemrograman lain pada umumnya, yaitu dengan menggunakan operator =:

jadwal.platform = 30;

Sifat dinamis Javascript dapat dilihat ketika kita mencoba mengubah nilai dari properti yang tidak ada pada objek:
mobil["jumlah-roda"] = 4;
mobil.bahan_bakar = "Bensin";

Menghapus Properti
Mengahpus properti tersebut dengan menggunakan operator delete. Contoh penggunaannya adalah sebagai berikut:

mobil.bahan_bakar // Hasil: "Bensin"

// hapus properti bahan_bakar dari mobil
delete mobil.bahan_bakar

mobil.bahan_bakar // Hasil: undefined

Fungsi pada Javascript
Sebagai bahasa fungsional Javascript mengimplementasikan fungsi kelas pertama (first class function). Pembuatan Fungsi pada Javascript, sebuah fungsi pada Javascript dibuat dengan cara seperti berikut:

function tam. bah(a, b) {

hasil = a + b;

return hasil;


Cara penulisan fungsi seperti ini dikenal dengan nama function declaration, atau deklarasi fungsi. Terdapat empat komponen yang membangun fungsi yang baru kita definisikan di atas, yaitu:
  1. Kata kunci function, yang memberitahu Javascript bahwa kita akan membuat fungsi.
  2. Nama fungsi, dalam contoh di atas adalah tambah. 
  3. Daftar parameter fungsi, yaitu a, b pada contoh di atas. 
  4. Sekumpulan perintah yang ada di dalam kurung kurawal ({}).
Fungsi sebagai Objek
Fungsi pada javascript adalah sebuah objek. Sebagai sebuah objek, semua fungsi dalam Javascript merupakan turunan dari Function.prototype juga adalah merupakan turunan dari Object.prototype, sama seperti semua objek-objek lain dalam Javascript. 

Perbedaan utama fungsi dengan objek lain pada umumnya adalah fungsi dapat dipanggil, dan memiliki dua buah properti khusus, yaitu konteks pemanggilan fungsi dan kode pada isi badan fungsi. 

Pemanggilan Fungsi
Pemanggilan fungsi dilakukan dengan cara menuliskan nama fungsi tersebut, kemudian mengisikan argumen yang ada di dalam tanda kurung.

Misalkan fungsi tambah yang kita buat pada bagian sebelumnya:
var tambah = function (a, b) {
var hasil = a + b;
return hasil;
};

dapat dipanggil seperti berikut:

tambah(3, 5);

Javascript Secara Fungsional
Pemrograman fungsional merupakan paradigma pemrograman yang melihat struktur dan elemen dari kode program sebagai kumpulan dari fungsi matematis yang saling berinteraksi. Pemrograman fungsional bukanlah sebuah teknik yang baru, karena metode ini telah dikembangkan sejak 1930. Teknik fungsional banyak digunakan oleh bahasa-bahasa yang dekat dengan matematika serta algoritma seperti Haskell dan LISP. Pemrograman Fungsional (selanjutnya disebut PF saja) juga belum tentu lebih baik ataupun lebih buruk dari Pemrograman Berorientasi Objek (PBO). Yang pasti, PFberbeda dari PBO. Perbedaan ini menyebabkan PF lebih baik dari PBO pada kasus tertentu, dan lebih buruk dalam kasus lainnya. 

Fungsi Rekursif
Fungsi rekursif merupakan sebuah fungsi yang memanggil dirinya sendiri, baik secara langsung maupun tidak langsung. Sebagai contoh, misalkan kita ingin membuat fungsi yang menghitung hasil kali dua bilangan. Secara sederhana, kita dapat mendefinisikan perkalian (sebuah masalah besar) sebagai penjumlahan (masalah kecil) yang dilakukan berulang kali, seperti berikut:
Secara umum, sebuah fungsi rekursif harus memiliki tiga komponen berikut untuk memastikan fungsi tersebut dapat berjalan dengan benar:
  1. Pemanggilan Diri Sendiri. 
  2. Syarat berhenti. 
  3. Pergerakan Nilai ke Syarat Berhenti. 
Fungsi Tingkat Tinggi
Fungsi tingkat tinggi (higher-order function, functor) pada konsep PF adalah sebuah fungsi yang minimal melakukan salah satu dari dua hal berikut:
  1. Mengambil fungsi lain sebagai parameter, atau
  2. Mengembalikan (menghasilkan) fungsi lain.
Currying
Programing Functional dibangun berdasarkan konsep lambda calculus (LC). Penyederhanaan ekspresi matematika oleh LC dilakukan dengan dua cara, yaitu dengan memungkinkan kita menuliskan fungsi anonim dan aturan bahwa setiap fungsi hanya boleh memiliki satu argumen saja.

Secara sederhana, currying merupakan teknik di mana kita mengubah sebuah fungsi dengan beberapa argumen menjadi serangkaian fungsi yang hanya memiliki satu argumen saja. Sederhananya, sebuah fungsi dengan dua argumen:

(x,y)→x+y

kita ubah menjadi:

x→(y→x+y)

Fungsi Teraplikasi Parsial
Fungsi teraplikasi parsial (partially applied function) merupakan teknik pembuatan fungsi baru dari fungsi yang sudah ada dengan mengisikan beberapa parameter standar dari fungsi asal. 

Mengenal JavaScript dan Java
Ø Persamaan JavaScript dan Java
- JavaScript adalah sama atau terkait erat dengan Java. 
- Memang benar bahwa keduanya memiliki sintaks C-seperti.
- Mereka juga keduanya biasanya sandboxed (bila digunakan dalam browser), dan - JavaScript dirancang dengan sintaks Jawa dan perpustakaan standar dalam pikiran. 
- Secara khusus, semua kata kunci Java yang disediakan di asli JavaScript, perpustakaan standar JavaScript berikut konvensi penamaan Jawa, dan JavaScript Matematika dan Tanggal benda didasarkan pada kelas dari Java 1.0

Ø Perbedaan JavaScript dan Java
- Java memiliki statis mengetik 
- Java dimuat dari dikompilasi bytecode
- Objek Java adalah berbasis kelas 
- Java tidak mendukung pemrograman fungsional 
- JavaScript adalah dinamis (yang berarti variabel dapat menyimpan sebuah objek dari jenis apa pun dan tidak dapat dibatasi). 
- JavaScript dimuat sebagai kode sumber terbaca-manusia. 
- JavaScript adalah berbasis prototipe . 
- JavaScript merupan pemrograman fungsional 
- tidak mengandung banyak fitur yang didasarkan pada bahasa Scheme

Daftar Pustaka
  • http://bertzzie.com/knowledge/javascript/Javascript-Fungsional.html
  • http://romayati.blogspot.co.id/2014/03/javascript.html
  • http://www.hunlock.com/blogs/Functional_Javascript 
  • https://id.wikipedia.org/wiki/JavaScript

    Disclaimer: Gambar, artikel ataupun video yang ada di web ini terkadang berasal dari berbagai sumber media lain. Hak Cipta sepenuhnya dipegang oleh sumber tersebut. Jika ada masalah terkait hal ini, Anda dapat menghubungi kami disini.
    Related Posts
    © Copyright Pengertian Dari - All Rights Reserved - Template Created by goomsite - Proudly powered by Blogger