Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Searching
2
Struktur Data - Searching
Cara untuk mengetahui ada tidaknya sebuah / lebih data dari sekumpulan data. Dua (2) hal yang dilakukan dalam searching adalah melihat dan membandingkan data yang tersedia dengan inputan pembanding. Guna mempermudah dan mempercepat searching data, biasanya dilakukan sorting terlebih dahulu terhadap kumpulan data. Struktur Data - Searching
3
Struktur Data - Searching
Algoritma Searching Sequential Search Binary Search Interpolating Search Search with index Struktur Data - Searching
4
Struktur Data - Searching
Sequential Search Metode pencarian data paling sederhana dan lambat. Data array yang dicari tidak perlu diurutkan terlebih dahulu. Secara garis besar metode ini dapat dijelaskan sbb: Dari array yang telah diketahui, input data yang dicari dibandingkan satu persatu mulai data urutan pertama sampai data tersebut ditemukan atau tidak ditemukan. Bila data yang dicari telah ditemukan, maka proses searching dihentikan. Bila belum ketemu, maka proses pencarian akan diteruskan sampai semua data telah dibandingkan. Bila data ditemukan, maka posisi data tersebut dicatat dan dikembalikan pada fungsi pemanggil. Struktur Data - Searching
5
Struktur Data - Searching
Sequential Search bool SeqSearch( int* pos, int *arr, int banyak, int dicari){ for(int i = 0; i < banyak; i++){ if (arr[i] == dicari){ *pos = i; return true; } return false; Struktur Data - Searching
6
Struktur Data - Searching
Sequential Search Dicari = 7 Dicari Return True = 11 5 15 4 9 7 10 18 20 1 = *pos Struktur Data - Searching
7
Sequential Search (Non Sorting)
Dicari = 6 Return False Dicari 11 5 15 4 9 7 10 18 20 1 = *pos Struktur Data - Searching
8
Sequential Search (Sorting First)
Dicari = 6 Dicari Return False 1 4 5 7 9 10 11 15 18 20 = *pos Struktur Data - Searching
9
Struktur Data - Searching
Menambahkan data baru Biasanya algoritma searching data digunakan pada saat ada penambahan data baru, bila diinginkan data tersebut bersifat unik (tidak boleh kembar). int* larik; void Insert( bool ada, int* aa, int databaru){ int *temp1, *temp2; if(!ada){ *aa = *aa + 1; temp1 = larik; temp2 = new int[*aa]; for(int i = 0; i < *aa; i++) temp2[i] = temp1[i]; delete[] temp1; larik = temp2; larik[*aa - 1] = databaru; } Struktur Data - Searching
10
Mengisikan data baru pada data yang telah urut
Langkah - langkah ini digunakan untuk memasukkan sebuah data pada sebuah kumpulan data yang telah urut. Bila posisi data tersebut berada di akhir array maka proses yang dilakukan seperti pada proses Insert tanpa diurutkan. Bila posisi data tersebut berada pada awal / tengah elemen array yang dicari, maka perlu dilakukan penggeseran elemen – elemen yang bernilai lebih besar dari nilai data yang dicari / data akan di-‘insert’ pada array, dengan kondisi bergeser satu. Struktur Data - Searching
11
Struktur Data - Searching
Binary Search Lebih cepat bila dibandingkan dengan Sequential Search, karena tidak semua data yang ada perlu diperiksa. Metode ini sangat cocok bila diterapkan untuk pencarian yang melibatkan banyak sekali data. Kelemahan dari metode ini adalah, data yang akan dicari / diperiksa perlu diurutkan (di sorting) terlebih dahulu. Metode sorting yang lambat akan memperlambat proses searching. Struktur Data - Searching
12
Struktur Data - Searching
Binary Search bool BinarySearch(int top, int *arr, int *pos, int cari){ int mid, bot = 0; while (bot <= top){ mid = (top + bot) / 2; if ( arr[mid] == cari){ *pos = mid; return true; } else if( arr[mid] < cari) bot = mid + 1; else top = mid - 1; return false; Struktur Data - Searching
13
Struktur Data - Searching
Binary Search Struktur Data - Searching
14
Struktur Data - Searching
Interpolating Search Binary Search sangat cepat prosesnya. Adakah yang lebih cepat Binary Search??? Ada!!! Interpolating Search. Algoritma Interpolating Search mirip dengan Binary Search, tapi menggunakan var. next sebagai pengganti mid. Bila mid = (top + bot) / 2 maka, Struktur Data - Searching
15
Struktur Data - Searching
Interpolating Search bool interpolatingSearch(int top, int *arr, int *pos, int cari){ int next, bot = 0; while (bot <= top){ next = bot + ((cari – arr[bot])/(arr[top] – arr[bot]) * (top – bot – 1)); if ( arr[next] == cari){ *pos = next; return true; } else if( arr[next] < cari) bot = next + 1; else top = next - 1; return false; Struktur Data - Searching
16
Struktur Data - Searching
Interpolating Search Struktur Data - Searching
17
Struktur Data - Searching
Binary Search Lebih cepat bila dibandingkan dengan Sequential Search, karena tidak semua data yang ada perlu diperiksa. Metode ini sangat cocok bila diterapkan untuk pencarian yang melibatkan banyak sekali data. Kelemahan dari metode ini adalah, data yang akan dicari / diperiksa perlu diurutkan (di sorting) terlebih dahulu. Metode sorting yang lambat akan memperlambat proses searching. Struktur Data - Searching
18
Pencarian dengan Index
Bila data yang sangat banyak, maka metode pencarian apapun pasti lambat. Solusi => Tabel Index. Tabel index adalah array yang menyimpan sebuah ‘key’ dari elemen data dan pointer yang menunjuk ke tempat data sesungguhnya. Tabel index, dapat mempercepat pencarian karena membatasi jumlah data yang dicari. Penggunaan tabel index sering digunakan pula untuk mencari data dengan kapasitas sangat besar, yang disimpan pada penyimpan luar (data bertipe file). Harddisk berkapasitas besar tapi lambat (mekanik) RAM cepat (electrik), tapi terbatas. Penggunaan tabel index, dapat pula mempercepat pengurutan data bertipe file, karena yang diurutkan sebenarnya adalah tabel indexnya, bukan data aslinya. Penggunaan tabel index adalah dasar dari database Struktur Data - Searching
19
Pencarian dengan Index
No. NRP Nama Jurusan Tingkat 1 Amir TK D3 2 Ali 3 Badu S1 4 Ina 5 Ani MI 6 Damsyik 7 Iman 8 Amin 9 Ida 10 Layla 11 Syahri 12 Minah Struktur Data - Searching
20
Pencarian dengan Index
1 Amir TK D3 2 Ali 3 Badu S1 4 Ina 5 Ani MI 6 Damsyik 7 Iman 8 Amin 9 Ida 10 Layla 11 Syahri 12 Minah 1998 1 1999 4 2000 7 2001 10 Struktur Data - Searching
21
Pencarian dengan Index (pada data file)
Tabel index, diloading pada RAM Data berada pada Penyimpan Luar 1001 1 1002 2 1010 3 1011 4 2015 5 2111 6 0001 7 0021 8 9 0054 10 0110 11 0911 12 1 Amir TK D3 2 Ali 3 Badu S1 4 Ina 5 Ani MI 6 Damsyik 7 Iman 8 Amin 9 Ida 10 Layla 11 Syahri 12 Minah Index dari Tabel Index 1998 1 1999 4 2000 7 2001 10 Struktur Data - Searching
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.