Selasa, 20 Maret 2012

Tipe Data pada Ruby :: Part II

Sekarang, sya akan menjelaskan ttg tipe data hash, range, dan symbol... Ketiga tipe data ini memang agak asing bagi para pemula
------------------------------------HASH----------------------------------
Hash adalah struktur yg terdiri dri sekumpulan objek yg disebut key.. nah, masing2 key ini punya nilai yg berasosiasi. Hash di Ruby mirip dgn collection object pda Visual FoxPro.
Hash diapit dgn kurung kurawal {......} trus ada operator '=>' yg dipakai utk menghubungkan nilai dgn key yg berkorespondensi. Sama halnya seperti array, setiap nilai dipisahkan dgn koma.
Kadangkala hash mengacu pda array asosiatif, nilai mereka berdasarkan indeks yg berada di dalam kurung siku... Agak bingung ya? Supaya tergambar, lihat contoh berikut:
hsh = {1 => "angel", 2 => "widya"}
puts "elemen 1 : #{hsh[1]}"
puts "===================="
puts "elemen 2 : #{hsh[2]}"


Pada sintaks di atas, hash key merupakan nilai numerik (1 dan 2), semua yg ada di Ruby merupakan objek, jadi hash key nya adl objek dri class Fixnum dan nilai yg berasosiasinya merupakan string...Hasil run nya:

Kalo di RoR, banyak digunakan symbol sebagai hash key nya. Jika kita menggunakan symbol maka penulisannya seperti ini,
hsh = {:pertama => "angel", :kedua => "widya"}
puts "elemen pertama : #{hsh[:pertama]}"
puts "===================="
puts "elemen kedua : #{hsh[:kedua]}"


Berikut hasil run nya:




------------------------------------RANGE--------------------------------
Range di Ruby mendefinisikan rentetan dri nilai awal dan nilai akhir. Range diapit oleh tanda kurung dengan dua atau tiga titik (beda looo...) yg memisahkan nilai awal dengan nilai akhir.
Kalo dua titik --> (awal..akhir) artinya adl range inklusif yaitu nilai awal dan nilai akhir disertakan... Namun, kalo tiga titik --> (awal...akhir) artinya range eksklusif yaitu nilai akhir ga disertakan.
Biasanya objek range itu nilai numerik, tapi nilai string juga bisa dipakai seperti ("a".."z")
puts "Range Inklusif"
for x in (1..5)
   puts x
end
puts "==================="
puts "Range Eksklusif"
for x in (1...5)
   puts x
end
 

--------------------------------SYMBOL----------------------------------
Interpreter Ruby secara internal menyediakan tabel symbol yg berisikan nama2 dri keseluruhan class, method, dan variabel. Interpreter ini mengacu pda entri dalam tabel symbol dgn posisi mereka, yang mana lebih cepat ketimbang mlakukan perbandingan string pda nama mreka.
Symbol ditulis dengan diawali oleh tanda titik dua, seperti pda contoh hash sebelumnya (:pertama dan :kedua)...
puts "Bukti bahwa setiap variabel memiliki id objek yang berbeda"
contoh1 = "angel"
puts "id objek pada contoh1 --> #{contoh1.object_id}"
contoh2 = "angel"
puts "id objek pada contoh2 --> #{contoh2.object_id}"
puts "=========================================================="
puts "=========================================================="
puts "Jika nilai string sama, maka ketika dikonvert ke symbol maka"
puts "id objeknya sama"
sym_contoh1 = contoh1.to_sym
puts "id objek pada symbol contoh1 --> #{sym_contoh1.object_id}"
sym_contoh2 = contoh2.to_sym
puts "id objek pada symbol contoh2 --> #{sym_contoh2.object_id}"




Ok, dengan ini tipe data pada Ruby sudah di bhas, postingan selanjutnya akan membahas ttg struktur program Ruby (ga jauh2 bedalah ma OOP)...


Salam,



Tidak ada komentar:

Posting Komentar