SISTEM BERKAS
Sistem Penilaian
C. ISTILAH-ISTILAH DASAR
Field/Item data
File siswa tersebut memiliki 3 field, yaitu NIM, Nama, dan Alamat.
Juga memiliki 3 record, yaitu :
1) 11.01.0020 Dinny Singosari
2) 11.01.0057 Wahyu Blitar
3) 11.01.0059 Widarti Sumedang
Materi 2
MEDIA PENYIMPANAN FILE
A. PENYIMPANAN PRIMER
Penyimpanan primer (primary memory) atau disebut juga Memori utama (main
memory) dan memori internal (internal memory).Komponen ini berfungsi sebagai
pengingat.Dalam hal ini, yang disimpan didalam memori dapat berupa data atau
program.
Penyimpanan primer dibedakan menjadi dua macam, yaitu :
RAM
Random-Access Memory adalah jenis memori yang isinya dapat diganti selama
komputer dihidupkan dan mempunyai sifat bisa mengingat data/program selama
terdapat arus listrik (komputer hidup). RAM dapat menyimpan dan mengambil data
dengan sangat cepat.
ROM
Read-Only Memory adalah jenis memori yang hanya bisa dibaca.Disediakan oleh
vendor komputer dan berisi program atau data.
Selain itu ada pula Cache memory,yaitu memori yang memiliki kecepatan yang sangat
tinggi yang digunakan sebagai perantara antara RAM dan CPU.
B. PENYIMPANAN SEKUNDER
Penyimpanan sekunder atau disebut secondary memory adalah penyimpanan data
yang relative mampu bertahan dalam jangka waktu yang cukup lama di luar CPU
maupun penyimpanan primer.
2. Magnetic Disk
Adalahpiranti penyimpanan sekunder yang paling banyak dijumpai pada
sistem komputer.
Magnetic disk terdiri dari logam yang kaku atau plastic yang fleksibel.Pada
saat disk digunakan, motor drive berputar dengan kecepatan yang sangat
tinggi.Ada sebuah read−write head yang ditempatkan diatas permukaan
piringan tersebut.Permukaan disk terbagi atas beberapa track yang masih
terbagi lagi menjadi beberapa sector. Fixed−head disk memiliki satu head
untuk tiap−tiap track, sedangkan Moving−head disk (atau sering
dikenal dengan nama hard disk) hanya memiliki satu head yang harus
dipindah−pindahkan untuk mengakses dari satu track ke track yang lainnya.
Contoh : Floppy disk (disket), hardisk.
3. Optical Disk
Optical disk tidak menggunakan bahan yang bersifat magneti sama sekali.
Optical disk menggunakan bahan spesial yang dapat diubah oleh sinar laser
menjadi memiliki spot-spot yang relatif gelap atau terang.contoh dari optical
disk ini adalah CD-RW dan DVD-RW.
Materi 3
ORGANISASI BERKAS PRIMER
A. ORGANISASI BERKAS
Terdapat tiga oganisasi berkas primer, yaitu sekuensial, langsung, dan
sekuensial berindeks. Masing-masing organisasi tersebut memiliki cara memproses
atau mengakses berkas.
Organisasi Akses
Sekuensial Sekuensial
Sekuensial berindeks Sekuensial atau langsung
Langsung langsung
Sebagai contoh, terdapat sejumlah unit informasi yang disebut rekaman yang
mengandung data mengenai entitas individual.Rekaman tersebut dapat diuraikan
menjadi unit-unit yang lebih kecil, yang disebut medan-medan yang mengandung
nilai-nilai khusus bagi atribut-atribut yang mewakili individu tersebut.
B. MEDAN DATA
Medan berisi nilai dasar yang membentuk sebuah rekaman. Isi sebuah medan
bergantung pada atribut yang dimiliki oleh individu pemilik rekaman. Nilai tersebut
pada saatnya nanti akan dimanipulasi oleh proses komputasi. Nilai-nilai dalam
medanharus tunduk pada deskripsi tentang tipe nilai, kapasitas byte maksimum,
domain dan seterusnya yang dimiliki oleh medan tersebut.
Rekaman yang disimpan dalam berkas pada umumnya memiliki medan yang
berfungsi khusus, yaitu sebagai identitas rekaman yang memiliki sifat pembeda baik
internal maupun eksternal. Medan ‘tanggal’ yang umumnya dimiliki oleh sebuah
rekaman merupakan contoh yang unik. Medan tersebut bisa memiliki kapasitas byte
maksimum 8, dan disusun dari 3 medan yang lebih elementer, yaitu tanggal (2digit),
bulan (2digit), tahun (4digit). Data tanggal paling baik dinyatakan dalam tipe bilangan,
C. REKAMAN DATA
Medan ke-1 Medan ke-2 … Medan ke-n
Rekaman merupakan koleksi berbagai medan yang berisi beberapa item data
elementer. Beberapa medan dapat berhubungan satu dengan yang lainnya karena
mereka melakukan deskripsi suatu hal yang spesifik, misalnya tentang seseorang ,
tentang sebuah subyek, atau suatu kejadian. Informasi tentang seseorang mahasiswa
misalnya, dapat disimpan dengan cara berikut :
Rekaman mahasiswa
Nama Nomor Jenjang Program Dosen Wali SPP Data
Mahasiswa Mahasiswa Studi lain
D. BERKAS DATA
Sebuah berkas merupakan koleksi dari rekaman-rekaman yang sama, yang
diletakkan dalam peralatan penyimpanan data komputer. Salah satu tipe peralatan
penyimpanan eksternal, dari berbagai alternatif, adalah penggerak disk dengan disk
magnetiknya. Sebuah berkas akan memiliki nama yang dikenal oleh sistem operasi,
dan mempunyai struktur atau organisasi yang ditentukan oleh program pengakses
berkas.
Materi 4
ORGANISASI BERKAS SEKUENSIAL
Proc pencarian_biner
*/ n buah rekaman dalam berkas diurutkan menaik menurut kunci
rekaman */
AWAL := 1
AKHIR := n
While AWAL <= AKHIR do
Tengah := [(AWAL+AKHIR)/2]
If kunci(cari) = kunci(tengah)
Then pencarian berakhir
Else if kunci(cari) > kunci(tengah)
Then AWAL := Tengah + 1
Else AKHIR := tengah - 1
End
Rekaman tidak ditemukan
End pencarian_biner
B. PENCARIAN INTERPOLASI
Pencarian interpolasi (asumsinya kunci rekaman numeris) menentukan posisi
yang akan dibandingkan berikutnya berdasar posisi yang di estimasi dari sisa rekaman
yang belum diperiksa. Pencarian interpolasi tidak mencari posisi tengah, seperti
algoritma pencarian biner, melainkan menentukan posisi berikutnya.
Proc pencarian_interpolasi
*/ n buah rekaman dalam berkas diurutkan menaik menurut kunci
rekaman */
AWAL := 1
AKHIR := n
While AWAL <= AKHIR do
If kunci(cari) = kunci(BERIKUT)
Then pencarian berakhir
Else if kunci(cari) > kunci(BERIKUT)
Then AWAL := BERIKUT + 1
Else AKHIR := BERIKUT - 1
End
Rekaman tidak ditemukan
End pencarian_interpolasi
Materi 5
ORGANISASI BERKAS LANGSUNG
Karena kecil kemungkinan dalam satu maskapai terdapat lebih dari 100
penerbangan, maka ruang alamat maksimum yang diperlukan adalah 36699.
Keluaran dari proses hashing bukan lagi alamat yang unik, melainkan
kemungkinan alamat bagi kunci yang di hash. Alamat untuk menempatkan alamat
yang diperoleh dari fungsi hash disebut home-address untuk rekaman tersebut. Tidak
ada batasan mengenai bentuk fungsi yang akan memetakkan kunci ke cakupan
alamat, tetapi diharapkan fungsi tersebut menghasilkan kemungkinan alamat yang:
Mampu mendistribusi kunci secara merata ke dalam cakupan alamat. Hal tersebut
dimaksudkan untuk mengurangi terjadinya kolisi. Kolisi terjadi bila hasil hashing
dua kunci rekaman yang berbeda menunjuk ke alamat yang persis sama.
Dapat dieksekusi dengan efisien. Hal tersebut dimaksudkan agar waktu
pembacaan dapat ditekan seminimal mungkin.
dengan P sebagai bilangan prima terkecil yang lebih besar atau sama dengan N.
dan N adalah ukuran tabel. P ini kemudian menjadi ukuran tabel baru yang
menggantikan N. Contoh: untuk N=12 maka P=13
30 mod P = 4
40 mod P = 1
Yang diperoleh alamat yang berbeda yaitu 573 (tanpa carry). Jika kedua hasil
penjumlahan tersebut diterapkan dengan menggunakan carry dan hanya tiga digit
yang paling kanan saja yang digunakan, maka diperoleh 683.
Materi 6
ORGANISASI BERKAS DENGAN BANYAK KUNCI
A. METODE ORGANISASI
Ada banyak teknik yang dipakai untuk organisasi file dengan banyak kunci.
Berikut ini dua teknik dasar untuk pemberian hubungan antara sebuah index dan data
record dari file, yaitu:
1. Inverted
2. Multilist
Banyak bahasa program kompilator tidak memberikan kemampuan untuk
mendukung organisasi file banyak kunci. Karenanya diperlukan paket program
tambahan untuk mendukung sistem pengolahan data manajemen yang hampIr
semuanya menggunakan organisasi file banyak kunci.
Contoh sebuah sistem perbankan yang mempunyai beberapa pemakai seperti
kasir, pegawai kredit, manajer cabang, pegawai bank, nasabah, dll. Semuanya
memerlukan akses data yang sama dengan format record sebagai berikut:
Kita memiliki 5 file yang semuanya mempunyai record yang sama. Kelima file ini
hanya berbeda dalam organisasinya dan cara aksesnya.
Pengulangan data dari beberapa file bukan merupakan cara yang baik untuk
mengakses record dengan berbagai cara. Lagi pula cara ini memerlukan ruang yang
besar di penyimpanan dan kesulitan pada waktu pemutakhiran record secara
serentak.
File dengan organisasi banyak kunci adalah cara terbaik untuk mengatasi
masalah di atas. File ini menggunakan indeks dan bukan pengulangan data seperti
cara diatas. Konsep dari akses banyak kunci umumnya diimplementasikan dengan
pembentukan banyak indeks untuk memberikan yang berbeda terhadap record.Cara
ini menggunakan linked-list.
DIRECTORY DATAFILE
Search Key Address List No.Rec<S-Id, Nama, Mata Kuliah, …>
SB 2,4 1 1234 : Adam : SBD :…
PSI 5 2 5678 : Bruce : SB :…
SBD 1,3 3 9012 : Clarck : SBD :…
4 3456 : David : SB :…
5 7890 : Erik : PSI :…
Kode-Group ID
Tipe-Cabang
DT 001 111111, 201431, 310103
DT 002 198121
NW 001 112131, 208432
NW 002 291821
NE 002 300123
2. Struktur Index Inversion menggunakan Pengalamatan tidak langsung
dengan nilai No.Soc.
No.Society ID
001234123 291821
123456789 208432
399142131 201431
412631467 300123
459463001 111111
513014265 310103
713214622 198121
821346211 112131
Nilai kunci harus diurut, struktur indek adalah tabel dengan indirect addressing
dan mempunyai hubungan data record yang disusun menurut ID secara menaik. Hasil
sebuah struktur multilist adalah sebuah kunci sekunder yang mempunyai nilai unik
atau tunggal. Ini berarti ada N data record maka ada N nilai kunci sekunder dalam
indeks yang menunjukkan record pertama.
Suatu sifat yang menaik dari multilist bahwa indeks dapat berupa fixed length.
Pendekatan multilist memberikan jenis kemampuan akses yang sama dengan
pendekatan inverted file tetapi memproses dari 2 jenis file yang berbeda, sbg contoh :
a) Berapa jumlah account dengan kode grup = ‘DT001’?
b) Berapa jumlah cabang ‘NE’?
c) Daftar nilai ID untuk account dengan grup ‘DT002’?
d) Daftar nilai ID untuk account dengan tipe ‘002’?
e) Apakah ID = 198121 mempunyai account dengan tipe ‘002’?
Contoh di atas memerlukan data record dalam pengaksesannya. Agar dapat
menjawab pertanyaan di atas dalam hal jumlah (seperti soal a dan b) dan setiap nilai
Overdraw Panjang
Limit
0 4
100 3
200 1
Materi 7
ORGANISASI BERKAS RELATIF
APE I-1
EEL I
DOG I+1
CAT N-1
AKHIR BERKAS N
BAT
Bagaimana record yang ke-N dapat ditemukan? Dalam hal ini, perlu kita buat
hubungan yang akan menerjemahkan antara NILAI KEY dan ADDRESS. Hubungan ini
dinyatakan sebagai R, yang merupakan fungsi pemetaan.
Field ACCOUNT NUMBER dipakai sebagai nilai key untuk kedua berkas
tersebut. Pada saat nilai key ACCOUNT NUMBER dimasukkan ke dalam transaksi, nilai
key tersebut akan me-retrieve secara langsung record yang ada pada berkas induk.
Jika TRANS-TYPE = ‘T’, maka BALANCE akan ditampilkan di layar. Jika TRANS-TYPE =
‘C’ atau ‘D’, maka record-record dari berkas induk CUSTOMER-ACCOUNT akan
dimodifikasi dengan AMOUNT dan DATE yang ada di berkas transaksi, dimana
ACCOUNT NUMBER yang menentukan lokasi record dalam berkas tersebut.
Ada dua hal penting yang perlu dicatat; pertama, tidak perlu mengakses semua
record berkas induk, cukup mengakses langsung record yang dikehendaki. Kedua,
record dari berkas relatif dapat di up-date langsung tanpa perlu merekan kembali
semua record.
Bandingkan kedua hal ini pada organisasi sekuensial.
Keuntungan dari berkas relatif ini adalah kemampuan mengakses record
secara langsung. Sebuah record dapat di retrieve, insert, modifikasi, atau bahkan dapat
di delete; tanpa mempengaruhi record laindalam berkas yang sama.
Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan R,
dimana R (NILAI KEY) ADDRESS
1. Pemetaan Langsung (Direct Mapping)
2. Pencarian Tabel (Directory Look-up)
3. Kalkulasi (Calculating)
1. Pengalamatan Mutlak
Fungsi pemetaan R (NILAI KEY) ADDRESS, di mana NILAI KEY = ALAMAT
MUTLAK. Fungsi pemetaan ini disebut PENGALAMATAN MUTLAK. Nilai key
diberikan oleh pemakai program yang sama dengan ADDRESS SEBENARNYA dari
record tersebut disimpan pada penyimpanan sekunder.
Pada waktu record tersebut disimpan, lokasi penyimpanan record (nomor
silinder, nomor surface, nomor record) bila dipakai CYLINDER ADDRESSING atau
(nomor sector, nomor record) bila dipakai SECTOR ADDRESSING harus ditentukan
oleh pemakai.
Begitu pula pada waktu record tersebut di retrieve, lokasi mutlak itu harus
diketahui dan diberikan pemakai.
Ada 2 keuntungan dari pengalamatan mutlak:
Fungsi pemetaan R sangat sederhana
Tidak membutuhkan sekunder (retrieve lebih cepat)
Kelemahannya :
Pemakai harus mengetahui dengan pasti record-record yang disimpan
secara fisik.
Pemakai tidak dapat menggunakan nilai key seperti ACCOUNT
Alamat mutlak adalah device dependent. Perbaikan atau perubahan
alat, dimana berkas berada, akan mengubah nilai key.
Alamat mutlak adalah address space dependent. Reorganisasi berkas
relatif akan menyebabkan nilai key berubah. Reorganisasi bertujuan
memperbesar ruang alamat di mana sampah (garbage) akan dibuang
atau dapat juga memperkecil ruang alamat.
2. Pengalamatan Relatif
Fungsi pemetaan R (NILAI KEY) ADDRESS, dimana NILAI KEY = ALAMAT
RELATIF. Fungsi pemetaan ini disebut PENGALAMATAN RELATIF.
Alamat relatif dari sebuah record dalam sebuah berkas adalah urutan
record tersebut dalam berkas. Sebuah berkas dengan N record mempunyai record
dengan alamat relatif dari himpunan (1, 2, 3, …, N-2, N, N-1) Record yang ke-I
mempunyai alamat relatif I dan I-1.
Alamat relatif tidak tepat dikatakan sebagai device dependent seperti pada
alamat multak, karena itu kelemahan tersebut dapat dihilangkan pada pengalamatan
relatif. Namun seperti pada pengalamatan mutlak, pengalamatan relatif juga address
space dependent.
Nilai key dari sebuah field dapat dipakai sebagai alamat relatif. Misal dari 2000
jenis barang yang mempunyai nilai key PART NUMBER dipakai sebagai alamat
relatif.Part number 1001 mempunyai alamat relatif 1001.
Kelemahan nilai key dari sebuah field dipakai sebagai alamat relatif adalah
terjadinya pemborosan ruangan dimana berkas relatif menyediakan ruang (alamat
relatif) untuk 9999 jenis barang dari sebenarnya 2000 jenis barang, terjadi pemborosan
kurang lebih 80%. Untuk nilai key NIP yang terdiri dari 9 digit dari berkas pegawai yang
berjumlah 2000 record akan terjadi pemborosan 99,99998% ruang dimana berkas
relatif menyediakan alamat relatif untuk 999.999.999 pegawai.
Untuk mengatasi pemborosan ruang adalah dengan cara mendapatkan
sebuah key yang nilai jangkauannya mempunyai populasi tinggi. Sebagai contoh 8200
jenis barang akan lebih efisien mempunyai PART NUMBER sebanyak 4 digit sebagai
nilai key-nya yang juga merupakan alamat relatif. Ruang kosong sebesar 20% dipakai
untuk penambahan record.
APE
I-1
COW 1 EEL I
DOG I+1 DOG I+1
EEL I
2 CAT N-1
N
ZEBRA BAT
Disini data dalam direktori disusun secara urut menurut nilai key, sehingga
pencarian nilai key dalam direktori lebih cepat dengan binary search dibanding
sequential search.
Alternatif lain, direktori dapat disusun dalam binary search tree, M-way search
tree, atau B-tree.
ZEBRA 2
BAT, N
CAT, N-1
APE I-1
COW, 1
EEL I
DOG I+1
DOG, I+1
BAT N
ZEBRA, 2-1
Materi 8
ORGANISASI BERKAS INDEKS SEKUENSIAL
Berkas Overflow
Utama
Indeks
A. STRUKTUR DASAR
Dalam sebuah sistem komputer, pada umumnya rekaman yang akan disimpan
memiliki volume yang terlalu besar untuk ditempatkan semuanya pada penyimpanan
primer. Jadi, diperlukan penyimpanan sekunder seperti disk untuk menyimpan
rekaman. Bila yang digunakan adalah komputer dengan disk yang dapat diberi alamat
melalui blok-nya, maka digunakan track sebagai unit terkecil dalam mengelompokkan
kunci pnj
dengan kunci merupakan kunci rekaman tertinggi dari rekaman-rekaman yang berada
pada silinder tersebut, dan pnj yang menunjuk ke arah indeks track untuk ke silinder
tersebut. Masing-masing track dalam silinder memiliki dua buah pasangan masukan
yang berisi informasi yang dapat diasosiasikan dengan track tersebut dalam indeks
track. Satu pasang berisi informasi yang berada pada area penyimpanan primer, dan
sebuah lagi memiliki informasi pada rekaman overflow yang diasosiasikan dengan
track tersebut. Untuk masing-masing track, masukan-masukan tersebut memiliki
bentuk sebagai berikut:
Kunci pada pasangan pertama menunjukkan kunci tertinggi pada track yang
berada pada area penyimpanan primer, dan kunci yang berada pada pasangan kedua
menunjukkan kunci tertinggi yang berada pada area overflow yang diasosiasikan
dengan track tersebut. Pnj primer memberikan indikasi bahwa track berisi rekaman
primer, dan pnj overflow menunjukkan rekaman pertama yang berada pada area
overflow (jika ada) yang diasosiasikan dengan track tersebut.
Pada gambar 8.2 indeks silinder memberikan informasi mengenai masukan dari
tiga buah silinder; yaitu silinder 1, 2, dan 3, serta informasi bahwa kunci tertinggi pada
silinder 1 adalah 250.
Indeks silinder
250 1-0 750 2-0 1500 3-0 …
25 1 25 ^ 70 2 70 ^ 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 15 20 22 25
2 28 38 41 55 57 65 70
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9
Pada penunjuk, masukan memiliki notasi x-y dengan x sebagai nomor silinder
dan y nomor track di mana indeks track untuk silinder tersebut disimpan. Dengan
demikian penunjuk 1-0 dapat diartikan sebagai track 0 pada silinder 1. Nilai penunjuk
yang berada pada indeks track penunjuk pada nomor track yang spesifik. Pada nilai
penunjuk tersebut nilai kunci tertinggi pada area primer sama dengan kunci tertinggi
pada area overflow karena sampai saat ini belum dilakukan penyisipan rekaman yang
dialokasikan pada area overflow. Simbol ^ pada penunjuk overflow mengindikasikan
bahwa tidak ada rekaman pada area overflow.
Pada saat melakukan penyisipan, urutan harus tetap dipertahankanuntuk
mempreservasi mekanisme pembacaan. Ini berarti pada saat penyisipan rekaman,
rekaman tersebut dialokasikan pada posisi yang tepat secara leksikografik. Mengingat
dimungkinkan untuk memiliki area overflow pada setiap track, maka tidak perlu
memindahkan rekaman-rekaman dengan jumlah yang melebihi jumlah rekaman
dalam sebuah track. Pada saat rekaman baru disisipkan pada sebuah track pada area
primer, terdapat kemungkinan bahwa rekaman tersebut menyebabkan terlemparnya
rekaman yang sudah berada pada area primer ke area overflow. Hal ini berarti
rekaman dengan kunci tertinggi pada area primer akan berubah, tetapi tidak demikian
halnya pada area overflow. Pada dasarnya, kunci tertinggi pada area overflow tidak
akan berubah kecuali bila dilakukan penyisipan pada akhir berkas. Pada kejadian
tersebut, kunci tertinggi yang berada pada indeks track, akan berubah.
Pada gambar 8.2, rekaman overflow dialokasikan pada track 9 pada lokasi yang
konsekutif. Pada umumnya rekaman overflow tidak bersifat konsekutif. Sebuah daftar
akan menghubungkan ruang yang masih kosong dalam area overflow saat rekaman
disisipkan maupun dihapus. Selang beberapa waktu, daftar tentang ruang yang masih
kosong tersebut tidak akan berisi penyimpanan dengan lokasi yang konsekutif.
B. PENYISIPAN REKAMAN
1. Menyisipkan rekaman dengan kunci 13 pada berkas gambar 8.2
Pertanyaan pertama yang harus dijawab adalah apakah rekaman tersebut
sudah ada dalam berkas, dan bila tidak dimanakah sebaiknya berkas tersebut
diletakkan? Langkah dimulai dari indeks silinder. Rekaman dengan kunci 13 harus
berada dalam silinder 1 mengingat rekaman tertinggi dalam silinder satu adalah
250 (13 lebih kecil dari 250). Langkah selanjutnya adalah mencermati track indeks
untuk silinder 1. Kunci rekaman yang akan disisipkan dibandingkan dengan kunci
tertinggi yang berada pada indeks track 0 silinder 1. Karena kunci rekaman yang
akan disisipkan < dari kunci rekaman tertinggi yang berada pada track 1 silinder 1,
maka rekaman baru tersebut harus diletakkan pada track 1 silinder 1. Rekaman-
rekaman pada area primer dibaca satu per satu untuk memastikan bahwa
rekaman dengan kunci 13 belum ada dalam track 1 tersebut. Untuk menyiapkan
rekaman dengan kunci 13 pada posisi yang sesuai, maka semua rekaman yang
ada pada posisi tersebut perlu dipindahkan. Pada contoh ini, maka rekaman baru
akan menempati posisi rekaman 15, sementara rekaman 15 dipindahkan
menggantikan posisi rekaman 20, dan rekaman 20 dipindah menggantikan posisi
rekaman 22, sedang rekaman 22 dipindah menggantikan posisi rekman 25.
Kemana rekaman 25 akan dipindahkan?
25 1 25 ^ 70 2 70 ^ 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 15 13 20 15 22 20 25 22
2 28 38 41 55 57 65 70
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^
22 1 25 9-1 70 2 70 ^ 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
2 28 38 41 55 57 65 70
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^
Indeks silinder
250 1-0 750 2-0 1500 3-0 …
22 1 25 9-1 70 2 70 ^ 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
27 28 38 41 55 57 65
2 28 38 41 55 57 65 70
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^ ^
Indeks silinder
250 1-0 750 2-0 1500 3-0 …
Indeks track (untuk silinder = 1)
Nomor track
22 1 25 9-1 65 2 70 9-2 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
2 27 28 38 41 55 57 65
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^ 70 ^
Indeks silinder
250 1-0 750 2-0 1500 3-0 …
22 1 25 9-1 65 2 70 9-2 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
26 27 28 38 41 55 57
2 27 28 38 41 55 57 65
3 73 75 77 79 80 83 85
1 2 3 4
9 25 ^ 70 ^
Indeks silinder
250 1-0 750 2-0 1500 3-0 …
Indeks track (untuk silinder = 1)
Nomor track
22 1 25 9-1 57 2 70 9-3 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
2 26 27 28 38 41 55 57
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^ 70 ^ 65 9-2
22 1 25 9-1 57 2 70 9-3 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
2 26 27 28 38 41 55 57
3 73 75 77 79 80 83 85
1 2 3 4
9 25 ^ 70 ^ 65 9-2
Pembahasan
Membaca berkas indeks secara sekuensial dilakukan dengan mengikuti
arahan yang diperoleh dari indeks untuk menentukan lokasi dari track satu ke track
berikutnya yang berada di area primer dan juga area overflow. Pembacaan tidak
dapat dilakukan dari rekaman pertama dari berkas dan diproses sesuai keinginan
sama seperti pembacaan pada berkas dengan organisasi sekuansial. Alasannya,
mungkin terdapat track yang tiba-tiba menyisip yang berisi informasi yang berada
di area overflow, atau informasi lain, ada kemungkinan dari berkas lain.
Indeks juga dibutuhkan untuk berpindah dari satu silinder ke silinder lain
karena silindar bisa saja secara fisik tidak berurutan. Dengan kata lain, bagaimana
indeks melakukan pengurutan terhadap berkas untuk pengolahan secara
sekuensial sangat berbeda terhadap berkas dengan organisasi sekuensial.
Untuk membaca satu rekaman secara langsung, proses yang dilakukan
sama seperti akan melakukan penyisipan. Pertama dilakukan pembacaan silinder
indeks untuk menentukan lokasi silinder yang benar tempat rekaman yang akan
dibaca tersebut disimpan, kalau memang rekaman tersebut ada di dalam berkas.
Masukan dalam indeks silinder member informasi tentang track indeks yang benar
tempat rekaman berada. Indeks track memiliki informasi tentang kunci rekaman
tertinggi yang berada pada area primer dan kunci rekaman tertinggi pada area
overflow. Bila kunci rekaman yang dicari lebih kecil dari kunci tertinggi dalam area
C. PENGHAPUSAN REKAMAN
Penghapusan rekaman pada berkas sekuensial berindeks dilakukan
bergantung apakah rekaman tersebut berada pada area primer ataukah pada area
overflow. Untuk rekaman yang berada pada area primer (missal menghapus 15),
penghapusan dilakukan secara langsung dan menggantinya dengan symbol
tombstone. Bila rekaman berada pada area overflow, maka penunjuk harus diatur
kembali sehingga rekaman sebelum rekaman yang dihapus mengarah pada rekaman
sesudah rekaman yang dihapus (missal menghapus 65).
Nomor track
22 1 25 9-1 57 2 70 9-4 85 3 85 ^
0
Penyimpanan Primer
1 7 9 12 13 15 20 22
2 26 27 28 38 41 55 57
3 73 75 77 79 80 83 85
Penyimpanan Overflow
1 2 3 4
9 25 ^ 70 ^ 65 9-2 58 9-3
Materi 9
MANAJEMEN KOLISI
Salah satu fungsi hash adalah akan mendistribusikan data secara merata ke
dalam berkas. Jika tujuan tersebut tidak tercapai, salah satu strategi yang bisa diambil
adalah mengkombinasikan beberapa fungsi sederhana dalam satu aplikasi.
Fungsi hash menghasilkan banyak kolisi atau sinonim dikatakan memiliki
kluster primer. Makin sedikit jumlah kolisi, makin baik fungsi hashing tersebut karena
makin sedikit waktu yang diperlukan rekaman yang diinginkan, dan juga akan
mempertahankan probe atau akses terhadap penyimpan agar mendekati satu.
Meminimalkan jumlah probe pembacaan rekaman merupakan isu yang sangat
penting mengingat berbagai aplikasi komersial pada umumnya memiliki volume data
yang sangat besar sehingga data tersebut harus disimpan di dalam penyimpanan luar
(auxiliary). Beberapa cara yang dapat ditempuh untuk mereduksi kolisi adalah
mengganti fungsi hashing, atau dengan mereduksi factor-packing. Factor-packing
suatu berkas adalah perbandingan (atau rasio) antara jumlah rekaman yang disimpan
dalam berkas dengan kapasitas berkas, atau dapat dinyatakan sebagai berikut:
Kolusi
Penyimpanan
r R1 s
s R2 t
t R3 ^
A. Coalesed-Hashing
Coalesed-Hashing adalah metode resolusi yang menggunakan penunjuk untuk
menghubungkan elemen-elemen dari sebuah rantai sinonim. Sebagai ilustrasi,
perhatikan gambar 9.1 yang memperlihatkan rekamaa-rekaman R1, R2, dan R3 yang
semuanya memiliki home-address r. R1 disisipkan pertama dan memperoleh lokasi
sebagai home-addressnya yaitu r. Pada saat menyisipkan R2, terjadilah kolusi karena
hasil fungsi dari R2 juga r. Hal tersebut mengisyaratkan agar R2 diletakkan pada lokasi
lain karena r sudah ditempati R1. Pada saat tersebut tersedia ruang di s, maka R2 akan
disisipkan pada lokasi tersebut dan penunjuk pada medan penguhubung r diatur agar
menunjuk ke s. Kolisi terjadi kembali pada saat R3 akan disisipkan. Rekaman R3
kemudian disisipkan pada ruang yang masih tersedia, yaitu t, dan penunjuk di medan
penghubung s diarahkan ke t, sementara medan penghubung t memiliki symbol ^
yang berarti akhir dari rantai sinonim akan dibaca sampai rekaman ditemukan atau
sampai terbaca akhir mata rantai sinonim.
Primer
Overflow
C. Progressive Overflow
Kerugian utama penggunaan coalesced-hashing adalah diperlukannya
penyimpanan tambahan untuk medan penghubung. Bila penyimpanan tambahan
tersebut tidak tersedia, maka penghubung yang sifatnya fisik tidak tersedia, sehingga
perlu dipertimbangkan teknik resolusi kolisi yang menggunakan konversi untuk
menentukan kemana selanjutnya rekaman harus dicari. Salah satu konversi yang
sederhana adalah penggunaan overflow yang progresif atau probing secara linier.
Sesuai namanya bila lokasi yang akan ditempati telah terisi, maka lokasi selanjutnya
dilihat apakah masih belum terisi. Secara progresif lokasi selanjutnya di overflow.
Pertanyaanya adalah, apa yang akan terjadi bila overflow dilakukan sampai pada
alamat tertinggi, atau akhir berkas?
Pertimbangan berkas memiliki struktur yang melingkar, dengan lokasi pertama
brada tepat sesudah lokasi terakhir. Pencarian dilanjutkan sampai ditemukan slot yang
kosong atau sampai ditemukan home-address rekaman untuk kedua-kalinya.
Menandakan bahwa berkas telah penuh. Untuk pembacaan kembali, dilakukan proses
yang sama. Dan bagaimana dengan pencarian yang tidak berhasil? Pencarian harus
terus dilakukan sampai dijumpai slot kosong atau alamat pencarian yang pertama.
Jelas bahwa algoritma untuk pencarian yang tidak berhasil memiliki kinerja yang tidak
bagus, tetapi algoritma tersebut sangat sederhana.
D. Penggunaan Buckets
Dalam diskusi mengenai prosedur resolusi kolisi, diasumsikan bahwa hanya
sebuah rekaman saja yang dapat disimpan pada sebuah alamat penyimpanan.
Jumlah pengaksesan dapat direduksi dengan meletakkan lebih dari satu rekaman
pada satu alamat penyimpanan. Kemungkinan tersebut dapat direalisir bila digunakan
sistem ‚buckets‛ (disebut juga ‚blok‛ atau ‚halaman‛). Jadi, bucket dapat didefinisikan
E. Pembagian Linier
Resolusi kolisi dengan teknik pembagian-linier merupakan varian dari
progressive-overflow. Kalau ada progressive-overflow inkremen untuk menuju ke lokasi
berikutnya adalah konstan (1=satu), maka pada pembagian-linier digunakan inkremen
yang bersifat variable. Tujuan inkremen yang variable adalah mereduksi pngklusteran
sekunder yang terjadi pada progressive-overflow sehingga jumlah probe untuk
pembacaan kembali juga berkurang.
Pengklusteran sekunder akan terjadi pada skema hashing dengan fungsi
inkremen yang berupa konstanta atau yang hanya bergantung pada home-address
rekaman. Dari semua metoda hashing yang telah dibahas, hanya progressive-overflow
yang memiliki kemungkinan terjadinya pengklusteran-skunder. Pada pembagian-linier,
inkremen merupakan fungsi dari kunci yang akan disisipkan. Fungsi tersebut dapat
juga disebut fungsi hashing lain karena fungsi tersebut digunakan untuk mengkonversi
kunci menjadi sebuah inkremen. Untuk alasan tersebut, maka pembagian-linier dapat
dikelompokkan sebagai metoda resolusi kolisi dengan hashing-ganda, mengingat
pertama dilakukan hash untuk menentukan home-address (menggunakan fungsi H1),
dan kedua untuk mendapatkan inkremen (menggunakan fungsi H2).
Terdapat dua alternatif bentuk H2, yaitu:
H2 = Pembagian (kunci/P) modulus P atau
H2’ = (kunci modulus (P-2) + 1
dengan P merupakan bilangan primer dari ukuran berkas. Kedua fungsi hashing akan
menghasilka variable inkremen dalam cakupan ruang alamat. Pertanyaan yang
muncul adalah fungsi hashing yang mana yang sebaiknya digunakan? Misalnya fungsi
hashing akan dieksekusi dengan menggunakan mesin, maka H2 memerlukan dua
buah operasi pembagian: pertama dalam pembagian, dan kedua dalam mencari
modusnya. Seperti diketahui, operasi pembagian merupakan operasi yang relatif
lambat. Sementara itu H2’ hanya memerlukan satu operasi pembagian, yaitu dalam
mencari modulusnya. Jadi, untuk praktisnya H2’-lah yang lebih baik untuk digunakan.
Akan tetapi, perlu diingat bahwa persamaan seperti H2’ sulit diselesaikan oleh
manusia. Dua hal yang saling bertentangan tersebut merupakan gambaran mengenai
perbedaan kemampuan yang dimiliki baik oleh manusia maupun komputer.
Untuk selanjutnya, dalam contoh-contoh akan digunakan fungsi hash H2.
Home-address untuk rekaman akan dihitung berdasar sisa hasil pembagian antara
R1
R2 Fungsi (R1)
Fungsi (R3)
R3
Materi 10
PENGURUTAN REKAMAN
Perhatikan bahwa rekaman kedua tertinggi yaitu dengan kunci 65 sudah berada
pada posisi yang tepat. Karena setiap satu putaran menempatkan satu elemen baru ke
dalam posisi yang tepat, maka sebuah berkas dengan n rekaman membutuhkan tidak
lebih dari n-1 putaran untuk menghasilkan berkas yang urut.
69 56 32 14 2
13 8 21 34 2 26
69 56 32 14 2
2 8 72 34 20 2
13
Materi 11
SORT DAN MERGE FILE
Contoh:
Sebuah file berisi 2000 record harus disortir ke dalam memori yang hanya dapat
menampung 5000 record sekaligus. Untuk itu digunakan metode sort eksternal.
Langkah-langkah penyortiran ini adalah:
1. Record-record dibagi ke dalam beberapa file agar dapat ditampung sekaligus di
memori komputer, lalu masing-masing bagian di sortir internal. Bagian-bagian
file yang telah tersortir ini disebut sorted sublist. Maka didapat:
Sorted sublist 1 (record 1-1000) dan
Sorted sublist 2 (record 1001-2000)
2. Setelah itu kedua sorted sublist ini (RUN) digabung (merge), sehingga didapat
berkas gabungan (merge file) yang record-recordnya telah disortir.
Merge List
Sorted sublist 1
(record 1-1000)
MERGE
(Sorted list of
record 1-2000)
Sorted sublist 2
(record 1001-2000)
Teknik sort/merge file ini berbeda satu dengan lainnya dalam hal:
Metode sort internal yang digunakan
Jumlah main memori yang digunakan untuk sort internal
Distribusi dari sorted sublist di secondary storge menjadi satu atau lebih file
gabungan dalam satu langkah gabungan (merge pass)
A. NATURAL MERGE
Merge yang menangani dua input file sekaligus disebut dua way natural merge,
merge yang menangani M input file sekaligus disebut M way natural merge. M
menunjuk derajat merge. M way natural merge dapat didefinisikan sebagai merge
dengan M input file dan hanya satu output file.
Contoh, sebuah file yang terdiri dari 6000 record hendak disortir ke dalam
memori komputer yang kapasitasnya 1000 record. Pada contoh ini, sebagai eksternal
storage digunakan tiga tape. Tape satu berisi tiga sorted sublist yaitu record 1-1000,
record 2001-3000 dan record 4001-5000. Sedangkan tape 2 berisi tiga sorted sublist
yang terdiri dari record 1001-2000, record 3001-4000 dan record 5001-6000. Dengan 2
way natural merge, dimana dua input file sekaligus digabung menjadi sebuah output
file di tape tiga.
Record 1-1000
Menjadi record 1-2000
Record 1001-2000
Record 4001-5000
Menjadi record 4001-6000
Record 5001-6000
Langkah selanjutnya, 1 dari 3 file digabung (record 1 – 2000) pada tape 3 ini disalin ke
tape 1. Pengerjaan seterusnya dapat dilihat pada gambar dibawah ini. Hasil akhirnya
adalah sebuah file gabungan berisi 6000 record yang telah terseortir di tape 3.
6 pengurutan
Tahap Pengurutan
subfile @ 1000
Internal
record
6000 record
3. Salah satu dari 3 hasil penggabungan sementara pada file 3 dipindah ke file 1
4. Tahap penggabungan kedua
1 Record 1-2000
Tahap
penggabungan
2
2 Record 1-6000
Record 2001-4000;
3 Record 4001-6000
B. BALANCED MERGE
Keperluan penggunaan tape pada natural merge dapat dikurangi dengan
menggunakan balanced merge. Pada balanced merge, tidak ada lagi langkah
pendistribusian hasil merge ke dalam beberapa tape. Berlainan dengan natural merge,
balanced merge pada awalnya ada keseimbangan antara input file dan output file,
walaupun pada akhirnya tidak ada lagi keseimbangan antara input dan output file.
Seperti halnya natural merge, balance merge juga ada beberapa cara yaitu 2
way balance merge, 3 way balance merge, dan M way balance merge. 2 way balance
merge berarti merge dengan 2 input file sekaligus dan hasilnya 2 output file. M way
balance merge berarti M input file dengan M output file
6 pengurutan
Tahap Pengurutan
subfile @ 1000
Internal
record
6000 record
3 Record 1-2000
Tahap
penggabungan Record 1-6000
1
2
Record 2001-4000;
4 Record 4001-6000
C. POLYPHASE MERGE
Kita telah lihat bahwa M way balance merge menggunakan 2 M file (M input file
dan M output file). Karena yang digunakan setiap saat hanya M file sebagai input dan
direkam ke sebuah file maka ada M-1 file yang nganggur (idle). Untuk itulah perbaikan
dari kelemahan ini diambil oleh poplyphase merge. Pada M way polyphase merge
digunakan 2M-1 input file dengan 1 output file sekaligus.
Tahap Pengurutan 1 Run 1; Run 6; Run 7; Run 10; Run 11; Run 12; Run 13
Internal
6000 record Run 2; Run 4; Run 14; Run 15; Run 16; Run 17
2
7 Run 1
Penggabungan 4 Run
4
6 Run 2 tahap 1
4 Run 3
Penggabungan tahap 2:
2 Run 2
Penggabungan 2 Run
3
3 Run 1 tahap 2
4 Run 4
Penggabungan tahap 3:
1 Run 1
Penggabungan 1 Run
2
2 Run 4 tahap 3
2 Run 3
1 Run 2
Penggabungan 1 Run
1
1 Run 3 tahap 4
1 Run 4
D. CASCADE MERGE
Jenis lain dari unbalanced merge yang berusaha mengurangi penyalinan dan
pembacaan record-record disebut cascade merge. Cascade merge dengan derajat M
menggunakan input file 2M-1, kemudian 2M-2 dan 2M-3, …, 2 input file selama tiap
tahap merge.
3 way cascade menggunakan 3 dan 2 input file selama tiap tahap merge.
Penggabungan tahap 1:
7 Run 1
Penggabungan 4 Run
4
6 Run 2 tahap 1 proses 1
4 Run 3
Penggabungan tahap 2:
1 Run 1
Penggabungan 1 Run
2
2 Run 3 tahap 2 proses 1
4 Run 4
1 Run 2
Penggabungan 1 Run
3
1 Run 1 tahap 3 proses 1
2 Run 4
Penggabungan tahap 4:
Materi 12
PENGENALAN KONTROL INPUT/OUTPUT
LABEL
TABLE OF CONTENTS
HEADER
FREE SPACE POINTERS
FILE – 1 CONTROL BLOCK
FILE – 2 CONTROL BLOCK
…..
FILE – N CONTROL BLOCK
B. KONTROL PERALATAN
Aktivitas input/output terutama mencakup perpindahan data antara memori
utama (main memori) dengan alat penyimpanan skunder atau alat input/output seperti
printer, terminal, dan card reader/punch.
Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang
berhubungan dengan I/O. Tetapi, tanggung jawab untuk kontrol peralatan diserahkan
pada prosesor I/O, yang dikenal sebagai saluran I/O. Saluran I/O itu sendiri merupakan
prosesor yang sudah diprogram. Program-program yang di execute ini disebut
channel program.
Channel program ini menentukan operasi yang diperlukan untuk akses
peralatan dan mengontrol jalur data (data pathway). Sistem operasi memberikan rutin
standard yang digunakan untuk menjalankan saluran I/O.
Aditional
Control Unit
Aditional DEVICE
Channels
DEVICE
CPU CONTROL
Main Memori CHANNEL UNIT DEVICE
DEVICE
C. MANAJEMEN SALURAN
Tujuan dari saluran I/O yang bertindak sebagai perantara antara CPU-memori
utama dengan unit pengontrol penyimpan. CPU berkomunikasi dengan saluran
melalui beberapa perintah yang sederhana. Beberapa saluran akan member perintah
seperti:
1. Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan
sedang sibuk.
2. Start I/O, pada peralatan tertentu.
3. Halt I/O, pada peralatan tertentu.
PROGRAM
BUFFER
6
1
8
7
ID CONTROLLER CHANNEL
CHANNEL
2 CONTROL
3 4 5
PROGRAM UNIT PROGRAM
D. MANAJEMEN BUFFER
1. Single Buffering
Gambar dibawah ini menunjukkan struktur data dari buffer dalam bentuk
yang sederhana, yang terdiri dari satu record perblok dan satu buffer per berkas,
dimana buffer ini berfungsi mengisikan permintaan dari sebuah program.
Struktur buffer ini berisi sebuah pointer pada alamat awal dan channel program
untuk berkas yang sedang dioperasikan.
BUFFER To start of channel
program
BUFFER
DATA AREA
2. Double Buffering
Untuk mengurangi kemungkinan dari program menunggu, double
buffering dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang
ditetapkan untuk berkas.
Ide dasar dari double buffering adalah jika consumer mengosongkan
salah satu buffer, maka producer dapat mengisikan ke dalam buffer yang lain,
pada saat buffer pertama sudah kosong, maka buffer yang kedua harus dalam
keadaan penuh. Kemudian consumer dapat mengosongkan buffer kedua, pada
saat producer mengisi buffer pertama, demikian seterusnya.
Struktur buffer untuk double buffering terdiri dari sebuah pointer yang
menunjuk ke buffer berikutnya. Pada gambar di bawah ini. Adanya printer ini
memungkinkan rutin producer dan consumer menjadi hal yang sangat umum.
Buffer 1 Buffer 2
Next Next
To start of channel
Chp Chp
Full-flag Full-flag program
Record-ctr Record-ctr
Buffer Buffer
Data area Data area