Ristanto Dwi Prasetyo
Selasa, 15 Juli 2014
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
- bahasa mesin. yaitu bahasa yang digunakan untuk
memprogram komputer dengan menggunakan kode semacam kode biner
misalnya.00100001010100100
- 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
- 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.
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 :
- 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.
Contoh program bahasa
C dan C++ menurut nilai kembalian yang dihasilkan
:
1. fungsi yang mempunyai nilai kembalian :
h
contoh :
fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian
b. fungsi yang punya input dan punya output
contoh:
- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input
1. fungsi yang mempunyai nilai kembalian :
h
sintaks 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 :
- 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.
Contoh program bahasa
C dan C++ menurut nilai kembalian yang dihasilkan
:
1. fungsi yang mempunyai nilai kembalian :
h
contoh :
fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian
b. fungsi yang punya input dan punya output
contoh:
- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input
1. fungsi yang mempunyai nilai kembalian :
h
sintaks 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 :
- 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.
Contoh program bahasa
C dan C++ menurut nilai kembalian yang dihasilkan
:
1. fungsi yang mempunyai nilai kembalian :
h
contoh :
fungsi return() di bawah ini menunjukkan kalau fungsi di atas mempunyai nilai kembalian
b. fungsi yang punya input dan punya output
contoh:
- kalau di dalam tanda kurung memiliki variabel, berarti fungsi tersebut mempunyai input
1. fungsi yang mempunyai nilai kembalian :
h
sintaks 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
Langganan:
Postingan (Atom)