بسم الله الرحمن الرحيم

Prakata

Pada bahasa Ruby, setiap Method menyediakan fungsi ke dalam sebuah Object.

Class Method menyediakan fungsi ke dalam Class itu sendiri.

Sedangkan,

Instance Method menyediakan fungsi ke satu Instance Class atau Object.

Contohnya

Misalkan kita punya sebuah Class seperti di bawah ini.

Coba tuliskan per barisnya di dalam irb saja biar praktis.

FILEjurus_sakti.rb
1
2
3
4
5
6
7
8
9
class JurusSakti
  def self.kame_hameha
    "Jurus dari Class Method"
  end

  def kaio_ken
    "Jurus dari Instance Method"
  end
end

Dari kode di atas, kita dapat melihat bahwa class JurusSakti memiliki dua buah mehtod.

Yaitu, method kame_hameha dan method kaio_ken.

Untuk membedakan keduanya, coba panggil seperti contoh-contoh di bawah ini.

>> JurusSakti.kame_hameha
=> "Jurus dari Class Method"

>> JurusSakti.kaio_ken
=> NoMethodError: undefined method `kaio_ken' for JurusSakti:Class

Terlihat bahwa method kame_hameha berhasil dipanggil, sedangkan method kaio_ken mengalami error berupa undefined method yang artinya method kaio_ken tidak dikenali.

Loh kok bisa?

Ya, tentu saja.

Karena method kame_hameha merupakan Class Method, sehingga dapat langsung dipanggil bersama nama class-nya.

Lalu, Bagaimana cara memanggil method kaio_ken?

Nah, caranya dengan membuat object baru terlebih dahulu, lalu memasukannya ke dalam sebuah variable.

Simak contoh di bawah ini.

>> jurus_pamungkas = JurusSakti.new

>> jurus_pamungkas.kame_hameha
=> NoMethodError: undefined method `kame_hameha' for #<JurusSakti:0x000055cd5364e030>

>> jurus_pamungkas.kaio_ken
=> "Jurus dari Instance Method"

Terlihat bahwa method kame_hameha sekarang gagal dipanggil dan megalami error yang sebelumnya dimiliki oleh method kaio_ken.

Hal ini terjadi, karena saat ini, kita telah membuat sebuah object baru dari class JurusSakti (JurusSakti.new) yang kita masukkan ke dalam sebuah variable dengan nama jurus_pamungkas. Yang juga dapat disebut sebagai object jurus_pamungkas.

Dengan begini, maka akan sesuai dengan definisi dari sebuah instance method yang menyediakan fungsi untuk object.

Karena saat ini jurus_pamungkas adalah sebuah object dari class JurusSakti, maka jurus_pamungkas dapat menggunakan method yang dapat digunakan oleh object yaitu instance method, yang dalam kasus kita bernama method kaio_ken.

Maka dari itu, method kaio_ken kali ini, berhasil dipanggil.

Ringkasan

Contoh dari Class Method.

FILEjurus_sakti.rb
1
2
3
4
5
class JurusSakti
  def self.kame_hameha
    "Jurus dari Instance Method"
  end
end

Contoh dari Instance Method.

FILEjurus_sakti.rb
1
2
3
4
5
class JurusSakti
  def kaio_ken
    "Jurus dari Instance Method"
  end
end

Bahan bacaan lebih lengkap, dapat merujuk pada sumber yang saya sertakan pada referensi di bawah.

Kira-kira segini saja pembahasa kita mengenai perbedaan Class Method dengan Instance Method.

Mudah-mudahan bermanfaat buat teman-teman.

Terima kasih (^_^)v

Referensi

  1. RailsTips - Class and Instance Methods in Ruby
    Diakses tanggal: 2019/10/12


Penulis

bandithijo

BanditHijo adalah nama pena saya –meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Sistem operasi ini memberikan saya kebebasan untuk mengekspresikan ide-ide dalam membantu menyelesaikan pekerjaan saya sehari-hari.

- Rizqi Nur Assyaufi

038086bd42fac4db5229658509c7108a9fe65aea