Makalah Alogoritma Pemrograman Tentang Bahasa Pemrograman


KATA PENGANTAR

Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha Panyayang, Kami panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat, hidayah, dan inayah-Nya kepada kami, sehingga kami dapat menyelesaikan tugas makalah tentang pemrograman fungsional.
Makalah ini telah kami susun dengan maksimal dan mendapatkan bantuan dari berbagai pihak sehingga dapat memperlancar pembuatan makalah ini. Untuk itu kami menyampaikan banyak terima kasih kepada semua pihak yang telah berkontribusi dalam pembuatan makalah ini. Terutama kepada Ibu Octarina Budi Lestari , selaku dosen mata kuliah Algoritma dan Pemrograman 1C, yang memberikan kami tugas membuat makalah sehingga dengan begitu secara tidak langsung kami belajar untuk memperdalam Ilmu Alogaritma dan Pemrograman.
  
    Terlepas dari semua itu, Kami menyadari sepenuhnya bahwa masih ada kekurangan baik dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu dengan tangan terbuka kami menerima segala saran dan kritik dari pembaca agar penulis dapat memperbaiki makalah ini.
  
    Akhir kata kami berharap semoga makalah tentang pemrograman yang baik  ini dapat memberikan manfaat maupun inpirasi terhadap pembaca.


Depok, Oktober 2018



 



Daftar Isi

 




BAB I

PENDAHULUAN


Pesatnya teknologi, terutama teknologi komputer sudah tak bisa dipungkiri lagi, bagi yang mengikuti perkembangannya, ia tidak akan dipandang sebelah mata. Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk mundur secara suka rela dari panggung kompetisi. Ibarat wabah, teknologi komputer sudah menyusupi hampir semua bidang kehidupan manusia. Dari pemerintah pusat sampai tingkat pemerintah desa, perusahaan-perusahaan, supermarket, minimarket, perguruan tinggi, SLTA, SLTP, bahkan SD hampir semuanya mengenal komputer. Saat ini, yang mempunyai lingkungan yang semakin luas dan banyak diminati, juga dapat digunakan untuk menghasilkan uang adalah dunia pemrograman komputer. Dalam dunia pemrograman komputer, dikenal algoritma dan banyak bahasa pemrograman, seperti C, C++, Pascal, Basic, Java, dan lain-lain. Oleh karena itulah, yang akan dibahas dalam makalah ini adalah Algoritma dan Pemrograman.Fungsional

Makalah ini disusun dengan tujuan sebagai sarana untuk mengikuti pesatnya perkembangan teknologi komputer di masa sekarang ini, salah satunya di dunia pemrograman yang sekarang semakin banyak diminati. Selain itu, tujuan disusunnya makalah ini adalah untuk memenuhi tugas.






BAB II

PEMBAHASAN


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

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 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.

Ambil Lambda Kalkulus Dan :
1.      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.
2.      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.
3.      Berulang ulang oleh aturan β adalah cara yang sangat tidak efisien untuk mengeksekusi program pada komputer.

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.

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.

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
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
2.      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.

BAB III

PENUTUP

Ada dua kubu besar dalam bahasa pemrograman yaitu pemrograman fungsional dan pemrograman imperative. Program fungsional memiliki beberapa kelebihan yaitu cenderung lebih ringkas, lebih mudah untuk dimengerti, dan penyimpanan dialokasikan dan diinisialisaikan secara implisit, dan diselamatkan secara otomatis. Selain beberapa kelebihan fungsional pemrograming juga memiliki kekurangan yaitu pemrogramannya cenderung sulit untuk 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

Penulis menyelsaikan makalah ini dengan berbagai sumber dan arahan  dari berbagai pihak. Penulis menyadari banyak kekurangan dalam pembuatan makalah ini. Penulis mengharapkan kritikan dan saran dari pembaca untuk perbaikan makalah ini dimasa yang akan datang.


Komentar

Postingan populer dari blog ini

Makalah Observasi Kunjungan Monument Pancasila Sakti

Resensi Film “Alangkah Lucunya Negeri Ini”