Anda di halaman 1dari 6

ARSIP BERUNTUTN

Arsip (file) atau berkas adalah struktur penyimpanan data di dalam memori sekunder seperti
disk. Data disimpan di dalam arsip agar sewaktu waktu dapat dibuka kembali. Struktur arsip
memungkinkan kita menyimpan data secara permanen dan mengaksesnya kembali bila perlu.
Banyak aplikasi yang membutuhkan kemampuan ini.

Setiap item data yang direkam di dalam arsip disebut rekaman (record). Semua rekaman di
dalam arsip diorganisasikan penyimpanannya, dan pengaksesan rekaman di dalam arsip
bergantung kepada metode pengorganisasian data di dalam arsip : beruntun (sequential) dan
acak (random)- yang terakhir ini juga dikenal sebagai arsip akses langsung (direct acces).

Definisi Arsip Beruntun

Arsip beruntun adalah sekumpulan rekaman yang disimpan di dalam penyimpanan


sekunder komputer, yang dapat diakses secara beruntun mulai dari rekaman pertama
sampai dengan rekaman terakhir, rekaman demi rekaman secara searah Karena
komputer "tidak mengetahui" akhir arsip, maka di dalam arsip beruntun ditambahkan
rekaman fiktif yang berfungsi sebagai "tanda" bahwa akhir arsip sudah tercapai
sehingga pembacaan rekaman dihentikan. Rekaman fiktif ditambahkan sesudah
rekaman terakhir. Setiap rekaman boleh bertipe dasar maupun tipe terstruktur yang
telah didefinisikan.

Contoh Arsip Beruntun


Arsip mahasiswa yang berisi NIM, Nama dan IPK.
type DataMhs : record <NIM : integer, Nama : string, IPK : real>
type ArsipMhs : SeqFile of DataMhs and MARK =
<99999999999,'.',0.00>
MHS : ArsipMhs
• 08053110001 Abdullah 3.10
• 08053110021 Fidha Rozak 2.87
• 08053110029 Sumiati 3.65
• 08053110030 Mila Rossa 2.21
• 99999999999 . 0.00

Perintah Dasar Arsip Beruntun


1. OPEN
Sebelum arsip dapat diakses (dibaca atau ditulis) mula-mula arsip haruslah diaktifkan
terlebih
dahulu. Untuk keperluan ini fungsi yang digunakan OPEN.
Fungsi OPEN adalah membuka arsip beruntun untuk siap dibaca. Pointer pembacaan
menunjuk
ke rekaman pertama.
Prosedur OPEN
procedure OPEN (input NamaArsip : ArsipBeruntun, Output NamaRek : Rekaman)
{Membuka arsip beruntun NamaArsip untuk siap dibaca
K.Awal : Sembarang
K.Akhir : NamaRek berisi nilai rekaman pertama}
Contoh:
OPEN (MHS, RekMhs){MHS = nama arsip, RekMhs bertipe DataMhs}
Bila arsip yang dibuka berisi rekaman seperti contoh di atas, maka kedua perintah
OPEN di atas
menyebabkan:
RekMhs berisi <08053110001, Abdullah, 3.10>

Dalam program bahasa C/C++


Prototype fungsi fopen() ada di header fungsi “stdio.h”
Bentuk umum :
FILE *fopen(char *namafile, char *mode);
Keterangan :
namafile adalah nama dari file yang akan dibuka/diaktifkan.
mode adalah jenis operasi file yang akan dilakukan terhadap file.
Jenis-jenis operasi file :
r : menyatakan file hanya dapat dibaca (file harus sudah ada).
w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan dihapus).
a : untuk membuka file yang sudah ada dan akan dilakukan proses penambahan data
(jika file belum
ada, otomatis akan dibuat).
r+ : untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan dan
penulisan.
w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan.
Jika file sudah ada, isinya akan dihapus.
a+ : untuk membuka file, dengan operasi yang akan dilakukan berupa perekaman
maupun
pembacaan.
Jika file sudah ada, isinya akan dihapus.
Contoh :
pf = fopen(“COBA.TXT”, “w”);

2. READ
Fungsinya membaca rekaman yang sekarang sedang ditunjuk oleh pointer
pembacaan.
procedure READ(input NamaArsip : ArsipBeruntun,output NamaRek :
Rekaman)
{ membaca rekaman yang sekarang sedang ditunjuk oleh pointer pembacaan
dari arsip yang bernama NamaArsip.
K.Awal : -
K.Akhir : NamaRek berisi nilai rekaman yang sedang ditunjuk oleh pointer
pembacaan.
pointer pembacaan menunjuk ke awal rekaman berikutnya.}
READ (MHS,RekMhs)
Jika pointer pembacaan menunjuk ke awal rekaman kedua dari contoh di atas,
maka perintah READ menyebabkan:
RekMhs berisi <08053110021,Fidha Rozak,2.87>
setelah perintah READ di atas, pointer pembacaan sekarang menunjuk ke awal
rekaman ketiga dan siap untuk membaca rekaman ketiga itu.
3. REWRITE
Fungsinya menyiapkan arsip untuk perekaman.
procedure REWRITE(input NamaArsip :
ArsipBeruntun)
{ Menyiapkan arsip NamaArsip untuk ditulisi
K.Awal : -
K.Akhir : pointer penulisan menunjuk ke awal arsip
NamaArsip, siap untuk menulis rekaman}
REWRITE(MHS)

4. WRITE
Fungsinya menulis rekaman ke dalam arsip beruntun.
procedure WRITE(input NamaArsip : ArsipBeruntun,output NamaRek :
Rekaman)
{ menulis NamaRek ke arsip yang namanya NamaArsip.
K.Awal : pointer penulisan sudah berada pada posisi siap merekam
K.Akhir : NamaRek tertulis ke dalam arsip NamaArsip. Pointer penulisan maju
satu posisi.}
WRITE(MHS,<08053110033,'Ariel Peterpan',1.99>)
Catatan: Arsip yang dibuka untuk pembacaan (dengan perintah OPEN) tidak
dapat digunakan untuk perekaman. Demikian juga sebaliknya, arsip yang
dibuka untuk perekaman (dengan perintah REWRITE) tidak dapat dibaca.
Operasi baca dan tulis tidak dapat dilakukan sekaligus pada arsip beruntun.
Cara mengakhiri arsip dengan MARK:
WRITE (MHS,<99999999999,'.',0.00>)

5. CLOSE
Fungsinya menutup arsip yang telah dibuka
untuk pembacaan atau dibuka untuk
perekaman.
procedure CLOSE(input NamaArsip :
ArsipBeruntun)
{ menutup arsip yang telah dibuka.
K.Awal : Sembarang
K.Akhir : Arsip NamaArsip telah ditutup, tidak
dapat diproses lagi.}
TUGAS UAS
ALGORITMA PERPUSTAKAAN DENGAN ARSIP BERUNTUN

Studi kasus pada data perpustakaan.

KDBUKU NMBUKU JNSBUKU LMPINJAM(hari). BNYKPNJM


001 Algoritma Pelajaran 7 2
002 Algoritma 2 Pelajaran 14 2
003 Aplikasi IT Pelajaran 4 3
004 Software Pelajaran 6 5
Terapan2
005 Donal bebek Majalah 7 5
006 Pc Media Majalah 3 3
007 Otobook Majalah 5 6
008 Mangle Majalah 2 8
009 TvMovies Majalah 5 7

DEKLARASI GLOBAL

DEKLARASI :
Type data PRPS : record < KDBUKU : integer, NMBUKU : string, JNSBUKU : string,
LMPINJM : integer, BNYKPNJM : integer>

Type ArsipPerpus : File of DataPerpus.

Prps : ArsipPerpus {nama arsip data PRPS}

1. Data Perpustakaan dibaca dari papan ketik, lalu disimpan ke dalam arsip Kuliah. Jumlah data
mahasiswa yang akan dimasukan tidak ditentukan sebelumnya. Proses Pembacaan data Dari
papan kunci akan berhenti jika kode KDBUKU yang dibaca adalah 999.

Procedure RekamDataBuku {output Prps: ArsipPerpus}


{merekam data ujian mahasiswa ke dalam arsip Prps, data di baca dari papan ketik, proses
perekaman berhenti jika NIM yang dimasukan = 999.}
{K.Awal : Sembarang}
{K.Akhir : arsip Prps berisi data Buku, Mungkin kosong }
Deklarasi
BukuPrps : DataPerpus

Algoritma
Open ( Prps, 2 ) {buka arsip Prps untuk penulisan}
read ( BukuPrps.KDBUKU )
while ( BukuPrps.KDBUKU ≠ 999 ) do
read (BukuPrps.NMBUKU )
read (BukuPrps.JNSBUKU )
read (BukuPrps.LMPNJM )
read (BukuPrps.BNYKPNJM )
Fwrite (Prps, BukuPrps)
Read(BukuPrps.KDBUKU)
Endwhile
Close(Prps)

2. Membuat daftar buku yang keluar dengan jenis buku tertentu dan menampilkan ke layar
peraga.

Procedure CetakJumlahBuku ( input Prps : ArsipPrps , Input : JNSBUKU : String )

DEKLARASI
BukuPrps : DataPerpus
KDBUKU : integer
Ketemu : Boolean
Stop : Boolean

ALGORITMA
Open (Prps , 1)
Ketemu ← false

{ Cari JNSBUKU di dalam arsip Perpustakaan }


While (not EOF (Prps) and (not ketemu ) do
Fread (Prps, BukuPrps)
If BukuPrps.JNSBUKU = KodeJNSBUKU then
Ketemu ← true
Endif
Endwhile
{EOF (Prps) or Ketemu}
If ketemu then

Write(‘ Daftar Katagori Buku yang Keluar ’)


Write(‘ Jenis Buku : ’, BukuPrps.JNSBUKU)
Write(‘-----------------------------------------------------------------’)
Write(‘ No. Kode Buku Nama Buku Jumlah Buku Keluar ’)
Write(‘------------------------------------------------------------------’)
No ← 1
Write ( No, BukuPrps.KodeKDBUKU , BukuPrps.NMBUKU, BukuPrps.BNYKPNJM)
While (BukuPrps.JNSBUKU = KodeJNSBUKU) and (not EOF (Prps))
Fread (Prps, BukuPrps)
No ← No + 1
Write (No, BukuPrps.KodeKDBUKU , BukuPrps.NMBUKU, BukuPrps.BNYKPNJM)
endWhile

write (‘-------------------------------------------------------------------’)
else
write ( data buku yang keluar dengan jenis buku = ‘, kodeJNSBUKU, ‘ Tidak Ada. ‘)
endif

close (Prps)

Anda mungkin juga menyukai