Belajar Haskell - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Haskell - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Haskell, kalian perlu menguasai dasar pemrograman, konsep fungsi, tipe data, immutability & pure function. Di episode ini kalian juga menyiapkan GHCup dengan GHC 9.14.1 LTS dan cabal, memasang VS Code beserta Haskell Language Server, serta memverifikasi seluruh environment siap dipakai sepanjang series.

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Selamat datang di series Belajar Haskell! Series ini akan membawa kalian menguasai Haskell — bahasa pemrograman purely functional, lazy, dengan type system yang sangat ekspresif — untuk backend service, kompiler, dan aplikasi yang menuntut correctness tinggi. Total ada 23 episode yang tersusun dalam lima fase, dari fondasi konsep sampai production readiness.

Sebelum menjalankan ghci atau cabal run, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena Haskell memaksa kalian berpikir berbeda dari bahasa imperatif: tidak ada for loop untuk mengubah variabel, tidak ada objek dengan state mutabel, dan hampir tidak ada operasi yang melompat keluar dari alur fungsi. Semakin kuat fondasi konsep kalian di episode 0, semakin sedikit rasa frustrasi saat menghadapi monad di episode 11.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan GHCup dengan compiler GHC dan cabal, memasang editor dengan Haskell Language Server, lalu memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

Dasar Pemrograman: Fungsi dan Tipe

Haskell dibangun di atas dua konsep inti: fungsi dan tipe. Kalian wajib paham bahwa fungsi menerima input dan menghasilkan output, dan bahwa tipe menentukan "bentuk" data (angka, teks, boolean, daftar). Jika kalian pernah memakai Python, TypeScript, atau Rust, konsep ini pasti sudah familier:

Konsep fungsi yang familier
addOne :: Int -> Int
addOne x = x + 1

Perhatikan sintaksnya: addOne :: Int -> Int berarti "fungsi addOne bertipe Int ke Int", dan addOne x = x + 1 adalah definisinya. Tidak ada tanda kurung dan tidak ada keyword return — bagian ini akan kita bedah tuntas di episode 4 dan 5.

Immutability dan Pure Function

Ini justru yang paling penting. Di Haskell, setiap nilai bersifat immutable: sekali dibuat, tidak bisa diubah. Dan fungsi dianggap pure: hasilnya hanya bergantung pada argumennya, tidak membaca atau mengubah keadaan di luar fungsi.

Pure function - hasil hanya dari argumen
double :: Int -> Int
double x = x * 2

double 5 akan selalu 10, apa pun yang terjadi di tempat lain. Tidak seperti count += 1 di bahasa imperatif yang mengubah state global, fungsi ini tidak pernah menyentuh dunia luar. Konsekuensinya: kode Haskell jauh lebih mudah diprediksi, di-test, dan di-refactor — tetapi kalian harus belajar untuk berhenti berpikir "ubah variabel ini" dan mulai berpikir "berikan nilai baru".

Kemauan Berpikir Declarative

Haskell adalah bahasa declarative: kalian mendeskripsikan apa yang ingin dihitung, bukan langkah demi langkah bagaimana menghitungnya. Kalian tidak perlu sudah mahir — cukup terbuka terhadap cara berpikir baru. Pengalaman dengan map/filter/fold di bahasa lain (Python map/filter, JS Array.map, Rust iterator) akan membuat transisi jauh lebih mulus.

Note

Jangan panik jika episode awal terasa berbeda dari bahasa yang biasa kalian pakai. Puncak "oh, begitu rupanya" biasanya terjadi di episode 7 (laziness) dan episode 11 (monads). Yang dibutuhkan di sini hanyalah kemauan mengikuti alurnya secara berurutan.

Perangkat Software dan Hardware yang Disiapkan

Sistem Operasi

Haskell mendukung Linux, macOS, dan Windows (lewat WSL2 atau native). Untuk series ini, Linux atau macOS adalah pilihan paling mulus karena GHCup dan cabal berjalan native tanpa hambatan.

GHCup: Installer Toolchain Haskell

GHCup (The Haskell toolchain installer) adalah cara standar mengelola compiler GHC, cabal, dan stack di 2026. Satu perintah menginstall semuanya:

Install GHCup
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

GHCup mengisolasi toolchain di ~/.ghcup, sehingga kalian bisa memiliki beberapa versi GHC sekaligus. Setelah install, muat ulang shell (atau logout/login) agar ghcup tersedia di PATH, lalu install GHC versi yang dipakai series ini:

Install GHC 9.14.1 LTS dan cabal
ghcup install ghc recommended
ghcup install cabal recommended

Hardware: 8GB RAM Dianjurkan

GHC adalah compiler yang berat. Kompilasi modul besar bisa menghabiskan beberapa GB RAM dan membuat laptop kalian berputar kencang. Untuk kenyamanan sepanjang series, minimal 8GB RAM sangat dianjurkan — 16GB akan membuat episode 21 (profiling) terasa jauh lebih menyenangkan.

Editor dan Haskell Language Server

VS Code dengan ekstensi Haskell adalah pilihan paling populer karena menggerakkan HLS (Haskell Language Server) yang memberikan IntelliSense, type info saat hover, goto definition, dan auto-complete. GHCup bisa memasang HLS dengan satu perintah:

Install HLS dan GHCi
ghcup install hls recommended
ghci --version

Setelah install, buka VS Code, install ekstensi "Haskell" dari Haskell Foundation, dan buka folder proyek. Saat membuka file .hs, HLS akan memberikan type signature di garis bawah dan error linting langsung — ini aset terbesar kalian untuk belajar tipe.

Warning

HLS butuh versi GHC yang sesuai. Jika VS Code menampilkan "Failed to find HLS" atau mismatch versi, jalankan ghcup set ghc 9.14.1 lalu ghcup set hls recommended agar keduanya konsisten. Detail HLS setup dibahas lagi di episode 9.

Verifikasi Environment

Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:

Verifikasi environment
ghc --version
cabal --version
ghcup list
echo "main :: IO ()" | ghci

ghc --version harus mencetak GHC 9.14.1 (rilis 19 Desember 2025, versi LTS pertama), dan cabal --version harus mencetak versi cabal terbaru. Perintah terakhir menjalankan GHCi untuk memastikan REPL berfungsi. Jika semuanya tampil tanpa error, environment kalian sudah siap.

Ringkasan Prasyarat

Rangkuman yang sudah kalian siapkan di episode 0:

  • Skill: dasar pemrograman (fungsi, tipe), konsep immutability & pure function, dan keterbukaan terhadap cara berpikir declarative.
  • Toolchain: GHCup terinstall, GHC 9.14.1 LTS + cabal versi recommended.
  • Editor: VS Code + ekstensi Haskell dengan HLS berjalan normal.
  • Hardware: minimal 8GB RAM untuk kenyamanan kompilasi.
  • Verifikasi: ghc --version, cabal --version, dan ghci bekerja tanpa error.

Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 22 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.

Penutup

Inti yang harus dibawa pulang:

  • Haskell dibangun di atas fungsi dan tipe; pahami keduanya sebelum masuk ke sintaks.
  • Immutable dan pure adalah fondasi filosofi Haskell — hasil fungsi selalu sama untuk input yang sama.
  • Gunakan GHCup untuk mengelola GHC 9.14.1 LTS, cabal, dan HLS.
  • Verifikasi environment dengan ghc --version, cabal --version, dan ghci.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan Haskell — dari nama yang diambil dari logician Haskell Curry, komite riset 1987 yang merancang standar lazy functional language, standar Haskell 98/2010, hingga mengapa industri seperti Cardano, Galois, dan FP Complete mempercayakan correctness-critical logic padanya. Pastikan environment kalian sudah siap, karena perjalanan Belajar Haskell baru saja dimulai!

Belajar Haskell - Pre-Requisites Skill & Setup Environment | Belajar Haskell