SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika

Gratis

0
0
184
3 months ago
Preview
Full text

  

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

2012

  

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

YOGYAKARTA

2012

  

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

yg terbaik buat kita semua.”

  

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(Open Hashing) dan metode Hash Tertutup(Close Hashing). Metode Hash Terbuka(Open Hashing)

  

ialah Depan List dan Belakang List, Dan Metode tertutup (Close Hashing) ialah Resolusi

Linier (Linier Resolution), 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.

  

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.

  The final result of this learning simulation making is how to save, locate, and search data. Also, data input can be saved and opened again.

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.

  8. Almarhum Bapak Supran Santoso, ayah tersayang, terima kasih telah menjaga dan mendoakanku di sisi Allah Yang Maha Kuasa.

  

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 ABSTRAK............................................................................................................................ viii ABSTRACT.......................................................................................................................... ix KATA PENGANTAR.......................................................................................................... x DAFTAR ISI........................................................................................................................ xii DAFTAR TABEL................................................................................................................ xv DAFTAR GAMBAR........................................................................................................... xvii

  BAB I PENDAHULUAN................................................................................................... 1 I.1. Latar Belakang......................................................................................................... 1 I.2. RumusanMasalah..................................................................................................... 3 I.3. Tujuan....................................................................................................................... 3 I.4. Batasan Masalah....................................................................................................... 3 I.5. Metodologi Penelitian.............................................................................................. 4 I.6. Sistematika Penulisan............................................................................................... 5 BAB II LANDASAN TEORI............................................................................................. 7 II.1. Pengertian Simulasi................................................................................................... 7 II.2. Definisi CAI............................................................................................................ 7 II.3. Metodologi Penulisan............................................................................................... 10 II.4. Metoda pencarian.................................................................................................... 12 II.5. Metoda Pencarian Relatif (Hash Search) ............................................................... 13 II.5.1. Hash Tertutup (Close Hash) ....................................................................... 14 II.5.2. Hash Terbuka (Open Hash) ......................................................................... 32

  BAB III ANALISA DAN PERANCANGAN SISTEM.................................................... 35 III.1. Analisis Kebutuhan Sistem..................................................................................... 35 III.1.1. Fase Analisis Saat Ini.................................................................................. 35 III.1.2. Cause Effect Analysts................................................................................. 36 III.1.3. Gambaran Sistem Yang Baru....................................................................... 37 III.2. Perancangan Sistem.................................................................................................. 38 III.2.1. Aktor Use Case............................................................................................. 38 III.2.2. Diagram Use Case....................................................................................... 38 III.2.3. Narasi Use Case........................................................................................... 40 III.2.4. Diagram Konteks......................................................................................... 54 III.2.5. Diagram Berjenjang.................................................................................... 55 III.2.6. Data Flow Diagram (DFD).......................................................................... 56 III.3. Algoritma Simulasi.................................................................................................. 58 III.4. Perancangan Tampilan............................................................................................ 63 III.4.1. Form Splash Screen..................................................................................... 64 III.4.2. Form Utama................................................................................................. 65 III.4.3. Form Teori................................................................................................... 66 III.4.4. Form Simulasi............................................................................................. 67 III.4.5. Form Open Hash........................................................................................ 69 III.4.6. Form Close Hash........................................................................................ 70 III.4.7. Form Laporan............................................................................................. 71 III.4.8. Dialog Box................................................................................................. 72 BAB IV IMPLEMENTASI SISTEM............................................................................. 74 IV.1. Implementasi Sistem………………………………………..…………...... 74 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

  IV.1.5. Implementasi Algoritma Pencarian Data Open Hash…………….. 148

  BAB V ANALISIS HASIL IMPLEMENTASI............................................................ 151 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 LAMPIRAN………………………………..…………………………………………. 163

  

Daftar Tabel

Tabel 3.10 Narasi Use Case Lihat Laporan Penempatan……………..……………. 47Tabel 5.6 Hasil Jawaban dan Presentase Kuesioner no 5……………...…………. 156Tabel 5.5 Hasil Jawaban dan Presentase Kuesioner no 4………………...………. 156Tabel 5.4 Hasil Jawaban dan Presentase Kuesioner no 3……………...…………. 155Tabel 5.3 Hasil Jawaban dan Presentase Kuesioner no 2…………...……………. 155Tabel 5.2 Hasil Jawaban dan Presentase Kuesioner no 1………...………………. 154Tabel 5.1 Form Hasil Jawaban Kuesioner…………………...………………….... 153Tabel 3.16 Narasi Use Case Lihat Profil Pembuat………………..……………….. 53Tabel 3.15 Narasi Use Case Simpan Laporan Pencarian……..…………………… 52Tabel 3.14 Narasi Use Case Lihat Laporan Pencarian …..………………………... 51

  Pencarian Data…………………………………...…………………….. 50

Tabel 3.13 Narasi Use Case Lihat Hasil Proses SimulasiTabel 3.12 Narasi Use Case Input Data Pencarian……………..………………….. 49Tabel 3.11 Narasi Use Case Simpan Laporan Penempatan………..………………. 48Tabel 3.9 Narasi Use Case Lihat Probabilitas………..…………………………… 46Tabel 2.1 Table waktu akses metode pencarian Hash Tertutup dengan

  Penempatan Data……………………………...………………………… 45

Tabel 3.8 Narasi Use Case Lihat Hasil Proses SimulasiTabel 3.7. Narasi Use Case Input Data Penempatan………..……………………... 44Tabel 3.6 Narasi Use Case Lihat Teori Close Hash…………..…………………... 43Tabel 3.5 Narasi Use Case Lihat Teori Open Hash……………...………………... 42Tabel 3.4 Narasi Use Case Simpan File………..……………………………….… 41Tabel 3.3 Narasi Use Case Buka File……………...………………………………. 40Tabel 3.2 Aktor Use Case......................................................................................... 38Tabel 3.1 Cause Effect Analyst…………………………..………………………. 37Tabel 2.3 Table waktu akses metode pencarian Hash Terbuka................................. 34

  Overflow................................................................................................... 31

Tabel 2.2 Table waktu akses metode pencarian Hash Tertutup dengan

  Resolusi Linier......................................................................................... 20

Tabel 5.7 Hasil Jawaban dan Presentase Kuesioner no 6…………...……………. 157Tabel 5.8 Hasil Jawaban dan Presentase Kuesioner no 7………...………………. 158Tabel 5.9 Hasil Jawaban dan Presentase Kuesioner no 8……...…………………. 158

  

Daftar Gambar

Gambar 2.1 Simbol Use Case Diagram........................................................................... 11Gambar 2.2 Simbol Diagram Berjenjang………….......................................................... 11Gambar 2.3 Simbol Data Flow Diagram........................................................................... 12Gambar 2.4 Masukan Data 1 dengan Resolusi Linier……………...…………………… 15Gambar 2.5 Masukan Data 4 dengan Resolusi Linier………………...………………… 15Gambar 2.6 Masukan Data 5 dengan Resolusi Linier……………...…………………… 15Gambar 2.7 Masukan Data 8 dengan Resolusi Linier…………...……………………… 16Gambar 2.8 Masukan Data 10 dengan Resolusi Linier……...………………………….. 16Gambar 2.9 Masukan Data 11 dengan Resolusi Linier…...…………………………….. 16Gambar 2.10 Pencarian Data 8 dengan Resolusi Linier…………...…………………….. 17Gambar 2.11 Pencarian Data 8 dengan Resolusi Linier………...……………………...... 17Gambar 2.12 Pencarian Data 22 dengan Resolusi Linier…...…………………………… 18Gambar 2.13 Pencarian Data 22 dengan Resolusi Linier...……………………………… 18Gambar 2.14 Pencarian Data 22 dengan Resolusi Linier………...……………………… 18Gambar 2.15 Pencarian Data 22 dengan Resolusi Linier……...………………………… 19Gambar 2.16 Pencarian Data 22 dengan Resolusi Linier………...……………………… 19Gambar 2.17 Pencarian Data 22 dengan Resolusi Linier………...……………………… 20Gambar 2.18 Pencarian Data 22 dengan Resolusi Linier……...………………………… 20Gambar 2.19 Masukan Data 1 dengan Overflow…………...…………………………… 21Gambar 2.20 Masukan Data 4 dengan Overflow………...……………………………… 22Gambar 2.21 Masukan Data 5 dengan Overflow……...………………………………… 22Gambar 2.22 Masukan Data 10 dengan Overflow…………...………………………...... 22Gambar 2.23 Masukan Data 11 dengan Overflow………...…………………………….. 23Gambar 2.24 Masukan Data 15 dengan Overflow…………...………………………….. 23Gambar 2.25 Masukan Data 16 dengan Overflow…………...………………………….. 24Gambar 2.26 Masukan Data 1 dengan Overflow-Sekuensial…………..……………….. 24Gambar 2.27 Masukan Data 4 dengan Overflow-Sekuensial………..………………….. 24Gambar 2.28 Masukan Data 5 dengan Overflow-Sekuensial………..………………….. 25Gambar 2.29 Masukan Data 10 dengan Overflow-Sekuensial……..…………………..... 25Gambar 2.30 Masukan Data 11 dengan Overflow-Sekuensial…..………………………. 26Gambar 2.31 Masukan Data 15 dengan Overflow-Sekuensial……..……………………. 26Gambar 2.32 Masukan Data 16 dengan Overflow-Sekuensial…..………………………. 26Gambar 2.33 Pencarian Data 15 dengan Overflow…………...………………………….. 27Gambar 2.34 Pencarian Data 15 dengan Overflow………...…………………………….. 27Gambar 2.35 Pencarian Data 16 dengan Overflow……...……………………………….. 28Gambar 2.36 Pencarian Data 16 dengan Overflow…...………………………………….. 28Gambar 2.37 Pencarian Data 16 dengan Overflow…...………………………………….. 29Gambar 2.38 Pencarian Data 16 dengan Overflow...…………………………………….. 29Gambar 2.39 Pencarian Data 16 dengan Overflow-Sekuensial..…………..…………….. 30Gambar 2.40 Pencarian Data 16 dengan Overflow-Sekuensial..………..……………….. 30Gambar 2.41 Pencarian Data 16 dengan Overflow-Sekuensial..……..………………….. 31Gambar 2.42 Pencarian Data 16 dengan Overflow-Sekuensial..…..…………………….. 31Gambar 2.43 Penambahan Data Pada Depan List……………...………………………… 33Gambar 2.44 Penambahan Data Pada Belakang List………...………………………....... 33Gambar 3.1 Use Case Diagram…………………………...…………………………….. 39Gambar 3.2 Diagram Konteks………………………...………………………………... 54Gambar 3.3 Diagram Berjenjang…………………..…………………………………... 55Gambar 3.4 Diagram DFD Level 0……………..……………………………………... 56Gambar 3.5 Diagram DFD Level 1 proses 2..…………………………………………. 56Gambar 3.6 Diagram DFD Level 1 proses 3……..……………………………………. 57Gambar 3.7 Diagram DFD Level 2 proses 3.5..……………………………………….. 58Gambar 3.8 Rancangan Form Simulasi…..……………………………………………. 58Gambar 3.9 Rancangan Form Close Hash………………..………………………….... 59Gambar 3.10 Masukan data 3 dengan metode close hash-Resolusi Linier……...……..... 60Gambar 3.11 Masukan Data 5 dengan metode close hash-Resolusi Linier…...………… 60Gambar 3.12 Masukan Data 9 dengan metode close hash-Resilusi Linier...…………… 60Gambar 3.13 Masukan Data 10 dengan metode close hash-Resolusi Linie…..……….. 61Gambar 3.14 Masukan data 15 dengan metode close hash-Resolusi Linier…..……….. 61Gambar 3.15 Masukan data 18 dengan metode close hash-Resolusi ki……..……….... 61Gambar 3.16 Rancangan Form Laporan…………………………………..…………….. 62Gambar 3.17 Rancangan Form Menu Utama……………………...…………………….. 63Gambar 3.18 Rancangan Form Splash Screen………………..…………………………. 64Gambar 3.19 Rancangan Form Utama…………………...……………………………… 65Gambar 3.20 Rancangan Form Teori………………...………………………………….. 66Gambar 3.21 Rancangan Form Simulasi………...………………………………………. 67Gambar 3.22 Rancangan Form Open Hash…...…………………………………………. 69Gambar 3.23 Rancangan Form Close Hash..…………………………………………… 70Gambar 3.24 Rancangan Form Laporan……..………………………………………….. 71Gambar 3.25 DialogBox Simpan File……..…………………………………………….. 73Gambar 3.26 DialogBox Simpan Laporan.…...…………………………………………. 73Gambar 4.1 Rancangan Form Error ke-1…………..………………………………….. 75Gambar 4.2 Listing Form Error Ke-1……………...…………………………………… 76Gambar 4.3 Rancangan Form Error ke-2………..…………………………………….. 76Gambar 4.4 Rancangan Form Error ke-3…………..………………………………….. 77Gambar 4.5 Listing Form Error ke-2 & Error ke -3…………...……………………….. 77Gambar 4.6 Rancangan Form Error ke-4…………………..………………………….. 78Gambar 4.7 Listing Form Error ke-4.............................................................................. 78Gambar 4.8 Rancangan Form Error ke-5…………..………………………………….. 79Gambar 4.9 Listing Form Error ke-5…………..………………………………………. 79Gambar 4.10 Rancangan Form Error ke-6………..……………………………………. 80Gambar 4.11 Listing Form Error ke-6………..………………………………………… 80Gambar 4.12 Rancangan Form Error ke-7……..……………………………………….. 81Gambar 4.13 Listing Form Error ke-7………..…………………………………………. 81Gambar 4.14 Rancangan Form Error ke-8………..…………………………………….. 82Gambar 4.15 Listing Form Error ke-8…………..………………………………………. 82Gambar 4.16 Rancangan Form Error ke-9.1…………………..………………………... 83Gambar 4.17 Rancangan Form Error ke-9.2………………..………………………….. 83Gambar 4.18 Listing Form Error ke-9.1 & Error ke-9.2……...………………………..... 84Gambar 4.19 Rancangan Error ke-10……………………...……………………………. 84Gambar 4.20 Listing Form Error ke-10………………..………………………………… 85Gambar 4.21 Rancangan Form Error ke-11………..……………………………………. 85Gambar 4.22 Listing Form Error ke-11………..………………………………………... 85Gambar 4.23 Rancangan Form Error ke-12………..……………………………………. 86Gambar 4.24 Listing Form Error ke-12……………..………………………………....... 86Gambar 4.25 Rancangan Form Close Hash dengan

  Resolusi Linier……………………..…………………………………….. 88

Gambar 4.26 Masukan Data 1 dengan Resolusi Linier………………..……………….. 89Gambar 4.27 Masukan Data 15 dengan Resolusi Linier…………..…………………… 90Gambar 4.28 Masukan Data 15 dengan Resolusi Linier………...……………………… 90Gambar 4.29 Masukan Data 24 dengan Resolusi Linier……...………………………… 91Gambar 4.30 Masukan Data 18 dengan Resolusi Linier…...…………………………… 92Gambar 4.31 Masukan Data 5 dengan Resolusi Linier……...…………………………. 92Gambar 4.32 Masukan Data 10 dengan Resolusi Linier...…………………………….. 93Gambar 4.33 Masukan Data 10 dengan Resolusi Linier...…………………………….. 94Gambar 4.34 Masukan Data 10 dengan Resolusi Linier……...……………………….. 94Gambar 4.35 Masukan Data 10 dengan Resolusi Linier…...………………………….. 95Gambar 4.36 Masukan Data 15 dengan Resolusi Linier……...………………………... 95Gambar 4.37 Masukan Data 11 dengan Resolusi Linier……...………………………... 96Gambar 4.38 Masukan Data 11 dengan Resolusi Linier…...…………………………... 97Gambar 4.39 Masukan Data 11 dengan Resolusi Linier…...…………………………... 97Gambar 4.40 Masukan Data 11 dengan Resolusi Linier…...………………………........ 98Gambar 4.41 Masukan Data 20 dengan Resolusi Linier……...……………………........ 98Gambar 4.42 Masukan Data 20 dengan Resolusi Linier…...………………………....... 99Gambar 4.43 Listing Form Close Hash dengan Resolusi Linier…….……..………...... 101Gambar 4.44 Rancangan Close Hash dengan Overflow-Sekuensial………………...... 102Gambar 4.45 Masukan Data 1 dengan Overflow-Sekuensial…………………............. 103Gambar 4.46 Masukan Data 15 dengan Overflow-Sekuensial……………..…..…....... 104Gambar 4.47 Masukan Data 24 dengan Overflow-Sekuensial…………..………….... 104Gambar 4.48 Masukan Data 18 dengan Overflow-Sekuensial...................................... 105Gambar 4.49 Masukan Data 5 dengan Overflow-Sekuensial……………………….... 106Gambar 4.50 Masukan Data 5 dengan Overflow-Sekuensial..……………………….. 106Gambar 4.51 Masukan Data 10 dengan Overflow-Sekuensial……..………………… 107Gambar 4.52 Masukan Data 10 dengan Overflow-Sekuensial…..………………….... 108Gambar 4.53 Masukan Data 10 dengan Overflow-Sekuensial..………………..…...... 108Gambar 4.54 Masukan Data 15 dengan Overflow-Sekuensial……..…..…………...... 109Gambar 4.55 Masukan Data 11 dengan Overflow-Sekuensial………..…………..….. 109Gambar 4.56 Masukan Data 11 dengan Overflow-Sekuensial………..……..……….. 110Gambar 4.57 Masukan Data 11 dengan Overflow-Sekuensial………..…………........ 110Gambar 4.58 Masukan Data 11 dengan Overflow-Sekuensial………..…………….... 111Gambar 4.59 Masukan Data 20 dengan Overflow-Sekuensial………..…………....... 111Gambar 4.60 Listing Form Close Hash dengan Overflow-Sekuensial………….......... 113Gambar 4.61 Rancangan Form Close Hash dengan Overflow-Fungsi Hash Baru…..... 114Gambar 4.62 Masukan Data 1 dengan Overflow-Fungsi Hash Baru…………..…....... 115Gambar 4.63 Masukan Data 15 dengan Overflow-Fungsi Hash Baru…………............ 115Gambar 4.64 Masukan Data 24 dengan Overflow-Fungsi Hash Baru….………........... 116Gambar 4.65 Masukan Data 18 dengan Overflow-Fungsi Hash Baru…….………….. 117Gambar 4.66 Masukan Data 5 dengan Overflow-Fungsi Hash Baru……...………….. 117Gambar 4.67 Masukan Data 5 dengan Overflow-Fungsi Hash Baru………...……...... 118Gambar 4.68 Masukan Data 10 dengan Overflow-Fungsi Hash Baru……………....... 118Gambar 4.69 Masukan Data 10 dengan Overflow-Fungsi Hash Baru………….……… 119Gambar 4.70 Masukan Data 15 dengan Overflow-Fungsi Hash Baru……….……….... 120Gambar 4.71 Masukan Data 11 dengan Overflow-Fungsi Hash Baru………………… 121Gambar 4.72 Masukan Data 11 dengan Overflow-Fungsi Hash ……………………… 122Gambar 4.73 Masukan Data 11 dengan Overflow-Fungsi Hash Baru…………………. 122Gambar 4.74 Masukan Data 20 dengan Overflow-Fungsi Hash Baru…………………. 123Gambar 4.75 Listing Form Close Hash dengan Overflow-Fungsi Hash Baru……......... 124Gambar 4.76 Rancangan Form Open Hash dengan Belakang List……………..…….... 126Gambar 4.77 Masukan Data 1 dengan Belakang List……...………………..……….... 127Gambar 4.78 Masukan Data 15 dengan Belakang List……...…………..…………...... 127Gambar 4.79 Masukan Data 24 dengan Belakang List……...………....…………….... 128Gambar 4.80 Masukan Data 18 dengan Belakang List……...……..………..……….... 129Gambar 4.81 Masukan Data 5 dengan Belakang List……...…..…………………….... 129Gambar 4.82 Masukan Data 10 dengan Belakang List……..………………………...... 130Gambar 4.83 Masukan Data 15 dengan Belakang List…..…………………………….. 131Gambar 4.84 Masukan Data 11 dengan Belakang List……...………….....………….... 131Gambar 4.85 Masukan Data 20 dengan Belakang List……...………...…..………….... 132Gambar 4.86 Listing Open Hash dengan Belakang List……………..……………….... 133Gambar 4.87 Rancangan Open Hash dengan Depan List……….………………..….... 135Gambar 4.88 Masukan Data 1 dengan Depan List……...………..…………………..... 136Gambar 4.89 Masukan Data 15 dengan Depan List……...…..………………………... 136Gambar 4.90 Masukan Data 24 dengan Depan List……...………………..………....... 137Gambar 4.91 Masukan Data 18 dengan Depan List……...……………..…..………..... 138Gambar 4.92 Masukan Data 5 dengan Depan List……...…………..………………..... 138Gambar 4.93 Masukan Data 10 dengan Depan List……...……..………………..…..... 139Gambar 4.94 Masukan Data 15 dengan Depan List……...…..…………………..…..... 140Gambar 4.95 Masukan Data 11 dengan Depan List……...……..……………..……..... 140Gambar 4.96 Masukan Data 20 dengan Depan List……......……………..…………..... 141Gambar 4.97 Listing Form Open Hash dengan Depan List…………………………...... 142Gambar 4.98 Listing Form Pencarian Resolusi Linier……...……...…………………..... 136Gambar 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..……...……………………..……..... 136Gambar 5.1 Form Kuesioner………………………………………….……...………… 152

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 Search) dan metode pencarian relatif

  hash search. Masing-masing metode yang ada tersebut mempunyai kelebihan dan kekurangan.

  Pada tulisan ini penulis ingin membahas salah satu metode pencarian (searching) adalah metode pencarian relatif hash search. Penulis memilih metode pencarian hash search karena ingin menjelaskan bagaimana cara metode pencarian relatif hash search, melakukan penempatan, pencarian dan cara mengatasi tabrakan (collision). Metode pencarian relatif hash search terbagi atas dua macam, yaitu hash tertutup (closed hashing) dan hash terbuka (open hashing). Pada metode pencarian hash search terdapat kemungkinan lebih dari satu data memiliki nilai fungsi yang sama sehingga terjadi tabrakan (collision). Oleh karena itu, kelemahan yang ada dalam metode pencarian relatif hash search ini maka perlu ada stategi mengatasi tabrakan (collision) tersebut. Cara untuk mengatasi tabrakan (collision) 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.

  Berdasarkan uraian di atas, penulis bermaksud untuk membuat suatu simulasi pembelajaran yang mampu melakukan pengecekan, penempatan, dan pencarian data dengan metode pencarian relatif Hash Search untuk mendukung proses belajar-mengajar dengan pengimplementasiannya dalam Computer Asisted Intruction (CAI).

  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.

  3. Tabel utama pada close hash maximum 24 tabel. Karena keterbatasan pengaturan tampilan.

  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:

  a) Requirements analysis (analisis kebutuhan), merupakan tahap analisis kebutuhan. Perlu ada pendekatan kepada user untuk mengetahui apa yang mereka butuhkan atau yang mereka inginkan terhadap sistem yang baru.

  Fase ini meliputi : use case diagram, dan use case narrative. 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 Bab ini berisi implementasi dan perancangan yang telah dibuat

  sebelumnya meliputi tampilan program dari input maupun output yang akan dihasilkan.

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 LAMPIRAN

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.

  Format penyajian pesan dan informasi dalam Computer Asisted Intruction (CAI) terdiri dari beberapa macam yaitu:

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

  Tutorial terprogram merupakan seperangkat tayangan baik statis maupun dinamis yang terlebih dahulu diprogramkan. Secara berturut, seperangkat kecil informasi ditayangkan yang diikuti dengan pertanyaan. Jawaban mahasiswa dianalisis oleh komputer (dibandingkan dengan kemungkinan-kemungkian jawaban yang telah dirancang oleh si pembuat program), dan berdasarkan hasil analisis itu dilakukan umpan balik yang sesuai. Urutan linear dan urutan bercabang digunakan. Penetapan urutan bercabang dimaksudkan untuk penyajian materi pelajaran tambahan berdasarkan hasil analisis perkembangan mahasiswa setelah 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)

  Latihan untuk mengasah keterampilan atau memperkuat penguasaan konsep dapat dilakukan dengan modus drills and practise. Komputer menyiapkan serangkaian soal atau pertanyaan serupa dengan yang biasa ditemukan dalam buku/lembaran kerja workbook. Sebagian besar program drills and practice merekam hasil jawaban mahasiswa yang kemudian dapat dilaporkan atau ditunjukan kepada mahasiswa atau 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

  Use case adalah Diagram yang menggambarkan interaksi antara sistem ekternal dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem (Whitten.J.L, et.al., 2004).

  administrator Aktor

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).

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). Masing-masing metode memiliki kelebihan dan kekurangan. Metode pencarian (searching) yang memiliki efisiensi penggunaan tempat yang lebih baik adalah metode pencarian relatif Hash Search.

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-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.

  2. Real (Physical) Address adalah lokasi (address) dimana data tersimpan dalam tabel.

  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)

  Strategi ini mengatasi tabrakan (collision) dengan cara mencari lokasi lain sebagai tempat dari data yang mengalami tabrakan (collision) dengan menghitung nilai fungsi Hash yang baru (Rehashing) dengan menggunakan rumus berikut: h’ (X) = (h’ (X) + 1) mod [ukuran tabel]

  i i-1

  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

  1

  1

  2

  3

  

4

  5

  6 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

  1

  4

  1

  2

  3

  

4

  5

  6 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

  1

  4

  5

  1

  2

  3

  

4

  5

  6 Gambar 2.6 masukan data 5 dengan resolusi linier

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

  1

  8

  4

  5

  1

  2

  3

  

4

  5

  6 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

  1

  8

  10

  4

  5

  1

  2

  3

  4

  5

  6 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

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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

2. Posisi ke-1 pada tabel berisi data 1 dan tidak sama dengan data yang dicari sehingga pencarian dilanjutkan.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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

2. Posisi ke-1 pada tabel berisi data 1 dan tidak sama dengan data yang dicari sehingga pencarian dilanjutkan.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 Gambar 2.14 pencarian data 22 dengan resolusi linier

  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.

  1

  8

  10

  

4

  5

  11

  1

  2

  3

  

4

  5

  6 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.

  1

  8

  10

  4

  5

  11

  1

  2

  3

  

4

  5

  6 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

12. Posisi ke-6 pada tabel berisi data 11 dan tidak sama dengan data yang dicari sehingga pencarian dilanjutkan.

  8

  11

  1

  2

  3

  

4

  5

  6

  1

  10

  4

  4

  5

  11

  1

  2

  3

  

4

  5

  6

  5

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.

  

5

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

  X

  1

  4

  8

  8

  10

  11 T

  1

  1

  1

  2

  1

  3

  1

  10 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

  Tabel

  1

  utama

  1

  2

  3

  4 Tabel overflow

  1

  2 Gambar 2.19 masukan data 1 dengan overflow

2. Masukkan data 4.

  h(4) = 4 mod 5 = 4 Tampilan disajikan pada gambar 2.20

  Tabel

  1

  4

  utama

  1

  2

  3

  4 Tabel overflow

  1

  2 Gambar 2.20 masukan data 4 dengan overflow 3.

  Masukkan data 5. h(5) = 5 mod 5 = 0 Tampilan disajikan pada gambar 2.21

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  overflow

  1

  2 Gambar 2.22 masukan data 10 dengan overflow

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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  11

  overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 Gambar 2.24 masukan data 15 dengan overflow 7.

  Masukkan data 16. h(16) = 16 mod 5 = 1 tabrakan dengan data 1 pada tabel utama. g(16) = 16 mod 3 = 1 tabrakan dengan data 10 pada tabel overflow. Karena tabrakan terjadi di tabel overflow, maka harus ditentukan suatu strategi untuk mengatasi tabrakan tersebut. Dalam hal ini, digunakan sebuah fungsi Hash yang baru (Rehashing), sehingga proses penempatan data dilanjutkan seperti berikut, g’(16) = (1 + 1) mod 3 = 2 tabrakan dengan data 11 pada tabel overflow . g’(16) = (2 + 1) mod 3 = 0 tabrakan dengan data 15 pada tabel overflow .

  Karena tabel overflow telah penuh, maka data 16 ditolak. Tampilan disajikan pada gambar 2.25

  4

  4

  1

  1

  2 Tabel utama

  1

  2 Tabel overflow

  3

  2 Tabel overflow

  4

  1

  1

  2 Tabel utama

  1

  2 Tabel overflow

  3

  1

Gambar 2.25 masukan data 16 dengan overflow

  3

  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).

  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

Gambar 2.27 masukan data 4 dengan overflow-sekuensial

  4

  4

  11

  5

  1

  1

  2 Tabel utama

  15

  10

1. Masukkan data 1.

3. Masukkan data 5.

  h(5) = 5 mod 5 = 0 Tampilan disajikan pada gambar 2.28

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  11

  overflow

  1

  2 Gambar 2.30 masukan data 11 dengan overflow-sekuensial

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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  11

  15

  overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  

3

  4 Tabel

  10

  11

  15

  overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11 overflow

  1

  2 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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  15

  10

  11

  overflow

  1

  2 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):

  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.

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  11

  15

  overflow

  1

  2 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

  Tabel

  5

  1

  4

  utama

  1

  2

  3

  4 Tabel

  10

  11

  15

  overflow

  1

  2 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 Tampilan disajilan pada gambar 2.41

Gambar 2.41 pencarian data 16 dengan overflow-sekuensial 6.

  4

  1

  1

  2 Tabel utama

  10

  11

  15

  1

  2 Tabel overflow

  3

  4

  4

  5

  1

  1

  2 Tabel utama

  10

  11

  15

  1

  5

  3

  Lihat posisi ke-2 pada tabel overflow. Posisi ke-2 berisi data 15 dan tidak sama dengan data yang dicari (lihat gambar 2.42).

  4

  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

  X

  1

  

5

  4

  10

  11

  15 T

  1

  1

  1

  2

  2

  2

  2 Tabel overflow 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)

  Hash Terbuka (Open Hash) menggunakan tabel Hash hanya sebagai

  tempat penyimpanan pointer untuk merangkai elemen dalam Linked List. Elemen data yang memiliki nilai fungsi yang sama (Home Address yang sama) akan dirangkai membentuk satu Linked List. Penambahan elemen ke dalam Linked List dapat dilakukan di depan List atau di belakang List. Hash Terbuka (Open Hash) mampu menampung data dengan jumlah yang belum diketahui sebelumnya. Hal ini dicapai karena alokasi dinamis dalam Linked List tidak mengharuskan untuk menentukan besar memori yang disediakan, cukup menentukan ukuran tabel yang merupakan Array of Pointer.

  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

  h(4) = 4 mod 5 = 4 h(5) = 5 mod 5 = 0 h(10) = 10 mod 5 = 0 h(11) = 11 mod 5 = 1 h(15) = 15 mod 5 = 0 h(16) = 16 mod 5 = 1 Proses penambahan elemen data dilakukan di depan List. Tampilan disajikan pada gambar 2.43

  5

  10

  15

  1

  1

  11

  16

  2

  3

  4

  4 Gambar 2.43 penambahan data dengan depan list

  Proses penambahan elemen data dilakukan di belakang List Tampilan disajikan pada gambar 2.44

  15

  10

  5

  1

  16

  11

  1

  2

  3

  4

  4 Gambar 2.44 penambahan data dengan belakang list Waktu akses untuk pencarian SUKSES pada Hash Terbuka dapat dilihat pada tabel berikut ini:

Tabel 2.3 Waktu akses metode pencarian Hash Terbuka

  X

  1

  4

  5

  10

  11

  15

  16 T

  1

  1

  1

  2

  2

  3

  3 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

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 memahami materi dengan baik.

  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.

  Tampilan disajikan pada tabel 3.1

Tabel 3.1 Cause effect analysis

ANALISA SEBAB-AKIBAT SASARAN PENINGKATAN SISTEM

  

Permasalahan Sebab dan Sasaran Sistem Batasan Sistem

Akibat

  Mahasiswa

  1. Sebab: Mempermudah dosen

  1 . . M M e e m m b b u u a a t t masih kurang Beberapa dan mahasiswa, s s i i m m u u l l a a s s i i memahami dosen terlalu dalam menerangkan p p e e m m b b e e l l a a j j a a r r a a n n materi yang cepat dalam dan memahami suatu y y a a n n g g d d a a p p a a t t diajarkan. menerangka materi pelajaran m m e e m m b b e e r r i i k k a a n n n suatu teori a a l l t t e e r r n n a a t t i i f f pada mata s s o o l l u u s s i i d d a a l l a a m m kuliah m m e e n n j j e e l l a a s s k k a a n n struktur data s s u u a a t t u u m m a a t t e e r r i i 2. Akibat: p p e e l l a a j j a a r r a a n n . . Beberapa mahasiswa masih belum memahami materi yang diajarkan.

  1

  III.1.3. Gambaran Sistem Yang Baru

  Dalam mengatasi permasalahan yang ada diperlukan suatu simulasi 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 komputer.

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.

  Tampilan disajikan pada gambar 3.1

Gambar 3.1 Use Case Diagram

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.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Buka File USE CASE TYPE USE CASE ID: UC-D001 Business Requirements: PRIORITY:

  High

SOURCE: PRIMARY BUSINESS ACTOR:

  user

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’

  Step 4: sistem menampilkan file

ALTERNATE COURSES:

  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

  • • Harus dapat diakses setiap saat

    • Dapat diakses semua user, tanpa login.

Tabel 3.4 Narasi Use Case Simpan File NAMA USE CASE : Simpan File.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Simpan File USE CASE TYPE USE CASE ID: UC-D002 Business Requirements:

  PRIORITY: High PRIMARY

  User 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

BUSINESS ACTOR:

  Step 1: User menginputkan terlebih dahulu data yang ingin disimpan.

  Step 2: user memilih menu ‘simpan file’ Step 3 : user menekan tombol ‘save’ untuk menyimpan file

  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

  • • Harus dapat diakses setiap saat

    • Dapat diakses semua user, tanpa login.

Tabel 3.5 Narasi Use Case Lihat Teori Open Hash NAMA USE CASE : Lihat Teori Open Hash.

   Author (s): anton Date28/11/2010 Version:1.00

  

USE CASE NAME: Lihat Teori Open Hash USE CASE

TYPE USE CASE ID: UC-D003 Business Requirements:

  High

PRIORITY: SOURCE:

  PRIMARY user BUSINESS ACTOR: Use case ini mendeskripsikan tentang materi pembelajaran

  DESCRIPTION: Open Hash. PRE-CONDITION: TRIGGER:

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  

Step 1: user memilih menu teori

Open Hash

  Step 2:Sistem akan memproses tampilan teori Open Hash

  ALTERNATE COURSES: CONCLUSION: Semua user dapat melihat tampilan teori open hash.

  POST-CONDITION: Teori open hash dapat dilihat oleh user BUSINESS RULES

  IMPLEMENTATIO

  • • Harus dapat diakses setiap saat

  N CONTRAINTS • Dapat diakses semua user, tanpa login. AND SPECIFICATIONS

Tabel 3.6 Narasi Use Case Lihat Teori Close Hash NAMA USE CASE : Lihat Teori Close Hash.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Lihat Teori Close Hash USE CASE TYPE USE CASE ID: UC-D004 Business Requirements:

  PRIORITY: High SOURCE: user

PRIMARY BUSINESS ACTOR:

  

DESCRIPTION: Use case ini mendeskripsikan tentang materi pembelajaran

Close Hash.

PRE-CONDITION: TRIGGER:

  

TYPICAL COURSE Actor Action System Response

OF EVENTS: Step 1: user memilih menu teori Close Hash

  Step 2:Sistem akan memproses tampilan teori Close Hash

  ALTERNATE COURSES: CONCLUSION: Semua user dapat melihat tampilan teori close hash.

  POST-CONDITION: Teori close hash dapat dilihat oleh user BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.7 Narasi Use Case Input Data Penempatan NAMA USE CASE : Input Data Penempatan.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Input Data Penempatan USE CASE TYPE

  UC-D005

USE CASE ID:

  Business Requirements: PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR:

DESCRIPTION: Use case ini mendeskripsikan proses user menginputkan data

yang akan diurutkan.

PRE-CONDITION: TRIGGER:

  

TYPICAL COURSE Actor Action System Response

OF EVENTS: 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) Step 5 : user menekan tombol ’proses’ Step 6:sistem mengechek apakah data-data yang diinputkan sudah benar Step 7 : sistem kemudian memproses data inputan

  Alt-Step 5: jika user ingin membatalkan proses data maka user ALTERNATE COURSES: menekan tombol ’keluar’ Alt-Step 6 : jika data-data inputan belum benar atau masih kosong maka sistem akan memberikan peringatan kesalahan.

  Data-data inputan dari user akan diproses menurut metode yang CONCLUSION: digunakan (open hash atau close hash).

  POST-CONDITION: Sistem menampilkan hasil dari metode yang digunakan BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.8 Narasi Use Case Lihat hasil Proses Simulasi Penempatan Data NAMA USE CASE : Lihat Hasil Proses Simulasi Penempatan Data.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Lihat Hasil Proses Simulasi USE CASE TYPE

  Penempatan Data UC-D006

USE CASE ID:

  Business Requirements: High

PRIORITY: SOURCE:

  PRIMARY user BUSINESS ACTOR:

DESCRIPTION: Use case ini mendeskripsikan proses user dapat melihat hasil

proses dari data yang diinputkannya

.

  PRE-CONDITION: User terlebih dahulu harus menginputkan data ke sistem. TRIGGER:

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  Step 1: Sistem menampilkan hasil proses

  Step 2: user dapat melihat hasil simulasi proses simulasi

  ALTERNATE COURSES: CONCLUSION: User dapat melihat hasil proses simulasi. POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.9 Narasi Use Case Lihat Probabilitas NAMA USE CASE : Lihat Probabilitas.

   Author (s): anton Date28/11/2010 Version:1.00

  

USE CASE NAME: Lihat probabilitas USE CASE TYPE

USE CASE ID: UC-D007 Business Requirements:

  PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR:

  Use case ini mendeskripsikan probabilitas (peluang data untuk DESCRIPTION: menempati suatu ruang) .

  PRE-CONDITION: User terlebih dahulu harus menginputkan data ke sistem. TRIGGER: Use case ini muncul setelah hasil proses simulasi selesai

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  Step 1: user menekan tombol ‘probabilitas’ Step 2: sistem menampilkan probabilitas

  ALTERNATE COURSES:

User dapat melihat hasil probabilitas.

CONCLUSION: POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.10 Narasi Use Case Lihat Laporan Penempatan NAMA USE CASE : Lihat Laporan Penempatan.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Lihat Laporan Penempatan USE CASE TYPE USE CASE ID: UC-D008 Business Requirements:

  PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR:

  Use case ini mendeskripsikan langkah-langkah penempatan DESCRIPTION: data .

  PRE-CONDITION: User terlebih dahulu harus menginputkan data ke sistem. TRIGGER: Use case ini muncul setelah hasil proses simulasi selesai

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  Step 1: user menekan tombol ‘laporan’ Step 2: sistem menampilkan laporan

ALTERNATE COURSES:

  User dapat melihat laporan ( langkah-langkah penempatan data CONCLUSION: berdasarkan metode open hash atau close hash). POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.11 Narasi Use Case Simpan Laporan Penempatan NAMA USE CASE : Simpan Laporan Penempatan.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Simpan Laporan Penempatan USE CASE TYPE USE CASE ID: UC-D009 Business Requirements:

  PRIORITY: High SOURCE:

PRIMARY BUSINESS ACTOR:

  user DESCRIPTION:

  Use case ini mendeskripsikan untuk menyimpan langkah- langkah penempatan data .

  PRE-CONDITION: User terlebih dahulu harus menekan tombol laporan. TRIGGER: Use case ini muncul setelah hasil proses simulasi selesai TYPICAL COURSE OF EVENTS: Actor Action System Response

  Step 2: user menekan tombol ‘simpan’

  Step 1: sistem menampilkan laporan Step 3 : sistem menyimpan data laporan

ALTERNATE COURSES:

  Alt-Step 2: jika user tidak ingin menyimpan laporan dapat menekan tombol ’keluar’

  CONCLUSION: User dapat menyimpan laporan ( langkah-langkah penempatan data berdasarkan metode open hash atau close hash).

POST-CONDITION: BUSINESS RULES

  • • Harus dapat diakses setiap saat

    • Dapat diakses semua user, tanpa login.

Tabel 3.12 Narasi Use Case Input Data Pencarian NAMA USE CASE : Input Data Pencarian.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Input Data Pencarian USE CASE TYPE USE CASE ID: UC-D0010 Business Requirements:

  PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR:

  Use case ini mendeskripsikan proses user menginputkan data DESCRIPTION: yang akan dicari. PRE-CONDITION: TRIGGER:

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  

Step 1: user menginputkan data

pada textbox ‘cari data’ Step 2 : user menekan tombol ’cari’

  Step 3 : sistem kemudian melakukan proses cari data

  ALTERNATE COURSES: Inputan cari data dari user akan diproses. CONCLUSION: POST-CONDITION: Sistem menampilkan hasil dari inputan cari data BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.13 Narasi Use Case Lihat Hasil Proses Simulasi Pencarian Data NAMA USE CASE : Lihat Hasil Proses Simulasi Pencarian Data.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Lihat Hasil Proses Simulasi Pencarian USE CASE TYPE

  Data USE CASE ID: UC-D011 Business Requirements: PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR: DESCRIPTION:

  Use case ini mendeskripsikan proses user dapat melihat hasil proses dari data yang dicari.

  

PRE-CONDITION: User terlebih dahulu harus menginputkan cari data ke sistem.

TRIGGER:

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  Step 1: sistem menampilkan hasil proses

  Step 2: user dapat melihat hasil simulasi pencarian proses simulasi pencarian

  ALTERNATE COURSES: User dapat melihat hasil proses simulasi pencarian. CONCLUSION: POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.14 Use Case Lihat Laporan Pencarian NAMA USE CASE : Lihat Laporan Pencarian.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Lihat Laporan Pencarian USE CASE TYPE USE CASE ID: UC-D012 Business Requirements:

  PRIORITY: High SOURCE: PRIMARY user BUSINESS ACTOR:

DESCRIPTION: Use case ini mendeskripsikan langkah-langkah pencarian data .

PRE-CONDITION: User terlebih dahulu harus menginputkan cari data ke sistem.

TRIGGER: Use case ini muncul setelah hasil proses simulasi selesai

TYPICAL COURSE Actor Action System Response

OF EVENTS:

  Step 1: user menekan tombol ‘laporan’ Step 2: sistem menampilkan laporan

  ALTERNATE COURSES: User dapat melihat laporan ( langkah-langkah pencarian data). CONCLUSION: POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

Tabel 3.15 Narasi Use Case Simpan Laporan Pencarian NAMA USE CASE : Simpan Laporan Pencarian.

   Author (s): anton Date28/11/2010 Version:1.00 USE CASE NAME: Simpan Laporan Pencarian USE CASE TYPE USE CASE ID: UC-D013 Business Requirements:

  PRIORITY: High SOURCE:

PRIMARY BUSINESS ACTOR:

  user DESCRIPTION:

  Use case ini mendeskripsikan untuk menyimpan langkah- langkah pencarian data .

  PRE-CONDITION: User terlebih dahulu harus menekan tombol laporan.

TRIGGER: Use case ini muncul setelah hasil proses simulasi pencarian

selesai

  TYPICAL COURSE OF EVENTS: Actor Action System Response Step 2: user menekan tombol ‘simpan’

  Step 1: sistem menampilkan laporan Step 3 : sistem menyimpan data laporan

ALTERNATE COURSES:

  Alt-Step 2: jika user tidak ingin menyimpan laporan dapat menekan tombol ’keluar’

  

CONCLUSION: User dapat menyimpan laporan ( langkah-langkah pencarian

data).

POST-CONDITION: BUSINESS RULES

  • • Harus dapat diakses setiap saat

    • Dapat diakses semua user, tanpa login.

Tabel 3.16 Narasi Use Case Lihat Profil Pembuat NAMA USE CASE : Lihat Profil Pembuat.

   Author (s): anton Date28/11/2009 Version:1.00 USE CASE NAME: Lihat Profil Pembuat USE CASE TYPE USE CASE ID: UC-D015 Business Requirements:

  PRIORITY: High SOURCE: user

  PRIMARY BUSINESS ACTOR: DESCRIPTION: Use case ini mendeskripsikan tentang profil pembuat sistem ini. PRE-CONDITION: TRIGGER:

TYPICAL COURSE Actor Action System Response

OF EVENTS: Step 1: user memilih menu

  ‘bantuan’ Step 3:Sistem akan

Step 2 : user memilih sub menu

menampilkan profil “mengenai pembuat” sipembuat

  ALTERNATE COURSES:

CONCLUSION: Semua user dapat melihat tampilan profil pembuat sistem.

POST-CONDITION: BUSINESS RULES

  IMPLEMENTATION

  • • Harus dapat diakses setiap saat

  CONTRAINTS AND • Dapat diakses semua user, tanpa login. SPECIFICATIONS

III.2.4. Diagram Konteks

  Diagram konteks merupakan sebuah diagram yang menggambarkan hubungan antara entitas luar, masukan dan keluaran dari sistem.

  Tampilan disajikan pada gambar 3.2

Gambar 3.2 Diagram Konteks

III.2.5. Diagram Berjenjang

  Diagram berjenjang atau diagram dekomposisi adalah alat yang digunakan untuk menggambarkan dekomposisi sistem. Disebut juga bagan hierarki.

  Tampilan disajikan pada gambar 3.3

Gambar 3.3 Diagram Berjenjang

III.2.6. 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. Tampilan disajikan pada gambar 3.4 sampai gambar 3.7 III.2.6.1.

   DFD Level 0

Gambar 3.4 Diagram DFD Level 0 III.2.6.2.

   Level 1 Proses 2

Gambar 3.5 Diagram DFD Level 1 proses 2

III.2.6.3.

   Level 1 Proses 3

!

" # $

Gambar 3.6 Diagram DFD Level 1 Proses 3

III.2.6.4.

   Level 2 Proses 3.5 %

  

!

Gambar 3.7 Diagram DFD Level 2 Proses 3.5 III.3.

   Algoritma Simulasi

  Penulis ingin memberikan contoh Simulasi pembelajaran dengan metode 3 Resolusi Linier. 1 4 5 2 8 10

  6 7 12 9 13

  11

  14 Gambar 3.8 Rancangan form simulasi

  Hal yang dilakukan pertama-tama adalah sebagai berikut:

  1. Kita mengisikan dulu data-data berupa integer. No (2) ,misalnya: 3,5,9,10,15,18

  2. Lalu kita mengisikan table utama. No (5), misalnya : 7

  3. Kemudian kita memilih metode Resolusi Linier (Linear Resolution) No (8) 4. Setelah itu penulis klik menu Proses.

  5. Lalu muncul form close hash untuk menampilkan cara penempatan data.

Gambar 3.9 Rancangan form Close hash 6. Diform ini kita dapat melihat bagaimana cara penempatan data.

  Proses penempatan data untuk data di atas adalah sebagai berikut:

  1. Masukkan data 3 h(3) = 3 mod 7 = 3 Tampilan disajikan pada gambar 3.10

  3

  4

  3

  2

  1

  5

  5

  9

  6

  6

  5

  4

  3

  2

  1

  5

  3

Gambar 3.10 masukan data 3 dengan metode close hash-resolusi linier

  5

  2. Masukkan data 5 h(5) = 5 mod 7 = 5 Tampilan disajikan pada gambar 3.11

Gambar 3.11 masukan data 5 dengan metode close hash-resolusi linier

  3. Masukkan data 9 h(9) = 9 mod 7 = 2 Tampilan disajikan pada gambar 3.12

Gambar 3.12 masukan data 9 dengan metode close hash-resolusi linier

  3 1 8 1 5 1 0

  9

  1

  5

  5

  6

  

4

  3

  2

  3 6 5 4 3 2 1 3

  9

  4. Masukkan data 10 h(10) = 10 mod 7 = 3 terjadi tabrakan dengan data 3 pada tabel. h’(10) = (3 + 1) mod 7 = 4 Tampilan disajikan pada gambar 3.13 1 0 1 2

  9 3 3 1 0 4 5 5 6 Gambar 3.13 masukan data 10 dengan metode close hash-resolusi linier

  5. Masukkan data 15 h(15) = 15 mod 7 = 1 Tampilan disajikan pada gambar 4.14

  1 5 1 5 9 3 1 0

  5

  1

  2

  

3

  4

  5

  6 Gambar 3.14 masukan data 15 dengan metode close hash-resolusi linier

  6. Masukkan data 18 h(18) = 18 mod 7 = 4 terjadi tabrakan dengan data 10 pada tabel. h(18) = (4 + 1) mod 7 = 5 terjadi tabrakan dengan data 5 pada tabel. h(18) = (5 + 1) mod 7 = 6 Tampilan disajikan pada gambar 3.15

  1 8 1 5 9 3 1 0 5 1 8

  1

  2

  

3

  4

  5

  6 Gambar 3.15 masukan 18 dengan metode close hash-resolusi linier

  7. Setelah semua data dimasukan, maka kita dapat melihat laporannya lagi di form laporan. tampilan disajikan pada gambar 3.16.

Gambar 3.16 Rancangan form laporan

  8. Diform ini kita tidak hanya dapat melihat track record cara penempatan data saja tetapi kita dapat menyimpannya.

  9. Jika sudah tidak diperlukan form laporan kita tinggal klik keluar maka akan kembali tampil form simulasi.

  10. Lalu jika kita sudah tidak ingin menggunakannya lagi, maka penulis tinggal klik menu keluar pada menu utama. tampilan disajikan pada gambar 3.17.

Gambar 3.17 Rancangan Menu Utama III.4.

   Perancangan Tampilan

  Simulasi pembelajaran ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 dengan menggunakan beberapa komponen yang disediakan seperti Microsoft Common Dialog Control 6.0

  

(Service Pack 3) , Microsoft FlexGrid Control 6.0 (Service Pack 3), Shape, Label,

Image , dan Command Button. Simulasi pembelajaran ini dirancang dengan

  menggunakan MDIForm (Multiple Document Interface Form) sebagai form induk (utama). Selain itu, dalam hal perancangan tampilan (interface) simulasi pembelajaran ini, penulis menggunakan beberapa gambar yang di-edit dengan menggunakan aplikasi CorelDraw4 dan Paint.

  Form – form yang terdapat dalam simulasi pembelajaran ini yaitu:

  1. Form Splash Screen (FrmSplash)

  2. Form Utama (FrmMain)

  3. Form Teori (FrmTeoriOHash dan FrmTeoriCHash)

  4. Form Simulasi (FrmSimulasi)

  5. Form Presentasi Open Hash (frmOpenHash)

  6. Form Presentasi Close Hash (frmCloseHash)

  7. Form Laporan (frmReport) Selain form – form di atas, simulasi pembelajaran ini juga mempunyai beberapa

  dialog box untuk menyimpan dan membuka data antara lain: 1. Dialog box untuk menyimpan data input.

  2. Dialog box untuk membuka data input.

  3. Dialog box untuk menyimpan laporan.

III.4.1. Form Splash Screen

Gambar 3.18 Rancangan Form Splash Screen Form ini merupakan form splash screen dari simulasi pembelajaran ini.

  Pada form ini menjelaskan judul, nama pembuat, nama universitas dan tempat dibuat.

III.4.2. Form Utama

Gambar 3.19 Rancangan Form Utama Form ini merupakan form induk (utama) dari simulasi pembelajaran ini.

  Pada form ini terdapat 4 buah menu tampilan yaitu:

  1. Menu ‘File’ yang memiliki 2 buah sub menu yaitu:

  a. Sub menu ‘Buka File’ yang berfungsi untuk membuka file data yang telah disimpan sebelumnya dan mengisi data ke dalam text

  box di form ‘Simulasi’.

  b. Sub menu ‘Simpan File’ yang berfungsi untuk menyimpan data pada text box di form ‘Simulasi’ ke dalam suatu file data.

  2. Menu ‘Teori’ yang memiliki 2 buah sub menu yaitu:

  a. Sub menu ‘Hash Tertutup (Closed Hash)’ yang berfungsi untuk menampilkan teori singkat dari metode Hash Tertutup (Closed

  Hash ). b. Sub menu ‘Hash Terbuka (Open Hash)’ yang berfungsi untuk menampilkan teori singkat dari metode Hash Terbuka (Open

  Hash ).

  3. Menu ‘Simulasi’ yang berfungsi untuk menampilkan form ‘Simulasi’.

  4. Menu ‘Mengenai’ memiliki 1 buah sub menu yaitu :

  a. Sub menu ‘Mengenai Pembuat’, untuk menampilkan data identitas pembuat simulasi pembelajaran ini.

  5. Menu ‘Keluar’ yang berfungsi untuk keluar dari simulasi pembelajaran.

III.4.3. Form Teori

Gambar 3.20 Rancangan Form Teori Form ini merupakan form teori dari simulasi pembelajaran ini. Pada form

  ini sebagai hanya menjelaskan teori-teori tentang close hash atau open hash.

  Keterangan: 1 : judul. 2 : daerah tampilan teori. 3 : tombol ‘Back’ untuk menampilkan halaman sebelumnya. 4 : tombol ‘Next’ untuk menampilkan halamana selanjutnya. 5 : tombol ‘Keluar’ untuk keluar dari form ‘Teori’ dan kembali ke form ‘Main’.

III.4.4.

1 Form Simulasi

  3 4 5 2 8 10

  6 7 12 9 13

  11

  14 Gambar 3.21 Rancangan Form Simulasi Form ini merupakan form simulasi dari simulasi pembelajaran ini. Pada

form ini merupakan form untuk memasukkan inputan data, tabel dan metode yang

  ingin digunakan. Keterangan: 1 : judul.

  2 : text box untuk penginputan data. 3 : tombol ‘Proses’ untuk melanjutkan proses. 4 : tombol ‘Keluar’ untuk keluar dari program. 5 : text box ‘Tabel Utama’ berisi ukuran dari tabel utama.

  6 : text box ‘Tabel Overflow’ berisi ukuran dari tabel overflow untuk strategi overflow. 7 : text box ‘Kecepatan Animasi’ berisi kecepatan perubahan (transisi) tahap dalam milisekon. 8 : option button ‘Resolusi Linier’ untuk menampilkan proses penempatan dan pencarian data dengan menggunakan strategi Resolusi Linier. 9 : option button ‘Overflow’ untuk menampilkan proses penempatan dan pencarian data dengan menggunakan strategi Overflow. 10 : option button ‘sekuensial’ untuk menampilkan proses penempatan dan pencarian data dengan menggunakan strategi Overflow dengan proses pada tabel overflow menggunakan strategi sekuensial. 11 : option button ‘fungsi hash baru’ untuk menampilkan proses penempatan dan pencarian data dengan menggunakan strategi Overflow dengan proses pada tabel overflow menggunakan fungsi hash baru. 12 : option button ‘Double Hashing’ untuk menampilkan proses penempatan dan pencarian data dengan menggunakan strategi Double Hashing. 13 : option button ‘di depan List’ untuk menampilkan proses penempatan dengan cara menambah data pada bagian depan List. 14 : option button ‘di depan List’ untuk menampilkan proses penempatan dengan cara menambah data pada bagian belakang List.

III.4.5. Form Open Hash

Gambar 3.22 Rancangan Form Open Hash Form ini merupakan form open hash dari simulasi pembelajaran ini. Pada

  open hash ini simulasi penempatan dan pencarian data dilakukan dengan

  form metode belakang list atau depan list.

  Keterangan: 1 : judul. 2 : data Simulasi yang telah di-inputkan oleh user. 3 : hasil proses penempatan data pada List. 4 : proses – proses perhitungan fungsi hash yang dilakukan. 5 : text box ‘Cari Data’ sebagai tempat penginputan data yang ingin dicari. 6 : text box ‘Kecepatan Pencarian Data’ sebagai tempat penginputan kecepatan proses pencarian data dalam satuan milisekon. 7 : tombol ‘Probabilitas’ untuk menampilkan peluang langkah-lagkah simulasi. 8 : tombol ‘Laporan’, untuk menampilkan form laporan. 9 : tombol ‘Cari’, untuk memulai proses pencarian data. 10 : tombol ‘Keluar’, untuk keluar dari form Open Hash dan kembali ke ‘form simulasi’.

III.4.6. Form Close Hash

Gambar 3.23 Rancangan Form Close Hash Form ini merupakan form close hash dari simulasi pembelajaran ini. Pada

  

form close hash ini simulasi penempatan dan pencarian data dilakukan dengan

metode resolusi linier, overflow, double hash.

  Keterangan: 1 : jenis pencarian Relatif (Hash Search) dengan strategi yang sedang diproses. 2 : data simulasi yang telah di-inputkan oleh user. 3 : hasil proses penempatan data pada tabel. 4 : proses – proses perhitungan fungsi hash yang dilakukan. 5 : text box ‘Cari Data’ sebagai tempat penginputan data yang ingin dicari. 6 : text box ‘Kecepatan Pencarian Data’ sebagai tempat penginputan kecepatan proses pencarian data dalam satuan milisekon. 7 : tombol ‘Probabilitas’ untuk menampilkan peluang langkah-lagkah simulasi. 8 : tombol ‘Laporan’, untuk menampilkan form laporan. 9 : tombol ‘Cari’, untuk memulai proses pencarian data. 10 : tombol ‘Keluar’, untuk keluar dari form Close Hash dan kembali ke ‘form simulasi’ .

III.4.7. Form Laporan

Gambar 3.24 Rancangan Form Laporan Form ini merupakan form laporan dari simulasi pembelajaran ini. Pada

  

form laporan ini hanya menjelaskan bagaimana langkah-langkah perhitungan

fungsi dari metode yang digunakan.

  Keterangan: 1 : title bar form, dengan judul ‘Laporan’. 2 : tombol ‘Close’ untuk keluar form Laporan. 3 : tombol ‘Simpan’ untuk menyimpan laporan. 4 : tombol ‘Keluar’ untuk keluar dari form Laporan. 5 : jenis pencarian Relatif dan strategi yang digunakan. 6 : tempat tampilan laporan. 7 : vertical scroll bar. 8 : horizontal scroll bar.

III.4.8. Dialog Box

  Data input dari simulasi dapat disimpan ke dalam file bertipe .hsf (Hash

  

Search File ) dengan nama file dapat ditentukan sendiri. Cara penyimpanan data

input yaitu dengan menekan tombol ‘Simpan File’ dan akan muncul tampilan

  seperti gambar 3.25 di bawah ini:

Gambar 3.25 Rancangan Dialog Box Simpan File

  Data input yang disimpan dapat dibuka kembali dengan cara menekan tombol ‘Buka File’ dan akan muncul tampilan seperti gambar 3.26 di bawah ini.

Gambar 3.26 Rancangan Dialog Box Buka File

  Selain data input, laporan hasil penempatan dan pencarian data juga dapat disimpan ke dalam file dengan tipe .txt (text file).Tampilan disajikan pada gambar 3.27 di bawah ini.

Gambar 3.27 Rancangan Dialog Box Simpan Laporan

  74 BAB IV

  IMPLEMENTASI SISTEM IV.1. Implementasi Sistem

  Implementasi algoritma perancangan simulasi pembelajaran metode pencarian relatif hash search dibagi menjadi 5 bagian yaitu,

  1. Implementasi algoritma Pengecekan Data Input dan Tabel Hash.

  2. Implementasi algoritma Penempatan Data pada Close Hash, terdiri atas, a.

  Implementasi algoritma Penempatan Data pada Close Hash dengan Resolusi Linier.

  b.

  Implementasi algoritma Penempatan Data pada Close Hash dengan Resolusi Overflow.

  c.

  Implementasi algoritma Penempatan Data pada Close Hash dengan Double Hashing .

  3. Implementasi algoritma Penempatan Data pada Open Hash, terdiri atas, a.

  Implementasi algoritma Penempatan Data pada Open Hash dengan penambahan data di depan list.

  b.

  Implementasi algoritma Penempatan Data pada Open Hash dengan penambahan data di belakang list.

  4. Implementasi algoritma Pencarian Data pada Close Hash, terdiri atas, a.

  Implementasi algoritma Pencarian Data pada Close Hash dengan Resolusi Linier.

  75 b. Implementasi algoritma Pencarian Data pada Close Hash dengan Resolusi Overflow.

  c.

  Implementasi algoritma Pencarian Data pada Close Hash dengan Double Hashing .

5. Implementasi algoritma Pencarian Data pada Open Hash, terdiri atas, a.

  Implementasi algoritma Pencarian Data pada Open Hash dengan penambahan data di depan list.

  b.

  Implementasi algoritma Pencarian Data pada Open Hash dengan penambahan data di belakang

  IV.1.1. Implementasi Algoritma Pengecekan Data Input dan Tabel Hash

  Implementasi algoritma ini melakukan pengecekan terhadap data yang di-input apakah data valid atau tidak. Algoritma ini juga melakukan pengecekan terhadap ukuran tabel hash yang di-input apakah sesuai dengan metode yang digunakan atau tidak. Implementasi Algoritma pengecekan tersebut adalah sebagai berikut,

Gambar 4.1 Rancangan Form Error Ke-1

  'Error - 1 If Trim(txtInput.Text) = "" Then MsgBox "Error 1: Data masih kosong !", vbCritical Exit Sub End If

Gambar 4.2 Listing Form Error Ke-1

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah data sudah terisi dengan benar atau masih kosong. Jika data masih kosong maka akan muncul error message box yang memberitahukan "Error 1: Data masih kosong !" Tampilan disajikan pada gambar 4.1.

Gambar 4.3 Rancangan Form Error Ke-2

  76

Gambar 4.4 Rancangan Form Error Ke-3

  'Error - 2 & Error-3 For nI = 0 To nBykData 'Berupa String If IsNumeric(AData(nI)) = False Then MsgBox "Error 2: Data '" & AData(nI) & _ "' bukan bilangan integer !", vbCritical Exit Sub ElseIf Val(AData(nI)) > 32767 Then MsgBox "Error 3: Data '" & AData(nI) & "' berada di luar range" & _ vbCrLf & "bilangan integer : 0 s/d 32767 !", vbCritical Exit Sub End If Next nI

Gambar 4.5 Listing Form Error Ke-2 dan Error ke-3

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah data yang dimasukkan ialah bilangan integer atau bukan jika bukan maka akan muncul error message box yang memberitahukan "' bukan bilangan integer !" Tampilan disajikan pada gambar 4.3.

  Selanjutnya pada error yang ke-3 akan melakukan pengecekan apakah data yang dimasukkan itu melebihi “bilangan integer : 32767, jika data yang dimasukkan melebihi

  77

  32767 maka akan muncul error message box "bilangan integer : 0 s/d 32767 !’’ Tampilan disajikan pada gambar 4.4.

Gambar 4.6 Rancangan Form Error Ke-4

  'Error - 4 If nBykData + 1 > 48 Then MsgBox "Error 4: Jumlah data dibatasi maksimal 48 buah." & vbCrLf & _

  "Jumlah data anda = " & nBykData + 1 & " buah !", vbCritical Exit Sub End If

Gambar 4.7 Listing Form Error Ke-4

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah jumlah data yang sudah terisi melebihi 48 buah data atau tidak. Jika jumlah data melebihi 48 buah data maka akan muncul error message box yang memberitahukan "Error 4: Jumlah data dibatasi maksimal 48 buah." Tampilan disajikan pada gambar 4.6.

  78

Gambar 4.8 Rancangan Form Error Ke-5

  'Error - 5 If Val(MSTabel1.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical bSearch = False txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !" lblInfo = "Data '" & ASort(nI) & "' telah ada. Data ditolak !" txtInfo.SelStart = Len(txtInfo.Text)

Gambar 4.9 Listing Form Error Ke-5

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah ada data inputan yang sama atau tidak. Jika ada data inputan yang sama maka akan muncul error message box yang memberitahukan "Error 5: Data “11” sudah ada!." Tampilan disajikan pada gambar 4.8.

  79

Gambar 4.10 Rancangan Form Error Ke-6

  'Error - 6 If Val(txtTabel1) = 0 Then MsgBox "Error 6: Ukuran tabel utama belum diisi !", vbCritical Exit Sub End If

Gambar 4.11 Listing Form Error Ke-6

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah ukuran tabel utama (tabel hash) sudah terisi atau belum jika ukuran tabel utama belum terisi maka akan muncul error message box yang memberitahukan "Error 6: Ukuran tabel utama belum diisi !"(gambar 4.10 error ke-6).

  80

Gambar 4.12 Rancangan Form Error Ke-7

  'Error - 7 If Opt2.Value Then If Val(txtTabel2) = 0 Then MsgBox "Error 7: Ukuran tabel overflow belum diisi !", vbCritical Exit Sub End If End If

Gambar 4.13 Listing Form Error Ke-7

  Penjelasan dari listing diatas adalah melakukan pengecekan jika kita memilih metode overflow maka apakah ukuran tabel overflow sudah terisi atau belum jika ukuran tabel overflow belum terisi maka akan muncul error message box yang memberitahukan "Error 7: Ukuran tabel overflow belum diisi !"(gambar 4.12 error ke-7).

  81

Gambar 4.14 Rancangan Form Error Ke-8

  'Error - 8 If Val(txtSpeed) = 0 Then MsgBox "Error 8: Kecepatan animasi belum diisi !", vbCritical Exit Sub End If

Gambar 4.15 Listing Form Error Ke-8

  Penjelasan dari listing diatas adalah melakukan pengecekan apakah ukuran tabel kecepatan sudah terisi atau belum jika ukuran tabel kecepatan belum terisi maka akan muncul error message box yang memberitahukan "Error 8: kecepatan animasi belum diisi !"(gambar 4.14 error ke-8).

  82

Gambar 4.16 Rancangan Form Error Ke-9.1Gambar 4.17 Rancangan Form Error Ke-9.2

  83

  'Error - 9.1 & 9.2 If Opt4.Value Or Opt5.Value Then If Val(txtTabel1) > 15 Then MsgBox "Error 9.1: Untuk Open Hash, ukuran Tabel Utama maks. 15 kotak !", vbCritical Exit Sub End If Else If Val(txtTabel1) > 24 Then MsgBox "Error 9.2: Untuk Close Hash, ukuran Tabel Utama maks. 24 kotak !", vbCritical Exit Sub End If End If

Gambar 4.18 Listing Form Error Ke-9.1&Error 9.2

  Penjelasan dari listing diatas adalah sistem melakukan pengecekan jika user memilih metode open hash maka ukuran tabel maksimal adalah 15 kotak. Dan apabila user memasukkan nilai melebihi 15 kotak maka akan muncul error message box yang memberitahukan "Error 9.1: Untuk Open Hash, ukuran Tabel Utama maks. 15 kotak !" (gambar 4.16 error ke-9.1). Selanjutnya pada error yang ke-9.2 akan melakukan pengecekan jika user memilih metode close hash maka ukuran tabel maksimal adalah 24 kotak. Dan apabila user memasukkan nilai melebihi 24 kotak maka akan muncul error message box yang memberitahukan "Error 9.2: Untuk Close Hash, ukuran Tabel Utama maks. 24 kotak !" (gambar 4.17 error ke-9.2).

  .

Gambar 4.19 Rancangan Form Error Ke-10

  84

  'Error - 10 If Opt2.Value Then If Val(txtTabel2) > 24 Then MsgBox "Error 10: Ukuran Tabel Overflow maks. 24 kotak !", vbCritical Exit Sub End If End If

Gambar 4.20 Listing Form Error Ke-10

  Penjelasan dari listing diatas adalah sistem melakukan pengecekan jika user memilih metode open hash dengan overflow maka ukuran tabel maksimal pada overflow adalah 24 kotak. Dan apabila user memasukkan nilai melebihi 24 kotak maka akan muncul error message box yang memberitahukan "Error 10: ukuran Tabel Overflow maks. 24 kotak !"(gambar 4.19 error ke-10).

Gambar 4.21 Rancangan Form Error Ke-11

  'Error - 11 If Opt2.Value Then If Val(txtTabel2) >= Val(txtTabel1) Then MsgBox "Error 11: Ukuran Tabel Overflow harus lebih kecil dari Tabel Utama", vbCritical Exit Sub End If End If

Gambar 4.22 Listing Form Error Ke-11

  85 Penjelasan dari listing diatas adalah sistem melakukan pengecekan jika user memilih metode open hash dengan overflow maka ukuran tabel pada overflow harus lebih kecil dari tabel utama (tabel hash). Dan apabila user memasukkan nilai lebih besar dari nilai pada tabel utama (tabel hash) maka akan muncul error message box “ Error 11: Ukuran Tabel Overflow harus lebih kecil dari tabel Utama” (gambar 4.21 error ke-11)

Gambar 4.23 Rancangan Form Error Ke-12

  'Error - 12 If Trim(txtCari.Text) = "" Then MsgBox "Error 12: Tidak ada data untuk dicari !", vbCritical Exit Sub

Gambar 4.24 Listing Form Error Ke-12

IV.1.2. Implementasi Algoritma Penempatan Data pada Close Hash

  Berdasarkan cara untuk mengatasi tabrakan, algoritma ini terdiri atas 3 bagian, yaitu algoritma penempatan data pada close hash dengan resolusi linier, resolusi

  overflow dan double hashing.

  86 Implementasi algoritma penempatan data pada close hash dengan resolusi linier mencari lokasi lain di samping lokasi tabrakan pada tabel utama secara linier. Algoritma ini akan menolak data apabila tabel utama sudah penuh.

  Implementasi algoritma penempatan data pada close hash dengan resolusi

  

overflow , terbagi atas 2 algoritma, yaitu resolusi overflow dengan sekuensial dan

  resolusi overflow dengan fungsi hash baru (rehashing). Resolusi overflow dengan sekuensial menempatkan data pada tabel overflow apabila terjadi tabrakan pada tabel utama dan mencari lokasi lain di samping lokasi tabrakan pada tabel overflow apabila terjadi tabrakan pada tabel overflow, sedangkan resolusi overflow dengan fungsi hash baru (rehashing) menempatkan data pada tabel overflow apabila terjadi tabrakan dengan tabel utama dan mencari lokasi lain pada tabel overflow dengan fungsi hash baru yaitu h(x) = jlh.data mod [uk.tabel overflow], apabila terjadi tabrakan pada tabel overflow.

  Implementasi algoritma penempatan data pada close hash dengan double

  

hashing sama dengan resolusi overflow, tetapi pada double hashing ukuran tabel utama

dan overflow sama, sedangkan pada resolusi overflow, ukuran kedua tabel tidak sama.

  Implementasi algoritma penempatan data pada close hash terbagi atas 2 tahap, yaitu tahap pembuatan tabel hash dan tahap penempatan data pada tabel hash.

  Implementasi algoritma penempatan data pada close hash, adalah sebagai berikut : Misalkan data input : 1, 15, 24, 18, 5, 10, 15, 11, 20 dengan jumlah data = 9, ukuran tabel utama = 7, Proses penempatan data untuk data di atas menggunakan Close

  Hash (Resolusi Linier) adalah sebagai berikut:

  87

Gambar 4.25 Rancangan Form Close Hash dengan Resolusi Linier

  PENEMPATAN DATA PADA 'Close Hash [Resolusi Linier]'

  • Ukuran Tabel Utama = 7, Fungsi hash = h(x) mod 7
  • Data - Data : 1, 15, 24, 18, 5, 10, 15, 11, 20 Tampilan disajikan pada gambar 4.25

  88

Gambar 4.26 Masukan data 1 dengan Resolusi Linier

  • 1. Data '1'
  • TABEL UTAMA h(x) = 1 mod 7 = 1, lokasi 1 kosong sehingga data '1' ditempatkan pada lokasi 1 Tampilan disajikan pada gambar 4.26

  89

Gambar 4.27 Masukan data 15 dengan Resolusi Linier

  • 2. Data '15'
  • TABEL UTAMA h(x) = 15 mod 7 = 1 terjadi tabrakan dengan data '1' Tampilan disajikan pada gambar 4.27

Gambar 4.28 Masukan data 15 dengan Resolusi Linier

  90 h(x) = (1 + 1) mod 7 = 2, lokasi 2 kosong sehingga data '15' ditempatkan pada lokasi 2 Tampilan disajikan pada gambar 4.28

Gambar 4.29 Masukan data 24 dengan Resolusi Linier

  • 3. Data '24'
  • TABEL UTAMA h(x) = 24 mod 7 = 3, lokasi 3 kosong sehingga data '24' ditempatkan pada lokasi 3 Tampilan disajikan pada gambar 4.29

  91

Gambar 4.30 Masukan data 18 dengan Resolusi Linier

  • 4. Data '18'
  • TABEL UTAMA h(x) = 18 mod 7 = 4, lokasi 4 kosong sehingga data '18' ditempatkan pada lokasi 4 Tampilan disajikan pada gambar 4.30

Gambar 4.31 Masukan data 5 dengan Resolusi Linier

  92

  • 5. Data '5'
  • TABEL UTAMA h(x) = 5 mod 7 = 5, lokasi 5 kosong sehingga data '5' ditempatkan pada lokasi 5 Tampilan disajikan pada gambar 4.31

Gambar 4.32 Masukan data 10 dengan Resolusi Linier

  • 6. Data '10'
  • TABEL UTAMA h(x) = 10 mod 7 = 3 terjadi tabrakan dengan data '24' Tampilan disajikan pada gambar 4.32

  93

  94 Gambar 4.33 Masukan data 10 dengan Resolusi Linier h(x) = (3 + 1) mod 7 = 4 terjadi tabrakan dengan data '18' Tampilan disajikan pada gambar 4.33

Gambar 4.34 Masukan data 10 dengan Resolusi Linier

  h(x) = (4 + 1) mod 7 = 5 terjadi tabrakan dengan data '5' Tampilan disajikan pada gambar 4.34

  95 Gambar 4.35 Masukan data 10 dengan Resolusi Linier h(x) = (5 + 1) mod 7 = 6, lokasi 6 kosong sehingga data '10' ditempatkan pada lokasi 6 Tampilan disajikan pada gambar 4.35

Gambar 4.36 Masukan data 15 dengan Resolusi Linier

  • 7. Data '15'
  • TABEL UTAMA h(x) = 15 mod 7 = 1 terjadi tabrakan dengan data '1' h(x) = (1 + 1) mod 7 = 2

  Data '15' telah ada. Data ditolak ! Tampilan disajikan pada gambar 4.36

Gambar 4.37 Masukan data 11 dengan Resolusi Linier

  • 8. Data '11'
  • TABEL UTAMA h(x) = 11 mod 7 = 4 terjadi tabrakan dengan data '18' Tampilan disajikan pada gambar 4.37

  96

Gambar 4.38 Masukan data 11 dengan Resolusi Linier

  h(x) = (4 + 1) mod 7 = 5 terjadi tabrakan dengan data '5' Tampilan disajikan pada gambar 4.38

Gambar 4.39 Masukan data 11 dengan Resolusi Linier

  97 h(x) = (5 + 1) mod 7 = 6 terjadi tabrakan dengan data '10' Tampilan disajikan pada gambar 4.39

Gambar 4.40 Masukan data 11 dengan Resolusi Linier

  h(x) = (6 + 1) mod 7 = 0, lokasi 0 kosong sehingga data '11' ditempatkan pada lokasi 0 Tampilan disajikan pada gambar 4.40

Gambar 4.41 Masukan data 20 dengan Resolusi Linier

  98

  • 9. Data '20'
  • TABEL UTAMA -> h(x) = 20 mod 7 = 6 terjadi tabrakan dengan data '10' h(x) = (6 + 1) mod 7 = 0 terjadi tabrakan dengan data '11' h(x) = (0 + 1) mod 7 = 1 terjadi tabrakan dengan data '1' h(x) = (1 + 1) mod 7 = 2 terjadi tabrakan dengan data '15' h(x) = (2 + 1) mod 7 = 3 terjadi tabrakan dengan data '24' h(x) = (3 + 1) mod 7 = 4 terjadi tabrakan dengan data '18' h(x) = (4 + 1) mod 7 = 5 terjadi tabrakan dengan data '5' h(x) = (5 + 1) mod 7 = 6

  99

  Tampilan disajikan pada gambar 4.41

Gambar 4.42 Masukan data 20 dengan Resolusi Linier

  Tabel Utama telah penuh. Data '20' ditolak ! Tampilan disajikan pada gambar 4.42

  ' TABEL UTAMA 'Isi nX nX = A(nI) 'Letak Data - ntemp h(x) = x mod [uk. tabel] nTemp = nX Mod nTabel1 ' DATA TIDAK BERTABRAKAN If MSTabel1.TextMatrix(0, nTemp) = "" then 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _ "sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " & nTemp 'Isi Nilai MSTabel1.TextMatrix(0, nTemp) = A(nI) ElseIf MSTabel1.TextMatrix(0, nTemp) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical bSearch = False txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !" lblInfo = "Data '" & ASort(nI) & "' telah ada. Data ditolak !" txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & vbCrLf & lblInfo else, 'DATA BERTABRAKAN 'Solusi untuk mengatasi tabrakan Pilih kasus nTipeHash Kasus 1 'TABRAKAN DENGAN RESOLUSI LINIER 'Posisi Awal nAwal = nTemp 'LOOPING bSearch = True While bSearch 'Re-hash txtInfo = txtInfo & vbCrLf & "h(x) = (" & nTemp & " + 1) mod " & nTabel1 & " = " & (nTemp + 1) Mod nTabel1

lblInfo = "h(x) = (" & nTemp & " + 1) mod " & nTabel1 & " = " & (nTemp + 1) Mod

nTabel1 txtInfo.SelStart = Len(txtInfo.Text) cReport = cReport & vbCrLf & " " & lblInfo nTemp = (nTemp + 1) Mod nTabel1 'Bila kembali ke posisi awal - terminate If nTemp = nAwal Then bSearch = False

txtInfo = txtInfo & vbCrLf & "Tabel Utama telah penuh. Data '" & ASort(nI) & "'

ditolak !" lblInfo = "Tabel Utama telah penuh. Data '" & ASort(nI) & "' ditolak !" txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & vbCrLf & lblInfo

  Else If Val(MSTabel1.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _

  100

  "sudah ada !", vbCritical bSearch = False txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !" lblInfo = "Data '" & ASort(nI) & "' telah ada. Data ditolak !" txtInfo.SelStart = Len(txtInfo.Text) 'Report

cReport = cReport & vbCrLf & lblInfo

  'Tabrakan (Collision) ElseIf MSTabel1.TextMatrix(0, nTemp) <> "" Then 'Info txtInfo = txtInfo & vbCrLf & " terjadi tabrakan " & _ "dengan data '" & MSTabel1.TextMatrix(0, nTemp) & "'" txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & " -> terjadi tabrakan " & _ "dengan data '" & MSTabel1.TextMatrix(0, nTemp) & "'" Else 'Tidak terjadi tabrakan 'Isi Nilai MSTabel1.TextMatrix(0, nTemp) = ASort(nI) 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _

" sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " &

nTemp end

Gambar 4.43 Listing Form Close Hash dengan Resolusi Linier

  program diatas menjelaskan bahwa bagaimana cara menempatkan data - data dengan close hash (resolusi linier) (gambar 4.41).

  . Pertama-tama program akan mengecek inputan data “ 2.

  nX = A(nI) “ 1.

  “nTemp = nX Mod

  Melakukan penempatan sesuai modulo yang sudah diinputkan

  nTabel1” .

  3. Jika data yang diinputkan tidak terjadi tabrakan maka data langsung ditempatkan 'Tidak terjadi tabrakan

  sesuai fungsinya.

  'Isi Nilai MSTabel1.TextMatrix(0, nTemp) = ASort(nI) 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _

" sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " &

nTemp

4. Jika data yang diinputkan terjadi tabrakan maka akan menjalankan fungsi re- hash sampai ditemukan tempat yang masih kosong.

  101

5. Jika data yang diinputkan sudah ada atau ada data yang sama maka data akan ditolak.

  If Val(MSTabel1.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical

  6. Jika tabel utama telah penuh maka data selanjutnya akan ditolak if nTemp = nAwal Then bSearch = False txtInfo = txtInfo & vbCrLf & "Tabel Utama telah penuh. Data '" \

  & ASort(nI) & "' ditolak !"

  Misalkan data input : 1, 15, 24, 18, 5, 10, 15, 11, 20 dengan jumlah data = 9, ukuran tabel utama = 5, dan tabel overflow = 3. Proses penempatan data untuk data di atas menggunakan Close Hash (sekuensial) adalah sebagai berikut:

Gambar 4.44 Rancangan Form Close Hash dengan Overflow Sekuensial

  102 PENEMPATAN DATA PADA 'Close Hash [Resolusi Overflow - Sekuensial]'

  • Ukuran Tabel Utama = 5, Fungsi hash = h(x) mod 5 Ukuran Tabel Overflow = 3,
  • Data - Data : 1, 15, 24, 18, 5, 10, 15, 11, 20 Tampilan disajikan pada gambar 4.44

Gambar 4.45 Masukan data 1 dengan Overflow Sekuensial

  • 1. Data '1'
  • TABEL UTAMA h(x) = 1 mod 5 = 1, lokasi 1 kosong sehingga data '1' ditempatkan pada lokasi 1 Tampilan disajikan pada gambar 4.45

  103

Gambar 4.46 Masukan data 15 dengan Overflow Sekuensial

  • 2. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0, lokasi 0 kosong sehingga data '15' ditempatkan pada lokasi 0 Tampilan disajikan pada gambar 4.46

Gambar 4.47 Masukan data 24 dengan Overflow Sekuensial

  104

  • 3. Data '24'
  • TABEL UTAMA h(x) = 24 mod 5 = 4, lokasi 4 kosong sehingga data '24' ditempatkan pada lokasi 4 Tampilan disajikan pada gambar 4.47

Gambar 4.48 Masukan data 18 dengan Overflow Sekuensial dengan masukan 18

  • 4. Data '18'
  • TABEL UTAMA h(x) = 18 mod 5 = 3, lokasi 3 kosong sehingga data '18' ditempatkan pada lokasi 3 Tampilan disajikan pada gambar 4.48

  105

Gambar 4.49 Masukan data 5 dengan Overflow Sekuensial

  • 5. Data '5'
  • TABEL UTAMA h(x) = 5 mod 5 = 0 terjadi tabrakan dengan data '15' Tampilan disajikan pada gambar 4.49

Gambar 4.50 Masukan data 5 dengan Overflow Sekuensial

  106 Penempatan dilanjutkan ke Tabel Overflow TABEL OVERFLOW g(x) = 0, lokasi 0 kosong sehingga data '5' ditempatkan pada lokasi 0 Tampilan disajikan pada gambar 4.50

Gambar 4.51 Masukan data 10 dengan Overflow Sekuensial

  • 6. Data '10'
  • TABEL UTAMA h(x) = 10 mod 5 = 0 terjadi tabrakan dengan data '15' Tampilan disajikan pada gambar 4.51

  107

Gambar 4.52 Masukan data 10 dengan Overflow Sekuensial

  Penempatan dilanjutkan ke Tabel Overflow TABEL OVERFLOW g(x) = 0 terjadi tabrakan dengan data '5' Tampilan disajikan pada gambar 4.52 g

Gambar 4.53 Masukan data 10 dengan Overflow Sekuensial

  g(x) = 1, lokasi 1 kosong sehingga data '10' ditempatkan pada lokasi 1 Tampilan disajikan pada gambar 4.53

  108

Gambar 4.54 Masukan data 15 dengan Overflow Sekuensial

  • 7. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0 Data '15' telah ada. Data ditolak ! Tampilan disajikan pada gambar 4.54

Gambar 4.55 Masukan data 11 dengan Overflow Sekuensial

  109

  • 8. Data '11'
  • TABEL UTAMA h(x) = 11 mod 5 = 1 terjadi tabrakan dengan data '1' Tampilan disajikan pada gambar 4.55

Gambar 4.56 Masukan data 11 dengan Overflow Sekuensial

  Penempatan dilanjutkan ke Tabel Overflow TABEL OVERFLOW g(x) = 0 terjadi tabrakan dengan data '5' Tampilan disajikan pada gambar 4.56

Gambar 4.57 Masukan data 11 dengan Overflow Sekuensial

  110 g(x) = 1 terjadi tabrakan dengan data '10' Tampilan disajikan pada gambar 4.57

Gambar 4.58 Masukan data 11 dengan Overflow Sekuensial

  g(x) = 2, lokasi 2 kosong sehingga data '11' ditempatkan pada lokasi 2 Tampilan disajikan pada gambar 4.58

Gambar 4.59 Masukan data 20 dengan Overflow Sekuensial

  111

  • 9. Data '20'
  • TABEL UTAMA h(x) = 20 mod 5 = 0 -> terjadi tabrakan dengan data '15' Pencarian dilanjutkan ke Tabel Overflow TABEL OVERFLOW g(x) = 0 -> terjadi tabrakan dengan data '5' g(x) = 1 terjadi tabrakan dengan data '10' g(x) = 2 terjadi tabrakan dengan data '11' Tabel Overflow telah penuh. Data '20' ditolak ! Tampilan disajikan pada gambar 4.59

  'TABRAKAN DENGAN RESOLUSI OVERFLOW ' SEKUENSIAL 'LOOPING bSearch = True: nTemp = -1 While bSearch 'Sekuensial nTemp = nTemp + 1

txtInfo = txtInfo & vbCrLf & "Sekuensial - Penempatan dilanjutkan ke Tabel

Overflow" txtInfo.SelStart = Len(txtInfo.Text) cReport = cReport & vbCrLf & _

  IIf(nTemp = 0, "TABEL OVERFLOW ", " ") & _ "g(x) = " & nTemp 'Jika lebih besar dari uk. tabel overflow, maka terminate If nTemp + 1 > nTabel2 Then bSearch = False

txtInfo = txtInfo & vbCrLf & "Tabel Overflow telah penuh. Data '" & ASort(nI) &

"' ditolak !" lblInfo = "Tabel Overflow telah penuh. Data '" & ASort(nI) & "' ditolak !" txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & vbCrLf & lblInfo If Val(MSTabel2.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical bSearch = False

txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !"

lblInfo = "Data '" & ASort(nI) & "' telah ada. Data ditolak !" txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & vbCrLf & lblInfo ElseIf MSTabel2.TextMatrix(0, nTemp) <> "" Then

  'Tabrakan (Collision)

  112

  113

  txtInfo = txtInfo & vbCrLf & " terjadi tabrakan " & _ "dengan data " & MSTabel2.TextMatrix(0, nTemp) txtInfo.SelStart = Len(txtInfo.Text) 'Report cReport = cReport & " terjadi tabrakan " & _

"dengan data '" & MSTabel2.TextMatrix(0, nTemp) & "'"

  Else 'Tidak terjadi tabrakan 'Isi Nilai MSTabel2.TextMatrix(0, nTemp) = ASort(nI) ‘Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _ " sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " & nTemp end

Gambar 4.60 Listing Form Close Hash dengan Overflow-Sekuensial

  program diatas menjelaskan bahwa bagaimana cara menempatkan data - data dengan close hash (Overflow-Sekuensial) (gambar 4.58).

  1. Pertama-tama program akan mengecek inputan data “ nX = A(nI) “ .

  2. Melakukan penempatan sesuai modulo yang sudah diinputkan

  “nTemp = nX Mod nTabel1” .

  3. Jika data yang diinputkan tidak terjadi tabrakan maka data langsung ditempatkan sesuai fungsinya. 'Tidak terjadi tabrakan 'Isi Nilai MSTabel2.TextMatrix(0, nTemp) = ASort(nI) 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _ " sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " & nTemp 4.

  Jika data yang diinputkan terjadi tabrakan maka akan menjalankan fungsi re- hash sampai ditemukan tempat yang masih kosong.

  5. Jika data yang diinputkan sudah ada atau ada data yang sama maka data akan ditolak.

  If Val(MSTabel2.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical

  6. Jika tabel utama telah penuh maka data selanjutnya akan ditolak If nTemp + 1 > nTabel2 Then bSearch = False txtInfo = txtInfo & vbCrLf & "Tabel Overflow telah penuh. Data '" & ASort(nI) & "' ditolak !" Misalkan data input : 1, 15, 24, 18, 5, 10, 15, 11, 20 dengan jumlah data = 9, ukuran tabel utama = 5, dan tabel overflow = 3. Proses penempatan data untuk data di atas menggunakan Close Hash (fungsi hash baru) adalah sebagai berikut: PENEMPATAN DATA PADA 'Close Hash [Resolusi Overflow - Rehash]'

  • Ukuran Tabel Utama = 5, Fungsi hash = h(x) mod 5 Ukuran Tabel Overflow = 3, Fungsi hash = g(x) mod 3
  • Data - Data : 1, 15, 24, 18, 5, 10, 15, 11, 20 Tampilan disajikan pada gambar 4.61

Gambar 4.61 Rancangan Form Close Hash dengan Overflow-fungsi hash baru

  114

Gambar 4.62 Masukan data 1 dengan Overflow-fungsi hash baru

  • 1. Data '1'
  • TABEL UTAMA h(x) = 1 mod 5 = 1, lokasi 1 kosong sehingga data '1' ditempatkan pada lokasi 1 Tampilan disajikan pada gambar 4.62

Gambar 4.63 Masukan data 15 dengan Overflow-fungsi hash baru

  115

  • 2. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0, lokasi 0 kosong sehingga data '15' ditempatkan pada lokasi 0 Tampilan disajikan pada gambar 4.63

Gambar 4.64 Masukan data 24 dengan Overflow-fungsi hash baru

  • 3. Data '24'
  • TABEL UTAMA h(x) = 24 mod 5 = 4, lokasi 4 kosong sehingga data '24' ditempatkan pada lokasi 4 Tampilan disajikan pada gambar 4.64

  116

Gambar 4.65 Masukan data 18 dengan Overflow-fungsi hash baru

  • 4. Data '18'
  • TABEL UTAMA h(x) = 18 mod 5 = 3, lokasi 3 kosong sehingga data '18' ditempatkan pada lokasi 3 Tampilan disajikan pada gambar 4.65

Gambar 4.66 Masukan data 5 dengan Overflow-fungsi hash baru

  117

  • 5. Data '5'
  • TABEL UTAMA h(x) = 5 mod 5 = 0 terjadi tabrakan dengan data '15' Tampilan disajikan pada gambar 4.66

Gambar 4.67 Masukan data 5 dengan Overflow-fungsi hash baru

  TABEL OVERFLOW g(x) = 5 mod 3 = 2, lokasi 2 kosong sehingga data '5' ditempatkan pada lokasi 2 Tampilan disajikan pada gambar 4.67

Gambar 4.68 Masukan data 10 dengan Overflow-fungsi hash baru

  118

  • 6. Data '10'
  • TABEL UTAMA h(x) = 10 mod 5 = 0 terjadi tabrakan dengan data '15' Penempatan dilanjutkan ke Tabel Overflow Tampilan disajikan pada gambar 4.68

Gambar 4.69 Masukan data 10 dengan Overflow-fungsi hash baru

  TABEL OVERFLOW g(x) = 10 mod 3 = 1, lokasi 1 kosong sehingga data '10' ditempatkan pada lokasi 1 Tampilan disajikan pada gambar 4.69

  119

Gambar 4.70 Masukan data 15 dengan Overflow-fungsi hash baru

  • 7. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0 Data '15' telah ada. Data ditolak ! Tampilan disajikan pada gambar 4.70

  120

Gambar 4.71 Masukan data 11 dengan Overflow-fungsi hash baru

  • 8. Data '11'
  • TABEL UTAMA h(x) = 11 mod 5 = 1 terjadi tabrakan dengan data '1' Penempatan dilanjutkan ke Tabel Overflow Tampilan disajikan pada gambar 4.71

  121

  122

Gambar 4.72 Masukan data 11 dengan Overflow-fungsi hash baru

  TABEL OVERFLOW g(x) = 11 mod 3 = 2 terjadi tabrakan dengan data '5' Tampilan disajikan pada gambar 4.72

Gambar 4.73 Masukan data 11 dengan Overflow-fungsi hash baru g(x) = (2 + 1) mod 3 = 0, lokasi 0 kosong sehingga data '11' ditempatkan pada lokasi 0 Tampilan disajikan pada gambar 4.73

Gambar 4.74 Masukan data 20 dengan Overflow-fungsi hash baru

  • 9. Data '20'
  • TABEL UTAMA h(x) = 20 mod 5 = 0 terjadi tabrakan dengan data '15' Penempatan dilanjutkan ke Tabel Overflow TABEL OVERFLOW g(x) = 20 mod 3 = 2 terjadi tabrakan dengan data '5' g(x) = (2 + 1) mod 3 = 0 terjadi tabrakan dengan data '11' g(x) = (0 + 1) mod 3 = 1 terjadi tabrakan dengan data '10' g(x) = (1 + 1) mod 3 = 2 Tabel Overflow telah penuh. Data '20' ditolak ! Tampilan disajikan pada gambar 4.74

  123

  'TABRAKAN DENGAN RESOLUSI OVERFLOW - REHASH 'Rehash nTemp = nX Mod nTabel2 'Posisi Awal nAwal = nTemp 'LOOPING bSearch = True 'Clear Counter nJ = 0 While bSearch 'Inc. Counter nJ = nJ + 1 'Re-hash Jika nJ > 1 Maka nTemp = (nTemp + 1) Mod nTabel2 'Terminate If nJ > 1 And nTemp = nAwal Then bSearch = False

txtInfo = txtInfo & vbCrLf & "Tabel Overflow telah penuh. Data '" & ASort(nI) &

"' ditolak !" else If Val(MSTabel2.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical bSearch = False

txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !"

bSearch = False 'Tabrakan (Collision) Jika MSTabel2.TextMatrix(0, nTemp) <> "" Maka lblInfo = lblInfo & " terjadi tabrakan " & _ "dengan data " & MSTabel2.TextMatrix(0, nTemp) Jika tidak 'Tidak terjadi tabrakan 'Isi Nilai MSTabel2.TextMatrix(0, nTemp) = ASort(nI) 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _ "sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " & nTemp bSearch = False end

Gambar 4.75 Listing Form Close Hash dengan Overflow-Fungsi Hash Baru

  program diatas menjelaskan bahwa bagaimana cara menempatkan data - data dengan close hash (overflow-fungsi hash baru) (gambar 4.73).

  . Melakukan penempatan posisi awal “

  nAwal = nTemp” 1.

  nTemp = nX Mod 2.

  Melakukan penempatan sesuai modulo yang sudah diinputkan “

  nTabel2” .

  124

  3. Jika data yang diinputkan tidak terjadi tabrakan maka data langsung ditempatkan sesuai fungsinya

  'Tidak terjadi tabrakan 'Isi Nilai MSTabel2.TextMatrix(0, nTemp) = ASort(nI) 'Report cReport = cReport & ", lokasi " & nTemp & " kosong" & vbCrLf & _ "sehingga data '" & ASort(nI) & "' ditempatkan pada lokasi " & nTemp.

  4. Jika data yang diinputkan terjadi tabrakan maka akan menjalankan fungsi selanjutnya ke table overflow- fungsi hash baru sampai ditemukan tempat yang masih kosong.

  ElseIf MSTabel2.TextMatrix(0, nTemp) <> "" Then 'Tabrakan (Collision) txtInfo = txtInfo & vbCrLf & " -> terjadi tabrakan " & _ "dengan data " & MSTabel2.TextMatrix(0, nTemp)

  5. Jika data yang diinputkan sudah ada atau ada data yang sama maka data akan ditolak.

  If Val(MSTabel2.TextMatrix(0, nTemp)) = ASort(nI) Then 'Data sama MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical bSearch = False txtInfo = txtInfo & vbCrLf & "Data '" & ASort(nI) & "' telah ada. Data ditolak !"

  6. Jika table overflow sudah penuh maka data tersebut ditolak

  ! " # $ % & " ' ( " ) *"

IV.1.3. Implementasi Algoritma Penempatan Data pada Open Hash

  Berdasarkan cara untuk mengatasi tabrakan, implementasi algoritma ini terdiri atas 2 bagian, yaitu algoritma penempatan data pada open hash di depan list dan di belakang list.

  Implementasi algoritma penempatan data pada open hash di depan list selalu menyisipkan data di depan list yang telah terbentuk. Sedangkan algoritma penempatan data pada open hash di belakang list ini menyisipkan data di belakang list yang telah terbentuk.

  Implementasi algoritma penempatan data pada open hash adalah sebagai berikut : 125

  Misalkan data input : 1, 15, 24, 18, 5, 10, 15, 11, 20 dengan jumlah data = 9, ukuran tabel utama = 5, Proses penempatan data untuk data di atas menggunakan Open Hash (Belakang List) adalah sebagai berikut:

Gambar 4.76 Rancangan Form Open Hash – Belakang List

  PENEMPATAN DATA PADA 'Open Hash [Belakang List]'

  • Ukuran Tabel = 5, Fungsi hash = h(x) mod 5
  • Data - Data : 1, 15, 24, 18, 5, 10, 15, 11, 20 Tampilan disajikan pada gambar 4.76

  126

Gambar 4.77 Masukan data 1 dengan Belakang List

  • 1. Data '1'
  • TABEL UTAMA h(x) = 1 mod 5 = 1 Tampilan disajikan pada gambar 4.77

Gambar 4.78 Masukan data 15 dengan Belakang List

  127

  • 2. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0 Tampilan disajikan pada gambar 4.78

Gambar 4.79 Masukan data 24 dengan Belakang List

  • 3. Data '24'
  • TABEL UTAMA h(x) = 24 mod 5 = 4 Tampilan disajikan pada gambar 4.79

  128

Gambar 4.80 Masukan data 18 dengan Belakang List

  • 4. Data '18'
  • TABEL UTAMA h(x) = 18 mod 5 = 3 Tampilan disajikan pada gambar 4.80

Gambar 4.81 Masukan data 5 dengan Belakang List

  129

  • 5. Data '5'
  • TABEL UTAMA h(x) = 5 mod 5 = 0 Tampilan disajikan pada gambar 4.81

Gambar 4.82 Masukan data 10 dengan Belakang List

  • 6. Data '10'
  • TABEL UTAMA h(x) = 10 mod 5 = 0 Tampilan disajikan pada gambar 4.82

  130

Gambar 4.83 Masukan data 15 dengan Belakang List

  • 7. Data '15'
  • TABEL UTAMA Data sudah ada. Data ditolak! Tampilan disajikan pada gambar 4.83

Gambar 4.84 Masukan data 11 dengan Belakang List

  131

  • 8. Data '11'
  • TABEL UTAMA h(x) = 11 mod 5 = 1 Tampilan disajikan pada gambar 4.84

Gambar 4.85 Masukan data 20 dengan Belakang List

  • 9. Data '20'
  • TABEL UTAMA h(x) = 20 mod 5 = 0 Tampilan disajikan pada gambar 4.85

  132

  ' TABEL UTAMA 'Isi nX nX = ASort(nI) 'Letak Data - ntemp -> h(x) = x mod [uk. tabel] nTemp = nX Mod nTabel1 txtInfo = txtInfo & vbCrLf & "h(x) = " & nX & " mod " & nTabel1 & " = " & nTemp lblInfo = "h(x) = " & nX & " mod " & nTabel1 & " = " & nTemp bSama = False For i = 0 To nI - 1 If Val(ASort(i)) = Val(ASort(nI)) Then txtInfo = txtInfo & vbCrLf & "Data sudah ada. Data ditolak!" lblInfo = "Data sudah ada. Data ditolak!" txtInfo.SelStart = Len(txtInfo.Text) bSama = True MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical Exit For End If Next i 'OPEN HASH - BELAKANG LIST 'Tujuan untuk list yang baru cTag = shpMain(nTemp).Tag cTemp = shpMain(nTemp).Tag 'Geser list ke sebelah kanan bFound = False While cTemp <> "" bFound = True 'Posisi Temp cTemp = shpList(Val(cTemp)).Tag wend 'Hapus Tujuan Main List shpMain(nTemp).Tag = shpList.UBound + 1 nPosisi = 0 'LOAD LIST nByk = shpList.UBound + 1 'shpList Load shpList(nByk) Next nI 'Confirm MsgBox "Penempatan Data Selesai. Klik tombol 'Laporan' untuk " & vbCrLf & _ "melihat prosedur kerja yang telah dilakukan program.", vbInformation

Gambar 4.86 Listing Form Open Hash – Belakang List

  Program diatas menjelaskan bahwa bagaimana cara menempatkan data - data dengan open hash (belakang list) (gambar 4.84).

  1. Melakukan penempatan posisi awal “ 'Isi nX nX = ASort(nI)”

  .

  2. Melakukan penempatan sesuai modulo yang sudah diinputkan 'Letak Data - ntemp h(x) = x mod [uk. tabel]

  “

  nTemp = nX Mod nTabel1 .

  133

  3. Setelah itu menentukan tujuan data sesuai fungsinya

  'Tujuan untuk list yang baru cTag = shpMain(nTemp).Tag cTemp = shpMain(nTemp).Tag.

  4. Jika data yang diinputkan mempunyai alamat address penempatan yang sama maka akan melakukan penggeseran kesebelah kanan atau belakang dari data sebelumnya.

  'Geser list ke sebelah kanan bFound = False While cTemp <> "" bFound = True 'Posisi Temp cTemp = shpList(Val(cTemp)).Tag

  5. Jika data yang diinputkan sudah ada atau ada data yang sama maka data akan ditolak.

  If Val(ASort(I)) = Val(ASort(nI)) Maka Tampilkan pesan "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !" 6.

  Jika penempatan data sudah selesai maka akan muncul messagebox

  'Confirm MsgBox "Penempatan Data Selesai. Klik tombol 'Laporan' untuk " & vbCrLf & _ "melihat prosedur kerja yang telah dilakukan program.", vbInformation

  Misalkan data input : 1, 15, 24, 18, 5, 10, 15, 11, 20 dengan jumlah data = 9, ukuran tabel utama = 5, Proses penempatan data untuk data di atas menggunakan Open Hash (Depan List) adalah sebagai berikut:

  134

Gambar 4.87 Rancangan Form Open Hash – Depan List

  PENEMPATAN DATA PADA 'Open Hash [Depan List]'

  • Ukuran Tabel = 5, Fungsi hash = h(x) mod 5
  • Data - Data : 1, 15, 24, 18, 5, 10, 15, 11, 20 Tampilan disajikan pada gambar 4.87

  135

Gambar 4.88 Masukan data 1 dengan Depan List

  • 1. Data '1'
  • TABEL UTAMA h(x) = 1 mod 5 = 1 Tampilan disajikan pada gambar 4.88

Gambar 4.89 Masukan data 15 dengan Depan List

  136

  • 2. Data '15'
  • TABEL UTAMA h(x) = 15 mod 5 = 0 Tampilan disajikan pada gambar 4.89

Gambar 4.90 Masukan data 24 dengan Depan List

  • 3. Data '24'
  • TABEL UTAMA h(x) = 24 mod 5 = 4 Tampilan disajikan pada gambar 4.90

  137

Gambar 4.91 Masukan data 18 dengan Depan List

  • 4. Data '18'
  • TABEL UTAMA h(x) = 18 mod 5 = 3 Tampilan disajikan pada gambar 4.91

Gambar 4.92 Masukan data 5 dengan Depan List

  138

  • 5. Data '5'
  • TABEL UTAMA h(x) = 5 mod 5 = 0 Tampilan disajikan pada gambar 4.92

Gambar 4.93 Masukan data 10 dengan Depan List

  • 6. Data '10'
  • TABEL UTAMA h(x) = 10 mod 5 = 0 Tampilan disajikan pada gambar 4.93

  139

Gambar 4.94 Masukan data 15 dengan Depan List

  • 7. Data '15'
  • TABEL UTAMA Data sudah ada. Data ditolak! Tampilan disajikan pada gambar 4.94

Gambar 4.95 Masukan data 11 dengan Depan List

  140

  • 8. Data '11'
  • TABEL UTAMA h(x) = 11 mod 5 = 1 Tampilan disajikan pada gambar 4.95

Gambar 4.96 Masukan data 20 dengan Depan List

  • 9. Data '20'
  • TABEL UTAMA h(x) = 20 mod 5 = 0 Tampilan disajikan pada gambar 4.96

  ' TABEL UTAMA 'Isi nX nX = ASort(nI) 'Letak Data - ntemp -> h(x) = x mod [uk. tabel] nTemp = nX Mod nTabel1 txtInfo = txtInfo & vbCrLf & "h(x) = " & nX & " mod " & nTabel1 & " = " & nTemp lblInfo = "h(x) = " & nX & " mod " & nTabel1 & " = " & nTemp bSama = False For i = 0 To nI - 1 If Val(ASort(i)) = Val(ASort(nI)) Then

  141 txtInfo = txtInfo & vbCrLf & "Data sudah ada. Data ditolak!" lblInfo = "Data sudah ada. Data ditolak!" txtInfo.SelStart = Len(txtInfo.Text) bSama = True MsgBox "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !", vbCritical Exit For End If Next i 'OPEN HASH - DEPAN LIST cTag = "" 'CARI POSISI LIST PALING TERAKHIR nPosisi = -1: nJ = -1: bFound = False While bFound = False 'Inc. Counter nJ = nJ + 1 'Checking main list Jika nJ = 0 Maka 'MAIN LIST Jika shpMain(nTemp).Tag = "" Maka shpMain(nTemp).Tag = shpList.UBound + 1 'Main List masih kosong nPosisi = nJ bFound = True Jika tidak, 'Main List sudah berisi - next list nPosisi = Val(shpMain(nTemp).Tag) Jika tidak, 'LINKED LIST Jika shpList(nPosisi).Tag = "" Maka shpList(nPosisi).Tag = shpList.UBound + 1 'List di samping kosong nPosisi = nJ bFound = True Jika tidak, 'List di samping berisi - next list nPosisi = Val(shpList(nPosisi).Tag) end

  'Confirm MsgBox "Penempatan Data Selesai. Klik tombol 'Laporan' untuk " & vbCrLf & _ "melihat prosedur kerja yang telah dilakukan program.", vbInformation

Gambar 4.97 Listing Form Open Hash – Depan List

  Program diatas menjelaskan bahwa bagaimana cara menempatkan data - data dengan open hash (Depan list) (gambar 4.95).

  1. Melakukan penempatan posisi awal “ 'Isi nX nX = ASort(nI)” .

  2. Melakukan penempatan sesuai modulo yang sudah diinputkan

  “ 'Letak Data - ntemp h(x) = x mod [uk. tabel] nTemp = nX Mod nTabel1 .

  142

  3. Setelah itu menentukan posisi terakhir dari data

  cTag = "" 'CARI POSISI LIST PALING TERAKHIR nPosisi = -1: nJ = -1: bFound = False While bFound = False

  4. Melakukan pengecekan pada main list apakah penempatan data sudah terisi atau belum.

  'Checking main list Jika nJ = 0 Maka 'MAIN LIST Jika shpMain(nTemp).Tag = "" Maka shpMain(nTemp).Tag = shpList.UBound + 1 'Main List masih kosong nPosisi = nJ bFound = True Jika tidak, 'Main List sudah berisi - next list nPosisi = Val(shpMain(nTemp).Tag) Jika tidak, 'LINKED LIST Jika shpList(nPosisi).Tag = "" Maka shpList(nPosisi).Tag = shpList.UBound + 1 'List di samping kosong nPosisi = nJ bFound = True Jika tidak, 'List di samping berisi - next list nPosisi = Val(shpList(nPosisi).Tag) end

  5. Jika data yang diinputkan sudah ada atau ada data yang sama maka data akan ditolak.

  If Val(ASort(I)) = Val(ASort(nI)) Maka Tampilkan pesan "Error 5: Data '" & Val(ASort(nI)) & "' " & _ "sudah ada !" 6.

  Jika penempatan data sudah selesai maka akan muncul messagebox

  'Confirm MsgBox "Penempatan Data Selesai. Klik tombol 'Laporan' untuk " & vbCrLf & _ "melihat prosedur kerja yang telah dilakukan program.", vbInformation

  143

IV.1.4. Implementasi Algoritma Pencarian Data pada Close Hash

  Implementasi algoritma ini melakukan pencarian data pada tabel close hash dengan resolusi linier, resolusi overflow dan double hashing. Algoritma ini melakukan simulasi pencarian data dan menunjukkan serta mendokumentasikan langkah – langkah yang dilakukan program dalam bentuk text (report).

  Implementasi algoritma pencarian tersebut adalah sebagai berikut, disajikan pada gambar 4.98

  'RESOLUSI LINIER 'Posisi Awal nAwal = nFungsi 'Rehash nFungsi = (nFungsi + 1) Mod nTabel1 'Perbandingan If MSTabel1.TextMatrix(0, nFungsi) = "" Then bFound = False bTerminate = True ElseIf Val(MSTabel1.TextMatrix(0, nFungsi)) = pnCari Then 'DITEMUKAN bFound = True bTerminate = False Else 'TIDAK DITEMUKAN bFound = False bTerminate = False End If 'confirm If bFound Then MsgBox "Data '" & nCari & "' berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Report' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbInformation Else MsgBox "Data '" & nCari & "' tidak berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Report' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbCritical End If

Gambar 4.98 Listing form pencarian resolusi linier

  144 Program diatas menjelaskan bahwa bagaimana cara mencari data - data dengan close hash (resolusi linier) (gambar 4.98).

  1. Melakukan pencarian posisi awal sesuai modulo yang sudah diinputkan pada saat melakukan penempatan data.

  ‘posisi awal nAwal=nFungsi

.

  2. Setelah itu melakukan rehash jika data tidak sama dengan fungsi awal

  ‘rehash

  nFungsi = (nFungsi + 1) Mod nTabel1 3.

  Setelah itu melakukan pengecekan dan perbandingan apakah data yang dicari itu ditemukan atau tidak ditemukan

  'Perbandingan If MSTabel1.TextMatrix(0, nFungsi) = "" Then bFound = False bTerminate = True ElseIf Val(MSTabel1.TextMatrix(0, nFungsi)) = pnCari Then 'DITEMUKAN bFound = True bTerminate = False Else 'TIDAK DITEMUKAN bFound = False bTerminate = False End If 4.

  Jika pencarian data sudah selesai maka akan muncul messagebox

  'Confirm If bFound Then MsgBox "Data '" & nCari & "' berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbInformation Else MsgBox "Data '" & nCari & "' tidak berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbCritical End If

  145

  'RESOLUSI OVERFLOW SEKUENSIAL 'Posisi Awal nAwal = nFungsi 'Rehash nFungsi = nFungsi + 1 'Kembali ke posisi awal If nFungsi = nTabel2 Then bTerminate = True Else 'Perbandingan If MSTabel2. TextMatrix(0, nFungsi) = "" Then 'TIDAK DITEMUKAN bFound = False bTerminate = True ElseIf Val(MSTabel2.TextMatrix(0, nFungsi)) = pnCari Then 'DITEMUKAN bFound = True bTerminate = False Else 'TIDAK DITEMUKAN bFound = False bTerminate = False End if End If

Gambar 4.99 Listing form pencarian overflow sekuensial

  Program diatas menjelaskan bahwa bagaimana cara mencari data - data dengan close hash (resolusi linier) (gambar 4.98).

  1. Melakukan pencarian posisi awal sesuai modulo yang sudah diinputkan pada saat melakukan penempatan data.

  ‘posisi awal nAwal=nFungsi ” .

  2. Setelah itu melakukan rehash jika data tidak sama dengan fungsi awal

  ‘rehash

  nFungsi = nFungsi + 1 3.

  Setelah itu melakukan pengecekan dan perbandingan apakah data yang dicari itu ditemukan atau tidak ditemukan

  'Perbandingan If MSTabel2.TextMatrix(0, nFungsi) = "" Then 'TIDAK DITEMUKAN bFound = False bTerminate = True

  146

  147

  

ElseIf Val(MSTabel2.TextMatrix(0, nFungsi)) = pnCari Then

'DITEMUKAN bFound = True bTerminate = False Else 'TIDAK DITEMUKAN bFound = False bTerminate = False End If 4.

  Jika pencarian data sudah selesai maka akan muncul messagebox

  'Confirm If bFound Then MsgBox "Data '" & nCari & "' berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbInformation Else MsgBox "Data '" & nCari & "' tidak berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbCritical End If

  'RESOLUSI OVERFLOW & DOUBLE HASH - Rehash 'Nilai Awal nAwal = nFungsi 'Set nFungsi nFungsi = nCari Mod nTabel2 'Rehash nFungsi = (nFungsi + 1) Mod nTabel2 'Kembali ke posisi awal If nCount > 2 And nFungsi = nAwal Then bTerminate = True Else 'Perbandingan If MSTabel2.TextMatrix(0, nFungsi) = "" then 'TIDAK DITEMUKAN bFound = False bTerminate = True Elseif Val(MSTabel2.TextMatrix(0, nFungsi)) = nCari then 'DITEMUKAN bFound = True bTerminate = False Else 'TIDAK DITEMUKAN bFound = False bTerminate = False end if end if

  

Gambar 4.100 Listing form pencarian

RESOLUSI OVERFLOW & DOUBLE HASH - Rehash

4.1.1 Algoritma Pencarian Data pada Open Hash

  Algoritma ini melakukan pencarian data pada tabel open hash (linked list) baik yang tersusun di depan list maupun di belakang list. Algoritma ini melakukan simulasi pencarian data dan menunjukkan serta mendokumentasikan langkah – langkah yang dilakukan program dalam bentuk text (report).

  Implementasi algoritma pencarian tersebut adalah sebagai berikut, 148

  'Angka yang dicari nCari = Val(txtCari.Text) 'Fungsi Hash nFungsi = nCari Mod nTabel1 'Looping nCount = 0: bTerminate = False: bFound = False While Not bFound And Not bTerminate 'Inc. Counter nCount = nCount + 1 Jika nCount = 1 Maka 'Simpan Tag -> tujuan list cTemp = shpMain(nFungsi).Tag if cTemp = "" then 'Terminate - list kosong bTerminate = True Else, if Val(lblList(Val(cTemp)).Caption) = pnCari Maka bFound = True Else If bTerminate = False then 'List Berikutnya cTemp = shpList(Val(cTemp)).Tag if cTemp = "" then 'Terminate - list kosong bTerminate = True end if wend 'Confirm If bFound Then

MsgBox "Data '" & nCari & "' berhasil ditemukan !" & vbCrLf & _

"Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _

"kerja yang telah dilakukan program.", vbInformation Else MsgBox "Data '" & nCari & "' tidak berhasil ditemukan !" & vbCrLf & _

"Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _

"kerja yang telah dilakukan program.", vbCritical End If

  

Gambar 4.101 Listing Pencarian Open Hash

  Program diatas menjelaskan bahwa bagaimana cara mencari data - data dengan close hash (resolusi linier) (gambar 4.98).

1. Melakukan pencarian untuk angka yang dicari dengan fungsi hash sesuai modulo yang sudah diinputkan pada saat melakukan penempatan data.

  'Angka yang dicari nCari = Val(txtCari.Text) 'Fungsi Hash nFungsi = nCari Mod nTabel1

  149

  2. Setelah itu melakukan looping dan menyimpan tujuan list data tersebut 'Looping nCount = 0: bTerminate = False: bFound = False While Not bFound And Not bTerminate 'Inc. Counter nCount = nCount + 1 Jika nCount = 1 Maka 'Simpan Tag -> tujuan list cTemp = shpMain(nFungsi).Tag 3.

  Setelah itu melakukan pengecekan dan perbandingan apakah data yang dicari itu ditemukan atau tidak ditemukan

  if cTemp = "" then 'Terminate - list kosong bTerminate = True Else, if Val(lblList(Val(cTemp)).Caption) = pnCari Maka bFound = True Else If bTerminate = False then 'List Berikutnya

cTemp = shpList(Val(cTemp)).Tag

if cTemp = "" then 'Terminate - list kosong bTerminate = True end if

4. Jika pencarian data sudah selesai maka akan muncul messagebox

  'Confirm If bFound Then MsgBox "Data '" & nCari & "' berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbInformation Else MsgBox "Data '" & nCari & "' tidak berhasil ditemukan !" & vbCrLf & _ "Klik tombol 'Laporan' untuk melihat prosedur" & vbCrLf & _ "kerja yang telah dilakukan program.", vbCritical End If

  150

BAB V ANALISIS HASIL IMPLEMENTASI V.1. Evaluasi pengguna . Untuk membantu mengidenifikasi kelebihan dan kekurangan pada

  simulasi, maka dilakukan pengujian program dan evaluasi berupa pengisian kuesioner secara langsung oleh responden.

V.2. Pengumpulan Data kuesioner .

  Langkah-langkah yang diambil dalam pengumpulan data kuesioner yaitu: 1. Pembuatan kuesioner.

  2. Penyebaran kuesioner.

  Dilakukan dengan membagikan secara langsung pada 20 orang responden pada tanggal 8 Maret 2011 sampai dengan 12 Maret 2011.

  3. Penarikan kuesioner.

  Dilakukan pada tanggal 8 Maret 2011 sampai dengan 12 Maret 2011. Responden diminta untuk melakukan uji coba terhadap sistem, kemudian memberikan kesimpulan dengan mengisi kuesioner yang telah dibagikan.

V.3. Sasaran Penyebaran Kuesioner

  Kuesioner disebarkan kepada: 1. Mahasiswa dengan jumlah 20 orang responden. Hal ini bertujuan untuk menguji simulasi pembelajaran metode relatif hash search ini.

V.4. Form Kuesioner

  Form kuesioner yang disebarkan adalah sebagai berikut:

  Nama : Pekerjaan :

  Pernyataan Sangat setuju Setuju Tidak setuju

  Sangat tidak setuju 1.

  Simulasi pembelajaran metode relatif hash search mempunyai tampilan / user interface yang menarik.

  2. Simulasi pembelajaran metode relatif hash search mempunyai menu – menu yang mudah digunakan.

  3. Simulasi pembelajaran metode relatif hash search dapat memanajemen data inputan dengan baik.

  4. Langkah-langkah perhitungan dengan menggunakan metode relatif hash search dalam sistem ini dapat mudah dimengerti.

  5. Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran penempatan relatif hash search.

  6. Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran pencarian relatif hash search.

7. Simulasi ini dapat mempermudah mahasiswa dalam memahami metode relatif hash search.

  8. Simulasi pembelajaran metode relatif hash search sebagai fasilitas pendukung dalam proses belajar-mengajar.

  Kritik dan Saran : ______________________________________________________ ______________________________________________________ ______________________________________________________ ______________________________________________________

Gambar 5.1 Form Kuesioner

V.5. Hasil kuesioner.

  Hasil dari jawaban 20 orang responden yang terkumpul adalah sebagai berikut:

Tabel 5.1 Form hasil jawaban kuesioner

  Pernyataan Sangat Setuju Tidak Sangat setuju setuju tidak setuju 1.

  Simulasi pembelajaran metode relatif hash search mempunyai tampilan / user interface

  1

  14

  2

  3 yang menarik.

  2. Simulasi pembelajaran metode relatif hash search mempunyai menu – menu yang mudah

  7

  9

  1

  3 digunakan.

  3. Simulasi pembelajaran metode relatif hash search dapat memanajemen data inputan

  1

  15

  3

  1 dengan baik.

  4. Langkah-langkah perhitungan dengan menggunakan metode relatif hash search dalam

  1

  16

  2

  1 sistem ini dapat mudah dimengerti.

  5. Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran

  1 -

  17

  2 penempatan relatif hash search.

  6. Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran

  1 15 -

  4 pencarian relatif hash search.

7. Simulasi ini dapat mempermudah mahasiswa dalam memahami metode relatif hash search.

  2

  16

  1

  1 8.

  Simulasi pembelajaran metode relatif hash search sebagai fasilitas pendukung dalam proses

  8

  12 - - belajar-mengajar.

  Analisa Kuesioner V.6.

1. Hasil presentase pernyataan no 1 yang isinya : Simulasi pembelajaran metode hash search mempunyai tampilan/user interface yang menarik.

  Tabel disajikan pada tabel 5.2

Tabel 5.2 Hasil jawaban dan presentase no 1

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 1 5% Setuju 14 70% Tidak setuju 2 10% Sangat tidak setuju 3 15% Dari hasil tabel 5.2 : 70% responden menilai sistem yang dibuat mempunyai tampilan/user interface yang menarik.

  Dari hasil open question : 8 responden mengatakan interface simulasi ini sudah baik, sedangkan 8 responden berpendapat bahwa interface kurang menarik. Masukan / kritik dari kedelapan responden adalah interface akan lebih menarik apabila menggunakan apikasi macromedia flash dan dalam pemilihan warna tampilannya lebih berwarna.

  2. Hasil presentase pernyataan no 2 yang isinya : Simulasi pembelajaran metode relatif hash search mempunyai menu-menu yang mudah digunakan. Tampilan disajikan pada tabel 5.3

Tabel 5.3 Hasil jawaban dan presentase no 2

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 7 35% Setuju 9 45% Tidak setuju 1 5% Sangat tidak setuju 3 15% Dari Tabel 5.3 : 45% responden menilai sistem yang dibuat mempunyai menu-menu yang mudah digunakan.

  Dari hasil open question : 2 responden mengatakan bahwa pada saat simulasi sedang berjalan diharapkan ada tombol stop supaya user tidak terlalu jenuh menunggu.

3. Hasil presentase pernyataan no 3 yang isinya : Simulasi Pembelajaran metode relatif hash search dapat memanajemen data inputan dengan baik.

  Tampilan disajikan pada tabel 5.4

Tabel 5.4 Hasil jawaban dan presentase kuesioner no 3

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 1 5% Setuju 15 75% Tidak setuju 3 15% Sangat tidak setuju 1 5% Dari hasil tabel 5.4 : 75% responden menilai sistem yang dibuat dapat memanajemen data inputan dengan baik.

  Dari hasil open question : 7 responden mengatakan bahwa inputan data pada simulasi ini diharapkan lebih bervariasi lagi, tidak hanya bilangan integer saja tetapi data string atau real juga dapat digunakan.

  4. Hasil presentase pernyataan no 4 yang isinya : Langkah-langkah perhitungan dengan menggunakan metode relatif hash search dalam sistem ini dapat mudah dimengerti. Tampilan disajikan pada tabel 5.5

Tabel 5.5 Hasil jawaban dan presentase kuesioner no 4

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 1 5% Setuju 16 80% Tidak setuju 2 10% Sangat tidak setuju 1 5% Dari hasil tabel 5.5 : 80% responden menilai sistem yang dibuat menunjukkan langkah-langkah yang metode relatif hash search dapat dengan mudah dimengerti.

  Dari hasil open question : 2 responde mengatakan bahwa langkah-langkah pada simulasi ini mudah dipahami.

  5. Hasil presentase pernyataan no 5 yang isinya : Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran penempatan relatif hash search. Tampilan disajikan pada table 5.6

Tabel 5.6 Hasil jawaban dan presentase kuesioner no 5

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 1 5% Setuju 17 85% Tidak setuju 2 10%

  • Sangat tidak setuju
Dari hasil tabel 5.6 : 85% responden menilai sistem yang dibuat menunjukkan penempatan metode relatif hash search dapat dengan mudah dimengerti. Dari hasil open question : 1 responden mengatakan bahwa penempatan pada simulasi ini diharapkan lebih bervariasi.

  6. Hasil presentase pernyataan no 6 yang isinya : Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran pencarian relatif hash search. Tampilan disajikan pada tabel 5.7

Tabel 5.7 Hasil jawaban dan presentase kuesioner no 6

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 1 5% Setuju 15 75% Tidak setuju 4 20%

  • Sangat tidak setuju Dari hasil tabel 5.7 : 75% responden menilai sistem yang dibuat menunjukkan pencarian metode relatif hash search dapat dengan mudah dimengerti. Dari hasil open question: 1 responden mengatakan bahwa pencarian pada simulasi ini diharapkan lebih bervariasi.

7. Hasil presentase pernyataan no 7 yang isinya : Simulasi ini dapat mempermudah mahasiswa dalam memahami metode relatif hash search.

  Tabel disajikan pada table 5.8

Tabel 5.8 Hasil jawaban dan presentase kuesioner no 7

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 2 10% Setuju 16 80% Tidak setuju 1 5% Sangat tidak setuju 1 5% Dari hasil tabel 5.8 : 80% responden menilai sistem yang dibuat menunjukkan metode relatif hash search dapat dengan mudah dimengerti.

  Dari hasil open question : 12 responden mengatakan bahwa fungsi hash pada simulasi ini mudah dipahami.

  8. Hasil presentase pernyataan no 8 yang isinya : Simulasi pembelajaran metode relatif hash search sebagai fasilitas pendukung dalam proses belajar-mengajar. Tampilan disajikan pada table 5.9

Tabel 5.9 Hasil jawaban dan presentase kuesioner no 8

  Pernyataan Jawaban pernyataan Presentase Jawaban

  Sangat Setuju 8 40% Setuju 12 60%

  • Tidak setuju - Sangat tidak setuju - - Dari hasil tabel 5.9 : 60% responden menilai sistem yang dibuat menunjukkan sistem ini dapat digunakan sebagai media pembelajaran. Dari hasil open question : 9 responden mengatakan bahwa simulasi pembelajaran metode relatif hash search dapat membantu proses belajar- mengajar.

BAB VI PENUTUP VI.1. KESIMPULAN Setelah menyelesaikan simulasi pembelajaran Hash Search, dengan jumlah

  responden sebanyak 20 responden. Penulis menarik kesimpulan sebagai berikut : 1.

  Berdasarkan hasil presentase kuesioner pernyataan no 1 yang isinya : Simulasi pembelajaran metode hash search mempunyai tampilan/user interface yang menarik. Menyatakan bahwa 1 responden memilih sangat setuju dan 14 responden memilih setuju.

  2. Berdasarkan hasil presentase kuesioner pernyataan no 2 yang isinya : Simulasi pembelajaran metode relatif hash search mempunyai menu-menu yang mudah digunakan. Menyatakan bahwa 7 responden memilih sangat setuju dan 9 responden memilih setuju.

3. Berdasarkan hasil presentase kuesioner pernyataan no 3 yang isinya : Simulasi

  Pembelajaran metode relatif hash search dapat memanajemen data inputan dengan baik.

  Menyatakan bahwa 1 responden memilih sangat setuju dan 15 responden memilih setuju.

  4. Berdasarkan hasul presentase kuesioner pernyataan no 4 yang isinya : Langkah- langkah perhitungan dengan menggunakan metode relatif hash search dalam sistem ini dapat mudah dimengerti.

  159 Menyatakan bahwa 1 responden memilih sangat setuju dan 16 responden memilih setuju.

  5. Berdasarkan hasil presentase kuesioner pernyataan no 5 yang isinya : Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran penempatan relatif hash search. Menyatakan bahwa 1 responden memilih sangat setuju dan 17 responden memilih setuju.

  6. Berdasarkan hasil presentase kuesioner pernyataan no 6 yang isinya : Simulasi pembelajaran metode relatif hash search dapat membantu pembelajaran pencarian relatif hash search. Menyatakan bahwa 1 responden memilih sangat setuju dan 15 responden memilih setuju.

7. Berdasarkan hasil presentase kuesioner pernyataan no 7 yang isinya : Simulasi ini dapat mempermudah mahasiswa dalam memahami metode relatif hash search.

  Menyatakan bahwa 2 responden memilih sangat setuju dan 16 responden memilih setuju.

  8. Berdasarkan hasil presentase kuesioner pernyataan no 8 yang isinya : Simulasi pembelajaran metode relatif hash search sebagai fasilitas pendukung dalam proses belajar-mengajar. Menyatakan bahwa 8 responden memilih sangat setuju dan 12 responden memilih setuju.

  160

VI.2. SARAN

  Penulis ingin memberikan beberapa saran yang mungkin berguna untuk pengembangan lebih lanjut pada perancangan simulasi pembelajaran Hash Search adalah sebagai berikut : 1.

  Besar ukuran tabel dapat diperbesar.

  2. Jenis data diperbolehkan untuk data bertipe real dan string.

  3. Agar tampilan simulasi lebih menarik, simulasi dapat dirancang dengan menggunakan Macromedia Flash.

  4. Dapat dibuat tombol ‘stop’ pada saat simulasi berlangsung agar user tidak jenuh menunggu sampai simulasi selesai.

  161

  

Daftar Pustaka

Arsyad. (1996). Computer Assisted Intruction (CAI). Bandung: PT. Kencana Prenada Media.

  

Hadi, R. (2002). Pemrograman Windows API dengan Microsoft Visual Basic. Jakarta: PT. Elex

Media Komputindo.

  

Munir, R. R & Leoni, L. (2002). Algoritma dan Pemrograman, Edisi Kedua. Jakarta: PT.Elex

Media Komputindo.

  Pramono, D. (2002). Mudah menguasai Visual Basic 6. Jakarta: PT. Elex Media Komputindo. Santosa, I. (2004). Interaksi Manusia dan Komputer. Yogyakarta: Andi. Suryokusumo, A. (2001). Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media Komputindo. Wilton, R. (1996). Mathematics for Computer Students, Edisi II. England: NCC Blackwell. Whitten,J.L, et.al.(2004). Metode Desain & Analisis Sistem, Edisi Enam. Yogyakarta: Andi

Dokumen baru

Tags

Dokumen yang terkait

Tugas Akhir Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
125
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
1
127
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
98
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
113
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
76
Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Mesin
0
0
69
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Jurusan Teknik Informatika
0
0
87
SKRIPSI Diajukan Untuk Memenuhi Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
146
TUGAS AKHIR Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
117
Studi Kasus ”NEUTRON” Yogyakarta SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
184
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
198
LOWONGAN KERJA SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat untuk Memperoleh Gelar Sarjana Teknik Informatika
0
0
168
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
110
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
128
Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
126
Show more