Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<stdio.h>
- #include<time.h>
- #include<ctype.h>
- #include<string.h>
- //log kamar
- struct
- {
- char no_kamar[4];
- char jenis_kamar[11];
- }log_kamar;
- int Read1(FILE *File, int RecNum);
- int View1(FILE *File, int RecNum);
- int adddata1(FILE *File);
- void List1(FILE *File);
- //log jenis kamar
- struct
- {
- int idkam;
- char jenis_kamar[11];
- int harga;
- int jumlah_kamar;
- }log_jenis_kamar;
- int Read2(FILE *File, int RecNum);
- int View2(FILE *File, int RecNum);
- int adddata2(FILE *File);
- void List2(FILE *File);
- //log penghuni
- struct
- {
- char id[15];
- char nama_penghuni[20];
- char no_hp[12];
- char no_kamar[4];
- }log_penghuni;
- int Read3(FILE *File, int RecNum);
- int View3(FILE *File, int RecNum);
- int Write3(FILE *FIle, int RecNum);
- int adddata3(FILE *File);
- void List3(FILE *File);
- int Edit3(FILE *File, int RecNum);
- int del3(FILE *File, int RecNum);
- //main log
- struct
- {
- char faktur[15];
- char id[15];
- char no_kamar[4];
- int idkam;
- int hari;
- int total_harga;
- int dp;
- }log_main;
- int Read4(FILE *File, int RecNum);
- int View4(FILE *File, int RecNum);
- int Write4(FILE *FIle, int RecNum);
- int adddata4(FILE *File);
- void List4(FILE *File);
- int Edit4(FILE *File, int RecNum);
- int del4(FILE *File, int RecNum);
- ///////////////////////////////////////////////////////////////
- FILE *FileOpen(char *Filename);
- void logkamar();
- void logjenis();
- void logpenghuni();
- void logmain();
- //fungsi main.....................................
- int main()
- {
- int Rec=0;
- do
- {
- printf("---------- SELAMAT DATANG -------------\n\n");
- printf("\n Silakan Pilih Table (1-4)(5=exit) \n");
- printf("1.Log Kamar \n2.Log Jenis Kamar \n3.Log Penghuni \n4.Main Log \n5.Keluar \n");
- printf("Masukkan pilihan Anda = ");
- int pilih;
- scanf("%d",&pilih);
- switch(pilih)
- {
- case 1: logkamar();
- break;
- case 2: logjenis();
- break;
- case 3 : logpenghuni();
- break;
- case 4 : logmain();
- break;
- case 5 : exit(1);
- }
- while(getchar()!='\n');
- }while(1);
- }
- //buka file//////////////////////////////////////////////////
- FILE *FileOpen(char *Filename)
- {
- FILE *pFile;
- pFile=fopen(Filename,"rb+");
- if(!pFile)
- pFile=fopen(Filename,"wb+");
- return pFile;
- }
- // log kamar sampai 153///////////////////////////////////////////////////
- void logkamar()
- {
- int Rec=0;
- FILE *lkamar;
- lkamar=FileOpen("log_kamar.txt");
- if(!lkamar)
- {
- printf("FILE TAK BSA DIBUKA!\n\n");
- exit(1);
- }
- int pilih;
- do
- {
- printf("-------------------------- LOG KAMAR ----------------------------\n\n");
- printf("MENU :\n1. Masukkan A (ADD) untuk menambah data\n2. Masukkan V (VIEW) untuk melihat 1 data yang sudah diinput\n3. Masukkan L (LIST) untuk melihat semua data yang ada\n4. Masukkan B (BACK) untuk kembali ke menu utama \nPilihan anda: \n");
- switch(toupper(getchar()))
- {
- case 'A': Rec=adddata1(lkamar);
- printf("Record #%d Added \n\n",Rec);
- break;
- case 'V': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- View1(lkamar,Rec);
- break;
- case 'L': List1(lkamar);
- break;
- case 'B':fclose(lkamar);
- main();
- }
- while(getchar()!='\n');
- }while(1);
- }
- int adddata1(FILE *File)
- {
- memset(&log_kamar,0,sizeof(log_kamar));
- printf("Nomor Kamar =");
- scanf("%s",log_kamar.no_kamar);
- printf("Jenis Kamar =");
- scanf("%s",log_kamar.jenis_kamar);
- fseek(File,0,SEEK_END);
- fwrite(&log_kamar,sizeof(log_kamar),1,File);
- return (ftell(File) / sizeof(log_kamar)) - 1;
- }
- int View1 (FILE *File, int RecNum)
- {
- if (! Read1(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("Nomor Kamar : %s\n",log_kamar.no_kamar);
- printf("Jenis Kamar : %-4s\n",log_kamar.jenis_kamar);
- printf("-----\n");
- return RecNum;
- }
- int Read1(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_kamar), SEEK_SET) == 0 )
- if ( fread(&log_kamar,sizeof(log_kamar),1,File) )
- return 1;
- return 0;
- }
- void List1(FILE *File )
- {
- int i = 0;
- printf("\nRecord \t No Kamar \t Jenis Kamar \n\n");
- while (Read1(File,i))
- {
- printf("%3d \t %4s \t %9s\n",i,log_kamar.no_kamar,log_kamar.jenis_kamar);
- i++;
- }
- printf("\n\n");
- }
- // log kamar selesai dari 72///////////////////////////////////////////
- // log jenis sampai 241///////////////////////////////////////////////
- void logjenis()
- {
- int Rec=0;
- FILE *ljenis;
- ljenis=FileOpen("log_jenis_kamar.txt");
- if(!ljenis)
- {
- printf("FILE TAK BSA DIBUKA!\n\n");
- exit(1);
- }
- do
- {
- printf("MENU :\n1. Masukkan A (ADD) untuk menambah data\n2. Masukkan V (VIEW) untuk melihat 1 data yang sudah diinput\n3. Masukkan L (LIST) untuk melihat semua data yang ada\n4. Masukkan B (BACK) untuk kembali ke menu utama \nPilihan anda: \n");
- switch(toupper(getchar()))
- {
- case 'A':
- printf("*ID Kamar Otomatis\n");
- Rec=adddata2(ljenis);
- printf("Record #%d Added \n\n",Rec);
- break;
- case 'V': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- View2(ljenis,Rec);
- break;
- case 'L': List2(ljenis);
- break;
- case 'B':fclose(ljenis);
- main();
- }
- while(getchar()!='\n');
- }while(1);
- }
- int adddata2(FILE *File)
- {
- int i=0;
- while(Read2(File,i))
- i++;
- memset(&log_jenis_kamar,0,sizeof(log_jenis_kamar));
- printf("ID Kamar =");
- if(ftell(File)!=0)
- log_jenis_kamar.idkam=(ftell(File) / sizeof(log_jenis_kamar));
- else
- log_jenis_kamar.idkam=0;
- printf("%d\n",log_jenis_kamar.idkam);
- printf("Jenis Kamar =");
- scanf("%s",log_jenis_kamar.jenis_kamar);
- printf("Harga Kamar =");
- scanf("%d",&log_jenis_kamar.harga);
- printf("Jumlah Kamar =");
- scanf("%d",&log_jenis_kamar.jumlah_kamar);
- fseek(File,0,SEEK_END);
- fwrite(&log_jenis_kamar,sizeof(log_jenis_kamar),1,File);
- return (ftell(File) / sizeof(log_jenis_kamar)) - 1;
- }
- int View2 (FILE *File, int RecNum)
- {
- if (! Read2(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("ID KAMAR : %d \n",log_jenis_kamar.idkam);
- printf("Jenis Kamar : %-4s\n",log_jenis_kamar.jenis_kamar);
- printf("Harga Kamar : %d\n",log_jenis_kamar.harga);
- printf("Jumlah Kamar : %d\n",log_jenis_kamar.jumlah_kamar);
- printf("-----\n");
- return RecNum;
- }
- int Read2(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_jenis_kamar), SEEK_SET) == 0 )
- if ( fread(&log_jenis_kamar,sizeof(log_jenis_kamar),1,File) )
- return 1;
- return 0;
- }
- void List2(FILE *File )
- {
- int i = 0;
- printf("\nRecord \t ID Kamat \t Jenis Kamar \t Harga \t Jumlah Kamar \n\n");
- while (Read2(File,i))
- {
- printf("%3d \t %d \t %9s \t %d \t %d\n",i,log_jenis_kamar.idkam, log_jenis_kamar.jenis_kamar,log_jenis_kamar.harga,log_jenis_kamar.jumlah_kamar);
- i++;
- }
- printf("\n\n");
- }
- //log jenis dari 155//////////////////////////////////////////////////
- //log penghuni sampai/////////////////////////////////////////////////
- void logpenghuni()
- {
- int Rec=0;
- FILE *lpenghuni;
- lpenghuni=FileOpen("log_penghuni.txt");
- if(!lpenghuni)
- {
- printf("FILE TAK BSA DIBUKA!\n\n");
- exit(1);
- }
- do
- {
- printf("MENU :\n1. Masukkan A (ADD) untuk menambah data\n2. Masukkan E (EDIT) untuk mengedit data\n3. Masukkan D (DELETE) untuk menghapus data\n4. Masukkan V (VIEW) untuk melihat 1 data yang sudah diinput\n5. Masukkan L (LIST) untuk melihat semua data yang ada\n6. Masukkan B (BACK) untuk kembali ke menu utama \nPilihan anda: \n");
- switch(toupper(getchar()))
- {
- case 'A': Rec=adddata3(lpenghuni);
- printf("Record #%d Added \n\n",Rec);
- break;
- case 'E': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- Edit3(lpenghuni,Rec);
- break;
- case 'D': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- del3(lpenghuni,Rec);
- break;
- case 'V': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- View3(lpenghuni,Rec);
- break;
- case 'L': List3(lpenghuni);
- break;
- case 'B':fclose(lpenghuni);
- main();
- }
- while(getchar()!='\n');
- }while(1);
- }
- int adddata3(FILE *File)
- {
- memset(&log_penghuni,0,sizeof(log_penghuni));
- printf("ID =");
- scanf("%s",log_penghuni.id);
- printf("Nama Penghuni =");
- scanf("%s",log_penghuni.nama_penghuni);
- printf("No HP :");
- scanf("%s",log_penghuni.no_hp);
- printf("Nomor Kamar =");
- scanf("%s",log_penghuni.no_kamar);
- fseek(File,0,SEEK_END);
- fwrite(&log_penghuni,sizeof(log_penghuni),1,File);
- return (ftell(File) / sizeof(log_penghuni)) - 1;
- }
- int View3 (FILE *File, int RecNum)
- {
- if (! Read3(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("ID : %-4s\n",log_penghuni.id);
- printf("Nama : %-4s\n",log_penghuni.nama_penghuni);
- printf("No Hp : %-4s\n",log_penghuni.no_hp);
- printf("Nomor Kamar: %-4s\n",log_penghuni.no_kamar);
- printf("-----\n");
- return RecNum;
- }
- int Read3(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_penghuni), SEEK_SET) == 0 )
- if ( fread(&log_penghuni,sizeof(log_penghuni),1,File) )
- return 1;
- return 0;
- }
- void List3(FILE *File )
- {
- int i = 0;
- printf("\nRecord \t ID \t Nama \t No HP \t No Kamar \n\n");
- while (Read3(File,i))
- {
- printf("%3d \t %s \t %s \t %s \t %s \n",i,log_penghuni.id,log_penghuni.nama_penghuni,log_penghuni.no_hp,log_penghuni.no_kamar);
- i++;
- }
- printf("\n\n");
- }
- int Write3(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_penghuni), SEEK_SET) == 0 )
- if ( fwrite(&log_penghuni,sizeof(log_penghuni),1,File) )
- return 1;
- return 0;
- }
- int Edit3(FILE *File, int RecNum)
- {
- if (! Read3(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("ID : %-4s\n",log_penghuni.id);
- printf("Nama : %-4s\n",log_penghuni.nama_penghuni);
- printf("No Hp : %-4s\n",log_penghuni.no_hp);
- printf("Nomor Kamar: %-4s\n",log_penghuni.no_kamar);
- printf("-----\n");
- do
- {
- while(getchar() != '\n');
- printf("Ubah :\n1. Nama (N)\n2. No HP (H)\n3. No Kamar (K)\n4. Selesai Edit (S)\nPilihan anda: \n");
- switch (toupper(getchar()))
- {
- case 'N' :
- printf("\nMasukan Nama Pelangan : ");
- scanf("%s",log_penghuni.nama_penghuni);
- break;
- case 'H' :
- printf("Masukan No HP : ");
- scanf(" %s",log_penghuni.no_hp);
- break;
- case 'K' :
- printf("Kamar Nomor : ");
- scanf(" %s",log_penghuni.no_kamar);
- break;
- case 'S' :
- if (Write3(File,RecNum))
- printf("\nRecord #%d updated\n",RecNum);
- return RecNum;
- }
- } while(1);
- return 0;
- }
- int del3(FILE *File, int RecNum)
- {
- FILE *del;
- del=FileOpen("sementara.txt");
- if (! Read3(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("ID : %-4s\n",log_penghuni.id);
- printf("Nama : %-4s\n",log_penghuni.nama_penghuni);
- printf("No Hp : %-4s\n",log_penghuni.no_hp);
- printf("Nomor Kamar: %-4s\n",log_penghuni.no_kamar);
- printf("-----\n");
- int yes;
- printf("Yakin Data Mau di Hapus? 1=Ya atau 0=Tidak\n");
- scanf("%d",&yes);
- if(yes==1)
- {
- int k=0;
- while(Read3(File,k))
- {
- if(RecNum!=k)
- {
- fwrite(&log_penghuni,sizeof(log_penghuni),1,del);
- }
- k++;
- }
- fclose(del);
- fclose(File);
- remove("log_penghuni.txt");
- rename("sementara.txt","log_penghuni.txt");
- printf("Data Berhasil dihapus.\n\n");
- File=FileOpen("log_penghuni.txt");
- }
- return 0;
- }
- // log penghuni selesai dari/////////////////////////////////////////////
- // main log sampai //////////////////////////////////////////////////////
- void logmain()
- {
- int Rec=0;
- FILE *lmain;
- lmain=FileOpen("log_main.txt");
- if(!lmain)
- {
- printf("FILE TAK BSA DIBUKA!\n\n");
- exit(1);
- }
- do
- {
- printf("MENU :\n1. Masukkan A (ADD) untuk menambah data\n2. Masukkan E (EDIT) untuk mengedit data\n3. Masukkan D (DELETE) untuk menghapus data\n4. Masukkan V (VIEW) untuk melihat 1 data yang sudah diinput\n5. Masukkan L (LIST) untuk melihat semua data yang ada\n6. Masukkan B (BACK) untuk kembali ke menu utama \nPilihan anda: \n");
- switch(toupper(getchar()))
- {
- case 'A': Rec=adddata4(lmain);
- if(Rec==-1);
- else
- printf("Record #%d Added \n\n",Rec);
- break;
- case 'E': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- Edit4(lmain,Rec);
- break;
- case 'D': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- del4(lmain,Rec);
- break;
- case 'V': printf("\n Record number (-1 Cancel):");
- scanf("%d",&Rec);
- if(Rec>-1)
- View4(lmain,Rec);
- break;
- case 'L': List4(lmain);
- break;
- case 'B':fclose(lmain);
- main();
- }
- while(getchar()!='\n');
- }while(1);
- }
- int adddata4(FILE *File)
- {
- FILE *jenkam;
- jenkam=FileOpen("log_jenis_kamar.txt");
- memset(&log_main,0,sizeof(log_main));
- printf("Faktur =");
- scanf("%s",log_main.faktur);
- printf("ID =");
- scanf("%s",log_main.id);
- printf("No Kamar :");
- scanf("%s",log_main.no_kamar);
- printf("ID Kamar =");
- scanf("%d",&log_main.idkam);
- if(!Read2(jenkam,log_main.idkam))
- {
- printf("Jenis Kamar Salah\n");
- return -1;
- }
- ////////////////////////////////////////////////////////////////////////////////////
- printf("Lama Menginap =");
- scanf("%d",&log_main.hari);
- log_main.total_harga=log_main.hari*log_jenis_kamar.harga;
- printf("Total Harga =");
- printf("%d \n",log_main.total_harga);
- printf("DP =");
- scanf("%d",&log_main.dp);
- fseek(File,0,SEEK_END);
- fwrite(&log_main,sizeof(log_main),1,File);
- return (ftell(File) / sizeof(log_main)) - 1;
- }
- int Read4(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_main), SEEK_SET) == 0 )
- if ( fread(&log_main,sizeof(log_main),1,File) )
- return 1;
- return 0;
- }
- int View4 (FILE *File, int RecNum)
- {
- if (! Read4(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("Faktur: %-4s\n",log_main.faktur);
- printf("ID : %-4s\n",log_main.id);
- printf("No Kamar : %-4s\n",log_main.no_kamar);
- printf("ID Kamar : %-4s\n",log_main.idkam);
- printf("Lama Inap : %d\n",log_main.hari);
- printf("Total Harga : %d\n",log_main.total_harga);
- printf("DP : %d\n",log_main.dp);
- printf("-----\n");
- return RecNum;
- }
- void List4(FILE *File )
- {
- int i = 0;
- printf("\nRecord \t Faktur \t ID \t No Kamar \t ID Kamar \t Lama Inap \t Total Harga \t DP \n\n");
- while (Read4(File,i))
- {
- printf("%3d \t %s \t %s \t %s \t %d \t %d \t %d \t %d \n",i,log_main.faktur,log_main.id,log_main.no_kamar,log_main.idkam,log_main.hari,log_main.total_harga,log_main.dp);
- i++;
- }
- printf("\n\n");
- }
- int Write4(FILE *File, int RecNum)
- {
- if( fseek(File, RecNum * sizeof(log_main), SEEK_SET) == 0 )
- if ( fwrite(&log_main,sizeof(log_main),1,File) )
- return 1;
- return 0;
- }
- int Edit4(FILE *File, int RecNum)
- {
- if (! Read4(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("Faktur: %-4s\n",log_main.faktur);
- printf("ID : %-4s\n",log_main.id);
- printf("No Kamar : %-4s\n",log_main.no_kamar);
- printf("ID Kamar : %-4s\n",log_main.idkam);
- printf("Lama Inap : %d\n",log_main.hari);
- printf("Total Harga : %d\n",log_main.total_harga);
- printf("DP : %d\n",log_main.dp);
- printf("-----\n");
- do
- {
- while(getchar() != '\n');
- printf("Ubah :\n1. ID (I)\n2. No Kamar (K)\n3.Jenis Kamar (J)\n4. Lama Inap (L)\n5. DP (D)\n6. Selesai Edit (S)\nPilihan anda: \n");
- switch (toupper(getchar()))
- {
- case 'I' :
- printf("\nMasukan ID : ");
- scanf("%s",log_main.id);
- break;
- case 'K' :
- printf("Kamar Nomor : ");
- scanf(" %s",log_main.no_kamar);
- break;
- case 'J' :
- printf("Jenis Kamar : ");
- scanf(" %s",log_main.idkam);
- break;
- case 'L' :
- printf("Lama Inap : ");
- scanf(" %d",log_main.hari);
- break;
- case 'D' :
- printf("DP : ");
- scanf(" %d",log_main.dp);
- break;
- case 'S' :
- if (Write4(File,RecNum))
- printf("\nRecord #%d updated\n",RecNum);
- return RecNum;
- }
- } while(1);
- return 0;
- }
- int del4(FILE *File, int RecNum)
- {
- FILE *del;
- del=FileOpen("sementara2.txt");
- if (! Read4(File,RecNum))
- {
- printf("Invalid record\n");
- return -1;
- }
- printf("-----\n");
- printf("Record : %d\n",RecNum);
- printf("Faktur: %-4s\n",log_main.faktur);
- printf("ID : %-4s\n",log_main.id);
- printf("No Kamar : %-4s\n",log_main.no_kamar);
- printf("ID Kamar : %-4s\n",log_main.idkam);
- printf("Lama Inap : %d\n",log_main.hari);
- printf("Total Harga : %d\n",log_main.total_harga);
- printf("DP : %d\n",log_main.dp);
- printf("-----\n");
- int yes;
- printf("Yakin Data Mau di Hapus? 1=Ya atau 0=Tidak\n");
- scanf("%d",&yes);
- if(yes==1)
- {
- int k=0;
- while(Read4(File,k))
- {
- if(RecNum!=k)
- {
- fwrite(&log_main,sizeof(log_main),1,del);
- }
- k++;
- }
- fclose(del);
- fclose(File);
- remove("log_main.txt");
- rename("sementara2.txt","log_main.txt");
- printf("Data Berhasil dihapus.\n\n");
- File=FileOpen("log_main.txt");
- }
- return 0;
- }
- //Main log selesai dari/////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement