Anda di halaman 1dari 59

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 TANGGAL MATERI


1 Senin/27 Feb 2012 (kls A)  Pengenalan
Rabu/29 Feb 2012 (kls B)  Pokok materi selama satu semester
 Materi 1. Konsep Dasar Sistem Berkas
2 Senin/05 Mar 2012 (kls A) 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)
Sesuai Jadwal UTS (Bahan dari materi 4 s/d 7)
8 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 UAS (Bahan dari materi 1 s/d 12)

Dinny Wahyu Widarti, S.Kom 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,
entitas nomor telepon, entitas nilai ujian.
 Atribut : Adalah karakteristik yang menjadi ciri dari entitas.
Contoh Entitas gaji pegawai terdiri dari atribut : NIP,
nama, jem lembur, tunjangan, gaji pokok.
 Item Data : 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
Record
11.01.0059 Widarti Sumedang

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:


 Jumlah rekaman yang besar
 Berkas dengan kinerja tertentu
 Informasi yang diolah dengan cara yang berbeda untuk keperluan yang
berbeda
 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 Jenjang Program Dosen Wali SPP Data
Mahasiswa Mahasiswa Studi 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 Nomor Jenjang Program Studi Dosen Wali SPP Data
Mahasiswa lain
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.024 S1 Teknik Informatika Made 500.000 …
Susiana 11.55.024 S1 Teknik Informatika Made 500.000 …
Dewi Dwi 11.30.014 DIII Manajemen Informatika Made 400.000 …

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 Jenjang Program Studi Dosen SPP Data


Mahasiswa Mahasiswa Wali lain
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 …

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 Jenjang Program Studi Dosen SPP Data
Mahasiswa Mahasiswa Wali lain
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 …

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-demi-
rekaman 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 antar-
bagian.
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 SALDO OVERDRAW


SOCIATY LIMIT
DEPAN AKHIR CABANG 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 104, …
26-35 102, 103, …
36-45 101, …

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, Nama, Mata Kuliah…><Pointer>
1 1234 : Adam : SBD : … 3
2 5678 : Bruce : SB : … 4
3 9012 : Clarck : SBD : … 0

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 19


4 3456 : David : SB : … 0
5 7890 : Erik : PSI : … 0
6 … … … …

DIRECTORY DATAFILE
Search Key Address List No.Rec<S-Id, Nama, Mata Kuliah, …>
SB 2,4 1 1234 : Adam : SBD :…
PSI 5 2 5678 : Bruce : SB :…
SBD 1,3 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 ID
001234123 291821
123456789 208432
399142131 201431
412631467 300123
459463001 111111
513014265 310103
713214622 198121
821346211 112131

Data Recordnya adalah:


Alamat ID Nama Kode Tipe No Saldo Overdraw
Record Depan Akhir Grup Sociaty Limit
Cabang
1 111111 ADAM JOHN DT 001 459463001 100.500 0.
2 112131 SMITH IVAN NW 001 821346211 2311.20 100.
3 198121 MORALES JOSE DT 002 713214622 191.87 200.
4 201431 SMITH ELOISE DT 001 399042131 3142.93 100.
5 208432 JONES JANE NW 001 123456789 95.26 0.
6 291821 MORGAN NILL NW 002 001234123 146.92 0.
7 300123 ADAMS MYRTLE NE 002 412631467 3000.0 100.
8 310103 MATTHERS ELMER DT 001 513014265 243.63 0.

Dinny Wahyu Widarti, S.Kom 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 ID
Tipe_cabang
DT001 111111
DT002 198121
NE002 300123
NW001 112131
NW002 291821

Kemudian file Multi list untuk kunci sekunder Overdraw Limit:


Overdraw ID
Limit
0 111111
100 112131
200 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 Panjang
Tipe_cabang
DT001 2
NW001 2
DT002 1
NW002 1
NE002 1

Overdraw Panjang
Limit
0 4
100 3
200 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 ADDRESS
COW
AWAL BERKAS 1
ZEBRA 2

APE I-1
EEL I
DOG I+1

CAT N-1
AKHIR BERKAS N
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 BALANCE DATE-LAST DATE-LAST
NUMBER TYPE CREDIT DEBIT

Sedangkan berkas transaksinya terdiri dari field-field sebagai berikut:


TRANSACTION
ACCOUNT TRANS AMOUNT DATE
NUMBER TYPE

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


DIREKTORI BERKAS RELATIF ALAMAT RELATIF
KEY ALAMAT

APE I-1 COW


1
BAT N ZEBRA 2
CAT N-1

APE
I-1
COW 1 EEL I
DOG I+1 DOG I+1
EEL I

2 CAT N-1
N
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 ALAMAT RELATIF


APE, I-1 COW 1

ZEBRA 2
BAT, N

CAT, N-1

APE I-1
COW, 1
EEL I

DOG I+1
DOG, I+1

EEL, 1 CAT N-1

BAT N
ZEBRA, 2-1

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 27


Keuntungan dari pencarian tabel:
 Sebuah record dapat di akses dengan cepat, setelah nilai key dalam
direktori ditentukan .
 Nilai key dapat berupa field yang mudah dimengerti seperti PART NUMBER,
NMP, karena nilai key tersebut akan diterjemahkan menjadi alamat.
 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
 Randomizing techniques
 Key to address transformation methods
 Direct addressingbtechniques
 Hash tables methods
 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 Overflow
Utama
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. Rekaman-
rekaman 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 rekaman-
rekaman dalam sebuah silinder, tetapi indeks silinder tersebut berisi penunjuk ke
berbagai silinder lainnya. Sepasang masukan yang berisi informasi untuk masing-
masing 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 pnj


primer 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 750 2-0 1500 3-0 …

Dinny Wahyu Widarti, S.Kom 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. Rekaman-
rekaman 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 2 3 4
9 25 ^

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 2 3 4
9 25 ^

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 ^
0

Penyimpanan Primer
1 7 9 12 13 15 20 22

27 28 38 41 55 57 65

2 28 38 41 55 57 65 70

3 73 75 77 79 80 83 85

Penyimpanan Overflow
1 2 3 4
9 25 ^ ^

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 85 ^
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 2 3 4
9 25 ^ 70 ^

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 20 22

26 27 28 38 41 55 57

2 27 28 38 41 55 57 65

3 73 75 77 79 80 83 85

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 35


Penyimpanan Overflow 65 9-2

1 2 3 4
9 25 ^ 70 ^

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 2 3 4
9 25 ^ 70 ^ 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 58 9-3

1 2 3 4
9 25 ^ 70 ^ 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 rekaman-
rekaman 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 2 3 4
9 25 ^ 70 ^ 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 medan-
penghubung 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 home-
address 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 home-
address 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 35 65 20 19 78

Dinny Wahyu Widarti, S.Kom 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 > dari pertama

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 47


Algoritma pengurutan cepat adalah sebagai berikut:
1. Jika terdapat banyak rekaman yang harus diurutkan, pisahkan rekaman-
rekaman 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 12

69 56 32 14 2

13 8 21 34 2 26

Contoh bukan heap:


83 69 12

69 56 32 14 2

2 8 72 34 20 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
 Ukuran record (panjang record)
 Jumlah storage yang digunakan
 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
Menjadi record 4001-6000
Record 5001-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.
6 pengurutan
Tahap Pengurutan
subfile @ 1000
Internal
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;
1 Record 2001-3000;
Record 4001-5000 Tahap
Record 1-2000;
penggabungan
1
3 Record 2001-4000;
Record 1001-2000; Record 4001-6000
2 Record 3001-4000;
Record 5001-6000

3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1
4. Tahap penggabungan kedua

1 Record 1-2000
Tahap
penggabungan
2
2 Record 1-6000

Record 2001-4000;
3 Record 4001-6000

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

6 pengurutan
Tahap Pengurutan
subfile @ 1000
Internal
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
Record 1-1000;
1 Record 2001-3000; Record 1-2000
Record 4001-5000 Tahap 3
penggabungan
Record 1001-2000; 1
Record 3001-4000; Record 2001-4000;
2 4 Record 4001-6000
Record 5001-6000

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 51


3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1
4. Tahap penggabungan kedua

3 Record 1-2000
Tahap
penggabungan Record 1-6000
1
2
Record 2001-4000;
4 Record 4001-6000

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 1 Run 1; Run 6; Run 7; Run 10; Run 11; Run 12; Run 13
Internal

6000 record Run 2; Run 4; Run 14; Run 15; Run 16; Run 17
2

Run 3; Run 5; Run 8; Run 9


3
Penggabungan tahap 1:

7 Run 1
Penggabungan 4 Run
4
6 Run 2 tahap 1

4 Run 3

Penggabungan tahap 2:

2 Run 2
Penggabungan 2 Run
3
3 Run 1 tahap 2

4 Run 4

Penggabungan tahap 3:

1 Run 1
Penggabungan 1 Run
2
2 Run 4 tahap 3

2 Run 3

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 52


Penggabungan tahap 4:

1 Run 2
Penggabungan 1 Run
1
1 Run 3 tahap 4

1 Run 4

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
Penggabungan 4 Run
4
6 Run 2 tahap 1 proses 1

4 Run 3

3 Run 1 Penggabungan 2 Run


3
tahap 1 proses 2
2 Run 2

Penggabungan tahap 2:

1 Run 1
Penggabungan 1 Run
2
2 Run 3 tahap 2 proses 1

4 Run 4

1 Run 3 Penggabungan 1 Run


1
tahap 2 proses 2
3 Run 4

Dinny Wahyu Widarti, S.Kom Sistem Berkas - 53


Penggabungan tahap 3:

1 Run 2
Penggabungan 1 Run
3
1 Run 1 tahap 3 proses 1

2 Run 4

Penggabungan tahap 4:

1 Run 4 Penggabungan 1 Run


1
tahap 4 proses 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 DEVICE
Channels
DEVICE
CPU CONTROL
Main Memori CHANNEL UNIT 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
CHANNEL
2 CONTROL
3 4 5
PROGRAM UNIT 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
 Memberitahukan instruksi start I/O ke kontrol unit
 Tunggu hingga buffer dikosongkan
 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 Buffer 2

Next Next
To start of channel
Chp Chp
Full-flag Full-flag program
Record-ctr Record-ctr
Buffer Buffer
Data area Data area

Full-flag = 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

Anda mungkin juga menyukai