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:
class
diikuti dengan nama kelas (Animal
dalam 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:
speak
adalah metode instance yang didefinisikan di dalam kelasAnimal
.- Metode ini dipanggil pada objek
a
dari 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:
initialize
adalah metode konstruktor yang dipanggil ketika objek baru dibuat.@name
adalah 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.info
mendefinisikan metode kelas.- Metode kelas dipanggil pada kelas
Animal
secara 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:
Dog
mewarisi metodespeak
dariAnimal
.Dog
juga memiliki metodebark
yang 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:
super
memanggil metodespeak
dari kelas induk (Animal
), kemudian melanjutkan dengan perintah tambahan di dalam metodespeak
dari 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:
Swimmable
adalah modul yang mendefinisikan metodeswim
.include Swimmable
memasukkan metodeswim
ke 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 :name
otomatis 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_legs
adalah 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:
@name
adalah variabel instans yang hanya tersedia dalam instancea
dari 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!