Study
Ruby

Class Method di Ruby (self.)

Penjelasan

Class method adalah method yang dipanggil langsung lewat nama class-nya (mis. Siswa.buat_kosong), BUKAN lewat sebuah object hasil .new — setara static di Java/C#. Ditandai dengan menulis self. di depan nama method saat mendefinisikannya. Berguna untuk logika yang berhubungan dengan class secara keseluruhan, bukan satu instance tertentu (mis. factory method, atau menghitung jumlah object yang pernah dibuat).

Contoh Konsep

class Siswa
  @@jumlah_siswa = 0 # class variable, dipakai bersama semua object

  def initialize(nama)
    @nama = nama
    @@jumlah_siswa += 1
  end

  def self.jumlah
    @@jumlah_siswa
  end
end

Siswa.new("Budi")
Siswa.new("Ani")

puts Siswa.jumlah # 2, dipanggil lewat nama class, bukan object

Praktikum

Buat class Kalkulator dengan class method self.kuadrat(angka) yang mengembalikan angka * angka. Panggil Kalkulator.kuadrat(6) langsung tanpa membuat object, lalu tampilkan hasilnya.

Editor Latihan

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

Tips

Class variable (@@nama, dipakai bersama SEMUA object) berbeda dari instance variable (@nama, dimiliki tiap object secara terpisah) — class method biasanya dipasangkan dengan class variable kalau perlu menyimpan state yang dipakai bersama, seperti jumlah_siswa pada contoh di atas.