Anda di halaman 1dari 103

SISTEM BERKAS

KONSEP DASAR SISTEM BERKAS


Sistem berkas merupakan mekanisme penyimpanan on-line serta untuk akses, baik data
maupun program yang berada dalam sistem operasi.

Terdapat dua bagian penting dalam sistem berkas, yaitu:


- Kumpulan berkas, sebagai tempat penyimpanan data
- Struktur direktori, yang mengatur dan menyediakan informasi mengenai seluruh berkas
dalam sistem.

Sistem Berkas
Sebuah sistem berkas sangat membantu para programmer untuk memungkinkan mereka
mengakses berkas, tanpa memperhatikan detail dari karakteristik dan waktu penyimpanan.
Sistem berkas ini juga yang mengatur direktori, device access dan buffer.

Tugas dari Sistem Berkas


- Memelihara direktori dari identifikasi berkas dan lokasi informasi.
- Menentukan jalan (pathway) bagi aliran data antara main memory dan alat penyimpanan
sekunder.
- Mengkoordinasi komunikasi antara CPU dan alat penyimpanan sekunder, dan sebaliknya.
- Menyiapkan berkas penggunaan input atau output.
- Mengatur berkas bila penggunaan input atau output telah selesai.

BERKAS DAN AKSES


Sistem penyimpanan, pengelolaan dan penyimpanan data pada alat penyimpanan eksternal.
Pada berkas dan akses penyimpanan data dilakukan secara fisik.

Berkas
- Kumpulan dari record-record yang saling berhubungan.
- Kumpulan dari statement-statement yang saling berhubungan
- Kumpulan informasi terkait yang diberi nama dan direkam pada penyimpanan sekunder.

KLASIFIKASI DATA

 Kelompok Data Tetap


Kelompok data yang tidak mengalami perubahan, paling tidak dalam kurun waktu yang
lama.
Contoh: Data Pribadi Mahasiswa, Data Mata Kuliah.

 Kelompok Data Tidak Tetap


Kelompok data yang secara rutin mengalami perubahan.
Contoh: Data Rencana Studi Mahasiswa.

 Kelompok Data yang bertambah menurut kurun waktu


Kelompok data ini biasanya merupakan data akumulasi dari kelompok data tetap dan data
tidak tetap.
Contoh: Data Transkrip, Master Nilai.

Sistem Berkas Halaman 1


KLASIFIKASI BERKAS

 Master File (Berkas Induk)


File yang berisi data yang relatif tetap

Contoh:

Payroll Master File

Customer Master File


Organisasi
sebuah pabrik
Personnel Master File

Inventory Master File

Gambar 1. Contoh Master File

Ada 2 jenis Master File

1. Reference Master File


File yang berisi record yang tidak berubah / jarang berubah
Contoh:
File pelanggan yang berisi field:
nomor rekening, nama dan alamat

2. Dynamic Master File


File yang berisi record yang terus menerus berubah dalam kurun waktu tertentu atau
berdasarkan suatu peristiwa transaksi.
Contoh:
- File stock barang
- File pemesanan tempat duduk

 Transaction File (Berkas Transaksi)


File yang berisi record-record yang akan memperbaharui atau meng-update record-record
yang ada pada master file.
Meng-update dapat berupa: penambahan record, penghapusan dan perbaikan record.

 Report File (Berkas Laporan)


File yang berisi data yang dibuat untuk laporan atau keperluan user.
File tersebut dapat dicetak pada kertas printer atau hanya ditampilkan
di layar.

 Work File (Berkas Kerja)


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.

Sistem Berkas Halaman 2


 Program File (Berkas Program)
File yang berisi instruksi-instruksi untuk memproses data yang akan disimpan pada file lain
atau pada memori utama.
Instruksi-instruksi tersebut dapat ditulis dalam bahasa tingkat tinggi (COBOL, FORTRAN,
BASIC, dll), bahasa assembler dan bahasa mesin.

 Text File (Berkas Teks)


File yang berisi input data alphanumerik dan grafik yang digunakan oleh sebuah text editor
program. Text file hanya dapat diproses dengan text editor.

 Dump File (Berkas Tampung)


File yang digunakan untuk tujuan pengamanan (security), mencatat tentang kegiatan peng-
update-an, sekumpulan transaksi yang telah diproses atau sebuah program yang
mengalami kekeliruan.

 Library File (Berkas Pustaka)


File yang digunakan untuk penyimpanan program aplikasi, program utilitas atau program
lainnya.

 History File (Berkas Sejarah)


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:
Pada gambar 2 menunjukkan system flow diagram dari sistem penggajian sementara untuk
menghasilkan paycheck berdasarkan timecards dan payroll information.

Gambar 2. System Flow Diagram

Sistem Berkas Halaman 3


Tabel 1 menunjukkan klasifikasi file dari system flow diagram

Tabel 1. Klasifikasi File dan Fungsi

File Fungsi

Timecards Transaction
Sort Program Program
Sort Workfile Work
Sorted-Timecards Transaction
Payroll Master Master
Pay Record Update Program Program
Reject Timecards Work
Paycheck Detail Work
Reconciliation Detail Work
List Utility Program Program
Reject Report Report
Paycheck Writer Program Program
Paychecks Report
Reconciliation Report Writer Program Program
Reconciliation Report Report

MODEL AKSES BERKAS

Ada 3 model akses yang mungkin oleh sebuah program terhadap file, yaitu:

1. Input File
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
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.

3. Input/Output File
File yang dapat dibaca dari dan ditulis ke selama eksekusi program.

Contoh:
- Master File
- Work File dengan sort program

Tabel 2 menunjukkan model akses file dari sistem flow diagram

Sistem Berkas Halaman 4


Tabel 2. Model Akses File

Program File Input File Output File Input/Output File

Sort Timecards SortedTimecards Sort workfile


Pay Record Update Sorted Timecards Reject Timecards Payroll Master
Paycheck Detail
Reconciliation Detail
Paycheck Writer Paycheck Detail Paychecks
Reconciliation Reconciliation Reconciliation Report
Detail
Report Writer
List Utility Reject Timecards Reject Report

Note: Sebuah file mempunyai lebih dari satu fungsi, jika digunakan oleh
lebih dari satu program.

ORGANISASI BERKAS
Suatu teknik/cara yang digunakan untuk menyatakan/menggambarkan dan menyimpan record-
record dalam sebuah berkas.

Ada 4 teknik dasar organisasi berkas, yaitu:


1. Sequential File
2. Relative File
3. Index Sequential File
4. Multi-Key File

Secara umum keempat teknik dasar tersebut berbeda dalam cara pengaksesannya, yaitu:

 Direct Access
Suatu cara pengaksesan record yang langsung tanpa mengakses seluruh record yang ada.
Contoh: Magnetic Disk, CD

 Sequential Access
Suatu cara pengaksesan record, yang didahului pengaksesan record-record didepannya.
Contoh: Magnetic Tape, Punch Card

Faktor-faktor yang mempengaruhi dalam proses pemilihan organisasi berkas, yaitu:


- Karakteristik dari media penyimpanan yang digunakan.
- Volume dan frekuensi dari transaksi yang diproses
- Respon time yang diperlukan

OPERASI BERKAS

Cara memilih organisasi berkas tidak terlepas dari 2 aspek utama, yaitu:

Sistem Berkas Halaman 5


1. Model penggunaannya ada 2 cara, yaitu:
- Batch Processing
Suatu proses yang dilakukan secara group atau kelompok.
- Interactive Processing
Suatu proses yang dilakukan secara satu persatu, yaitu record
demi record.

2. Menurut model operasi file ada 4 cara, yaitu:

 Creation
Membuat struktur file lebih terdahulu, lalu menentukan banyak record baru kemudian
record-record tersebut dimuat kedalam file tersebut atau membuat file dengan cara
merekam record demi record.

 Update
Untuk menjaga agar file tetap up to date
- Insert / Add
- Modification
- Deletion

 Retrieval
Pengaksesan sebuah file dengan tujuan untuk mendapatkan
informasi.

- Inquiry
Volume data rendah, model proses interactive

- Report Generation
Volume data tinggi, model proses batch

File retrieval dibagi menjadi 2, yaitu:

1. Comprehensive Retrieval
Mendapatkan informasi dari semua record dalam sebuah file.
Contoh:
Display all
List nama, alamat

2. Selective Retrieval
Mendapatkan informasi dari record-record tertentu berdasarkan persyaratan
tertentu
Contoh:
List for Gaji = 1000000
List NPM,Nama,Alamat for angkatan = 99

 Maintenance
Perubahan yang dibuat terhadap file dengan tujuan memperbaiki
penampilan program dalam mengakses file tersebut.

Sistem Berkas Halaman 6


- Restructuring: perubahan struktur file
Contoh:
Panjang field diubah
Penambahan field baru
Panjang record diubah
- Reorganization: perubahan organisasi file dari organisasi
yang satu, menjadi organisasi file yang lain.

Contoh:
organisasi sequential file menjadi indexed sequential
organisasi direct file menjadi sequential file

Secara umum dapat disimpulkan, bahwa:

- Master file dan program file, kita dapat melakukan created, updated, retrieved from dan
maintained.
- Workfile, kita dapat melakukan created, updated dan retrieved from, tetapi tidak dapat kita
maintained.
- Report file umumnya tidak di updated, retrieved from atau maintained.
- Transaction file, umumnya hanya dapat di create dan digunakan untuk sekali proses.

Sistem Berkas Halaman 7


MEDIA PENYIMPANAN BERKAS

Media penyimpanan adalah peralatan fisik yang menyimpan


representasi data.

Media penyimpanan/storage atau memori dapat dibedakan atas 2


bagian, yaitu:
 Primary Memory: Primary Storage atau Internal Storage
 Secondary Memory: Secondary Storage atau External Storage

PRIMARY MEMORY / MAIN MEMORY

Ada 4 bagian di dalam primary storage, yaitu:


 Input Storage Area
Untuk menampung data yang dibaca.

 Program Storage Area


Penyimpanan instruksi-instruksi untuk pengolahan.

 Working Storage Area


Tempat dimana pemrosesan data dilakukan.

 Output Storage Area


Penyimpanan informasi yang telah diolah untuk sementara waktu
sebelum disalurkan ke alat-alat output.

CONTROL UNIT SECTION


PROGRAM
STORAGE
INPUT AREA OUTPUT
STORAGE STORAGE
AREA WORKING AREA
STORAGE
AREA
ARITHMETIC LOGICAL UNIT SECTION

Gambar 1. Bagian dari CPU

Media Penyimpanan Berkas Halaman 1


Control Unit Section, Primary Storage Section, ALU Section adalah
bagian dari CPU.

Berdasarkan hilang atau tidaknya berkas data atau berkas program di


dalam storage kita kenal:

 Volatile Storage
Berkas data atau program akan hilang bila listrik dipadamkan.

 Non Volatile Storage


Berkas data atau program tidak akan hilang sekalipun listrik
dipadamkan.

Primary Memory komputer terdiri dari 2 bagian, yaitu:

 RAM (Random Access Memory)


Bagian dari main memory, yang dapat kita isi dengan data atau
program dari disket atau sumber lain. Dimana data-data dapat
ditulis maupun dibaca pada lokasi dimana saja didalam memori.
RAM bersifat Volatile.

 ROM (Read Only Memory)


Memori yang hanya dapat dibaca. Pengisian ROM dengan
program maupun data, dikerjakan oleh pabrik. ROM biasanya
sudah ditulisi program maupun data dari pabrik dengan tujuan-
tujuan khusus.
Misal: diisi penterjemah (interpreter) dalam bahasa BASIC.

Jadi ROM tidak termasuk sebagai memori yang dapat kita


pergunakan untuk program-program yang kita buat. ROM bersifat
Non Volatile.

Tipe-tipe lain dari ROM Chip, yaitu:

 PROM (Programmable Read Only Memory)


Jenis dari memori yang hanya dapat diprogram. PROM dapat
diprogram oleh user atau pemakai, data yang diprogram akan
disimpan secara permanen.

Media Penyimpanan Berkas Halaman 2


 EPROM (Erasable Programmable Read Only Memory)
Jenis memori yang dapat diprogram oleh user. EPROM dapat
dihapus dan diprogram ulang.

 EEPROM (Electrically Erasable Programmable Read Only


Memory)
Memori yang dapat diprogram oleh user. EEPROM dapat dihapus
dan diprogram ulang secara elektrik tanpa memindahkan chip dari
circuit board.

SECONDARY MEMORY / AUXILARY MEMORY

Memori pada CPU sangat terbatas sekali dan hanya dapat menyimpan
informasi untuk sementara waktu. Oleh sebab itu alat penyimpan data
yang permanen sangat diperlukan. Informasi yang disimpan pada alat-
alat tersebut dapat diambil dan ditransfer pada CPU pada saat
diperlukan. Alat tersebut dinamakan Secondary Memory / Auxiliary
Memory atau Backing Storage.

Ada 2 Jenis Secondary Storage, yaitu:

 Serial / Sequential Access Storage Device (SASD)


Contoh: Magnetic Tape, Punched Card, Punched Paper Tape.

 Direct Access Storage Device (DASD)


Contoh: Magnetic Disk, Floppy Disk, Mass Storage.

HIERARKI STORAGE

Gambar 2. Hierarki Storage

Media Penyimpanan Berkas Halaman 3


Pada memori tambahan pengaksesan data dilakukan secara tidak
langsung yaitu dengan menggunakan instruksi-instruksi seperti GET,
PUT, READ atau WRITE

Beberapa pertimbangan di dalam memilih alat penyimpanan:


- Cara penyusunan data
- Kapasitas penyimpanan
- Waktu akses
- Kecepatan transfer data
- Harga
- Persyaratan pemeliharaan
- Standarisasi

MAGNETIC TAPE

Magnetic tape adalah model pertama dari 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 0.5 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 adalah 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 sekuensial.

Gambar 3. Magnetic Tape

Media Penyimpanan Berkas Halaman 4


Gambar 4. Magnetic Tape Subsystem

REPRESENTASI DATA DAN DENSITY PADA MAGNETIC TAPE

Data direkam secara digit pada media tape sebagai titik-titik magnetisasi
pada lapisan ferroksida. Magnetisasi positif menyatakan 1 bit,
sedangkan magnetisasi negatif menyatakan 0 bit atau sebaliknya.

Tape terdiri atas 9 track, 8 track dipakai untuk merekam data dan track
yang ke 9 untuk koreksi kesalahan.

Gambar 5. Penyimpanan Data pada Magnetic Tape

Salah satu karakteristik yang penting dari tape adalah density


(kepadatan) dimana data disimpan. Density adalah fungsi dari media
tape dan drive yang digunakan untuk merekam data ke media tadi.
Satuan yang digunakan density adalah bytes per inch (bpi). Umumnya
density dari tape adalah 1600 bpi dan 6250 bpi.
(bpi ekivalen dengan character per inch).

Media Penyimpanan Berkas Halaman 5


PARITY DAN ERROR CONTROL PADA MAGNETIC TAPE

Salah satu teknik untuk memeriksa kesalahan pada magnetic tape


adalah dengan parity check.

Ada 2 jenis Parity Check, yaitu:

 Odd Parity (Parity Ganjil)


Jika data direkam dengan menggunakan odd parity, maka jumlah 1
bit yang merepresentasikan suatu karakter adalah ganjil.
Jika jumlah 1 bit nya sudah ganjil, maka parity bit yang terletak
pada track ke 9 adalah 0 bit, akan tetapi jika jumlah 1 bit nya masih
genap, maka parity bit nya adalah 1 bit.

Gambar 6. Odd Parity Mode

 Even Parity (Parity Genap)


Bila kita merekam data dengan menggunakan even parity, maka
jumlah 1 bit yang merepresentasikan suatu karakter adalah genap.
Jika jumlah 1 bitnya sudah genap, maka parity bit yang terletak
pada track ke 9 adalah 0 bit, akan tetapi jika jumlah 1 bit nya masih
ganjil, maka parity bit nya adalah 1 bit.

Gambar 7. Even Parity Mode

Media Penyimpanan Berkas Halaman 6


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

Berapa isi dari track ke 9, jika untuk merekam data digunakan odd
parity dan even parity?

Jawab:

Odd Parity
Track 9 : 1 1 0 0 0 1

Even Parity
Track 9 : 0 0 1 1 1 0

Media Penyimpanan Berkas Halaman 7


LATIHAN

Bagian dari sebuah 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

Berapa isi dari track ke 9, jika untuk merekam data digunakan:

1. Even Parity

2. Odd Parity

Media Penyimpanan Berkas Halaman 8


SISTEM BLOCK PADA MAGNETIC TAPE

Data yang dibaca dari atau ditulis ke tape dalam suatu grup karakter
disebut block. Suatu block adalah jumlah terkecil dari data yang dapat
ditransfer antara secondary memory dan primary memory pada saat
akses. Sebuah block dapat terdiri dari satu atau lebih record. Sebuah
block dapat merupakan physical record.

Diantara 2 block terdapat ruang yang kita sebut sebagai gap (inter block
gap). Panjang masing-masing gap adalah 0.6 inch. Ukuran block dapat
mempengaruhi jumlah data/record yang dapat disimpan dalam tape.

Gambar 8. Bagian Tape yang menunjukkan data block


dan interblock gap

Gambar 9. Block Record

Media Penyimpanan Berkas Halaman 9


MENGHITUNG KAPASITAS PENYIMPANAN PADA MAGNETIC TAPE

Misal:

Kita akan membandingkan berapa banyak record yang dapat disimpan


dalam tape, bila:

1 block berisi 1 record


1 record = 100 character
dengan
1 block berisi 20 record
1 record = 100 character

Panjang tape yang digunakan adalah 2400 feet, density 6250 bpi dan
panjang gap 0.6 inch.

Jawab:

1. Untuk 1 block 1 record

2400 feet/tape * 12 inch/feet


─────────────────────────────────────
1 rec/block * 100 char/rec + 0.6 inch/gap * 1 gap/block
──────────
6250 char/inch

= 46753 block/tape

Jadi tape tersebut berisi = 1 * 46753


= 47653 record

2. Untuk 1 block 20 record

2400 feet/tape * 12 inch/feet


─────────────────────────────────────
20 rec/block * 100 char/rec + 0.6 inch/gap * 1 gap/block
─────────
6250 char/inch

= 31304 block/tape

Jadi tape tersebut berisi = 20 * 31304


= 626080 record

Media Penyimpanan Berkas Halaman 10


MENGHITUNG WAKTU AKSES PADA MAGNETIC TAPE

Misal:

Kecepatan akses tape untuk membaca/menulis adalah 200 inch/sec.


Waktu yang dibutuhkan untuk berhenti dan mulai pada waktu terdapat
gap adalah 0.004 second.

Hitung waktu akses yang dibutuhkan tape tersebut, dengan


menggunakan data pada contoh sebelumnya.

Jawab:

1 block 1 record

46753 block/tape * 0.016 inch/block + 46753 block/tape * 0.004 sec/gap * 1gap/block


──────────────────────
200 inch/sec

= 190.75 sec/tape

Jadi waktu akses yang dibutuhkan tape tersebut adalah 190.75 second.

1 block 20 record

2338 block/tape * 0.32 inch/block + 2338 block/tape * 0.004 sec/gap * 1gap/block


─────────────────────
200 inch/sec

= 10.55 sec/tape

Jadi waktu akses yang dibutuhkan tape tersebut adalah 10.55 second.

ORGANISASI BERKAS DAN METODE AKSES PADA MAGNETIC


TAPE

Untuk membaca atau menulis pada suatu magnetic tape adalah secara
sekuensial. Artinya untuk mendapatkan tempat suatu data, maka data
yang didepannya harus dilalui terlebih dahulu.

Dapat dikatakan organisasi data pada berkas di dalam tape dibentuk


secara sekuensial dan metode aksesnya juga secara sekuensial.

Media Penyimpanan Berkas Halaman 11


Keuntungan Penggunaan Magnetic Tape

- Panjang record tidak terbatas.


- Density data tinggi.
- Volume penyimpanan datanya besar dan harganya murah.
- Kecepatan transfer data tinggi.
- Sangat efisien bila semua atau kebanyakan record dari sebuah
tape file memerlukan pemrosesan seluruhnya.

Keterbatasan Penggunaan Magnetic Tape

- Akses langsung terhadap record lambat.


- Masalah lingkungan.
- Memerlukan penafsiran terhadap mesin.
- Proses harus sekuensial.

Media Penyimpanan Berkas Halaman 12


LATIHAN

1. Density 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

Berapa banyak record yang dapat disimpan dalam tape tersebut:


- Jika dalam 1 block berisi 1 record?
- Jika dalam 1 block berisi 10 record?

2. Jika kecepatan pemindahan data adalah 100 inch/sec, waktu


akses yang diperlukan untuk melewati interblock gap adalah 0.1
second.

Berapa waktu yang diperlukan untuk membaca tape tersebut:


- Untuk 1 block berisi 1 record
- Untuk 1 block berisi 10 record

Media Penyimpanan Berkas Halaman 13


MAGNETIC DISK

RAMAC (Random Access) adalah DASD pertama yang dibuat oleh


industri komputer. Pada magnetic disk kecepatan rata-rata rotasi
piringannya sangat tinggi.

Access arm dengan read/write head yang posisinya diantara piringan-


piringan, dimana pengambilan dan penyimpanan representasi datanya
pada permukaan piringan. Data disimpan dalam track.

Gambar 10. Permukaan Disk yang paling atas dengan


200 concentric track

Gambar 11. Pengalamatan pada Disk

Media Penyimpanan Berkas Halaman 14


KARAKTERISTIK SECARA FISIK PADA MAGNETIC DISK

Disk pack adalah jenis alat penyimpanan pada magnetic disk, yang
terdiri dari beberapa tumpukan piringan alumunium.

Dalam sebuah pack/tumpukan umumnya terdiri dari 11 piringan, setiap


piringan diameternya 14 inch (8 inch pada minidisk) dan menyerupai
piringan hitam.

Gambar 12. Disk pack Cylinder

Gambar 13. Disk pack dengan 11 piringan

Media Penyimpanan Berkas Halaman 15


Gambar 14. Mengganti disk pack pada disk drive

Permukaannya dilapisi dengan metal oxide film yang mengandung


magnetisasi seperti pada magnetic tape. Banyaknya track pada piringan
menunjukkan karakteristik penyimpanan pada lapisan permukaan,
kapasitas disk drive dan mekanisme akses.

Disk mempunyai 200-800 track per permukaan (banyaknya track pada


piringan adalah tetap). Pada disk pack yang terdiri dari 11 piringan
mempunyai 20 permukaan untuk menyimpan data.

Kedua sisi dari setiap piringan digunakan untuk menyimpan data,


kecuali pada permukaan yang paling atas dan paling bawah tidak
digunakan untuk menyimpan data, karena pada bagian tersebut lebih
mudah terkena kotoran/debu dari pada permukaan yang di dalam.
Arm pada permukaan luar hanya dapat mengakses separuh data.

Untuk mengakses, disk pack disusun pada disk drive yang didalamnya
mempunyai sebuah controller, access arm, read/write head dan
mekanisme untuk rotasi pack.

Media Penyimpanan Berkas Halaman 16


Gambar 15. Mekanisme Akses pada Magnetic Disk

Ada disk drive yang dibuat built-in dengan disk pack, sehingga disk pack
ini tidak dapat dipindahkan yang disebut non removable, sedangkan disk
pack yang dapat dipindahkan disebut removable.

Disk Controller menangani perubahan kode dari pengalamatan record,


termasuk pemilihan drive yang tepat dan perubahan kode dari posisi
data yang dibutuhkan disk pack pada drive. Controller juga mengatur
buffer storage untuk menangani masalah deteksi kesalahan, koreksi
kesalahan dan mengontrol aktivitas read/write head.

Susunan piringan pada disk pack berputar terus menerus dengan


kecepatan perputarannya 3600 per menit, tidak seperti pada tape,
perputaran disk tidak berhenti diantara pengaksesan block.

Read/Write head pada disk drive disusun pada access arm yang
posisinya terletak diantara piringan-piringan pada device.
Kerugiannya bila terjadi situasi dimana read/write head berbenturan
dengan permukaan penyimpanan record pada disk, hal ini disebut head
crash.

Media Penyimpanan Berkas Halaman 17


Gambar 16. Arm yang terdapat pada read/write head

REPRESENTASI DATA DAN PENGALAMATAN PADA


MAGNETIC DISK

Data pada disk juga di block, seperti data pada magnetic tape.
Pemanggilan sebuah block adalah banyaknya data yang diakses pada
sebuah storage device. Data dari disk dipindahkan ke sebuah buffer
pada main storage komputer untuk diakses oleh sebuah program.

Kemampuan mengakses secara direct pada disk menunjukkan bahwa


record tidak selalu diakses secara sekuensial.

Ada 2 teknik dasar untuk pengalamatan data yang disimpan pada disk,
yaitu:
- Metode Silinder
- Metode Sektor

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 atau dari 1 - 20.
Pengalamatan dari nomor record menunjukkan dimana record terletak
pada track yang ditunjukkan dengan nomor silinder dan nomor
permukaan.

Media Penyimpanan Berkas Halaman 18


Gambar 17. Silinder

Metode Sektor

Setiap track dari pack dibagi kedalam sektor-sektor. Setiap sektor


adalah storage area untuk banyaknya karakter yang tetap.

Pengalamatan recordnya berdasarkan nomor sektor, nomor track, 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 track-nya berlainan. Keseragaman
kapasitas dicapai dengan penyesuaian density yang tepat dari
representasi data untuk setiap ukuran track.

Keuntungan lain dari pendekatan keseragaman kapasitas adalah berkas


dapat ditempatkan pada disk tanpa merubah lokasi nomor sektor (track
atau cylinder) pada berkas.

Gambar 18. Nomor Sektor

Media Penyimpanan Berkas Halaman 19


Gambar 19. Contoh Sector Addressing

MOVABLE HEAD DISK ACCESS

Movable head disk drive mempunyai sebuah read/write head untuk


setiap permukaan penyimpanan record-nya. Sistem mekanik yang
digunakan oleh kumpulan posisi dari access arm, sedemikian sehingga
read/write head dari pengalamatan permukaan menunjuk ke track.
Semua access arm pada device dipindahkan secara serentak, tetapi
hanya head yang aktif yang akan menunjuk kepermukaan.

CARA PENGAKSESAN RECORD YANG DISIMPAN PADA DISK


PACK

Disk controller merubah kode yang ditunjuk oleh pengalamatan record


dan menunjuk track yang mana pada device tempat record tersebut.
Access arm dipindahkan, sehingga posisi read/write head terletak pada
silinder yang tepat. Read/write head ini menunjuk ke track yang aktif,
maka disk akan berputar hingga menunjuk record pada lokasi read/write
head. Kemudian data akan dibaca dan ditransfer melalui channel yang
diminta oleh program dalam komputer.

Access Time = Seek Time (pemindahan arm ke cylinder)


+ Head activition time (pemilihan track)
+ Rotational Delay (pemilihan record)
+ Transfer Time

Media Penyimpanan Berkas Halaman 20


- Seek Time
Waktu yang dibutuhkan untuk menggerakan read/write head pada
disk ke posisi silinder yang tepat.

- Head Activation Time


Waktu yang dibutuhkan untuk menggerakan read/write head pada
disk ke posisi track yang tepat.

- Rotational Delay (Latency)


Waktu yang dibutuhkan untuk perputaran piringan sampai posisi
record yang tepat

- Transfer Time
Waktu yang menunjukan kecepatan perputaran dan banyaknya
data yang ditransfer.

FIXED HEAD DISK ACCESS

Disk yang mempunyai sebuah read/write head untuk setiap track pada
setiap permukaan penyimpanan yang mekanisme pengaksesannya tidak
dapat dipindahkan dari cylinder ke cylinder.

Access Time = Head Activtion Time + Rotational Delay + Transfer Time

Banyaknya read/write head menyebabkan harga dari fixed head disk


drive lebih mahal dari movable head disk drive. Disk yang
menggunakan fixed head disk drive mempunyai kapasitas dan density
yang lebih kecil dibandingkan dengan disk yang menggunakan movable
head disk drive.

ORGANISASI BERKAS DAN METODE AKSES PADA


MAGNETIC DISK

Untuk membentuk suatu berkas di dalam magnetic disk bisa dilakukan


secara sequential, index sequential, ataupun direct. Sedangkan untuk
mengambil suatu data dari berkas yang disimpan dalam disk, bisa
dilakukan secara langsung dengan menggunakan direct access method
atau dengan sequential access method.

Media Penyimpanan Berkas Halaman 21


Keuntungan Penggunaan Magnetic Disk
- Akses terhadap suatu record dapat dilakukan secara sekuensial
atau direct.
- Waktu yang dibutuhkan untuk mengakses suatu record lebih cepat.
- Respon time cepat.

Keterbatasan Penggunaan Magnetic Disk


- Harga lebih mahal

Pada tabel 1 merupakan tabel media penyimpanan secara umum.

Tabel 1. Media Penyimpanan secara umum

Media Storage Transfer Rate Advantages Disadvantages


Capacity (Thousands
(Million of of Characters
Characters) / Second)

Magnetic Tape 1-150 per tape 15-1000 Inexpensive Slow


High capacity Sequential access only

Magnetic Disk 2-200 per 20-1000 High capacity Expensive


disk pack Random access

Magnetic Drum 1-4 per drum 275-1200 Fast Expensive


Relatively small
(Usually only programs
and tables stored)

Diskette / 1-1 per floppy 10-80 Inexpensive Low capacity


Floopy Disk

Cassette 1-2 per cassette 3-5 Inexpensive Sequential access only


Low capacity

Media Penyimpanan Berkas Halaman 22


ORGANISASI BERKAS SEKUENSIAL

Organisasi berkas sekuensial adalah merupakan cara yang paling dasar


untuk mengorganisasikan kumpulan record record dalam sebuah berkas.

Dalam organisasi berkas sekuensial, pada waktu record ini dibuat,


record-record direkam secara berurutan.
Record pertama ditempatkan pada posisi pertama dalam berkas, record
kedua ditempatkan pada posisi kedua dalam berkas dan seterusnya.
Begitu pula pada waktu pengaksesan dan pada waktu berkas ini
digunakan sebagai input, record-record harus diakses secara berurutan.

Beginning file Record 1


Record 2
.
.
.
Record I – 1
Record I
Record I + 1
.
.
.
Record N – 1
End of file Record N

Gambar 1. Struktur Berkas Sekuensial

Gambar 2. Penambahan Berkas Sekuensial

Organisasi Berkas Sekuensial Halaman 1


Jadi dalam organisasi berkas sekuensial, bukan berarti bahwa record-
record tersebut disimpan dalam urutan numerik .
Jika kita ingin menambahkan suatu record pada berkas sekuensial,
maka record tersebut akan terletak pada akhir berkas .
Organisasi berkas sekuensial dapat terdiri dari record-record yang
berbeda jenis

Contoh:
Dalam sistem penggajian terpadu (intergrated personnel-payroll system)
mempunyai sebuah berkas pegawai (employee file) yang terdiri dari dua
jenis record, yaitu:
personnel record dan payroll record

Gambar 3. Jenis Record

Record-record pada berkas tersebut tidak memerlukan format dan


ukuran yang sama. Pada contoh tersebut, berkas disortir berdasarkan:
EMP-NO, REC – TYPE

Gambar 4. Record dalam Berkas Sekuensial

Organisasi Berkas Sekuensial Halaman 2


PROSES

Karena record-record dalam organisasi berkas sekuensial harus diakses


secara berurutan, maka berkas sekuensial lebih sering menggunakan
batch processing dari pada interactive processing.

Keuntungan dan Keterbatasan

Adapun keuntungan utama dari teknik organisasi berkas sekuensial


adalah kemampuan untuk mengakses record berikutnya secara cepat.
Keterbatasan dari organisasi berkas sekuensial adalah kita tidak dapat
mengakses langsung pada record yang diinginkan.

POLA AKSES

Pola akses adalah penentuan akses berdasarkan field tertentu. Selama


pola akses, berkas sekuensial 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 sekuensial berdasarkan urutan yang
sesuai dengan pola aksesnya, jangan sebaliknya .

Contoh:

Berkas gaji yang disusun secara sekuensial 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: 15028001
dimana NIP tersebut belum tersortir.

MEDIA PENYIMPANAN BERKAS SEKUENSIAL

Berkas sekuensial dapat disimpan dalam SASD, seperti magnetic tape


atau pada DASD, seperti magnetic disk.

Beberapa alasan untuk menyimpan berkas sekuensial pada DASD:

 Pada umumnya komputer dihubungkan dengan sedikit tape drive,


sehingga tidak cukup untuk menunjang program aplikasi yang banyak
membutuhkan berkas sekuensial .
Organisasi Berkas Sekuensial Halaman 3
Contoh:

Jika 3 berkas sekuensial, seperti master file, transaction file, dan update
master file yang digunakan oleh sebuah program, karena hanya ada 2
tape drive, maka salah satu dari ketiga berkas tersebut disimpan dalam
disk.

 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, dari pada diletakkan pada peralatan yang salurannya
digunakan bersama-sama.

PEMBUATAN BERKAS SEKUENSIAL

Pembuatan berkas sekuensial meliputi penulisan record-record dalam


serangkaian yang diinginkan pada media penyimpanan.

Pembuatan berkas transaksi sekuensial meliputi tugas tugas:

 Pengumpulan data.
 Perubahan data dalam bentuk bahasa yang dapat dibaca oleh mesin.
 Pengeditan data.
 Pemeriksaan transaksi yang ditolak.
 Penyortiran edit data.

Organisasi Berkas Sekuensial Halaman 4


Gambar 5. Pembuatan Berkas Transaksi Sekuensial

PEMBUATAN BERKAS LAPORAN


Dalam Pembuatan berkas laporan sekuensial dikenal 3 jenis record:

 Header Record
Mencakup report header, page header, dan group header. Dikenal
sebagai informasi pengenal (identifying information).

 Detail Record
Mencakup isi laporan yang umumnya disusun dalam kolom.

 Footer Record
Mencakup report footer, page footer, dan group footer. Dikenal
sebagai informasi ringkasan (summary information).

Organisasi Berkas Sekuensial Halaman 5


Gambar 6. Pembuatan Berkas Laporan

RIETRIEVAL TERHADAP BERKAS SEKUENSIAL

Record pada berkas sekuensial di retrieve secara berurutan. Urutan


dimana record tersebut ditulis pada berkas, menentukan urutan dimana
record tersebut didapat kembali.

Retrieve dari sebuah berkas sekuensial dibagi 2, yaitu: report


generation dan inquiry yang bergantung pada jumlah data yang
dihasilkan.

Pada umumnya bekas sekuensial diakses dalam model report


generation, karena record-record harus diakses secara berurutan,
tentunya lebih efisien mengakses setiap record dari berkas tersebut.

Inquiry dari berkas sekuensial mengalami hambatan, karena organisasi


berkas ini memerlukan pengaksesan record secara satu persatu. Namun
ada inquiry yang memerlukan pengaksesan semua record dari berkas

Contoh:

 Beberapa jumlah mahasiswa yang berumur di atas 20 tahun?


 Berapa jumlah pegawai yang mempunyai gaji di bawah
Rp. 1.000.000.- ?

Organisasi Berkas Sekuensial Halaman 6


HIT RATIO

Banyaknya record yang harus diakses untuk mendapatkan informasi


yang diinginkan dibagi dengan banyaknya record dalam berkas tersebut.

Contoh:

Inquiry NPM: 10109207 memerlukan pengaksesan record sebanyak 10


dari 100 record yang ada dalam berkas mahasiswa.

Hit = 10 = 0.1
100

 Semakin rendah hit ratio, semakin tidak baik bila menggunakan


organisasi sekuensial.
 Semakin tinggi hit ratio, semakin baik bila menggunakan organisasi
sekuensial.

UPDATE TERHADAP BERKAS SEKUENSIAL

Master file berisi data yang relatif tetap, tetapi kadang kadang kita perlu
mengadakan perubahan pada berkas tersebut.
Hal ini kita sebut sebagai proses update.

Frekuensi dimana sebuah master file harus di update bergantung pada


faktor faktor:
 Tingkat perubahan data.
 Ukuran dari master file.
 Kebutuhan yang mendesak dari data yang sedang berjalan pada
master file.
 File Activity Ratio

FILE ACTIVITY RATIO

Banyaknya record pada master file yang di update dibagi dengan


banyaknya record pada master file.

Organisasi Berkas Sekuensial Halaman 7


Contoh:

Transaction file Master File


101 Bimo 75 101 Bimo jl.A 50
102 Amalia 70 103 Seno jl.C 30
103 Seno 60 104 Henni jl.Z 50
105 Pandu jl.D 70

File Activity Ratio = 1+1 = 0.5


4

 Semakin tinggi file activity ratio, semakin lama proses peng-update-an


master file.
 Semakin tinggi kebutuhan akan data yang baru pada master file,
maka semakin sering file tersebut diakses.
 Semakin sering master file di-update, semakin tinggi biaya
pemrosesannya.

Kebanyakan berkas sequential tidak dapat di-update langsung ditempat,


karena untuk meng-update biasanya diperlukan berkas baru sebagai
pengganti berkas lama.

Organisasi Berkas Sekuensial Halaman 8


Pada gambar 7 menunjukkan system flow diagram untuk meng-update
sebuah berkas sekuensial.

Old
Sorted Master
Transactions

Rejected New
Transaction Master

Gambar 7. System Flow Diagram untuk Update Berkas Sekuensial

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, dst.

JENIS UPDATE
Ada 3 jenis update yang dapat dilakukan pada master file:

 Insert a new record


 Delete an existing record
 Modify an existing record

Organisasi Berkas Sekuensial Halaman 9


Menangani Kesalahan

Dalam pelaksanaan update dapat ditemukan beberapa kesalahan,


seperti:

 Insert record that already exists


 Delete a record that does not exist
 Modify a record that does not exist

Contoh:

Master File 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:

Rec-Id Trans – Type


111 2
111 1
96 3
400 1 1 : Insert
96 1 2 : Delete
111 2 3 : Modify
400 3
342 3
96 2

File Activity Ratio= 4


10

Organisasi Berkas Sekuensial Halaman 10


Gambar 8. Update Berkas Sekuensial pada Payroll Master File

DEKLARASI BERKAS SEQUENTIAL DALAM BAHASA COBOL

SELECT [OPTIONAL] filename ASSIGN TO [implementor-name] …


[ RESERVE integer AREAS ]
AREA
[ ORGANIZATION is SEQUENTIAL ]
[ ACCESS MODE is SEQUENTIAL ]
[ FILE STATUS is data-name ].
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RPT-FILE ASSIGN TO OUTPUT.
SELECT TRANS-FILE ASSIGN TO TAPE1.

SELECT MSTR-FILE-IN ASSIGN TO TAPE3.


SELECT MSTR-FILE-OUT ASSIGN TO TAPE2.
I/O CONTROL.
MULTIPLE FILE TRANS-FILE POSITION 2.
.......

Organisasi Berkas Sekuensial Halaman 11


ORGANISASI BERKAS RELATIF

PENGERTIAN BERKAS RELATIF

Suatu cara yang efektif dalam mengorganisasi 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
penyimpanan sekunder.

Urutan record secara logik tidak ada hubungannya dengan urutan


secara fisik. Record tidak perlu tersortir secara fisik menurut nilai key.

8
7
Input Record 5

FILE LOAD
PROGRAM

DIRECT FILE
2 4 5 7 8
1 2 3 4 5 6 7 8 9

Gambar 1. Organisasi Direct/Langsung

Organisasi Berkas Relatif Halaman 1


Key Value Physical
Position
Beginning of file  COW 1
ZEBRA 2
.
.
.

APE I–1
EEL I
DOG I+1
.
.
.
CAT N–1
End of File  BAT N

Gambar 2. Dasar Organisasi Berkas Relatif

Bagaimana record yang ke-N dapat ditemukan?. Dalam hal ini, perlu
kita buat hubungan yang akan menterjemahkan 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.

PROSES

Pada waktu sebuah record ditulis kedalam berkas relatif, fungsi


pemetaan R digunakan untuk menterjemahkan 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
menterjemahkan nilai key itu menjadi sebuah address dalam
penyimpanan sekunder, dimana record tersebut ditemukan.

Organisasi berkas relatif ini tidak menguntungkan bila penyimpanan


sekundernya berupa media SASD seperti magnetic tape. Berkas relatif
harus disimpan dalam media DASD, seperti magnetic disk atau drum.
Juga dimungkinkan untuk mengakses record-record dalam berkas relatif

Organisasi Berkas Relatif Halaman 2


secara berurutan, tetapi perlu diketahui bahwa nilai key tidak terurut
secara logik.

Contoh:

Record pada gambar 2, di-retrieve secara berurutan;

COW, ZEBRA, … , APE, EEL, DOG, … , CAT, BAT

Karena kemampuan mengakses record tertentu secara cepat, maka


organisasi berkas relatif paling sering digunakan dalam proses
interactive.

Contoh:

Sebuah on-line sistem perbankan yang mempunyai sebuah master file


dan sebuah transaksi file. Field ACCOUNT NUMBER dipakai sebagai
nilai key untuk kedua berkas tersebut. Pada saat nilai key ACCOUNT
NUMBER dimasukan kedalam transaksi, nilai key tersebut akan me-
retrieve secara langsung record yang ada pada master file.

Gambar 3. Contoh Format Berkas Transaksi

Jika Trans-Type = ‘I’, maka BALANCE ACCOUNT akan ditampilkan di


layar.

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.

Organisasi Berkas Relatif Halaman 3


Catatan:

 Kita tidak perlu mengakses semua record master file, cukup


mengakses langsung record yang dikehendaki.
 Record dari berkas relatif dapat di-update langsung tanpa perlu
merekam kembali semua record.
 Keuntungan dari berkas relatif ini adalah kemampuan mengakses
record secara langsung. Sebuah record dapat di retrieve, insert,
modifikasi atau di delete, tanpa mempengaruhi record lain dalam
berkas yang sama.

Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan


R, dimana R(NILAI KEY) ADDRESS

1. Direct Mapping (Pemetaan Langsung)


2. Directory Look Up (Pencarian Tabel)
3. Calculation (Kalkulasi)

TEKNIK PEMETAAN LANGSUNG

Teknik ini merupakan teknik yang sederhana untuk menterjemahkan nilai


record key menjadi address. Ada 2 cara dalam pemetaan langsung,
yaitu:
1. Absolute Addressing (Pengalamatan Mutlak)
2. Relative Addressing (Pengalamatan Relatif)

Pengalamatan Mutlak

R(NILAI KEY) ADDRESS


NILAI KEY = ALAMAT MUTLAK

Jika nilai key yang diberikan oleh pemakai program sama dengan
ADDRESS sebenarnya dari record tersebut pada penyimpanan
sekunder. Pada waktu record tersebut disimpan, lokasi penyimpanan
record (nomor silinder, nomor permukaan, nomor record) bila dipakai
Cylinder Addressing atau (nomor sektor, nomor record) bila dipakai
Sector Addressing harus ditentukan oleh pamakai.

Keuntungan dari Pengalamatan Mutlak


 Fungsi pemetaan R sangat sederhana.
 Tidak membutuhkan waktu lama dalam menentukan lokasi record
pada penyimpanan sekunder.

Organisasi Berkas Relatif Halaman 4


Kelemahannya

 Pemakai harus mengetahui dengan pasti record-record yang


disimpan secara fisik
 Alamat mutlak adalah device dependent. Perbaikan atau pengubahan
device, dimana berkas berada akan mengubah nilai key.
 Alamat mutlak adalah address space dependent. Reorganisasi berkas
relatif akan menyebabkan nilai key berubah.

Pengalamatan Relatif

R(NILAI KEY) ADDRESS


NILAI KEY = ALAMAT 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 -1). Record yang ke I mempunyai alamat relatif I atau I – 1 (bila mulai
dihitung dari 0).

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
yang berarti.

Kelemahannya

 Alamat Relatif adalah bukan device dependent.


 Alamat Relatif adalah address space dependent.
 Terjadinya pemborosan ruangan.

TEKNIK PENCARIAN TABEL

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, yang akan menunjukan alamat dimana record tersebut berada
dalam penyimpanan.

Organisasi Berkas Relatif Halaman 5


Data dalam direktori tersebut 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.

Directory
Key Address File Relatif Alamat Relatif

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 .

. CAT N–1

ZEBRA 2 BAT N

Gambar 4. Berkas Relatif dengan Struktur Tabel

DIRECTORY
APE, I - 1

BAT, N
CAT, N - 1
COW, 1
DOG, I + 1
EEL, I
ZEBRA, 2

Gambar 5. Berkas Relatif dengan Struktur Pohon

Organisasi Berkas Relatif Halaman 6


Keuntungan dari Pencarian Tabel

 Sebuah record dapat diakses dengan cepat, setelah nilai key dalam
direktori ditentukan.
 Nilai key dapat berupa field yang mudah dimengerti, seperti PART
NUMBER, NPM, karena nilai key tersebut akan diterjemahkan
menjadi alamat.
 Nilai key adalah address space independent, dimana
reorganisasi berkas tak akan memepengaruhi nilai key, yang
berubah adalah alamat dalam direktori.

TEKNIK KALKULASI ALAMAT

R (NILAI KEY) ADDRESS

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 relatif.

Salah satu kelemahan dari teknik pengalamatan relatif adalah ruang


harus disediakan sebanyak jangkauan nilai key, terlepas dari berapa
banyak nilai key.

Salah satu masalah dari teknik ini adalah ditemukannya alamat relatif
yang sama untuk nilai key yang berbeda.
Keadaan dimana:

R(K1) = R(K2) disebut benturan


K1  K2 atau collision

Sedangkan nilai key K1 dan K2 disebut synomin.


Synonim adalah dua atau lebih nilai key yang berbeda pada hash ke
home address yang sama.

Teknik-teknik yang terdapat pada Kalkulasi Alamat

 Scatter storage techniques


 Randomizing techniques
 Key-to-address transformation methods
 Direct addressing techniques
 Hash table methods
 Hashing

Organisasi Berkas Relatif Halaman 7


Disini yang akan kita bahas mengenai teknik hashing. Kalkulasi terhadap
nilai key untuk mendapatkan sebuah alamat disebut fungsi hash.

Keuntungan pemakaian Hashing

 Nilai key yang sebenarnya dapat dipakai karena diterjemahkan


kedalam sebuah alamat.
 Nilai key adalah address space independent bila berkas
direorganisasi, fungsi hash berubah tetapi nilai key tetap.

Kelemahannya

 Membutuhkan waktu proses dalam mengimplementasikan fungsi


hash.
 Membutuhkan waktu proses dan akses I/O dalam mengatasi
benturan.

Hashing dapat digunakan bersama-sama dengan pencarian tabel.

Gambar 6. Hashing dengan Directory Lookup

Penampilan fungsi Hash bergantung pada:

 Distribusi nilai key yang dipakai.


 Banyaknya nilai key yang dipakai relatif terhadap ukuran dari
ruang alamat.
 Banyaknya record yang dapat disimpan pada alamat tertentu
tanpa menyebabkan benturan.
 Teknik yang dipakai untuk mengatasi benturan

Organisasi Berkas Relatif Halaman 8


Beberapa fungsi Hash yang umum digunakan:

 Division Remainder
 Mid Square
 Folding

DIVISION REMAINDER

Pada division remainder, alamat relatif 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 relatif, maka dalam bahasa Pascal, fungsi R(NILAI KEY)
ADDRESS dapat di implementasikan:

ADDR := KEY MOD DIV


Dalam bahasa COBOL:

DIVIDE KEY BY DIV GIVING TEMP REMAINDER ADDR

Sisa pembagian (sebagai hasil dari fungsi MOD pada Pascal), dapat
dijabarkan sebagai berikut:

ADDR := KEY - DIV * TEMP

ADDR Harus merupakan bilangan integer.

Banyak faktor yang harus dipertimbangkan dalam pemilihan


pembagi:

 Jangkauan dari nilai key yang dihasilkan dari opersi 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.

 Pembagi harus diseleksi untuk mengurangi benturan. Riset


menunjukkan bahwa pembagi yang berupa bilangan genap akan

Organisasi Berkas Relatif Halaman 9


cenderung jelek, terutama dengan nilai key-nya yang dominan
ganjil.

 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.

 Menurut pendapatnya, bukan bilangan prima yang mempunyai


faktor prima kurang dari 20 akan dapat memberikan jaminan hasil
yang lebih baik.

 Walaupun kita telah menentukan pembagi dengan baik untuk


mengatasi benturan, bila ruang alamat dari berkas relatif mendekati
penuh, maka peluang terjadinya benturan akan meningkat.

Untuk mengukur kepenuhan berkas relatif digunakan Load Factor


(Faktor Muat).

Load Factor = banyak record dalam berkas


max. banyak record dalam berkas

Biasanya load factor yang sering digunakan adalah 0.7 atau 0.8.
Jika load factor lebih besar dari 0.7 atau 0.8 maka berkas tersebut
harus diperbesar dan di reorganisasi.

Jadi jika kita ingin menyimpan sebanyak n record pada suatu berkas dan
load factor adalah 0.8, maka max. banyak record pada berkas adalah
1.25 n.
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:

(1.25) n = (1.25) x 4000


= 5000

Organisasi Berkas Relatif Halaman 10


Bilangan pembagi: 5003

123456789 = 24676 sisa 2761 + 1


5003 (alamat relatif)

987654321 = 197412 sisa 2085 + 1


5003 (alamat relatif)

Jadi alamat relatif didapat dari sisa pembagian + 1

Gambar 7. Contoh penggunaan pembagi 5003

MID SQUARE HASHING

Untuk mendapatkan alamat relatif, nilai key dikuadratkan, kemudian


beberapa digit diambil dari tengah.

Dari nilai key yang dikuadratkan kita cari tengah-tengahnya.


Jumlah nilai key yang dikuadratkan:

nilai key 123456789 = 17 digit.

Untuk alamat relatif = 17 = 8.5


2

Kita mulai dari digit ke 8 dihitung dari kiri, maka alamat relatif = 8750
(karena ditentukan 4 digit sebagai alamat relatif).

Organisasi Berkas Relatif Halaman 11


Gambar 8. Contoh Mid Square Hashing

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.

123456789

12345 6789

Menghasilkan:

1
2345
9876 +

1 3221
(alamat relatif)

Organisasi Berkas Relatif Halaman 12


Gambar 9. Contoh Hashing by Folding

Perbandingan Fungsi Hash

 Teknik Division Remainder memberikan penampilan yang terbaik


secara keseluruhan.

 Teknik Mid Square dapat dipakai untuk file dengan load factor
cukup rendah akan memberikan penampilan baik, tetapi kadang-
kadang dapat menghasilkan penampilan yang buruk dengan
beberapa collision.

 Teknik Folding adalah teknik yang paling mudah dalam perhitungan,


tetapi dapat memberikan hasil yang salah, kecuali panjang nilai key
= panjang address.

Pendekatan terhadap masalah Collision

Ada 2 pendekatan dasar untuk menetapkan dimana K2 harus disimpan,


yaitu:
 Open Addressing
 Separate Overflow

Open Addressing

Menemukan address yang bukan home address untuk K2 dalam


berkas relatif.

Contoh:
K1 = 1 K2 = 1

R1 R2

K1 K2

Organisasi Berkas Relatif Halaman 13


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 address nya.

Contoh:

K1 = 1 K2 = 1

R1

K1

Overflow area

K2

Ada 2 teknik untuk mengatasi Collision:

 Linier Probing, yang merupakan teknik open addresing.


 Double Hashing, yang dapat dipakai selain open addressing atau
separate overflow.

Linear Probing

Salah satu cara menemukan lokasi record yang tak dapat disimpan di
home address nya adalah dengan menggunakan Linear Probing, yang
merupakan sebuah proses pencarian secara sequential/linear dari
home address sampai lokasi yang kosong.

Gambar 10. Linear Probing

Organisasi Berkas Relatif Halaman 14


Double Hashing

Pendekatan lain dalam menemukan lokasi sebuah record pada waktu


record tersebut tidak dapat disimpan dalam home address nya adalah
dengan menggunakan Double Hashing, yang akan memakai fungsi
hash kedua terhadap hasil dari fungsi hash pertama. Address dari
record yang di hash kembali dapat terletak pada primary area atau di
separate overflow area.

Keuntungan dari metode separate overflow adalah menghindari


keadaan dimana dapat terjadi metode open addressing untuk sebuah
record yang tak disimpan dalam home address nya menggantikan
record lain yang terakhir di hash ke home address nya.

Masalah ini dapat dihindari dengan open addressing sederhana


dengan memindahkan record yang sebelumnya ke lokasi lain (dengan
probing atau hashing kembali) dan menyimpan record yang baru
ketempat yang kosong.

Metode ini membutuhkan pengeluaran tambahan untuk pemeliharaan


berkas. Berkas relatif dibagi menjadi 2 berkas , yaitu: Primary Area dan
Overflow Area.

Gambar 11. Double Hashing

Perbandingan Linear Probing dan Double Hashing

Berkas dengan load factor kurang dari 0.5 pada linear probing akan
menghasilkan synonim yang mengelompok, sedangkan double
hashing synonimnya berpencar.

Load Factor < 0.5 : Double Hashing = Linear Probing.


Load Factor > 0.8 : Double Hashing > Linear Probing.

Synonim Chaining

Pendekatan pemecahan collision yang mengakses synonim dengan


fasilitas link-list untuk record-recordnya dalam kelas ekivalen. Adapun
link list record-record dengan home address yang sama tak akan

Organisasi Berkas Relatif Halaman 15


mengurangi jumlah collision, tetapi akan mengurangi waktu akses
untuk me-retrieve record-record yang tak ada di home address nya.

Contoh:

KEY HOME ADDRESS ACTUAL ADDRESS

Adams 20 20
Bates 21 21
Coll 20 22
Dean 21 23
Evans 24 24
Flint 20 25

R20 R21 R22 R23 R24 R25

.. Adams .. Bates .. Coll .. Dean .. Evans .. Flint .. ...

HOME PRIMARY DATA OVERFLOW


ADDRESS AREA AREA

20 Adams .. 0 Coll ..

21 Bates .. 1 Dean ..

22 2 Flint ..

23 3

24 Evans ..

Gambar 12. Hashing dengan Synonim Chaining

Organisasi Berkas Relatif Halaman 16


Bucket Addressing

Pendekatan lain dalam mengatasi collision adalah hash ke dalam


block atau bucket yang dapat memberikan tempat sejumlah record.

Contoh:

Sebuah berkas relatif mempunyai relatif 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:

Factor Muat = N
B(M + 1)

B record dapat semuanya di hash kedalam relatif 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 (misal dengan
double hashing).

Jika teknik separate overflow yang dipakai, record baru


ditempatkan dalam suatu himpunan bucket yang dirancang khusus
untuk tempat record yang tak dapat ditampung pada bucket primer.
Bucket ini disebut bucket overflow.

Record-record yang disimpan dalam sebuah bucket dapat dikelola


dalam:

 Dapat disisipkan dalam urutan berdasarkan penempatannya di


bucket.
 Dapat dipertahankan urutan nilai key-nya.

Bucket addressing ini umum dipakai.


Ukuran dari sebuah bucket dapat ditentukan oleh ukuran track atau
sektor dalam DASD. Ukuran bucket umumnya sama dengan ukuran
block untuk file.

Organisasi Berkas Relatif Halaman 17


Satu keuntungan penting dari penggunaan bucket yang dapat
menampung banyak record ini adalah record dengan panjang yang
berbeda dapat dipakai.

Contoh:

KEY HOME ADDRESS

Green 30
Hall 30
Jenk 32
King 33
Land 33
Mark 33
Nutt 33

BUCKET BUCKET CONTENTS


ADDRESS

30 Green .. Hall ..

31

32 Jenks ..

33 King .. Land .. Marks ..

Overflow

Nutt

Gambar 13. Bucket Adrressing

Organisasi Berkas Relatif Halaman 18


ORGANISASI BERKAS INDEKS SEKUENSIAL

PENGERTIAN BERKAS INDEKS SEKUENSIAL

Salah satu cara yang paling efektif untuk mengorganisasi kumpulan


record-record yang membutuhkan akses record secara sekuensial
maupun akses record secara individu berdasarkan nilai key adalah
organisasi berkas indeks sekuensial.

Jadi berkas indeks sekuensial merupakan kombinasi dari berkas


sekuensial dan berkas relatif.

Adapun jenis akses yang diperbolehkan, yaitu:


 Akses Sequential
 Akses Direct

Sedangkan jenis prosesnya adalah:


 Batch
 Interactive

Struktur berkas Index Sequential


 Index  Binary Search Tree
 Data  Sequential

Indeksnya digunakan untuk melayani sebuah permintaan untuk


mengakses sebuah record tertentu, sedangkan berkas data sekuensial
digunakan untuk mendukung akses sekuensial terhadap seluruh
kumpulan record-record.

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.

Organisasi Berkas Indeks Sekuensial Halaman 1


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

Anton Yana Mardi Riri

Tedi Susi Roni Dewi Dodi Irma Rudi Nurul

Gambar 1. Silsilah Keluarga

Akar pohon (root) adalah Handoko.

Secara rekursif suatu struktur pohon dapat didefinisikan sebagai berikut:

 Sebuah simpul tunggal adalah sebuah pohon.


 Bila terdapat simpul n, dan beberapa sub-pohon T1,T2,...,Tk, yang
tidak saling berhubungan, yang masing-masing akarnya adalah
n1,n2,..., nk, dari simpul/sub pohon ini dapat dibuat sebuah pohon
baru dengan n sebagai akar dari simpul-simpul n1,n2,...,nk.

n1 n2 ... nk

n1 n2 ... nk

Gambar 2. Definisi Struktur Pohon

Organisasi Berkas Indeks Sekuensial Halaman 2


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.

(1) (2) (3) (4) (5)

A A A A A

B B B C B C

E F

Gambar 3. Beberapa Contoh Pohon Biner

Perhatikan gambar 4 berikut:

MAMMOTH N/2
........ ........

COW 4

BAT 2 DOG 5 ZEBRA N

APE 1 CAT 3 EEL 6

Organisasi Berkas Indeks Sekuensial Halaman 3


Posisi Sequential Data File
1 APE
2 BAT
3 CAT
4 COW
5 DOG
6 EEL
: :
N ZEBRA

Gambar 4. Binary Search Tree dan Sequential File

Pada gambar 4 memperlihatkan struktur berkas indeks sekuensial


dengan sebuah indeks berikut pointer yang menuju ke berkas data
sekuensial. Pada contoh gambar tersebut, indeksnya disusun
berdasarkan binary search tree. Indeksnya digunakan untuk melayani
sebuah permintaan untuk mengakses sebuah record tertentu,
sedangkan berkas data sekeunsial digunakan untuk mendukung akses
sekuensial terhadap seluruh kumpulan record-record.

IMPLEMENTASI ORGANISASI BERKAS INDEKS SEKUENSIAL

Ada 2 pendekatan dasar untuk mengimplementasikan konsep dari


organisasi berkas indeks sekuensial:

 Blok Indeks dan Data (Dinamik)


 Prime dan Overflow Data Area (Statik)

Kedua pendekatan tersebut mengunakan sebuah bagian indeks dan


sebuah bagian data, dimana masing-masing menempati berkas yang
terpisah.

Alasannya:

Karena mereka diimplementasikan pada organisasi internal yang


berbeda. Masing-masing berkas tersebut harus menempati pada alat
penyimpan yang bersifat Direct Access Storage Device (DASD).

Organisasi Berkas Indeks Sekuensial Halaman 4


BLOK INDEKS DAN DATA

Pada pendekatan ini berkas indeks dan berkas data diorganisasikan


dalam blok. Berkas indeks mempunyai struktur tree, sedangkan
berkas data mempunyai struktur sekuensial dengan ruang bebas
yang didistribusikan antar populasi record.

Gambar 5. Indexed Sequential File Structured dengan B-Tree

Organisasi Berkas Indeks Sekuensial Halaman 5


Pada gambar 5 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 sekuensial dilayani dengan


mengakses blok data dalam urutan sekuensial. Sebagai catatan blok
data merupakan urutan secara logik dan bukan urutan secara fisik.
Dalam hal ini, blok data harus dihubungkan secara bersama dalam
urutan secara logik, seperti terlihat pada gambar 5.

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

Organisasi Berkas Indeks Sekuensial Halaman 6


Hanya blok data 1 yang digunakan dan hasilnya ditunjukkan pada
gambar 6.

Gambar 6. Hasil Insert APE dan AIREDALE

Entry pada blok harus diletakan berdasarkan urutan sekuensial


ascending.

Permintaan:

INSERT ARMADILLO

Pencarian dari struktur indeks menyatakan bahwa ARMADILLO


seharusnya menempati blok data 1, tetapi blok tersebut sudah
penuh.

Untuk mengatasi keadaan tersebut, blok data 1 dipecah dengan


memodifikasi blok indeks 1-1.

Separuh dari isi blok data, tetap menempati blok tersebut dan
separuhnya lagi dipindahkan ke blok yang baru dibuat, yaitu blok data
1A. Hasilnya ditunjukkan pada gambar 7.

Organisasi Berkas Indeks Sekuensial Halaman 7


Gambar 7. Hasil Insert ARMADILLO

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 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. Hasilnya ditunjukkan pada gambar 8.

Organisasi Berkas Indeks Sekuensial Halaman 8


Gambar 8. Hasil Insert CAT, BEAR, dan BOBCAT

PRIME DAN OVERFLOW DATA AREA

Pendekatan lain untuk mengimplementasikan berkas indek sekuensial


adalah berdasarkan struktur indek dimana struktur indek ini lebih
ditekankan pada karakteristik fisik dari penyimpanan, dibandingkan
dengan distribusi secara logik dari nilai key.

Indeksnya ada beberapa tingkat, misalnya tingkat cylinder index dan


tingkat track index. Berkas datanya secara umum diimplementasikan
sebagai 2 berkas, yaitu prime area dan overflow area.

Organisasi Berkas Indeks Sekuensial Halaman 9


Gambar 9. Struktur File Binatang menggunakan
pendekatan Physical-Layout Index

Misal setiap cylinder dari alat penyimpanan mempunyai 4 track.


Pada berkas binatang ada 6 cylinder yang dialokasikan pada prime data
area. Track pertama (nomor 0) dari setiap cylinder berisi sebuah indeks
pada record key dalam cylinder tersebut.

Entry pada indeks ini adalah dalam bentuk:

nilai key terendah, nomor track

Dalam sebuah track data, tracknya disimpan secara urut berdasarkan


nilai key.

Tingkat pertama dari indeks dalam berkas indeks dinamakan master


index.

Entry pada indeks ini adalah dalam bentuk:

nilai key tertinggi, pointer

Tingkat kedua dari indeks dinamakan cylinder index.


Indeks ini berisi pointer pada berkas prime data dan entry-nya dalam
bentuk:
nilai key tertinggi, nomor cylinder
Organisasi Berkas Indeks Sekuensial Halaman
10
Jika sebuah permintaan untuk mengakses record tertentu, misal kita
akan mengakses dengan nilai key BAT, pertama akan dicari pada
master index. 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 sekuensial, sampai BAT ditemukan.

Permintaan untuk mengakses data secara sekuensial 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).

Permintaan:

INSERT APE
INSERT AIREDALE

Akan mudah dilayani. Hanya track data 1 dari cylinder 1 yang akan
digunakan dan hasilnya ditunjukkan pada gambar 10.

Gambar 10. Hasil Insert APE dan AIREDALE

Permintaan:

INSERT ARMADILLO

Agak sulit ditangani. Pencarian struktur indeks menyatakan bahwa


ARMADILLO seharusnya menempati track 1 dari cylinder 1, tetapi
track tersebut sudah penuh.

Organisasi Berkas Indeks Sekuensial Halaman


11
Untuk mengatasi keadaan tersebut diperlukan overflow data area.
Overflow data area ini merupakan berkas yang terpisah dari prime data
area, tetapi overflow area ini ditunjukan oleh entry prime data area.
Hasilnya ditunjukkan pada gambar 11.

Gambar 11. Hasil Insert 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:

<ARMADILLO,ovfl-ptr>

Dengan ovfl-ptr adalah:

<cylinder, track, record>

Permintaan:

INSERT CAT
INSERT BEAR
INSERT BOBCAT

Akan mengisi track 2 dari cylinder 1 pada prime data area, tetapi
pengisian tersebut mengakibatkan penggunaan overflow area.
Organisasi Berkas Indeks Sekuensial Halaman
12
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 12.

Gambar 12. Hasil Insert CAT, BEAR dan BOBCAT

Permintaan:
INSERT ANT

Gambar 13. Hasil Insert ANT

Organisasi Berkas Indeks Sekuensial Halaman


13
Deklarasi Berkas Indeks Sekuensial Dalam Bahasa COBOL

Organisasi Berkas Indeks Sekuensial Halaman


14
LATIHAN

1. Dari contoh soal pada gambar 8, tunjukkan dengan gambar Blok


Indeks dan Data, bila ada permintaan:

INSERT DRAGON
INSERT CROCODILE
INSERT DEER

2. Dari contoh soal pada gambar 13, tunjukkan dengan gambar Prime
dan Overflow Data Area, bila ada permintaan:

INSERT BEE

Organisasi Berkas Indeks Sekuensial Halaman


15
ORGANISASI BERKAS DENGAN BANYAK KEY

PENGERTIAN ORGANISASI BERKAS DENGAN BANYAK KEY

Organisasi berkas yang memperbolehkan record diakses oleh lebih


dari satu key field disebut organisasi berkas dengan banyak key.

ONE ACCESS KEY ?

yes
SEQUENTIAL no
ACCESS ONLY ?

yes no

SEQUENTIAL DIRECT ACCESS MULTI-KEY


ORGANIZATION ONLY ? ORGANIZATION

yes no
RELATIVE
I NDE XE D
ORGANIZATION
SEQUENTIAL
ORGANIZATION

Gambar 1. Dasar Organisasi Berkas

Ada banyak teknik yang dipakai untuk organisasi berkas dengan


banyak key ini. Hampir semua pendekatan bergantung pada
pembentukan indeks yang dapat memberi akses langsung dengan
nilai key.

Ada 2 teknik dasar untuk pemberiaan hubungan antara s ebuah


indeks dan data record dari berkas, yaitu:

 Inversion
 Multi-list

Organisasi Dengan Banyak Key Halaman 1


DEFINISI DAN APLIKASI BERKAS DENGAN BANYAK KEY

Banyak sistem informasi interaktif memerlukan dukungan dari berkas


banyak key.

Contoh:

Sebuah sistem perbankan yang mempunyai beberapa pemakai


(user), seperti kasir, pegawai kredit, manajer cabang, pegawai
b a n k , n a s a b a h , d ll.
Semuanya memerlukan akses data yang sama dengan format record:

A CCO UNT
ID NAME GROUP-CODE SOCNO BALANCE OVERDRAW
LAST FIRST BRANCH TYPE LIMIT

Gambar 2. Contoh Format Record

Adanya pemakai yang berbeda memerlukan akses record-record


ini dalam cara yang berbeda.

K a s ir Mengindentifikasikan record account menurut nilai


ID.

K r e d it Akses semua record menurut nilai OVERDRAW


LIMIT atau semua record account dengan nilai
SOCNO.

Manajer Akses semua record menurut Branch dan Type.


Cabang

Pegawai Membuat laporan berkala untuk semua record


B ank account yang disortir berdasarkan ID.

Nasabah Memerlukan akses recordnya dengan memberikan


ID yang dimilikinya atau kombinasi dari NAME,
SOCNO dan Type.

Organisasi Dengan Banyak Key Halaman 2


Satu pendekatan yang dapat mendukung semua jenis akses
adalah dimilikinya banyak berk as yang berbeda. S e t ia p
berkas di organisasi untuk melayani satu jenis keperluan.

Maka untuk contoh sistem perbankan di atas harus ada:

 File account yang organisasinya indeks sekuensial dengan nilai


key:
ID untuk melayani kasir, pegawai bank & nasabah.

 File account yang organisasinya sekuensial dengan record di urut


menurut:
OVERDRAW LIMIT untuk melayani pegawai kredit.

 File account yang organisasinya relatif dengan nilai key:


SOCNO untuk melayani pegawai kredit.

 File account yang organisasinya sekuensial dengan record di urut


menurut:
GROUP-CODE untuk melayani manajer cabang.

 File account yang organisasinya relatif dengan nilai key:


NAME, SOCNO dan TYPE untuk melayani nasabah.

Jadi kita mempunyai 5 file, semuanya mempunyai record yang


sama. Kelima file itu hanya berbeda dalam organisasi dan cara
ak s es ny a.

Pengulangan data dari beberapa file bukan merupakan cara yang baik
untuk mengakses record dengan berbagai cara. Dan cara ini
memerlukan ruang (space) yang besar di storage dan kesulitan pada
waktu peng-update-an record secara serentak.

Untuk mengatasi masalah di atas, maka digunakan organisasi


berkas banyak key yang umumnya diimplementasikan dengan
pembentukan banyak indeks untuk memberikan akses yang berbeda
t erhadap rec ord dat a.
Mungkin juga cara ini memakai banyak link-list terhadap record. Dan
sebuah indeks dapat dibentuk dengan beberapa cara, misal
s e b a g a i t a b e l b in a r y s e a r c h t r e e a t a u B - t r e e .

Organisasi Dengan Banyak Key Halaman 3


ORGANISASI INVERTER FILE

Satu pendekatan dasar untuk memberikan hubungan ant ara


sebuah indeks dan data record dari file adalah inversi.

Sebuah key pada indeks inversi mempunyai semua nilai key


dimana masing-masing nilai key mempunyai penunjuk ke record
yang bersangkutan. File yang demikian disebut inverted file.

Indeks inversi yang sederhana dibentuk sebagai sebuah tabel.

Contoh:

Inversi file ACCOUNT terhadap SOCNO menghasilkan indeks


inversi.

SOCNO ADDRESS
001234123 6
123456789 5
213823456 14
299167305 16
399042131 4
411625331 13
412631467 7
426135447 20
445062681 17
459463001 1
513014265 8
612305116 9
626311660 18
692122222 12
713214622 3
798392289 15
821346211 2
912346789 19
923146154 11
987654321 10

Gambar 3. Indeks Inversi Record dengan key SOCNO

Organisasi Dengan Banyak Key Halaman 4


Indeks inversi tersebut telah di sortir menurut SOCNO.
Penambahan record file menyebabkan indeks inversi juga harus
d iu b a h .

Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau
sebuah indeks sekuensial. 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 696132
445062681 535218
459463001 111111
513014265 310103
612305116 324196
626311660 641230
692122222 387122
713214622 198121
798392289 511211
821346211 112131
912346789 686116
923146154 386132
987654321 335812

Gambar 4. Indeks Inversi Record dengan key SOCNO


Mengunakan Indirect Addressing

Jika sebuah key dipakai untuk menentukan struktur storage dari file
disebut primary key, sedangkan key yang lainya disebut
secondary key.

Organisasi Dengan Banyak Key Halaman 5


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
BRANCH TYPE ID
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

Gambar 5. Indeks Inversi Record dengan key GROUP-CODE

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 dengan BRANCH = ‘NE’ ?
 Apakah BRANCH = ‘NE’ mempunyai TYPE = ‘001’ ?

Organisasi Dengan Banyak Key Halaman 6


ORGANISASI MULTI-LIST FILE

Suatu pendekatan lain yang memberikan hubungan antara sebuah


indeks dan data record dari sebuah file disebut organisasi multi-list
f ile .

Seperti sebuah inverted file, sebuah multi-list file mempunyai


sebuah indeks untuk setiap secondary key.
Organisasi multi-list file berbeda dengan inverted file, dimana dalam
indeks inversi untuk sebuah nilai key mempunyai sebuah
penunjuk untuk sebuah data record dengan nilai key, sedangkan
dalam indeks multi-list untuk sebuah nilai key mempunyai hanya
sebuah penunjuk untuk data record pertama dengan nilai key. Data
record mempunyai sebuah penunjuk untuk data record selanjutnya
dengan nilai key dan seterusnya. Maka terdapat sebuah linked-list
dari data record untuk setiap nilai dari secondary key.

GROUP-CODE
BRANCH TYPE ID
DT 001 111111
DT 002 198121
EA 001 324196
NE 001 415631
NE 002 300123
NW 001 112131
NW 002 291821
WE 002 386132

Gambar 6. Multi-list Index for GROUP-CODE secondary key

OVERDRAW
LIMIT ID
0. 111111
100. 112131
200. 198121
250. 511211

Gambar 7. Multi-list Index for OVERDRAW-LIMIT secondary key

Organisasi Dengan Banyak Key Halaman 7


Gambar 6 dan 7, menunjukkan indeks multi-list untuk secondary key
GROUP-CODE dan OVERDRAW LIMIT, sedangkan gambar 8
menunjukkan data file. Setiap data record mempunyai penunjuk untuk
mengakses record selanjutnya.

Record NAME GROUP-CODE OVERD.


Address ID LAST FIRST BRANCH TYPE NEXT SOCNO BALANCE LIMIT
1 111111 DEAN JOHN DT 001 201431 459463001 100.50 0.
2 112131 AMORE CAROL NW 001 208432 821346211 2311.20 100.
3 198121 RICE BESS DT 002 335812 713214622 -191.87 200.
4 201431 PARKER OLA DT 001 310103 399042131 3142.93 100.
5 208432 ANDERSON BARBA NW 001 511211 123456789 95.26 0.
6 291821 ANDERSON BRENT NW 002 0 001234123 146.92 0.
7 300123 HART ALLIS NE 002 696123 412631467 3000.00 100.
8 310103 TAHOE SEREN DT 001 686116 513014265 243.63 0.
9 324196 BONES I GOR EA 001 534216 612305116 0.02 0.
10 335812 BEE VERA DT 002 486212 987654321 88.72 0.
11 386132 ARC JEAN WE 002 387122 923146154 -89.98 100.
12 387122 ELLS JOSHU WE 002 0 692122222 10.95 0.
13 415631 BELLE ELLIE NE 001 0 411625331 426.86 100.
14 486212 MATTHERS ANN DT 002 641230 213823456 893.92 100.
15 511211 SNUGGS JOHN NW 001 0 798392289 2814.12 250.
16 534216 LOOMIN TI M EA 001 535218 299167305 296.12 250.
17 535218 ELLSW ORT NANCY EA 001 0 445062681 2814.12 250.
18 641230 W ELLS CHUCK DT 002 0 626311660 -98.14 100.
19 686116 SW ORTH LAUR DT 001 0 912346789 3216.16 100.
20 696132 GUNNESS MARIO NE 002 0 426135447 95.93 25.

Gambar 8. Contoh Data File

Nilai key harus di urut, struktur indeks adalah tabel dengan


indirect addressing dan mempunyai hubungan data record yang
disusun menurut ID secara ascending.

Organisasi Dengan Banyak Key Halaman 8


GROUP-CODE
BRANCH TYPE ID LENGTH
DT 001 111111 4
DT 002 198121 4
EA 001 324196 3
NE 001 415631 1
NE 002 300123 2
NW 001 112131 3
NW 002 291821 1
WE 002 386132 2

Gambar 9. Variasi Index pada gambar 6,


menunjukkan length of linked-list

OVERDRAW
LIMIT ID LENGTH
0. 111111 7
100. 112131 8
200. 198121 1
250. 511211 4

Gambar 10. Variasi Index pada gambar 7,


menunjukkan length of linked-list

Informasi tentang banyak record dalam link-list juga berguna untuk


mendapatkan cara yang terbaik dalam pengaksesan.

Contoh:

Ada 3 cara akses yang potensial dalam menjawab pertanyaan:

Daftar nilai ID untuk account dengan GROUP-CODE ='EA001' dan


OVERDRAW-LIMIT = 100 ?

Data file dapat dicari secara sekuensial, indeks GROUP-CODE atau


dengan memakai OVERDRAW-LIMIT.

Mana cara yang terbaik ?

Organisasi Dengan Banyak Key Halaman 9


Pencarian secara sekuensial memerlukan akses sampai 20 data
record, menggunakan indeks GROUP-CODE berarti akses sampai 3
data record dan memakai indeks OVERDRAW-LIMIT berarti akses
sampai 8 data record.

Dari ketiga cara di atas, yang terbaik adalah mengunakan indeks


GROUP-CODE.

DEKLARASI BERKAS DALAM COBOL

SELECT ACCOUNT-FILE ASSIGN TO DISK


ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL OR RANDOM OR DYNAMIC
RECORD KEY IS ID
ALTERNATE RECORD KEY IS SOCNO
ALTERNATE RECORD KEY IS GROUP-CODE
WITH DUPLICATES.

S O CNO ID
459463001 111111
821346211 112131
713214622 198121
399042131 201431
123456789 208432
001234123 291821
412631467 300123
513014265 310103
612305116 324196
987654321 335812
923146154 386132
692122222 387122
411625331 415631
213823456 486212
798392289 511211
299167305 534216
445062681 535218
626311660 641230
912346789 686116
426135447 696132

Gambar 11. Contoh Hasil Program COBOL

Organisasi Dengan Banyak Key Halaman 10


BERKAS SORT DAN MERGE

PENGERTIAN BERKAS SORT DAN MERGE

Dalam sistem penyortiran dikenal 2 metode, yaitu:


 Metode sort internal
 Metode sort eksternal

Perbedaannya:

 Pada metode sort internal, semua record yang akan diproses


dimuat kedalam memori komputer lalu diproses sort (sortir).

 Pada metode sort eksternal, record-record yang diproses tidak


semuanya dapat dimuat kedalam memori komputer, karena
keterbatasan memori komputer.

 Metode sort eksternal didalam penerapannya nanti, menggunakan


pula metode sort internal.

Contoh:

Sebuah file berisi 2000 record harus di sortir kedalam memori yang
hanya dapat manampung 1000 record sekaligus. Untuk itu digunakan
metode sort eksternal.

Langkah-langkah dalam penyortiran ini adalah:

 Record-record dibagi kedalam 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)

 Setelah itu kedua sorted sublist ini (RUN) digabung (merge),


sehingga didapat berkas gabungan (merge file) yang record-record
nya telah di sortir.

Berkas Sort dan Merge Halaman 1


Gambar 1. Natural Merge of two sorted list

Maka dapat disimpulkan langkah-langkah untuk metode sort eksternal ini


adalah:

 Sort eksternal, 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 kemudian
digabung lagi sampai akhirnya didapatkan sebuah file gabungan
yang berisi semua record-record yang telah di sortir.

 Output, yang menyalin file gabungan yang telah ter sortir ke media
storage terakhir.

Faktor-faktor yang mempengaruhi metode sort eksternal:

 Jumlah record yang akan di sortir


 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 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).

Berkas Sort dan Merge Halaman 2


Gambar 2. Merge logic for two sorted list

Ada 4 teknik sort/merge file, yaitu:

 Natural Merge
 Balanced Merge
 Polyphase Merge
 Cascade Merge

NATURAL MERGE

Merge yang menangani 2 input file sekaligus disebut 2 way natural


merge. Merge yang menangani M input file sekaligus disebut M way
natural merge. M menunjukkan derajat merge.

Pada natural merge, dibagi lagi menjadi:

2 way natural merge


3 way natural merge
:
:
M way natural merge

Berkas Sort dan Merge Halaman 3


Pada M way natural merge, dapat didefinisikan sebagai merge dengan:

M input file dan hanya 1 output file

Contoh:

Sebuah file yang terdiri dari 6000 record hendak di sortir kedalam
memori komputer yang kapasitasnya 1000 record.
Buatlah dengan menggunakan 2 way natural merge!

Gambar 3. Contoh 2-way Natural Merge

Berkas Sort dan Merge Halaman 4


Contoh 3 way Natural Merge:

Gambar 4. Contoh 3-way Natural Merge

Berkas Sort dan Merge Halaman 5


Contoh 2 way Natural Merge, yang kapasitas memorinya 500 record:

Gambar 5. Contoh 2-way Natural Merge

Contoh 3 way Natural Merge, yang kapasitas memorinya 500 record:

Gambar 6. Contoh 3-way Natural Merge

Berkas Sort dan Merge Halaman 6


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 dibagi lagi menjadi:

2 way balanced merge


3 way balanced merge
:
:
M way balanced merge

Pada balanced merge, jumlah input file sama dengan jumlah output file,
walaupun pada akhirnya tak ada lagi keseimbangan antara input dan
output file.

Gambar 7. Contoh 2-way Balanced Merge

Berkas Sort dan Merge Halaman 7


POLYPHASE MERGE

Pada M way polyphase merge digunakan 2M-1 input file dengan 1


output file. Jadi jika 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 kedalam 3 input file. Jika kita
menggunakan 2 way polyphase merge, berarti 17 run tersebut harus
didistribusikan kedalam 3 input file.

Dari pendistribusian tersebut, maka diperoleh:

- input file 1 berisi 7 run


- input file 2 berisi 6 run
- input file 3 berisi 5 run

Gambar 8. Contoh Polyphase Merge

Berkas Sort dan Merge Halaman 8


CASCADE MERGE

Jenis lain dari unbalanced merge yang berusaha mengurangi


penyalinan/copy dari record-record disebut cascade merge.

Cascade merge dengan derajat M menggunakan:

2M-1, 2M-2, 2M-3,..., kemudian 2 input file selama merge

Setiap merge pass dimulai dengan merge dari:

2M-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.

Gambar 9. Contoh Cascade Merge

Berkas Sort dan Merge Halaman 9


PENGENALAN KONTROL INPUT/OUTPUT

DEFINISI DAN PERSYARATAN KONTROL I/O

Sebuah sistem kontrol 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.

Tugas dari sistem kontrol I/O adalah:


 Memelihara direktori dari berkas dan lokasi informasi.
 Menentukan jalan (pathway) bagi aliran data antara main memory
dan alat penyimpanan sekunder.
 Mengkoordinasi komunikasi antara CPU dan alat penyimpanan
s ek under.
 Menyiapkan berkas penggunaan input atau output
 Mengatur berkas, bila pengunaan input atau output telah selesai.

DIREKTORI BERKAS DAN KONTROL INFORMASI

Sebelum berkas dapat diakses oleh sebuah program, sistem operasi


harus mengetahui pada alat penyimpanan sekunder yang mana
berk as t ers ebut berada.

Gambar 1. Struktur Direktori Berkas

Pengenalan Kontrol I/O Halaman 1


Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk
satu unit (mis. disk pack atau tape reel) dari penyimpanan
s ek under.

Labelnya berisi identifikasi informasi, akses kontrol informasi, dan


sebuah pointer yang menunjuk ke isi tabel, yang berisi kontrol blok
u n t u k s e t ia p b e r k a s p a d a u n it t e r s e b u t .

Sebuah kontrol blok berisi informasi tentang nama berkas,


atributnya (seperti panjang record, ukuran blok, o r g a n is a s i
berkas) dan batasannya 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 media penyimpanan.

KONTROL PERALATAN

Aktifitas I/O terutama mencakup perpindahan data antara main


memory dengan alat penyimpanan sekunder atau alat I/O, seperti
printer, terminal, dan card reader/punch. Operasi I/O memerlukan
d u k u n g a n k o n t r o l a la t s e c a r a t e r in c i.

Contoh:
Misalkan direktori berkas sudah diberitahu lokasi berkas yang
diminta pada alat penyimpanan sekunder atau peralatan I/O sudah
ditentukan. Supaya dapat menulis (Write) pada alat tersebut atau
membaca (Read) dari alat tersebut.

Maka:
Jalur (pathway) antara memori utama dan peralatan harus sudah
ditentukan dan juga harus ditentukan komponen-komponen yang
dibutuhkan dari jalur tersebut (termasuk peralatan yang dituju) dan
s ia p u n t u k d ig u n a k a n .

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).

Pengenalan Kontrol I/O Halaman 2


Saluran I/O itu sendiri merupakan prosesor yang sudah di program.
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).

Gambar 2. Komponen Sistem Komputer dalam I/O Processing

Saluran I/O ini diperintah oleh sistem operasi dan kemudian oleh
CPU. Saluran I/O ini tidak mengendalikan alat penyimpanan secara
langsung. Tetapi saluran I/O ini menetapkan satu atau lebih unit
alat pengontrol. Susunan ini penting untuk menyederhanakan
channel program.

Sebelum opersi I/O dapat dimulai, jalur antara memori utama dengan
p e r a la t a n h a r u s s u d a h d it e n t u k a n . J ik a s a lu r a n , u n it p e n g o n t r o l, a t a u
peralatan yang dituju sedang sibuk, maka kontruksi dari pathway
harus menunggu. Untuk menghindari menunggu, s is t e m
komputer dilengkapi dengan beberapa saluran dan unit pengontrol.

MACAM-MACAM CHANNEL

 Selector Channel

Dapat mengatur aliran data antara memori utama dengan sebuah


p e r a la t a n p a d a s a a t t e r s e b u t . Karena saluran merupakan
prosesor-prosesor yang cepat, maka saluran selektor biasanya
hanya menggunakan peralatan I/O dengan kecepatan tinggi, seperti
disk. Penggunaan peralatan dengan kecepatan rendah, misal card
reader.

Pengenalan Kontrol I/O Halaman 3


 Multiplexor Channel

Dapat mengatur aliran data antara memori utama dengan beberapa


perlatan. Saluran multiplexor lebih efektif bila menggunakan
p e r a la t a n d e n g a n k e c e p a t a n r e n d a h , d ib a n d in g k a n d e n g a n s e le c t o r
channel. Dengan saluran multiplexor, beberapa peralatan dapat
diaktifkan secara serentak, tetapi saluran harus melengkapi saluran
program untuk satu peralatan sebelum memulai dengan saluran
p r o g r a m la in .

 Block Multiplexor Channel

Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel


dapat mengeksekusi satu intruksi dari saluran program untuk satu
peralatan, kemudian dapat mengalihkan intruksi-intruksi dari saluran
program itu ke peralatan yang lain.

MACAM-MACAM DEVICE

Dedicated Device
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh: Terminal

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.

Jenis ketiga dari peralatan adalah suatu unit dimana pemakai


mengiginkan pemakaian secara bersama, tetapi sesungguhnya
t id a k c o c o k d ig u n a k a n u n t u k p e n g g u n a a n c o n c u r r e n t .

Pengenalan Kontrol I/O Halaman 4


Contoh:

Berbagai program ditujukan ke printer secara bersamaan. Sistem


pengontrol I/O menggunakan peralatan virtual untuk mengalamatkan
jenis peralatan yang dibutuhkan. Program tersebut menulis ke alat
pencetak (printer), tetapi sesungguhnya di tulis ke disk dahulu.
Setelah berkas output diakhiri oleh program, berkas tersebut
masuk dalalm antrian, kemudian ditulis seluruhnya ke printer.

Peralatan virtual I/O ini disebut spooling.


Maksud dari sistem spooling adalah untuk memberikan pemakaian
peralatan secara bersamaan. Hampir semua komputer multi user
menggunakan spooling.

AKTIFITAS SALURAN

Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main


memory dengan unit pengontrol penyimpan. CPU berkomunikasi
dengan saluran melalui beberapa perintah yang sederhana.

Beberapa saluran akan memberi perintah:

 Test I/O, untuk menentukan apakah jalur (pathway) yang menuju


p e r a la t a n s e d a n g s ib u k .
 S t a r t I / O , p a d a p e r a la t a n t e r t e n t u .
 Halt I/O, pada peralatan tertentu.

Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi.


Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya
instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.

Jika interupsi terjadi, kontrol akan bercabang melalui r u t in


pengendali interupsi (interrupt-handler routine), dimana kontrol ak an
menentukan penyebab dari interupsi, melakukan kegiatan yang
tepat, kemudian mengembalikan kontrol pada pemanggil (caller).

PROSES PEMBACAAN

Jika sebuah program membutuhkan READ dari suatu berkas,


maka langkah-langkah berikut, yang tampak pada gambar 3 akan
t e r ja d i.

Pengenalan Kontrol I/O Halaman 5


Gambar 3. Urutan kejadian dalam proses file READ

Langkah-langkah tersebut adalah:

1. Program mengeluarkan sebuah READ, yang menginterupsi


pengont rol I / O .
2. Pengontrol I/O membuat sebuah saluran program pada memori
utama.
3. Saluran program dibaca dan di eksekusi oleh pemanggil saluran.
4. Sinyal yang tepat akan di transmisikan ke pemanggil unit
k o n t r o l.
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.

CATATAN:

Data dibaca kedalam buffer, dimana buffer ini merupakan suatu


tempat pada memori utama yang disediakan untuk menampung data.
Jika buffer penuh, program akan segera menggunakan data tersebut.

Rangkaian sekilas dari peristiwa yang terjadi, yaitu ketika sebuah


program meminta WRITE pada sebuah berkas, akses I/O akan
digiatkan. Peristiwa ini harus terjadi untuk setiap intruksi READ dan
WRITE yang ditujukan pada peralatan.

Pengenalan Kontrol I/O Halaman 6


BLOCKING RECORD

Teknik yang sering digunakan untuk mengurangi peralatan program


akses adalah block record, sedemikian rupa, sehingga beberapa
r e c o r d a k a n d ib a c a / d it u lis d a la m s u a t u a k s e s t u n g g a l p a d a p e r a la t a n .
Jika ada n record per blok, maka hanya setiap READ ke n yang akan
diakses oleh suatu program pada suatu peralatan. Biasanya intruksi
READ diubah menjadi intruksi GET oleh sistem kontrol I/O.
Kemudian suatu channel program menerjemahkan instruksi GET
keperalatan READ. Jika buffer kosong, mengakibatkan buffer akan
d iis i.

Gambar 4. Peralatan Akses dengan Block Record

MANAJEMEN BUFFER

 Single Buffering

Gambar 5. Struktur Buffer dengan satu buffer file

Pada gambar 5. menunjukkan struktur data dari buffer dalam bentuk


yang sederhana, yang terdiri dari satu record per-block 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.

Pengenalan Kontrol I/O Halaman 7


Struktur dasar dari channel program untuk mengisi buffer adalah:

 Tunggu intruksi READ dari program


 Memberitahukan intruksi start I/O ke unit kontrol
 Tunggu hingga buffer dikosongkan
 Memberitahukan interupsi pada program, sehingga dapat mulai
membaca dari buffer.

Masalah yang timbul disini adalah pemakai program menggangur


pada saat menunggu buffer diisi.

 Anticipatory Buffering

Pendekatan lain yang dapat menghilangkan beberapa hal yang


mungkin untuk menunggu CPU adalah dengan menggunakan
A n t ic ip a t o r y B u f f e r in g .

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 di-reset dan channel program akan meng-
initates pengisian kembali buffer.

Struktur dasar channel program untuk mengisi sebuah buffer dengan


anticipatory buffer diperlihatkan pada gambar 6.

Gambar 6. Struktur buffer dengan satu buffer per file

lo o p : I f f u ll- f la g = 1 g o t o lo o p
ISSUE START - I/O Command to control unit
wait while buffer is being filled
f u ll- f la g : = 1
g o t o lo o p

Pengenalan Kontrol I/O Halaman 8


Rutin pelengkap untuk mengosongkan buffer kedalam tempat kerja
record program selalu diperlukan. Rutin pengisian dan pengosongan
b u f f e r s e la lu b e r p a s a n g a n : s a la h s a t u d a r i p a s a n g a n t e r s e b u t
merepresentasikan sebuah PRODUCER, sedangkan pasangan yang
lain bertindak sebagai CONSUMER.

Untuk berkas input, producer adalah channel program dan consumer


adalah pemakai program.
Untuk berkas output, producer adalah pemakai program dan
consumer adalah channel program.

Rutin consumer yang mendampingi rutin producer di atas adalah:

wait : If full-flag = 0 go to wait


read the buffer contents into the record work area
f u ll- f la g : = 0
go to wait

Keadaan awal, full-flag = 0, mengakibatkan channel program mengisi


buf f er.

 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.

Ide dasar dari double buffering adalah jika consumer mengosongkan


salah satu buffer, maka producer dapat mengisikan kedalam buffer
yang lain, pada saat buffer pertama sudah kosong, maka buffer yang
kedua harus dalam keadaan penuh. Kemudian consumer dapat
mengkosongkan buffer yang kedua, pada saat producer mengisi
buffer yang pertama, demikian seterusnya.

Struktur buffer untuk double buffering terdiri dari sebuah pointer yang
menunjuk ke buffer berikutnya.

Pengenalan Kontrol I/O Halaman 9


Gambar 7. Struktur buffer untuk dua buffer

 Three Buffers

Gambar 8. Three Chained Buffer

p f ill
: yang menunjukkan buffer berikutnya akan diisi atau sedang
d iis i
pempty : yang menunjukkan buffer berikutnya akan dikosongkan
at au
s e d a n g d ik o s o n g k a n .

Keadaan ini dapat dilihat sebagai berikut:

B uf f er 1
penuh
B uf f er 2
s e d a n g d iis i
B uf f er 3
s e d a n g d ik o s o n g k a n , r e c o r d k e m d i d a la m b u f f e r a k a n
dibaca kedalam tempat kerja record berikutnya.
Buffer berikutnya yang akan kosong adalah buffer 1
Buffer berikutnya yang akan di isi adalah buffer 3

P a d a p e n d e k a t a n in i d ia n g g a p jik a s u a t u b u f f e r k o s o n g , p r o d u c e r
akan bergerak mengisinya.

Pengenalan Kontrol I/O Halaman 10


Contoh:

Jika setelah buffer 3 diisi pada keadaan di atas, consumer tetap


akan mengosongkan buffer 1, kemudian producer mengisi buffer 2.
Selanjutnya consumer akan menunggu.

Jika producer secara konsisten mengisi buffer pada kecepatan yang


le b ih r e n d a h d ib a n d in g k e c e p a t a n pada s aat consumer
mengosongkannya, maka consumer akan menunggu.

Keuntungan menggunakan lebih dari satu buffer adalah


kemampuannya untuk saling melengkapi operasi pengisian dan
pengosongan, dengan demikian mengurangi waktu tunggu.

Pengenalan Kontrol I/O Halaman 11

Anda mungkin juga menyukai