Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Pencarian Rekaman pada Berkas
Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Desain Dan Analisis Algoritma
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
BAB 9 S e a r c h i n g.
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
PENCARIAN (SEARCHING)
PERTEMUAN V Logika Algoritma Algoritma : Metoda pemecahan suatu masalah langkah demi langkah. Karakteristik Algoritma :  Presisi ; langkah-langkahnya.
Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data.
Searching Struktur Data.
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Bab 2 PERINTAH-PERINTAH DASAR (BAG. 1) Program Pendidikan Sarjana Ekstensi DTE FTUI Slide ©2008.
LARIK (ARRAY).
Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007.
Algoritma dan Struktur Data
Chapter 12 Antrian (Queue) Program Studi Ekstensi DTE FTUI Slides©2007.
Searching.
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
Pencarian Data Nurdiansah PTIK 09 UNM.
Metode Perancangan Program
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
INF-301 FEB 2006 Univ. INDONUSA Esa Unggul PERTEMUAN V Tujuan Instruksional Umum : Permutasi & Kombinasi Tujuan Instruksional Khusus : Mahasiswa dapat.
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Pertemuan 11 STRUKTUR SEARCHING.
Stack.
Chapter 7 Linked List December 2015.
Algoritma Pencarian (searching)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Algoritma Bruteforce Team Fasilkom.
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
CS1023 Pemrograman Komputer
Dasar Algoritma dan Pemrograman
CSG3F3/ Desain dan Analisis Algoritma
Oleh : Agus Priyanto, M.Kom Norma Amalia, M.Eng
Algoritma dan Pemrograman Searching
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
MATERI PERKULIAHAN ANALISIS ALGORITMA
Chapter 9 Linked List (Senarai Bertaut)
Antrian (Queue).
Searching.
Algoritma dan Pemrograman Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
PENGURUTAN (SORTING).
Algoritma Bruteforce (disarikan dari diktat Strategi Algoritma, Rinaldi Munir) Team Fasilkom.
MATERI PERKULIAHAN ANALISIS ALGORITMA
PENCARIAN INTERPOLASI
Array 1.
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
Algoritma & Pemrograman 1
Pseudo-code.
Pertemuan 24 Teknik Searching
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Menghapus Simpul dan Travelsal
Algorithms and Programming Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Algoritma dan Pemrograman Searching
Algoritma Brute Force.
Algoritma Rekursif Alpro-2.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Pencarian (searching)
CCM110, MATEMATIKA DISKRIT Pertemuan ke 10, Logika Algoritma
Kuliah ke-4 Program Studi Ekstensi DTE FTUI Slides©2008
Transcript presentasi:

Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007

Definisi (dari Wikipedia)  Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi.ilmu komputermasukan  Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian.  Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian.ruang pencarian

#1 Sequential Search – Diketahui: larik l berisi data sebanyak n, apakah ada data x didalam larik l ; jika ada, catat indeks dimana x ditemukan

Pengembangan algoritma #1 Func CariBerturutan (x, l, n) i := 1 while i l[i] do i := i + 1 ewhile if i > n then return (0) else return (i) eif efunc

Pengembangan algoritma #1 Func CariBerturutan (x, l, n) i := 1 ketemu := false while not ketemu and i <= n do if x = l[i] then ketemu := true else i := i + 1 eif ewhile if ketemu then return (i) else return (0) eif efunc

#2 Searching with sentinel  Algoritma sebelumnya, jumlah pemeriksaan dilakukan sebanyak 2n (why?)  Bagaimana agar pemeriksaan hanya dilakukan sebanyak n saja?

Analisa algoritma  Sebelumnya setiap pemeriksaan apakah x=l[i], selalu didahului oleh pemeriksaan apakah i<=n  Pemeriksaan i<=n dapat dihilangkan, asal dijamin bahwa pasti ditemukan data x didalam larik l.  Untuk itu pada elemen larik ke n+1 dimasukkan x sebagai sentinel (sehingga i tidak melewati batas akhir larik)

Analisa algoritma  Jika data x ditemukan pada indeks n+1, berarti bahwa x tidak ada didalam larik l, dan jika x ditemukan pada indeks selain n+1, berarti x ditemukan

Pengembangan Algoritma Func CariSentinel (x, l, n) l[n+1] := x {pasang sentinel} i := 1 while x <> l[i] do i := i + 1 ewhile if i = n + 1 then return (0) {x tidak ditemukan} else return (i) eif efunc

#3. Dichotomy Search  Diterapkan pada data yang sudah terurut  Ide: – Periksa apakah x berada ditengah larik l. – Jika ada maka berhenti. – Jika x lebih kecil dari elemen tengah larik, maka pencarian bagi-dua dilakukan pada sebelah kiri elemen tengah. – Dianggap bahwa data terkecil ada disebelah kiri dan data terbesar ada di sebelah kanan.

#3. Dichotomy Search  Jika x lebih besar dari elemen tengah larik, maka pencarian bagi-dua dilakukan pada sebelah kanan elemen tengah.  Pencarian dilakukan terus sampai ditemukan x atau bagian larik yang akan dicari sudah habis.

Analisa  Perhatikan ilustrasi berikut ini  Mis. larik l terdiri dari 10 elemen dan data yang tersimpan telah terurut  Titik tengah larik dihitung berdasarkan : tengah := (kiri+kanan) div 2

Ilustrasi 25 x kiritengahkanan kirikanan

Ilustrasi kiritengahkanan kirikanan

Pengembangan Algoritma Func CariBagiDua (x, l, n) kiri := 1 {batas kiri pencarian} kanan := n {batas kanan pencarian} ketemu := false while not ketemu and kiri <= kanan do tengah := (kiri+kanan) div 2 if x = l[tengah] then ketemu := true else if x < l[tengah] then kanan := tengah-1 else kiri := tengah + 1 eif ewhile If ketemu then return (tengah) else return (0) eif efunc

Simulasi dan Program (Compiler: Pascal)

BINARY SEARCH BINARY SEARCH SEQUENTIAL SEARCH SEQUENTIAL SEARCH SENTINEL SEARCH SENTINEL SEARCH SEARCHING METHOD

SELESAI SEARCHING

Sequential Search Procedure Seqsearch( A[], X, N, IX) Var I : int; Begin I:=1 I:=1 While (I X) do While (I X) do I := I + 1; If (L[I] <> X) then IX := 0 If (L[I] <> X) then IX := 0 else IX := I; else IX := I;End; Simulation

Sentinel Search Procedure Sentsearch( L[], X, N, IX) Var I : int; Begin L[N+1] := X; L[N+1] := X; I:=1 I:=1 While (L[I] <> X) do While (L[I] <> X) do I := I + 1; If (I < N+1) then IX := I If (I < N+1) then IX := I else IX := 0; else IX := 0;End; Simulation

Binary Search Simulation Procedure Binsearch( L[], X, N, IX) Begin Ia:=1; Ib:=N; ketemu := False; Ia:=1; Ib:=N; ketemu := False; While (Not ketemu) and (Ia <= Ib) do While (Not ketemu) and (Ia <= Ib) do Begin Begin k := (Ia + Ib) div 2; k := (Ia + Ib) div 2; if (L[k] = X) then if (L[k] = X) then ketemu := true ketemu := true else else if (L[k] > X) then Ia := k + 1 if (L[k] > X) then Ia := k + 1 else Ib := k – 1; else Ib := k – 1; end; end; If (ketemu) then IX := k Else IX := 0; End;