Archive

Archive for the ‘Ruby’ Category

Sedikit tentang attr_accessor

February 6, 2010 1 comment

attr_accessor adalah method yang digunakan untuk proses set dan get dari accessor (pengakases variabel), Sesuai dengan Mantra dari DRY (Don’t Repeat Yourself),  dengan menggunakan method ini kita tidak usah repot menduplikasi method yang sama secara berulang-ulang hanya untuk men-set variabel  dari method initialize.

Pengetahuan tentang attr_accessor dibutuhkan karena adakalanya untuk suatu kebutuhan tertentu method ini tidak kita gunakan, untuk lebih jelasnya saya buat sebuah code sederhana yang lengkap tanpa menggunakan attr_accessor.


class Orang
    #attr_accessor :nama, :kelamin

    #attr_writer :nama
    #attr_reader :nama
    #attr_writer :kelamin
    #attr_reader :kelamin

	def initialize( aNama, aKelamin )
		@nama       = aNama
		@kelamin    = aKelamin
	end
	#set accessor untuk @nama
	def nama=( aNama )
		@nama = aNama
	end
        # get accessor untuk @nama
	def nama
		return @nama
	end
        # set accessor for @kelamin
	def kelamin=( aKelamin )
		@kelamin = aKelamin
	end
	# get accessor untuk @kelamin
	def kelamin
		return @kelamin
	end
end

t = Orang.new("Asep", "Lelaki tulen")

puts(t.nama)
puts(t.kelamin)

silahkan anda mencobanya dengan melakukan comment pada masing-masing. Saya masukan juga method attr_writer dan attr_reader yang dapat digunakan untuk set accessor dan get accessor instance variable.

class Orang
    attr_writer :nama
    attr_reader :nama
    attr_writer :kelamin
    attr_reader :kelamin
	def initialize( aNama, aKelamin )
		@nama       = aNama
		@kelamin    = aKelamin
	end
end

t = Orang.new("Asep", "Lelaki tulen")
puts(t.nama)
puts(t.kelamin)

kemudian coba code ini,


class Orang
    attr_accessor :nama, :kelamin
	def initialize( aNama, aKelamin )
		@nama       = aNama
		@kelamin    = aKelamin
	end
end

t = Orang.new("Asep", "Lelaki tulen")
puts(t.nama)
puts(t.kelamin)

Categories: Ruby Tags: ,

Belajar Polymorphysm dengan Ruby (I)

January 31, 2010 2 comments

Object = State + Behaviour

Bagi saya Ruby telah banyak membantu saya dalam memahami pemrograman berorientasi objek (object oriented programming). saya merasa sangat terbantu karena lebih mudah mencerna segala hal tentang pilar-pilar dalam OOP. Salahsatu pilar dari Pemrograman yang berorientasi Objek adalah Polymorphysm.

Polymorphysm secara harfiah adalah banyak bentuk, yaitu sebuah konsep penulisan kode program yang dapat diterapkan dalam banyak type class dalam class tersebut. selanjutnya untuk memahami pernyataan diatas akan terasa lebih asyik jika kita memuliskan programnya, sebelumnya saya mengambil contoh dari polymorphysm yang ditulis di sini dalam Java, tanpa bermaksud membandingkan, karena setiap bahasan memiliki keunggulan sendiri-sendiri.

class Penyanyi {

public void data() {

System.out.println("aku adalah penyanyi");

}
}

class Krisdayanti extends Penyanyi {

public void data() {

System.out.println("aku adalah krisdayanti");

}

}

class BungaCitraLestari extends Penyanyi {

public void data() {

System.out.println("aku adalah bunga citra lestari");

}

}

class Polymorphisme {

public static void main(String[] args) {

Penyanyi p;

Krisdayanti kd = new Krisdayanti();

BungaCitraLestari bcl = new BungaCitraLestari();

p = kd; p.data();

p = bcl; p.data();

}
}

sebelum saya menuliskannya dalam Ruby ada dua hal yang selalu saya terapkan ketika menulis code, yaitu  in Ruby everything is object, object = state + behaviour dan mantra dari  Pragmatic programmer yaitu Don’t Repeat Yourself(DRY), sekecil mungkin menghindari penulisan kode program secara berulang-ulang untuk suatu hal yang sama.

jika saya tulis ulang dalam Ruby adalah sebagai berikut :

class Penyanyi
    attr_accessor :nama_penyanyi
    def initialize(nama_penyanyi)
        @nama_penyanyi = nama_penyanyi
    end
end

class Identitas < Penyanyi
    def nama
       "Aku adalah #{@nama_penyanyi}"
    end
end

kumpulan_penyanyi = [Identitas.new("Krisdayanti"), Identitas.new("Bunga Citra Lestari")]

kumpulan_penyanyi.each do |penyanyi|
    puts penyanyi.nama
end

silahkan coba code di atas kemudian renungkan, sebelum kita membahasnya lebih jauh. silahkan lihat juga code saya di github

Categories: Ruby

Belajar Mencintai Ruby

December 9, 2009 2 comments

Setelah sekian lama berkelana dengan banyak bahasa pemrograman, mulai dari C, C++, C#,  java, dst… saya mulai menemukan kenyamanan ketika berkenalan dengan Ruby, diawali ketika membaca Foreword dari buku Programming Ruby   yang ditulis langsung oleh sang pembuaat  Yukihiro “Matz” Matsumoto, hal menarik yang diungkapkannya adalah bahwa kelahiran dari Ruby ini adalah karena mimpinya yang ingin membuat bahasa pemrograman yang attainable. sehingga ng0ding akan jadi kegiatan yang menyenangkan tanpa merasa dijejali dengan banyak aturan yang sebetulnya membatasi kreativitasnya.

walapun saya belum mendapatkan keidahan seperti apa yang diungkapkan oleh Matz tetapi saya merasa yakin bahwa bahasa script ini adalah bahasa yang cocok buat saya setalah selalu gagal dalam menyelami bahasa pemrograman yang lain, sampai kena justifikasi oleh kakak tingkat saya bahwa saya tidak akan berhasil dalam programming. saya ingin membuktikan bahwa saya juga bisa dengan bahasa Ruby tentunya.

sebagai contoh sederhana saya coba membandingkannya dengan Java untuk menuliskan hello world

import java.io.*;
public class Hello {
       public static void main ( String[] args){
             System.out.println ("Hello World!\n");
       }
}

bandingkan dengan yang ditulis dalam Ruby,

puts "Hello World!\n"

menurut saya simple dan menarik dan tampak lebih bersih tanpa banya semicolon sehingga ketika dikompile tidak ada lagi tek-tek bengek ngurusin semicolon. semoga saja semakin bersemangat untuk terus diselami.

Follow

Get every new post delivered to your Inbox.