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

Belajar Scala - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Scala, kalian perlu menguasai dasar pemrograman, konsep immutability, tipe data, dan sedikit fondasi JVM. Di episode ini kalian juga menyiapkan JDK 17+, memasang Coursier dengan compiler scala dan scalac, mengkonfigurasi editor VS Code bersama Metals, lalu memverifikasi seluruh environment siap dipakai sepanjang series.

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

Pendahuluan

Selamat datang di series Belajar Scala! Series ini akan membawa kalian menguasai Scala — bahasa pemrograman di atas JVM yang menggabungkan object-oriented dan functional programming dalam satu bahasa — untuk backend service, data pipeline, dan aplikasi yang menuntut correctness tinggi. Total ada 23 episode yang tersusun dalam lima fase, dari fondasi konsep sampai production readiness.

Sebelum menjalankan @main def hello(): Unit = println("Hello"), ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena Scala berdiri di atas JVM: ia dikompilasi menjadi bytecode, bergantung pada Java Runtime, dan memakai ekosistem library Java secara langsung. Tanpa fondasi yang benar — JDK yang tepat, compiler yang terinstall, dan editor yang terhubung ke language server — kalian akan menghabiskan waktu di episode awal hanya untuk memecahkan error environment, bukan belajar bahasa.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan JDK dan toolchain Scala via Coursier, memasang editor dengan Metals, lalu memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

Dasar Pemrograman: Variabel, Fungsi, dan Tipe

Scala dibangun di atas konsep yang kalian kenal: variabel, fungsi, tipe data, dan class. Yang membedakan hanyalah penekanan pada immutability dan ekspresi. Kalian wajib paham bahwa fungsi menerima input dan menghasilkan output, dan bahwa tipe menentukan "bentuk" data (angka, teks, boolean). Jika kalian pernah memakai Java, Kotlin, Python, atau TypeScript, konsep ini sudah familier:

Konsep fungsi yang familier
def addOne(x: Int): Int = x + 1

Perhatikan sintaksnya: addOne adalah nama fungsi, x: Int adalah parameter bertipe Int, : Int setelah kurung adalah tipe hasil, dan x + 1 adalah body — tanpa keyword return, karena di Scala ekspresi terakhir dalam fungsi adalah hasilnya. Bagian ini akan kita bedah tuntas di episode 4.

Immutability dan Pure Function

Ini justru yang paling penting. Di Scala, kalian didorong membuat nilai dengan val (immutable) dan fungsi yang pure: hasilnya hanya bergantung pada argumennya, tidak membaca atau mengubah state di luar fungsi.

Val immutable dan fungsi pure
val rate = 0.1
def compute(total: Double): Double = total * rate

compute(1000) akan selalu menghasilkan 100.0, apa pun yang terjadi di tempat lain. Konsekuensinya: kode Scala jauh lebih mudah diprediksi, di-test, dan di-refactor — tetapi kalian harus belajar berpikir "berikan nilai baru" daripada "ubah variabel ini". Filosofi ini adalah benang merah seluruh series.

Fondasi JVM dan Ekosistem Java

Karena Scala berjalan di JVM, kalian butuh sedikit pemahaman tentang Java: apa itu JDK, bagaimana java -version bekerja, dan konsep bahwa class Java bisa dipakai langsung dari Scala. Pengalaman Java bukan prasyarat wajib, tetapi akan sangat membantu di episode 18 yang membahas interop. Kalian juga akan sering bertemu istilah seperti bytecode, classpath, dan dependency — jangan khawatir, semuanya dibahas bertahap.

Perangkat Software dan Hardware yang Disiapkan

JDK: Versi dan Alasan

Scala membutuhkan JDK untuk berjalan. Di 2026, rekomendasi dipecah menjadi dua jalur rilis: Scala 3.8.x (rilis "Next", Jan 2026) membutuhkan JDK 17+, sementara Scala 3.3.x (jalur LTS) masih mendukung JDK 8. Untuk series ini kita pakai Scala 3.8.4 dengan JDK 17 atau lebih baru — kombinasi paling modern dan yang akan kita bahas di episode 20.

Cek JDK yang sudah terpasang:

Cek versi JDK
java -version
javac -version

Jika belum ada atau di bawah 17, install dari vendor mana pun — Temurin (Eclipse Adoptium), Amazon Corretto, atau OpenJDK distro. Scala tidak peduli vendor-nya, yang penting versi JDK-nya benar.

Coursier: Toolchain Installer Scala

Coursier (cs) adalah cara standar mengelola toolchain Scala di 2026 — analog dengan GHCup untuk Haskell atau pyenv untuk Python. Satu perintah menginstall compiler scala, scalac, dan helper lain:

Install Coursier di Linux/macOS
curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs
chmod +x cs
./cs setup

cs setup otomatis menambahkan cs ke PATH dan menginstall beberapa tool dasar. Setelah itu, install compiler Scala:

Install scala dan scalac via cs
cs install scala scalac

Untuk pengguna macOS, brew install coursier/formulas/coursier juga tersedia; pengguna SDKMAN! bisa memakai sdk install java lalu sdk install scala.

Hardware: 8GB RAM Dianjurkan

Compiler Scala dan JVM cukup boros memori — apalagi saat Metals melakukan index dan saat sbt memuat project. Untuk kenyamanan sepanjang series, minimal 8GB RAM sangat dianjurkan; 16GB akan membuat episode 21 (profiling dan benchmark) terasa jauh lebih menyenangkan.

Editor dan Metals

VS Code dengan ekstensi Scala (Metals) adalah pilihan paling populer. Metals adalah language server yang memberikan IntelliSense, type info saat hover, goto definition, auto-complete, dan format kode. Ia tersedia untuk VS Code, Neovim, dan editor lain yang mendukung LSP; pengguna IntelliJ IDEA bisa memakai plugin Scala bawaan.

Install Scala CLI (metals juga butuh ini)
cs install scala-cli

Setelah install, buka VS Code, install ekstensi "Scala (Metals)" dari Scala meta, dan buka folder proyek. Saat membuka file .scala, Metals akan otomatis mengunduh compiler yang dibutuhkan dan memberikan error linting langsung — ini aset terbesar kalian untuk belajar tipe.

Warning

Metals dan sbt pertama kali akan mengunduh banyak dependensi — bisa memakan beberapa ratus MB dan beberapa menit. Pastikan jaringan stabil; putus di tengah unduhan adalah satu-satunya penyebab umum kegagalan di langkah ini.

Verifikasi Environment

Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:

Verifikasi environment
java -version
scala -version
scalac -version

java -version harus mencetak JDK 17 atau lebih baru, dan scala -version harus mencetak 3.8.4 (rilis 5 Juni 2026) atau setidaknya versi 3.8.x. scalac -version memastikan compiler tersedia. Uji kecil pertama:

Hello World pertama
@main def hello(): Unit = println("Hello, Scala!")

Simpan sebagai hello.scala lalu jalankan scala run hello.scala — jika mencetak Hello, Scala!, environment kalian sudah siap.

Tip

Sepanjang series ini, scala run (Scala CLI, default sejak Scala 3.5) adalah cara tercepat menjalankan file tunggal — tanpa perlu setup project sbt dulu. Kita baru benar-benar pindah ke proyek sbt di episode 9.

Ringkasan Prasyarat

Rangkuman yang sudah kalian siapkan di episode 0:

  • Skill: dasar pemrograman (fungsi, tipe data), konsep immutability & pure function, dan sedikit fondasi JVM.
  • JDK: versi 17+ untuk Scala 3.8.x (atau 8+ untuk jalur LTS 3.3).
  • Toolchain: Coursier terinstall, scala dan scalac versi 3.8.4.
  • Editor: VS Code + ekstensi Scala (Metals) berjalan normal.
  • Hardware: minimal 8GB RAM untuk kenyamanan kompilasi.
  • Verifikasi: java -version, scala -version, dan Hello World pertama berhasil.

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:

  • Scala berdiri di atas JVM; JDK yang benar adalah fondasi nomor satu.
  • Gunakan Coursier untuk mengelola scala dan scalac — jangan install compiler manual.
  • Pasang Metals di editor kalian; language server adalah aset terbesar untuk belajar tipe.
  • Verifikasi dengan java -version, scala -version, dan Hello World pertama.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan Scala — dari Martin Odersky yang mengembangkannya di EPFL sejak 2004, filosofi nama "Scala" (scalable) yang tumbuh dari scripting hingga enterprise, hingga mengapa Scala menjadi tulang punggung ekosistem big data seperti Apache Spark dan Kafka. Pastikan environment kalian sudah siap, karena perjalanan Belajar Scala baru saja dimulai!