c. Pseudocode Metode Double Hashing
Pseudocode 3.3
Pada Pseudocode 3.3 baris ke – 1 sampai baris ke – 6 lihat Pseudocode
3.1 di awali dengan proses Hitung nilai kata. Baris ke
– 9 nilai M digunakan untuk proses mendapatkan jarak lompataniJarak dan nilai
M tersebut diambil sembarang dengan syarat nilai M harus bilangan prima dan nilainya harus lebih kecil dari panjang penyimpanan index.
Baris ke – 13 dilakukan proses Modulu untuk mendapatkan nilai
hasilBagi. Sehingga nilai variabel kata dapat dimasukan ke dalam array iTabel dan index pada array iTabel untuk nilai variabel kata tersebut
didapatkan dari nilai hasilBagi. Baris ke – 14 dilakukan proses fungsi
hash kedua untuk mendapatkan nilai iJarak. Proses ke – 15 sampai ke –
1 kata = ijuk Contoh kata
2 kata.tocharArray;
3 NilaiKata = 0
4
for i = 0 to panjang array nilaiKata do
5 NilaiKata = NilaiKata 128 + kata[i] panjang array
6 end for
7 nilaiKey = NilaiKata
8 ukuranTabel = 10
9 M = 7
10 iTabel []
11 hasilBagi = 0
12 iJarak = 0
13
hasilBagi = nilaiKeyMod ukuranTabel
14 iJarak = M - nilaiKey Mod M
15 while
index[hasilBagi] = null
16 hasilBagi = hasilBagi + iJarak
17 hasilBagi = hasilBagi ukuranTabel
18 end while
19 iTabel [hasilBagi] = kata
17 adalah proses Double Hashing yang dilakukan saat nilai dari index array
iTabel tidak sama dengan null atau index tersebut sudah terisi. d.
Pseudocode Proses Pencarian kata
Pseudocode 3.4
Pada Pseudocode 3.4 baris ke
– 2 sampai baris ke – 6 di awali dengan proses Hitung nilai kata. Baris ke
– 11, dari nilai hasilBagi akan didapatkan index pada iTabel. Baris ke
– 14 terjadi proses membandingkan isikey dari nilai array iTable yang memiliki index dari hasilBagi apakah sama
dengan iKataInput. Jika sama nilai value akan dikembalikan. Jika tidak, akan dilakukan proses baris ke
– 16 dan 17 untuk mendapatkan hasilBagi untuk index dari nilai array iTable yang lain kemudian dijalankan kembali
ke proses baris ke – 15.
1
Read iKataInput
2 iKataInput.tocharArray;
3 iJumlah = 0
4
for i = 0 to panjang array nilaiKata do
5 iJumlah = iJumlah 128 + iKataInput[i] panjang array
6
end for
7 nilaiKey = iJumlah
8 ukuranTabel = 10
9 M = 7
10 iTabel []
11 iJarak = 0
12
hasilBagi = nilaiKeyMod ukuranTabel
13
iJarak = M - nilaiKey Mod M
14
while index[hasilBagi] = null
15 if
index[hasilBagi].key = iKataInput
16 Return
Index[hasilBagi].value 17
hasilBagi = hasilBagi + iJarak 18
hasilBagi = hasilBagi ukuranTabel 19
end while
3.4 Diagram Alir