• Tidak ada hasil yang ditemukan

TUGAS BASIS DATA FILE ORGANIZATION IF2250 SEMESTER GENAP 2013/2014

N/A
N/A
Protected

Academic year: 2021

Membagikan "TUGAS BASIS DATA FILE ORGANIZATION IF2250 SEMESTER GENAP 2013/2014"

Copied!
6
0
0

Teks penuh

(1)

TUGAS BASIS DATA

FILE ORGANIZATION

IF2250

SEMESTER GENAP 2013/2014

K01 :

Darwin Prasetio (13512001)

Jan Wira Gotama Putra (13512015)

Melvin Fonda (13512085)

TEKNIK INFORMATIKA

SEKOLAH TEKNIK ELEKTRO DAN INFORATIKA

INSTITUT TEKNOLOGI BANDUNG

(2)

Makalah ini menjelaskan prinsip mengorganisasi file dalam sistem basis data dengan metode hash dan metode operasi-operasi pada record pada metode ini. Makalah ini juga menganalisis dan membandingkan metode hash dengan metode-metode lainnya(Heap, Sequential, Multitable Clustering) berdasarkan parameter-parameter tertentu.

Index Terms—Database, Database File Organization, Hash.

I.

P

ENDAHULUAN

Sistem basis data adalah suatu sistem untuk mengorganisasi data berikut metode operasi-operasi terhadap basis data. Pada suatu sistem, seringkali manusia bekerja dengan data komputer yang banyak. Untuk mempermudah mengorganisasi data pada suatu sistem, diperlukan suatu sistem basis data untuk menyimpan dan membaca data secara cepat. Salah satu organisasi file dalam sistem basis data menggunakan metode hash yang mempunyai kelebihan dan kekurangan dibanding metode lainnya.

II.

I

STILAH TERKAIT

1. Collision

[1]Bila pemetaan dua kunci hashing yang menghasilkan alamat sama, maka dinamakan terjadi collision (benturan).

2. Fungsi hash

[1]Fungsi hash adalah sebuah fungsi aritmatka yang mentransformasikan sebuah kunci menjadi sebuah alamat yang digunakan untuk menyimpan atau mengekstraksi record.

3. Record

Pada sistem basis data, record merupakan sekumpulan informasi yang tersusun atas atribut-atribut pembentuknya, berisikan sebuah informasi mengenai suatu data.

4. Fetch record

Fetch record merupakan kegiatan membaca data ke dalam memory.

5. Get-next record

Get-next record adalah kegiatan mengambil record berikutnya berdasarkan kriteria yang sama.

6. Insert a record

Insert a record adalah kegiatan menyisipkan sebuah record baru.

7. Update a record

Update a record adalah kegiatan memperbaharui isi suatu record.

8. Retrieve all records

Retrieve all records adalah kegiatanuntuk membaca seluruh record.

9. Reorganization

Reorganization adalah kegiatan menghapus record yang tidak valid, mengosongkan space untuk data baru dan mengatur ulang pengelompokkan data.

10. Memory

Memory adalah perangkat keras untuk menyimpan data pada komputer.

11. Memory Space

Memory space adalah kapasitas ruang penyimpanan data pada komputer.

III.

P

ARAMETER PERFORMANSI FILE

1. TF : waktu yang dibutuhkan untuk mem-fetch sembarang record dari file.

2. TN : waktu yang dibutuhkan untuk mendapatkan record berikutnya di dalam suatu file.

3. TI : waktu yang dibutuhkan untuk memperbaharui isi file dengan menambahkan sebuah record baru.

4. TU : waktu yang dibutuhkan untuk memperbaharui file dengan merubah isi record.

5. TX : waktu yang dibutuhkan untuk membaca seluruh file.

6. TY : waktu yang dibutuhkan untuk mereorganisasi file.

I

V

.

P

EMBAHASAN

Hashing adalah sebuah metode untuk memetakan data ataupun mengambil data dengan cara yang efisien berdasarkan kunci yang didapat dari fungsi hash. Pada metode hashing kita menempatkan data pada suatu tempat tertentu, dimana tempat untuk setiap data unik satu sama lainnya untuk memudahkan penyimpanan maupun pencarian data. Fungsi hash adalah fungsi yang memetakan data berdasarkan suatu kunci tertentu dimulai dari range terkecil sampai range maksimal.

Pada sistem basis data, kita definisikan terlebih dahulu besar blok memory (statis) yang akan digunakan untuk menyimpan data. Bila tidak diketahui berapa banyak data yang akan ditampung, kita dapat menggunakan sistem dynamic hashing dimana blok memory berkembang seiring kebutuhan. Kunci keberhasilan organisasi dengan hash adalah membuat suatu fungsi hash yang baik, karena performansi sistem dengan penggunaan metode hashing bergantung pada fungsi hash. Berikut ini adalah contoh penyimpanan sebuah record mahasiswa pada sistem basis data mahasiswa dengan huruf pertama dan huruf terakhir nama panggilan mahasiswa sebagai kunci fungsi hash.

Ilustrasi1.Tabel Contoh penyimpanan menggunakan hashing.

A Mekanisme Operasi-operasi basis data :

1. Fetch record

Untuk mem-fetch sebuah record yang terdapat dalam data, kita memetakan kunci dari query yang diminta

(3)

oleh user untuk kemudian dilewatkan ke fungsi hash., kemudian fungsi hash akan menunjukkan alamat dari data yang diminta oleh user dan kemudian data dipindahkan ke memory buffer untuk diproses lebih lanjut.

2. Get-next record

Untuk mendapatkan record selanjutnya setelah kita selesai membaca sebuah record, manfaatkan pointer pada record sebelumnya yang menunjuk pada address di mana record ke- n+1 disimpan setelah record ke n. Dengan memanfaatkan pointer maka waktu untuk mendapatkan record ke- n+1 dapat dikurangi. Jika kita tidak menggunakan pointer , maka sistem harus menelusuri seluruh data untuk mencari record ke-n+1.

Ilustrasi 2. Get-next record memanfaatkan pointer. Bila tidak ada pointer, kita dapat memanfaatkan konsep dense index files.

3. Insert a record

Untuk menyisipkan sebuah record baru, kita perlu memetakan kunci fungsi hash untuk mendapatkan alamat penyimpanan, kemudian langsung menyisipkan record yang baru ke alamat tersebut. Berikut contoh penyisipan data mahasiswa dengan fungsi hash yaitu jumlah seluruh kode ascii huruf-huruf pertama kata-kata penyusun nama mahasiswa di modulo 100.

Ilustrasi 3.Penyisipan

Pada beberapa kasus, terjadi collision dimana alamat hasil fungsi hash sudah berisikan record. Bila hal tersebut tejadi, maka ada beberapa strategi yang dapat kita lakukan, misalnya membuat 2 fungsi hash, bila fungsi pertama menghasilkan collision maka record akan dipetakan kembali menggunakan fungsi kedua. Strategi-strategi tersebut dibahas lebih dalam pada bagian “Strategi hash”. Kelakuan sistem database saat collision terjadi tergantung strategi mana yang kita implementasikan. Saat menyisipkan data baru, data sebelumnya akan menunjuk ke data baru yang dianggap sebagai next record (sesuai urutan perekaman). Alamat

record yang pertama direkam akan dicatat utuk kemudahan operasi retrieve all records.

4. Update a record

Untuk memperbaharui sebuah record, kita harus mengetahui dimana record tersebut berada, alamat sebuah record dicari menggunakan kunci hash yang dipetakan melalui fungsi hash, kemudian mencari atribut-atribut yang ingin diperbaharui dan menimpa nilai yang lama. Kasus bila ternyata alamat hasil fungsi hash tidak berisikan kunci yang sama (artinya terjadi collision saat penyisipan), berarti kita harus mencari alamat record tersebut berada dimana berdasarkan strategi hash kita untuk penanganan collision, kasus ini mirip seperti saat fetch a record, tetapi record tersebut tidak berada pada alamat yang bersangkutan.

5. Retrieve all records

Alamat record pertama yang direkam telah tersimpan, maka kita dapat menelusuri record-record berikutnya sampai habis untuk membaca semua record. Bila tidak ada pointer, kita dapat memanfaatkan konsep dense index files.

6. Reorganization

Dalam metode insert a record , terdapat peluang untuk mencapai collision dimana alamat hasil fungsi hash sudah berisikan record. Dalam hal ini,beberapa strategi diterapkan untuk menghindari collision ini seperti contohnya Linear Probing, Quadratic Probing, Separate Probing, dan Multi Hash Function. Dengan menggunakan strategi Linear Probing, ataupun Separate Chaining, record akan tersusun dengan baik dan blok kosong yang tidak terpakai dapat diminimalisir sehingga reorganisasi file mungkin kurang dibutuhkan untuk data yang padat. Sedangkan pada kasus Multi Hash Function (Quadradtic Probing juga dapat menghasilkan kasus yang serupa) dapat menghasilkan tabel seperti di bawah ini :

Ilustrasi 4. Multi Fungsi hash. Memetakan ke blok data berbeda.

(4)

Hal ini menyebabkan blok-blok baru yang dialokasikan sebagai tempat untuk record yang mengalami collision memiliki alamat-alamat kosong (dalam gambar di atas diperlihatkan hanya 2 alamat yang digunakan sedangkan memory yang dialokasikan untuk satu blok adalah 50). Dalam keadaan seperti ini lah akan dilakukan reorganisasi file sehingga blok-blok tersebut dapat digunakan semaksimal dan se-efisien mungkin. Prinsip reorganisasinya yaitu blok-blok yang hanya memiliki sedikit record (batas “sedikit” tergantung pengimplementasi) disisipkan ke blok-blok lain yang memiliki memory kosong (dapat dibantu oleh indeks untuk mencari blok memory kosong). Pada contoh diatas, saat reorganisasi, bisa memindahkan kedua record di blok 2 ke alamat kosong di blok 1, kemudian blok 2 dibebaskan.

B Strategi hash :

1. Linear Probing

Bila sebuah pemetaan kunci oleh fungsi hash ternyata sudah ditempati oleh record tertentu, maka cara paling sederhana adalah mencari posisi kosong terdekat berikutnya, metode ini disebut Linear Probing.

Ilustrasi 5. Linear Probing. Nama sebagai Kunci penyisipan.

Begitu pula untuk pencarian maupun pembaharuan data, bila data yang kita maksud ternyata bukan di alamat hasil fungsi, maka lanjut mencari ke alamat-alamat berikutnya.

2. Quadradtic Probing

Linear Probing hanya mencari lokasi kosong terdekat, bila collision banyak terjadi maka metode hash bisa menjadi sama seperti sequential. Bila hasil fungsi hash merupakan K, maka kita akan mencari lokasi kosong di K+1, K+4, K+9 dan seterusnya. Metode seperti ini disebut Quadradtic Probing. Begitu pula untuk pencarian maupun pembaharuan data, bila data yang kita maksud ternyata bukan di alamat hasil fungsi, maka lanjut mencari ke alamat-alamat berikutnya.

3. Separate Chaining

Separate Chaining adalah membuat list berkait saat terjadi collision, ketika alamat pemetaan ternyata sudah berisi suatu record, maka kita sambung saja record tersebut menggunakan struktur data list berkait.

Ilustrasi 6. Separate Chaining. Nama sebagai Kunci

Untuk kasus pencarian data kita harus membaca suatu alamat sampai habis (baca sampai ujung list berkait). List berkait tersebut mempunyai 2 pointer yaitu pointer tehadapat elemen list berikutnya dan pointer terhadap next record, karena belum tentu elemen list berikutnya merupakan next record.

4. Multi Hash Function

Bila terjadi collision atau data yang kita maksud (pencarian maupun pembaharuan) ternyata bukan di alamat hasil fungsi, kita dapat memetakan kembali kunci fungsi hash ke fungsi hash kedua, fungsi hash ketiga dan seterusnya. Fungsi hash bukan pertama ini dapat memetakan record ke block data yang sama ataupun block data yang berbeda.

Ilustrasi 4. Multi Fungsi hash. Memetakan ke blok data berbeda.

Ketika terjadi overflow,dalam artian semua alamat hasil pemetaan kunci seluruh fungsi hash telah berisi record maka strategi resolusinya menggunakan Linear Probing dimana kita mencari tempat kosong terdekat.

(5)

V. PERFORMANSI AKSES

Tabel 2. Perbandingan dengan model lain

Tabel 3. Perbandingan dengan model lain Parameter waktu diukur berdasarkan kompleksitas algoritma. Secara prinsip Hash merupakan metode yang relatif sulit untuk diimplementasikan dibandingkan metode-metode lainnya karena banyak aspek yang perlu diperhatikan. Heap unggul dalam kesederhanaan implementasi tetapi mudah terjadi kekusutan pencarian record. Sequential dan multitable clustering unggul dalam hal efektivitas memory space tetapi tidak terlalu optimal dalam hal waktu, contohnya untuk operasi penyisipan, pada kasus banyak kunci dengan awalan mirip walau dibantu indeks sekalipun tetap membutuhkan waktu pencarian ruang kosong. Reorganisasi file pada ketiga metode ini selain mengefektifkan memory, juga dapat mempercepat waktu operasi.

Hash unggul dalam hal waktu untuk melakukan operasi-operasi yang sering dilakukan berupa fetch a record, insert a record dan update (dengan kompleksitas algoritma O(1)) bila fungsi hash dapat dirancang dengan sangat baik. Pada kenyataannya, pada sistem basis data sangatlah sulit untuk tidak ada collision sama sekali, sehingga kita hanya dapat mengurangi hal tersebut melalui strategi-strategi yang sudah ada. Hash kurang unggul dalam hal efektivitas memory space karena bisa ada

banyak memory kosong bila tidak pernah ada kunci yang dipetakan ke alamat memory bersangkutan. Reorganisasi pada hash walau mengefektifkan memory, tetapi dapat menyebabkan waktu operasi data menjadi meningkat.

Metode hash ini baik untuk kasus data yang unik, semakin berbeda karakteristik kunci data maka semakin cocok fungsi hash ini dipakai, karena collision dapat diminimalisir dan proses operasi terhadap data lebih cepat (alamat pemetaan makin unik). Contohnya adalah sistem basis data mahasiswa dimana kuncinya merupaan NIM mahasiswa, produk supermarket (barcode produk unik), perpustakaan (ISBN buku unik).

VI. PENGARUH INDEKS

Indeks secara umum dapat membantu dalam hal mekanisme operasi. Indeks yang dgunakan dapat membantu menemukan sub-blok alamat kosong pada blok yang telah dialokasikan, ketika overflow terjadi, maka akan dicari alamat kosong melalui indeks untuk diletakkan pada alamat tersebut.

Dalam hal reorganisasi, bila terdapat blok dengan jumlah record yang sedikit (batas “sedikit” ditentukan oleh pembuat sistem) maka data tersebut akan dipindah ke alamat kosong (dengan bantuan indeks) untuk melepas memory pada blok bersangkutan, hal ini mempercepat proses dibanding harus menelusuri terlebih dahulu blok lain mana yang masih mempunyai alamat kosong.

Indeks yang cocok digunakan dapat berupa dense index files, menyimpan semua kunci yang pernah muncul, kemudian memetakan kunci-kunci tersebut menjadi alamat dengan fungsi hash, dari hal tersebut kitadapat menghitung berapa alamat yang kosong pada suatu blok (alamat awal dan akhir suatu blok diketahui) tanpa harus menelusurinya. Dense index files juga dapat dimanfaatkan untuk operasi retrieve all records maupun get-next record dengan mengindeks sesuai urutan kunci.

R

EFRENSI DAN BACAAN

[1] Patil, Varsha H. “Data Structures Using C++”. India : Oxford University Press, 2012.

[2] Silberchatz, Abraham. Korth, Henry F. S. Sudharsan. “Database System Concepts”6th Ed. New York : Mc Graw Hill, 2011.

[3] http://ecomputernotes.com/database-system/rdbms/types-of-file-organization. Diakses pada Selasa, 4 Februari 2014 (17:07 WIB) [4] http://www.cs.cmu.edu/~clo/www/CMU/DataStructures/Lessons/l

esson11_2.htm. Diakses pada Rabu, 5 Februari 2014 (09:36 WIB) [5] A.T Akinwale dan F.T. Ibharalu. “The Usefulness of Multilevel

Hash Tables with Multiple Hash Functions in Large Database”. Annals : Computer Science Series. 7th Tome 1st Fasc. 2009. [6] http://www.cise.ufl.edu/~sahni/dsaac/enrich/c11/overflow.htm.

Diakses pada Rabu, 5 Februari 2014 (10:11WIB).

P

ERNYATAAN

Dengan ini kami menyatakan bahwa makalah yang kami tulis ini adalah tulisankamia sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi.

(6)

Darwin Prasetio (13512001)

Jan Wira Gotama Putra (13512015)

Referensi

Dokumen terkait

Penelitian yang dilakukan oleh Nizwardi Azkha dalam Jurnal yang berjudul Studi Efektivitas Penerapan Kebijakan Perda Kota Tentang Kawasan Tanpa Rokok (KTR) Dalam Upaya

Dari vendor/penyedia layanan/pembuat aplikasi untuk sistem operasi Android pun juga harus memikirkan bahwa pengguna gadget, smartphone atau tablet Android ini bukan hanya dari

Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa atas limpahan rahmat dan karuunianya sehingga skripsi dengan judul “Penerapan Pembelajaran Project

sosiologi sastra pendekatan sosiologi sastra • Ketepatan mengkaji bagian sosiaologi sastra Jenis-jenis sosiologi sastra Tugas 6 Mahasiswa membaca novel, kemudian

Pada Teguh Servis Sragen, kekurangan sistem dapat dilakukan dengan menggunakan pendekatan ANALISIS SWOT yang terdiri dari :.. Jangkauan pasar yang sangat luas , karena

Dan apabila coodinator menerima data dengan nilai 11 maka coodinator akan mengirim data yang sebelumnya sudah dikirim ke endpoint1, tetapi coodinator merubah id supaya router

Angka-angka statistik tersebut menunjukkan bahwa variabel budaya kerja mempunyai pengaruh positif terhadap produktivitas pegawai di Balai Pengkajian Teknologi Pertanian

Selain berkomunikasi dengan antar pengguna jalan lain menggunakan isyarat lampu dan isyarat suara para awak bus seperti asisten pengemudi (kernet),dan kondektur pun