Study
Ruby

Encapsulation di Ruby (Public, Private, Protected)

Penjelasan

Ruby punya tiga level visibilitas method: public (default, bisa dipanggil dari mana saja), private (cuma bisa dipanggil dari dalam object itu sendiri, TANPA menyebut nama object-nya secara eksplisit), dan protected (cuma bisa dipanggil dari dalam class yang sama atau turunannya). Ditandai dengan menulis keyword-nya di tengah body class, semua method setelahnya ikut level visibilitas itu sampai ada penanda baru.

Contoh Konsep

class Akun
  def initialize(saldo)
    @saldo = saldo
  end

  def info
    "Saldo: #{format_saldo}" # boleh, dipanggil dari dalam object
  end

  private

  def format_saldo
    "Rp#{@saldo}"
  end
end

akunku = Akun.new(50000)
puts akunku.info
# akunku.format_saldo # Error! private, tidak bisa dipanggil dari luar

Praktikum

Buat class Siswa dengan attr_reader :nama (getter saja, tanpa setter), diisi lewat initialize. Tambahkan private method label_privat yang mengembalikan "[SISWA]", dan method publik info yang menggabungkan label_privat dengan nama. Buat object-nya dan tampilkan hasil info.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Pakai attr_reader kalau property hanya perlu dibaca dari luar (tanpa boleh diubah), attr_writer kalau hanya perlu diisi tanpa dibaca, dan attr_accessor kalau butuh keduanya — lebih presisi dibanding selalu pakai attr_accessor untuk semuanya.