TUGAS PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA II
ANALISA VIDEO
HASH TABLE
Disusun Oleh : Syukur Jaya Mendrofa
201501072 Kelas: C
Dosen Pengampu : Oskar Ika Adi Nugroho, ST., MT
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”
PURWOKERTO
1. Video Part 1
Membuat project C++ “Hash Table Video”.
Kemudian di dalam project “Hash Table Video” dibuat lagi file baru C++
dengan mengklik source file > new > C++ source file dengan membuat nama file tersebut hash.cpp.
Lalu kembali lagi ke dalam project “Hash Table Video”, dibuat lagi file baru .h
dengan mengklik header file > New C++ header file dengan membuat nama file tersebut hash.h.
Selanjutnya kembali lagi ke dalam project “Hash Table Video”, membuat file
bernama main_1.cpp yaitu dengan mengklik main_1.cpp masukkan file header #include <iostream> dan #include<string> kedalam file tersebut.
Copy file header #include <iostream> dan #include<string> yang ada di dalam
file main_1.cpp lalu Paste ke dalam file hash.cpp dan paste juga kedalam file hash.h.
Di dalam file hash.cpp dan file main_1.cpp tambahkan file header #include
“hash.h”.
Di dalam file hash.h dibuat sebuah class yang bernama Hash
Di dalam class Hash dibuat sebuah fungsi pada kelompok public yaitu int Hash
(string key): kemudian fungsi tersebut di deklarasikan kedalam file hash.cpp. dengan menggunakan tanda :: dan mengikutsertakan nama class Hash.
Mendeklarasikan fungsi hash di dalam file hash.cpp.
Kemudian di dalam file main_1.cpp dibuat sebuah variable yang bertipe nama
class yaitu Hash.
Di dalam fungsi utama/int main ( ) pada file header main_1.cpp didefenisikan
fungsi hash.
Fungsi ini membaca berapa karakter yang dimasukkan ke dalam index. Dengan
menggunakan index = hashObj.Hash (tempat karakter yang akan dibaca isinya).
Fungsi ini juga dimodifikasi untuk membaca dimana posisi setiap karakter pada
index dengan menggunakan index = key.lenght( ). Dan cout << key [0] dikarenakan menggunakan (string key) jadi membaca karakter saja.
Fungsi ini juga dimodifikasi untuk membaca nilai ASCII dari setiap karakter
yang di masukkan contohnya “syukur” maka hasil output program akan menampilkan s = 115, y = 121, u = 117, k = 107, u = 117, r = 114 (berdasarkan nilai ASCII yang telah ditentukan). Dengan menambahkan cout << (int) key [0] yaitu penambahan integer pada belakang key.
3. Video Part 3
Menambahkan nilai hash = hash + (int) key [1] yaitu hasil nilai ASCII pertama
akan ditambahkan dengan hasil nilai ASCII berikutnya dan seterusnya.
4. Video Part 4
Membuat struktur dasar pada tabel hash
Mendefenisikan class hash yang masuk dalam kelompok Private, pada file
hash.h.
5. Video Part 5
Mendefenisikan konstruktor di dalam file hash.h.
6. Video Part 6
Membuat fungsi untuk menambahkan item yaitu menggunakan fungsi void pada
file hash.h.
7. Video Part 7
Mendefenisikan Nomor item dengan menambahkan fungsi baru.
Fungsi ini di buat di dalam file hash.h pada class hash kelompok public.
Kemudian fungsi ini dideklarasikan pada file hash.cpp.
8. Video Part 8
Membuat fungsi baru untuk menampilkan isi dari hash tabel yaitu fungsi
voidPrintTable di dalam class hash kelompok public pada file hash.h.
Kemudian fungsi ini dideklarasikan pada file hash.cpp.
9. Video Part 9
Memangil class hash yaitu dengan menambahkan hash Hashy; lalu
Hashy.PrintTable untuk menampilkan.
Mengisi Hashy yaitu dengan menambahkan Hashy.AddItem (kemudian isi dari
Hashy tersebut).
10. Video Part 10
Menambahkan Fungsi baru yaitu Void PrintItemInIndex (int index); di dalam
file hash.h.
Kemudian fungsi tesebut di deklarasikan ke dalam file hash.cpp.
Selanjutnya fungsi tersebut dibuat di dalam fungsi utama pada file main_1.cpp
untuk pemangilan.
11. Video Part 11
Memodifikasi beberapa nilai yang ada pada tabel hash
12. Video Part 12
Mencari dengan menggunakan kata kunci.
Menambahkan fungsi baru yaitu void FindDrink (string name); di dalam class
hash kelompok public pada file hash.h.
Kemudian fungsi tesebut di deklarasikan ke dalam file hash.cpp.
Mencari minuman favorit dengan menggunakan kata kunci yaitu nama-nama
13. Video Part 13
Menambahkan Fungsi baru yaitu Void RemoveItem (string name); di dalam file
hash.h. untuk menghapus item yang telah dibuat di dalam program hash tabel tersebut.
Kemudian fungsi tadi dideklarasikan di dalam file hash.cpp.
14. Video Part 15
Masih pendeklarasian fungsi Void RemoveItem (string name); di dalam file
hash.cpp.
15. Video Part 16
Masih pendeklarasian fungsi Void RemoveItem (string name); di dalam file
hash.cpp.
16. Video Part 17
Masih pendeklarasian fungsi Void RemoveItem (string name); di dalam file
hash.cpp.
17. Video Part 18
Mencoba menghapus item yang sudah ada yang telah dibuat di dalam program
Listing Program :
void hash::AddItem(string name, string drink) {
int index = Hash(name);
ptr = ptr->next;
cout<<hashTable[i]->drink<<endl;
cout<<"index ="<<index<<" is empty"; }
else {
cout<<"index "<<index<<" contains the following item\n";
hash = (hash + (int)key[i]) * 17;
if(hashTable[index]->name == "empty" && hashTable[index]->drink == "empty") {
cout<<name<<" was not found in the hash Table\n"; }
//case 1 - only 1 item contained in bucket and that item has matching names else if(hashTable[index]->name == name && hashTable[index]->next == NULL) {
hashTable[index]->name = "empty"; hashTable[index]->drink = "empty";
cout<<name<<" was removed from the hash Table\n"; }
//case 2 - match is located in the first item in the bucket // but there are more items in the bucket
else if (hashTable[index]->name == name) {
delptr = hashTable[index];
hashTable[index] = hashTable[index]->next; delete delptr;
//case 3 - bucket contains items but first item is not a match else
{
p1 = hashTable[index]->next; p2 = hashTable[index];
while(p1 != NULL && p1->name != name) {
p2 = p1; p1 = p1->next; }
//case 3.1 - no match if(p1 == NULL) {
cout<< name <<"was not found in the hash Table\n"; }
//case 3.2 - match is found else
{
delptr = p1; p1 = p1->next; p2->next = p1;
delete delptr;
cout<<name<<"was removed from the hash Table\n"; }
}
File main_1.cpp