Belajar Groovy - Sintaks Dasar & Tipe Data
Episode 3 of 23

Belajar Groovy - Sintaks Dasar & Tipe Data

Episode ini membedah sintaks dasar Groovy: variabel dinamis dengan def, tipe primitif, string, list, dan map. Kalian juga akan belajar GString, multi-line string, serta operator string dan literal Groovy yang membuat penulisan kode jauh lebih ringkas.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Ini episode yang paling penting untuk membangun kebiasaan menulis Groovy. Sintaks dan tipe data adalah kosakata bahasa yang akan dipakai di seluruh series, jadi pastikan kalian mengikuti setiap contoh di terminal kalian sendiri.

Episode 3 membahas variabel dinamis dengan def, tipe primitif, string, list, dan map, lalu masuk ke GString, multi-line string, serta operator string. Di akhir episode, kalian akan menulis kode Groovy dengan nyaman tanpa terbebani sintaks Java.

Variabel Dinamis dengan def

Mengapa def

Java mengharuskan deklarasi tipe eksplisit, misalnya String nama. Groovy memberikan kebebasan dengan def, di mana tipe ditentukan dari nilai yang diberikan saat runtime.

Variabel dengan def
def nama = "Arman"
def umur = 25
def nilai = 3.14
def aktif = true
 
println "${nama} berumur ${umur} tahun"

def nama = "Arman" membuat variabel bertipe String secara otomatis, dan def umur = 25 bertipe Integer. Perhatikan bahwa interpolasi GString terjadi di dalam string bertanda kutip ganda. String bertanda kutip tunggal tidak melakukan interpolasi.

Tipe Primitif dan Autoboxing

Di level mesin, Groovy memakai kelas pembungkus Java secara otomatis. Angka 25 disimpan sebagai Integer, 3.14 sebagai BigDecimal, dan true sebagai Boolean. Kalian bisa memeriksa tipe sebenarnya dengan method getClass():

Memeriksa tipe variabel
def angka = 42
println angka.getClass()
 
def desimal = 2.5
println desimal.getClass()

Output menunjukkan class java.lang.Integer dan class java.math.BigDecimal. angka.getClass() adalah pola umum untuk memeriksa tipe dinamis — sangat berguna saat kode menerima input dari sumber eksternal.

String dan GString

Kutip Tunggal vs Kutip Ganda

Groovy membedakan dua jenis string utama:

  • Kutip tunggal: string literal polos, tidak ada interpolasi.
  • Kutip ganda: bisa berisi interpolasi GString, contohnya "Halo, ${nama}".

String kutip tunggal yang berisi expression tidak diinterpolasi, sedangkan kutip ganda mengevaluasi $ di dalamnya. Berikut perbandingannya:

Perbedaan kutip tunggal dan ganda
def nama = "Arman"
def a = 'Halo, ${nama}'
def b = "Halo, ${nama}"
 
println a
println b

Output a menampilkan literal ${nama} secara apa adanya, sedangkan b menampilkan Halo, Arman. 'Halo, ${nama}' adalah contoh GString yang sengaja tidak diinterpolasi karena memakai kutip tunggal.

Multi-line String

Untuk teks panjang seperti template atau dokumen, Groovy menyediakan string tiga kutip. Bentuk tiga kutip tunggal tidak melakukan interpolasi, sedangkan tiga kutip ganda mendukung interpolasi GString:

Multi-line string
def teks = """
Baris pertama
Baris kedua dengan nilai ${42}
"""
 
println teks

String tiga kutip ganda mempertahankan baris baru dan mengevaluasi interpolasi. Pola ini sangat berguna untuk membuat pesan log atau template script di episode 8 nanti.

Operator String

Groovy mendukung operator string yang tidak ada di Java:

  • + dan << untuk penggabungan string.
  • * untuk pengulangan string, misalnya "-" * 10.
  • == untuk perbandingan nilai (bukan referensi seperti di Java).
Operator string
def s = "Groovy"
println s * 3
println "a" < "b"

List dan Map

Collection Shorthand

List dan map adalah dua collection paling sering dipakai. Groovy menyediakan literal sederhana menggunakan kurung siku:

Literal list dan map
def listAngka = [1, 2, 3, 4, 5]
def daftarNama = ["Arman", "Budi", "Citra"]
def peta = [nama: "Arman", umur: 25]
 
println listAngka[0]
println peta.nama
println peta["umur"]

def listAngka = [1, 2, 3, 4, 5] membuat ArrayList, dan def peta = [nama: "Arman"] membuat LinkedHashMap. Akses elemen bisa memakai indeks numerik untuk list, atau dot-notation dan kurung siku untuk map.

Manipulasi Dasar

List dan map bisa dimanipulasi dengan method bawaan yang sangat intuitif:

Manipulasi list dan map
def list = [1, 2, 3]
list << 4
list.remove(0)
println list
 
def peta = [a: 1]
peta.b = 2
peta["c"] = 3
println peta

Operator << menambahkan elemen ke list, dan assignment langsung menambah key baru ke map. list << 4 adalah cara idiomatis Groovy untuk append — tidak ada add bertele-tele seperti di Java.

Membuat Collection Kosong

Ada perbedaan halus yang sering menjebak: [a: 1] adalah map, sedangkan [1, 2] adalah list. Untuk membuat map kosong gunakan [:], dan untuk list kosong gunakan []. Salah memakai keduanya akan menghasilkan error type saat runtime.

Tipe Data Lainnya

Range

Range adalah fitur khas Groovy yang merepresentasikan rentang nilai bertanda .. atau ..<:

Range dan penggunaannya
def angka = 1..10
def huruf = "a".."z"
 
println angka.contains(5)
println huruf.size()

def angka = 1..10 membuat range inklusif dari 1 sampai 10, dan 1..<10 bersifat eksklusif di ujung kanan. Range akan menjadi dasar iterasi for di episode 4.

Boolean dan Groovy Truth

Groovy tidak membatasi nilai boolean hanya pada true dan false. Aturan berikut dikenal sebagai Groovy truth:

  • String kosong dianggap false.
  • Collection kosong dianggap false.
  • Angka nol dianggap false.
  • Null dan objek yang mengevaluasi ke false juga false.

Aturan ini menyederhanakan banyak kondisi. Kita akan memakainya secara intensif di episode 4 ketika membahas kontrol alur.

Penutup

Episode 3 memberikan kalian kosakata inti Groovy: def untuk variabel dinamis, perbedaan kutip tunggal dan ganda dengan GString, multi-line string, operator string, literal list dan map, range, serta konsep Groovy truth.

Inti yang harus dibawa pulang:

  • def menunda penentuan tipe hingga runtime.
  • Kutip ganda mengaktifkan interpolasi GString; kutip tunggal tidak.
  • Tiga kutip ganda membuat multi-line string dengan interpolasi.
  • [1, 2] adalah list, [a: 1] adalah map, [:] map kosong.
  • Operator <<, *, dan == memberi Groovy keunggulan ekspresif.
  • Groovy truth memperlakukan nilai kosong dan nol sebagai false.

Di episode 4 selanjutnya kita akan membahas kontrol alur dan function — if/else, switch, loop, range, closure, method definition, optional parameters, safe navigation, dan null-safe operators. Di sinilah kalian mulai menyusun logika program yang sesungguhnya.

Belajar Groovy - Sintaks Dasar & Tipe Data | Belajar Groovy