Skip to content

Commit c7846b6

Browse files
committed
Merge branch 'master' of github.com:xinuc/ruby_basic
2 parents 7a7483d + f1a5539 commit c7846b6

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

Session1.md

+50-1
Original file line numberDiff line numberDiff line change
@@ -569,4 +569,53 @@ pasti memiliki object yang sama.
569569
Symbol biasanya digunakan sebagai `key` atau indentifier dalam hash atau object ruby.
570570

571571
## Hashes
572-
## Methods
572+
573+
Hash adalah koleksi pasangan `key-value` yang dalam ruby memiliki syntax sebagai berikut:
574+
575+
```ruby
576+
my_hash = { :name => "Nugroho", :age => 25 }
577+
```
578+
579+
Hash mirip seperti array, tetapi jika array diindex dengan integer yang dimulai dari 0, hash
580+
diindex dengan object ruby. Semua object dalam ruby dapat dijadikan key ataupun value dalam
581+
hash. Tetapi pada umumnya kita lebih sering menggunakan symbol atau string sebagai key dari
582+
sebuah hash.
583+
584+
Keys dalam hash harus unik. Jika kita mengakses index hash yang tidak ada, kita akan mendapatkan
585+
nilai `nil`.
586+
587+
### Inisiasi Hash
588+
589+
Untuk menginisiasi sebuah hash, kita dapat memanggil method new dari kelas `Hash`:
590+
591+
```ruby
592+
my_hash = Hash.new
593+
```
594+
595+
namun pada umumnya kita lebih sering membuat hash dengan literal hash sebagai berikut:
596+
597+
598+
```ruby
599+
my_hash = {}
600+
```
601+
602+
### Hash methods
603+
604+
Berikut ini adalah beberapa method hash yang sering kita gunakan:
605+
606+
* `hash.[key]` digunakan untuk mengakses value hash dengan `key` tertentu. Akan mereturn
607+
object value jika ditemukan, atau `nil` jika tidak ditemukan.
608+
609+
* `hash.clear` menghapus semua key dan value dari hash tersebut.
610+
611+
* `hash.delete(key)` menghapus key-value dengan `key` tertentu. Akan mereturn value tersebut.
612+
613+
* `hash.delete_if { |key,value| block }` menghapus key-value jika evaluasi `block` menghasilkan
614+
nilai true.
615+
616+
* `hash.each { |key,value| block }` melakukan iterasi dan mengevaluasi block untuk semua key-value.
617+
618+
* `hash.keys` menghasilkan array dari semua `key` dalam hash tersebut.
619+
620+
* `hash.merge(another_hash)` menghasilkan hash baru yang merupakan gabungan kedua hash. Jika ada
621+
key yang sama, akan di override oleh nilai dari `another_hash`.

0 commit comments

Comments
 (0)