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.
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.