Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data.

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
STRUKTUR DASAR ALGORITMA
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
STRUKTUR DATA.
PENGURUTAN (SORTING).
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
STRUKTUR DATA PERTEMUAN 5
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.
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
LOGIKA ALGORITMA Pertemuan 6.
Bab 2 PERINTAH-PERINTAH DASAR (BAG. 1) Program Pendidikan Sarjana Ekstensi DTE FTUI Slide ©2008.
LARIK (ARRAY).
Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../7_struktu... 1 Struktur Perulangan.
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Sistem Persamaan Linear
Chapter 12 Antrian (Queue) Program Studi Ekstensi DTE FTUI Slides©2007.
STRUKTUR PEMILIHAN (KONTROL PROGRAM) Minggu III - 40 menit
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.
PERCABANGAN/PEMILIHAN
Operasi Perulangan pada FORTRAN Pertemuan 6
Rahmady Liyantanto liyantanto.wordpress.com
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 ( )
Algoritma dan Pemrograman Subrutin
Stack.
Chapter 7 Linked List December 2015.
Algoritma Pemrograman 2A
Array (bagian 2).
Algoritma Pencarian (searching)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
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
Chapter 9 Linked List (Senarai Bertaut)
STRUKTUR DASAR ALGORITMA
Antrian (Queue).
Algoritma dan Pemrograman Searching
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
PENCARIAN INTERPOLASI
Array 1.
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
Algoritma & Pemrograman 1
Pseudo-code.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Menghapus Simpul dan Travelsal
MATERI PERKULIAHAN ANALISIS ALGORITMA
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Quiz : Pengujian P/L 1 : Jelaskan pengertian dari pengujian kotak hitam, sebutkan dan jelaskan 4 jenisnya 2 : Buat kasus2 uji u/ pengujian jalur dasar.
SEARCHING (PENCARIAN)
Algoritma dan Pemrograman Searching
Algoritma Rekursif Alpro-2.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
Pencarian (searching)
CCM110, MATEMATIKA DISKRIT Pertemuan ke 10, Logika Algoritma
Aljabar Boolean Kusnawi, S.Kom Logika Informatika 2008.
Rahmady Liyantanto liyantanto.wordpress.com
Transcript presentasi:

Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data

 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

 Diketahui: ▪ larik l berisi data sebanyak n, apakah ada data x didalam larik l ; ▪ jika ada, catat indeks dimana x ditemukan

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

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

 Algoritma sebelumnya, jumlah pemeriksaan dilakukan sebanyak 2n (why?)  Bagaimana agar pemeriksaan hanya dilakukan sebanyak n saja?

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

 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

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

 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.

 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.

 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

2525 x kiritengahkanan kirikanan

kiritengahkanan kirikanan

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

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

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;

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;

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;