Menu
CoddyTech

Mengubah Hash

Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 75 dari 88.

Hash tidak bersifat statis setelah dibuat. Kamu bisa menambahkan pasangan kunci-nilai baru, memperbarui nilai yang sudah ada, dan menghapus entri saat programmu berjalan.

Untuk menambahkan pasangan baru atau memperbarui nilai yang sudah ada, tetapkan nilai ke kunci menggunakan tanda kurung siku:

person = {"name" => "Alice", "age" => 25}

person["city"] = "Paris"      # Menambahkan pasangan kunci-nilai baru
person["age"] = 26            # Memperbarui nilai yang sudah ada

puts person  # Output: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}

Jika kuncinya ada, nilainya akan diganti. Jika tidak ada, pasangan baru akan ditambahkan ke hash.

Untuk menghapus pasangan kunci-nilai, gunakan method delete dengan kunci yang ingin kamu hapus:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

person.delete("city")

puts person  # Output: {"name"=>"Alice", "age"=>25}

method delete mengembalikan nilai yang dihapus, yang dapat berguna jika kamu perlu menggunakannya:

person = {"name" => "Alice", "age" => 25}

removed_age = person.delete("age")

puts removed_age  # output: 25

Jika kamu mencoba menghapus key yang tidak ada, Ruby hanya mengembalikan nil tanpa memunculkan error.

challenge icon

Tantangan

Mudah

Baca empat baris input:

  1. Nama siswa (string)
  2. Nilai awal (integer)
  3. Nilai baru untuk diperbarui (integer)
  4. Pasangan kunci-nilai baru dalam format key:value (misalnya, subject:Math)

Buat hash bernama student dengan pasangan kunci-nilai awal berikut:

  • "name" dipetakan ke nama siswa
  • "grade" dipetakan ke nilai awal (sebagai integer)

Lalu lakukan perubahan berikut:

  1. Perbarui kunci "grade" dengan nilai baru
  2. Tambahkan pasangan kunci-nilai baru menggunakan kunci dan nilai dari input keempat (nilainya harus tetap berupa string)
  3. Hapus kunci "name" dari hash dan simpan nilai yang dihapus

Cetak nama yang dihapus pada baris pertama, lalu cetak hash akhir pada baris kedua.

Misalnya, jika inputnya adalah Alice, 85, 92, dan subject:Math, outputnya harus berupa:

Alice
{"grade"=>92, "subject"=>"Math"}

Jika inputnya adalah Bob, 70, 75, dan status:passing, outputnya harus berupa:

Bob
{"grade"=>75, "status"=>"passing"}

Jika inputnya adalah Charlie, 100, 95, dan note:excellent, outputnya harus berupa:

Charlie
{"grade"=>95, "note"=>"excellent"}

Coba sendiri

# Baca input
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Tulis kodemu di bawah ini
# 1. Buat hash bernama 'student' dengan kunci "name" dan "grade"
# 2. Perbarui kunci "grade" dengan nilai grade baru
# 3. Uraikan key_value_pair dan tambahkan hasilnya ke hash
# 4. Hapus kunci "name" dan simpan nilai yang dihapus

# Tampilkan nama yang dihapus
puts removed_name
# Tampilkan hash akhir
puts student
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Ruby online