Anda di halaman 1dari 9

Jurusan Teknologi Informasi

Politeknik Negeri Malang

Tugas JobSheet 11
HashTable

10
Hilmy Zaky Mustakim
SIB-2E
07th Desember, 2023
Daftar Isi

Table of Contents
Daftar Isi ........................................................................................................................... 1

Praktikum ke-1 .................................................................................................................. 2

o Class HashTable.java ............................................................................................ 2

o Class HashTableMain.java ...................................................................................... 3

o Output ................................................................................................................. 3

Pertanyaan ........................................................................................................................ 3

Tugas ............................................................................................................................... 6

1. Class Mahasiswa.java ............................................................................................ 6

2. Class HashTable.java ............................................................................................ 7

3. Class HashTableMain.java ...................................................................................... 8

1
Praktikum ke-1
o Class HashTable.java

2
o Class HashTableMain.java

o Output

Pertanyaan
1. Apa keunggulan penanganan collision menggunakan metode separate chaining
dibandingkan dengan motode linear probing?
• Ada beberapa keunggulannya dalam penanganan collision menggunakan metode
separete chaining dibanding metode linear porbing yaitu:
a. Penggunaan metode separate chaining memungkinkan untuk mengisi data
tanpa batas atau hash table tidak akan pernah penuh sehingga bisa diisi secara
terus menerus.

3
b. Penggunaan metode separate chaining juga memunngkinan untuk
pengalokasian memori dilakukan secara dinamis berbeda dengan linier probing
yang dilakukan secara statis.
c. Metode separate chaining bisa digunakan ketika seberapa sering key(kunci)
akan dimasukkan atau dihapus.

2. Apa maksud dari potongan kode berikut pada method hash()?


int hash = 0;
for (int i = 0; i < key.length(); i++) {
hash = (hash + key.charAt(i) * i) % this.dataMap.length;
}
• Potongan kode diatas berfungsi untuk mengubah nilai yang ada didalam `key` menjadi
sebuah indeks. pengubahan ini ada pada kode `hash = (hash + key.charAt(i)
* i) % this.dataMap.length;`.

3. Apa maksud dari potongan kode berikut pada method set()?


else {
Node current = this.dataMap[hash];
if(current.key == key) {
current.value += value;
return;
}
while (current.next != null) {
current = current.next;
if(current.key == key) {
current.value += value;
return;
}
}
current.next = newNode;
}
• Kode diatas digunakan untuk menambahkan nilai key yang ada atau bisa juga digunakan
untuk menambahkan node baru jika key belum ada di dalam hash table. Potongan kode
tersebut menggunakan metode penanganan collision dengan separate chaining.

4
4. Buatlah method remove() untuk menghapus data berdasarkan key.

5
Tugas
1. Class Mahasiswa.java

6
2. Class HashTable.java

7
3. Class HashTableMain.java

Anda mungkin juga menyukai