SlideShare a Scribd company logo
Mata Kuliah : Struktur Data
Program Studi : Manajemen Informatika
Minggu ke : 12
SEARCHING
 PENGERTIAN
Pada suatu data, seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan
cara searching. Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat
pencarian data dapat berupa array dalam memory (pencarian internal), bisa juga pada file external
storage (pencarian eksternal).
 TEKNIK PENCARIAN
Ada 2 (dua) macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari
dua teknik ini terletak pada keadaan data. pencarian sekuensial digunakan apabila data dalam keadaan
acak atau tidak terurut (contoh : sequential search). Sebaliknya, pencarian biner digunakan pada data
yang sudah dalam keadaan urut (contoh : binary search dan interpolation search).
1. SEQUENTIAL SEARCH (PENCARIAN BERURUTAN)
Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-
elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.
Pencarian berurutan menggunakan prinsip sebagai berikut :
Data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data
tersebut ditemukan atau tidak ditemukan.
Contoh Program Pencarian Berurutan :
#include <iostream.h>
main()
{
int data[8] = {8,10,6,-2,11,7,1,100};
int cari;
int flag=0;
cout<<"Masukkan Data Yang Ingin Dicari : ";cin>>cari;
for(int i=0;i<8;i++)
{
if(data[i]==cari) flag=1;
}
if(flag==1)
cout<<"DATA ADA !"<<endl;
else
cout<<"DATA TIDAK ADA !"<<endl;
}
Mata Kuliah : Struktur Data
Program Studi : Manajemen Informatika
Minggu ke : 12
2. BINARY SEARCH
Salah satu syarat agar binary search dapat dilakukan adalah data sudah dalam keadaan urut.
Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat dilakukan.
Prinsip dari binary search dapat dijelaskan sebagai berikut :
a. Mula-mula diambil posisi awal 0 dan posisi akhir = N – 1, kemudian dicari posisi data tengah
dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan
data tengah.
b. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi
tengah – 1.
c. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi
tengah + 1. Jika sama berarti data ketemu.
Contoh Program Binary Search :
#include <iostream.h>
main()
{
int data[7]={10,13,17,34,58,67,99};
int left, right, middle, cari;
int N = 7, flag=0;
left=0, right=N-1;
cout<<"Masukkan Data Yang Ingin Di Cari : ";cin>>cari;
cout<<"nn";
while(left<=right&&flag==0)
{
middle=(left+right)/2;
cout<<"DATA TENGAH = "<<middle<<endl;
if(data[middle]==cari) flag=1;
else if(cari<data[middle])
{
cout<<"Cari Data Di Kiri"<<endl;
right=middle-1;
}
else
{
left=middle+1;
cout<<"Cari Data Di Kanan"<<endl;
}
if(flag==1)
cout<<"DATA ADAn"<<endl;
else
cout<<"DATA TIDAK ADAn"<<endl;
} }
Mata Kuliah : Struktur Data
Program Studi : Manajemen Informatika
Minggu ke : 12
3. INTERPOLATION SEARCH
Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu. Teknik searching
ini dilakukan dengan perkiraan letak data. contoh ilustrasi :
Jika kita hendak mencari suatu kata di dalam kamus telepon, misal yang berawalan dengan huruf
J, maka kita tidak akan mencarinya dari awa buku, tapi kita langsung membukanya pada 1/3 atau
1/4 dari tbal kamus.
Posisi relatif kunci pencarian dihitung dengan rumus :
Posisi =
[ ]
[ ] [ ]
( )
a. Jika data[posisi] > data yang dicari, high = pos – 1
b. Jika data[posisi] < data yang dicari, low = pos + 1
Contoh Program Interpolation Search :
#include <iostream.h>
#include <math.h>
main()
{
int data[7]={10,13,17,34,58,67,99};
int low,high,cari,posisi;
float posisi1;
int N=7, flag=0;
low=0, high=N-1;
cout<<"nnMasukkan Data Yang Ingin Dicari : ";cin>>cari;
do
{
posisi1 = (cari-data[low])/(data[high]-data[low])*(high-low)+low;
posisi = floor(posisi1);
if(data[posisi]==cari)
{
flag=1;
break;
}
if(data[posisi]>cari)
{
high=posisi-1;
}
else
if(data[posisi]<cari)
{
low=posisi+1;
}
}
while(cari>=data[low]&&cari<=data[high]);
if(flag==1)
Mata Kuliah : Struktur Data
Program Studi : Manajemen Informatika
Minggu ke : 12
{
cout<<"n DATA DITEMUKAN"<<endl;
}
else
{
cout<<"n DATA TIDAK DITEMUKAN"<<endl;
} }

More Related Content

What's hot

Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataGeorgius Rinaldo
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode SortingNurul Habibah
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)eka pandu cynthia
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataKuliahKita
 
Struktur data chapter_13
Struktur data chapter_13Struktur data chapter_13
Struktur data chapter_13Sejahtera Affif
 
Analisis Data (1).pdf
Analisis Data (1).pdfAnalisis Data (1).pdf
Analisis Data (1).pdf. .
 
Tugas Mandiri Mata Kuliah Aljabar Linier dan Matriks
Tugas Mandiri Mata Kuliah Aljabar Linier dan MatriksTugas Mandiri Mata Kuliah Aljabar Linier dan Matriks
Tugas Mandiri Mata Kuliah Aljabar Linier dan Matrikssheryl simanjuntak
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_arrayarii_manroe
 
Abstraksi tipe data
Abstraksi tipe dataAbstraksi tipe data
Abstraksi tipe dataFahuda E
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataarii_manroe
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarianWandi Parlente
 
Probabilitas statistik
Probabilitas statistikProbabilitas statistik
Probabilitas statistikmamabelumpuas
 
Sekilas Tentang Data Mining
Sekilas Tentang Data MiningSekilas Tentang Data Mining
Sekilas Tentang Data MiningDEDE IRYAWAN
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1asep lufian
 
Implementasi struktur data pada aplikasi file explorer
Implementasi struktur data pada aplikasi file explorerImplementasi struktur data pada aplikasi file explorer
Implementasi struktur data pada aplikasi file explorerFajarZuhriHadiyanto
 

What's hot (20)

Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
 
Paper Metode Sorting
Paper Metode SortingPaper Metode Sorting
Paper Metode Sorting
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
Algoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur DataAlgoritma dan Struktur Data - Struktur Data
Algoritma dan Struktur Data - Struktur Data
 
Pertemuan 12 Struktur Searching
Pertemuan 12 Struktur SearchingPertemuan 12 Struktur Searching
Pertemuan 12 Struktur Searching
 
Algoritma searching
Algoritma searchingAlgoritma searching
Algoritma searching
 
Struktur data chapter_13
Struktur data chapter_13Struktur data chapter_13
Struktur data chapter_13
 
Analisis Data (1).pdf
Analisis Data (1).pdfAnalisis Data (1).pdf
Analisis Data (1).pdf
 
Tugas Mandiri Mata Kuliah Aljabar Linier dan Matriks
Tugas Mandiri Mata Kuliah Aljabar Linier dan MatriksTugas Mandiri Mata Kuliah Aljabar Linier dan Matriks
Tugas Mandiri Mata Kuliah Aljabar Linier dan Matriks
 
Nelson weldy
Nelson weldyNelson weldy
Nelson weldy
 
Algoritma Eclat
Algoritma EclatAlgoritma Eclat
Algoritma Eclat
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_array
 
Abstraksi tipe data
Abstraksi tipe dataAbstraksi tipe data
Abstraksi tipe data
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
 
Jobsheet mysql
Jobsheet mysqlJobsheet mysql
Jobsheet mysql
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
 
Probabilitas statistik
Probabilitas statistikProbabilitas statistik
Probabilitas statistik
 
Sekilas Tentang Data Mining
Sekilas Tentang Data MiningSekilas Tentang Data Mining
Sekilas Tentang Data Mining
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1
 
Implementasi struktur data pada aplikasi file explorer
Implementasi struktur data pada aplikasi file explorerImplementasi struktur data pada aplikasi file explorer
Implementasi struktur data pada aplikasi file explorer
 

Similar to Struktur data pertemuan 12 (20)

TUGAS TIK.pptx
TUGAS TIK.pptxTUGAS TIK.pptx
TUGAS TIK.pptx
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Sd 15.17 modul 2
Sd 15.17 modul 2Sd 15.17 modul 2
Sd 15.17 modul 2
 
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptxBerpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
 
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptxBerpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
 
Teknik Searching
Teknik SearchingTeknik Searching
Teknik Searching
 
ALPRO SEARCHING K.4.pdf
ALPRO SEARCHING K.4.pdfALPRO SEARCHING K.4.pdf
ALPRO SEARCHING K.4.pdf
 
Array statis if
Array statis ifArray statis if
Array statis if
 
BERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.pptBERPIKIR KOMPUTESIONAL 3.ppt
BERPIKIR KOMPUTESIONAL 3.ppt
 
Algoritma
Algoritma Algoritma
Algoritma
 
Setiawan Aprianto
Setiawan ApriantoSetiawan Aprianto
Setiawan Aprianto
 
Pertemuan 11
Pertemuan 11Pertemuan 11
Pertemuan 11
 
KELOMPOK 1 ALGORITMA SENTINEL.pdf
KELOMPOK 1 ALGORITMA SENTINEL.pdfKELOMPOK 1 ALGORITMA SENTINEL.pdf
KELOMPOK 1 ALGORITMA SENTINEL.pdf
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
 
Algoritma Sorting
Algoritma SortingAlgoritma Sorting
Algoritma Sorting
 
Tria opita
Tria opitaTria opita
Tria opita
 
Pertemuan 12 ok
Pertemuan 12 okPertemuan 12 ok
Pertemuan 12 ok
 
Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya Algoritma dan Struktur Data - Sorting beserta Metode nya
Algoritma dan Struktur Data - Sorting beserta Metode nya
 

Struktur data pertemuan 12

  • 1. Mata Kuliah : Struktur Data Program Studi : Manajemen Informatika Minggu ke : 12 SEARCHING  PENGERTIAN Pada suatu data, seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan cara searching. Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memory (pencarian internal), bisa juga pada file external storage (pencarian eksternal).  TEKNIK PENCARIAN Ada 2 (dua) macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari dua teknik ini terletak pada keadaan data. pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut (contoh : sequential search). Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut (contoh : binary search dan interpolation search). 1. SEQUENTIAL SEARCH (PENCARIAN BERURUTAN) Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen- elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : Data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan. Contoh Program Pencarian Berurutan : #include <iostream.h> main() { int data[8] = {8,10,6,-2,11,7,1,100}; int cari; int flag=0; cout<<"Masukkan Data Yang Ingin Dicari : ";cin>>cari; for(int i=0;i<8;i++) { if(data[i]==cari) flag=1; } if(flag==1) cout<<"DATA ADA !"<<endl; else cout<<"DATA TIDAK ADA !"<<endl; }
  • 2. Mata Kuliah : Struktur Data Program Studi : Manajemen Informatika Minggu ke : 12 2. BINARY SEARCH Salah satu syarat agar binary search dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat dilakukan. Prinsip dari binary search dapat dijelaskan sebagai berikut : a. Mula-mula diambil posisi awal 0 dan posisi akhir = N – 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. b. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah – 1. c. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. Jika sama berarti data ketemu. Contoh Program Binary Search : #include <iostream.h> main() { int data[7]={10,13,17,34,58,67,99}; int left, right, middle, cari; int N = 7, flag=0; left=0, right=N-1; cout<<"Masukkan Data Yang Ingin Di Cari : ";cin>>cari; cout<<"nn"; while(left<=right&&flag==0) { middle=(left+right)/2; cout<<"DATA TENGAH = "<<middle<<endl; if(data[middle]==cari) flag=1; else if(cari<data[middle]) { cout<<"Cari Data Di Kiri"<<endl; right=middle-1; } else { left=middle+1; cout<<"Cari Data Di Kanan"<<endl; } if(flag==1) cout<<"DATA ADAn"<<endl; else cout<<"DATA TIDAK ADAn"<<endl; } }
  • 3. Mata Kuliah : Struktur Data Program Studi : Manajemen Informatika Minggu ke : 12 3. INTERPOLATION SEARCH Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu. Teknik searching ini dilakukan dengan perkiraan letak data. contoh ilustrasi : Jika kita hendak mencari suatu kata di dalam kamus telepon, misal yang berawalan dengan huruf J, maka kita tidak akan mencarinya dari awa buku, tapi kita langsung membukanya pada 1/3 atau 1/4 dari tbal kamus. Posisi relatif kunci pencarian dihitung dengan rumus : Posisi = [ ] [ ] [ ] ( ) a. Jika data[posisi] > data yang dicari, high = pos – 1 b. Jika data[posisi] < data yang dicari, low = pos + 1 Contoh Program Interpolation Search : #include <iostream.h> #include <math.h> main() { int data[7]={10,13,17,34,58,67,99}; int low,high,cari,posisi; float posisi1; int N=7, flag=0; low=0, high=N-1; cout<<"nnMasukkan Data Yang Ingin Dicari : ";cin>>cari; do { posisi1 = (cari-data[low])/(data[high]-data[low])*(high-low)+low; posisi = floor(posisi1); if(data[posisi]==cari) { flag=1; break; } if(data[posisi]>cari) { high=posisi-1; } else if(data[posisi]<cari) { low=posisi+1; } } while(cari>=data[low]&&cari<=data[high]); if(flag==1)
  • 4. Mata Kuliah : Struktur Data Program Studi : Manajemen Informatika Minggu ke : 12 { cout<<"n DATA DITEMUKAN"<<endl; } else { cout<<"n DATA TIDAK DITEMUKAN"<<endl; } }