Sunday, June 15, 2014

Getting Started with Ruby on Rails

Apa itu Rails?

Ruby on Rails merupakan sebuah Web application framework berbasiskan arsitektur MVC yang menggunakan bahasa scripting Ruby. Pertama kali saya mendengar framework ini ketika saya masih menjalani kuliah di tahun ke-3. Pada waktu itu belum banyak website yang menggunakan framework ini, dan bisa dibilang dipandang sebelah mata. Namun seiring perkembangannya, makin banyak website besar yang menggunakan framework ini. Saya ingin sedikit membahas apa yang membuat framework ini menarik dibanding framework lain, setidaknya di mata saya.

Mengikuti konvensi daripada membuat konfigurasi. Rails sangat menjunjung tinggi "Convention over configuration", sehingga jika kita mengikuti konvensi dari Rails konfigurasi yang perlu dilakukan sangat minimal. Mulai dari penamaan tabel database menggunakan bentuk jamak dari kata benda, penamaan model menggunakan bentuk tunggal, penamaan filename dari masing-masing komponen, dan lain-lain diatur di dalam konvensi Rails. Tujuan dari adanya konvensi tersebut adalah untuk mengefisienkan pengembangan aplikasi dengan menghilangkan pekerjaan yang sifatnya berulang-ulang. Salah satu contoh sederhananya adalah pemetaan model dengan tabel database. Konvensi ini tidak bersifat wajib, namun jika kita bersikeras melawan konvensi Rails karena alasan yang kuat kita juga diberikan pilihan untuk meng-override konvensi Rails. 

Memanusiakan Web developer. Kesederhanaan sintaks dari bahasa Ruby, membuat sintaks Rails mudah dimengerti dan mudah dibuat. Sebagai contohnya coba kita lihat model Employee berikut ini. Dari petikan class Employee tersebut dapat dengan mudah kita artikan bahwa model Employee memiliki relasi ke model Department dan model Dependant. Fungsi relasi has_one dan has_many tersebut berarti seorang pegawai dapat memiliki 0 atau lebih tanggungan, dan seorang pegawai harus terdaftar di tepat 1 departemen. Selain itu dari model Employee tersebut kita bisa mengetahui bahwa ada 2 validasi yang berlaku, yaitu validasi keunikan yang diaplikasikan ke atribut email pegawai, dan validasi atribut yang tidak boleh dikosongkan yang berlaku untuk atribut nama, email dan nomor telepon pegawai. Semua informasi tersebut diekspresikan secara lugas dan sederhana.
class Employee <  ActiveRecord::Base
  validates :name, :email, :phone, presence: true
  validates :email, :phone, uniqueness: true

  has_one :department
  has_many :dependants
end

Sebelum kita coba hands-on mencoba membuat aplikasi sederhana menggunakan Rails, kita setup dahulu environment Rails-nya.

Instalasi Rails 

Ada beberapa cara untuk men-setup environment Ruby on Rails. Khusus untuk Mac OS X, saya akan jabarkannya lebih detil:
  1. Instalasi Xcode
    Kita tidak membutuhkan aplikasi Xcode untuk mengembangkan aplikasi Rails. Namun yang kita perlukan adalah Command Line Tools yang dapat kita instalasi via Xcode, seperti Ruby, GCC, G++, dsb. Setelah Xcode ter-install, jangan lupa untuk meng-install Command Line Tools-nya dari menu Preferences -> Downloads -> Components -> Command Line Tools.
  2. Instalasi Homebrew
    Homebrew adalah salah satu package manager menggunakan bahasa Ruby untuk Mac OS X. Langkah sebelumnya seharusnya sudan meng-install Ruby versi default, sehingga menginstalasi Homebrew dapat dilakukan dengan perintah berikut.
    ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  3. Instalasi rbenv
    rbenv merupakan Ruby versioning management tool yang memungkinkan beberapa versi Ruby dapat diinstalasi secara bersamaan. Instalasi rbenv via Homebrew.
    brew update
    brew install rbenv ruby-build
    eval "$(rbenv init -)"
  4. Instalasi Ruby
    Instalasi Ruby versi terkini dengan menggunakan rbenv.
    rbenv install $RUBY_VERSION
  5. Instalasi Rails
    Cara yang direkomendasikan adalah menggunakan Ruby Gem, yaitu Ruby package manager. Instalasi Rails dengan menggunakan perintah berikut.
    gem install rails

Membuat Aplikasi Rails Pertama

Kita akan mencoba membuat aplikasi sederhana yang hanya akan melakukan operasi Create Read Update Delete (CRUD) terhadap sebuah database penumpang. Berikut adalah langkah-langkahnya:
  1. Buat kerangka aplikasi Rails
     $ rails new booking
  2. Masuk ke direktori aplikasi yang telah kita generate sebelumnya.
     $ cd booking/
  3. Buat model, view, dan controller dari penumpang. Jalankan perintah berikut dalam 1 baris.
     $ rails generate scaffold Passenger name:string email:string phone:string address:string birthdate:date birthplace:string
  4. Jalankan WEBrick server.
     $ rails server
  5. Akses WEBrick dari browser. Error ini disebabkan karena kita belum membuat skema database untuk model Passenger yang telah kita buat.
    PendingMigrationError pada WEBrick
  6. Buka Terminal baru dan ganti ke direktori tempat aplikasi booking berada. Jalankan perintah yang ditampilkan pada pesan error WEBrick.
     $ bin/rake db:migrate RAILS_ENV=development
  7. Akses kembali browser dan refresh. Tampilan default Rails akan muncul.
    Default Landing Page Rails Application
  8. Akses link ke aplikasi CRUD untuk mengatur database penumpang. Yep, it's already there!
    Passengers List

    Create New Passenger Form

    Passenger Info

    Passengers List with New Passenger

Begitu mudahnya membuat operasi CRUD dengan Rails. Pada kesempatan berikutnya kita akan mencoba topik Rails yang lebih mendalam. Selamat mencoba! 

No comments:

Post a Comment