• Tidak ada hasil yang ditemukan

Bagian Hash dan Operator

Dalam dokumen Nyankod Magz Edisi 4 “Apem doWhile” (Halaman 27-35)

Love It And Earn It. Itulah yang dijunjung tinggi dalam setiap edisi nyankods, dari sekian ribu edisi (padahal baru 3) semua penulis berusaha agar setiap edisinya seru dan asyik untuk diikuti, dan kamu paham dengan apa yang disampaikan pada setiap materinya secara berkesinambungan dan tersusun.

Baik, Untuk Ruby di edisi ke 4 ini kita akan membahas kelanjutan dari materi kemarin tentang array, yaitu HASH { } (...panjang ya bacanya gaya SponsBobSquaerPants).... apakah itu? Darimanakah dia berasal? Makhluk apakah dia? Untuk selanjutkan akan dibahas di level 4. Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin, kesimpulan dan abstraksi sebagai berikut:

Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin, kesimpulan dan abstraksi sebagai berikut:

1. Kamu sudah mengenal sifat-sifat array di Ruby.

2. Kamu sudah bisa memanggil isi dari array berdasarkan aturan indeks nya. 3. Kamu sudah bisa membuat objek array dan mengisinya dengan leluasa karena

array di Ruby adalah Objek.

4. Kamu sudah mengetahui beberapa fungsi yang sering digunakan dalam array dan sangat fungsional nantinya.

Array di Ruby diibaratkan Parsel yang bisa diisi macam-macam dan tersusun rapi dengan angka sebagai pengenalnya. Bagi yang belum / ketinggalan materi

Oke, sudah siap dengan

materi di Level 4 ini???

Let's Check This Out, Love It And Earn It

Halaman 28 dari 85

kemarin, cb download edisi ke 3 nyankods di http://nyankods.blogspot.com. Ato baru pertama kali liat majalah ini, ya download aja ketiga edisi kemarin supaya paham dan dapat mengikutinya.

Level Up

Sebelum memulai, persiapkan syarat-sayarat berikut ini: 1. Buka Folder RubyDojo.

2. Buka Editor teks kesayangan kamu.

3. Buka Ruby editor interaktif (irb) di terminal | cmd.

HASH, makhluk apakah itu? Apakah dia seorang pahlawan pembela kebetulan dan pembasmi kesalahan??? Who Knows..

HASH atau tepatnya Hashes (dikenal sebagai array assosiatif atau kamus) dengan tanda { } sebagai pengenalnya ini mirip dengan array yang isinya di indeks. Namun bedanya indeks di Hashes tidak terurut dengan angka seperti di array, Hashes menggunakan indeks pengenal yang dapat kita tentukan dan dapat ber type apapun. Indeks di Hashes dikenal dengan nama key/kunci dengan isi masing-masing sesuai dengan yang kita tentukan. Dalam mengisi Hashes ada 2 syarat, yaitu adanya key dan value/isi dari key tersebut.

Halaman 29 dari 85

Hashes ini merupakan saudara serumpun dengan array, sama sama bertitisan bungkusan. Cobalah contoh berikut di IRB :

irb(main):001:0> h = {'pagi' => 'roti,keju,susu','siang'

=> 'nasi,sayur,ikan', 'malam' => 'susu,nasi,sayur,ayam'}

=>{"malam"=>susu,nasi,sayur,ayam",

"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}

irb(main):002:0> h['pagi']

=> "roti,keju,susu"

irb(main):003:0> h['siang']

=> "nasi,sayur,ikan"

irb(main):004:0> h['sore']

=> nil

irb(main):005:0> h['malam']

=> "susu,nasi,sayur,ayam"

Bagaimana kesannya? Ada yang membingungkan dengan contoh di atas. Penjelasan :

1. h disini merupakan objek dengan tipe Hashes.

2. isinya terdiri dari key dan value, dengan ketentuan key => value untuk mengisinya.

3. Isi Hashes akan secara otomatis di urut berdasarkan struktur key.

4. Cara memanggilnya sama seperti array, yaitu dengan cara objek[key] yang dimaksud.

5. Apabila yang dipanggil tidak ada maka mengeluarkan nil .

Sekarang coba kita masukan key dan value baru ke objek h :

irb(main):009:0> h

=>{"malam"=>"susu,nasi,sayur,ayam",

"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}

irb(main):010:0> h['sore']='bakso,jus'

Halaman 30 dari 85

=> "bakso,jus"

irb(main):011:0> h

=>{"sore"=>"bakso,jus", "malam"=>"susu,nasi,sayur,ayam",

"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}

Ketika objek Hashes diisi di awal, maka kontennya akn berurutan. Namun ketika objek sudah terbentuk kemudian ditambahkan key dan value baru maka akan dimasukan ke urutan pertama.

Baiklah, kita coba contoh berikutnya ya...

irb(main):008:0>b={'a'=>'aku',2=>'dua',1=>'satu',

'tiga'=>3}

=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}

irb(main):017:0> b

=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}

irb(main):018:0> b[1]='One'

=> "One"

irb(main):019:0> b

=> {"a"=>"aku", 1=>"First", 2=>"dua", "tiga"=>3}

Di atas adalah contoh penggunaan gabungan dari angka dan abjad. Seperti contoh sebelumnya kita membuat objek baru bertipekan Hashes, kemudian diisi dengan key dan value tertentu, dan hasilknya akn terurut secara sendirinya. Kemudian kita ubah isi dari salah satu key, disini yang diubah yaitu key 1, yang awalnya berisi 'satu' menjadi 'First'. Ketika mengubah isi dari key sudah ada, maka posisi urutannya tidak berubah karena disini hanya mengubah saja bukan membuat baru.

Halaman 31 dari 85

Apabila masih kesulitan dalam membayangkan dari penjelasan di atas, maka untuk lebih jelasnya apa itu Hashes, apa itu key, apa itu value, apa itu objek... lihat gambar dibawah ini:

Sapi merupakan objek yang ber-tipe-kan Hashes

sapi = {'pagi' => 'jeruk,tomat,semangka', 'siang' => 'rumput, kangkung, jerami', 'malam' => 'semangka kuning, durian,stroberi'}

Halaman 32 dari 85

Bagaimana, sudah kebayang sekarang... pelototin aj terus tuh si sapi sampe laper.. hihii

Baiklah, cukup un tuk penjelasan dasar mengenai Hashes, sekarangsaatnya rehat sejenak dan cobalah kerjakan soal dibawah ini :

1. Apa itu Hashes?

2. Bagaimana format penulisan Hashes?

3. Buatlah Hashes dengan key a sampai e kemudian value nya nama teman-temanmu yang berinisialkan huruf tersebut.

4. Tampilkan value nya saja dari objek Hashes yang kamu buat. 5. Tampilkan isi hash dari huruf c sampai e.

Halaman 33 dari 85

HERO state :: Extra Fokus

Hero State, Selalu merinding kalau masuk tahap ini. Ya mungkin karena terbayang akan sulitnya halangan dan rintangan untuk menguasai level ini. Hehehe...

Yosh, kalau sudah Siap.... Mari kita mulai Hero State di Hashes. Untuk kasus Hashes mungkin kmau baru mengenal sekarang , karena saya sendiri pun baru menemukan hal ini di Ruby, maka untuk itu di stage ini kita akan bermain dengan hal yang tidak jauh berbeda dengan array.

Baiklah, Hashes di Ruby dari contoh-contoh sebelumnya langsung kita isi dengan konten tertentu, nah bagaimana caranya untuk membuat Hashes kosong. Begini caranya,

1. Hashes.new

Tentu Kita tiidak perlu kerepotan untuk membuat Hashes baru, cukup dengan objek diikuti dengan tanda Hashes. Lihat contoh berikut:

irb(main):001:0> baru={}

=> {}

irb(main):002:0> baru[1]

=> nil

irb(main):003:0> baru[2]

=> nil

Mudah bukan, cek kosong dengan memanggil key apapun akan menghasilkan nil. Nil di Ruby ini merupakan objek juga yang merepresentasikan nilai null atau nilai yang dimaksud adalah kosong. Namun karena nil adalah objek, ketentuan ini dapat kita ubah sesuai dengan apa yang kita inginkan sebagai pengganti dari null. Contoh berikut:

Halaman 34 dari 85

irb(main):001:0> baru=Hash.new(“zonk”)

=> {}

irb(main):002:0> baru[1]

=> “zonk”

irb(main):003:0> baru[2].upcase

=> “ZONK”

Mudah bukan? Untuk mengisinya cukup tentukan key apa dan valuenya juga. Ok.

Nah untuk kasus selanjutnya, bagaimana cara kita menampilkan value atau key nya saja dari sebuah objek Hashes. Coba contoh berikut ini.

2. values dan .keys

irb(main):010:0>harold={'a'=>'ambar','k'=>'kumar','w'=>'woo

den','z'=>'zorro'}

=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar", "z"=>"zorro"}

irb(main):017:0> harold.length

=> 4

irb(main):015:0> harold.keys

=> ["k", "w", "a", "z"]

irb(main):017:0> harold.values

=> ["kumar", "wooden", "ambar", "zorro"]

bagaimana, Cukup dengan ditambahkan .values atau .keys setelah objek Hashes maka akan muncul values dan key dari objek Hashes secara terpisah.

Kemudian kasus selanjutnya, Bagaimana kita menampilkan isi Hashes dengan syarat tertentu.

Halaman 35 dari 85

3. .select{ |k,v| kondisi}

Select merupakan fungsi untuk Hashes dimana dia dapat mengembalikan nilai dengan mengunakan [key, value] sebagai syarat untuk seleksi.

Dalam dokumen Nyankod Magz Edisi 4 “Apem doWhile” (Halaman 27-35)

Dokumen terkait