Sintaks Ruby
Pada bagian ini kita akan mempelajari sintaks dasar yang bisa ataupun boleh digunakan dalam bahasa pemrograman Ruby.
Whitespace dalam Ruby
Secara umum, whitespace seperti spasi dan tabs akan diabaikan, kecuali mereka yang berada didalam strings. Terkadang, mereka digunakan untuk memperjelas statement atau pernyataan didalam Ruby yang masih ambigu.
# Baris kode pertama akan diterjemahkan sebagai `a + b` dimana a dan b bertindak sebagai local variable
a + b
# Baris kode kedua akan diterjemahkan sebagai `a(+b)` dimana ini adalah pemanggilan method `+b`
a +b
Line endings dan Ruby identifiers
Ruby menterjemahkan titik koma (;) dan baris baru sebagai akhir dari sebuah statement atau method. Tetapi, jika Ruby menemui operator seperti +, -, atau garis miring (/) diakhir baris kode, maka akan diindikasikan sebagai kode yang masih berlanjut.
# Titik koma sebagai akhir dari statement
def method; end;
# Baris baru sebagai akhir dari statement
def newline
end
# Contoh kode yang masih berkelanjutan, menggunakan operator tambah (+)
"hello" +
"world"
Identifiers atau pengidentifikasi adalah nama variable, constants dan methods. Identifiers Ruby bersifat case-sensitive, yang berarti ram dengan Ram atau RAM adalah entitas dan identifiers yang berbeda. Identifiers bisa terdiri dari huruf, angka atau alphanumeric dan garis bawah (_).
Reserved Words
Dibawah ini adalah kata-kata atau keyword yang tidak bisa digunakan sebagai identifier, atau dengan kata lain sudah di "pesan" oleh Ruby sehingga tidak bisa digunakan lagi oleh programmer, namun masih bisa digunakan sebagai nama method.
| BEGIN | do | next | then |
| END | else | nil | true |
| true | alias | elsif | not |
| undef | and | end | or |
| unless | begin | ensure | redo |
| until | break | false | rescue |
| when | case | for | retry |
| while | class | if | return |
| yield | def | in | self |
__FILE__ |
defined? | module | super |
__LINE__ |
Here Documents
Here documents adalah nama fungsi yang digunakan untuk membuat string dengan konten lebih dari satu baris.
#!/usr/bin/ruby
# Atau bisa juga ditulis menggunakan tambahan karakter hyphen (-)
# <<-EOF; EOF
print <<EOF
This is the first way of creating
here document ie. multiple line string.
EOF
print <<"EOF"; # sama dengan yang diatas
This is the second way of creating
here document ie. multiple line string.
EOF
print <<`EOC` # eksekusi perintah
echo hi there
echo lo there
EOC
print <<"foo", <<"bar" # atau bisa ditumpuk
I said foo.
foo
I said bar.
bar
Salin kode diatas kedalam sebuah file Ruby baru, kita beri nama here_doc.rb, lalu eksekusi di terminal dengan $ ruby here_doc.rb dan output yang dikeluarkan adalah:
$ ruby here_doc.rb
This is the first way of creating
here document ie. multiple line string.
This is the second way of creating
here document ie. multiple line string.
hi there
lo there
I said foo.
I said bar.
Di Ruby versi terbaru, terdapat satu cara tambahan dalam penulisan Here Documents. Sintaks yang digunakan adalah <<~EOF, dengan penambahan atau mengganti karakter hyphen (-) dengan tilda (~). Yang membedakan sintaks yang baru ini dengan sintaks yang sudah ada adalah hasil yang dikeluarkan memiliki identasi yang lebih rapih. Yakni identasi yang digunakan sesuai dengan yang kita ketik, bukan identasi yang ada pada teks editor yang kita gunakan. Sebagai contoh:
class Foo
# Sintaks baru
def new_syntax
<<~EOF
Ini multiline string baru
EOF
end
# Sintaks yang sudah ada
def existing_syntax
<<-EOF
Ini multiline string lama
EOF
end
end
# Output yang dihasilkan
Ini multiline string baru
Ini multiline string lama
Seperti yang kamu lihat, pada saat kita menulis kode didalam blok EOF, kita hanya menambahkan 2 (dua) spasi. Namun output yang dikeluarkan oleh masing-masing sintaks berbeda, yang mana disintaks lama menggunakan seluruh identasi yang ada di teks editor saat mengeluarkan output.
BEGIN dan END statement
Sintaks BEGIN digunakan jika ada kode yang ingin dieksekusi sebelum program dijalankan atau dimulai. Buat file baru dengan nama begin1.rb dan isi dengan kode berikut:
#!/usr/bin/ruby
puts "ini harus muncul kedua"
BEGIN { puts "ini harus muncul pertama"}
dan output yang dikeluarkan adalah:
$ ruby begin1.rb
ini harus muncul pertama
ini harus muncul kedua
Sintaks END digunakan jika ada kode yang ingin dieksekusi sesudah program selesai dijalankan atau dengan kata lain, akan dieksekusi paling akhir. Tulis kode dibawah ini pada sebuah file baru dengan nama end1.rb.
END { puts "ini harus keluar ketiga"}
puts "ini harus keluar kedua"
BEGIN { puts "ini harus keluar pertama"}
lalu eksekusi dengan perintah $ ruby end1.rb, maka output yang keluar didalam terminal adalah:
$ ruby end1.rb
ini harus keluar pertama
ini harus keluar kedua
ini harus keluar ketiga
Ruby Comments
Untuk menulis sebuah komentar dalam Ruby diawali dengan karakter hash atau tanda pagar (#).
# Ini adalah komentar
foo = "bar" # Ini akan diabaikan