@@ -3,20 +3,36 @@ const inquirer = require("inquirer");
33const fs = require ( "fs" ) ;
44const { type } = require ( "os" ) ;
55
6- const isi_file = fs . readFileSync ( "data-karyawan.txt" , "utf-8" ) ;
7- const baris = isi_file . trim ( ) . split ( "\n" ) ;
6+ const file_path = "data-karyawan.txt" ;
7+
8+ if ( ! fs . existsSync ( file_path ) ) {
9+ console . warn ( `File "${ file_path } " tidak ditemukan. Membuat file baru...` ) ;
10+ fs . writeFileSync ( file_path , "" ) ;
11+ }
12+
13+ let = isi_file = "" ;
14+
15+ try {
16+ isi_file = fs . readFileSync ( file_path , "utf-8" ) . trim ( ) ;
17+ } catch ( err ) {
18+ console . error ( `Gagal membaca file "${ file_path } ": ${ err . message } ` ) ;
19+ process . exit ( 1 ) ;
20+ }
21+
22+ const baris = isi_file ? isi_file . split ( "\n" ) : [ ] ;
823
924let data = [ ] ;
1025
1126for ( let i = 0 ; i < baris . length ; i ++ ) {
12- let kolom = baris [ i ] . split ( "|" ) ;
13-
14- data . push ( {
15- ID : kolom [ 0 ] ,
16- NAMA : kolom [ 1 ] ,
17- JABATAN : kolom [ 2 ] ,
18- TELP : kolom [ 3 ] ,
19- } ) ;
27+ const kolom = baris [ i ] . split ( "|" ) ;
28+ if ( kolom . length >= 4 ) {
29+ data . push ( {
30+ ID : kolom [ 0 ] ,
31+ NAMA : kolom [ 1 ] ,
32+ JABATAN : kolom [ 2 ] ,
33+ TELP : kolom [ 3 ] ,
34+ } ) ;
35+ }
2036}
2137
2238// TAMPILKAN DATA =================================================================================
@@ -120,8 +136,14 @@ async function tambah_data() {
120136 . map ( ( item ) => `${ item . ID } |${ item . NAMA } |${ item . JABATAN } |${ item . TELP } ` )
121137 . join ( "\n" ) + "\n" ;
122138
123- fs . writeFileSync ( "data-karyawan.txt" , write_data ) ;
124- console . log ( "========== DATA BERHASIL DITAMBAHKAN DAN DISIMPAN ==========" ) ;
139+ try {
140+ fs . writeFileSync ( file_path , write_data ) ;
141+ console . log (
142+ "========== DATA BERHASIL DITAMBAHKAN DAN DISIMPAN =========="
143+ ) ;
144+ } catch ( err ) {
145+ console . error ( "Gagal menyimpan file." , err . message ) ;
146+ }
125147 } else {
126148 console . log ( "Penyimpanan dibatalkan. Data tidak disimpan." ) ;
127149 }
@@ -252,9 +274,13 @@ async function sort_by_id() {
252274 )
253275 . join ( "\n" ) + "\n" ;
254276
255- fs . writeFileSync ( "data-karyawan.txt" , new_data ) ;
256- data = data_sort ;
257- console . log ( "Data telah disimpan ke file." ) ;
277+ try {
278+ fs . writeFileSync ( file_path , new_data ) ;
279+ data = data_sort ;
280+ console . log ( "Data telah disimpan ke file." ) ;
281+ } catch ( err ) {
282+ console . error ( "Gagal menyimpan file." , err . message ) ;
283+ }
258284 } else {
259285 console . log ( "Aksi dibatalkan. Data tidak disimpan." ) ;
260286 }
@@ -435,8 +461,12 @@ async function edit_data() {
435461 . map ( ( item ) => `${ item . ID } |${ item . NAMA } |${ item . JABATAN } |${ item . TELP } ` )
436462 . join ( "\n" ) + "\n" ;
437463
438- fs . writeFileSync ( "data-karyawan.txt" , new_file_data ) ;
439- console . log ( "Data berhasil diperbarui dan disimpan ke file." ) ;
464+ try {
465+ fs . writeFileSync ( file_path , new_file_data ) ;
466+ console . log ( "Data berhasil diperbarui dan disimpan ke file." ) ;
467+ } catch ( err ) {
468+ console . error ( "Gagal menyimpan file." , err . message ) ;
469+ }
440470}
441471// ================================================================================================
442472
@@ -540,8 +570,12 @@ async function delete_data() {
540570 . map ( ( item ) => `${ item . ID } |${ item . NAMA } |${ item . JABATAN } |${ item . TELP } ` )
541571 . join ( "\n" ) + "\n" ;
542572
543- fs . writeFileSync ( "data-karyawan.txt" , new_file_data ) ;
544- console . log ( "File berhasil diperbarui setelah penghapusan." ) ;
573+ try {
574+ fs . writeFileSync ( "data-karyawan.txt" , new_file_data ) ;
575+ console . log ( "File berhasil diperbarui setelah penghapusan." ) ;
576+ } catch ( err ) {
577+ console . error ( "Gagal menyimpan file." , err . message ) ;
578+ }
545579 } else {
546580 console . log ( "Data di file tidak diubah." ) ;
547581 }
0 commit comments