commit 6d3c4af04581eea932c61a0d217310fec1a0c7f7 Author: muhammadrizalsupriadi Date: Fri Jan 12 15:08:48 2024 +0700 dummy-data diff --git a/dummy_data_KPU.py b/dummy_data_KPU.py new file mode 100644 index 0000000..db0bdfd --- /dev/null +++ b/dummy_data_KPU.py @@ -0,0 +1,105 @@ +import csv +import random +import hashlib + +def generate_tps_code(tps_counter): + return f"TPS{tps_counter:02}" + +def generate_id(prov, kota, kec, kel, tps_code): + return f"{prov}-{kota}-{kec}-{kel}-{tps_code}" + +def create_dummy_data(): + data_list = [] + total_jml_surat_diterima = 0 + total_jml_surat_dikembalikan = 0 + total_jml_surat_tidak_digunakan = 0 + total_jml_surat_digunakan = 0 + total_sah_calon_a = 0 + total_sah_calon_b = 0 + total_sah_calon_c = 0 + total_tidak_sah = 0 + + # Provinsi 51 + for provinsi_51 in range(51, 51 + 3): + for kota_51 in range(provinsi_51 * 100 + 1, provinsi_51 * 100 + 3): # Update rentang untuk kota + for kecamatan_51 in range(kota_51 * 1000 + 50, kota_51 * 1000 + 53): + for i in range(3): + kelurahan_51 = 7 + i + combined_number_kelurahan_51 = int(f"{kecamatan_51:07d}{kelurahan_51 + 100:03d}") + + for i in range(2): + jml_surat_diterima = random.randint(50, 200) + jml_surat_dikembalikan = random.randint(0, 10) + jml_surat_tidak_digunakan = random.randint(0, 10) + jml_surat_digunakan = jml_surat_diterima - jml_surat_dikembalikan - jml_surat_tidak_digunakan + sah_calon_a = random.randint(0, jml_surat_digunakan) + sah_calon_b = random.randint(0, jml_surat_digunakan - sah_calon_a) + sah_calon_c = jml_surat_digunakan - sah_calon_a - sah_calon_b + jml_surat_tidak_sah = jml_surat_digunakan - (sah_calon_a + sah_calon_b + sah_calon_c) + + total_jml_surat_diterima += jml_surat_diterima + total_jml_surat_dikembalikan += jml_surat_dikembalikan + total_jml_surat_tidak_digunakan += jml_surat_tidak_digunakan + total_jml_surat_digunakan += jml_surat_digunakan + total_sah_calon_a += sah_calon_a + total_sah_calon_b += sah_calon_b + total_sah_calon_c += sah_calon_c + total_tidak_sah += jml_surat_tidak_sah + + # Generate random data hash + data_hash1 = hashlib.sha256(str(random.getrandbits(256)).encode('utf-8')).hexdigest() + data_hash2 = hashlib.sha256(str(random.getrandbits(256)).encode('utf-8')).hexdigest() + + # Generate ID based on the pattern + tps_code = generate_tps_code(i + 1) + random_id = generate_id(provinsi_51, kota_51, kecamatan_51, combined_number_kelurahan_51, tps_code) + + args_value = { + "Username": f"zilla{i+1}", + "ID": random_id, + "DataHash1": data_hash1, + "DataHash2": data_hash2, + "JmlSuratDiterima": jml_surat_diterima, + "JmlSuratDikembalikan": jml_surat_dikembalikan, + "JmlSuratTidakDigunakan": jml_surat_tidak_digunakan, + "JmlSuratDigunakan": jml_surat_digunakan, + "JmlSuaraSahCalonA": sah_calon_a, + "JmlSuaraSahCalonB": sah_calon_b, + "JmlSuaraSahCalonC": sah_calon_c, + "JmlSuaraSahSeluruhCalon": sah_calon_a + sah_calon_b + sah_calon_c, + "JmlSuaraTidakSah": jml_surat_tidak_sah, + "JmlSuaraSahTidakSah": sah_calon_a + sah_calon_b + sah_calon_c + } + + data_list.append(args_value) + + return data_list, total_jml_surat_diterima, total_jml_surat_dikembalikan, total_jml_surat_tidak_digunakan, total_jml_surat_digunakan, total_sah_calon_a, total_sah_calon_b, total_sah_calon_c, total_tidak_sah + +dummy_data_list, total_jml_surat_diterima, total_jml_surat_dikembalikan, total_jml_surat_tidak_digunakan, total_jml_surat_digunakan, total_a, total_b, total_c, total_tidak_sah = create_dummy_data() +print(f"Total JmlSuratDiterima: {total_jml_surat_diterima}") +print(f"Total JmlSuratDikembalikan: {total_jml_surat_dikembalikan}") +print(f"Total JmlSuratTidakDigunakan: {total_jml_surat_tidak_digunakan}") +print(f"Total JmlSuratDigunakan: {total_jml_surat_digunakan}") +print(f"Total JmlSuaraSahCalonA: {total_a}") +print(f"Total JmlSuaraSahCalonB: {total_b}") +print(f"Total JmlSuaraSahCalonC: {total_c}") +print(f"Total JmlSuaraTidakSah: {total_tidak_sah}") + +# Simpan data dalam format CSV +csv_file_path = 'output.csv' +with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile: + fieldnames = ["Username", "ID", "DataHash1", "DataHash2", "JmlSuratDiterima", "JmlSuratDikembalikan", "JmlSuratTidakDigunakan", "JmlSuratDigunakan", "JmlSuaraSahCalonA", "JmlSuaraSahCalonB", "JmlSuaraSahCalonC", "JmlSuaraSahSeluruhCalon", "JmlSuaraTidakSah", "JmlSuaraSahTidakSah"] + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + + # Tulis header + writer.writeheader() + + # Tulis data + for data in dummy_data_list: + writer.writerow(data) + + # Tulis baris baru untuk total + total_data = {"Username": "Total", "ID": "Total", "JmlSuratDiterima": total_jml_surat_diterima, "JmlSuratDikembalikan": total_jml_surat_dikembalikan, "JmlSuratTidakDigunakan": total_jml_surat_tidak_digunakan, "JmlSuratDigunakan": total_jml_surat_digunakan, "JmlSuaraSahCalonA": total_a, "JmlSuaraSahCalonB": total_b, "JmlSuaraSahCalonC": total_c, "JmlSuaraSahSeluruhCalon": total_a + total_b + total_c, "JmlSuaraTidakSah": total_tidak_sah, "JmlSuaraSahTidakSah": total_a + total_b + total_c} + writer.writerow(total_data) + +print(f"Data telah disimpan dalam file CSV: {csv_file_path}")