Ruby Basic
Introduction
Ruby adalah salah satu bahasa pemrograman berorientasi objek yang dinamis, simple dan
produktif dimana sintaks ruby elegan, natural, mudah dibaca dan ditulis. Sintaks Ruby mudah
dibaca seperti kita membaca sebuah kalimat.
Pada contoh code Ruby diatas dengan mudah kita akan mengetahui maksudnya, yakni ketika
dijalankan akan mencetak text Belajar Ruby sebanyak lima kali.
Ruby dibuat oleh Yukihiro Matz Matsumoto pada pertengahan 1990. Bahasa pemrograman
Ruby ini terinspirasi dari beberapa bahasa pemrograman favorit creator-nya, yakni Perl,
Smalltalk, Eiffel, Ada dan LISP. Yukihiro meng-opensource-kan Ruby sehingga kita bisa
memakainya dengan bebas dan memodifikasinya.
Perlu diketahui bahwa semua yang ada di Ruby adalah object, sehingga setiap informasi dan
kode memiliki properties dan actions. Dalam OOP property biasa disebut instance variable
sedangkan action disebut method.
1 # Angka ini adalah object Integer dan memiliki banyak method. Contoh :
1.month.from_now
=> Sun, 21 May 2017 00:00:00 WIB +07:00
1.ordinalize
=> "1st"
1.times
=> #<Enumerator: ...>
Berbeda dengan bahasa pemrograman lainnya dimana angka dan tipe dasar lainnya bukan
merupakan suatu object.
Ruby Installation
Kita akan menggunakan version manager dalam melakukan instalasi Ruby. Ada beberapa
version manager yang biasa digunakan, diantaranya RVM dan rbenv. Pada buku ini kita akan
fokus menggunakan RVM.
RVM Installation
RVM singkatan dari Ruby Version Manager yang akan membantu kita dalam memanage versi
Ruby yang akan kita gunakan. Dalam RVM ini kita dapat mengelompokan gem-gem apa saja
yang akan kita gunakan. Gem adalah library Ruby, sepaket gem disebut Gemset.
$ source ~/.bash_profile
Note: Perintah ini berfungsi mereload terminal yang kita buka
$ rvm requirements
Note: Perintah ini untuk mengetahui lib-lib mana saja yang masih kurang, lalu instalkan semua lib-lib tersebut
3. Installing Ruby
4. Jika menginginkan versi Ruby lainnya silakan ulangi langkah no.3 dan ganti sesuai dengan
versi Ruby yang diinginkan
5. Untuk menggunakan Ruby dengan versi tertentu kita dapat menggunakan perintah berikut:
7. Setelah Ruby terinstal kemudian kita buat gemset dan daftarkan gem-gem yang akan kita
gunakan. Sebelumnya kita telah menentukan ruby version mana (perintah rvm use
2.3.4 ) yang akan kita gunakan dalam gemset kita.
8. Jalankan perintah berikut untuk menggunakan gemset yang telah kita buat:
9. Sampai sini kita akan menambahkan gem-gem yang diperlukan dalam develop aplikasi
Rails. Instalasi gem akan kita bahas pada bahasan selanjutnya.
RVM Commands
Jika kita membuka terminal baru maka terminal tersebut belum menggunakan Ruby dan
gemset manapun. Untuk itu kita perlu melakukan perintah dasar RVM berikut ini:
$ rvm list
Note: Untuk melihat daftar versi Ruby yang telah terinstal pada RVM
Selengkapnya tentang RVM dapat dipelajari pada official site RVM di https://rvm.io
Using Ruby
Setelah kita selesai melakukan instalasi Ruby pada RVM serta membuat gemset, selanjutnya
jalankan perintah ini pada terminal untuk membuka Ruby console:
$ irb
Makan terminal akan masuk kedalam Ruby console, denga output seperti dibawah ini dan kita
siap untuk eksplorasi bahasa pemrograman Ruby lebih jauh lagi.
ardian@ardian:~$ irb
2.3.4 :001 >
String
Text pada Ruby akan menjadi sebuah object String . Text dapat dibuat didalam single quote
maupun double quote.
Boolean
Type data boolean selalu bernilai true atau false . Karena ini Ruby, tentu true dan
false adalah object. Perlu diketahui bahwa pada Ruby nilai false hanya dapat dibentuk
oleh false itu sendiri dan nil , selain itu akan membentuk nilai true . Type data boolean
digunakan pada if statement / conditional expression.
If Else Statement
Penulisan If Else pada Ruby mirip seperti bahasa pemrograman lainnya, yaitu:
if condition
execute_if_true
else
execute_if_false
end
Contoh penggunaan variasi If Else statement pada Ruby sebagai berikut:
2.3.4 :001 > (a) ? print("Masuk blok true") : print("Masuk blok false")
=> Masuk blok true
Note: If else dengan ternary operator
Jadi if else statement pada Ruby terdiri dari if , elsif dan juga else .
Looping
Pada kebanyakan bahasa pemrograman looping biasanya dilakukan dengan for ,contohnya:
Pada Ruby kita dapat melakukan hal yang sama, tetapi cara tersebut tidaklah elegan, kenapa?
Karena kita diharuskan menampung index pada i .
Kita dapat menggunakan each untuk melakukan looping terhadap suatu baris.
2.3.4 :001 > array = [1, 2, 3]
=> [1, 2, 3]
2.3.4 :002 > array.each do |temp|
2.3.4 :003 > print temp
2.3.4 :004?> end
123 => [1, 2, 3]
case input
when condition1
<do_condition1>
when condition2
<do_condition2>
when condition3
<do_condition3>
when condition4
<do_condition4>
else
<not_meet_any_condition>
end
Method in Ruby
Pembuatan method pada Ruby cukup mudah, yaitu selalu diawali dengan def dan diakhiri
dengan end .
def method_name
<processes>
end
Note: Penulisan method tanpa argument
def method_name(argument)
<processes>
end
Note: Penulisan method dengan argument
Perlu diketahui bahwa method pada Ruby selalu melakukan return baris terakhir dari isi
method, kecuali kita mendefinisikannya pada tengah, contohnya :
2.3.4 :001 > def hello(name)
2.3.4 :002?> return "Who are you?" if name == "Ardian"
2.3.4 :003?> "Hello, " + name + "!"
2.3.4 :004?> end
=> :hello
Sampai disini kita telah mempelajari bahasa Ruby dasar yang nantinya dapat dijadikan bekal
untuk develop aplikasi menggunakan bahasa Ruby dengan framework Rails. Selebihnya akan
kita pelajari lebih mendalam lagi penggunaan bahasa pemrograman Ruby ini sembari
mempelajari Rails.
Rails Introduction
Rails adalah sebuah framework untuk mengembangkan aplikasi berbasis web yang ditulis
dengan bahasa pemrograman Ruby. Rails didesain untuk mempermudah pemrograman
aplikasi web menggunakan asumsi bahwa cara yang ada pada Rails adalah cara terbaik untuk
mengembangkan aplikasi web. Itulah kenapa Rails disebut juga opinionated web app
framework karena beranggapan apa yang dibutuhkan programer telah disediakan oleh Rails.
MVC Concept
Rails mengusung konsep MVC (Model View Controller), dengan adanya pemisahan antara
domain logic / business logic dari inputan dan presentation logic terkait dengan antarmuka /
interface (GUI).
Pada kasus aplikasi web, domain logic pada umumnya terdiri dari model data seperti users,
articles, products, comments, dan interface adalah sebuah halaman web pada browser.
Ketika berinteraksi dengan aplikasi Rails, browser mengirim request yang diterima oleh web
server dan diteruskan kepada controller pada Rails. Pada beberapa kasus, controller akan
melakukan render HTML. Untuk aplikasi web yang dinamis, controller akan berinteraksi dengan
model yang bertanggung jawab untuk berkomunikasi dengan database. Setelah data diterima
dari model kemudian controller akan menampilkan data tersebut pada view / HTML.
Model
Model merupakan jembatan antara database dengan aplikasi Rails. Semua business logic
sebaiknya berada didalam model ini, misalnya untuk melakukan validasi sebelum data dikirim
ke database dan juga proses-proses spesifik dari model tersebut. Model pada aplikasi Rails
merepresentasikan class dari object. Sebagai contohnya, model user berisi class User.
def full_name
first_name + last_name
end
end
Note: Contoh model pada aplikasi Rails yang merepresentasikan class User.
View
Apapun itu yang tampil sebagai user interface pada browser berasal dari view, misalnya HTML,
CSS, Javascript dan berbagai frontend framework lainnya. View bertanggung jawab pada
bagaimana aplikasi akan berinteraksi dengan user pada web browser.
<div class="field">
<%= f.label :last_name %>
<%= f.text_field :last_name %>
</div>
<div class="action">
<%= f.submit 'Save' %>
</div>
<% end %>
Note: Contoh view pada aplikasi Rails, view ini berisi input untuk mengirim first_name dan last_name ke model User, melalui
controller.
Controller
Ketika user telah berinteraksi dengan user interface, maka controller akan merekam setiap
event dari interface tersebut. Controller bertindak sebagai jembatan antara view dengan model.
# POST /users
POST /users.json
#
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to users_path, notice: ' User was
successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { redirect_to :back, notice: 'Failed to create user.' }
format.json { render json: @user.errors, status:
:unprocessable_entity }
end
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name)
end
end
Note: Controller menerima event dari view, dalam hal ini create user dengan inputan first_name & last_name.
ActiveRecord
ActiveRecord adalah ORM (Object Relational Mapping) yang disediakan oleh Rails. Fungsinya
adalah untuk menjembatani database dan object oriented.
Naming Convention
Validation
Relationship
Scope
Class Method
Instance Method
Performance Loading
ActionController
ActionView
Database Handling
Database Migration
Create
List
Show
Update
Delete
File Attachment
Paging
Rails Deployment
Cheats
Rails Scaffolding
Devise