INDEXED SEQUENTIAL ORGANIZATION FILE

Ringkasan Catatan Kuliah : Berkas dan Akses
Dosen : Bambang Wahyudi, Skom., MMSI.
PENDAHULUAN
Mata kuliah ini membahas pembentukan (pengorganisasian) suatu
berkas (file), dan pemrosesannya (akses). Untuk mempelajari mata
kuliah ini, prasyarat yang harus dimiliki mahasiswa adalah, mereka
(mahasiswa) telah sering (sedapatnya mahir) membuat program untuk
memasukkan data secara permanen di eksternal memori komputer,
dan mengolah data tersebut.
Disarankan bahasa pemrograman yang digunakan adalah bahasa
pemrograman yang bersifat generik (seperti BASIC, PASCAL, COBOL,
dan sejenisnya), karena bahasa pemrograman
semacam ini
mengharuskan si pembuat programnya untuk selalu membuat
program setiap kali melakukan proses terhadap datanya. Tidak ada
fasilitas (perintah) untuk menghapus record, mensortir data, dan
sebagainya, melainkan ia harus membuat programnya sendiri.
Mata kuliah ini menggambarkan betapa sulitnya si pembuat bahasa
pemrograman untuk membuat algoritma bagaimana data itu disimpan,
dan bagaimana data yang disimpan itu dapat ditemukan kembali.
Catatan ini hanya berupa catatan ringkas/ tambahan dari buku

paket yang ada, karenanya, pelajari pula buku paket itu.
BERKAS
Berkas atau file ada berbagai jenis, hal itu dapat dilihat dari nama
ekstensi filenya. Misalkan untuk nama fle dengan ekstensi BAS adalah
file iprogram yang ditulis dengan bahasa pemrograman BASIC, DBF
adalah file data yang dibuat dengan bahasa pemrograman dBase, NTX
adalah file indeks yang dibuat dengan bahasa pemrograman Clipper,
dan lain sebagainya.
Dari berbagai jenis file, mata kuliah ini hanya akan membahas file
data.
File idata tediri atas 2 jenis, yaitu (1) master ifile, dan (2) transaction
file. Sementara itu, master i file terdiri atas (1) reference imaster i file,
dan (2) dynamic imaster ifile.
MASTER iFILE

Master ifile (berkas induk) adalah fle yang berisi objek-objek yang
harus ada di sebuah unit kerja (enterprise). Misalkan, di sebuah
perguruan tinggi, objek-objek yang harus ada seperti (1) mahasiswa,
(2) dosen, (3) mata kuliah, (4) biaya kuliah, (5) ruang kelas, dan
sebagainya. Objek-objek tersebut harus disimpan datanya di dalam file

komputer, dan akan masuk ke dalam katagori master ifile.
Dynamic imaster ifile adalah master ifile yang salah satu atau lebih
atributnya (field) akan berubah nilai datanya bila terjadi suatu
transaksi. Sebaliknya, reference i master i file adalah master i file yang
seluruh atributnya tidak mengalami perubahan jika terjadi suatu
transaksi (hanya digunakan sebagai referensi saja).
TRANSACTION iFILE
Transaction i file adalah berkas transaksi yang harus disimpan di
dalam media penyimpanan eksternal komputer. Transaction ifile terjadi
akibat adanya hubungan (relasi) antarmaster i file. Misalkan, di
perpustakaan ada master ifile PEMINJAM, dan BUKU. Ketika PEMINJAM
melakukan peminjaman BUKU, maka terjadilah transaksi, dan transaksi
tersebut harus dicatat, misalkan di file itransaksi dengan nama PINJAM.
Mengacu pada prinsip basis data, tidak boleh ada atribut yang
ganda (berisi sama) di semua file data yang ada kecuali untuk atribut
kuncinya (key field), maka pada file data PINJAM, tidak boleh ada
atribut nama peminjam dan buku yang dipinjam (lihat gambar 1).
Ketika transaksi PINJAM terjadi, tidak satupun atribut PEMINJAM
mengalami perubahan, maka file iPEMINJAM adalah file berjenis
reference i master i file. Sedangkan pada file BUKU, ada atribut yang

berubah nilai datanya, yaitu atribut jumlah buku. Ketika transaksi
PINJAM terjadi, jumlah buku yang ada akan berkurang karenanya.
Dengan demikian, file BUKU termasuk fle berjenis dynamic imaster ifile.
NAMA
DENDA
*NO_ANG

*KD_BUKU

ALAMAT
*KD_PINJ

JUDUL

TGL_KEM

PEMINJAM

M


N

PINJAM

BUKU

JUMLAH

PENGARANG
**NO_ANG

TGL_PINJ

TH_TERBIT

**KD_BUKU

Gambar 1. Relasi antarmaster file yang membentuk transaction ifile

PENGORGANISASIAN BERKAS

Data yang disimpan ke media penyimpanan eksternal di komputer
harus diorganisasikan agar data tersebut dapat diambil kembali
(retrieve) untuk selanjutnya dilakukan pengolahan.
Ada 4 macam pengorganisasian fle, yaitu (1) sequential, (2)
relative, (3) index isequential, dan (4) multi ikey. Yang mana yang akan
dipilih, tentunya dengan mempertimbangkan bagaimana data tersebut
kelak akan diproses.
SEQUENTIAL iORGANIZATION iFILE
Sequential (=berurutan), record ipertama yang dmasukkan akan
menempati posisi pertama di media penyimpanannya, dan seterusnya.
Jika akan dilakukan pemanggilan record iyang telah disimpan
(retrieval), maka komputer akan selalu membaca dari record pertama
hingga ditemukanya record yang dicarinya.
Keefsienan pembuatan organisasi seperti ini adalah jika semakin
besar nilai dari jumah record yang akan diolah dibagi dengan jumlah
record ikeseluruhannya (diistlahkan dengan perhitungan hit iratio) maka
akan semakin efsien. Sebagai gambaran, jika semakin banyak lagu
yang akan kita dengar dari sebuah kaset, maka akan semakin
menguntungkan menggunakan kaset itu dibanding jika kita hanya
ingin mendengar satu lagu (apalagi letaknya di paling akhir) dari kaset

itu.
RELATIVE iORGANIZATION iFILE
Jika pada organisasi file i sequential idigambarkan sebagai sebuah
kaset, maka organisasi file relatif digambarkan sebagai sebuah
compac disk (CD). Kita bisa langsung memilih lagu mana yang akan
kita dengarkan tanpa harus didahului (mendengarkan) lagu
sebelumnya. Relatif dapat diartikan langsung.
Pengorganisasian relatif memungkinkan kita memproses record
yang mana saja secara langsung tanpa harus melalui (membaca)
record-record iyang lainnya.
INDEXED iSEQUENTIAL iORGANIZATION iFILE
Penyusunan data dengan organisasi indexed i sequential dapat
digambarkan sebagai meyusun kata dalam sebuah kamus. Kita dapat
mencari kata dalam kamus secara sequential imaupun dengan
memanfaatkan indeksnya.

MULTI iKEY iORGANIZATION iFILE
Organisasi file jenis ini memungkinkan kita mengakses data dengan
menggunakan banyak atribut kunci (key i field). Pengorganisasian ini
hampir sama dengan organisasi file relatif, bedanya, pengorganisasian

relatif hanya memiliki sebuah key ifield, sedang organisasi ini memiliki
lebih dari satu key ifield.
Hal ini dilakukan karena banyak pengguna data yang akan
mengakses data yang sama tetapi
sesuai dengan keinginannya
masing-masing. Misalkan, terhadap data tabungan di bank, nasabah
menggunakan nomor PIN untuk melakukan transaksi atas data
tersebut, sedangkan pegawai bank ada yang menggunakan nomor
rekening, ada yang menggunakan jumlah tabungan dan sebagainya,
sesuai dengan tujuannya masing-masing.
PENGAKSESAN DATA
Data yang sudah disimpan dapat diakses melalui teknik
pengaksesan secara sequential imaupun direct. Semua bentuk
organisasi file dapat diakses secara sequential, tapi organisasi file
sequential itidak dapat diakses secara direct. Akses secara direct
memerlukan key ifield untuk mendapatkan sebuah record yang dicari,
sedangkan organisasi file sequential itidak memiliki (tidak memerlukan)
key ifield.
Pengaksesan data dapat dilakukan secara batch, maupun secara
iterative. Proses pemberian nilai untuk data Daftar Nilai Semester

(DNS) dilakukan secara batch, yaitu, semua nilai dari dosen dan dari
proses scanning (jawaban di kertas OMR) dikumpulkan terlebih dulu.
Setelah semua terkumpul, barulah diproses nilainya dan dicetak DNS
seluruhnya untuk dibagi kepada mahasiswa.
Sedangkan proses pencetakan Kartu rencana Studi (KRS) dilakukan
secara iterative (dikenal dengan istilah on-line). Setiap mahasiswa
yang telah selesai mengisi KRS akan mendapatkan cetakan KRS secara
langsung tanpa harus menunggu semua mahasiswa melakukan
pengisian KRSnya.
TEKNIK PENGALAMATAN (ADDRESSING)
Hal yang sangat penting dipertimbangkan dalam pembentukan
organisasi file adalah proses penempatan datanya di memori sekunder
komputer. Hal ini bertujuan agar data yang telah disimpan dapat
diambil atau diraih (retrieve) kembali dengan menunjuk lokasi alamat
data tersebut di memori.

Gambar 2 di bawah
pengalamatan data :

ini


menggambarkan

R(Nilai_Key)

Pemetaan Langsung
(Direct Mapping)

Pengalamatan Mutlak

berbagai

teknik

Alamat

Pemetaan Tabel
(Directory Look-up)

Kalkulasi

(Calculating)

Pengalamatan Relatif

Gambar 2. Berbagai Teknik Pengalamatan Data
Pemetaan di memori dilambangkan dengan : R(nilai_key) → Alamat.
Alamat ditentukan oleh nilai sebuah key fieldnya. Organisasi file secara
sequential iyang tidak membutuhkan key i field tidak menggunakan
teknik pengalamatan yang akan dibahas ini.
PENGALAMATAN MUTLAK
Pengalamatan
mutlak
adalah
teknik
pengalamatan
yang
keseluruhannya
diberi
wewenang
kepada

programmernya.
Programmer ibebas menentukan di alamat mana suatu record akan
disimpan.
Sangat mudah, tapi bila data yang disimpan relatif banyak, apakah
si programmer ‘masih hafal’ di mana alamat suatu record iyang akan
diaksesnya ?.
PENGALAMATAN RELATIF
Pengalamatan relatif adalah penunjukan alamat memori sesuai
dengan nilai yang ada di key fieldnya. Karena key ifield biasanya berisi
kode, misalkan NPM, maka akan terjadi pemborosan penggunaan
alamat.
Misalkan, NPM = 30199899, maka record mahasiswa tersebut akan
disimpan di alamat 30199899, padahal, mungkin jumlah keseluruhan
mahasiswa hanya berkisar 30000 orang saja, tidak sampai 30 jutaan
seperti yang ditunjukkan NPM.
Karena NPM digunakan sebagai kunci atribut, maka hal itu tidak
cocok bila digunakan teknik pengalamatan relatif seperti ini. Dengan
jumlah nahasiswa yang 30000 tentunya harus digunakan key i field
yang hanya terdiri atas 5 digit saja.

PEMETAAN TABEL
Untuk mengatasi pemborosan yang terjadi di pengalamatan relatif,
maka cara pemetaan tabel (directory i look i up) ini bisa digunakan
sebagai solusinya.
Teknik ini memisahkan record idata lainnya dengan key fieldnya.
Semua key i field disatukan dalam sebuah tabel yang di dalam tabel
tersebut dipetakan alamat record datanya, semacam mencari katalog
di perpustakaan yang jika katalog itu ditemukan maka buku yang akan
dipinjam diketahui lokasi tempat penyimpanannya.
Masalahnya, jika mencari katalognya secara berurut (sequential),
maka akan memakan waktu yang relatif lama, karenanya ada yang
mencarinya dengan cara binary isearch itree, misalkan ia mencari dari
tengah tumpukan katalog, bila kurang, ia cari tengahnya lagi dengan
kartu katalog yang paling belakang, tetapi bila lebih ia akan mencari
tengahnya lagi dari kartu katalog terdepan, dan seterusnya.
KALKULASI
Jika pemetaan tabel diharuskan membuat tabel (file) baru yang
berisi seluruh key i field dan alamat recordnya, maka pada teknik
kalkulasi ini dicoba untuk tidak perlu membuatnya. Akan dihitung
sedemikian rupa dari key i fieldnya untuk mendapatkan alamat yang
akan ditempati record (data)nya.
Teknik kalkulasi yang dibahas adalah teknik hashing yang
umumnya terdiri atas (1) division iremainder, (2) mid isquare, dan (3)
folding.
iDIVISION iREMAINDER i i(SISA PEMBAGIAN) i
Alamat diperoleh dengan menentukan sisa hasil pembagian atas
key feldnya. Faktor pembaginya bisa berbagai macam, ada yang
membagi dengan bilangan prima, dan bisa juga sembarang bilangan.
Contoh sisa pembagian : 100/3 sisa pembagiannya = 1. Cara
seperti ini bisa mengakibatkan adanya hasil perhitungan yang sama,
akibatnya, akan terjadi beturan (pemakaian alamat yang sama untuk
lebih dari record yang berbeda). Benturan diistilahkan dengan collision.
Tentunya, salah satunya harus ditempatkan di alamat yang berbeda.

MID iSQUARE iHASHING

Penghitungan alamat dengan cara mid i square i hashing adalah
dengan cara mengkuadratkan nilai key i fieldnya (square), kemudian
diambil sejumlah digit i(sepanjang digit ikey fieldnya) di tengah-tengah
dari nilai kuadrat itu.
HASHING iBY iFOLDING
Penghitungan dengan cara ini adalah dengan mempartisi nilai key
ke dalam beberapa partisi (sesuai dengan banyak digit alamat yang
kita butuhkan) dari kanan.
Bagian-bagian itu kita susun ke bawah dan dijumlahkan, hasilnya,
kita ambil sebanyak digit yang kita inginkan untuk alamat di memori
yang dimulai dari kanan. Folding i= lipatan.
Cara ini tetap memiliki risiko adanya collision.
PENANGANAN COLLISION
Satu lokasi memori hanya dapat digunakan untuk menyimpan satu
satuan data saja. Bila hasil perhitungan atas key i field untuk
menentukan alamat memori antara satu key i field dengan key i field
lainnya sama, maka hanya satu yang akan ditempatkan di alamat hasil
perhitungan itu, yang lainnya harus dicarikan alamat lainnya.
Empat pendekatan untuk mencarikan alamat lainnya itu, yaitu (1)
open i addressing, (2) addressing i overfoow i separate i overfoow i(3)
synonim i chainingw i dan i (4) i bucket i addressing. iAdapun teknik yang
digunakan adalah (1) linear i probing, dan (2) addressing i overfoow
separate ioverfoo.
LINEAR iPROBING
Jika suatu record tidak bisa menempati lokasi di memori sesuai
dengan hasil perhitungannya (home iaddress) karena sudah ditempati
oleh record ilainnya, maka ia harus dicarikan lokasi lainnya.
Pencarian dilakukan dengan menambahkan hasil perhitungan itu
dengan 1 hingga ke alamat yang masih kosong, dan bila hingga ke
batas akhir alamatnya tidak ditemukan, maka lakukan dari 1 lagi.

ADDRESSING iOVERFLOWw iSEPARATE iOVERFLOW
Pada linier i probing, dikhawatirkan tidak ada lagi tempat yang
kosong, atau penempatan record yang terjadi coliision akan

menempati alamat sebenarnya dari record lain, maka bila itu terjadi,
pada teknik addressing overfoo ini, selain disediakan di primary iarea,
disediakan pula tempat lain di luar primary iarea i(batasan alamat yang
seharusnya), yaitu di overfoo iarea.
Di overfoo i area pun perlu dicek, apakah sudah ada record ilain
yang telah menempatinya, hal ini menjadikan kita perlu melakukan
hashing ikembali (double ihashing).
SYNONIM iCHAINING
Synomim ichaining memberi tahu rangkaian alamat berikutnya dari
record yang terjadi collision. Jadi, ada next ipointer untuk menunjuk ke
alamat lainnya yang pada perhitungan sebelumnya terjadi nilai yang
sama. Dalam materi struktur data, hal ini dikenal dengan istllah linked
list.
Jadi, komputer tidak perlu mencari alamat record yang terjadi
collision karena sudah ada di penunjuknya (pointer).

BUCKET iADDRESSING
Data iyang iterjadi icollision idiletakkan idalam isatu iblok i(bucket)w ibaik
di i primary i area i maupun i di i overfoo i areanya. i Bila i satu i blok i sudah
penuhw i maka i akan i ada i penunjuk i (pointer) i untuk i menunjuk i blok
berikutnya.
Penempatan data di blok bisa diurut sesuai key ifieldnya atau sesuai
urutan datangnya data.
MEDIA PENYIMPANAN DATA

Salah Satu Bentuk Format Media Penyimpanan DASD (Hard iDisk)

Gambar 1. Moving ihead idisk imechanism
Sumber : Operating iSystem iConcept, James L. Peterson, and
Abraham Silberschatz. Hal 244.
Penyimpanan data dilakukan secara magnetis di permukaan disk (ada
dua permukaan setiap disk) oleh readw iorite ihead. Setiap permukaan
disk secara logically idibagi atas ratusan track dalam silinder.
Penyimpanan data di dalam media penyimpanan menggunakan teknik
pengalamatan (addressing). Di hard disk ada 2 teknik pengalamatan,
yaitu (1) Cylinder iMethodw iCM, dan (2) Sector iMethodw iSM.
Pada teknik CM, pengalamatan dilakukan berdasarkan nomor silinder,
nomor permukaan, dan nomor record. Untuk teknik SM, pengalamatan
dilakukan berdasarkan nomor sektor, nomor track, dan nomor
permukaan. Waktu akses pada hard idisk dihitung berdasarkan :
a. Seek i time (waktu cari) : Waktu yang digunakan tangkai arm
(yang menggerakkan read-orite i head) ke posisi silinder yang
tepat.
b. Head i soitching (penempatan posisi head) ke track dan
permukaan disk iyang tepat.
c. Rotational i delay (penangguhan pemutaran), berputarnya
piringan disk iagar data yang diperlukan berada di bawah
(dibaca) headnya.

d. Data i transfer, waktu yang dibutuhkan untuk mentransfer data
dari disk ke memori utama dan sebaliknya melalu read-orite
head.
Salah Satu Bentuk Format Media Penyimpanan SASD (Tape/ kaset)
Dulu, orang menggunakan kaset biasanya digunakan untuk
menyimpan data cadangan (back i up), karena harganya relatif lebih
murah dan memuat lebih banyak data yang dapat disimpan dari pada
DASD, tapi kini sudah amat jarang orang yang menggunakan media
ini.
Ada kaset yang terdiri atas 7 track, dan ada pula yang 9 itrack, dsb.,
Dalam setiap block ada 2 buah celah pemisah (gap), yaitu : (1) inter
record igap (IRG), dan (2) inter iblock igap (IBG). Sewaktu menlis data, di
akhir block iselalu diberi gap iyang panjangnya sekitar 0,6 inch, dan
sewaktu membaca selalu dimulai dari karakter petama setelah gap
sampai ditemukan igap iberikutnya. Lamanya waktu head melewati gap
tersebut disebut dengan speed-up itime.
Jadi, antara 1 record idengan record lainnya ada batas, antara 1
block dengan block lain, ada batas, dan di akhir file iada batas lagi
yang disebut dengan tape imark. Jika satu block iterdiri dari 4 record,
maka disebut blocking factor = 4.
RECORD FORMAT
Ada berbagai macam record iformat, yaitu :
. iFixed iunblocked
. iFixed iblocked
. iVariable iunblocked
. iVariable iblocked
. iUndefined
. iSpanned
Syarat fixed iunblocked
1. Semua record i(logical-record) sama panjang, misal 160 karakter
2. Tiap data iarea (block-physical irecord) berisi satu logical irecord
(setiap record iadalah satu block yang masing-masing block
dipisahkan oleh IRG)

RECORD

IRG

RECORD

RECORD

IRG

IRG

IRG

Syarat fixed iblock
1. Semua logical irecord sama panjang, misal 160 karakter
2. Tiap data i area (block-physical i record) berisi lebih dari satu
logical irecord i
3. Semua block (physical i record) sama panjang, kecuali block
terakhir
4. Blocking ifactor harus selalu sama

RECORD

IBG

RECORD

RECORD

IBG

IRG

RECORD

IRG

RECORD

IBG

RECORD

IRG

IBG

Syarat variable iunblock
1. Panjang tiap logical irecord tidak sama …. (variabel)
2. Panjang setiap physical irecord juga tidak selalu sama
3. Tiap block i(data area) berisi satu logical irecord dan field khusus
BL (block length) dan RL (record ilength)

BL

RL

RECORD

BL

RL

RECORD

IRG

BL

RL

RECORD

IRG

Syarat Variabel Block
. Panjang tiap logical irecord tidak sama …. (variabel)
. Panjang tiap block juga tidak sama. Jumlah logical irecord dalam
block i
juga bervariasi (tidak ada blocking ifactor)
BL

RL

RECORD

RL

IRG

Syarat Undefined :

RECORD

RL

IRG

RECORD

. Tiap logical irecord tidak sama panjang
. Tiap iblock isatu logical irecord (tidak ada block)
. BL dan RL tidak ada

RECORD

IRG

RECORD

RECORD

IRG

RECORD

IRG

IRG

RECORD

IRG

IRG

Syarat Spanned
. Panjang tiap physical irecord (block) adalah sama
. Panjang tiap global irecord tidak sama
. Satu logical i record mungkin berada di dalam lebih dari satu
physical irecord
RECORD

RECORD

IBG

RE

IBG

CORD

IBG

REC

ORD

IBG

RECOR

D

IBG

Untuk melakukan cek kebenaran penulisan data, kaset menyediakan
satu buah tracknya untuk diisi bit ‘1’. Ada 2 jenis pengecekan, yakni
(1) odd iparity icheck atau koreksi paritas ganjil, dan (2) even i parity
check atau koreksi paritas genap.
Misal, track :

1
2
3
4

berisi
berisi
berisi
berisi

data
data
data
data

:
:
:
:

1
0
1
1

1
0
0
1

1
1
1
0

maka dengan odd iparity icheck, track ke 5 dan karakter ke 4 (untuk
koreksinya) akan berisi: [bila dijumlahkan ke kanan maupun ke bawah
harus menjadi ganjil]
1 berisi data : 1 1 1 0
2 berisi data : 0 0 1 0
3 berisi data : 1 0 1 1
4 berisi data : 1 1 0 1
5 berisi data : 0 1 0 1