Contoh penggunaan TABEL HASH


Dalam artikel ini akan saya bahas sedikit tentang contoh tabel hash yang paling simpel( kan saya ga pinter2 amat). Disini menggunakan simple fungsi hash, penanganan kolisi dengan linear probing dan tabel hash dengan ukuran yang tetap.

TABEL HASH

public class HashEntry {
      private int key;
      private int value; 

      HashEntry(int key, int value) {
            this.key = key;
            this.value = value;
      }      

      public int getKey() {
            return key;
     }

      public int getValue() {
            return value;
      }
}

public class HashMap {
      private final static int TABLE_SIZE = 128;
      HashEntry[] table;
      HashMap() {
            table = new HashEntry[TABLE_SIZE];
            for (int i = 0; i < TABLE_SIZE; i++)
                  table[i] = null;
      }
      public int get(int key) {
            int hash = (key % TABLE_SIZE);
            while (table[hash] != null && table[hash].getKey() != key)
                  hash = (hash + 1) % TABLE_SIZE;
            if (table[hash] == null)
                  return -1;
            else
                  return table[hash].getValue();
      } 

      public void put(int key, int value) {
            int hash = (key % TABLE_SIZE);
            while (table[hash] != null && table[hash].getKey() != key)
                  hash = (hash + 1) % TABLE_SIZE;
            table[hash] = new HashEntry(key, value);
      }
}

del.icio.us Tags: ,,,

 

2 thoughts on “Contoh penggunaan TABEL HASH

  1. Pada contoh di atas menggunakan fungsi hash untuk tipe data bertipe Integer untuk keynya. bisa tidak ketika kita menggunakan key tersebut memakai tipe data String?

    salam, Henfry

    Terima kasih

    1. bisa saja, tapi penanganan collision dan searching datanya juga berubah.
      untuk fungsi hashingnya juga nantinya akan di ubah ke integer, untuk lebih jelasnya mohon dibaca Tutorial Hash berikut.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s