12 0 273 KB
MAKALAH SISTEM BERKAS ORGANISASI BERKAS RELATIF
KELOMPOK 3:
FARHAN SYAH RIDOTILLAH FATHONI YAHYA GAGAS CAHYA GUMELAR HARI WIDODO
191011401057 191011401094 191011401025 191011401072
Fakultas Teknik – Teknik Informatika
Universitas Pamulang Jl. Raya Puspitek, Buaran, Kec. Pamulang, Kota Tangerang Selatan, Banten
i
DAFTAR ISI DAFTAR ISI.............................................................................................................................................1 BAB I......................................................................................................................................................2 Pendahuluan.........................................................................................................................................2 A. Latar belakang.............................................................................................................................2 BAB II.....................................................................................................................................................3 ISI...........................................................................................................................................................3 a.
PENGERTIAN BERKAS RELATIF...............................................................................................3
b.
PENGERTIAN COLLISION........................................................................................................5
c.
PENDEKATAN TERHADAP MASALAH COLLISION DALAM SISTEM BERKAS.............................5
d.
Synonim Chaining..................................................................................................................8
f.
Perbandingan antara metode chaining dan open addressing..............................................13
g.
Keuntungan dan kerugian dari sebuah hashing...................................................................15
BAB III..................................................................................................................................................18 Penutup...............................................................................................................................................18 DAFTAR PUSTAKA................................................................................................................................19
1
BAB I Pendahuluan A. Latar belakang Kemajuan Teknologi Informasi (TI) saat ini berkembang sangat pesat sesuai dengan tuntutan zaman yang membutuhkan kemudahan-kemudahan dalam menjalankan aktivitas kehidupan, termasuk akses untuk mendapatkan informasi dengan efisien. Biasanya informasi ini diakses serta diproses menggunakan komputer. Komputer pada saat ini merupakan perangkat yang vital dalam kebutuhan mengakses informasi, yang juga merupakan tulang punggung dalam dunia teknologi informasi.
Dalam suatu komputer, informasi (data) yang disimpan akan memiliki key address agar dapat disimpan ke memory. Akan tetapi bila key data tersebut sama, maka akan terjadi tabrakan (collision) dan pemecahan collision yang dikenal dengan collision resolution. Dalam makalah yang kami susun, kami menitikberatkan perngertian Collision dan penyelesaian Collision.
2
BAB II ISI a. PENGERTIAN BERKAS RELATIF Suatu cara yang efektif dalam mengorganisasi sekumpulan record yang membutuhkan akses sebuah record dengan cepat adalah organisasi berkas relatif. Dalam berkas relatif ada hubungan antara key yang dipakai untuk mengidentifikasi record dengan lokasi record dalam penyimpanan sekunder. Urutan record secara logik tidak ada hubungannya dengan urutan secara fisik. Record tidak perlu tersortir secara fisik menurut nilai key.
Gambar 1 : organisasi file relative
Bagaimana record yang ke-N dapat ditemukan ?? . Dalam hal ini, perlu kita buat hubungan yang akan menerjemahkan antara NILAI KEY dan ADDRESS. 3
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 ke dalam berkas relatif, fungsi pemetaan R digunakan untuk menerjemahkan NILAI KEY dari record menjadadi 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 relatif ini tidak menguntungkan bila penyimpanan sekundernya berupa media SASD seperti magnetic tape. Berkas relatif harus disimpan dalam media DASD seperti magnetic disk atau drum. Juga dimungkinkan untuk mengakses record-record dalam berkas relatif secara consecutive, tetapi perlu diketahui bahwa nilai key tidak terurut secara logik. Contoh Record dalam gambar 1, 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. Contoh Sebuah on-line sistem perbankan yang mempunyai sebuah master file dan sebuah transaksi file. Field account number dipakai sebagai nilai key untuk kedua berkas tersebut. Pada saat nilai key account number dimasukan kedalam transaksi, nilai key tersebut akan meretrieve 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 ditransaction file, dimana account number yang menentukan lokasi record dalam berkas tersebut. 4
Catatan : - Kita tidak perlu mengakses semua record master file, cukup mengakses langsung record yang dikehendaki. - Record dari berkas relatif dapat diupdate langsung tanpa perlu merekam kembali semua record. - Keuntungan dari berkas relatif ini adalah kemampuan mengakses record secara langsung, sebuah record dapat diretrieve, insert, modifikasi atau didelete, tanpa mempengaruhi record lain dalam berkas yang sama. Ada 3 teknik dasar yang digunakan untuk menyatakan fungsi pemetaan R, dimana R(nilai key) address 1. Direct mapping (pemetaan langsung) 2. Directory look up (pencarian tabel) 3. Calculation (kalkulasi)
b. PENGERTIAN COLLISION Dikatakan terjadi collision (tabrakan) jika dua buah keys dipetakan pada sebuah sel. Collision bisa terjadi saat melakukan insertion (penyisipan/pemasukan data). Collision juga dapat terjadi saat penyimpanan data dengan menggunakan hashing, maka hubungan korespondensi satu-satu (perkawanan) antara record key dengan alamat record akan hilang. Karena hashing mengubah data tersebut, key data tersebar secara acak dan jauh meskipun memiliki jenis akar data yang mirip. Karena data tersebut dipecah dengan cara hashing, maka selalu ada kemungkinan dimana terdapat 2 buah atau lebih record yang berbeda dengan key berbeda namun memiliki home address yang sama = collision (tabrakan).
c. PENDEKATAN TERHADAP MASALAH COLLISION DALAM SISTEM BERKAS
COLLISION :: Key yang berbeda dapat berada dalam lokasi/indeks yang sama Hal ini disebut collision :: key yang ber-collising disebut synonyms. :: Usaha / prosedur untuk memecahkan masalah yang timbul akibat collision disebut collision resolution
Collision Resolution Collision resolution merupakan proses untuk menangani kejadian dua atau lebih 5
key di-hash ke alamat yang sama. Cara yang dilakukan jika terjadi collision adalah mencari lokasi yang kosong dalam tabel Hash secara terurut. Cara lainnya adalah dengan menggunakan fungsi Hash yang lain untuk mencari lokasi kosong tersebut.
Pendekatan terhadap masalah Collision 1. Open Addressing Menemukan address yang bukan home address untuk K2 dalam berkas relatif. Contoh : K1 = 1 K2 = 1 R1 R2
2. 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. Contoh :
Teknik untuk mengatasi collision : 1. Linier Probing, yang merupakan teknik open addresing. Merupakan sebuah proses pencarian secara sequential/linear dari home address sampai lokasi yang kosong.
6
Contoh linier probing Ukuran tabel = 11 dan file berisi 8 record dengan nilai kunci sebagai berikut:12,21,68,32,56,77 Maka alamat awal hash dengan metode pembagian sisa: (12 mod 11)+1=1+1=2; simpan 12 dilokasi 2 (21 mod 11)+1=10+1=11; simpan 21 dilokasi 11 (68 mod 11)+1=2+1=3; simpan 68 dilokasi 3 (32 mod 11)+1=10+1=11; diuji (probe) di dilokasi 11; terjadi kolisi sehingga: (11 mod 11)+1=0+1=1; simpan 32 dilokasi 1 (56 mod 11)+1=1+1=2; diuji (probe) di dilokasi 2; terjadi kolisi sehingga: (2 mod 11)+1=2+1=3; diuji di lokasi 3; terjadi kolisi sehingga: (3 mod 11)+1=3+1=4; simpan 56 dilokasi 4 (77 mod 11)+1=0+1=1; diuji di lokasi 1; terjadi kolisi sehingga: (1 mod 11)+1=1+1=2; diuji di lokasi 2; terjadi kolisi sehingga: (2 mod 11)+1=2+1=3; diuji di lokasi 3; terjadi kolisi sehingga: (3 mod 11)+1=3+1=4; diuji di lokasi 4; terjadi kolisi sehingga: (4 mod 11)+1=4+1=5; simpan 77 di lokasi 5 Maka hashing dengan metode pembagian sisa dengan linear probing:
2.Linear Quotient (metode bagi hasil secara linier) Ukuran tabel = 11 dan file berisi 8 record dengan nilai kunci sebagai berikut: 12,21,68,32,56,77 Maka alamat awal hash dengan metode pembagian sisa: (12 mod 11)+1=1+1=2; simpan 12 dilokasi 2 (21 mod 11)+1=10+1=11; simpan 21 dilokasi 11 (68 mod 11)+1=2+1=3; simpan 68 dilokasi 3 (32 mod 11)+1=10+1=11; diuji (probe) di dilokasi 11; terjadi kolisi (q=2)->32:11=2 sisa 10 // jika q=0 maka di set menjadi q=1 ((11+2) mod 11)+1=2+1=3; diuji di lokasi 3; terjadi kolisi (q=1) ((3+1) mod 11)+1=4+1=5; simpan 32 dilokasi 5
7
(56 mod 11)+1=1+1=2; diuji (probe) di dilokasi 2; terjadi kolisi (q=5)->56:11=5 sisa 1 ((2+5) mod 11)+1=4+1=5; simpan 56 dilokasi 5 (q=1) .......... (77 mod 11)+1=0+1=1; simpan 77 dilokasi 1 Maka hashing dengan metode pembagian sisa dengan linear probing:
d. Synonim Chaining Synonim chaining adalah suatu rangkaian pointer yang menghubungkan (link) antara satu alamat dengan alamat lain yang berada di separate overflow area. Hal ini dilakukan untuk mempercepat akses di area tersebut. Jadi, jika hasil perhitungan ternyata datanya bukan yang data dicari, maka akan di-link ke data yang berada di separate overflow area mulai dari awal alamatnya hingga ditemukan data yang dicari. Pendekatan pemecahan collision yang mengakses synonim dengan fasilitas link list untuk record-recordnya dalam kelas ekivalen. Adapun link list record-record dengan home address yang sama tak akan mengurangi jumlah collision, tetapi akan mengurangi waktu akses untuk me-retrieve record-record yang tak ada di home addressnya. Kelebihan dari metode chaining ini chaining ini adalah proses penghapusan yang relarif mudah dan penambahan ukuran tabel hash bisa ditunda untuk waktu yang lebih lama karena penurunan kinerjanya berbanding lurus meskipun seluruh lokasi pada table sudah penuh. Bahkan, penambahan ukuran tabel bias saja tidak perlu dilakukan sama sekali karena penurunan kinerjanya yang linier. Misalnya, table yang berisi record sebanyak dua kali lipat kapasitas yang direkomendasikan hanya akan lebih lambat dua kali lipat dibanding yang berisi sebanyak kapasitas yang direkomendasikan . Contoh 1 : KEY
HOME ADDRESS
ACTUAL ADDRESS
ADAMS
20
20
BATES
21
21
COLL
20
22
DEAN
21
23
8
EVANS
24
24
FLINT
20
25
Dapat digambarkan sebagai berikut : ADAMS
BATES
COLL
DEAN
EVANS
FLINT
20
21
22
23
24
25
Contoh 2 : KEY
HOME ADDRESS
ACTUAL ADDRESS
Brown
19
19
Black
15
15
Pink
16
16
Red
15
17
Green
17
18
White
17
20
Dapat digambarkan sebagai berikut :
Black
Pink
Red
Green
Brown
White
15
16
17
18
19
20
Keunggulan metode chaining dibanding open addressing: · Lebih mudah diimplementasikan dengan efektif dan hanya membutuhkan struktur data dasar. · Metode chaining tidak rawan terhadap data-data yang berkumpul di daerah tertentu. Metode open addressing membutuhkan algoritma hash yang lebih baik untuk menghindari pengumpulan data di sekitar lokasi tertentu. 9
· Performa menurun secara linier. Meskipun semakin banyak record yang dimasukkan maka semakin panjang senarai berantai, tabel hash tidak akan penuh dan tidak akan menimbulkan peningkatan waktu pencarian record yang tibatiba meningkat yang terjadi bila menggunakan metode open addressing. · Jika record yang dimasukkan panjang, memori yang digunakan akan lebih sedikit dibandingkan dengan metode open addressing. Untuk ukuran record yang kecil, keunggulan metode open addressing dibandingkan dengan chaining diantaranya : · Ruang yang digunakan lebih efisien karena tidak perlu menyimpan pointer atau mengalokasi tempat tambahan di luar tabel hash. · Tidak ada waktu tambahan untuk pengalokasian memori karena metode open addressing tidak memerlukan pengalokasian memori. · Tidak memerlukan pointer.
e. 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. 10
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 : HOME
KEY
ADDRESS
Green
30
Hall
30
Jenks
32
King
33
Land
33
Mark
33
Nutt
33
Dapat digambarkan sebagai berikut : BUCKET ADDRESS
BUCKET CONTENT
11
30
Green
Hall
...
31 32
Jenks
33
King
... Land
Marks
...
Contoh 1: HOME
KEY
ADDRESS
John
10
Geek
15
Nerd
16
Herp
16
Derp
17
Troll
17
Zen
17
Bien
18
Yaoming
19
Dapat digambarkan sebagai berikut : BUCKET
BUCKET CONTENT
ADDRESS 10
John
...
Geek
...
11 12 13 14 15
12
16
Nerd
Herp
...
17
Derp
Troll
18
Bien
...
19
Yaoming
...
Zen
...
20
f. Perbandingan antara metode chaining dan open addressing Keunggulan metode chaining dibanding open addressing: 1. Lebih mudah diimplementasikan dengan efektif dan hanya membutuhkan struktur data dasar. 2. Metode chaining tidak rawan terhadap data-data yang berkumpul di daerah tertentu. Metode open addressing membutuhkan algoritma hash yang lebih baik untuk menghindari pengumpulan data di sekitar lokasi tertentu.
3. Performa menurun secara linier. Meskipun semakin banyak record yang dimasukkan maka semakin panjang senarai berantai, tabel hash tidak akan penuh dan tidak akan menimbulkan peningkatan waktu pencarian record yang tibatiba meningkat yang terjadi bila menggunakan metode open addressing. 4. Jika record yang dimasukkan panjang, memori yang digunakan akan lebih sedikit dibandingkan dengan metode open addressing. Perbandingan waktu yang diperlukan untuk melakukan pencarian. Saat tabel mencapai 80% terisi, kinerja pada linear probing(open addressing)menurun drastis. Untuk ukuran record yang kecil, keunggulan metode open addressing dibandingkan dengan chaining diantaranya
Ruang yang digunakan lebih efisien karena tidak perlu menyimpan pointer atau
mengalokasi tempat tambahan di luar tabel hash.
Tidak ada waktu tambahan untuk pengalokasian memori karena metode open
addressing tidak memerlukan pengalokasian memori.
13
Tidak memerlukan pointer. Sebenarnya, penggunaan algoritma apapun pada
tabel hash biasanya cukup cepat, dan persentase kalkulasi yang dilakukan pada tabel hash rendah. Penggunaan memori juga jarang berlebihan. Oleh karena itu, pada kebanyakan kasus, perbedaan antar algoritma ini tidak signifikan. •> Metode-metode lain Selain metode-metode yang sudah disebutkan di atas, ada juga beberapa metode lain diantaranya : 1. Coalesced hashing Gabungan dari chaining dan openaddressing. Coalesced hashing menghubungkan ke tabel itu sendiri. Seperti open addressing, metode ini memiliki keunggulan pada penggunaan tempat dan cache dibanding metode chaining. Seperti chaining, metode ini menghasilkan lokasi penyimpanan yang lebih menyebar, tetapi pada metode ini record yang disimpan tidak mungkin lebih banyak daripada ruang yang disediakan tabel. 2. Perfect hashing Jika record yang akan digunakan sudah diketahui sebelumnya, dan jumlahnya tidak melebihi jumlah ruang pada tabel hash, perfect hashing bisa digunakan untuk membuat tabel hash yang sempurna, tanpa ada bentrokan. 3. Probabilistic hashing Kemungkinan solusi paling sederhana untuk mengatasi bentrokan adalah dengan mengganti record yang sudah disimpan dengan record yang baru, atau membuang record yang baru akan dimasukkan. Hal ini bisa berdampak tidak ditemukannya record pada saat pencarian. Metode ini digunakan untuk keperluan tertentu saja. 4. Robin Hood hashing Salah satu variasi dari resolusi bentrokan double hashing. Ide dasarnya adalah sebuahrecord yang sudah dimasukkan bisa digantikan dengan record yang baru jika nilai pencariannya (probe count – bertambah setiap menemukan termpat yang sudah terisi) lebih besar daripada nilai pencarian dari record yang sudah dimasukkan. Efeknya adalah mengurangi kasus terburuk waktu yang diperlukan untuk pencarian.
14
g. Keuntungan dan kerugian dari sebuah hashing Keuntungan pemakaian Hashing : • Nilai key yang sebenarnya dapat dipakai karena diterjemahkan kedalam sebuah alamat. • Nilai key adalah address space independent bila berkas direorganisasi, fungsi hash berubah tetapi nilai key tetap. Kelemahannya : • Membutuhkan waktu proses dalam mengimplementasikan fungsi hash. • Membutuhkan waktu proses dan akses I/O dalam mengatasi benturan. Hashing dapat digunakan bersama-sama dengan pencarian tabel. Penampilan fungsi hash bergantung pada : • Distribusi nilai key yang dipakai • Banyaknya nilai key yang dipakai relatif terhadap ukuran dari ruang alamat. • Banyaknya record yang dapat disimpan pada alamat tertentu tanpa menyebabkan benturan. • Teknik yang dipakai untuk mengatasi benturan
Beberapa fungsi hash yang umum digunakan : • Division Remainder • Pada division remainder, alamat relatif dari suatu nilai key merupakan sisa dari hasil pembagian nilai key tersebut dengan suatu bilangan yang disebut sebagai bilangan pembagi. Contoh : Bila DIV adalah pembagi, KEY adalah nilai key dan ADDR adalah alamat relatif, maka dalam bahasa Pascal, fungsi R(NILAI KEY) ---> ADDRESS dapat di implementasikan : ADDR := KEY MOD DIV Dalam bahasa COBOL : DIVIDE KEY BY DIV GIVING TEMP REMAINDER ADDR Sisa pembagian (Sebagai hasil dari fungsi MOD pada Pascal), dapat dijabarkan sebagai berikut : ADDR := KEY - DIV * TEMP 15
ADDR Harus merupakan bilangan integer. -----------------------------------------Banyak faktor yang harus dipertimbangkan dalam pemilihan pembagi : • Jangkauan dari nilai key yang dihasilkan dari opersi KEY MOD DIV adalah 0 sampai DIV1. Nilai dari DIV menentukan ukuran "relatif address space". Jika diketahui berkas relatif terdiri dari N record dan dianggap hanya satu record dapat disimpan dalam sebuah alamat relatif, maka akan didapat DIV > N. • Pembagi harus diseleksi untuk mengurangi benturan. Penyelidikan menunjukkan bahwa pembagi yang berupa bilangan genap akan cenderung jelek, terutama dengan nilai key-nya yang dominan ganjil. • Menurut riset dari W.Buchholz, sebaiknya pembagi itu merupakan bilangan prima. Tetapi riset lain dari V.Y.Lum, menyatakan pembagi yang bukan bilangan prima akan memberikan hasil yang sama baik seperti bilangan prima. • Menurut pendapatnya, bukan bilangan prima yang mempunyai faktor prima kurang dari 20 akan dapat memberikan jaminan penampilan yang lebih baik. • Walaupun kita telah menentukan pembagi dengan baik untuk mengatasi benturan, bila ruang alamat dari berkas relatif mendekati penuh, maka peluang terjadinya benturan akan meningkat.
Untuk mengukur kepenuhan berkas relatif digunakan Load Factor (Faktor Muat). Load Factor = banyak record dalam berkas max. banyak record dalam berkas Biasanya load factor yang sering digunakan adalah 0.7 atau 0.8. Jika load factor lebih besar dari 0.7 atau 0.8 maka berkas tersebut harus diperbesar dan direorganisasi. Jadi jika kita ingin menyimpan sebanyak n record pada suatu berkas dan load factor adalah 0.8, maka max. banyak record pada berkas adalah 1.25 n.
Contoh : 16
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 Bilangan pembagi : 5003 123456789 _________ 5003 = 24676 sisa 2761 + 1 alamat relatif 987654321 = 197412 sisa 2085 + 1 _________ 5003
17
BAB III Penutup A. Kesimpulan
Dalam penympanan data di komputer dapat terjadi collision yang disebabkan oleh samanya alamat (address). Penyelesaiannya atau Collision Resolution dari masalah ini adalah dengan menggunakan metode Open Addressing, Synonim Chaining, Bucket Addressing. Dan tujuan dari metode-metode ini adalah agar tidak terjadinya kehilangan data dan tidak dapat dipanggil lagi.
18
DAFTAR PUSTAKA https://artgus16.blogspot.com/2017/01/pendekatan-terhadap-masalah-collision.html http://pintarjhe.blogspot.com/2011/12/organisasi-berkas-relatif_20.html http://luqmanh-fst10.web.unair.ac.id/artikel_detail-69903-kegiatan%20akademik-pengertian %20Hash.html http://www.google.com/url? sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CFsQFjAJ&url=http%3A%2F %2Ftarjianto.files.wordpress.com%2F2010%2F02%2Ftugas-akhir-sistem-berkas-hash-filedan-multiringfile.pdf&ei=cwhfVJu0I8OhugT8voLAAw&usg=AFQjCNHtxKh6pgKYsY_fpRCJRbCcifeO nw&sig2=RONz3NGSt1rPfnukh02Tow http://www.indirpan.wapsite.me/Materi%20UNPAM/Sistem%20Berkas/Organisasi %20Berkas%20Relatif
19