Transcript pertemuan12

Pertemuan 12
STRUKTUR
SEARCHING
Sequential Search
• Suatu teknik pencarian data dalam array dimensi 1 yang
akan menelusuri semua elemen array dari awal sampai
akhir, dimana data-data tidak perlu diurutkan terlebih
dahulu (acak).
• Kemungkinan terbaik (best case) adalah jika data yang
dicari terletak di indeks array terdepan sehingga waktu
yang dibutuhkan untuk pencarian data sangat singkat
(waktu minimal).
• Kemungkinan terburuk (worst case) adalah jika data
yang dicari terletak di indeks array terakhir sehingga
waktu yang dibutuhkan untuk pencarian data sangat
lama (waktu maksimal).
Misalnya terdapat array satu dimensi sebagai berikut:
0
1
8
10
2
3
6
4
-2
11
5
6
7
7
1
21da 21db 21dd 21de 21df 21le0 21le0 21le1
100
indeks
value
alam t
Kemudian program akan meminta data yang akan dicari,
misalnya 6.
Jika ada maka akan ditampilkan “Data ada”, jika tidak ada
maka akan ditampilkan “Data tidak ada”.
Linier Searching
(Sequential searching)
Dengan Progrom C++
#include < stdio.h>
#include <conio.h>
Void main (){
clrscr();
int data[8] = {8,10,6,-2,7,1.100} :
int cari;
int flag = 0;
printf (“masukan data yang ingin dicari = “); scanf (“%d”, scari) ;
for (int i=0;i<8;++){
if (data[i]==cari ) flag=1;
}
if (flag==1) printf (“data ada !\n”);
else printf (“data tidak ada !\n”) :
Binary Searching
Merupakan metode terbaik dalam search (pencarian), karena memulai
pencarian dari lokasi tengah (m). Kemudian berdasarkan posisi tengah tersebut
terdapat 3 kemungkinan : a. Jika cari < data[m], maka informasi yang dicari
berada
Algorithma:
1. Low = 1, High = N
2. Ketika Low <= High, Maka Kerjakan Langkah No. 3
Jika tidak, maka kerjakan langkah no. 7
3. Temtukan Nilai Tengah dengan Rumus: Mid = (Low + High) div 2
4. Jika X < Nil ai Tengah, maka High = Mid – 1
5. Jika X > Nil ai Tengah, maka Low = Mid + 1
6. Jika X = Nil ai Tengah, maka Nilai Tengah = Nilai yang dicari
7. Jika X > High, Maka Pencarian Gagal
 # include <stdio.h>
 # include <conio.h>
 # include <stdlib.h>
 Void main (){
Clract () ;
Int data [9] = { 3,9,11,12,15,17,23,31,35};
Int l, r, m;
int n-9;
int cari =17;
l – 0;
r = n-1 ;
Int ktm – 0 ;
While ( 1< = r && ktm == 0
m – (l +r) /2 ;
printf (“data tengah : % d\n”,m);
if (data[m] ==cari ) ktm=1;
else if (cari <data [m] ) {
printf (“cari dikiri \n”);
r=m-1;
Binary Searching
Dengan Program C++
}
else {
l = m+1;
printf ( “cari dikanan\ n”);
}
}
if (ktm ==1) printf (“data ada\n”)
else printf (data tidak ada \n” )
}
Soal Struktur Data
(Pertemuan 12)
1. Kemungkinan terbaik (best case) untuk pencarian data
dengan sequential search adalah jika ….
a. Data yang dicari berada di indeks belakang
b.Data yang dicari berada di indeks terdepan
c.Data yang dicari berada di tengah indeks
d.Data yang dicari tidak ada pada indeks array
2. Berikut ini yang termasuk dalam deret fibonancy
adalah :
a. 0,1,2,3,4,5, …
c. 0,1,1,2,3,5, …
b. 1,3,5,7,9,11…
d. 0,1,2,3,5,6, …
3. Pencarian data dengan metode Binary search akan
berhenti bila data yang dicari sudah ditemukan, yaitu pada kondisi…
a. cari <data[m] c. cari > data[m] b. cari = data[m] d. cari = 0
4. Diberikan urutan data 10, 25, 15, 5, 12. Metode yang
tepat digunakan untuk mencari suatu data dalam urutan data tersebut
adalah ….
a. Binary c. Fibonancy
b. Sequential
d. Selection
5. Bila diketahui urutan data sebagai berikut :
5 10 15 20 25 Pencarian data 10 dengan metode Binary dapat
diselesaikan pada langkah ke…
a. 1
b. 2
c. 3
d. 4
SEKIAN
Tumbuh merata pohon tebu
Pergi ke pasar membeli daging
Banyak harta miskin ilmu
Bagai rumah tidak berdinding