-luntas ilmu- selamat pagi teman-teman sebelum kalian mengawali aktifitas kalian alangkah baiknya dimulai berdoa dulu CMWI hehehe. langsung saja teman ini ada sedikit ilmu siapa tahu menambah referensi teman-teman semua ammin. pada tutorial yang lalu saya sudah bahas bagaimana cara membuat program kamus dengan bahasa c atau c++ sekarang ini ane buat program lagi nih, dengan
bahasa c juga pastinya yaitu tentang buku telepon. Dalam hal ini ane memanfaatkan operasi file yang ada di pemrograman c/c++. apabila teman semua masih bingung tentang operasi file maka tenang saja saya akan kasih disini ke kalian semua :D ikuti tutorialnya sampai akhir ya hehehehe semangat koding. berikut kodingnya semoga sukses :t
/*
program ini untuk kecepatan data yang di gunakan untuk meyimpan
tergantung loading pc atau laptop jadi dalam menampilkan datanya agak lemot
salam blogger kediri www.sayfudinblogz.blogspot.com :) LUNTAS ILMU
* boleh edit source tapi jangan hapus credit developer jika tidak dikatakan plagiat*
*/
#include
#include
#include
#include
void header();
void input();
void tampil();
void indtoing();
void ingtoind();
void hapus();
void keluar();
FILE *kamus,*temp;
struct{char nama[35],telp[35];}data; //deklarasi struct untuk inisialisasi nama field
char kar;
main()
{
char pil;
do{
system("cls");
header();
puts("\n\n\n *------MENU PILIHAN------*\n");
printf("1. Input Data Telepon.\n");
printf("2. Tampilkan Data Buku Telepon.\n");
printf("3. Cari nama -> telepon.\n");
printf("4. Cari telepon -> nama.\n");
printf("5. Hapus kata dalam kamus.\n");
printf("6. Keluar\n\n");
printf(" Masukan pilihan anda = ");
pil=getche();
puts("");
switch(pil)
{
case '1':
input();
break;
case '2':
tampil();
break;
case '3':
indtoing();
break;
case '4':
ingtoind();
break;
case '5':
hapus();
break;
case '6':
keluar();
break;
}
printf(" Kembali ke menu awal (y/n) => ");
kar=getche();
}while((kar=='Y')||(kar=='y'));
}
void header()
{
puts(" ========================================");
puts(" | |");
puts(" | *BUKU TELEPON * |");
puts(" | Created by : |");
puts(" | 06 achmad sayfudin |");
puts(" ========================================");
}
/*input kata*/
void input()
{
char pil;
do{
system("cls");
if((kamus=fopen("kamus.txt","a+"))==NULL)
{
printf("data gagal buka ");
exit(1);
}
header();
puts(" \n\t\t\t-----------------\n");
puts(" \t\t\t INPUT DATA BARU\n");
puts(" \t\t\t-----------------\n");
fflush(stdin);
printf("Nama => ");
gets(data.nama); //untuk input data.nama
printf("No Telepon => ");
gets(data.telp); // untuk input data.telp
fflush(stdin);
fwrite(&data,sizeof(data), 1, kamus);
printf("\n input data lagi (y/n)");
pil=getche();
}
while((pil=='Y')||(pil=='y'));
puts("");
}
void tampil()
{
system("cls");
fflush(stdin);
if((kamus=fopen("kamus.txt","r"))==NULL)
{
printf("data gagal di baca ");
exit(1);
}
header();
puts(" \n\t\t\t------------------------\n");
puts(" \t\t\tDaftar Data Kontak Telepon\n");
puts(" \t\t\t--------------------------\n");
printf("\n%-30s %-30s","Nama ","Telepon ");
printf("\n%-30s %-30s","-----------","-----------\n");
while(fread(&data, sizeof(data), 1, kamus)==1) //membaca data dari file
printf("\n%-30s %-30s",data.nama,data.telp);
puts("\n");
fclose(kamus);
}
void indtoing()
{
char cari[35],op;
int i=1;
do{
system("cls");
if((kamus=fopen("kamus.txt","r"))==NULL)
{
printf("data tidak dapat dibuka ");
exit(1);
}
header();
puts(" \n\t\t\t-----------------\n");
puts(" \t\t\tNAMA - TELEPON\n");
puts(" \t\t\t-----------------\n");
printf("masukan nama => ");
fflush(stdin);
gets(cari);
fflush(stdin);
while(fread(&data,sizeof(data),1, kamus)==i)
{
if(strcmp(cari,data.nama)==0)//membandingkan data antara cari dengan data.nama
{
printf("%s = %s ",data.nama,data.telp);
i+=1;
}
}
if(i==0)
{
printf(" kata \"%s\" tidak ditemukan ",cari);
}
fclose(kamus);
printf("\n\n Ingin Cari lagi (y/n) => ");
op=getche();
}while(op=='Y'||op=='y');
puts("\n");
}
void ingtoind()
{
int i=1;
char cari[35],op;
do{
system("cls");
if((kamus=fopen("kamus.txt","r"))==NULL)
{
printf("file tidak dapat dibuka");
exit(1);
}
header();
puts(" \n\t\t\t-----------------\n");
puts(" \t\t\t TELEPON - NAMA \n");
puts(" \t\t\t-------------------\n");
printf("masukkan no Telepon => ");
fflush(stdin);
gets(cari);
fflush(stdin); //untuk menghapus data yang ada di buffer
while(fread(&data, sizeof data, 1, kamus)==1)
{
if(strcmp(cari , data.telp)==0)
{
printf("%s = %s", data.nama , data.telp);
i+=1;
}
else if(i==0)
printf("no telepon \"%s\" tak terdaftar", cari);
}
fclose(kamus);
printf("\n\n Apakah Ingin Mencari lagi (y/n) => ");
op=getche();
} while(op=='Y'||op=='y');
puts("\n");
}
void hapus()
{
int i=1;
char del[35],op;
do{
system("cls");
if((kamus=fopen("kamus.txt","r"))==NULL)
{
printf("tidak dapat di hapus");
exit(1);
}
header();
puts(" \n\t\t\t-----------------\n");
puts(" \t\t\t HAPUS DATA \n");
puts(" \t\t\t-------------------\n");
printf("hapus data =>");
fflush(stdin);
gets(del);
fflush(stdin);
while(fread(&data,sizeof(data),1, kamus)==1)
{ if(strcmp(del,data.nama)!=0) //jika tidak sama
{
if((temp=fopen("temp.txt","a"))==NULL)
{ printf("File tidak bisa diakses"); }
else
{ fwrite(&data, sizeof(data), 1, temp); }
fclose(temp);
}
else
{
printf("\"%s = %s\"\n berhasil dihapus",data.nama,data.telp);
i+=1;
}
}
if(i==0)
{ printf("Kata \"%s\" tidak ditemukan",del); }
fclose(kamus);
remove("kamus.txt");
rename("temp.txt","kamus.txt");
printf("\n\nhapus lagi (y/n) => ");
op=getche();
}while(op=='Y'||op=='y');
puts("\n");
}
void keluar()
{
exit(1);}
outputnya : jika hasilnya seperti dibawah ini maka program anda sukses total tetapi jika error maka ada bug perlu di perbaiki ulang ya dengan sabar dan tabah dalam memperbaiki koding banyak gini :D
|
buku telepon |