You are on page 1of 23

ORGANISASI FILE

Agar dapat mengacu pada record-record yang diinginkan pada suatu file maka file -
filenya dibentuk dalam aturan-aturan atau organisasi yang teratur dan konsisten.
Ada bermacam organisasi dari file yang secara umum dikelompokkan ke dalam
system pengorganisasian file dasar sebagi berikut :

1. Pile file
2. sequential file
3. index sequential file
4. multiple index file
5. direct file
6. multiring file

1. Pile File
Pile File adalah pengorganisasian file struktur dasar yang paling sederhana dan tak berstruktur.
Struktur ini jarang digunakan secara praktis namun basis evaluasi struktur lainnya. Data pada
pile file tidak dianalisis untuk memenuhi kategori tertentu dan panjang rekord dapat bervariasi

Karakteristik struktur pile sebagai berikut :

• Bentuk kumpulan data sebelum diproses


• Data sulit untuk diorganisir
• Data ditumpuk secara kronologis
• Tidak ada keterkaitan antara ukuran, rekord, dan blok
• Elemen data beragam dan berbeda setiap rekord
• Data disimpan lengkap berserta nama dan nilai atribut
• Komponen pile file hanya berisi data

No.record NIP Nama Tgl-lahir Pekerjaan

1 09021147 Budi 09-09- Operator


1988 Warnet

2 09021148 Umar 20-12-1989 Tehnisi


Jaringan

• Bentuk record mungkin saja variable length dan elemen data bisa tidak sama

Maka dalam Pile record-record akan disimpan sebagai berikut :


Nim=09021147;Nama=Budi;tgl-lahir=09-09-1988

Record –1

Nim=0017021;Nama=Umar;tgl-lahir=20-12-1960;Pekerjaan=Marketing
Record –2
Manfaat:
• Data tersusun secara kronologis
• Mudah dimanfaatkan, data yang datang langsung disimpan ke dalam file tanpa
proses apapun
• Mudah dibuat (dicreate), tapi report untuk mencari sesuatu dari dalamnya
• Kumpulan data manual biasanya adalah sebuah pile file
• Sebagai perbandingan dengan bentuk-bentuk file komputer lainnya

Performance
1. Record Size
• Isi file ditentukan oleh 2 hal:
• Menyimpan data yang dibutuhkan
• Data yang belum disimpan tidak perlu mendapat perhatian sama sekali

2. Fetch a record
• Waktu pencarian bisa sangat lama
• Data mungkin berada dimana saja di dalam file
• Sangat dianjurkan untuk membagi file dalam block-block
• Pencarian dilakukan per block
• Tetapi tidak tertutup kemungkinan data baru ditemukan pada block yang
terakhir

3. Get the next record


• Karena data tidak diurutkan, maka successor record mungkin berada
dimana saja
• Sehingga pencarian harus dilakukan pada seluruh file
• Sangat dianjurkan untuk memanfaatkan pembagian dalam block seperti
pada fetch

4. Insert a record
• Bisa dilakukan dengan sangat cepat, karena file tidak terstruktur
• Data bisa diinsert di bagian file yang manapun

5. Delete a record
• Record yang akan didelete bisa berada dimana saja di dalam file
• Pencarian akan bisa memakan waktu yang lama karena bentuk file yang
tidak terstruktur

6. Modify a record
• Record yang akan dimodify dalam kondisi yang sama seperti yang akan di
delete
• Yaitu bisa berada dimana saja di dalam file
• Sehingga pencarian data bisa berlangsung sangat lama

7. Read the entire file


• Kegiatan ini dapat dilaksanakan dengan sangat mudah
• Karena tinggal membaca satu-persatu sesuai dengan kronologis susunan
datanya

8. Reorganize the file


• Bila delete pada file dilakukan dengan menggunakan tombstone, maka
reorganize perlu dilakukan secara periodik
• Agar file menjadi lebih ramping, sehingga proses pencarian data bisa
berlangsung lebih cepat
• Kadang reorganisasi pile file diperlukan untuk menata ulang susunan data
secara kronologis
SEQUENTIAL FILE

Adalah:
• File dengan data yang tersusun dalam suatu urutan tertentu
• Tiap record mempunyai field yang sama & dengan susunan yang
sama
• Bentuk file terlihat menyerupai tabel

Struktur file
• Untuk memungkinkan record tersusun secara urut perlu ditentukan
key dari
tiap record
• Satu atau beberapa atribut akan menjadi key atribut
• Pengurutan record dapat dilakukan berdasarkan primary keynya
• Pembacaan secara serial (satu persatu) sesuai dengan urutan keynya disebut
pembacaan secara sequential

Nip Nama Pekerjaan


000021 Abu Bakar Manajer
000032 Fatimah Sekretaris
000042 Asma Presiden direktur

Keterbatasan:
• Bentuk record harus fixed length
• Sehingga efisien dalam tempat (storage) tetapi kurang fleksibel
• Update tidak mudah dilakukan, memakai pola transaksi – old master file – new
master file
• Kalau kedalam record ingin ditambahkan atribut maka seluruh file harus
direorganisasi
• Seringkali pada sebuah file sequential disediakan tempat untuk penambahan
atribut

Kegunaan:
• Banyak dipakai pada metoda batch processing
• Kalau beberapa file ingin digabungkan, maka tiap file harus diurutkan dalam
pola pengurutan yang sama

Performance
1. Record Size
• Bentuk record fixed length
• Besar alokasi storage yang dibutuhkan ditentukan oleh:
• Jumlah atribut dalam sebuah record
• Banyak record yang disimpan

2. Fetch a record
• Biasanya dengan memakai cara serial search (sequential reading) dari awal
file

• Sequential file bisa disimpan pada:


• Sequential Access Storage Device (Magnetic Tape)
• Direct Access Storage Device (Magnetic Disk)

• Pada Direct Access Device, sequential file dapat diakses secara direct
• Direct access hanya dapat dilakukan pada atribut yang dipakai untuk
mengurutkan file

 Sequential search
• Pembacaan record per record dari awal

 Binary search
• Fetch ditengah-tengah file
• Kalau key dari file lebih kecil dari yang dicari fetch ke tengah sisa file
dibawahnya
• Kalau key dari file lebih besar dari yang dicari fetch ketengah sisa file
diatasnya

 Probbing
• Fetch pada sebuah posisi yang diperkirakan
• Dilanjutkan dengan sequential search

3. Get the next record


• Record berikutnya dapat langsung diakses
• Karena seringkali berada pada block yang sama

4. Insert a record
• Insert berarti menyisipkan sebuah record sesuai dengan posisi dari primary
key
• Insert sangat mudah kalau hanya menambahkan sebuah record pada akhir
file
• Kalau insert ke tengah file, harus dipakai metoda batch update

5. Delete a record
• Menggunakan metoda batch update
• Key dari record-record yang akan di delete dikumpulkan dahulu pada
transaction file

6. Modify a record
• Menggunakan metoda batch update
• Bila nilai key tetap, maka field yang berubah akan dituliskan langsung pada
tempatnya
• Bila nilai key berubah pada primary key, maka kegiatannya adalah delete
yang lama lalu insert yang baru Read the entire file

7. Read the entire file


• Dilakukan dengan sequential search
• Pembacaan file dilakukan sesuai dengan urutan fisik file (key bisa urut /
bisa tidak urut)

8. Reorganize the file


• Membentuk file baru (batch update)
• Kedua file (master file & transaction file) harus diurutkan pada urutan yang
sama
INDEX FILE
 File index digunakan untuk menemukan lokasi record yang dicari
dengan
cepat
 Terdiri dari :
o Index block Number
o Key Attribut
o Record Number (TID = Tuple Indentifier)

Master File
Record Nim Nama
Number
1 0211500032 Fathimah
2 0211500054 Ali
Dst ………
101 0211500143 Nida
102 0211500150 Asih
Dst ……….. ………
201 0222300032 Ahmad
202 0222300054 Ummi
dst ……..
301 0222500234 Dani
302 0222500240 Tika
Dst ……….. ………
401 0222500434 Dito
402 0222500450 Titi
Dst ……….. ………
501 0233500002 Budi
502 0233500004 Ina
Dst ……….. ………
601 0244500032 Dina
602 0244500034 Ani
Dst ……….. ………

INDEX FILE–NYA SEBAGAI BERIKUT :

Index Block # KEY REC #


0211500032 1

A 0211500054 2

0211500143 101
B 0211500150 102

0222300032 201
C 0222300054 202

0222500234 301
D 0222500240 302

0222500434 401
E 0222500450 402

0233500002 501
F 0233500004 502

0244500032 601
G 0244500034 602
Untuk mencari index block dengan cepat dibuat index level kedua sebagai berikut :

Index Block # KEY INDEX BLOCK #


0211500032 A
0211500143 B
0222300032 C
M 0222500234 D
0222500434 E
0233500002 F
0244500032 G

Terdapat 2 tipe pengacuan indeks


o Block Anchor
Indeks tidak menunjuk langsung ke record tetapi ke block yang memuat
record
Indeks memuat record pertama dari tiap block
Contoh

Index Block # KEY INDEX BLOCK #


0211500032 A
0211500143 B
0222300032 C
M 0222500234 D
0222500434 E
0233500002 F
0244500032 G

o Record

Anchor
Indeks menunjuk ke record

Data Utama

No. Record NIM Nama Alamat

1 0011500043|Muhammad Hanafi|Petukangan Utara


2 0222500056|Ali|Ciledug
3 0033500021|Fitriana Sari| Petukangan Selatan
4 0022500026|Budi Firmansyah|Cipulir
5 0244500023|Titi|Cipondoh
6 0122500035|Abdullah Nashih Ulwan|Tanah Abang
7 0022500254|Ade|Kebayoran Lama
8 0322500221|Muhammad Reza Pahlevi|Kebayoran Baru

Record 402 Nim


Number Dst
1 501 0211500032
2 0211500054
Dst ………
101 0211500143
102 0211500150
Dst ………..
201 0222300032
202 0222300054
dst ……..
301 0222500234
302 0222500240
Dst ………..
401 0222500434
0222500450 Nama Ummi
………..
0233500002 Fathimah Dani
Ali Tika
………
Nida Dito
Asih Titi
……… ………
Ahmad Budi
502 0233500004 Ina
Dst ……….. ………
601 0244500032 Dina
602 0244500034 Ani
Dst ……….. ………

Index file
Misal Berdasarkan nama

Key Record #
Ali 2
Ani 602
Asih 102
Budi 501
Dani 301
Dina 601
Dito 401
Dst… Dst..
INDEXED SEQUENTIAL FILE
Adalah:
• Organisasi file yang mempunyai semua keunggulan dari sequential
file
• Tetapi kemampuan aksesnya jauh lebih baik
• Ada 2 hal yang ditambahkan yaitu
• Index: untuk mendapatkan cara akses yang lebih baik
• Overflow area: untuk mengatasi masalah dalam penambahan data (insert)
• Komponen:
• Sequential file (main file)
• Index
• Overflow Area

• Main file:
• Berisi data / record – record yang membentuk file
• Data tersusun seperti pada sequential file

• Index:
• Berisi alamat dari tiap record yang ada didalam main file (seperti daftar isi)
• Index dipakai untuk memungkinkan dilakukan fetch terhadap record
tertentu, dengan cara:
• Alamat dari record yang akan difetch dicari di dalam index
• Dengan alamat tersebut data dibaca dari dalam main file
• Salah satu konsep index yang dipakai adalah:
memanfaatkan Block Anchor

• Overflow Area
• Menyimpan record tambahan, yang diisi pada waktu dilakukan insert
• Mirip dengan apa yang disebut transaction file, tetapi diintegrasikan
menjadi satu dalam konsep index-sequential file
• Lokasi record ditunjukkan dengan pointer dari predecessornya

KEY BLOC
013-20-14 K ID
104-13-82 1 Record No. ktp Nama Overflow
2 Number pointer
11.1 013-20- Hadi
--- --- END 11.2 14 Ari 112.1
11.3 015-23- Nani
MAST XXXXX 51 XXXXXXX XXXXX
ER 019-88-
79
XXXXXXX
X
BLOCK ID KEY BLOCK ID 12.1 021-13- 192-20-41 Nita
013- 11 12.2 21 XXXXXXXX Agus
20-14 12 XXXXX 027-55- SEQUENTI XXXXXXX
1
021- 13 13.1 07 AL Nanda
13-21 ---- 13.2 XXXXXXX FILE Tuti
045- XXXXX X XXXXXXX
62-57 21 21.1 045-62- 016-78-01 Wiyogo
2 ---- 22 21.2 57 017-09-73 Arjuno
23 XXXXX 049-20- XXXXXXXX XXXXXXX
104- --- 22.1 73 184-29-80 Hakim
13-82 XXXXX XXXXXXX 185-51-38 XXXXXXX
132- 23.1 X Garuda
52-93 23.2 104-13- Arini
183- 23.3 82 Baruna
08-29 XXXXX 108-84- XXXXXXX
--- 66
END XXXXXXX
INDEX X
112.1 132-52- HERMAN
112.2 93 JIRAN
XXXXX XXXXXXX XXXXXXX
231.1 X FARID
231.2 183-08- SAMIN
29
186-08-
30
XXXXX 231.1 XXXXX O-CHAIN-P XXXXX
XXXXX
XXXXX XXXXX 11.3 23.2

OVERFLOW AREA
• Untuk meminimalkan jumlah overflow pointer yang dipakai digunakan metoda
push-through
• Record baru ditempatkan sesudah predecessornya
• Successor record digeser mendekati ujung block
• Record pada ujung block digeser ke overflow area

INSERT 085 039 025

MAIN FILE 017 017 017 017


061 061 039 025
103 085 061 039
103 085 061

OVERFLOW 103 085


AREA
103

Kegunaan index sequential file


• Bentuk file yang paling banyak dipakai
• Dipakai bila file ingin selalu dalam kondisi up to date
• Sebuah record dapat di insert atau di retrieve secara langsung melalui indexnya
• Sangat sesuai untuk proses secara on-line
• Bisa juga diakses secara sequential

Kelemahan index sequential file


• Seach/pencarian hanya bisa melalui sebuah key saja, yaitu key yang
mengurutkan file

Performance
1. Record Size
• Berbentuk fixed length record
• Ukuran file relatif tetap, karena insert memakai overflow area
• Ukuran file baru berubah setelah dilakukan reorganisasi
• Overflow area digabungkan dengan main file
• Overflow area akan kosong
• Main file akan bertambah besar

2. Fetch a record
• Index dimanfaatkan untuk menemukan sebuah record
• Dicari dari index yang paling atas, menurun ke index dibawahnya sampai
akhirnya ke main file
• Bila pernah dilakukan insert, pencarian akan dilanjutkan ke overflow area
untuk mencari record yang telah di geser (push)

3. Get the next record


• Successor record cukup dicari secara serial dari predecessornya, tanpa
memanfaatkan index

4. Insert a record
• Menambah record berarti memperpanjang overflow chain, karena metoda
push through
• Record baru akan selalu ditempatkan urut dengan record sebelumnya
• Tiap kali insert akan mengakibatkan terjadi read & rewrite dari pointer-
pointer
• Index tidak berpengaruh terhadap index
• Ada 3 cara yaitu
a. separate file, record baru disimpan pada file terpisah (kurang efisien)
b. Free space in every block, ruang kosong yang akan terisi bila ada record
baru
c. Free space in every silinder, ruang kosong pada akhir setiap silinder
5. Delete a record
• Delete pemakai tombstone
• Data pada pointer & index tetap ada

6. Modify a record
• Dilakukan dengan langkah fetch & rewrite
• Karena record baru bisa dituliskan pada tempat record lama
berada

7. Read the entire file


• Dapat dilakukan dengan memakai salah satu dari 2 cara
dibawah ini:
1. Secara serial dengan mengikuti alur urutan data (termasuk ke overflow
area)
2. Secara sequential membaca isi main file dahulu baru membaca isi
overflow area

8. Reorganize the file


• Overflow area digabungkan ke main file
• Main file mendapat ukuran yang baru
• Overflow area kembali kosong
• Index berubah isinya sesuai dengan data terbaru
• Dilakukan dengan pembacaan serial melalui main file

Multiple Indexed file


Adalah:
• Disebut juga multiple indexed file
• Mempunyai lebih dari sebuah index
• Tiap atribut (bahkan semua atribut) mempunyai index)
• Tiap index diperlakukan sama
• Tiap index adalah record anchored
• Tidak ada konsep primary-attribute
• File tidak tersusun berdasarkan primary index
• Tidak ada pengaturan overflow-chain
• Insert langsung ke dalam main file
• Tiap kali insert semua index harus diupdate
• Hanya bisa diakses melalui indexnya
• Bisa diakses melalui index yang mana saja
• Record bisa berbentuk variable length

Struktur file pada indexed file


• Index bisa sebanyak atribut yang ada
• Index bahkan bisa lebih banyak dari jumlah atribut yang ada, kalau dibentuk
combined index
• Index berisi alamat dari tiap record yang terkait
• Tidak ada urutan data pada primary file, karena system akan menempatkan
data berdasarkan besar kebutuhan tempat
• Tidak ada batasan panjang record
• Bisa berbentuk variable length record
• Successor record dicari melalui record

Data Utama

No. Record NIM Nama Alamat

1 0011500043|Muhammad Hanafi|Petukangan Utara


2 0222500056|Ali|Ciledug
3 0033500021|Fitriana Sari| Petukangan Selatan
4 0022500026|Budi Firmansyah|Cipulir
5 0244500023|Titi|Cipondoh
6 0122500035|Abdullah Nashih Ulwan|Tanah Abang
7 0022500254|Ade|Kebayoran Lama
8 0322500221|Muhammad Reza Pahlevi|Kebayoran Baru
Index file
Misal Berdasarkan nama

Key
Abdullah Nashih Ulwan Record #
Ade 6
Ali 7
Budi Firmasyah 2
Fitriana Sari 4
Muhammad Hanafi 3
Muhammad Reza Pahlevi 1
Titi 8
5
Kegunaan indexed file
• Banyak dipakai bila kecepatan akses sangat dibutuhkan
• File jarang diakses secara serial
• Data dapat diakses dengan struktur yang berbeda tanpa perlu dilakukan
reorganisasi (karena bisa mempunyai banyak record)
• Sangat cocok untuk format data yang dinamis

Performance

1. Record size
• Bisa berbentuk variable length
• Atribut record secara umum bisa berbentuk sparse
• Besar keseluruhan file sangat ditentukan oleh banyaknya index yang dibuat

2. Fetch a record
• Dilakukan melalui index
• Mirip dengan indexed sequential, hanya tidak ada pencarian ke overflow
area
• Bila index bisa ditempatkan pada satu cylinder, maka penelusurannya tidak
memerlukan seek time

3. Get the next record


• Tidak bisa dilakukan melalui struktur file
• Dilakukan melalui index

4. Insert a record
• Record ditempatkan dimana saja pada daerah yang kosong
• Semua index yang terkait akan di update

5. Delete a record
• Tidak dengan menghilangkan/menghapus record yang didelete
• Tidak melepaskan semua index yang terkait dengan record tersebut

6. Modify a record
• Dilakukan dengan cara:
• Mencari lokasi yang akan berubah
• Mengubah isi record
• Mengubah semua index yang terkait dengan perubahan tersebut

7. Read the entire file


• File tidak diharapkan untuk sering dibaca seluruh isinya
• Karena lokasi record yang tidak beraturan
• Harus dilakukan dengan memanfaatkan index lengkap yang ada
8. Reorganize the file
• Tidak perlu dilakukan secara periodik
• Lebih kepada pemanfaatan kembali daerah-daerah kosong akibat delete a
record

Hashed File
Adalah:
• Memakai perhitungan matematis untuk menemukan alamat dari sebuah record
• Memanfaatkan kemampuan disk unit dapat mengakses tiap block yang
diketahui alamatnya
• Agar dapat dilakukan direct access, key dari record dipakai sebagai alamat di
dalam file

Komponen Hashed File:


• File Space
• Terbagi dalam slot-slot
• Tiap slot menyimpan sebuah record

• Rumus
• Menghasilkan slot address, dihitung berdasarkan key dari sebuah record

Overview Hashed File


• Berbasis kemampuan direct access ke dalam file dengan memanfaatkan relatif
address
• Relatif address adalah:
• Sebuah record dapat ditemukan hanya dengan memanggilnya lewat nomor
urut record di dalam file
• Masalahnya adalah:
• Membuat rumus untuk mengubah key dari sebuah record menjadi nomor
urut (KAT -> Key To Address Transformation)
• KAT (Key To Address Transformation) :
• Tujuannya untuk menghasilkan slot number yang berbeda bagi tiap record
• Dengan cara mengubah key menjadi relative address
• Hambatan KAT:
• Key umumnya sesuatu yang bersifat natural (NIM / No_KTP /
No_Pegawai / dll)
• Natural Key biasanya panjang (NIM = 10 digit)
• Persyaratan KAT:
• Ukuran Key harus diperpendek agar sesuai dengan slot address (relative
address)
• Slot address yang dihasilkan harus unix
• Algoritma untuk membuat KAT sangat banyak
• Contoh:
NIM NAMA SLOT ADDRESS
0011500001 BUDIMAN 1
0011500002 HERMAN 2

- - -
- - -
0011500105 ACHMAD 105
0011500106 ENDANG 106
0011500107 SEPHIA 107

• Fungsi hash yang umum digunakan


• Division Remainder (pembagian sisa)
• Truncation (pemenggalan)
• Folding ( Lipatan)
• Multiplication (perkalian)
• Mid Square
Teknik Hashing Division Remainder (pembagian sisa)
- Metode hashing paling sederhana dengan membagi 1 nilai kunci
dengan
ukuran tabel
- Diimplementasikan dengan syntax programming MOD (sisa
pembagian)
- Bagi programming yang tidak memungkinkan index dari 0 maka ditambah 1
- Contoh 1 : jika ukuran tabel 11 dan nilai kunci 648
F(648) = 648 mod 11 = 10
Maka nilai 648 disimpan di lokasi 10
- Contoh 2 : Sebuah file = 4 record dengan nilai kunci 12,19,68,38
ukuran tabel 11
F(12) = 12 mod 11 = 1 F(19) = 19 mod 11 = 8
F(68) = 68 mod 11 = 2 F(38) = 38 mod 11 = 5

Index 0 2 4 6 8 9

1 3 5 7
NIlai Kunci 12 68 38 19

Teknik Hashing Truncation (pemenggalan)


- melakukan pemenggalan sejumlah digit yang pertama atau yang terakhir
dari sejumlah digit
- Keuntungan, capat dan mudah dalam implementasinya
- Kerugian, terbatasnya ukuran ruang alamat
- Contoh 1: Jika fungsi F menghapus 6 digit akhir dari digit 123456789
Maka f(123456789) = 123
Nb : hash memetakan nomor 123456789 ke alamat 123

Teknik Hashing Folding ( Lipatan)


- Nilai kunci dibagi menjadi beberapa bagian, masing-masing memiliki jumlah
digit yang sama (kecuali bagian awal atau akhir). Bagian-bagian ini kemudian
dilipat antara satu bagian dengan bagian lain. Hasil penjumlahan setelah
dilipat dan digit dengan orde paling tinggi dipenggal menjadi alamat relative
- Contoh 1: Nilai kunci 253456718, target alamat relative menggunakan 4
digit
Nilai kunci dibagi menjadi 4 digit
Jawab:

2 5345 6718
2
5345
8176 (urutan terbalik !)
-------- +
15521

digit dengan order tinggi dihilangkan menjadi 5521

- Contoh 2: Nilai kunci 123456 dibagi menjadi 2 bagian

Jawab: 123 123


4 6
5 5
6 4
------ + atau --
579 -- 777
-
Teknik Hashing Multiplication (pekalian) +
- Membagi sebuah kunci dan menjumlah bagian-bagiannya (seperti teknik
folding), bagian dari salah kunci dipilih untuk dikalikan. Hasilnya atau satu
bagian yang dipenggal merupakan alamat relatif dari record yang akan
dilokasikan
- Contoh 1: NIM = 9922500266
Jawab: 992 * 266 = 263872 dipenggal menjadi 2638
Maka data NIM 9922500266 disimpan di alamat 2638
Teknik Hashing Mid Square
- Nilai kunci dikuadratkan, tentukan digit yang akan dikutip dari
tengah
- Contoh 1: Diambil dari kanan, mulai posisi ke 6 sebanyak 6
digit
Nilai Kunci Kunci dipangkatkan Alamat
relatif

91225002 83220011103170070756 031700


66 104006895646002001 956460
032250100
Collision: 1
• Kadangkala KAT (Key To Address Transformation) akan menghasilkan slot
address yang sama untuk 2 atau lebih key yang berbeda.
• Akibatnya 2 atau lebih record yang berbeda akan mempunyai slot address yang
sama
• Kondisi diatas disebut Collision
• Metoda mengatasi collision:
• Open addressing
• Linear search
• Re-randomization
• Overflow area
Linear Search
• Slot dikelompokkan ke dalam bucket, 1 bucket sama dengan 1 block
• Dengan dimanfaatkannya bucket, jumlah relative address berkurang
• Bucket kadang disebut juga sebagai Cluster
• Bila sebuah record akan direkam maka:
• Ditempatkan kedalam bucket sesuai dengan bucket addressnya
• Ketika terjadi collision, record tetap ditempatkan sesuai dengan bucket
addressnya tetapi pada next sequential block
Re-randomization:
• Tidak memanfaatkan bucket (cluster)
• Tetapi menempatkan record yang collision pada sembarang tempat di dalam
file
• Dengan membuat KAT yang bertingkat-tingkat
• Sebuah record direkam kedalam slot sesuai dengan relative addressnya
(diperoleh dari KAT)
• Bila terjadi collision, KAT tingkat berikutnya akan dipakai untuk mencari tempat
kosong di dalam file
• Setiap terjadi collision, KAT tingkat berikutnya akan dimanfaatkan

Overflow area:
• Mempersiapkan file terpisah (overflow file)
• Memanfaatkan overflow-chain untuk penghubung (seperti pada indexed
sequential file)
• Tidak dipakai pola bucket (cluster)
• Membutuhkan seek tersendiri, tetapi tidak ada sequential search ke dalam
bucket
• Kesulitannya adalah:
• Menyediakan overflow file yang mencukupi
• Karena collision tidak bisa diduga kapan terjadi & berapa kali terjadi

Kegunaan Hashed File


• Banyak dipakai untuk file-file berbentuk:
• Directory
• Tabel (Harga / barang)
• Jadwal kegiatan
• Daftar (nama/alamat)
• dll
• File dengan ukuran record yang pendek & fixed
• Dapat diakses dengan cepat
• Hanya diakses berdasarkan 1 key
• Tidak pernah diakses secara serial
Performance 31
1. Record Size
• Fixed length record
• Besar tempat yang dibutuhkan untuk tiap record adalah sama seperti pada
indexed sequential file
2. Fetch a record
• Record ditemukan berdasarkan relative address
• Kalau pernah terjadi collision, fetch dilanjutkan ke tempat record
sebenarnya berada (tergantung metoda penanganan collision)
3. Get the next record
• Tidak dikenal cara serial access
• Selalu seperti fetch a record

4. Insert a record
• Slot yang akan diisi harus diperiksa apakah:
• Kosong
• Berisi record dengan key yang sama
• Berisi record dengan key yang lain (collision)

5. Delete a record
• Dengan memanfaatkan tombstone
• Bila dipergunakan overflow area:
• Overflow-chain akan diatur ulang
• Atau slot akan diberi tanda kosong
• Bila dipergunakan open addressing:
• Tidak bisa sekedar slot diberi tanda kosong
• Harus dimungkinkan untuk tetap mendapat record-record yang collision

6. Modify a record
• Dilakukan secara fetch & rewrite pada tempat yang sama
• Kalau key berubah maka langkahnya adalah insert & modify
7. Read the entire file
• Tidak bisa dilakukan serial search
• Hanya bisa dengan membaca seluruh slot yang disiapkan, melalui KAT
• Walaupun akan termasuk membaca semua slot yang masih kosong

8. Reorganize the file


• Diperlukan bila total record telah mengisi semua slot dan tidak ada tempat
lagi untuk bertambah
• Dibutuhkan tempat baru yang lebih besar
• KAT perlu diubah atau diperbaiki
• Reorganisasi juga diperlukan jika banyak record yang telah didelete (delete
akan berakibat memperpanjang / memperlama pencarian sebuah record)

MULTIRING FILE
Adalah:
• Berorientasi ke proses yang efisien untuk subset (kumpulan record)
• Subset berisi grup record yang memiliki atribut yang sama
• Banyak dimanfaatkan dalam system database
• Sejumlah subset dari record terkait satu dengan lainnya oleh pointer-pointer
• Jalur kait antar subset menggambarkan urutan anggota dari subset tersebut
• Sebuah record bisa menjadi anggota dari beberapa subset
• Tiap subset mempunyai Header Record (Header) yaitu record yang merupakan
tempat sebuah subset terkait
• Header berisi semua keterangan tentang anggota subsetnya
• Header record sendiri bisa juga terkelompok dalam sebuah subset
• Salah satu jenis kait yang dipakai adalah RING
• RING adalah:
• Dimana anggota subset yang pertama dan terakhir sama-sama terkait pada
header record
• Ring dapat disusun bertingkat-tingkat
• Sehingga anggota dari sebuah subset dapat menjadi header record bagi subset
tingkat dibawahnya

Struktur file
• Isi dan ukuran sebuah record sangat tergantung pada subset mana record
tersebut terkelompok
• Tiap record mempunyai sejumlah pointer yang menyatakan ke ring mana saja
record tersebut terkait
• Tiap ring (subset) mempunyai header
• Header adalah: entry point & atau anggota ring lainnya
• Cara penelusuran:
• Ring dimasuki melalui header
• Anggota ring ditelusuri satu persatu sampai ketemu
• Bila penelusuran kembali mencapai header berarti satu ring telah selesai
ditelusuri
Performance
1. Record Size
• Bisa mempunyai berbagai bentuk record di dalam sebuah file
• Atribut sebuah record dapat berada di dalam record tersebut, atau dapat
ditelusuri berdasarkan pointer yang ada
• Sebuah pointer di dalam record dapat menjadi pengganti dari sejumlah
atribut pada record tersebut

2. Fetch a record
• Untuk bisa mencapai sebuah record (yang terdapat di dalam ring) selalu
harus melalui headernya
• Sebuah ring hanya bisa dimasuki melalui entering pointnya

3. Get the next record


• Dilakukan dengan menelusuri ring yang terkait
• Next record tergantung atribut apa yang terkait
4. Insert a record
• Dilakukan dengan:
• Mengarahkan semua pointer dari predecessor record ke record baru
• Memindahkan semua nilai/isi pointer dari predecessor record ke record
baru

5. Delete a record
• Kebalikan dari insert:
• Melepaskan semua pointer dari predecessor record & semua pointer ke
successor record
• Mengarahkan semua pointer dari predecessor record ke successor
record

6. Modify a record
• Dilakukan dengan cara fetch & rewrite, bila hanya merubah isi record
• Hanya ring yang terkait saja yang di update
• Bila merubah urutan record, dilakukan seperti pada pelaksanaan insert

7. Read the entire file


• Dilakukan dengan:
• Pembacaan secara serial mengikuti semua kemungkinan hubungan yang
ada
• Menelusuri ring demi ring
• Bertingkat-tingkat, sampai seluruh record

8. Reorganize the file


• Secara normal tidak diperlukan reorganisasi
• Bila merubah file sebuah record, maka hanya ring & record yang terkait saja
yang perlu diproses

You might also like