Anda di halaman 1dari 12

Ringkasan Catatan Kuliah : Berkas dan Akses

Dosen : Aqwam Rosadi K, SKom., MM.


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 file dengan ekstensi BAS adalah
file program 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 data tediri atas 2 jenis, yaitu (1) master file, dan (2) transaction
file. Sementara itu, master file terdiri atas (1) reference master file,
dan (2) dynamic master file.
MASTER FILE

Master file (berkas induk) adalah file 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 file.
Dynamic master file adalah master file yang salah satu atau lebih
atributnya (field) akan berubah nilai datanya bila terjadi suatu
transaksi. Sebaliknya, reference master file adalah master file yang
seluruh atributnya tidak mengalami perubahan jika terjadi suatu
transaksi (hanya digunakan sebagai referensi saja).
TRANSACTION FILE
Transaction file adalah berkas transaksi yang harus disimpan di
dalam media penyimpanan eksternal komputer. Transaction file terjadi
akibat adanya hubungan (relasi) antarmaster file. Misalkan, di
perpustakaan ada master file PEMINJAM, dan BUKU. Ketika PEMINJAM
melakukan peminjaman BUKU, maka terjadilah transaksi, dan transaksi
tersebut harus dicatat, misalkan di file transaksi 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 PEMINJAM adalah file berjenis
reference master 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 file berjenis dynamic master file.
NAMA
DENDA
*NO_ANG

*KD_BUKU

ALAMAT
*KD_PINJ

JUDUL

TGL_KEM

PEMINJAM

PINJAM

BUKU

JUMLAH

PENGARANG
TGL_PINJ
**NO_ANG

TH_TERBIT
**KD_BUKU

Gambar 1. Relasi antarmaster file yang membentuk transaction file

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 file, yaitu (1) sequential, (2)
relative, (3) index sequential, dan (4) multi key. Yang mana yang akan
dipilih, tentunya dengan mempertimbangkan bagaimana data tersebut
kelak akan diproses.
SEQUENTIAL ORGANIZATION FILE
Sequential (=berurutan), record pertama yang dmasukkan akan
menempati posisi pertama di media penyimpanannya, dan seterusnya.
Jika akan dilakukan pemanggilan record yang telah disimpan
(retrieval), maka komputer akan selalu membaca dari record pertama
hingga ditemukanya record yang dicarinya.
Keefisienan pembuatan organisasi seperti ini adalah jika semakin
besar nilai dari jumah record yang akan diolah dibagi dengan jumlah
record keseluruhannya (diistlahkan dengan perhitungan hit ratio) maka
akan semakin efisien. 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 ORGANIZATION FILE
Jika pada organisasi file sequential digambarkan 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 yang lainnya.
INDEXED SEQUENTIAL ORGANIZATION FILE
Penyusunan data dengan organisasi indexed sequential dapat
digambarkan sebagai meyusun kata dalam sebuah kamus. Kita dapat
mencari kata dalam kamus secara sequential maupun dengan
memanfaatkan indeksnya.

MULTI KEY ORGANIZATION FILE


Organisasi file jenis ini memungkinkan kita mengakses data dengan
menggunakan banyak atribut kunci (key field). Pengorganisasian ini
hampir sama dengan organisasi file relatif, bedanya, pengorganisasian
relatif hanya memiliki sebuah key field, sedang organisasi ini memiliki
lebih dari satu key field.
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 maupun direct. Semua bentuk
organisasi file dapat diakses secara sequential, tapi organisasi file
sequential tidak dapat diakses secara direct. Akses secara direct
memerlukan key field untuk mendapatkan sebuah record yang dicari,
sedangkan organisasi file sequential tidak memiliki (tidak memerlukan)
key field.
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 yang tidak membutuhkan key field tidak menggunakan
teknik pengalamatan yang akan dibahas ini.
PENGALAMATAN MUTLAK
Pengalamatan
mutlak
adalah
teknik
pengalamatan
yang
keseluruhannya
diberi
wewenang
kepada
programmernya.
Programmer bebas 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 yang akan
diaksesnya ?.
PENGALAMATAN RELATIF
Pengalamatan relatif adalah penunjukan alamat memori sesuai
dengan nilai yang ada di key fieldnya. Karena key field 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 field
yang hanya terdiri atas 5 digit saja.

PEMETAAN TABEL
Untuk mengatasi pemborosan yang terjadi di pengalamatan relatif,
maka cara pemetaan tabel (directory look up) ini bisa digunakan
sebagai solusinya.
Teknik ini memisahkan record data lainnya dengan key fieldnya.
Semua key 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 search tree, 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 field dan alamat recordnya, maka pada teknik
kalkulasi ini dicoba untuk tidak perlu membuatnya. Akan dihitung
sedemikian rupa dari key fieldnya untuk mendapatkan alamat yang
akan ditempati record (data)nya.
Teknik kalkulasi yang dibahas adalah teknik hashing yang umumnya
terdiri atas (1) division remainder, (2) mid square, dan (3) folding.
DIVISION REMAINDER (SISA PEMBAGIAN)
Alamat diperoleh dengan menentukan sisa hasil pembagian atas
key fieldnya. 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 SQUARE HASHING


Penghitungan alamat dengan cara mid square hashing adalah
dengan cara mengkuadratkan nilai key fieldnya (square), kemudian

diambil sejumlah digit (sepanjang digit key fieldnya) di tengah-tengah


dari nilai kuadrat itu.
HASHING BY FOLDING
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 = 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 field untuk
menentukan alamat memori antara satu key field dengan key 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 addressing, (2) addressing overflow/ separate overflow, (3)
synonim chaining, dan (4) bucket addressing. Adapun teknik yang
digunakan adalah (1) linear probing, dan (2) addressing overflow/
separate overflow.
LINEAR PROBING
Jika suatu record tidak bisa menempati lokasi di memori sesuai
dengan hasil perhitungannya (home address) karena sudah ditempati
oleh record lainnya, 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 OVERFLOW/ SEPARATE OVERFLOW


Pada linier 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 overflow ini, selain disediakan di primary area,

disediakan pula tempat lain di luar primary area (batasan alamat yang
seharusnya), yaitu di overflow area.
Di overflow area pun perlu dicek, apakah sudah ada record lain
yang telah menempatinya, hal ini menjadikan kita perlu melakukan
hashing kembali (double hashing).
SYNONIM CHAINING
Synomim chaining memberi tahu rangkaian alamat berikutnya dari
record yang terjadi collision. Jadi, ada next pointer 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 ADDRESSING
Data yang terjadi collision diletakkan dalam satu blok (bucket), baik
di primary area maupun di overflow areanya. Bila satu blok sudah
penuh, maka akan ada penunjuk (pointer) untuk menunjuk blok
berikutnya.
Penempatan data di blok bisa diurut sesuai key fieldnya atau sesuai
urutan datangnya data.
MEDIA PENYIMPANAN DATA

Salah Satu Bentuk Format Media Penyimpanan DASD (Hard Disk)

Gambar 1. Moving head disk mechanism


Sumber : Operating System Concept, James L. Peterson, and
Abraham Silberschatz. Hal 244.
Penyimpanan data dilakukan secara magnetis di permukaan disk (ada
dua permukaan setiap disk) oleh read/ write head. Setiap permukaan
disk secara logically dibagi 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 Method/ CM, dan (2) Sector Method/ SM.
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 disk dihitung berdasarkan :
a. Seek time (waktu cari) : Waktu yang digunakan tangkai arm
(yang menggerakkan read-write head) ke posisi silinder yang
tepat.
b. Head switching (penempatan posisi head) ke track dan
permukaan disk yang tepat.
c. Rotational delay (penangguhan pemutaran), berputarnya
piringan disk agar data yang diperlukan berada di bawah
(dibaca) headnya.

d. Data transfer, waktu yang dibutuhkan untuk mentransfer data


dari disk ke memori utama dan sebaliknya melalu read-write
head.
Salah Satu Bentuk Format Media Penyimpanan SASD (Tape/ kaset)
Dulu, orang menggunakan kaset biasanya digunakan untuk
menyimpan data cadangan (back 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 track, dsb.,
Dalam setiap block ada 2 buah celah pemisah (gap), yaitu : (1) inter
record gap (IRG), dan (2) inter block gap (IBG). Sewaktu menlis data, di
akhir block selalu diberi gap yang panjangnya sekitar 0,6 inch, dan
sewaktu membaca selalu dimulai dari karakter petama setelah gap
sampai ditemukan gap berikutnya. Lamanya waktu head melewati gap
tersebut disebut dengan speed-up time.
Jadi, antara 1 record dengan record lainnya ada batas, antara 1
block dengan block lain, ada batas, dan di akhir file ada batas lagi
yang disebut dengan tape mark. Jika satu block terdiri dari 4 record,
maka disebut blocking factor = 4.
RECORD FORMAT
Ada berbagai macam record format, yaitu :
. Fixed unblocked
. Fixed blocked
. Variable unblocked
. Variable blocked
. Undefined
. Spanned
Syarat fixed unblocked
1. Semua record (logical-record) sama panjang, misal 160 karakter
2. Tiap data area (block-physical record) berisi satu logical record
(setiap record adalah satu block yang masing-masing block
dipisahkan oleh IRG)

RECORD

IRG

RECORD

RECORD

IRG

IRG

IRG

Syarat fixed block


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

RECORD

IBG

RECORD

RECORD

IBG

IRG

RECORD

IRG

RECORD

IBG

RECORD

IRG

IBG

Syarat variable unblock


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

BL

RL

RECORD

BL

RL

RECORD

IRG

BL

RL

RECORD

IRG

Syarat Variabel Block


. Panjang tiap logical record tidak sama . (variabel)
. Panjang tiap block juga tidak sama. Jumlah logical record dalam
block
juga bervariasi (tidak ada blocking factor)
BL

RL

RECORD

RL

IRG

Syarat Undefined :

RECORD

RL

IRG

RECORD

. Tiap logical record tidak sama panjang


. Tiap block satu logical record (tidak ada block)
. BL dan RL tidak ada

RECORD

IRG

RECORD

RECORD

IRG

RECORD

IRG

IRG

RECORD

IRG

IRG

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

RECORD

IBG

RE

IBG

CORD

IBG

REC

ORD

IBG

RECOR

IBG

Untuk melakukan cek kebenaran penulisan data, kaset menyediakan


satu buah tracknya untuk diisi bit 1. Ada 2 jenis pengecekan, yakni
(1) odd parity check atau koreksi paritas ganjil, dan (2) even 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 parity check, 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

Anda mungkin juga menyukai