EP 71

Ngobrolin Fungsional JS - Ngobrolin WEB

Bagikan:

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Ringkasan Episode

Bantu Koreksi

Episode Ngobrolin WEB ini membahas konsep-konsep pemrograman fungsional dalam JavaScript secara mendalam. Diskusi dimulai dengan sejarah singkat JavaScript yang awalnya dirancang oleh Brendan Eich untuk mengimplementasikan Scheme (bahasa fungsional) di browser, namun kemudian dikompromikan dengan tren Java yang sedang naik daun pada masa itu, menjadikan JavaScript sebagai bahasa hibrida yang mendukung baik paradigma fungsional maupun OOP. Pembahasan lanjut ke konsep-konsep fundamental pemrograman fungsional seperti pure function yang harus menghasilkan output yang sama untuk input yang sama tanpa side effect, pentingnya return value, serta konsep immutability di mana data tidak boleh diubah setelah dibuat. Episode ini juga menyinggung perbedaan antara pendekatan deklaratif (fungsional) dan imperatif, serta memperkenalkan utility library seperti Ramda.js yang membantu implementasi fungsional programming di JavaScript dengan fitur seperti pipe operator dan tree-shaking untuk optimasi bundle size. Diskusi ditutup dengan pembicaraan tentang bahasa-bahasa fungsional murni seperti Haskell, Elixir, dan Reason, serta bagaimana konsep fungsional dapat diterapkan dalam pengembangan web modern tanpa harus mengadopsi sepenuhnya bahasa fungsional.

Poin-poin Utama

  • JavaScript memiliki akar sejarah dari pemrograman fungsional melalui visi awal Brendan Eich yang ingin mengimplementasikan Scheme di browser, namun dikompromikan dengan tren Java yang sedang populer pada tahun 1995
  • Pure function adalah fungsi yang selalu mengembalikan hasil yang sama untuk input yang sama dan tidak memiliki side effect, dengan karakteristik utama: semua data yang dibutuhkan harus diteruskan melalui parameter dan fungsi harus memiliki return value
  • Side effect dalam konteks web mencakup manipulasi DOM, console.log, request ke server, save ke database, atau mengubah variabel di luar scope fungsi, yang sebaiknya diisolasi pada fungsi-fungsi tertentu saja
  • Immutability adalah konsep penting dalam pemrograman fungsional di mana data tidak boleh diubah setelah dibuat, berbeda dengan mutability yang memungkinkan perubahan data langsung pada variabel yang sama
  • Pendekatan deklaratif (fungsional) berfokus pada "apa yang ingin dicapai" menggunakan fungsi seperti map, filter, dan reduce, sedangkan pendekatan imperatif berfokus pada "bagaimana mencapainya" dengan for loop dan conditional
  • Higher order function adalah fungsi yang dapat menerima fungsi lain sebagai parameter atau mengembalikan fungsi, yang sangat umum digunakan dalam React components dan utility functions
  • Ramda.js adalah utility library yang populer untuk pemrograman fungsional di JavaScript dengan fitur seperti pipe operator, auto-currying, dan mendukung tree-shaking untuk optimasi bundle size
  • Belajar paradigma pemrograman fungsional tidak harus menggantikan OOP sepenuhnya, namun dapat memperkaya toolkit developer dan membantu memahami kode yang ditulis dengan paradigma berbeda

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Ngobrolin Database - Ngobrolin WEB
EP 133

17 Jun 2025

Ngobrolin Database - Ngobrolin WEB

🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita akan membedah berbagai cara scaling database. Masih bersama p...

Ngobrolin NextJS - Ngobrolin WEB
EP 85

4 Jun 2024

Ngobrolin NextJS - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Ngobrolin Elixir - Ngobrolin WEB
EP 89

2 Jul 2024

Ngobrolin Elixir - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Komentar