Introduction to Ruby Programming Language
Pengenalan bahasa pemrograman ruby
Ruby adalah bahasa pemrograman open-source yang bersifat dinamis dengan berfokus pada bahasa yang sederhana dan produktifitas. Syntax ruby sangat mirip dengan bahasa inggris sehingga mudah untuk dibaca dan ditulis. Ruby ditulis dengan bahasa pemrograman C dengan memiliki kemampuan dasar seperti bahasa Perl dan Python.
Ruby diciptakan oleh seorang programmer dari Jepang bernama Yukihiro Matsumoto yang dimulai ditulis pada Februari 1993 dan dirilis versi alpha pada Desember 1994.
Ruby memiliki keunggulan sebagai berikut:
- Mudah digunakan dan dipelajari
Ruby memiliki syntax yang mirip dengan bahasa inggris, sehinnga mudah untuk dibaca dan mudah untuk dipelajari terutama untuk pemula. - Bahasa yang sangat object-oriented
Ruby mendukung paradigma OOP (Object-Oriented Programming) - Dinamis typing
Ruby memiliki gaya pengetikan yang dinamis, dimana type data pada variabel tidak perlu didefinisikan.
Bahasa Ruby bisa digunakan untuk beberapa hal seperti web server, data processing dan juga dev-ops.
Ruby memiliki beberapa bahasa yang dianggap sebagai kompetitor dari ruby seperti Rust dan Python.
Syntax Ruby
Ruby memiliki syntax yang mudah dibaca dan sangat mirip dengan bahasa inggris.
Strings
Untuk syntax string pada ruby bisa menggunakan kutip dua (“) dan satu (‘).
Syntax example:
"I love ruby"
'I like ruby'
- Strings length
Untuk mengetahui panjang dari sebuah string bisa dengan cara:
"I love ruby".length //output: 11
- Strings interpolation
Di ruby, membuat string interpolation sangatlah mudah seperti berikut ini:
a = 12
b = 20
puts “The number #{a} is less than #{b}”
// output: The number 12 is less than 20
- Strings concatenating
Membuat sebuah string baru dengan cara menambahkan dua strings bersamaan dengan cara:
"I love" + "ruby"
atau
"I love".concat("Ruby")
Comments
Comment pada ruby bisa menggunakan:
- # untuk single line comment
- dan menggunakan = begin and = end untuk multi line comment
Syntax example:
# this is comment
= begin
comment
comment too
= end
Variable
Untuk menulis variable pada ruby sangat mudah karna tidak memerlukan keyword seperti bahasa pemograman lainnya (var, let, const).
Ruby memiliki beberapa type variable berdasarkan scope-nya:
- Global variable ($name)
- Instance variable (@name)
- Class variable (@@name)
- Constant (NAME)
Syntax example:
number = 6
name = "Ruby"
$name = "Ini global variable"
@name = "Ini instance variable"
@@name = "Ini class variable"
NAME = "Ini constant variable"
Arrays
Array merupakan sebuah koleksi dari item yang bisa berupa number, string, atau boolean. Indeks pada array dimulai dari 0, begitu juga di bahasa pemrograman Ruby.
Di Ruby, ukuran dari sebuah array tidak tetap dan object apapun serta type data apapun bisa dimasukan ke dalam array tidak hanya numbers atau string.
- Membuat sebuah arrays baru
array = [1, 2, 3]
atau cara lainnya dalam membuat arrays
Array.new(1, 2)
- Mengakses element arrays
array = [1, 2, 3, 4, 5]
array[2] // output: 3
array[1] // output: 2
- Menambah element pada arrays
Umumnya di Ruby cara menambahkan array adalah sebagai berikut:
array = [1, 2, 3, 4, 5]
array << 6
// output: [1, 2, 3, 4, 5, 6]
Tapi juga bisa dengan cara:
array = [1, 2, 3, 4, 5]
array.push(6)
// output: [1, 2, 3, 4, 5, 6]
- Menghapus element pada arrays
array = [1, 2, 3, 4, 5]
array.delete(3)
- Menghitung ukuran dari element arrays
array = [1, 2, 3, 4, 5]
array.length()
Hash
Hash merupakan sebuah colletion yang berisi pasangan key-value. Hashes juga disebut sebagai “associative arrays”, “dictionary”, “HashMap” pada bahasa pemrograman lainnya.
Hash kosong bisa dideklarasikan dengan {}, contoh hash pada Ruby:
user_phone = {
"jhon" => 0892742974,
"bob" => 0823849292
}
- Mengakses objek pada hash
Mengambil objek pada hash bisa menggunakan [] dengan memasukkan key yang ada pada hash.
user["bob"]
// output: 0823849292
- Menghapus objek pada hash
Menghapus objek pada hash bisa menggunakan () dengan memasukkan key yang ada pada hash.
user.delete("bob")
- Menampilkan seluruh key-value hash
Menampilkan seluruh key-value hash bisa menggunakan looping:
name = { "first_name" => "Aras", "last_name" => "Opraza" }
name.each do |key, value|
puts "#{key} = #{value}"
end
Looping merupakan cara mengeksekusi blok kode yang sama dengan jumlah spesifik, looping pada ruby memiliki berbagai cara seperti berikut:
- While
i = 1while i < 5 do
puts i
i += 1
end
- Until
i = 1
until i > 5 do
i += 1
end
- For
for i in 1..5 do
puts "Hello world"
end
If and Else Statements
Dalam pemrograman blok kode tertentu perlu dieksekusi ketika beberapa kondisi terpenuhi atau true dan kode lainnya dieksekuis ketika kondisi tidak terpenuhi atau false.
Ruby memiliki beberapa cara percabangan:
- if
- if-else
- if-elsif
Syntax if example:
price = 15
if price > 10
puts "Maaf, saldo anda tidak cukup!"
end
Syntax if-else example:
stock = 10
if stock > 5
puts "Stock anda cukup"
else
puts "Stock anda hampir habis"
end
Syntax if-elsif example:
stock = 5
if stock > 20
puts "Stock anda lebih dari cukup"
elsif stock > 10
puts "Stock anda cukup"
elsif stock < 10
puts "Stock anda hampir habis"
end
Ruby Class
Di ruby, seperti bahasa pemrograman yang berbasis object lainnya yang mungkin sudah familiar, class berfungsi untuk membuat object atau juga disebut sebagai bluperint-nya object. Untuk mendefenisikan sebuah class pada ruby, diperlukan sebuah keyword class dan diakhiri dengan keyword end.
class Order
end
Di object-oriented programming, class merupakan sebuah blueprint dan object merupakan sebuah variable yang merupakan instance atau perwujudan dari Class. Object yang dibangun dari class itu disebut dengan instance class.
class Order
endorder = Order.new
Ruby Method
Method merupakan sebuah command yang bisa digunakan berulang kali yang berada di dalam sebuah class yang menghasilkan nilai balik atau return.
class Order
def create_order
puts "Selamat, kamu telah menambahkan order!"
end
end
Dan bagaimana cara memanggil sebuah method?
order = Order.new
user_order = order.create_order
- Method with return
def add_values
return 1 + 2
end
- Method with arguments
def add_values(number1, number2)
return number1 + number2
end
Web Framework in Ruby
Ruby on Rails (RoR) atau Rails merupakan full-stack framework yang ditulis dalam bahasa pemrograman Ruby. Rails dirancang untuk membuat pemrograman aplikasi web lebih mudah. Memungkinkan untuk menulis lebih sedikit kode dari pada bahasa dan framework lainnya.
The Rails philosophy:
- Don’t Repeat Yourself: DRY adalah prinsip pengembangan perangkat lunak yang menyatakan bahwa “Setiap bagian dari pengetahuan harus memiliki representasi otoritatif tunggal, tidak ambigu, dalam suatu sistem”. Dengan tidak menulis informasi yang sama berulang-ulang, kode kita lebih dapat dipelihara, lebih dapat dikembangkan, dan lebih sedikit bug.
- Convention Over Configuration: Rails memiliki pendapat tentang cara terbaik untuk melakukan banyak hal dalam aplikasi web, dan default untuk kumpulan konvensi ini, daripada mengharuskan menentukan hal-hal kecil melalui file konfigurasi tanpa akhir.
Ruby on Rails menggunakan arsitektur Model-View-Controller (MVC) yang banyak juga digunakan oleh web framework lainnya. MVC pattern memisahkan kode aplikasi ke dalam 3 bagian:
- The Model, merepresentasikan model domain (seperti User, Payment dan lainnya) dan mengenkapsulasi business logic. In Rails models are backed by a database, models can also be ordinary Ruby classes, or Ruby classes that implement a set of interfaces as provided by the Active Model module.
- The View, berisi “templates” yang bertanggung jawab untuk menampilkan representasi dari resources aplikasi. Templates bisa dalam berbagai bentuk, tapi templates view yang paling banyak digunakan adalah HTML yang ditambah dengan embedded Ruby code (ERB files).
- The Controller, bertanggung jawab dalam menghandle HTTP requests dan memberikan response. Tidak hanya me-generate HTML tapi Rails controllers juga bisa generate XML, JSON, PDFs, mobile-specific views, dan lainnya.
Ruby on Rails merupakan pilihan yang cocok jika memerlukan kebutuhan berikut ini:
- Handle complex business logic.
- Membutuhkan developer yang bisa mengembangkan aplikasi dengan cepat.
- Memiliki budget yang terbatas.
- Ingin rilis aplikasi dengan cepat.
10119001- Arsy Opraza Akma