Sesi 1
SISTEM BERKAS
Materi Sistem Berkas
1. Konsep Dasar Sistem Berkas
2. Media Penyimpanan
3. Organisasi Berkas Primer
4. Organisasi Berkas Sequential
5. Organisasi Berkas Langsung
6. Organisasi Berkas dengan Banyak key
7. Organisasi Berkas Relatif
8. Organisasi Berkas Indeks Sequential
9. Manajemen Kolisi
10. Pengurutan Rekaman
11. Sort dan Merge File
12. Pengenalan Kontrol Input/Output
Sistem Penilaian
Nilai Akhir = (40% x UTS) + (60% x UAS)
UTS = (50% x nilai quiz) + (50% x nilai UTS)
UAS = (50% x nilai tugas/diskusi) + (50% x nilai UAS)
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 1
Rencana Penjadwalan kuliah
SESI
1
TANGGAL
Senin/27 Feb 2012 (kls A)
Rabu/29 Feb 2012 (kls B)
2
Senin/05 Mar 2012 (kls A)
MATERI
Pengenalan
Pokok materi selama satu semester
Materi 1. Konsep Dasar Sistem Berkas
Materi 2. Media Penyimpanan
Rabu/07 Mar 2012 (kls B)
3
Senin/12 Mar 2012 (kls A)
Materi 3. Organisasi Berkas Primer
Rabu/14 Mar 2012 (kls B)
4
Senin/19 Mar 2012 (kls A)
Quiz (Bahan dari materi 1 s/d 3)
Rabu/21 Mar 2012 (kls B)
5
Senin/26 Mar 2012 (kls A)
Materi 4. Organisasi Berkas Sequential
Rabu/28 Mar 2012 (kls B)
6
Senin/02 Apr 2012 (kls A)
Materi 5. Organisasi Berkas Langsung
Rabu/04 Apr 2012 (kls B)
7
Senin/09 Apr 2012 (kls A)
Materi 6. Organisasi Berkas dengan Banyak key
Rabu/11 Apr 2012 (kls B)
8
Sesuai Jadwal
UTS (Bahan dari materi 4 s/d 7)
Senin/30 Apr 2012 (kls A)
Materi 7. Organisasi Berkas Relatif
Rabu/02 Mei 2012 (kls B)
9
Senin/07 Mei 2012 (kls A)
Materi 8. Organisasi Berkas Indeks Sequential
Rabu/09 Mei 2012 (kls B)
10
Senin/14 Mei 2012 (kls A)
Materi 9. Manajemen Kolisi
Rabu/16 Mei 2012 (kls B)
11
Senin/21 Mei 2012 (kls A)
Materi 10. Pengurutan Rekaman
Rabu/23 Mei 2012 (kls B)
12
Senin/28 Mei 2012 (kls A)
Materi 11.Sort dan Merge File
Rabu/30 Mei 2012 (kls B)
13
Senin/04 Juni 2012 (kls A)
Tugas (Bahan dari materi 7 s/d 11)
Rabu/06 Juni 2012 (kls B)
14
Senin/11 Juni 2012 (kls A)
Materi 12. Pengenalan Kontrol Input/Output
Rabu/13 Juni 2012 (kls B)
Sesuai Jadwal
Dinny Wahyu Widarti, S.Kom
UAS (Bahan dari materi 1 s/d 12)
Sistem Berkas - 2
Materi 1
KONSEP DASAR SISTEM BERKAS
Komputer dapat menyimpan informasi dalam berbagai bentuk fisik tempat
penyimpanan seperti pita magnetik, disk magnetic, disk optical.
Sistem operasi memberikan pandangan logis yang sejenis dari tempat
penyimpanan informasi. Bentuk penyimpanan abstraksi dari unit penyimpan informasi
dalam bentuk fisik adalah file. File–file dipetakan oleh sistem operasi ke dalam
peralatan fisik.
A. PENGERTIAN SISTEM BERKAS
File/berkas adalah sekumpulan informasi yang saling berkaitan dan didefenisikan
oleh pembuatnya. Umumnya berkas adalah sekumpulan bit, byte, record di mana
artinya didefenisikan oleh pembuat dan pemakainya. File data dapat berbentuk
numeric, alfabeth ataupun alfanumeric. File dapat berbentuk bebas seperti file teks
atau terstruktur. Suatu file mempunyai nama dan diacu berdasarkan nama tersebut.
Juga mempunyai komponen lain seperti tipe, waktu pembuatan, nama dan nomor
account dari pembuatnya, besar ukuran file. Kita dapat menulis informasi, mengubah
informasi, menambah dan menghapus informasi dalam file.
Sistem berkas adalah suatu sistem untuk mengetahui bagaimana cara
menyimpan data dari file tertentu dan organisasi file yang digunakan.Sistem berkas
menyediakan pendukung yang memungkinkan programmer mengakses file tanpa
menyangkut perincian karakteristik penyimpanan dan peralatan pewaktu. Sistem
berkas mengubah pernyataan akses file menjadi instruksi/output level rendah.
Sistem berkas adalah cara untuk mengambil informasi dari suatu file.
Pengarsipan dan akses adalah :
a) Cara untuk membentuk suatu arsip/file dan cara pencarian record-recordnya
kembali.
b) Sistem berkas dan akses adalah sistem pengorganisasian, pengelolaan dan
penyimpanan data pada alat eksternal dan pada organisasi file tertentu. Pada
sistem berkas dan akses penyimpanan data dilakukan secara fisik.
c) Teknik yang digunakan untuk menggambarkan dan menyimpan record pada file
disebut organisasi file.
Berikut ini adalah 4 komponen sistem berkas :
a) Disk Management.
Menjelaskan bagaimana seharusnya menyusun blok-blok disk ke dalam file.
b) Naming.
Berguna bagi pemakai yang memungkinkan untuk menunjuk file dengan
penamaan yaitu dengan mengenali blok-blok disk.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 3
c) Protection.
Suatu cara untuk memproteksi pemakai-pemakai file dari pemakai lain.
d) Reliability.
File-file yang diperlukan ada tersedia jika terjadi kerusakan sistem .Setiap sistem
operasi memiliki sistem tersendiri.
Contoh : FAT 32 pada Window 9x. NTFS pada Windows NT dan Windows XP.FAT
16 pada MS-DOS. Ext2,Ext3 dan Reiser pada Linux. Masing–masing file sistem
mempuyai metode yang berbeda dalam pengaksesesan, pengorganisasian dan
pengeloaan pada disk.
B. PENGERTIAN ORGANISASI FILE
Pengorganisasian merupakan suatu teknik yang dipakai untuk menggambarkan dan
menyimpan record-record dalam sebuah berkas/file.
Ada 4 teknik dasar dari organisasi berkas, yaitu :
1) Sequential
2) Relative
3) Indexed sequential
4) Multi key
Secara umum berbeda dalam hal cara pengaksesannya, yaitu :
1) Direct acces, yaitu suatu cara pengaksesan record yang langsung, tanpa
mengakses seluruh record yang ada.
2) Sequential Acces, yaitu suatu cara pengaksesan record yang didahului
pengaksesan record-record didepannya.
C. ISTILAH-ISTILAH DASAR
Entitas
: Adalah suatu objek yang dapat dibedakan dari
lainnya. Objek disini dapat berupa barang, orang,
maupun peristiwa. Contoh : Entitas gaji pegawai,
Atribut
entitas nomor telepon, entitas nilai ujian.
: Adalah karakteristik yang menjadi ciri dari entitas.
Contoh Entitas gaji pegawai terdiri dari atribut : NIP,
Item Data
nama, jem lembur, tunjangan, gaji pokok.
: Tempat penyimpanan tiap atribut dari sebuah
entitas. Contoh : Item data untuk nama mahasiswa.
Biasa
disebut
field,
namun
dipakai
untuk
menunjukkan tempat dimana item data disimpan.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 4
Item data elementer
: Adalah bagian lebih kecil dari item data. Contoh :
item data tanggal dapat dibagi menjadi intem data
elementer tanggal, bulan, dan tahun.
Record
:
Adalah
kumpulan
item
data
yang
saling
berhubungan.
Berkas/file
: Adalah kumpulan record yang saling berhubungan.
D. HUBUNGAN FIELD, RECORD, DAN FILE
Contoh : File Siswa yang berisi berikut ini
NIM
Nama
Alamat
11.01.0020
Dinny
Singosari
11.01.0057
Wahyu
Blitar
11.01.0059
Widarti
Sumedang
Record
Field/Item data
File siswa tersebut memiliki 3 field, yaitu NIM, Nama, dan Alamat.
Juga memiliki 3 record, yaitu :
1) 11.01.0020
Dinny
Singosari
2) 11.01.0057
Wahyu
Blitar
3) 11.01.0059
Widarti
Sumedang
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 5
Sesi 2
Materi 2
MEDIA PENYIMPANAN FILE
A. PENYIMPANAN PRIMER
Penyimpanan primer (primary memory) atau disebut juga Memori utama (main
memory) dan memori internal (internal memory).Komponen ini berfungsi sebagai
pengingat.Dalam hal ini, yang disimpan didalam memori dapat berupa data atau
program.
Penyimpanan primer dibedakan menjadi dua macam, yaitu :
RAM
Random-Access Memory adalah jenis memori yang isinya dapat diganti selama
komputer dihidupkan dan mempunyai sifat bisa mengingat data/program selama
terdapat arus listrik (komputer hidup). RAM dapat menyimpan dan mengambil data
dengan sangat cepat.
ROM
Read-Only Memory adalah jenis memori yang hanya bisa dibaca.Disediakan oleh
vendor komputer dan berisi program atau data.
Selain itu ada pula Cache memory,yaitu memori yang memiliki kecepatan yang sangat
tinggi yang digunakan sebagai perantara antara RAM dan CPU.
B. PENYIMPANAN SEKUNDER
Penyimpanan sekunder atau disebut secondary memory adalah penyimpanan data
yang relative mampu bertahan dalam jangka waktu yang cukup lama di luar CPU
maupun penyimpanan primer.
Ada dua jenis penyimpanan sekunder, yaitu :
1. Serial/sequential access storage device(SASD)
Contoh : Magnetic tape, punched card, punched paper tape
2. Direct access storage device (DASD)
Contoh : Magnetic disk, floppy disk,
C. JENIS MEDIA PENYIMPANAN FILE
1. Magnetic Tape
Adalah alat penyimpanan data untuk berkas besar, yang di akses dan diproses
secara sequential.
Magnetic tape dibuat dari bahan plastik tipis yang dilapisi oleh besi magnet
oksida pada satu sisinya, berwarna merah kecoklatan.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 6
Magnetic tape adalah model pertama dari secondary memory.Tape ini
digunakan untuk merekam audio, video dan untuk menyimpan informasi
berupa sinyal komputer.
Panjang tape pada umumnya 2400 feet, lebarnya 0.5 inch dan tebalnya 2 mm.
Data disimpan dalam bintik kecil yang bermagnit dan tidak tampak pada
bahan plastik tersebut.
Contoh :cassette tape dan kaset video
2. Magnetic Disk
Adalahpiranti penyimpanan sekunder yang paling banyak dijumpai pada
sistem komputer.
Magnetic disk terdiri dari logam yang kaku atau plastic yang fleksibel.Pada
saat disk digunakan, motor drive berputar dengan kecepatan yang sangat
tinggi.Ada sebuah read−write head yang ditempatkan diatas permukaan
piringan tersebut.Permukaan disk terbagi atas beberapa track yang masih
terbagi lagi menjadi beberapa sector. Fixed−head disk memiliki satu head
untuk
tiap−tiap
track,
sedangkan
Moving−head
disk
(atau
sering
dikenal dengan nama hard disk) hanya memiliki satu head yang harus
dipindah−pindahkan untuk mengakses dari satu track ke track yang lainnya.
Contoh : Floppy disk (disket), hardisk.
3. Optical Disk
Optical disk tidak menggunakan bahan yang bersifat magneti sama sekali.
Optical disk menggunakan bahan spesial yang dapat diubah oleh sinar laser
menjadi memiliki spot-spot yang relatif gelap atau terang.contoh dari optical
disk ini adalah CD-RW dan DVD-RW.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 7
Sesi 3
Materi 3
ORGANISASI BERKAS PRIMER
Organisasi berkas akan mempelajari struktur yang tepat untuk mengorganisasi:
Berkas dengan kinerja tertentu
berbeda
Jumlah rekaman yang besar
Informasi yang diolah dengan cara yang berbeda untuk keperluan yang
Informasi yang memungkinkan dilakukannya tugas-tugas khusus
Menyelesaikan permasalahan dengan cara yang berbeda dari yang selama ini
dilakukan
A. ORGANISASI BERKAS
Terdapat tiga oganisasi berkas primer, yaitu sekuensial, langsung, dan
sekuensial berindeks. Masing-masing organisasi tersebut memiliki cara memproses
atau mengakses berkas.
Organisasi
Akses
Sekuensial
Sekuensial
Sekuensial berindeks
Sekuensial atau langsung
Langsung
langsung
Sebagai contoh, terdapat sejumlah unit informasi yang disebut rekaman yang
mengandung data mengenai entitas individual.Rekaman tersebut dapat diuraikan
menjadi unit-unit yang lebih kecil, yang disebut medan-medan yang mengandung
nilai-nilai khusus bagi atribut-atribut yang mewakili individu tersebut.
B. MEDAN DATA
Medan berisi nilai dasar yang membentuk sebuah rekaman. Isi sebuah medan
bergantung pada atribut yang dimiliki oleh individu pemilik rekaman. Nilai tersebut
pada saatnya nanti akan dimanipulasi oleh proses komputasi. Nilai-nilai dalam
medanharus tunduk pada deskripsi tentang tipe nilai, kapasitas byte maksimum,
domain dan seterusnya yang dimiliki oleh medan tersebut.
Rekaman yang disimpan dalam berkas pada umumnya memiliki medan yang
berfungsi khusus, yaitu sebagai identitas rekaman yang memiliki sifat pembeda baik
internal maupun eksternal. Medan ‘tanggal’ yang umumnya dimiliki oleh sebuah
rekaman merupakan contoh yang unik. Medan tersebut bisa memiliki kapasitas byte
maksimum 8, dan disusun dari 3 medan yang lebih elementer, yaitu tanggal (2digit),
bulan (2digit), tahun (4digit). Data tanggal paling baik dinyatakan dalam tipe bilangan,
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 8
mengingat tanggal memiliki kemungkinan untuk diperbandingkan (lebih tua atau lebih
muda), proses dengan aritmatik sederhana (menghitung umur) dan sebagainya.
Pemilihan tipe data yang paling sesuai dengan kebutuhan yang disyaratkan
oleh sistem yang sedang dibangun merupakan hal yang penting.Suatu domain yang
spesifik, sangat baik bila diuraikan dalam satu tipe dan satu representasi. Representasi
yang tidak sesuai akan menyebabkan hilangnya informasi yang sulit untuk dilacak
kembali.
C. REKAMAN DATA
Medan ke-1
…
Medan ke-2
Medan ke-n
Rekaman merupakan koleksi berbagai medan yang berisi beberapa item data
elementer. Beberapa medan dapat berhubungan satu dengan yang lainnya karena
mereka melakukan deskripsi suatu hal yang spesifik, misalnya tentang seseorang ,
tentang sebuah subyek, atau suatu kejadian. Informasi tentang seseorang mahasiswa
misalnya, dapat disimpan dengan cara berikut :
Rekaman mahasiswa
Nama
Nomor
Mahasiswa
Mahasiswa
Jenjang Program
Dosen Wali
Studi
SPP
Data
lain
Rekaman tersebut dapat disimpan dengan nama-nama medan ‚Nama
Mahasiswa‛, ‚Nomor Mahasiswa‛, ‚Jenjang‛, ‚Program Studi‛, ‚Dosen Wali‛, ‚SPP‛, dan
lain-lain. Kunci primernya merupakan suatu medan, atau gabungan beberapa medan,
yang secara unik membedakan satu rekaman dengan yang lainnya, sedangkan
semua medan yang tersisa merupakan kunci skunder dari atribut.
Sebagai contoh: medan ‚Nama Mahasiswa‛ ataupun ‚Nomor Mahasiswa‛ mungkin
merupakan kunci primer, sedangkan medan ‚Jenjang‛, ‚Program Studi‛, dan yang lain
merupakan kunci skunder.
D. BERKAS DATA
Sebuah berkas merupakan koleksi dari rekaman-rekaman yang sama, yang
diletakkan dalam peralatan penyimpanan data komputer. Salah satu tipe peralatan
penyimpanan eksternal, dari berbagai alternatif, adalah penggerak disk dengan disk
magnetiknya. Sebuah berkas akan memiliki nama yang dikenal oleh sistem operasi,
dan mempunyai struktur atau organisasi yang ditentukan oleh program pengakses
berkas.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 9
Berikut ini adalah contoh berkas tentang mahasiswa di universitas:
Nama Mahasiswa
Dian Kartika
Syda Arlin
Yuniati
Sunaryono
Zainul
Yenny Noorma
Mustafa
Kusmiyati
Susiana
Dewi Dwi
Nomor
Mahasiswa
11.50.001
11.50.011
11.30.012
11.30.013
11.55.024
11.50.021
11.50.025
11.55.024
11.55.024
11.30.014
Jenjang
Program Studi
Dosen Wali
SPP
S1
S1
DIII
DIII
S1
S1
S1
S1
S1
DIII
Sistem Informasi
Sistem Informasi
Manajemen Informatika
Manajemen Informatika
Teknik Informatika
Sistem Informasi
Sistem Informasi
Teknik Informatika
Teknik Informatika
Manajemen Informatika
Made
Sugeng
Made
Made
Sugeng
Sugeng
Sugeng
Made
Made
Made
500.000
500.000
400.000
400.000
500.000
500.000
500.000
500.000
500.000
400.000
Data
lain
…
…
…
…
…
…
…
…
…
…
Dalam merancang sebuah berkas untuk menyimpan semua rekaman yang
menggambarkan tentang mahasiswa sebuah universitas, bukanlah gagasan yang
baik bila beberapa tipe rekaman di campur-aduk, missal rekaman mahasiswa dengan
daftar matakuliah yang ditawarkan, dalam sebuah berkas yang sama. Sebaliknya,
mempunyai berbagai berkas yang berbeda juga mengundang berbagai kesulitan
dikemudian hari.Untuk mengulangi kesulitan-kesulitan tersebut, para pakar berusaha
mencari jalan keluar.Akhirnya ditemukan suatu alternatif yaitu menggabungkan
rekaman-rekaman milik semua mahasiswa untuk semua jurusan dalam sebuah
berkas.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 10
Sesi 5
Materi 4
ORGANISASI BERKAS SEKUENSIAL
Dalam organisasi ini, record-record direkam secara berurutan pada waktu
berkas ini dibuat dan harus diakses secara berurutanpada waktu berkas ini digunakan
sebagai input.
Berkas sekuensial sangat cocok untuk akses yang sekuensial, misalnya dalam
aplikasi dimana sebagian besar atau semua rekaman akan diproses. Sebagai contoh
adalah membuat daftar mahasiswa dalam sebuah program studi. Melakukan akses
secara sekuensial berarti proses akan berpindah dari satu rekaman ke rekaman
berikutnya secara langsung.
1
2
3
…
i
i+1
…
i+2
n-1
n
Pencarian secara sekuensial adalah memproses rekaman – rekaman dalam
berkas sesuai urutan keberadaan rekaman – rekaman tersebut sampai ditemukan
rekaman yang diinginkan atau semua rekaman terbaca.
Berkas sekuensial juga dapat diproses secara tunggal dan langsung, jika
diketahui subskripnya. Tetapi bagaimana kalau subskrip yang dimiliki bukan identitas
utama rekaman, misal ‚Nama Mahasiswa‛ pada file berikut ini :
Nama
Nomor Induk
Mahasiswa
Mahasiswa
Jenjang
Program Studi
Dosen
SPP
Dian Kartika
11.50.001
S1
Sistem Informasi
Made
500.000
…
Syda Arlin
11.50.011
S1
Sistem Informasi
Sugeng
500.000
…
Yuniati
11.30.012
DIII
Manajemen Informatika
Made
400.000
…
Sunaryono
11.30.013
DIII
Manajemen Informatika
Made
400.000
…
Zainul
11.55.024
S1
Teknik Informatika
Sugeng
500.000
…
Yenny Noorma
11.50.021
S1
Sistem Informasi
Sugeng
500.000
…
Mustafa
11.50.025
S1
Sistem Informasi
Sugeng
500.000
…
Kusmiyati
11.55.027
S1
Teknik Informatika
Made
500.000
…
Susiana
11.55.028
S1
Teknik Informatika
Made
500.000
…
Dewi Dwi
11.30.014
DIII
Manajemen Informatika
Made
400.000
…
Wali
Data
lain
Pembacaan harus dilakukan secara sekuensial.Rekaman demi rekaman,
sampai ‚Nama Mahasiswa‛ yang sesuai ditemukan. Misalnya untuk pembacaaan
rekaman dengan ‚Nama Mahasiswa‛ = Sunaryono, diperlukan probe (akses terhadap
lokasi yang berbeda) sejumlah 4 kali.
Yang harus dilakukan agar kinerja pembacaan rekaman lebih baik, maka
rekaman-rekaman dalam berkas mahasiswa tersebut diurutkan untuk mendapatkan
pengurutan yang linier berdasarkan nilai kunci rekaman.Baik secara alphabetis
maupun numeris. Hasil pengurutannya adalah sbb :
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 11
Nama
Nomor Induk
Mahasiswa
Mahasiswa
Jenjang
Program Studi
Dosen
SPP
Yuniati
11.30.012
DIII
Manajemen Informatika
Made
400.000
…
Sunaryono
11.30.013
DIII
Manajemen Informatika
Made
400.000
…
Dewi Dwi
11.30.014
DIII
Manajemen Informatika
Made
400.000
…
Dian Kartika
11.50.001
S1
Sistem Informasi
Made
500.000
…
Syda Arlin
11.50.011
S1
Sistem Informasi
Sugeng
500.000
…
Yenny Noorma
11.50.021
S1
Sistem Informasi
Sugeng
500.000
…
Mustafa
11.50.025
S1
Sistem Informasi
Sugeng
500.000
…
Zainul
11.55.024
S1
Teknik Informatika
Sugeng
500.000
…
Kusmiyati
11.55.027
S1
Teknik Informatika
Made
500.000
…
Susiana
11.55.028
S1
Teknik Informatika
Made
500.000
…
Wali
Data
lain
Berkas diatas berisi rekaman mahasiswa urut berdasar ‚Nomor Induk
Mahasiswa‛.Kolom ‚Nomor Induk Mahasiswa‛ menunjukkan nilai yang urut dari kecil
ke besar.
Dengan demikian , hanya n/2 rekaman yang perlu diperiksa rekaman-demirekaman untuk menemukan rekaman yang diinginkan. Kalau pembacaan diteruskan
melewati posisi dimana rekaman seharusnya berada (mengingat berkas sudah
diurutkan), maka proses pencarian dihentikan.
Untuk membaca ‚Sunaryono‛ hanya diperlukan 2 probe, lebih kecil disbanding
berkas sebelum diurutkan.Namun teknik tersebut masih kurang memuaskan untuk
berkas dengan jumlah rekaman yang lebih besar.
A. PENCARIAN BINER (BINARY SEARCH)
Pencarian Biner dalah membandingkan kunci yang dicari dengan rekaman
pada posisi tengah dari berkas. Bila sama (Kasus 1) rekaman yang diinginkan sudah
ditemukan. Jika tidak sama (kasus 2), berarti separuh rekaman-rekaman dalam berkas
akan dieliminasi dari perbandingan yang selanjutnya. Bila yang terjadi pada kasus 2,
maka proses perbandingan terhadap rekaman pada posisi di tengah dilanjutkan
menggunakan rekaman-rekaman yang tersisa.
Jumlah probe (yang diperlukan untuk membaca sebuah rekaman) pada
sebuah berkas dengan rekaman yang sudah diurutkan, dapat diperkecil dengan
menggunakan teknik pencarian biner.
Jika kunci cari<kunci tengah
maka bagian berkas
mulai dari kunci tengah sampai akhir berkas
dieliminiasi.
sebaliknya jika kunci cari> kunci tengah,
maka bagian berkas
mulai dari depan sampai dengan kunci tengah
dieliminiasi.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 12
Dengan mengulang proses perbandingan terhadap rekaman tengah, maka
lokasi rekaman yang diinginkan akan ditemukan atau diketahui bahwa rekaman yang
diinginkan tersebut tidakberada dalam berkas.
Algoritma pencarian biner:
Proc pencarian_biner
*/ n buah rekaman dalam berkas diurutkan menaik menurut kunci
rekaman */
AWAL := 1
AKHIR := n
While AWAL <= AKHIR do
Tengah := [(AWAL+AKHIR)/2]
If kunci(cari) = kunci(tengah)
Then pencarian berakhir
Else if kunci(cari) > kunci(tengah)
Then AWAL := Tengah + 1
Else AKHIR := tengah - 1
End
Rekaman tidak ditemukan
End pencarian_biner
B. PENCARIAN INTERPOLASI
Pencarian interpolasi (asumsinya kunci rekaman numeris) menentukan posisi
yang akan dibandingkan berikutnya berdasar posisi yang di estimasi dari sisa rekaman
yang belum diperiksa. Pencarian interpolasi tidak mencari posisi tengah, seperti
algoritma pencarian biner, melainkan menentukan posisi berikutnya.
Proc pencarian_interpolasi
*/ n buah rekaman dalam berkas diurutkan menaik menurut kunci
rekaman */
AWAL := 1
AKHIR := n
While AWAL <= AKHIR do
BERIKUT := [AWAL + kunci(cari) – kunci(AWAL) (AKHIR – AWAL)]
Kunci(AKHIR)- kunci(AWAL)
If kunci(cari) = kunci(BERIKUT)
Then pencarian berakhir
Else if kunci(cari) > kunci(BERIKUT)
Then AWAL := BERIKUT + 1
Else AKHIR := BERIKUT - 1
End
Rekaman tidak ditemukan
End pencarian_interpolasi
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 13
Sesi 6
Materi 5
ORGANISASI BERKAS LANGSUNG
Pengguna teknologi pada umumnya dan teknologi informasi pada khususnya
merasa bahwa waktu yang diperlukan untuk memperoleh suatu informasi masih
terlalu lama.
Metode pencarian biner maupun interpolasi masih belum dapat mengimbangi
ketidaksabaran manusia terhadap penyediaan informasi yang cepat dan akurat.
Perkembangan
media
perekam
data
dalam
hal
kemampuan
untuk
menampung volume data yang sangat besar harus diimbangi dengan peningkatan
teknik pencarian kembali data yang tersimpan.
A. KUNCI SEBAGAI ALAMAT REKAMAN YANG UNIK
Untuk mendapat rekaman yang diasosiasikan dengan suatu kunci primer,
sangat diharapkan agar proses langsung menuju ke alamat tempat rekaman dengan
kunci tertentu disimpan. Hal tersebut mungkin terjadi apabila satu kunci rekaman juga
merupakan alamat lokasi rekaman.
Untuk aplikasi rekaman berisi nomor induk mahasiswa, terdapat 8 digit (kunci
rekaman yang merupakan gabungan 2 digit tahun angkatan + 2 digit kode program
studi + 4 digit nomor urut), maka diperlukan lokasi sebanyak 99.999.999.
Dengan demikian waktu pencarian akansangat baik, yaitu 1 probe untuk
setiap rekaman yang dicari. Akan tetapi, teknik tersebut memiliki kerugian karena
diperlukan ruang yang sangat besar untuk menampung semua rekaman.
Untuk menampung data NIM mahasiswa diperlukan ruang yang besar, meski
jumlah mahasiswa mungkin hanya 500, pasti ada beberapa nomor yang kosong
karena beberapa alasan, misalnya sudah lulus, mengundurkan diri, drop-out, cuti, dan
sebagainya. Sehingga tidak semua ruang dimanfaatkan.
B. KONVERSI KUNCI REKAMAN MENJADI SATU ALAMAT YANG UNIK
Contoh klasik yang menggambarkan fenomena konversi kunci rekaman
adalah sistem reservasi penerbangan.Jika suatu maskapai penerbangan memiliki
nomor penerbangan dari 1 sampai 999, ingin memantau reservasi pesawat selama
setahun yang jumlah harinya 1 sampai 366 (1 tahun), maka nomor penerbangan dan
hari-ke dapat dihubungkan untuk mendapatkan lokasi rekaman yang berisi data
reservasi penerbangan pada hari tertentu.
LOKASI = NOMOR PENERBANGAN + HARI-KE DALAM TAHUN INI
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 14
Dengan simbol + menandakan hubungan, maka untuk menyediakan semua
kemungkinan penerbangan diperlukan ruang alamat sebesar 999366 unit. Jumlah
tersebut dapat direduksi sampai dengan 30% bila digunakan kombinasi:
LOKASI = HARI-KE DALAM TAHUN INI+ NOMOR PENERBANGAN
Karena kecil kemungkinan dalam satu maskapai terdapat lebih dari 100
penerbangan, maka ruang alamat maksimum yang diperlukan adalah 36699.
C. MENENTUKAN ALAMAT DENGAN KONVERSI KUNCI
Diperlukan satu fungsi untuk memetakkan cakupan nilai kunci yang lebih luas
ke dalam cakupan yang lebih sempit nilai alamat. Fungsi yang dikenal dengan fungsi
hashakan melakukan pemetaan sebagaimana diharapkan.
Hash (kunci) kemungkinan alamat
Keluaran dari proses hashing bukan lagi alamat yang unik, melainkan
kemungkinan alamat bagi kunci yang di hash. Alamat untuk menempatkan alamat
yang diperoleh dari fungsi hash disebut home-address untuk rekaman tersebut. Tidak
ada batasan mengenai bentuk fungsi yang akan memetakkan kunci ke cakupan
alamat, tetapi diharapkan fungsi tersebut menghasilkan kemungkinan alamat yang:
Mampu mendistribusi kunci secara merata ke dalam cakupan alamat. Hal tersebut
dimaksudkan untuk mengurangi terjadinya kolisi. Kolisi terjadi bila hasil hashing
dua kunci rekaman yang berbeda menunjuk ke alamat yang persis sama.
Dapat dieksekusi dengan efisien. Hal tersebut dimaksudkan agar waktu
pembacaan dapat ditekan seminimal mungkin.
Maka fungsi hashing dapat dipandang dari 2 aspek, yaitu:
Fungsi hash itu sendiri
Metode untuk meresolusi kolisi
Mekanisme resolusi kolusi diperlukan untuk mengatasi terjadinya jumlah
rekaman yang dikonversikan ke suatu lokasi melebihi kapasitasnya.Dalam bahasan ini
diasumsikan bahawa satu lokasi memiliki kapasitas satu rekaman.Berikut adalah
beberapa fungsi hash, dimulai dari yang paling sering digunakan.
a) Hashing dengan Kunci Modulus N
Satu fungsi hash yang paling popular dan paling sering diimplementasikan adalah
modulus N,
f (kunci) = kunci mod N
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 15
dengan N sebagai ukuran tabel atau berkas. Hasil fungsi modulus adalah sisa
pembagian kunci oleh N. Sabagai contoh untuk N=12 maka:
30 mod N = 6
40 mod N = 4
Keuntungan fungsi ini hanya menghasilkan nilai dalam rentang ruang alamat (0)
sampai dengan (N-1)
b) Hashing dengan Kunci Modulus P
Fungsi hashing Kunci mod P merupakan variasi fungsi modulus N, rumusnya
adalah:
f (kunci) = kunci mod P
dengan P sebagai bilangan prima terkecil yang lebih besar atau sama dengan N.
dan N adalah ukuran tabel. P ini kemudian menjadi ukuran tabel baru yang
menggantikan N. Contoh: untuk N=12 maka P=13
30 mod P = 4
40 mod P = 1
c) Hashing dengan Pemotongan
Alternatif lain untuk fungsi hashing adalah pemotongan. Sebagai contoh
adalah para pegawai negeri sipil di Indonesia. Para pegawai memiliki NIP (Nomor
Induk Pegawai) dengan panjang total 9 digit, terdiri atas 3 digit pertama sebagai
identitas departemen, sementara 6 digit terakhir adalah nomor urutnya. Bila ingin
dijadikan 6 digit saja, maka bisa dilakukan pemotongan jumlah digit.Pemotongan
bisa dilakukan dibagian mana saja, tentunya dengan konsekuensi masing-masing.
Pada kasus NIP, jika pemotongan dilakukan pada bagian belakang, akan
diperoleh sejumlah alamat yang memiliki 3 digit yang sama (identitas departemen)
sehingga kemudian kolisinya akan lebih besar dibanding bila pemotongan
dilakukan di bagian depan.
d) Hashing dengan Lipatan
Fungsi ini melipat digit pada batasan yang ditentukan berdasarkan kondisi
digit awal dan digit yang akan dihasilkan. Sebagai contoh 9 digit NIP akan direduksi
menjadi 3 digit, maka digit awal di bagi 3, kemudian dilipat pada batas antarbagian.
Contoh :
5
8
3
9
7
6
1
2
4
Kunci asli tersebut ditulis pada selembar kertas. Batasan dimana lipatan akan
dilakukan ditandai dengan garis .
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 16
Penjumlahan dari susunan tersebut adalah:
385
976
421
----- +
Jika penjumlahan dilakukan dengan mengabaikan carry maka diperoleh
alamat 672, sedangkan jika tidak mengabaikan carry maka hasilnya 782.
e) Hashing dengan Penggeseran
Hashing dengan penggeseran memiliki proses yang serupa dengan hashing
lipatan, bedanya setelah ditentukan batasan. Digit asli dipotong kemudian digeser
dan dihitung hasil jumlahnya.
583
976
124
----- +
Yang diperoleh alamat yang berbeda yaitu 573 (tanpa carry). Jika kedua hasil
penjumlahan tersebut diterapkan dengan menggunakan carry dan hanya tiga digit
yang paling kanan saja yang digunakan, maka diperoleh 683.
f) Hashing dengan Pengkuadratan
Hashing
dengan
penguadratan
adalah
fungsi
hashing
dengan
menguadratkan kunci.Hasil penguadratan ini kemudian dapat dikombinasi dengan
pemotongan atau lipatan untuk mendapatkan alamat yang diperbolehkan. Sebagai
contoh, penguadratan kunci 782 akan menghasilkan kemungkinan alamat 117.
F(782) = 117
g) Hashing dengan Konversi Radix
Dalam konversi radix, kunci dianggap dalam base selain 10 yang kemudian
dikonversi ke dalam basis 10, misal kunci 5 6 7 8 dalam base 13 akan
menghasilkan 12098, diperoleh dari:
5678
Posisi:
3 2 1 0
Hasil tersebut masih dapat dikombinasi dengan fungsi hash lain (pemotongan
atau lipatan) untuk mendapatkan digit alamat yang diinginkan.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 17
Sesi 7
Materi 6
ORGANISASI BERKAS DENGAN BANYAK KUNCI
A. METODE ORGANISASI
Ada banyak teknik yang dipakai untuk organisasi file dengan banyak kunci.
Berikut ini dua teknik dasar untuk pemberian hubungan antara sebuah index dan data
record dari file, yaitu:
1. Inverted
2. Multilist
Banyak bahasa program kompilator tidak memberikan kemampuan untuk
mendukung organisasi file banyak kunci. Karenanya diperlukan paket program
tambahan untuk mendukung sistem pengolahan data manajemen yang hampIr
semuanya menggunakan organisasi file banyak kunci.
Contoh sebuah sistem perbankan yang mempunyai beberapa pemakai seperti
kasir, pegawai kredit, manajer cabang, pegawai bank, nasabah, dll. Semuanya
memerlukan akses data yang sama dengan format record sebagai berikut:
ID
NAMA
KODE GROUP
NO SOSIAL
SOCIATY
DEPAN
AKHIR
CABANG
SALDO
OVERDRAW
LIMIT
TYPE
Adanya pemakai yang berbeda memerlukan akses record-record ini dengan
cara yang berbeda. Seorang kasir hendak mengidentifikasi sebuah record account
menurut ID-nya. Seorang pegawai kredit memerlukan akses semua record menurut
nilai overdraw-limit atau semua record account dengan sebuah nilai No Sosial Sociaty.
Seorang manajer cabang hendak membuat laporan berkala untuk semua record
account yang disortir berdasarkan ID. Seorang nasabah memerlukan akses recordnya
dengan memberikan ID yang dipunyainya atau kombinasi dari Nama, No Sosial
Sociaty, dan Type.
Satu pendekatan yang dapat mendukung semua jenis akses adalah
dipunyainya banyak file yang berbeda. Setiap file diorganisasi untuk melayani satu
jenis keperluan. Untuk contoh adalah sistem perbankan di atas, harus ada:
a. File account yang organisasinya sekuensial dengan nilai kunci ID (untuk
melayani kasir, pegawai bank, dan nasabah).
b. File account yang organisasinya sekuensial dengan record diurut menurut
Overdraw-Limit (untuk melayani pegawai kredit).
c. File account yang organisasinya relatif dengan kunci No SS (untuk melayani
pegawai kredit).
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 18
d. File account yang organisasinya sequensial dengan record diurut menurut kode
group (melayani manajer cabang).
e. File account yang organisasinya relative dengan nilai kunci Nama, NoSS dan
Type (untuk melayani nasabah)
Kita memiliki 5 file yang semuanya mempunyai record yang sama. Kelima file ini
hanya berbeda dalam organisasinya dan cara aksesnya.
Pengulangan data dari beberapa file bukan merupakan cara yang baik untuk
mengakses record dengan berbagai cara. Lagi pula cara ini memerlukan ruang yang
besar di penyimpanan dan kesulitan pada waktu pemutakhiran record secara
serentak.
File dengan organisasi banyak kunci adalah cara terbaik untuk mengatasi
masalah di atas. File ini menggunakan indeks dan bukan pengulangan data seperti
cara diatas. Konsep dari akses banyak kunci umumnya diimplementasikan dengan
pembentukan banyak indeks untuk memberikan yang berbeda terhadap record.Cara
ini menggunakan linked-list.
B. FILE TERBALIK (INVERTED FILE)
1. Metode Akses pada File Terbalik (Inverted File Access method)
Setiap daftar file yang dibalik, alamat atau key untuk semua record
memiliki atribut yang sama. Contoh:
Bagian File Personel
Alamat Record
Nomor Pegawai
Umur
101
28541
43
102
35879
27
103
47853
32
104
50917
24
File Inverted dengan Index Umur
Umur
Alamat Record
18-25
,…
26-35
,
,…
36-45
,…
Beberapa file diperlukan jika mempertimbangkan untuk melokasikan
record yang memakai 1 atau lebih atribut. Data diperlukan untuk menjelaskan
hubungan dan alamat record yang ditunjukkan dengan file-file inverted yang
diketahui sebagai pengeluaran tambahan data.
2. Contoh Pemakaian File Terbalik
No.Rec<S-Id, Na a, Mata Kuliah…><Poi ter>
1
1234 :
Adam :
SBD : …
3
2
5678 :
Bruce :
SB : …
4
3
9012 :
Clarck :
SBD : …
0
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 19
4
5
6
3456 :
7890 :
…
SB : …
PSI : …
…
David :
Erik :
…
DIRECTORY
Search Key Address List
SB
2,4
PSI
5
SBD
1,3
0
0
…
DATAFILE
No.Rec<S-Id, Nama, Mata Kuliah, …>
1 1234 :
Adam :
SBD
:…
2 5678 :
Bruce :
SB
:…
3 9012 :
Clarck :
SBD
:…
4 3456 :
David :
SB
:…
5 7890 :
Erik :
PSI
:…
Pengindekan dengan Pengalamatan tidak langsung yaitu:
1. Inversion bisa menggunakan kunci yang bukan nilai yang unik. Seperti
indeks berdasarkan kunci Kode-Group.
Kode-Group
ID
Tipe-Cabang
DT 001
111111, 201431, 310103
DT 002
198121
NW 001
112131, 208432
NW 002
291821
NE 002
300123
2. Struktur Index Inversion menggunakan Pengalamatan tidak langsung
dengan nilai No.Soc.
No.Society
001234123
123456789
399142131
412631467
459463001
513014265
713214622
821346211
ID
291821
208432
201431
300123
111111
310103
198121
112131
Data Recordnya adalah:
Alamat
Record
ID
1
2
3
4
5
6
7
8
111111
112131
198121
201431
208432
291821
300123
310103
Nama
Depan
Akhir
ADAM
SMITH
MORALES
SMITH
JONES
MORGAN
ADAMS
MATTHERS
JOHN
IVAN
JOSE
ELOISE
JANE
NILL
MYRTLE
ELMER
Dinny Wahyu Widarti, S.Kom
Kode
Grup
Cabang
DT
NW
DT
DT
NW
NW
NE
DT
Tipe
No
Sociaty
Saldo
Overdraw
Limit
001
001
002
001
001
002
002
001
459463001
821346211
713214622
399042131
123456789
001234123
412631467
513014265
100.500
2311.20
191.87
3142.93
95.26
146.92
3000.0
243.63
0.
100.
200.
100.
0.
0.
100.
0.
Sistem Berkas - 20
C. FILE MULTILIST
File multilist mempunyai sebuah indeks untuk setiap kunci sekunder. Organisasi
multilist berbeda dengan file terbalik dimana dalam indek inverse untuk sebuah nilai
kunci mempunyai sebuah petunjuk untuk data record pertama dengan nilai kunci,
sedangkan dalam indeks multilist untuk sebuah nilai kunci mempunyai hanya sebuah
petunjuk untuk data record pertama dengan nilai kunci. Data record mempunyai
sebuah penujuk untuk data record selanjutnya dengan nilai kunci dan seterusnya.
Karena terdapat sebuah linked-list dari data record untuk setiap nilai dari kunci
sekunder.
Contoh File data dengan struktur MultiList:
Dari Tabel Data Record di atas, dapat ditunjukkan file multi-list di bawah ini untuk kunci
sekunder Kode-group. Setiap data record mempunyai tempat penunjuk untuk
mengakses record selanjutnya.
Kode_Group
Tipe_cabang
DT001
DT002
NE002
NW001
NW002
ID
111111
198121
300123
112131
291821
Kemudian file Multi list untuk kunci sekunder Overdraw Limit:
Overdraw
Limit
0
100
200
ID
111111
112131
198121
Nilai kunci harus diurut, struktur indek adalah tabel dengan indirect addressing
dan mempunyai hubungan data record yang disusun menurut ID secara menaik. Hasil
sebuah struktur multilist adalah sebuah kunci sekunder yang mempunyai nilai unik
atau tunggal. Ini berarti ada N data record maka ada N nilai kunci sekunder dalam
indeks yang menunjukkan record pertama.
Suatu sifat yang menaik dari multilist bahwa indeks dapat berupa fixed length.
Pendekatan multilist memberikan jenis kemampuan akses yang sama dengan
pendekatan inverted file tetapi memproses dari 2 jenis file yang berbeda, sbg contoh :
a) Berapa jumlah account dengan kode grup = ‘DT001’?
b) Berapa jumlah cabang ‘NE’?
c) Daftar nilai ID untuk account dengan grup ‘DT002’?
d) Daftar nilai ID untuk account dengan tipe ‘002’?
e) Apakah ID = 198121 mempunyai account dengan tipe ‘002’?
Contoh di atas memerlukan data record dalam pengaksesannya. Agar dapat
menjawab pertanyaan di atas dalam hal jumlah (seperti soal a dan b) dan setiap nilai
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 21
second y dalam indeks multilist mempunyai banyak record dalam link-list di samping
penunjuk untuk record pertama dan nilai kunci.
Tabel di bawah ini menunjukkan variasi dari indeks kode grup dan overdraw
limit:
Kode_Group
Tipe_cabang
DT001
NW001
DT002
NW002
NE002
Overdraw
Limit
0
100
200
Panjang
2
2
1
1
1
Panjang
4
3
1
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 22
Sesi 9
Materi 7
ORGANISASI BERKAS RELATIF
Salah satu cara yang efektif dalam mengorganisasikan sekumpulan record
yang membutuhkan akses sebuah record dengan cepat adalah ORGANISASI BERKAS
RELATIF. Dalam berkas relatif ada hubungan antara KEY YANG DIPAKAI untuk
mengidentifikasi record dengan LOKASI RECORD dalam penyimpan sekunder.
Perlu diperhatikan bahwa URUTAN RECORD SECARA LOGIC tak ada
hubungannya dengan URUTAN SECARA FISIK. Record tidak perlu tersotir secara fisik
menurut nilai key.
NILAI KEY
AWAL BERKAS
ADDRESS
COW
1
2
ZEBRA
APE
I-1
I
I+1
EEL
DOG
AKHIR BERKAS
N-1
N
CAT
BAT
Bagaimana record yang ke-N dapat ditemukan? Dalam hal ini, perlu kita buat
hubungan yang akan menerjemahkan antara NILAI KEY dan ADDRESS. Hubungan ini
dinyatakan sebagai R, yang merupakan fungsi pemetaan.
R(NILAI KEY)
ADDRESS
dari nilai key ke address dalam penyimpanan sekunder. Pada waktu sebuah record
ditulis ke dalam berkas relatif, fungsi pemetaan R digunakan untuk menerjemahkan
NILAI KEY DARI RECORD menjadi ADDRESS, dimana record tersebut disimpan. Begitu
pula pada waktu akan meretrive record dengan nilai key tertentu, fungsi pemetaan R
digunakan terhadap nilai key tersebut, dimana record tersebut dapat ditemukan.
Berbeda dengan organisasi berkas sekuensial, organisasi berkas relatif ini tidak
perlu mengakses record secara berurut (consecutive), karena sebuah record tertentu
dapat diakses secara langsung. Organisasi berkas relatif ini tidak menguntungkan bila
penyimpanan sekundernya adalah medium serial access seperti magnetic tape.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 23
Berkas relatif harus disimpan dalam medium direct access storage device (DASD)
seperti magnetic disk.
Juga dimungkinkan untuk mengakses record-record dalam berkas relatif secara
CONSECUTIVE. Tetapi perlu diketahui bahwa nilai key tidak urut secara logic. Sebagai
contoh record dalam gambar di atas, di retrieve secara consecutive; COW, ZEBRA, …,
APE, EEL, DOG, …, CAT, BAT.
Karena kemampuan mengakses record tertentu secara cepat, maka organisasi
berkas relatif paling sering digunakan dalam proses interactive. Sebagai contoh
sebuah online sistem perbankan mempunyai berkas induk dengan struktur sebagai
berikut :
CUSTOMER – ACCOUNT
ACCOUNT
ACCOUNT
NUMBER
TYPE
BALANCE
DATE-LAST
DATE-LAST
CREDIT
DEBIT
Sedangkan berkas transaksinya terdiri dari field-field sebagai berikut:
TRANSACTION
ACCOUNT
TRANS
NUMBER
TYPE
AMOUNT
DATE
Field ACCOUNT NUMBER dipakai sebagai nilai key untuk kedua berkas
tersebut. Pada saat nilai key ACCOUNT NUMBER dimasukkan ke dalam transaksi, nilai
key tersebut akan me-retrieve secara langsung record yang ada pada berkas induk.
Jika TRANS-TYPE = ‘T’, maka BALANCE akan ditampilkan di layar. Jika TRANS-TYPE =
‘C’ atau ‘D’, maka record-record dari berkas induk CUSTOMER-ACCOUNT akan
dimodifikasi dengan AMOUNT dan DATE yang ada di berkas transaksi, dimana
ACCOUNT NUMBER yang menentukan lokasi record dalam berkas tersebut.
Ada dua hal penting yang perlu dicatat; pertama, tidak perlu mengakses semua
record berkas induk, cukup mengakses langsung record yang dikehendaki. Kedua,
record dari berkas relatif dapat di up-date langsung tanpa perlu merekan kembali
semua record.
Bandingkan kedua hal ini pada organisasi sekuensial.
Keuntungan dari berkas relatif ini adalah kemampuan mengakses record
secara langsung. Sebuah record dapat di retrieve, insert, modifikasi, atau bahkan dapat
di delete; tanpa mempengaruhi record laindalam berkas yang sama.
Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan R,
dimana R (NILAI KEY) ADDRESS
1. Pemetaan Langsung (Direct Mapping)
2. Pencarian Tabel (Directory Look-up)
3. Kalkulasi (Calculating)
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 24
A. TEKNIK PEMETAKAN LANGSUNG
Teknik ini merupakan yang sederhana untuk menerjemahkan nilai record key
menjadi address. Ada dua cara dalam pemetaan langsung:
1) Pengalamatan mutlak (absolute addressing)
2) Pengalamatan relatif (relative addressing)
1. Pengalamatan Mutlak
Fungsi pemetaan R (NILAI KEY) ADDRESS, di mana NILAI KEY = ALAMAT
MUTLAK. Fungsi pemetaan ini disebut PENGALAMATAN MUTLAK. Nilai key
diberikan oleh pemakai program yang sama dengan ADDRESS SEBENARNYA dari
record tersebut disimpan pada penyimpanan sekunder.
Pada waktu record tersebut disimpan, lokasi penyimpanan record (nomor
silinder, nomor surface, nomor record) bila dipakai CYLINDER ADDRESSING atau
(nomor sector, nomor record) bila dipakai SECTOR ADDRESSING harus ditentukan
oleh pemakai.
Begitu pula pada waktu record tersebut di retrieve, lokasi mutlak itu harus
diketahui dan diberikan pemakai.
Ada 2 keuntungan dari pengalamatan mutlak:
Fungsi pemetaan R sangat sederhana
Tidak membutuhkan sekunder (retrieve lebih cepat)
Kelemahannya :
Pemakai harus mengetahui dengan pasti record-record yang disimpan
secara fisik.
Pemakai tidak dapat menggunakan nilai key seperti ACCOUNT
Alamat mutlak adalah device dependent. Perbaikan atau perubahan
alat, dimana berkas berada, akan mengubah nilai key.
Alamat mutlak adalah address space dependent. Reorganisasi berkas
relatif akan menyebabkan nilai key berubah. Reorganisasi bertujuan
memperbesar ruang alamat di mana sampah (garbage) akan dibuang
atau dapat juga memperkecil ruang alamat.
2. Pengalamatan Relatif
Fungsi pemetaan R (NILAI KEY) ADDRESS, dimana NILAI KEY = ALAMAT
RELATIF. Fungsi pemetaan ini disebut PENGALAMATAN RELATIF.
Alamat relatif dari sebuah record dalam sebuah berkas adalah urutan
record tersebut dalam berkas. Sebuah berkas dengan N record mempunyai record
dengan alamat relatif dari himpunan (1, 2, 3, …, N-2, N, N-1) Record yang ke-I
mempunyai alamat relatif I dan I-1.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 25
Keuntungan dari pengalamatan relatif:
Fungsi pemetaan R sangat sederhana
Nilai key dari sebuah record dapat ditentukan lokasi recordnya dalam
sebuah penyimpanan sekunder tanpa memerlukan waktu proses
berarti.
Alamat relatif tidak tepat dikatakan sebagai device dependent seperti pada
alamat multak, karena itu kelemahan tersebut dapat dihilangkan pada pengalamatan
relatif. Namun seperti pada pengalamatan mutlak, pengalamatan relatif juga address
space dependent.
Nilai key dari sebuah field dapat dipakai sebagai alamat relatif. Misal dari 2000
jenis barang yang mempunyai nilai key PART NUMBER dipakai sebagai alamat
relatif.Part number 1001 mempunyai alamat relatif 1001.
Kelemahan nilai key dari sebuah field dipakai sebagai alamat relatif adalah
terjadinya pemborosan ruangan dimana berkas relatif menyediakan ruang (alamat
relatif) untuk 9999 jenis barang dari sebenarnya 2000 jenis barang, terjadi pemborosan
kurang lebih 80%. Untuk nilai key NIP yang terdiri dari 9 digit dari berkas pegawai yang
berjumlah 2000 record akan terjadi pemborosan 99,99998% ruang dimana berkas
relatif menyediakan alamat relatif untuk 999.999.999 pegawai.
Untuk mengatasi pemborosan ruang adalah dengan cara mendapatkan
sebuah key yang nilai jangkauannya mempunyai populasi tinggi. Sebagai contoh 8200
jenis barang akan lebih efisien mempunyai PART NUMBER sebanyak 4 digit sebagai
nilai key-nya yang juga merupakan alamat relatif. Ruang kosong sebesar 20% dipakai
untuk penambahan record.
B. TEKNIK PENCARIAN TABEL
Teknik pencarian tabel jauh lebih baik disbanding dengan teknik pemetaan
langsung.Hanya saja memerlukan biaya baru dalam pemeliharaannya. Kita akan lihat
bahwa pendekatan ini hamper serupa dengan teknik yang dipakai pada berkas indeks
sekuensial.
Dasar pemikiran pendekatan pencarian tabel adalah sebuah tabel atau direktori
dari nilai key dan address. Untuk menemukan sebuah record dalam berkas relatif,
pertama dicari dalam direktori nilai key dari record tersebut, akan menunjukkan alamat
dimana record tersebut berada dalam penyimpanan.
Dalam bentuk yang sedrhana, direktori diimplementasikan sebagai suatu array
dari nilai key; record alamat, digambarkan sebagi berikut:
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 26
KEY
DIREKTORI
ALAMAT
BERKAS RELATIF
APE
I-1
COW
BAT
N
ZEBRA
CAT
N-1
ALAMAT RELATIF
1
2
APE
COW
1
EEL
DOG
I+1
DOG
EEL
I
2
I-1
I
I+1
N-1
N
CAT
ZEBRA
BAT
Disini data dalam direktori disusun secara urut menurut nilai key, sehingga
pencarian nilai key dalam direktori lebih cepat dengan binary search dibanding
sequential search.
Alternatif lain, direktori dapat disusun dalam binary search tree, M-way search
tree, atau B-tree.
DIREKTORI
BERKAS RELATIF
APE,
I-1
BAT, N
CAT,
Dinny Wahyu Widarti, S.Kom
1
ZEBRA
2
APE
I-1
EEL
I
DOG
I+1
CAT
N-1
BAT
N
I+1
EEL, 1
ZEBRA,
COW
N-1
COW, 1
DOG,
ALAMAT RELATIF
2-1
Sistem Berkas - 27
Keuntungan dari pencarian tabel:
Sebuah record dapat di akses dengan cepat, setelah nilai key dalam
direktori ditentukan .
NMP, karena nilai key tersebut akan diterjemahkan menjadi alamat.
Nilai key dapat berupa field yang mudah dimengerti seperti PART NUMBER,
Nilai key adalah address space independent, dimana reorganisasi berkas
tak akan mempengaruhi nilai key, yang berubah adalah alamat dalam
direktori.
Teknik ini banyak dipengaruhi oleh organisasi direktorinya. Apabila nilai key
disimpan secara urut pada direktori, akses secara binary jauh lebih cepat dibanding
secara sekuensial.
C. TEKNIK KALKULASI ALAMAT
Pendekatan lain yang umum dipakai untuk mengimplementasikan R (NILAI
KEY) ADDRESS adalah dengan melakukan kalkulasi terhadap nilai key. Hasilnya
adalah alamat alternatif. Teknik ini dapat dipakai sendiri atau bersama-sama dengan
pencarian tabel.
Ide dasar dari kalkulasi alamat adalah mengubah jangkauan nilai key yang
mungkin, menjadi sejumlah kecil alamat alternatif.
Salah satu kelemahan dari teknik pengalamatanrelatif adalah ruang harus
disediakan sebanyak jangkauan nilai key, terlepas dari beberapa banyak nilai key.
Sebagai contoh, dari 2000 jenis barang hendak dibuat alamat relatif sebanyak 2000
lebih sedikit. Cara ini dapat dilakukan dengan teknik kalkulasi alamat.
Salah satu masalah dari teknik ini adalah ditemukannya alamat relatif yang
sama untuk nilai key yang berbeda. Keadaan di alamat relatif yang sama untuk nilai
key yang berbeda. Keadaan dimana R (K1) = R (K2) dan K1 # K2 disebut BENTURAN
(COLLISION). Sedangkan nilai key K1 dan K2 disebut SYNONIM.
Ada banyak cara untuk mengatasi benturan, antara lain:
Scatter diagram techniques
Key to address transformation methods
Hash tables methods
Randomizing techniques
Direct addressingbtechniques
Hashing
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 28
Sesi 10
Materi 8
ORGANISASI BERKAS INDEKS SEKUENSIAL
Organisasi
Berkas
Indeks
Sekuensial
dirancang
dengan
tujuan
untuk
menanggulagi masalah pengaksesan yang dimiliki oleh organisasi berkas sekuensial
tanpa mengurangi keuntungan dan tradisi oleh organisasi berkas sekuensial.
Berkas indeks sekuensial memiliki 2 sifat yang mengungguli berkas sekuensial.
Yaitu:
Indeks terhadap berkas menghasilkan pengaksesan random yang lebih baik.
Area overflow untuk menyediakan ruang bila dilakukan penambahan rekaman
ke dalam berkas
Gambar 8.1 adalah contoh berkas indeks sekuensial.Pada gambar tersebut
diperlihatkan tiga komponen, yakni berkas sekuensial, area indeks, dan overflow.
Berkas
Utama
Overflow
Indeks
Gambar 8.1 komponen dalam berkas sekuensial berindeks
Berkas sekuensial berindeks memungkinkan dilakukannya pembacaan secara
sekuensial terhadap rekaman-rekaman yang berada dalam area primer. Rekamanrekaman yang disisipkan dialokasikan pada area yang terpisah, yang disebut area
overflow.
Rekaman-rekaman
dalam
area
overflow
ditempatkan
dengan
memperhatikan penunjuk dari rekaman sebelumnya. Pembacaan yang serial terhadap
kombinasi kedua berkas akan dilakukan secara sekuensial sampai ditemukan
penunjuk yang mengarah ke overflow area, kemudian dilanjutkan dengan pembacaan
rekaman-rekaman yang berlokasi di area overflow sampai ditemukan penunjuk yang
nilainya nol. Untuk pembacaan yang dilakukan secara random, maka digunakan area
indeks.
A. STRUKTUR DASAR
Dalam sebuah sistem komputer, pada umumnya rekaman yang akan disimpan
memiliki volume yang terlalu besar untuk ditempatkan semuanya pada penyimpanan
primer. Jadi, diperlukan penyimpanan sekunder seperti disk untuk menyimpan
rekaman. Bila yang digunakan adalah komputer dengan disk yang dapat diberi alamat
melalui blok-nya, maka digunakan track sebagai unit terkecil dalam mengelompokkan
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 29
informasi. Unit yang berikutnya adalah silinder, kemudian terdapat unit tambahan lain
yang disebut indeks. Organisasi berkas dengan struktur indeks sekuensial mempunyai
terminology khusus, yaitu ISAM atau Indexed Sequential Access Methods. Metode
pengakses adalah program sistem yang mengelola pemindahan data antarprogram
aplikasi dengan komputer.
Sebagai contoh adalah sebuah berkas sekuensial berindeks dengan format
blok yang dapat diberi alamat. Untuk memperjelas pemahaman, dipilih rekamanrekaman dalam sebuah silinder, tetapi indeks silinder tersebut berisi penunjuk ke
berbagai silinder lainnya. Sepasang masukan yang berisi informasi untuk masingmasing silinder dalam indeks silinder adalah sebagai berikut:
kunci
pnj
dengan kunci merupakan kunci rekaman tertinggi dari rekaman-rekaman yang berada
pada silinder tersebut, dan pnj yang menunjuk ke arah indeks track untuk ke silinder
tersebut. Masing-masing track dalam silinder memiliki dua buah pasangan masukan
yang berisi informasi yang dapat diasosiasikan dengan track tersebut dalam indeks
track. Satu pasang berisi informasi yang berada pada area penyimpanan primer, dan
sebuah lagi memiliki informasi pada rekaman overflow yang diasosiasikan dengan
track tersebut. Untuk masing-masing track, masukan-masukan tersebut memiliki
bentuk sebagai berikut:
kunci
pnj
kunci
primer
pnj
overflow
Kunci pada pasangan pertama menunjukkan kunci tertinggi pada track yang
berada pada area penyimpanan primer, dan kunci yang berada pada pasangan kedua
menunjukkan kunci tertinggi yang berada pada area overflow yang diasosiasikan
dengan track tersebut. Pnj primer memberikan indikasi bahwa track berisi rekaman
primer, dan pnj overflow menunjukkan rekaman pertama yang berada pada area
overflow (jika ada) yang diasosiasikan dengan track tersebut.
Pada gambar 8.2 indeks silinder memberikan informasi mengenai masukan dari
tiga buah silinder; yaitu silinder 1, 2, dan 3, serta informasi bahwa kunci tertinggi pada
silinder 1 adalah 250.
Indeks silinder
250
1-0
Dinny Wahyu Widarti, S.Kom
750
2-0
1500
3-0
…
Sistem Berkas - 30
Indeks track (untuk silinder = 1)
Nomor track
25
1
25
^
70
2
70
^
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
15
20
22
25
2
28
38
41
55
57
65
70
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
2
3
4
9
Gambar 8.2 Struktur awal berkas sekuensial berindeks
Pada penunjuk, masukan memiliki notasi x-y dengan x sebagai nomor silinder
dan y nomor track di mana indeks track untuk silinder tersebut disimpan. Dengan
demikian penunjuk 1-0 dapat diartikan sebagai track 0 pada silinder 1. Nilai penunjuk
yang berada pada indeks track penunjuk pada nomor track yang spesifik. Pada nilai
penunjuk tersebut nilai kunci tertinggi pada area primer sama dengan kunci tertinggi
pada area overflow karena sampai saat ini belum dilakukan penyisipan rekaman yang
dialokasikan pada area overflow. Simbol ^ pada penunjuk overflow mengindikasikan
bahwa tidak ada rekaman pada area overflow.
Pada saat melakukan
penyisipan, urutan harus tetap dipertahankanuntuk
mempreservasi mekanisme pembacaan. Ini berarti pada saat penyisipan rekaman,
rekaman tersebut dialokasikan pada posisi yang tepat secara leksikografik. Mengingat
dimungkinkan untuk memiliki area overflow pada setiap track, maka tidak perlu
memindahkan rekaman-rekaman dengan jumlah yang melebihi jumlah rekaman
dalam sebuah track. Pada saat rekaman baru disisipkan pada sebuah track pada area
primer, terdapat kemungkinan bahwa rekaman tersebut menyebabkan terlemparnya
rekaman yang sudah berada pada area primer ke area overflow. Hal ini berarti
rekaman dengan kunci tertinggi pada area primer akan berubah, tetapi tidak demikian
halnya pada area overflow. Pada dasarnya, kunci tertinggi pada area overflow tidak
akan berubah kecuali bila dilakukan penyisipan pada akhir berkas. Pada kejadian
tersebut, kunci tertinggi yang berada pada indeks track, akan berubah.
Pada gambar 8.2, rekaman overflow dialokasikan pada track 9 pada lokasi yang
konsekutif. Pada umumnya rekaman overflow tidak bersifat konsekutif. Sebuah daftar
akan menghubungkan ruang yang masih kosong dalam area overflow saat rekaman
disisipkan maupun dihapus. Selang beberapa waktu, daftar tentang ruang yang masih
kosong tersebut tidak akan berisi penyimpanan dengan lokasi yang konsekutif.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 31
Penunjuk yang berada pada overflow memiliki bentuk z-w, dengan z sebagai nomor
track serta w sebagai nomor rekaman.
B. PENYISIPAN REKAMAN
1. Menyisipkan rekaman dengan kunci 13 pada berkas gambar 8.2
Pertanyaan pertama yang harus dijawab adalah apakah rekaman tersebut
sudah ada dalam berkas, dan bila tidak dimanakah sebaiknya berkas tersebut
diletakkan? Langkah dimulai dari indeks silinder. Rekaman dengan kunci 13 harus
berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder satu adalah
250 (13 lebih kecil dari 250). Langkah selanjutnya adalah mencermati track indeks
untuk silinder 1. Kunci rekaman yang akan disisipkan dibandingkan dengan kunci
tertinggi yang berada pada indeks track 0 silinder 1. Karena kunci rekaman yang
akan disisipkan < dari kunci rekaman tertinggi yang berada pada track 1 silinder 1,
maka rekaman baru tersebut harus diletakkan pada track 1 silinder 1. Rekamanrekaman pada area primer dibaca satu per satu untuk memastikan bahwa
rekaman dengan kunci 13 belum ada dalam track 1 tersebut. Untuk menyiapkan
rekaman dengan kunci 13 pada posisi yang sesuai, maka semua rekaman yang
ada pada posisi tersebut perlu dipindahkan. Pada contoh ini, maka rekaman baru
akan menempati posisi rekaman 15, sementara rekaman 15 dipindahkan
menggantikan posisi rekaman 20, dan rekaman 20 dipindah menggantikan posisi
rekaman 22, sedang rekaman 22 dipindah menggantikan posisi rekman 25.
Kemana rekaman 25 akan dipindahkan?
Indeks track (untuk silinder = 1)
Nomor track
25
1
25
^
70
2
70
^
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
15 13
20 15
22 20
25 22
2
28
38
41
55
57
65
70
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
25
2
3
4
^
Gambar 8.3 Proses penyisipan rekaman 13
Rekaman 25 akan dipindah ke area overflow. Daftar ruang yang masih
kosong akan menunjuk pada track 9 rekaman nomor 1. Rekaman 25 dipindah ke
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 32
posisi tersebut dan pada penunjuk diberikan symbol ^. Dengan pemindahan
tersebut maka kunci tertinggi pada track 1 adalah 22 sehingga rekaman tertinggi
pada amsukan indeks track pasangan pertama harus berubah dari 25 menjadi 22,
dan penunjuk pada masukan indeks track pasangan kedua harus mengarah pada
track 9 rekaman nomor 1 (atau 9-1). Struktur berkas sesudah penyisipan adalah
sebagai berikut:
Indeks track (untuk silinder = 1)
Nomor track
22
1
25
9-1
70
2
70
^
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
2
28
38
41
55
57
65
70
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
2
25
3
4
^
Gambar 8.2 Struktur awal berkas sekuensial berindeks
2. Menyisipkan rekaman dengan kunci 27 pada berkas gambar 8.4
Rekaman dengan kunci 27 harus berada dalam silinder 1 mengingat
rekaman tertinggi dalam silinder 1 adalah 250 (27 lebih kecil dari 250). Setelah
mencermati track indek untuk silinder 1 dan membandingkan kunci rekaman yang
akan disimpan dengan kunci tertinggi yang berada pada indeks track 1 silinder 1,
ternyata 27 > 22 maka pembandingan dilanjutkan dengan track berikutnya, yaitu
track 2 silinder 1. Karena kunci rekaman yang akan disisipkan < dari kunci rekaman
tertinggi yang berada pada track 2 silinder 1. Rekaman-rekaman pada area primer
dibaca satu per satu untuk memastikan bahwa rekaman dengan kunci 27 belum
ada dalam track 2 tersebut. Untuk menyisipkan rekaman pada kunci 27 pada
posisi yang sesuai, semua rekaman yang ada sesudah posisi tersebut perlu
dipindahkan. Pada contoh kedua ini, semua rekaman harus dipindah untuk
memberi tempat pada rekaman yang baru (lihat gambar 8.5). rekaman dengan
kunci 70 akan dipindahkan ke overflow area. Sesuai informasi dari daftar ruang
yang masih kosong, makan rekaman tersebut akan diletakkan pada track 9
rekaman nomor 2, dan penunjuk akan berisi ^. Dengan pemindahan tersebut
maka kunci tertinggi pada track 2 adalah 65 sehingga rekaman tertinggi pada
masukan indeks track pasangan pertama harus berubah dari 70 menjadi 65, dan
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 33
penunjuk pada masukan indeks track pasangan kedua harus mengarah pada
track 9 rekaman nomor 2 (atau 9-2). Struktur berkas sesudah penyisipan
diperlihatkan pada gambar 8.6.
Indeks silinder
250
1-0
750
2-0
1500
…
3-0
Indeks track (untuk silinder = 1)
Menjadi 65
menjadi 9-2
Nomor track
22
1
25
9-1
70
2
70
^
85
3
85
^
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
27
28
38
41
55
2
28
38
41
55
57
65
70
3
73
75
77
79
80
83
85
57
65
Penyimpanan Overflow
1
9
2
25
3
^
4
^
Gambar 8.5 Proses penyisipan rekaman dengan kunci 27
Indeks silinder
250
1-0
750
2-0
1500
…
3-0
Indeks track (untuk silinder = 1)
Nomor track
22
1
25
9-1
65
2
70
9-2
85
3
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
2
27
28
38
41
55
57
65
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
2
25
^
3
70
4
^
Gambar 8.6 Struktur berkas sesudah rekaman dengan kunci 27 disisipkan
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 34
3. Menyisipkan rekaman dengan kunci 26 pada berkas gambar 8.6
Rekaman dengan kunci 26 harus berada dalam silinder 1 mengingat
rekaman tertinggi dalam silinder 1 adalah 250 (26 lebih kecil dari 250). Setelah
mencermati track indeks untuk silinder 1 dan membandingkan kunci rekaman
yang akan disisipkan dengan kunci tertinggi berada pada indeks track 1 silinder 1,
ternyata 26>22 maka pembandingan dilanjutkan pada track berikutnya, yaitu track
2 silinder 1. Karena kunci rekaman yang akan disisipkan < dari kunci rekaman
tertinggi yang berada pada track 2 silinder 1 (26<65), maka rekaman baru tersebut
harus diletakkan pada track 2 silinder 1. Rekaman-rekaman pada area primer
dibaca untuk memastikan bahwa rekaman dengan kunci 26 belum ada pada track
2 tersebut. Untuk menyisipkan rekaman dengan kunci 26 pada posisi yang sesuai,
maka semua rekaman yang ada sesudah posisi tersebut perlu dipindahkan. Pada
contoh ketiga ini, semua rekaman harus dipindah untuk member tempat pada
rekaman yang baru (lihat gambar 8.7). Rekaman dengan kunci 65 akan
dipindahkan ke overflow area. Sesuai informasi dari daftar ruang yang masih
kosong, maka rekaman tersebut akan diletakkan pada track 9 rekaman nomor 3.
Bagaimana penunjuknya? Karena rekaman dengan kunci 65 merupakan rekaman
kedua yang dipindahkan ke area overflow dari track 2, maka penunjuk akan
mengarah pada rekaman yang dipindahkan sebelumnya, yaitu rekaman 70 yang
berada pada track 9 rekaman nomor 2, atau penunjuk akan berisi 9-2. Dengan
pemindahan tersebut, maka kunci tertinggi pada track 2 bukan lagi 65, melainkan
57. Jadi, rekaman tertinggi pada masukan indeks track pasangan pertama harus
berubah dari 65 menjadi 67, dan penunjuk pada masukan indeks track pasangan
kedua harus mengarah pada track 9 rekaman nomor 3 (atau 9-3). Struktur berkas
sesudah penyisipan diperlihatkan pada gambar 8.8.
Indeks silinder
250
1-0
750
2-0
1500
…
3-0
Indeks track (untuk silinder = 1)
Menjadi 57
menjadi 9-3
Nomor track
22
1
25
9-1
65
2
70
9-2
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
26
27
28
38
41
2
27
28
38
41
55
57
65
3
73
75
77
79
80
83
85
Dinny Wahyu Widarti, S.Kom
20
55
22
57
Sistem Berkas - 35
Penyimpanan Overflow
1
9
65
2
25
^
9-2
3
70
4
^
Gambar 8.7 Proses penyisipan rekaman dengan kunci 26
Indeks silinder
250
1-0
750
2-0
1500
…
3-0
Indeks track (untuk silinder = 1)
Nomor track
22
1
25
9-1
57
2
70
9-3
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
2
26
27
28
38
41
55
57
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
2
25
^
3
70
^
4
65
9-2
Gambar 8.8 Struktur berkas sesudah rekaman dengan kunci 26 disisipkan
4. Menyisipkan rekaman dengan kunci 58 pada berkas gambar 8.8
Rekaman dengan kunci 58 harus berada dalam silinder 1 mengingat
rekaman tertinggi dalam silinder 1 adalah 250 (58 lebih kecil dari 250). Setelah
mencermati track indeks untuk silinder 1 dan membandingkan kunci rekaman yang
akan disisipakan dengan kunci tertinggi yang berada padan indeks track 1 silinder
1, ternyata 58>22 maka pembandingan dilanjutkan pada track berikutnya, yaitu
track 2 silinder 1. Meskipun rekaman baru tersebut > dari kunci rekaman tertinggi
yang berada pada area primer track 2 silinder 1 (58>57), tetapi rekaman baru
tersebut < disbanding rekaman tertinggi yang berada pada area overflow. Dengan
demikian rekaman baru tersebut harus diletakkan pada track 2 silinder 1. Rekaman
tersebut tidak menempati area primer, tetapi pada overflow area, tepatnya sector 9
rekaman nomor 4. Penunjuk mengarah pada rekaman sebelumnya yang berasal
dari track yang sama (baca track 2), yaitu track 9 rekaman 3 atau 9-3. Rekaman
baru tersebut tidak mengubah kunci tertinggi pada area primer sehingga masukan
rekaman tertinggi pada pasangan pertama indeks track untuk track 2 silinder 1
tidak mengalami perubahan (tetap 65), sementara untuk area overflow adalah 70.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 36
Penunjuk pada pasangan kedua mengarah pada rekaman pertama yang harus
didatangi saat meninjau area overflow, yaitu 9-4 (lihat gambar 8.9).
Indeks silinder
250
1-0
750
2-0
1500
…
3-0
Indeks track (untuk silinder = 1)
menjadi 9-4
Nomor track
22
1
25
9-1
57
2
70
9-3
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
2
26
27
28
38
41
55
57
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
58
2
25
^
3
70
^
9-3
4
65
9-2
Gambar 8.9 Proses penyisipan rekaman dengan kunci 58
Pembahasan
Membaca berkas indeks secara sekuensial dilakukan dengan mengikuti
arahan yang diperoleh dari indeks untuk menentukan lokasi dari track satu ke track
berikutnya yang berada di area primer dan juga area overflow. Pembacaan tidak
dapat dilakukan dari rekaman pertama dari berkas dan diproses sesuai keinginan
sama seperti pembacaan pada berkas dengan organisasi sekuansial. Alasannya,
mungkin terdapat track yang tiba-tiba menyisip yang berisi informasi yang berada
di area overflow, atau informasi lain, ada kemungkinan dari berkas lain.
Indeks juga dibutuhkan untuk berpindah dari satu silinder ke silinder lain
karena silindar bisa saja secara fisik tidak berurutan. Dengan kata lain, bagaimana
indeks melakukan pengurutan terhadap berkas untuk pengolahan secara
sekuensial sangat berbeda terhadap berkas dengan organisasi sekuensial.
Untuk membaca satu rekaman secara langsung, proses yang dilakukan
sama seperti akan melakukan penyisipan. Pertama dilakukan pembacaan silinder
indeks untuk menentukan lokasi silinder yang benar tempat rekaman yang akan
dibaca tersebut disimpan, kalau memang rekaman tersebut ada di dalam berkas.
Masukan dalam indeks silinder member informasi tentang track indeks yang benar
tempat rekaman berada. Indeks track memiliki informasi tentang kunci rekaman
tertinggi yang berada pada area primer dan kunci rekaman tertinggi pada area
overflow. Bila kunci rekaman yang dicari lebih kecil dari kunci tertinggi dalam area
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 37
primer, maka area primer di baca rekaman demi rekaman untuk menemukan
rekaman yang dicari. Jika kunci rekaman yang dicari lebih besar dari kunci tertinggi
pada area primer, tetapi lebih kecil disbanding kunci tertinggi pada area overflow,
maka track yang berisi rekaman overflow dikunjungi, dimulai dari informasi yang
berada pada pasangan kedua track indeks yang berkaitan dengan lokasi track dan
‚rekaman ke‛ yang harus pertama dikunjungi. Bila kunci rekaman tersebut tidak
cocok dengan kunci rekaman yang dicari, maka dilanjutkan dengan rekamanrekaman berikut sesuai dengan arahan indeks.
Dari uraian tersebut, disimpulkan bahwa untuk menemukan sebuah
rekaman, tidak perlu dilakukan pembacaan pada kedua area yaitu primer dan
overflow, tetapi cukup salah satu diantaranya, bergantung apakah kunci rekaman
yang di cari lebih besar atau lebih kecil disbanding kunci rekaman tertinggi yang
berada pada sebuah track.
Dalam berkas yang berindeks, untuk pencarian yang berhasil maupun
pencarian yang gagal, diperlukan waktu yang sama. Hal ini karena berkas ISAM
menyimpan rekaman secara sekuensial baik pada area primer maupun overflow.
Jadi, jika pada suatu saat rekaman yang dibaca lebih besar dari rekaman yang
dicari, maka pencarian bisa dihentikan dengan kesimpulan ‚rekaman tidak
ditemukan‛ tanpa harus membaca keseluruhan rekaman.
C. PENGHAPUSAN REKAMAN
Penghapusan
rekaman
pada
berkas
sekuensial
berindeks
dilakukan
bergantung apakah rekaman tersebut berada pada area primer ataukah pada area
overflow. Untuk rekaman yang berada pada area primer (missal menghapus 15),
penghapusan dilakukan secara langsung dan menggantinya dengan symbol
tombstone. Bila rekaman berada pada area overflow, maka penunjuk harus diatur
kembali sehingga rekaman sebelum rekaman yang dihapus mengarah pada rekaman
sesudah rekaman yang dihapus (missal menghapus 65).
Nomor track
22
1
25
9-1
57
2
70
9-4
85
3
85
^
0
Penyimpanan Primer
1
7
9
12
13
15
20
22
2
26
27
28
38
41
55
57
3
73
75
77
79
80
83
85
Penyimpanan Overflow
1
9
2
25
^
3
70
^
4
65
9-2
58
9-3
Gambar 8.10 Proses penghapusan rekaman
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 38
Sesi 11
Materi 9
MANAJEMEN KOLISI
Salah satu fungsi hash adalah akan mendistribusikan data secara merata ke
dalam berkas. Jika tujuan tersebut tidak tercapai, salah satu strategi yang bisa diambil
adalah mengkombinasikan beberapa fungsi sederhana dalam satu aplikasi.
Fungsi hash menghasilkan banyak kolisi atau sinonim dikatakan memiliki
kluster primer. Makin sedikit jumlah kolisi, makin baik fungsi hashing tersebut karena
makin sedikit waktu yang diperlukan rekaman yang diinginkan, dan juga akan
mempertahankan probe atau akses terhadap penyimpan agar mendekati satu.
Meminimalkan jumlah probe pembacaan rekaman merupakan isu yang sangat
penting mengingat berbagai aplikasi komersial pada umumnya memiliki volume data
yang sangat besar sehingga data tersebut harus disimpan di dalam penyimpanan luar
(auxiliary). Beberapa cara yang dapat ditempuh untuk mereduksi kolisi adalah
mengganti fungsi hashing, atau dengan mereduksi factor-packing. Factor-packing
suatu berkas adalah perbandingan (atau rasio) antara jumlah rekaman yang disimpan
dalam berkas dengan kapasitas berkas, atau dapat dinyatakan sebagai berikut:
Factor-packing (FP) = Jumlah rekaman yang disimpan
Jumlah total lokasi penyimpanan
Factor-packing
(sinonim
dengan
densitas-packing
atau
factor-loading)
mengukur utilitasi penyimpanan. Factor-packing berbanding lurus dengan jumlah
kolisi. Jika nilai packing-factor meningkat, maka kolisi akan lebih sering terjadi .
mengurangi nilai factor-packing dengan tujuan untuk mengurangi jumlah kolisi ,
membawa pada konsekuensi diperlukannya ruang yang lebih luas untuk menyimpan
jumlah rekaman yang sama. Fenomena pemilihan factor-packing adalah contoh dari
suatu trade-off waktu dan ruang. Jika factor-packing diperkecil, maka diperlukan ruang
yang lebih luas (dan ini mahal), tetapi dengan demikian kemungkinan untuk kolisi
menjadi berkurang atau dengan kata lain meningkatkan kinerja. Kolisi pada umumnya
akan naik secara cepat bila factor-packing melebihi 90%. Hubungan antara jumlah
kolisi dengan tempat penyimpanan dapat diilustrasikan dengan grafik berikut:
Kolusi
Penyimpanan
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 39
Mengubah fungsi hashing atau mengubah factor-packing akan dapat
mengurangi jumlah kolusi. Akan tetapi, pada umumnya tidak akan mengeliminasi
kolusi tersebut. Oleh karena itu, diperlukan suatu posedur untuk menempatkan
sinonimnya ke posisi lain bila kolisi memang benar terjadi. Yang menjadi tujuan utama
metoda resolusi kolusi adalah menempatkan rekaman sinonim pada
suatu lokasi
yang membutuhkan probe tambahan yang minimum dari home-address rekaman
tersebut. Perlu diingat bahwa probe adalah akses ke lokasi yang berbeda.
Salah satu penyelesaian yang dapat dilakukan adalah memberikan penunjuk
pada lokasi rekaman sinonim. Bila terjadi sinonim jamak pada satu home-address
tertentu, akan dibentuk rantai rekaman sinonim. Sebagai contoh adalah R1, R2, dan R3
sinonim dengan home-address r maka rantai sinonim akan berbentuk seperti
dilihatkan pada gambar 9.1. Medan penghubung lokasi r menunjuk pada lokasi s di
mana tersimpan sinonim pertama, yaitu R2. Simbol ^ atau penunjuk nol pada medan
penghubung t menunjukkan akhir dari rantai sinonim.
Medan
Rekaman
Penghubung
r
R1
s
s
R2
t
t
R3
^
Gambar 9.1 Rantai sinonim
A. Coalesed-Hashing
Coalesed-Hashing adalah metode resolusi yang menggunakan penunjuk untuk
menghubungkan elemen-elemen dari sebuah rantai sinonim. Sebagai ilustrasi,
perhatikan gambar 9.1 yang memperlihatkan rekamaa-rekaman R1, R2, dan R3 yang
semuanya memiliki home-address r. R1 disisipkan pertama dan memperoleh lokasi
sebagai home-addressnya yaitu r. Pada saat menyisipkan R2, terjadilah kolusi karena
hasil fungsi dari R2 juga r. Hal tersebut mengisyaratkan agar R2 diletakkan pada lokasi
lain karena r sudah ditempati R1. Pada saat tersebut tersedia ruang di s, maka R2 akan
disisipkan pada lokasi tersebut dan penunjuk pada medan penguhubung r diatur agar
menunjuk ke s. Kolisi terjadi kembali pada saat R3 akan disisipkan. Rekaman R3
kemudian disisipkan pada ruang yang masih tersedia, yaitu t, dan penunjuk di medan
penghubung s diarahkan ke t, sementara medan penghubung t memiliki symbol ^
yang berarti akhir dari rantai sinonim akan dibaca sampai rekaman ditemukan atau
sampai terbaca akhir mata rantai sinonim.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 40
Coalesced-hashing (kolisi) terjadi bila terdapat usaha untuk menyisipkan
sebuah rekaman dengan home-address yang sudah di okupasi oleh rekaman dari
rantai yang memiliki home-address yang berbeda. Misal terdapat rekaman R4 yang
hasil hashnya adalah s. Kolisi akan terjadi pada saat diinginkan untuk menyisipkan R4
pada alamat s ke dalam tabel seperti gambar 9.1, yang terjadi adalah dua rantai
sinonim dengan rekaman-rekaman yang memiliki home-address berbeda mengalami
kolisi.
Algoritma untuk coalesced-hashing adalah sebagai berikut:
I.
Lakukan hashing pada semua kunci rekaman yang akan disisipkan untuk
mendapatkan home-address atau calon-address yang mungkin akan ditempati
oleh rekaman-rekaman tersebut.
II.
Jika home-address kosong, sisipkan rekaman pada lokasi tersebut, jika
rekaman ternyata kembar, akhiri program dengan pesan ‚Rekaman Kembar‛,
jika tidak:
a) Cari lokasi terakhir rantai-sinonim dengan mengikuti penunjuk pada medanpenghubung sampai menemukan symbol ^ yang menandakan akhir dari
rantai.
b) Cari lokasi paling bawah dalam berkas (atau memiliki alamat paling besar).
Jika tidak ditemukan, akhiri program dengan pesan ‚Berkas Penuh‛.
c) Sisipkan rekaman ke dalam lokasi yang kosong sudah teridentifikasi dan
atur medan-penguhubung rekaman terakhir dalam rantai-sinonim agar
menunjuk ke lokasi rekaman yang baru saja disisipkan.
B. LICH dan EISCH
Berbagai usaha telah dilakukan untuk mengurangi kolisi pada rantai sinonim
sehingga mengurangi probe pembacaan dan akhirnya meningkatkan kinerja.
Beberapa varian dari coalesced-hashing dapat diklasifikasikan ke dalam tiga cara:
Mengorganisasi berkas (dengan atau tanpa overflow)
Menghubungkan item yang terkolisi kedalam rantai
Memilih lokasi yang belum ada penghuinya
Kolisi mungkin dapat direduksi dengan memodifikasi organisasi berkas. Cara
pertama adalah dengan memisahkan antara area untuk data prima dengan area
untuk data overflow, sehingga memiliki bentuk sebagai berikut:
Primer
Overflow
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 41
Area primer adalah ruang alamat yang cocok dengan fungsi hash. Overflow
(atau Cellar) adalah area yang hanya berisi rekaman-rekaman yang sinonim. Faktor
alamat adalah perbandingan antara area primer dengan ukuran total berkas.
Faktor alamat =
Area Primer
Ukuran total berkas
Untuk ukuran berkas yang tetap, jika faktor alamat mengecil maka ukuran cellar
akan meningkat, yang berarti mereduksi kolisi. Akan tetapi, karena area primer menjadi
mengecil maka jumlah kolisi akan membesar. Kolisi yang lebih banyak membawa
konsekuensi pada diperlukannya probe pembacaan yang lebih besar.
Algoritma yang diimplementasikan pada coalesced-hashing sebagaimana
dilakukan pada contoh terdahulu disebut ‚Late Insertion Standard Coalesced Hashing‛
atau LISCH, karena rekaman yang baru disisipkan pada akhir rantai sinonim. Kata
‚standard‛ memiliki arti ‚tidak adanya cellar‛. Varian dari algoritma tersebut adalah
LICH atau ‚Late Insertion Standard Coalesced Hashing‛.
C. Progressive Overflow
Kerugian
utama
penggunaan
coalesced-hashing
adalah
diperlukannya
penyimpanan tambahan untuk medan penghubung. Bila penyimpanan tambahan
tersebut tidak tersedia, maka penghubung yang sifatnya fisik tidak tersedia, sehingga
perlu dipertimbangkan teknik resolusi kolisi yang menggunakan konversi untuk
menentukan kemana selanjutnya rekaman harus dicari. Salah satu konversi yang
sederhana adalah penggunaan overflow yang progresif atau probing secara linier.
Sesuai namanya bila lokasi yang akan ditempati telah terisi, maka lokasi selanjutnya
dilihat apakah masih belum terisi. Secara progresif lokasi selanjutnya di overflow.
Pertanyaanya adalah, apa yang akan terjadi bila overflow dilakukan sampai pada
alamat tertinggi, atau akhir berkas?
Pertimbangan berkas memiliki struktur yang melingkar, dengan lokasi pertama
brada tepat sesudah lokasi terakhir. Pencarian dilanjutkan sampai ditemukan slot yang
kosong atau sampai ditemukan home-address rekaman untuk kedua-kalinya.
Menandakan bahwa berkas telah penuh. Untuk pembacaan kembali, dilakukan proses
yang sama. Dan bagaimana dengan pencarian yang tidak berhasil? Pencarian harus
terus dilakukan sampai dijumpai slot kosong atau alamat pencarian yang pertama.
Jelas bahwa algoritma untuk pencarian yang tidak berhasil memiliki kinerja yang tidak
bagus, tetapi algoritma tersebut sangat sederhana.
D. Penggunaan Buckets
Dalam diskusi mengenai prosedur resolusi kolisi, diasumsikan bahwa hanya
sebuah rekaman saja yang dapat disimpan pada sebuah alamat penyimpanan.
Jumlah pengaksesan dapat direduksi dengan meletakkan lebih dari satu rekaman
pada satu alamat penyimpanan. Kemungkinan tersebut dapat direalisir bila digunakan
sistem ‚buckets‛ (disebut juga ‚blok‛ atau ‚halaman‛). Jadi, bucket dapat didefinisikan
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 42
sebagian unit penyimpanan yang berada di antara rekaman dengan berkas, juga
sebuah unit dengan informasi yang dapat di akses dan dipindahkan antar peralatan
penyimpanan. Jumlah rekaman yang dapat diletakkan pada satu bucket disebut
factor-blocking. Jika factor-blocking meningkat, jumlah akses terhadap penyimpanan
akan mengecil karena beberapa rekaman yang berkolisi dapat disimpan dalam satu
alamat yang sama.
E. Pembagian Linier
Resolusi kolisi dengan teknik pembagian-linier
merupakan varian dari
progressive-overflow. Kalau ada progressive-overflow inkremen untuk menuju ke lokasi
berikutnya adalah konstan (1=satu), maka pada pembagian-linier digunakan inkremen
yang bersifat variable. Tujuan inkremen yang variable adalah mereduksi pngklusteran
sekunder yang terjadi pada progressive-overflow sehingga jumlah probe untuk
pembacaan kembali juga berkurang.
Pengklusteran sekunder akan terjadi pada skema hashing dengan fungsi
inkremen yang berupa konstanta atau yang hanya bergantung pada home-address
rekaman. Dari semua metoda hashing yang telah dibahas, hanya progressive-overflow
yang memiliki kemungkinan terjadinya pengklusteran-skunder. Pada pembagian-linier,
inkremen merupakan fungsi dari kunci yang akan disisipkan. Fungsi tersebut dapat
juga disebut fungsi hashing lain karena fungsi tersebut digunakan untuk mengkonversi
kunci menjadi sebuah inkremen. Untuk alasan tersebut, maka pembagian-linier dapat
dikelompokkan sebagai metoda resolusi kolisi dengan hashing-ganda, mengingat
pertama dilakukan hash untuk menentukan home-address (menggunakan fungsi H1),
dan kedua untuk mendapatkan inkremen (menggunakan fungsi H2).
Terdapat dua alternatif bentuk H2, yaitu:
H2 = Pembagian (kunci/P) modulus P atau
H2’ = (kunci modulus (P-2) + 1
dengan P merupakan bilangan primer dari ukuran berkas. Kedua fungsi hashing akan
menghasilka variable inkremen dalam cakupan ruang alamat. Pertanyaan yang
muncul adalah fungsi hashing yang mana yang sebaiknya digunakan? Misalnya fungsi
hashing akan dieksekusi dengan menggunakan mesin, maka H2 memerlukan dua
buah operasi pembagian: pertama dalam pembagian, dan kedua dalam mencari
modusnya. Seperti diketahui, operasi pembagian merupakan operasi yang relatif
lambat. Sementara itu H2’ hanya memerlukan satu operasi pembagian, yaitu dalam
mencari modulusnya. Jadi, untuk praktisnya H2’-lah yang lebih baik untuk digunakan.
Akan tetapi, perlu diingat bahwa persamaan seperti H2’ sulit diselesaikan oleh
manusia. Dua hal yang saling bertentangan tersebut merupakan gambaran mengenai
perbedaan kemampuan yang dimiliki baik oleh manusia maupun komputer.
Untuk selanjutnya, dalam contoh-contoh akan digunakan fungsi hash H2.
Home-address untuk rekaman akan dihitung berdasar sisa hasil pembagian antara
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 43
kunci dengan ukuran berkas, sedangkan inkremen akan dihitung berdasar hasil
pembagian dari operasi yang sama.
Tidak seperti rantai coalesced, sinonim pada pembagian-linier umumnya tidak
berada pada rantai probe yang sama. Jika R1, R2, dan R3 adalah sinonim pad homeaddress h seperti pada gambar di bawa ini, R2 dan R3 biasanya memiliki inkremen
yang berbeda mengingat inkremen merupakan fungsi kunci yang akan disisipkan.
Karena inkremen yang berbeda, maka pengklusteran sekunder dapat direduksi.
R1
R2
Fungsi (R1)
Fungsi (R3)
R3
Algoritma untuk metoda resolusi kolisi dengan pembagian-linier adalah sebagai
berikut:
I.
Hash kunci yang akan disisipkan ke dalam berkas untuk memperoleh homeaddress untuk menyimpan rekaman.
II.
Jika home-address kosong, sisipkan rekaman ke dalam lokasi tersebut, jika
tidak maka:
a. Tentukan inkremen dengan menghitung hasil bagi kunci dengan ukuran
berkas. Jika hasilnya nol, maka inkremennya = 1 (satu).
b. Beri harga awal pencacah untuk perhitungan lokasi yang akan dicari
dengan 1 (satu).
c. Selama jumlah lokasi yang dicari lebih kecil dari ukuran berkas, maka:
a. Hitung alamat yang akan dicari berikutnya dengan menambahkan
inkremen terhadap alamat terakhir dan kemudian cari modulusnya
terhadap ukuran berkas.
b. Jika alamat tersebut tidak ada yang menempati, maka sisipkan rekaman
serta akhiri penyisipan dengan sukses.
c. Jika rekaman yang menempati memiliki kunci yang sama dengan yang
akan disisipkan, akhiri proses dengan pesan ‚rekaman dobel‛.
d. Tambahkan 1 pada pencacah pencarian lokasi.
d. Akhiri proses dengan pesan ‚Berkas penuh‛
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 44
Algoritma tersebut mensyaratkan ukuran berkas berupa bilangan prima untuk
menghindari terjadinya siklus pencarian terhadap rekaman berulang-ulang dan
kemudian memberikan indikasi bahwa rekaman sudah penuh padahal masih terdapat
ruang yang belum ditempati.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 45
Sesi 12
Materi 10
PENGURUTAN REKAMAN
Beberapa metode sorting yang sering digunakan adalah:
1. Pengurutan gelembung (Bubble sort)
2. Pengurutan cepat (Quick sort)
3. Pengurutan heap (Heap sort)
A. PENGURUTAN GELEMBUNG (BUBBLE SORT)
Salah satu prosedur pengurutan paling sederhana adalah pengurutan
gelembung. Disebut pengurutan gelembung karena masing-masing kunci akan
dengan lambat meggelembung ke posisi yang tepat.
Salah satu karakter dari pengurutan ini adalah sangat mudah untuk dipahami
dan diprogramkan. Akan tetapi dari semua prosedur pengurutan yang akan dibahas,
prosedur pengurutan gelembung merupakan prosedur yang paling tidak efisien.
Pada pembahasan berikut, x merupakan suatu array interger di mana n
rekaman pertamanya akan diurutkan sehingga x [i] ≤ x [j] untuk 1 ≤ i ≤ n. Gagasan
dasar pengurutan gelembung adalah langkah-langkah melewatkan satu rekaman
melalui rekaman-rekaman lain di dalam berkas. Masing-masing langkah mengandung
proses untuk membandingkan rekaman pendahulunya, atau x [i] dengan x [i-1] dan
mempertukarkan kedua rekaman bila urutan mereka tidak tepat.
Perhatikan contoh berikut :
15
31
28
43
65
35
78
20
19
X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8] X[9]
Pada putaran pertama dilakukan pembandingan sebagai berikut:
X[1] dengan x[2] (15 dengan 31) tidak ada pertukaran
X[2] dengan x[3] (31 dengan 28) pertukaran
X[3] dengan x[4] (31 dengan 43) tidak ada pertukaran
X[4] dengan x[5] (43 dengan 65) tidak ada pertukaran
X[5] dengan x[6] (65 dengan 35) pertukaran
X[6] dengan x[7] (65 dengan 78) tidak ada pertukaran
X[7] dengan x[8] (78 dengan 20) pertukaran
X[8] dengan x[9] (78 dengan 19) pertukaran
Jadi, sesudah putaran pertama hasilnya adalah sebagai berikut:
15
28
31
43
Dinny Wahyu Widarti, S.Kom
35
65
20
19
78
Sistem Berkas - 46
Perhatikan bahwa rekaman tertinggi yaitu dengan kunci 78 sudah berada pada
posisi yang tepat. Pada umumnya diperlukan sebanyak i putaran agar x[n-i+1] sampai
pada posisi yang tepat.
Sesudah putaran kedua, berkas akan mempunyai bentuk:
15
28
31
34
43
20
19
65
78
Perhatikan bahwa rekaman kedua tertinggi yaitu dengan kunci 65 sudah berada
pada posisi yang tepat. Karena setiap satu putaran menempatkan satu elemen baru ke
dalam posisi yang tepat, maka sebuah berkas dengan n rekaman membutuhkan tidak
lebih dari n-1 putaran untuk menghasilkan berkas yang urut.
Putaran ketiga dan seterusnya adalah sebagai berikut:
15
28
31
34
20
19
43
65
78
15
28
31
20
19
34
43
65
78
15
28
20
19
31
34
43
65
78
15
20
19
28
31
34
43
65
78
15
19
20
28
31
34
43
65
78
B. PENGURUTAN CEPAT (QUICK SORT)
Pengurutan cepat memproses berkas dengan membagi rekaman-rekaman
menjadi beberapa kelompok kemudian mengurutkannya. Bila sebuah kelompok hanya
berisi satu item, maka proses pengurutan kelompok tersebut dihentikan. Bila proses
pengurutan untuk semua kelompok sudah selesai, maka keseluruhan rekaman dalam
berkas sudah dalam keadaan urut.
Pengurutan cepat mengurutkan rekaman dalam berkas dengan membuat
partisi antar rekaman menjadi beberapa kelompok berdasar hasil perbandingan
terhadap anggota berkas tertentu. Proses tersebut diulang sampai semua kelompok
sudah dalam keadaan urut.
Berkas (atau kelompok) dibagi berdasarkan perbandingan dengan rekaman
pertama dari berkas. Semua rekaman dengan kunci lebih kecil dari kunci pada
rekaman pertama diletakkan disebelah kiri rekaman pembanding, sedangkan rekaman
dengan kunci yang lebih besar diletakkan pada bagian sebelah kanan rekaman
pembanding.
Sebelum pemisahan
pertama
Sesudah pemisahan
pertama
< dari pertama
Dinny Wahyu Widarti, S.Kom
> dari pertama
Sistem Berkas - 47
Algoritma pengurutan cepat adalah sebagai berikut:
1. Jika terdapat banyak rekaman yang harus diurutkan, pisahkan rekamanrekaman tersebut dalam tiga kelompok (yaitu rekaman-rekaman dengan kunci
rekaman lebih besar dari kunci rekaman pertama) dengan menggunakan
prosedur ‚pertukaran_cepat‛, yaitu :
a. Urutkan cepat rekaman-rekaman data yang berada dalam kelompok
pertama menjadi tiga kelompok
b. Urutkan cepat rekaman-rekaman data yang berada dalam kelompok ketiga
menjadi tiga kelompok
2. Jika tidak, maka proses berakhir
C. PENGURUTAN HEAP (HEAP SORT)
Pengurutan
heap
merupakan
algoritma
yang
menarik
karena
sangat
sederhana. Nama heap diambil dari struktur data yang mendasari pengurutan
tersebut, yaitu struktur heap.
Pengurutan heap memanfaatkan keunggulan sifat-sifat yang dimiliki oleh pohon
biner lengkap, yaitu:
Heap biner atau heap, merupakan pohon biner lengkap dengan kunci yang disimpan
dalam masing-masing titik memiliki nilai lebih kecil atau sama dengan nilai kunci dari
masing-masing anaknya.
Definisi tersebut memberikan indikasi bahwa akar akan berisi rekaman dengan
kunci tertinggi.
Contoh Heap
83
69
69
13
32
56
8
21
12
34
2
14
2
26
2
Contoh bukan heap:
83
69
69
2
32
56
8
72
34
12
14
20
2
2
13
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 48
Sesi 13
Materi 11
SORT DAN MERGE FILE
Dalam sistem penyortiran dikenal 2 motode, yaitu:
1. Metode Sort Internal
Semua record yang akan diproses dimuat kedalam memori komputer lalu
diproses sort (sortir)
2. Metode Sort Eksternal
Record-record dip roses tidak semuanya dapat dimuat ke dalam memori
komputer, karena keterbatasan memori komputer
Contoh:
Sebuah file berisi 2000 record harus disortir ke dalam memori yang hanya dapat
menampung 5000 record sekaligus. Untuk itu digunakan metode sort eksternal.
Langkah-langkah penyortiran ini adalah:
1. Record-record dibagi ke dalam beberapa file agar dapat ditampung sekaligus di
memori komputer, lalu masing-masing bagian di sortir internal. Bagian-bagian
file yang telah tersortir ini disebut sorted sublist. Maka didapat:
Sorted sublist 1 (record 1-1000) dan
Sorted sublist 2 (record 1001-2000)
2. Setelah itu kedua sorted sublist ini (RUN) digabung (merge), sehingga didapat
berkas gabungan (merge file) yang record-recordnya telah disortir.
Merge List
Sorted sublist 1
(record 1-1000)
MERGE
(Sorted list of
record 1-2000)
Sorted sublist 2
(record 1001-2000)
Kita simpulkan langkah-langkah metode sort eksternal ini adalah:
Internal sort, dimana file dibagi menjadi beberapa bagian file kemudian di sortir.
Merge, dimana bagian-bagian file ini (sorted sublist) digabung menjadi satu
atau lebih file gabungan. File-file gabungan ini kemudian digabung lagi sampai
akhirnya didapatkan sebuah file gabungan yang berisi semua record-record
yang telah tersortir.
Output, dimana menyalin file gabungan yang telah disortir kemudian storage
terakhir.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 49
Faktor-faktor yang mempengaruhi motode sort eksternal:
Jumlah record yang akan disortir
Jumlah storage yang digunakan
Ukuran record (panjang record)
Kapasitas internal memori
Distribusi nilai key dalam input file
Teknik sort/merge file ini berbeda satu dengan lainnya dalam hal:
Metode sort internal yang digunakan
Jumlah main memori yang digunakan untuk sort internal
Distribusi dari sorted sublist di secondary storge menjadi satu atau lebih file
gabungan dalam satu langkah gabungan (merge pass)
A. NATURAL MERGE
Merge yang menangani dua input file sekaligus disebut dua way natural merge,
merge yang menangani M input file sekaligus disebut M way natural merge. M
menunjuk derajat merge. M way natural merge dapat didefinisikan sebagai merge
dengan M input file dan hanya satu output file.
Contoh, sebuah file yang terdiri dari 6000 record hendak disortir ke dalam
memori komputer yang kapasitasnya 1000 record. Pada contoh ini, sebagai eksternal
storage digunakan tiga tape. Tape satu berisi tiga sorted sublist yaitu record 1-1000,
record 2001-3000 dan record 4001-5000. Sedangkan tape 2 berisi tiga sorted sublist
yang terdiri dari record 1001-2000, record 3001-4000 dan record 5001-6000. Dengan 2
way natural merge, dimana dua input file sekaligus digabung menjadi sebuah output
file di tape tiga.
Record 1-1000
Menjadi record 1-2000
Record 1001-2000
Record 2001-3000
Menjadi record 2001-4000
Record 3001-4000
Record 4001-5000
Record 5001-6000
Menjadi record 4001-6000
Langkah selanjutnya, 1 dari 3 file digabung (record 1 – 2000) pada tape 3 ini disalin ke
tape 1. Pengerjaan seterusnya dapat dilihat pada gambar dibawah ini. Hasil akhirnya
adalah sebuah file gabungan berisi 6000 record yang telah terseortir di tape 3.
Tahap Pengurutan
Internal
6 pengurutan
subfile @ 1000
record
6000 record
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 50
2 way merge. Diasumsikan 2 input file dan 1 output file
1. Pengurutan terdistribusi terhadap 2 file (bisa diselesaikan dalam konjungsi
dengan tahap pengurutan internal.
2. Tahap Penggabungan/Merge 1
Record 1-1000;
Record 2001-3000;
Record 4001-5000
1
Record 1001-2000;
Record 3001-4000;
Record 5001-6000
2
Tahap
penggabungan
1
3
Record 1-2000;
Record 2001-4000;
Record 4001-6000
3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1
4. Tahap penggabungan kedua
Record 1-2000
1
Tahap
penggabungan
2
2
Record 1-6000
Record 2001-4000;
Record 4001-6000
3
B. BALANCED MERGE
Keperluan penggunaan tape pada natural merge dapat dikurangi dengan
menggunakan balanced merge. Pada balanced merge, tidak ada lagi langkah
pendistribusian hasil merge ke dalam beberapa tape. Berlainan dengan natural merge,
balanced merge pada awalnya ada keseimbangan antara input file dan output file,
walaupun pada akhirnya tidak ada lagi keseimbangan antara input dan output file.
Seperti halnya natural merge, balance merge juga ada beberapa cara yaitu 2
way balance merge, 3 way balance merge, dan M way balance merge. 2 way balance
merge berarti merge dengan 2 input file sekaligus dan hasilnya 2 output file. M way
balance merge berarti M input file dengan M output file
Tahap Pengurutan
Internal
6 pengurutan
subfile @ 1000
record
6000 record
2 way merge. Diasumsikan 2 input file dan 1 output file
1. Pengurutan terdistribusi terhadap 2 file (bisa diselesaikan dalam konjungsi
dengan tahap pengurutan internal.
2. Tahap Penggabungan/Merge 1
1
2
Record 1-1000;
Record 2001-3000;
Record 4001-5000
Record 1001-2000;
Record 3001-4000;
Record 5001-6000
Dinny Wahyu Widarti, S.Kom
Tahap
penggabungan
1
3
4
Record 1-2000
Record 2001-4000;
Record 4001-6000
Sistem Berkas - 51
3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1
4. Tahap penggabungan kedua
Record 1-2000
3
Tahap
penggabungan
2
1
Record 1-6000
Record 2001-4000;
Record 4001-6000
4
C. POLYPHASE MERGE
Kita telah lihat bahwa M way balance merge menggunakan 2 M file (M input file
dan M output file). Karena yang digunakan setiap saat hanya M file sebagai input dan
direkam ke sebuah file maka ada M-1 file yang nganggur (idle). Untuk itulah perbaikan
dari kelemahan ini diambil oleh poplyphase merge. Pada M way polyphase merge
digunakan 2M-1 input file dengan 1 output file sekaligus.
Tahap Pengurutan
Internal
6000 record
1
Run 1; Run 6; Run 7; Run 10; Run 11; Run 12; Run 13
2
Run 2; Run 4; Run 14; Run 15; Run 16; Run 17
3
Run 3; Run 5; Run 8; Run 9
Penggabungan tahap 1:
7 Run
1
6 Run
2
4 Run
3
Penggabungan
tahap 1
4
4 Run
3
2 Run
2
1 Run
Penggabungan tahap 2:
2 Run
2
3 Run
1
4 Run
4
Penggabungan
tahap 2
Penggabungan tahap 3:
1 Run
1
2 Run
4
2 Run
3
Dinny Wahyu Widarti, S.Kom
Penggabungan
tahap 3
Sistem Berkas - 52
Penggabungan tahap 4:
1 Run
2
1 Run
3
1 Run
4
Penggabungan
tahap 4
1
1 Run
D. CASCADE MERGE
Jenis lain dari unbalanced merge yang berusaha mengurangi penyalinan dan
pembacaan record-record disebut cascade merge. Cascade merge dengan derajat M
menggunakan input file 2M-1, kemudian 2M-2 dan 2M-3, …, 2 input file selama tiap
tahap merge.
3 way cascade menggunakan 3 dan 2 input file selama tiap tahap merge.
Penggabungan tahap 1:
7 Run
1
6 Run
2
4 Run
3
3 Run
2 Run
1
Penggabungan
tahap 1 proses 1
Penggabungan
tahap 1 proses 2
4
3
4 Run
2 Run
2
Penggabungan tahap 2:
1 Run
1
2 Run
3
4 Run
4
1 Run
3 Run
3
Penggabungan
tahap 2 proses 1
Penggabungan
tahap 2 proses 2
2
1
1 Run
1 Run
4
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 53
Penggabungan tahap 3:
1 Run
2
1 Run
1
2 Run
4
Penggabungan
tahap 3 proses 1
3
1 Run
Penggabungan tahap 4:
1 Run
1 Run
4
Penggabungan
tahap 4 proses 1
1
1 Run
3
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 54
Sesi 14
Materi 12
PENGENALAN KONTROL INPUT/OUTPUT
Pengaksesan (membaca dan menulis) data pada alat penyimpanan sekunder
memerlukan banyak aktifitas pada programmer aplikasi. Pemrograman bahasa
komputer memungkinkan programmer untuk menjabarkan teknik organisasi berkas
yang agak kompleks (missal pada organisasi berkas indeks-sequential) dengan
pernyataan bahasa yang sangat sederhana. Dukungan sistem manajemen berkas
mengubah pernyataan-pernyataan tersebut menjadi instruksi input/output tingkat
bawah (low-level).
Demikian pula sebuah permintaan sederhana dari programmer terhadap READ
atau WRITE sebuah record pada berkas, secara khusus diperlukan suatu urutan yang
komplek dari peralatan dukungan operasi manajemen.
Bagian-bagian ini biasanya tidak dapat dilihat oleh programmer. Pekerjaan
programmer akan menjadi lebih sukar jika pekerjaan itu menyangkut operasi control
input/output yang lebih terinci.
Sebuah sistem control I/O bertujuan untuk memberikan bantuan kepada user
untuk memungkinkan mereka mengakses berkas, tanpa memperhatikan detail dari
karakteristik dan waktu penyimpanan. Kontrol I/O menyangkut manajemen berkas dan
peralatan manajemen yang merupakan bagian dari sistem operasi. Bagian lain dari
sistem operasi mencakup sebuah pengaturan memori primer (main memory) dan
sebuah pengatur proses dan penjadwalan. Kadang-kadang bagian dari sistem operasi
yang melaksanakan control I/O ini disebut pengawas input/output (supervisor I/O).
Akses berkas memerlukan dukungan manajemen berkas, yang memberikan
teknik organisasi berkas dan dukungan alat manajemen, yang memberikan akses ke
alat penyimpan fisik. Pada beberapa sistem operasi sebuah pengatur berkas (file
manager) dan sebuah pengatur alat (device manager) berbeda satu sama lain,
sedang pada sistem lain, mereka digabungkan untuk membentuk fungsi control I/O
tunggal.
Tugas dari sistem kontrol I/O sangat banyak dan beraneka ragam. Beberapa
tugas yang dikerjakan oleh kontrol I/O adalah sbb:
1. Memelihara direktori dari berkas dan lokasi informasi.
2. Menentukan jalan (pathway) bagi aliran data antara memori primer (main
memory) dan alat penyimpan sekunder.
3. Mengkoordinasi komunikasi antara CPU dan alat penyimpanan sekunder, dan
sebaliknya, termasuk:
a. Mengatur/menangani ketidakseimbangan kecepatan pengiriman data
antara CPU dengan alat penyimpanan sedemikian rupa, sehingga CPU
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 55
tidak menunggu terlalu lama (membuang waktu) untuk menyelesaikan
pekerjaan I/O.
b. Mengatur data sedemikian rupa, sehingga data dapat disimpan, bila
pengirim (CPU atau alat penyimpan sekunder) dan penerima (alat
penyimpanan sekunder atau CPU) tidak siap pada waktu yang bersamaan.
4. Menyiapkan berkas penggunaan I/O.
5. Mengatur berkas, bila penggunaan input atau output telah selesai.
A. DIREKTORI BERKAS DAN KONTROL INFORMASI
Sebelum berkas dapat di akses oleh sebuah program, sistem operasi harus
mengetahui pada alat penyimpanan sekunder yang mana berkas tersebut berada.
Hampir semua sistem operasi menggunakan beberapa jenis struktur direktori yang
digunakan untuk menyimpan trek dari berkas pada sistem manajemen berkas.
Direktori yang diperlihatkan pada gambar dibwah ini adalah untuk satu unit dari
penyimpanan sekunder.
Labelnya berisi indentifikasi informasi, akses kontrol informasi, dan sebuah
primer yang menunjuk ke isi tabel, yang berisi kontrol blok untuk setiap berkas pada
unit tersebut. Sebuah kontrol blok berisi informasi tentang nama dari berkas, atributnya
(seperti panjang record, ukuran blok, organisasi berkas), dan batasnya pada media
penyimpanan. Sebuah kontrol blok menunjukkan awal dari berkas yang bersangkutan.
Jadi bila sebuah berkas dicari, isi tabel dari unit yang dimaksud, diperiksa untuk
menemukan berkas pada alat penyimpan.
LABEL
TABLE OF CONTENTS
HEADER
FREE SPACE POINTERS
FILE – 1 CONTROL BLOCK
FILE – 2 CONTROL BLOCK
…..
FILE – N CONTROL BLOCK
FILE STORAGE AREA
FILE – 1
FILE – 2
…..
FILE - N
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 56
Sistem manajemen berkas yang berbeda, menggunakan struktur yang berbeda
untuk blok kontrol berkasnya. Sebuah sistem representative/perwalian membentuk
dua tabel untuk menjelaskan setiap berkas. Yang pertama, berisi informasi pada
organisasi berkas dan pola pemrosesan, deskripsi ukuran dan jenis record, ukuran
pemblokan, kesalahan hitung dan flag, informasi yang digunakan oleh rutin sistem
kontrol I/O untuk menentukan status berkas dan posisinya, dan nama dari logika
berkas (eksternal). Juga berisi sebuah pointer pada tabel deskriptif berkas kedua, yang
dihubungkan dengan sebuah alat penyimpan tertentu dan berisi informasi tentang
karakteristik fisik dan status alat yang sedang digunakan. Alat pengontrol rutin
menggunakan tabel ini untuk menetapkan (meng-interface) permintaan terhadap
berkas dan untuk memonitor status aktifitas input/output berkas. Kontrol informasi
pada sistem ini terpecah antar tabel dengan tujuan untuk memisahkan pendeskripsian
berkas dan alat.
B. KONTROL PERALATAN
Aktivitas input/output terutama mencakup perpindahan data antara memori
utama (main memori) dengan alat penyimpanan skunder atau alat input/output seperti
printer, terminal, dan card reader/punch.
Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang
berhubungan dengan I/O. Tetapi, tanggung jawab untuk kontrol peralatan diserahkan
pada prosesor I/O, yang dikenal sebagai saluran I/O. Saluran I/O itu sendiri merupakan
prosesor yang sudah diprogram. Program-program yang di execute ini disebut
channel program.
Channel program ini menentukan operasi yang diperlukan untuk akses
peralatan dan mengontrol jalur data (data pathway). Sistem operasi memberikan rutin
standard yang digunakan untuk menjalankan saluran I/O.
Aditional
Control Unit
Aditional
Channels
CPU
Main Memori
CHANNEL
DEVICE
CONTROL
UNIT
DEVICE
DEVICE
DEVICE
C. MANAJEMEN SALURAN
Tujuan dari saluran I/O yang bertindak sebagai perantara antara CPU-memori
utama dengan unit pengontrol penyimpan. CPU berkomunikasi dengan saluran
melalui beberapa perintah yang sederhana. Beberapa saluran akan member perintah
seperti:
1. Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan
sedang sibuk.
2. Start I/O, pada peralatan tertentu.
3. Halt I/O, pada peralatan tertentu.
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 57
Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi
akan terjadi jika keadaan error terdeteksi, misalnya interuksi CPU yang salah atau jika
aktivitas I/O telah diakhiri. Jika interupsi terjadi, kontrol akan bercabang melalui rutin
pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan
penyebab dari intertupsi, melakukan kegiatan yang tepat, kemudian mengembalikan
kontrol pada pemanggil (caller).
Jika
sebuah
program
membutuhkan
READ
dari
suatu
berkas,
maka
serangkaian peristiwa pada gambar 3 ini akan terjadi.
PROGRAM
BUFFER
6
1
8
7
ID CONTROLLER
CHANNEL
2
CHANNEL
3
4
PROGRAM
CONTROL
UNIT
5
PROGRAM
1. Program mengeluarkan sebuah READ, yang menginterupsi pengontrol I/O.
2. Pengontrol I/O membuat sebuah saluran program pada memori utama.
3. Saluran program dibaca dan dieksekusi oleh pemanggil saluran.
4. Sinyal yang tepat akan ditransmisikan ke pemanggil unit kontrol.
5. Sinyal ini diterjemahkan oleh unit kontrol dan digunakan untuk mengontrol
peralatan operasi untuk membaca data yang diminta.
6. Data yang diminta akan mengalir dari peralatan sepanjang jalur (pathway) ke
daerah penampung berkas (file buffer area) dalam ruang memori utama.
7. Interupsi yang dikeluarkan oleh saluran, digunakan untuk meneruskan sinyal
pada waktu eksekusi program.
8. Kontrol kembali ke program.
D. MANAJEMEN BUFFER
1. Single Buffering
Gambar dibawah ini menunjukkan struktur data dari buffer dalam bentuk
yang sederhana, yang terdiri dari satu record perblok dan satu buffer per berkas,
dimana buffer ini berfungsi mengisikan permintaan dari sebuah program.
Struktur buffer ini berisi sebuah pointer pada alamat awal dan channel program
untuk berkas yang sedang dioperasikan.
BUFFER
To start of channel
program
BUFFER
DATA AREA
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 58
Struktur dasar dari channel program untuk mengisi buffer adalah:
Tunggu instruksi READ dari program
Tunggu hingga buffer dikosongkan
Memberitahukan instruksi start I/O ke kontrol unit
Memberitahukan interupsi pada program sehingga dapat mulai membaca
dari buffer.
2. Double Buffering
Untuk mengurangi kemungkinan dari program menunggu, double
buffering dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang
ditetapkan untuk berkas.
Ide dasar dari double buffering adalah jika consumer mengosongkan
salah satu buffer, maka producer dapat mengisikan ke dalam buffer yang lain,
pada saat buffer pertama sudah kosong, maka buffer yang kedua harus dalam
keadaan penuh. Kemudian consumer dapat mengosongkan buffer kedua, pada
saat producer mengisi buffer pertama, demikian seterusnya.
Struktur buffer untuk double buffering terdiri dari sebuah pointer yang
menunjuk ke buffer berikutnya. Pada gambar di bawah ini. Adanya printer ini
memungkinkan rutin producer dan consumer menjadi hal yang sangat umum.
Buffer 1
Next
Chp
Full-flag
Record-ctr
Buffer
Data area
Full-flag =
Buffer 2
Next
Chp
Full-flag
Record-ctr
Buffer
Data area
To start of channel
program
0 jika buffer kosong atau sedang diisi
1 jika buffer penuh atau sedang dikosongkan;
Record-ctr = 1, …, N
Dinny Wahyu Widarti, S.Kom
Sistem Berkas - 59