Study
Scala

Pattern Matching di Scala

Penjelasan

Pattern matching (`match`/`case`) adalah salah satu fitur paling kuat di Scala — jauh lebih fleksibel dari `switch` biasa. Selain mencocokkan nilai literal, pattern matching bisa mencocokkan tipe data, mendekonstruksi case class (mengambil field-nya langsung), dan punya kondisi tambahan (guard) lewat `if`.

Contoh Konsep

def deskripsi(x: Any): String = x match {
  case 0 => "nol"
  case n: Int if n > 0 => "angka positif"
  case n: Int => "angka negatif"
  case s: String => "teks: " + s
  case _ => "tidak dikenal"    // default, seperti 'else'
}

case class Titik(x: Int, y: Int)
val titik = Titik(0, 5)
titik match {
  case Titik(0, 0) => println("Titik origin")
  case Titik(0, y) => println(s"Di sumbu Y, nilainya $y")   // dekonstruksi field
  case _ => println("Titik lainnya")
}

Praktikum

Buat fungsi kategori(nilai: Int): String yang memakai match/case dengan guard (if) untuk mengembalikan "A" (>= 85), "B" (>= 70), atau "C" (selain itu).

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu sertakan case `_` sebagai default kalau kemungkinan nilainya tidak bisa dipastikan mencakup semua kasus — tanpa itu, `match` bisa melempar `MatchError` saat runtime kalau tidak ada case yang cocok.