#include <iostream> #include <vector> #include <iomanip> #include <cstdlib> #include <ctime> using namespace std; // Struktur untuk data mentah (Level 1) struct Penduduk { int id; int desa_id; double pendapatan; }; // Struktur untuk data terolah (Level 2) struct Desa { int id; long jumlah_penduduk = 0; double total_pendapatan = 0; double rata_pendapatan = 0; }; // Fungsi utama int main() { srand(time(0)); // Simulasi data int jumlahDesa = 5; // maksimal 100000 int jumlahPenduduk = 50; // maksimal 30000000 vector<Penduduk> data(jumlahPenduduk); vector<Desa> desa(jumlahDesa + 1); // ============================ // LEVEL 1 : Penyimpanan Data // ============================ cout << "=== LEVEL 1 : DATA MENTAH ===\n"; for (int i = 0; i < jumlahPenduduk; i++) { data[i].id = i + 1; data[i].desa_id = rand() % jumlahDesa + 1; data[i].pendapatan = 1000 + rand() % 9000; // antara 1000–10000 cout << "Penduduk " << setw(2) << data[i].id << " | Desa " << data[i].desa_id << " | Pendapatan: " << data[i].pendapatan << endl; } // ============================== // LEVEL 2 : Olah Data Ringkasan // ============================== cout << "\n=== LEVEL 2 : RINGKASAN PER DESA ===\n"; for (auto &p : data) { desa[p.desa_id].id = p.desa_id; desa[p.desa_id].jumlah_penduduk++; desa[p.desa_id].total_pendapatan += p.pendapatan; } for (int i = 1; i <= jumlahDesa; i++) { if (desa[i].jumlah_penduduk > 0) desa[i].rata_pendapatan = desa[i].total_pendapatan / desa[i].jumlah_penduduk; cout << "Desa " << i << " | Penduduk: " << desa[i].jumlah_penduduk << " | Total: " << desa[i].total_pendapatan << " | Rata-rata: " << desa[i].rata_pendapatan << endl; } // ================================= // LEVEL 3 : Keputusan (DSS Output) // ================================= cout << "\n=== LEVEL 3 : KEPUTUSAN ===\n"; int desa_terkaya = 1; double maxRata = desa[1].rata_pendapatan; for (int i = 2; i <= jumlahDesa; i++) { if (desa[i].rata_pendapatan > maxRata) { maxRata = desa[i].rata_pendapatan; desa_terkaya = i; } } cout << ">> Desa dengan rata-rata pendapatan tertinggi: Desa " << desa_terkaya << " dengan rata-rata " << maxRata << endl; return 0; }
Standard input is empty
=== 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