Mohon tunggu...
Kuindra Iriyanta
Kuindra Iriyanta Mohon Tunggu... Administrasi - D I Yogyakarta

Bekerja sebagai Admisi dan Promosi di salah satu PTS. Saat ini sedang mengambil studi S2 program Magister Teknologi Informasi di STMIK AKAKOM Yogyakarta. Sedang belajar untuk menulis berbagai hal terkait teknologi komputer. Biasa mengisi materi pelatihan tentang embedded system di Sekolah Menengah Kejuruan bagi siswa. Tertarik juga dengan desain grafis, pengolahan data dan multimedia.

Selanjutnya

Tutup

Gadget

Haskell, Bahasa Pemrograman Fungsional Murni

1 Desember 2019   15:18 Diperbarui: 1 Desember 2019   15:26 355
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Gadget. Sumber ilustrasi: PEXELS/ThisIsEngineering

Jika pada tulisan sebelumnya telah dibahas tentang paradigma pemrograman lojik dengan salah satu contoh bahasa pemrograman Prolog, maka pada tulisan kali ini akan coba dibahas tentang paradigma pemrograman fungsional serta salah satu bahasa pemrograman yang menganut paham ini.

Seperti kita ketahui, paradigma pemrograman sendiri dibagi menjadi beberapa macam yaitu

  1. Paradigma pemrograman fungsional
  2. Paradigma pemrograman prosedural
  3. Paradigma pemrograman berorientasi objek
  4. Paradigma pemrograman konkuren
  5. Paradigma pemrograman Lojik

Fungsional, seperti namanya, maka bahasa pemrograman yang menggunakan paradigma ini dalam menyelesaikan masalah didasari dengan konsep pemetaan dan fungsi matematika. Dalam menyelesaikan persoalan, setiap penyelesaian didasarkan pada teori fungsi matematika, dimana proses komputasinya diperlakukan sebagai evaluasi fungsi matematika. Cara pemrograman ini menjadikan program lebih expresif, dan lebih sedikit mengunakan baris code.  Pemrograman fungsional mempunyai karakteristik yang tidak bergantung pada data yang berada diluar fungsi itu sendiri dan tidak mengubah data diluar fungsi itu tadi. Pemrograman fungsional juga membawa gaya baru dalam menulis kode sehingga bisa lebih menghemat baris kode

Salah satu bahasa pemrograman fungsional murni adalah Haskell. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan Haskell Curry, yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation. Haskell disebut 'murni' karena bahasa ini tidak memperbolehkan adanya efek samping (Efek samping adalah sesuatu yang mempengaruhi "bagian" di program. Misalnya suatu fungsi yang mencetak sesuatu ke layar yang mempengaruhi nilai dari variabel global. Tentu saja, suatu bahasa pemrograman yang tanpa efek samping akan menjadi sangat tidak berguna; Haskell menggunakan sebuah system monads untuk mengisolasi semua komputasi kotor dari program dan menampilkannya dengan cara yang aman. Haskell disebut bahasa 'fungsional' karena evaluasi dari programnya sama dengan mengevaluasi sebuah fungsi dalam bahasa matematika murni. Hal ini juga yang membedakannya dari bahasa standard (seperti C dan Java) yang mengevaluasi sederetan pernyataan secara urut (inilah pola dari bahasa  terstruktur ) Yang termasuk dalam bahasa pemrograman fungsional antara lain Lisp, Scheme, Erlang, Clean, Mercury, ML, OCaml, SQL, XSL dan lain-lain. Di antara bahasa fungsional tersebut, Haskell merupakan bahasa yang ideal dalam banyak hal

Haskell bisa digunakan untuk pengembangan program berbasi CLi, Web Development, Game Development, dsb. Haskell biasanya digunakan untuk kepentingan Distributed System. 

Contoh perintah Haskell yang di eksesekusi secara online di https://tryhaskell.org/ 

Type Haskell expressions in here.

reverse "hello"

"olleh"

:: [Char]

 

23 * 36

828

:: Num a => a

 

Salah satu keunggulan Haskell adalah tidak ada variabel yang berubah. Kebiasaan pemrograman paling umum dalam pemrograman terstruktur adalah untuk memberikan suatu nilai ke suatu variabel, kemudian memberinya suatu nilai berbeda seperti contoh dalam bahasa C berikut ini

if (myVar==37) {...}

myVar += 2

for (myVar=0; myVar<37; myVar++) {...}

Penggunaan variabel dalam Haskell sangatlah berbeda.. Suatu variabel  bisa berupa nilai, tetapi sekali diberikan nilai, variabel tersebut akan berisi nilai itu di seluruh program. Dalam Haskell, "variabel" adalah kurang lebih seperti sama dengan variabel dalam persamaan  matematika. Contohnya :

10x + 5y - 7z + 1 = 0

17x + 5y - 10z + 3 = 0

5x - 4y + 3z - 6 = 0

Dari persamaan diatas, diperoleh 3 variabel yaitu X. Ydan Z, yang tidak diketahui nilainya berapa.  Variabel tersebut tidak akan berubah sampai kita menemukan jawabanya atau nilai dari variable tersebut. Berbeda dengan contoh sebelumnya, bahwa variabel myVar nilainya akan berubah setiap kali program dieksekusi.

Keunggulan dari Haskell adalah tidak ada struktur perulangan baik itu  for, while, reapet. Tidak ada juga struktur GOTO. Padahal, struktur ini paling banyak digunakan dalam membuat program. Bahkan, bagi seorang programmer, menghilangkan strutur perulangan ini bisa dikatakan mustahil. Mustahil membuat program tanpa menggunakan strukur diatas tadi. Namun di Haskell, struktur ini dibuang. Hal ini karena di Haskell tidak dimungkinkan mendefinisikan variabel variabel dengan nilai yang berbeda, seperti telah dijelaskan dalam ilustrasi sebelumnya. 

Selain itu, pencabangan juga tidak tersedia di Haskell ini, karena pada hakekatnya, pencabangan adalah untuk membedakan aktifitas. Sementara di pemrograman fungsional tidak memiliki aktifitas, hanya pendefinisian fungsi fungsi,sehingga tidak memerlukan pencabangan.

Meski dengan keunggulan diatas, Haskell nampaknya tidak begitu familiar sehingga sedikit sekali dokumentasi yang tersedia dan juga jarang digunakan. Haskell sendiri di Indonesia tidak begitu dikenal karena peminatnya sedikit. Akibatnya, dokumentasi yang tersedia pun sangat terbatas. Untuk belajar Haskell, dapat secara online melalui https://tryhaskell.org/

Sumber : http://dafferianto.web.ugm.ac.id/mystudy/kbp/jadi.doc

Follow Instagram @kompasianacom juga Tiktok @kompasiana biar nggak ketinggalan event seru komunitas dan tips dapat cuan dari Kompasiana
Baca juga cerita inspiratif langsung dari smartphone kamu dengan bergabung di WhatsApp Channel Kompasiana di SINI

HALAMAN :
  1. 1
  2. 2
  3. 3
Mohon tunggu...

Lihat Konten Gadget Selengkapnya
Lihat Gadget Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun