Cute Red Pencil Ristanto Dwi Prasetyo: Desember 2013

Senin, 30 Desember 2013

Erlang Pemrograman

bahasa pemrograman (programming language). apa itu? bahasa pemrograman adalah suatu komando atau perintah yang dibuat manusia untuk membuat komputer menjadi memiliki fungsi tertentu. bahasa pemrograman ini adalah suatu susunan aturan penulisan (sintaks) yang membentuk kode kode yang kemudian akan diterjemahkan oleh program kompiler menjadi bahasa rakitan (assembly) dan terus diolah hingga dimengerti oleh mesin. Komputer hanya mengerti bahasa mesin. menurut tingkat kedekatannya bahasa pemrograman ( programming language) terdiri dari
  1. bahasa mesin. yaitu bahasa yang digunakan untuk memprogram komputer dengan menggunakan kode semacam kode biner misalnya.00100001010100100
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.

5. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb


sebagian besar bahasa pemrograman adalah bahasa tingkat tinggi. bahasa tingkat tinggi adalah bahasa pemrograman yang memiliki struktur dan kemiripan seperti bahasa menusia ya itu bahasa inggris. contoh bahasa pemrograman adalah PASCAL yang kita pelajari di situs pascal ini. sementara bahasa tingkat menengah misalnya bahasa C..

saat ini banyak bahasa pemrograman yang ada di dunia. masing masing punya kelebihan dalam kemudahan mempelajari dan merancangnya. diantara bahasa pemrograman yang populer antara lain

FORTAN
 FORTAN ( formula translation). pertama kali dikembangkan pada tahun 1956 oleh Jhon Backus di IBM. ditujukan untuk mempermudah pembuatann aplikasi matematika , ilmu pengetahuan dan teknik. FORTAN merupakan bahasa pemrograman tingkat tinggi yang pertama ada. keunggulan fortan terletak pada dukungan untuk menangani perhitungan , termasuk bilangan kompleks. Kelemahan bahasa ini adalah pada operasi masukan dan keluaran yang kaku. selain itu kode sumbernya juga sulit dipelajari

contoh struktur FORTAN

// JOB
// FOR
* ONE WORD INTEGERS
* IOCS(DISK,TYPEWRITER,KEYBOARD,PAPERTAPE)
______DIMENSION IEMG(10,15),IEMG1(13)
______DEFINE FILE 12(80,150,U,K)
______WRITE(1,10)
___10 FORMAT('PAPERTAPE'//'GIVE NUMBER EXPERIMENT (1-5 IN INT)')
______READ(6,30) M
___30 FORMAT(I1)
______PAUSE 1
______DO 25 N=1,16
______DO 15 I=1,15
______READ(4,20) IEMG1
___20 FORMAT(13I4)
______DO 15 J=4,13
______J3=J-3
___15 IEMG(J3,I)=IEMG1(J)
______NE=N+(M-1)*16
___25 WRITE(12'NE) IEMG
______CALL EXIT
______END
// DUP
*DELETE SJA1
*STORECI WS UA SJA1
*FILES(12,EMG)




 BAHASA COBOL

 COBOL (comon Businnes Oriented Language) dikembangkan pada tahun 1959 dan tergolong sebagai bahasa pemrograman tingkat tinggi. sesuai dengan kepanjangan namanya bahasa ini dikembangkan untuk keperluan bisnis. keunggulan COBOL antara lain :
- sintaksnya yang menggunakan kata bahasa inggris
- kemudahan terhadap penanganan file
- kemudahan input dan output

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.     HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500     DISPLAY "Hello world!" LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.



BAHASA PEMROGRAMAN BASIC

Dikembangkan tahun 1965 di Darmouth Collage. penciptanya John Kemeny (bukan john key ya!!!)

REM Program mencari rata-rata 3 buah bilangan

INPUT “Masukkan tiga buah bilangan : “, a, b, c
rata=(a+b+c)/3
PRINT “Rata-rata ketiga bilangan adalah : “; rata



BAHASA JAVA

Dikembangkan tahun 1955 oleh sun microsystem. kode java dikompilasi dalam ormat bytcode.java sangat populer saat ini. terutama bagi para online mania.


Public class SayHello {   Public static void main(String[] args {
    System.out.println(“Hello world!”);
  }
}


PASCAL

perkembangan pemrograman bahasa pascal dimulai pada tahun 1960, yaitu ketika bahasa pemrograman ALGOL 60 digunakan sebagai algorithmic language  yang digunakan untuk memecah masalah sehari hari dengan menggunakan komputer. Niklaus Wirt dari sekolah teknik tinggi zurich swiss menjadi terkenal sebagai pencipta bahasa pascal.keunggulan pascal adalah pada strukturnya yang mudah dan lengkap. pascal adalah bahasa paling banyak digunakan dalam dunia pendidikan.

PROGRAM CariMin;

{Mencari Bilangan terkecil dari dua buah bilangan}

VAR
  x,y,min:integer;

BEGIN
  WRITE(‘Bilangan pertama : ‘);READLN(x);
  WRITE(‘Bilangan kedua : ‘);READLN(y);
  IF x>y THEN
    Min:=y
  ELSE
    Min:=x;
  WRITE(‘Bilangan terkecil : ‘,min);
END.

PEMROGRAMAN FUNGSIONAL

  • 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
3.      OCaml
4.      Haskell
5.      Mathematica
6.      Erlang
  • 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 :
      1. Lambang Primitif
      2. Aplikasi Fungsi
      3. 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.

Contoh program bahasa C dan C++ menurut nilai kembalian yang dihasilkan :
1. fungsi yang mempunyai nilai kembalian :
hsintaks umum :
tipe_data nama_fungsi ()
{
statemen1;
statemen2;
...
}

contoh :

int show_number()
{
int a = 1;
return (a);
}

fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian

b. fungsi yang punya input dan punya output

sintaks umum :
tipe_data nama_fungsi(tipe_data nama_variabel)
{
statemen1;
statemen2;
...
}

contoh:

int show_number(int a)
{
a = 1;
return (a);
}

- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input



PEMROGRAMAN FUNGSIONAL

  • 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
3.      OCaml
4.      Haskell
5.      Mathematica
6.      Erlang
  • 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 :
      1. Lambang Primitif
      2. Aplikasi Fungsi
      3. 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.

Contoh program bahasa C dan C++ menurut nilai kembalian yang dihasilkan :
1. fungsi yang mempunyai nilai kembalian :
hsintaks umum :
tipe_data nama_fungsi ()
{
statemen1;
statemen2;
...
}

contoh :

int show_number()
{
int a = 1;
return (a);
}

fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian

b. fungsi yang punya input dan punya output

sintaks umum :
tipe_data nama_fungsi(tipe_data nama_variabel)
{
statemen1;
statemen2;
...
}

contoh:

int show_number(int a)
{
a = 1;
return (a);
}

- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input



PEMROGRAMAN FUNGSIONAL

  • 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
3.      OCaml
4.      Haskell
5.      Mathematica
6.      Erlang
  • 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 :
      1. Lambang Primitif
      2. Aplikasi Fungsi
      3. 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.

Contoh program bahasa C dan C++ menurut nilai kembalian yang dihasilkan :
1. fungsi yang mempunyai nilai kembalian :
hsintaks umum :
tipe_data nama_fungsi ()
{
statemen1;
statemen2;
...
}

contoh :

int show_number()
{
int a = 1;
return (a);
}

fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian

b. fungsi yang punya input dan punya output

sintaks umum :
tipe_data nama_fungsi(tipe_data nama_variabel)
{
statemen1;
statemen2;
...
}

contoh:

int show_number(int a)
{
a = 1;
return (a);
}

- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input