0% menganggap dokumen ini bermanfaat (0 suara)
59 tayangan15 halaman

Struktur Data - Searching

Dokumen tersebut membahas tentang proses pencarian data dalam struktur data. Ada dua metode pencarian yang dijelaskan, yaitu pencarian beruntun (sequential search) dan pencarian biner (binary search). Pencarian beruntun memeriksa setiap elemen secara berurutan, sedangkan pencarian biner hanya bekerja pada data yang terurut dan memeriksa elemen tengah terlebih dahulu.

Diunggah oleh

Tiya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
59 tayangan15 halaman

Struktur Data - Searching

Dokumen tersebut membahas tentang proses pencarian data dalam struktur data. Ada dua metode pencarian yang dijelaskan, yaitu pencarian beruntun (sequential search) dan pencarian biner (binary search). Pencarian beruntun memeriksa setiap elemen secara berurutan, sedangkan pencarian biner hanya bekerja pada data yang terurut dan memeriksa elemen tengah terlebih dahulu.

Diunggah oleh

Tiya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

Struktur Data - Searching

KELOMPOK DISKUSI & PRESENTASI ASD :


1. HERANG BAGUS SEKAR MAJI (9533129)
2. DIKI PEBRIANTO (9533128)
3. KHAIRUL ISTIYANI (19533117)
4. RIZAL WAHYU PRATAMA (19533127)
SEARCHING
 adalah proses menemukan sebuah nilai &data+ tertentu di dalam sekumpulan
nilai yg bertipe sama
 Proses pengolahan data selalu didahului dengan proses pencarian
 Ex, untuk menghapus atau mengubah nilai tertentu di dalam kumpulannya,
langkah pertama yg harus dilakukan adalah mencari apakah nilai tersebut
terdapat di dalam kumpulan yg dimaksud
 Ex, untuk menyisipkan data ke dalam kumpulan juga dimulai dengan pencarian
apakah data yg akan disisipkan sudah terdapat di dalam kumpulan. jika sudah
ada, maka diandaikan tidak boleh ada duplikasi data
Pencarian Beruntun (Sequential Search)
 Pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu
secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan, atau
seluruh elemen sudah diperiksa
 Proses Pencarian dengan metode sequensial :
1. Menentukan data yang dicari
2. Membaca data array satu per satu secara sekuensial
3. Mulai dari data pertama sampai dengan data terakhir, kemudian data yang dicari tadi
dibandingkan dengan masing-masing data yang ada di dalam array.
a. Jika data yang dicari ditemukan maka kita dapat membuat statement bahwa data telah
temukan.
b. Jika data yang dicari tidak ditemukan maka kita dapat membuat statement bahwa data telah
temukan.
 Contoh:
13 87 14 21 75 53 64
Misal nilai yang dicari adalah X = 21, maka elemen yg diperiksa adalah 13, 87, 14, 21 (ditemukan)
Jadi indeks larik yang dikembalikan : I = 4
Misal nilai yang dicari adalah X = 15, maka elemen yang diperiksa adalah 13, 87, 14, 21, 75, 53,64
(tidak ditemukan)
Jadi indeks larik yang dikembalikan : I = 0
Metode Binary Search
 Pencarian biner hanya digunakan pada data yang sudah terurut. Proses pencarian binary
search :
 Membaca array data
 Apabila array belum terurut maka diurutkan dahulu
 Menentukan data yang akan dicari
 Menentukan elemen tengah dari array
 Jika elemen tengah sama dengan data yang dicari maka pencarian selesai
 Jika nilai elemen tengah tidak sama dengan data yang dicari, maka
 Jika nilai elemen tengah lebih besar daripada data yang dicari maka pencarian dilakukan
pada setengah array pertama
 Jika nilai elemen tengah lebih kecil daripada data yang dicari maka pencarian dilakukan
pada setengah array berikutnya
 Diketahui nilai kiri=0 (nilai awal array) dan nilai kanan = 8.
 Rumus posisi tengah adalah (kanan + kiri)/2. Jadi Nilai tengah pada langkah pertama yaitu
(8+0)/2=4. Jika dimasukkan kedalam tabel akan menunjuk nilai 4 (berwarna orange).
Kemudian dibandingkan dengan nilai yang dicari (3), karena nilai yang dicari lebih besar dari
data ditengah maka pencarian di alihkan ke sebelah kanan dengan batas kiri (awal pencarian)
merupakan nilai tengah yakni 4.
 Nilai tengah pada langkah kedua yaitu (8+4)/2=6. Jika dimasukkan ke dalam tabel maka akan
menunjuk nilai 6 (berwarna orange). Kemudian dibandingkan lagi dengan nilai yang dicari (7),
karena nilai yang dicari masih lebih besar dari nilai tengah, maka pencarian dialihkan lagi ke
kanan dengan batas kiri (awal pencarian) merupakan nilai tengah yakni 6.
 Nilai tengah pada langkah ketiga yaitu (8+6)/2=7. Jika dimasukkan ke dalam tabel maka akan
menunjuk nilai 7 (berwarna kuning). Kemudian dibandingkan lagi dengan nilai yang dicari (7),
setelah dibandingkan nilainya sama, maka pencarian selesai dengan keterangan data ditemukan.
 Untuk lebih jelasnya lagi perhatikan algoritma deskriptif binary search berikut :
· Input seluruh data kedalam array
· Tentukan algoritma untuk sorting array ascending (kecil ke besar)
· Input data yang dicari
· Tentukan nilai kiri, kanan, dan tengah dengan rumus :
· Kiri sama dengan nol
· Kanan lebih kecil dari jumlah data
· Tengah sama dengan hasil kanan dikurangi hasil kiri dibagi dua.
 Jika elemen tengah tidak sama dengan data yang dicari, maka :
 Jika elemen tengah lebih besar dari data yang dicari, maka pencarian dilakukan
pada setengah array pertama. Caranya dengan menggunakan perintah kiri sama
dengan tengah ditambah satu.
 Jika elemen tengah lebih kecil dari data yang dicari, maka pencarian dilakukan
pada setengah array berikutnya. Caranya dengan menggunakan perintah kanan
sama dengan tengah dikurangi satu.
 Tengah sama dengan kiri ditambah (kanan - kiri) dibagi dua.
 Jika elemen tengah sama dengan data yang dicari, maka data ditemukan.
Sedangkan jika elemen tengah tidak sama dengan data yang dicari, maka data
tidak ditemukan.
cout<<endl;
#include <stdio.h>
cout<<" Input Nilai Dicari : ";
#include <iostream> cin>>cari;
kiri=0;
#include <conio.h> kanan=jd-1;

using namespace std; tengah=(kanan-kiri)/2;


while ((data[tengah]!=cari) && (kiri>=0)&& (kanan<jd) && (kanan>=kiri))
{
if (cari>data[tengah])
main () {

{ kiri=tengah+1;
}
int jd, cari,no, kiri,kanan,tengah,data[50]; else if (cari<data[tengah])
{
cout<<"\t\t | \t Proses Pencarian \t | \n"; kanan=tengah-1;

cout<<"\t\t | Menggunakan Algoritma Binary Search | \n"; }


tengah=kiri+(kanan-kiri)/2;
cout<<" Input Jumlah Data : "; }
cout<<endl;
cin>>jd; if (data[tengah]==cari)
cout<<endl; {
cout<<"Data Di Temukan Pada Urutan Ke-"<<tengah+1<<endl;
for (no=0;no<jd;no++) cout<<" Keterangan : Data Ditemukan";
}
{
else
cout<<" Input Data Ke-"<<(no+1)<<" : "; {
cout<<" Keterangan : Data Tidak Ditemukan";
cin>>data[no]; }
getch();
MATUR NUHUN

Anda mungkin juga menyukai