Langsung ke konten utama

Tugas 7

TUGAS 7
SISTEM BERKAS
Dosen Pengampu      : Edhy Sutanta ST.M.Kom
Disusun Oleh:
NAMA           : EKA YANI
NIM                : 131.05.1092

JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA
2016
 KATA PENGANTAR
Segala  puji  hanya  milik  Allah SWT, Shalawat  dan  salam  selalu tercurahkan kepada Rasulullah SAW. Berkat limpahan dan rahmat-NyA penyusun  mampu  menyelesaikan  tugas 7 ini guna memenuhi tugas  mata kuliah Sistem Berkas. Dalam penyusunan tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun penulis menyadari bahwa kelancaran dalam penyusunan tugas ini tidak lain berkat bantuan, dorongan dan bimbingan dosen serta teman-teman yang mendukung laporan ini,  sehingga kendala-kendala yang penulis hadapi teratasi. Laporan ini disusun agar pembaca dapat memperluas ilmu tentang bagaimana Mahasiswa mampu memberikan ulasan terkait organisasi berkas tentang perhitungan dengan menggunakan metode hashing.
Tugas ini di susun oleh penyusun dengan berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari luar. Namun dengan penuh kesabaran dan terutama pertolongan dari Allah akhirnya tugas ini dapat terselesaikan. Semoga postingan ini dapat memberikan wawasan yang lebih luas dan menjadi sumbang pemikiran kepada pembaca khususnya para mahasiswa Institut Sains & Teknologi AKPRIND Yogyakarta. Kami sadar bahwa makalah ini masih banyak kekurangan dan jauh dari sempurna. Untuk itu,  kepada  dosen  pengampu matakuliah Sistem Berkas kami meminta masukannya  demi  perbaikan di  masa  yang  akan  datang dan mengharapkan kritik dan saran dari para pembaca.
                                                                        Yogyakarta, 30-Juni-2016

                                                                        Salam Kriuk dari Penyusu,


1.     Pengertian Hashing

        Hashing adalah transformasi aritmatik sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasanya, hash berarti memenggal dan kemudian menggabungkan. Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Ide dasarnya adalah menghitung posisi record yang dicari dalam array, bukan membandingkan record dengan isi pada array. Fungsi yang mengembalikan nilai atau kunci disebut fungsi hash (hash function) dan array yang digunakan disebut tabel hash (hash table). Hash table menggunakan struktur data array asosiatif yang mengasosiasikan record dengan sebuah field kunci unik berupa bilangan (hash) yang merupakan representasi dari record tersebut.
Secara teori, kompleksitas waktu (T(n)) dari fungsi hash yang ideal adalah O(1). Untuk mencapai itu setiap record membutuhkan suatu kunci yang unik. Fungsi hash menyimpan nilai asli atau kunci pada alamat yang sama dengan nilai hashnya. Pada pencarian suatu nilai pada tabel hash, yang pertama dilakukan adalah menghitung nilai hash dari kunci atau nilai aslinya, kemudian membandingkan kunci atuau nilai asli dengan isi pada memori yang beralamat nomor hashnya. Dengan cara ini, pencarian suatu nilai dapat dilakukan dengan cepat tanpa harus memeriksa seluruh isi tabel satu per satu. 
  Selain digunakan pada penyimpanan data, fungsi hash juga digunakan pada algoritma enkripsi sidik jari digital (fingerprint) untuk mengautentifikasi pengirim dan penerima pesan. Sidik jari digital diperoleh dengan fungsi hash, kemudian nilai hash dan tanda pesan yang asli dikirim kepada penerima pesan. Dengan menggunakan fungsi hash yang sama dengan pengirim pesan, penerima pesan mentransformasikan pesan yang diterima. Nilai hash yang diperoleh oleh penerima pesan kemudian dibandingkan dengan nilai hash yang dikirim pengirim pesan. 
Kedua nilai hash harus sama, jika tidak, pasti ada masalah. Hashing selalu merupakan fungsi satu arah. Fungsi hash yang ideal tidak bisa diperoleh dengan melakukan reverse engineering dengan menganalisa nilai hash. Fungsi hash yang ideal juga seharusnya tidak menghasilkan nilai hash yang sama dari beberapa nilai yang berbeda . Jika hal yang seperti ini terjadi, inilah yang disebut dengan bentrokan (collision). Kemungkinan terjadinya bentrokan tidak dapat dihindari seratus persen. Fungsi hash yang baik dapat meminimalkan kemungkinan terjadinya bentrokan.

2.     Macam - Macam Fungsi Hash
Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) menjadi suatu nilai dalam interval [0....X], dimana "X" adalah jumlah maksimum dari record-record yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantung pada ruang memori yang tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan bersifat random, agar dapat menyebarkan semua key. Dengan key yang tersebar, berarti data dapat terdistribusi secara seragam bentrokan dapat dicegah. Sehingga kompleksitas waktu model Hash dapat mencapai O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain. Ada beberapa macam fungsi hash yang relatif sederhana yang dapat digunakan dalam penyimpanan database:
a.       Metode Pembagian Bersisa (division-remainder method)
   Jumlah lokasi memori yang tersedi dihitung, kemudian jumlah tersebut digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan sisa. Sisa tersebut adalah nilai hashnya. Secara umum, rumusnya h(k)= k mod m. Dalam hal ini m adalah jumlah lokasi memori yang tersedia pada array. Fungsi hash tersebut menempatkan record dengan kunci K pada suatu lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai hash yang sama dari dua atau lebih nilai aslinya atau disebut dengan bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani bentrokan yang disebut kebijakan resolusi bentrokan.
b.      Melipat (folding)
Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian menambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhir sebagai nilai hashnya. 
c.       Transformasi Radiks (radix transformation)
 Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti sehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilai desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16). Digit atas hasilnya bisa dibuang agar panjang nilai hash dapat seragam.
d.      Pengaturan ulang digit (digit rearrangement)
  Metode ini mengubah urutan digit dengan pola tertentu. Contohnya mengambil digit ke tiga sampai ke enam dari nilai aslinya, kemudian membalikan urutannya dan menggunakan digit yang terurut terbalik itu sebagai nilai hash. Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum tentu bekerja dengan baik untuk keperluan kriptografi  atau pengecekan kesalahan. Ada beberapa fungsi hash terkenal yang digunakan untuk keperluan kriptografi. Diantaranya adalah fungsi hash message-diggest, contohnya MD2, MD4, dan MD5, digunakan untuk menghasilkan nilai hash dari tanda tangan digital yang disebut messagediggest. Ada pula Secure Hash Algorithm (SHA), sebuah algoritma standar yang menghasilkan message-diggest yang lebih besar (60-bit) dan serupa dengan MD4.

3.     Bentrokan Pada Fungsi Hash
Fungsi hash bukan merupakan fungsi satu-ke-satu, artinya beberapa record yangberbeda dapat menghasilkan nilai hash yang sama / terjadi bentrokan. Dengan fungsi hash yang baik, hal seperti ini akan sangat jarang terjadi, tapi pasti akan terjadi. Jika hal seperti ini terjadi, record-record tersebut tidak bisa menempati lokasi yang sama. Ada dua macam kebijakan resolusi bentrokan pada tabel hash, yaitu kebijakan resolusi bentrokan di luar tabel dan kebijakan resolusi bentrokan di dalam tabel. Harus diperhatikan juga teknik-teknik penempatan record agar mudah dicari jika dibutuhkan.

a.       Kebijakan resolusi bentrokan di luar tabel
 Artinya tabel hash bukan lagi menjadi array of records, tetapi menjadi array of pointers. Setiap pointer menunjuk ke senarai berkait yang berisi record tersebut. Metode seperti ini dinamakan chaining. Dalam bentuk sederhananya berupa senarai berkait dari recordrecord yang menghasilkan nilai hash yang sama. Penambahan record dapat dilakukan dengan menambah senarai berisi record tersebut. Untuk pencarian pada tabel, pertama-tama dicari nilai hash terlebih dahulu, kemudian dilakukan pencarian dalam senarai berkait yang bersangkutan. Untuk menghapus suatu record, hanya menghapus senarainya saja. 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 tabel sudah penuh. Bahkan, penambahan ukuran tabel bisa saja tidak perlu dilakukan sama sekali karena penurunan kinerjanya yang linier. Misalnya, tabel yang berisi record sebanyak dua kali lipat kapasitas yang direkomendasikan hanya akan lebih lambat dua kali lipat dibanding yang berisi sebanyak kapasitas yang direkomendasikan. Kekurangan dari metode chaining ini sama dengan kekurangan dari senarai berkait. Operasi traversal pada senarai berkait memiliki performa cache yang buruk.
  Struktur data lain dapat digunakan sebagai pengganti senarai berkait. Misalnya dengan pohon seimbang, kompleksitas waktu terburuk bisa diturunkan menjadi O(log n) dari yang  sebelumnya O(n). Namun demikian, karena setiap senarai diharapkan untuk tidak panjang, struktur data pohon ini kurang efisien kecuali tabel hash tersebut memang didesain untuk jumlah record yang banyak atau kemungkinan terjadi bentrokan sangat besar yang mungkin terjadi karena masukan memang disengaja agar terjadi bentrokan.

b.      Kebijakan resolusi bentrokan di dalam tabel
Berbeda dengan kebijakan resolusi bentrokan di luar tabel, pada kebijakan resolusi di dalam tabel data disimpan di dalam hash tabel tersebut, bukan dalam senarai berkait yang  bertambah terus menerus. Dengan demikian data yang disimpan tidak mungkin bisa lebih banyak daripada jumlah ruang pada tabel hash. Jika suatu record akan dimasukkan ke dalam tabel hash pada lokasi sesuai nilai hash-nya dan ternyata lokasi tersebut sudah diisi dengan record lain maka harus dicari lokasi alternatif yang masih belum terisi dengan cara tertentu. Cara ini disebut Open Addressing.
 Ada beberapa metode untuk menemukan lokasi baru yang masih kosong. Dalam proses menemukan lokasi baru ini harus menggunakan pola tertentu agar record yang disimpan tetap bisa dicari dengan mudah saat dibutuhkan kemudian. Metode-metode yang sering digunakan adalah:

1.      Linear probing
Dengan menambahkan suatu interval pada hasil yang diperoleh dari fungsi hash sampai ditemukan lokasi yang belum terisi. Interval yang biasa digunakan adalah 
2.      Quadratic probing / squared probing
  Hampir sama dengan linear probing, hanya saja pada quadratic probing, hasil yang diperoleh dari fungsi hash ditambahkan dengan kuadrat dari interval yang digunakan. 
3.      Double hashing
 Pada metode double hashing, jika lokasi yang diperoleh dengan fungsi hash sudah terisi, maka dilakukan proses hash lagi sampai ditemukan lokasi yang belum terisi.

c.        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.
ð  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.
d.      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.

http://syazdiayhodian.blogspot.co.id/2011/06/hashing.html

BERIKUT PROSES PERHITUNGANNYA MENURUT YANG DITENTUKAN PADA SOAL :
Soal
#
Kode
Nama
Status
SKS
Smt
1
IPBU 11101
Pancasila
W
2
1
2
IPBU 11102
Agama
W
2
1
3
TIFS 11103
Database
W
2
1
4
TIFS 21202
Delphi
W
2
2
5
TIFS 21201
Foxpro
W
2
2
6
TIFS 22105
Pascal
W
2
2

Pertanyaan :
Selesaikan soal diatas dengan menggunakan FUNGSI HASH sebagai berikut :
1.      K MOD N
2.       K MOD P
3.      Midsquaring
4.      Penjumlahan Digit
5.       Multiplication
6.       Trunction
7.       Folding
8.      Konversi Radix
Penyelesaian :
  • 1       Asumsi yang digunakan pada soal kali ini adalah penempatan kode mata kuliah yang dijadikan kunci dalam penyimpanan dalam memori.
  • 2        Kode mata kuliah tersebut memiliki asumsi sebagai berikut :
          Terdiri dari 10 karakter, yaitu 4 huruf 1 spasi dan 5 angka.
  • 3        Kita misalkan 4 huruf kode matakuliah tersebut merupakan patokan dalam penempatan penyimpanan dalam memori. Misal IPBU = 1 dan TIFS = 2 dan spasi kita anggap tidak ada.
  • 4        Sehingga kode mata kuliah menjadi 6 karakter angka, dimana angka pertama merupakan hasil           permisalan konversi diatas.

Disimpan:
1.      K MOD N
2.      K MOD P
3.      Midsquaring
4.      Penjumlahan Digit
5.      Multiplication
6.      Trunction
7.      Folding
8.      Konversi Radix

1        K MOD N
Ditanyakan:
Penempatan Nilai-2 kunci
Rata-rata akses
Dik:     Nilai-2 kunci :
                        11101, 11102, 11103, 21202, 21201, 22105
Dit:      Penempatan nila-2 kunci dan Rata-rata akses
Jawab:
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
N=6
P=7                                                    LISCH (Late Insertion Standard Coalesced Hashing)
Record
Kunci
Link
0


1
11101
6
2
11102

3
11103
5
4
21202

5
22105

6
21201

Alamat indeks=0-6                            
H(11101)=11101 MOD 6=1
H(11102)=11102 MOD 6=2
H(11103)=11103 MOD 6=3
H(21202)=21202 MOD 6=4
H(21201)=21201 MOD 6=3 (collicon)->6
H(22105)=22105 MOD 6=1 (collicon)->5
Rata-rata akses nilai kunci: (6+2)/6=1.33
Ket:
6->lkh penempatan kunci pd home address
2->lkh penempatan kunci 11101, 11103 (collision)


1        K MOD P
Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
a)      H(K)=K MOD M
M=97
Alamat indeks=0-96
H(11101)= 11101 MOD 97=43
H(11102)= 11102 MOD 97=44
H(11103)= 11103 MOD 97=45
H(21202)= 21202 MOD 97=56
H(21201)= 21201 MOD 97=55
H(22105)= 22105 MOD 97=86
Penempatan nilai-nilai kunci
Record
Kunci
0


43
11101
44
11102
45
11103

55
21201
56
21202

86
22105

96

            Rata-rata akses =6/97=0,0618= 0,062

b)      H(K) = K MOD M + 1
M = 97
Alamat indeks = 1 – 97
H(11101)= 11101 MOD 97+1=44
H(11102)= 11102 MOD 97+1=45
H(11103)= 11103 MOD 97+1=46
H(21202)= 21202 MOD 97+1=57
H(21201)= 21201 MOD 97+1=56
H(22105)= 22105 MOD 97+1=87
Penempatan nilai-nilai kunci
Record
Kunci
1


44
11101
45
11102
46
11103

56
21201
57
21202

87
22105

97


           Rata-rata akses =6/97=0,0618= 0,062

2        Midsquaring
            Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
            Alamat indeks=0-99
K
11101
11102
11103
21202
21201
22105
0123232201
0123254404
0123276609
0449524804
0449482401
0488631025
H(K)
23
25
27
52
48
63

           Penempatan nilai kunci
Record
Kunci
0


23
11101

25
11102
..

27
11103

48
21201

52
21202

63
22105

99


Rata-rata akses= 6 / 100 = 0,06

3        Penjumlahan Digit
            Alamat indeks 2 digit
            Kunci: 11101, 11102, 11103, 21202, 21201, 22105
            Alamat indeks=0-99
            H(11101)= 1+11+01=13
H(11102)= 1+11+02=14
H(11103)= 1+11+03=15
H(21202)= 2+12+02=16
H(21201)= 2+12+01=15 (Collicon)->99
H(22105)= 2+21+05=28
Penempatan nilai kunci
Record
Kunci
Link
0




13
11101

14
11102

15
11103
99
16
21202



28
22105



99
21201


            Rata-rata akses= 6 / 100 = 0,06

4        Multiplication
            Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
            Alamat indeks=0-99
H(11101)= 1 | 11 | 01              1*01=1
H(11102)= 1 | 10 | 02              1*02=2
H(11103)= 1 | 10 | 03              1*03=3
H(21202)= 2 | 12 | 02              2*02=4
H(21201)= 2 | 12 | 01              2*01=2 (Collicon)->99
H(22105)= 2 | 21 | 05              2*05=10
Penempatan nilai-nilai kunci
Record
Kunci
Link
0




1
11101

2
11102
99
3
11103

4
21202



10
22105



99
21201


            Rata-rata akses= 6 / 100 = 0,06



5        Trunction
            Pemotongan dilakukan pada 3 digit terakhir
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
            Alamat indeks=0-99
K
11101
11102
11103
21202
21201
22105
H(K)
101
102
103
202
201
105

Penempatan nilai-nilai kunci
Record
Kunci
0


101
11101
102
11102
103
11103
105
22105

201
21201
202
21202


999


            Rata-rata akses= 6 / 100 = 0,06


6        Folding
a)      Folding by boundary (non carry)
                        Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
                        Alamat indeks=0-99
H(11101)= 1 | 11 | 01=10+11+10=31            
H(11102)= 1 | 11 | 02=20+11+10=41
H(11103)= 1 | 11 | 03=30+11+10=51
H(21202)= 2 | 12 | 02=20+12+20=52
H(21201)= 2 | 12 | 01=10+12+20=42            
H(22105)= 2 | 21 | 05=50+21+20=91
            Penempatan nilai kunci
Record
Kunci
0


31
11101

41
11102
42
21201

51
11103
52
21202

91
22105

99


                        Rata-rata akses= 6 / 100 = 0,06


b)      Folding by boundary ( carry)
                        Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
                        Alamat indeks=0-99
H(11101)= 1 | 11 | 01=10+11+10=31            
H(11102)= 1 | 11 | 02=20+11+10=41
H(11103)= 1 | 11 | 03=30+11+10=51
H(21202)= 2 | 12 | 02=20+12+20=52
H(21201)= 2 | 12 | 01=10+12+20=42            
H(22105)= 2 | 21 | 05=50+21+20=91
            Penempatan nilai kunci
Record
Kunci
0


31
11101

41
11102
42
21201

51
11103
52
21202

91
22105

99


                        Rata-rata akses= 6 / 100 = 0,06



c)      Folding by shifting (non carry)
Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
                        Alamat indeks=0-99
H(11101)= 1 | 11 | 01=13       
H(11102)= 1 | 11 | 02=14
H(11103)= 1 | 11 | 03=15
H(21202)= 2 | 12 | 02=16
H(21201)= 2 | 12 | 01=15 (Collicon)->99 
H(22105)= 2 | 21 | 05=28
            Penempatan nilai kunci
Record
Kunci
Link
0




13
11101

14
11102

15
11103
99
16
21202



28
22105



99
21201


                        Rata-rata akses= 6 / 100 = 0,06


d)     Folding by shifting (carry)
Alamat indeks 2 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
                        Alamat indeks=0-99
H(11101)= 1 | 11 | 01=13       
H(11102)= 1 | 11 | 02=14
H(11103)= 1 | 11 | 03=15
H(21202)= 2 | 12 | 02=16
H(21201)= 2 | 12 | 01=15 (Collicon)->99 
H(22105)= 2 | 21 | 05=28
            Penempatan nilai kunci
Record
Kunci
Link
0




13
11101

14
11102

15
11103
99
16
21202



28
22105



99
21201


                        Rata-rata akses= (6 +1)/ 100 = 0,07
7        Konversi Radix
Alamat indeks 7 digit
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
            Alamat indeks=0-9999999

            H(11101)= 1 * 154 + 1 * 15³ + 1 * 15² + 0* 15¹ + 1* 15º
            =54225
            H(11102)= 1 * 154 + 1 * 153 + 1 * 152 + 0* 151 + 2* 150
            =54225
            H(11103)= 1 * 154 + 1 * 153 + 1 * 152 +0* 151 + 3* 150
            =54225
            H(21202)= 2 * 154 + 1 * 153 + 2 * 152 + 0* 151 + 2* 150
            =105075
            H(21201)= 2 * 154 + 1 * 153 + 2 * 152 + 0* 151 + 1* 150
            =105075
            H(22105)= 2 * 154 + 2 * 153 + 1 * 152 + 0* 151 + 5* 150
            =108225
Kunci: 11101, 11102, 11103, 21202, 21201, 22105
N=6
P=15
Alamat indeks=0-6                            
H(11101)11101 MOD 15=1
H(11102)=11102 MOD 15=2
H(11103)=11103 MOD 15=3
H(21201)=21201 MOD 15=6
H(21202)=21202 MOD 15=7
H(22105)=22105 MOD 15=10
EISCH (Early Insertion Coalesced Hashing)
            Penempatan nilai kunci
Record
Kunci
0

...

54225
11101
54225
11102
54225
11103

...

105075
21201
105075
21202
...

108225
22105


9999999


            Rata-rata akses :
            6 / 10000000 = 0,0000006


Komentar

Postingan populer dari blog ini

KONTEN DIGITAL

 KETENTUAN TUGAS INFORMATIKA 📌 PROYEK INFORMATIKA 📌 Assalamu'alaikum Warahmatullahi Wabarakatuh. Menginfokan kepada santri dan santriwati kelas 9 E,F,G,H,I,J,K bahwasanya Pelajaran Informatika pada Bab Konten Digital seperti yang sudah disepakati ketika KBM sebelum liburan. Membuat Konten Digital yang terdiri dari 2 pilihan  : 1. Membuat Blog : - Melatih santri menulis dan berbagi ide melalui media blog.   - Mengembangkan kemampuan berpikir kritis dan kreatif.   - Menghadirkan konten bermanfaat dan Islami di dunia maya. . 2. Membuat Vlog : - Mengembangkan kreativitas santri dalam membuat konten digital yang bermakna dan bernilai manfaat. - Menanamkan nilai-nilai Islami, moral, dan sosial dalam setiap karya. - Menyediakan media dakwah yang relevan dengan era digital. . . Ketentuan Membuat Blog🌐 1. Menggunakan platform gratis seperti blogger, wordpress, google site, dll 2. Desain template blog sekreatif mungkin  3. Posting suatu artikel  sesuai t...

Dasar HTML

Assalamu'alaikum Warahmatullahi Wabarakatuh Hallo semuanya .. semoga dalam kondisi sehat semua yaaa para pembaca yang insyaAllah dirahmati Allah... Terima kasih sudah mampir ke halaman ini lagi... :)  . Baik hari ini izinkan saya berbagi untuk penguatan materi konsep dasar dalam menyiapkan sebuah website sebagai media konten digital menggunakan CMS (Content Management System) , siapa yang sudah punya blogger atau alamat wordpress ? yups pada materi sebelumnya itu termasuk salah satu contoh CMS. tahu tidak sebelum membangun sebuah CMS itu ada kode yang ditulis salah satunya menggunakan HTML. Hayooo apa sih HTML itu ? Yups yang sudah belajar bareng pasti tahu kan HTML itu apa, Nah iyaa ... betul. 😇 HTML adalah singkatan dari  Hypertext Markup Language . HTML memungkinkan seorang pengguna dapat membuat dan menyusun bagian  heading , paragraf,  link  atau tautan, dan  blockquote  untuk halaman sebuah website. HTML sebenarnya bukanlah bahasa pemrograman, ...

LATIHAN KELAS 9

  NO PERNYATAAN JAWABAN PILIHAN JAWABAN 1. Menu untuk mengatur karakter   a. Motion 2. Menu yang digunakan pada segala sesuatu yang berhubungan dengan tampilan pada program   b. Sound 3. Menu yang digunakan mengatur script atau kode pada sprite untuk berjalan   c. Look 4. Menu yang berfungsi untuk mengontrol kode agar berjalan   d. Event 5. Menu yang berfungsi untuk memberikan sensor pada perintah yang digunakan   e. Control 6. Menu yang berfungsi untuk operasi matematika   f. Sensing 7. Menu yang mengatur volume dari suatu objek   g. Variabel 8. Tempat dimana Anda bias mengatur dan mengganti tampilan...