0% menganggap dokumen ini bermanfaat (0 suara)
47 tayangan4 halaman

Sistem I/O C++: Stream dan File

Diunggah oleh

fafa1992
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
47 tayangan4 halaman

Sistem I/O C++: Stream dan File

Diunggah oleh

fafa1992
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

STREAM dan FILE

Sistem I/O dari C++ dapat berhubungan dengan pemrogram tanpa tergantung pada alat yang
dipakai. Hal ini dapat tercapai karena system I/O memberikan abstraksi antara pemrogram dengan
alat yang dipakai. Abstraksi ini dinamakan stream. Alat yang sebenarnya dipakai dinamakan file.
Alat-alat yang dipakai dapat bermacam-macam, misalnya:terminal, disk drive, tape drive,
dan lain-lain. Sistem I/O C++ mengubah setiap alat logic tersebut dengan sebuah stream.

FUNGSI-FUNGSI SISTEM I/O FILE


Fungsi Operasi
fopen() Membuka sebuah stream
fclose() Menutup sebuah stream
putc Menulis sebuah karakter ke dalam sebuah stream
getc Membaca sebuah karakter dari sebuah stream
fseek Mencari byte tertentu di dalam sebuah stream
fprint Sama dengan printf(), tetapi tujuannya ke sebuah stream
fscan() Sama dengan scanf(), tetapi dari sebuah stream
feof() Menghasilkan true, jika sudah tercapai akhir file
ferror() Menghasilkan true, jika terjadi kesalahan
fread() Membaca sebuah blok data dari sebuah stream
fwrite() Menulis sebuah blok data dari sebuah stream
rewind Memindahkan penunjuk ke awal file
remove Menghapus file

MODUS PEMBUKAAN FILE


Modus Artinya
“r” Membuka file untuk pembacaan data
“w” Membuka file untuk penulisan data
“a” Menambah data ke dalam file
“rb” Membuka file biner untuk pembacaan data
“wb” Membuka file biner untuk penulisan data
“ab” Menambah data ke dalam file
“r+” Membuka file untuk pembacaan / penulisan data
“w+” Membuka file untuk penulisan / pembacaan data
“a+” Menambah atau membuat sebuah file untuk pembacaan / penulisan
“r+b” Membuka file biner untuk pembacaan / penulisan data
“w+b” Membuka file biner untuk penulisan / pembacaan data
Contoh program :

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct dt_teman
{ char nama[20];
char alamat[30];
char telepon[12];
}teman;
FILE *fp;
menu();
isi_data();
baca_data();
ubah_data();

main()
{
char pilih='0';
while (pilih !='6')
{
menu();
pilih=getche();
switch(pilih)
{
case '1' : if ((fp=fopen("D:\\data.txt","rb"))!=NULL)
{ gotoxy(20,18);printf("File sudah dibuka, tekan Enter !");
getche();fclose(fp);
}
else
{ fp=fopen("D:\\data.txt","wb");
isi_data();
fclose(fp);
}
break;
case '2' : fp=fopen("D:\\data.txt","ab");
isi_data();
fclose(fp);
break;
case '3' : if ((fp=fopen("D:\\data.txt","r+b"))==NULL)
{
gotoxy(20,18);printf("File belum ada, tekan Enter !");getche();
break;
}
ubah_data();
fclose(fp);
break;
case '4' : if ((fp=fopen("D:\\data.txt","rb"))==NULL)
{
gotoxy(20,18);printf("File belum ada, tekan Enter !");getche();
break;
}
baca_data();getche();
fclose(fp);
break;

case '5' : remove("D:\\data.txt");


gotoxy(20,18);printf("File sudah dihapus, tekan Enter !");
getche();
break;
}
}
return 0;
}

menu()
{
clrscr();
gotoxy(20,8);printf(" MENU ");
gotoxy(20,9);printf("---------------------------------");
gotoxy(20,10);printf("1. Membuat File Baru");
gotoxy(20,11);printf("2. Menambah Data");
gotoxy(20,12);printf("3. Mengubah Data");
gotoxy(20,13);printf("4. Menampilkan Data ke layar");
gotoxy(20,14);printf("5. Menghapus file");
gotoxy(20,15);printf("6. Selesai/Exit");
gotoxy(20,16);printf("---------------------------------");
gotoxy(20,17);printf("Pilihan Anda : ");
return 0;
}

isi_data()
{
clrscr();
printf(" FILE telah dibuka dengan nama DATA.TXT\n\n");
printf(" Nama (0=berhenti) : ");gets(teman.nama);
while (teman.nama[0] !='0')
{
printf(" Alamat : ");gets(teman.alamat);
printf(" Nomor Telepon : ");gets(teman.telepon);
fwrite(&teman,sizeof(teman),1,fp);
printf("\n Nama (0=berhenti) : ");gets(teman.nama);
}
return 0;
}

ubah_data()
{
int norec;long int offset;clrscr();
printf(" Nomor record yang akan diubah : ");scanf("%d",&norec);
offset=(norec-1)*sizeof(teman);
if (fseek(fp,offset,0)!=0)
{
printf(" Tidak dapat mencari record ! ");getche();
return 0;
}
fread(&teman,sizeof(teman),1,fp);
printf("\n\n Data Lama \n");
printf(" --------------------------------------\n");
printf(" Nama : %s\n",teman.nama);
printf(" Alamat : %s\n",teman.alamat);
printf(" Nomor Telepon : %s\n",teman.telepon);
fseek(fp,offset,0);
printf("\n\n Data Baru \n");
printf(" --------------------------------------\n");
printf(" Nama : ");scanf("%s",&teman.nama);
printf(" Alamat : ");scanf("%s",&teman.alamat);
printf(" Telepon : ");scanf("%s",&teman.telepon);
fwrite(&teman,sizeof(teman),1,fp);
return 0;
}

baca_data()
{
int i=1;clrscr();
printf("\n Data Teman-Teman Kampus \n");
printf(" --------------------------------------------------\n");
printf(" No NAMA ALAMAT TELEPON\n");
printf(" --------------------------------------------------\n");
while (fread(&teman,sizeof(teman),1,fp)==1)
{
printf(" %2d %-20s %-30s %-12s\n",i++,teman.nama,teman.alamat,teman.telepon);
}
printf(" --------------------------------------------------\n");
return 0;
}

Anda mungkin juga menyukai