Anda di halaman 1dari 28

Pertemuan 12

Pemrograman Terstruktur

Pemrosesan File Teks dan File Biner


Tujuan Perkuliahan
 Mahasiswa mampu membedakan file biner dan file teks
 Mahasiswa memahami macam-macam operasi file
d l
dalam fil
file tteks
k ddan fil
file bi
biner
 Mahasiswa dapat membuat program untuk operasi file
Struktur File
 File adalah Kumpulan data-data yang disimpan dalam disk
dalam bentuk suatu kesatuan.
 Suatu
S fil
file merupakank organisasii id darii sejumlah
j l h record.
d
 Masing-masing record dapat terdiri dari satu atau beberapa field
dan setiap p field terdiri dari satu atau beberapap byte.
y
Tahapan Operasi File

 Operasi file pada dasarnya meliputi 3 tahapan :


1 Membuka / mengaktifkan file
1.
2. Melaksanakan Operasi file
3. Menutup p 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
t t ada
d pada
d file
fil stdio.h
tdi 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
p pengktifan
p g ggagal.
g
Jenis Operasi (Mode) File

 r menyatakan
y bahwa file hanya
y akan dibaca
 w menyatakan bahwa file baru dibuat
 a untuk membuka file yang sudah ada pada disk dan
operasii yang dilakukan
dil k k adalah
d l h operasii penambahan
b h
data pada file
 r+ untuk membuka file yyangg sudah ada, dan
operasinya berupa pembacaan dan penulisan
 w+ untuk membuka file dengan tujuan pembacaan
atau penulisan.
penulisan Jika sudah ada isinya akan dihapus.
dihapus
 a+ untuk membuka file dengan tujuan perekaman atau
pembacaan. Jika file berisi maka isinya tidak akan
dihapus.
dih
Contoh Pemakaian fungsi fopen()
pf = fopen (“COBA. TXT”, “w”);
Bentuk yang biasa dipakai untuk
Maksud
M k d dari
d i pernyataan mengaktifkan file adalah :
tersebut adalah :
if ( pf = fopen (“COBA. TXT”, ”w” )
 Menciptakan dan == NULL )
mengaktifkan file { cputs (“File tidak dapat diciptakan
bernama “COBA.TXT” !”);
 Dengan mode yaitu “w” w exit ( 1 ); } //*Keluar
Keluar dari program
program*//
(mode penulisan file) Mula-mula pf diisi dengan keluaran
 Menempatkan pointer- fungsi fopen ( ). Seandainya nilainya
ke-FILE
ke FILE ke variable adalah
d NULL
U (berarti
(b operasi
p
pointer pf pengaktifan file gagal)
maka :
 Pada layar ditampilkan tulisan “File
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
dilakukan.
 Disamping fclose ( ) terdapat fungsi fcloseall ( ) yang
kegunaanya adalah untuk menutup semua file yang
sedang terbuka.
terbuka Bentuk deklarasinya :
int fcloseall (void);
 Fungsi fcloseall ( ) menghasilkan nilai EOF (EOF
didefinisikan pada file stdio
stdio.h,
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.
file
Contoh Pembacaan File per Karakter
Contoh Program yang digunakan untuk membaca isi file
COBA.TXT, dengan langkah sebagai berikut :
 Buka file COBA
COBA. TXT dengan mode “r” 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
p file
 Selesai
Program Pembacaan File per
Karakter
#include <stdio.h>
Contoh Eksekusi :
#include <conio.h>
conio.h
main( )
A>GETC
{
FILE*pf;
TURBO C-
char
h kkar;
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);
}
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.
Fil bi
File biner adalah
d l h fil
file yang pola
l penyimpanan
i di d
dalam
l
disk adalah dalam bentuk biner, yaitu seperti bentuk
padsa memory (RAM) komputer
komputer. Misalnya data
bertipe int akan selalu menempati ruang 2 byte
berapapun
p p harganya.
g y
Perbedaan File Teks dan File
Biner
File teks dipakai untuk menyimpan data bertipe
karakter atau stringg sedangkan
g p
file biner dipakai untuk
menyimpan data bilangan atau data kompleks, seperti
struktur (tipe struct).
P d file
Pada fil teks
k , karakter
k k ‘\n’ ‘\ ’ pada
d program akank
diperlakukan sebagai CR/LF bagi MS-DOS dan CR/LF
ber-ASCII
( 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
k kt ‘\n’ ‘\ ’ pada
d program akank diperlakukan
di l k k sebagaib i
LF saja bagi MS-DOS dan karakter LF bagi MS-DOS
dianggap
gg p sebagai
g ‘\n’
\ bagg i program.
p g
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”
untukk mode
d biner.
bi
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
(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.
V i bl _fmode
Variable f d bisabi diisi
dii i d
dengan O_BINARY
O BINARY untuk t k
menyatakan file biner, atau O_TEXT untuk
menyatakan
y file text.
Contoh :
_fmode = O_BINER;
pff = fopen
f (“TEST1”,
(“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 :
i t getw
int t (FILE **ptr_file);
t fil )
int putw (FILE *ptr_file);
Operasi Pembacaan dan
Penyimpanan File per Blok
Fungsi untuk menyimpan file dalam bentuk kesatuan
blok (sejumlah byte) adalah fwrite( )
B
Bentukk deklarasi
d kl i
int fwrite (void *buffer, int jum_byte, int n, FILE
*ptr
ptr_file);
file);
Fungsi untuk membaca data file dalam bentuk
kesatuan blok ((sejumlah
j byte)
y ) adalah fread(( )
Bentuk deklarasi :
int fread (void*buffer, int n, FILE *ptr_file);
Operasi Pembacaan dan
Penyimpanan
Ket :
File per Blok (cont)
 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
j b t menyatakan
t k jjumlah
l hbbyte
t yang akan
k dibaca
dib atau
t
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
p ()
fopen(
Menyimpan dan Membaca Data
String pada File
Fungsi
g yang
y g digunakan
g untuk membaca data stringg pada
p
file sampai ditemukannya karakter baris baru ‘\n’ atau
setelah ( n-1 ) karakter, dengan n adalah panjang
maksimal stringg yang
y g dibaca perp waktu-baca adalah fgets(
g (
)
Bentuk deklarasinya :
char *fgets
fgets (char *str
str, int n,
n FILE *ptr
ptr_file);
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,
(ptr file “string
string kontrol”
kontrol , daftar argumen);

Kedua fungsig diatas berlaku seperti


p fungsi
g printf(
p ( ) dan
scanf( ), hanya saja operasinya pada file.
Pengaksesan File Biner Secara
Acak
Fungsig yang
y g digunakan
g untuk mengakses
g 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
f t menyatakan
t k jjumlah
l hb
byte
t tterhadap
h d posisi ii
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
SEEK_SET);
SET);
Pernyataan tersebut menempatkan penunjuk file ke
posisi 3 byte
p y sesudah awal file (SEEK
( _SET).
)
fseek (pf, 3, SEEK_END);
Pernyataan
y ini akan menempatkan
p penunjuk
p 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).
(masukan-keluaran 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,
O_WRONLY O RDWR yang didefinisikan pada file
fcntl.h
 Fungsi create( ): untuk menciptakan file baru atau untuk
mengosongkan file yang berisi
Bentuk deklarasi :
int _create (char *namafile, int atrib);
d
dengan atrib
t ib untuk
t k menentukan
t k atribut
t ib t fil
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
(cont.))
Fungsi _read( ) : untuk membaca isi file.
Bentuk deklarasinya :
int _read (int handle, void*buffer, unsigned
panjang);

Fungsi i _write(
i ( ) : untukk menulis
li ke
k file
fil
Bentuk deklarasinya:
int _write
write (int handle,
handle void *bufer
bufer, unsigned
panjang);
fungsi lseek( ) : untuk memindah penunjuk file (yang
memungkinkan pengaksesan file secara acak))
Bentuk deklarasinya :
long lseek (int handle,
handle long ofset,
ofset int posisi);
Menghapus File
 Fungsi unlink( ) digunakan untuk menghapus File.
 Bentuk deklarasinya :
int unlink (char *namafile);
ket:
 namafile
fil adalah
d l h pointer
i t yang menunjuk
j k kke nama fil
file
yang akan dihapus.
Mengganti Nama File
 Fungsi rename( ) digunakan untuk mengganti nama file.
 Bentuk deklarasinya :
i rename ((char
int h **nmafilelama,
fil l char
h *namafilebaru);
* fil b )
Referensi
 Bab 12, “Text and Binary File Processing”, Problem
Solving and Program Design in C, Jeri R. Hanly dan
Elliot B
B. Koffman
Koffman, Addison Wesley
Wesley, 2002

Anda mungkin juga menyukai