Anda di halaman 1dari 22

Algoritma & Pemrograman 2

Sequential File
Indah Permatasari, M.Kom.
11th meeting
Outline
• Pemrosesan Arsip
• Metode Pengorganisasian Arsip
• Arsip Beruntun (Sequential File)
• Deklarasi File dalam Algoritma
• Library Function pada sequential file
• Contoh kasus
• Menggabungkan dua buah file

Indah Permatasari, M.Kom. 2


Arsip (file)
• Arsip (file) atau berkas adalah struktur penympanan data di dalam
memori sekunder seperti disk
• Memungkinkan untuk memnyimpan data secara permanendan
mengaksesnya kembali bila perlu
• Contoh: aplikasi pengolah kata, pengolah angka, pengolah gambar
dsb yang dapat menyimpan data ke dalam arsip dan dapat dibuka
kembali

Indah Permatasari, M.Kom. 3


Rekaman (record)
• Setiap item data yang direkam di dalam arsip → record
• Ada dua metode pengorganisasian penyimpanan dan pengakasesan
rekaman di dalam arsip:
• Beruntun (sequential)
• Acak (random) atau dikenal juga dengan Akses Langsung (direct access)

Indah Permatasari, M.Kom. 4


Arsip Beruntun
• Menyimpan rekaman secara berurutan,
rekaman yang satu sesua dengan yang lain
• Sebuah berkas yang berisi kumpulan
rekaman dengan kolom data tertentu sesuai
dengan kebutuhan, tapi dalam senuah arsip
beruntun, nama-nama kolom tidak ikut
disimpan di dalam file sehingga file hanya
berisi kumpulan rekaman saja
• Untuk mengakses mulai dari rekaman
pertama sampai rekaman yang diinginkan

Indah Permatasari, M.Kom. 5


Arsip Acak
• Rekaman diakses secara langsung, tanpa
perlu memulai dari awal
• Keuntingan → pengaksesan data
individual lebih cepat tetapi lebih sulit
dibuat dan dilakukan pemeliharaan

Indah Permatasari, M.Kom. 6


Perbandingan Akses

Indah Permatasari, M.Kom. 7


Sequential File

Indah Permatasari, M.Kom. 8


Definisi
• Sekumpulan rekapan bertipe sama yang diakses secara berurutan
mulai dari rekaman pertama sampai rekaman yang dituju atau sampai
dengan rekaman yang terakhir

• Struktur arsip beruntun tidak jauh berbeda dengan struktur array

Indah Permatasari, M.Kom. 9


Perbedaan Arsip dan Array
• Array didefinisikan di dalam memori sedangkan arsip didefinisikan di dalam
media penyimpanan sekunder
• Rekaman di dalam arsip beruntun tidak dapat diakses secara langsung
karena harus dibaca dari awal sementara array dapat dikases melalui
indeksnya
• Pada arsip, rekaman pemrosesan hanya dapat dilakukan satu arah (tidak
dapat dari arah sebaliknya) maka pada array dapat melakukan pemrosesan
dari elemen terakhir menuju elemen pertama
• Jika pada array kita dapat mengakhiri pemrosesan beruntun bilaman
pencatat indeks array sudah melebihi ukuran array, maka pada arsip
pembacaan rekaman berakhir jika sudah sampai pada tanda (mark) yang
menandakan akhir arsip (end of file)
Indah Permatasari, M.Kom. 10
Deklarasi Arsip di dalam Algoritma
• Deklarasi
arsip : File of tipe rekaman
• Tipe rekaman dapat berupa tipe dasar (integer, real, char, Boolean,
string) atau tipe terstruktur (record)
• Karena pada Arsip beruntun harus bertipe sama, baik tipe dasar
maupun bertipe terstruktur.
• Rekaman bertipe terstruktur terdiri atas satu atau lebih field yang bertipa
tertentu
• Deklarasi:
type nama arsip : File of tipe rekaman { tipe bentukan}
arsip : nama tipe arsip

Indah Permatasari, M.Kom. 11


Contoh Deklarasi
• Arsip ArsBil yang berisi sekumpulan bilangan bulat
ArsBil : File of integer
• Arsip ArsKar yang berisi data bertipa karakter. Setiap rekaman adalah satu
karakter (Perhatikan bahwa arsip karakter tidak sama dengan teks)
ArsKar : File of char
• ArsMhs yang berisi data mahasiswa (NIM, Nama , dan IPK). Setiap rekaman
di dalam arsip Mhs bertipa terstruktur (record).
{ tipe rekaman }
type DataMhs : record <NPM: integer, Nama: string, IPK: real>
{ arsip }
ArsMhs : File of DataMhs

Indah Permatasari, M.Kom. 12


Mark (Tanda) pada Arsip
• Suatu arsip kosong adalah arsip yang hanya berisi mark
• Garis-garis yang membatasi antara satu rekaman dengan rekaman
lainnya hanyalah garis fiktif dan garis tersebut tidak terdapat dalam
impllementasi fisik arsip beruntun pada media penyimpanan
sekunder

Indah Permatasari, M.Kom. 13


Library Function
• Diasumsikan sudah tersedia sehingga kita dapat langsung
memakainya
• Fopen
• Membuka arsip beruntun untuk siap dibaca/ditulis
• File pointer akan menunjuk ke karakter pertama di awal arsip
• Sebuah arsip beruntun yang dibuka hanya bisa untuk masukan (dibaca) saja
atau sebagai keluaran (ditulis) saja, tidak bisa keduanya
• Contoh: fopen(“ArsMhs.txt”, “w”)

Indah Permatasari, M.Kom. 14


Cont.
• Fread
• Membaca rekaman yang sedang ditunjuk oleh pointer
• Contoh: fread(&Mhs, sizeof(Mhs), 1, Msiswa);
• Fwrite/Fprintf
• Menuliskan rekaman ke dalam arsip beruntun
• Contoh: fwrite(&Mhs, sizeof(Mhs), 1, Msiswa);
fprintf(DataMhs, “%s %s %s\n”, NPM, Nama, IPK);
• Fclose
• Menutup arsip yang sudah dibuka
• Contoh: fclose(DataMhs);

Indah Permatasari, M.Kom. 15


Learning by coding!
Praktikum

Indah Permatasari, M.Kom. 16


Menyimpan Data ke File
int main()
{
• Kasus: FILE *f;
char filename[100], name[25], phonenumber[15], line[40];
• Anda ingin membuat int n, i;
program yang
membaca data dari strcpy(filename, "kontak.txt");
keyboard(comment f = fopen(filename, "w");
line) lalu disimpakan
ke dalam file if(!f)
{
• Fungsi: fputs() printf("ERROR: File tidak dapat dibuat.\n");
exit(EXIT_FAILURE);
}

printf("Masukkan jumlah data yang akan dicatat: ");


scanf("%d", &n);
clearbuffer();

Indah Permatasari, M.Kom. 17


for(i=0; i<n; i++) void clearbuffer()
{ {
printf("\nData ke-%d\n", i+1); char ch;
printf("Nama \t\t: "); while((ch = getchar()) != '\n' && ch !=
scanf("%[^\n]", name); EOF)
clearbuffer(); ;
printf("No. HP \t\t: "); }
scanf("%[^\n]", phonenumber);
clearbuffer();

sprintf(line, "%s - %s\n", name,


phonenumber);
fputs(line, f);
}

fclose(f);

printf("\Data telah disimpan ke file


\"%s\"...\n", filename);
return 0;
}

Indah Permatasari, M.Kom. 18


Menyimpan int main()
{
FILE *f;
Data ke File char filename[100], name[25], phonenumber[15], line[40];
char c;

• Kasus: strcpy(filename, "kontak.txt");


• Anda ingin membaca f = fopen(filename, "r");
data dari file tersebut if(!f)
per karakter {
printf("ERROR: File tidak dapat dibuat.\n");
• Fungsi: getc() exit(EXIT_FAILURE);
}

printf("Isi file \"%s\":\n", filename);


while((c = getc(f)) != -1)
{
printf("%c", c);

fclose(f);

Indah Permatasari, M.Kom. 19


Fungsi dan Mode dalam FILE
Description Symbol/Code Description Symbol/Code
Menuliskan dalam file fputs() read r
Membaca per karakter getc() Write w
Membaca data per baris dan append a
perlu menentukan jumlah
fgets()
byte maksimum yang dapat
dibaca setiap baris
Menggabungkan nilai dari
anggota struktur ke dalam sprintf()
satu variable bertipe string

Indah Permatasari, M.Kom. 20


Praktikum
• Buatlah program yang membaca data dari keyboard dan data tersebut
dapat dsimpan ke dalam file .txt, kemudian baca kembali file tersebut
untuk dilakukan menambahan data
• KEYWORD: mode → append (a)

Indah Permatasari, M.Kom. 21


Terima kasih.

Indah Permatasari, M.Kom. 22

Anda mungkin juga menyukai