Searching [pencarian] Algoritma Pemrograman

dokumen-dokumen yang mirip
BAB VI SEARCHING (PENCARIAN)

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

Algoritma dan Pemrograman 2 PENCARIAN

Algoritma dan Pemrograman Searching/Pencarian

MODUL IV PENCARIAN DAN PENGURUTAN

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

1 Pencarian. 1.1 Tinjauan Singkat Larik

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Pengurutan (Sorting) Algoritma Pemrograman

ALGORITMA PENCARIAN. c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian.

ALGORITMA PENGURUTAN & PENCARIAN

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Algoritma dan Pemrograman 2 PENGURUTAN

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Kompleksitas Algoritma

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Kompleksitas Algoritma (1)

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Algoritma Brute Force

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

Array. Teknik Informatika Politeknik Negeri Batam

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

*** SELAMAT MENGERJAKAN

BAB VII ALGORITMA DIVIDE AND CONQUER

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

ALGORITMA SEARCHING. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

SORTING. Brigida Arie Minartiningtyas, M.Kom

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

ALGORITMA & PEMROGRAMAN

Kompleksitas Algoritma

STRATEGI DIVIDE AND CONQUER

BAB 3 SEARCHING A. TUJUAN

Larik/Array ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

BAB V SORTING (PENGURUTAN) INTERNAL

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Modul Praktikum Algoritma dan Struktur Data

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Meizano Ardhi M., S.T.

Algoritma Pemrograman

Algoritma Pemrograman

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

CCH1A4 / Dasar Algoritma & Pemrogramanan

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Algoritme dan Pemrograman

Selamat Mengerjakan. 2. Keluaran dari baris 10 adalah? a. 1 b. 4 c. 2.5 d. 2 e Keluaran dari baris 11 adalah? a. 1 b. 4 c. 2.5 d. 2 e.

Pert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks. By. Rita Wiryasaputra, ST., M. Cs.

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ANALISIS ALGORITMA BINARY SEARCH

PERSEGI ANGKA-HURUF VERTIKAL

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

BAB 2 LANDASAN TEORI

Array (Tabel) bagian 2

Algoritma Divide and Conquer (Bagian 1)

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Algoritma Pemrograman

Algoritma Pemrograman

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

BAB XI Manipulasi Binary Tree

BAB III QUEUE (ANTRIAN)

PERTEMUAN 8 MATRIX. Introduction Definition How is matrix stored in memory Declaration Processing

Algoritma Pemrograman

Kompleksitas Algoritma

Linked List. Bandung 2013

Decrease and Conquer

Algoritma Pemrograman

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

Teori Algoritma TIPE DATA

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

Algoritma Pemrograman

Algoritma Brute Force

Algoritma Pemrograman

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Transkripsi:

Searching [pencarian] Algoritma Pemrograman mas.anto72@gmail.com 1 Jenis Pencarian Pencarian Internal proses pencarian dilakukan pada memori utama (RAM). Pencarian Eksternal proses pencarian dilakukan pada memori sekunder (tape, disk). 2 1

Algoritma Pencarian 1. Algoritma Pencarian Beruntun (sekuensial) 2. Algoritma Pencarian Beruntun dengan Sentinel 3. Algoritma Pencarian Bagidua (Binary Search) 3 Algoritma PencarianSekuensial Proses membandingkan setiap elemen array satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen array diperiksa. Terdapat 2 metode pencarian sekuensial Pada data tidak terurut Pada data terurut 4 2

Pencarian Sekuensial Data Tidak Terurut Contoh : 13 16 14 21 76 21 1 2 3 4 5 6 Misalkan nilai yang dicari : X=21 Maka, elemen yang diperiksa : 13, 16, 14, 21 (ditemukan) Indeks array yang dikembalikan : IX=4 Misalkan nilai yang dicari : X=13 Maka, elemen yang diperiksa : 13 (ditemukan) Indeks array yang dikembalikan : IX=1 Misalkan nilai yang dicari : X=15 Maka, elemen yang diperiksa : 13, 16, 14, 21, 76, 21 (tidak ditemukan) Indeks array yang dikembalikan : IX=0 5 Algoritma Pencarian Sekuensial Data Tidak Terurut(1) Deklarasi Global Const Nmaks = 100 Type larik100 = Array[1..nMaks] of Integer Procedure CariRuntun1(input L : larik100, input N:integer, input X : integer, input/output IX:integer) Deklarasi Lokal I : integer Algoritma I =1 While (I<N) and (L[I[ <> X) do I = I + 1 End While If (L[I] <> X) Then IX =0 Else IX=I Endif Algoritma ini mempunyai kelemahan, walaupun sudah ditemukan tapi proses pencarian tetap dilakukan. 6 3

Algoritma Pencarian Sekuensial Data Terurut Procedure CariRuntunUrut(input L : larik100, input N:integer, input X : integer, input/output IX:integer) Deklarasi Lokal I : integer Algoritma I =1 While (I<N) and (L[I]<X) do I = I + 1 End While If (L[I]=X) Then IX =I Else IX=0 Endif 7 Pencarian Sekuensial Sentinel Menambahkan elemen fiktif setelah elemen terakhir dan elemen tersebut adalah nilai yang dicari. Jika yang dicari pada elemen fiktif, bisa dipastikan yang dicari tidak ditemukan. 8 4

Algoritma Pencarian Sekuensial Sentinel (1) Contoh 1: 13 16 14 21 76 21 1 2 3 4 5 6 Misalkan elemen yang dicari adalah X=21, maka tambahkan 21 sebagai elemen sentinel di L[N+1] Elemen yang diperiksa selama pencarian 13, 16, 14, 21, indeks larik yang dikembalikan : 4, karena 4 <> N+1, berarti X=21 terdapat didalam larik L 13 16 14 21 76 21 21 1 2 3 4 5 6 7 Contoh 2: Misalkan elemen yang dicari adalah X=15, maka tambahkan 15 sebagai elemen sentinel di L[N+1] Elemen yang diperiksa selama pencarian 13, 16, 14, 21, 76, 21,15 indeks larik yang dikembalikan : 7, karena 7 = N+1, berarti X=15 tidak terdapat didalam larik L 13 16 14 21 76 21 15 1 2 3 4 5 6 7 9 Algoritma Pencarian Sekuensial Sentinel (2) Procedure CariSentinel(input L : larik100, input N:integer, input X : integer, input/output IX:integer) Deklarasi Lokal I : integer Algoritma L[N+1]=X I =1 While (L[I]<>X) do I = I + 1 End While If (I<N+1) Then IX =I Else IX=0 Endif 10 5

Pencarian Bagidua (Binary Search) Syarat utama adalah datanya sudah urut baik menaik atau menurun. Langkah-langkah : Langkah 1 : Bagi dua elemen array pada elemen tengah. Elemen tengah adalah elemen dengan indeks k=(ia+ib) div 2. Elemen ini membagi 2 array, bagian kiri L[Ia..k-1] dan bagian kanan L[k+1..Ib] Langkah 2 : Periksa apakah L[k]=X. Jika L[k]=X, pencarian dihentikan sebab X sudah ditemukan. Tetapi, jika L[k]<>X, harus ditentukan apakah pencarian akan dilakukan di array bagian kiri atau dibagian kanan. Jika L[k[<X, maka pencarian dilakukan pada bagian kiri. Sebaliknya, jika L[K]>X, pencarian dilakukan pada array bagian kanan. Langkah 3 : Ulangi langkah 1 sampai X ditemukan atau Ia>Ib. 11 Ilustrasi Binary Search (1) 81 76 21 18 16 13 10 7 Ia=1 2 3 4 5 6 7 8=Ib Misalkan elemen yang dicari adalah X=16 Langkah 1 : Ia=1 dan Ib=8 Indeks elemen tengah k=(1+8) div 2 = 4 81 76 21 18 16 13 10 7 Ia=1 2 3 4 5 6 7 8=Ib kiri kanan Langkah 2 : L[4]=16? tidak Harus diputuskan apakah pencarian akan dilakukan di bagian kiri atau kanan dengan pemeriksaan sebagai berikut : L[4]> 16? Ya, lakukan pencarian array bagian kanan dengan Ia=k+1=5 dan IB=8 (tetap) 12 6

Ilustrasi Binary Search (2) 16 13 10 7 Ia=5 6 7 8=Ib Langkah 1 : 16 13 10 7 Ia=5 dan Ib=8 Ia=5 6 7 8=Ib Indeks elemen tengah k=(5+8) div 2 = 6 kiri kanan Langkah 2 : L[6]=16? tidak Harus diputuskan apakah pencarian akan dilakukan di bagian kiri atau kanan dengan pemeriksaan sebagai berikut : L[6]> 16? Tidak, lakukan pencarian array bagian kiri dengan Ia=5 dan IB=k-1=5 16 I5 Langkah 1 : Ia=5 dan Ib=5 Indeks elemen tengah k=(5+5) div 2 = 5 Langkah 2 : L[5]=16? Ya, X ditemukan, pencarian dihentika 16 I5 13 Algoritma Binary Search (1) Procedure CariBinarySearch(input L : larik100, input N:integer, input X : integer, input/output IX:integer) Deklarasi Lokal Ia, Ib : Integer K: Integer ketemu= : boolean Algoritma Ia=1 Ib=N Ketemu=false While (not ketemu) and (Ia<=Ib) do k=(ia+ib) div 2 If (L[k]=X) then ketemu=true else 14 7

Algoritma Binary Search (2) if (L[k] < X) then Ia=k+1 else Ib=K-1 endif endif Endwhile If (ketemu) then IX=k Else IX=0 endif 15 Latihan 81 76 21 18 16 13 10 7 Ia=1 2 3 4 5 6 7 8=Ib Tuliskan langkah pencarian dari array diatas untuk bilangan 81 dan 10 16 8