Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Searching. Struktur Data - Searching2 Searching Cara untuk mengetahui ada tidaknya sebuah / lebih data dari sekumpulan data. Dua (2) hal yang dilakukan.

Presentasi serupa


Presentasi berjudul: "Searching. Struktur Data - Searching2 Searching Cara untuk mengetahui ada tidaknya sebuah / lebih data dari sekumpulan data. Dua (2) hal yang dilakukan."— Transcript presentasi:

1 Searching

2 Struktur Data - Searching2 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.

3 Struktur Data - Searching3 Algoritma Searching Sequential Search Binary Search Interpolating Search Search with index

4 Struktur Data - Searching4 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.

5 Struktur Data - Searching5 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; }

6 Struktur Data - Searching6 Sequential Search Dicari = 7 Dicari  *pos = = Return True

7 Struktur Data - Searching7 Sequential Search (Non Sorting) Dicari = 6 Dicari  *pos = Return False

8 Struktur Data - Searching8 Sequential Search (Sorting First) Dicari = 6 Dicari  *pos = Return False

9 Struktur Data - Searching9 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; } }

10 Struktur Data - Searching10 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.

11 Struktur Data - Searching11 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.

12 Struktur Data - Searching12 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; }

13 Struktur Data - Searching13 Binary Search

14 Struktur Data - Searching14 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,

15 Struktur Data - Searching15 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; }

16 Struktur Data - Searching16 Interpolating Search

17 Struktur Data - Searching17 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.

18 Struktur Data - Searching18 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

19 Struktur Data - Searching19 Pencarian dengan Index No.NRPNamaJurusanTingkat AmirTKD AliTKD BaduTKS InaTKD AniMIS DamsyikMIS ImanTKS AminMIS IdaTKD LaylaMIS SyahriTKD MinahTKD3

20 Struktur Data - Searching20 Pencarian dengan Index AmirTKD AliTKD BaduTKS InaTKD AniMIS DamsyikMIS ImanTKS AminMIS IdaTKD LaylaMIS SyahriTKD MinahTKD

21 Struktur Data - Searching21 Pencarian dengan Index (pada data file) AmirTKD AliTKD BaduTKS InaTKD AniMIS DamsyikMIS ImanTKS AminMIS IdaTKD LaylaMIS SyahriTKD MinahTKD Data berada pada Penyimpan Luar Tabel index, diloading pada RAM Index dari Tabel Index


Download ppt "Searching. Struktur Data - Searching2 Searching Cara untuk mengetahui ada tidaknya sebuah / lebih data dari sekumpulan data. Dua (2) hal yang dilakukan."

Presentasi serupa


Iklan oleh Google