Scala
Pengenalan Scala
Pengertian Scala, gabungan paradigma OOP & functional programming, dan menjalankan kode Scala di JVM.
Variabel: val & var di Scala
Perbedaan val (immutable) dan var (mutable) di Scala, serta preferensi kuat memakai val.
Tipe Data & Type Inference
Tipe data dasar Scala (Int, Double, String, Boolean) dan bagaimana compiler menebak tipe otomatis.
Operator di Scala
Operator aritmatika, perbandingan, dan logika di Scala.
Percabangan di Scala (if sebagai Ekspresi)
if/else di Scala sebagai ekspresi yang mengembalikan nilai, bukan sekadar statement.
Perulangan & For-Comprehension di Scala
Perulangan for dan while di Scala, termasuk for-comprehension dengan yield.
Fungsi di Scala
Mendefinisikan fungsi dengan def, parameter, return type, dan fungsi tanpa nama (anonymous function).
Higher-Order Function & Lambda di Scala
Fungsi yang menerima atau mengembalikan fungsi lain, dan sintaks anonymous function (lambda).
Collection: List & Array
Struktur data List (immutable) dan Array di Scala, serta operasi umum penambahan dan penggabungan.
Collection: Map & Set
Struktur data Map (key-value) dan Set (elemen unik tanpa duplikat) di Scala.
Class & Object Dasar di Scala
Mendefinisikan class dengan constructor primer, dan object sebagai singleton bawaan Scala.
Case Class di Scala
Case class sebagai cara ringkas membuat data model immutable, lengkap dengan equals, toString, dan copy otomatis.
Object & Companion Object
Object sebagai singleton, dan companion object yang berbagi nama dengan class untuk method/factory statis.
Trait di Scala
Trait sebagai cara berbagi perilaku antar class, mirip interface tapi bisa punya implementasi default.
Pattern Matching di Scala
match/case sebagai switch yang jauh lebih kuat — bisa mencocokkan tipe, struktur, dan kondisi sekaligus.
Option di Scala
Menghindari null dengan Option[T] — Some(value) atau None, dan cara aman mengakses isinya.
Inheritance di Scala
Pewarisan class dengan extends, override method, dan pemanggilan constructor induk lewat super.
Exception Handling di Scala
Menangani error di Scala dengan try/catch/finally, dan pattern matching pada tipe exception.
Tugas Akhir
Latihan akhir menggabungkan case class, pattern matching, Option, dan higher-order function dalam satu program Scala.