Anda di halaman 1dari 78

BAB 1

SISTEM FILE
BERKAS DAN AKSES adalah :
Sistem penyimpanan, pengelolaan dan penyimpanan data pada alat
penyimpan eksternal. Pada berkas dan akses penyimpanan data dilakukan secara
fisik.

BEBERAPA ISTILAH :
1. Entitas adalah : Suatu objek yang dapat dibedakan dari lainnya. Objek ini
dapat berupa barang, orang, atau peristiwa lainnya.
Contoh : Entitas Pegawai, Mobil, Mahasiswa dan Nilai ujian

2. Atribut adalah : Karakteristik yang menjadi cirri dari entitas.


Contoh : Entitas gaji pegawai terdiri dari atribut : NIP, Nama, Jam lembur,
tunjangan, gaji pokok. Entitas Mobil terdiri dari atribut : Nomor polisi, warna,
jenis mobil, tahun, bahan bakar.

3. Item Data adalah : Tempat penyimpanan setiap atribut dari sebuah entitas.
Contoh Item data untuk nama mahasiswa, Item data untuk NPM.
Item Data itu biasa disebut field, tetapi lebih tepat dipakai untuk menentukan
tempat dimana item data disimpan

4. Item data elementer adalah Bagian yang lebih kecil dari item data

5. Record adalah kumpulan item data yang saling berhubungan

6. Berkas / File adalah kumpulan record yang saling berhubungan

D PENENTUAN FIELD (ATRIBUT) di DALAM SEBUAH FILE

Kita harus berhati-hati dalam penentuan pemberian atribut-atribut yang dibutuhkan di


dalam sebuah file. Atribut adalah karakteristik-karakteristik yang merupakan bagian
dari suatu file. Misalkan, file MAHASISWA, apa saja atributnya ?.
Tentu saja, atribut-atribut dari mahasiswa bisa berupa : NPM, NAMA, KELAS,
TINGGI BADAN, BERAT BADAN, WARNA KULIT, ALAMAT RUMAH, NOMOR HP,
dan sebagainya.
Tapi, tentu saja kita harus memilih atribut-atribut yang diperlukan saja
(dibutuhkan dalam proses), sehingga tinggal NPM, NAMA, KELAS, ALAMAT
RUMAH, dan bisa saja NOMOR HP. Sedangkan sisanya, seperti TINGGI BADAN
tidak diperlukan karena tidak akan diproses.
Agar memudahkan penjelasan, maka master file akan digambarkan dengan
lambang kotak persegi, transaction file digambarkan dengan diamond, dan atribut
(field) akan digambarkan dengan elips. Perhatikan gambar berikut ini :

Struktur & Organisasi Data 1 -1-


KELAS

Catatan :
KD_MK : Kode Mata Kuliah
NM_DOSEN MATA KULIAH NM_MK : Nama Mata Kuliah
NM_DOSEN : Nama Dosen

KD_MK SKS

NM_MK

Manakah atribut(-atribut) yang bukan merupakan atribut dari file MATA KULIAH
di atas ?.

Kita reka-reka isi setiap atributnya, misalkan :


KD_MK = “KD-10121”
NM_MK = “Pancasila”
SKS = 2
NM_DOSEN = “Drs. A. Muchji, MM”
KELAS = “2KA03”

Tentu saja yang tidak boleh adalah NM_DOSEN dan KELAS karena mata kuliah
“Pancasila” bukan hanya diajar oleh “Drs. A. Muchji, MM” dan bukan hanya untuk
kelas “2KA03” saja. Nama dosen adalah atribut dari DOSEN, dan kelas adalah
atribut dari MAHASISWA.

Berikut gambaran mengenai keterhubungan antara MAHASISWA dan MATA


KULIAH beserta transaction file-nya.

ALAMAT NILAI

MAHASISWA AMBIL MATA KULIAH

NPM KELAS KD_MK SKS


NM_MHS KD_MK NPM
NM_MK

Secara sederhana, transaksi di atas dapat dibaca : “Mahasiswa (bertransaksi)


mengambil mata kuliah, akibat transaksi tersebut, maka mahasiswa (akan)
mendapat nilai.”

KLASIFIKASI DATA

1. Kelompok Data Tetap


Kelompok data yang tidak mengalami perubahan, paling tidak dalam kurun waktu
yang lama.
Contoh : Data pribadi mahasiswa.

Struktur & Organisasi Data 1 -2-


2. Kelompok Data Tak Tetap
Kelompok data yang secara rutin mengalami perubahan.
Contoh : Data rencana studi mahasiswa.

3. Kelompok Data Yang Bertambah Menurut Waktu


Kelompok data ini biasanya merupakan data akumulasi dari kelompok data tetap
dan data tak tetap. Contoh : Data transkrip

KLASIFIKASI FILE
1. Master File (Berkas Induk)
2. Transaction File (Berkas Transaksi)
3. Report File (Berkas Laporan)
4. Work File (Berkas Kerja)
5. Program File (Berkas Program)
6. Text File (Berkas Teks)
7. Dump File (Berkas Tampung)
8. Library File (Berkas Pustaka)
9. History File (Berkas Sejarah)

1. MASTER FILE
Adalah file yang berisi data yang relatif tetap.
Master file (berkas induk) berisi objek-objek yang harus ada di sebuah unit kerja
(enterprise). Misalkan, di sebuah perguruan tinggi, objek-objek yang harus ada
seperti (1) mahasiswa, (2) dosen, (3) mata kuliah, (4) biaya kuliah, (5) ruang
kelas, dan sebagainya. Objek-objek tersebut harus disimpan datanya di dalam
file komputer, dan akan masuk ke dalam katagori master file.

Contoh lain :
Organisasi sebuah pabrik : * Payroll Master File
* Customer Master File
* Personnel Master File
* Inventory Master File

Ada 2 jenis Master File :


1. Reference Master File;
File yang berisi record yang tak berubah / jarang berubah.
Contoh :
Berkas 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 :
• Berkas stock barang
• Berkas pemesanan tempat duduk

2. TRANSACTION FILE
Transaction file adalah berkas transaksi yang harus disimpan di dalam media
penyimpanan eksternal komputer. Transaction file terjadi akibat adanya
hubungan (relasi) antar master file

Struktur & Organisasi Data 1 -3-


Bisa juga di definisikan Transaction File Adalah file yang berisi record-recod yang
akan memperbaharui / meng-update record-record yang ada pada master file.
Meng-update dapat berupa : Penambahan record, penghapusan dan perbaikan
record.

Hubungan Master File dan Transaction File :


Misalkan :di perpustakaan ada master file PEMINJAM, dan BUKU. Ketika
PEMINJAM melakukan peminjaman BUKU, maka terjadilah transaksi, dan
transaksi tersebut harus dicatat, misalkan di file transaksi dengan nama PINJAM.
Mengacu pada prinsip basis data, tidak boleh ada atribut yang ganda (berisi
sama) di semua file data yang ada kecuali untuk atribut kuncinya (key field),
maka pada file data PINJAM, tidak boleh ada atribut nama peminjam dan buku
yang dipinjam (lihat gambar 1).
Ketika transaksi PINJAM terjadi, tidak satupun atribut PEMINJAM mengalami
perubahan, maka file PEMINJAM adalah file berjenis reference master file.
Sedangkan pada file BUKU, ada atribut yang berubah nilai datanya, yaitu atribut
jumlah buku. Ketika transaksi PINJAM terjadi, jumlah buku yang ada akan
berkurang karenanya. Dengan demikian, file BUKU termasuk file berjenis
dynamic master file.

NAMA
DENDA *KD_BUKU
*NO_ANG ALAMAT
*KD_PINJ JUDUL
TGL_KEM

M N
PEMINJAM PINJAM BUKU JUMLAH

PENGARANG
TGL_PINJ
**NO_ANG TH_TERBIT

**KD_BUKU

Gambar 1. Relasi antarmaster file yang membentuk transaction file

Secara nyatanya, master file adalah file atau objek yang harus ada di suatu
enterprise (unit usaha atau unit kegiatan) yang apabila tidak ada objek tersebut,
maka unit usaha tersebut tidak akan berjalan sebagaimana fungsinya. Sebagai
contoh, unit usaha yang kita amati adalah sebuah SEKOLAH. Pertanyaannya adalah
: objek-objek apa yang harus ada di sekolah sehingga sekolah tersebut dapat
berjalan sebagai mana mestinya ?.
Tentu jawabannya :
1. Harus ada SISWAnya;
2. Harus ada GURUnya;
3. Harus ada MATA PELAJARANnya;
4. Harus ada TATA-TERTIBnya;
5. Harus ada UANG-SEKOLAHnya;
dan sebagainya.

Struktur & Organisasi Data 1 -4-


Tanpa siswa, bagaimana mungkin sekolah itu dapat menjalankan fungsinya ?,
tanpa guru demikian juga, dan seterusnya. Catatan-catatan (di dalam komputer
disebut dengan data file) mengenai SISWA, GURU, dan sebagainya dimasukkan ke
dalam kategori master file (berkas induk).

3. REPORT FILE
Adalah file yang berisi data yang dibuat untuk laporan / keperluan user.
File tersebut dapat dicetak pada kertas printer atau hanya ditampilkan di layar.

4. WORK FILE
Merupakan file sementara dalam sistem.
Suatu work file merupakan alat untuk melewatkan data yang dibuat oleh sebuah
program ke program lain. Biasanya file ini dibuat pada waktu proses sortir.

5. PROGRAM FILE
Adalah file yang berisi instruksi-instruksi untuk memproses data yang akan
disimpan pada file lain / pada memori utama.
Instruksi tersebut dapat ditulis dalam bahasa tingkat tinggi (COBOL, FORTRAN,
BASIC, dan lain-lain), bahasa assembler dan bahasa mesin.

6. TEXT FILE
Adalah file yang berisi input data alphanumeric dan grafik yang digunakan oleh
sebuah text editor program. Text file hanya dapat diproses dengan text editor.

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

8. LIBRARY FILE
Adalah file yang digunakan untuk penyimpanan program aplikasi, program utilitas
atau program lainnya.

9. HISTORY FILE
File ini merupakan tempat akumulasi dari hasil pemrosesan master file dan
transaction file. File ini berisikan data yang selalu bertambah, sehingga file ini
terus berkembang, sesuai dengan kegiatan yang terjadi.

Contoh :
Gambar di bawah ini menunjukkan system flow diagram dari suatu sistem
penggajian sementara untuk menghasilkan paycheck berdasarkan timecard dan
payroll information.

Struktur & Organisasi Data 1 -5-


TIME CARD

SORT SORT
PROGRAM WORKFILE

SORTED PAYROLL
TIMECARDS MASTER

PAY RECORD
UPDATE
PROGRAM

REJECT PAYCHECKS
TIMECARDS DETAIL RECONCILIATION
DETAIL

LIST UTILITY PAYCHECK RECONCILIATION


PROGRAM WRITER REPORT WRITER
PROGRAM PROGRAM

REJECT
REPORT PAYCHECKS RECONCILATION
REPORT

Tabel dibawah ini menunjukkan klasifikasi file dari sistem flow diagram.

FILE FUNGSI
Time cards Transaction
Sort Program Program
Sort Work File Work
Sorted – Time Cards Transaction
Payroll Master Master
Pay Record Update Program Program
Reject Time Cards Work
Pay Check Detail Work
Reconciliation Detail Work
List Utility Program Program
Reject Report Report
Paycheck Writer Program Program
Pay Checks Report
Reconciliation Report Writer Program Program
Reconciliation Report Report

Struktur & Organisasi Data 1 -6-


MODEL AKSES FILE
Ada 3 model akses yang mungkin oleh sebuah program terhadap file, yaitu :
1. Input
2. Output
3. Input / Output

1. INPUT FILE;
Adalah file yang hanya dapat dibaca dengan program.
Contoh :
• Transaction file merupakan input file untuk meng-update program
• Program file dari source code merupakan input file untuk program compiler

2. OUTPUT FILE;
Adalah file yang hanya dapat ditulis oleh sebuah program / file yang dibuat
dengan program.
Contoh :
• Report file merupakan output dari program yang meng-update master file.
• Program file yang berupa object code merupakan output file dari program
compiler.

3. INPUT / OUTPUT FILE;


Adalah file yang dapat dibaca dari dan ditulis ke selama eksekusi program.
Contoh :
• Master File (Berkas Induk)
• Work File dengan sort program (Berkas Kerja)

Tabel di bawah ini menunjukkan model akses dari sistem flow diagram.

Program File Input File Output File I / O File


1. Sort timecard sorted timecards sort workfile
reject timecards
2. Pay record update sorted timecards paycheck deetail payroll master
reconciliation detail
3. Paycheck writer paycheck detail paychecks
4.Reconciliation report reconciliation detail reconciliation report
writer
5. List utility reject timecards reject report

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

ORGANISASI FILE
Adalah suatu teknik atau cara yang digunakan menyatakan dan menyimpan record-
record dalam sebuah file.
Ada 4 teknik dasar organisasi file, yaitu :
1. Sequential
2. Relative
3. Indexed Sequential
4. Multi – Key

Struktur & Organisasi Data 1 -7-


Secara umum keempat teknik dasar tersebut berbeda dalam cara pengaksesannya,
yaitu :
1. Direct Access
2. Sequential Access

1. Direct Access;
Adalah suatu cara pengaksesan record yang langsung, tanpa mengakses
seluruh record yang ada.
Contoh : Magnetic Disk.

2. Sequential Access;
Adalah suatu cara pengaksesan record, yang didahului pengaksesan record-
record di depannya.
Contoh : Magnetic Tape.

Faktor-faktor yang mempengaruhi dalam proses pemilihan organisasi file :


• Karakteristik dari media penyimpanan yang digunakan
• Volume dan frekuensi dari transaksi yang diproses
• Respontime yang diperlukan

Cara memilih organisasi file todak terlepas dari 2 aspek utama, yaitu :
1. Model Penggunaannya
2. Model Operasi File

¾ Menurut penggunaannya ada 2 cara :


1. Batch;
Suatu proses yang dilakukan secara group atau kelompok.
2. Interactive;
Suatu proses yang dilakukan secara satu persatu, yaitu record demi record.

¾ Menurut operasi file ada 4 cara :


1. Creation;
¾ Membuat struktur file lebih dahulu, menentukan banyak record baru,
kemudian record-record dimuat ke dalam file tersebut.
¾ Membuat file dengan cara merekam record demi record.

2. Update;
Untuk menjaga agar file tetap up to date.
Insert / Add, Modification, Deletion.
3. Retrieval;
Pengaksesan sebuah file dengan tujuan untuk mendapatkan informasi.
Inquiry;
Volume data rendah, model proses interactive.
Report Generation;
Volume data tinggi, model proses batch.

File Retrieval terbagi 2, yaitu :


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

Struktur & Organisasi Data 1 -8-


2. Selective Retrieval;
Mendapatkan informasi dari record-record tertentu berdasarkan persyaratan
tertentu.
Contoh : * List for gaji = 100000
* List nama, npm, for angkatan = 93

4. Maintenance;
Perubahan yang dibuat terhadap file dengan tujuan memperbaiki penampilan
program dalam mengakses file tersebut.
‰ Restructuring
Perubahan struktur file.
Misalnya :
Panjang field diubah, penambahan field baru, panjang record dirubah.
‰ Reorganization
Perubahan organisasi file dari organisasi yang satu, menjadi organisasi file
yang lain.
Misalnya :
* Dari organisasi file sequential menjadi indeks sequential.
* Dari direct menjadi sequential.

Secara umum dapat disimpulkan :


9 Untuk master file dan program file kita dapat melakukan created, update,
retrieval from dan maintenanced.
9 Untuk work file kita dapat melakukan created, update dan retrieved from tapi
tidak dapat kita maintenanced.
9 Untuk report file umumnya tidak di-update, retrieve from atau maintenanced.
9 Untuk transaction file, umumnya hanya dapat di created dan digunakan untuk
sekali proses.

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

Tugas dari sistem file :


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

Struktur & Organisasi Data 1 -9-


BAB 2
MEDIA PENYIMPANAN BERKAS

MEDIA PENYIMPANAN adalah


peralatan fisik yang menyimpan representasi data.

Media penyimpanan / storage atau memori dapat dibedakan atas 2 bagian :


1) Primary Memory ⇒ Primary Storage (Internal Storage)
2) Secondary Memory ⇒ Secondary Storage (External Storage)

Primary Memory (Main Memory)


Ada 4 bagian di dalam Primary Storage, yaitu :
(a) Input Storage Area;
Untuk menampung data yang dibaca.
(b) Program Storage Area;
Penyimpanan instruksi-instruksi untuk pengolahan.
(c) Working Storage Area;
Tempat dimana pemrosesan data dilakukan.
(d) Output Storage Area;
Penyimpanan informasi yang telah diolah untuk sementara waktu sebelum
disalurkan ke alat-alat output.

CONTROL UNIT SECTION

PROGRAM
INPUT STORAGE AREA OUTPUT PRIMARY
STORAGE STORAGE STORAGE SECTION
AREA WORKING AREA
STORAGE AREA

ARITHMETIKA LOGICAL UNIT SECTION

Control unit section, Primary storage section, ALU section adalah bagian dari CPU.
Berdasarkan hilang atau tidaknya berkas data atau berkas program di dalam
storage, yaitu :
1) Volatile Storage;
Berkas data atau program akan hilang, bila listrik dipadamkan.
2) Non Volatile Storage;
Berkas data atau program tidak akan hilang, sekalipun listrik dipadamkan.

Struktur & Organisasi Data 1_Bab 2 -1-


Primary Memory Komputer terdiri atas 2 bagian :
1. 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 di dalam memori. RAM bersifat volatile.
2. 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 (intrepreter) 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 :


1) PROM (Programmable Read Only Memory);
Jenis dari memori yang hanya dapat diprogram. PROM dapat diprogram oleh
user / pemakai, data yang diprogram akan disimpan secara permanen.
2) EPROM (Erasable Programmable Read Only Memory);
Jenis memori yang dapat diprogram oleh user. EPROM dapat dihapus dan
diprogram ulang.
3) EEPROM (Electrically Erasable Programmable Read Only Memory);
Memori yang dapat diprogram ileh user. EEPROM dapat dihapus dan diprogram
ulangs ecara elektrik tanpa memindahkan chip dari circuit board.

Secondary Memory (Auxiliary Memory)


Memori dari 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 :


1. Serial / Sequential Access Storage Device (SASD);
Contoh : Magnetic tape, punched card, punched paper tape.
2. Direct Access Storage Device (DASD);
Contoh : Magnetic disk, floopy disk, mass storage.

Struktur & Organisasi Data 1_Bab 2 -2-


Beberapa pertimbangan di dalam memilih alat penyimpan :
ƒ Cara penyusunan data
ƒ Kapasitas penyimpan
ƒ Waktu akses
ƒ Kecepatan transfer data
ƒ Harga
ƒ Persyaratan pemeliharaan
ƒ Standarisasi

HIERARKI STORAGE

Primary Larger capacity and


Faster Storage Lower cost per-bit storage
access time
Direct Access
Storage Device

Sequential Access
Storage Device

MAGNETIC TAPE
Magnetic tape adalah model pertama dari pada secondary memory. Tape ini
juga dipakai untuk alat input / output dimana informasi dimasukkan ke CPU dari tape
dan informasi diambil dari CPU lalu disimpan pada tape lainnya.

Panjang tape pada umumnya 2400 feet, lebarnya ½ inch dan tebalnya 2 mm.
Data disimpan dalam bintik kecil yang bermagnit dan tidak tampak pada bahan
plastik yang dilapisi ferroksida. Flexible plastiknya disebut Mylar. Mekanisme
aksesnya adlah tape drive.
Jumlah data yang ditampung tergantung pada model tape yang digunakan.
Untuk tape yang panjangnya 2400 feet, dapat menampung kira-kira 23.000.000
karakter. penyimpanan data pada tape adalah dengan cara sequential.

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 (tergantung tipe komputer dari pabriknya).

Struktur & Organisasi Data 1_Bab 2 -3-


Tape terdiri atas 9 track. 8 track dipakai untuk merekam data dan track yang ke-9
untuk koreksi kesalahan. 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 tape.

Satuan yang digunakan density adalah bytes per-inch (bpi). Umumnya density dari
tape adalah 1600 bpi dan 6250 bpi. Bpi (bytes per-inch) ekivalen dengan characters
per-inch.

Parity dan Error Control pada Magnetic Tape


Salah satu teknik untuk memeriksa kesalahan data pada magnetic tape adalah
dengan teknik parity check.
Ada 2 macam parity check :
(Dilakukan oleh komputer secara otomatis tergantung jenis komputer yang
digunakan).
1) Odd Parity (Parity Ganjil);
Jika data direkam dengan menggunakan Odd Parity, maka jumlah 1 bit (yang
merepresentasikan suatu karakter) adalah Ganjil.
Jika jumlah 1 bitnya sudah ganjil, maka parity bit (yang terletak pada track ke-9)
adalah 0 bit;
Tetapi jika jumlah 1 bitnya masih genap, maka parity bitnya adalah 1 bit.

2) Even Parity (Parity Genap);


Bila kita merekam data dengan menggunakan even parity, maka jumah 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;
Tetapi jika jumlah 1 bitnya masih ganjil, maka parity bitnya adalah 1 bit.

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

Struktur & Organisasi Data 1_Bab 2 -4-


Bagaimana 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

Sistem Block pada Magnetic Tape


Data yang dibaca dari atau ditulis ke tape dalam suatu group 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 (interblock
gap). Bagian dari tape yang menunjukkan data block dan interblock gap.
Panjang masing-masing gap adalah 0.6 inch. Ukuran block dapat
mempengaruhi jumlah data/record yang dapat disimpan dalam tape.

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/kebanyakan record dari sebuah tape file
memerlukan pemrosesan seluruhnya (bersifat serial / sequential).

Keterbatasan penggunaan magnetic tape :


ƒ Akses langsung terhadap record lambat
ƒ Masalah lingkungan
ƒ Memerlukan penafsiran terhadap mesin
ƒ Proses harus sequential (bersifat SASD)

Struktur & Organisasi Data 1_Bab 2 -5-


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.

Karakteristik Secara Fisik pada Magnetic Disk


Disk Pack adalah jenis alat penyimpanan pada magnetic disk, yang terdiri
dari beberapa tumpukan piringan aluminium. Dalam sebuah pack / tumpukan
umumnya terdiri dari 11 piringan. Setiap piringan diameternya 14 inch (8 inch pada
mini disk) dan menyerupai piringan hitam. Permukaannya dilapisi dengan metal-
oxide film yang mengandung magnetisasi seperti pada magnetic tape.
Banyak 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. Juga 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. 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.

Struktur & Organisasi Data 1_Bab 2 -6-


Susunan piringan pada disk pack berputar terus-menerus dengan
kecepatan perputarannya 3600 per-menit. Tidak seperti pada tape, perputaran disk
tidak berhenti di antara piringan-piringan pada device.
Kerugiannya bila terjadi situasi dimana read / write head berbenturan
dengan permukaan penyimpanan record pada disk, hal ini disebut sebagai head
crash.

Representasi Data dan Pengalamatan


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 computer untuk
diakses oleh sebuah program. Kemampuan mengakses secara direct pada disk
menunjukkan bahwa record tidak selalu diakses secara sequential.

Ada 2 teknik dasar untuk pengalamatan data yang disimpan pada disk, yaitu :
1. Metode Silinder;
Pengalamatan berdasarkan nomor silinder, nomor permukaan dan nomor
record. Semua track dari disk pack membentuk suatu silinder. jadi bila suatu disk
pack dengan 200 track per-permukaan, maka mempunyai 200 silinder.
Bagian nomor permukaan dari pengalamatan record menunjukkan
permukaan silinder record yang disimpan. Jika ada 11 piringan, maka nomor
permukaannya dari 0 – 19 (1 – 20). Pengalamatan dari nomor record
menunjukkan dimana record terletak pada track yang ditunjukkan dengan nomor
silinder dan nomor permukaan.

2. Metode Sektor;
Setiap track dari pack dibagi ke dalam sektor-sektor. Setiap sektor adalah
storage area untuk banyaknya karakter yang tetap. Pengalamatan recordnya
berdasarkan nomor sektor, nomor track dan nomor permukaan. Nomor sektor
yang diberikan oleh disk controller menunjukkan track mana yang akan diakses
dan pengalamatan record terletak pada track yang mana.
Setiap track pada setiap piringan mempunyai kapasitas penyimpanan yang
sama, meskipun diameter tracknya berlainan. Keseragaman kapasitas dicapai
dengan penyesuaian density yang tepat dari representasi data untuk setiap
ukuran track. Keuntungan lain pendekatan keseragaman kapasitas adalah file

Struktur & Organisasi Data 1_Bab 2 -7-


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

Movable-Head Disk Access


Movable-head disk drive mempunyai sebuah read/write head untuk setiap
permukaan penyimpanan recordnya. 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 ke permukaan.

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 ACTIVATION TIME (pemilihan track)
+ ROTATIONAL DELAY (pemilihan record)
+ TRANSFER TIME
ƒ Seek Time;
Adalah waktu yang dibutuhkan untuk menggerakkan read / write head pada disk
ke posisi silinder yang tepat.
ƒ Head Activational Time;
Adalah waktu yang dibutuhkan untuk menggerakkan read / write head pada disk
ke posisi track yang tepat.
ƒ Rotational Delay (Lateney);
Adalah waktu yang dibutuhkan untuk perputaran piringan sampai posisi record
yang tepat.
ƒ Transfer Time;
Adalah waktu yang menunjukkan kecepatan perputaran dan banyaknya data
yang ditransfer.

Struktur & Organisasi Data 1_Bab 2 -8-


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-ACTIVATION 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 dansdensity yang lebih kecil dibandingkan dengan disk
yang menggunakan movable-head disk drive.

Organisasi Berkas dan Metoda 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
(secara sequential).

Keuntungan Penggunaan Magnetic Disk


™ Akses terhadap suatu record dapat dilakukan secara sequential atau
direct.
™ Waktu yang dibutuhkan untuk mengakses suatu record lebih cepat.
™ Respon time cepat.
Keterbatasan Penggunaan Magnetic Disk
™ Harga lebih mahal.

Menghitung Kapasitas Penyimpanan pada Tape


Contoh :
Kita ingin 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

Struktur & Organisasi Data 1_Bab 2 -9-


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

Jawab :
1 block 1 record;
2400 ft/tape * 12 in/ft
-------------------------------------------------------------------- = 46753 block/tape
100 char/rec
1 rec/block * --------------- + 0.6 in/gap * 1 gap/block
6250 char/in
tape tersebut berisi 46753 record.

1 block 20 record;
2400 ft/tape * 12 in/ft
--------------------------------------------------------------------- = 31304 block/tape
100 char/rec
20 rec/block * --------------- + 0.6 in/gap * 1 gap/block
6250 char/in
tape tersebut berisi = 20 * 31304
= 626080 record.

Menghitung Waktu Akses pada Tape


Diketahui :
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 in/block
= -----------------------------------------+46753 block/tape*0.004sec/gap*1 gap/block
200 in/sec
= 190.75 sec/tape
waktu akses yang dibutuhkan tape tersebut adalah 190.75 sec.

Struktur & Organisasi Data 1_Bab 2 - 10 -


1 block 20 record;
31304 block/tape * 0.32 in/block
= -------------------------------------- +31304block/tape*0.004sec/gap * 1 gap/block
200 in/sec
= 175, 30 sec/tape
waktu akses yang dibutuhkan tape tersebut adalah 175, 30 sec.

Organisasi Berkas dan Metode Akses pada Magnetic Tape


Untuk membaca / menulis pada suatu magnetic tape adalah secara
sequential. Artinya untuk mendapatkan tempat suatu data maka data yang di
depannya harus dilalui lebih dahulu.
Maka dapat dikatakan organisasi data pada file di dalam tape dibentuk
secara sequential dan metode aksesnya juga sequential.

Latihan
Pandang suatu bagian dari tape yang berisi :
Track 1 : 1 0 0 0 1 1
2 : 1 1 1 1 1 0
3 : 0 0 0 1 1 1
4 : 0 0 0 1 0 1
5 : 0 1 0 1 1 1
6 : 1 0 0 1 1 1
7 : 1 1 1 0 0 0
8 : 1 0 0 0 0 0
Bagaimana isi dari track ke-9, jika untuk merekam data digunakan :
a. Even Parity
b. Odd Parity
Latihan
Soal 1;
Densitas suatu tape adalah 1600 bpi dan panjang interblock gap adalah 0.75 inch.
Record yang panjangnya 40 character akan disimpan pada tape yang panjangnya
2400 feet.
Ditanya :
♦ Berapa banyak record yang dapat disimpan jika dalam 1 block berisi 1 record ?
♦ Berapa banyak record yang dapat disimpan jika dalam 1 block berisi 10 record ?

Struktur & Organisasi Data 1_Bab 2 - 11 -


Soal 2;
Jika kecepatan pemindahan data adalah 100 inchi / sec.
Waktu yang diperlukan untuk melewati interblock gap adalah 0.1 second.
Ditanya :
♦ Berapa waktu yang diperlukan untuk membaca tape tersebut (untuk 1 block berisi
1 record dan 1 block berisi 10 record) ?

Struktur & Organisasi Data 1_Bab 2 - 12 -


BAB 3
ORGANISASI BERKAS SEQUENTIAL

PENGERTIAN BERKAS SEQUENTIAL


Organisasi berkas sequential adalah merupakan cara yang paling dasar
untuk mengorganisasikan kumpulan record-record dalam sebuah berkas. Dalam
organisasi berkas sequential, 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.
Jadi dalam organisasi berkas sequential, bukan berarti bahwa record-record
tersebut disimpan dalam urutan numerik. Jika kita ingin menambahkan suatu record
pada berkas sequential, maka record tersebut akan terletak pada akhir berkas.
Organisasi berkas sequential dapat terdiri dari record-record yang berbeda jenis.

Contoh:
Pada gambar, dalam sistem penggajian terpadu (Intergrated personnel-payroll
system) mempunyai sebuah berkas pegawai (Employee file) yang terdiri dari dua
jenis record, yaitu:

Personnel Record
rec empno nam addres marital sex home mil educ so
type e s status log code

Payroll Record
rec empno fund accou base % resp date date
type type nt salrate time dept start chang
e

Record-record pada berkas tersebut tidak memerlukan format dan ukuran yang
sama. Pada contoh tersebut, berkas disortir berdasarkan : EMP-NO, REC-TYPE

Struktur & Organisasi Data 1_Bab 3 -1-


Proses
Karena record-record dalam organisasi berkas sequential harus diakses
secara berurutan, maka berkas sekuensial lebih serng menggunakan batch
processing dari pada interactive processing.

Keuntungan dan Keterbatasan


Adapun keuntungan utama dari teknik organisasi berkas sequential
adalah kemampuan untuk mengakses record berikutnya secara tepat. Sedangkan
keterbatasan dari organisasi berkas sequential adalah kita tidak dapat mengakses
langsung pada record yang diinginkan.

Pola Akses
Pola Akses adalah penentuan akses berdasarkan field tertentu. Selama pola
akses, berkas sequential dapat dipasangkan dengan record-record yang sudah
diurut pada berkas, maka waktu aksesnya sangat baik.
Jadi kita harus menentukan pola akses terlebih dahulu, kemudian baru
menentukan organisasi berkas sequential berdasarkan urutan yang sesuai dengan
pola aksesnya, jangan sebaliknya.

Contoh:
Berkas gaji yang disusun secara sequential berdasarkan NIP, hendak
diakses berdasarkan NAMA, maka program tidak baik. Juga tidak baik mengakses
record dengan urutan sebagai berikut:
NIP = 15024508, NIP = 15024607
NIP = 15024115, NIP = 1502800
Dimana NIP tersebut belum tersortir.

Media Penyimpanan Berkas Sequential


Berkas sequential dapat disimpan dalam SASD, seperti magnetic tape atau
pada DASD, seperti magnetic disk.
Beberapa alasan untuk menyimpan berkas sequential pada DASD :
♦ Pada umumnya komputer dihubungkan dengan sedikit tape drive, sehingga tidak
cukup untuk menunjang program aplikasi yang banyak membutuhkan berkas
sekuensial.

Struktur & Organisasi Data 1_Bab 3 -2-


Contoh :
Jika 3 berkas sequential, 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, daripada diletakan pada
perlatan yang salurannya digunakan bersama-sama.

Pembuatan Berkas Sequential


Pembuatan berkas sequential meliputi penulisan record-record dalam
serangkaian yang diinginkan pada media penyimpanan.
Pembuatan berkas transaksi sequential meliputi tugas-tugas:
ƒ Pengumpulan data
ƒ Perubahan data dalam bentuk bahasa yang dapat dibaca oleh mesin
ƒ Pengeditan data
ƒ Pemeriksaan transaksi yang ditolak
ƒ Penyortiran edit d

Struktur & Organisasi Data 1_Bab 3 -3-


Corrected Edit-Reject
Forms Report

Transaction

EDIT

Batch of Data Unedited


Transaction Entry Batch of
Forms Device Transaction
Edited
Batch of
Transaction

SORT

Sorted Batch
of Edited
Transaction

Pembuatan Berkas Laporan


Dalam pembuatan berkas laporan sequential dikenal 3 jenis record :
1) Header Record;
Mencakup report header, page header dan group header. Dikenal sebagai
informasi pengenal (Identifying Information).
2) Detail Record;
Mencakup isi laporan yang umumnya disusun dalam kolom.
3) Footer Record;
Mencakup report footer, page footer dan group footer. Dikenal sebagai
informasi ringkasan (Summary Information).

Struktur & Organisasi Data 1_Bab 3 -4-


Master

Update

Sorted
Edited Report Data
Transaction

Report
Writer

Report

Report
Printer

Retrieval Terhadap Berkas Sequential


Record pada berkas sequential di retrieve secara berurutan. Urutan dimana record
tersebut ditulis pada berkas menentukan urutan dimana record tersebut di dapat
kembali.
Retrieve dari sebuah berkas dapat dibagi 2, yaitu : Report Generation dan Inquiry,
yang bergantung pada jumlah data yang dihasilkan.
Pada umumnya berkas sequential diakses dalam model report generation. Karena
record-record harus diakses secara berurutan, tentunya lebih efisien mengakses
setiap record dari berkas tersebut.
Inquiry dari berkas sequential mengalami hambatan, karena organisasi berkas ini
memerlukan pengaksesan record secara satu persatu. Namun ada inquiry yang
memerlukan pengaksesan semua record dari berkas.
Contoh :
ƒ Berapa jumlah mahasiswa yang berumur di atas 20 tahun ?
ƒ Berapa jumlah pegawai yang mempunyai gaji di bawah Rp. 1.000.000; ?

Struktur & Organisasi Data 1_Bab 3 -5-


Hit Ratio
Banyaknya record yang harus diakses untuk mendapatkan informasi yang diinginkan
dibagi dengan banyaknya record dalam berkas tersebut .
Contoh :
Inquiry NPM = 0029207 memerlukan pengaksesan record sebanyak 10 dari 100
record yang ada dalam berkas mahasiswa.
Hit Ratio = 10/100 = 0.1
ƒ Semakin rendah hit ratio, semakin tidak baik bila menggunakan organisasi
sequential.
ƒ Semakin tinggi hit ratio, semakin baik bila menggunakan organisasi sequential.

Update Terhadap Berkas Sequential


Telah kita ketahui bahwa 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.
Contoh :
Transaction
101 Bimo 75
102 Amalia 70
103 Seno 60

Master File
101 Bimo Jl. A 50
102 Seno Jl. C 30
103 Henni Jl. Z 50
104 Pandu Jl. D 70

Struktur & Organisasi Data 1_Bab 3 -6-


File Activity Ratio = (1 + 1) / 4 = 0.5
¾ 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 di tempat, karena
untuk meng-update biasanya diperlukan berkas baru sebagai pengganti berkas
lama.
Di bawah ini akan ditunjukkan gambar system flow diagram untuk meng-update
sebuah berkas sequential.

Old
Master

Sorted
Transaction
UPDATE (next cycle)

Rejected
Transaction

REPORT New
Master

Generation File
Selama next cycle pada proses update, new master file yang sekarang akan menjadi
old master file. Menjadi banyaknya master file inilah yang disebut sebagai
Generation File. File yang mempunyai nama yang sama, tetapi berbeda nomor
generasinya. Jika old master sekarang merupakan generasi 1, maka new master
berikutnya merupakan generasi 2, new master pada next cycle menjadi generasi 3,
dan seterusnya.

JENIS UPDATE
Ada 3 jenis update yang akan dapat dilaksanakan pada master file :
1) Insert a new record
2) Delete an existing record
3) Modify an existing record

Struktur & Organisasi Data 1_Bab 3 -7-


MENANGANI KESALAHAN
Dalam pelaksanaan update, dapat ditemukan beberapa kesalahan seperti :
(a) Insert a record that already exists
(b) Delete a record that does not exist
(c) Modify a record that does not exist

Contoh :
Master Trans – Type
101 101 1
102 103 2 1 : Delete
103 105 1 2 : Insert
104 107 3 3 : Modify
101 2
File Activity Ratio = 1/4

Contoh :
Sebuah master file berisi 10 record. Transaksi yang akan diproses adalah
sebagai berikut :
Master Trans – Type
111 2
111 1 1 : Delete
96 3 2 : Insert
400 1 3 : Modify
96 1
111 2
400 3
342 3
96 2

File Activity Ratio = 4/10 = 0,4

Struktur & Organisasi Data 1_Bab 3 -8-


BAB 4
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 relative ada hubungan antara key yang dipakai untuk mengidentifikasi
record dengan lokasi record dalam penyimpanan sekunder

Urutan record secara logic tidak ada hubungannya dengan urutan secara
fisik.Record tidak perlu tersortir secara fisik menurut nilai key

Lihat gambar pada halaman 14

Bagaimana record yang ke-N dapat ditemukan ?


Dalam hal ini, perlu kita buat hubungan yang akan menerjemahkan antara NILAI
KEY dan ADDRESS.

Hubungan ini dinyatakan sebagai R, yang merupakan fungsi pemetaan :

R(NILAI KEY) ADDRESS

Dari nilai key ke address dalam penyimpanan sekunder

‹ PROSES

Pada waktu sebuah record ditulis kedalam berkas relative, fungsi pemetaan R
digunakan untuk menerjemahkan NILAI KEY DARI RECORD menjadi ADDRESS,
dimana record tersebut disimpan.

Begitu pula pada waktu akan me-retrieve record dengan nilai key tertentu, fungsi
pemetaan R digunakan terhadap nilai key tersebut, untuk menerjemahkan nilai key
itu menjadi sebuah address dalam penyimpanan sekunder, dimana record tersebut
ditemukan.

Organisasi berkas relative 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 secara consecutive, tetapi perlu diketahui bahwa
nilai key tidak terurut secara logic.

Contoh :
Record dalam gambar pada hal. 15, diretrieve secara consecutive;

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

Karena kemampuan mengakses record tertentu secara cepat, maka organisasi


berkas relatif paling sering digunakan dalam proses interactive.

Struktur & Organisasi Data 1_Bab 3 -1-


Contoh :
Lihat gambar pada halaman 14

Sebuah on-line system perbankan yang mempunyai sebuah master file dan sebuah
transaction file.Field ACCOUNT NUMBER dipakai sebagai nilai key untuk keduan
berkas tersebut.

Pada saat nilai key ACCOUNT NUMBER dimasukan ke dalam transaksi, nilai key
tersebut akan me-retrieve secara langsung record yang ada pada master file.

Jika Trans-Type = ‘I’, maka BALANCE ACCOUNT akan ditampilkan dilayar. Jika
Trans-Type = ‘C’ atau ‘D’, maka record-record dari master file Customer Account
akan dimodifikasi dengan AMOUNT dan DATE yang ada di transaction file, dimana
ACCOUNT NUMBER yang menentukan lokasi record dalam berkas tersebut.

Catatan :

¾ Kita tidak perlu mengakses semua record master file, cukup mengakses
langsung record yang dikehendaki
.
¾ Record dari berkas relative dapat diupdate langsung tanpa perlu merekam
kembali semua record

¾ Keuntungan dari berkas relative ini adalah kemampuan mengakses record


secara langsung. Sebuah record dapat diretrieve, 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 Lookup (Pencarian Tabel)
3. Calculation (Kalkulasi)

1. Teknik Pemetaan Langsung

Teknik ini merupakan teknik yang sederhana untuk menerjemahkan nilai record key
menjadi address. Ada 2 cara dalam pemetaan langsung, yaitu :

) Absolute Addressing (Pengalamatn Mutlak)


) Relative Addressing (Pengalamatan Relatif)

) Pengalamatan Mutlak

R(NILAI KEY) ADDRESS.


NILAI KEY = ALAMAT MUTLAK

Nilai key yang diberikan oleh pemakai program sama dengan ADDRESS
SEBENARNYA dari record tersebut pada penyimpanan sekunder.

Struktur & Organisasi Data 1_Bab 3 -2-


Pada waktu record tersebut disimpan, lokasi penyimpanan record (nomor silinder,
nomor permukaan, nomor record) bila dipakai Cylinder Addressing atau (nomor
sector, nomor record) bila dipakai Sector Addressing harus ditentukan oleh pemakai.

Keuntungan dari Pengalamatan Mutlak :

• Fungsi pemetaan R sangat sederhana


• Tidak membutuhkan waktu lama dalam menentukan lokasi record pada
penyimpanan sekunder

Kelemahannya :

• Pemakai harus mengetahui dengan pasti record-record yang disimpan secara


fisik
• Alamat mutlak adalah device dependent. Perbaikan atau pengubahan devuce,
dimana berkas berada akan mengubah nilai key
• Alamat mutlak adalah address space dependent. Reorganisasi berkas relative
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 relative dari
himpunan (1,2,3,…,N-2, N-1). Record yang ke I mempunyai alamat relative I atau I-1
(bila mulai dihitungnya dari 0).

Keuntungan dari pengalamatn Relatif ;

V Fungsi pemetaan R sangat sederhana


V Nilai key dari sebuah record dapat ditentukan lokasi recordnya dalam sebuah
penyimpanan sekunder tanpa memerlukan waktu proses yang berarti.

Kelemahannya :

V Alamat Relatif adalah bukan device dependent


V Alamat Relatif adalah address space dependent
V Terjadinya pemborosan ruangan

2. Teknik Pencarian Tabel

Dasar pemikiran pendekatan pencarian table adalah sebuah table atau direktori dari
nilai key dan address. Untuk menemukan sebuah record dalam berkas relative,
pertama dicari dalam direktori nilai key dari record tersebut, yang akan menunjukkan
alamat dimana record tersebut berada dalam penyimpanan.

Struktur & Organisasi Data 1_Bab 3 -3-


Lihat gambar pada halaman 13

Data dalam direktori tersebut disusun secara urut menurut nilai key, sehingga
pencarian nilai key dalam direktori lebih cepat dengan binary search dibandingkan
sequential search. Alternatif lain, direktori dapat disusun dalam binary search tree,
M-way search tree atau B-tree.

Keuntungan dari Pencarian Tabel :

V Sebuah record dapat diakses dengan cepat, setelah nilai key dalam direktori
ditentukan.

V Nilai key dapat berupa field yang mudah dimengerti seperti PART NUMBER,
NPM, karena nilaimkey tersebut akan diterjemahkan menjadi alamat.

V Nilai key adalah address space independent, dimana reorganisasi berkas tak
akan mempengaruhi nilai key, yang berubah adalah alamat dalam direktori.

3. 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 relative.

Salah satu kelemahan dari teknik pengalamatan relative adalah ruang harus
disediakan sebanyak jangkauan nilai key, terlepas dari berapa banyak nilai key.

Salah satu masalah dari teknik ini adalah ditemukannya alamat relative yang
sama untuk nilai key yang berbeda.

Keadaan dimana :

R(K1) = R(K2) Disebut benturan atau


K1 ≠ K2 collision

Sedangkan nilai K1 dan K2 disebut synonym.


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

Teknik-teknik yang terdapat pada kalkulasi alamat :

V Scatter storage techniques


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

Struktur & Organisasi Data 1_Bab 3 -4-


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

Keuntungan pemakaian Hashing :

V Nilai key yang sebenarnya dapat dipakai karena diterjemahkan ke dalam sebuah
alamat.
V Nilai key adalah address space independent bila berkas direorganisasi, fungsi
hash berubah tetapi nilai key tetap.

Kelemahannya :

V Distribusi nilai key yang dipakai


V Banyaknya nilai key yang dipakai relative terhadap ukuran dari ruang alamat
V Banyaknya record yang dapat disimpan pada alamat tertentu tanpa menyebakan
benturan
V Teknik yang dipakai untuk mengatasi benturan

Hashing dapat digunakan bersama-sama dengan pencarian table, lihat gambar pada
halaman 13

Penampilan fungsi hash bergantung pada :

V Distribusi nilai key yang dipakai


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

Beberapa fungsi hash yang umum digunakan :

V Division Remainder
V Mid Square
V Folding

‹ Division Remainder

Pada division remainder, alamat relative dari suatu nilai key merupakan sisa dari
hasil pembagian nilai key tersebut dengan suatu bilangan yang disebut sebagai
bilangan pembagi.

Contoh :

Bila DIV adalah pembagi, KEY adalah nilai key dan ADDR adalah alamat relative,
maka dalam bahasa Pascal, fungsi R(NILAI KEY) ADDRESS. Dapat
diimplementasikan :

ADDR := KEY MOD DIV

Dalam bahasa COBOL :

DIVIDE KEY BY DIV GIVING TEMP REMAINDER ADDR

Struktur & Organisasi Data 1_Bab 3 -5-


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 :

V Jangkauan dari nilai key yang dihasilkan dari operasi KEY MOD DIV adalah 0
sampai DIV-1.Nilai dari DIV menentukan ukuran “relatif address space”.Jika
diketahui berkas relatif terdiri dari N record dan dianggap hanya satu record
dapat disimpan dalam sebuah alamat relatif, maka akan didapat DIV > N
V Pembagi harus diseleksi untuk mengurangi benturan. Penyelidikan menunjukkan
bahwa pembagi yang berupa bilangan genap akan cenderung jelek, terutama
dengan nilai key-nya yang dominan ganjil.
V Menurut riset dari W.Buchholz, sebaiknya pembagi itu merupakan bilangan
prima. Tetapi riset lain dari V.Y.Lum, menyatakan pembagi yang bukan bilangan
prima akan memberikan hasil yang sama baik seperti bilangan prima.
V Menurut pendapatnya, bukan bilangan prima yang mempunyai faktor prima
kurang dari 20 akan dapat memberikan jaminan penampilan yang lebih baik
V Walaupun kita telah menentukan pembagi dengan baik untuk mengatasi
benturan, bila ruang alamat dari berkas relative mendekati penuh, maka peluang
terjadinya benturan akan meningkat.
Untuk mengukur kepenuhan berkas relative digunakan Load Factor (Faktor Muat)

Banyak record dalam berkas


Laod Factor =
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
direorganisasi.
Jadi jika 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) . 4000


= 5000

Struktur & Organisasi Data 1_Bab 3 -6-


Bilangan pembagi : 5003

123456789 = 24676 sisa 2761 + 1


5003
alamat relatif

987654321 =197412 sisa 2085 + 1


5003
alamat relative

Jadi alamat relatif didapat dari sisa pembagian + 1

‹ 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, dari nilai key 1234567892 =
15241578750190521 (17 digit)
17 1
Untuk alamat relatif = 2 =8 2

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

‹ Hashing by folding

Untuk mendapatkan alamat relatif, nilai key dibagi menjadi beberapa bagian, setiap
bagian (kecuali bagian terakhir) mempunyai jumlah digit yang sama dengan alamat
relatif.

Bagian-bagian ini kemudian dilipat (seperti kertas) dan dijumlah. Hasilnya, digit yang
tertinggi dibuang (bila diperlukan)

Contoh :

Nilai key 123456789 dan alamat relatif sebanyak 4 digit . Nilai key dibagi menjadi
bagian-bagian yang terdiri dari 4 digit, mulai dari sebelah kanan.

1 2345 6 7 8
9

1 2345 6 7 8
9

Struktur & Organisasi Data 1_Bab 3 -7-


Menghasilkan :

1
2345
9876 +

13221

alamat relatif

‹ Perbandingan fungsi Hash

• Teknik Divison Remainder memberikan penampilan yang terbaik secara


keseluruhan
• Teknik Mid Square dapat dipakai untuk file dengan load factor cukup rendah
akan memberikan penampilan baik tapi kadang-kadang dapat menghasilkan
penampilan yang buruk dengan beberapa collision
• Teknik folding adalah teknik yang paling mudah dalam perhitungan tapi 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

• Separate Overflow

Menemukan address untuk K2 diluar dari primary area dalam berkas relatif, yaitu di
overflow area yang dipakai hanya untuk menyimpan record-record yang tak dapat
disimpan di home addressnya.

Struktur & Organisasi Data 1_Bab 3 -8-


Contoh :

K1 = 1 K2 = 1

R1
K1

Overflow area
K2

Ada 2 teknik untuk mengatasi collision :


• Linier Probing, yang merupakan teknik open addressing
• Double Hashing, yang dapat dipakai selain open addressing atau separate
overflow.

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

• Double Hashing
Pendekatan lain dalam menemukan lokasi sebuah record pada waktu record
tersebut tidak dapat disimpan dalam home addressnya adalah dengan
menggunakan Double Hashing, yang akan memakai fungsi hash kedua terhadap
hasil dari fungsi hash pertama. Address dari record yang dihash kembali dapay
terletak pada primary area atau di separate overflow area.

Keuntungan dari metode separate overflow adalah menghindari keadaan dimana


dapat terjadi metode open addressing untuk sebuah record yang tak disimpan dalam
home addressnya menggantikan record lain yang terkahir di hash ke home
addressnya.

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 ke tempat yang kosong.

Metode ini membutuhkan pengeluaran tambahan untuk pemeliharaan berkas.


Berkas relative dibagi menjadi 2 berkas, yaitu :

Primary area dan Overflow area

• Perbandingan Linear Probing dan Double Hashing

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

Struktur & Organisasi Data 1_Bab 3 -9-


Load Factor < 0.5 : Double Hashing = Linear Probing
Load Factor > 0.8 : Double Hashing > Linear Probing

• Synonim Chaining

Pendekatan pemecahan collision yang mengakses synonym dengan fasilitas link list
untuk record-recordnya dalam kelas ekivalen. Adapun link list record-record dengan
home address yang sama tak akan mengurangi jumlah collision, tetapi akan
mengurangi waktu akses untuk me-retrieve record-record yang tak ada di home
addressnya.

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

Gambar hashing dengan synonim chaining

HOME PRIMARY DATA OVERFLOW


ADDRESS AREA AREA
20
Adams .. 0 Coll ..

21
Bates .. 1 Dean ..

22 2 Flint ..

23 3

24 Evans ..

Struktur & Organisasi Data 1_Bab 3 - 10 -


• Bucket Addressing

Pendekatan lain dalam mengatasi collision adalah hash ke dalam block atau bucket
yang dapat memberikan tempat sejumlah record.

Contoh :

Sebuah berkas relative mempunyai relative address space dari 0 sampai M dan
sebuah bucket berukuran B record, address space akan terdiri dari B(M+1) record.
Jika file terdiri dari N record, maka :

N
Factor Muat = B(M + 1)

B record dapat semuanya di hash kedalam relitf address yang sama tanpa
menyebabkan collision.

Pada saat sebuah bucket penuh, beberapa tempat baru harus ditemukan untuk
record tersebut. Pendekatan dari masalah bucket penuh pada dasarnya sama
dengan pendekatan untuk mengatasi collision dengan record addressing.

Jika open addressing dipakai, space dicari untuk bucket berikutnya (misal dengan
linear probing) atau dalam bucket lainnya (misalnya dengan double hashing).

Jika teknik separate overflow yang dipakai, record baru ditempatkan dalam suatu
himpunan bucket yang dirancang khusu untuk tempat record yang tak dapat
ditampung pada bucket primer.Bucket ini disebut bucket overflow.

Record-record yang disimpan dalam sebuah bucket dapat dikelola dalam :


- Dapat disipkan 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 sector dalam DASD. Ukuran bucket umumnya sama dengan
ukuran block untuk file.

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

Contoh :

KEY HOME ADDRESS


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

Struktur & Organisasi Data 1_Bab 3 - 11 -


BUCKET BUCKET CONTENTS
ADDRESS

30 Green .. Hall ..
31
32 Jenks ..
33 King .. Land .. Marks ..

overflow
Null

Struktur & Organisasi Data 1_Bab 3 - 12 -


Struktur & Organisasi Data 1_Bab 3 - 13 -
Struktur & Organisasi Data 1_Bab 3 - 14 -
BAB 5
ORGANISASI BERKAS INDEKS SEQUENTIAL

PENGERTIAN BERKAS INDEKS SEQUENTIAL


Salah satu cara yang paling efektif untuk mengorganisasi kumpulan record-
record yang membutuhkan akses record secara sequential maupun akses record
secara individu berdasarkan nilai key adalah organisasi berkas indeks sequential.
Jadi berkas indeks sequential merupakan kombinasi dari berkas sequential
dan berkas relatif.

STRUKTUR POHON
Sebuah pohon (tree) adalah struktur dari sekumpulan elemen, dengan salah satu
elemennya merupakan akarnya atau root dan sisanya yang lain merupakan
bagian-bagian pohon yang terorganisasi dalam susunan berhirarki dengan root
sebagai puncaknya.
Contoh umum dimana struktur pohon sering ditemukan adalah pada penyusunan
silsilah keluarga, hirarki suatu organisasi, daftar isi suatu buku dan lain
sebagainya.
Contoh :
Handoko

Andi Reni

Anton Yana Mardi Riri

Tedi Susi Roni Dewi Dodi Irma Rudi Nurul

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.

Struktur & Organisasi Data 1_Bab 5 -1-


n n

n1 n2 ... nk n1 n2 ... nk

Pohon Biner
Salah satu tipe pohon yang paling banyak dipelajari adalah pohon biner. Pohon
Biner adalah pohon yang setiap simpulnya memiliki paling banyak dua buah
cabang / anak.

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

A A A A A

B B B B A A

A A
Adapun jenis akses yang diperbolehkan, yaitu :
¾ Akses Sekuensial
¾ Akses Direct
Sedangkan jenis prosesnya adalah :
¾ Batch
¾ Interactive
Struktur Berkas Indeks sekuensial
¾ Indeks → Binary Search Tree
¾ Data → Sekuensial

Struktur & Organisasi Data 1_Bab 5 -2-


Lihat gambar berikut ini :

INDEX
SEQUENTIAL
MAMMOTH N/2 Position DATA FILE

1 APE

COW 4
2 BAT
3 CAT

BAT 2 DOG 5
4 COW
ZEBRA N 5 DOG

APE 1 CAT 3 EEL 6


6 EEL
... ..............
N ZEBRA

Pada gambar tersebut memperlihatkan struktur berkas indeks sequential dengan


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

Implementasi Organisasi Berkas Indeks Sequential


Ada 2 pendekatan dasar untuk mengimplementasikan konsep dari organisasi
berkas indeks sequential :
¾ Blok Indeks dan Data (Dinamik)
¾ Prime dan Overflow Data Area (Statik)
Kedua pendekatan tersebut menggunakan 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).

Struktur & Organisasi Data 1_Bab 5 -3-


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 sequential dengan ruang bebas yang didistribusikan antar populasi
record.

Lihat gambar
Pada gambar tersebut ada N blok data dan 3 tingkat dari indeks. Setiap
entry pada indeks mempunyai bentuk (nilai key terendah, pointer), dimana pointer
menunjuk pada blok yang lain, dengan nilai key-nya sebagai nilai key terendah.
Setiap tingkat dari blok indeks menunjuk seluruh blok, kecuali blok indeks pada
tingkat terendah yang menunjuk ke blok data.
Jika sebuah permintaan untuk mengakses record tertentu, misal kita ingin
mengakses dengan nilai key BAT, indeks dengan tingkat tertinggi (dalam hal ini blok
indeks 3-1) yang pertama yang akan dicari pada contoh ini, pointer dari AARDVARK
menunjuk blok indeks 2-1. Pointer yang ditunjuk pada kotak tersebut adalah pointer
yang berisikan AARDVARK, yang akan menunjuk ke blok indeks 1-1. POinter
berikutnya yang akan ditunjuk adalah pointer yang berisi BABOON, yang selanjutnya
akan menunjuk blok data 2. Blok data ini akan mencari untuk record dengan key
tujuan, yaitu BAT, dimana pada blok ini record tersebut ditemukan.
Permintaan untuk akses data dalam urutan sequential dilayani dengan
mengakses blok data dalam urutan sequential. Sebagai catatan blok data
merupakan consecutive secara logik dan bukan consecutive secara fisik. Dalam hal
ini, blok data harus dihubungkan secara bersama dalam urutan secara logik, seperti
terlihat pada gambar.
Misal :
Setiap blok data mempunyai ruang yang cukup untuk menampung 5 record dan
setiap blok indeks mempunyai ruang yang cukup untuk menyimpan 4 pasang
(nilai key, pointer).
Parameter ini biasanya sudah dilengkapi dengan rutin dukungan sistem
manajemen data, pada saat berkas binatang ini dibentuk.
Jika kita menginginkan penyisipan maupun penghapusan terhadap isi
berkas, maka blok indeks dan blok data akan dibuat dengan sejumlah ruang bebas,
yang biasanya disebut sebagai padding dan pada gambar ditunjukkan sebagai
irisan.
Permintaan : INSERT APE
INSERT AIREDALE

Struktur & Organisasi Data 1_Bab 5 -4-


Hanya blok data 1 yang digunakan dan hasilnya ditunjukkan pada gambar di bawah
ini :

key

AARDVARK
AIREDALE
ALBATROSS
ALLIGATOR
APE

DATA BLOCK 1

Entry pada blok harus diletakkan berdasarkan urutan sequential 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.

Struktur & Organisasi Data 1_Bab 5 -5-


DATA FILE
key

AARDVARK
ALBATROSS
ALLIGATOR

key
DATA BLOCK 1
AARDVARK key

BABOON BABOON
COW BAT
CALF
INDEX BLOCK
1.1
key

AARDVARK DATA BLOCK 2


FOX key

LLAMA COW
DOG
INDEX BLOCK ELEPHANT
AARDVARK 2.1

MAMMOTH
key

FOX DATA BLOCK 3


key
key
INDEX BLOCK HOUND
3.1 FOX
MAMMOTH IBEX
GANDER
MOUSE
GOOSE
OCTOPUS INDEX BLOCK
1.2
PANDA
key
INDEX BLOCK
2.2
PANDA DATA BLOCK 4
key
PECCARY
TERN
TERN
WARTHOG
YAK
INDEX BLOCK
1.K

Struktur & Organisasi Data 1_Bab 5 -6-


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 di bawah ini :

key

AARDVARK
AIREDALE
ALBATROSS

key

AARDVARK
DATA BLOCK 1
From index ALLIGATOR
block 2.1 key
BABOON
COW AARDVARK
AIREDALE
INDEX BLOCK
ALBATROSS
1.1

To data
block 2
DATA BLOCK 1A

Permintaan :
INSERT CAT
INSERT BEAR
INSERT BOBCAT
Akan mengisi blok data 2, tetapi blok data tersebut harus dipecah menjadi
blok data 2 dan 2A
Blok indeks 1-1 sudah penuh dan tidak dapat memuat pointer pada blok
data 2A, sehingga inipun harus dipecah, dengan cara mengubah penafsiran indeks
pada tingkat 2.
Jika blok indeks pada tingkat paling tinggi (dalam hal ini indeks tingkat 3)
sudah penuh, maka harus dipecah, sehingga sebuah indeks tingkat yang baru akan
ditambahkan pada indeks tree.
Maka seluruh pencarian langsung memerlukan pengaksesan empat blok
indeks dan sebuah blok data.

Struktur & Organisasi Data 1_Bab 5 -7-


key

AARDVARK
AIREDALE
ALBATROSS

key

AARDVARK
DATA BLOCK 1
From index ALLIGATOR
block 2.1 key
BABOON
COW AARDVARK
AIREDALE
INDEX BLOCK
ALBATROSS
1.1

To data
block 2
DATA BLOCK
1A

Prime dan Overflow Data Area


Pendekatan lain untuk mengimplementasikan berkas indeks sequential
adalah berdasarkan struktur indeks dimana struktur indeks ini lebih ditekankan pada
karakteristik fisik dari penyimpanan, dibandingkan dengan distribusi secara logik dari
nilai key.
Indeksnya ada beberapa tingkat, misalnya tingkat cylinder indeks dan
tingkat track indeks. Berkas datanya secara umum diimplementasikan sebagai 2
berkas, yaitu prime area dan overflow area.
Misalnya 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

Struktur & Organisasi Data 1_Bab 5 -8-


Physical-Layout Indexes
PRIME DATA FILE
MASTER CYLINDER
INDEKS INDEKS cylinder1 :
track 0 : AARDVARK, track 1, BABOON, track 2, COW, track 3
key key track 1 : AARDVARK,,,,,,,,ALBATROSS,,,,,,,,ALLIGATOR,,,,,,,
track 2 : BABOON,,,,,,,,,,,,,BAT,,,,,,,,,,,,,,,,,,,,,,,,CALF,,,,,,,,,,,,,,,,,,,,
track 3 : COW,,,,,,,,,,,,,,,,,,,,DOG,,,,,,,,,,,,,,,,,,,,,,,,ELEPHANT,,,,,,,,,
LYNX ELEPHANT
cylinder2 :
YAK LION track 0 : FOX, track 1, HOUND, track 2, IBEX, track 3
track 1 : FOX,,,,,,,,,,,,,,,,,,,,,GANDER,,,,,,,,,,,,,,,,,GOOSE,,,,,,,,,,,,,,,,
LYNX :
:
MOA
cylinder6 :
track 0 : PANDA, track 1, PECCARY, track 2, TERN, track 3
OCELOT .....
track 3 : TERN,,,,,,,,,,,,,,,,,,WARTHOG,,,,,,,,,,,,,,YAK,,,,,,,,,,,,,,,,,,,,
YAK

Dalam sebuah track data, tracknya disimpan secara urut berdasarkan nilai key.
Tingkat pertama dari indeks dalam berkas indeks dinamakan master indeks.
Entry pada indeks ini adalah dalam bentuk :
nilai key tertinggi, pointer
Tingkat kedua dari indeks dinamakan cylinder indeks.
Indeks ini berisi pointer pada berkas prime data dan entry-nya dalam bentuk :
nilai key tertinggi, nomor cylinder

Jika sebuah permintaan untuk mengakses record tertentu, misal kita akan
mengakses dengan nilai key BAT, pertama akan dicari pada master indeks. Karena
BAT ada di depan LYNX, maka pointer dari LYNX akan menunjuk ke cylinder index.
Karena BAT ada di depan ELEPHANT, maka pointer dari ELEPHANT akan
menunjuk ke track 0 dari cylinder 1. Karena BAT ada di belakang BABOON dan di
depan COW, maka pointer dari BABOON akan menunjuk ke track 2, yang mencari
secara sequential sampai BAT ditemukan.
Permintaan untuk mengakses data secara sequential akan dilayani dengan
mengakses cylinder dan track dari berkas data prime secara urut.
Misal setiap track dari berkas prime data mempunyai ruang yang cukup
untuk menampung 5 record (jika penyisipan dan penghapusan terhadap berkas
dilakukan, maka akan dibentuk padding).

Struktur & Organisasi Data 1_Bab 5 -9-


Permintaan :
INSERT APE
INSERT AIREDALE
Akan mudah dilayani. Hanya track data 1 dari cylinder 1 yang akan digunakan dan
hasilnya ditunjukkan pada gambar di bawah ini :

cylinder 1
track 0 : no change
track 1 : AARDVARK,,,,,,,AIREDALE,,,,,,,,,ALBATROSS,,,,,,,,,ALLIGATOR,,,,,,,APE,,,,,,,,,,
track 2 : no change
track 3 : no change

Permintaan :
INSERT ARMADILLO

Agak sulit ditangani. Pencarian struktur indeks menyatakan bahwa


ARMADILLO seharusnya menempati track 1 dari cylinder 1, tetapi track tersebut
sudah penuh.
Untuk mengatasi keadaan tersebut diperlukan overflow data area. Overflow
data area ini merupakan berkas yang terpisah dari prime data area, tetapi overflow
area ini ditunjukkan oleh entry prime data area.
Hasilnya ditunjukkan pada gambar di bawah ini :

cylinder 1 :
track 0 : AARDVARK, track 1, ARMADILLO, ovfl-ptr, BABOON, track 2, COW, track 3
track 1 :
track 2 : no change
track 3 :

OVERFLOW DATA FILE

cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,

Karena ARMADILLO seharusnya berada setelah kelima entry pada track 1 dari
cylinder 1, tetapi karena track ini sudah penuh, maka ARMADILLO dipindahkan
ke overflow data area. Indeks track dari cylinder 1 harus dimodifikasi untuk
memperlihatkan bahwa ada sebuah record pada overflow area yang secara logik
seharusnya menempati pada akhir dari track 1, sehingga penambahan dari entry
itu adalah :

Struktur & Organisasi Data 1_Bab 5 - 10 -


<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. Perhatikan CAT dipindahkan ke
overflow area, karena entry pada prime track tidak hanya harus dalam urutan, tetapi
juga entry tersebut harus mendahului suatu entry overflow dari track tersebut.
Hasilnya ditunjukkan pada gambar di bawah ini :

PRIME DATA FILE

cylinder 1 :
track 0 : AARDVARK, track 1, ARMADILLO, * ,BABOON, track 2, CAT, * ,COW, track 3
track 1 : AARDVARK,,,,,,,,,A IREDALE,,,,,,,,,,ALBATROSS,,,,,,,, ALLIGATOR,,,,,,,, APE,,,,,,
track 2 : BABOON,,,,,BAT,,,,,BEAR,,,,,BOBCAT,,,,,CALF,,,,,,,,,,,,
track 3 : COW,,,,,,,,DOG,,,,,,,,,ELEPHANT,,,,,,,,,,,

OVERFLOW DATA FILE

cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,CAT,,,,,,,,,,,,,

ovrfl

Permintaan :
INSERT ANT
Hasilnya ditunjukkan pada gambar di bawah ini :

Struktur & Organisasi Data 1_Bab 5 - 11 -


PRIME DATA FILE

cylinder 1 :
track 0 : AARDVARK, track 1, APE, * ,BABOON, track 2, CAT, * ,COW, track 3
track 1 : AARDVARK,,,,,,,,,A IREDALE,,,,,,,,,,ALBATROSS,,,,,,,, ALLIGATOR,,,,,,,, ANT,,,,,,
track 2 : BABOON,,,,,BAT,,,,,BEAR,,,,,BOBCAT,,,,,CALF,,,,,,,,,,,,
track 3 : COW,,,,,,,,DOG,,,,,,,,,ELEPHANT,,,,,,,,,,,

OVERFLOW DATA FILE

cylinder 1 :
track 1 : ARMADILLO ,,,,,,,,,,,,,,CAT,,,,,,,,,,,,,APE,,,,,,,,,,,,,,,,,

ovrfl

Deklarasi Berkas Indeks Sequential dalam bahasa COBOL :


SELECT filename ASSIGN TO implementor-name[,implementor-
name2]
AREA
RESERVE integer
AREA
ORGANIZATION IS INDEXED
SEQUENTIAL
ACCESS MODE IS RANDOM
DYNAMIC

RECORD KEY IS dataname-1


[ FILE STATUS IS dataname-2 ].

Struktur & Organisasi Data 1_Bab 5 - 12 -


BAB 6
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.

Multi-Key Access
One Access Key ?
Yes

Sequential Access Only ? Yes

Yes No

Sequential Organization Direct Access Only ? Multi-Key Organization

No
Yes

Indexed Sequential
Relative Organization
Orgaization

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 banyak nilai key.
Ada 2 teknik dasar untuk pemberian hubungan antara sebuah indeks
dan data record dari berkas, yaitu :
ƒ Inversion
ƒ Multi-list

Struktur & Organisasi Data 1_BAB 6 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 bank, nasabah dan lain-
lain. Semuanya memerlukan akses data yang sama dengan format record :

Account

ID NAME GROUP-CODE SOCNO BALANCE OVERDRAW


LIMIT
LAST FIRST BRANCH TYPE

Adanya pemakai yang berbeda memerlukan akses record-record ini


dalam cara yang berbeda.
Kasir Mengidentifikasikan record account menurut nilai ID.
Kredit Akses semua record menurut nilai OVERDRAW LIMIT atau
semua record account dengan nilai SOCNO.
Manajer Cabang Akses semua record menurut Branch dan Type.
Pegawai Bank Membuat laporan berkala untuk semua record ccount yang
disortir berdasarkan ID.
Nasabah Memerlukan akses recordnya dengan memberikan ID yang
dimilikinya atau kombinasi dari NAME, SOCNO dan Type.
Satu pendekatan yang dapat mendukung semua jenis akses adalah
dipunyainya banyak berkas yang berbeda. Setiap berkas diorganisasi untuk
melayani satu jenis keperluan.

Maka untuk contoh sistem perbankan di atas harus ada :


9 File account yang organisasinya indeks sequential dengan nilai key
ID untuk melayani kasir, pegawai bank dan nasabah.

Struktur & Organisasi Data 1_BAB 6 2


9 File account yang organisasinya sequential dengan record diurut menurut
OVERDRAW LIMIT untuk melayani pegawai kredit.
9 File account yang organisasinya relarif dengan nilai key
SOCNO untuk melayani pegawai kredit.
9 File account yang organisasinya sequential dengan record diurut menurut
GROUP-CODE untuk melayani manajer cabang.
9 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 aksesnya.
Pengulangan data dari beberapa file bukan merupakan cara yang baik
untuk mengakses record dengan berbagai cara. Dan cara ini memerlukan
space (ruang) 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 terhadap record data.
Mungkin juga cara ini memakai banyak link-list terhadap record. Dans
ebuah indeks dapat dibentuk dengan beberapa cara, misal sebagai tabel binary
search tree atau B-tree.

Organisasi Inverter File


Satu pendekatan dasar untuk memberikan hubungan antara 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.

Struktur & Organisasi Data 1_BAB 6 3


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

Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau
sebuah indeks sequential. Sebuah indeks inversi dengan key SOCNO untuk
sebuah relatif file dengan nilai key ID akan memberikan sebuah file yang dapat
diakses langsung oleh sebuah ID atau SOCNO.

SOCNO ID
001234123 291821
123456789 208432
213823456 486212
299167305 534216
399042131 201431
411625331 415631
412631467 300123
426135447 696123
445062681 535218
459463001 111111
513014265 310103
612305116 324196
626311660 641230
692122222 387122
713214622 198121

Struktur & Organisasi Data 1_BAB 6 4


SOCNO ID
798392289 511211
821346211 112131
912346789 686116
923146154 386132
987654321 335812

Jika sebuah key dipakai untuk menentukan struktur storage dari file
disebut primary key, sedangkan key yang lainnya disebut secondary key.
File yang mempunyai indeks inversi untuk setiap data field disebut
completely inverted. File yang bukan completely inverted tapi paling sedikit
mempunyai satu indeks inversi disebut partialy inverted file.
Sebuah variasi dari struktur indeks inversi adalah pemakaian secondary
key dan primary key dari indirect addressing. Pendekatan ini membiarkan file
yang direorganisasi dan restructure secara fisik tanpa menyebabkan indeks file.
Pada contoh di atas, nilai SOCNO adalah unik. Setiap SOCNO dalam
indeks inversi mempunyai record. Indeks inversi dapat juga dipakai dengan key
yang bukan unik.

GROUP-CODE
ID
BRANCH TYPE
DT 001 111111, 201431, 310103, 686116
DT 002 198121, 335812, 486212, 641230
EA 001 324196, 534216, 535218
NE 001 415631
NE 002 300123, 696123
NW 001 112131, 208432, 511211
NW 002 291821
WE 002 386132, 387122

Satu hal yang baik dari inversi file adalah beberapa pertanyaan di
bawah ini dapat dijawab tanpa akses data file, cukup dengan indeks inversinya.
¾ Apakah ada indeks untuk SOCNO = ‘414556233’ ?
¾ Berapa banyak account dengan GROUP-CODE = ‘EA001’ ?
¾ Berapa banyak account dengann BRANCH = ‘NE’ ?
¾ Apakah BRANCH = ‘NE’ mempunyai TYPE = ‘001’ ?

Struktur & Organisasi Data 1_BAB 6 5


Organisasi Multi-List File
Suatu pendekatan lain yang memberikan hubungan antara sebuah
indeks dan data record dari sebuah file disebut organisasi multi-list file.
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 penunjuk untuk data record
selanjutnya dengan nilai key dan seterusnya. Maka terdapat sebuah linked-list
dari data record untuk setiap nilai dari secondary key.
Nilai key harus diurut, struktur indeks adalah tabel dengan indirect
addressing dan mempunyai hubungan data record yang disusun menurut ID
secara ascending.

MULTI-LIST ORGANIZATION
GROUP-CODE
ID
BRANCH TYPE
DT 001 111111
DT 002 198121
EA 001 324196
NE 001 415631
NE 002 300123
NW 001 112131
NW 002 291821
WE 002 386132
Multi-List indeks untuk GROUP-CODE secondary key
GROUP-CODE
ID
BRANCH TYPE
0. 111111
100. 112131
200. 198121
250 511211
Multi-List indeks untuk OVERDRAW-LIMIT secondary key

Struktur & Organisasi Data 1_BAB 6 6


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 sequential, indeks GROUP-CODE atau dengan
memakai OVERDRAW-LIMIT.
Mana cara yang terbaik ?
Pencarian secara sequential 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 menggunakan indeks GROUP-
CODE.

Struktur & Organisasi Data 1_BAB 6 7


Name Group-
Record
ID Code Type SOCNO Balance Limit
Address Last First Branch
1 111111 Dean John DT 001 45946301 100.50 0.
2 112131 Amore Carol NW 001 821346211 2311.20 100.
3 198121 Rice Bess DT 002 713214622 -191.87 200.
4 201431 Parker Ola DT 001 399042131 3142.93 100.
5 208432 Anderson Barbara NW 001 123456789 95.26 0.
6 291821 Anderson Brent NW 002 001234123 146.92 0.
7 300123 Hart Allison NE 002 412631467 3000.00 100.
8 310103 Tahoe Serena DT 001 513014265 243.63 0.
9 324196 Bones Igor EA 001 612305116 0.02 0.
10 335812 Bee Vera DT 002 987654321 88.72 0.
11 386132 Arc Jean WE 002 923146154 -89.98 100.
12 387122 Ells Joshua WE 002 692122222 10.95 0.
13 415631 Belle Ellie NE 001 411625331 426.86 100.
14 486212 Matthers Ann DT 002 213823456 893.92 100.
15 511211 Snuggs John NW 001 798392289 2814.12 250.
16 534216 Loomin Tim EA 001 299167305 296.12 250.
17 535218 Ellsworth Nancy EA 001 445062681 2814.12 250.
18 641230 Wells Chuck DT 002 626311660 -98.14 100.
19 686116 Sworth Lauren DT 001 912346789 3216.16 100.
20 696123 Gunness Marion NE 002 426135447 95.93 25.

Struktur & Organisasi Data 1_BAB 6 8


Group-Code
Record Name Overdraw
ID SOCNO Balance Next
Address Limit
Last First Branch Type
1 111111 Dean John DT 001 45946301 100.50 0. 208432
2 112131 Amore Carol NW 001 821346211 2311.20 100. 201431
3 198121 Rice Bess DT 002 713214622 -191.87 200. 0.
4 201431 Parker Ola DT 001 399042131 3142.93 100. 300123
5 208432 Anderson Barbara NW 001 123456789 95.26 0. 291821
6 291821 Anderson Brent NW 002 001234123 146.92 0. 310103
7 300123 Hart Allison NE 002 412631467 3000.00 100. 386132
8 310103 Tahoe Serena DT 001 513014265 243.63 0. 324196
9 324196 Bones Igor EA 001 612305116 0.02 0. 335812
10 335812 Bee Vera DT 002 987654321 88.72 0. 387122
11 386132 Arc Jean WE 002 923146154 -89.98 100. 415631
12 387122 Ells Joshua WE 002 692122222 10.95 0. 0.
13 415631 Belle Ellie NE 001 411625331 426.86 100. 486212
14 486212 Matthers Ann DT 002 213823456 893.92 100. 641230
15 511211 Snuggs John NW 001 798392289 2814.12 250. 534216
16 534216 Loomin Tim EA 001 299167305 296.12 250. 535218
17 535218 Ellsworth Nancy EA 001 445062681 2814.12 250. 696123
18 641230 Wells Chuck DT 002 626311660 -98.14 100. 686116
19 686116 Sworth Lauren DT 001 912346789 3216.16 100. 0.
20 696123 Gunness Marion NE 002 426135447 95.93 25. 0.

Struktur & Organisasi Data 1_BAB 6 9


BAB 7
BERKAS SORT DAN MERGE

Pengertian Berkas Sort Dan Merge


Dalam sistem penyortiran dikenal 2 metode, yaitu :
ƒ Metode Sort Internal
ƒ Metode Sort Eksternal
Perbedaannya :
9 Pada metode sort internal, semua record yang akan diproses dimuat ke
dalam memori komputer lalu diproses sort (sortir).
9 Pada metode sort eksternal, record-record yang diproses tidak semuanya
dapat dimuat ke dalam memori komputer, karena keterbatasan memori
komputer.
9 Metode sort eksternal di dalam penerapannya nanti, menggunakan pula
metode sort internal.

Contoh :
Sebuah file berisi 2000 record harus disortir ke dalam memori yang hanya
dapat menampung 1000 record sekaligus. Untuk itu digunakan metode sort
eksternal.
Langkah-langkah penyortiran ini adalah :
™ Record-record dibagi ke dalam beberapa file agar dapat ditampung
sekaligus di memori komputer, lalu masing-masing bagian disortir
internal. Bagian-bagian file yang terlah tersortir ini disebut sorted
sublist.
Maka didapat :
• Sorted sublist 1 (record 1 – 1000) dan
• Sorted sublist 2 (record 1001 – 2000)
™ Setelah itu kedua sorted sublist ini (RUN) digabung (merge), sehingga
didapat berkas gabungan (merge file) yang record-recordnya telah
disortir.

Struktur & Organisasi Data 1(BAB 7) 1


Sorted sublist 1 Merge List
(records 1 – 1000)
MERGE
(Sorted list of
records 1 – 2000)

Sorted sublist 2
(records 1001 – 2000)

Maka dapat disimpulkan langkah-langkah untuk metode sort eksternal ini adalah :
o Sort internal, dimana file dibagi menjadi beberapa bagian file, kemudian disortir.
o Merge, dimana bagian-bagian file ini (sorted sublist) digabung menjadi satu atau
lebih file gabungan. File-file gabungan kemudian digabung lagi sampai akhirnya
didapatkan sebuah file gabungan yang berisi semua record-record yang telah
disortir.
o Output, yang menyalin file gabungan yang telah tersortir ke media storage terakhir.

Faktor-faktor yang mempengaruhi metode sort eksternal :


• Jumlah record yang akan disortir
• Ukuran record (panjang record)
• Jumlah storage yang digunakan
• Kapasitas internal memori
• Distribusi nilai key dalam input file

Teknik sort/merge file ini berbeda satu dengan 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)

Ada 4 teknik dalam sort/merge file, yaitu :


• Natural Merge
• Balanced Merge
• Polyphase Merge
• Cascade Merge

Struktur & Organisasi Data 1(BAB 7) 2


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 terbagi lagi menjadi :
2 way natural merge
3 way natural merge
:
:
M way natural merge
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 disortir ke dalam memori komputer
yang kapasitasnya 1000 record.
Buatlah dengan menggunakan 2 way natural merge !
Lihat gambar 1
Lihat pula contoh 3 way natural merge, yang ditunjukkan pada :
Gambar 2
Lihat pula contoh 2 way natural merge dengan kapasitas memori 500 record.
Gambar 3
Lihat pula contoh 3 way natural merge dengan kapasitas memori 500 record.
Gambar 4

Balanced Merge
Dari metode natural merge kita lihat bahwa, jika kita gunakan M input file,
maka file seluruhnya yang kita gunakan adalah M + 1 file.
Sedangkan pada balanced merge, jika kita gunakan M input file, maka file
seluruhnya yang dipakai adalah 2 M file.
Pada balanced merge terbagi lagi menjadi :
2 way balanced merge
3 way balanced merge
:
:
M way balanced merge

Struktur & Organisasi Data 1(BAB 7) 3


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

Polyphase Merge
Pada M way polyphase merge digunakan 2 M-1 input file dengan 1 output file.
Jadi kita menggunakan 2 way polyphase merge, maka banyaknya input file yang
digunakan ada 3 input file.
Contoh :
Setelah phase sort internal, misalkan kita mempunyai 17 subfile atau 17 run
yang akan didistribusikan ke input file. Jika kita menggunakan 2 way polyphase merge,
berarti 17 run tersebut harus didistribusikan ke dalam 3 input file.
Dari pendistribusian tersebut, maka diperoleh :
Lihat gambar 6

Cascade Merge
Jenis lain dari unbalanced merge yang berusaha mengurangi penyalinan/copy
dari record-record disebut cascade merge.
Cascade merge dengan derajat M menggunakan :
2 M-1, 2 M-2, 2 M-3, … , kemudian 2 input file selama merge
Setiap merge pass dimulai dengan merge dari :
2 M-1 input file ke 1 output file
Pada cascade merge, pendistribusian run-nya sama dengan pendistribusian run pada
polyphase merge, hanya berbeda pada phase merge-nya.
Lihat gambar 7

Struktur & Organisasi Data 1(BAB 7) 4


Gambar 1

Gambar 2

Struktur & Organisasi Data 1(BAB 7) 5


Gambar 3 dan Gambar 4

Struktur & Organisasi Data 1(BAB 7) 6


Gambar 5

Struktur & Organisasi Data 1(BAB 7) 7


Gambar 6

Struktur & Organisasi Data 1(BAB 7) 8


Gambar 7

Struktur & Organisasi Data 1(BAB 7) 9


BAB 8
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 :


1) Memelihara directori dari berkas dan lokasi informasi
2) Menentukan jalan bagi aliran data antara main memory dan alat penyimpanan
sekunder
3) Mengkoordinasi komunimasi antara CPU dan alat penyimpanan sekunder
4) Menyiapkan berkas penggunaan input atau output telah selesai

Channel
Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas
yang berhubungan dengan I/O. Tetapi tanggung jawab untuk kontrol peralatan
diserahkan pada prosesor I/O, yang dikenal sebagai saluran I/O (I/O channel).
Saluran I/O itu sendiri merupakan prosesor yang sudah diprogram. Program-
program yang di-execute ini disebut channel program. Channel program ini
menentukan operasi, yang diperlukan untuk akses peralatan dan mengontrol jalur data
(data pathway).

Additonal
Contro
Units

Additonal DEVICE
Channels
CPU
MAIN MEMORY DEVICE
CHANNEL CONTROL
UNIT
DEVICE

DEVICE

Struktur & Organisasi Data 1(BAB 8) 1


Macam-macam Channel
1. Selector Channel;
Dapat mengatur aliran data antara memori utama dengan sebuah peralatan
pada saat tersebut. Karena saluran merupakan processor-processor yang cepat
maka saluran selektor biasanya hanya menggunakan peralatan I/O dengan
kecepatan tinggi, seperti disk. Penggunaan peralatan dengan kecepatan rendah,
misal card reader.
2. Multiplexor Channel;
Dapat mengatur aliran data antara memori utama dengan beberapa peralatan.
Saluran Multiplexor lebih efektif bila menggunakan peralatan dengan kecepatan
rendah, dibandingkan dengan selector channel. Dengan saluran multiplexor,
beberapa peralatan dapat diaktifkan secara serentak, tetapi saluran harus
melengkapi saluran program untuk satu peralatan sebelum memulai dengan
saluran program lain.
3. Block Multiplexor Channel;
Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel dapat
mengeksekusi satu instruksi dari saluran program untuk satu peralatan, kemudian
dapat mengalihkan instruksi-instruksi dari saluran program itu ke peralatan yang
lain.

Macam-macam Device
1. Dedicated Device;
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh : Terminal.
2. Shared Device;
Digunakan untuk pengaksesan oleh banyak pemakai secara bersamaan.
Contoh : Disk.

Aktifitas I/O untuk shared device adalah sangat kompleks dibanding aktifitas
I/O pada dedicated device. Dua fungsi yang sangat penting dari shared device adalah
alokasi tempat dan pemberian akses yang tepat.

Struktur & Organisasi Data 1(BAB 8) 2


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 peralatan
sedang sibuk.
‰ Start I/O, pada peralatan tertentu.
‰ 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 rutin pengendali interupsi
(interrupt-handler routine), dimana kontrol akan menentukan penyebab dari interupsi,
melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil
(caller).

Manajemen Buffer
Terbagi menjadi 4 jenis manajemen yaitu :
1. Single Buffering;
2. Anticipatory Buffering;
3. Double Buffering;
4. Three Buffers;

1. Single Buffering;

BUFFER

To start of
Channel program

BUFFER
DATA AREA

Gambar di atas menunjukkan struktur data dari buffer dalam bentuk yang
sederhana, yang terdiri dari satu record per-block dan satu buffer per-berkas,

Struktur & Organisasi Data 1(BAB 8) 3


dimana buffer ini berfungsi mengisikan permintaan dari sebuah program. Struktur
buffer ini berisi sebuah pointer pada alamat awal & channel program untuk berkas.

Struktur dasar dari channel program untuk mengisi buffer adalah :


o Tunggu instruksi READ dari program
o Memberitahukan instruksi start I/O ke unit kontrol
o Tunggu hingga buffer dikosongkan
o Memberitahukan interupsi pada program sehingga dapat mulai membaca dari
buffer
Masalah yang timbul di sini adalah pemakai program menganggur pada saat
menunggu buffer diisi.

2. Anticipatory Buffering;
Pendekatan lain yang dapat menghilangkan beberapa hal yang mungkin
untuk menunggu CPU adalah dengan menggunakan Anticipatory Buffering.
Dengan anticipatory buffering, sistem kontrol I/O akan berusaha
mendahulukan kebutuhan program akan data. Diusahakan agar buffer selalu
penuh. Channel selalu menguji flag ini. Jika buffer mendekati kosong, karena
pemakai program telah membaca isinya maka flag itu akan direset dan channel
program akan menginitates pengisian kembali buffer.
Struktur dasar channel program untuk mengisi sebuah buffer dengan
anticipatory buffer diperlihatkan pada gambar di bawah ini :

BUFFER

To start of
Channel program
FULL-FLAG

BUFFER
DATA AREA Where full-flag = 0 if the buffer is empty,
= 1 if the buffer is full

3. Double Buffering;
Untuk mengurangi kemungkinan dari program menunggu, maka double
buffer dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang
ditetapkan untuk berkas.

Struktur & Organisasi Data 1(BAB 8) 4


Ide dasar dari double buffering adalah jika consumer mengosongkan
salah satu buffer, maka producer dapat mengisikan ke dalam buffer yang lain,
pada saat buffer pertama sudah kosong, maka buffer yang kedua harus dalam
keadaan penuh. Kemudian consumer dapat mengkosongkan buffer yang kedua,
pada saat producer mengisi buffer yang pertama, demikian seterusnya.

BUFFER 1 BUFFER 2

Next Next
To start of
Chp Chp
Channel program
Full-flag Full-flag

Record-ctr Record-ctr
Buffer Buffer
Data area Data area

Where full-flag = 0 if the buffer is empty or being filled,


= 1 if the buffer is full or is being emptied;
record-ctr = 1, … , n

4. Three Buffers;

Pfill Pempty

BUFFER 1 BUFFER 2 BUFFER 3

Next Next Next


Chp Chp Chp
Full-flag = 1 Full-flag = 0 Full-flag = 1
Record-ctr = 1 Record-ctr = M Record-ctr=N+1

pfill : yang menunjukkan buffer berikutnya akan diisi atau sedang diisi
pempty : yang menunjukkan buffer berikutnya akan dikosongkan atau
sedang dikosongkan

Struktur & Organisasi Data 1(BAB 8) 5

Anda mungkin juga menyukai