i
SIMULASI
PEMBELAJARAN METODE
PENCARIAN RELATIF (HASH SEARCH)
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh:
Antonius Saputra Santoso
NIM : 055314075
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
SIMULATION
LEARNING OF METHOD
HASH SEARCH
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain
Sarjana Komputer
Degree
In Informatics Engineering Department
By :
Antonius Saputra Santoso
Student ID : 055314075
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
v
MOTTO
“Ketika ku meminta pada Allah setangkai bunga segar, Ia memberiku kaktus penuh duri.
Lalu akupun meminta kepada-Nya binatang mungil nan cantik, Ia memberiku ulat
berbulu. Aku sempat sedih, protes, kecewa, benci, marah dan menyalahkan Allah bahwa
betapa tidak adilnya semua ini. Namun, kemudian kaktus itu berbunga sangat indah sekali
& ulat tadi itu pun tumbuh & berubah menjadi kupu-kupu yg amat cantik.
Itulah jalan Tuhan, indah pada waktunya. Tuhan tidak memberi apa yang kita harapkan
dan inginkan, tetapi Ia memberi apa yang kita perlukan. Terkadang kita sedih, kecewa dan
terluka, tetapi jauh di atas sgalanya setiap hari Tuhan tak kenal lelah telah merencanakan
viii
ABSTRAK
SIMULASI
PEMBELAJARAN METODE
PENCARIAN RELATIF ( HASH SEARCH )
Simulasi pembelajaran metode pencarian relatif (hash search) ini merupakan sebuah
perangkat lunak yang ingin dibuat oleh penulis untuk membantu sistem belajar-mengajar
khususnya yang mempelajari metode pencarian relatif (hash search) agar lebih menarik.
Pencarian data dengan menggunakan metode hash menawarkan metode penyimpanan
data maupun file dengan waktu akses yang cepat tanpa pencarian yang berlama-lama. Pada
Simulasi pembelajaran metode Hash ini penulis ingin menjelaskan bagaimana cara
pembelajaran metode pencarian relatif (
Hash Search) tentang
metode Hash Terbuka(O
pen
H
ashing
) dan metode Hash Tertutup(
Close
H
ashing). Metode
Hash Terbuka(
Open Hashing)
ialah Depan List
dan Belakang List, Dan Metode tertutup (C
lose
H
ashing) ialah
Resolusi
Linier (L
inier
R
esolution
), Overfow, Double Hashing.
Hasil akhir dari sistem pembuatan Simulasi pembelajaran ini adalah bagaimana cara
penyimpanan, penempatan dan pencarian data. Serta
input
data dapat disimpan dan dibuka
kembali.
ix
ABSTRACT
This hash search of method learning simulation is a software that is going to be made
by the writer for helping the teaching-learning system, especially one concerning about
Hash
Search
method in order to be more interesting.
Data searching by using Hash method offers data or file saving with the quick access
without searching any longer. In this Hash learning of method simulation, the writer attempts
to explain how to learn Hash Search method about Open and Close Hashing method. Open
Hashing method is Depan List (Front List) and Belakang List (Back List); and Close Hashing
is Linier Resolution, Overfow, Double Hashing.
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa, atas segala hal yang begitu luar biasa
yang telah dianugerahkan pada penulis dalam menyelesaikan skripsi ini dengan judul:
“SIMULASI PEMBELAJARAN METODE PENCARIAN RELATIF (HASH SEARCH)”.
Dalam menyelesaikan skripsi ini penulis mendapat bantuan, bimbingan dan motivasi dari
berbagai pihak. Pada kesempatan ini, penulis ingin menyampaikan terima kasih yang tak
terhingga kepada :
1.
Ibu Ridowati Gunawan S.Kom., M.T., Kepala Program Studi Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
2.
Bapak JB. Budi Darmawan, S.T., M.Sc., selaku Dosen Pembimbing Akademik dan
pembimbing skripsi. Terimakasih telah membimbing dan menyediakan waktu dalam
memberikan pengarahan selama kuliah dan penulisan skripsi ini.
3.
Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., Dosen penguji yang telah memberikan
bimbingan dan dukungan yang begitu berharga.
4.
Ibu Sri Hartati Wijono, S.Si., M.Kom. Dosen penguji yang telah memberikan
bimbingan dan dukungan yang begitu berharga.
5.
Para dosen Program Studi Teknik Informatika, yang telah berbagi ilmu dan
pengalaman serta membantu penulis selama kuliah di Universitas Sanata Dharma
Yogyakarta.
6.
Para Staf dan karyawan Universitas Sanata Dharma Yogyakarta yang telah
membantu dan memberikan banyak pertolongan penulis dari awal hingga akhir masa
kuliah.
7.
Ibu Leniawati yang tersayang, yang telah memberikan bimbingan, semangat, doa,
perhatian dan kasih sayang yang luar biasa.
xii
DAFTAR ISI
HALAMAN JUDUL BAHASA INDONESIA... i
HALAMAN JUDUL BAHASA INGGRIS... ii
HALAMAN PERSETUJUAN... iii
HALAMAN PENGESAHAN... iv
HALAMAN MOTTO... v
PERNYATAAN KEASLIAN KARYA... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA UNTUK
KEPENTINGAN AKADEMIS... vii
xiii
IV.1.1. Implementasi Algoritma Pengecekan Data Input
dan Tabel Hash………... 75
IV.1.2. Implementasi Algoritma Penempatan Data Close Hash………….. 86
IV.1.3. Implementasi Algoritma Penempatan Data Open Hash…………... 125
IV.1.4. Implementasi Algoritma Pencarian Data Close Hash……….. 144
xiv
V.1. Evaluasi Pengguna... 151
V.2. Pengumpulan Data Kuesioner... 151
V.3. Sasaran Penyebaran Kuesioner………...……….………. 151
V.4. Form Kuesioner………..………….…………. 152
V.5. Hasil Kuesioner………..………….………. 153
V.6. Analisa Kuesioner………..….………. 154
Bab VI. PENUTUP………..……….…...……...…. 159
VI.1. Kesimpulan………..……….…………. 159
VI.2. Saran………..……….…………... 161
DAFTAR PUSTAKA... 162
xv
Daftar Tabel
Tabel 2.1
Table waktu akses metode pencarian Hash Tertutup dengan
Resolusi Linier... 20
Tabel 2.2
Table waktu akses metode pencarian Hash Tertutup dengan
Overflow... 31
Tabel 3.8
Narasi Use Case Lihat Hasil Proses Simulasi
Penempatan Data………...……… 45
Tabel 3.9
Narasi Use Case Lihat Probabilitas………..……… 46
Tabel 3.10
Narasi Use Case Lihat Laporan Penempatan………..………. 47
Tabel 3.11
Narasi Use Case Simpan Laporan Penempatan………..………. 48
Tabel 3.12
Narasi Use Case Input Data Pencarian………..……….. 49
xvi
xvii
Daftar Gambar
Gambar 2.1
Simbol Use Case Diagram... 11
Gambar 2.2
Simbol Diagram Berjenjang…………... 11
Gambar 2.3
Simbol Data Flow Diagram... 12
Gambar 2.4
Masukan Data 1 dengan Resolusi Linier………...……… 15
Gambar 2.5
Masukan Data 4 dengan Resolusi Linier………...……… 15
Gambar 2.6
Masukan Data 5 dengan Resolusi Linier………...……… 15
Gambar 2.7
Masukan Data 8 dengan Resolusi Linier…………...……… 16
Gambar 2.8
Masukan Data 10 dengan Resolusi Linier……...……….. 16
Gambar 2.9
Masukan Data 11 dengan Resolusi Linier…...……….. 16
Gambar 2.10 Pencarian Data 8 dengan Resolusi Linier…………...……….. 17
Gambar 2.11 Pencarian Data 8 dengan Resolusi Linier………...………... 17
Gambar 2.12 Pencarian Data 22 dengan Resolusi Linier…...……… 18
Gambar 2.13 Pencarian Data 22 dengan Resolusi Linier...……… 18
Gambar 2.14 Pencarian Data 22 dengan Resolusi Linier………...……… 18
Gambar 2.15 Pencarian Data 22 dengan Resolusi Linier……...……… 19
Gambar 2.16 Pencarian Data 22 dengan Resolusi Linier………...……… 19
Gambar 2.17 Pencarian Data 22 dengan Resolusi Linier………...……… 20
Gambar 2.18 Pencarian Data 22 dengan Resolusi Linier……...……… 20
Gambar 2.19 Masukan Data 1 dengan Overflow…………...……… 21
Gambar 2.26 Masukan Data 1 dengan Overflow-Sekuensial…………..……….. 24
Gambar 2.27 Masukan Data 4 dengan Overflow-Sekuensial………..……….. 24
Gambar 2.28 Masukan Data 5 dengan Overflow-Sekuensial………..……….. 25
Gambar 2.29 Masukan Data 10 dengan Overflow-Sekuensial……..………... 25
xviii
Gambar 2.32 Masukan Data 16 dengan Overflow-Sekuensial…..………. 26
Gambar 2.33 Pencarian Data 15 dengan Overflow…………...……….. 27
Gambar 2.34 Pencarian Data 15 dengan Overflow………...……….. 27
Gambar 2.35 Pencarian Data 16 dengan Overflow……...……….. 28
Gambar 2.36 Pencarian Data 16 dengan Overflow…...……….. 28
Gambar 2.37 Pencarian Data 16 dengan Overflow…...……….. 29
Gambar 2.38 Pencarian Data 16 dengan Overflow...……….. 29
Gambar 2.39 Pencarian Data 16 dengan Overflow-Sekuensial..…………..……….. 30
Gambar 2.40 Pencarian Data 16 dengan Overflow-Sekuensial..………..……….. 30
Gambar 2.41 Pencarian Data 16 dengan Overflow-Sekuensial..……..……….. 31
Gambar 2.42 Pencarian Data 16 dengan Overflow-Sekuensial..…..……….. 31
Gambar 2.43 Penambahan Data Pada Depan List………...……… 33
Gambar 2.44 Penambahan Data Pada Belakang List………...………... 33
Gambar 3.1
Use Case Diagram………...……….. 39
Gambar 3.10 Masukan data 3 dengan metode close hash-Resolusi Linier……...……... 60
Gambar 3.11 Masukan Data 5 dengan metode close hash-Resolusi Linier…...………… 60
Gambar 3.12 Masukan Data 9 dengan metode close hash-Resilusi Linier...……… 60
Gambar 3.13 Masukan Data 10 dengan metode close hash-Resolusi Linie…..……….. 61
Gambar 3.14 Masukan data 15 dengan metode close hash-Resolusi Linier…..……….. 61
Gambar 3.15 Masukan data 18 dengan metode close hash-Resolusi ki……..……….... 61
Gambar 3.16 Rancangan Form Laporan………..……….. 62
Gambar 3.17 Rancangan Form Menu Utama………...……….. 63
Gambar 3.18 Rancangan Form Splash Screen………..………. 64
Gambar 3.19 Rancangan Form Utama………...……… 65
xix
Gambar 4.25 Rancangan Form Close Hash dengan
Resolusi Linier………..……….. 88
Gambar 4.26 Masukan Data 1 dengan Resolusi Linier………..……….. 89
xx
Gambar 4.43 Listing Form Close Hash dengan Resolusi Linier…….……..………... 101
Gambar 4.44 Rancangan Close Hash dengan Overflow-Sekuensial………... 102
Gambar 4.45 Masukan Data 1 dengan Overflow-Sekuensial………... 103
Gambar 4.46 Masukan Data 15 dengan Overflow-Sekuensial………..…..…... 104
Gambar 4.47 Masukan Data 24 dengan Overflow-Sekuensial…………..………….... 104
Gambar 4.48 Masukan Data 18 dengan Overflow-Sekuensial... 105
Gambar 4.49 Masukan Data 5 dengan Overflow-Sekuensial……….... 106
Gambar 4.50 Masukan Data 5 dengan Overflow-Sekuensial..……….. 106
Gambar 4.51 Masukan Data 10 dengan Overflow-Sekuensial……..……… 107
Gambar 4.52 Masukan Data 10 dengan Overflow-Sekuensial…..……….... 108
Gambar 4.53 Masukan Data 10 dengan Overflow-Sekuensial..………..…... 108
Gambar 4.54 Masukan Data 15 dengan Overflow-Sekuensial……..…..…………... 109
Gambar 4.55 Masukan Data 11 dengan Overflow-Sekuensial………..…………..….. 109
Gambar 4.56 Masukan Data 11 dengan Overflow-Sekuensial………..……..……….. 110
Gambar 4.57 Masukan Data 11 dengan Overflow-Sekuensial………..…………... 110
Gambar 4.58 Masukan Data 11 dengan Overflow-Sekuensial………..……….... 111
Gambar 4.59 Masukan Data 20 dengan Overflow-Sekuensial………..…………... 111
Gambar 4.60 Listing Form Close Hash dengan Overflow-Sekuensial…………... 113
xxi
Gambar 4.62 Masukan Data 1 dengan Overflow-Fungsi Hash Baru…………..…... 115
Gambar 4.63 Masukan Data 15 dengan Overflow-Fungsi Hash Baru…………... 115
Gambar 4.64 Masukan Data 24 dengan Overflow-Fungsi Hash Baru….………... 116
Gambar 4.65 Masukan Data 18 dengan Overflow-Fungsi Hash Baru…….………….. 117
Gambar 4.66 Masukan Data 5 dengan Overflow-Fungsi Hash Baru……...………….. 117
Gambar 4.67 Masukan Data 5 dengan Overflow-Fungsi Hash Baru………...……... 118
Gambar 4.68 Masukan Data 10 dengan Overflow-Fungsi Hash Baru………... 118
Gambar 4.69 Masukan Data 10 dengan Overflow-Fungsi Hash Baru………….……… 119
Gambar 4.70 Masukan Data 15 dengan Overflow-Fungsi Hash Baru……….……….... 120
Gambar 4.71 Masukan Data 11 dengan Overflow-Fungsi Hash Baru……… 121
Gambar 4.72 Masukan Data 11 dengan Overflow-Fungsi Hash ……… 122
Gambar 4.73 Masukan Data 11 dengan Overflow-Fungsi Hash Baru………. 122
Gambar 4.74 Masukan Data 20 dengan Overflow-Fungsi Hash Baru………. 123
Gambar 4.75 Listing Form Close Hash dengan Overflow-Fungsi Hash Baru……... 124
Gambar 4.76 Rancangan Form Open Hash dengan Belakang List………..…….... 126
Gambar 4.77 Masukan Data 1 dengan Belakang List……...………..……….... 127
Gambar 4.78 Masukan Data 15 dengan Belakang List……...…………..…………... 127
Gambar 4.79 Masukan Data 24 dengan Belakang List……...………....……….... 128
Gambar 4.80 Masukan Data 18 dengan Belakang List……...……..………..……….... 129
Gambar 4.81 Masukan Data 5 dengan Belakang List……...…..……….... 129
Gambar 4.82 Masukan Data 10 dengan Belakang List……..………... 130
Gambar 4.83 Masukan Data 15 dengan Belakang List…..……….. 131
Gambar 4.84 Masukan Data 11 dengan Belakang List……...…………...………….... 131
Gambar 4.85 Masukan Data 20 dengan Belakang List……...………...…..………….... 132
Gambar 4.86 Listing Open Hash dengan Belakang List………..……….... 133
xxii
Gambar 4.97 Listing Form Open Hash dengan Depan List………... 142
Gambar 4.98 Listing Form Pencarian Resolusi Linier……...……...………... 136
Gambar 4.99 Listing Form Pencarian Overflow-Sekuensial…….………... 136
Gambar 4.100 Listing Form Pencarian Overflow & Double Hash dengan Rehash…..…. 136
Gambar 4.88 Listing Form Pencarian Open Hash..……...………..……... 136
1
BAB I
PENDAHULUAN
I.1.
Latar Belakang
Pencarian data merupakan kegiatan yang sering kita lakukan dalam
kehidupan sehari–hari. Kita sering melakukan kegiatan mencari data, mencari
data pertama dan menggantikannya dengan data kedua, atau mencari data tertentu
dan menghitung frekuensi kemunculan kata tersebut dalam dokumen. Dalam
pencarian data terdapat bermacam-macam metode pencarian (searching) di
antaranya adalah metode pencarian interpolasi (
interpolation search),
metode
pencarian biner (
binary search),
metode pencarian linier (
linear/sequential
search), metode pencarian langsung (direct
S
earch
)
dan metode pencarian relatif
hash search
.
Masing-masing metode yang ada tersebut mempunyai kelebihan dan
kekurangan.
2
tabrakan (
collisio
n) ini dapat dilakukan dengan beberapa strategi yaitu resolusi
linier (
linear resolution
),
overflow
dan
double hashing
(Munir & Leoni, 2002).
Metode hash search ini merupakan salah satu materi dalam mata kuliah
struktur data yang selama ini banyak mahasiswa mengalami kesulitan dalam
memahami materi tersebut. Para mahasiswa mengalami kesulitan dalam
memahami materi dalam perkuliahan tersebut disebabkan pula karena sistem
belajar dan mengajar masih tradisional. Para mahasiswa cenderung sebagai
pendengar yang pasif dengan hanya mendengarkan penjelasan dari dosen di kelas.
Oleh karena itu, penulis tertarik untuk membuat sebuah Simulasi Pembelajaran
Metode Relatif Hash Search agar mahasiswa lebih tertarik untuk aktif,
memperhatikan dan diharapkan mahasiswa dapat mempelajari kembali di luar
kelas. Simulasi Pembelajaran Metode Relatif Hash Search ini diimplementasikan
dalam Computer Asisted Intruction (CAI). Computer Asisted Intruction (CAI)
ialah merupakan metode pengajaran interaktif yang menggunakan komputer
sebagai medianya. Menurut (Arsyad, 1996). Dalam membangun simulasi ini
penulis menggunakan bahasa Visual Basic, CorelDraw X4 dan menggunakan
Computer Assisted Intruction (CAI) sebagai salah satu metode pengajaran
interaktif yang menggunakan komputer sebagai media pembelajarannya.
3
I.2.
Rumusan Masalah
Dari latar belakang masalah maka dapat dibuat suatu rumusan masalah
yaitu: bagaimana cara menganalisa, merancang, mengimplementasikan simulasi
pembelajaran metode relatif
Hash Search
untuk mendukung proses
belajar-mengajar
.
I.3.
Tujuan
Tujuan penyusunan tugas akhir (skripsi) ini adalah untuk membangun
sebuah simulasi pembelajaran metode pencarian relatif hash search yang
mendukung proses belajar mengajar, sehingga dapat membantu mahasiswa dalam
memahami bagaimana cara operasi pengecekan, penempatan, dan pencarian data
dengan metode pencarian relatif hash search secara tahap demi tahap.
I.4.
Batasan Masalah
Dalam penelitian yang dilakukan, penulis menentukan batasan beberapa
batasan masalah sebagai berikut:
1.
Input
data dibatasi pada keyboard atau dari file dan
output
perangkat lunak
pada layar monitor.
2.
Data yang di-
input
berupa numerik
integer
, karena untuk simulasi
pembelajaran ini dirasa sudah cukup memenuhi untuk pembelajaran
metode pencarian relatif hash search.
4
4.
Tabel utama pada open hash maximum 15 tabel. Karena keterbatasan
pengaturan tampilan.
5.
Pembahasan metode hash dinamis mencakup hash terbuka (
open hash
)
dan hash tertutup (
closed hash
) yang mencakup strategi mengatasi
tabrakan (
collision
) antara lain strategi resolusi linier (
linear resolution
),
overflow
dan
double hashing
.
6.
Fungsi hash sudah ditentukan pada program berdasarkan inputan nilai
ukuran tabel.
I.5.
Metodologi Penelitian
Langkah – langkah pembuatan perangkat lunak ini adalah sebagai berikut:
1.
Studi literatur
Membaca dan mempelajari teori-teori dari berbagai sumber baik dari buku,
laporan penelitian, jurnal ilmiah dan makalah dari internet yang berhubungan
dengan metode
Hash Search
dan
Visual Basic 6.0
.
2.
Perancangan dan implementasi sistem yang akan dibuat menggunakan metode
FAST
(Framework for the Application of Systems Thinking)
. Menurut
(Whitten.J.L, et.al., 2004)
FAST
(Framework for the Application of Systems
Thinking)
terdiri dari:
5
b)
Logical Design
, merupakan tahap untuk menterjemahkan kebutuhan user
kedalam sistem model atau desain secara logika.
Fase
ini meliputi:
diagram konteks, diagram berjenjang dan data flow diagram
(DFD)
.
c)
Construction and Testing,
merupakan tahap konstruksi dan pengujian
komponen sistem. Output berupa
sistem fungsional
yang siap untuk
diimplementasikan.
I.6.
Sistematika Penulisan
Struktur penulisan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan
penelitian, metodologi penelitian dan sistematika penulisan dari pembuatan tugas
akhir ini.
BAB II LANDASAN TEORI
Berisi tentang dasar teori yang mendukung pembuatan tugas akhir.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang penjelasan dan perancangan sistem yang dibangun,
meliputi deskripsi sistem, perancangan subsistem yang akan dibangun yakni
subsistem manajemen data, manajemen model dan manajemen dialog.
BAB IV IMPLEMENTASI SISTEM
6
BAB V ANALISA HASIL
Berisi tentang hasil sistem yang dibangun, kelebihan dan kekurangan
sistem.
BAB VI PENUTUP
Berisi kesimpulan dan saran-saran pengembangannya.
DAFTAR PUSTAKA
7
BAB II
LANDASAN TEORI
II.1. Pengertian Simulasi
Simulasi adalah model dari suatu sistem yang berfungsi untuk menirukan
perilaku sistem nyata yang memanipulasi sebuah model sedemikian rupa sehingga
model tersebut bekerja dalam ruang dan waktu menurut (Hadi, 2002). Simulasi
inilah yang nantinya digunakan sebagai fasilitas pendukung dalam proses belajar
mengajar di suatu institusi pendidikan.
II.2.
Definisi Computer Assisted Intruction (CAI)
Computer Asisted Intruction (CAI) ialah merupakan metode pengajaran
interaktif yang menggunakan komputer sebagai medianya (Arsyad, 1996).
Dalam pembuatan Computer Asisted Intruction (CAI) yang interaktif
maka dibutuhkan penyusunan berbagai cara interaksi manusia dengan computer.
Tujuannya ialah untuk memudahkan pengoperasian komputer dan memanfaatkan
umpan balik yang diperlukan selama bekerja pada sebuah sistem komputer.
Pengguna sering mensyaratkan agar suatu program aplikasi sesuai dengan
keinginannya dan menyediakan berbagai kemudahan pada saat mengoperasikan
perangkat lunak tersebut.
8
1.
Tutorial
Program pembelajaran tutorial dengan bantuan komputer meniru
sistem tutor yang dilakukan oleh guru atau instruktur. Informasi atau
pesan berupa suatu konsep disajikan pada layar komputer berupa teks,
gambar atau grafik. Pada saat yang tepat mahasiswa diperkirakan telah
membaca, menginterpretasi dan menyerap konsep serta pertanyaan
atau soal diajukan. Jika jawaban mahasiswa benar, komputer akan
melanjutkan penyajian informasi atau konsep berikutnya dan jika
jawaban salah, komputer dapat kembali ke informasi konsep
sebelumnya atau pindah ke salah satu dari beberapa penyajian
informasi konsep remedial. Perpindahan ke salah satu konsep remedial
ditentukan oleh jenis kesalahan yang dibuat oleh mahasiswa (Arsyad,
1996). Model tutorial ini memiliki 2 jenis :
a.
Tutorial Terprogram
9
menyelesaikan beberapa latihan dan tugas. Semakin banyak
alternatif cabang yang tersedia, semakin luwes program tersebut
menyesuaikan diri dengan perbedaan individual mahasiswa. Media
tambahan lain biasanya digabungkan untuk format tutorial
terprogram, seperti tugas-tugas bacaan berbasis cetak, kegiatan
kelompok, percobaan laboratorium, kegiatan latihan, simulasi dan
interaktif dengan tutorial video disk. Manfaat tutorial terprogram
akan nampak jika menggunakan kemampuan teknologi komputer
untuk bercabang dan interaktif.
b.
Tutorial Intelijen
Berbeda dari tutorial terprogram karena jawaban komputer
terhadap pertanyaan mahasiswa dihasilkan oleh intelegensia
artifisial (kecerdasan buatan), bukan jawaban-jawaban yang
terprogram yang telah disiapkan terlebih dahulu oleh si perancang.
Dengan demikian, ada dialog dari waktu ke waktu antara
mahasiswa dengan komputer. Baik siswa maupun komputer dapat
bertanya ataupun memberi jawaban.
2.
Drills and Practice (Latihan)
10
pengajar pada akhir kegiatan dan menjadi landasan untuk
pembelajaran selanjutnya.
3.
Simulasi
Program simulasi dengan bantuan komputer mencoba untuk menyamai
proses dinamis yang terjadi di dunia nyata, misalnya mahasiswa
menggunakan komputer untuk mensimulasikan cara menerbangkan
pesawat terbang, menjalankan usaha kecil, atau memanipulasi
pengendalian pembangkit listrik tenaga nuklir. Program ini berusaha
memberikan pengalaman masalah “dunia nyata” yang berhubungan
dengan risiko seperti bangkrut, malapetaka nuklir, kecelakaan dan
lain-lain.
4.
Permainan (games)
Permainan biasa digunakan untuk mengajarkan materi. Permainan juga
meliputi proses pembelajaran seperti pengambilan keputusan dan
kemampuan berkomunikasi.
5.
Pemecahan Masalah
Program didesain untuk digunakan secara umum sebagai proses
pembelajaran.
II.3. Metodologi Penulisan
Dalam simulasi ini menggunakan metode FAST (Whitten.J.L, et.al.,
2004) yaitu sebagai berikut:
1.
Use Case
11
menggambarkan siapa yang akan menggunakan sistem dan dengan
cara apa pengguna mengharapkan untuk berinteraksi dengan sistem
(Whitten.J.L, et.al., 2004).
Gambar 2.1 Simbol Use Case
2.
Diagram Berjenjang
Diagram berjenjang atau diagram dekomposisi adalah alat yang
digunakan untuk menggambarkan dekomposisi sistem atau bagan
hierarki (Whitten.J.L, et.al., 2004).
Gambar 2.2 Simbol Diagram Berjenjang
3.
Data Flow Diagram (DFD)
Data flow diagram adalah model proses yang digunakan untuk
menggambarkan aliran data melalui sebuah sistem dan tugas atau
pengolahan yang dilakukan oleh sistem (Whitten.J.L, et.al., 2004).
12
Gambar 2.3 Simbol Data Flow Diagram
II.4. Metode Pencarian
Dalam ilmu komputer, ada bermacam-macam metode pencarian
(
searching
). Secara garis besar, menurut (Munir & Leoni, 2002) metode pencarian
data dapat dibagi menjadi 2 bagian yaitu:
1.
Metode pencarian data tanpa penempatan data antara lain:
a.
Metode pencarian Linier (
Linear / Sequential Search
).
b.
Metode pencarian Biner (
Binary Search
).
c.
Metode pencarian Interpolasi (
Interpolation Search
).
2.
Metode pencarian data dengan penempatan data antara lain:
a.
Metode pencarian Langsung (
Direct Search
).
b.
Metode pencarian Relatif (
Hash Search
).
13
II.5. Metode Pencarian Relatif Hash Search
Metode pencarian Relatif Hash Search ini hampir mirip dengan metode
pencarian langsung (
Direct Search
), yaitu dengan menggunakan rumus tertentu
baik pada saat penempatan maupun pencarian data. Pencarian Relatif Hash Search
memiliki efisiensi penggunaan tempat yang lebih baik daripada pencarian
langsung (
Direct Search
). Fungsi index (I – 1) yang digunakan oleh metode
pencarian langsung (
Direct Search
) memiliki efisiensi penggunaan tempat yang
buruk, sehingga metoda pencarian relatif hash search memperbaikinya dengan
menggunakan fungsi operasi modulo (mod) (Munir & Leoni, 2002).
Fungsi operasi modulo (mod) ini sering disebut sebagai Fungsi
Hash
dan
tempat penampungan data disebut Tabel
Hash
. Fungsi
Hash
bukan merupakan
fungsi satu – satu seperti fungsi bagi dari metoda pencarian Langsung (
Direct
Search
) sehingga ada kemungkinan beberapa data memiliki hasil fungsi yang
sama. Hal ini mengakibatkan terjadinya tabrakan (
collision
) pada saat penempatan
data ke dalam tabel sehingga diperlukan strategi untuk mengatasi tabrakan
(
collision
) ini. Strategi untuk mengatasi tabrakan (
collision
) ini ada
bermacam-macam dan masing memiliki kelebihan dan kekurangannya
masing-masing. Strategi ini akan dijelaskan pada bagian berikutnya.
Fungsi
Hash
membuat data yang tersimpan dalam Tabel
Hash
memiliki 2
jenis alamat/
address
(Munir & Leoni, 2002) yaitu:
1.
Home Address
adalah lokasi (
address
) yang diperoleh dengan
menggunakan Fungsi
Hash
.
14
Sedangkan metode pencarian Relatif Hash Search ini terdiri dari 2 macam,
diantaranya adalah sebagai berikut:
1.
Hash Tertutup (
Closed Hash
)
2.
Hash Terbuka (
Open Hash
)
II.5.1. Hash Tertutup (Closed Hash)
Hash Tertutup (
Closed Hash
) didefinisikan sebagai cara
Hash
dimana data
langsung disimpan dalam tabel
Hash
dengan ukuran tabel tertentu (dapat
ditentukan sendiri). Fungsi
Hash
tersebut dapat didefinisikan sebagai berikut:
H(X) = X mod [ukuran tabel]
keterangan : X
= nilai data
H(X) = hasil fungsi
Hash
.
Dalam penerapan fungsi
Hash
di atas dalam perhitungan, terdapat kemungkinan
beberapa data memiliki hasil fungsi
Hash
yang sama. Hal ini menyebabkan
terjadinya tabrakan (
collision
) pada saat penempatan data. Tabrakan (
collision
)
dapat diatasi dengan menggunakan beberapa strategi antara lain,
1.
Resolusi Linier (
Linear Resolution
)
2.
Overflow
3.
Double Hashing
1. Resolusi Linier (Linear Resolution)
15
h’
i(X) = (h’
i-1(X) + 1) mod [ukuran tabel]
Agar lebih jelas, dapat dilihat pada contoh di bawah ini:
Misalkan data
input
: 1, 4, 5, 8, 10, 11, dengan jumlah data = 6, ukuran tabel = 7
dan fungsi
Hash
h(X) = X mod 7.(Lihat gambar 2.4 sampai gambar 2.9).
Proses penempatan data untuk data di atas adalah sebagai berikut,
1.
Masukkan data 1
h(1) = 1 mod 7 = 1
Tampilan disajikan pada gambar 2.4
Gambar 2.4 masukan data 1 dengan resolusi linier
2.
Masukkan data 4
h(4) = 4 mod 7 = 4
Tampilan disajikan pada gambar 2.5
Gambar 2.5 masukan data 4 dengan resolusi linier
3.
Masukkan data 5
h(5) = 5 mod 7 = 5
Tampilan disajikan pada gambar 2.6
16
4.
Masukkan data 8
h(8) = 8 mod 7 = 1
terjadi tabrakan dengan data 1 pada tabel.
h’(8) = (1 + 1) mod 7 = 2
Tampilan disajikan pada gambar 2.7
Gambar 2.7 masukan data 8 dengan resolusi linier
5.
Masukkan data 10
h(10) = 10 mod 7 = 3
Tampilan disajikan pada gambar 2.8
Gambar 2.8 masukan data 10 dengan resolusi linier
6.
Masukkan data 11
h(11) = 11 mod 7 = 4
terjadi tabrakan dengan data 4 pada tabel.
h’(11) = (4 + 1) mod 7 = 5
terjadi tabrakan dengan data 5 pada tabel.
h’(11) = (5 + 1) mod 7 = 6
Tampilan disajikan pada gambar 2.9
Gambar 2.9 masukan data 11 dengan resolusi linier
Fungsi
Hash
yang sama juga digunakan untuk melakukan proses pencarian
data. Misalkan lagi data yang dicari (X) sama dengan 8, maka proses pencarian
datanya adalah sebagai berikut, ( lihat gambar 2.10 dan gambar 2.11)
1.
Hitung nilai fungsi
Hash
untuk data 8
h(8) = 8 mod 7 = 1
Tampilan disajikan pada gambar 2.10
17
2.
Posisi ke-1 pada tabel berisi data 1 dan tidak sama dengan data yang dicari
sehingga pencarian dilanjutkan.
Gambar 2.10 pencarian data 8 dengan resolusi linier
3.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 8
h’(8) = (1 + 1) mod 7 = 2
Tampilan disajikan pada gambar 2.11
4.
Posisi ke-2 pada tabel berisi data 8 dan sama dengan data yang dicari
sehingga pencarian dihentikan dan dinyatakan SUKSES.
Gambar 2.11 pencarian data 8 dengan resolusi linier
Pencarian data di atas dilakukan untuk data yang terdapat pada tabel
(pencarian SUKSES). Untuk data yang tidak terdapat dalam tabel (pencarian
GAGAL) dapat dilihat pada contoh di bawah ini:
Misalkan lagi data yang dicari (X) sama dengan 22, maka proses pencarian
datanya adalah sebagai berikut, ( lihat gambar 2.12 sampai gambar 2.18)
1.
Hitung nilai fungsi
Hash
untuk data 22
h(22) = 22 mod 7 = 1
Tampilan disajikan pada gambar 2.12
1
8
10
4
5
11
0 1 2 3 4 5 6
1
8
10
4
5
11
18
2.
Posisi ke-1 pada tabel berisi data 1 dan tidak sama dengan data yang dicari
sehingga pencarian dilanjutkan.
Gambar 2.12 pencarian data 22 dengan resolusi linier
3.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (1 + 1) mod 7 = 2
Tampilan disajikan pada gambar 2.13
4.
Posisi ke-2 pada tabel berisi data 8 dan tidak sama dengan data yang dicari
sehingga pencarian dilanjutkan.
Gambar 2.13 pencarian data 22 dengan resolusi linier
5.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (2 + 1) mod 7 = 3
Tampilan disajikan pada gambar 2.14
6.
Posisi ke-3 pada tabel berisi data 10 dan tidak sama dengan data yang
dicari sehingga pencarian dilanjutkan.
Gambar 2.14 pencarian data 22 dengan resolusi linier
1
8
10
4
5
11
0 1 2 3 4 5 6
1
8
10
4
5
11
0 1 2 3 4 5 6
1
8
10
4
5
11
19
7.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (3 + 1) mod 7 = 4
Tampilan disajikan pada gambar 2.15
8.
Posisi ke-4 pada tabel berisi data 4 dan tidak sama dengan data yang dicari
sehingga pencarian dilanjutkan.
Gambar 2.15 pencarian data 22 dengan resolusi linier
9.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (4 + 1) mod 7 = 5
Tampilan disajikan pada gambar 2.16
10.
Posisi ke-5 pada tabel berisi data 5 dan tidak sama dengan data yang dicari
sehingga pencarian dilanjutkan.
Gambar 2.16 pencarian data 22 dengan resolusi linier
11.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (5 + 1) mod 7 = 6
Tampilan disajikan pada gambar 2.17
1
8
10
4
5
11
0 1 2 3 4 5 6
1
8
10
4
5
11
20
12.
Posisi ke-6 pada tabel berisi data 11 dan tidak sama dengan data yang
dicari sehingga pencarian dilanjutkan.
Gambar 2.17 pencarian data 22 dengan resolusi linier
13.
Hitung kembali nilai fungsi
Hash
dengan menggunakan fungsi
Rehashing
untuk data 22
h’(22) = (6 + 1) mod 7 = 0
Tampilan disajikan pada gambar 2.18
14.
Posisi ke-0 pada tabel masih kosong sehingga pencarian dihentikan dan
dinyatakan GAGAL.
Gambar 2.18 pencarian data 22 dengan resolusi linier
Waktu akses untuk pencarian SUKSES untuk data di atas dapat dilihat pada tabel
berikut ini:
Tabel 2.1 Waktu akses metode pencarian Hash Tertutup dengan resolusi Linier
keterangan: X = jumlah data
T = jumlah data untuk menempati tempat
Sehingga waktu akses rata – rata dari metoda pencarian
Hash
Tertutup dengan
strategi Resolusi Linier (
Linear Resolution
) untuk pencarian SUKSES adalah
sebesar 9/6 = 1,5 dan kemungkinan terburuk adalah menelusuri seluruh tabel dan
21
gagal. Waktu akses ini sudah cukup baik, walaupun tidak sebagus metoda
pencarian Langsung (
Direct Search
). Namun, efisiensi penggunaan tempat dari
metoda ini adalah 6/7 * 100 % = 85,714 % dan sudah jauh lebih baik daripada
metoda pencarian Langsung (
Direct Search
).
2. Overflow
Strategi ini mengatasi / mengurangi tabrakan (
collision
) dengan cara
membagi tabel menjadi 2 buah, yaitu tabel utama dan tabel
overflow
dengan
ketentuan ukuran tabel utama lebih besar daripada ukuran tabel
overflow
. Cara
penempatan data pada tabel utama dilakukan dengan menggunakan fungsi
Hash
.
Jika terjadi tabrakan (
collision
), maka data ditempatkan pada tabel
overflow
.
Cara penempatan data pada tabel
overflow
dapat dilakukan dengan cara
sekuensial atau menggunakan fungsi
Hash
yang baru. Jika tabel
overflow
telah
penuh, maka data yang masuk ke dalam tabel
overflow
akan ditolak. Agar lebih
jelas, dapat dilihat pada contoh di bawah ini:
Misalkan data
input
: 1, 4, 5, 10, 11, 15, 16 dengan jumlah data = 7, ukuran tabel
utama = 5, ukuran tabel
overflow
= 3, fungsi
Hash
untuk tabel utama h(X) = X
mod 5 dan fungsi
overflow
g(X) = X mod 3 (lihat gambar 2.19 sampai gambar
2.25). Proses penempatan data untuk data di atas adalah sebagai berikut:
1.
Masukkan data 1.
h(1) = 1 mod 5 = 1
Tampilan disajikan pada gambar 2.19
Gambar 2.19 masukan data 1 dengan overflow
22
2.
Masukkan data 4.
h(4) = 4 mod 5 = 4
Tampilan disajikan pada gambar 2.20
Gambar 2.20 masukan data 4 dengan overflow
3.
Masukkan data 5.
h(5) = 5 mod 5 = 0
Tampilan disajikan pada gambar 2.21
Gambar 2.21 masukan data 5 dengan overflow
4.
Masukkan data 10.
h(10) = 10 mod 5 = 0
tabrakan dengan data 5 pada tabel utama.
g(10) = 10 mod 3 = 1
Tampilan disajikan pada gambar 2.22
23
5.
Masukkan data 11.
h(11) = 11 mod 5 = 1
tabrakan dengan data 1 pada tabel utama.
g(11) = 11 mod 3 = 2
Tampilan disajikan pada gambar 2.23
Gambar 2.23 masukan data 11 dengan overflow
6.
Masukkan data 15.
h(15) = 15 mod 5 = 0
tabrakan dengan data 5 pada tabel utama.
g(15) = 15 mod 3 = 0
Tampilan disajikan pada gambar 2.24
Gambar 2.24 masukan data 15 dengan overflow
7.
Masukkan data 16.
24
Karena tabel
overflow
telah penuh, maka data 16 ditolak.
Tampilan disajikan pada gambar 2.25
Gambar 2.25 masukan data 16 dengan overflow
Untuk contoh di atas (kasus overflow), jika penempatan data pada tabel
overflow
dilakukan dengan cara sekuensial, maka proses penempatan data untuk data di
atas menjadi seperti berikut (lihat gambar 2.26 sampai gambar 2.32).
1.
Masukkan data 1.
h(1) = 1 mod 5 = 1
Tampilan disajikan pada gambar 2.26
Gambar 2.26 masukan data 1 dengan overflow-sekuensial
2.
Masukkan data 4.
h(4) = 4 mod 5 = 4
Tampilan disajikan pada gambar 2.27
25
3.
Masukkan data 5.
h(5) = 5 mod 5 = 0
Tampilan disajikan pada gambar 2.28
Gambar 2.28 masukan data 5 dengan overflow-sekuensial
4.
Masukkan data 10.
h(10) = 10 mod 5 = 0
tabrakan dengan data 5 pada tabel utama.
Karena posisi ke-0 pada tabel
overflow
masih kosong, maka data 10
ditempatkan pada posisi tersebut.
Tampilan disajikan pada gambar 2.29
Gambar 2.29 masukan data 10 dengan overflow-sekuensial
5.
Masukkan data 11.
h(11) = 11 mod 5 = 1
tabrakan dengan data 1 pada tabel utama.
Data 11 ditempatkan pada posisi ke-1 karena posisi ke-0 telah terisi.
Tampilan disajikan pada gambar 2.30
26
6.
Masukkan data 15.
h(15) = 15 mod 5 = 0
tabrakan dengan data 5 pada tabel utama.
Data 15 ditempatkan pada posisi ke-2 karena posisi ke-0 dan 1 telah terisi.
Tampilan disajikan pada gambar 2.31
Gambar 2.31 masukan data 15 dengan overflow-sekuensial
7.
Masukkan data 16.
h(16) = 16 mod 5 = 1
tabrakan dengan data 1 pada tabel utama.
Karena tabel
overflow
telah penuh, maka data 16 ditolak.
Tampilan disajikan pada gambar 2.32
Gambar 2.32 masukan data 16 dengan overflow-sekuensial
Proses pencarian data sama menggunakan fungsi yang sama dengan proses
penempatan data. Misalkan data yang dicari adalah 15, maka proses pencarian
data untuk penempatan data pada tabel
overflow
menggunakan fungsi
overflow
adalah sebagai berikut (lihat gambar 2.33 samapai gambar 2.34):
1.
Hitung nilai fungsi
Hash
untuk data 15
h(15) = 15 mod 5 = 0
Tampilan disajikan pada gambar 2.33
2.
Posisi ke-0 pada tabel utama berisi data 5 dan tidak sama dengan nilai data
yang dicari, sehingga pencarian dilanjutkan ke tabel
overflow
.
27
Gambar 2.33 pencarian data 15 dengan overflow
3.
Karena proses penempatan data pada tabel
overflow
menggunakan fungsi
overflow
, untuk proses pencarian data juga menggunakan fungsi
overflow
yang sama untuk data 15 (lihat gambar 2.34)
h(15) = 15 mod 3 = 0
4.
Posisi ke-0 pada tabel
overflow
berisi data 15 dan sama dengan nilai data
yang dicari, sehingga pencarian dihentikan dan dinyatakan SUKSES.
Gambar 2.34 pencarian data 15 dengan overflow
Pencarian tersebut dilakukan untuk data yang berada dalam tabel (pencarian
SUKSES), untuk data yang tidak berada dalam tabel dapat dilihat pada contoh
berikut ini. Misalkan data yang dicari adalah 16, maka proses pencarian data
untuk penempatan data pada tabel
overflow
menggunakan fungsi
overflow
adalah
sebagai berikut, ( lihat gambar 2.35 sampai gambar 2.38):
1.
Hitung nilai fungsi
Hash
untuk data 16
h(16) = 16 mod 5 = 1
Tampilan gambar 2.35
2.
Posisi ke-1 pada tabel utama berisi data 1 dan tidak sama dengan nilai data
yang dicari, sehingga pencarian dilanjutkan ke tabel
overflow
.
28
Gambar 2.35 pencarian data 16 dengan overflow
3.
Karena proses penempatan data pada tabel
overflow
menggunakan fungsi
overflow
, untuk proses pencarian data juga menggunakan fungsi
overflow
yang sama untuk data 16
h(16) = 16 mod 3 = 1
Tampilan disajikan pada 2.36
4.
Posisi ke-1 pada tabel
overflow
berisi data 10 dan tidak sama dengan nilai
data yang dicari, sehingga pencarian dilanjutkan.
Gambar 2.36 pencarian data 16 dengan overflow
5.
Hitung nilai fungsi
overflow
dengan menggunakan fungsi
Rehashing
untuk
data 16
h’(16) = (1 + 1) mod 3 = 2
Tampilan disajikan pada gambar 2.37
6.
Posisi ke-2 pada tabel
overflow
berisi data 11 dan tidak sama dengan nilai
data yang dicari, sehingga pencarian dilanjutkan.
29
Gambar 2.37 pencarian data 16 dengan overflow
7.
Hitung nilai fungsi
overflow
dengan menggunakan fungsi
Rehashing
untuk
data 16
h’(16) = (2 + 1) mod 3 = 0
Tampilan disajikan pada gambar 2.38
8.
Posisi ke-0 pada tabel
overflow
berisi data 15 dan tidak sama dengan nilai
data yang dicari. Proses pencarian telah menelusuri seluruh tabel
overflow
dan data tidak ditemukan sehingga proses pencarian dihentikan dan
dinyatakan GAGAL.
Gambar 2.38 pencarian data 16 dengan overflow
Jika proses penempatan data pada tabel
overflow
menggunakan cara
sekuensial, maka proses pencarian juga menggunakan cara yang sama. Agar lebih
jelas, dapat dilihat pada contoh berikut ini:
Misalkan data yang dicari adalah 16, maka proses pencarian data untuk
penempatan data pada tabel
overflow
menggunakan cara sekuensial adalah
sebagai berikut, (lihat tabel 2.39 sampai gambar 3.42):
30
1.
Hitung nilai fungsi
Hash
untuk data 16
h(16) = 16 mod 5 = 1
Tampilan disajikan pada gambar 2.39
2.
Posisi ke-1 pada tabel utama berisi data 1 dan tidak sama dengan nilai data
yang dicari, sehingga pencarian dilanjutkan ke tabel
overflow
.
Gambar 2.39 pencarian data 16 dengan overflow-sekuensial
3.
Karena proses penempatan data pada tabel
overflow
menggunakan cara
sekuensial, untuk proses pencarian data juga menggunakan cara sekuensial
untuk data 16.
4.
Lihat posisi ke-0 pada tabel
overflow
. Posisi ke-0 berisi data 10 dan tidak
sama dengan data yang dicari sehingga pencarian dilanjutkan
Tampilan disajikan pada gambar 2.40
Gambar 2.40 pencarian data 16 dengan overflow-sekuensial
5.
Lihat posisi ke-1 pada tabel
overflow
. Posisi ke-1 berisi data 11 dan tidak
sama dengan data yang dicari sehingga pencarian dilanjutkan
31
Gambar 2.41 pencarian data 16 dengan overflow-sekuensial
6.
Lihat posisi ke-2 pada tabel
overflow
. Posisi ke-2 berisi data 15 dan tidak
sama dengan data yang dicari (lihat gambar 2.42).
Karena proses pencarian telah menelusuri seluruh tabel
overflow
dan data
tidak ditemukan, sehingga proses pencarian dihentikan dan dinyatakan
GAGAL.
Gambar 2.42 pencarian data 16 dengan overflow-sekuensial
Waktu akses untuk pencarian SUKSES dengan penempatan data pada tabel
overflow
menggunakan fungsi
overflow
dapat dilihat pada tabel berikut ini,
Tabel 2.2 Waktu akses metode pencarian hash tertutup dengan overflow
Dengan
: X = jumlah data
T = jumlah data untuk menempati tempat
Sehingga waktu akses rata – rata dari metoda pencarian
Hash
Tertutup dengan
strategi
Overflow
dengan penempatan data pada tabel
overflow
menggunakan
32
fungsi
overflow
untuk pencarian SUKSES adalah sebesar 9/6 = 1,5 dan
kemungkinan terburuk adalah menelusuri seluruh tabel overflow dan gagal.
Waktu akses ini sudah cukup memuaskan ditambah lagi efisiensi penggunaan
tempat sebesar 6/8 * 100 % = 75 % juga tidak begitu buruk. Untuk proses
penempatan data pada tabel
overflow
secara sekuensial juga memiliki waktu akses
dan efisiensi tempat yang sama. Namun, yang menjadi permasalahan dari strategi
ini adalah kecilnya ukuran dari tabel
overflow
sehingga mengakibatkan
kemungkinan suatu data ditolak lebih besar.
3. Double Hashing
Strategi
Double Hashing
ini hampir mirip dengan strategi
Overflow
, yaitu
dengan menggunakan dua buah tabel sebagai tempat pengisian data.
Perbedaannya adalah strategi ini menggunakan dua buah tabel yang sama besar
ukurannya. Proses penempatan dan pencarian data untuk strategi ini juga sama
persis dengan strategi
overflow
.
II.5.2. Hash Terbuka (Open Hash)
33
Sebagai contoh, diambil barisan bilangan sebelumnya, yaitu 1, 4, 5, 10, 11, 15, 16
dengan jumlah data = 7, ukuran tabel = 5 dan fungsi hash h(X) = X mod 5 (lihat
gambar 2.43 sampai gambar 2.44)
h(1) = 1 mod 5 = 1
Proses penambahan elemen data dilakukan di depan
List
.
Tampilan disajikan pada gambar 2.43
Gambar 2.43 penambahan data dengan depan list
Proses penambahan elemen data dilakukan di belakang
List
Tampilan disajikan pada gambar 2.44
Gambar 2.44 penambahan data dengan belakang list
34
Waktu akses untuk pencarian SUKSES pada
Hash
Terbuka dapat dilihat pada
tabel berikut ini:
Tabel 2.3 Waktu akses metode pencarian Hash Terbuka
Dengan
: X = jumlah data
T = jumlah data untuk menempati tempat
Sehingga waktu akses rata – rata dari metoda pencarian
Hash
Terbuka untuk
pencarian SUKSES adalah sebesar 13/7 = 1,86 dan kemungkinan terburuk adalah
menelusuri satu
Linked List
dan gagal. Sedangkan banyak tempat yang digunakan
adalah sebagai berikut:
Tabel
=
5
Cell
=
2 x 7 =
14
Total tempat
=
19 byte
X
1
4
5
10
11
15
16
35
BAB III
ANALISA DAN PERANCANGAN SISTEM
III.1.
Analisis kebutuhan sistem
III.1.1.
Fase Analisis Masalah
Sistem pembelajaran yang diterapkan cenderung masih searah, kurang
dapat membantu para mahasiswa dalam mempelajari suatu materi perkuliahan.
Sehingga masih ada beberapa mahasiswa yang belum mengerti materi yang
diajarkan. Ada beberapa kendala mahasiswa untuk memahami suatu materi yang
diajarkan. Adapun beberapa kendala tersebut adalah sebagai berikut :
1.
Sistem pembelajaran yang masih searah, yaitu mahasiswa hanya
mendengarkan penjelasan dari dosen di kelas saja sehingga membuat
proses belajar dan mengajar kurang interaktif. Walaupun pada saat ini
sudah ada presentasi kelompok di kelas, tetapi kebanyakan mahasiswa
masih kurang memahami materi yang dipresentasikan.
2.
Para mahasiswa masih banyak yang kurang bisa memahami
bahan/materi yang disajikan selama di kelas, karena suasana kelas yang
kurang kondusif, seperti pengaruh teman-teman yang membuat
kebisingan di kelas.
3.
Ada beberapa dosen dalam menyampaikan materi di kelas dirasakan
mahasiswa terlalu cepat sehingga ada beberapa mahasiswa yang belum
36
Oleh karena itu, pembuatan suatu Simulasi Pembelajaran Metode Relatif
Hash Search menjadi sangat berperan dalam mengatasi kendala-kendala tersebut
di atas. Pembuatan Simulasi Pembelajaran Metode Relatif Hash Search ini
bertujuan untuk membantu para dosen dan mahasiswa dalam proses belajar
mengajar, terutama membantu mahasiswa dalam memahami bagaimana cara
operasi pengecekan, penempatan dan pencarian data dengan metode pencarian
relatif Hash Search secara tahap demi tahap. Selain itu, dapat mempermudah
dosen dalam menyampaikan materi secara tepat sehingga para mahasiswa dapat
menyerap materi yang diberikan dosen dengan baik. Simulasi Pembelajaran
Metode Relatif Hash Search ini juga sangat membantu para mahasiswa
mempelajari kembali di luar kelas (di rumah atau di kos).
III.1.2.
Cause Efect Analysis
dan
System Improvement Objective
.
Cause effect analysis
adalah suatu teknik yang mempelajari masalah
untuk menentukan sebab dan akibat.
37
Tabel 3.1 Cause effect analysis
ANALISA SEBAB-AKIBAT
SASARAN PENINGKATAN SISTEM
Permasalahan
Sebab dan
Akibat
Sasaran Sistem
Batasan Sistem
Mahasiswa
pembelajaran yang dapat mempermudah proses belajar dan mengajar. Simulasi ini
menyediakan fasilitas bagi user untuk :
1.
Mendapatkan informasi materi tentang Pencarian Relatif Metode Hash.
2.
User dapat melihat bagaimana cara penempatan data yang telah diinputkan
oleh user.
3.
User dapat mempelajari Simulasi Pembelajaran ini dimana saja asal user
mempunyai alat pendukung Simulasi Pembelajaran ini yaitu laptop atau
38
III.2.
Perancangan Sistem
III.2.1.
Aktor
use case
Aktor
use case
adalah segala sesuatu yang perlu berinteraksi dengan
sistem untuk pertukaran informasi.
Tampilan pada tabel 3.2
Tabel 3.2 Aktor Use Case
Nama aktor
Keterangan
User
Orang yang menggunakan sistem pembelajaran ini.
III.2.2.
Use Case Diagram
Use case
adalah Diagram yang menggambarkan interaksi antara sistem
ekternal dan pengguna.
40
III.2.3.
Narasi
Use Case
Narasi
use case
atau
use case narative
adalah deskripsi tekstual kegiatan
bisnis dan bagaimana pengguna berinteraksi dengan sistem untuk menyelesaikan
suatu tugas.Tampilan disajikan pada tabel 3.3 sampai tabel 3.16
Tabel 3.3 Narasi use case Buka File
NAMA USE CASE : Buka File.DESCRIPTION: Use case ini mendeskripsikan proses membuka file yang telah disimpan oleh sistem.
PRE-CONDITION: Harus ada file data yang telah disimpan pada sistem
TRIGGER:
TYPICAL COURSE OF EVENTS:
Actor Action System Response
Step 1: user memilih menu ‘buka file’
Step 2: user memilih file yang ingin dibuka
Step 3: user menekan ‘tombol open’
Alt-Step 3 : untuk membatalkan user untuk membuka file user menekan tombol ’cancel’
CONCLUSION: Semua user dapat membuka file yang telah disimpan pada sistem ini.
POST-CONDITION: Data berhasil dibuka
BUSINESS RULES
IMPLEMENTATION CONTRAINTS AND SPECIFICATIONS
41
Tabel 3.4 Narasi Use Case Simpan File
NAMA USE CASE : Simpan File.
Author (s): anton Date28/11/2010
DESCRIPTION: Use case ini mendeskripsikan proses
menyimpan file.
PRE-CONDITION: Harus ada data yang ingin disimpan.
TRIGGER:
TYPICAL COURSE OF EVENTS:
Actor Action System Response
Step 1: User menginputkan terlebih dahulu data yang ingin disimpan.
Step 4: Sistem merespon dengan memproses menyimpan file.
ALTERNATE COURSES:
Alt-Step 3: Jika user tidak jadi menyimpan file maka user dapat menekan tombol ‘cancel’.
Alt-Step 4: jika inputan data kosong sistem tidak merespon perintah yang dilakukan oleh user
CONCLUSION: Semua user dapat menyimpan file.
POST-CONDITION: Data berhasil disimpan
IMPLEMENTATION CONTRAINTS AND SPECIFICATIONS
42
Tabel 3.5 Narasi Use Case Lihat Teori Open Hash
NAMA USE CASE : Lihat Teori Open Hash.
Author (s): anton Date28/11/2010
DESCRIPTION: Use case ini mendeskripsikan tentang materi pembelajaran Open Hash.
PRE-CONDITION:
TRIGGER:
TYPICAL COURSE
OF EVENTS:
Actor Action System Response
Step 1: user memilih menu teori Open Hash
CONCLUSION: Semua user dapat melihat tampilan teori open hash.
POST-CONDITION: Teori open hash dapat dilihat oleh user
BUSINESS RULES
IMPLEMENTATIO
N CONTRAINTS
AND
SPECIFICATIONS
43
Tabel 3.6 Narasi Use Case Lihat Teori Close Hash
NAMA USE CASE : Lihat Teori Close Hash.
Author (s): anton Date28/11/2010
DESCRIPTION: Use case ini mendeskripsikan tentang materi pembelajaran Close Hash.
PRE-CONDITION:
TRIGGER:
TYPICAL COURSE
OF EVENTS:
Actor Action System Response
Step 1: user memilih menu teori Close Hash
CONCLUSION: Semua user dapat melihat tampilan teori close hash.
POST-CONDITION: Teori close hash dapat dilihat oleh user
BUSINESS RULES
IMPLEMENTATION
CONTRAINTS AND
SPECIFICATIONS
44
Tabel 3.7 Narasi Use Case Input Data Penempatan
NAMA USE CASE : Input Data Penempatan.
Author (s): anton Date28/11/2010
DESCRIPTION: Use case ini mendeskripsikan proses user menginputkan data yang akan diurutkan.
PRE-CONDITION:
TRIGGER:
TYPICAL COURSE OF EVENTS:
Actor Action System Response
Step 1: user memilih menu simulasi
Step 2: user menginputkan data pada text box‘input data’
Step 3: user memilih metode hash yang digunakan (open hash atau close hash)
Step 4: user menginputkan jumlah tabel (modulo)
Alt-Step 5: jika user ingin membatalkan proses data maka user menekan tombol ’keluar’
Alt-Step 6 : jika data-data inputan belum benar atau masih kosong maka sistem akan memberikan peringatan kesalahan.
CONCLUSION: Data-data inputan dari user akan diproses menurut metode yang digunakan (open hash atau close hash).
POST-CONDITION: Sistem menampilkan hasil dari metode yang digunakan
BUSINESS RULES
IMPLEMENTATION CONTRAINTS AND SPECIFICATIONS