Fungsi #
Di Ruby, fungsi adalah blok kode yang dapat dipanggil untuk menjalankan tugas tertentu. Di Ruby, fungsi sebenarnya disebut metode, dan mereka didefinisikan di dalam kelas atau modul. Berikut adalah penjelasan mendetail tentang fungsi (metode) di Ruby, termasuk berbagai cara untuk mendefinisikan dan menggunakan metode.
Mendefinisikan Metode #
Metode di Ruby didefinisikan menggunakan kata kunci def
, diikuti oleh nama metode, parameter (jika ada), dan blok kode yang akan dieksekusi saat metode dipanggil.
Sintaks Dasar:
def nama_metode(parameter1, parameter2)
# Blok kode
end
Contoh:
def greet(name)
puts "Hello, #{name}!"
end
Penjelasan: Metode greet
menerima satu parameter name
dan mencetak pesan sapaan yang disertai dengan nama.
Memanggil Metode #
Metode dipanggil dengan menggunakan nama metode diikuti oleh tanda kurung yang berisi argumen (jika diperlukan).
Contoh:
greet("Alice") # Output: Hello, Alice!
Penjelasan: Metode greet
dipanggil dengan argumen “Alice”.
Parameter dan Argumen #
Metode dapat memiliki parameter yang didefinisikan dalam tanda kurung setelah nama metode. Parameter ini digunakan untuk menerima nilai ketika metode dipanggil.
Contoh:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Output: 8
Penjelasan: Metode add
menerima dua parameter a
dan b
, dan mengembalikan hasil penjumlahan keduanya.
Parameter Default #
Ruby memungkinkan Anda untuk menetapkan nilai default untuk parameter. Jika argumen untuk parameter tersebut tidak diberikan saat metode dipanggil, nilai default akan digunakan.
Contoh:
def greet(name = "Guest")
puts "Hello, #{name}!"
end
greet # Output: Hello, Guest!
greet("Bob") # Output: Hello, Bob!
Penjelasan: Parameter name
memiliki nilai default “Guest”. Jika tidak ada argumen yang diberikan, nilai default digunakan.
Parameter Bertumpuk (Variadic Arguments) #
Ruby memungkinkan Anda untuk menerima sejumlah argumen dengan menggunakan *
sebelum parameter. Ini akan mengumpulkan semua argumen yang diberikan ke dalam array.
Contoh:
def print_args(*args)
args.each { |arg| puts arg }
end
print_args("a", "b", "c") # Output: a b c
Penjelasan: Metode print_args
menerima sejumlah argumen dan mencetak setiap argumen yang diterima.
Metode dengan Blok #
Metode dapat menerima blok kode sebagai argumen. Blok dapat diberikan saat memanggil metode dan dapat digunakan di dalam metode.
Contoh:
def greet
yield "Alice"
end
greet { |name| puts "Hello, #{name}!" } # Output: Hello, Alice!
Penjelasan: Metode greet
menerima blok dan yield
digunakan untuk mengeksekusi blok dengan argumen “Alice”.
Metode Instance vs Metode Kelas #
Metode dapat didefinisikan dalam konteks instance (metode objek) atau dalam konteks kelas (metode kelas).
Metode Instance:
class Person
def initialize(name)
@name = name
end
def greet
"Hello, #{@name}!"
end
end
person = Person.new("Alice")
puts person.greet # Output: Hello, Alice!
Metode Kelas:
class Person
def self.info
"This is a Person class."
end
end
puts Person.info # Output: This is a Person class.
Penjelasan:
- Metode instance (
greet
) dipanggil pada instance dari kelas (person
). - Metode kelas (
info
) dipanggil pada kelas itu sendiri (Person
).
Metode yang Mengembalikan Nilai #
Metode secara otomatis mengembalikan nilai dari baris terakhir yang dieksekusi jika tidak ada pernyataan return
.
Contoh:
def multiply(a, b)
a * b
end
result = multiply(4, 5)
puts result # Output: 20
Penjelasan: Metode multiply
mengembalikan hasil dari ekspresi a * b
.
Menggunakan return
#
Anda dapat menggunakan kata kunci return
untuk mengembalikan nilai dari metode secara eksplisit.
Contoh:
def multiply(a, b)
return a * b
end
result = multiply(4, 5)
puts result # Output: 20
Penjelasan: Metode multiply
mengembalikan nilai dari ekspresi a * b
menggunakan return
.
Method Chaining #
Ruby mendukung method chaining, yaitu memanggil beberapa metode dalam satu baris kode.
Contoh:
class String
def shout
upcase + "!"
end
end
result = "hello".shout.reverse
puts result # Output: !OLLEH
Penjelasan: Metode shout
dan reverse
dipanggil secara berantai pada string “hello”.
Metode Pembantu (Helper Methods) #
Di Ruby, Anda bisa membuat metode pembantu di dalam modul atau kelas untuk menyederhanakan kode.
Contoh:
module MathHelpers
def self.square(x)
x * x
end
end
puts MathHelpers.square(4) # Output: 16
Penjelasan: square
adalah metode pembantu di dalam modul MathHelpers
.
Kesimpulan #
Metode di Ruby adalah cara utama untuk membagi kode menjadi bagian-bagian yang dapat digunakan kembali dan modular. Dengan memahami cara mendefinisikan dan menggunakan metode, serta fitur-fitur tambahan seperti parameter default, variadic arguments, dan blok, Anda dapat menulis kode Ruby yang lebih bersih, terstruktur, dan efektif. Jika Anda memiliki pertanyaan lebih lanjut atau membutuhkan penjelasan tambahan, silakan beri tahu!