Menu
CoddyTech

Memeriksa Kunci

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 26 dari 56.

Meskipun operator tanda kurung siku memudahkan akses nilai map, ada potensi masalah: apa yang terjadi jika kamu mencoba mengakses key yang tidak ada? Seperti yang kamu pelajari di pelajaran sebelumnya, menggunakan [] dengan key yang tidak ada akan otomatis membuat key tersebut dengan nilai default.

Terkadang kamu ingin memeriksa apakah sebuah kunci ada sebelum mengaksesnya, tanpa sengaja membuat entri baru. Di sinilah method .count() berguna. Method ini memberi tahu apakah kunci tertentu ada di map.

Method .count() mengembalikan 1 jika kunci ada dan 0 jika tidak ada:

std::map<std::string, int> scores;
scores["Alice"] = 95;

if (scores.count("Alice")) {
    std::cout << "Alice's score: " << scores["Alice"] << std::endl;
} else {
    std::cout << "Alice not found" << std::endl;
}

Pendekatan ini memungkinkan kamu memeriksa dengan aman apakah sebuah kunci ada dan menangani kedua kasus dengan tepat, sehingga entri yang tidak diinginkan tidak dibuat di map-mu.

challenge icon

Tantangan

Mudah

Buat program yang mengelola sistem peminjaman buku perpustakaan menggunakan std::map. Programmu akan melacak buku yang tersedia dan menggunakan method .count() untuk memeriksa dengan aman apakah buku tersedia sebelum mencoba mengakses informasinya.

Input berikut akan diberikan:

  • Bilangan bulat n yang menyatakan jumlah buku di perpustakaan
  • Kemudian n pasang input:
    • String yang menyatakan judul buku
    • Bilangan bulat yang menyatakan jumlah salinan yang tersedia
  • Bilangan bulat m yang menyatakan jumlah permintaan buku yang perlu diperiksa
  • Kemudian m string yang menyatakan judul buku yang akan dicari

Programmu harus:

  1. Membuat std::map<std::string, int> bernama library
  2. Membaca jumlah buku dan mengisi map dengan judul buku serta jumlah salinan yang tersedia
  3. Membaca jumlah permintaan buku
  4. Untuk setiap permintaan buku, menggunakan method .count() untuk memeriksa apakah buku tersebut ada di perpustakaan
  5. Mencetak pesan yang sesuai berdasarkan apakah buku ditemukan atau tidak

Gunakan format output berikut secara persis:

Untuk setiap permintaan buku:

  • Jika buku tersedia: Book "[book title]" is available with [number] copies
  • Jika buku tidak tersedia: Book "[book title]" is not available in the library

Gunakan method .count() dalam pernyataan if untuk memeriksa keberadaan buku sebelum mengakses nilainya. Jika library.count(bookTitle) menghasilkan 1, buku tersebut tersedia dan kamu dapat mengakses library[bookTitle] dengan aman untuk mendapatkan jumlah salinannya. Jika menghasilkan 0, buku tersebut tidak tersedia di perpustakaan.

Coba sendiri

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Baca jumlah buku
    int n;
    cin >> n;
    
    // Buat map library
    map<string, int> library;
    
    // Baca informasi buku dan isi map
    for (int i = 0; i < n; i++) {
        string title;
        int copies;
        cin >> title >> copies;
        library[title] = copies;
    }
    
    // Baca jumlah permintaan buku
    int m;
    cin >> m;
    
    // TODO: Tulis kodemu di bawah ini
    // Proses setiap permintaan buku menggunakan method .count()
    // Periksa apakah buku tersedia dan tampilkan pesan yang sesuai
    
    return 0;
}
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 C++ online