Hash

8
Isu dan Prinsip Proteksi Teknologi Informasi Program Enkripsi HASH “MetodePenjumlahan Digit” Nama : I Kadek Raditya Wiguna NIM : 1304505021 Kelas : A JURUSAN TEKNOLOGI INFORMASI

description

program hash

Transcript of Hash

Isu dan Prinsip Proteksi Teknologi InformasiProgram Enkripsi HASH MetodePenjumlahan Digit

Nama: I Kadek Raditya WigunaNIM: 1304505021Kelas: A

JURUSAN TEKNOLOGI INFORMASIFAKULTAS TEKNIKUNIVERSITAS UDAYANATAHUN 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 HastingFungsi 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-Square8. FungsiPenjumlahan1. 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. Bagian-bagian 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-SquareFungsi 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 PenjumlahanFungsi hash ini melakukan pemecahan kunci menjadi beberapa kelompok yang masing-masing 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 = 59H(99432)= 9 + 94 + 32 = 126 = 1 + 26 = 27H(25222)= 2 + 52 + 22 = 76

4.Kelebihan dan Kelemahan Metode HashingModel 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 DigitBerikut 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 DigitSetelah 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.