Menu
CoddyTech

Daftar Berdasarkan Kursus

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

Tambahkan method yang menemukan setiap siswa yang terdaftar di kursus tertentu dan mengembalikan nama mereka sebagai array. Ini adalah jenis rangkaian select/map yang sudah kamu latih.

challenge icon

Tantangan

Mudah

Tambahkan method list_by_course(course) yang mengembalikan array berisi nama siswa yang array :courses-nya mencakup course. Nama harus muncul sesuai urutan penambahannya. Jika tidak ada siswa yang terdaftar, kembalikan [].

Ganti blok pengujian dengan:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").inspect

Output yang diharapkan:

Student 'Alice' added.
Student 'Bob' added.
Student 'Cara' added.
["Alice", "Bob"]
["Alice", "Cara"]
[]

Coba sendiri

$student_records = {}

def add_student(name, age, courses)
  if $student_records.key?(name)
    puts "Student '#{name}' already exists."
    return
  end
  $student_records[name] = { age: age, grades: [], courses: courses }
  puts "Student '#{name}' added."
end

def add_grade(name, grade)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return
  end
  $student_records[name][:grades] << grade
  puts "Grade #{grade} added for '#{name}'."
end

def average_grade(name)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return nil
  end
  grades = $student_records[name][:grades]
  return 0 if grades.empty?
  grades.sum.to_f / grades.length
end

# TODO: def list_by_course(course), kembalikan array berisi nama siswa yang terdaftar di `course`

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").inspect
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