ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
pengaksesan-berkas-file-dalam-c.pdf
Algoritma dan Pemrograman 2
T-Informatika FT UNPAM Atang Susila
PENGAKSESAN BERKAS (FILE) DALAM C
Arsip/File/Berkas merupakan struktur penyimpanan data didalam memori sekunder seperti hard disk. Struktur
arsip memungkinkan data disimpan secara permanen dan diakses kembali jika diperlukan. Setiap item data yang
disimpan dalam arsip disebut rekaman (record).
Pengorganisasian data dalam arsip ada 2 cara :
1. Beruntun (seqential)
a. metode paling sederhana
b. rekaman disimpan secara beruntun (rekaman yg satu setelah yg lain)
c. data diakses mulai dari rekaman pertama sampai yang diinginkan
d. pada umumnya lambat
e. mudah dibuat dan dipelihara
2. Acak (random)/akses-langsung (direct access)
a. rekaman diakses secara langsung tanpa perlu mulai dari yang pertama
b. pengaksesan data individual lebih cepat
c. lebih sulit dibuat dan dipelihara
I. PENGAKSESAN ARSIP BERUNTUN
Arsip beruntun adalah sekumpulan rekaman bertipe sama yang diakses secara beruntun mulai dari rekaman
pertama sampai rekaman yang dituju atau sampai dengan rekaman terakhir.
Struktur arsip beruntun tidak jauh berbeda dengan struktur larik. Setiap komponen larik disebut elemen
sedangkan pada arsip disebut rekaman. Perbedaan arsip dengan larik hanya pada pilihan cara pengaksesan
Algoritma dan Pemrograman 3
T-Informatika FT UNPAM Atang Susila
elemen dan arah pemrosesan. Rekaman dalam arsip beruntun tidak dapat diakses secara langsung karena harus
dibaca dari awal rekaman, sementara dalam larik elemennya dapat diakses secara langsung melalui indeknya.
Struktur arsip beruntun
Sebelum melakukan pemrosesan arsip, maka arsip tersebut harus dideklarasikan terlebih dahulu. Bentuk mum
pendeklarasian arsip dalam bahasa C adalah sbb:
FILE *arsip;
Perintah-perintah baku yang dapat digunakan dalam pemrosesan arsip beruntun adalah :
fopen : menyiapkan arsip untuk penulisan atau pembacaan
fclose : menutup arsip
fscanf : membaca rekaman dari arsip
fprintf : menulis rekaman ke arsip
Algoritma dan Pemrograman 4
}
T-Informatika FT UNPAM Atang Susila
Contoh 1 : Menulis ke dan membaca dari arsip berurutan
#include<iostream.h>
#include<stdio.h>
FILE *fp;
void main(void)
{
int i=0,k;
//Menyimpan data ke file
fp=fopen("d:kampusprogramc++FileIO1data1.dat","w");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else
{
for(i=0;i<=10;i++)fprintf(fp,"%d ",i);
fclose(fp);
}
//Membaca data dari file
fp=fopen("d:kampusprogramc++FileIO1data1.dat","r");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else
{
while(!feof(fp))
{
fscanf(fp,"%d ",&k);cout<<k<<" ";
}
cout<<endl;
fclose(fp);
}
Algoritma dan Pemrograman 5
}
T-Informatika FT UNPAM Atang Susila
Contoh 2 : Menulis ke dan membaca dari arsip berurutan
#include<iostream.h>
#include<stdio.h>
FILE *fp;
void main(void)
{
int i,j,jml_dat,k[100];
//Menyimpan data ke file
fp=fopen("d:kampusprogramc++FileIO2data1.dat","w");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else
{
for(i=0;i<=10;i++)fprintf(fp,"%d ",i);fclose(fp);
}
//Membaca data dari file
fp=fopen("d:kampusprogramc++FileIO2data1.dat","r");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else
{
i=0;
while(!feof(fp))
{
fscanf(fp,"%d ",&k[i]);i++;
}
jml_dat=i;fclose(fp);
}
for(j=0;j<jml_dat;j++)cout<<k[j]<<" ";cout<<endl;
Algoritma dan Pemrograman 6
T-Informatika FT UNPAM Atang Susila
II. PENGAKSESAN FILE SECARA RANDOM
Panjang rekaman dalam file yang diakses secara random tetap dan dapat diakses secara langsung tanpa
melalui pencarian melalui rekaman lain. Oleh karena itu file yang diakses secara random cocok digunakan dalam
bidang reservasi pesawat terbang, sistem perbangkan, aplikasi lain yang memerlukan pengaksesan data secara
cepat terhadap data tertentu. Karena panjang rekaman bersipat tetap maka lokasi dari suatu rekaman relatif
terhadap awal berkas dapat dihitung sebagai fungsi dari kunci rekaman.
Struktur penyimpanan secara random
Perintah-perintah baku yang dapat digunakan dalam pemrosesan arsip beruntun adalah :
fopen : menyiapkan arsip untuk penulisan atau pembacaan
fclose : menutup arsip
fread : membaca rekaman dari arsip
fwrite : menulis rekaman ke arsip
fseek : menempatkan pointer pada posisi tertentu
Algoritma dan Pemrograman 7
T-Informatika FT UNPAM Atang Susila
Contoh 1 : Menulis ke dan membaca dari arsip secara random
//Penyimpanan & Pembacaan data secara random
#include<iostream.h>
#include<stdio.h>
FILE *fp;
void main(void)
{
int i,j,jml_dat;
int k[100];
//Menulis data ke arsip
fp=fopen("d:kampusprogramc++FileIO3data1.dat","w");
if(fp==NULL)cout<<"Error membuka file"<<endl;
else
{
for(i=0;i<=10;i++)fwrite(&i,sizeof(i),1,fp);
fclose(fp);
}
//Membaca seluruh data data dari arsip
fp=fopen("d:kampusprogramc++FileIO3data1.dat","r");
if(fp==NULL)cout<<"Error membuka file"<<endl;
else
{
i=0;
while(!feof(fp))
{
fread(&k[i],sizeof(int),1,fp);
i++;
}
Algoritma dan Pemrograman 8
}
T-Informatika FT UNPAM Atang Susila
fclose(fp);
}
//Mencetak selauruh data ke layar
jml_dat=i-1;
cout<<"Jumlah data = "<<jml_dat<<endl;
for(j=0;j<jml_dat;j++)cout<<k[j]<<" ";
cout<<endl;
fp=fopen("d:kampusprogramc++FileIO3data1.dat","r");
if(fp==NULL)cout<<"Error membuka file"<<endl;
else
{
//Baca data ke-0
fseek(fp,0*sizeof(j),SEEK_SET);
fread(&j,sizeof(j),1,fp);
cout<<"Data ke-0 = "<<j<<endl;
//Baca data ke-1
fseek(fp,1*sizeof(j),SEEK_SET);
fread(&j,sizeof(j),1,fp);
cout<<"Data ke-1 = "<<j<<endl;
//Baca data ke-5
fseek(fp,5*sizeof(j),SEEK_SET);
fread(&j,sizeof(j),1,fp);
cout<<"Data ke-5 = "<<j<<endl;
//Baca data ke-0
rewind(fp);
fread(&j,sizeof(j),1,fp);
cout<<"Data ke-0 = "<<j<<endl;
}
Algoritma dan Pemrograman 9
}
T-Informatika FT UNPAM Atang Susila
Contoh 2 : Menulis ke dan membaca dari arsip secara random
//Penyimpanan & Pembacaan data secara random, data ditulis sekaligus
#include<iostream.h>
#include<stdio.h>
FILE *fp;
void main(void)
{
int i,j,jml_dat, k[100];
fp=fopen("d:kampusprogramc++FileIO4data1.dat","w");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else {
for(i=0;i<=10;i++)k[i]=i;
fwrite(k,sizeof(i),11,fp);
fclose(fp);
}
fp=fopen("d:kampusprogramc++FileIO4data1.dat","r");
if(fp==NULL)cout<<"Error membuka berkas"<<endl;
else {
i=0;
rewind(fp);
while(!feof(fp))
{
fread(&k[i],sizeof(int),1,fp);i++;
}
fclose(fp);
}
jml_dat=i-1;
cout<<"Jumlah data = "<<jml_dat<<endl;
for(j=0;j<jml_dat;j++)cout<<k[j]<<" ";
cout<<endl;
Algoritma dan Pemrograman 10
T-Informatika FT UNPAM Atang Susila
STUDY KASUS
Buatlah program C/C++ yang memberikan tampilan sbb :
Ket :
Pilihan 1 : Memasukan sejumlah data dari keyboard
Pilihan 2 : Menyimpan seluruh data kedalam sebuah arsip
Pilihan 3 : Membaca data dari arsip
Pilihan 4 : Menampilkan data
Pilihan 5 : Mengurutkan data
Pilihan 6 : Menampilkan data yang telah diurutkan

More Related Content

Similar to pengaksesan-berkas-file-dalam-c.pdf (20)

File system linux
File system linuxFile system linux
File system linux
moliiceman
Ìý
Algoritma dan Struktur Data - Operasi File
Algoritma dan Struktur Data - Operasi FileAlgoritma dan Struktur Data - Operasi File
Algoritma dan Struktur Data - Operasi File
KuliahKita
Ìý
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
Hidayatullah Aldy
Ìý
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
Georgius Rinaldo
Ìý
Praktikum ii linux file system
Praktikum ii linux file systemPraktikum ii linux file system
Praktikum ii linux file system
MooksHal Mhiestri
Ìý
Perintah Perintah Filesystem Hierarchy Standard di Linux
Perintah Perintah Filesystem Hierarchy Standard di LinuxPerintah Perintah Filesystem Hierarchy Standard di Linux
Perintah Perintah Filesystem Hierarchy Standard di Linux
Alfan Khudori
Ìý
23. pkti-2b[5]
23. pkti-2b[5]23. pkti-2b[5]
23. pkti-2b[5]
Politeknik Bosowa
Ìý
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
Alvin Setiawan
Ìý
Pertemuan13 manajemen perangkat keras
Pertemuan13   manajemen perangkat kerasPertemuan13   manajemen perangkat keras
Pertemuan13 manajemen perangkat keras
Syaiful Ahdan
Ìý
implementation e-Government
implementation e-Governmentimplementation e-Government
implementation e-Government
guest91544b
Ìý
Lapres so d_modul4_yuka
Lapres so d_modul4_yukaLapres so d_modul4_yuka
Lapres so d_modul4_yuka
Yuka Arjaka
Ìý
back up store analisa data for busnis teknologi
back up store analisa data for busnis teknologiback up store analisa data for busnis teknologi
back up store analisa data for busnis teknologi
anggiatsaing8
Ìý
Pertemuan 2
Pertemuan 2Pertemuan 2
Pertemuan 2
eli priyatna laidan
Ìý
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
Ahmad Rais Ruli
Ìý
Mod -1_-_so_-_2013-2014
Mod  -1_-_so_-_2013-2014Mod  -1_-_so_-_2013-2014
Mod -1_-_so_-_2013-2014
day_aftercoma
Ìý
02 tif44 linux-2014
02 tif44 linux-201402 tif44 linux-2014
02 tif44 linux-2014
sardhika
Ìý
Gnu linux#2 fhs
Gnu linux#2 fhsGnu linux#2 fhs
Gnu linux#2 fhs
Muksidin Emoox
Ìý
Affif data backup
Affif data backupAffif data backup
Affif data backup
Sejahtera Affif
Ìý
File system linux
File system linuxFile system linux
File system linux
moliiceman
Ìý
Algoritma dan Struktur Data - Operasi File
Algoritma dan Struktur Data - Operasi FileAlgoritma dan Struktur Data - Operasi File
Algoritma dan Struktur Data - Operasi File
KuliahKita
Ìý
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
Hidayatullah Aldy
Ìý
Algoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi fileAlgoritma dan Struktur Data - operasi file
Algoritma dan Struktur Data - operasi file
Georgius Rinaldo
Ìý
Praktikum ii linux file system
Praktikum ii linux file systemPraktikum ii linux file system
Praktikum ii linux file system
MooksHal Mhiestri
Ìý
Perintah Perintah Filesystem Hierarchy Standard di Linux
Perintah Perintah Filesystem Hierarchy Standard di LinuxPerintah Perintah Filesystem Hierarchy Standard di Linux
Perintah Perintah Filesystem Hierarchy Standard di Linux
Alfan Khudori
Ìý
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
2 ka24 sistem operasi- 2ka24_sistem operasi- materi sistem file
Alvin Setiawan
Ìý
Pertemuan13 manajemen perangkat keras
Pertemuan13   manajemen perangkat kerasPertemuan13   manajemen perangkat keras
Pertemuan13 manajemen perangkat keras
Syaiful Ahdan
Ìý
implementation e-Government
implementation e-Governmentimplementation e-Government
implementation e-Government
guest91544b
Ìý
Lapres so d_modul4_yuka
Lapres so d_modul4_yukaLapres so d_modul4_yuka
Lapres so d_modul4_yuka
Yuka Arjaka
Ìý
back up store analisa data for busnis teknologi
back up store analisa data for busnis teknologiback up store analisa data for busnis teknologi
back up store analisa data for busnis teknologi
anggiatsaing8
Ìý
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
328-P11 ºÝºÝߣ Mata Kuliah Sistem Operasi
Ahmad Rais Ruli
Ìý
Mod -1_-_so_-_2013-2014
Mod  -1_-_so_-_2013-2014Mod  -1_-_so_-_2013-2014
Mod -1_-_so_-_2013-2014
day_aftercoma
Ìý
02 tif44 linux-2014
02 tif44 linux-201402 tif44 linux-2014
02 tif44 linux-2014
sardhika
Ìý

pengaksesan-berkas-file-dalam-c.pdf

  • 2. Algoritma dan Pemrograman 2 T-Informatika FT UNPAM Atang Susila PENGAKSESAN BERKAS (FILE) DALAM C Arsip/File/Berkas merupakan struktur penyimpanan data didalam memori sekunder seperti hard disk. Struktur arsip memungkinkan data disimpan secara permanen dan diakses kembali jika diperlukan. Setiap item data yang disimpan dalam arsip disebut rekaman (record). Pengorganisasian data dalam arsip ada 2 cara : 1. Beruntun (seqential) a. metode paling sederhana b. rekaman disimpan secara beruntun (rekaman yg satu setelah yg lain) c. data diakses mulai dari rekaman pertama sampai yang diinginkan d. pada umumnya lambat e. mudah dibuat dan dipelihara 2. Acak (random)/akses-langsung (direct access) a. rekaman diakses secara langsung tanpa perlu mulai dari yang pertama b. pengaksesan data individual lebih cepat c. lebih sulit dibuat dan dipelihara I. PENGAKSESAN ARSIP BERUNTUN Arsip beruntun adalah sekumpulan rekaman bertipe sama yang diakses secara beruntun mulai dari rekaman pertama sampai rekaman yang dituju atau sampai dengan rekaman terakhir. Struktur arsip beruntun tidak jauh berbeda dengan struktur larik. Setiap komponen larik disebut elemen sedangkan pada arsip disebut rekaman. Perbedaan arsip dengan larik hanya pada pilihan cara pengaksesan
  • 3. Algoritma dan Pemrograman 3 T-Informatika FT UNPAM Atang Susila elemen dan arah pemrosesan. Rekaman dalam arsip beruntun tidak dapat diakses secara langsung karena harus dibaca dari awal rekaman, sementara dalam larik elemennya dapat diakses secara langsung melalui indeknya. Struktur arsip beruntun Sebelum melakukan pemrosesan arsip, maka arsip tersebut harus dideklarasikan terlebih dahulu. Bentuk mum pendeklarasian arsip dalam bahasa C adalah sbb: FILE *arsip; Perintah-perintah baku yang dapat digunakan dalam pemrosesan arsip beruntun adalah : fopen : menyiapkan arsip untuk penulisan atau pembacaan fclose : menutup arsip fscanf : membaca rekaman dari arsip fprintf : menulis rekaman ke arsip
  • 4. Algoritma dan Pemrograman 4 } T-Informatika FT UNPAM Atang Susila Contoh 1 : Menulis ke dan membaca dari arsip berurutan #include<iostream.h> #include<stdio.h> FILE *fp; void main(void) { int i=0,k; //Menyimpan data ke file fp=fopen("d:kampusprogramc++FileIO1data1.dat","w"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { for(i=0;i<=10;i++)fprintf(fp,"%d ",i); fclose(fp); } //Membaca data dari file fp=fopen("d:kampusprogramc++FileIO1data1.dat","r"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { while(!feof(fp)) { fscanf(fp,"%d ",&k);cout<<k<<" "; } cout<<endl; fclose(fp); }
  • 5. Algoritma dan Pemrograman 5 } T-Informatika FT UNPAM Atang Susila Contoh 2 : Menulis ke dan membaca dari arsip berurutan #include<iostream.h> #include<stdio.h> FILE *fp; void main(void) { int i,j,jml_dat,k[100]; //Menyimpan data ke file fp=fopen("d:kampusprogramc++FileIO2data1.dat","w"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { for(i=0;i<=10;i++)fprintf(fp,"%d ",i);fclose(fp); } //Membaca data dari file fp=fopen("d:kampusprogramc++FileIO2data1.dat","r"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { i=0; while(!feof(fp)) { fscanf(fp,"%d ",&k[i]);i++; } jml_dat=i;fclose(fp); } for(j=0;j<jml_dat;j++)cout<<k[j]<<" ";cout<<endl;
  • 6. Algoritma dan Pemrograman 6 T-Informatika FT UNPAM Atang Susila II. PENGAKSESAN FILE SECARA RANDOM Panjang rekaman dalam file yang diakses secara random tetap dan dapat diakses secara langsung tanpa melalui pencarian melalui rekaman lain. Oleh karena itu file yang diakses secara random cocok digunakan dalam bidang reservasi pesawat terbang, sistem perbangkan, aplikasi lain yang memerlukan pengaksesan data secara cepat terhadap data tertentu. Karena panjang rekaman bersipat tetap maka lokasi dari suatu rekaman relatif terhadap awal berkas dapat dihitung sebagai fungsi dari kunci rekaman. Struktur penyimpanan secara random Perintah-perintah baku yang dapat digunakan dalam pemrosesan arsip beruntun adalah : fopen : menyiapkan arsip untuk penulisan atau pembacaan fclose : menutup arsip fread : membaca rekaman dari arsip fwrite : menulis rekaman ke arsip fseek : menempatkan pointer pada posisi tertentu
  • 7. Algoritma dan Pemrograman 7 T-Informatika FT UNPAM Atang Susila Contoh 1 : Menulis ke dan membaca dari arsip secara random //Penyimpanan & Pembacaan data secara random #include<iostream.h> #include<stdio.h> FILE *fp; void main(void) { int i,j,jml_dat; int k[100]; //Menulis data ke arsip fp=fopen("d:kampusprogramc++FileIO3data1.dat","w"); if(fp==NULL)cout<<"Error membuka file"<<endl; else { for(i=0;i<=10;i++)fwrite(&i,sizeof(i),1,fp); fclose(fp); } //Membaca seluruh data data dari arsip fp=fopen("d:kampusprogramc++FileIO3data1.dat","r"); if(fp==NULL)cout<<"Error membuka file"<<endl; else { i=0; while(!feof(fp)) { fread(&k[i],sizeof(int),1,fp); i++; }
  • 8. Algoritma dan Pemrograman 8 } T-Informatika FT UNPAM Atang Susila fclose(fp); } //Mencetak selauruh data ke layar jml_dat=i-1; cout<<"Jumlah data = "<<jml_dat<<endl; for(j=0;j<jml_dat;j++)cout<<k[j]<<" "; cout<<endl; fp=fopen("d:kampusprogramc++FileIO3data1.dat","r"); if(fp==NULL)cout<<"Error membuka file"<<endl; else { //Baca data ke-0 fseek(fp,0*sizeof(j),SEEK_SET); fread(&j,sizeof(j),1,fp); cout<<"Data ke-0 = "<<j<<endl; //Baca data ke-1 fseek(fp,1*sizeof(j),SEEK_SET); fread(&j,sizeof(j),1,fp); cout<<"Data ke-1 = "<<j<<endl; //Baca data ke-5 fseek(fp,5*sizeof(j),SEEK_SET); fread(&j,sizeof(j),1,fp); cout<<"Data ke-5 = "<<j<<endl; //Baca data ke-0 rewind(fp); fread(&j,sizeof(j),1,fp); cout<<"Data ke-0 = "<<j<<endl; }
  • 9. Algoritma dan Pemrograman 9 } T-Informatika FT UNPAM Atang Susila Contoh 2 : Menulis ke dan membaca dari arsip secara random //Penyimpanan & Pembacaan data secara random, data ditulis sekaligus #include<iostream.h> #include<stdio.h> FILE *fp; void main(void) { int i,j,jml_dat, k[100]; fp=fopen("d:kampusprogramc++FileIO4data1.dat","w"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { for(i=0;i<=10;i++)k[i]=i; fwrite(k,sizeof(i),11,fp); fclose(fp); } fp=fopen("d:kampusprogramc++FileIO4data1.dat","r"); if(fp==NULL)cout<<"Error membuka berkas"<<endl; else { i=0; rewind(fp); while(!feof(fp)) { fread(&k[i],sizeof(int),1,fp);i++; } fclose(fp); } jml_dat=i-1; cout<<"Jumlah data = "<<jml_dat<<endl; for(j=0;j<jml_dat;j++)cout<<k[j]<<" "; cout<<endl;
  • 10. Algoritma dan Pemrograman 10 T-Informatika FT UNPAM Atang Susila STUDY KASUS Buatlah program C/C++ yang memberikan tampilan sbb : Ket : Pilihan 1 : Memasukan sejumlah data dari keyboard Pilihan 2 : Menyimpan seluruh data kedalam sebuah arsip Pilihan 3 : Membaca data dari arsip Pilihan 4 : Menampilkan data Pilihan 5 : Mengurutkan data Pilihan 6 : Menampilkan data yang telah diurutkan