PENCARIAN (SEARCHING)

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

STRUKTUR DASAR ALGORITMA
7. PENJUMLAHAN DUA BUAH MATRIKS
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
STRUKTUR DATA.
Searching.
PENGURUTAN (SORTING).
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Searching Alpro-2.
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Dasar Pemrograman ARRAY/LARIK.
Notasi Algoritma.
ARRAY 1 DIMENSI.
Algoritma dan Pemrograman
Searching.
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
13 Searching (Pencarian) pada Array Satu Dimensi Bab
Tenia Wahyuningrum, SKom, MT. Deskripsi singkat Larik (array) adalah deretan rinci data yang mempunyai tipe sejenis. Setiap rinci data disebut dengan.
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Array (bagian 2).
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Pencarian (searching)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
4. Linked List (List Linier)
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
CS1023 Pemrograman Komputer
CSG3F3/ Desain dan Analisis Algoritma
Algoritma dan Pemrograman Searching
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
STRUKTUR DASAR ALGORITMA
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Algoritma dan Pemrograman Searching
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
Algoritma & Pemrograman 1
TEL 2103 Dasar Komputer & Pemograman Larik (Array)
Array 1.
STRUKTUR DATA Array Statis.
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
Array/Larik.
Analisis Algoritma dan Struktur Data
Teknik Informatika Politeknik Negeri Batam
Struktur Dasar Algoritma dan Runtunan
MATERI PERKULIAHAN ANALISIS ALGORITMA
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
STRUKTUR DATA Array Statis.
Algoritma & Pemrograman 1
Oleh : UMMU ZAHRA ALGORITMA.
ARRAY STATIS Sri Nurhayati, MT.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Algoritma dan Pemrograman Searching
Algoritma Brute Force.
SEARCHING Ada 3 metode pencarian yang akan kita bahas disini:
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
ARRAY STATIS Sri Nurhayati, MT.
STUKTUR DATA “Sequential Search and Binary Search”
Pencarian (searching)
SEARCHING Universitas Dian Nuswantoro Semarang 12/7/2018.
SEARCHING Ada 3 metode pencarian yang akan kita bahas disini:
SEARCHING ( PENCARIAN )
Transcript presentasi:

PENCARIAN (SEARCHING)

Definisi pencarian dalam Larik Pencarian (Searching) merupakan proses yang fundamental dalam pemrograman. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan nilai yang bertipe sama (tipe dasar atau tipe bentukan).

Definisi pencarian dalam Larik Hasil atau keluaran dari persoalan pencarian dapat bermacam-macam, misalnya: Pesan bahwa x ditemukan atau tidak ditemukan dalam larik Indeks elemen larik, jika x ditemukan maka simpan indeks larik tempat x ditemukan ke dalam peubah IDX, jika tidak terdapat dalam larik L, IDX diisi dengan harga 0. Peubah boolean, jika x ditemukan maka sebuah peubah boolean, misalnya “ketemu”, diisi dengan nilai true, sebaliknya “ketemu” diisi dengan false.

Definisi pencarian dalam Larik Algoritma yang akan dibahas di dalam Bab ini adalah : Pencarian beruntun (Sequential search) Pencarian bagidua (Binary search)

Pencarian Beruntun (Sequential Search) 1 2 3 4 5 6 Pencarian Beruntun (Sequential Search) Pencarian beruntun adalah proses membandingkan setiap elemen larik satu persatu secara beruntun,. Mulai dari elemen pertama sampai elemen yang dicari ditemukan, atau seluruh elemen sudah diperiksa. Perhatikan larik L di bawah ini:

Pencarian Beruntun (Sequential Search) Pendeklarasian: Deklarasi Const Nmaks = 100 {jumlah maksimum elemen larik } Type Larik : Array [1..Nmaks] of integer

Pencarian Beruntun (Sequential Search) Beberapa versi algoritma pencarian beruntun: a. Versi 1 (Tidak menggunakan peubah Boolean) Elemen larik L dibandingkan mulai dari elemen L[1]. Proses pembandingan terus dilakukan selama elemen L[k] tidak sama dengan X dan indeks larik belum sama dengan n. Pembandingan dihentikan bila L[k] = x atau indeks larik sudah sama dengan N.

Pencarian Beruntun (Sequential Search) procedure cari_Indeks (input L : larik, input n, x : integer, output idx : integer) Deklarasi k : integer { indeks larik } Deskripsi k  1 while (k < n) and (L[k] ≠ x) do k  k + 1 endwhile { k = n or L[k] = x } if L[k] = x then { x ditemukan } Idx  k else Idx  0 endif

Pencarian Beruntun (Sequential Search) b. Versi 2 (Menggunakan Peubah Boolean) Peubah boolean ketemu diinisialisasi dengan nilai false. Elemen larik L dibandingkan mulai dari elemen ke-k = 1, 2, …, n. jika L[k] sama dengan X. Peubah ketemu diisi dengan harga true dan proses pembandingan dihentikan. Sebaliknya, jika L[k] tidak sama dengan x, peubah ketemu tetap false nilainya dan proses pembandingan dilanjutkan untuk elemen berikutnya.

Pencarian Beruntun (Sequential Search) procedure cari_Indeks (input L : larik, input n, x : integer, output idx : integer) Deklarasi k : integer { indeks larik } ketemu : boolean { true jika ditemukan, false bila tidak } Deskripsi k  1 ketemu  false while (k ≤ n) and (not ketemu) do if L[k] = x then ketemu  true else k  k + 1 endif endwhile { k > N or ketemu } if ketemu then { x ditemukan } Idx  k Idx  0

Pencarian Bagidua (Binary Search) Pencarian bagidua adalah metode pencarian yang diterapkan pada sekumpulan data yang sudah terurut (terurut menaik atau terurut menurun). Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat.

Pencarian Bagidua (Binary Search) Misalkan indeks kiri adalah i dan indeks kanan adalah j. pada mulanya, j =1 dan j = N Langkah 1: Bagi dua elemen larik pada elemen tengah. Elemen tengah adalah elemen dengan indeks k = (i+j) div 2. (elemen tengah, L[k], membagi larik menjadi dua bagian, yaitu bagian kiri L[i..j] dan bagian kanan L[k+1..j]) Langkah 2: Periksa apakah L[k] = X. jika ya, pencarian dihentikan karena x sudah ditemukan. Tetapi jika L[k] ≠ X, harus ditentukan apakah pencarian akan dilakukan di larik bagi kiri atau di bagian kanan. Jika L[k] < X, maka pencarian dilakukan pada larik bagian kiri. Sebaliknya jika L[k] > X, pencarian dilakukan pada larik bagian kanan. Langkah 3: Ulangi langkah 1 sampai X ditemukan atau i > j (yaitu, ukuran larik sudah 0)

Pencarian Bagidua (Binary Search) Ilustrasi pencarian bagidua: Misalkan diberikan larik L dengan delapan buah elemen yang sudah terurt menurun seperti berikut:

Pencarian Bagidua (Binary Search) Algoritma pencarian bagidua untuk larik terurut menurun: procedure bagi_dua1 (input L : larik, input n, x : integer, output idx : integer) Deklarasi i, j : integer { indeks kiri dan indeks kanan larik } k : integer { indeks elemen tengah } ketemu : boolean { true jika ditemukan, false bila tidak }

Pencarian Bagidua (Binary Search) Deskripsi i  1 j  n ketemu  false while (not ketemu) and (i ≤ j) do k  (i + j) div 2 { bagi dua larik L pada posisi ke k } if (L[k] = x) then ketemu  true else if (L[k] > x) then i  k + 1 j  k - 1 endif endwhile

Pencarian Bagidua (Binary Search) Bagaimana algoritma pencarian bagidua untuk larik terurut menaik?