09 February 2014

Memulai Grails (Bagian-1)

Hai pembaca, selamat berjumpa kembali dengan saya Josescalia, the one and only this blog's writer :P. Seperti pernah saya sebutkan pada artikel-artikel saya sebelumnya, bahwa saya memang saat ini menggunakan Grails Framework sebagai sebuah framework pendukung saya dalam membuat aplikasi web berbasiskan bahasa pemrograman java. Saya merasa Grails Framework telah membuat saya berhenti mencari framewok lain guna mempermudah dan mempercepat pembuatan web aplikasi berbasis java. Pada kenyataannya saya memang mendapati begitu banyak kemudahan dan kecepatan ketika saya membangun sebuah web aplikasi. Saking senangnya saya, dalam setiap kesempatan saya selalu berusaha memperkenalkan Grails Framework ini kepada semua teman-teman saya satu profesi, baik junior maupun senior, baik di kantor maupun di luar kantor.
Ada seorang teman saya “satu perjuangan beda nasib” bernama Donnie Prakoso, dia adalah seorang kawan yang menurut saya seorang yang sangat haus dan lapar soal teknologi komputer dan internet termasuk programming tentunya, kepada dia pun saya sangat antusias memperkenalkan Grails Framework ini. Dia tertarik ketika saya menyebutkan Grails Framework, hanya saja dia bilang seperti ini kepada saya “Write a blog review”. Yah begitulah teman saya Donnie, dia memang lebih senang menyiksa saya dengan caranya, tapi saya bersyukur punya teman macam dia, paling tidak dia bisa mengingatkan saya untuk kembali lagi kepada apa yang memang menjadi kesukaan saya yaitu “menulis”, dan tentunya blog ini yang menjadi medianya.
Tapi sebetulnya saya tidak akan membahas teman saya itu tadi dalam tulisan ini, saya akan membahas tentang Grails Framework, yah mungkin sebagai jawaban dari tantangannya dia untuk membuat review  tentang Grails Framework ini. Tapi sepertinya saya tidak akan menuliskan review saya tentang Grails Framewok ini, karena saya merasa tidak ada yang membutuhkan review saya tentang apapun. Melainkan saya akan berbagi pengalaman tentang bagaimana  saya ketika menggunakan Grails Framework ini dalam kegiatan membuat web aplikasi dengan java.
Agar lebih terstruktur, mungkin ada baiknya saya akan mencoba membagi-bagi bahasan tentang Grails Framework ini dalam beberapa bagian. Mungkin seperti ini bagian-bagian yang nantinya akan saya share:
1. Pengenalan Grails.
2. Menyiapkan Grails Framework dalam sistem operasi komputer.
3. Memulai pemrograman Web Aplikasi dengan Grails.
4. Grails dengan GORM (Grails Object Relational Mapping)
5. Integrasi Grails dengan Twitter-Bootstrap Css Framework (custom grails controller)
6. Deployment Aplikasi Grails.
Daftar diatas adalah daftar yang akan kita bahas satu demi satu berdasarkan pengalaman saya menggunakan Grails Framework. Dengan tidak berlama-lama lagi, mari kita mulai dengan membaca Bismillahirrahmanirrahim.

Pengenalan Grails
Grails Framework adalah sebuah framewok java yang open source, artinya framework ini bisa digunakan gratis tanpa lisensi dan memiliki kebebasan untuk menggunakan, memodifikasi dan mendistribusikannya. Grails Framework merupakan sebuah framework web aplikasi java yang berbasis bahasa pemrograman Groovy yang berbasis script sehingga memungkinkan kita melakukan re-deployment tanpa melakukan restart server. Grails Framework disusun atas dasar kesepakatan yang ditulis diatas konfigurasi (convention over configuration) maksudnya dalam penggunaan Grails Framework ini sangat disarankan mengikuti aturan-aturan yang sudah diterapkan di dalamnya, sebab seluruh kesepakatan yang dibuat memiliki konfigurasi tersendiri dalam Grails Framework tersebut sehingga tujuan pembuatan web aplikasi yang produktif dan cepat, dapat terlaksana. 
Grails Framework dibuat dengan dukungan banyak framewok terkenal seperti Spring Framework, Hibernate ORM, JQuery Framework dan sebagainya. Penggunaan framework-framework ini sudah dibungkus sedemikian rupa oleh Grails Framework sehingga ketika  kita menggunakan Grails Framework ini akan sangat terasa kehadiran framework-framework tersebut didalamnya. Hanya saja karena sudah dibungkus, kita akan sangat jarang bahkan tidak akan pernah menyentuh konfigurasi framework-framework ini. Pembungkusan framework-framework ini ditujukan untuk mendukung ide bahwa “Grails Framework is a framework that ready to use, and no need to configure”.
Grails Framework menggunakan metode active-record-pattern seperti dalam Ruby on Rails, dan melakukan implementasi mixins dalam setiap domain object yang dibuat, sehingga kita tidak perlu lagi menuliskan layer dao dan layer service ketika kita menggunakan Grails Framework
Untuk mendukung ide bahwa “Grails is ready to code”, distribusi Grails Framework dilengkapi dengan konfigurasi seperti "in memory database", tomcat-server,  konfigurasi unit-test , quartz, GORM (Grails Object Relational Mapping) dan lain-lain. 
Singkatnya Grails Framework merupakan sebuah framewok aplikasi web java yang membuat para developer web aplikasi java bisa langsung membuat program tanpa harus setup ini atau itu yang biasanya dilakukan ketika melakukan pembuatan web aplikasi java dengan cara lama.

Menyiapkan Grails Framewok Dalam Sistem Operasi Komputer.
Untuk dapat melakukan pembuatan web aplikasi java dengan menggunakan Grails Framework, kita mesti menyiapkan Grails Framework ini agar bisa langsung digunakan dalam sistem operasi komputer kita. Oleh karena Grails adalah framework java, sudah barang tentu java juga harus ter-install didalam sistem operasi komputer kita dan bisa secara optimal kita gunakan. Saya akan menganggap sistem operasi komputer kita sudah ter-install JDK (Java Development Kit), sehingga kita akan bisa langsung fokus pada penyiapan Grails Framework saja. Saya menggunakan JDK versi 1.6.0_45 dalam sistem operasi komputer saya:
Langkah-langkah selanjutanya yang kita lakukan adalah sebagai berikut :
  • Download distribusi Grails Framework dari sini.
  • Extract file yang sudah di-download tersebut pada direktori yang kita kehendaki. 
  • Kemudian lakukan setting environment variables untuk Grails tersebut.
  • Verifikasi apakah Grails sudah terintegrasi dengan benar pada sistem operasi yang kita miliki dengan cara mengetikkan perintah seperti gambar dibawah ini pada console (command prompt)
Bisa kita lihat pada gambar tersebut, saya menggunakan Grails Framework versi 2.2.4 yang ter-install ke dalam sistem operasi komputer saya. Jika sudah seperti gambar diatas maka Grails Framework sudah siap digunakan.

Memulai pemrograman Web Aplikasi dengan Grails.
Kita akan mencoba menggunakan Grails Framework ini dalam pembuatan sebuah web aplikasi yang sangat sederhana, kita beri nama web aplikasi ini dengan nama hello-grails-webapp. Mari kita mulai.
Dalam console (command prompt) ketikkan perintah berikut ini “grails create-app hello-grails-webapp”, perintah ini akan meminta Grails membuatkan sebuah project yang sudah lengkap strukturnya sebagai sebuah aplikasi yang menggunakan Grails Framework, sehingga hasilnya seperti gambar berikut ini:
Nah dalam gambar tersebut terlihat bahwa Grails Framework telah berhasil membuat sebuah project bernama hello-grails-webapp. Project Grails ini berupa direktori yang didalamnya secara otomatis akan terbuat struktur folder yang dibutuhkan untuk membuat sebuah aplikasi web.
Kemudian silahkan masuk ke dalam direktori tersebut dan periksalah kira-kira seperti apa struktur direktori yang otomatis dibuatkan oleh perintah sebelumnya.
Pada gambar tersebut terlihat bahwa Grails secara otomatis membuatkan struktur sebuah project web aplikasi java, lengkap dengan seluruh attribut-attribut yang nantinya akan bisa kita gunakan.
Langkah selanjutnya adalah kita akan membuat sebuah halaman web sederhana berisi tulisan “Hello World, I am Grailed”, begitu kira-kira tulisannnya..:P. Dalam console anda silahkan pindahkan kursor anda ke dalam folderhello-grails-webapp”, dan kemudian ketikkan perintah berikut ini “grails create-controller org.learn.grails.HelloGrails
Perintah tadi meminta supaya grails membuatkan sebuah controller bernama HelloGrails dan controller tersebut diletakkan dalam packageorg.learn.grails”. Dan dalam gambar bisa kita lihat bahwa secara otomatis Grails akan membuatkan 3 buah file yaitu : HelloGrailsController.groovy, HelloGrailsControllerTests.groovy,  dan helloGrails. Yang terakhir sebetulnya bukanlah file, melainkan sebuah folder, folder inilah yang nanti akan memuat halaman-halaman html yang dalam Grails disebut dengan GSP (Groovy Server Pages).
Langkah selanjutnya yang akan kita lakukan adalah memodifikasi file HelloGrailsController.groovy agar bisa menampilkan teks “Hello World, I'm Grailed” seperti yang kita rencanakan sebelumnya. Bukalah file HelloGrailsController.groovy yang ada dalam folder grails-app/controllers/org/learn/grails/ tersebut menggunakan editor  teks favorit anda, dan edit-lah baris di dalamnya menjadi seperti ini:
package org.learn.grails

class HelloGrailsController {
    def index() {
        render "Hello World, Im Grailed"
    }
}
Simpan perubahan file tersebut.
Sampai disini web aplikasi sederhana kita telah selesai, sekarang mari kita jalankan web aplikasi kita ini. Ketikkan perintah ini dalam console anda “grails run-app” sehingga seperti gambar berikut ini:
Jika sudah seperti gambar di atas, maka silahkan buka web browser favorit anda dan ketik alamat ini “http://localhost:8080/hello-grails-webapp/helloGrails/index” ke dalam kotak url yang ada pada browser anda, dan silahkan saksikan sendiri apa yang terjadi, seharusnya seperti gambar yang sama dengan dibawah ini:
Apa sih yang sebenarnya terjadi?, mungkin begini penjelasannya.
Grails menggunakan Spring Web MVC Framework yang sudah dibungkus sedemikian rupa, sehingga ketika ada sebuah http-request seperti di atas maka Grails akan memanggil controller HelloGrailsController.groovy dan kemudian memproses method index() yang ada di dalam controller itu. Dibawah ini adalah gambar anatomi controller tersebut:
Adapun anatomi dari http-request tersebut adalah seperti gambar berikut ini:

Sekarang kita akan sedikit memodifikasi tampilan text tersebut, modifikasi file HelloGrailsController.groovy tadi sehingga menjadi seperti dibawah ini:

package org.learn.grails

class HelloGrailsController {
    def index() {
        [message:"Hello World, Im Grailed"]
    }
}

Kemudian refresh browser anda dan lihat apa yang terjadi ? Status 404 (File Not Found)?, ya, itu karena kita mengganti render tersebut dengan kode yang berbeda. 
Sekarang langkah selanjutnya adalah buatlah sebuah file bernama “index.gsp” dan letakkan file tersebut dalam foldergrails-app/views/helloGrails”, adapun isi file tersebut adalah seperti dibawah ini:
<html>
<head>
  <title>Hello World</title>
</head>
<body>
   This text came from controller : <b> ${message}</b>
</body>
</html>
Kemudian setelah tersimpan, langsung anda tekan f5 (refresh) pada browser anda, sekarang sudah tidak ada lagi Status 404 tersebut bukan ?.
Adapun penjelasannya adalah seperti ini, setiap action yang ada dalam controller, dalam prinsip MVC design-pattern memiliki view sendiri. Demikian halnya dengan Grails Framework, Grails menggunakan ".gsp" sebagai layer view dalam struktur framework-nya. Sementara untuk menampilkan variabel yang datang dari controller, Grails menggunakan ${...}, dimana titik-titik tersebut merupakan nama variabel yang dikirim dari controller. Namun jika sebuah action tidak memiliki view seperti contoh yang pertama kali kita buat, maka pesan dari controller tersebut bisa langsung kita cetak ke atas browser dengan menggunakan fungsi “render”.

Ok, saya rasa sampai disini dulu, pembahasan awal kita tentang Grails Framework, dalam tulisan berikutnya saya akan coba memberikan contoh yang lebih konkrit lagi tentang bagaimana melakukan pembuatan web aplikasi menggunakan Grails Framework.
Silahkan anda pelajari lebih dalam lagi atas dasar pembahasan kita diatas, dan jika ada pertanyaan maka silahkan tuliskan di komentar pada artikel ini.

Menteng, 10 Februari 2014
Salam

Josescalia

4 comments:

Unknown said...

Selamat pagi mas Josescalia, saya Nita, kebetulan saat ini, saya sedang dalam masa studi proyek akhir (skripsi), dan saya mengambil judul dengan menggunakan grails framework ini, sekiranya saya ingin meminta sharing dari mas Josescalia, apakah mas Josescalia bersedia? dan apa saya bisa minta rekomendasi buku untuk grails? kebetulah saya sangat baru dengan framework ini, jadi masih banyak butuh bantuan. Terimakasih sebelumnya.

JoseScalia said...

Selamat pagi..

Silahkan jika berkenan, tapi maaf nantinya jika mungkin saya tidak intens menjawab, sebab mungkin saya juga sibuk.
Untuk Grails framework, silahkan dibaca dulu tutorial ini sampai selesai, soal buku, sampai saat ini saya belom menemukan buku berbahasa Indonesia yang membahas soal Grails ini.

Faizir Rahmadi Isman said...

Selamat sore mas JeseScalia

Saya mau tanya, kenapa di saya gagal buat akses localhost nya ya? padahal saya udah install semua requirement nya. terima kasih

Faizir Rahmadi Isman said...

Mantap sekali penjelasannya mas JoseScalia.. Saya menyukai blog anda