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

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

Algoritma dan Pemrograman. Pertemuan Ke-7 Statement Pengendalian 2

Algoritma dan Pemrograman. Pertemuan Ke-8 Statement Pengulangan 1

Algoritma dan Pemrograman. Pertemuan Ke-12 Tipe data array/larik 1

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

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

Algoritma dan Pemrograman. Pertemuan Ke-9 Statement Pengulangan 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-3 Record/Struct dan Array Of Record

Algoritma dan Pemrograman. Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

Algoritma dan Pemrograman. Pertemuan Ke-2 Dasar-dasar Algoritma

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-2 Array (Larik)

Algoritma dan Pemrograman

Algoritma dan Pemrograman. Pertemuan Ke-5 Input dan Output

RENCANA PEMBELAJARAN SEMESTER (RPS)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-13 Arsip (File) 2

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

RENCANA PEMBELAJARAN SEMESTER (RPS)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-14 Arsip (File) 3

REVIEW ARRAY. Institut Teknologi Sumatera

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

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

Pencarian (Searching)

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

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Modul 15 Searching. 1.1 Kompetensi

Algoritma dan Pemrograman Searching/Pencarian

A. TUJUAN PEMBELAJARAN

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

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

BAB VIII Pencarian(Searching)

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

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

Searching. Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

BAB VII ALGORITMA DIVIDE AND CONQUER

PERTEMUAN 7 REVIEW (QUIZ)

STRUKUR KENDALI : PERCABANGAN

SENARAI BERANTAI (LINK LIST)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

STRATEGI DIVIDE AND CONQUER

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

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

Tipe Data dan Operator

Chapter 3.2 : Tipe, Nama dan Nilai

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

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

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

ALGORITMA PENGURUTAN & PENCARIAN

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF

Fungsi, Parameter, Rekursi

CCH1A4 / Dasar Algoritma & Pemrogramanan

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah: Perkalian Pembagian Sisa Pembagian (mod) Penjumlahan 6 2

Sequential Search (Linear Search)

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Algoritma Pemrograman & Struktur Data

PERTEMUAN 11 TEHNIK SEARCHING

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

MODUL IV PENCARIAN DAN PENGURUTAN

SATUAN ACARA PERKULIAHAN (SAP)

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

PENGENALAN BAHASA C DAN C++

PENCARIAN (SEARCHING)

BAB VI. STATEMENT CONTROL

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

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Gambar 13.1 Ilustrasi proses algoritma sorting

MATERI IV ARRAY. Materi Praktikum Pemograman Bahasa C++ dengan menggunakan variabel Array

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

Kontrak Perkuliahan & Introduction

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

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

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

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

TIPE, NAMA, DAN NILAI

Algoritme dan Pemrograman

Perulangan, Percabangan, dan Studi Kasus

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

BAB VI SEARCHING (PENCARIAN)

Algoritme dan Pemrograman

Object Oriented Programming (OOP)

Struktur Bahasa C dan C++

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

Pertemuan 5 PEMILIHAN/PERCABANGAN

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

Algoritma Pemrograman. Fery Updi,M.Kom

Menggunakan 3 variabel A B C. Ada 6 kemungkinan variasi ketiga buah nilai

Transkripsi:

Algoritma dan Pemrograman Lanjut Pertemuan Ke-7 Pencarian (Searching) 2 Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran Yogyakarta

Algoritma dan Pemrograman Lanjut Judul Materi : Pencarian (Searching) 2 Deskripsi Materi : Materi ini membahas metode searching binary search menggunakan tipe data array untuk data urut Tujuan Instruksional Khusus : 1. Memahami dan membandingkan metode searching menggunakan tipe data array 2. Mendeskripsikan berbagai metode searching 3. Mengilustrasikan berbagai metode searching menggunakan tipe data array Referensi : Buku Teks Munir, Rinaldi (2005), Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Buku 2, Edisi Ketiga, Penerbit Informatika Bandung, Bab 2, hal 35-76. Charibaldi, N. (2004), Modul Kuliah Algoritma Pemrograman II, Edisi Kedua, Yogyakarta Buku Acuan/Referensi Brassard, Gilles (1999), Fundamentals of algorithma, PrinteceHall. Jarne, Stroustrup B. (1997), C++ Programming language, AT &T. Kristanto, Andri (2003), Algoritma pemrograman C++, Graha Ilmu. Schildt,Herbert (2000), The Complete Reference C++, McGraw-Hill. Sedgewick, R. (2000), Algoritma Third edition In C part 5, Addison Wesley.

PENCARIAN (SEARCHING) 2 PENDAHULUAN Pencarian dengan menggunakan tipe data Array dapat digunakan metode Sequential Search dan Binary search. Perbedaan dari kedua teknik ini terletak pada keadaan data. ISI Pencarian Biner (Binary Search) Salah satu syarat pencarian biner (Binary Search) dapat dilakukan adalah data sudah dalam keadaan terurut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita sering menggunakan pencarian biner, misalnya pada saat ingin mencari suatu kata dalam kamus. Langkah dari pencarian biner adalah sebagai berikut: 1. mula-mula diambil posisi awal=1 dan posisi akhir=n 2. kemudian kita cari posisi data tengah dengan rumus posisi tengah = (posisi awal + posisi akhir) div 2 3. kemudian data yang dicari dibandingkan dengan data tengah a. jika sama, data ditemukan, proses selesai. b. jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah - 1. c. jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. 4. ulangi langkah 2 sampai data ditemukan, atau tidak ditemukan. 5. Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar dari pada posisi akhir. Jika posisi awal sudah lebih besar daripada posisi akhir berarti data tidak ditemukan.

Contoh : Misalkan kita ingin mencari angka 14 pada sekumpulan data urut berikut : 1 2 3 4 5 6 7 8 9 3 7 10 12 13 14 20 24 29 awal tengah akhir Jawab: 1. mula-mula dicari data tengah, dengan rumus tengah = (awal+akhir) div 2 = (1+9) div 2 = 5, berarti data tengah adalah data ke-5, dengan nilai 13 2. data yang kita cari adalah 14, bandingkan nilai 14 dengan data tengah. 3. karena 14 > 13, berarti proses dilanjutkan tetapi posisi awal dianggap sama dengan posisi tengah+1 atau 6 1 2 3 4 5 6 7 8 9 3 7 10 12 13 14 20 24 29 awal tengah akhir 4. data tengah yang baru didapat dari rumus (6+9) div 2 = 7, berarti data tengah yang baru adalah data ke-7, yaitu 20. 5. data yang kita cari adalah 14, bandingkan nilai 14 dengan nilai tengah. 6. karena 14 < 20, berarti proses dilanjutkan, tetapi posisi akhir dianggap sama dengan posisi tengah-1 atau 6. 1 2 3 4 5 6 7 8 9 3 7 10 12 13 14 20 24 29 awal akhir tengah 7. data tengah yang baru didapat dari rumus (6+6) div 2 = 6, berarti data tengah yang baru adalah data ke-6, yaitu 14 8. data yang kita cari adalah 14, bandingkan dengan data tengah, ternyata sama. 9. jadi data yang ditemukan pada indeks ke-6

Bagaimana jika data yang dicari tidak ditemukan, misalnya data yang dicari 16? Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar dari pada posisi akhir. Jika posisi awal sudah lebih besar daripada posisi akhir berarti data tidak ditemukan. Secara umum algoritma pencarian biner, adalah sebagai berikut : (Data diurutkan lebih dahulu, data disimpan di data array, x adalah nilai yang dicari) 1. awal 1 2. akhir N 3. ketemu false 4. selama (awal<=akhir) dan (not ketemu) kerjakan baris 5 sampai 8. 5. tengah (awal+akhir) div 2 6. jika (data [tengah] = x) maka ketemu true 7. jika (x < data [tengah] ) maka akhir tengah-l 8. jika (x > data [tengah] maka awal tengah+1. 9. if (ketemu) maka tengah adalah indeks dari data yang dicari, jika tidak data tidak ditemukan. Contoh 1 pemakaian pencarian binary : /* BinSearch_SudahUrut diasumsikan Array X sudah ada dan berisi data yang sudah terurut, nilai yang dicari adalah y dan hanya ada satu */ #include <iostream.h> typedef enum boolean false=0,true=1; main() int X[10]=10,20,30,40,50,60,70,80,90,100; int i,y,j,k; boolean found; cout << "nilai yang dicari = "; cin >> y; found = false; i=0; j=10; while ((!found) & (i <= j)) k=(i+j)/2; if (y == X[k]) found=true;

else if (y<x[k]) j=k-1; //i tetap else i=k+1; //j tetap if (found) cout<< y<<"ditemukan dalam Array pada index ke-" << k; else cout << "tidak ada " << y << " dalam Array"; Contoh 2 pemakaian pencarian binary : #include <stdio.h> #include <stdlib.h> #include <conio.h> int binary_search (int array[], int value, int size) int found= 0; int high= size, low= 0, mid; Mid= (high+low)/2; printf( \n\nlooking for %d\n, value); while ((! Found) && (high >= low)) printf( Low %d Mid %d High %d\n, low, mid, high); if (value == array[mid]) Found= 1; else if (value < array[mid]) High= mid 1; else Low= mid + 1; Mid= (high + low) / 2; return (( found)? mid: -1); main() int array[100], I; clrscr(); for (i=0; i<100; i++) array[i]= i; printf( Result of search %d\n,binary_search(array, 33, 100)); printf( Result of search %d\n,binary_search(array, 75, 100)); printf( Result of search %d\n,binary_search(array, 1001, 100)); getche();

Program ini dimaksudkan untuk mengamati jumlah operasi searching yang harus dilakukan untuk menemukan masing-masing nilai. PENUTUP diurutkan. Metode Binary Search dapat dipakai hanya untuk data yang urut atau telah SOAL-SOAL 1. Ilustrasikan pencarian nilai 25 pada kumpulan data dibawah. Gunakanlah metode Binary Search. 12 15 4 25 45 10 19 9 32 33 2. Ilustrasikan pencarian nilai 20 pada kumpulan data dibawah. Gunakanlah metode Binary Search. 12 15 4 25 45 10 19 9 32 33 3. Tulislah program untuk mengurutkan data bertipe rekaman menggunakan salah satu metode pengurutan. Tipe rekaman yang harus diurutkan mempunyai empat data, yaitu: nomorinduk, bertipe bilangan bulat nama, bertipe string alamat, bertipe string golongan, bertipe char (dapat bernilai A, Z ); procedure pengurutan menerima satu parameter, yaitu bilangan bulat yang dapat bernilai 1, 2, atau 3. Apabila bernilai 1, maka data diurutkan menurut nomorinduk, apabila bernilai 2, maka data diurutkan menurut nama, dan apabila bernilai 3, maka data diurutkan menurut golongan.