Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import java.util.*;
  2.  
  3. public class PhonebookHashApp
  4. {
  5.     public static int hashFunction(String name){
  6.         int hash = 0;
  7.         for(int i=0; i<name.length(); i++){
  8.             hash = hash*10 + name.charAt(i);
  9.         }
  10.         hash = hash % 499;
  11.         return hash;
  12.     }
  13.  
  14.     public static void main(String[] args){
  15.         Hashtable<Integer, String> phonebook = new Hashtable<>();
  16.         List<String> names = new ArrayList<>();
  17.         Scanner sc = new Scanner(System.in);
  18.  
  19.         int choice = -1;
  20.         String number;
  21.         String name;
  22.         while(choice != 0){
  23.             System.out.println("Silahkan pilih:\n1. Tambahkan kontak\n2. Cari kontak\n3. Hapus kontak\n4. Lihat semua\n0. Keluar");
  24.             choice = sc.nextInt();
  25.             switch(choice){
  26.                 case 1:
  27.                     System.out.println("Masukkan nomor telepon:");
  28.                     number = sc.next();
  29.                     System.out.println("Masukkan nama kontak:");
  30.                     name = sc.next();
  31.                     names.add(name);
  32.                     phonebook.put(hashFunction(name), number);
  33.                     System.out.println("Kontak telah ditambahkan");
  34.                     break;
  35.                 case 2:
  36.                     System.out.println("Masukkan nama kontak:");
  37.                     name = sc.next();
  38.                     number = phonebook.get(hashFunction(name));
  39.                     System.out.println("Nomor telepon: " +  number);
  40.                     break;
  41.                 case 3:
  42.                     System.out.println("Masukkan nama kontak:");
  43.                     name = sc.next();
  44.                     names.remove(name);
  45.                     phonebook.remove(hashFunction(name));
  46.                     System.out.println("Kontak telah dihapus");
  47.                     break;
  48.                 case 4:
  49.                     if(phonebook.size() > 0){
  50.                         System.out.println(phonebook.size() + " kontak tersimpan");
  51.                         for(String i : names){
  52.                             System.out.println(i + ": " + phonebook.get(hashFunction(i)));
  53.                         }
  54.                     }
  55.                     else
  56.                         System.out.println("Tidak ada kontak yang tersimpan");
  57.             }
  58.         }
  59.     }
  60. }