Anda di halaman 1dari 28

Pertemuan 12

Pemrograman Procedural
Pemrosesan File Teks dan File Biner
Tujuan Perkuliahan
Mahasiswa mampu membedakan file
biner dan file teks
Mahasiswa memahami macam-macam
operasi file dalam file teks dan file biner 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. record.
Masing-masing record dapat terdiri dari satu
atau beberapa field dan setiap field terdiri dari
satu atau beberapa byte.
Tahapan Operasi File
Operasi file pada dasarnya meliputi 3 tahapan :
1. Membuka / mengaktifkan file
2. Melaksanakan Operasi file
3. Menutup 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 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 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()
Maksud dari pernyataan
tersebut adalah :
Menciptakan dan
mengaktifkan file
bernama COBA.TXT
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
!);
bernama COBA.TXT
Dengan mode yaitu w
(mode penulisan file)
Menempatkan pointer-
ke-FILE ke variable
pointer pf
!);
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
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
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 ); 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
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 Pembacaan File per Karakter
#include <stdio.h>
#include <conio.h>
main( )
{
FILE*pf;
char kar;
clrscr( );
if ((pf = fopen (COB. TXT, r)) = =
Contoh Eksekusi :
A>GETC
TURBO C-
if ((pf = fopen (COB. TXT, r)) = =
NULL )
{
cputs (File tak dapat dibuka
!\r\n);
exit;
}
while ( (kar = getc (pf) ) !=EOF )
putch (kar);
fclose (pf);
}
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 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 : 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. 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() 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); *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 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 : 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 : 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); 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.
Operasi File Tak Berpenampung
Operasi File tak berpenampung sering disebut
dengan system level I/O (masukan-keluaran
beraras system atau low-level (masukan-
keluaran beraras rendah). keluaran beraras rendah).
Keuntungannya adalah dalam hal kecepatan
pengaksesan (baca-tulis).
Fungsi-fungsi dalam Operasi File
Tak Berpenampung
Fungsi open( ): untuk membuka file (terdapat pada file io.h)
Bentuk deklarasi :
int _open (char *filename, int mode);
dengan mode dapat diisi dengan konstanta O_RDONLY,
O_WRONLY atau O_RDWR, yang didefinisikan pada file
fcntl.h
Fungsi create( ): untuk menciptakan file baru atau untuk Fungsi create( ): untuk menciptakan file baru atau untuk
mengosongkan file yang berisi
Bentuk deklarasi :
int _create (char *namafile, int atrib);
dengan atrib untuk menentukan atribut file
Fungsi fclose( ) : untuk menutup file dengan bentuk deklarasi :
int _close (int handle);
dengan handle menyatakan kode penanganan file yang
diperoleh dari _fopen( ) atau _create( ).
Fungsi-fungsi dalam Operasi File
Tak Berpenampung (cont.)
Fungsi _read( ) : untuk membaca isi file.
Bentuk deklarasinya :
int _read (int handle, void*buffer, unsigned
panjang);
Fungsi _write( ) : untuk menulis ke file
Bentuk deklarasinya: Bentuk deklarasinya:
int _write (int handle, void *bufer, unsigned
panjang);
fungsi lseek( ) : untuk memindah penunjuk file (yang
memungkinkan pengaksesan file secara acak)
Bentuk deklarasinya :
long lseek (int handle, long ofset, int posisi);
Menghapus File
Fungsi unlink( ) digunakan untuk menghapus
File.
Bentuk deklarasinya :
int unlink (char *namafile); 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); 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 Addison Wesley, 2002

Anda mungkin juga menyukai