Tuesday, August 27, 2013

Mixins Modules : Ruby Programming


Mixins Modules

Merupakan gabungan dari beberapa modules di dalam suatu module. Misalkan kita memiliki sebuah module yang didalamnya terdapat beberapa modules lagi. Karena module dapat menampung module juga, tidak hanya bisa menampung variabel, konstanta, method dan class saja.

Yang dimaksud dengan mixins modules adalah seperti contoh berikut ini :

module A
  module A1
    def A1a

    end
  end
  module A2
    def A2a

    end
  end
end

Module A diatas memiliki modules lain di dalamnya, itulah yang dimaksud dengan mixins modules.

Let's share :)

Modules : Ruby Programming


Modules - Ruby Programming

Merupakan tempat disatukannya berbagai macam method, class dan konstanta. Bertujuan agar kita tidak melakukan penulisan koding berulang-ulang, sehingga kita hanya perlu memanggil atau include module tersebut di dalam file. File yang memanggil module tersebut nantinya akan dapat memanggil apa saja yang terdapat di dalam module tersebut.

Cara pembuatan module tidak berbeda jauh dengan pembuatan class. Perbedaan hanya terdapat pada awalan deklarasi yaitu dengan menggunakan module bukan class. Contoh :

module Student
  statement1
  statement2
  ..........
end

Module konstanta diberi nama sesuai dengan class konstanta, yaitu dengan menggunakan huruf besar. Method-method didalamnya sama saja seperti kita membuat method di dalam sebuah class.

Untuk memanggil file module tersebut kita hanya perlu menggunakan perintah "require" kemudian diikuti oleh nama file module nya tersebut. Bisa dengan cara menambahkan ekstensi file nya ataupun tidak. Contoh :

require "Student.rb"
require "Teacher"

Kemudian untuk menambahkan method nya ke dalam suatu class bisa menggunakan perintah "include" dan diikuti oleh nama module nya saja. Contoh :

include "Student"

Pada penggunaannya, module tersebut tidak dapat dimasukkan ke dalam variabel object. Module ini dapat digunakan secara langsung tanpa harus dimasukkan ke dalam variabel terlebih dahulu. Contoh module student memiliki method study dan dipanggil dalam suatu method dalam class maka cara penggunaanya adalah :

puts Student::study

Kemudian jika kita ingin menjalankan method method yang terdapat di dalam module tersebut kita hanya perlu memanggil method tersebut secara langsung. Contoh :

Student.study

Susah susah gampang mengenai modules pada ruby ini. Jika memiliki sumber atau referensi lain silahkan berbagi disini.
Let's share :)

Unless Condition : Ruby Programming

Unless Condition - Ruby Programming

Merupakan salah satu bagian dari pembuatan kondisi juga dalam bahasa pemrograman Ruby. Unless ini akan menjalankan suatu kondisi yang kebalikannya (atau yang artinya : jika tidak).

Contoh kita memiliki variabel bernama x yang bernilai 1. Kemudian membuat sebuah kondisi dengan menggunakan unless, jika variabel x bernilai tidak lebih dari 2 maka tampilkan pesan "Nilai x lebih kecil dari 2". Dan jika x bernilai lebih besar dari dua maka tampilkan pesan "Nilai x lebih besar dari 2".

Berikut kode program nya :

x = 1

unless x > 2
  print "Nilai x lebih kecil dari 2"
else
  print "Nilai x lebih besar dari 2"
end

Simpel bukan?? hehe ..
Let's share :)

Switch Case Condition : Ruby Programming

Switch Case Condition - Ruby Programming

Merupakan salah satu bagian dalam bahasa pemrograman Ruby atau beberapa bahasa pemrograman lain yang digunakan untuk membandingkan suatu kondisi. Sebenarnya dalam hal fungsi sama saja seperti if else, akan tetapi dalam penggunaannya mungkin bisa lebih baik bila diterapkan dalam suatu kasus. Misalkan untuk menghindari nested if yang terlalu banyak.

Berikut merupakan contoh penggunaan switch case condition pada bahasa pemrograman Ruby :

name = "Didier Drogba"

case name
  when "Didier Drogba"
    print "Hello Legend!"
  when "Frank Lampard"
    print "Hello Super Frank"
  when "John Terry"
    print "Hello Captain"
  else
    print "Hello Chelsea Fans"
end

Pada coding diatas kita memiliki sebuah variabel bernama name yang berisi string Didier Drogba. Kemudian terdapat sebuah statement case yang dimana merupakan proses dibuatnya suatu perbandingan terhadap variabel name tadi. Berikutnya terdapat baris kode "when" yang menyatakan ketika string name tadi isi nya sama dengan string yang disebutkan pada when disini. Jika kondisi bernilai benar maka block kode yang terdapat didalamnya lah yang akan di eksekusi.

Jika semua kondisi yang terdapat pada when tidak ada yang sesuai dengan string yang terdapat di dalam variabel name maka statement yang terdapat pada block else lah yang akan dijalankan.

Let's share :)

Monday, August 26, 2013

If Else Condition : Ruby Programming

If Else Condition - Ruby Programming

Pada setiap bahasa pemrograman pasti akan selalu ditemui pembuatan kondisi atau suatu keputusan. Karena aplikasi atau program merupakan kumpulan kondisi-kondisi atau keputusan-keputusan yang digabungkan untuk mencapai suatu tujuan.

Yang akan dibahas kali ini adalah mengenai penggunaan kondisi If - Else. Kondisi If - Else ini tidak akan asing lagi bagi para programmer karena dimanapun pasti ditemui, mungkin yang berbeda adalah pada penulisan kode program nya saja, secara umum sama saja.

Berikut contoh penggunaan kondisi If :

if nilai == 100
  print "Selamat, nilai Anda sempurna"
end

Jika variabel nilai lebih dari 100 maka akan menjalankan statement yg berada di dalam block if tersebut yaitu menampilkan teks "Selamat, nilai Anda sempurna" ke dalam layar. Simpel sekali.

Selanjutnya ada kondisi Else, berikut contohnya :

if nilai == 100
  print "Selamat, nilai Anda sempurna"
else
  print "Maaf, nilai Anda tidak sempurna"
end

Pada coding diatas terdapat sebuah kondisi baru yaitu else, yang dimana apabila kondisi yg terdapat pada if bernilai salah maka apa yang terdapat pada block else yang akan dieksekusi, yaitu menampilkan teks "Maaf, nilai Anda tidak sempurna".

Selain if dan else, ada juga kondisi else if. Yaitu apabila kita memiliki kondisi lebih dari satu. Else if ini disingkat menjadi elsif. Contoh :

if nilai == 100
  print "Selamat, nilai Anda sempurna"
elsif nilai > 80
  print "Selamat, nilai Anda cukup sempurna"
else
  print "Maaf, nilai Anda tidak sempurna"
end

Jika nilai bukan sama dengan 100, maka akan di cek pada kondisi kedua yaitu apakah nilai lebih besar dari 80? jika iya, maka akan dijalankan statement yg terdapat pada block elsif tersebut.

Kondisi if else pada bahasa pemrograman Ruby ini memiliki kelebihan dibanding penggunaan if else pada bahasa pemrograman lain, yaitu dalam hal penulisan koding. Pada bahasa pemrograman Ruby dapat ditulis seperti berikut :

name = "Lampard"
print "Hello" if name == "Lampard" # kondisi if ditulis di akhir 

Kesimpulannya, kondisi if else ini dibuat untuk mengambil suatu keputusan pada sebuah aplikasi atau program. Bila kita memiliki satu kondisi cukup gunakan if saja, bila memiliki dua kondisi bisa menggunakan if - else atau if - elsif. Kemudian jika semua kondisi bernilai salah, masukkan statement di dalam block else.

Let's share :)

Overloading : Ruby Programming

Overloading - Ruby Programming

Merupakan method dengan nama yang sama dengan method lain pada suatu class tetap dengan parameter berbeda. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama.

Berikut merupakan contoh overloading pada Ruby :

class Hello
  def say_hello
    puts "Hello there"
  end

  def say_hello(n)
    puts "Hello, #{n}"
  end
end

Contoh diatas merupakan contoh overloading method yang terdapat pada class yang sama. Sehingga jika kita hanya memanggil method say_hello saja (tanpa satu parameter) maka akan menampilkan hasil "Hello there" saja. Berbeda lagi jika kita memanggil method say_hello akan tetapi dengan menambahkan sebuah parameter. Contoh :

hello = Hello.new
hello.say_hello("Lampard") # Hello, Lampard

Maka akan menjalankan method say_hello yang memiliki sebuah parameter.

Overloading ini pun berlaku juga untuk suatu class yang merupakan keturunan dari class lain. Inti dari overloading ini adalah setiap pemanggilan suatu method akan selalu disesuaikan dengan kesamaannya. Method yang sama dan sesuai parameter nya maka akan dijalankan.

Begitulah sedikit penjelasan mengenai Overloading pada bahasa pemrograman ruby.
Let's share :)

Overriding : Ruby Programming

Overriding - Ruby Programming

Merupakan sebuah metode yang digunakan dalam bahasa pemrograman OOP dalam hal pemanggilan method dari sebuah class yang memiliki keturunan dari parent nya (membingungkan yah bahasanya -__-). Ok, langsung saja kita buat sebuah contoh. Kita memiliki dua buah class, yang pertama merupakan class parent dan satu lagi class children yang merupakan keturunan dari class parent. Langsung lihat saja contohnya dibawah ini :

class Parent
  def say_hello
    puts "hello from parent"
  end
end 

class Children < Parent
  def say_hello
    puts "holla from children"
  end
end

Kemudian kita lakukan percobaan seperti berikut ini :

child = Children.new
child.say_hello # holla from children

Disana terdapat dua buah method dengan nama yang sama, yaitu method "say_hello". class Parent dan class Children memiliki method tersebut. Akan tetapi mengapa method "say_hello" milik class Children yang dieksekusi ? kemudian class Children merupakan keturunan dari class Parent, bagaimana tuh ?

Kita tidak perlu bingung, karena alur kerja interpreter pada proses ini adalah dengan cara mencari method tersebut pertama kali di dalam class yang dijadikan object (yaitu class Children), jika method tersebut dimiliki oleh class Children maka method tersebut lah yang dieksekusi.

Nah, jika method "say_hello" tersebut tidak ditemukan di dalam class Children maka interpreter akan mengecek apakah class Children tersebut merupakan keturunan dari class lain, jika benar maka method tersebut akan dicari di dalam class parent nya. Contoh disini maka akan dicari di dalam class Parent, jika method ditemukan maka method "say_hello" yang berada di class Parent yang akan dieksekusi.

Jika masih tidak ditemukan saja, maka interpreter akan mengecek kembali apakah class Parent tersebut merupakan keturunan dari class lain. Jika tidak maka yaa akan ditampilkan pesan bahwa method tidak dikenal.

Begitulah singkat mengenai tutorial Overriding pada Ruby.
Let's share :)

Encapsulation : Ruby Programming


Encapsulation - Ruby Programming

Langsung saja kita lihat contoh enkapsulasi dibawah ini :

print "I, I cant get these memories out of my mind\n"
print "And some kind of madness\n"
print "Has started to evolve\n"
print "I, I tried so hard to let you go\n"
print "But some kind of madness\n"

dan sekarang dengan menggunakan metode enkapsulasi

def MuseMadnessLyrics() do
  print "I, I cant get these memories out of my mind\n"
  print "And some kind of madness\n"
  print "Has started to evolve\n"
  print "I, I tried so hard to let you go\n"
  print "But some kind of madness\n"
end

Contoh diatas adalah detail dari lyrics muse madness telah dipindahkan ke suatu tempat lain yg dinamakan dengan encapsulation (enkapsulasi). file enkapsulasi tersebut dapat disimpan didalam file yg berbeda atau dimanapun yang terkoneksi dengan internet yg dapat diakses. Hal terpenting disini adalah sekarang kita dapat memanggil method MuseMadnessLyrics bila kita membutuhkannya dan akan selalu memberikan hasil yang sama. Tentu saja kita dapat merubah isi dari enkapsulasi tersebut sesuai dengan kebutuhan codes kita. Kesimpulannya yaa mungkin membungkus beberapa variabel, statement dan lain sebagainya (seperti pembuatan class dan method). Namanya juga Enkapsulasi ibarat dimasukkan ke dalam kapsul lah klo obat obatan :P

Bagi yg tau lebih banyak silahkan share pengetahuannya disini.
Let's share :)

Friday, August 23, 2013

Inheritance : Ruby Programming

Inheritance - Ruby Programming

Merupakan pewarisan method method yang dimiliki sebuah super class untuk sub-class yang meng extends nya. Inheritance pada bahasa pemrograman ruby ini mudah saja digunakannya, yaitu hanya dengan cara menggunakan ( < ) dan panggil nama super class nya. Contoh :

class Hewan
  def bernafas
    puts "hewan bernafas"
  end
  def berjalan
    puts "hewan berjalan"
  end
end

class Doggy < Hewan # class Doggy merupakan sub class dari class Hewan
  def bersuara
    puts "Guk guk guk!"
  end
end

hewan = Doggy.new
hewan.bersuara # Guk guk guk!
hewan.bernafas # hewan bernafas
hewan.berjalan # hewan berjalan


Mengapa kita bisa memanggil method bernafas dan berjalan yg terdapat di class Hewan ? padahal kita memanggilnya melalui class Doggy. Itu dikarenakan class Doggy diwarisi method method yang terdapat di dalam class Hewan.

Begitu sih simpel nya mengenai Inheritance :P

Bagi yg memiliki referensi atau penjelasan lebih lengkapnya, silahkan berbagi disini.

Let's share :)

Method : Ruby Programming

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 :)

Constructor : Ruby Programming

Constructor - Ruby Programming

Constructor merupakan salah satu bagian dari suatu class yang akan dijalankan pada saat pertama kali class itu dipanggil. Kita dapat menambahkan pengaturan-pengaturan default suatu class dengan cara menambahkan code pada constructor class tersebut.

Pada bahasa pemrograman Ruby kita bisa membuat constructor dengan menggunakan method initialize. Contoh :

class Student
  def initialize

  end
end

# contoh diatas adalah kita membuat sebuah constructor kosong, karena tanpa pengaturan didalamnya. Jika ingin melakukan pengaturan di dalamnya, tinggal masukkan saja codes didalamnya. Simpel kan?? hehe

Maksud dengan dibuatkannya constructor tersebut adalah agar pada saat kita melakukan pemanggilan terhadap suatu class. Contoh :

std = Student.new

maka variabel std yg berisi object class Student tersebut akan secara otomatis menjalankan apa yg berada di dalam block constructor.

Selanjutnya kita akan mencoba membuat sebuah constructor dengan sebuah parameter. Caranya mudah saja, ikuti contoh dibawah ini :

class Student
  def initialize(n)
    @name = n
  end
end

# contoh diatas adalah kita membuat sebuah constructor dengan sebuah parameter n, yg dimana apabila kita memasukkan sebuah parameter pada saat pemanggilan class Student akan dimasukkan ke dalam variabel.

Sehingga apabila kita memanggil class Student dan memberikannya sebuah parameter, secara otomatis parameter tersebut akan disimpan dan dimasukkan ke dalam variabel @name (instance variabel = dikenal oleh seluruh method yg terdapat pada class dimana variabel @name itu dibuat).
Contoh :

std = Student.new("Frank Lampard")

# maka secara otomatis parameter yang kita masukkan yaitu string "Frank Lampard" akan disimpan ke dalam variabel @name.

Itulah sedikit pembahasan mengenai constructor, simpel kan ?? hehhe..
Jangan lupa untuk terus berbagi ilmunya..

Let's share :)

Accessor : Ruby Programming

Accessor - Ruby Programming

Pada saat kita membuat sebuah class pada Ruby, sudah dipastikan di dalamnya akan dibuat berbagai macam method yang memiliki fungsi bertujuan berbeda.

Method yang paling dasar / wajib ada pada bahasa pemrograman Ruby adalah membuat method setter dan method getter. Kedua method tersebut termasuk ke dalam accessor. Ok sekarang kita bahas terlebih dahulu apa itu setter dan apa itu getter :)

Setter merupakan method yang digunakan untuk menyimpan data ke dalam suatu variabel. Contoh :

def name = (n)
  name = n
end

# maksud dari setter tersebut adalah karena digunakan untuk melakukan setting pada suatu variabel, semacam write / menuliskan isi inputan ke dalam variabel yang dibuat pada sebuah class

Getter merupakan method yang digunakan untuk mengambil / mengakses data yang terdapat di dalam suatu variabel di dalam class. Contoh :

def name
  name
end

# maksud dari getter tersebut adalah karena digunakan untuk mengambil atau mengakses data yang berada di dalam suatu variabel di dalam class

Sekarang kita buat sebuah contoh dengan membuat sebuah class yang didalamnya perlu dimuat berbagai informasi siswa. Pada class siswa tersebut kita akan membutuhkan informasi seperti nis, nama, alamat, tanggal lahir, gender, dll.

Melihat kasus diatas, itu berarti kita perlu membuat sebuah setter dan getter untuk masing-masing variabel, benar begitu kan??? Ya benar, akan tetapi jika kita membuat setter dan getter secara manual di dalam class tersebut akan membutuhkan waktu dan menurut saya itu malah buang buang waktu -____-
Jika saat ini data nya cuma ada 5 tidak masalah, akan tetapi jika datanya ada 50 atau 100 bagaimana?? wasting time bukan?? -_____-

Nah, untuk mengatasi dan mengefektifkan hal tersebut kita bisa menggunakan satu baris code saja, yaitu dengan menggunakan accessor karena kedua nya (setter dan getter) termasuk ke dalam accessor. Contoh :

class Student
  attr_accessor :name
end

# satu baris code tersebut secara otomatis akan membentuk setter dan getter. Mudah dan efektif bukan ? Pastinya!!! :D

Kemudian, jika kita hanya membutuhkan setter atau getter saja bisa membuatnya dengan menggunakan satu baris code ini :

class Student
  attr_writer :name
end

# untuk membuat sebuah setter

class Student
  attr_reader :name
end

# untuk membuat sebuah getter

Sekian pembahasan mengenai accessor. :)

Referensi :
- Accessor : http://ruby-doc.org/core-2.0/Module.html#method-i-attr_accessor
- Setter : http://ruby-doc.org/core-2.0/Module.html#method-i-attr_writer
- Getter : http://ruby-doc.org/core-2.0/Module.html#method-i-attr_reader

Let's share :)

Variabel : Ruby Programming

Variabel - Ruby Programming 

Variabel merupakan tempat penampungan atau penyimpanan data sementara, yang artinya data yang berada di dalam variabel tersebut dapat berubah-ubah. Contoh pembuatan variabel :

name = "Frank Lampard"

# variabel name akan secara otomatis bertipe string, karena menyimpan kumpulan karakter huruf.

number = 8

# variabel number akan secara otomatis bertipe integer, karena menyimpan data berupa bilangan bulat

shoot_accuracy = 99.5

# variabel shoot_accuracy akan secara otomatis bertipe float, karena menyimpan data berupa bilangan desimal

Bagi yang belum mengerti mengenai tipe data, bisa membaca postingan saya sebelumnya yang membahas tentang tipe data (baru dua sih :P) :
- Integer
Float

Ok mari kita lanjut. :)

Varibel ini dibagi menjadi beberapa tipe, diantaranya :
- Instance Variabel
- Class Variabel
- Global Variabel

Instance Variabel merupakan sebuah variabel yang penamaannya diawali dengan sebuah karakter @. Variabel ini hanya dapat diakses atau dikenal oleh method method yang terdapat pada class yang sama, dan tidak dapat diakses oleh method yang berada di class lain. Contoh :

@name = "Frank Lampard"

# variabel tersebut hanya dapat diakses oleh method-method yang berada di dalam class yang sama

Class Variabel merupakan sebuah variabel yang penamaannya diawali oleh dua buah karakter @. Variabel ini dapat diakses oleh method manapun yang berada pada suatu aplikasi, meskipun berada pada class yang berbeda. Satu tingkat diatas Instance Variabel. Contoh :

@@name = "Frank Lampard"

# variabel tersebut dapat diakses oleh method-method yang berada di class lain dalam suatu aplikasi.

Global Variabel merupakan sebuah variabel yang penamaannya diawali oleh sebuah karakter $. Variabel ini jarang sekali digunakan karena jika kita menggunakan variabel ini maka akan dikenal di seluruh aplikasi ruby yang kita buat. Variabel ini disimpan ke dalam sistem komputer kita. Contoh kita mempunyai aplikasi A dan aplikasi B, kemudian kita deklarasi sebuah variabel global di dalam aplikasi A, aplikasi B akan dapat mengakses variabel global yang dibuat di aplikasi A tersebut. Contoh :

$name = "Frank Lampard"

# variabel tersebut dapat diakses oleh seluruh method yang berada di dalam aplikasi yang kita buat di dalam komputer yang sama (menyimpan ke dalam sistem komputer)

Sekian mengenai macam-macam variable.

Terima kasih.
Let's share :)

Tipe data Time : Ruby Programming

Time - Ruby Programing

Merupakan sebuah tipe data yang dapat digunakan untuk menyimpan data berupa satuan tanggal dan waktu.

Membuat sebuah variabel Time
Untuk membuat sebuah variabel time, kita hanya perlu menggunakan Time.new yang akan menghasilkan sebuah nilai berisi waktu pada saat pembuatan variabel tersebut dilakukan. Contoh :

now = Time.new atau now = Time.now

Kita juga dapat menambahkan pengaturan lainnya seperti menentukan tahun, bulan, tanggal, waktu, zona, dan lain lain. Struktur nya adalah seperti berikut ini :

Time.new(year, month, day, hour, minute, second, zone)

Sehingga kita dapat melakukan seperti berikut :

now = Time.new(2002,10,31,2,2,2,"+07:00")


Kita juga bisa menggunakan method Time.at() dalam pengisian variabel time
contoh :
now = Time.at(628232400)
Untuk mendapatkan nilai second nya tersebut kita bisa mendapatkannya dengan cara :
now = Time.new
now = Time.at(now.to_i)
Singkatnya :
now = Time.at(Time.new.to_i)


Untuk cek hari apa ini, kita dapat melakukan pengecekkannya dengan memasukkan nama hari tersebut. Contoh :
now.monday? #=> jika hari ini merupakan hari senin maka akan mengembalikan nilai true . jika salah false

Untuk mendapatkan nilai tahun sekarang, kita hanya perlu menggunakan method .year. Contoh :
now.year #=> 2013

Untuk mendapatkan informasi apakah sekarang merupakan daylight saving (siang / malam mungkin) -_-
contoh :
now.dst? #=> false jika time masih menunjukkan siang hari .. dan true pada malam hari .. iya kah ? :P

Untuk mendapatkan hari satu tahun yg akan datang . gunakan method ini
now + (60*60*24*365)


Untuk mendapatkan nilai second pada suatu tanggal . hanya perlu menggunakan to_i (konfersi ke integer)
now.to_i

Kita juga dapat membandingkan dua buah tanggal menggunakan perbandingan persamaan (==), lebih kecil (<) dan lebih besar (>)

Membuat sebuah kondisi antara dua buah tanggal ..
contoh :
year1 = Time.new(2010)
year2 = Time.new(2011)
Time.new(2010,10,31).between?(year1,year2) #=> true .. karena tanggal 31 Oktober 2010 berada diantara 2010 dan 2011


Untuk mendapatkan tanggal dan hari berdasarkan local suatu posisi, gunakan local. Contoh :
now = Time.local(2010) #=> akan diisi dengan akhiran sesuai dengan local lokasi time itu dibuat . indonesia +0700
Untuk yg bukan local, bisa gunakan utc atau gm..
contoh :
now = Time.gm(2010) atau Time.utc(2010)

Untuk mendapatkan tanggal hari berikutnya
t = Time.now
t + (60 * 60 * 24) #=> akan menghasilkan tanggal untuk hari berikutnya

Time juga dapat di kurangi . contoh :
t = Time.now
t2 = t + 2592000 (satu bulan)
t2 - t (akan menghasilkan 2592000)
t2 - 2592000 (akan kembali ke bulan sebelumnya)


Kita juga dapat membandingkan dua buah time, untuk mendapatkan nilai 1 (jika A > B), -1 atau nol (jika sama)

Untuk menampilkan sebuah tanggal dengan format tertentu bisa menggunakan asctime dan ctime
contoh :
Time.now.asctime #=> "Wed Apr 9 08:56:03 2003"
Time.now.ctime #=> "Wed Apr 9 08:56:03 2003"

Untuk mendapatkan nilai tanggal berapa sekarang, bisa menggunakan method .day
Time.now.day
t.day

Untuk mendapatkan zone time.
time.zone

Untuk membandingkan dua buah tanggal apakah sama atau tidak, bisa menggunakan eql?
contoh :
time1 = Time.new(2010)
time2 = Time.new(2010)
time1.eql?(time2) #=> akan menghasilkan nilai true karena time1 dan time2 adalah sama atau equal


Untuk mengecek apakah time tersebut merupakan gmt kita dapat menggunakan .gmt?
t = Time.local(2010,1,1,20,15,1)
t.gmt? #=> false karena merupakan time local
y = t.getgm #=> untuk mendapatkan nilai gmt nya .. 
y.gmt? #=> true karena y diisi dengan time gmt dari t
t == y #=> true karena t dan y sama meskipun isi nya berbeda . secara waktu dunia itu sama ..

Untuk konfersi dari gmt ke local, bisa menggunakan .getlocal
Contoh :
time_gmt = time_gmt.getlocal

UTC dan GMT sama saja, gunakan gmt? dan getgm

Untuk mengecek berapa banyak perbedaan antara waktu gmt dan local bisa menggunakan gmt_offset
time.gmt_offset

Untuk mendapatkan gmt time atau utc time bisa menggunakan .gmtime atau .utc
time.gmtime
time.utc

Untuk mendapatkan jam, bisa menggunakan .hour
time = Time.now
time.hour

Untuk konfersi time ke dalam bentuk string, bisa menggunakan .to_s
time = Time.now
time.to_s

Untuk mendapatkan menit, bisa menggunakan .min
time = Time.now
time.min

Untuk mendapatkan bulan, bisa menggunakan .mon atau .month
time = Time.now
time.mon
time.month

Konfersi time ke dalam array, bisa menggunakan .to_a
time = Time.now
time.to_a #=> [1, 36, 8, 19, 11, 2007, 1, 323, false, "CST"]
[sec, min, hour, day, month, year, wday, yday, isdst, zone]

Untuk mendapatkan hari keberapa dalam suatu tahun, bisa menggunakan .yday
Contoh :
time = Time.now
time.yday

Sekian mengenai tipe data Time pada bahasa pemrograman Ruby.

Let's share :)

Tipe data Hash : Ruby Programming

Hash - Ruby Programming

Hash merupakan sebuah kamus seperti koleksi beberapa kunci unik dan isinya, juga biasa dipanggil asosiatif array. Hampir sama seperti array, array menggunakan integer sebagai pengurutan sequence nya, hash memperbolehkan kita menggunakan object apapun sebagai index sequence nya. Kemudian perbedaan yg kedua adalah, pada saat pembuatan elemen hash digunakan dua buah kurung kurawal ( { } ), berbeda dengan array yg menggunakan kurung siku ( [ ] ).

array : grade[1]
hash : grade["Jane Doe"]

testing = Hash.new # membuat sebuah variabel bertipe data hash
testing ["Block1] = "Test" # memasukkan nilai ke dalam variabel hash testing dalam sequence bernama "Block1" diisi dengan string "Test"

Ya, hash ini seperti array akan tetapi penamaan index nya bisa sesuai dengan yang kita inginkan. Berbeda dengan array yang penamaan index nya secara default akan berupa bilangan integer (dari 0 sampai akhir sequence).

Untuk pembuatan hash bisa dengan berbagai cara. Lihat contoh dibawah ini :

grades = {"Frank"=>100, "Lampard"=>90}
grades = {:Frank=>100, :Lampard=>90}
grades = {Frank:100, Lampard:90}
# ketiga nya sama saja yaitu memasukkan nilai ke dalam key-key tertentu.

Jadi pada hash itu akan terdapat sebuah isi yg berpasang-pasangan, yaitu Key dan Value. Key pada contoh diatas adalah Frank dan Lampard, Value nya adalah 100 dan 90.

Untuk mengakses isi hash tersebut mudah saja caranya. Kita dapat memanggilnya sama seperti kita mengakses isi dari sebuah array yaitu dengan menggunakan nama variabel + kurung siku ( [ ] ). Contoh :

grades["Frank"] # 100 jika key berupa string
grades[:Frank] # 100 jika key berupa symbol

Begitulah mengenai Hash pada bahasa pemrograman Ruby.

Let's share :)

Tipe data Array : Ruby Programming

Array - Ruby Programming

Array merupakan sebuah tipe data yang digunakan suatu variable untuk menampung berbagai macam inputan, yang disimpan seperti layaknya block-block. Array tersebut memiliki sequence atau urutan untuk setiap data yang dimasukkan kedalamnya (dimulai dari urutan ke - 0). Ciri ciri array adalah diapit oleh dua buah kurung siku ( [ ] ). Berikut merupakan contoh array :

name = ["Frank Lampard", 8, "Midfielder", "Legend"]

# variabel name diatas merupakan sebuah variabel dengan tipe data array, karena isi dari variabel tersebut diapit oleh dua buah kurung siku. Di dalam kurung siku tersebut kita bebas memasukkan apapun inputannya, bisa berupa String, Integer, Float dan lain sebagainya.

Membuat sebuah array kosong ke dalam suatu variabel adalah dengan cara seperti berikut.
name = Array.new # [ ]

Membuat sebuah array dengan jumlah block sesuai dengan kebutuhan (contoh 3 block kosong).
name = Array.new(3) # [nil, nil, nil]

Membuat sebuah array dengan jumlah block sesuai dengan kebutuhan beserta isi nya.
name = Array.new(3, true) # [true, true ,true]

Membuat sebuah array dengan jumlah block sesuai dengan kebutuhan beserta isi HASH, string atau lainnya.
name = Array.new(4){Hash.new} # [{},{},{},{}]

Membuat array menggunakan method Array()
name = Array({:a=>"a", :b=>"b"}) # [[:a,"a"],[:b,"b"]]

MENGAKSES ISI ARRAY
Elemen array dapat diakses dengan memanggil nama variabel array dan diakhiri dengan kurung siku ( [] ). Jika ingin memanggil spesifik sebuah block urutan tertentu, masukkanlah sequence nya di antara dua buah kurung siku. Contoh :

arr = [1, 2, 3, 4, 5, 6]
arr[2] # 3 mengambil elemen array urutan ke 2 yaitu 3
arr[100] # nil mengambil elemen array urutan ke 100 yaitu 99 (tidak ada)
arr[-3] # 4 mengambil elemen array urutan ke 3 dari akhir
arr[2,3] # [3, 4, 5] mengambil elemen array urutan ke 2 yaitu 3 sebanyak 3 elemen
arr[1..4] # [2, 3, 4, 5] mengambil elemen array urutan ke 1 yaitu 2 sampai array urutan ke 4 yaitu 5

Kita juga dapat mengakses isi elemen array dengan menggunakan method at(num). Contoh :
arr.at(0) # 1

Kita juga dapat melakukan pengecekan terhadap array apakah terdapat error atau tidak dengan menggunakan method fetch. Contoh :
arr = ['a', 'b', 'c', 'd', 'e', 'f']
arr.fetch(100) # IndexError: index 100 outside of array bounds : -6...6
arr.fetch(100, "oops") # "oops" menampilkan pesan buatan sendiri


Mengakses elemen array dengan menggunakan method first dan last
contoh :
arr.first #=> 1
arr.last #=> 6


Mengakses beberapa elemen dari urutan paling depan hanya dengan menggunakan method take
contoh :
arr.take(3) #=> [1, 2, 3]

Method drop melakukan hal yang berlawanan dengan method take karena method drop ini akan mengakses elemen setelah beberapa elemen yang di drop
contoh :
arr.drop(3) #=> [4, 5, 6]


MEMPEROLEH INFORMASI TENTANG ARRAY
array mengecek panjang mereka sendiri setiap saat. untuk mendapatkan informasi tentang berapa banyak elemen yang berada didalamnya, gunakan length , count atau size
contoh :
browsers = ['Chrome', 'Firefox', 'Safari', 'Opera', 'IE']
browsers.length #=> 5
browsers.count #=> 5


Melakukan pengecekan apakah terdapat array yang kosong
contoh :
browsers.empty? #=> false , karena semua array telah terisi , tidak ada array yg kosong


Melakukan pengecekan apakah terdapat elemen dengan nama yg sesuai dengan yg dicari
contoh :
browsers.include?('Konqueror') #=> false, karena tidak terdapat elemen array dengan isi Konqueror


MENAMBAHKAN ITEM ARRAY
Menambahkan ke dalam elemen array dapat dilakukan dengan cara menggunakan push atau <<
akan ditambahkan di akhir
contoh :
arr = [1, 2, 3, 4]
arr.push(5) #=> [1, 2, 3, 4, 5]
arr << 6 #=> [1, 2, 3, 4, 5, 6]

Menambahkan ke dalam elemen array dapat dilakukan juga dengan cara menggunakan unshift
cara ini akan menambahkan item di awal pada elemen array
contoh :
arr.unshift(0) #=> [0, 1, 2, 3, 4, 5, 6]

Menambahkan ke dalam elemen array dapat dilakukan juga dengan cara menggunakan insert
cara ini akan menambahkan item di urutan array yg kita inginkan
contoh :
arr.insert(3,'apple') #=> [0, 1, 2, 'apple', 3, 4, 5, 6) menambahkan item pada urutan array ke 3

Dengan menggunakan insert itu kita dapat menambahkan nilai yg lebih dari satu
contoh :
arr.insert(3,'orange','pear','grapefruit') #=> [0, 1, 2, "orange", "pear", "grapefruit", 3, 4 ,5 , 6]

MENGHAPUS ITEM ARRAY
Dengan menggunakan method pop, kita dapat menghapus item array yg berada di urutan paling akhir
contoh :
arr = [1, 2, 3, 4, 5, 6]
arr.pop #=> 6
arr #=> [1, 2, 3, 4, 5]

Dengan menggunakan method shift, kita dapat menerima dan menghapus item yg terdapat pada urutan pertama dalam array
contoh : 
arr.shift #=> 1
arr #=> [2, 3, 4, 5]

Dengan menggunakan method delete_at, kita dapat menghapus item array sesuai dengan urutannya
contoh : 
arr.delete_at(2) #=> 4
arr #=> [2, 3, 5]

Dengan menggunakan method delete, kita dapat menghapus item array yang memiliki nilai sama dengan yang disebutkan di dalam method delete()
contoh :
arr = [1, 2, 2, 3]
arr.delete(2) #=> 2
arr #=> [1, 3]

Dengan menggunakan method compact, kita dapat menghilangkan item array yg tidak berisi atau nil
contoh :
arr = ['foo', 0, nil, 'bar', 7, 'bar', nil]
arr.compact #=> ['foo', 0, 'bar', 7, 'baz'] menghilangkan item yang tidak berisi atau nil
arr = ['foo', 0, nil, 'bar', 7, 'baz', nil] pada saat tidak menggunakan compact maka akan dikembalikan seperti awal . untuk membuatnya menjadi tetap menghilangkan item yang tidak berisi atau nil menggunakan compact! (paksa)
arr.compact! ['foo', 0, 'bar', 7, 'baz']

Dengan menggunakan method uniq, kita dapat menghilangkan item yang bernilai sama pada elemen array
contoh : 
arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556]
arr.uniq #=> [2, 5, 6, 556, 8, 9, 0, 123] hanya mengambil salah satu dan menghilangkan sisa yg lainnya

ITERATING ARRAY
Array memiliki method each, yang membuat elemen mana yg harus di iterasi dan bagaimana.
catatan bahwa operasi ini tidak menyebabkan perubahan pada item elemen array
contoh :
arr [1, 2, 3, 4,5]
arr.each {|a| print a -= 10, " "} #=> |a| adalah dimana a sama dengan array urutan ke -10 berarti dimulai dengan -9 dan kemudian diberikan spasi pada saat ditampilkan (print)
# prints: -9 -8 -7 -6 -5
#=> [1, 2, 3, 4, 5] tidak menyebabkan perubahan pada item elemen array

Iterator lainnya adalah reverse_each (membalikkan urutan)
contoh :
words = %w[first second third fourth fifth sixth]
str = ""
words.reverse_each{|word| str += "#{word} "} #=> |word| adalah dimana str diisi dengan word yang telah dibalikkan urutannya
p str #=> "sixth fifth fourth third second first "

Iterator lain adalah map (membuat sebuah array berdasarkan original array akan tetapi dengan nilai yg berbeda berdasarkan block yang ditambahkan 
contoh :
arr.map {|a| 2*a}  #=> [2, 4, 6, 8 , 10] dimana a sama dengan a x 2
arr                #=> [1, 2, 3, 4, 5]
arr.map!{|a| a**2} #=> [1, 4, 9 , 16, 25] nilai elemen array di buat fix . menjadi berubah 
arr                #=> [1, 4, 9 , 16, 25]

MEMILIH ITEM DARI ARRAY
Elemen yg terdapat pada array dapat dipilih sesuai dengan kriteria yang telah di definisikan
non-destructive selection -> yang tidak merubah isi array
diantaranya terdapat : select, reject, drop_while
contoh :
arr = [1, 2, 3, 4, 5, 6]
arr.select {|a| a > 3} #=> [4, 5, 6] memilih item yang memiliki nilai lebih dari 3
arr.reject {|a| a < 3} #=> [3, 4, 5, 6] memilih seluruh item akan tetapi tidak memanggil item yang nilainya lebih kecil dari 3
arr.drop_while{|a| a < 4} #=> [4, 5, 6] memilih seluruh item akan tetapi drop dimana item lebih kecil dari 4
arr #=> [1, 2, 3, 4, 5, 6] isi dari elemen array tetap , tidak berubah . karena non destructive

destructive selection -> yang merubah isi array
diantaranya : select! dan reject! merupakan method yang dapat merubah isi dari array dari method select dan reject
sama seperti select vs reject, delete_if dan keep_if memiliki hasil sebaliknya ketika diaktifkan dengan blok yang sama
contoh :
arr.delete_if{|a| a < 4} #=> [4, 5, 6] lakukan delete jika item array bernilai lebih kecil dari 4
arr #=> [4, 5, 6]

arr = [1, 2, 3, 4, 5, 6]
arr.keep_if{|a| a < 4} #=> [1, 2, 3] simpan jika item array bernilai kurang dari 4
arr #=> [1, 2, 3] terjadi perubahan karena destructive

KUMPULAN METHOD METHOD
- arr.push(num) menambahkan item di urutan terakhir
- arr << (num) menambahkan item di urutan terakhir
- arr.unshift(num) menambahkan item di urutan pertama
- arr.insert(sequence, num) menambahkan item di urutan sequence tertentu
- arr.insert(sequence, num, num, num) menambahkan item di urutan sequence tertentu lebih dari satu

- arr.pop menghapus item yang terdapat di urutan terakhir
- arr.shift menghapus item yang terdapat di urutan pertama
- arr.delete_at(num) menghapus item yang terdapat pada urutan yang dipilih
- arr.delete(num) menghapus item yang sesuai dengan nilai yang dipilih

- arr.compact menghilangkan item nil yang terdapat pada elemen array akan tetapi non-destructive
- arr.compact! menghilangkan item nil yang terdapat pada elemen array dan destructive
- arr.uniq menghilangkan item ganda yang terdapat pada elemen array akan tetapi non-destructive
- arr.uniq! menghilangkan item ganda yang terdapat pada elemen array dan destructive

- arr.each{|a| print a -= 10, " "} melakukan manipulasi terhadap item yang terdapat di dalam elemen array
- arr.reverse_each melakukan manipulasi dengan cara membalikkan . item akhir -> item awal
- arr.map{|a| 2*a} melakukan perubahan terhadap isi elemen array, menambahkan kondisi (non-destructive)
- arr.map!{|a| 2*a} melakukan perubahan terhadap isi elemen array, menambahkan kondisi (destructive)

- arr.select{|a| a > 3} melakukan pemilihan item pada elemen array, dengan kondisi (non-destructive)
- arr.reject{|a| a < 3} melakukan pemilihan item pada elemen array, yg tidak sesuai tidak ditampilkan (non-destructive)
- arr.drop_while{|a| a < 4} sama seperti method reject (non-destructive) tidak memiliki destructive drop_while!

- arr.delete_if{|a| a > 3} melakukan penghapusan item pada elemen array yang sesuai dengan kondisi yang dibuat
- arr.keep_if{|a| a > 3} melakukan penghapusan item pada elemen array yg tidak memenuhi kondisi yg telah dibuat

Sekian mengenai tipe data String pada pemrograman Ruby.

Let's share :)

Tipe data String : Ruby Programming

String - Ruby Programming

String merupakan sebuah tipe data yang digunakan sebuah variabel untuk menampung data berupa kumpulan karakter. String tersebut ditandai dengan adanya kutip dua, yaitu diawal dan diakhir. Contoh :

name = "Frank Lampard"

# secara ototmatis variabel name akan bertipe data string karena digunakan untuk menyimpan data yang merupakan kumpulan karakter yang diapit oleh dua buah kutip dua.

Pada penggunaan string tersebut kita harus berhati-hati dalam penggunaan symbol tanda seru ( ! )

Berikut merupakan kumpulan method string :

"hello".capitalize digunakan untuk menjadikan hello diawali huruf kapital -> Hello (non-destructive)

"hello".capitalize! digunakan untuk menjadikan hello diawali huruf kapital -> Hello (destructive)


"hello".upcase digunakan untuk menjadikan hello berhuruf besar -> HELLO (non-destructive)

"hello".upcase! digunakan untuk menjadikan hello berhuruf besar -> HELLO (destructive)

"heLLo".swapcase digunakan untuk membalikkan besar kecil huruf pada string -> HEllO (non-destructive)

"heLLo".swapcase! digunakan untuk membalikkan besar kecil huruf pada string -> HEllO (destructive)

"HELLO".downcase digunakan untuk menjadikan hello berhuruf kecil -> hello (non-destructive)

"HELLO".downcase! digunakan untuk menjadikan hello berhuruf kecil -> hello (destructive)

"hello".bytesize digunakan untuk menghitung ukuran byte dari string -> 5
"hello".byteslice(num) atau byteslice(num,count) digunakan untuk mengambil bagian dari string . sama seperti array

"hello".center(10) digunakan untuk menjadikan karakter string hello menjadi ditengah dengan jumlah 10 karakter

"hello".center(10,"123") digunakan untuk menjadikan karakter string hello menjadi ditengah diantara 123123

"hello".chomp digunakan untuk menghilangkan karakter \r \n atau \r\n (non-destructive) tambah ! (destructive)

"hello".chop digunakan untuk menghilangkan karakter \r \n atau \r\n (non-destructive) tambah ! (destructive)

"hello".chr digunakan untuk mengambil karakter paling depan dari suatu string -> h

"hello".clear digunakan untuk menghapus isi variabel string

"hello".count "he" digunakan untuk mencari jumlah karakter yg terdapat pada string

"hello".delete "l" digunakan untuk menghapus bagian dari string , sesuai dengan karakter yang dicari untuk dihilangkan

"hello \n''".dump digunakan untuk menjadikan karakter string diganti dengan \\n


"hello".each_char{|c| print c, ' '} memberikan kondisi pada setiap karakter .. misalkan menambahkan spasi ..

"hello".empty? digunakan untuk melakukan pengecekan apakah isi variabel string adalah kosong ? bernilai true jika ""

"0x0a".hex digunakan untuk konfersi dari string hex ke dalam string biasa .. apabila menghasilkan 0 berarti error

"hello".include? "lo" melakukan pengecekan apakah string tersebut memiliki string yang kita cari .. true false

"hello".index("h") digunakan untuk mendapatkan informasi urutan karakter yg kita cari berada pada urutan berapa pd array

"hello".replace("hai") digunakan untuk me replace string sebelumnya dengan string baru

"abcd".insert(0,"x") digunakan untuk menambahkan string pada posisi yang kita inginkan , diikuti dengan string nya

"abcd".inspect digunakan untuk mengecek string secara keseluruhan . dengan special karakter dihilangkan/ditampilkan? -_-

"hello".intern / s = 'cat'.to_sym digunakan untuk membuat sebuah symbol

"hello".length digunakan untuk mendapatkan informasi berapa panjang string tersebut

"hello".ljust(20,"123") digunakan untuk menentukan ukuran panjang string . dapat juga diisi dengan karakter sendiri

"   hello  ".lstrip digunakan untuk menghilangkan spasi yg terdapat di dalam string (gunakan "!" jika ingin destructive)

"hello".match("ll") digunakan untuk mengecek apakah terdapat karakter yg dicari

"abcd".succ digunakan untuk menggenapkan istilahnya . atau ditambah satu tingkat untuk menggenapkan -> "abce" (!)



"a".ord digunakan untuk mendapatkan kode ascii dari karakter tersebut -> 97 , jika berupa kaliman . karakter pertama aja

"hello".partition("l") digunakan untuk memisahkan karakter string . seperti explode pada php . jadi 3 bagian -_-

"world".prepend("hello ") digunakan untuk menambahkan karakter string pada bagian awal

"hello".reverse digunakan untuk membalikkan posisi urutan karakter string .. gunakan "!" untuk distructive

"hello".rindex("h") digunakan untuk mendapatkan urutan string pada array .. sama seperti index . apa beda nya ? -_-

"hello".rjust(20) sama seperti ljust akan tetapi dengan float right . posisi string berada di sebelah kanan

"hello".rpartition("l") digunakan sama seperti partition akan tetapi dengan partition kosong berada di sebelah kiri

"  hello  ".rstrip digunakan sama seperti lstrip yaitu menghilangkan spasi yang berada pada string (bisa gunakan "!")

"hello".slice!(num) digunakan untuk menghapus bagian dari string berdasarkan urutan karakter string nya

"hello world".split("condition") digunakan untuk melakukan pemisahan karakter berdasarkan suatu kondisi

"hello world".squeeze(" ") digunakan untuk menghilangkan karakter yg double atau suatu kondisi yg akan dihilangkan

"hello world".start_with?("hell","paradise") digunakan untuk mengecek bagian awal dari string . bisa lebih dari 2 kondisi

"    hello    ".strip digunakan untuk menghilangkan karakter kosong atau spesial karakter (gunakan "!" untuk destructive)

"hello".sub("e","*") digunakan untuk melakukan replace terhadap string tertentu (gunakan "!" untuk destructive)

Keterangan :
- Destructive : merubah isi yg terdapat pada variabel dengan isi yang telah dimanipulasi menggunakan method yang ada. Perbedaannya adalah menggunakan tanda seru ( ! ) untuk destructive.
- Non-destructive : tidak merubah ini yg terdapat pada variabel dengan isi yang telah dimanipulasi menggunakan method yang ada. Tidak perlu menggunakan tanda seru ( ! ).

Sekian mengenai string pada bahasa pemrograman Ruby. Bagi yg ingin sharing dipersilahkan :)

Let's share :)

Tipe data Float : Ruby Programming

Float - Ruby Programming

Masih membahas tentang tipe data pada Ruby, kali ini akan berlanjut ke tipe data Float. Float merupakan tipe data yang digunakan variabel untuk menampung bilangan desimal atau pecahan (ber-koma). Pada pemrograman Ruby jika kita membuat sebuah variabel dan diisi dengan bilangan desimal, maka secara otomatis variabel tersebut akan bertipe Float.

Ada beberapa bahasa pemrograman yang mewajibkan kita untuk mendeklarasikan juga nama tipe data nya, seperti pada bahasa pemrograman C.

float nilai = 8.5;

Akan tetapi pada bahasa pemrograman Ruby kita hanya perlu ketik :

nilai = 8.5 # secara otomatis variabel nilai tersebut adalah ber-tipe data Float

Berikut merupakan kumpulan beberapa method yang bisa digunakan bersama dengan float :

.modulo(num) digunakan untuk mendapatkan sisa hasil bagi dari suatu bilangan (modulus). Contoh :
(24.6).modulo(10) # akan menghasilkan nilai 4.6

.abs digunakan untuk mendapatkan nilai positif dari suatu bilangan negatif (menghilangkan negatif pada suatu bilangan).

.angle digunakan untuk mendapatkan suatu nilai (dari bilangan yang negatif), akan memberikan nilai 0 jika bilangan yang diberikan method .angle tersebut bernilai positif.

.arg memiliki fungsi yang sama seperti .angle

.ceil digunakan untuk mendapatkan nilai terbesar dari suatu bilangan. Contoh kita mempunyai nilai 10.2, jika menggunakan method ceil maka akan mengembalikan nilai 11.
(10.2).ceil
(-1.2).ceil # akan menghasilkan nilai -1

.coerce(num) digunakan untuk membentuk sebuah array baru, dengan cara menambahkan num tersebut di array urutan pertama dan bilangan yang diberikan method ini berada pada posisi setelahnya.
(1.2).coerce(2) # akan menghasilkan [2,1.2]

.divmod num digunakan untuk mendapatkan array dari sisa hasil bagi suatu bilangan. Contoh kita akan menghitung sisa hasil bagi dari 40.5 dengan 5 menggunakan divmod, hasil yg akan kita dapat adalah [8,0,20000....]
(40.2).divmod 5

.eql? digunakan untuk membandingkan dua buah bilangan apakah keduanya sama atau tidak. Method ini akan menghasilkan nilai true atau false.
(1.0).eql?(1.0) # akan menghasilkan nilai true karena keduanya sama

.floor digunakan untuk mendapatkan nilai terkecil dari suatu bilangan. Contoh kita memiliki sebuah bilangan bernilai 1.2 atau 1.9, jika menggunakan method .floor tersebut maka akan menghasilkan nilai 1. Kebalikan dari method .ceil
(1.9).floor # akan menghasilkan nilai 1

.nan? digunakan untuk melakukan pengecekan apakah nilai yang kita cek bukan merupakan sebuah angka ? jika bukan merupakan angka maka akan memberikan nilai true.
(2.0).nan? # akan menghasilkan nilai false

Ada beberapa fungsi lainnya yg dapat dilihat langsung di dokumentasi ruby nya, klik link dibawah ini untuk lebih lengkapnya :
http://ruby-doc.org/core-2.0/Float.html

Let's share :)

Thursday, August 22, 2013

Tipe data Integer : Ruby Programming

Integer - Ruby Programming

Tipe data merupakan bagian penting pada saat pembuatan sebuah variabel, dimana kita membuat sebuah variabel maka disana terdapat tipe data yang ditentukan. Terdapat banyak sekali tipe data pada bahasa pemrograman, akan tetapi yang selalu ditemui adalah integer, float, string, array, time, dan lain sebagainya.

Tipe data pada bahasa pemrograman Ruby akan ditentukan secara otomatis, karena Ruby bersifat Dynamic Typing. Contoh kita ketik :

name = "Frank Lampard"

Secara otomatis variabel name akan menjadi sebuah variabel bertipe string, karena digunakan untuk menampung karakter. Contoh lain :

player_no = 8

Secara otomatis variabel player_no akan menjadi sebuah variabel bertipe integer, karena digunakan untuk menampung angka.

Kali ini kita akan membahasa tentang tipe data Integer pada bahasa pemrograman Ruby. Integer disini digunakan untuk membuat sebuah variabel yang akan menampung angka (seperti yang sudah dibahas diatas tadi hehe).

Cara pembuatan variabel integer :

[nama_variabel] = [angka]

contoh :
nilai_ulangan = 100

Harus berupa angka dan merupakan bilangan bulat (tidak boleh bilangan pecahan), karena kalau bilangan pecahan bisa menggunakan tipe data float.

Berikut merupakan kumpulan beberapa method yang bisa digunakan bersama dengan integer :

.to_i digunakan untuk melakukan konfersi ke dalam integer (Convert to Integer). Contoh sebuah bilangan float (desimal) yang diubah ke dalam bentuk integer.
a = 24.5
a.to_i #akan menghasilkan bilangan bulat dari 24.5 yaitu 24

.chr digunakan untuk melakukan konfersi suatu bilangan integer ke dalam char atau karakter. Contoh :
65.chr #akan menghasilkan karakter "A", mengapa?? karena 65 merupakan kode ascii dari huruf A kapital.

.integer? digunakan untuk melakukan pengecekan apakah bilangan yg kita cek tersebut merupakan bilangan integer atau bukan. Contoh :
(24.5).integer? #akan menghasilkan nilai false, karena 24.5 bukan integer
24.integer? #akan menghasilkan nilai true, karena 24 merupakan integer

.next digunakan untuk mendapatkan nilai berikutnya dari suatu bilangan. Contoh kita memiliki nilai 1, ketika kita memanggil method .next maka akan menghasilkan nilai 2, karena 2 merupakan nilai selanjutnya dari 1.
1.next #akan menghasilkan nilai 2
(-2).next #akan menghasilkan nilai -1

.pred digunakan untuk mendapatkan nilai sebelumnya dari suatu bilangan. Merupakan kebalikan dari fungsi method .next. Contoh :
2.pred #akan menghasilkan nilai 1
(-1).pred #akan menghasilkan nilai -2

.downto(num) digunakan untuk menghitung mundur dari suatu nilai ke nilai lain (berkurang tentunya). Contoh :
5.downto(1){|n| print n, ".. "} #akan menghasilkan 5.. 4.. 3.. 2.. 1..

.upto(num) digunakan untuk menghitung maju dari suatu nilai ke nilai lain (bertambah). Merupakan kebalikan dari method .downto(num). Contoh :
5.upto(10){|n| print n, ".. "} #akan menghasilkan 5.. 6.. 7.. 8.. 9.. 10..

Tutorial lebih jelasnya bisa dengan cara mengunjungi link berikut :
Integer - Ruby Programming

Let's share :)

Belajar Bahasa Pemrograman Ruby

Belajar Bahasa Pemrograman Ruby


Bahasa pemrograman Ruby merupakan salah satu pemrograman yang mempunyai tujuan untuk menggabungkan kelebihan dari semua bahasa-bahasa pemrograman script yang ada di dunia. Ruby ditulis dengan bahasa pemrograman C dengan kemampuan dasar seperti Perl dan Phyton

Ruby pertama kali dibuat oleh seorang programmer Jepang bernama Yukihiro Matsumoto.

Untuk mendapatkan informasi lebih jelas nya mengenai Ruby bisa di lihat di Wikipedia.

Kelebihan dari Ruby ini adalah :
- Sintaks sederhana
- Memiliki exception handling yang baik
- Bahasa pemrograman berorientasi objek
- Mengusung konsep single inheritance
- Open source
- Memiliki garbage collector

Kebetulan nih sekarang saya baru saja masuk kerja ke salah satu software house keren di cimahi (41studio) yang menggunakan bahasa pemrograman Ruby. Saya sebetulnya merupakan seorang web developer yang biasa menggunakan bahasa pemrograman PHP, namun pada saat join ke 41studio ini saya dituntut untuk bisa menguasai bahasa pemrograman Ruby (why not ya?? hhe).

Selain bertujuan untuk menambah skill baru pada programming, juga menambah pengalaman baru dalam dunia kerja (yaaa maksudnya tidak hanya PHP-an terus.. hhe)

Untuk yg mau belajar mengenai Ruby, dapat membaca dokumentasi nya dengan klik pada link ini : Ruby Documentation

Bagi yg sudah mastering Ruby, silahkan untuk berbagi link tutorialnya dengan memberikan komentar pada postingan ini. :)

Let's share :)