Anda di halaman 1dari 6

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.

Anda mungkin juga menyukai