Anda di halaman 1dari 18

KU-1072 PTI-B:

File IO

FTI-ITB 2011

PTI-B FTI 2011 1


Silabus
 File IO
 Menuliskan data ke file
 Membaca data dari file

PTI-B FTI 2011 2


TESTING PROGRAM
 Pengetesan program
 Memerlukan Input Data
 Mengamati Output
 Biasanya
 Input Data keyboard
 Output Data  layar
 Jika jumlah datanya besar/banyak, akankah kita
sanggup/siap memasukan data lewat keboard dan
mengamati data di layar BERKALI-KALI

  GUNAKAN FILE I/O


PTI-B FTI 2011 3
FILE I/O
 Ada 2 jenis file di C
 Text File
 Binary File
 Keduanya dibaca/ditulis sebagai aliran (stream) dari
karakter
 File dibaca/ditulis karakter-perkarakter sesuai
dengan INDIKATOR posisi
 INDIKATOR posisi diset diawal file pada saat awal
pembacaan/penulisan dan dapat dipindahkan ke
suatu tempat berdasarkan perintah dalam program

PTI-B FTI 2011 4


FILE I/O
 Text file berisi rangkaian karakter yang tersusun
dalam rangkaian baris tek.
 Tiap baris dapat berisi karakter sampai 255 karakter
dan diakhiri dengan karakter „newline‟ (\n).
 Ada karakter-karakter yang memiliki arti tertentu
yang harus diinterpretasi secara khusus
 Data text dapat dibaca di flatform/mesin manapun.
 Data binary dapat menyimpan data terurut termasuk
data tek. Pembacaan data binary umumnya
tergantung dari flatform/mesin dimana data itu
dibuat
 Hanya akan membahas Text File

PTI-B FTI 2011 5


KOMUNIKASI DATA DGN FILE
 Urutan penulisan/pembacaan data ke/dari file
 Deklarasikan variabel file
 Open file
 Menuliskan/Membaca data ke/dari file
 Close file

PTI-B FTI 2011 6


DEKLARASI VARIABEL FILE
 Deklarasi variabel FILE yang merupakan POINTER
ke file :
 FILE *< pointer file >;
 FILE adalah tipe data/struktur yang didefinisikan di
dalam stdio.h.
 FILE akan menyimpan semua informasi yang
berhubungan dengan file

PTI-B FTI 2011 7


OPEN FILE
 < pointer file > = fopen(char nama_file, char mode);
 nama file termasuk lokasi direktori dimana file itu disimpan
Mode Arti
r file yang dibuka hanya bisa dibaca saja
r+ file yang dibuka bisa dibaca dan ditulis
file yang dibuka hanya bisa ditulis saja, jika nama file yang sama sudah ada
w
maka file yang lama akan terhapus diganti dengan yang baru
file yang dibuka bisa dibaca dan ditulis, jika nama file yang sama sudah ada
w+
maka file yang lama akan terhapus diganti dengan yang baru
pada file yang dibuka hanya dapat ditambahkan data saja mulai dari akhir
a data yang ada. Jika nama file yang bersesuaian tidak ada maka file baru
akan dibuat
pada file yang dibuka dapat dibaca dan ditambahkan data. Jika nama file
a+
yang bersesuaian tidak ada maka file baru akan dibuat

Return type fopen : jika sukses  “pointer file”, jika gagal  NULL

PTI-B FTI 2011 8


CLOSE FILE
 Semua file yang dibuka setelah selesai harus ditutup
 fclose(<pointer file>);
 fungsi ini akan mengembaikan nilai 0 jika sukses dan
EOF jika gagal
 Jika sampai akhir program tidak dijumpai perintah
ini, maka program akan dengan sendirinya menutup
semua file yang sedang dibuka ketika mengakhiri
eksekusi program

PTI-B FTI 2011 9


MENULISKAN DATA KE FILE
 putc, fputs dan fprintf merupakan fungsi-fungsi di
pustaka stdio.h yang dapat dipakai untuk menuliskan
data ke file.
 putc( <karakter>, < pointer file> );
Menuliskan 1 karakter, return karakter jika sukses dan return EOF
jika gagal
 fputs( <string / array karakter>, <pointer file> );
Menuliskan 1 baris string, return string jika sukses dan return EOF
jika gagal
 fprintf(<pointer file>, <string format data>, <daftar variabel>) ;
Menuliskan data secara terformat, return bilangan positif jika
sukses dan return bilangan negatif jika gagal

PTI-B FTI 2011 10


CONTOH PEMAKAIAN putc
#include <stdio.h>
void main()
{
FILE *p_file; //pointer file
p_file = fopen(“data_putc.dat”, “w”);//file data_putc.dat berada satu direktori dgn file program

int i;
char string[ ]=“Menyimpan data dengan putc”;

for (i = 0; i < 100; i++)


{
if (string[i] == '\0') //test akhir dari string
{
putc('\n', p_file);
break;
}
else
putc(string[i], p_file); //tuliskan karakter berikutnya
}
fclose(p_file);
return 0;
}

PTI-B FTI 2011 11


CONTOH PEMAKAIAN fputs
#include <stdio.h>
void main()
{
FILE *p_file; //pointer file
p_file = fopen(“data_fputs.dat”, “w”);

fputs ( “Menyimpan data dengan fputs”, p_file );


fclose (p_file);
return 0;
}

PTI-B FTI 2011 12


CONTOH PEMAKAIAN fprintf
#include <stdio.h>
main()
{
float dataf = 123.4567;
int datai = 250;
char datas[ ] = “data string”;

FILE *p_file; //pointer file


p_file = fopen(“data_fprintf.dat”, “w”);

fprintf (p_file, “ %f %d %s”, dataf, datai, datas);


printf (“ %f %d %s”, dataf, datai, datas);
fclose (p_file);
}

PTI-B FTI 2011 13


MEMBACA DATA DARI FILE
 getc, fgets dan fscanf merupakan fungsi-fungsi di
pustaka stdio.h yang dapat dipakai untuk membaca
data dari file.
 <char variabel> = getc( < pointer file > );
Membaca 1 karakter, return karakter jika sukses dan return EOF jika
gagal
 fgets(<string>, <max panjang string>, <pointer file>);
Membaca 1 baris string, return string jika sukses dan return EOF jika
gagal
 fscanf(<pointer file>, <string format data>, <daftar variabel>) ;
Membaca data secara terformat, return bilangan bulat jika sukses dan
return EOF jika gagal

PTI-B FTI 2011 14


CONTOH PEMAKAIAN getc
#include <stdio.h>
#include <stdlib.h> //untuk exit(1)
main()
{
FILE *p_file; //pointer file
int karakter;// menyimpan bilangan ASCII dr karakter

p_file = fopen(“data_putc.dat”, “r”);


if (p_file == NULL)
{
printf (“file tidak ada”);
exit(1); //keluar dari program
}
karakter = getc (p_file) ;
while (karakter != EOF)
{
putchar (karakter); //data ditampilkan ke layar
karakter = getc (p_file);
}
fclose (p_file);
}

PTI-B FTI 2011 15


CONTOH PEMAKAIAN fgets
#include <stdio.h>
#include <stdlib.h> //untuk exit(1)
#define MAX 256 //maximum karakter perbaris
main()
{
FILE *p_file; //pointer file
char karakter[MAX];

p_file = fopen(“data_fputs.dat”, “r”);


if (p_file == NULL)
{
printf (“file tidak ada”);
exit(1); //keluar dari program
}

while (fgets(karakter,MAX,p_file)!= NULL)


{
printf(“%s”,karakter);
fgets(karakter,MAX,p_file);
}
fclose (p_file);
}

PTI-B FTI 2011 16


CONTOH PEMAKAIAN fscanf
#include <stdio.h>
#include <stdlib.h>//untuk exit(1)
main()
{
float dataf;
int datai;
char datas[50];

FILE *p_file; //pointer file


p_file = fopen(“data_fprintf.dat”, “r”);
if (p_file == NULL)
{
printf (“file tidak ada”);
exit(1); //keluar dari program
}

fscanf (p_file, “ %f %d %s”, &dataf, &datai, datas);


printf (“ %.3f %d %s”, dataf, datai, datas);
fclose (p_file);
}

PTI-B FTI 2011 17


FUNGSI-FUNGSI LAINNYA di stdio.h
 fseek( <pointer file>, <offset>, <awal> );
memilih lokasi serta panjangnya data yang ingin dibaca atau
ditulis
 SEEK_SET Start of file.
 SEEK_CUR Current location.
 SEEK_END End of file.
 rewind(<file_pointer>);
Mengembalikan posisi INDIKATOR posisi ke awal file
 rename(<nama_file_lama>, <nama_file_baru>);
Mengganti nama file
 remove(<file_name_string>);
Menghapus file

PTI-B FTI 2011 18

Anda mungkin juga menyukai