Menu
CoddyTech

Ringkasan: Kartu Perpustakaan

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Ruby di Coddy. Pelajaran 6 dari 57.

challenge icon

Tantangan

Sedang

Lengkapi class LibraryCard. initialize(name, limit = 3) menyimpan nama dan batas peminjaman, lalu mulai tanpa judul yang dipinjam. borrow(title) mengembalikan true dan menambahkan judul tersebut, kecuali jika kartu sudah mencapai batasnya atau sudah memiliki judul tersebut, dalam hal ini fungsi mengembalikan false. give_back(title) mengembalikan true jika judul tersebut berhasil dihapus. to_s mengembalikan Ada: 2/3 (Dune, Emma) dengan judul-judul dalam urutan peminjaman, atau Ada: 0/3 saat tidak ada yang dipinjam.

Kode yang disediakan membaca nama dan batasnya (- untuk nilai default), lalu perintah +title atau -title. Kode tersebut mencetak ok atau no untuk setiap perintah, lalu mencetak kartu.

Kodemu ditulis di library_card.rb. main.rb berisi kode input/output yang disediakan dan tidak boleh diedit.

Coba sendiri

require_relative 'library_card'

# Kode input/output yang disediakan: biarkan apa adanya
input = []
while (line = gets)
  input << line.chomp
end
card = input[1] == "-" ? LibraryCard.new(input[0]) : LibraryCard.new(input[0], input[1].to_i)
input.drop(2).each do |cmd|
  title = cmd[1..]
  done = cmd.start_with?("+") ? card.borrow(title) : card.give_back(title)
  puts done ? "ok" : "no"
end
puts card

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Ruby online