Pencarian pada Array Tim PHKI Modul Dasar Pemrograman

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Desain Dan Analisis Algoritma
STRUKTUR DASAR ALGORITMA
STRUKTUR DATA.
Pemrograman Visual (Borland Delphi 7.0)
Searching.
PENGURUTAN (SORTING).
PHP (2) Pemrograman Internet.
PENCARIAN (SEARCHING)
Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data.
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Algoritma dan Pemrograman
Searching.
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma Pencarian (searching)
KUG1E3/ Pemrograman Terstruktur 1
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
4. Linked List (List Linier)
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1C3 Dasar Algoritma & Pemrograman
CS1023 Pemrograman Komputer
Dasar Algoritma dan Pemrograman
Algoritma dan Pemrograman Searching
KUG1E3/ Pemrograman Terstruktur 1
KUG1C3 Dasar Algoritma & Pemrograman
KUG1A3 Algoritma& Pemrograman
Prodi S1-Sistem Komputer, F Teknik Elektro
STRUKTUR DASAR ALGORITMA
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Searching.
Algoritma dan Pemrograman Searching
STRUKTUR DASAR ALGORITMA
KUG1E3/ Pemrograman Terstruktur 1
PENGURUTAN (SORTING).
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
PENCARIAN INTERPOLASI
CS1023 Pemrograman Komputer
Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman
Array 1.
Algoritma dan Pemrograman
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Algoritma dan Struktur Data
Teknik Informatika Politeknik Negeri Batam
AP2A Perulangan & Array PJ : Wawan Setiawan 07
Algorithms and Programming Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
KUG1E3/ Pemrograman Terstruktur 1
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
KUG1E3/ Pemrograman Terstruktur 1
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman Searching
Dasar Algoritma dan Pemrograman
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
ARRAY STATIS Sri Nurhayati, MT.
Pencarian (searching)
Algoritma dan Struktur Data
Konsep Bahasa Pemrograman I Operator
KUG1E3/ Pemrograman Terstruktur 1
Kode MK/ Pemrograman Terstruktur 2
Notasi Algoritmik, Tipe Dasar, Nilai, Ekspresi dan Input/Output
Dasar Pemrograman Percabangan Nurul Anisa Sri Winarsih, M. CS
Dasar Pemrograman Aksi Sekuensial Nurul Anisa Sri Winarsih, M. CS
Transcript presentasi:

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 (Pada Array dengan data acak/random) 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

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) Output (“Tidak Ketemu”)

Diskusikan Buatlah algoritma untuk permasalahan 1 dengan menggunakan perulangan transversal dan kondisi, dimana menggunakan kata kunci break

Permasalahan 2 (Pada Array dengan data terurut) 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)

Permasalahan 2 lanjutan (Pada Array dengan data terurut) 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

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”)

(Pencarian berurutan dengan SENTINEL) Permasalahan 3 (Pencarian berurutan dengan SENTINEL) 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 (Pencarian berurutan dengan SENTINEL) 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

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: N = 7, A berisi : { 2, 4, 5, 8, 5, 30, 5}, X = 5 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