Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

File Data Pertemuan ke 13.. Variabel array dan variabel lain yang telah dipelajari selalu menggunakan variabel yang disimpan pada memory. Artinya setelah.

Presentasi serupa


Presentasi berjudul: "File Data Pertemuan ke 13.. Variabel array dan variabel lain yang telah dipelajari selalu menggunakan variabel yang disimpan pada memory. Artinya setelah."— Transcript presentasi:

1 File Data Pertemuan ke 13.

2 Variabel array dan variabel lain yang telah dipelajari selalu menggunakan variabel yang disimpan pada memory. Artinya setelah program selesai, data pada memory tidak bisa diakses kembali atau hilang. Demikian pula jika komputer tidak mendapatkan energi sehingga program terminated, semua data akan hilang. Hal ini disebabkan memory komputer (primary storage), bersifat volatile. Agar data (hasil entry) tidak hilang maka dilakukan penyimpanan ke suatu media dalam bentuk file data. Dengan demikian file data bisa dibaca dan ditulis kembali sesuai kebutuhan. File

3 bahasa c memperlakukan file sebagai stream. Stream adalah kumpulan karakter yang disusun dalam baris-baris yang berpindah dari satu media ke media lain pada sistem komputer. Semua data masukan dan keluaran berupa stream. Setiap stream berasosiasi dengan sebuah file C mempunyai 3 buah standar stream: 1.Standard input stream: mengatur aliran data masukan melalui ketikan keyboard (dalam c diatur di library stdin). 2.Standard output stream: mengatur aliran data keluaran ke layar monitor (dalam c diatur di library stdout). 3.Standard error stream: mengatur tampilan pesan kesalahan ke layar monitor (dalam c diatur di library stderr) File

4 Operasi file: 1.Manipulasi data (create, update, insert/append) 2.Manipulasi terhadap file (delete file, rename file). Jenis-jenis file: 1.Text file / ASCII file: file disimpan dalam bentuk text/ karakter ASCII. 2.Binaryfile: file yang menyimpan data numeric tetap dalam format sesuai ketentuan micro processor. File Contoh struct : struct brg { char kd[4],nm[26]; int harga; float qty; };

5 manipulasi data didalam suatu file: 1.Membuka File 2.Menulis ke dalam File 3.Membaca dari File 4.Penanda EOF dan menutup File File

6 Notasi: FILE * fopen(char *namafile, char *mode); *namafile : nama file fisik yang akan dimanipulasi misal “data.txt” *mode : file dibuka untuk dibaca saja, atau ditulis saja, atau untuk ditambah data, dll. Mode bisa dilihat di tabel berikut ini Contoh file dibuka untuk tujuan pembacaan : FILE *pf; pf = fopen(“D:\DATA.TXT”,”r”); File : Opening file

7 File : Opening file - mode modefungsi Jika File Sudah AdaTidak Ada r Read (baca)file dibukafile gagal dibuka w Write (tulis) File dihapus & dibuat file baru File dibuat a Append(tambah) Data diletakkan di bagian akhir File (end of file) File dibuat r+ Read (bisa Write) Data yang sudah ada di AWAL file akan ditimpa dengan data baru File dibuat w+ Write (bisa Read)File ditimpa dengan file baru.File dibuat a+ Append (bisa Read) Data baru ditambahkan ke bagian akhir dari file (end of file) — tidak ditimpa. File dibuat

8 File : Functions to read file content Nama fungsi kegunaanprototype penulisan function getc() membaca SATU KARAKTER yang ada didalam file int getc(FILE *fp); fp = pointer ke structure FILE fgets() membaca SATU BARIS DATA yang ada didalam file. char *fgets(char *str, int n, FILE *fp); str = string nilai kembalian / hasil pembacaan dari file. n = jumlah panjang string maksimal yang dimasukkan ke str. fp = pointer ke structure FILE fscanf() mengambil data dengan format tertentu yang ada didalam file. int fscanf(FILE *fp, char *format, …); fp = pointer ke structure FILE. format = menunjukan format data yang akan dibaca.

9 File : Functions to write to a file Nama fungsi Kegunaanprototype penulisan function putc () menuliskan SATU KARAKTER ke dalam file. int putc(int c, FILE *fp); c = karakter yang akan dituliskan. fp = pointer ke structure FILE fputs () menuliskan SATU BARIS DATA ke dalam file. char *fputs(char *str, FILE *fp); str = string yang akan dituliskan fp = pointer ke structure FILE fprintf () menuliskan data dengan format tertentu ke dalam file. int fprintf(FILE *fp, char *format, …); fp = pointer ke structure FILE. format = format data yang akan dibaca.

10 File : EOF marker & Closing File Nama fungsi kegunaanprototype penulisan function feof() Mendeteksi akhir data dari suatu file—digunakan untuk file text. Mengembalikan 0 selama belum mencapai akhir file. int feof(FILE *fp); fp = pointer ke structure FILE fclose() Menutup/Memutuskan koneksi dari file pointer ke file external yang bersangkuta. int fclose(FILE *fp); fp = pointer ke structure FILE

11 File : Sample Program(1) // Menulis per karakter ke file data.txt #include int main() { FILE *fout; int n,i,j; fout = fopen(“data.txt","w"); // file dibuka untuk ditulis printf("N = ");scanf("%d",&n); while(!feof(stdin) ) { for(i=0;i

12 File : Sample Program(2) // Menulis ke file per kalimat. #include int main(){ FILE *fout; char kalimat[50]; fout = fopen("klm.txt","a"); printf("Ketik Kalimat, diakhiri dengan Ctrl Z \n"); gets(kalimat); while(!feof(stdin)) { fputs(kalimat,fout); fputc('\n',fout); gets(kalimat); } fclose(fout);return 1; } Input Data tersimpan di file klm.txt Ketik Kalimat, diakhiri dengan Ctrl Z c:>type klm.txt UMN Universitas Multimedia Nusantara Serpong ^Z

13 File : Field, Record & file. FILE Prestasi Akademik Mahasiswa susilo4.00 Record ke bambang3.90 Record ke yudianto2.80 Record ke budiono4.00 Record ke 4 field NIMfield NAMAfield IPK

14 File : Record Access Sequential VS Random Akses file secara Sequential: record harus dibaca mulai record pertama. Akses file secara Random: pembacaan record dilakukan langsung ke posisi record yang dituju. Access MethodRelevance functions Randomfseek(), fwrite(), fread() Sequentialfscanf(), fprintf(), fwrite(), fread()

15 File : Functions Explanation size_t fwrite(const void *ptr, size_t size, size_t n, FILE * stream); Function ini menambah n item data masing-masing berukuran size ke file stream. Data yang akan ditulis ditunjuk oleh pointer ptr. Jika process berhasil, function ini mengembalikan jumlah item data yang tertulis. Apabila terjadi kesalahan maka akan dikembalikan angka lain. size_t fread(void * ptr, size_t size, size_t n, FILE * stream); Function ini membaca n elemen data, masing-masing berukuran size dari file stream ke dalam suatu blok yang ditunjuk pointer ptr. Jika proses berhasil maka function ini mengembalikan jumlah elemen data yang terbaca. Apabila tidak ada data yang terbaca maka function ini menghasilkan 0.

16 File : Functions Explanation fseek(FILE *stream, long offset, int whence); Function ini memindahkan penunjuk posisi file stream ke n byte dari lokasi file relatif terhadap whence. Angka n dinyatakan dengan offset. Untuk stream yang berupa text mode offset harus bernilai 0 atau nilai lain yang dikembalikan function ftell(). Whence harus berupa nilai 0,1, atau 2 yg mewakili tiga simbolic constant. Whence : SEEK_SET = 0 = Awal File. SEEK_CURR = 1 = Posisi pointer saat itu. SEEK_END = 2 = End of File.

17 File : sample program sequential acccess (text) #include struct t_akad { char nim[11]; char nama[21]; float ipk; }; char* substr(char* buffer, char* str, int start, int end){ int i, x = 0; for(i = start ; i <= end; i++) buffer[x++] = str[i]; buffer[x] = '\0'; return buffer; } int main() { FILE *f_akad; struct t_akad r_akad; char sipk[5], record[101]; append to a file "LINE" sequential file. FILE TEXT read the records and display them on your monitor

18 File : sample program sequential acccess (text) f_akad = fopen("akad.txt","a"); // Append Process do { fflush(stdin); // flushing out unnecessary character(s) printf("NIM : ");gets(r_akad.nim); if(strlen(r_akad.nim) == 0) break; printf("Nama : ");gets(r_akad.nama); printf("IPK : ");scanf("%f",&r_akad.ipk); fprintf(f_akad,"%-10s %-20s %4.2f\n", r_akad.nim, r_akad.nama, r_akad.ipk); } while(1); fclose(f_akad); f_akad = fopen("akad.txt","r"); // Reading and displaying process. printf("NIM NAMA IPK\n"); do { if(fgets(record,100,f_akad) == 0 ) break; substr(r_akad.nim,record,0,9); substr(r_akad.nama,record,11,30); substr(sipk,record,31,35); sipk[4] = NULL; r_akad.ipk = atof(sipk); printf("%-10s %-21s %4.2f\n",r_akad.nim,r_akad.nama,r_akad.ipk); } while(1); fclose(f_akad); getch(); return 0; }

19 File : sample program sequential acccess (Biner) #include struct t_akad { char nim[11]; char nama[21]; float ipk; }; int main() { FILE *f_akad; struct t_akad r_akad; char sipk[5], record[101]; f_akad = fopen("akadbiner.txt","a"); do { fflush(stdin); // flushing out unnecessary character(s) printf("NIM : "); gets(r_akad.nim); if(strlen(r_akad.nim) == 0) break; printf("Nama : "); gets(r_akad.nama); printf("IPK : "); scanf("%f",&r_akad.ipk); fwrite(&r_akad,sizeof(r_akad),1,f_akad); } while(1); fclose(f_akad); append to a sequential file (File BINER),read the records and display them on your monitor

20 File : sample program sequential acccess (Biner) // Reading and displaying process. f_akad = fopen("akadbiner.txt","r"); printf("NIM NAMA IPK\n"); while(fread(&r_akad,sizeof(r_akad),1,f_akad)==1) { printf("%-10s %-21s %4.2f\n",r_akad.nim, r_akad.nama,r_akad.ipk); }; fclose(f_akad); getch(); }

21 File : sample program random access // Random Access file. Create record kosong. #include struct tnasabah{ int norek; char nama[20]; double saldo; }; int main() { FILE *fnasabah; struct tnasabah nasabah={0,"",0.0}; int i; fnasabah = fopen("nasabah.dat","w"); for(i=0;i<100;i++) fwrite(&nasabah,sizeof(struct tnasabah),1,fnasabah); fclose(fnasabah); }

22 File : sample program random access: adding/find record Random Access file. Setelah menambah record kosong, menambah record ke file akses langsung, kalau sudah ada data ditampilkan, kalau belum ada di simpan ke file. #include struct tnasabah{ int norek; char nama[20]; double saldo; }; int main() { FILE *fnasabah; struct tnasabah nasabah; int norek; if((fnasabah = fopen("nasabah.dat","r+"))==NULL) { printf("File nasabah.dat tidak ditemukan.... "); getch(); return 0; }

23 File : sample program random access: adding/find record do { printf("No Rekening : ");scanf("%d",&norek); if(norek==0) break; fseek(fnasabah,(norek-1) * sizeof(struct tnasabah),SEEK_SET); fread(&nasabah, sizeof(struct tnasabah),1,fnasabah); if(nasabah.norek==0) { printf("Nama : ");scanf("%s",nasabah.nama); printf("Saldo : ");scanf("%lf",&nasabah.saldo); nasabah.norek = norek; fseek(fnasabah,(norek-1) * sizeof(struct tnasabah),SEEK_SET); fwrite(&nasabah, sizeof(struct tnasabah),1,fnasabah); } else { printf("Sudah pernah dientry...\n"); printf("nama %-20s saldo %10.2lf",nasabah.nama,nasabah.saldo); getch(); } printf("\n"); }while(1); fclose(fnasabah); return 1; }

24 File : printing to printer #include int main() { int i, j; for(i=0;i<20;i++) { for(j=0;j<=i;j++) fprintf(stdprn,"^^"); fprintf(stdprn,"\n"); } getch(); } // the code is only running on turbo c++ not on devc++ ; Somehow dev does not recognize stdprn

25 References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C. Deitel, PJ, HM.Deitel, 2007, C How to Program, 5 th Edition.


Download ppt "File Data Pertemuan ke 13.. Variabel array dan variabel lain yang telah dipelajari selalu menggunakan variabel yang disimpan pada memory. Artinya setelah."

Presentasi serupa


Iklan oleh Google