#include <iostream>
#include <map>
#include <string>
// Fungsi untuk mencetak hasil akhir jumlah pendonor
void cetakHasil(const std::map<std::string, int>& jumlahPendonor) {
std::cout << "\n--- Ringkasan Jumlah Pendonor Darah per Desa ---\n";
if (jumlahPendonor.empty()) {
std::cout << "Belum ada data pendonor yang dimasukkan.\n";
} else {
for (const auto& pair : jumlahPendonor) {
std::cout << "Desa " << pair.first << ": " << pair.second << " pendonor\n";
}
}
}
int main() {
// std::map untuk menyimpan nama desa dan jumlah pendonor
std::map<std::string, int> jumlahPendonor;
std::string namaPendonor;
std::string namaDesa;
char inputLagi;
std::cout << "===== Program Penghitung Pendonor Darah per Desa =====\n";
do {
// Menerima input nama pendonor
std::cout << "\nMasukkan nama pendonor: ";
std::cin.ignore(); // Membersihkan buffer input
std::getline(std::cin, namaPendonor);
// Menerima input nama desa
std::cout << "Masukkan nama desa: ";
std::getline(std::cin, namaDesa);
// Menambahkan atau memperbarui jumlah pendonor untuk desa yang diberikan
// Jika desa belum ada, map akan membuat entri baru dengan nilai 0, lalu ditambah 1
jumlahPendonor[namaDesa]++;
// Menanyakan apakah ingin memasukkan data lagi
std::cout << "Ingin memasukkan data pendonor lagi? (y/n): ";
std::cin >> inputLagi;
} while (inputLagi == 'y' || inputLagi == 'Y');
// Memanggil fungsi untuk mencetak hasil
cetakHasil(jumlahPendonor);
return 0;
}