Sintaks Utama #
Sintaks utama Ruby adalah cara di mana Anda menulis kode Ruby untuk mendefinisikan struktur, data, dan kontrol alur program. Ruby dikenal karena sintaksnya yang bersih dan elegan, serta kemudahan penggunaannya yang mendekati bahasa alami. Berikut adalah penjelasan mendetail mengenai sintaks utama Ruby, termasuk variabel, operator, kontrol alur, dan lainnya.
Variabel #
a. Variabel Lokal
Variabel lokal adalah variabel yang dimulai dengan huruf kecil atau garis bawah (_
). Mereka hanya dapat diakses dalam konteks di mana mereka didefinisikan.
Contoh:
age = 25
name = "Alice"
Penjelasan:
age
danname
adalah variabel lokal.
b. Variabel Instance
Variabel instance diawali dengan @
dan hanya dapat diakses dalam instance dari kelas.
Contoh:
class Person
def initialize(name)
@name = name
end
def greet
"Hello, #{@name}!"
end
end
Penjelasan:
@name
adalah variabel instance yang hanya dapat diakses dalam instance dari kelasPerson
.
c. Variabel Kelas
Variabel kelas diawali dengan @@
dan dapat diakses di seluruh instance dari kelas yang sama.
Contoh:
class Counter
@@count = 0
def initialize
@@count += 1
end
def self.count
@@count
end
end
Counter.new
Counter.new
puts Counter.count # Output: 2
Penjelasan:
@@count
adalah variabel kelas yang menyimpan jumlah instance dari kelasCounter
.
d. Variabel Global
Variabel global diawali dengan $
dan dapat diakses di mana saja dalam program.
Contoh:
$global_var = "I am global"
def show_global
puts $global_var
end
show_global # Output: I am global
Penjelasan:
$global_var
adalah variabel global yang dapat diakses dari mana saja dalam program.
Tipe Data #
a. String
String didefinisikan dengan tanda kutip ganda ("
) atau tunggal ('
).
Contoh:
single_quote = 'Hello'
double_quote = "Hello, #{single_quote}"
puts double_quote # Output: Hello, Hello
Penjelasan:
- Tanda kutip ganda memungkinkan interpolasi variabel, sedangkan tanda kutip tunggal tidak.
b. Integer dan Float
Ruby menangani bilangan bulat (integer) dan bilangan pecahan (float) secara langsung.
Contoh:
integer = 42
float = 3.14
puts integer + float # Output: 45.14
c. Array
Array adalah koleksi dari elemen yang dapat diakses dengan indeks.
Contoh:
array = [1, 2, 3, "four"]
puts array[3] # Output: four
d. Hash
Hash adalah koleksi pasangan kunci-nilai.
Contoh:
hash = {name: "Alice", age: 25}
puts hash[:name] # Output: Alice
Operator #
a. Operator Aritmatika
Operator ini digunakan untuk operasi matematika dasar.
Contoh:
a = 10
b = 5
puts a + b # Output: 15
puts a - b # Output: 5
puts a * b # Output: 50
puts a / b # Output: 2
puts a % b # Output: 0
b. Operator Perbandingan
Operator ini digunakan untuk membandingkan nilai.
Contoh:
a = 10
b = 5
puts a > b # Output: true
puts a < b # Output: false
puts a == b # Output: false
puts a != b # Output: true
c. Operator Logika
Operator ini digunakan untuk operasi logika.
Contoh:
x = true
y = false
puts x && y # Output: false
puts x || y # Output: true
puts !x # Output: false
Kontrol Alur #
a. Kondisi
Penggunaan if
, elsif
, else
, dan unless
untuk percabangan logika.
Contoh:
age = 18
if age >= 18
puts "You are an adult."
else
puts "You are a minor."
end
b. Pengulangan
Ruby mendukung beberapa jenis loop seperti while
, until
, dan for
.
Contoh:
-
while
loop:i = 0 while i < 5 puts i i += 1 end
-
until
loop:i = 0 until i == 5 puts i i += 1 end
-
for
loop:for i in 0..4 puts i end
-
each
method:[1, 2, 3, 4].each do |num| puts num end
c. Case Statement
case
digunakan untuk menggantikan beberapa pernyataan if
.
Contoh:
day = "Monday"
case day
when "Monday"
puts "Start of the week"
when "Friday"
puts "End of the work week"
else
puts "Midweek days"
end
Blok dan Procs #
a. Blok
Blok adalah segmen kode yang dapat diteruskan ke metode. Mereka biasanya dikelilingi oleh do...end
atau {...}
.
Contoh:
[1, 2, 3].each do |num|
puts num
end
b. Procs
Proc
adalah objek yang menyimpan blok kode dan dapat dipanggil seperti metode.
Contoh:
greeting = Proc.new { |name| "Hello, #{name}!" }
puts greeting.call("Alice") # Output: Hello, Alice!
c. Lambda
Lambda
adalah jenis khusus dari Proc
yang memeriksa jumlah argumen yang diberikan.
Contoh:
my_lambda = -> (x) { x * 2 }
puts my_lambda.call(5) # Output: 10
Metode Khusus #
a. Metode initialize
Metode ini dipanggil saat objek baru dibuat dan digunakan untuk inisialisasi.
Contoh:
class Person
def initialize(name)
@name = name
end
end
b. Metode self
self
merujuk pada instance saat ini dalam metode instance dan kelas saat ini dalam metode kelas.
Contoh:
class MyClass
def instance_method
puts self
end
def self.class_method
puts self
end
end
obj = MyClass.new
obj.instance_method # Output: #<MyClass:0x00007f8f9c0e83c8>
MyClass.class_method # Output: MyClass
c. Metode attr_*
Metode attr_reader
, attr_writer
, dan attr_accessor
digunakan untuk membuat getter dan setter.
Contoh:
class Person
attr_accessor :name # Getter dan Setter
def initialize(name)
@name = name
end
end
Error Handling #
a. begin...rescue...ensure
Digunakan untuk menangani pengecualian.
Contoh:
begin
# Code that might raise an exception
result = 10 / 0
rescue ZeroDivisionError
puts "Cannot divide by zero"
ensure
puts "This will always be executed"
end
Kesimpulan #
Sintaks utama Ruby dirancang untuk kemudahan penggunaan dan keterbacaan. Dengan variabel lokal, instance, dan kelas, serta berbagai jenis data dan operator, Ruby menyediakan berbagai alat untuk menulis kode yang bersih dan efisien. Kontrol alur, blok, dan error handling memungkinkan Anda untuk mengelola logika program dengan fleksibel. Jika Anda memiliki pertanyaan lebih lanjut atau memerlukan klarifikasi tentang aspek tertentu dari sintaks Ruby, silakan beri tahu saya!