SEARCHING (PENCARIAN)

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
Searching.
PENGURUTAN (SORTING).
SEARCHING ( PENCARIAN )
BAB 9 S e a r c h i n g.
Searching Alpro-2.
PENCARIAN (SEARCHING)
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Algoritma dan Pemrograman
Searching.
13 Searching (Pencarian) pada Array Satu Dimensi Bab
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman Subrutin
Algoritma Pencarian (searching)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
Bahasa Pemrograman Dasar Pertemuan 12
CS1023 Pemrograman Komputer
Oleh : Agus Priyanto, M.Kom Norma Amalia, M.Eng
Algoritma dan Pemrograman Searching
STRUKTUR DATA STACK.
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
Algoritma dan Pemrograman Sorting
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Searching.
Algoritma dan Pemrograman Searching
PENGURUTAN (SORTING).
PENCARIAN INTERPOLASI
Linked List.
STRUKTUR DATA Array Statis.
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman Subrutin
STRUKTUR DATA STACK.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Analisis Algoritma dan Struktur Data
Algoritma dan Pemrograman ARRAY (LARIK)
MATRIKS (ARRAY 2 DIMENSI)
STRUKTUR DATA Array Statis.
Algorithms and Programming Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Pemrograman Sorting
Algoritma dan Pemrograman Subrutin (Function)
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Algoritma dan Pemrograman Subrutin
STRUKTUR DATA Array Statis.
MATRIKS (ARRAY 2 DIMENSI)
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Algoritma dan Pemrograman Searching
SEARCHING Ada 3 metode pencarian yang akan kita bahas disini:
STRUKTUR DATA Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
SORTING (PENGURUTAN).
STUKTUR DATA “Sequential Search and Binary Search”
Pencarian (searching)
SEARCHING Ada 3 metode pencarian yang akan kita bahas disini:
SEARCHING ( PENCARIAN )
Transcript presentasi:

SEARCHING (PENCARIAN) Team Algoritma dan Pemrograman

Metode Searching Sequential Search Binary Search

Sequential Search Definisi Proses menemukan data dari array yang ditinjau dengan cara menelusuri satu persatu elemen array mulai dari elemen array pertama sampai data yang dicari ditemukan atau sampai seluruh elemen array ditelusuri

Sequential Search Sequential Search Tanpa Boolean - Tanpa Sentinel - Dengan Sentinel Sequential Search Dengan Boolean

Sequential Search Tanpa Boolean Tanpa Sentinel Mis. diberikan data sebagai berikut: Data yang dicari : 9 Proses pencarian akan dimulai dari elemen pertama, bandingan data 5 dengan data yang dicari ternyata tidak sama, maka pencarian dilanjutkan ke elemen berikutnya (data ke-2), bandingkan data 1 dengan data yg dicari ternyata tidak sama juga, maka pencarian dilanjutkan lagi ke elemen berikutnya (data ke-3), bandingkan data 9 dengan data yang dicari ternyata sama, maka data yang dicari ditemukan pada indeks ke-3. 5 1 9 4 2 3

Algoritma Sequential Search Tanpa Boolean Tanpa Sentinel Procedure seq_search_tanpa_sentinel(Input nama_var_array:nama_tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer Algoritma: input(data_cari) i  1 while(nama_var_array (i) ≠ data_cari) and (i < maks_array) do i  i + 1 endwhile if (nama_var_array(i) = data_cari) then output(data_cari,’ ditemukan pada indeks ke-’,i) else output(data_cari,’ tidak ditemukan’) endif EndProcedure

Sequential Search Tanpa Boolean Dengan Sentinel (elemen fiktif yg ditempatkan pada posisi maks_array + 1) Mis. diberikan data sebagai berikut: Data yang dicari : 9 Data yang dicari akan ditempatkan pada sentinel (dari contoh di atas berarti data 9 akan ditempatkan pada indeks ke-6). Proses pencarian masih sama seperti sequential search tanpa sentinel, hanya saja data yang dicari pasti selalu ditemukan. Untuk mengetahui data yang dicari itu ada atau tidak, dicek indeksnya, jika indeksnya bukan berada di sentinel, maka data yang dicari ada/ditemukan, tapi berada di sentinel berarti data yang dicari tidak ada/tidak ditemukan. sentinel 5 1 9 4 2 3 6

Algoritma Sequential Search Tanpa Boolean Dengan Sentinel Procedure seq_search_sentinel(Input nama_var_array:nama_tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer Algoritma: input(data_cari) i  1 nama_var_array(maks_array + 1)  data_cari while (nama_var_array (i) ≠ data_cari) do i  i + 1 endwhile if (i < maks_array+1) then output(data_cari,’ ditemukan pada indeks ke-’,i) else output(data_cari,’ tidak ditemukan’) endif EndProcedure

Sequential Search Dengan Boolean Pencarian sekuensial dengan boolean melibatkan sebuah variabel bantuan yg bertipe boolean untuk menunjukkan data yg dicari ditemukan atau tidak dan ini adalah metode yg lebih baik dibandingkan metode sequential search yg lainnya. Mis. diberikan data sebagai berikut: Data yang dicari : 9 Proses pencariannya sama dengan proses pencarian pada metode sequential search lainnya. 5 1 9 4 2 3

Algoritma Sequential Search Dengan Boolean Procedure seq_search_boolean (Input nama_var_array:nama_tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer ketemu : boolean Algoritma: input(data_cari) i  1 ketemu  false while (not ketemu) and (i ≤ maks_array) do if (nama_var_array(i) = data_cari) then ketemu  true else i  i + 1 endif endwhile if (ketemu) output(data_cari,’ ditemukan pada indeks ke-’,i) output(data_cari,’ tidak ditemukan’) EndProcedure

Binary Search Definisi: Proses pencarian dengan cara membagi larik menjadi 2 bagian (bagian kiri dan bagian kanan), dan mengecek data diposisi tengah apakah sama atau tidak dengan data yg dicari, jika tidak proses pencarian akan dilanjutkan ke larik bagian kiri atau bagian kanan. Mis. diberikan data sebagai berikut: Data yang dicari : 7 Catatan : data harus sudah terurut 3 7 12 15 29 1 2 4 5

Binary Search (lanjutan) Langkah 1 : bagi larik menjadi 2 bagian untuk mencari posisi tengah (k) dengan cara indeks atas (Ia) dijumlahkan dengan indeks bawah (Ib) lalu dibagi 2. k = (Ia + Ib) div 2 = (1 + 5) div 2 = 3 3 7 12 15 29 1 2 4 5 Ia k Ib Bag. Kiri Bag. Kanan

Binary Search (lanjutan) Langkah 2 : periksa data di posisi tengah larik (12), lalu bandingkan apakah sama atau tidak(12 = 7? F), karena tidak sama maka akan diperiksa apakah data di posisi tengah lebih kecil dari data yang dicari (12 < 7 ? F) karena lebih besar maka pencarian dilanjutkan ke bagian kiri dengan cara menarik Indeks bawah ke kiri (Ib = k – 1) Langkah 3 : ulangi langkah 1 s/d langkah 2 sampai data ditemukan atau sampai harga Ia > Ib 3 7 1 2 Ia Ib

Algoritma Binary Search Procedure binary_search (Input nama_var_array:nama_tipe_array) {I.S. : elemen array [1..maks_array] yg terurut secara ascending sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: Ia, Ib, k : integer {Ia=indeks bawah, Ib=indeks atas, k=posisi tengah} ketemu : boolean Algoritma: input(data_cari) Ia  1 Ib  maks_array ketemu  false while (not ketemu) and (Ia ≤ Ib) do k  (Ia + Ib) div 2 if (nama_var_array(k) = data_cari) then ketemu  true else if (nama_var_array(k) < data_cari) Ia  k + 1 Ib  k – 1 endif endwhile if (ketemu) output(data_cari,’ ditemukan pada indeks ke-’,k) output(data_cari,’ tidak ditemukan’) EndProcedure

TUGAS BUAT ALGORITMA DAN PROGRAM UNTUK: MENU PILIHAN 1. ISI DATA 2. CARI DATA BERDASARKAN NIM 3. CARI DATA BERDASARKAN NILAI 4. CARI DATA BERDASARKAN INDEKS NILAI 5. TAMPIL DATA KESELURUHAN YG SDH TERURUT 0. KELUAR