- Beranda
- Programmer Forum
[memperkenalkan] bahasa groovy
...
TS
coding.keramat
[memperkenalkan] bahasa groovy
Code:
[size=4]println [color=#a68500]''[/color][color=#a68500]'apakabar gan[/color]
[color=#a68500]selamat datang di thread bahasa groovy[/color]
[color=#a68500]ane bikin thread ini karena belum ada yang buat[/color]
[color=#a68500]semoga juragan sekalian berkenan'[/color][color=#a68500]''[/color] [color=#f27900]// multi-line string[/color]
[color=#800080][b]5[/b][/color][color=#ff0080][b].[/b][/color]times[color=#ff0080][b]{[/b][/color] [color=#f27900]// looping 5 x[/color]
println [color=#a68500]"semoga om momod ikhlas ane bikin thread ini"[/color]
println [color=#a68500]"semoga thread-nya berguna bagi juragan sekalian amin"[/color]
[color=#ff0080][b]}[/b][/color]
[/size]
Code:
[size=4]println [color=#a68500]''[/color][color=#a68500]'untuk tahu perkembangan terbaru[/color]
[color=#a68500]silakan lihat di index di komen pertamax'[/color][color=#a68500]''[/color]
[/size]
persis sama ketika ane pertama kali denger gan, Groovy itu makanan apa sih?

Judd, et al. menyatakan bahwa Groovy adalah bahasa dinamis yang relatif baru yang dapat diinterpretasikan atau dikompilasi dan dirancang khusus untuk platform Java. Telah dipengaruhi oleh bahasa seperti Ruby, Python, Perl, dan Smalltalk, serta Java itu sendiri.
Tidak seperti bahasa lain yang porting ke JVM, Groovy dirancang dengan JVM dengan seteliti mungkin, sehingga ada sedikit atau tidak ada ketidakcocokan impedansi, secara signifikan mengurangi kedalaman belajar. Pengembang Java akan merasa nyaman dengan Groovy. Sebagai contoh, Groovy bergantung pada API Java daripada memasok API sendiri, sehingga pengembang tidak perlu memutuskan antara paket IO dari Java dan metode IO dari perpustakaan bahasa lainnya. Selain itu, karena Groovy dibangun untuk JVM, ada tingkat integrasi bytecode yang ketat, membuatnya mudah untuk Java untuk mengintegrasikan dengan Groovy dan Groovy untuk mengintegrasikan dengan Java.
Groovy tidak hanya memiliki akses ke API Java yang ada; justru Groovy Development Kit (GDK) benar-benar memperluas (extend) Java API dengan menambahkan metode baru untuk kelas-kelas Java yang ada untuk membuat mereka lebih Groovy. Groovy memiliki dukungan untuk banyak fitur pemrograman modern yang membuat bahasa lain begitu produktif, seperti closure dan properties. Groovy juga telah terbukti platform yang bagus untuk konsep-konsep seperti metaprogramming dan bahasa spesifik domain (Domain spesific language).
Pada Grails, developer akan membutuhkan bahasa Groovy untuk membuat domain class, controller, service, konfigurasi. Adapun untuk view, Grails menggunakan .gsp yakni groovy server page, yang kompatibel dengan HTML 5 dan CSS.
Sumber: Judd, et al. Beginning Groovy and Grails From Novice to Professional, Apress.
http://hitcodegrails.blogspot.com/20...sa-groovy.html
Link ke wikipedia: Groovy di wikipedia
Intinya gan, groovy adalah bahasa yang berbasis pada objek (OOP), untuk platform Java, memiliki fitur fiturnya bahasa dinamis macam Ruby, Phyton dan Perl. Hampir semua coding java dianggap valid dalam bahasa Groovy.
mungkin ente nanya, jadi ane harus pindah dari java ke groovy?
jawabannya justru sebaliknya gan, seumpama ente udah punya bejibun codingan java di kompi ente, gak akan terbuang percuma bila ente menggunakan groovy, groovy hanya menawarkan banyak fitur bahasa dinamis dan kemudahan lainnya untuk ente implementasikan di platform java, seumpama ente balik lagi ke bahasa java, codingan groovy ente juga tetep bisa dipake sama java

Cara masangnya/instal-nya bagaimana gan? 
Untuk memasang groovy di mesin anda, pastikan terlebih dulu anda telah memasang Java dengan benar. dan men-setting JAVA_HOME untuk merujuk ke tempat direktori JDK anda.
- Kunjungi halaman ini, unduh distribusi terbaru groovy, atau installernya tidak apa-apa.
- Buat environment variable GROOVY_HOME dan merujuk ke tempat direktori groovy anda.
- Tambahkan %GROOVY_HOME%/bin pada path anda.
- Dari sini, untuk memeriksa kevalidan instalasi groovy, anda bisa masuk ke command line (cmd) dan ketikkan >groovy -version
Spoiler for mprikitiew for instal:
Selesai diinstal trus pakenya gimana gan?dah selesai install, ente bisa gunakan notepad++ buat nulis coding groovy gan, semisal coding yang ane buat adalah codingan yang paling atas itu. kita copas ke notepad++
cek spoiler ini
Spoiler for "cara pake":
sori gan kalo masih berantakan, maklum ane masih nubi

sama sama belajar gan
0
14.8K
81
Komentar yang asik ya
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
20.3KThread•5.2KAnggota
Tampilkan semua post
TS
coding.keramat
#7
Dasar Dasar Groovy(range, array, operator)Coding contoh berikut diambil dari buku:
Beginning Groovy and Grails - from Novice to Proffesional oleh M. Judd, et. al.
d. Range/Jangkauan
Unik pada Groovy dan berguna pada framework Grails adalah fitur range ini gan. Dimana Range adalah list dari nilai-nilai yang sekuensial. coba lihat dulu contohnya dan silakan dikreasikan

Code:
[size=4][color=#bb7977][b]def[/b][/color] numRange [color=#ff0080][b]=[/b][/color] [color=#800080][b]0[/b][/color][color=#ff0080][b].[/b][/color][color=#800080][b].9[/b][/color]
println numRange[color=#ff0080][b].[/b][/color][color=#004466]size[/color][color=#ff0080][b]()[/b][/color] [color=#f27900]// 10[/color]
numRange[color=#ff0080][b].[/b][/color]each [color=#ff0080][b]{[/b][/color]print it[color=#ff0080][b]}[/b][/color] [color=#f27900]// 0123456789[/color]
println [color=#a68500]""[/color]
println numRange[color=#ff0080][b].[/b][/color][color=#004466]contains[/color][color=#ff0080][b]([/b][/color][color=#800080][b]5[/b][/color][color=#ff0080][b])[/b][/color] [color=#f27900]// true[/color]
[color=#bb7977][b]def[/b][/color] alphaRange [color=#ff0080][b]=[/b][/color] [color=#a68500]'a'[/color][color=#ff0080][b]..[/b][/color][color=#a68500]'z'[/color]
println alphaRange[color=#ff0080][b].[/b][/color][color=#004466]size[/color][color=#ff0080][b]()[/b][/color] [color=#f27900]// 26[/color]
println alphaRange[color=#ff0080][b][[/b][/color][color=#800080][b]1[/b][/color][color=#ff0080][b]][/b][/color] [color=#f27900]// b[/color]
[color=#bb7977][b]def[/b][/color] exclusiveRange [color=#ff0080][b]=[/b][/color] [color=#800080][b]1[/b][/color][color=#ff0080][b]..<[/b][/color][color=#800080][b]10[/b][/color]
println exclusiveRange[color=#ff0080][b].[/b][/color][color=#004466]size[/color][color=#ff0080][b]()[/b][/color] [color=#f27900]// 9[/color]
exclusiveRange[color=#ff0080][b].[/b][/color]each [color=#ff0080][b]{[/b][/color]print it[color=#ff0080][b]}[/b][/color] [color=#f27900]// 123456789[/color]
println [color=#a68500]""[/color]
println exclusiveRange[color=#ff0080][b].[/b][/color][color=#004466]contains[/color][color=#ff0080][b]([/b][/color][color=#800080][b]10[/b][/color][color=#ff0080][b])[/b][/color] [color=#f27900]// false[/color]
[color=#bb7977][b]def[/b][/color] reverseRange [color=#ff0080][b]=[/b][/color] [color=#800080][b]9[/b][/color][color=#ff0080][b].[/b][/color][color=#800080][b].0[/b][/color]
reverseRange[color=#ff0080][b].[/b][/color]each [color=#ff0080][b]{[/b][/color]print it[color=#ff0080][b]}[/b][/color] [color=#f27900]// 9876543210[/color]
[/size]
Dengan range tersebut, programmer tak perlu repot membuat looping pada aplikasinya.
Code:
[size=4]println [color=#a68500]"Java style for loop"[/color]
[color=#bb7977][b]for[/b][/color][color=#ff0080][b]([/b][/color][color=#8080c0][b]int[/b][/color] i[color=#ff0080][b]=[/b][/color][color=#800080][b]0[/b][/color][color=#ff0080][b];[/b][/color]i[color=#ff0080][b]<=[/b][/color][color=#800080][b]9[/b][/color][color=#ff0080][b];[/b][/color]i[color=#ff0080][b]++) {[/b][/color]
println i
[color=#ff0080][b]}[/b][/color]
println [color=#a68500]"Groovy style for loop"[/color]
[color=#bb7977][b]for[/b][/color] [color=#ff0080][b]([/b][/color]i [color=#bb7977][b]in[/b][/color] [color=#800080][b]0[/b][/color][color=#ff0080][b].[/b][/color][color=#800080][b].9[/b][/color][color=#ff0080][b]) {[/b][/color]
println i
[color=#ff0080][b]}[/b][/color]
println [color=#a68500]"Groovy range loop"[/color]
[color=#ff0080][b]([/b][/color][color=#800080][b]0[/b][/color][color=#ff0080][b].[/b][/color][color=#800080][b].9[/b][/color][color=#ff0080][b]).[/b][/color]each [color=#ff0080][b]{[/b][/color] i[color=#ff0080][b]->[/b][/color]
println i
[color=#ff0080][b]}[/b][/color]
[/size]
e. Array
Sama pada bahasa Java, Array adalah sekumpulan object dengan tipe data sama.
Code:
[size=4][color=#bb7977][b]def[/b][/color] stringArray [color=#ff0080][b]=[/b][/color] [color=#bb7977][b]new[/b][/color] String[color=#ff0080][b][[/b][/color][color=#800080][b]3[/b][/color][color=#ff0080][b]][/b][/color]
println stringArray[color=#ff0080][b].[/b][/color][color=#004466]size[/color][color=#ff0080][b]()[/b][/color]
stringArray[color=#ff0080][b][[/b][/color][color=#800080][b]0[/b][/color][color=#ff0080][b]] =[/b][/color] [color=#a68500]"Chris"[/color]
println stringArray [color=#f27900]// {"Chris", null, null}[/color]
stringArray[color=#ff0080][b][[/b][/color][color=#800080][b]1[/b][/color][color=#ff0080][b]] =[/b][/color] [color=#a68500]"Joseph"[/color]
stringArray[color=#ff0080][b][[/b][/color][color=#800080][b]2[/b][/color][color=#ff0080][b]] =[/b][/color] [color=#a68500]"Jim"[/color]
println stringArray [color=#f27900]// {"Chris", "Joseph", "Jim"}[/color]
println stringArray[color=#ff0080][b][[/b][/color][color=#800080][b]1[/b][/color][color=#ff0080][b]][/b][/color] [color=#f27900]// Joseph[/color]
stringArray[color=#ff0080][b].[/b][/color]each [color=#ff0080][b]{[/b][/color] println it[color=#ff0080][b]}[/b][/color] [color=#f27900]// Chris, Joseph, Jim[/color]
println stringArray[color=#ff0080][b][-[/b][/color][color=#800080][b]1[/b][/color][color=#ff0080][b]..-[/b][/color][color=#800080][b]3[/b][/color][color=#ff0080][b]][/b][/color] [color=#f27900]// ["Jim", "Joseph", "Chris"][/color]
[/size]
f. Operator
Operator pada bahasa Groovy adalah identik dengan pada bahasa Java, hanya saja pada Groovy ada beberapa operator baru yang diperkenalkan untuk kemudahan programmer. Berikut adalah operator-operator yang pada dasarnya sama dengan yang ada pada Java.
Adapun operator-operator yang unik pada bahasa Groovy adalah sebagai berikut:
1. Elvis ( ?: ), adalah operator shorthand dari operator ternary pada java. Sebagai perbandingan, berikut ilustrasinya:
Code:
[size=4]
[color=#bb7977][b]def[/b][/color] firstName [color=#ff0080][b]=[/b][/color] user[color=#ff0080][b].[/b][/color]firstName [color=#ff0080][b]==[/b][/color] null ? [color=#a68500]"unknown"[/color] [color=#ff0080][b]:[/b][/color] user[color=#ff0080][b].[/b][/color]firstName[color=#ff0080][b];[/b][/color] [color=#f27900]// Java ternary[/color]
[color=#f27900]//sama dengan[/color]
[color=#bb7977][b]def[/b][/color] firstName2 [color=#ff0080][b]=[/b][/color] user[color=#ff0080][b].[/b][/color]firstName ?[color=#ff0080][b]:[/b][/color] [color=#a68500]"unknown"[/color] [color=#f27900]// Groovy Elvis[/color]
[/size]
2. Operator Safe Dereferencing ( ?. ), digunakan untuk secara aman mengecek apakah suatu variabel bernilai null.
Code:
[size=4]User user
println user[color=#ff0080][b].[/b][/color]firstName [color=#f27900]// Throws NullPointerException[/color]
[color=#f27900]// Adding a null check, the Java way[/color]
[color=#bb7977][b]if[/b][/color] [color=#ff0080][b]([/b][/color]user [color=#ff0080][b]!=[/b][/color] null[color=#ff0080][b]) {[/b][/color]
println [color=#a68500]"Java FirstName = ${user.firstName}"[/color]
[color=#ff0080][b]}[/b][/color]
[color=#f27900]// Null check the Groovy way[/color]
println [color=#a68500]"Groovy FirstName = ${user?.firstName}"[/color]
[/size]
3. Spread Operator
Adalah operator berbasis pada collection yang berguna untuk secara masal memanggil metode dari tiap item dalam suatu collection, dan mengembalikan sebuah list yang berisikan hasil dari metode tersebut. Seumpama kita ingin mengambil sejumlah nama dari sekumpulan object people, yang mana memiliki metode yang sama yakni getName().
Code:
[size=4]List names [color=#ff0080][b]=[/b][/color] people[color=#ff0080][b]*.[/b][/color][color=#004466]getName[/color][color=#ff0080][b]()[/b][/color]
[/size]
Adapun fitur-fitur lain dari bahasa Groovy yang dapat menghemat waktu penulisan kode sumber adalah:
1. Groovy tidak mewajibkan tutup kurung dan semicolon, semicolon diperlukan hanya bila dalam satu baris terdapat lebih dari 1 statement.
2. Groovy tidak mewajibkan pernyataan return, dalam groovy, bila suatu method adalah non-void, maka ekspresi yang paling akhirlah yang akan dikembalikan (di-return).
3. Fitur POGO, yakni Plain Old Groovy Object, yang mana merupakan class yang sederhana, secara intuitif dan berdasarkan konvensi memiliki fitur untuk getter-setter dan konstruktor secara dinamis.
Semisal kita memiliki POGO berikut:
Code:
[size=4][color=#bb7977][b]class[/b][/color] Mahasiswa[color=#ff0080][b]{[/b][/color]
String nama
[color=#8080c0][b]int[/b][/color] nim
Date tanggalLahir
[color=#ff0080][b]}[/b][/color]
[/size]contoh di console

0
![[memperkenalkan] bahasa groovy](https://dl.kaskus.id/3.bp.blogspot.com/-zgeYZDNDh_c/T61FPACYonI/AAAAAAAAAVQ/-WxcWUa5Az8/s1600/b.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913020235.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913024922.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913030332.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913030937.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913032628.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913082205.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913033622.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913033428.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913033844.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913040806.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913035856.jpg)
![[memperkenalkan] bahasa groovy](https://s.kaskus.id/images/2012/09/13/4725487_20120913041139.jpg)