@@ -470,6 +470,7 @@ async function edit_data() {
470470}
471471// ================================================================================================
472472
473+ // HAPUS DATA KARYAWAN ============================================================================
473474async 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