8. FILE.

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

8. FILE.
PEMROGRAMAN SISTEM PERNYATAAN DASAR PERULANGAN Pertemuan V
Mengamati Proses pada SO Linux
DASAR-DASAR PEMROGRAMAN C
DASAR PEMROGRAMAN OPERASI FILE
PERTEMUAN XI OPERASI FILE JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
Linked List Pembuatan Simpul Awal.
Algoritma dan Struktur Data Daniel Riano Kaparang.
PERTEMUAN VIII STRUKTUR LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
//program untuk menulis ke dalam file teks kemudian menampilkan isi file ke layar #include Void main() { const int mak 80; file p; // deklarasi file.
Baca Tulis File Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: membuka file - mendefinisikan variabel.
CSE1301 Sem /8/2017 File I/O Lecture 19: File I/O.
Chapter 3.2 : Tipe, Nama dan Nilai
INSTRUKSI MASUKAN DAN KELUARAN
ARRAY Dr. Lily Wulandari.
PERTEMUAN X DATA TINGKAT LANJUT - 2 JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
Materi 7 Lintas Data Rekam Baca File. Introduction Lintas data Rekam Baca meliputi perekaman data kedalam media rekam magnetik, pembacaan data dari media.
ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
Operasi pada pohon biner
File Data Pertemuan ke 13..
Alokasi Memori Yuliana Setiowati.
PERTEMUAN IX DATA TINGKAT LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
Algoritma & Struktur Data Linked List Evangs Mailoa.
STRUKTUR DATA (1).
STRUKTUR DATA Structure.
Sistem Berkas Pertemuan I
Pertemuan String Matakuliah : T0616 / Algoritma dan Pemrograman
SEMESTER GANJIL 2009/2010.
Fungsi Pertemuan 8 Bahasa C.
Statement Input – Output
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Algoritma dan Struktur Data
Matakuliah : T0016 / Algoritma dan Pemrograman Tahun : 2007 Versi : 6
Algoritma dan Pemrograman II STT Wastukancana Purwakarta
OPERASI FILE Bag.2 Pertemuan 27 Dasar Pemrograman
PHP By : Lisda Juliana P.,Ssi..
Bahasa Pemprograman Dasar Pertemuan 3
Tipe Data By Serdiwansyah N. A..
INPUT DAN OUTPUT OLEH: SRI SUPATMI,S.KOM.
Input dan Output TEE 2103 Algoritma dan Pemrograman
Operasi File Operasi File.
Algoritma dan Struktur Data
Operasi File Pertemuan ke-12 Bahasa C.
DASAR PEMROGRAMAN OPERASI FILE
Bentuk standar dalam penulisan bahasa c/c++
Struktur Data (Data Structure) – IS 2313
Pemograman Terstruktur
STRUKTUR DASAR PROGRAM
PERTEMUAN 9 Algoritma Presented by : Sity Aisyah, M.Kom
Mengenal Model Data, Perintah I/O
Operasi Pada File 1. Operasi Dasar pada File
Gambaran Umum dari judul yang kami ajukan adalah :
TEE 2103 Algoritma & Pemrograman
Bagian 4 LINTAS DATA.
Input Dan Output.
DASAR PEMROGRAMAN File.
Linked List 6.3 & 7.3 NESTED LOOP.
PERTEMUAN 9 PHP 2.
FILE.
Input dan Output Pertemuan ke-3 Bahasa C.
Mencetak & Membaca Data
Baca Tulis File Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: membuka file - mendefinisikan variabel.
DASAR PEMROGRAMAN OPERASI FILE
Pertemuan 2 Pengantar Pemrograman
Dasar Komputer & Pemrograman 2A
Variable Static & Linked List
Chapter 3.2 : Tipe, Nama dan Nilai
Transcript presentasi:

8. FILE

Tujuan Perkuliahan Mahasiswa mampu membedakan file biner dan file teks Mahasiswa memahami macam-macam operasi file dalam file teks dan file biner Mahasiswa dapat membuat program untuk operasi file

Struktur File File adalah Kumpulan data-data yang disimpan dalam disk dalam bentuk suatu kesatuan. Suatu file merupakan organisasi dari sejumlah record. Masing-masing record dapat terdiri dari satu atau beberapa field dan setiap field terdiri dari satu atau beberapa byte.

typedef struct { short level; /. banyaknya byte yang disimpan typedef struct { short level; /* banyaknya byte yang disimpan*/ unsigned flags; /* status dari file yang dibuka*/ char fd; /* handle/pengenal file*/ unsigned char hold; /* menyimpan nilai karakter pembacaan fungsi*/ short bsize; /* ukuran dari penyangga*/ unsigned char *buffer; /* pointer yang menunjuk ke penyangga*/ unsigned char *curp; /* menunjuk lokasi penyangga yang sedang dibaca*/ unsigned istemp; /* nomor pengenal file sementara*/ short token; /* pengecekan keabsahan operasi file*/ } FILE;

Tahapan Operasi File Operasi file pada dasarnya meliputi 3 tahapan : 1. Membuka / mengaktifkan file 2. Melaksanakan Operasi file 3. Menutup File

Membuka dan Mengaktifkan File Untuk membuka / mengaktifkan file sebelum dapat diakses, digunakan fungsi fopen( ) Syntax : FILE *fopen ( char *namafile, char *mode ); ket : namafile berupa nama dari file yang akan diaktifkan mode berupa jenis operasi yang dilakukan terhadap file prototype ada pada file stdio.h Keluaran fungsi fopen ( ) berupa pointer yang menunjuk ke tipe FILE, yaitu tipe struktur yang definisinya ada pada file stdio.h Berhasil-tidaknya operasi pengaktifan file dapat dilihat pada keluaran fungsi fopen ( ). Jika keluaran berupa NULL berarti operasi pengktifan gagal.

Jenis Operasi (Mode) File r menyatakan bahwa file hanya akan dibaca w menyatakan bahwa file baru dibuat a untuk membuka file yang sudah ada pada disk dan operasi yang dilakukan adalah operasi penambahan data pada file r+ untuk membuka file yang sudah ada, dan operasinya berupa pembacaan dan penulisan w+ untuk membuka file dengan tujuan pembacaan atau penulisan. Jika sudah ada isinya akan dihapus. a+ untuk membuka file dengan tujuan perekaman atau pembacaan. Jika file berisi maka isinya tidak akan dihapus.

Contoh Pemakaian fungsi fopen() pf = fopen (“COBA. TXT”, “w”); Bentuk yang biasa dipakai untuk mengaktifkan file adalah : if ( pf = fopen (“COBA. TXT”, ”w” ) == NULL ) { cputs (“File tidak dapat diciptakan !”); exit ( 1 ); } /*Keluar dari program*/ Mula-mula pf diisi dengan keluaran fungsi fopen ( ). Seandainya nilainya adalah NULL (berarti operasi pengaktifan file gagal) maka : Pada layar ditampilkan tulisan “File tidak dapat dibuka!” Program dihentikan / selesai Maksud dari pernyataan tersebut adalah : Menciptakan dan mengaktifkan file bernama “COBA.TXT” Dengan mode yaitu “w” (mode penulisan file) Menempatkan pointer-ke-FILE ke variable pointer pf

Menutup File Untuk menutup file, fungsi yang digunakan adalah fclose ( ). Bentuk deklarasinya adalah : int fclose ( FILE *pf ); Fungsi fclose ( ) menghasilkan keluaran berupa nol jika operasi penutupan file berhasil dilakukan. Disamping fclose ( ) terdapat fungsi fcloseall ( ) yang kegunaanya adalah untuk menutup semua file yang sedang terbuka. Bentuk deklarasinya : int fcloseall (void); Fungsi fcloseall ( ) menghasilkan nilai EOF (EOF didefinisikan pada file stdio.h, yaitu bernilai -1) jika terjadi kegagalan. Sedangkan jika berhasil, keluaran fungsi berupa jumlah file yang ditutup.

Operasi Penyimpanan dan Pembacaan File per Karakter Sebuah karakter dapat disimpan dalam file dengan menggunakan fungsi fputc ( ). Bentuk deklarasinya : int fputc ( int kar, FILE *ptr_file ); dengan ptr_file adalah pointer-ke-FILE yang berisi keluaran dari fopen ( ), dan kar berupa karakter yang akan disimpan dalam file.

Contoh Pembacaan File per Karakter Contoh Program yang digunakan untuk membaca isi file COBA.TXT, dengan langkah sebagai berikut : Buka file COBA. TXT dengan mode “r”. Jika tak berhasil dibuka beri keterangan bahwa file tidak ada, selesai. Baca sebuah karakter dari file. Jika karakter sama dengan EOF (tanda akhir file) maka langkah ke 4 Tampilkan karakter ke layar dan kembali le langkah 2 Tutup file Selesai

/*Program yang menerima karakter yang diketikkan dan direkam ke file contohleo.txt sampai ditekan tombol Enter*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *PF; char C; if((PF=fopen("contohleo.txt","w"))==NULL) printf("Kesalahan: File Tidak Dapat Dibuka \n"); exit(1); } while ((C=getche()) != '\r') fputc(C, PF); fclose(PF);

#include<stdio.h> #include<conio.h> /*Program yang akan membaca file contohleo.txt yang sudah berisi dengan data akan dibaca dan ditampilkan di layar*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *PF; char C; /* Buka File */ if((PF=fopen("contohleo.txt",“r"))==NULL) printf("Kesalahan: File Tidak Dapat Dibuka \n"); exit(1); } /*Baca karakter sampai EOF*/ while ((C=fgetc(PF)) != EOF) putchar(C); fclose(PF);

/. Program untuk menuliskan Integer (Angka) ke File /* Program untuk menuliskan Integer (Angka) ke File */ #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { FILE *PF; int I, N, X; if((PF=fopen("contoh.txt","wb"))==NULL) printf("Kesalahan: FIle tidak terbuka \n"); exit(1); } printf("Jumlah Data ? "); scanf("%d", &N); for(I=1; I<=N; I++) printf("Data ke %d ? ", I); scanf("%d", &X); putw(X, PF); fclose(PF);

/* Program untuk membaca data/nilai Integer dari file dan ditampilkan dengan fungsi getw */ #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { FILE *PF; int X; if((PF=fopen("contoh.txt","rb"))==NULL) printf("Kesalahan: FIle tidak terbuka \n"); exit(1); } for(;;) X=getw(PF); if(feof(PF)) break; printf("%d",X); fclose(PF);

/* Program untuk meletakkan string ke penyangga, lalu dituliskan ke file dengan fputs*/ #include<stdio.h> #include<stdlib.h> void main() { FILE *PF; int I, N; char Nama[40]; if((PF=fopen("contohku.txt","w"))==NULL) printf("Kesalahan: File tidak dapat dibuka \n"); exit(1); } printf("Jumlah data "); scanf("%d", &N); for(I=1; I<=N; I++) printf("Nama ke %d ",I); fflush(stdin); scanf("%[^\n]", Nama); //jika tidak ada enter, akan dibaca trus fputs(Nama, PF); fclose(PF);

/* Program untuk menuliskan data terformat ke file dengan menggunakan fprintf */ #include<stdio.h> #include<stdlib.h> void main() { FILE *PF; int I, N; char Kode[5]; float Piutang; if((PF=fopen("contohku.txt","w"))==NULL) printf("Kesalahan: File tidak dapat dibuka \n"); exit(1); } printf("Jumlah data "); scanf("%d", &N); for(I=1; I<=N; I++) printf("Data ke %d: \n ", I); printf("Kode Langganan ? "); scanf("%s", Kode); printf("Nilai Piutang ? "); scanf("%f", &Piutang); fprintf(PF, "%s %f\n", Kode, Piutang); fclose(PF);

/* Program untuk menampilkan isi dari file dan ditampilkan di layar dengan fungsi fscanf */ #include<stdio.h> #include<stdlib.h> void main() { FILE *PF; int I=0; char Kode[5]; float Piutang; if((PF=fopen("contohku.txt",”r"))==NULL) printf("Kesalahan: File tidak dapat dibuka \n"); exit(1); } while(fscanf(PF,"%s %f", Kode, &Piutang)!=EOF) printf("Data Langganan ke %d:\n",++I); printf("Kode Langganan: %s\n ",Kode); printf("Nilai Piutang: Rp %f\n", Piutang); fclose(PF);

/. Program Contoh Lain untuk Menuliskan Data Terformat ke Penyangga /* Program Contoh Lain untuk Menuliskan Data Terformat ke Penyangga */ #include<stdio.h> #include<stdlib.h> void main() { FILE *PF; int I, N; char Kode[5], Nama[20]; float Piutang; if((PF=fopen("contohku.txt","w"))==NULL) printf("Kesalahan: File tidak dapat dibuka \n"); exit(1); } printf("Jumlah data "); scanf("%d", &N); for(I=1; I<=N; I++) printf("Data ke %d: \n ", I); printf("Kode Langganan ? "); fflush(stdin); scanf("%s", Kode); printf("Nama Langganan ? "); fflush(stdin); scanf("%[^\n]", Nama); printf("Nilai Piutang ? "); fflush(stdin); scanf("%f", &Piutang); fprintf(PF, "%s\n", Kode); fprintf(PF, "%s\n", Nama); fprintf(PF, "%f\n", Piutang); fclose(PF);

/. Program untuk membaca isi file, untuk model penulisan sebelumnya /* Program untuk membaca isi file, untuk model penulisan sebelumnya */ #include<stdio.h> #include<stdlib.h> void main() { FILE *PF; int I=0; char Kode[5], Nama[20]; float Piutang; if((PF=fopen("contohku.txt","r"))==NULL) printf("Kesalahan: File tidak dapat dibuka \n"); exit(1); } while(fscanf(PF,"%s %f", Kode) !=EOF) fscanf(PF, "%[^\n]", Nama); fscanf(PF, "%f", &Piutang); printf("Data Langganan ke %d:\n", ++I); printf("Kode Langganan: %s\n ", Kode); printf("Nama Langganan: %s\n ", Nama); printf("Nilai Piutang: Rp %f\n", Piutang); fclose(PF);

Program Pembacaan File per Karakter #include <stdio.h> #include <conio.h> main( ) { FILE*pf; char kar; clrscr( ); if ((pf = fopen (“COB. TXT”, “r”)) = = NULL ) cputs (“File tak dapat dibuka !\r\n”); exit; } while ( (kar = getc (pf) ) !=EOF ) putch (kar); fclose (pf); Contoh Eksekusi : A>GETC TURBO C-

File Teks dan File Biner File teks merupakan file yang pola penyimpanan datanya dalam bentuk karakter. Misalnya bilangan bertipe int bisa saja menempati ruang 1 byte, 2 byte atau lebih, tergantung oleh nilai dari bilangan. File biner adalah file yang pola penyimpanan di dalam disk adalah dalam bentuk biner, yaitu seperti bentuk padsa memory (RAM) komputer. Misalnya data bertipe int akan selalu menempati ruang 2 byte berapapun harganya.

Perbedaan File Teks dan File Biner File teks dipakai untuk menyimpan data bertipe karakter atau string sedangkan file biner dipakai untuk menyimpan data bilangan atau data kompleks, seperti struktur (tipe struct). Pada file teks , karakter ‘\n’ pada program akan diperlakukan sebagai CR/LF bagi MS-DOS dan CR/LF ( artinya CR atau ber-ASCII 13 diikuti dengan LF atau ber-ASCII 10) pada MS-DOS akan diterjemahkan sebagai ‘\n’ bagi program. Sedangkan pada file biner, karakter ‘\n’ pada program akan diperlakukan sebagai LF saja bagi MS-DOS dan karakter LF bagi MS-DOS dianggap sebagai ‘\n’ bag i program.

Mode pada file Teks dan File Biner Penambahan yang perlu dilakukan untuk menentukan mode teks atau mode biner berupa : “t” untuk mode teks dan “b” untuk mode biner. Contoh : “ rt ” berarti mode file adalah teks dan file akan dibaca “ rt+ “ berarti mode file adalah teks dan file bisa dibaca atau ditulisi “ rb “ berarti mode file adalah biner dan hendak dibaca

Mode pada file Teks dan File Biner (cont..) Jika pada mode file tidak terdapat karakter t atau b, mode file akan ditentukan oleh variable global bernama _fmode ( deklarasinya ada pada file fcntl.h). Jika _fmode tidak dilibatkan dalam program, maka mode file yang tidak mengandung t atau b akan dianggap sebagai file teks. Variable _fmode bisa diisi dengan O_BINARY untuk menyatakan file biner, atau O_TEXT untuk menyatakan file text. Contoh : _fmode = O_BINER; pf = fopen (“TEST1”, “r”); berarti bahwa “TEST1” adalah file biner dan hendak baca.

Operasi Penyimpanan dan Pembacaan File per Int Untuk menyimpan sebuah data bertipe int digunakan fungsi putw( ) Sedangkan untuk membaca sebuah data bertipe int digunakan fungsi getw() Bentuk deklarasinya : int getw (FILE *ptr_file); int putw (FILE *ptr_file);

Operasi Pembacaan dan Penyimpanan File per Blok Fungsi untuk menyimpan file dalam bentuk kesatuan blok (sejumlah byte) adalah fwrite( ) Bentuk deklarasi int fwrite (void *buffer, int jum_byte, int n, FILE *ptr_file); Fungsi untuk membaca data file dalam bentuk kesatuan blok (sejumlah byte) adalah fread( ) Bentuk deklarasi : int fread (void*buffer, int n, FILE *ptr_file);

Operasi Pembacaan dan Penyimpanan File per Blok (cont) Ket : Buffer adalah pointer yang menunjuk ke daerah memory yang akan ditempati data dari file disk (untuk fread( )), atau pointer yang menunjuk ke daerah memory yang berisi data yang akan disimpan ke file disk (fwrite( )). jum_byte menyatakan jumlah byte yang akan dibaca atau disimpan n menentukan banyaknya blok data berukuran jum_byte yang akan ditulis atau dibaca ptr_file berupa pointer-ke-FILE yang berisi nilai keluaran dari fopen( )

Menyimpan dan Membaca Data String pada File Fungsi yang digunakan untuk membaca data string pada file sampai ditemukannya karakter baris baru ‘\n’ atau setelah ( n-1 ) karakter, dengan n adalah panjang maksimal string yang dibaca per waktu-baca adalah fgets( ) Bentuk deklarasinya : char *fgets (char *str, int n, FILE *ptr_file); Fungsi yang digunakan untuk menyimpan data string ke dalam file yaitu fputs( ). Bentuk deklarasinya : int fputs (char *str, FILE *ptr_file);

Menyimpan dan Membaca File yang diformat Fungsi yang digunakan untuk menyimpan data bilangan yang diformat ke dalam file yaitu fprintf( ), dengan bentuk : fprintf (ptr_file, “string kontrol”, daftar argumen); Sedangkan untuk membaca kembali, fungsi yang digunakan berupa fscanf( ), dengan bentuk : fscanf (ptr_file, “string kontrol”, daftar argumen); Kedua fungsi diatas berlaku seperti fungsi printf( ) dan scanf( ), hanya saja operasinya pada file.

Pengaksesan File Biner Secara Acak Fungsi yang digunakan untuk mengakses file biner secara acak adalah fseek( ). Bentuk deklarasinya : int fseek (FILE *ptr_file, long int ofset, int posisi); dengan : - ptr_file adalah pointer yang keluar berasal dari keluaran fopen( ) - ofset menyatakan jumlah byte terhadap posisi Kegunaan fungsi fseek( ) yaitu untuk menempatkan penunjuk file ke suatu lokasi dalam file, berdasarkan ofset dan posisi.

Pengaksesan File Biner Secara Acak (Contoh) fseek (pf, 3, SEEK_SET); Pernyataan tersebut menempatkan penunjuk file ke posisi 3 byte sesudah awal file (SEEK_SET). fseek (pf, 3, SEEK_END); Pernyataan ini akan menempatkan penunjuk file ke posisi 3 byte sebelum akhir file fseek (pf, 3, SEEK_CUR); Pernyataan ini dipakai untuk menempatkan penunjuk file ke posisi 3 byte sesudah posisi penunjuk file berada.

Menghapus File Fungsi unlink( ) digunakan untuk menghapus File. Bentuk deklarasinya : int unlink (char *namafile); ket: namafile adalah pointer yang menunjuk ke nama file yang akan dihapus.

Mengganti Nama File Fungsi rename( ) digunakan untuk mengganti nama file. Bentuk deklarasinya : int rename (char *nmafilelama, char *namafilebaru);

Referensi Bab 12, “Text and Binary File Processing”, Problem Solving and Program Design in C, Jeri R. Hanly dan Elliot B. Koffman, Addison Wesley, 2002