Kelas #
Dalam Ruby, kelas (class) adalah cetak biru untuk membuat objek. Kelas mendefinisikan struktur data dan perilaku objek dengan menyediakan metode dan atribut yang dapat digunakan oleh objek-objek tersebut. Ruby adalah bahasa pemrograman yang berorientasi objek, sehingga hampir segala sesuatu di Ruby adalah objek, termasuk kelas itu sendiri.
Mendefinisikan Kelas #
Untuk mendefinisikan kelas di Ruby, Anda menggunakan kata kunci class diikuti dengan nama kelas. Nama kelas biasanya menggunakan format CamelCase (huruf kapital di setiap awal kata).
Contoh:
class Animal
# Kode di sini
end
Penjelasan:
classdiikuti dengan nama kelas (Animaldalam contoh ini).- Kode yang berada di dalam blok kelas mendefinisikan metode dan atribut untuk kelas tersebut.
Menambahkan Metode dan Atribut #
a. Metode Instance
Metode instance adalah metode yang dapat dipanggil pada instance (objek) dari kelas tersebut.
Contoh:
class Animal
def speak
puts "I am an animal."
end
end
a = Animal.new
a.speak # Output: I am an animal.
Penjelasan:
speakadalah metode instance yang didefinisikan di dalam kelasAnimal.- Metode ini dipanggil pada objek
adari kelasAnimal.
b. Atribut Instance
Atribut instance adalah variabel yang menyimpan informasi khusus untuk setiap instance dari kelas.
Contoh:
class Animal
def initialize(name)
@name = name
end
def speak
puts "I am #{@name}."
end
end
a = Animal.new("Lion")
a.speak # Output: I am Lion.
Penjelasan:
initializeadalah metode konstruktor yang dipanggil ketika objek baru dibuat.@nameadalah variabel instans yang menyimpan nama dariAnimal.
Kelas dan Metode Kelas #
Metode kelas adalah metode yang dipanggil pada kelas itu sendiri, bukan pada instance dari kelas.
Contoh:
class Animal
def self.info
puts "Animals are living beings."
end
end
Animal.info # Output: Animals are living beings.
Penjelasan:
self.infomendefinisikan metode kelas.- Metode kelas dipanggil pada kelas
Animalsecara langsung, bukan pada instance-nya.
Inheritance (Pewarisan) #
Inheritance memungkinkan Anda untuk membuat kelas baru berdasarkan kelas yang sudah ada, yang disebut sebagai kelas induk. Kelas baru, yang disebut kelas anak, mewarisi atribut dan metode dari kelas induk.
Contoh:
class Animal
def speak
puts "I am an animal."
end
end
class Dog < Animal
def bark
puts "Woof!"
end
end
d = Dog.new
d.speak # Output: I am an animal.
d.bark # Output: Woof!
Penjelasan:
Dogmewarisi metodespeakdariAnimal.Dogjuga memiliki metodebarkyang khusus untuk kelasDog.
Superclass dan Subclass #
superclass adalah kelas induk dari kelas saat ini, dan subclass adalah kelas yang mewarisi dari kelas lain.
Contoh:
class Animal
def speak
puts "I am an animal."
end
end
class Dog < Animal
def speak
super
puts "Woof!"
end
end
d = Dog.new
d.speak
# Output:
# I am an animal.
# Woof!
Penjelasan:
supermemanggil metodespeakdari kelas induk (Animal), kemudian melanjutkan dengan perintah tambahan di dalam metodespeakdari kelasDog.
Modul dan Mixins #
Modul di Ruby adalah cara untuk mengelompokkan metode, konstanta, dan variabel yang dapat dibagikan di beberapa kelas. Modul tidak dapat diinstansiasi, tetapi dapat dimasukkan ke dalam kelas menggunakan include.
Contoh:
module Swimmable
def swim
puts "I can swim!"
end
end
class Animal
include Swimmable
end
a = Animal.new
a.swim # Output: I can swim!
Penjelasan:
Swimmableadalah modul yang mendefinisikan metodeswim.include Swimmablememasukkan metodeswimke dalam kelasAnimal.
Encapsulation #
Encapsulation mengacu pada menyembunyikan detail implementasi dari pengguna kelas. Di Ruby, ini dilakukan dengan menggunakan pengakses attr_reader, attr_writer, dan attr_accessor.
Contoh:
class Animal
attr_accessor :name
def initialize(name)
@name = name
end
end
a = Animal.new("Lion")
puts a.name # Output: Lion
a.name = "Tiger"
puts a.name # Output: Tiger
Penjelasan:
attr_accessor :nameotomatis membuat metode getter dan setter untuk atributname.
Class Variables dan Instance Variables #
- Class Variables: Digunakan untuk menyimpan data yang dibagikan di antara semua instance dari kelas. Mereka didefinisikan dengan
@@di depan nama variabel.
Contoh:
class Animal
@@number_of_legs = 4
def self.legs
@@number_of_legs
end
end
puts Animal.legs # Output: 4
Penjelasan:
-
@@number_of_legsadalah variabel kelas yang dapat diakses dari metode kelas. -
Instance Variables: Hanya tersedia dalam instance kelas tertentu dan diawali dengan
@.
Contoh:
class Animal
def initialize(name)
@name = name
end
def name
@name
end
end
a = Animal.new("Lion")
puts a.name # Output: Lion
Penjelasan:
@nameadalah variabel instans yang hanya tersedia dalam instanceadari kelasAnimal.
Metode dan Atribut Khusus #
initialize: Metode konstruktor yang dipanggil saat pembuatan objek baru.self: Mengacu pada instance saat ini dalam konteks metode instance atau kelas saat ini dalam konteks metode kelas.self.method_name: Mendefinisikan metode kelas.
Kesimpulan #
Kelas di Ruby adalah fondasi dari pemrograman berorientasi objek di Ruby. Mereka memungkinkan Anda untuk mendefinisikan struktur data dan perilaku untuk objek-objek yang akan Anda buat. Dengan memahami cara mendefinisikan dan menggunakan kelas, serta konsep pewarisan, enkapsulasi, dan penggunaan modul, Anda dapat menulis kode yang terorganisir dan mudah dipelihara. Jika Anda memiliki pertanyaan lebih lanjut atau membutuhkan klarifikasi, jangan ragu untuk bertanya!