Anda di halaman 1dari 8

PRAKTIKUM 13

13.1 JUDUL

FILE

13.2 TUJUAN

Pada akhir perkuliahan ini mahasiswa akan dapat memahami:

o Cara menyimpan data dalam bentuk FILE


o Memahami data struct FILE
o Membaca File

13.3 DASAR TEORI


Program seringkali melakukan penyimpanan data secara permanen. Misalkan disimpan
dalam bentuk file, sehinga variabel atau data yang telah di peroleh dapat dipergunakan
lagi.
Dalam bahasa C, urusan file di handle oleh sebuah typedef struct dengan nama FILE
(huruf besar).
Format FILE
FILE *fopen(const char *nama-file, const char *mode);
Jika berhasil akan muncul pointer alamat file, jika gagal muncul NULL.
Arti mode:
• “r” : membuka file yang telah ada untuk dibaca.
• “w” : Membuka file baru untuk ditulisi. Jika file telah ada, maka isi file lama
akan dihapus.
• “a” : Membuka file yang telah ada untuk menambah data di akhir file.
• “r+” : Seperti “r”, tapi juga dapat ditulisi.
• “w+” :seperti “w” tapi juga dapat dibaca
• “a+” : seperti “a”, selain dapat di tulisi, dapat dibaca.

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 112
File dapat disimpan dan dibaca sebagai
- File Text
- File Binary

13.4 LANGKAH PERCOBAAN

1. Menulis data karakter ke file (Mode File Text).

a. Program ini akan merekam semua tombol yang kita tekan ke dalam file
bernama “coba.txt”. Ketiklah program di bawah ini.
/*------------------
Program membaca penekanan keyboard
dan langsung DISIMPAN di file coba.txt
Ctrl Z untuk mengakhiri
-------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define CTRL_Z 26

main()
{
FILE *pfile;
char data;
if( (pfile=fopen("coba.txt","w")) == NULL )
{
cputs("File tidak dapat dibuat !!!\\r\n");
exit(0);
}
while ( (data=getche()) != CTRL_Z )
putc(data, pfile);
fclose(pfile);
}

b. Jalankan Program, catat apa yang tampak di layar?

c. Bukalah file coba.txt dengan menggunakan text editor seperti notepad.


Apakah isinya, catat pada laporan.
d. Apakah sama antara yang ditekan dengan yang ada pada coba.txt?

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 113
2. Membaca data dari file ke layar (Mode File Text)

a. Sebaliknya program di atas, program ini akan berfungsi seperti notepad,


yaitu membaca dan menampilkan isi dari file text “coba.txt”. Ketiklah
program di bawah ini.
/*-----------------------------
Program membaca file coba.txt
-----------------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define CTRL_Z 26

main()
{
FILE *pfile;
char data;
clrscr();
if( (pfile=fopen("coba.txt","r")) == NULL )
{
cputs("File tidak dapat dibuka !!!\\r\n");
exit(1);
}
while ( (data=getc(pfile)) != EOF )
putch(data);
fclose(pfile);

getch();
}

b. Jalankan Program, catat apa yang tampak di layar?

c. Apakah tampilannya sesuai dengan program sebelumnya?

3. Menyimpan angka yang dimasukkan ke FILE (Mode Biner)

a. Berikut ini akan disimpan sebuah data angkat bertipe int (interger). Angka
ini jelas bukan karakter. Sebab sebuah angka 12 bukan disimpan 1 dan 2 (2
byte), tapi akan disimpan sebagai 0001 1100 B atau 1Ch di dalam file. Jadi
disimpan 1 Byte saja. Inilah mode biner.
b. Percobaan ini akan menyimpan data di “bilangan.dat”. Ketiklah program di
bawah ini.

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 114
/*------------------
Program menyimpan data interger
-------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>

main()
{
FILE *pfile;
int nilai;
char jawab;
clrscr();
if( (pfile=fopen("bilangan.dat","wb")) == NULL )
{
cputs("File tidak dapat dibuat !!!\\r\n");
exit(1);
}
do
{
printf("\nBilangan yang akan disimpan = ");
scanf("%i",&nilai);
putw(nilai,pfile);
printf("Memasukkan data lagi y/n ? = ");
jawab=getch();
}while (jawab=='Y' || jawab=='y');

fclose(pfile);
puts("\nOK. Data Sudah disimpan");
getch();
}

c. Jalankan Program, catat apa yang tampak di layar?

d. Bukalah dengan notepad isi bilangan.dat, apakah isinya?


e. Carilah sebuah hex editor, buka file tersebut, apakah isinya? Catat dilaporan
sementara.
f. Apakah isi dari hex editor sama dengan angka yang anda masukkan
(pastikan sama secara bilangan, misal konversi ke hexa semua atau desimal
semua, baru dibandingkan).

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 115
4. Membaca angka yang disimpan dari FILE (Mode Biner)

a. Membaca file biner yang berisi angka.


Ketiklah program di bawah ini.
/*-----------------------------
Program membaca data interger
-------------------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>

main()
{
FILE *pfile;
int i=1,nilai;
clrscr();
if( (pfile=fopen("bilangan.dat","rb")) == NULL )
{
cputs("File tidak dapat dibaca !!!\\r\n");
exit(1);
}
puts("Isi file bilangan.dat = ");
while (1)
{
nilai=getw(pfile);
if (feof(pfile) != NULL) break;
printf("Data ke %i = %i \r\n",i,nilai);
i++;
}

fclose(pfile);
getch();
}

b. Jalankan Program, catat apa yang tampak di layar?

c. Apakah isinya sama dengan program sebelumnya?


5. Menyimpan data per blok (Mode Biner)

a. Berikutnya akan ditunjukkan untuk menyimpan data per blok. Misalkan


menggunakan struc. Dengan demikian, kita dapat menyimpan data
langsung sebuah blok data seperti nama, alamat, no hp dll dalam satu waktu
menggunakan struct.
sizeof() adalah perintah untuk mengetahui besar byte variabel yang ada
dalam tanda kurung.

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 116
/*--------------------------------
Program Menyimpan data berstruktur
----------------------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
main()
{
FILE *pfile;
char jawaban;
struct data_pustaka
{ char judul[26];
char pengarang[20];
int jumlah;
} buku;

if( (pfile=fopen("buku.dat","wb")) == NULL )


{
printf("File tidak dapat dibuat !!!");
exit(1);
}
clrscr();
do
{
printf("Judul buku : ");gets(buku.judul);
printf("Pengarang : ");gets(buku.pengarang);
printf("Jumlah : ");scanf("%i",&buku.jumlah);
fflush(stdin);
fwrite(&buku,sizeof(buku),1,pfile);
printf("Merekam data lagi ? y/n");
jawaban=getche();
printf("\n\n");
}while (jawaban == 'y' || jawaban == 'Y');

fclose(pfile);
}

b. Jalankan program, dan isikan minimal 4 data pustaka.

c. Buka file buku.dat dengan editor, apakah yang tampak?


d. Buka file buku.dat dengan Hexa editor, apakah yang tampak?

6. Memanggil dan menampilkan data per blok (Mode Biner)

a. Ketikan perintah berikut:

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 117
/*--------------------------------
Program Menyimpan data berstruktur
----------------------------------*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define JUM_BLOK 1 //sebuah record
main()
{
FILE *pfile;
struct data_pustaka
{ char judul[26];
char pengarang[20];
int jumlah;
} buku;

if( (pfile=fopen("buku.dat","rb")) == NULL )


{
printf("File tidak dapat dibuka !!!");
exit(1);
}
clrscr();
printf("%-26s %-20s %s\n","Judul Buku","Pengarang","Jml");
printf("----------------------------------------------------\n");
while( fread(&buku, sizeof(buku), JUM_BLOK, pfile) == JUM_BLOK)
printf("%-26s %-20s
%2d\n",buku.judul,buku.pengarang,buku.jumlah);

fclose(pfile);
getch();
}

b. Jalankan program, Tampilkan apa yang tampak pada layar.

13.5 DATA

<Isikan data langkah percobaan di lembar kerja praktikum>

13.6 Analisa Data

<Buatlah analisa berdasar data yang diperoleh>

13.7 Kesimpulan

<Ambil kesimpulan dari hasil praktikum, data dan analisa data anda>

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 118
13.8 Soal

Gambungkan ke 6 program tadi dalam sebuah menu, dan pastikan semua dapat

berjalan baik.

Algoritma dan Pemrograman By Agus SBN, Prodi TI-SIKC – POLIBAN. Hal 119

Anda mungkin juga menyukai