Menu
CoddyTech

Cari Berdasarkan Judul

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

Tambahkan opsi 2. Search By Title. Pengguna mengetik istilah pencarian, lalu program mencetak setiap buku yang judulnya memuat istilah tersebut tanpa membedakan huruf besar dan kecil.

Di sinilah select dari bab sebelumnya berguna, satu blok, tanpa perulangan manual:

matches = library.select do |book|
  book[:title].downcase.include?(query.downcase)
end
challenge icon

Tantangan

Mudah

Perluas perulangan menu. Saat pilihannya "2":

  1. print prompt Search title: dan baca query
  2. Gunakan select untuk mencari buku yang judulnya (tanpa membedakan huruf besar dan kecil) menyertakan query
  3. Jika tidak ada kecocokan, tampilkan No matches.
  4. Jika tidak, tampilkan satu baris untuk setiap kecocokan dengan format ini: <title> by <author>

Pertahankan perilaku 1 (Tambah Buku) dan 5 (Keluar) dari pelajaran sebelumnya.

Untuk input 1, The Hobbit, Tolkien, Fantasy, 2, hobbit, lalu 5, blok output yang cocok terlihat seperti ini:

Choose an option: Search title: The Hobbit by Tolkien

Coba sendiri

library = []

loop do
  puts "--- Library Manager ---"
  puts "1. Add Book"
  puts "2. Search By Title"
  puts "3. Filter By Genre"
  puts "4. Mark As Read"
  puts "5. Exit"
  print "Choose an option: "
  choice = gets.chomp
  if choice == "5"
    puts "Goodbye!"
    break
  elsif choice == "1"
    print "Title: "
    title = gets.chomp
    print "Author: "
    author = gets.chomp
    print "Genre: "
    genre = gets.chomp
    library.push({ title: title, author: author, genre: genre, read: false })
    puts "Book added!"
  end
  # TODO: tangani choice == "2", minta query, pilih buku yang cocok,
  # tampilkan "No matches." atau satu baris untuk setiap buku yang cocok: "<title> by <author>"
end
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