‘ RinariN ‘

April 15, 2008

program database (add,del,show record)

Diarsipkan di bawah: C programming — by rinarin @ 7:38 am

/* DEKLARASI FILE HEADER */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

/* DEKLARASI STRUCT */
typedef struct {
int jml;
}HEADER;

typedef struct {
char nrp[10];
char nama[30];
char alamat[50];
} MHS;

/* DEKLARASI VARIABEL GLOBAL */
FILE *fdata;
MHS data;
HEADER buf;
/* PEMANGGGILAN FUNGSI */
void menu();
void add ();
void del ();
void show ();

/* FUNGSI MAIN */
int main (){
int record=1;

/* OPEN FILE */
if((fdata=fopen(“database_mhs.DAT”,”wb+”))==NULL){
printf(“Maap,,anda belum beruntung!!\n”);
exit(1);
}

printf(“Masukkan jumlah data : “);    //input jml data
scanf(“%d”,&buf.jml);
fwrite(&buf, sizeof(buf), 1, fdata);

for(int i=1;i<=buf.jml;i++){
printf(“\nMahasiswa ke-%d\n”, record);
printf(“NRP\t: “);      //input nrp
fflush(stdin);
gets(data.nrp);
printf(“Nama\t: “);     //input nama
fflush(stdin);
gets(data.nama);
printf(“Alamat\t: “);    //input alamat
fflush(stdin);
gets(data.alamat);
record++;
fwrite(&data, sizeof(data), 1, fdata);
}
system(“cls”);
menu();

fclose(fdata);
getch();
return 0;
}

void menu (){
int ulang;
char pilih;
while (pilih !=9){

printf(“\n\nPROGRAM… “);
printf(“  \n============================”);
printf(“\n1. Add record”);
printf(“  \n2. Delete record”);
printf(“  \n3. Show record”);
printf(“  \n9. Quit”);
printf(“\n=============================”);
printf(“\nWhat do you wanna do? “);
fflush (stdin);
scanf (“%c”, &pilih);
printf (“\n”);
switch (pilih) {
case ‘1′:
add ();
break;
case ‘2′:
del ();
break;
case ‘3′:
show ();
break;
case ‘9′:
exit (0);
break;
default :
printf (“Hoei,, pilihannya cuma 1, 2, 3, ama 9!! …\n”);
}
}
}

void add (){
fseek(fdata, sizeof(buf)+(buf.jml)*(sizeof(data)), SEEK_SET);
printf(“NRP\t: “);
fflush(stdin);
gets(data.nrp);
printf(“Nama\t: “);
fflush(stdin);
gets(data.nama);
printf(“Alamat\t: “);
fflush(stdin);
gets(data.alamat);
fwrite(&data, sizeof(data), 1, fdata);
buf.jml++;
}

void del (){
int record;
printf(“\nMasukkan indeks record yang akan di-delete : “);
scanf(“%d”, &record);

fseek(fdata, sizeof(buf)+(buf.jml-1)*(sizeof(data)), SEEK_SET);
fread(&data, sizeof(data), 1, fdata);
fseek(fdata, sizeof(buf)+((record-1)*sizeof(data)), SEEK_SET);
fwrite(&data, sizeof(data), 1, fdata);
buf.jml–;
}

void show (){
char *nrp;
char *nama;
char *alamat;
int no = 1;
// malloc digunakan u/ mengalokasikan sebuah blok dg ukuran byte dari memori
nrp=(char*)malloc(10);
nama=(char*)malloc(30);
alamat=(char*)malloc(50);

fseek(fdata, sizeof(buf), SEEK_SET);
printf(“%2s. %-10s\t%-15s\t%-20s\n\n”, “No”, “NRP”, “Nama”, “Alamat”);
for(int i=0; i<buf.jml; i++)
{
fread(&data, sizeof(data), 1, fdata);
strncpy(nrp, data.nrp, 10);
nrp[10]=”;
strncpy(nama, data.nama, 30);
nama[30]=”;
strncpy(alamat, data.alamat, 50);
alamat[50]=”;
printf(“%2d. %-10s\t%-15s\t%-20s\n”, no, nrp, nama, alamat);
no++;
}
}

1 Komentar »

  1. Thx 4 share this code….it helps me a lot!!

    Komentar oleh Dian — April 22, 2009 @ 6:36 pm


RSS umpan untuk komentar-komentar dalam tulisan ini. URI Lacak Balik

Tinggalkan komentar

Didukung oleh WordPress.com