Topic Complexity of Hashing Search & Binary Search Tree Algorithm

dokumen-dokumen yang mirip
IMPLEMENTASI PERANGKAT LUNAK DENGAN PENERAPAN PENCARIAN RELATIF (HASH SEARCH)

POHON CARI BINER (Binary Search Tree)

ANALISIS ALGORITMA BINARY SEARCH

Algoritma Pemrograman & Struktur Data

HASHTABLE SEBAGAI ALTERNATIF DARI ALGORITMA PENCARIAN BINER PADA APLIKASI E-ACESIA

Buku Ajar Struktur Data

Pemanfaatan Pohon Biner dalam Pencarian Nama Pengguna pada Situs Jejaring Sosial

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Studi Digital Tree dan Aplikasinya pada Kamus

Materi 7 ORGANISASI BERKAS RELATIF

SEARCHING (PENCARIAN)

Pemrograman Algoritma Dan Struktur Data

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

BAB VIII Pencarian(Searching)

Modul 15 Searching. 1.1 Kompetensi

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Politeknik Elektronika Negeri Surabaya

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

Materi 5: SEARCHING (PENCARIAN) Dosen:

Organisasi Berkas Sekuensial Berindeks

Organisasi File Multi Key y( (Index)

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

PEMBAHASAN SOAL FINAL BNPCHS 2014

Pohon dan Pohon Biner

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Review : Sifat Implementasi Linear List dengan Array

ALGORITMA SEARCHING. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Bab 1 Pengantar Struktur Data

ALGORITMA DAN PEMROGRAMAN

Fakultas Teknologi Informasi

Fungsi Hash dan Metode Collision Resolution

STRUKTUR POHON & KUNJUNGAN POHON BINER

STRUKTUR DATA. Literatur

BAB 3 SEARCHING A. TUJUAN

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

ORGANISASI FILE. Alif Finandhita, S.Kom

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Praktikum Algoritma dan Struktur Data 2010

BAB 2 LANDASAN TEORI. 2.1 Pengertian Text Mining

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Binary Search Tree (BST)

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Algoritma dan Struktur Data. Searching dan Sorting

BAB X Hashing. typedef char *NomorBuku[100]; Buku = NomorBuku;

Modul Praktikum Algoritma dan Struktur Data

Organisasi File Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Si

Pengenalan Trie dan Aplikasinya

6. TREE / BINARY TREE

ORGANISASI BERKAS RELATIF

Pemrograman Berorientasi. Array dan Collections

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Aplikasi Pohon dalam Pencarian dan Penempatan Buku di Perpustakaan

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

13/12/2013. Binary Tree. Contoh Tree

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

MENGUKUR KINERJA ALGORITMA GENETIK PADA PEMAMPATAN MATRIKS JARANG

BAB 4 ORGANISASI BERKAS RELATIF

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Searching. Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

P14 Hash Function TIF42/SIF42

ALGORITMA DAN STRUKTUR DATA

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Ujian Akhir Semester Ganjil 2013/2014

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Preorder Tree Traversal

MODUL PRAKTIKUM STRUKTUR DATA

Database System 8 Hash-Based Indexing

Algoritma dan Struktur Data. Linear & Binary Search Tree

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

KUM 6 IMPLEMENTASI BINARY TREE

Pendahuluan Struktur Data. Nisa ul Hafidhoh

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

TREE ALGORITMA & STRUKTUR DATA. Materi ASD Fakultas Teknik Elektro & Komputer UKSW ( Download Dari :

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

PENCARIAN (SEARCHING)

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

IT234 Algoritma dan Struktur Data. Tree

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

MAKALAH DESAIN DAN ANALISIS ALGORITMA BINARY TREE DISUSUN OLEH : 1. Nadim Achmad ( ) 2. Dzurratul Ulya ( )

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

IKI 20100: Struktur Data & Algoritma

A. TUJUAN PEMBELAJARAN

BAB VII PENCARIAN DATA (SEARCHING)

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Transkripsi:

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Febriansyah Kurniawan M. Nasir Suyanto

Searching a list of values is a common task. An application program might retrieve a student record, bank account record, credit record, or any other type of record using a search algorithm. Here, we present search by hashing and search by binary tree, and discuss the algorithm and complexity of this method.

Hashing has a worst-case behavior that is linear for finding a target, but with some care, hashing can be dramatically fast in the average-case. Hashing also makes it easy to add and delete elements from the collection that is being searched.

Misalnya, Anda harus mencari catatan yang terkait dengan nilai kunci tertentu dalam daftar catatan tertentu. Untuk mengambil catatan yang diinginkan, Anda harus mencari secara berurutan melalui catatan sampai rekord dengan nilai tombol yang dikehendaki ditemukan. Metode ini sangat memakan waktu, terutama jika daftar sangat besar. Sebuah solusi efektif terhadap pencarian akan merekam untuk mencarinya dengan bantuan alamat offset. Anda dapat menghitung alamat offset merekam dengan menggunakan teknik yang disebut hashing.

Prinsip mendasar dari hashing adalah untuk mengkonversi kunci ke alamat offset untuk mengambil rekaman. Konversi kunci alamat dilakukan dengan hubungan (rumus), yang dikenal sebagai fungsi hashing. Proses pencarian rekord menggunakan hashing dapat diringkas sebagai berikut: 1. Mengingat kunci, fungsi hash mengubahnya menjadi nilai hash (lokasi) dalam rentang 1 sampai n, dimana n adalah ukuran penyimpanan (Alamat) ruang yang telah dialokasikan untuk catatan. 2. Rekord ini kemudian diambil di lokasi yang dihasilkan.

Misalkan kita ingin menyimpan informasi tentang setiap siswa dalam database, sehingga kita kemudian dapat mengambil informasi tentang setiap siswa hanya menggunakan ID siswa. Untuk lebih spesifik, misalkan informasi tentang setiap siswa merupakan objek dari form berikut :

struct Mahasiswa ( int kunci; string telepon; string alamat; ); / / siswa ID / / nomor telepon / / alamat mahasiswa

Kami menyebut setiap obyek rekaman. Tentu saja, mungkin ada informasi lain di setiap record siswa. Jika ID siswa semua dalam jangkauan 0..99, kita bisa menyimpan catatan-catatan dalam array dari tipe berikut, menempatkan siswa ID k di lokasi data[k] : Data Siswa [100]; / / array dari 100 records Rekord untuk ID k siswa dapat diambil segera karena data tersebut ada dalam data[k].

Namun, jika ID mahasiswa tidak membentuk urutan seperti 0..99. Misalkan bahwa kita hanya tahu bahwa akan ada seratus atau lebih sedikit dan bahwa mereka akan didistribusikan dalam jangkauan 0..9999. Kemudian dapat digunakan array dengan 10.000 komponen, tapi itu tampaknya sia-sia karena hanya sebagian kecil dari array tersebut akan digunakan. Jadi kita harus menyimpan catatan dalam array dengan 100 elemen dan menggunakan pencarian serial melalui array ini setiap kali kita ingin mencari ID mahasiswa tertentu. Kita pun dapat menyimpan catatan dalam array yang relatif kecil dan masih mengambil siswa dengan ID lebih cepat dari yang kita dapat dengan pencarian serial. Untuk menggambarkan ini, misalkan kita tahu bahwa ID siswa akan: 0, 100, 200,..., 9800, 9900 Dalam hal ini, kita dapat menyimpan catatan dalam array disebut data dengan hanya 100 komponen. Kami akan menyimpan catatan dengan siswa ID k di lokasi: data [k/100]

Jika kita ingin mengambil informasi untuk siswa ID 700, kita menghitung 700/100 dan mendapatkan indeks 7. Rekor untuk siswa ID 700 adalah komponen disimpan dalam array data[7]. Teknik umum disebut hashing. Setiap record membutuhkan nilai unik yang disebut kunci. Dalam contoh kita siswa ID adalah kunci, tapi lain, kunci yang lebih kompleks kadang-kadang digunakan. fungsi yang disebut fungsi hash, kunci peta untuk indeks array. Misalkan kita nama fungsi kita hash hash. Jika catatan memiliki kunci k, maka kita akan mencoba untuk menyimpan yang merekam di lokasi data[hash(k)]. Menggunakan fungsi hash untuk menghitung indeks array yang benar disebut hashing kunci indeks array. Fungsi hash harus dipilih sehingga nilai kembalinya selalu merupakan indeks berlaku untuk array. Dalam contoh kita: hash (k) = k / 100 Mengingat fungsi hash dan kunci yang merupakan kelipatan dari 100, setiap kunci menghasilkan indeks yang berbeda ketika hash. Jadi, hash adalah fungsi hash yang sempurna. Sayangnya, fungsi hash yang sempurna tidak selalu dapat ditemukan.

1. Dapat mengakibatkan tabrakan. 2. Implementasi ini tidak mengizinkan akses sekuensial.

Maaf, belum bisa kami paparkan

Binary Search Tree (BST) adalah sebuah pohon biner yang boleh kosong, dan setiap nodenya harus memiliki identifier/value. Value pada semua node subpohon sebelah kiri adalah selalu lebih kecil dari value root, sedangkan value subpohon di sebelah kanan adalah sama atau lebih besar dari value pada root, masing masing subpohon tersebut (kiri & kanan) itu sendiri adalah juga BST. lihat gambar:

1. Membuat titik currentnode ke node root 2. Jika currentnode adalah nol: 1. Tampilan "Tidak Ditemukan" 2. Keluar 3. Membandingkan nilai yang akan dicari dengan nilai currentnode. Tergantung pada hasil perbandingan, ada tiga kemungkinan dapat: 1. Jika nilai sama dengan nilai currentnode: 1. Tampilan "Ditemukan 2. Keluar 2. Jika nilai kurang dari nilai currentnode: 1. Membuat titik currentnode ke kiri anak 2. Ke langkah 2 3. Jika nilai lebih besar dari nilai currentnode: 1. Membuat titik currentnode ke kanan anak 2. Ke langkah 2

Dengan memanfaatkan binary tree kita dapat melakukan pencarian elemen / node value dalam kompleksitas algoritma (big O) O(n log n) langkah saja.