SlideShare a Scribd company logo
1 of 17
Download to read offline
Pencarian pada Array
Tim PHKI Modul Dasar Pemrograman
Fakultas Ilmu Komputer
UDINUS Semarang
Latar Belakang
• Merupakan proses yang penting karena sering
dilakukan terhadap sekumpulan data yang
disimpan dalam array
• Ada beberapa variasi pencarian
– Metoda mana yang dipakai menentukan
kecepatan pencarian
– Metoda yang paling sering digunakan adalah
sequential search/ pencarian berurutan.
Sequential Search
• Merupakan metode pencarian yang paling
banyak digunakan.
• Pencarian dilakukan dari elemen awal array,
terurut hingga elemen akhir array.
• Algoritma sequential search dapat bervariasi,
yang bergantung dapat pada data. Berikut akan
dibahas beberapa algoritma sequential search,
seperti:
– Pencarian pada data yang random atau acak
– Pencarian pada data yang urut
– Pencarian dengan sentinel
Permasalahan 1
• Diketahui array bertipe integer A[N], yang sudah terisi.
• Tuliskanlah algoritma program dengan masukan X bernilai integer
dan mencari apakah X ada dalam array A secara sekuensial
(berturutan)
– Jika data ditemukan program akan menghasilkan teks “Ketemu pada
index …”
– Jika data tidak ditemukan maka akan ditampilkan teks “Tidak ketemu”
– Pencarian segera dihentikan begitu harga pertama diketemukan
• Contoh-1: N = 10, A berisi : { 1, 3, -7, 5, -8, 12, 7 ,90, 3, 5 }, X = 5
– Pemeriksaan dilakukan terhadap {1,3, -7, 5}
– Output : Ketemu pada index 3
• Contoh-2: N = 5, A berisi : { 18, 6, 90, 85, 55 }, X = 100
– Pemeriksaan dilakukan terhadap {18, 6, 90, 85, 55 }
– Output : Tidak ketemu
(Pada Array dengan data acak/random)
Jawab Permasalahan 1
Dari permasalahan 1 didapatkan kesimpulan
sebagai berikut:
• Terdapat 2 macam output, yaitu:
– Ketemu, pada index …
– Tidak ketemu
• Data tidak ketemu jika telah dilakukan
pemeriksaan terhadap semua elemen array
dari awal sampai akhir
Algoritma untuk Permasalahan 1
(Skema Pencarian Tanpa Boolean)
KAMUS
i : integer {indeks untuk pencarian}
N : integer {jumlah index}
A : array [0…N-1] of integer
X : integer {data yang akan dicari}
ALGORITMA
i ← 0
N ← sizeof(A)
input(X)
while (i < N) and (Ai ≠ X) do
i ← i + 1
{ i = N or Ai = X }
if (Ai = X) then
Output (“Ketemu pada indeks ”, i)
else { Ti ≠ X }
Output (“Tidak Ketemu”)
Algoritma untuk Permasalahan 1
(Skema Pencarian Dengan Boolean)
KAMUS
i : integer {indeks untuk pencarian}
N : integer {jumlah index}
A : array [0…N-1] of integer
X : integer {data yang akan dicari}
ALGORITMA
i ← 0
N ← sizeof(A)
Found ← false { awal pencarian, belum ketemu }
input(X)
while (i ≤ N) and (not Found) do
if (Ti = X) then
Found ← true
else
i ← i + 1
{ i > N or Found }
if (Found) then
Output (“Ketemu pada indeks ”, i)
else
Output (“Tidak Ketemu”)
Diskusikan
• Buatlah algoritma untuk permasalahan 1
dengan menggunakan perulangan transversal
dan kondisi, dimana menggunakan kata kunci
break
Permasalahan 2
• Diketahui sebuah array bertipe integer A[N], dengan isi
yang terurut membesar
• Tuliskanlah algoritma untuk mencari X bernilai integer,
apakah harga X ada dalam A secara sekuensial mulai dari
elemen pertama
– Jika data ditemukan program akan menghasilkan teks “Ketemu
pada index …”
– Jika tidak data tidak ditemukan maka akan ditampilkan teks
“Tidak ketemu”
– Pencarian segera dihentikan begitu harga pertama diketemukan
• Dengan memanfaatkan keterurutan, kondisi berhenti bisa
lebih efisien (dimana x lebih besar dari nilai index maka
data tidak ketemu)
(Pada Array dengan data terurut)
Permasalahan 2 lanjutan
• Contoh 1:
– N = 8, A berisi : { 10, 30, 50, 70, 120, 190, 311, 500}, X
= 70
– Pemeriksaan dilakukan terhadap {10,30,50,70}
– Output : Ketemu pada index 3
• Contoh 2:
– N = 6, A berisi : { 18, 35, 55, 101, 123, 456}, X = 100
– Pemeriksaan dilakukan terhadap {18, 35, 55, 101}
– Output : Tidak ketemu
(Pada Array dengan data terurut)
Algoritma untuk Permasalahan 2
KAMUS
i : integer {indeks untuk pencarian}
N : integer {jumlah index}
A : array [0…N-1] of integer
X : integer {data yang akan dicari}
ALGORITMA
i ← 0
N ← sizeof(A)
input(X)
while (i < N) and (Ai < X)
i ← i + 1
{ i = N or Ti >= X }
if (Ti = X ) then
Output (“Ketemu pada indeks ”, i)
else { Ti ≠ X  Ti > X }
Output (“Tidak ketemu”)
Permasalahan 3
• Teknik ini menggunakan elemen fiktif yang diletakan
pada elemen terakhir array, yang disebut SENTINEL.
– Harga elemen fiktif = elemen yang dicari
– Pencarian pasti ketemu  maka harus dicek lagi posisi
ketemu, apakah diakhir atau tidak
• Penempatan sentinel disesuaikan dengan arah
pencarian(depan ke belakang atau blakang ke depan)
• Teknik sentinel sangat efisien, terutama jika pencarian
dilakukan sebelum penyisipan sebuah elemen yang
belum terdapat di dalam array
(Pencarian berurutan dengan SENTINEL)
Permasalahan 3 lanjut
• Contoh 1: N = 7, A berisi : { 2, 4, 5, 8, 95, 30,
5}, X = 5
– A dijadikan { 2, 4, 5, 8, 95, 30, 5, 5}
– Pemeriksaan dilakukan terhadap {2,4,5}
– Output : Ketemu pada index 2
• Contoh 2: N = 4, A berisi : { 11, 3, 5, 8}, X = 100
– A dijadikan { 11, 3, 5, 8, 100}
– Pemeriksaan dilakukan terhadap {11,3,5,8,100}
– Output : Tidak ketemu
(Pencarian berurutan dengan SENTINEL)
Algoritma untuk Permasalahan 3
KAMUS
i : integer {indeks untuk pencarian}
N : integer {jumlah index}
A : array [0…N-1] of integer
X : integer {data yang akan dicari}
ALGORITMA
i ← 0
N ← sizeof(A)
input(X)
TN+1 ← X {pasang sentinel }
while (Ti ≠ X)do
i ← i + 1
{Ti = X; harus diperiksa apakah ketemunya di sentinel }
if (i< N+1) then
Output (“Ketemu pada indeks ”, i)
else { i = N+1 }
Output (“Tidak ketemu”)
Tugas
Buatlah algoritma untuk pencarian pada data seperti berikut:
1. N = 7, A berisi : { 2, 4, 5, 8, 5, 30, 5}, X = 5
2. N = 8, A berisi : { 2, 4, 5, 5, 9, 10, 15}, X = 5
Output dari data tersebut adalah:
Jika ketemu: tampilkan teks “Ketemu”, tampilkan jumlah
ketemu dan indeksnya
Jika tidak ketemu: tampilkan teks tidak ketemu
Catatan:
Untuk masing-masing nomor pilihlah algoritma pencarian
berurutan pada array dengan data acak, berurutan atau
dengan sentinel, berikan alasan!
Referensi
• Inggriani Liem, IF-ITB, Diktat Pemrograman
Prosedural (2007)
THANKS

More Related Content

Similar to 10._Pencarian_pada_Array_.pdf

Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
muissyahril
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembangan
ssuser89dc1c
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
Fahuda E
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
Mutia Rahmadania
 
Statistik-Pertemuan ke-3-OK.pdf
Statistik-Pertemuan ke-3-OK.pdfStatistik-Pertemuan ke-3-OK.pdf
Statistik-Pertemuan ke-3-OK.pdf
JumaAry1
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
Dea Rokhmatun Iradewa
 

Similar to 10._Pencarian_pada_Array_.pdf (20)

Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Array statis if
Array statis ifArray statis if
Array statis if
 
2. Pendahuluan array.pdf
2. Pendahuluan array.pdf2. Pendahuluan array.pdf
2. Pendahuluan array.pdf
 
207 p09
207 p09207 p09
207 p09
 
Pengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.pptPengenalan struktur data teknologi informasi.ppt
Pengenalan struktur data teknologi informasi.ppt
 
introductions struktur data dalam pengembangan
introductions struktur data dalam pengembanganintroductions struktur data dalam pengembangan
introductions struktur data dalam pengembangan
 
Pengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur dataPengenalan struktur data Pengenalan struktur data
Pengenalan struktur data Pengenalan struktur data
 
Pertemuan 4
Pertemuan 4Pertemuan 4
Pertemuan 4
 
Pengenalan Teknologi Informasi 7 - Pencarian
Pengenalan Teknologi Informasi   7 - PencarianPengenalan Teknologi Informasi   7 - Pencarian
Pengenalan Teknologi Informasi 7 - Pencarian
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
TUGAS TIK.pptx
TUGAS TIK.pptxTUGAS TIK.pptx
TUGAS TIK.pptx
 
KELOMPOK 1 ALGORITMA SENTINEL.pdf
KELOMPOK 1 ALGORITMA SENTINEL.pdfKELOMPOK 1 ALGORITMA SENTINEL.pdf
KELOMPOK 1 ALGORITMA SENTINEL.pdf
 
Binary Search pada Java
Binary Search pada JavaBinary Search pada Java
Binary Search pada Java
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Tugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadaniaTugas Algoritma Mutia rahmadania
Tugas Algoritma Mutia rahmadania
 
Statistik-Pertemuan ke-3-OK.pdf
Statistik-Pertemuan ke-3-OK.pdfStatistik-Pertemuan ke-3-OK.pdf
Statistik-Pertemuan ke-3-OK.pdf
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
 
Sequential Search
Sequential SearchSequential Search
Sequential Search
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
Struktur data chapter_14
Struktur data chapter_14Struktur data chapter_14
Struktur data chapter_14
 

Recently uploaded

KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdshKISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
DosenBernard
 
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
sonyaawitan
 
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).pptSIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
EndangNingsih7
 
undang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogorundang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogor
ritch4
 
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerjaContoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
IniiiHeru
 
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.pptKeracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
DIGGIVIO2
 
Diac & Triac untuk memenuhi tugas komponen
Diac & Triac untuk memenuhi tugas komponenDiac & Triac untuk memenuhi tugas komponen
Diac & Triac untuk memenuhi tugas komponen
BangMahar
 
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
TaufikTito
 
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptxRESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
mirzagozali2
 
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Riyadh +966572737505 get cytotec
 

Recently uploaded (20)

KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdshKISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
 
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
 
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).pptSIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
SIMPUS SIMPUS SIMPUS & E- PUSKESMAS (3).ppt
 
undang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogorundang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogor
 
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
 
DATA MINING : ESTIMASI, PREDIKSI, KLASIFIKASI, KLASTERING, DAN ASOSIASI.ppt
DATA MINING : ESTIMASI, PREDIKSI, KLASIFIKASI, KLASTERING, DAN ASOSIASI.pptDATA MINING : ESTIMASI, PREDIKSI, KLASIFIKASI, KLASTERING, DAN ASOSIASI.ppt
DATA MINING : ESTIMASI, PREDIKSI, KLASIFIKASI, KLASTERING, DAN ASOSIASI.ppt
 
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerjaContoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
 
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.pptKeracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
 
Diac & Triac untuk memenuhi tugas komponen
Diac & Triac untuk memenuhi tugas komponenDiac & Triac untuk memenuhi tugas komponen
Diac & Triac untuk memenuhi tugas komponen
 
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
 
PPT SIDANG UJIAN KOMPREHENSIF KUALITATIF
PPT SIDANG UJIAN KOMPREHENSIF KUALITATIFPPT SIDANG UJIAN KOMPREHENSIF KUALITATIF
PPT SIDANG UJIAN KOMPREHENSIF KUALITATIF
 
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdfAlur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
 
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptxRESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
RESUME KEWARGANEGARAAN_7 DAN 9._tugas ke 2pptx
 
contoh judul tesis untuk mahasiswa pascasarjana
contoh judul tesis untuk mahasiswa pascasarjanacontoh judul tesis untuk mahasiswa pascasarjana
contoh judul tesis untuk mahasiswa pascasarjana
 
Salinan PPT TATA BAHASA Bahasa Indonesia
Salinan PPT TATA BAHASA Bahasa IndonesiaSalinan PPT TATA BAHASA Bahasa Indonesia
Salinan PPT TATA BAHASA Bahasa Indonesia
 
materi konsep dan Model TRIASE Bencana.pptx
materi konsep dan Model TRIASE Bencana.pptxmateri konsep dan Model TRIASE Bencana.pptx
materi konsep dan Model TRIASE Bencana.pptx
 
Hasil wawancara usaha lumpia basah tugas PKWU
Hasil wawancara usaha lumpia basah tugas PKWUHasil wawancara usaha lumpia basah tugas PKWU
Hasil wawancara usaha lumpia basah tugas PKWU
 
Bimbingan Teknis Penyusunan Soal Pilihan Berganda 2024.pptx
Bimbingan Teknis Penyusunan Soal Pilihan Berganda  2024.pptxBimbingan Teknis Penyusunan Soal Pilihan Berganda  2024.pptx
Bimbingan Teknis Penyusunan Soal Pilihan Berganda 2024.pptx
 
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppTPERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
 
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
 

10._Pencarian_pada_Array_.pdf

  • 1. Pencarian pada Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang
  • 2. Latar Belakang • Merupakan proses yang penting karena sering dilakukan terhadap sekumpulan data yang disimpan dalam array • Ada beberapa variasi pencarian – Metoda mana yang dipakai menentukan kecepatan pencarian – Metoda yang paling sering digunakan adalah sequential search/ pencarian berurutan.
  • 3. Sequential Search • Merupakan metode pencarian yang paling banyak digunakan. • Pencarian dilakukan dari elemen awal array, terurut hingga elemen akhir array. • Algoritma sequential search dapat bervariasi, yang bergantung dapat pada data. Berikut akan dibahas beberapa algoritma sequential search, seperti: – Pencarian pada data yang random atau acak – Pencarian pada data yang urut – Pencarian dengan sentinel
  • 4. Permasalahan 1 • Diketahui array bertipe integer A[N], yang sudah terisi. • Tuliskanlah algoritma program dengan masukan X bernilai integer dan mencari apakah X ada dalam array A secara sekuensial (berturutan) – Jika data ditemukan program akan menghasilkan teks “Ketemu pada index …” – Jika data tidak ditemukan maka akan ditampilkan teks “Tidak ketemu” – Pencarian segera dihentikan begitu harga pertama diketemukan • Contoh-1: N = 10, A berisi : { 1, 3, -7, 5, -8, 12, 7 ,90, 3, 5 }, X = 5 – Pemeriksaan dilakukan terhadap {1,3, -7, 5} – Output : Ketemu pada index 3 • Contoh-2: N = 5, A berisi : { 18, 6, 90, 85, 55 }, X = 100 – Pemeriksaan dilakukan terhadap {18, 6, 90, 85, 55 } – Output : Tidak ketemu (Pada Array dengan data acak/random)
  • 5. Jawab Permasalahan 1 Dari permasalahan 1 didapatkan kesimpulan sebagai berikut: • Terdapat 2 macam output, yaitu: – Ketemu, pada index … – Tidak ketemu • Data tidak ketemu jika telah dilakukan pemeriksaan terhadap semua elemen array dari awal sampai akhir
  • 6. Algoritma untuk Permasalahan 1 (Skema Pencarian Tanpa Boolean) KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0…N-1] of integer X : integer {data yang akan dicari} ALGORITMA i ← 0 N ← sizeof(A) input(X) while (i < N) and (Ai ≠ X) do i ← i + 1 { i = N or Ai = X } if (Ai = X) then Output (“Ketemu pada indeks ”, i) else { Ti ≠ X } Output (“Tidak Ketemu”)
  • 7. Algoritma untuk Permasalahan 1 (Skema Pencarian Dengan Boolean) KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0…N-1] of integer X : integer {data yang akan dicari} ALGORITMA i ← 0 N ← sizeof(A) Found ← false { awal pencarian, belum ketemu } input(X) while (i ≤ N) and (not Found) do if (Ti = X) then Found ← true else i ← i + 1 { i > N or Found } if (Found) then Output (“Ketemu pada indeks ”, i) else Output (“Tidak Ketemu”)
  • 8. Diskusikan • Buatlah algoritma untuk permasalahan 1 dengan menggunakan perulangan transversal dan kondisi, dimana menggunakan kata kunci break
  • 9. Permasalahan 2 • Diketahui sebuah array bertipe integer A[N], dengan isi yang terurut membesar • Tuliskanlah algoritma untuk mencari X bernilai integer, apakah harga X ada dalam A secara sekuensial mulai dari elemen pertama – Jika data ditemukan program akan menghasilkan teks “Ketemu pada index …” – Jika tidak data tidak ditemukan maka akan ditampilkan teks “Tidak ketemu” – Pencarian segera dihentikan begitu harga pertama diketemukan • Dengan memanfaatkan keterurutan, kondisi berhenti bisa lebih efisien (dimana x lebih besar dari nilai index maka data tidak ketemu) (Pada Array dengan data terurut)
  • 10. Permasalahan 2 lanjutan • Contoh 1: – N = 8, A berisi : { 10, 30, 50, 70, 120, 190, 311, 500}, X = 70 – Pemeriksaan dilakukan terhadap {10,30,50,70} – Output : Ketemu pada index 3 • Contoh 2: – N = 6, A berisi : { 18, 35, 55, 101, 123, 456}, X = 100 – Pemeriksaan dilakukan terhadap {18, 35, 55, 101} – Output : Tidak ketemu (Pada Array dengan data terurut)
  • 11. Algoritma untuk Permasalahan 2 KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0…N-1] of integer X : integer {data yang akan dicari} ALGORITMA i ← 0 N ← sizeof(A) input(X) while (i < N) and (Ai < X) i ← i + 1 { i = N or Ti >= X } if (Ti = X ) then Output (“Ketemu pada indeks ”, i) else { Ti ≠ X  Ti > X } Output (“Tidak ketemu”)
  • 12. Permasalahan 3 • Teknik ini menggunakan elemen fiktif yang diletakan pada elemen terakhir array, yang disebut SENTINEL. – Harga elemen fiktif = elemen yang dicari – Pencarian pasti ketemu  maka harus dicek lagi posisi ketemu, apakah diakhir atau tidak • Penempatan sentinel disesuaikan dengan arah pencarian(depan ke belakang atau blakang ke depan) • Teknik sentinel sangat efisien, terutama jika pencarian dilakukan sebelum penyisipan sebuah elemen yang belum terdapat di dalam array (Pencarian berurutan dengan SENTINEL)
  • 13. Permasalahan 3 lanjut • Contoh 1: N = 7, A berisi : { 2, 4, 5, 8, 95, 30, 5}, X = 5 – A dijadikan { 2, 4, 5, 8, 95, 30, 5, 5} – Pemeriksaan dilakukan terhadap {2,4,5} – Output : Ketemu pada index 2 • Contoh 2: N = 4, A berisi : { 11, 3, 5, 8}, X = 100 – A dijadikan { 11, 3, 5, 8, 100} – Pemeriksaan dilakukan terhadap {11,3,5,8,100} – Output : Tidak ketemu (Pencarian berurutan dengan SENTINEL)
  • 14. Algoritma untuk Permasalahan 3 KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0…N-1] of integer X : integer {data yang akan dicari} ALGORITMA i ← 0 N ← sizeof(A) input(X) TN+1 ← X {pasang sentinel } while (Ti ≠ X)do i ← i + 1 {Ti = X; harus diperiksa apakah ketemunya di sentinel } if (i< N+1) then Output (“Ketemu pada indeks ”, i) else { i = N+1 } Output (“Tidak ketemu”)
  • 15. Tugas Buatlah algoritma untuk pencarian pada data seperti berikut: 1. N = 7, A berisi : { 2, 4, 5, 8, 5, 30, 5}, X = 5 2. N = 8, A berisi : { 2, 4, 5, 5, 9, 10, 15}, X = 5 Output dari data tersebut adalah: Jika ketemu: tampilkan teks “Ketemu”, tampilkan jumlah ketemu dan indeksnya Jika tidak ketemu: tampilkan teks tidak ketemu Catatan: Untuk masing-masing nomor pilihlah algoritma pencarian berurutan pada array dengan data acak, berurutan atau dengan sentinel, berikan alasan!
  • 16. Referensi • Inggriani Liem, IF-ITB, Diktat Pemrograman Prosedural (2007)