Metode dalam Ruby: Membuat Fungsi yang Reusable

| Ruby | ruby, tutorial, metode, method, function

Metode dalam Ruby: Membuat Fungsi yang Reusable

Metode adalah blok kode yang bisa dipanggil berulang kali. Tanpa metode, Anda harus copy-paste kode yang sama di mana-mana. Dengan metode, cukup definisi sekali, panggil kapan saja.

1. Metode Dasar

Definisi Metode

def sapa
  puts "Halo, selamat datang!"
end

Panggil Metode

sapa  # Output: Halo, selamat datang!

def menandai awal metode, end menandai akhir. Panggil dengan nama metode tanpa def.

2. Parameter — Input ke Metode

def sapa(nama)
  puts "Halo, #{nama}!"
end

sapa("Andika")   # Output: Halo, Andika!
sapa("Budi")     # Output: Halo, Budi!

Multiple Parameters

def tambah(a, b)
  puts a + b
end

tambah(10, 5)  # Output: 15

3. Return Value — Output dari Metode

Ruby otomatis return nilai terakhir di dalam metode:

def tambah(a, b)
  a + b
end

hasil = tambah(10, 5)
puts hasil  # 15

Anda juga bisa pakai return eksplisit:

def tambah(a, b)
  return a + b
end

Tips: Pakai return hanya kalau butuh return awal. Biasanya cukup nilai terakhir.

4. Default Arguments

def sapa(nama, greeting = "Halo")
  puts "#{greeting}, #{nama}!"
end

sapa("Andika")           # Halo, Andika!
sapa("Andika", "Selamat pagi")  # Selamat pagi, Andika!

Parameter kedua punya default "Halo". Kalau tidak dikirim, pakai default.

5. Keyword Arguments

def buat_user(nama:, email:, umur: 25)
  puts "Nama: #{nama}"
  puts "Email: #{email}"
  puts "Umur: #{umur}"
end

buat_user(nama: "Andika", email: "[email protected]")
# Nama: Andika
# Email: [email protected]
# Umur: 25

buat_user(nama: "Budi", email: "[email protected]", umur: 30)
# Nama: Budi
# Email: [email protected]
# Umur: 30

Lebih eksplisit — parameter harus disebut namanya.

6. Variable-length Arguments

Splat Operator (*)

def jumlahkan(*angka)
  angka.sum
end

puts jumlahkan(1, 2, 3, 4, 5)  # 15

*angka menangkap semua argumen jadi array.

Gabungan

def buat_pesanan(nama, *items)
  puts "Pesanan untuk #{nama}:"
  items.each { |item| puts "- #{item}" }
end

buat_pesanan("Andika", "Nasi", "Ayam", "Teh")
# Pesanan untuk Andika:
# - Nasi
# - Ayam
# - Teh

7. Metode sebagai Object

Di Ruby, metode adalah objek. Anda bisa simpan dalam variabel:

def kuadrat(n)
  n ** 2
end

# Simpan metode dalam variabel
method = method(:kuadrat)
puts method.call(5)  # 25

8. Scope & Accessors

Local Variable

def test
  variabel = "lokal"
  puts variabel
end

test  # lokal
# puts variabel  # Error! variabel tidak dikenal di luar metode

Instance Variable

class User
  def initialize(nama)
    @nama = nama
  end

  def tampilkan
    puts "Nama: #{@nama}"
  end
end

user = User.new("Andika")
user.tampilkan  # Nama: Andika

9. Best Practices

# ✅ Gunakan snake_case untuk nama metode
def hitung_total
end

# ❌ Jangan pakai camelCase
def hitungTotal
end

# ✅ Nama metode harus jelas
def kirim_email(penerima, subjek, isi)
end

# ❌ Jangan ambigu
def proses(a, b, c)
end

# ✅ Panjang metode ideal: < 20 baris
def metode_pendek
  # lakukan sesuatu
end

10. Ringkasan

Konsep Contoh Keterangan
Definisi def nama ... end Membuat metode
Parameter def sapa(nama) Input
Default def sapa(nama = "User") Nilai default
Keyword def test(nama:) Named parameter
Return Nilai terakhir / return Output
Splat def test(*args) Variable args
Panggil nama_metode(args) Eksekusi

Penutup

Metode membuat kode lebih terorganisir dan reusable. Daripada menulis kode yang sama berkali-kali, cukup buat metode dan panggil sesuai kebutuhan.

Di artikel selanjutnya, kita akan bahas Blok, Procs, dan Lambdas — konsep powerful yang memungkinkan Anda memperlakukan kode sebagai objek.


Mail Facebook Twitter Whatsapp