Apache Groovy adalah bahasa pemrograman berorientasi objek dan sintaks Java yang kompatibel yang dibangun untuk platform Java. Bahasa dinamis ini memiliki banyak fitur yang mirip dengan Python, Ruby, Smalltalk, dan Pero. Kode sumber Groovy dikompilasi ke dalam Java Bytecode sehingga dapat berjalan di platform apa pun yang telah menginstal JRE. Groovy juga melakukan banyak tugas di belakang layar yang membuatnya lebih lincah dan dinamis.
Bahasa groovy dapat digunakan sebagai bahasa scripting untuk platform Java. Ini hampir seperti versi super Java yang menawarkan kemampuan perusahaan Java. Ini juga menawarkan banyak fitur produktivitas seperti dukungan DSL, penutupan, dan pengetikan dinamis. Tidak seperti beberapa bahasa lain, ini dirancang sebagai pendamping, bukan pengganti Java.
Mengapa Groovy?
Inilah alasan utama mengapa Anda harus menggunakan dan mempelajari Groovy-
Groovy adalah bahasa yang lincah dan dinamis
Integrasi yang mulus dengan semua objek dan pustaka Java yang ada
Terasa mudah dan alami bagi pengembang Java
Kode yang lebih ringkas dan bermakna dibandingkan dengan Java
Anda dapat menggunakannya sebanyak atau sesedikit yang Anda suka dengan aplikasi Java
Riwayat Keren
2003:Dikembangkan oleh Bob McWhirter &James Strachan
2004:Ditugaskan ke JSR 241 tetapi ditinggalkan
2005:Dibawa kembali oleh Jeremy Rayner &Guillaume Laforge
2007:Versi asyik 1.0
2012:Versi asyik 2
2014:Groovy versi 2.3 (dukungan resmi diberikan untuk JDK 8)
2015:Groovy menjadi proyek di Apache Software Foundation
Fitur Groovy
Daftar, peta, rentang, literal ekspresi reguler
Multimetode dan metaprogramming
Kelas dan skrip groovy biasanya disimpan dalam file .groovy
Skrip berisi pernyataan Groovy tanpa deklarasi kelas apa pun.
Skrip juga dapat berisi definisi metode di luar definisi kelas.
Dapat dikompilasi dan terintegrasi penuh dengan aplikasi Java tradisional.
Dukungan tingkat bahasa untuk peta, daftar, ekspresi reguler
Mendukung penutupan, pengetikan dinamis, protokol metaobject
Dukungan untuk pengetikan statis dan dinamis &kelebihan beban operator
Deklarasi literal untuk daftar (array), peta, rentang, dan ekspresi reguler
Cara menginstal Groovy
Langkah 1) Pastikan Anda telah menginstal Java. https://www.guru99.com/install-java.html
Langkah 2) Buka http://groovy-lang.org/download.html dan klik pemasang.
Catatan:Anda juga dapat menginstal Groovy menggunakan file Zip atau sebagai IDE Eclipse. Dalam tutorial Groovy ini, kami akan tetap menggunakan Penginstal Windows
Langkah 3) Luncurkan penginstal yang diunduh. Pilih bahasa dan klik OK
Langkah 4) Meluncurkan. Di layar selamat datang, klik BERIKUTNYA
Langkah 5) Setuju dengan persyaratan lisensi
Langkah 6) Pilih komponen yang ingin Anda instal dan klik NEXT
Langkah 7) Pilih Direktori Instalasi dan klik BERIKUTNYA
Langkah 8) Pilih Folder Menu Mulai dan klik BERIKUTNYA
Langkah 9) Setelah instalasi selesai, biarkan path default dan klik NEXT
Langkah 10) Klik BERIKUTNYA
Langkah 11) Di Start Menu, cari Groovy Console
Contoh Hello World yang asyik
Anggap kita ingin mencetak string sederhana "Hello World" di Java. Kode untuk mencapai string Groovy hello world adalah
public class Demo {
public static void main(String args[]) {
System.out.println("Hello World");
}
}
Kode di atas berlaku di Java dan Groovy karena Groovy adalah superset dari Java. Tetapi keuntungan dengan Groovy adalah kita dapat melakukan kita jauh dengan pembuatan kelas, pembuatan metode publik, dll dan mencapai output yang sama dengan kode baris tunggal sebagai berikut:
println "Hello World."
Tidak perlu titik koma
Tidak perlu tanda kurung
System.out.println direduksi menjadi println
Variabel Groovy
Di Jawa, pengikatan statis adalah wajib. Artinya tipe variabel harus dideklarasikan terlebih dahulu.
public class Demo {
public static void main(String args[]) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
Pada contoh tutorial Groovy di atas, jenis variabel (bilangan bulat) dideklarasikan terlebih dahulu menggunakan kata kunci “int”. Jika Anda mendeklarasikan angka floating point, Anda menggunakan kata kunci float.
Jika Anda mencoba menetapkan nilai String ke int (baris komentar #5), Anda akan mendapatkan kesalahan berikut
Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";
Sebaliknya, Groovy mendukung Pengetikan Dinamis. Variabel didefinisikan menggunakan kata kunci “def”, dan jenis variabel tidak perlu dideklarasikan terlebih dahulu. Kompilator mengetahui tipe variabel saat runtime dan Anda bahkan dapat menentukan tipe variabel.
Perhatikan contoh asyik berikut,
def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()
Keluaran
class java.lang.Integer
class java.lang.String
Di Groovy, Anda dapat membuat string multiline. Pastikan saja Anda menyertakan String dalam tanda kutip tiga.
def x = """Groovy
at
Guru99"""
println x
Keluaran
Groovy
at
Guru99
Catatan :Anda masih dapat membuat variabel jenis seperti byte, short, int, long, dll dengan Groovy. Tetapi Anda tidak dapat mengubah tipe variabel secara dinamis karena Anda telah mendeklarasikannya secara eksplisit.
Perhatikan kode berikut:
int x = 104
println x
x = "Guru99"
Ini memberikan kesalahan berikut
104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
at jdoodle.run(jdoodle.groovy:3)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Command exited with non-zero status 1
Groovy-Operator
Operator adalah simbol yang memberitahu compiler untuk melakukan manipulasi matematika atau logika tertentu.
Operator relasional:sama dengan (==), Tidak sama dengan (!=), Kurang dari (<) Kurang dari atau sama dengan (<=), Lebih besar dari (>), Lebih besar dari atau sama dengan (>=)
Operator logika:Dan (&&), Atau(||), Bukan(!)
Operator bitwise:Dan(&), Or(|), (^), Xor atau Eksklusif-atau operator
Operator penugasan:Operator negasi (~)
Groovy-Loops
Di Java, Anda akan mendefinisikan loop sebagai berikut
public class Demo {
public static void main(String args[]) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
Keluaran
0
1
2
3
4
Anda dapat mencapai hasil yang sama di Groovy menggunakan kata kunci hingga
0.upto(4) {println "$it"}
Anda mendapatkan output yang sama seperti di atas. $itu adalah penutupan yang memberikan nilai loop saat ini.
Perhatikan kode berikut
2.upto(4) {println "$it"}
Ini memberikan output
2
3
4
Anda juga dapat menggunakan kata kunci “kali” untuk mendapatkan hasil yang sama
5.times{println "$it"}
Pertimbangkan, Anda ingin mencetak 0,2,4 dengan for loop di Java
public class Demo {
public static void main(String args[]) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
Keluaran:
0
2
4
Anda dapat menggunakan metode langkah untuk hal yang sama
0.step(7,2){println "$it"}
Groovy- Pengambilan Keputusan
Pernyataan
Penipuan
jika Pernyataan
Seperti di Java, pernyataan if dijalankan jika kondisinya benar.
Pernyataan jika/lain
Dalam pernyataan if/else pada awalnya suatu kondisi dievaluasi dalam pernyataan if. Jika kondisinya benar maka jalankan pernyataan setelah itu. Itu berhenti sebelum kondisi lain dan keluar dari loop. Namun, Jika kondisinya salah maka jalankan pernyataan di blok pernyataan lain. Kemudian ia keluar dari loop.
Pernyataan Jika Bersarang
Ini digunakan ketika ada persyaratan untuk memiliki beberapa pernyataan if.
Beralih Pernyataan
Pernyataan if-else bersarang bisa menjadi tidak terbaca bila Anda memiliki beberapa kondisi. Untuk membuat kode lebih mudah dibaca digunakan pernyataan switch.
Pernyataan Beralih Bersarang
Di Groovy juga dimungkinkan untuk menggunakan pernyataan sakelar bersarang.
Daftar Seru
Struktur daftar memungkinkan Anda untuk menyimpan kumpulan data Item. Dalam bahasa pemrograman Groovy, Daftar menyimpan urutan referensi objek. Ini juga menunjukkan posisi dalam urutan. Literal Daftar disajikan sebagai serangkaian objek yang dipisahkan oleh koma dan diapit dalam tanda kurung siku.
Contoh daftar Grrovy:
Daftar String- ['Angular', 'Nodejs,]
Daftar referensi objek – ['Groovy', 2,4 2,6]
Daftar nilai integer – [16, 17, 18, 19]
Daftar kosong- [ ]
Berikut adalah daftar metode yang tersedia di Groovy:
Metode
Deskripsi
tambahkan()
Memungkinkan Anda untuk menambahkan nilai baru ke akhir Daftar ini.
berisi()
Mengembalikan nilai true jika Daftar ini berisi nilai tertentu.
dapatkan()
Mengembalikan elemen pada posisi tertentu
isEmpty()
Mengembalikan nilai sebenarnya jika Daftar tidak berisi elemen
minus()
Perintah ini memungkinkan Anda untuk membuat Daftar baru yang terdiri dari elemen asli tidak termasuk yang ditentukan dalam koleksi.
plus()
Memungkinkan Anda untuk membuat Daftar baru yang terdiri dari elemen-elemen asli bersama-sama dengan yang disebutkan dalam koleksi.
pop()
Menghapus item terakhir dari Daftar
hapus()
Menghapus elemen pada posisi tertentu
terbalik()
Buat Daftar baru yang membalikkan elemen Daftar asli
ukuran()
Mengembalikan jumlah elemen dalam Daftar ini
sort()
Mengembalikan salinan yang diurutkan
Perhatikan contoh skrip Groovy berikut
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 asyik
Map Groovy adalah kumpulan dari Pasangan Nilai Kunci
Contoh peta Groovy:
[Tutorial:‘Java, Tutorial:‘Groovy] – Kumpulan key-value pair yang memiliki Tutorial sebagai kunci dan nilainya masing-masing
[ :] Mewakili peta Kosong
Berikut adalah daftar metode peta yang tersedia di Groovy.
Metode
Deskripsi
berisiKey()
Periksa apakah peta berisi kunci ini atau tidak?
dapatkan()
Perintah ini mencari kunci di Peta ini dan mengembalikan nilai yang sesuai. Jika Anda tidak menemukan entri apa pun di Peta ini, maka akan mengembalikan null.
keySet()
Memungkinkan untuk menemukan satu set kunci di Peta ini
put()
Mengaitkan nilai yang ditentukan dengan kunci yang diberikan dalam Peta ini. Jika Peta sebelumnya berisi pemetaan untuk kunci ini. Kemudian nilai lama akan diganti dengan nilai yang ditentukan.
ukuran()
Mengembalikan jumlah pemetaan nilai kunci.
nilai()
Perintah ini mengembalikan tampilan kumpulan nilai.
Contoh Groovy:
def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")
Keluaran
Jen
Groovy- Penutupan
Penutupan asyik adalah sepotong kode yang dibungkus sebagai objek. Ini bertindak sebagai metode atau fungsi.
Contoh penutupan sederhana
def myClosure = {
println "My First Closure"
}
myClosure()
Keluaran:
My First Closure
Penutupan dapat menerima parameter. Daftar identitas dipisahkan koma dengan
panah (->) menandai akhir daftar parameter.
def myClosure = {
a,b,c->
y = a+b+c
println y
}
myClosure(1,2,3)
Ada banyak penutupan bawaan seperti “It”, “identitas”, dll. Penutupan dapat mengambil penutupan lain sebagai parameter.
Groovy Vs. Jawa
Groovy
Jawa
Di Groovy, penentu akses default adalah publik. Artinya metode tanpa pengubah akses tertentu bersifat publik dan dapat diakses di luar batas kelas dan paket.
Di Java, pengubah akses default adalah sebuah paket, yaitu, jika Anda tidak menentukan pengubah akses untuk bidang, metode, atau kelas, itu menjadi paket-pribadi,
Getter dan setter dibuat secara otomatis untuk anggota kelas.
Java, Anda perlu mendefinisikan metode getter dan setter untuk field
Groovy memungkinkan penggantian variabel menggunakan tanda kutip ganda dengan string.
Java tidak mendukung substitusi variabel.
Mengetik informasi adalah opsional.
Informasi pengetikan wajib di Java.
Groovy tidak harus diakhiri dengan titik koma.
Dalam Java, setiap pernyataan diakhiri dengan titik koma.
Groovy secara otomatis merupakan kelas pembungkus yang disebut Script untuk setiap program
Di Java, Anda memerlukan metode utama untuk membuat kelas dapat dieksekusi.
Mitos tentang Groovy
Mitos
Kenyataan
Kita bisa menggunakan Groovy hanya untuk scripting.
Dapat digunakan untuk skrip. Namun, Anda dapat melakukan banyak tugas lain selain itu.
Groovy adalah tentang penutupan. “Ini hanya bahasa pemrograman fungsional.”
Groovy mengadopsi dari bahasa pemrograman fungsional seperti Lisp atau Closure.
Groovy adalah pilihan ideal jika Anda ingin melakukan TDD
Pernyataan ini benar. Namun, tentu bukan satu-satunya alasan untuk menggunakan Groovy.
Anda dapat menggunakan Groovy hanya jika Anda ingin menggunakan Grails.
Grails adalah kerangka kerja pengembangan web yang kuat.
Tapi Groovy menawarkan lebih dari itu.
Kontra menggunakan Groovy
Waktu mulai skrip JVM dan Groovy lambat yang membatasi skrip tingkat OS
Groovy tidak sepenuhnya diterima di komunitas lain.
Tidak nyaman menggunakan Groovy tanpa menggunakan IDE
Groovy bisa lebih lambat yang meningkatkan waktu pengembangan
Groovy mungkin membutuhkan banyak memori
Pengetahuan tentang Java sangat penting.
Alat Keren
Kami akan membahas 3 alat penting dalam tutorial skrip Groovy ini
1. groovysh:Mengeksekusi kode secara interaktif.
2. groovyConsole:GUI untuk eksekusi kode interaktif
3. groovy:Menjalankan skrip groovy. Anda dapat menggunakannya seperti Perl, Python, dll.
Groovysh
shell baris perintah
Membantu Anda mengeksekusi kode Groovy secara interaktif
Memungkinkan memasukkan pernyataan atau seluruh skrip
Konsol asyik
Antarmuka ayun yang berfungsi sebagai editor pengembangan Groovy minimal.
Memungkinkan Anda untuk berinteraksi dengan kode Groovy
Membantu Anda memuat dan menjalankan file skrip Groovy
Seru
Ini adalah prosesor yang mengeksekusi program dan skrip Groovy. U
Ini dapat digunakan untuk menguji ekspresi Groovy sederhana.
Ringkasan
Groovy adalah bahasa pemrograman berorientasi objek yang digunakan untuk platform Java
Skrip Groovy menawarkan integrasi tanpa batas dengan semua objek dan pustaka Java yang ada
Bob McWhirter &James Strachan mengembangkan groovy pada tahun 2003
Daftar, peta, rentang, literal ekspresi reguler adalah fitur penting dari Groovy
Empat jenis operator yang didukung oleh Groovy adalah 1. Relasional 2.Logis 3. Bitwise 4. Assignment
Groovy melakukan pengambilan keputusan menggunakan pernyataan if, if/else, Nested if, switch, Netsted switch
Struktur daftar memungkinkan Anda untuk menyimpan kumpulan Item Data
Alur Peta adalah kumpulan Pasangan Nilai Kunci
Di Groovy, Getter dan setter dibuat secara otomatis untuk anggota kelas
Di Java, Anda dapat menggunakan metode getter dan setter untuk bidang
Mitos terbesar tentang Groovy adalah bahwa itu hanya dapat digunakan untuk skrip yang tidak benar
Beberapa waktu Groovy bisa lebih lambat yang meningkatkan waktu pengembangan
Tiga Alat Groovy adalah:groovysh yang mengeksekusi kode, groovy Console yang merupakan GUI untuk eksekusi kode interaktif dan groovy yang mengeksekusi skrip