PENCARIAN (SEARCHING)

dokumen-dokumen yang mirip
BAB 3 SEARCHING A. TUJUAN

Modul Praktikum Algoritma dan Struktur Data

Sequential Search (Linear Search)

Algoritme dan Pemrograman

PENGURUTAN (SORTING) 1. Overview

PERTEMUAN 11 TEHNIK SEARCHING

BAB VIII Pencarian(Searching)

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Algoritme dan Pemrograman

12/26/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Sorting. Data untuk sorting. Contoh. Algoritme #1: BUBBLE SORT.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

Kontrak Perkuliahan & Introduction

ALGORITMA PENGURUTAN & PENCARIAN

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Algoritma dan Struktur Data. Linear & Binary Search Tree

A. TUJUAN PEMBELAJARAN

POHON CARI BINER (Binary Search Tree)

Gambar 13.1 Ilustrasi proses algoritma sorting

SEARCHING & SORTING. Pendahuluan

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

Algoritma dan Struktur Data. Searching dan Sorting

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Decrease and Conquer

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

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

Konsep Dasar Struktur Data. Struktur Data

Algoritma dan Pemrograman Searching/Pencarian

Algoritme dan Pemrograman

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Pencarian (Searching)

Tes Asisten Praktikum Alpro Lanjut

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

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

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

ALGORITMA PEMROGRAMAN 1A** (PP :S1-KA) Pertemuan 7. Ahmad Hidayat

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB VII PENCARIAN DATA (SEARCHING)

Modul 15 Searching. 1.1 Kompetensi

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

Syarat dan Ketentuan yang berlaku:

Algoritma Sorting (Selection Insertion)

Operasi File. Chapter 13

Politeknik Elektronika Negeri Surabaya

PERTEMUAN 15 REVEW/QUIZ

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS ALGORITMA PEMROGRAMAN

Catatan Kuliah STRUKTUR DATA BAB III REKURSIF

ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI MACAM METODE PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL

SORTING (PENGURUTAN DATA)

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

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

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktivitas Pembelajaran

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

CCH1A4 / Dasar Algoritma & Pemrogramanan

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Laporan Praktikum 14 (5) ( ) Metode Komputasi Matematika. Penyelesaian Soal UAS Metode Komputasi Syarif Abdullah (G )

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

BAB VI Pengurutan (Sorting)

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

ANALISIS ALGORITMA BINARY SEARCH

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Modul Praktikum 6 Pemograman Berorientasi Objek

Searching [pencarian] Algoritma Pemrograman

Prpsedur progaram selectioa sort (Dengan program C++)

STRUKTUR DATA SORTING ARRAY

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

SATUAN ACARA PERKULIAHAN(SAP)

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

Algoritma Pemrograman & Struktur Data

METODE DEVIDE AND CONQUER

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

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

STRUKTUR DATA (3) sorting array. M.Cs

REVIEW ARRAY. Institut Teknologi Sumatera

# TEN Sorting PENDAHULUAN

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

BAB VI SEARCHING (PENCARIAN)

RENCANA PEMBELAJARAN SEMESTER (RPS)

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

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

SORTING (Pengurutan)

Kompleksitas Algoritma

MODUL IV PENCARIAN DAN PENGURUTAN

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

Algoritma dan Struktur Data

Algoritma Bubble Sort dan Quick Sort

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

Penger6an struct. Algoritme dan Pemrograman. Cara membuat struct. Deklarasi struct. Pointer pada struct 12/10/14 ILKOM IPB 1

Transkripsi:

PENCARIAN (SEARCHING) Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Teknik Pencarian: Overview Sequential (Linear) Search. Binary Search. Interpolation Search. 2 1

Sequential Search Merupakan teknik yang sederhana dan langsung, dapat digunakan pada struktur data baik array maupun linked-list, dan data tidak perlu urut 3 Ilustrasi Sequential Search skrng skrng skrng -7 9-5 2 8 3-4 0 1 2 3 4 5 6 Target adalah -5 Langkah dimulai dari awal (0) sampai menemukan Bilangan (data) bisa tidak terurut 4 2

Algoritma N: Banyaknya record dalam list array k 1. Untuk setiap k[i] : 0 i N-1 Uji apakah k[i] = Kunci 2. Bila k[i] = Kunci, Indeks = i Selesai 3. Bila k[i] <> Kunci, Lanjutkan pencarian hingga i = N-1 4. Bila i = N-1 dan k[i] <> Kunci, Indeks = -1 berarti data yg dicari tdk ada 5. Selesai 5 Fungsi Sequential Search Untuk mencari data Key pada array X dengan jumlah elemen N, Return Index Array jika data ada, dan return 1 jika data Key tidak Ada int SeqSearch( int *X, int N, int ) { int i; for(i=0; i < N ; i++) if(==x[i]) return(i); return(-1); 6 3

Latihan 1. Buat main program untuk memanggil fungsi SeqSearch diatas bila list-nya sbb: 34 36 23 12 16 18 24 10 dan key = 16. Tampilkan pada posisi mana key ditemukan. 7 Binary Search Teknik ini hanya dapat dilakukan pada list yang telah terurut dan berada pada struktur array. 8 4

Ilustrasi Binary Search Bag. Kiri Memerlukan tengah List terurut. Bisa melakukan akses random. 9 tengah Bag. kanan Penggunaan lain binary search Untuk menemukan dimana sebuah fungsi adalah nol. Fungsi-fungsi komputasi. Struktur data Tree. Debugging code 10 5

Contoh Binary Search -1 2 3 5 8 10 15 0 1 2 3 4 5 6 kiri tengah kanan 11 Binary Search -1 2 3 5 8 10 15 0 1 2 3 4 5 6 kiri tengah kanan 12 6

Binary Search -1 2 3 5 8 10 15 0 1 2 3 4 5 6 kanan kiri tengah 13 Kasus 1: list: < list[tengah] kiri kanan tengah kanan baru Kasus 2: list: list[tengah] < kiri tengah kiri kanan baru 14 7

Algoritma N: Banyaknya record dalam list array k 1. Kiri = 0 dan Kanan = N-1 2. Tengah = (int)(kiri + Kanan) / 2 3. Bila k[tengah] = Kunci, Maka Indeks = Tengah, Selesai 4. Bila k[tengah] < Kunci, Kanan = Tengah - 1 5. Bila k[tengah] > Kunci, Kiri = Tengah + 1 6. Bila Kiri Kanan, dan k[tengah] <> Kunci, Ulangi mulai dari 2. 7. Bila k[tengah] <> Kunci, Indeks = -1 8. Selesai 15 Fungsi Binary Search Untuk mencari data Key pada array X (yang terurut) dgn jumlah elemen N, Return Index dari Array jika data ada, dan return 1 jika data Key tidak ada //Cara iteratif int BinarySearch(int *X, int N, int ) { int mid; int low = 0; int high = N - 1; while (low <= high){ mid = (low + high) / 2; if( == X[mid]) return(mid); if( < X[mid] ) high = mid - 1; else low = mid + 1; return(-1); 16 8

// cara rekursif int BinSearch(int X[], int low, int high, int ) { int mid; if (low > high) return(-1); else { mid = (low + high)/2; if ( == X[mid]) return(mid); else if ( < X[mid]) return BinSearch(X,low,mid-1,); else return BinSearch(X,mid+1,high,); 17 Contoh Pencarian Biner pada daftar mahasiswa dengan kunci = NIM, dan = 268 (Tiur). Indeks 0 1 2 3 Nama Ahmad Zamzami Ursula Hamdan NIM 34 65 112 116 4 Budiman 124 5 Rahayu 176 6 7 Usman Fifi 178 187 8 Alex 190 9 Lukman 208 10 Widodo 214 11 12 13 Tiur Halim Rumokoy 268 333 42418 9

Latihan 1. Buat main program untuk memanggil fungsi BinSearch versi iteratif diatas bila list-nya sbb: 34 36 23 12 16 18 24 10 dan key = 18. (catatan: terlebih dahulu buat list menjadi terurut dengan selection sort). 2. Buat main program untuk memanggil fungsi BinSearch versi rekursif diatas bila list-nya sbb: 34 36 23 12 16 18 24 10 dan key = 12. (catatan: terlebih dahulu buat list menjadi terurut dengan insertion sort). 3. Buat main program untuk mengimplementasikan ilustrasi pencarian biner pada daftar mahasiswa diatas. 19 Interpolation Search Teknik ini menemukan item dengan memperkirakan seberapa jauh kemungkinan item berada dari posisi saat itu dan pencarian berikutnya. Teknik ini juga dilakukan pada list yang sudah terurut. 20 10

Ilustrasi Interpolation Search 69 k: 220 239 350 743 900 980 0 1 2 97 98 99 k[min] Target adalah 743 k[max] Perkiraan posisi : (743 220)/(980 220) = 0,69 Posisi taksiran: 0.69 x 100 = 69 21 Ilustrasi Interpolation Search 69 k: 220 239 350 743 900 980 0 1 2 97 98 99 k[min] k[max] Apakah k[69] = 743? Bila Kunci > k[69], maka: k [min] = k[69+1] sedangkan k[max] tetap Bila Kunci < k[69], maka: k [min] tetap sedangkan k[max] = k[69-1] 22 11

Rumus Umum P = Kunci - k[min] k[max] - k[min] Posisi = min+round(p*(max-min)) 23 Fungsi Interpolation Search int InterpolationSearch(int *X, int key, int N) { int low = 0; int high = N - 1; int pos; while((x[low]<key) && (X[high]>=key)) { pos=low+((key-x[low])*(high-low))/(x[high]-x[low]); if (X[pos] < key) low = pos + 1; else if (X[pos] > key) high = pos - 1; else return pos; if (X[low] == key) return low; else return -1; // Tidak ditemukan 24 12

Latihan 1. Buat main program untuk memanggil fungsi InterpolationSearch diatas bila list-nya sbb: 34 36 23 12 16 18 24 10 dan key = 16. (catatan: terlebih dahulu buat list menjadi terurut dengan salah satu fungsi sort). 25 SELESAI 26 13