Vous êtes sur la page 1sur 6

MainHash.

java

package praktikum0305;

import java.util.Scanner;

public class MainHash {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int pilihan, maks;

String ya = "ya";

int nilai[] = {10, 20, 30, 40, 50, 8, 60, 15, 30, 45, 11, 13, 17, 19, 100};

do {

System.out.println("");

System.out.println("===============================");

System.out.println("Metode Hashing");

System.out.println("===============================");

System.out.println("1. Linear Probing");

System.out.println("2. Quadratic Probing");

System.out.println("3. Double Hashing");

System.out.print("Silakan masukkan pilihan : ");

pilihan = in.nextInt();

switch (pilihan) {

case 1:

Hash percobaan = new Hash(15);

for (int i = 0; i < 15; i++) {

percobaan.insertlinear(nilai[i]);

percobaan.display();

break;
case 2:

Hash percobaan1 = new Hash(findPrime(15));

for(int i = 0; i< 15; i++){

percobaan1.insertQuadratic(nilai[i]);

percobaan1.display();

break;

case 3:

Hash percobaan2 = new Hash(findPrime(15));

for(int i =0 ; i< 15 ; i++){

percobaan2.insertDouble(nilai[i]);

percobaan2.display();

break;

default:

System.out.println("Pilihan salah! Silakan ulangi");

System.out.println("");

System.out.println("--------------------------------");

System.out.print("Pilih lagi? (ya/tidak) ");

ya= in.next();

if(ya.equalsIgnoreCase("tidak")){

System.out.println("Terimakasih");

} while (ya.equalsIgnoreCase("ya"));

public static int findPrime(int n) {

int prima = n;

int a, b, nilai;
String ya;

do {

double akar = Math.sqrt(n);

for (a = 2; a <= akar; a++) {

if ((n % a) == 0) {

b = 1;

break;

if (a > akar) {

ya = "Bilangan prima";

} else {

ya = "Bukan";

n++;

} while (ya.equalsIgnoreCase("Bukan"));

return n;

Hash.java

package praktikum0305;

/**

* @author User

*/

public class Hash {


private int maks;

private int hasharray[];

int i = 0;

Hash(int max) {

this.maks = max;

hasharray = new int[maks];

for (int i = 0; i < maks; i++) {

hasharray[i] = 0;

public void insertlinear(int key) {

int index = key % maks;

while (hasharray[index] != 0 && index < maks) {

index++;

if (hasharray[index] == 0 && index < maks) {

hasharray[index] = key;

} else {

System.out.println("Array penuh");

public void insertQuadratic(int key) {

int i = 1, level;

int index = key % maks;

while (hasharray[index] != 0) {
level = key + (i * i);

index = level % maks;

i++;

if (hasharray[index] == 0 && index < maks) {

hasharray[index] = key;

public int findPrimemin (int n) {

int a, b;

String ya;

int c = n-1;

do {

double akar = Math.sqrt(c);

for (a = 2; a <= akar; a++) {

if ((c % a) == 0) {

b = 1;

break;

if (a > akar) {

ya = "Bilangan prima";

} else {

ya = "Bukan";

c--;

} while (ya.equalsIgnoreCase("Bukan"));
return c;

public void insertDouble (int key){

int index = key%maks;

int i =1 ;

int hash2 = (findPrimemin(maks)) - (key%(findPrimemin(maks)));

while(hasharray[index] != 0){

index = ((key%maks) + (i*hash2))%maks;

i++;

if(hasharray[index]==0 && index < maks){

hasharray[index] = key;

public void display() {

for (int i = 0; i < maks; i++) {

System.out.print(hasharray[i] + " ");

Vous aimerez peut-être aussi