Menu
CoddyTech

Pengubah Data

Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 56 dari 56.

Tantangan akhir, ubah bentuk dataset menjadi laporan ringkasan. Gabungkan pemfilteran, pemetaan, pengelompokan, penanganan error, dan definisi method menjadi satu program.

challenge icon

Tantangan

Sedang

Array students diberikan. Setiap entri adalah hash dengan :id, :grades (array bilangan bulat, mungkin kosong), dan :subjects (array string).

Definisikan method transform_dataset(students) yang mengembalikan hash dengan dua kata kunci:

  • :qualified_ids: array :id siswa yang diurutkan dan memiliki setidaknya satu nilai, serta semua nilainya lebih besar dari 70 (gunakan all?).
  • :subject_counts: hash yang memetakan setiap mata pelajaran yang diambil siswa yang memenuhi syarat ke jumlah siswa yang memenuhi syarat dan mengambilnya.

Jika array :grades seorang siswa kosong, siswa tersebut tidak memenuhi syarat. Lewati siswa itu tanpa menampilkan pesan.

Lalu panggil method tersebut dan cetak:

  1. ID siswa yang memenuhi syarat, digabungkan dengan , , dan diawali Qualified: . Jika tidak ada, cetak Qualified: (none).
  2. Satu baris untuk setiap mata pelajaran (diurutkan berdasarkan abjad) dengan format <subject>: <count>.

Untuk students default, output-nya adalah:

Qualified: S1, S4
biology: 1
history: 1
math: 2
physics: 1

Coba sendiri

students = [
  { id: "S1", grades: [85, 92, 78], subjects: ["math", "physics"] },
  { id: "S2", grades: [65, 80, 90], subjects: ["math", "biology"] },
  { id: "S3", grades: [],          subjects: ["art"] },
  { id: "S4", grades: [88, 95],    subjects: ["math", "biology", "history"] },
  { id: "S5", grades: [70, 75],    subjects: ["chemistry"] }
]

# TODO: definisikan fungsi transform_dataset(students), kembalikan { qualified_ids:, subject_counts: }
# TODO: tampilkan ID yang memenuhi syarat dan jumlah per subjek
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Ruby online