Method - Ruby Programming
Di dalam sebuah class (bahasa pemrograman OOP) akan tersimpan banyak sekali method yang memiliki fungsi berbeda-beda sesuai dengan kebutuhan. Pada bahasa pemrograman Ruby, method ini dibedakan menjadi dua yaitu :- Class method
- Instant method
Mari kita bahas satu-satu (asseeekk!!) :D
Class method merupakan sebuah method yang dibuat didalam suatu class yang penamaan method nya tersebut menggunakan (self.) atau nama method itu sendiri. Contoh :
class Student
def initialize
@name = "Frank Lampard"
@address = "Chelsea"
end
def self.name # ini merupakan contoh class method menggunakan self
puts @name
end
def Student.address # class method menggunakan nama class itu sendiri
puts @address
end
end
Dengan menggunakan class method ini, kita dapat mengakses nya dengan cara yang lebih simpel, yaitu :
student_name = Student.name # Frank Lampard
student_address = Student.address # Chelsea
# setelah pemanggilan nama class nya langsung diikuti oleh nama method nya, tanpa harus memasukkan seluruh object yang terdapat di dalam class Student ke dalam variabel. Hasil dari code diatas adalah variabel student_name akan terisi otomatis oleh string "Frank Lampard" dan variabel student_address akan terisi otomatis oleh string "Chelsea"
Instant method merupakan sebuah method di dalam class yang dibuat tanpa menggunakan (self.) atau nama class itu sendiri, hanya menggunakan nama method itu sendiri saja. Contoh :
class Student
def initialize
@name = "Frank Lampard"
@address = "Chelsea"
end
def name # tanpa menggunakan (self.) atau nama class itu sendiri
puts @name
end
def address
puts @address
end
end
Pada saat kita ingin mengakses method yang telah dibuat di dalam class Student, kita wajib memasukkan membuat sebuah variabel baru yang akan digunakan untuk menampung method atau object-object yang dimiliki oleh class Student. Contoh :
std = Student.new
student_name = std.name # Frank Lampard
student_address = std.address # Chelsea
Sekian mengenai method, yaitu class method dan instant method.
Terima kasih,
Let's share :)
No comments:
Post a Comment