Study
Ruby

Module & Mixin di Ruby

Penjelasan

Module adalah kumpulan method/konstanta yang TIDAK bisa langsung di-instansiasi (tidak ada Module.new), tapi bisa "dicampurkan" (mixed in) ke class lain lewat include — method-method di dalam module itu jadi seolah-olah milik class tersebut. Ini jadi cara idiomatis Ruby berbagi perilaku antar class yang tidak berhubungan lewat inheritance, semacam pengganti multiple inheritance.

Contoh Konsep

module BisaTerbang
  def terbang
    "#{self.class} sedang terbang!"
  end
end

class Burung
  include BisaTerbang
end

class Pesawat
  include BisaTerbang
end

puts Burung.new.terbang  # Burung sedang terbang!
puts Pesawat.new.terbang # Pesawat sedang terbang!

Praktikum

Buat module BisaBerenang dengan method berenang yang mengembalikan "#{self.class} sedang berenang!". Buat class Ikan yang include module itu. Buat object Ikan dan tampilkan hasil berenang.

Editor Latihan

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

Tips

Module juga sering dipakai sebagai NAMESPACE untuk mengelompokkan class-class yang berhubungan (mis. module Payment; class CreditCard; end; end), fungsinya beda dari mixin — satu keyword module, dua kegunaan berbeda tergantung konteks pemakaiannya.