Tutorial Belajar Grails Part 2 : Introduction To Groovy

groovy-logo-medium

Groovy merupakan bahasa pemrograman dynamic yang dibuat untuk berjalan di JVM (java virtual machine). Groovy memiliki hubungan yang dekat dengan java, karena kita bisa mengintegrasikan groovy dengan java library yang ingin kita gunakan. Dalam hal syntax groovy dan java memiliki beberapa perbedaan, tentunya karena groovy merupakan dynamic language maka syntaxnya akan lebih simple. Jika dalam java kita harus menutup tiap baris code dengan semicolon, maka di groovy semicolon adalah optional artinya kita tidak wajib menutup baris code di groovy dengan semicolon. Selain itu pada java tiap method yang mengembalikan nilai akan memiliki return statement, namun di groovy return statement adalah optional, artinya jika dalam method tidak memiliki return statement, maka statement terakhir dalam blok method lah yang akan di return. Sebagai contoh perbedaan syntax java dan grrovy,

String toString(){
    Return “Hello”;
}
String toString(){
    “Hello”
}

Perbedaan lainnya antara groovy dengan java yaitu dalam java setiap kita mendeklarasikan field kita harus membuat getter dan setter dari field tersebut, namun di grrovy kita tidak perlu melakukannya karena sudah akan dibuatkan pada saat kita compile. Seolah olah kita langsung mengakses field tersebut namun sebenarnya kita tetap mengakses getter dan setter dari field tersebut yang telah dibuatkan pada saat kita compile.

class Book{
    String author
    void setAuthor(String val){
        author = 'leo'
        }
    }
def book = new Book()
book.author = 'dani'
println book.author

Kita buat lalu namakan filenya dengan DemoBook.groovy, lalu jalankan dengan terminal,

groovy DemoBook.groovy

sebagai contoh saat kita membuat class Book kita override method setAuthor sehingga akan selalu mengeset field author dengan nilai ‘leo’. Saat kita jalankan file groovy tersebut akan menghasilkan nilai leo, walaupun kita tidak memanggil method setAuthor. Nahh begitulah cara kerja groovy. Groovy juga memiliki String yang berbeda, jika kita mendeklarasikan String dengan tanda kutip ganda, maka akan dideklarasikan sebagai Groovy String sedangkan jika mendeklariskan dengan tanda kutip tunggal makan akan dideklasikan sebagai java.lang.String. Groovy String memiliki kemampuan untuk mengevaluasi embedded Groovy expressions. Berikut merupakan contoh groovy expression

def author = ‘Dani’
def groovyString = “Hello ${author}”

Groovy juga mengenal adanya closures, groovy closure merupakan sebuah blok code yang bisa kita set ke dalam variable dan bisa kita lempar ke method dan dijalankan, berikut merupakan bentuk closure

def result = {x,y -> x+y}

Sebelah kiri syntax -> merupakan parameter dan sebelah kanannya merupakan blok code yang akan dieksekusi, jika kita ingin mendeklarasikan closure tanpa parameter, kita bisa menggunakan syntax “it” berikut contoh penggunaannya,

def closureSample = {println "${it}"}
closureSample('dani')

Beberapa hal yang sering digunakan juga diantaranya yaitu groovy colections, tidak jauh berbeda dengan java, groovy juga memiliki List, Map dan Set. Berikut contoh mendeklarasikan dan menggunakan list dalam groovy

def authorsList = [‘leonardus’,’dani’,’novianto’]
authorsList << ‘new author added’ 

Untuk menggunakan map yang merupakan collection yang berpasangan antra key dan value kita bisa menggunakannya sebagai berikut,

 Def authorsMap = [leonardus:1,dani:2,novianto:3] authorsMap.each{key, value -> println “key: ${key} , value: ${value}”}

Untuk set yang merupakan collection yang isinya harus unique, cara deklarinya hamper mirip dengan list, contohnya sebagai berikut,

Def authorsSet = [‘leonardus’,’dani’,’novianto’] as Set
authorsList << ‘new author added’

mungkin itu beberapa pengantar mengenai groovy, untuk lebih lengkapnya bisa belajar dari sumber yang lain :)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s