SISTEM FILE
BERKAS DAN AKSES adalah :
Sistem penyimpanan, pengelolaan dan penyimpanan data pada alat
penyimpan eksternal. Pada berkas dan akses penyimpanan data dilakukan secara
fisik.
BEBERAPA ISTILAH :
1. Entitas adalah : Suatu objek yang dapat dibedakan dari lainnya. Objek ini
dapat berupa barang, orang, atau peristiwa lainnya.
Contoh : Entitas Pegawai, Mobil, Mahasiswa dan Nilai ujian
3. Item Data adalah : Tempat penyimpanan setiap atribut dari sebuah entitas.
Contoh Item data untuk nama mahasiswa, Item data untuk NPM.
Item Data itu biasa disebut field, tetapi lebih tepat dipakai untuk menentukan
tempat dimana item data disimpan
4. Item data elementer adalah Bagian yang lebih kecil dari item data
Catatan :
KD_MK : Kode Mata Kuliah
NM_DOSEN MATA KULIAH NM_MK : Nama Mata Kuliah
NM_DOSEN : Nama Dosen
KD_MK SKS
NM_MK
Manakah atribut(-atribut) yang bukan merupakan atribut dari file MATA KULIAH
di atas ?.
Tentu saja yang tidak boleh adalah NM_DOSEN dan KELAS karena mata kuliah
“Pancasila” bukan hanya diajar oleh “Drs. A. Muchji, MM” dan bukan hanya untuk
kelas “2KA03” saja. Nama dosen adalah atribut dari DOSEN, dan kelas adalah
atribut dari MAHASISWA.
ALAMAT NILAI
KLASIFIKASI DATA
KLASIFIKASI FILE
1. Master File (Berkas Induk)
2. Transaction File (Berkas Transaksi)
3. Report File (Berkas Laporan)
4. Work File (Berkas Kerja)
5. Program File (Berkas Program)
6. Text File (Berkas Teks)
7. Dump File (Berkas Tampung)
8. Library File (Berkas Pustaka)
9. History File (Berkas Sejarah)
1. MASTER FILE
Adalah file yang berisi data yang relatif tetap.
Master file (berkas induk) berisi objek-objek yang harus ada di sebuah unit kerja
(enterprise). Misalkan, di sebuah perguruan tinggi, objek-objek yang harus ada
seperti (1) mahasiswa, (2) dosen, (3) mata kuliah, (4) biaya kuliah, (5) ruang
kelas, dan sebagainya. Objek-objek tersebut harus disimpan datanya di dalam
file komputer, dan akan masuk ke dalam katagori master file.
Contoh lain :
Organisasi sebuah pabrik : * Payroll Master File
* Customer Master File
* Personnel Master File
* Inventory Master File
2. TRANSACTION FILE
Transaction file adalah berkas transaksi yang harus disimpan di dalam media
penyimpanan eksternal komputer. Transaction file terjadi akibat adanya
hubungan (relasi) antar master file
NAMA
DENDA *KD_BUKU
*NO_ANG ALAMAT
*KD_PINJ JUDUL
TGL_KEM
M N
PEMINJAM PINJAM BUKU JUMLAH
PENGARANG
TGL_PINJ
**NO_ANG TH_TERBIT
**KD_BUKU
Secara nyatanya, master file adalah file atau objek yang harus ada di suatu
enterprise (unit usaha atau unit kegiatan) yang apabila tidak ada objek tersebut,
maka unit usaha tersebut tidak akan berjalan sebagaimana fungsinya. Sebagai
contoh, unit usaha yang kita amati adalah sebuah SEKOLAH. Pertanyaannya adalah
: objek-objek apa yang harus ada di sekolah sehingga sekolah tersebut dapat
berjalan sebagai mana mestinya ?.
Tentu jawabannya :
1. Harus ada SISWAnya;
2. Harus ada GURUnya;
3. Harus ada MATA PELAJARANnya;
4. Harus ada TATA-TERTIBnya;
5. Harus ada UANG-SEKOLAHnya;
dan sebagainya.
3. REPORT FILE
Adalah file yang berisi data yang dibuat untuk laporan / keperluan user.
File tersebut dapat dicetak pada kertas printer atau hanya ditampilkan di layar.
4. WORK FILE
Merupakan file sementara dalam sistem.
Suatu work file merupakan alat untuk melewatkan data yang dibuat oleh sebuah
program ke program lain. Biasanya file ini dibuat pada waktu proses sortir.
5. PROGRAM FILE
Adalah file yang berisi instruksi-instruksi untuk memproses data yang akan
disimpan pada file lain / pada memori utama.
Instruksi tersebut dapat ditulis dalam bahasa tingkat tinggi (COBOL, FORTRAN,
BASIC, dan lain-lain), bahasa assembler dan bahasa mesin.
6. TEXT FILE
Adalah file yang berisi input data alphanumeric dan grafik yang digunakan oleh
sebuah text editor program. Text file hanya dapat diproses dengan text editor.
7. DUMP FILE
Adalah file yang digunakan untuk tujuan pengamanan (security), mencatat
tentang kegiatan peng-update-an, sekumpulan transaksi yang telah diproses atau
sebuah program yang mengalami kekeliruan.
8. LIBRARY FILE
Adalah file yang digunakan untuk penyimpanan program aplikasi, program utilitas
atau program lainnya.
9. HISTORY FILE
File ini merupakan tempat akumulasi dari hasil pemrosesan master file dan
transaction file. File ini berisikan data yang selalu bertambah, sehingga file ini
terus berkembang, sesuai dengan kegiatan yang terjadi.
Contoh :
Gambar di bawah ini menunjukkan system flow diagram dari suatu sistem
penggajian sementara untuk menghasilkan paycheck berdasarkan timecard dan
payroll information.
SORT SORT
PROGRAM WORKFILE
SORTED PAYROLL
TIMECARDS MASTER
PAY RECORD
UPDATE
PROGRAM
REJECT PAYCHECKS
TIMECARDS DETAIL RECONCILIATION
DETAIL
REJECT
REPORT PAYCHECKS RECONCILATION
REPORT
Tabel dibawah ini menunjukkan klasifikasi file dari sistem flow diagram.
FILE FUNGSI
Time cards Transaction
Sort Program Program
Sort Work File Work
Sorted – Time Cards Transaction
Payroll Master Master
Pay Record Update Program Program
Reject Time Cards Work
Pay Check Detail Work
Reconciliation Detail Work
List Utility Program Program
Reject Report Report
Paycheck Writer Program Program
Pay Checks Report
Reconciliation Report Writer Program Program
Reconciliation Report Report
1. INPUT FILE;
Adalah file yang hanya dapat dibaca dengan program.
Contoh :
• Transaction file merupakan input file untuk meng-update program
• Program file dari source code merupakan input file untuk program compiler
2. OUTPUT FILE;
Adalah file yang hanya dapat ditulis oleh sebuah program / file yang dibuat
dengan program.
Contoh :
• Report file merupakan output dari program yang meng-update master file.
• Program file yang berupa object code merupakan output file dari program
compiler.
Tabel di bawah ini menunjukkan model akses dari sistem flow diagram.
Note :
Sebuah file mempunyai lebih dari satu fungsi jika digunakan oleh lebih dari satu
program.
ORGANISASI FILE
Adalah suatu teknik atau cara yang digunakan menyatakan dan menyimpan record-
record dalam sebuah file.
Ada 4 teknik dasar organisasi file, yaitu :
1. Sequential
2. Relative
3. Indexed Sequential
4. Multi – Key
1. Direct Access;
Adalah suatu cara pengaksesan record yang langsung, tanpa mengakses
seluruh record yang ada.
Contoh : Magnetic Disk.
2. Sequential Access;
Adalah suatu cara pengaksesan record, yang didahului pengaksesan record-
record di depannya.
Contoh : Magnetic Tape.
Cara memilih organisasi file todak terlepas dari 2 aspek utama, yaitu :
1. Model Penggunaannya
2. Model Operasi File
2. Update;
Untuk menjaga agar file tetap up to date.
Insert / Add, Modification, Deletion.
3. Retrieval;
Pengaksesan sebuah file dengan tujuan untuk mendapatkan informasi.
Inquiry;
Volume data rendah, model proses interactive.
Report Generation;
Volume data tinggi, model proses batch.
4. Maintenance;
Perubahan yang dibuat terhadap file dengan tujuan memperbaiki penampilan
program dalam mengakses file tersebut.
Restructuring
Perubahan struktur file.
Misalnya :
Panjang field diubah, penambahan field baru, panjang record dirubah.
Reorganization
Perubahan organisasi file dari organisasi yang satu, menjadi organisasi file
yang lain.
Misalnya :
* Dari organisasi file sequential menjadi indeks sequential.
* Dari direct menjadi sequential.
Sistem File :
Sebuah sistem file sangat membantu para programmer untuk memungkinkan
mereka mengakses file, tanpa memperhatikan detail dari karakteristik dan waktu
penyimpanan. Sistem file ini juga yang mengatur direktori, device access dan buffer.
PROGRAM
INPUT STORAGE AREA OUTPUT PRIMARY
STORAGE STORAGE STORAGE SECTION
AREA WORKING AREA
STORAGE AREA
Control unit section, Primary storage section, ALU section adalah bagian dari CPU.
Berdasarkan hilang atau tidaknya berkas data atau berkas program di dalam
storage, yaitu :
1) Volatile Storage;
Berkas data atau program akan hilang, bila listrik dipadamkan.
2) Non Volatile Storage;
Berkas data atau program tidak akan hilang, sekalipun listrik dipadamkan.
HIERARKI STORAGE
Sequential Access
Storage Device
MAGNETIC TAPE
Magnetic tape adalah model pertama dari pada secondary memory. Tape ini
juga dipakai untuk alat input / output dimana informasi dimasukkan ke CPU dari tape
dan informasi diambil dari CPU lalu disimpan pada tape lainnya.
Panjang tape pada umumnya 2400 feet, lebarnya ½ inch dan tebalnya 2 mm.
Data disimpan dalam bintik kecil yang bermagnit dan tidak tampak pada bahan
plastik yang dilapisi ferroksida. Flexible plastiknya disebut Mylar. Mekanisme
aksesnya adlah tape drive.
Jumlah data yang ditampung tergantung pada model tape yang digunakan.
Untuk tape yang panjangnya 2400 feet, dapat menampung kira-kira 23.000.000
karakter. penyimpanan data pada tape adalah dengan cara sequential.
Satuan yang digunakan density adalah bytes per-inch (bpi). Umumnya density dari
tape adalah 1600 bpi dan 6250 bpi. Bpi (bytes per-inch) ekivalen dengan characters
per-inch.
Contoh :
Track 1 : 0 0 0 0 0 0
2 : 1 1 1 1 1 1
3 : 1 1 1 1 1 1
4 : 0 1 0 1 0 1
5 : 1 1 0 1 1 0
6 : 1 1 1 1 0 0
7 : 0 1 1 1 1 0
8 : 0 0 1 1 1 1
Ada 2 teknik dasar untuk pengalamatan data yang disimpan pada disk, yaitu :
1. Metode Silinder;
Pengalamatan berdasarkan nomor silinder, nomor permukaan dan nomor
record. Semua track dari disk pack membentuk suatu silinder. jadi bila suatu disk
pack dengan 200 track per-permukaan, maka mempunyai 200 silinder.
Bagian nomor permukaan dari pengalamatan record menunjukkan
permukaan silinder record yang disimpan. Jika ada 11 piringan, maka nomor
permukaannya dari 0 – 19 (1 – 20). Pengalamatan dari nomor record
menunjukkan dimana record terletak pada track yang ditunjukkan dengan nomor
silinder dan nomor permukaan.
2. Metode Sektor;
Setiap track dari pack dibagi ke dalam sektor-sektor. Setiap sektor adalah
storage area untuk banyaknya karakter yang tetap. Pengalamatan recordnya
berdasarkan nomor sektor, nomor track dan nomor permukaan. Nomor sektor
yang diberikan oleh disk controller menunjukkan track mana yang akan diakses
dan pengalamatan record terletak pada track yang mana.
Setiap track pada setiap piringan mempunyai kapasitas penyimpanan yang
sama, meskipun diameter tracknya berlainan. Keseragaman kapasitas dicapai
dengan penyesuaian density yang tepat dari representasi data untuk setiap
ukuran track. Keuntungan lain pendekatan keseragaman kapasitas adalah file
Jawab :
1 block 1 record;
2400 ft/tape * 12 in/ft
-------------------------------------------------------------------- = 46753 block/tape
100 char/rec
1 rec/block * --------------- + 0.6 in/gap * 1 gap/block
6250 char/in
tape tersebut berisi 46753 record.
1 block 20 record;
2400 ft/tape * 12 in/ft
--------------------------------------------------------------------- = 31304 block/tape
100 char/rec
20 rec/block * --------------- + 0.6 in/gap * 1 gap/block
6250 char/in
tape tersebut berisi = 20 * 31304
= 626080 record.
Jawab :
1 block 1 record;
46753 block/tape*0.016 in/block
= -----------------------------------------+46753 block/tape*0.004sec/gap*1 gap/block
200 in/sec
= 190.75 sec/tape
waktu akses yang dibutuhkan tape tersebut adalah 190.75 sec.
Latihan
Pandang suatu bagian dari tape yang berisi :
Track 1 : 1 0 0 0 1 1
2 : 1 1 1 1 1 0
3 : 0 0 0 1 1 1
4 : 0 0 0 1 0 1
5 : 0 1 0 1 1 1
6 : 1 0 0 1 1 1
7 : 1 1 1 0 0 0
8 : 1 0 0 0 0 0
Bagaimana isi dari track ke-9, jika untuk merekam data digunakan :
a. Even Parity
b. Odd Parity
Latihan
Soal 1;
Densitas suatu tape adalah 1600 bpi dan panjang interblock gap adalah 0.75 inch.
Record yang panjangnya 40 character akan disimpan pada tape yang panjangnya
2400 feet.
Ditanya :
♦ Berapa banyak record yang dapat disimpan jika dalam 1 block berisi 1 record ?
♦ Berapa banyak record yang dapat disimpan jika dalam 1 block berisi 10 record ?
Contoh:
Pada gambar, dalam sistem penggajian terpadu (Intergrated personnel-payroll
system) mempunyai sebuah berkas pegawai (Employee file) yang terdiri dari dua
jenis record, yaitu:
Personnel Record
rec empno nam addres marital sex home mil educ so
type e s status log code
Payroll Record
rec empno fund accou base % resp date date
type type nt salrate time dept start chang
e
Record-record pada berkas tersebut tidak memerlukan format dan ukuran yang
sama. Pada contoh tersebut, berkas disortir berdasarkan : EMP-NO, REC-TYPE
Pola Akses
Pola Akses adalah penentuan akses berdasarkan field tertentu. Selama pola
akses, berkas sequential dapat dipasangkan dengan record-record yang sudah
diurut pada berkas, maka waktu aksesnya sangat baik.
Jadi kita harus menentukan pola akses terlebih dahulu, kemudian baru
menentukan organisasi berkas sequential berdasarkan urutan yang sesuai dengan
pola aksesnya, jangan sebaliknya.
Contoh:
Berkas gaji yang disusun secara sequential berdasarkan NIP, hendak
diakses berdasarkan NAMA, maka program tidak baik. Juga tidak baik mengakses
record dengan urutan sebagai berikut:
NIP = 15024508, NIP = 15024607
NIP = 15024115, NIP = 1502800
Dimana NIP tersebut belum tersortir.
♦ Sistem yang dikonfigurasikan untuk fungsi berkas tertentu, selalu disimpan dalam
disk.
Contoh :
Printer hanya dapat menerima semua berkas yang akan dicetak, bila terlebih
dahulu berkas tersebut disimpan dalam disk. Jadi bila kita ingin membuat sebuah
berkas laporan, maka harus ditentukan dari disk ke printer.
♦ Karakteristik lalu lintas saluran dan kapasitas saluran pada sistem dapat dibuat
menguntungkan dengan cara memisahkan berkas-berkas dalam media
penyimpanan.
Contoh :
Sebuah sistem akan dikonfigurasikan dengan 2 tape drive pada satu saluran dan
2 disk drive pada saluran lain. Jika volume data besar, yang dihasilkan oleh
sebuah program dari 2 berkas sekuensial, maka akan menguntungkan bila
berkas-berkas tersebut diletakkan pada saluran terpisah, daripada diletakan pada
perlatan yang salurannya digunakan bersama-sama.
Transaction
EDIT
SORT
Sorted Batch
of Edited
Transaction
Update
Sorted
Edited Report Data
Transaction
Report
Writer
Report
Report
Printer
Master File
101 Bimo Jl. A 50
102 Seno Jl. C 30
103 Henni Jl. Z 50
104 Pandu Jl. D 70
Old
Master
Sorted
Transaction
UPDATE (next cycle)
Rejected
Transaction
REPORT New
Master
Generation File
Selama next cycle pada proses update, new master file yang sekarang akan menjadi
old master file. Menjadi banyaknya master file inilah yang disebut sebagai
Generation File. File yang mempunyai nama yang sama, tetapi berbeda nomor
generasinya. Jika old master sekarang merupakan generasi 1, maka new master
berikutnya merupakan generasi 2, new master pada next cycle menjadi generasi 3,
dan seterusnya.
JENIS UPDATE
Ada 3 jenis update yang akan dapat dilaksanakan pada master file :
1) Insert a new record
2) Delete an existing record
3) Modify an existing record
Contoh :
Master Trans – Type
101 101 1
102 103 2 1 : Delete
103 105 1 2 : Insert
104 107 3 3 : Modify
101 2
File Activity Ratio = 1/4
Contoh :
Sebuah master file berisi 10 record. Transaksi yang akan diproses adalah
sebagai berikut :
Master Trans – Type
111 2
111 1 1 : Delete
96 3 2 : Insert
400 1 3 : Modify
96 1
111 2
400 3
342 3
96 2
Dalam berkas relative ada hubungan antara key yang dipakai untuk mengidentifikasi
record dengan lokasi record dalam penyimpanan sekunder
Urutan record secara logic tidak ada hubungannya dengan urutan secara
fisik.Record tidak perlu tersortir secara fisik menurut nilai key
PROSES
Pada waktu sebuah record ditulis kedalam berkas relative, fungsi pemetaan R
digunakan untuk menerjemahkan NILAI KEY DARI RECORD menjadi ADDRESS,
dimana record tersebut disimpan.
Begitu pula pada waktu akan me-retrieve record dengan nilai key tertentu, fungsi
pemetaan R digunakan terhadap nilai key tersebut, untuk menerjemahkan nilai key
itu menjadi sebuah address dalam penyimpanan sekunder, dimana record tersebut
ditemukan.
Contoh :
Record dalam gambar pada hal. 15, diretrieve secara consecutive;
Sebuah on-line system perbankan yang mempunyai sebuah master file dan sebuah
transaction file.Field ACCOUNT NUMBER dipakai sebagai nilai key untuk keduan
berkas tersebut.
Pada saat nilai key ACCOUNT NUMBER dimasukan ke dalam transaksi, nilai key
tersebut akan me-retrieve secara langsung record yang ada pada master file.
Jika Trans-Type = ‘I’, maka BALANCE ACCOUNT akan ditampilkan dilayar. Jika
Trans-Type = ‘C’ atau ‘D’, maka record-record dari master file Customer Account
akan dimodifikasi dengan AMOUNT dan DATE yang ada di transaction file, dimana
ACCOUNT NUMBER yang menentukan lokasi record dalam berkas tersebut.
Catatan :
¾ Kita tidak perlu mengakses semua record master file, cukup mengakses
langsung record yang dikehendaki
.
¾ Record dari berkas relative dapat diupdate langsung tanpa perlu merekam
kembali semua record
Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan R, dimana
R(NILAI KEY) ADDRESS.
Teknik ini merupakan teknik yang sederhana untuk menerjemahkan nilai record key
menjadi address. Ada 2 cara dalam pemetaan langsung, yaitu :
) Pengalamatan Mutlak
Nilai key yang diberikan oleh pemakai program sama dengan ADDRESS
SEBENARNYA dari record tersebut pada penyimpanan sekunder.
Kelemahannya :
) 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 relative dari
himpunan (1,2,3,…,N-2, N-1). Record yang ke I mempunyai alamat relative I atau I-1
(bila mulai dihitungnya dari 0).
Kelemahannya :
Dasar pemikiran pendekatan pencarian table adalah sebuah table atau direktori dari
nilai key dan address. Untuk menemukan sebuah record dalam berkas relative,
pertama dicari dalam direktori nilai key dari record tersebut, yang akan menunjukkan
alamat dimana record tersebut berada dalam penyimpanan.
Data dalam direktori tersebut disusun secara urut menurut nilai key, sehingga
pencarian nilai key dalam direktori lebih cepat dengan binary search dibandingkan
sequential search. Alternatif lain, direktori dapat disusun dalam binary search tree,
M-way search tree atau B-tree.
V Sebuah record dapat diakses dengan cepat, setelah nilai key dalam direktori
ditentukan.
V Nilai key dapat berupa field yang mudah dimengerti seperti PART NUMBER,
NPM, karena nilaimkey tersebut akan diterjemahkan menjadi alamat.
V Nilai key adalah address space independent, dimana reorganisasi berkas tak
akan mempengaruhi nilai key, yang berubah adalah alamat dalam direktori.
Adalah dengan melakukan kalkulasi terhadap nilai key, hasilnya adalah alamat
relatif.
Ide dasar dari kalkulasi alamat adalah mengubah jangkauan nilai key yang mungkin,
menjadi sejumlah kecil alamat relative.
Salah satu kelemahan dari teknik pengalamatan relative adalah ruang harus
disediakan sebanyak jangkauan nilai key, terlepas dari berapa banyak nilai key.
Salah satu masalah dari teknik ini adalah ditemukannya alamat relative yang
sama untuk nilai key yang berbeda.
Keadaan dimana :
V Nilai key yang sebenarnya dapat dipakai karena diterjemahkan ke dalam sebuah
alamat.
V Nilai key adalah address space independent bila berkas direorganisasi, fungsi
hash berubah tetapi nilai key tetap.
Kelemahannya :
Hashing dapat digunakan bersama-sama dengan pencarian table, lihat gambar pada
halaman 13
V Division Remainder
V Mid Square
V Folding
Division Remainder
Pada division remainder, alamat relative dari suatu nilai key merupakan sisa dari
hasil pembagian nilai key tersebut dengan suatu bilangan yang disebut sebagai
bilangan pembagi.
Contoh :
Bila DIV adalah pembagi, KEY adalah nilai key dan ADDR adalah alamat relative,
maka dalam bahasa Pascal, fungsi R(NILAI KEY) ADDRESS. Dapat
diimplementasikan :
V Jangkauan dari nilai key yang dihasilkan dari operasi KEY MOD DIV adalah 0
sampai DIV-1.Nilai dari DIV menentukan ukuran “relatif address space”.Jika
diketahui berkas relatif terdiri dari N record dan dianggap hanya satu record
dapat disimpan dalam sebuah alamat relatif, maka akan didapat DIV > N
V Pembagi harus diseleksi untuk mengurangi benturan. Penyelidikan menunjukkan
bahwa pembagi yang berupa bilangan genap akan cenderung jelek, terutama
dengan nilai key-nya yang dominan ganjil.
V Menurut riset dari W.Buchholz, sebaiknya pembagi itu merupakan bilangan
prima. Tetapi riset lain dari V.Y.Lum, menyatakan pembagi yang bukan bilangan
prima akan memberikan hasil yang sama baik seperti bilangan prima.
V Menurut pendapatnya, bukan bilangan prima yang mempunyai faktor prima
kurang dari 20 akan dapat memberikan jaminan penampilan yang lebih baik
V Walaupun kita telah menentukan pembagi dengan baik untuk mengatasi
benturan, bila ruang alamat dari berkas relative mendekati penuh, maka peluang
terjadinya benturan akan meningkat.
Untuk mengukur kepenuhan berkas relative digunakan Load Factor (Faktor Muat)
n
0.8 =
max
max = 1.25 n
Contoh :
Kita ingin membuat berkas yang terdiri dari 4000 record.
Load Factor (Faktor muat) = 0.8
Maka max. banyak record pada berkas :
Kita mulai dari digit ke 8 dihitung dari kiri, maka alamat relative = 8750 (karena
ditentukan 4 digit sebagai alamat relatif).
Hashing by folding
Untuk mendapatkan alamat relatif, nilai key dibagi menjadi beberapa bagian, setiap
bagian (kecuali bagian terakhir) mempunyai jumlah digit yang sama dengan alamat
relatif.
Bagian-bagian ini kemudian dilipat (seperti kertas) dan dijumlah. Hasilnya, digit yang
tertinggi dibuang (bila diperlukan)
Contoh :
Nilai key 123456789 dan alamat relatif sebanyak 4 digit . Nilai key dibagi menjadi
bagian-bagian yang terdiri dari 4 digit, mulai dari sebelah kanan.
1 2345 6 7 8
9
1 2345 6 7 8
9
1
2345
9876 +
13221
alamat relatif
• Open Addressing
Menemukan address yang bukan home address untuk K2 dalam berkas relatif
Contoh :
K1 = 1 K2 = 1
R1 R2
K1 K2
• Separate Overflow
Menemukan address untuk K2 diluar dari primary area dalam berkas relatif, yaitu di
overflow area yang dipakai hanya untuk menyimpan record-record yang tak dapat
disimpan di home addressnya.
K1 = 1 K2 = 1
R1
K1
Overflow area
K2
• Linier Probing
Salah satu cara menemukan lokasi record yang tak dapat disimpan di home
addressnya adalah dengan menggunakan Linear Probing, yang merupakan sebuah
proses pencarian secara sequential/linear dari home address sampai lokasi yang
kosong.
• Double Hashing
Pendekatan lain dalam menemukan lokasi sebuah record pada waktu record
tersebut tidak dapat disimpan dalam home addressnya adalah dengan
menggunakan Double Hashing, yang akan memakai fungsi hash kedua terhadap
hasil dari fungsi hash pertama. Address dari record yang dihash kembali dapay
terletak pada primary area atau di separate overflow area.
Berkas dengan load factor kurang dari 0.5 pada linear probing akan menghasilkan
synonym yang mengelompok, sedangkan double hashing synonimnya berpencar.
• Synonim Chaining
Pendekatan pemecahan collision yang mengakses synonym dengan fasilitas link list
untuk record-recordnya dalam kelas ekivalen. Adapun link list record-record dengan
home address yang sama tak akan mengurangi jumlah collision, tetapi akan
mengurangi waktu akses untuk me-retrieve record-record yang tak ada di home
addressnya.
Adams 20 20
Bates 21 21
Coll 20 22
Dean 21 23
Evans 24 24
Flint 20 25
21
Bates .. 1 Dean ..
22 2 Flint ..
23 3
24 Evans ..
Pendekatan lain dalam mengatasi collision adalah hash ke dalam block atau bucket
yang dapat memberikan tempat sejumlah record.
Contoh :
Sebuah berkas relative mempunyai relative address space dari 0 sampai M dan
sebuah bucket berukuran B record, address space akan terdiri dari B(M+1) record.
Jika file terdiri dari N record, maka :
N
Factor Muat = B(M + 1)
B record dapat semuanya di hash kedalam relitf address yang sama tanpa
menyebabkan collision.
Pada saat sebuah bucket penuh, beberapa tempat baru harus ditemukan untuk
record tersebut. Pendekatan dari masalah bucket penuh pada dasarnya sama
dengan pendekatan untuk mengatasi collision dengan record addressing.
Jika open addressing dipakai, space dicari untuk bucket berikutnya (misal dengan
linear probing) atau dalam bucket lainnya (misalnya dengan double hashing).
Jika teknik separate overflow yang dipakai, record baru ditempatkan dalam suatu
himpunan bucket yang dirancang khusu untuk tempat record yang tak dapat
ditampung pada bucket primer.Bucket ini disebut bucket overflow.
Bucket addressing ini umum dipakai. Ukuran dari sebuah bucket dapat ditentukan
oleh ukuran track atau sector dalam DASD. Ukuran bucket umumnya sama dengan
ukuran block untuk file.
Satu keuntungan penting dari penggunaan bucket yang dapat menampung banyak
record ini adalah record dengan panjang yang berbeda dapat dipakai.
Contoh :
30 Green .. Hall ..
31
32 Jenks ..
33 King .. Land .. Marks ..
overflow
Null
STRUKTUR POHON
Sebuah pohon (tree) adalah struktur dari sekumpulan elemen, dengan salah satu
elemennya merupakan akarnya atau root dan sisanya yang lain merupakan
bagian-bagian pohon yang terorganisasi dalam susunan berhirarki dengan root
sebagai puncaknya.
Contoh umum dimana struktur pohon sering ditemukan adalah pada penyusunan
silsilah keluarga, hirarki suatu organisasi, daftar isi suatu buku dan lain
sebagainya.
Contoh :
Handoko
Andi Reni
n1 n2 ... nk n1 n2 ... nk
Pohon Biner
Salah satu tipe pohon yang paling banyak dipelajari adalah pohon biner. Pohon
Biner adalah pohon yang setiap simpulnya memiliki paling banyak dua buah
cabang / anak.
A A A A A
B B B B A A
A A
Adapun jenis akses yang diperbolehkan, yaitu :
¾ Akses Sekuensial
¾ Akses Direct
Sedangkan jenis prosesnya adalah :
¾ Batch
¾ Interactive
Struktur Berkas Indeks sekuensial
¾ Indeks → Binary Search Tree
¾ Data → Sekuensial
INDEX
SEQUENTIAL
MAMMOTH N/2 Position DATA FILE
1 APE
COW 4
2 BAT
3 CAT
BAT 2 DOG 5
4 COW
ZEBRA N 5 DOG
Lihat gambar
Pada gambar tersebut ada N blok data dan 3 tingkat dari indeks. Setiap
entry pada indeks mempunyai bentuk (nilai key terendah, pointer), dimana pointer
menunjuk pada blok yang lain, dengan nilai key-nya sebagai nilai key terendah.
Setiap tingkat dari blok indeks menunjuk seluruh blok, kecuali blok indeks pada
tingkat terendah yang menunjuk ke blok data.
Jika sebuah permintaan untuk mengakses record tertentu, misal kita ingin
mengakses dengan nilai key BAT, indeks dengan tingkat tertinggi (dalam hal ini blok
indeks 3-1) yang pertama yang akan dicari pada contoh ini, pointer dari AARDVARK
menunjuk blok indeks 2-1. Pointer yang ditunjuk pada kotak tersebut adalah pointer
yang berisikan AARDVARK, yang akan menunjuk ke blok indeks 1-1. POinter
berikutnya yang akan ditunjuk adalah pointer yang berisi BABOON, yang selanjutnya
akan menunjuk blok data 2. Blok data ini akan mencari untuk record dengan key
tujuan, yaitu BAT, dimana pada blok ini record tersebut ditemukan.
Permintaan untuk akses data dalam urutan sequential dilayani dengan
mengakses blok data dalam urutan sequential. Sebagai catatan blok data
merupakan consecutive secara logik dan bukan consecutive secara fisik. Dalam hal
ini, blok data harus dihubungkan secara bersama dalam urutan secara logik, seperti
terlihat pada gambar.
Misal :
Setiap blok data mempunyai ruang yang cukup untuk menampung 5 record dan
setiap blok indeks mempunyai ruang yang cukup untuk menyimpan 4 pasang
(nilai key, pointer).
Parameter ini biasanya sudah dilengkapi dengan rutin dukungan sistem
manajemen data, pada saat berkas binatang ini dibentuk.
Jika kita menginginkan penyisipan maupun penghapusan terhadap isi
berkas, maka blok indeks dan blok data akan dibuat dengan sejumlah ruang bebas,
yang biasanya disebut sebagai padding dan pada gambar ditunjukkan sebagai
irisan.
Permintaan : INSERT APE
INSERT AIREDALE
key
AARDVARK
AIREDALE
ALBATROSS
ALLIGATOR
APE
DATA BLOCK 1
Permintaan :
INSERT ARMADILLO
AARDVARK
ALBATROSS
ALLIGATOR
key
DATA BLOCK 1
AARDVARK key
BABOON BABOON
COW BAT
CALF
INDEX BLOCK
1.1
key
LLAMA COW
DOG
INDEX BLOCK ELEPHANT
AARDVARK 2.1
MAMMOTH
key
key
AARDVARK
AIREDALE
ALBATROSS
key
AARDVARK
DATA BLOCK 1
From index ALLIGATOR
block 2.1 key
BABOON
COW AARDVARK
AIREDALE
INDEX BLOCK
ALBATROSS
1.1
To data
block 2
DATA BLOCK 1A
Permintaan :
INSERT CAT
INSERT BEAR
INSERT BOBCAT
Akan mengisi blok data 2, tetapi blok data tersebut harus dipecah menjadi
blok data 2 dan 2A
Blok indeks 1-1 sudah penuh dan tidak dapat memuat pointer pada blok
data 2A, sehingga inipun harus dipecah, dengan cara mengubah penafsiran indeks
pada tingkat 2.
Jika blok indeks pada tingkat paling tinggi (dalam hal ini indeks tingkat 3)
sudah penuh, maka harus dipecah, sehingga sebuah indeks tingkat yang baru akan
ditambahkan pada indeks tree.
Maka seluruh pencarian langsung memerlukan pengaksesan empat blok
indeks dan sebuah blok data.
AARDVARK
AIREDALE
ALBATROSS
key
AARDVARK
DATA BLOCK 1
From index ALLIGATOR
block 2.1 key
BABOON
COW AARDVARK
AIREDALE
INDEX BLOCK
ALBATROSS
1.1
To data
block 2
DATA BLOCK
1A
Dalam sebuah track data, tracknya disimpan secara urut berdasarkan nilai key.
Tingkat pertama dari indeks dalam berkas indeks dinamakan master indeks.
Entry pada indeks ini adalah dalam bentuk :
nilai key tertinggi, pointer
Tingkat kedua dari indeks dinamakan cylinder indeks.
Indeks ini berisi pointer pada berkas prime data dan entry-nya dalam bentuk :
nilai key tertinggi, nomor cylinder
Jika sebuah permintaan untuk mengakses record tertentu, misal kita akan
mengakses dengan nilai key BAT, pertama akan dicari pada master indeks. Karena
BAT ada di depan LYNX, maka pointer dari LYNX akan menunjuk ke cylinder index.
Karena BAT ada di depan ELEPHANT, maka pointer dari ELEPHANT akan
menunjuk ke track 0 dari cylinder 1. Karena BAT ada di belakang BABOON dan di
depan COW, maka pointer dari BABOON akan menunjuk ke track 2, yang mencari
secara sequential sampai BAT ditemukan.
Permintaan untuk mengakses data secara sequential akan dilayani dengan
mengakses cylinder dan track dari berkas data prime secara urut.
Misal setiap track dari berkas prime data mempunyai ruang yang cukup
untuk menampung 5 record (jika penyisipan dan penghapusan terhadap berkas
dilakukan, maka akan dibentuk padding).
cylinder 1
track 0 : no change
track 1 : AARDVARK,,,,,,,AIREDALE,,,,,,,,,ALBATROSS,,,,,,,,,ALLIGATOR,,,,,,,APE,,,,,,,,,,
track 2 : no change
track 3 : no change
Permintaan :
INSERT ARMADILLO
cylinder 1 :
track 0 : AARDVARK, track 1, ARMADILLO, ovfl-ptr, BABOON, track 2, COW, track 3
track 1 :
track 2 : no change
track 3 :
cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,
Karena ARMADILLO seharusnya berada setelah kelima entry pada track 1 dari
cylinder 1, tetapi karena track ini sudah penuh, maka ARMADILLO dipindahkan
ke overflow data area. Indeks track dari cylinder 1 harus dimodifikasi untuk
memperlihatkan bahwa ada sebuah record pada overflow area yang secara logik
seharusnya menempati pada akhir dari track 1, sehingga penambahan dari entry
itu adalah :
Akan mengisi track 2 dari cylinder 1 pada prime data area, tetapi pengisian
tersebut mengakibatkan penggunaan overflow area. Perhatikan CAT dipindahkan ke
overflow area, karena entry pada prime track tidak hanya harus dalam urutan, tetapi
juga entry tersebut harus mendahului suatu entry overflow dari track tersebut.
Hasilnya ditunjukkan pada gambar di bawah ini :
cylinder 1 :
track 0 : AARDVARK, track 1, ARMADILLO, * ,BABOON, track 2, CAT, * ,COW, track 3
track 1 : AARDVARK,,,,,,,,,A IREDALE,,,,,,,,,,ALBATROSS,,,,,,,, ALLIGATOR,,,,,,,, APE,,,,,,
track 2 : BABOON,,,,,BAT,,,,,BEAR,,,,,BOBCAT,,,,,CALF,,,,,,,,,,,,
track 3 : COW,,,,,,,,DOG,,,,,,,,,ELEPHANT,,,,,,,,,,,
cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,CAT,,,,,,,,,,,,,
ovrfl
Permintaan :
INSERT ANT
Hasilnya ditunjukkan pada gambar di bawah ini :
cylinder 1 :
track 0 : AARDVARK, track 1, APE, * ,BABOON, track 2, CAT, * ,COW, track 3
track 1 : AARDVARK,,,,,,,,,A IREDALE,,,,,,,,,,ALBATROSS,,,,,,,, ALLIGATOR,,,,,,,, ANT,,,,,,
track 2 : BABOON,,,,,BAT,,,,,BEAR,,,,,BOBCAT,,,,,CALF,,,,,,,,,,,,
track 3 : COW,,,,,,,,DOG,,,,,,,,,ELEPHANT,,,,,,,,,,,
cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,CAT,,,,,,,,,,,,,APE,,,,,,,,,,,,,,,,,
ovrfl
Multi-Key Access
One Access Key ?
Yes
Yes No
No
Yes
Indexed Sequential
Relative Organization
Orgaization
Account
Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau
sebuah indeks sequential. Sebuah indeks inversi dengan key SOCNO untuk
sebuah relatif file dengan nilai key ID akan memberikan sebuah file yang dapat
diakses langsung oleh sebuah ID atau SOCNO.
SOCNO ID
001234123 291821
123456789 208432
213823456 486212
299167305 534216
399042131 201431
411625331 415631
412631467 300123
426135447 696123
445062681 535218
459463001 111111
513014265 310103
612305116 324196
626311660 641230
692122222 387122
713214622 198121
Jika sebuah key dipakai untuk menentukan struktur storage dari file
disebut primary key, sedangkan key yang lainnya disebut secondary key.
File yang mempunyai indeks inversi untuk setiap data field disebut
completely inverted. File yang bukan completely inverted tapi paling sedikit
mempunyai satu indeks inversi disebut partialy inverted file.
Sebuah variasi dari struktur indeks inversi adalah pemakaian secondary
key dan primary key dari indirect addressing. Pendekatan ini membiarkan file
yang direorganisasi dan restructure secara fisik tanpa menyebabkan indeks file.
Pada contoh di atas, nilai SOCNO adalah unik. Setiap SOCNO dalam
indeks inversi mempunyai record. Indeks inversi dapat juga dipakai dengan key
yang bukan unik.
GROUP-CODE
ID
BRANCH TYPE
DT 001 111111, 201431, 310103, 686116
DT 002 198121, 335812, 486212, 641230
EA 001 324196, 534216, 535218
NE 001 415631
NE 002 300123, 696123
NW 001 112131, 208432, 511211
NW 002 291821
WE 002 386132, 387122
Satu hal yang baik dari inversi file adalah beberapa pertanyaan di
bawah ini dapat dijawab tanpa akses data file, cukup dengan indeks inversinya.
¾ Apakah ada indeks untuk SOCNO = ‘414556233’ ?
¾ Berapa banyak account dengan GROUP-CODE = ‘EA001’ ?
¾ Berapa banyak account dengann BRANCH = ‘NE’ ?
¾ Apakah BRANCH = ‘NE’ mempunyai TYPE = ‘001’ ?
MULTI-LIST ORGANIZATION
GROUP-CODE
ID
BRANCH TYPE
DT 001 111111
DT 002 198121
EA 001 324196
NE 001 415631
NE 002 300123
NW 001 112131
NW 002 291821
WE 002 386132
Multi-List indeks untuk GROUP-CODE secondary key
GROUP-CODE
ID
BRANCH TYPE
0. 111111
100. 112131
200. 198121
250 511211
Multi-List indeks untuk OVERDRAW-LIMIT secondary key
Contoh :
Sebuah file berisi 2000 record harus disortir ke dalam memori yang hanya
dapat menampung 1000 record sekaligus. Untuk itu digunakan metode sort
eksternal.
Langkah-langkah penyortiran ini adalah :
Record-record dibagi ke dalam beberapa file agar dapat ditampung
sekaligus di memori komputer, lalu masing-masing bagian disortir
internal. Bagian-bagian file yang terlah tersortir ini disebut sorted
sublist.
Maka didapat :
• Sorted sublist 1 (record 1 – 1000) dan
• Sorted sublist 2 (record 1001 – 2000)
Setelah itu kedua sorted sublist ini (RUN) digabung (merge), sehingga
didapat berkas gabungan (merge file) yang record-recordnya telah
disortir.
Sorted sublist 2
(records 1001 – 2000)
Maka dapat disimpulkan langkah-langkah untuk metode sort eksternal ini adalah :
o Sort internal, dimana file dibagi menjadi beberapa bagian file, kemudian disortir.
o Merge, dimana bagian-bagian file ini (sorted sublist) digabung menjadi satu atau
lebih file gabungan. File-file gabungan kemudian digabung lagi sampai akhirnya
didapatkan sebuah file gabungan yang berisi semua record-record yang telah
disortir.
o Output, yang menyalin file gabungan yang telah tersortir ke media storage terakhir.
Teknik sort/merge file ini berbeda satu dengan yang lainnya dalam hal :
• Metode sort internal yang digunakan
• Jumlah main memori yang disediakan untuk sort internal
• Distribusi dari sorted sublist di secondary storage menjadi satu atau lebih file
gabungan dalam satu langkah gabungan (merge pass)
Contoh :
Sebuah file yang terdiri dari 6000 record hendak disortir ke dalam memori komputer
yang kapasitasnya 1000 record.
Buatlah dengan menggunakan 2 way natural merge !
Lihat gambar 1
Lihat pula contoh 3 way natural merge, yang ditunjukkan pada :
Gambar 2
Lihat pula contoh 2 way natural merge dengan kapasitas memori 500 record.
Gambar 3
Lihat pula contoh 3 way natural merge dengan kapasitas memori 500 record.
Gambar 4
Balanced Merge
Dari metode natural merge kita lihat bahwa, jika kita gunakan M input file,
maka file seluruhnya yang kita gunakan adalah M + 1 file.
Sedangkan pada balanced merge, jika kita gunakan M input file, maka file
seluruhnya yang dipakai adalah 2 M file.
Pada balanced merge terbagi lagi menjadi :
2 way balanced merge
3 way balanced merge
:
:
M way balanced merge
Polyphase Merge
Pada M way polyphase merge digunakan 2 M-1 input file dengan 1 output file.
Jadi kita menggunakan 2 way polyphase merge, maka banyaknya input file yang
digunakan ada 3 input file.
Contoh :
Setelah phase sort internal, misalkan kita mempunyai 17 subfile atau 17 run
yang akan didistribusikan ke input file. Jika kita menggunakan 2 way polyphase merge,
berarti 17 run tersebut harus didistribusikan ke dalam 3 input file.
Dari pendistribusian tersebut, maka diperoleh :
Lihat gambar 6
Cascade Merge
Jenis lain dari unbalanced merge yang berusaha mengurangi penyalinan/copy
dari record-record disebut cascade merge.
Cascade merge dengan derajat M menggunakan :
2 M-1, 2 M-2, 2 M-3, … , kemudian 2 input file selama merge
Setiap merge pass dimulai dengan merge dari :
2 M-1 input file ke 1 output file
Pada cascade merge, pendistribusian run-nya sama dengan pendistribusian run pada
polyphase merge, hanya berbeda pada phase merge-nya.
Lihat gambar 7
Gambar 2
Channel
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 (I/O channel).
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).
Additonal
Contro
Units
Additonal DEVICE
Channels
CPU
MAIN MEMORY DEVICE
CHANNEL CONTROL
UNIT
DEVICE
DEVICE
Macam-macam Device
1. Dedicated Device;
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh : Terminal.
2. Shared Device;
Digunakan untuk pengaksesan oleh banyak pemakai secara bersamaan.
Contoh : Disk.
Aktifitas I/O untuk shared device adalah sangat kompleks dibanding aktifitas
I/O pada dedicated device. Dua fungsi yang sangat penting dari shared device adalah
alokasi tempat dan pemberian akses yang tepat.
Manajemen Buffer
Terbagi menjadi 4 jenis manajemen yaitu :
1. Single Buffering;
2. Anticipatory Buffering;
3. Double Buffering;
4. Three Buffers;
1. Single Buffering;
BUFFER
To start of
Channel program
BUFFER
DATA AREA
Gambar di atas menunjukkan struktur data dari buffer dalam bentuk yang
sederhana, yang terdiri dari satu record per-block dan satu buffer per-berkas,
2. Anticipatory Buffering;
Pendekatan lain yang dapat menghilangkan beberapa hal yang mungkin
untuk menunggu CPU adalah dengan menggunakan Anticipatory Buffering.
Dengan anticipatory buffering, sistem kontrol I/O akan berusaha
mendahulukan kebutuhan program akan data. Diusahakan agar buffer selalu
penuh. Channel selalu menguji flag ini. Jika buffer mendekati kosong, karena
pemakai program telah membaca isinya maka flag itu akan direset dan channel
program akan menginitates pengisian kembali buffer.
Struktur dasar channel program untuk mengisi sebuah buffer dengan
anticipatory buffer diperlihatkan pada gambar di bawah ini :
BUFFER
To start of
Channel program
FULL-FLAG
BUFFER
DATA AREA Where full-flag = 0 if the buffer is empty,
= 1 if the buffer is full
3. Double Buffering;
Untuk mengurangi kemungkinan dari program menunggu, maka double
buffer dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang
ditetapkan untuk berkas.
BUFFER 1 BUFFER 2
Next Next
To start of
Chp Chp
Channel program
Full-flag Full-flag
Record-ctr Record-ctr
Buffer Buffer
Data area Data area
4. Three Buffers;
Pfill Pempty
pfill : yang menunjukkan buffer berikutnya akan diisi atau sedang diisi
pempty : yang menunjukkan buffer berikutnya akan dikosongkan atau
sedang dikosongkan