Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <windows.h>
- void tambahDataWarga();
- void tampilDataWarga();
- void gotoxy();
- //deklarasi file
- FILE *f;
- COORD coord = {0,0};
- //materi struct
- typedef struct Warga{
- char nama[100];
- char alamat[100];
- char ktp[15];
- int umur;
- char jenisKelamin;
- } Warga;
- //inisialisasi struct
- Warga b;
- void gotoxy(int x, int y){
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
- }
- void tambahDataWarga(){
- struct Warga biodataBaru;
- f = fopen("textPercobaan.txt", "a");
- if(f == NULL) {
- printf("File tidak bisa diproses!");
- exit(1);
- }
- printf("Masukkan nama anda: ");
- fflush(stdin); gets(biodataBaru.nama);
- printf("Masukkan asal daerah: ");
- fflush(stdin); gets(biodataBaru.alamat);
- printf("Masukkan no ktp: ");
- gotoxy(0,14); printf("Warning: ");
- char potongan;
- int i;
- int x = 17;
- int y = 9;
- for(i = 0; i <= 15; ){
- gotoxy(x,y); fflush(stdin); potongan = getch();
- if(((potongan - '0') < 0) || (((potongan - '0') > 9))){
- gotoxy(9,14); printf("jangan memasukkan selain number!");
- gotoxy(x,y);
- }else{
- gotoxy(x,y); printf("%c",potongan);
- biodataBaru.ktp[i] = potongan;
- // naikkan koordinat x
- x++;
- // digunakan untuk mengisi posisi array yang selanjutnya
- i++;
- }//akhir if else
- } // akhir for
- gotoxy(0,14); printf(" "); // untuk menghapus tulisan warning: dan pesan errornya
- gotoxy(0,12); printf("Masukkan umur anda: ");
- scanf("%i",&biodataBaru.umur);
- printf("Pilih jenis kelamin [l/p]: ");
- fflush(stdin); biodataBaru.jenisKelamin = getchar();
- fwrite(&biodataBaru, sizeof(biodataBaru), 1, f);
- fclose(f);
- }
- void tampilDataWarga(){
- f = fopen("textPercobaan.txt", "r");
- if(f == NULL){
- // kalo error. program loncat kesini
- printf("File tidak bisa diproses!\n");
- printf("Mungkin file belum ada, silahkan pilih tambahkan data warga\n");
- exit(1);
- }
- // kalo ga error. program loncat kesini
- int i = 1;
- printf("====== Tampilkan Semua Data ======\n");
- //for(;;){
- while(fread(&b, sizeof(b), 1, f)){
- //(fread(&b, sizeof(b), 1, f));
- //if(feof(f)) break;
- printf("%i.\tNama: %s\n", i , b.nama);
- printf("\tAsal: %s\n", b.alamat);
- printf("\tKTP: ");
- int j;
- for(j = 0; j <=15; j++){
- printf("%c",b.ktp[j]);
- }
- printf("\n\tUmur: %i\n",b.umur);
- printf("\tJenis Kelamin: %c\n",b.jenisKelamin);
- i++;
- }
- fclose(f);
- printf("===================================\n");
- }
- int main(){
- char pilihMenuUtama;
- do {
- //system itu gunanya untuk memanggil semua fungsi yang bisa di panggil di dalam cmd
- system("cls");
- printf("Menu Utama\n");
- printf("1. Tampilkan Data Warga\n");
- printf("2. Tambahkan Data Warga\n");
- printf("3. Keluar\n");
- printf("Pilihan anda: ");
- fflush(stdin);
- pilihMenuUtama = getchar();
- getchar();
- printf("\n\n");
- switch(pilihMenuUtama){
- case '1':{
- tampilDataWarga();
- printf("tekan sembarang untuk melanjutkan"); getch();
- break;
- }
- case '2':{
- tambahDataWarga();
- printf("tekan sembarang untuk melanjutkan"); getch();
- break;
- }
- case '3':{
- printf("tekan sembarang untuk keluar"); getch();
- break;
- }
- default:{
- printf("tekan angka 1 atau 2 atau 3"); getch();
- break;
- }
- }
- } while(pilihMenuUtama != '3');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement