unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Kelas

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 kelas Animal.
  • Metode ini dipanggil pada objek a dari kelas Animal.

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 dari Animal.

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 metode speak dari Animal.
  • Dog juga memiliki metode bark yang khusus untuk kelas Dog.

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 metode speak dari kelas induk (Animal), kemudian melanjutkan dengan perintah tambahan di dalam metode speak dari kelas Dog.

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 metode swim.
  • include Swimmable memasukkan metode swim ke dalam kelas Animal.

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 atribut name.

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 instance a dari kelas Animal.

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!

« Fungsi
Interface »