Sistem Berkas
I.
PENDAHULUAN
Data merupakan asset penting dalam organisasi. Berbagai pendapat yang berkaitan dengan sistem computer yang fontemporer adalah : perangkat keras memiliki umur yang singkat, perangkat lunak memiliki umur yang lebih panjang, sedangkan data memiliki umur yang paling panjang. Disk pada umumnya adalah peralatan yang diakses secara random yang memungkinkan pembacaan kembali sejumlah rekaman dengan waktu pembacaan yang tidak bergantung pada posisi dimana rekaman disimpan. Hal yang paling penting berkaitan dengan rekaman dan berkas adalah kinerja berkas. Pertama, bisa diasumsikan bahwa berkas memiliki sifat dinamis. Sekali berkas diciptakan, berkas tersebut akan di-update secara berkelanjutan; rekaman baru ditambahkan dan rekaman yang sudah ada dimodifikasi atau dihapus. Asumsi berikutnya adalah rekaman disimpan hanya dengan tujuan untuk dibaca kembali pada masa mendatang.
Pengertian Berkas dan Akses Sistem berkas atau pengarsipan adalah : Suatu sistem untuk mengetahui bagaimana cara menyimpan data dari suatu file tertentu dan organisasi file yang digunakan.
Sistem akses adalah : Cara untuk mengambil informasi dari suatu file.
Jadi pengarsipan dan akses adalah : “Cara untuk membentuk suatu arsip / file dan cara pencarian record-recordnya kembali.” 1
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
“Sistem berkas dan akses adalah sistem pengoperasian, pengelolaan dan penyimpanan data pada alat penyimpanan eksternal dengan organisasi file tertentu.” “Teknik yang digunakan untuk menggambarkan dan menyimpan record pada file disebut organisasi file.”
Pengarsipan dan akses berhubungan dengan : a. Insert
: Menyisipkan data baru atau tambahan kedalan tumpukan data lama.
b. Up-date
: Mengubah data lama dengan data baru, perubahan ini bias sebagian atau keseluruhan.
c. Reorganisasi : Penyusunan kembali record-record dari suatu file (untuk jumlah data tetap).
Algoritma Algoritma
untuk
pengolahan
data
selalu
dikaitkan
dengan
struktur
untuk
mengorganisasikan data. Terdapat dua bentuk algoritma, yaitu : bentuk kalimat-kalimat sederhana seperti resep masakan dalam buku-buku tata boga, dan yang kedua, dalam bentuk pseudo-code.
Contoh algoritma yang berbentuk kalimat untuk menghitung total bayar penjualan : 1. Mulai. 2. Definisi tipe-tipe data untuk ; H, J, dan Total = Integer. 3. Masukkan harga barang. 4. Masukkan jumlah barang. 5. Hitung Total = H x J. 6. Tampilkan Total Bayar. 7. Selesai.
2
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Contoh algoritma yang berbentuk pseudo-code dengan menggunakan pascal : Var H, J, Total : Integer; Begin Write (‘Masukkan Harga
:’); Readln (H);
Write (‘Masukkan Jumlah
:’); Readln (J);
Total := H*J; Write (‘Total Bayar
:’, Total);
Readln End.
Media Penyimpanan Agar suatu data dan berkas dapat diakses, maka dibutuhkan sebuah media penyimpanan. Media seperti pita magnetis hanya dapat digunakan secara sekuensial, sementara disk magnetis memiliki kemampuan akses baik secara sekuensial, random, maupun langsung. Teknologi media penyimpanan dapat dikelompokkan menjadi dua tipe, yaitu : 1. Penyimpanan primer ( primary memory / storage). 2. Penyimpanan pendukung ( auxiliary memory / storage) atau penyimpanan sekunder (secondary storage).
Ada beberapa faktor yang berkaitan dengan keberadaan tipe-tipe media penyimpanan, yaitu: Tidak semua informasi dapat ditampung dalam penyimpanan primer berkecepatan tinggi. Keterbatasan secara fisik dan ekonomi. •
Fisik
: besarnya kapasitas penyimpanan primer ditentukan oleh skema pengamatan oleh sistem komputer.
•
Ekonomis
: harga murah, tetapi masih belum menyamai penyimpanan sekunder.
3
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
•
Penyimpanan Primer
: akses sangat cepat, tetapi harga per bitnya jauh lebih mahal
dibandingkan
penyimpanan
sekunder
dan
kapasitasnya lebih kecil. •
Penyimpanan Sekunder : kecepatan akses lebih murah, kapasitas lebih besar tetapi lebih lambat.
1. Penyimpanan Primer
Penyimpanan primer biasanya diimplementasikan dengan menggunakan teknologi semikonduktor. Teknologi lain yang digunakan sebagai penyimpanan primer adalah komponen yang diberi muatan, seperti kapasitor. Property dari penyimpanan primer antara lain adalah dapat diakses dengan cepat, harga mahal, dan kapasitas yang kecil, namun penyimpanan primer memiliki keistimewaan yaitu, sembarang alamat dapat diakses dari sembarang alamat lainnya dalam waktu yang konstan.
2. Penyimpanan Sekunder
Akses terhadap informasi yang disimpan dalam penyimpanan primerbersifat elektronis dan terjadi hamir mendekati kecepatan sinar. Sementara itu, penyimpanan sekunder bersifat nonvolatile (tidak membutuhkan tenaga listrik) dan tetap menyimpan data meskipun computer dalam keadaan OFF.
Media penyimpanan ini dibedakan menjadi 3, yaitu : Mechanical Storage (penyimpanan mekanis). Magnetic Tape (tape magnetic). Magnetic Disk (disk magnetic).
Penyimpanan mekanis, jenisnya seperti punch card (Hollerith Card) dan paper tape. Teknologi card digunakan awal tahun 1890, digunakan untuk menyusun table dalam perhitungan komersil. Karakteristik dari penyimpanan mekanis adalah :
Penulisan data dilakukan pelubangan kartu untuk menyandikan satu karakter per kolom. 4
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Posisi card adalah 80 kolom dan 12 bit.
Paper tape digunakan untuk menyimpan pesan komunikasi dan untuk merekam baris data dari instrument pengukur.
Hanya sekali digunakan untuk perekaman data.
Secara ekonomis mahal.
Tape magnetic merupakan media penyimpanan utama pada pemakaian computer generasi pertama tahun 1950an. Media ini dibuat dari satu pita tape tipis dengan material lapisan magnetic yang sangat halus yang digunakan untuk merekam data analog atau data digital. Media ini digunakan untuk mengakses secara serial. Seperti pada kaset tape, informasi yang disimpan bisa diproses kembali atau diulang kembali setiap waktu, informasi tersebut juga dapat dihapus atau digunakan kembali. Karakteristik dari media ini adalah : 1. Lebar pita 0,5 inchi. 2. Tebal pitanya 0,15 inchi dengan panjang 300, 600, 1200, 2400 feet. 3. Kapasitas dinyatakan dengan bpi (bit per inchi) yang diukur setiap track.
Disk magnetic merupakan piranti masukkan / keluaranyang paling banyak digunakan saat ini. Kelebihan dari tape magnetic yang lain adalah mudah dipelihara, tidak terlalu sensitive serta organisasi file yang digunakan adalah organisasi langsung. Contoh, disket.
5
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
II. ORGANISASI FILE Pengertian Organisasi Berkas Organisasi berkas adalah teknik yang digunakan untuk menyimpan dan mengakses file/ berkas. Fungsi dari mengorganisasikan berkas adalah agar data yang disimpan dalam memori/ storage menjadi terstruktur sehingga efisien dan efektif bila dilakukan pengaksesan. System operasi menyediakan system berkas agar data mudah disimpan, diletakkan, dan diambil kembali dengan mudah. Terdapat dua masalah desain dalam membangun suatu system berkas, yaitu : Definisi dari system berkas, Mencakup definisi berkas dan atributnya, operasi ke berkas, dan struktur direktori dalam mengorganisasikan berkas-berkas. Membuat algoritma dan struktur data, Yang memetakan strukturlogikal system berkas ketempat penyimpanan sekunder.
Pada dasarnya system berkas tersusun atas beberapa tingkatan, yaitu (dari yang terendah) :
I/O Control, terdiri atas driver device dan interrupt handler. Driver device adalah
perantara komunikasi antara system operasi dengan perangkat keras.
Basic File System, diperlukan untuk mengeluarkan perintah generic ke device driver
untuk baca dan tulis pada suatu blok dalam disk.
File – Organization Module, informasi tentang alamat logika dan alamat fisik dari
system berkas tersebut. Modul ini juga mengatur sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat user ingin menulis berkas dalam disk.
Logical File System, tingkat ini berisi informasi tentang symbol nama berkas, struktur
dari direktori, dan proteksi dan sekuriti dari berkas.
6
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Application Program
Logical File System
File – Organization Module
Basic File System
I / O Control
Device
Asumsi Organisasi Berkas Dalam organisasi berkas, digunakan beberapa asumsi seperti : •
Divisualisasi sebagai array yang berisi data.
•
Memori berukuran P mempunyai nilai 0 … P-1, disajikan dengan M (0 … P-1).
•
Data yang disimpan berupa record dalam basis data.
•
Setiap record diwakili dengan kunci.
Aspek Organisasi Berkas Aspek dalam organisasi berkas terdiri dari : 1. Ukuran Memori, yaitu menentukan prediksi / perkiraan besarnya ukuran memori. 2. Metode
Simpanan,
metode
yang
digunakan
untuk
menyimpan
data
dalam
penyimpanan / storage. 3. Metode Cari, metode yang digunakan untuk mengakses data dalam storage.
7
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Penentuan Besar Memori Aspek organisasi berkas yang pertama adalah penentuan besar atau ukuran memori. Hal ini disebabkan agar ukuran memori yang digunakan atau disediakan oleh system menjadi efisien dan efektif. Kriteria yang harus diperhatikan adalah :
Banyak data yang harus disimpan diketahui/ diprediksi.
Penentuan ukuran memori jika dimisalkan banyak data yang disimpan adalah n maka : Wajib
:p>n
Pilihan
: - p bilangan prima terdekat dari n. - Faktor muatan yaitu : f = n/p, dengan n = volume data, p = volume memori.
Contoh : Jika terdapat 50 kursi, dengan penumpang 40, maka : F = n/p => 40/50 = 80%
1. Jika jumlah tiket yang terjual 30, sedangkan jumlah tiket yang disediakan 70, berapa % tiket tersebut terjual? 2. Suatu flash disk telah digunakan sebanyak 30% dari kapasitas sebesar 256. 3. Berapa besar kapasitas sebuah pesawat terbang apabila jumlah penumpang 81 orang, merupakan 75% dari kapasitas yang seharusnya. 4. Berapa % tempat yang digunakan untuk beasiswa, dimana sudah 215 orang yang mendaftar, sedangkan beasiswa digunakan untuk 264 orang.
8
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
III. BERKAS SECARA SEKUENSIAL Berkas Sekuensial Penyimpanan berkas secara sekuensial dilakukan secara berurutan. Data yang disimpan, diurutkan berdasarkan urutan pemasukan data (urut berdasarkan nomor record). Melakukan akses secara sekuensial, berarti proses akan berpindah dari satu record ke record berikutnya secara langsung. Dalam berkas sekuensial, rekaman yang ke i + 1 akan diletakkan tepat sesudah rekaman ke i, sebagai contoh : 1
2
3
…...
i
i+1
i+2
……..
n+1
n
Gambar 3.1. Susunan berkas sekuensial
Berikut ini merupakan contoh penyimpanan dan pengaksesan berkas sekuensial, dengan mengambil contoh nama mahasiswa, nim dan jurusan masing-masing.
Tabel 3.1. Berkas mahasiswa Nama
Nim
Jurusan
Mieke
0124
Sistem Informasi
Indra P.
0110
Teknik Informatika
Yuliana
0134
Teknik Informatika
Ardhi
0257
Sistem Informasi
Mira
0549
Teknik Informatika
Dian W.
0212
Sistem Informasi
Angky
0145
Sistem Informasi
Bila diinginkan nama mahasiswa Yuliana untuk ditampilkan, maka sistem akan membaca rekaman dengan nama mahasiswa = Yuliana. Maka diperlukan probe (akses terhadap lokasi yang berbeda) sejumlah 3 kali. Dalam metode sekuensial, agar kinerja pembacaan rekaman lebih baik, maka rekamanrekaman tersebut harus diurutkan berdasrkan kunci tertentu. Dalam contoh ini, yang 9
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
digunakan dalam bentuk pengurutan adalah nim. Karena nim bersifat unik. Sehingga tabel mahasiswa menjadi :
Tabel 3.2. Berkas mahasiswa urut Nama
Nim
Jurusan
Indra P.
0110
Teknik Informatika
Mieke
0124
Sistem Informasi
Yuliana
0134
Teknik Informatika
Angky
0145
Sistem Informasi
Dian W.
0212
Sistem Informasi
Ardhi
0257
Sistem Informasi
Mira
0549
Teknik Informatika
Dari tabel 3.2 terlihat bahwa data telah diurutkan dari kecil ke besar berdasarkan nim. Dengan demikian, hanya n/2 rekaman yang perlu diperiksa untuk menentukan rekaman yang diinginkan. Karena kalau pembacaan diteruskan sampai melewati posisi dimana rekaman seharusnya berlokasi (karena sudah diurutkan), maka proses pencarian dihentikan. Namun teknik ini dirasa kurang memuaskan, untuk berkas dengan jumlah rekaman yang sangat besar.
Pencarian Biner Jumlah probe (yang diperlukan untuk membaca sebuah rekaman) pada sebuah berkas dengan rekaman yang sudah diurutkan, dapat diperkecil dengan menggunakan teknik pencarian biner. Jika kunci
cari <
kunci tengah, maka bagian berkas dimulai dari kunci
dieliminasi. Sebaiknya, jika kunci sampai dengan kunci
tengah
cari
> kunci
tengah,
tengah
sampai akhir berkas
maka bagian berkas dimulai dari depan
dieliminasi. Dengan mengulang proses perbandingan terhadap
rekaman tengah, maka lokasi rekaman yang diinginkan akan ditemukan atau diketahui bahwa rekaman yang diinginkan tersebut tidak berada dalam berkas.
10
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Pencarian Interpolasi Berbeda dengan pencarian biner yang memilih posisi rekaman yang akan diperbandingkan berikutnya sebagai tepat berada di tengah sisa berkas yang belum diperiksa, pencarian interpolasi menentukan posisi yang akan diperbandingkan berikutnya berdasarkan posisi yang diestimasi dari sisa rekaman yang belum diperiksa. Pencarian interpolasi tidak mencari posisi TENGAH, namun menentukan posisi berikutnya. Meskipun pencarian interpolasi memiliki kerumitan dalam perhitungan, namun pencarian interpolasi memiliki unjuk kerja yang baik untuk rekaman-rekaman yang memiliki kunci yang mendekati seragam.
Latihan Soal 1. Simpanlah data 40, 5, 20, 50, 100 berikut ini ke dalam memori komputer. 2. Carilah data 40, 50, dan 100 dengan menggunakan metode sekuensial serta hitung pula rata-ratanya. 3. Carilah data 40, 50, dan 100 dengan menggunakan metode biner serta hitung pula rataratanya. 4. Carilah data 40, 50, dan 100 dengan menggunakan metode interpolasi serta hitung pula rata-ratanya.
Jawaban no. 1
Seperti yang telah dijelaskan pada awal pembahasan bab 3, data 40, 5, 20, 50, dan 100 disimpan ke dalam memori komputer secara berurutan/sekuensial (gambar 3.1) sehingga, dalam visualisasi komputer menjadi : 40
5
20
50
Sebelum diurutkan
100
5
20
40
50
100
Setelah diurutkan
Untuk menjawab soal no 2, 3 dan 4, maka yang digunakan adalah tabel setelah diurutkan. Sehingga visualisasi tabel menjadi seperti di bawah ini (Anda boleh menggunakan visualisasi memori secara horisontal atau vertikal), dengan address dimulai dari 0!.
11
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Data
5
0
20
1
40
2
50
3
100
4
Address dimulai dari 0
Jawaban no. 2 (Metode Sekuensial) Data
40
50
100
Langkah
Address
Data M
Data : M
(Address)
(Address)
Keterangan
1
0
5
>
40 : 5
>
2
1
20
>
40 : 20
>
3
2
40
=
40 : 40
=
1
0
5
>
50 : 5
>
2
1
20
>
50 : 20
>
3
2
40
>
50 : 40
>
4
3
50
=
50 : 50
=
1
0
5
>
100 : 5
>
2
1
20
>
100 : 20
>
3
2
40
>
100 : 40
>
4
3
50
>
100 : 50
>
5
4
100
=
100 : 100
=
Rata-rata = langkah 40 + langkah 50 + langkah 60 3 =3+4+5
= 4 langkah.
3
12
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Jawaban no. 3 (Metode Biner) Data
Langkah
Lower
Upper
M (t)
Data : M
Keterangan
(Address)
40
1
0
4
40
=
40 : 40
=
50
1
0
4
40
>
50 : 40
>
2
2 + 1= 3
4
50
=
50 : 50
=
1
0
4
40
>
100 : 40
>
2
2+1=3
4
50
>
100 : 50
>
3
3+1=4
4
100
=
100 : 100
=
100
Rata-rata = 1 + 2 + 3
= 2 langkah.
3 Keterangan :
1. Lower adalah address/alamat terendah dalam memori. 2. Upper adalah address/alamat tertinggi dalam memori. 3. Tengah adalah alamat tengah dalam memori, diperoleh dari Lower + Upper. 2 4. Jawaban di atas menggunakan pembulatan ke bawah/ round down, tapi bisa juga menggunakan pembulatan ke atas/ round up (tergantung konsekuensi Anda!!). 5. Untuk mempermudah dalam pencarian, ingatlah dengan aturan pencarian biner pada subbab 3.2, yaitu mengeliminasi kunci-kunci yang tidak terpakai, terutama untuk menentukan kunci lower, upper dan tengah.
13
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Contoh : Untuk mencari 50, mengapa lower yang ditambah 1 ( 2 + 1 = 3 ) ?
5
0
Agar tidak membingungkan, maka address 0 dan 1 dieliminasi atau
20
1
tidak diperhatikan, sehingga kunci tengah ( 2 ) menjadi lower dengan
40
2
ditambah 1.
50
3
100
4
Setelah ditemukan kunci tengah adalah pada address 2, maka untuk mendekati data 50, address harus digeser ke atas (karena 50 terletak pada address 3). Sehingga upper tetap 4
sedangkan lower adalah berasal dari kunci tengah ( 2 ) ditambah 1 (ditambah 1 atau dikurangi 1, sebab metode simpan menggunakan sekuensial).
Jawaban no. 4 (Metode Interpolasi) Data
Langkah
Lower
Upper
Tengah
M (t)
Data : M (t)
40
1
0
4
0 + (40 – 5) * (4 – 0) = 1,5 = 2
40
=
40
>
50
=
100
=
(100 – 5)
50
1
0
4
0 + (50 – 5) * (4 – 0) = 1,9 = 2 (100 – 5)
2
2+ 1= 3
4
3 + (50 – 5) * (4 – 3) = 3 (100 – 5)
100
1
0
4
0 + (100 – 5) * (4 – 0) = 4 (100 – 5)
Rata-rata = 1 + 2 + 1
= 1,3 langkah.
3
14
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Keterangan :
1. Tengah = lower + ( data – M ( lower )) * ( upper – lower ) M ( upper ) – M (lower ) 2. Pembulatan yang digunakan untuk jawaban tersebut adalah pembulatan ke atas.
Soal 1. Simpanlah data 56, 5, 76, 11, 34, 37, 98, 2, 84, 7, 101, 63 berikut ini ke dalam memori komputer. 2. Carilah data 101, 5, dan 11 dengan menggunakan metode sekuensial serta hitung pula rata-ratanya!. 3. Carilah data 101, 5, dan 11 dengan menggunakan metode biner serta hitung pula rataratanya!. 4. Carilah data 101, 5, dan 11 dengan menggunakan metode interpolasi serta hitung pula rata-ratanya!.
15
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
IV. ORGANISASI BERKAS LANGSUNG Metode
pencarian
ketidaksabaran
biner
manusia
maupun terhadap
interpolasi penyediaan
masih
belum
informasi
yang
dapat cepat
mengimbangi dan
akurat.
Perkembangan media perekaman data yang dapat menampung volume data dalam jumlah yang besar harus diimbangi dengan peningkatan teknik pencarian kembali data yang tersimpan. Dalam bab ini akan membahas menganai berbagai teknik yang digunakan untuk merancang suatu sistem yang berhubungan dengan penentuan lokasi rekaman yang akan disimpan serta pembacaan kembali rekaman tersebut.
Kunci Sebagai Alat Rekaman yang Unik Untuk mendapatkan rekaman yang diasosiasikan dengan suatu kunci primer, sangat diharapkan agar proses langsung menuju ke alamat tempat rekaman dengan kunci tertentu disimpan. Hal tersebut hanya mungkin terjadi bila kunci rekaman juga merupakan alat lokasi rekaman. Keuntungan dari sistem ini adalah waktu yang dibutuhkan untuk mencari data menjadi cepat, namun kerugiannya volume ruang penyimpanan yang dibutuhkan sangat besar. Hal ini terjadi karena harus tersedia 1 lokasi untuk setiap kemungkinan rekaman kunci.
Menentukan Alamat dengan Konversi Kunci Salah satu usaha yang dilakukan dalam meningkatkan kinerja dalam mengantisipasi kerugian yang ditimbulkan oleh subbab 4.1 adalah dengan melakukan konversi terhadap kunci rekaman menjadi satu alamat yang unik (Wahyuni, 2005). Tidak sebanding antara kunci actual dengan jumlah ruang kunci yang harus disediakan, merupakan alasan untuk menilai bahwa subbab 4.1 tidak efisien, sehingga diperlukan sebuah fungsi untuk mengatasi keadaan tersebut. Fungsi ini diberi nama fungsi hash. Keluaran dari fungsi hashing bukan lagi alamat yang unik, melainkan kemungkinan bagi alamat yang di hash. Alamat untuk menempatkan rekaman yang diperoleh dari fungsi hash
16
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
disebut home address. Diharapkan fungsi tersebut menghasilkan kemungkinan alamat yang: 1. Mampu mendistribusikan kunci secara merata ke dalam cakupan alamat. Maksud dari pendistribusian dalah untuk mengurangi terjadinya kolisi (tabrakan) yang disebabkan hasil hashing dua kunci rekaman yang berbeda menunjukkan alamat yang sama persis. 2. Dapat dieksekusi dengan efisien, dimaksudkan agar waktu pembacaan menjadi ditekan seminimal mungkin.
Dalam bab ini diasumsikan bahwa satu lokasi memiliki kapasitas satu rekaman. Sedangkan untuk mekanisme resolusi kolisi (untuk mencegah terjadinya kolisi) akan dibahas pada bab tersendiri. Berikut ini beberapa fungsi hash, dimulai dari yang paling sering digunakan :
a. Hashing dengan kunci modulus N F ( kunci ) = kunci mod N Fungsi ini merupakan fungsi yang paling popular dan peling sering digunakan. Pada rumus tersebut, N merupakan ukuran table atau berkas. Hasil fungsi modulus adalah sisa pembagian kunci dengan N. Keuntungan fungsi ini adalah hanya menghasilkan nilai dalam rentang ruang alamat 0 sampai dengan N-1.
b. Hashing dengan kunci modulus P F ( kunci ) = kunci mod P Fungsi hashing ini merupakan variasi dari fungsi hashing kunci modulus N, dengan P merupakan bilangan prima terkecil yang lebih besar atau sama dengan N, dan N adalah ukuran table. P ini kemudian akan menggantikan n sebagai ukuran table yang baru.
c. Hashing dengan pemotongan Hashing dengan pemotongan tidak mempunyai rumus yang pasti, pemotongan
dilakukan pada bagian yang memiliki kemiripan saja. Dimisalkan nim seseorang yang terdiri dari 8 digit dengan 4 digit pertama menunjukkan jurusan dan tahun akademik, 17
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
sedangkan 4 digit terakhir adalah nomor yang membedakan mahasiswa yang satu dengan mahasiswa yang lain. Maka akan lebih midah untuk menjadi kunci hashing pemotongan adalah bila dari digit tersebut yang dipotong adalah 4 digit pertama, sebab kemungkinan kemiripannya lebih besar daripada 4 digit terakhir.
Contoh Soal 1. Berapa N bila 25 mod N = 1 ? Diperoleh dari 25 dibagi 24 menghasilkan 1 dengan sisa 1. 2. Berapa N bila 30 mod N = 2 ? Diperoleh dari 30 dibagi 14 menghasilkan 2 dengan sisa 2. 3. Berapakah hasil dari 100 mod 9 ? Diperoleh dari 100 dibagi 9 menghasilkan 11 dengan sisa 1. 4. Berapakah hasil dari 5 mod 2 ? Diperoleh dari 5 dibagi 2 menghasilkan 2 dengan sisa 1. 5. Bila N = 21, maka 30 mod P = ? Diperoleh dari 30 dibagi 21 menghasilkan 1 dengan sisa 9. 6. Bila N = 5, maka 25 mod P = ? Diperoleh dari 25 dibagi 5 menghasilkan 5 dengan sisa 0.
18
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
V. MANAJEMEN KOLISI Latar Belakang Mekanisme manajemen kolisi diperlukan untuk mengatasi terjadinya jumlah rekaman yang dikonversikan ke suatu lokasi melebihi kapasitasnya. Fungsi hash seperti yang telah dijelaskan pada bab sebelumnya adalah mendistribusikan data secara merata ke dalam berkas. Jika tujuan tersebut tidak tercapai maka strategi yang digunakan adalah mengkombinasikan beberapa fungsi sederhana dalam satu aplikasi. Fungsi hash menurut Wahyuni (2005) yang menghasilkan banyak kolisi dikatakan sebagai memiliki kluster primer. Makin sedikit kolisi maka semakin sedikit waktu yang diperlukan untuk mengakses tempat-tempat yang berbeda (probe menjadi sedikit). Beberapa cara untuk mereduksi kolisi adalah dengan mengganti fungsi hashing atau dengan mereduksi packing factor (faktor muatan). Rumus faktor muatan telah dijelaskan pada subbab pada bab 2.
Resolusi Kolisi Merubah fungsi hashing atau mengurangi faktor muatan akan dapat mengurangi jumlah kolisi tapi tidak akan mengeliminasi kolisi (Wahyuni,2005). Tujuan utama dari resolusi kolisi adalah menempatkan rekaman sinonim pada suatu lakasi yang membutuhkan probe tambahan yang minimum dari home address rekaman tersebut. Penyelesaian yang dilakukan bila terjadi kolisi adalah memberikan penunjuk pada lokasi rekaman yang sinonim. Bila terjadi sinonim jamak pada satu home address tertentu, akan dibentuk rantai rekaman sinonim.
Coalesced Hashing Adalah metode resolusi yang menggunakan penunjuk untuk menghubungkan elemenelemen dari sebuah rantai sinonim. Algoritma yang digunakan adalah :
19
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
1. Lakukan hashing pada semua kunci rekaman yang akan disisipkan untuk mendapatkan home address atau calon address yang mungkin untuk ditempati oleh rekaman-rekaman
tersebut. 2. Jika home address kosong, sisipkan rekaman pada lokasi tersebut, jika rekaman ternyata kembar akhiri program dengan pesan "rekaman kembar”, jika tidak ; a. Cari lokasi terakhir rantai sinonim dengan mengikuti penunjuk pada medan penghubung sampai menemukan simbol ^ yang menandakan akhir dari rantai. b. Cari lokasi paling bawah dalam berkas (atau yang memiliki alamat paling besar). Jika tidak ditemukan, akhiri program dengan pesan "Berkas Penuh". c. Sisipkan rekaman ke dalam lokasi yang kosong yang teridentifikasi dan atur medanpenghubung rekaman terakhir dalam rantai-sinonim agar menunjuk ke lokasi rekaman yang baru saja disisipkan.
Contoh :
Akan dilakukan penyisipan rekaman-rekaman dengan kunci 38. 51. 40. 61, 83. 24 dan 60 ke dalam berkas dengan kapasitas 11, maka :
Tabel 5.1. Coalesced Hashing Kunci
Kunci mod 11
38
38 mod 11 = 5
51
51 mod 11 = 7
40
40 mod 11 = 7
61
61 mod 11 = 6
83
83 mod 11 = 6
24
24 mod 11 = 2
60
60 mod 11 = 5
20
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Tabel 5.2. Langkah Kerja Metode Coalesced Hashing
Berkas Kosong Almt
Rekam
Penyisipan 38
Penghub
Almt
^
0
^
3
^
4
^
5
5
^
6
^
8 9
^
10
^
Rekam
^
0
^
1
^
2
^
3
^
4 5
38
51
10 ^
8 9 10
^ ^
6 7
Penghub
40
7
^
8
38
^ 51
Rekam
^ ^
10
^
1
^
2
^
3
^
4 5 6 7
38
^
61
^
51
10 ^
8
^
9
^
10
Penghub ^
0
40
^ ^
Penyisipan 61 Almt
^
9
^
10
^
8
^
9
^
6
^
Penyisipan 40 Almt
5
^
7
^
4
^
6
^
7
38
^
3
^
4
Penghub ^
2
^
3
Rekam
1
^
2
Almt 0
^
1
^
2
Penghub ^
0
^
1
Rekam
Penyisipan 51
Penyisipan 83 Almt
Rekam
^
0
^
1
^
2
^
3
^
4 5 6 7
Penghub
38
^
61
9
51
10 ^
8
^
9
83
^
^
10
40
^
21
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Penyisipan 24 Almt
Rekam
Penghub ^
0
^
1
24
2
^ ^
3
^
4 5 6 7
38
^
61
9
51
10 ^
8 9
83
^
10
40
^
Penyisipan 60 Almt
Rekam
^
0
^
1 2
24
^
4
6 7 8 9 10
^ ^
3
5
Penghub
38
8
61
9
51
10
60
^
83
^
40
^
Rata-rata = ( 1 + 1 + 2 + 1 + 2 + 1 + 2 ) / 7 = 1,4
Keterangan :
1. Rekaman dengan kunci 38, kunci 51, kunci 61, kunci 24 langsung, ditempatkan di alamat 5, 7, 6 dan 2 sesuai dengan home addressnya. 2. Rekaman dengan kunci 40 tidak dapat ditempatkan di alamat 7 sebab alamat tersebut sudah terisi dengan kunci 51. Lokasi yang masih kosong dengan alamat terbesarlah yang diisi terlebih dahulu, sehingga 40 ditempatkan pada alamat 10. Penunjuk pada medan penghubung yang berada di alamat 7 ditujukan ke 10.
Progressive Overflow Kerugian penggunaan coalesced-hashing adalah diperlukannya penyimpan tambahan untuk medan-penghubung. Bila penyimpan, tambahan tersebut tidak tersedia, maka penghubung yang sifatnya fisik tidak dapat disediakan, sehingga perlu dipertimbangkan teknik resolusi kolisi yang menggunakan suatu bentuk untuk menentukan kemana selanjutnya rekaman harus dicari. 22
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Progressive overflow adalah menentukan lokasi di memori dengan melihat apakah lokasi
yang dituju sudah ditempati atau belum. Bila sudah maka dilihat lokasi selanjutnya apakah masih kosong/terisi, hal ini dilakukan terus menerus sampai diperoleh lokasi kosong untuk menempatkan rekaman. Progressive overflow menggunakan home address untuk menempatkan kunci ke dalam
memori. Fungsi hash yang digunakan : Hash (x) = x mod p Dengan x adalah kunci, sedangkan p adalah bilangan prima terdekat dari x.
Contoh :
Akan dilakukan penyisipan rekaman-rekaman dengan kunci 38, 51, 40, 61, 83, 24 dan 60 ke dalam berkas dengan kapasitas 11, maka penyelesaiannya menggunakan metode progressive overflow sehingga ditentukan dahulu fungsi hashnya :
Tabel 5.3. Progressive Overflow Kunci
Kunci mod 11
38
38 mod 11 = 5
51
51 mod 11 = 7
40
40 mod 11 = 7
61
61 mod 11 = 6
83
83 mod 11 = 6
24
24 mod 11 = 2
60
60 mod 11 = 5
23
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Tabel 5.4. Langkah Kerja Metode Progressive Overflow
Sisip 38 Almt
Sisip 51
Kunci
Almt
Sisip 40
Kunci
Almt
Sisip 61
Kunci
Almt
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
5
38
5
38
5
38
5
6
6
6
6
7
7
8
8
8
9
9
9
9
10
10
10
10
Sisip 83
Sisip 24
Almt
Kunci
51
7
Almt
Kunci
51
7
40
8
Almt
0
0
1
1
1
2
2
3
3
3
4
4
4
5
38
6
61
7
51
8 9 10
40 83
5 6 7 8 9
38 61 51 40 83
10
38 61 51 40
Sisip 60
0
24
Kunci
2
5 6 7 8
Kunci
24
38 61 51 40
9
83
10
60
Rata-rata = ( 1 + 1 + 2 + 1 + 4 + 1 + 6 ) / 7 = 2,3 24
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Keterangan :
1. Rekaman dengan kunci 38, kunci 51, kunci 61, kunci 24 langsung di tempatkan di alamat 5, 7, 6 dan 2 sesuai dengan home addressnya. 2. Rekaman dengan kunci 40 tidak dapat ditempatkan di alamat 7 sebab alamat tersebut sudah terisi dengan kunci 51. Lokasi yang masih kosong diperoleh dengan menggunakan increament 1 (menaik 1). Lokasi 8 masih kosong sehingga 40 ditempatkan di alamat tersebut. Begitu pula dengan kunci 83 dan 60.
Pembagian Linier Pembagian Linier atau Linies Quotient adalah merupakan varian dari Progressive Overflow. Untuk Progressive Overflow bisa inkremennya konstan yaitu 1 sedangkan pada
pembagian linier inkremennya bersifat variabel. Hal ini bertujuan untuk mengurangi probe. Fungsi hash yang digunakan adalah : incr (x) = x div p
Tabel 5.5. Linier Quotient Kunci
Kunci mod 11
Kunci div 11
38
38 mod 11 = 5
38 div 11 = 3
51
51 mod 11 = 7
51 div 11 = 4
40
40 mod 11 = 7
40 div 11 = 3
61
61 mod 11 = 6
61 div 11 = 5
83
83 mod 11 = 6
83 div 11 = 7
24
24 mod 11 = 2
24 div 11 = 2
60
60 mod 11 = 5
60 div 11 = 5
25
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Tabel 5.6. Langkah Kerja Metode Linier Quotient
Sisip 38 Almt
Sisip 51
Kunci
Almt
Sisip 40
Kunci
Almt
Sisip 61
Kunci
Almt
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
5
38
5
38
5
38
5
6
6
6
6
7
7
8
8
8
8
9
9
9
9
10
10
10
Sisip 83
Sisip 24
Almt
Kunci
51
7
Almt
Kunci
51
7
40
10
Almt
0
0
1
1
1
83
2
3
3
4
4
5
38
6
61
7
51
5 6 7
83
2
40
3
24 38 61 51
4 5 6 7
24 38 61 51
8
9
9
9
60
10
40
10
51
83
8
40
61
Kunci
8
10
38
Sisip 60
0
2
Kunci
40
Rata-rata = ( 1 + 1 + 2 + 1 + 2 + 2 + 4 ) / 7 = 1,9 26
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Keterangan :
1. Rekaman dengan kunci 38, kunci 51, kunci 61 langsung di tempatkan di alamat 5, 7 dan 6 sesuai dengan home addressnya. 2. Rekaman dengan kunci 40 tidak dapat ditempatkan di alamat 7 sebab alamat tersebut sudah terisi dengan kunci 51. Untuk mencari lokasi yang kosong gunakan rumus incr (x), sehingga lokasi yang kosong ditentukan dengan kenaikan ( increment ) dari fungsi hash (x) sebanyak 3 kenaikan, maka Iokasi yang tepat untuk kunci 40 adalah alamat 10.
Begitu pula dengan kunci 83 dan 60.
Soal 1. Sisipkan data dengan menggunakan kunci sebagai berikut 27, 18, 29, 23, 39, 13, 16, 42 dan 17 dengan menggunakan Coalesced Hashing, Progressive Overflow dan Linier Quotient !
2. Tentukan rata-rata probenya untuk nornor 1 !. 3. Diantara ketiga metode probe milik metode yang manakah yang paling sedikit? Mengapa?
27
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
VI. ORGANISASI BERKAS SEKUENSIAL BERINDEKS Pendahuluan Berkas sekuensial berindeks, menurut Wahyuni (2005) mempunyai 2 sifat, yaitu : (1) memiliki indeks terhadap berkas sehingga menghasilkan pengaksesan random yang lebih baik dan (2) area overflow untuk menyediakan ruang bila dilakukan penambahan rekaman ke dalam berkas. Hariyanto (2003) mengatakan, bahwa komponen pembentuk file sekuensial berindeks ada 3, yaitu : (1) file utama yang berisi data, (2) indeks, dan (3) overflow. Keunggulan dari file sekuensial berindeks adalah file dapat diproses secara sekuen maupun langsung secara efisien.
Struktur Dasar Pada umumnya rekaman yang akan disimpan mempunyai volume yang besar daripada penyimpanan primer sehingga diperlukan penyimpan sekunder seperti disk. Struktur dasar pengamatan dengan menggunakan track sebagai unit terkecil untuk mengelompokkan informasi. Unit berikutnya dalah silinder, kemudian tercapai unit tambahan yaitu indeks. Metode yang digunakan adalah ISAM atau Indexed Sequential Access Methods. Contoh berikut akan memberikan gambaran cara penyimpanan berkas sequensial berindeks. Terdapat 3 buah silinder yaitu, silinder 1, silinder 2, dan silinder 3. kunci tertinggi terletak pada silinder 1, yaitu 250. Ilustrasinya adalah sebagai berikut : Kunci tertinggi pada silinder 1
Silinder 1
Silinder 2
Silinder 3
Indeks silinder
250
250
250
250
250
250
Indeks track (untuk silinder = 1)
28
Prind Triajeng Pungkasanti, S.Kom.
Sistem Berkas
Nomor track
0
25
1
7
2 3
1
^
70
9
12
15
28
38
41
73
75
77
25
2
^
85
20
22
25
55
57
65
70
79
80
83
85
70
3
85
Penyimpanan overflow 1
2
3
4
9 Gambar 6.1. Struktur awal berkas sekuensial berindeks
Keterangan : 1-0 menunjukkan notasi x-y, dengan x adalah nomor silinder sedangkan y adalah nomor track . Sehingga 1-0 diartikan sebagai track 0 pada silinder 1. Pada saat ini nilai kunci
tertinggi pada area primer sama dengan kunci tertinggi pada area overflow, sebab belum dilakukan penyisipan rekaman yang dialokasikan pada area overflow. Simbol ^ pada penunjuk overflow mengindikasi bahwa tidak ada rekaman dalam area overflow.
Penyimpanan Rekaman Pada saat melakukan penyisipan, urutan harus tetap dipertahankan untuk mempertahankan mekanisme pembacaan. Hal ini berarti pada saat menyisipkan rekaman, rekaman tersebut dialokasikan pada posisi yang tepat. Pada gambar 6.1 rekaman overflow dialokasikan pada track 9. untuk memperjelas penjelasan di atas, lakukan penyisipan rekaman dengan kunci
13 pada struktur awal gambar 6.1.
29
Prind Triajeng Pungkasanti, S.Kom.
^