fork download
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4.  
  5. // Fungsi untuk mencetak hasil akhir jumlah pendonor
  6. void cetakHasil(const std::map<std::string, int>& jumlahPendonor) {
  7. std::cout << "\n--- Ringkasan Jumlah Pendonor Darah per Desa ---\n";
  8. if (jumlahPendonor.empty()) {
  9. std::cout << "Belum ada data pendonor yang dimasukkan.\n";
  10. } else {
  11. for (const auto& pair : jumlahPendonor) {
  12. std::cout << "Desa " << pair.first << ": " << pair.second << " pendonor\n";
  13. }
  14. }
  15. }
  16.  
  17. int main() {
  18. // std::map untuk menyimpan nama desa dan jumlah pendonor
  19. std::map<std::string, int> jumlahPendonor;
  20. std::string namaPendonor;
  21. std::string namaDesa;
  22. char inputLagi;
  23.  
  24. std::cout << "===== Program Penghitung Pendonor Darah per Desa =====\n";
  25.  
  26. do {
  27. // Menerima input nama pendonor
  28. std::cout << "\nMasukkan nama pendonor: ";
  29. std::cin.ignore(); // Membersihkan buffer input
  30. std::getline(std::cin, namaPendonor);
  31.  
  32. // Menerima input nama desa
  33. std::cout << "Masukkan nama desa: ";
  34. std::getline(std::cin, namaDesa);
  35.  
  36. // Menambahkan atau memperbarui jumlah pendonor untuk desa yang diberikan
  37. // Jika desa belum ada, map akan membuat entri baru dengan nilai 0, lalu ditambah 1
  38. jumlahPendonor[namaDesa]++;
  39.  
  40. // Menanyakan apakah ingin memasukkan data lagi
  41. std::cout << "Ingin memasukkan data pendonor lagi? (y/n): ";
  42. std::cin >> inputLagi;
  43.  
  44. } while (inputLagi == 'y' || inputLagi == 'Y');
  45.  
  46. // Memanggil fungsi untuk mencetak hasil
  47. cetakHasil(jumlahPendonor);
  48.  
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0.01s 5320KB
stdin
8
3
3 1 150
1 2 250
3 1 300
1 3 450
2 2 200
3 4 350
1 4 500
2 1 500
stdout
===== Program Penghitung Pendonor Darah per Desa =====

Masukkan nama pendonor: Masukkan nama desa: Ingin memasukkan data pendonor lagi? (y/n): 
--- Ringkasan Jumlah Pendonor Darah per Desa ---
Desa 3: 1 pendonor