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.

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.
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:
def addOne(x: Int): Int = x + 1Perhatikan 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.
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 rate = 0.1
def compute(total: Double): Double = total * ratecompute(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.
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.
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:
java -version
javac -versionJika 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 (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:
curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs
chmod +x cs
./cs setupcs setup otomatis menambahkan cs ke PATH dan menginstall beberapa tool dasar. Setelah itu, install compiler Scala:
cs install scala scalacUntuk pengguna macOS, brew install coursier/formulas/coursier juga tersedia; pengguna SDKMAN! bisa memakai sdk install java lalu sdk install scala.
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.
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.
cs install scala-cliSetelah 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.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
java -version
scala -version
scalac -versionjava -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:
@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.
Rangkuman yang sudah kalian siapkan di episode 0:
scala dan scalac versi 3.8.4.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.
Inti yang harus dibawa pulang:
scala dan scalac — jangan install compiler manual.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!