Volume 1 No 1
Query Pemetaan Kunci Metode Linear
Quotient Menggunakan Alokasi Basis Data
Faizin Ridho
Fakultas Ilmu Komputer, Program Studi Teknik Informatika
Universitas Nahdlatul Ulama Sumatera Utara [email protected]
Eko Prianto
Fakultas Ilmu Komputer, Program Studi Teknik Informatika
Universitas Nahdlatul Ulama Sumatera Utara [email protected]
Abstrak - Data yang besar diakibatkan proses administrasi dilakukan secara terus menerus, sehingga proses pencarian memerlukan waktu yang cukup lama. Pemetaan alamat kunci pada basis data menggunakan metode yang efektif untuk menghemat waktu menjadi lebih cepat. Linear Quotient merupakan salah satu metode hashing yang secara langsung mengakses data. Hashing merupakan metode penempatan dan pengaksesan alamat kunci dengan cara mengkonversikan nilai kunci menjadi alamat record pada basis data, sehingga jarak alamat menjadi kecil. Proses kalkulasi nilai untuk menentukan lokasi alamat dinamakan fungsi hash, dan fungsi pencarian pada sebuah alamat disebut kunci hashing. Proses implementasi pemetaan nilai kunci pada fungsi hash tidak terlepas dari collision. Pemetaan nilai kunci menggunakan 10-digit angka. Proses analisis dilakukan pada aplikasi yang telah diimplementasikan pada aplikasi. Algoritma hashing yang dianalisa adalah Linear Quotient. Tujuan utama analisis adalah untuk mengetahui seberapa efisien proses pemetaan, sehingga memudahkan proses hashing. Hasil analisis menunjukkan jumlah kunci tidak terjadi collision 42% dan 52% mengalami collision.
Kata kunci – Hashing, Hash Funcntion, Linear Quotien, Pemetaan.
Abstract - Large data is caused by the continuous administration process, so the search process takes a long time.
Mapping key addresses to the basis data using an effective method to save time is faster. Linear Quotient is a hashing method that directly accesses data. Hashing is a method of assigning and accessing key addresses by converting key values into record addresses in the basis data, so that the address spacing is small. The process of calculating the value to determine the location of an address is called a hash function, and the search function for an address is called a hashing key. The process of implementing the key-value mapping to the hash function is inseparable from collisions. Key-value mapping uses 10-digit numbers. The analysis process is carried out on applications that have been implemented in the application. The algorithm of hashing method analyzed is linear quotient. The main purpose of the analysis is to find out how efficient the mapping process is, thus making the hashing process easier. The results of the analysis showed that the number of keys did not occur collisions 42%
and 52% experienced collisions
Keywords – Hashing, Hash Funcntion, Linear Quotien, Mapping.
PENDAHULUAN
Perkembangan teknologi informasi semakin pesat guna memenuhi layanan masyarakat maupun kebutuhan internal [1]. Teknologi saat ini tidak terlepas dari data. Data merupakan keterangan kejadian nyata atau fakta yang dirumuskan dalam bentuk buku, kerta atau yang tersimpan dapat berupa file dalam basis data [2]. Data pada instansi seperti data pegawai yang diolah dan dikembangkan untuk sistem informasi [3]. Pentingnya basis data dalam sebuah instansi sehingga bernilai dan memberikan informasi yang berkualitas [4].
Informasi yang baik jika kumpulan data dimanajemen sebaik mungkin [5][6]. Data yang dihubungkan secara bersamaan sehingga dapat diintegrasikan untuk memenuhi kebutuhan informasi [7][8]. Data dibuat menjadi sebuah sistem untuk memudahkan pencarian sehinga dapat memperoleh informasi yang dicari. Seqential search
merupakan salah satu algoritma pencarian. Proses seqential search dilakukan mulai dari awal sampai akhir kemudian dibandingkan dengan data yang dicari [9]. Algoritma yang lain untuk mencari data dengan lebih cepat dan efisien adalah meggunakan tabel hash [10][11].
Alokasi dapat dilakukan dengan mengalokasikan tabel pada basis data. Jumlah record yang akan dialokasikan tergantung dari banyaknya kunci yang akan dipetakan. Alokasi tabel digunakan untuk pemetaan kunci dari record tersebut. Proses pemetaan kedalam tabel dilakukan dengan kalkulasi fungsi [12]. Kunci dikalkulasikan untuk mendapatkan alamat pada tabel hash menggunakan metode Linear Quotient. Tujuan pemetaan dilakukan untuk memudahkan pencarian dengan langsung mengkases alamat pada record tersebut.
LANDASAN TEORI
Hashing
Hashing adalah transfromasi nilai dari integer dan dikalkulasi menjadi sebuah string asli, dengan tujuan mendapatkan alamat [13]. Hashing mempunyai algoritma yang terdapat pada hashing dapat digunakan sebagai metode menyimpan dan mencari dengan lebih cepat dan efisien [10]. Teknik yang secara langsung mengkases data record dalam tabel dengan melakukan kalkulasi pada kunci menjadi alamat record pada tabel tersebut merupakan teknik hash [11].
Hash Function
Fungsi hash adalah cara untuk menentukan nilai kecocokan dari nilai terdekat dengan data terbesar [14]. Nilai kunci yang dapat dikembalikan dari fungsi hash disebut kode hash [15].
Gambar.1. Pemetaan kunci tabel hash
Gambar 1 menampilkan proses pemetaan kunci pada tabel hash menggunakan modulus (sisa dari pembagian bilangan atau kunci) dari nilai integer pada nilai kunci. Misalnya akan dibuat sebuah tabel hash yang akan memetakan angka 0-9, kemudian dibuat sebuah sistem modulus [6]. Berdasarkan distribusi seragam niai diberbagai kotak, yang nilainya diberikan dan ditentukan oleh fungsi disebut hash [16].
Linear Quotient
Linear Quotient dapat disebut juga double hashing adalah satu metode yang terbaik yang tersedia untuk pengalamatan terbuka. Proses pengalamatan terbuka dihasilkan secara acak. Linear Quotient mempunyai dua fungsi. Fungsi pertama H1 untuk menentukan home address dan fungsi kedua H2 untuk menentukan increment jika terjadi collision/tabrakan [13]. Linear Quotinet menggunakan fungsi hash dengan format sebagai berikut:
𝐻1(𝐾) = 𝐾 𝑚𝑜𝑑 𝑁 𝐻2(𝐾) = (𝐻1 + (𝐾 𝑑𝑖𝑣 𝑁))𝑚𝑜𝑑 𝑁
K merupakan kunci yang akan dipetakan, dan N adalah ukuran tabel (0,1, … n-1). Metode Linear Quotient menghasilkan kalkulasi pengiriman yang baik, dan dapat meminimalisir collision berkesinambungan [17].
METODE PENELITIAN
Gambar.2. Metodologi Penelitian
Gambar 2 merupakan proses alur penelitian yang meliputi tahapan sebagai berikut:
• Pada tahapan identifikasi penulis mengumpulkan informasi masalah yang terkait, baik informasi kebutuhan sistem, kebutuhan bisnis, tools yang dapat digunakan, basis data, maupun metode, sehingga dapat berjalan sesuai yang diharapkan
• Pembuatan aplikasi seperti GUI sesuai rancangan dan kebutuhan basis data, baik untuk input data, pemetaan kunci dan form yang digunakan untuk analisis metode.
• Implementasi disini adalah menerapkan algoritma metode Linear Quotient berupa aturan pemetaan kalkulasi untuk mendapatkan alamat kunci.
• Pemetaan kunci merupakan pembuatan kebutuhan basis data seperti tabel index yang digunakan pemetaan kunci dan tabel yang digunakan untuk input data lainnya yang nantinya dari setiap tabel akan terhubung satu sama lain.
• Collision merupakan hasil analisis yang akan dituangkan dalam bentuk tabel yang diperoleh dari proses pemetaan tabel. Hasil analisis akan dirangkum dalam sebuah grafik sehingga mudah untuk dianalisa dan dapat ditarik kesimpulannya.
PEMBAHASAN DAN HASIL
Fungsi yang digunakan untuk menentukan nilai kunci pada tabel index dari record sebagai berikut:
𝐻1(𝐾) = 𝐾 𝑚𝑜𝑑 𝑁 𝐻2(𝐾) = (𝐻1 + (𝐾 𝑑𝑖𝑣 𝑁))𝑚𝑜𝑑 𝑁 Berikut adalah alur algoritma metode Linear Quotient dalam proses pemetaan:
• Nilai kunci dikalkulasikan untuk mendapatkan alamat record menggunakan fungsi H1.
• Alamat kosong akan diisi oleh nilai tersebut, apabila tidak, maka diterapkan langkah berikut:
o Tentukan nilai increment dengan menggunakan fungsi K div ukuran tabel, jika hasil bagi kunci dengan ukuran tabel (K div ukuran tabel) bernilai 0 (nol) maka nilai tersebut akan dijadikan 1.
o Dilakukan penjumlahan H1 dengan (K div ukuran tabel), dinama hasil penjumlahan di lakukan modulus dengan ukuran tabel untuk mendapatkan alamat berikutnya.
o Tahapan selanjutnya hasil konversi H2, lakukan:
Kalkulasi kembali dilakukan untuk mendapatkan alamat berikutnya menggunakan H2.
Jika alamat selanjutnya kosong maka dipetakan. Jika sudah terisi maka diulangi kembali dari langkah pertama.
• Proses dapat berakhir dengan pernyataan: “tabel penuh …”
Pengujian
Kunci (K) yang akan dipetakan adalah 2006041022 dan ukuran tabel (N) adalah 2003 yang terindex pada alamat kunci ke-550, pemetaan alamat untuk kunci tersebut adalah sebagai berikut:
𝐻1(𝐾) = 𝐾 𝑚𝑜𝑑 𝑁
H1 (2006041022) = 2006041022 mod 2003 => 468 (collision) Ditempatkan pada alamat index baru
𝐻2(𝐾) = (𝐻1 + (𝐾 𝑑𝑖𝑣 𝑁))𝑚𝑜𝑑 𝑁
H2(2006041022) = (468 + (2006041022 div 2003)) mod 2003 => 486 (collision) H2(2006041022) = (486 + (2006041022 div 2003)) mod 2003 => 504 (collision) H2(2006041022) = (504 + (2006041022 div 2003)) mod 2003 => 522 (collision) H2(2006041022) = (522 + (2006041022 div 2003)) mod 2003 => 540 (collision) H2(2006041022) = (540 + (2006041022 div 2003)) mod 2003 => 558
Tabel.1. Tabel Pemetaan Alamat Index
Alamat Index Kunci Nama
0
… … …
468 2006041004 Aziz
… … …
486 2005022004 Ani
… … …
504 1988032004 Safaat
Alamat Index Kunci Nama
… … …
522 2005022001 Anwar
… … …
540 1988031001 Nur Hidayah
… … …
558 2006041022 Andre
… … …
2002
Tabel 1 merupakan gambaran penghitungan pemetaan kunci 2006041022. Pada awalnya kunci 2006041022 dari hasil kalkukasi menggunakan fungsi H1 mendapatkan alamat tabel hash pada record 468. Pada alamat record ke- 468 ternyata sudah di isi oleh kunci 2006041004, sehingga terjadi collision. Proses pemetaan diakukan pada tahapan selanjutnya untuk menghindari terjadinya collision dengan menggunakan fungsi H2. Hasil kalkulasi fungsi H2 dibandingkan hingga mendapatkan home address yang kosong. Hasil kalkulasi untuk kunci 2006041022 akhirnya mendapatkan home address yang kosong pada alamat record ke-558 yang sebelumnya mengalami collision sebanyak 5 kali. Dari keseluruhan kunci yang dimiliki dalam pengujian menghasilkan sebuah grafik proses collision seperti yang ditunjukkan pada Gambar.3 berikut ini.
Gambar.3. Grafik proses pemetaan kunci pada tabel hash
Gambar.3 menunjukkan grafik proses terjadinya collision saat pemetaan kunci pada tabel hash. Banyak kunci sudah dipetakan sebanyak 500 kunci dari jumlah 2000 kunci, dari 500 kunci ini 240 kunci tidak mengalami collision, dan sebanyak 260 kunci mengalami collision. Pada input data kunci ke 306 mengalami collision tertinggi yaitu 79 kali.
KESIMPULAN
Konsep pemetaan sangat berguna untuk memudahkan pencarian dengan jumlah data yang semakin besar. User tidak perlu lagi mencari data dari awal sampai akhir dengan membandingkan data yang dicari. Metode Linear
0 10 20 30 40 50 60 70 80 90
0 100 200 300 400 500 600
Jumlah Collision
Kunci
Proses Collision
Quotient merupakan konsep pemetaan dengan kalkulasi untuk mendapatkan alamat address, sehingga pencarian dapat langsung merujuk pada lokasi record tersebut.
DAFTAR PUSTAKA
[1] D.Rahardjo and A. P. Peta, “Prototipe Sistem Informasi Geografis Fasilitas Kesehatan di Kota Cirebon Berbasis Web”, JuTISI, Vol.0, No.3, pp. 210-220, 2015.
[2] E. Sutanta. Basis Data dalam Tinjauan Konseptual. Yogyakarta: CV Andi, 2011.
[3] Marini, “Rancangan Bangun Sistem Informasi Kenaikan Pangkat Pegawai pada Kantor Kecamatan Bukit Intan”, J. Tek.
Inform. Dan Sist. Inf., Vol.3, No., pp. 1-16, April 2017.
[4] D. Prayitno, “Ekstraksi Pola Hubungan Penerimaan Mahasiswa Baru dengan Sebaran Wilayah Asal Sekolah
Menggunakan ARM Algoritma Apriori”, J.
Tek.Inform, dan Inf., Vol.3, No.1, pp.46-56, 2017.
[5] M. Saefuloh, A. Fadlil, and I. Riadi,
“Pengembangan Sitem Informasi Penentuan Jalur Lokasi enjemputan Menggunakan Algoritma Dijkstra dan Algoritma Shortest Path Berbasis Mobile”, in Seminar Nasional Teknologi Informasi dan Multimedia, Universitas AMIKOM, Yogyakarta, 2018.
[6] Firdausy, S. Samadri, and A. Y. Yudhana,
“Sistem Informasi Perpustakaan Berbasis Web Dengan php dan MySql”,
TELKOMNIKA (Telecommunication Comput. Electron. Control., Vol.6, No.2, pp.109, 2008.
[7] Sucipto, R. Indriati, and F. B. Hariawan,
“Desain Basis data untuk Optimalisasi Sistem Prediksi Transaksi Penjualan”, JIPI, Vol.2, No.2, pp.88-93, 2017.
[8] A. Wahyu, R. Emanuel, T. L. Wargasetia, and A. K. Surawijaya, “Sinkronisasi Pangkalan Data Rumah Sakit dengan Aplikasi Open Saource SymmetricDS”, JuTISI, Vol.3, No.3, pp.472-482, 2017 [9] A. H. Wamilian, W. Wardhana, “Penerapan
Algoritma Sequential Search dalam Proses
Pencarian Informasi pada Sistem
Pembelejaran Organ Jantung Manusia”, J.
Kommputasi, Vol.2, No.2, pp.115=125, 2014.
[10] J. Prestiliano, “Aplikasi Tabel Hash dalam Pengarsipan dan Pencarian Data”, J.
Teknol., Vol.4, No.1, pp.41-56, 2007.
[11] V. Mutiawani, “Hash Tabel sebagai Alternatif dari Algoritma Pencarian Biner pada Aplikasi E-Acesia”, J. Inform., Vol.8, No.2, pp.943-952, 2014.
[12] D. A. Wulandari and D. Rusjdi, “Rancang Bangun Media Pembelajaran Teknik Hashing Sebagai Upaya untuk
Meningkatkan Kemampuan Mahasiswa Terhadap Pemrosesan dan Pencarian File Secara Acak dalam Matakuliah Siste, Berkas”, Vol.9, No.1, pp.57-67, 2017.
[13] R. R. Isnanto, A. Fatchurrohim, and N.
Gunawan, “Implementasi Metode Hash (Hashing) Dalam Pencarian Data Pada kamus Kebidanan”, UNDIP Semarang, 2011.
[14] N. Rajgure and V. Thakare, “Efficient Hashing Algorithm for Midsquare, “Int. J.
Innov. Res. Comput. Commun. Eng., Vol.2, No.12, pp.7284-7288, 2014.
[15] M. Abutaha, “New One-Way Hash
Algoritma Using Non-Invertible Matrix”, In Computer Medical Applications (ICCMA), pp.1-5, 2013.
[16] A. Silberschatz, H. F. Korth, and S.
Sudarshan, Basis data System Soncepts – 6th. ed, vol.4, 2011.
[17] E. Sutanta, “Beberapa Metode Penyelsaian Collision Pada Organisasi Berkas Secara Hashing”, J. WAHANA Ilm. (Jurnal Bhs.
Dan Tenologi Infromasi), Vol.4, No.6, pp.1- 15, 2006.