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:
agedannameadalah 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:
@nameadalah 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:
@@countadalah 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_varadalah 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:
-
whileloop:i = 0 while i < 5 puts i i += 1 end -
untilloop:i = 0 until i == 5 puts i i += 1 end -
forloop:for i in 0..4 puts i end -
eachmethod:[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!