Menimbang dan melihat sudah tidak adanya lalu lintas data yang menuju ke page Groups dan 157, maka kedua halaman ini dengan berat hati harus kami take down untuk tujuan efisiensi. (bandithijo, 2019/10/11) ● Untuk semua artikel yang memberikan tautan ke repositori dotfiles saya di GitHub, saat ini sedang dalam proses perbaikan sehingga tidak dapat diakses. Mohon maaf atas ketidaknyamanan ini. (bandithijo, 2019/03/14) ●

Perbedaan Ruby Class Method dengan Instance Method

Ditulis: 2019/10/12 Diperbaharui: 2019/10/16
Rails Ruby Tips

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

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.

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.

class JurusSakti
  def self.kame_hameha
    "Jurus dari Instance Method"
  end
end

Contoh dari Instance Method.

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

logo_author

BanditHijo adalah nama pena saya – meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai GNU/Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Bukan karena hobi tapi karena saya perlu untuk menggunakannya. Hehe.

- Rizqi Nur Assyaufi