Menguasai Groovy: Panduan Pemula untuk Skrip di Platform Java
Apa Itu Groovy?
Apache Groovy adalah bahasa berorientasi objek yang kompatibel dengan sintaks Java dan berjalan di JVM. Ia dikompilasi menjadi bytecode Java, jadi sistem apa pun dengan Java Runtime Environment dapat menjalankannya. Groovy menambahkan typing dinamis, closures, dukungan DSL, dan sintaks ringkas, menjadikannya teman ideal bukan pengganti Java.
Mengapa Menggunakan Groovy?
- Bahasa dinamis, cepat untuk prototipe
- Integrasi mulus dengan pustaka Java yang ada
- Alami bagi pengembang Java – kurva pembelajaran minimal
- Kode yang lebih ringkas dan ekspresif daripada Java
- Dapat dicampur bebas dengan Java – gunakan sebanyak atau sedikit yang Anda inginkan
Sejarah Groovy
- 2003 – Dikembangkan oleh Bob McWhirter & James Strachan
- 2004 – Diajukan sebagai JSR 241 (dihentikan)
- 2005 – Dihidupkan kembali oleh Jeremy Rayner & Guillaume Laforge
- 2007 – 1.0 dirilis
- 2012 – 2.0 dirilis
- 2014 – 2.3 (mendukung Java 8)
- 2015 – Menjadi proyek Apache Software Foundation
Fitur Utama Groovy
- Sintaks literal untuk daftar, peta, rentang, regex
- Multimethods dan kemampuan metaprogramming
- Typing dinamis dan opsional statis
- Operator overloading dan sintaks ringkas (tidak perlu titik koma atau kurung dalam banyak kasus)
- Closures dan MetaObject Protocol untuk skrip yang kuat
- Kompatibilitas penuh dengan bytecode dan pustaka Java
Cara Menginstal Groovy
- Pastikan Java terpasang – Panduan instalasi Java
- Unduh installer dari Halaman Unduhan Groovy
- Jalankan installer, pilih bahasa, dan klik OK
- Klik NEXT pada layar selamat datang
- Terima persyaratan lisensi
- Pilih komponen yang akan diinstal dan klik NEXT
- Pilih direktori instalasi dan klik NEXT
- Tetapkan folder Start Menu dan klik NEXT
- Selesaikan instalasi (jalur tetap default) dan klik NEXT
- Setelah instalasi, jalankan Groovy Console dari Start Menu untuk memverifikasi
Hello World Groovy
Versi Java:
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } } Setara Groovy – satu baris:
println "Hello World."
Groovy menghilangkan kebutuhan titik koma, kurung, dan System.out.println yang bertele-tele.
Variabel
Java memerlukan tipe eksplisit:
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); // x = "Guru99"; // Kesalahan waktu kompilasi } } Groovy mendukung typing dinamis melalui def:
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Keluaran:
class java.lang.Integer class java.lang.String
String multiline menggunakan tanda petik tiga:
def x = """Groovy at Guru99""" println x
Operator
Groovy mendukung kategori umum:
- Aritmatika:
+ - * / % - Relasional:
== != < <= > >= - Logis:
&& || ! - Bitwise:
& | ^ ~ - Penugasan:
= += -= *= /= %=
Perulangan
Perulangan for Java:
for (int i = 0; i <= 5; i++) { System.out.println(i); } Setara Groovy:
0.upto(4) { println "$it" } 2.upto(4) { println "$it" } 5.times { println "$it" } 0.step(7, 2) { println "$it" } Pengambilan Keputusan
| Pernyataan | Deskripsi |
| if | Dieksekusi saat kondisi benar. |
| if/else | Mengeksekusi cabang benar; jika tidak, cabang else. |
| nested if | Beberapa cabang kondisional. |
| switch | Alternatif yang lebih bersih untuk logika multi-cabang. |
| nested switch | Didukung dalam Groovy. |
Daftar
Daftar adalah kumpulan referensi yang terurut, didefinisikan dengan kurung siku.
- Daftar String:
['Angular', 'Nodejs'] - Daftar campuran:
['Groovy', 2, 4.6] - Daftar Integer:
[16, 17, 18, 19] - Daftar kosong:
[]
Metode daftar umum:
| Metode | Deskripsi |
| add() | Tambahkan nilai di akhir. |
| contains() | Benar jika nilai ada. |
| get() | Elemen pada indeks. |
| isEmpty() | Benar jika daftar tidak memiliki elemen. |
| minus() | Kembalikan daftar baru dikurangi elemen tertentu. |
| plus() | Kembalikan daftar baru dengan elemen tambahan. |
| pop() | Hapus elemen terakhir. |
| remove() | Hapus elemen pada indeks. |
| reverse() | Kembalikan daftar terbalik. |
| size() | Jumlah elemen. |
| sort() | Kembalikan salinan yang diurutkan. |
Contoh:
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop()) Keluaran:
[Guru99, is, Best, for, Groovy] true Best Learning
Peta
Peta adalah kumpulan pasangan kunci-nilai.
- Contoh:
[Tutorial:'Java', Tutorial:'Groovy'] – kunci Tutorial dengan dua nilai. - Peta kosong:
[]
Metode peta:
| Metode | Deskripsi |
| containsKey() | Periksa kunci. |
| get() | Kembalikan nilai untuk kunci. |
| keySet() | Set kunci. |
| put() | Tambahkan atau ganti pasangan kunci/nilai. |
| size() | Jumlah entri. |
| values() | Kumpulan nilai. |
Contoh:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName") Keluaran:
Jen
Closures
Closure adalah blok kode yang diperlakukan sebagai objek, mirip dengan lambda.
Closure sederhana:
def myClosure = { println "My First Closure" } myClosure() Dengan parameter:
def sum = { a, b, c -> return a + b + c } println sum(1, 2, 3) Keluaran:
6
Groovy vs. Java
| Groovy | Java |
| Modifier akses default adalah public. | Default adalah package-private. |
| Getter/setter otomatis untuk field. | Harus didefinisikan secara manual. |
| Interpolasi string dengan tanda petik dua. | Tidak ada interpolasi. |
| Typing opsional. | Typing wajib. |
| Tidak perlu titik koma. | Titik koma diperlukan. |
Setiap skrip secara otomatis memperluas kelas Script. | Memerlukan public static void main untuk eksekusi. |
Mitos Umum
| Mitos | Realitas |
| Groovy hanya untuk skrip. | Ia serbaguna: digunakan untuk framework web, pemrosesan data, dan lainnya. |
| Groovy murni fungsional. | Ia meminjam konsep fungsional tetapi tetap merupakan bahasa OOP. |
| Groovy ideal hanya untuk TDD. | Ia mendukung TDD tetapi berguna dalam banyak skenario. |
| Groovy terbatas pada Grails. | Grails adalah framework populer, tetapi Groovy bekerja secara mandiri. |
Kekurangan Menggunakan Groovy
- Startup JVM bisa lebih lambat, mempengaruhi skrip cepat.
- Tidak secara universal diadopsi di luar ekosistem Java.
- Kurang nyaman tanpa IDE.
- Kinerja runtime mungkin kalah dari Java.
- Footprint memori lebih tinggi.
- Pengetahuan Java esensial untuk penggunaan yang efektif.
Alat Penting Groovy
- groovysh – Shell baris perintah interaktif.
- groovyConsole – GUI Swing untuk menjalankan skrip.
- groovy – Interpreter baris perintah untuk menjalankan skrip.
Contoh penggunaan:
groovysh
- Masukkan pernyataan atau seluruh skrip secara interaktif.
groovyConsole
- Editor minimal untuk menulis dan menjalankan kode Groovy.
groovy
- Menjalankan skrip Groovy dari baris perintah.
Ringkasan
- Groovy adalah bahasa berorientasi objek untuk platform Java.
- Ia menawarkan integrasi mulus dengan pustaka Java.
- Fitur utama meliputi typing dinamis, closures, dan sintaks literal.
- Groovy mendukung operator standar, aliran kontrol, koleksi, dan peta.
- Ia mengotomatisasi getter/setter dan menghilangkan boilerplate.
- Meskipun mungkin ada trade-off kinerja, keuntungan produktivitasnya signifikan.
- Alat Groovy seperti groovysh, groovyConsole, dan interpreter groovy menyederhanakan pengembangan.