0% menganggap dokumen ini bermanfaat (0 suara)
117 tayangan31 halaman

Algoritma Searching

Algoritma pencarian data pada dokumen ini membahas dua metode utama, yaitu linear search dan binary search. Linear search melakukan pencarian secara berurutan dari awal hingga akhir data. Sedangkan binary search melakukan pencarian pada data yang terurut dengan membandingkan nilai tengah. Kedua metode memiliki kasus terbaik dan terburuk berdasarkan lokasi data yang dicari.

Diunggah oleh

Martin Martiano
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 PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
117 tayangan31 halaman

Algoritma Searching

Algoritma pencarian data pada dokumen ini membahas dua metode utama, yaitu linear search dan binary search. Linear search melakukan pencarian secara berurutan dari awal hingga akhir data. Sedangkan binary search melakukan pencarian pada data yang terurut dengan membandingkan nilai tengah. Kedua metode memiliki kasus terbaik dan terburuk berdasarkan lokasi data yang dicari.

Diunggah oleh

Martin Martiano
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 PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 31

ALGORITMA

PENCARIAN
(SEARCHING)
Sub Topik
• Algoritma Pencarian
• Linear Search
• Binary Search
Algoritma Pencarian
Searching
• Searching adalah proses pencarian data yang ada pada suatu
deret data dengan cara menelusuri data-data tersebut.
• Tahapan paling penting : memeriksa jika data yang dicari sama
dengan data yang ada pada deret data.
• Macam algoritma pencarian :
• Linear Search
• Binary Search
Searching
 Single match
Siapa mahasiswa dengan Nim
0800123456

 Multiple match
Siapa saja yang mendapat nilai
Algoritma >= 85

5
Linear Search
Linear Search
• Metode pencarian beruntun atau linear atau sequential
search.
• Adalah suatu teknik pencarian data yang akan menelusuri tiap
elemen satu per-satu dari awal sampai akhir.
• Suatu deret data dapat disimpan dalam bentuk array maupun
linked list.
Sequential/Linier Search
• Disebut juga linear search atau Metode
pencarian beruntun.
• Tidak efisien untuk data yang list yang
besar
• Adalah suatu teknik pencarian data yang
akan menelusuri tiap elemen satu per-satu
dari awal sampai akhir.
• Data awal = tidak harus dalam kondisi
terurut.
Algoritma Sequential Search
1. Input x (data yang dicari)
2. Bandingkan x dengan data ke-i sampai n
3. Jika ada data yang sama dengan x maka cetak pesan “Ada”
4. Jika tidak ada data yang sama dengan x cetak pesan “tidak
ada”
Case
Best case : jika data yang dicari terletak di indeks array
terdepan (elemen array pertama) sehingga waktu yang
dibutuhkan untuk pencarian data sangat sebentar (minimal).
Worst case : jika data yang dicari terletak di indeks array
terakhir (elemen array terakhir) sehingga waktu yang
dibutuhkan untuk pencarian data sangat lama (maksimal).
Contoh
• Misalnya terdapat array satu dimensi sebagai berikut:

0 1 2 3 4 5 6 7
indeks

8 10 6 -2 11 7 1 100 value

• Kemudian program akan meminta data yang akan dicari,


misalnya 6.
• Iterasi :
6 = 8 (tidak!)
6 = 10 (tidak!)
6 = 6 (Ya!) => output : 2 (index)
Best & Worst Case
• Best case : jika data yang dicari terletak di depan sehingga
waktu yang dibutuhkan minimal.
• Worst case : jika data yang dicari terletak di akhir sehingga
waktu yang dibutuhkan maksimal.
• Contoh :
DATA = 5 6 9 2 8 1 7 4
bestcase ketika x = 5
worstcase ketika x = 4
*x = key/data yang dicari
Contoh Sequential Search
Nim Nama IPK
[0] 2207023006 Mulyadi 2.94
[1] 2207023004 Willy Johan 3.15
[2] 2207023003 Anthony Liberty 2.78
[3] 2207023007 Ferry Santoso 3.37
[4] 2207023005 Jaya Mulya 2.93
[5] 2207023001 Budi Santoso 3.01
[6] 2207023008 Indra Gunawan 3.56
[7] 2207023002 M. Rudito W 3.44

13
Contoh Sequential Search
Kunci pencarian? 2207023007
NIM[0] == kunci?  tidak
NIM[1] == kunci?  tidak
NIM[2] == kunci?  tidak
NIM[3] == kunci?  ya  Ferry Santoso, 3.37

14
Contoh Sequential Search
Kunci pencarian? 2207023010
NIM[0] == kunci?  tidak
NIM[1] == kunci?  tidak
NIM[2] == kunci?  tidak
NIM[3] == kunci?  tidak
NIM[4] == kunci?  tidak
NIM[5] == kunci?  tidak
NIM[6] == kunci?  tidak
NIM[7] == kunci?  tidak
Semua data telah di cari, kunci tidak ditemukan

15
Algoritma
Q&A
• Problem: Apakah cara di atas efisien? Jika datanya ada
10000 dan semua data dipastikan unik?
• Solution: Untuk meningkatkan efisiensi, seharusnya jika
data yang dicari sudah ditemukan maka perulangan
harus dihentikan!
• Hint: Gunakan break!
• Question: Bagaimana cara menghitung ada berapa data
dalam array yang tidak unik, yang nilainya sama dengan
data yang dicari oleh user?
• Hint: Gunakan variabel counter yang nilainya akan selalu
bertambah jika ada data yang ditemukan!
Binary Search
Binary Search
• Menggunakan Binary Search, jika :
• Nilai-nilai tersebut sudah berurutan (ascending). Disimpan dalam
bentuk larik (array) atau struktur data sejenis.
• Pencarian data dimulai dari pertengahan data yang telah terurut
Algoritma Binary Search
1. Data diambil dari posisi 1 sampai posisi akhir N
2. Kemudian cari posisi data tengah dengan rumus:
(posisi awal + posisi akhir) / 2
3. Kemudian data yang dicari dibandingkan dengan
data yang di tengah, apakah sama atau lebih kecil,
atau lebih besar?
4. Jika lebih besar, maka proses pencarian dicari
dengan posisi awal adalah posisi tengah + 1
5. Jika lebih kecil, maka proses pencarian dicari
dengan posisi akhir adalah posisi tengah – 1
6. Jika data sama, berarti ketemu.
Algoritma Binary Search
N: banyak record array x
1. kiri = 0 dan kanan = N-1
2. tengah = (kiri+kanan)/2
3. jika x[tengah]=kunci maka indeks = tengah. Selesai
4. jika x[tengah]<kunci maka kiri = tengah+1
5. jika x[tengah]>kunci maka kanan = tengah-1
6. jika kiri<kanan dan x[tengah]<>kunci
maka ulangi mulai dari 2
7. jika x[tengah]<>kunci maka indeks=-1
8.selesai

21
Contoh 1
Contoh 2
Best & Worst Case
• Best case : jika data yang dicari terletak di posisi tengah.
• Worst case : jika data yang dicari tidak ditemukan.
• Contoh :
DATA = 5 6 9 2 8 1 7 4 3
bestcase ketika x = 8 (T(n)=1)
worstcase ketika x = 25 (T(n) = 5 atau n/2)
*x = key/data yang dicari
Masalah
Latihan
Misalnya data yang dicari

Kasus 1: 23 (X = 23)

39 11 12 15 17 23 31 35
Kasus 2: 23 (X = 11)
Ilustrasi
Contoh Data:
Misalnya data yang dicari 23 (X = 23)
Iterasi 1
0 1 2 3 4 5 6 7 8
3 9 11 12 15 17 23 31 35
A B C
Karena 23 > 15 (data tengah), maka: awal = tengah + 1
Iterasi 2
0 1 2 3 4 5 6 7 8
3 9 11 12 15 17 23 31 35
A B C

X = B (sama dengan data tengah). Output = “Data ditemukan”


Ilustrasi
Contoh Data:
Misalnya data yang dicari 17
• 0 1 2 3 4 5 6 7 8
• 3 9 11 12 15 17 23 31 35
• A B C
• Karena 17 > 15 (data tengah), maka: awal = tengah + 1

• 0 1 2 3 4 5 6 7 8
• 3 9 11 12 15 17 23 31 35
• A B C
• Karena 17 < 23 (data tengah), maka: akhir = tengah – 1

• 0 1 2 3 4 5 6 7 8
• 3 9 11 12 15 17 23 31 35
• A=B=C
• Karena 17 = 17 (data tengah), maka KETEMU!

Anda mungkin juga menyukai