fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4. #include <cstdlib>
  5. #include <ctime>
  6. using namespace std;
  7.  
  8. // Struktur untuk data mentah (Level 1)
  9. struct Penduduk {
  10. int id;
  11. int desa_id;
  12. double pendapatan;
  13. };
  14.  
  15. // Struktur untuk data terolah (Level 2)
  16. struct Desa {
  17. int id;
  18. long jumlah_penduduk = 0;
  19. double total_pendapatan = 0;
  20. double rata_pendapatan = 0;
  21. };
  22.  
  23. // Fungsi utama
  24. int main() {
  25. srand(time(0));
  26.  
  27. // Simulasi data
  28. int jumlahDesa = 5; // maksimal 100000
  29. int jumlahPenduduk = 50; // maksimal 30000000
  30.  
  31. vector<Penduduk> data(jumlahPenduduk);
  32. vector<Desa> desa(jumlahDesa + 1);
  33.  
  34. // ============================
  35. // LEVEL 1 : Penyimpanan Data
  36. // ============================
  37. cout << "=== LEVEL 1 : DATA MENTAH ===\n";
  38. for (int i = 0; i < jumlahPenduduk; i++) {
  39. data[i].id = i + 1;
  40. data[i].desa_id = rand() % jumlahDesa + 1;
  41. data[i].pendapatan = 1000 + rand() % 9000; // antara 1000–10000
  42. cout << "Penduduk " << setw(2) << data[i].id
  43. << " | Desa " << data[i].desa_id
  44. << " | Pendapatan: " << data[i].pendapatan << endl;
  45. }
  46.  
  47. // ==============================
  48. // LEVEL 2 : Olah Data Ringkasan
  49. // ==============================
  50. cout << "\n=== LEVEL 2 : RINGKASAN PER DESA ===\n";
  51. for (auto &p : data) {
  52. desa[p.desa_id].id = p.desa_id;
  53. desa[p.desa_id].jumlah_penduduk++;
  54. desa[p.desa_id].total_pendapatan += p.pendapatan;
  55. }
  56.  
  57. for (int i = 1; i <= jumlahDesa; i++) {
  58. if (desa[i].jumlah_penduduk > 0)
  59. desa[i].rata_pendapatan = desa[i].total_pendapatan / desa[i].jumlah_penduduk;
  60.  
  61. cout << "Desa " << i
  62. << " | Penduduk: " << desa[i].jumlah_penduduk
  63. << " | Total: " << desa[i].total_pendapatan
  64. << " | Rata-rata: " << desa[i].rata_pendapatan << endl;
  65. }
  66.  
  67. // =================================
  68. // LEVEL 3 : Keputusan (DSS Output)
  69. // =================================
  70. cout << "\n=== LEVEL 3 : KEPUTUSAN ===\n";
  71. int desa_terkaya = 1;
  72. double maxRata = desa[1].rata_pendapatan;
  73.  
  74. for (int i = 2; i <= jumlahDesa; i++) {
  75. if (desa[i].rata_pendapatan > maxRata) {
  76. maxRata = desa[i].rata_pendapatan;
  77. desa_terkaya = i;
  78. }
  79. }
  80.  
  81. cout << ">> Desa dengan rata-rata pendapatan tertinggi: Desa "
  82. << desa_terkaya << " dengan rata-rata " << maxRata << endl;
  83.  
  84. return 0;
  85. }
  86.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
=== LEVEL 1 : DATA MENTAH ===
Penduduk  1 | Desa 4 | Pendapatan: 3416
Penduduk  2 | Desa 3 | Pendapatan: 3792
Penduduk  3 | Desa 3 | Pendapatan: 1934
Penduduk  4 | Desa 3 | Pendapatan: 6883
Penduduk  5 | Desa 4 | Pendapatan: 8625
Penduduk  6 | Desa 5 | Pendapatan: 6834
Penduduk  7 | Desa 2 | Pendapatan: 5816
Penduduk  8 | Desa 1 | Pendapatan: 2633
Penduduk  9 | Desa 1 | Pendapatan: 3607
Penduduk 10 | Desa 3 | Pendapatan: 4065
Penduduk 11 | Desa 4 | Pendapatan: 3937
Penduduk 12 | Desa 2 | Pendapatan: 8328
Penduduk 13 | Desa 4 | Pendapatan: 3985
Penduduk 14 | Desa 1 | Pendapatan: 5497
Penduduk 15 | Desa 1 | Pendapatan: 2169
Penduduk 16 | Desa 4 | Pendapatan: 3348
Penduduk 17 | Desa 1 | Pendapatan: 2813
Penduduk 18 | Desa 3 | Pendapatan: 2102
Penduduk 19 | Desa 3 | Pendapatan: 3389
Penduduk 20 | Desa 4 | Pendapatan: 8792
Penduduk 21 | Desa 1 | Pendapatan: 5189
Penduduk 22 | Desa 2 | Pendapatan: 4226
Penduduk 23 | Desa 2 | Pendapatan: 9196
Penduduk 24 | Desa 2 | Pendapatan: 5333
Penduduk 25 | Desa 1 | Pendapatan: 6000
Penduduk 26 | Desa 1 | Pendapatan: 4976
Penduduk 27 | Desa 3 | Pendapatan: 5233
Penduduk 28 | Desa 5 | Pendapatan: 1141
Penduduk 29 | Desa 4 | Pendapatan: 8046
Penduduk 30 | Desa 4 | Pendapatan: 7568
Penduduk 31 | Desa 1 | Pendapatan: 9954
Penduduk 32 | Desa 4 | Pendapatan: 3801
Penduduk 33 | Desa 5 | Pendapatan: 9761
Penduduk 34 | Desa 1 | Pendapatan: 2866
Penduduk 35 | Desa 1 | Pendapatan: 6593
Penduduk 36 | Desa 4 | Pendapatan: 1517
Penduduk 37 | Desa 1 | Pendapatan: 3637
Penduduk 38 | Desa 1 | Pendapatan: 8141
Penduduk 39 | Desa 1 | Pendapatan: 1658
Penduduk 40 | Desa 2 | Pendapatan: 8341
Penduduk 41 | Desa 5 | Pendapatan: 5576
Penduduk 42 | Desa 5 | Pendapatan: 5596
Penduduk 43 | Desa 5 | Pendapatan: 2973
Penduduk 44 | Desa 5 | Pendapatan: 5380
Penduduk 45 | Desa 5 | Pendapatan: 5080
Penduduk 46 | Desa 1 | Pendapatan: 6586
Penduduk 47 | Desa 5 | Pendapatan: 6569
Penduduk 48 | Desa 3 | Pendapatan: 4153
Penduduk 49 | Desa 3 | Pendapatan: 7995
Penduduk 50 | Desa 2 | Pendapatan: 5832

=== LEVEL 2 : RINGKASAN PER DESA ===
Desa 1 | Penduduk: 15 | Total: 72319 | Rata-rata: 4821.27
Desa 2 | Penduduk: 7 | Total: 47072 | Rata-rata: 6724.57
Desa 3 | Penduduk: 9 | Total: 39546 | Rata-rata: 4394
Desa 4 | Penduduk: 10 | Total: 53035 | Rata-rata: 5303.5
Desa 5 | Penduduk: 9 | Total: 48910 | Rata-rata: 5434.44

=== LEVEL 3 : KEPUTUSAN ===
>> Desa dengan rata-rata pendapatan tertinggi: Desa 2 dengan rata-rata 6724.57