Hash [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up

Hash [PDF]

Isu dan Prinsip Proteksi Teknologi Informasi Program Enkripsi HASH “MetodePenjumlahan Digit”

Nama

: I Kadek Raditya Wi

6 0 150 KB

Report DMCA / Copyright

DOWNLOAD FILE


File loading please wait...
Citation preview

Isu dan Prinsip Proteksi Teknologi Informasi Program Enkripsi HASH “MetodePenjumlahan Digit”



Nama



: I Kadek Raditya Wiguna



NIM



: 1304505021



Kelas



:A



JURUSAN TEKNOLOGI INFORMASI FAKULTAS TEKNIK UNIVERSITAS UDAYANA TAHUN 2015



1. Hasting (hashing) Hashing adalah transformasi aritmetika sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasanya, hash berarti memenggal dan kemudian menggabungkan. Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah larik (array) agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Ide dasarnya adalah menghitung posisi record yang dicari dalam larik, bukan membandingkan record dengan isi pada larik. Fungsi yang mengembalikan nilai atau kunci disebut fungsi hashdan larik yang digunakan disebut tabel hash. Secara teori, kompleksitas waktu (T(n)) dari fungsi hash yang ideal adalah O(1). Untuk mencapai itu setiap record membutuhkan suatu kunci yang unik. Hash adalah suatu teknik "klasik" dalam ilmu komputer yang banyak digunakan dalam praktek secara mendalam. Hash merupakan suatu metode yang secara langsung mengakses record-record dalam suatu table dengan melakukan transformasi aritmatik pada key yang menjadi alamat dalam table tersebut. Key merupakan suatu input dari pemakai dimana pada umumnya berupa nilai atau string karakter. 2. Metode Hasting Fungsi Hash (dilambangkan dengan h(k)) bertugas untuk mengubah k (key) menjadi suatu nilai dalam interval [0....X], dimana "X" adalah jumlah maksimum dari record-record yang dapat ditampung dalam tabel. Jumlah maksimum ini bergantung pada ruang memori yang tersedia. Fungsi Hash yang ideal adalah mudah dihitung dan bersifat acak, agar dapat menyebarkan semua key. Dengan key yang tersebar, berarti data dapat terdistribusi secara seragam tabrakan dapat dicegah. Sehingga kompleksitas waktu model Hash dapat mencapai O(1), di mana kompleksitas tersebut tidak ditemukan pada struktur model lain. BeberapaFungsi Hash yang umumdigunakanadalah : 3. Division-Remainder(Pembagiansisa) 4. Truncation(Pemenggalan) 5. Folding(Lipatan) 6. Multiplication(Perkalian) 7. Mid-Square 8. FungsiPenjumlahan 1. Division-Remainder (Pembagian sisa)



Tehnik Hashing menggunakan sisa pembagian adalah dengan cara membagi satu nilai kunci dengan satu nomor yang cocok / disediakan, kemudian menggunakan sisa dari pembagian, yang akan menghasilkan alamat relative untuk record. Hashing dengan sisa pembagian sangat mudah di implementasikan dalam bebrapa bahasa pemrograman yang memiliki fungsi MOD. Alamat dihasilkan dari suatu nilai dengan perhitungan MOD. 2.



Truncation(Pemenggalan) Satu fungsi Hashing Truncation (Pemenggalan) melaukukan penghilangan digit k yang



pertama atau yang terakhir dari sejumlah n digit.suatu nomor dipenggal atau dihilangkan ketika beberapa digit awal atau digit yang terakhir dipindahkan. Keuntungan



dari



fungsi



Hash



pemenggalan



adalah



cepat



dan



mudah



dalam



mengimplementasikannya. Kerugiannya adalah terbatasnya ukuran ruang alamat (dalam hal ini nomor ini lokasi penyimpanan berbeda) untuk kelipatan 10. 3.



Folding(Lipatan) Teknik hashing folding (lipatan) teknik hashing ini kunci dibagi menjadi beberapa bagian



masing-masing (kecuali bagian awal atau akhir ) memiliki jumlah digit yang sama. Bagianbagian ini kemudian dilipat antara satu bagian dengan bagian lain. Hasil penjumlahan setelah dilipat dan digit dengan orde paling tinggi dipenggal menjadi alamat relatif. 4.



Multiplication (Perkalian) Teknik ini dilakukan dengan cara baigan – bagiannya seperti yang dilakukan di teknik



folding, bagian dari salah satu kunci bias dipilih untuk kemudian dikalikan. Hasilnya atau satu bagian yang dipenggal merupakan alamat relative dari record yang akan dialokasikan dimana kunci tersebut akan disimpan. 5.



Mid-Square Fungsi hash ini melakukan pengkuadratan kunci terlebih dahulu kemudian menghapus



beberapa digit disebelah kiri dan kanan asalkan jumlah digit kiri dan kanan sama. Apabila jumlah digit berbeda maka pada digit kiri ditambahkan sejumlah trailing zero. Fungsi hash yang dipilih : H(k) = l 6.



Fungsi Penjumlahan



Fungsi hash ini melakukan pemecahan kunci menjadi beberapa kelompok yang masingmasing terdiri dari beberapa buah digit. Kemudian kelompok digit tersebut dijumlahkan. Pemecahan dan penjumlahan terus dilakukan jika jumlah keseluruhan kelompok yang ada, masih lebih besar dari banyaknya alamat yang akan dipakai. contoh : H(10454)= 1 + 04 + 54 = 59 H(99432)= 9 + 94 + 32 = 126 = 1 + 26 = 27 H(25222)= 2 + 52 + 22 = 76 4.



Kelebihan dan Kelemahan Metode Hashing Model Hash memiliki kelemahan pada saat penambahan dan penghapusan record.



Diperlukan waktu untuk menstrukturisasi tabel Hash. Pada tabel Hash terdapat suatu daerah (akibat collision) kelebihan data (overflow). Untuk mencapai daerah tersebut, memerlukan waktu. Lamanya waktu disebabkan jika data diletakkan dalam disk atau tape. Hal ini bias diatasi dengan meletakkan keseluruhan data sampel secara utuh kedalam memori. Namun ruang memori yang terbatas merupakan kendala tersendiri, karena data yang tersedia dalam kamus sangat besar (46.010 buah). 5. Kode Program Metode Penjumlahan Digit Berikut ini merupakan contoh program untuk melakukan perhitungan hasting dengan menggunakan metode penjumlahan digit. Berikut ini adalah kodeprogramnya: package JavaApplication3; importjava.util.Scanner; public class JavaApplication3 { public static void main(String[] args) { Long angka; Scanner input = new Scanner(System.in); System.out.print("angka input : "); angka = input.nextLong(); String a = Long.toString(angka); SumOfDigit(a); } static void SumOfDigit(String a){ String val=""; intx,y, temp=0,value; for(x=a.length()-1; x>=0; x-=2){ for (y=x; y>x-2; y--){ if (y>=0){



val = a.charAt(y)+val; } } value= Integer.parseInt(val); temp+=value; //System.out.println("temp :"+temp); val=""; } a=String.valueOf(temp); if (a.length()>2) { SumOfDigit(a); System.out.println(temp); } else { System.out.println("angkahasil :"+temp); } } } Kode Program 1.Perhitunganmetodepenjumlahan digit



6. Hasil Program MetodePenjumlahan Digit Setelah kode program di run maka akan menghasilkan program seperti berikut, dimana akan muncul “ angka input “.



Gambar 1. Input angka



Gambar 1 merupakan tampilan setelah kode program dijalankan, dan pengguna hanya perlu memasukkan angka yang ingin dihitung dengan menggunakan metode penjumlahan digit.



Gambar 2.Penggunamenginputkanangka



Pada gambar 2 pengguna kini telah memasukkan angka 22135 dimana ini akan digunakan sebagai contoh untuk melakukan penghitungan dengan menggunakan metode penjumlahan digit.



Gambar 3.Hasil penjumlahan digit



Setelah pengguna memasukkan angka 22135 maka angka tersebut akan diproses dengan menggunakan metode penjumlahan digit yaitu dengan menggunakan rumus : 2 + 21 + 35 =58. Maka munculah hasil dari penjumalahan tersebut dengan hasil penjumlahannya 58 dari angka awal yaitu 22135.