ALGORITMA
PENCARIAN (SEARCHING
ALGORITHM)

STT Wastukancana – Informatika Pagi B
RICKY JANWARSYAH
AKHMAD RAMDHANI
M. FARLLY
M. IBNU F
YOYO HARYONO
KELOMPOK 6
Pembahasan
Algoritma Pencarian, merupakan teknik
algoritma untuk mencari data dengan langkahlangkah tertentu, dengan berdasarkan data
masukan (key) dan memproses pencarian
berdasarkan data masukan (key) tersebut
untuk mencapai keputusan “Ditemukan” dan
“Tidak Ditemukan”.
Dua Metode Pencarian Data :
Pencarian Internal (Internal Searching)
 Pencarian Eksternal (External Searching)



Pencarian
Internal
(Internal
Searching), semua data yang diperlukan
dan dikenali sudah ada pada memori di
program.



Pencarian
Eksternal
(External
Searching), tidak semua data yang
diperlukan dan dikenali berada di memori
program, tetapi dengan menambahkan data
dari memori luar (File pada Harddisk atau
Database).
Pengelompokan Metode Pencarian :
 Pencarian Statis (Static Searching)
 Pencarian Dinamis (Dynamic Searching)




Pencarian
Statis
(Static
Searching), pencarian dengan banyaknya nilai
data di memori program yang diketahui
dianggap tetap.
Pencarian
Dinamis
(Dynamic
Searching), pencarian dengan banyaknya nilai
data di memori program yang diketahui bisa
berubah-ubah yang disebabkan penambahan
atau pengurangan suatu data pada memori
program.
Teknik-Teknik Algoritma Pencarian :


Pencarian
Berurutan
(Sequential
Searching)
Pencarian Berurutan, digunakan apabila
data dalam keadaan acak atau tidak terurut.



Pencarian Binari (Binary Searching)
Pencarian Dinamis, digunakan apabila
data dalam keadaan terurut.
Pencarian Berurutan (Sequential
Searching)
Teknik Sederhana dengan melakukan
pencarian secara beturut-turut dan satu
persatu pada sebuah data di memori
program yang bernilai acak untuk
mencapai keputusan, atas data yang
dicari.
Pencarian Berurutan (Sequential Searching)

o Pencarian ini hanya melakukan pengulangan
dari sampai dengan jumlah data (n).

o Pada setiap pengulangan, data masukan
(key) dibandingkan dengan data ke-i. Apabila
data masukan (key) sama dengan data kei, berarti data telah “Ditemukan”.
o Sebaliknya
apabila
sampai
akhir
pengulangan
tidak
ada
data
yang
sama, berarti data “Tidak Ditemukan”.
Indeks
Data[i]

0

1

2

…

n

Nilai Data[i]

?

?

?

…

?

1)
2)
3)
4)
5)
6)

7)
8)
9)

Read n
i ← 0, Ketemu ← 0
For i=0;i<n;i++
• Input Data[i]
Endfor
Read x
For i=0;i<n;i++
• If Data[i]=x then
• Ketemu ← 1
• If Ketemu=1 then
• Write “Data Ditemukan!”
• Endif
• Endif
Endfor
If Ketemu=0 then
• Write “Data Tidak Ditemukan !”
Endif
Running Program
Seq_Alg.cpp
Pencarian Binari (Binary Searching)
Teknik Pencarian pada data yang sudah
berurut nilainya, proses
pencariannya, dengan melakukan
perbandingan nilai data masukan (key)
dengan nilai data yang berada pada indeks
tengah Array, jadi pada pencarian
Binari, apabila nilai data tidak berurut
proses pencarian tidak akan bisa
menghasilkan keputusan yang benar.
Pencarian Binari (Binary Searching)
o Pencarian dengan menentukan posisi awal = 0 dan
posisi akhir = n-1
o Lalu mencari posisi tengah dengan rumus (posisi
awal + posisi akhir) / 2
o Kemudian data masukan (key) dibandingkan dengan
data tengah, jika data masukan (key) lebih kecil dari
data tengah maka pencarian akan di lakukan dari
posisi awal dan menentukan posisi akhir pada data
tengah, sebaliknya apabila data masukan (key) lebih
besar dari data tengah maka pencarian akan
dilakukan dari posisi tengah yang ditentukan sebagai
posisi awal.
Tenga
h

Awal

Akhir

Indeks
Data[i]

0

1

2

3

4

5

6

7

8

9

Nilai Data[i]

?

?

?

?

?

?

?

?

?

?

1)
2)
3)

4)
5)
6)
7)

Read n
i ← 0, Ketemu ← 0
For i=0;i<n;i++
• Input Data[i]
{Data Masukan Berikutnya
Harus Lebih besar}
Endfor
Read x
Awal ← 0, Akhir ← n-1
While (Awal<=Akhir &&
Ketemu=0)
• Tengah = (Awal+Akhir)/2
• Write Data[Tengah]
• If Data[Tengah] = x then
• Ketemu ← 1

8)
9)

Else
• If (x < Data[Tengah])
• Write “Cari di Kiri”
• Akhir ← Tengah-1
Else
• Write “Cari di Kanan”
• Awal ← Tengah+1
• Endif
Endwhile
If (Ketemu=1) then
• Write “Data Ditemukan”
Else
• Write “Data Tidak Ditemukan”
Endif
Running Program
Bin_Alg.cpp
End Slide

Algoritma pencarian (searching algorithm)

  • 1.
  • 2.
    RICKY JANWARSYAH AKHMAD RAMDHANI M.FARLLY M. IBNU F YOYO HARYONO KELOMPOK 6
  • 3.
    Pembahasan Algoritma Pencarian, merupakanteknik algoritma untuk mencari data dengan langkahlangkah tertentu, dengan berdasarkan data masukan (key) dan memproses pencarian berdasarkan data masukan (key) tersebut untuk mencapai keputusan “Ditemukan” dan “Tidak Ditemukan”. Dua Metode Pencarian Data : Pencarian Internal (Internal Searching)  Pencarian Eksternal (External Searching) 
  • 4.
     Pencarian Internal (Internal Searching), semua datayang diperlukan dan dikenali sudah ada pada memori di program.  Pencarian Eksternal (External Searching), tidak semua data yang diperlukan dan dikenali berada di memori program, tetapi dengan menambahkan data dari memori luar (File pada Harddisk atau Database).
  • 5.
    Pengelompokan Metode Pencarian:  Pencarian Statis (Static Searching)  Pencarian Dinamis (Dynamic Searching)   Pencarian Statis (Static Searching), pencarian dengan banyaknya nilai data di memori program yang diketahui dianggap tetap. Pencarian Dinamis (Dynamic Searching), pencarian dengan banyaknya nilai data di memori program yang diketahui bisa berubah-ubah yang disebabkan penambahan atau pengurangan suatu data pada memori program.
  • 6.
    Teknik-Teknik Algoritma Pencarian:  Pencarian Berurutan (Sequential Searching) Pencarian Berurutan, digunakan apabila data dalam keadaan acak atau tidak terurut.  Pencarian Binari (Binary Searching) Pencarian Dinamis, digunakan apabila data dalam keadaan terurut.
  • 7.
    Pencarian Berurutan (Sequential Searching) TeknikSederhana dengan melakukan pencarian secara beturut-turut dan satu persatu pada sebuah data di memori program yang bernilai acak untuk mencapai keputusan, atas data yang dicari.
  • 8.
    Pencarian Berurutan (SequentialSearching) o Pencarian ini hanya melakukan pengulangan dari sampai dengan jumlah data (n). o Pada setiap pengulangan, data masukan (key) dibandingkan dengan data ke-i. Apabila data masukan (key) sama dengan data kei, berarti data telah “Ditemukan”. o Sebaliknya apabila sampai akhir pengulangan tidak ada data yang sama, berarti data “Tidak Ditemukan”.
  • 9.
    Indeks Data[i] 0 1 2 … n Nilai Data[i] ? ? ? … ? 1) 2) 3) 4) 5) 6) 7) 8) 9) Read n i← 0, Ketemu ← 0 For i=0;i<n;i++ • Input Data[i] Endfor Read x For i=0;i<n;i++ • If Data[i]=x then • Ketemu ← 1 • If Ketemu=1 then • Write “Data Ditemukan!” • Endif • Endif Endfor If Ketemu=0 then • Write “Data Tidak Ditemukan !” Endif
  • 10.
  • 11.
    Pencarian Binari (BinarySearching) Teknik Pencarian pada data yang sudah berurut nilainya, proses pencariannya, dengan melakukan perbandingan nilai data masukan (key) dengan nilai data yang berada pada indeks tengah Array, jadi pada pencarian Binari, apabila nilai data tidak berurut proses pencarian tidak akan bisa menghasilkan keputusan yang benar.
  • 12.
    Pencarian Binari (BinarySearching) o Pencarian dengan menentukan posisi awal = 0 dan posisi akhir = n-1 o Lalu mencari posisi tengah dengan rumus (posisi awal + posisi akhir) / 2 o Kemudian data masukan (key) dibandingkan dengan data tengah, jika data masukan (key) lebih kecil dari data tengah maka pencarian akan di lakukan dari posisi awal dan menentukan posisi akhir pada data tengah, sebaliknya apabila data masukan (key) lebih besar dari data tengah maka pencarian akan dilakukan dari posisi tengah yang ditentukan sebagai posisi awal.
  • 13.
    Tenga h Awal Akhir Indeks Data[i] 0 1 2 3 4 5 6 7 8 9 Nilai Data[i] ? ? ? ? ? ? ? ? ? ? 1) 2) 3) 4) 5) 6) 7) Read n i← 0, Ketemu ← 0 For i=0;i<n;i++ • Input Data[i] {Data Masukan Berikutnya Harus Lebih besar} Endfor Read x Awal ← 0, Akhir ← n-1 While (Awal<=Akhir && Ketemu=0) • Tengah = (Awal+Akhir)/2 • Write Data[Tengah] • If Data[Tengah] = x then • Ketemu ← 1 8) 9) Else • If (x < Data[Tengah]) • Write “Cari di Kiri” • Akhir ← Tengah-1 Else • Write “Cari di Kanan” • Awal ← Tengah+1 • Endif Endwhile If (Ketemu=1) then • Write “Data Ditemukan” Else • Write “Data Tidak Ditemukan” Endif
  • 14.
  • 15.

Editor's Notes

  • #10 Algoritma ; RepresentasiFisik
  • #14 Algoritma ; RepresentasiFisik