Skip to content

Commit fa8bcf6

Browse files
committed
Add: confirmation prompts for employee data deletion and display statistics
1 parent 024ad34 commit fa8bcf6

File tree

1 file changed

+56
-12
lines changed

1 file changed

+56
-12
lines changed

main.js

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@ async function edit_data() {
470470
}
471471
// ================================================================================================
472472

473+
// HAPUS DATA KARYAWAN ============================================================================
473474
async function delete_data() {
474475
console.log("========== HAPUS DATA KARYAWAN ==========");
475476

@@ -540,6 +541,7 @@ async function delete_data() {
540541
console.log("========== DATA YANG AKAN DIHAPUS ==========");
541542
console.table([target]);
542543

544+
// KONFIRMASI HAPUS -------------------------------------------
543545
const { delete_confirm } = await inquirer.prompt([
544546
{
545547
type: "confirm",
@@ -555,7 +557,9 @@ async function delete_data() {
555557

556558
data = data.filter((item) => item.ID !== target.ID);
557559
console.log(`Data dengan ID "${target.ID}" berhasil dihapus.`);
560+
// ------------------------------------------------------------
558561

562+
// KONFIRMASI SIMPAN KE FILE SETELAH HAPUS DATA ----------------------------
559563
const { save_delete } = await inquirer.prompt([
560564
{
561565
type: "confirm",
@@ -579,6 +583,38 @@ async function delete_data() {
579583
} else {
580584
console.log("Data di file tidak diubah.");
581585
}
586+
// -------------------------------------------------------------------------
587+
}
588+
// ================================================================================================
589+
590+
function show_statistic() {
591+
console.log("========== STATISTIK DATA KARYAWAN ==========");
592+
593+
const total = data.length;
594+
595+
// STATISTIK PER JABATAN --------------------------------
596+
const per_jabatan = {};
597+
data.forEach((item) => {
598+
const jabatan = item.JABATAN;
599+
per_jabatan[jabatan] = (per_jabatan[jabatan] || 0) + 1;
600+
});
601+
// ------------------------------------------------------
602+
603+
// STATISTIK PER AWALAN ID --------------------------------
604+
const per_awalan_id = {};
605+
data.forEach((item) => {
606+
const awalan = item.ID[0].toUpperCase();
607+
per_awalan_id[awalan] = (per_awalan_id[awalan] || 0) + 1;
608+
});
609+
// --------------------------------------------------------
610+
611+
console.log(`\nTotal Karyawan : ${total}`);
612+
613+
console.log("\nJumlah per Jabatan : ");
614+
console.table(per_jabatan);
615+
616+
console.log("\nJumlah berdasarkan awalan ID : ");
617+
console.table(per_awalan_id);
582618
}
583619

584620
// MENU PILIHAN ===================================================================================
@@ -590,12 +626,13 @@ async function main_menu() {
590626
message: "Pilih Menu : ",
591627
choices: [
592628
"1. Tampilkan Semua Data",
593-
"2. Tambah Data Baru",
594-
"3. Urutkan Data",
595-
"4. Cari Karyawan",
596-
"5. Edit Data",
597-
"6. Hapus Data",
598-
"7. Keluar",
629+
"2. Tampilkan Statistik Data Karyawan",
630+
"3. Tambah Data Baru",
631+
"4. Urutkan Data",
632+
"5. Cari Karyawan",
633+
"6. Edit Data",
634+
"7. Hapus Data",
635+
"8. Keluar",
599636
],
600637
},
601638
]);
@@ -608,42 +645,49 @@ async function main_menu() {
608645
break;
609646
}
610647

611-
case "2. Tambah Data Baru": {
648+
case "2. Tampilkan Statistik Data Karyawan": {
649+
console.log("\n");
650+
await show_statistic();
651+
console.log("\n");
652+
break;
653+
}
654+
655+
case "3. Tambah Data Baru": {
612656
console.log("\n");
613657
await tambah_data();
614658
console.log("\n");
615659
break;
616660
}
617661

618-
case "3. Urutkan Data": {
662+
case "4. Urutkan Data": {
619663
console.log("\n");
620664
await sort_by_id();
621665
console.log("\n");
622666
break;
623667
}
624668

625-
case "4. Cari Karyawan": {
669+
case "5. Cari Karyawan": {
626670
console.log("\n");
627671
await cari_data();
628672
console.log("\n");
629673
break;
630674
}
631675

632-
case "5. Edit Data": {
676+
case "6. Edit Data": {
633677
console.log("\n");
634678
await edit_data();
635679
console.log("\n");
636680
break;
637681
}
638682

639-
case "6. Hapus Data": {
683+
case "7. Hapus Data": {
640684
console.log("\n");
641685
await delete_data();
642686
console.log("\n");
643687
break;
644688
}
645689

646-
case "7. Keluar": {
690+
case "8. Keluar": {
647691
console.log("\n");
648692
console.log("Keluar dari program.");
649693
process.exit();

0 commit comments

Comments
 (0)