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

dokumen-dokumen yang mirip
Searching [pencarian] Algoritma Pemrograman

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VI SEARCHING (PENCARIAN)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

MODUL IV PENCARIAN DAN PENGURUTAN

Algoritma dan Pemrograman Searching/Pencarian

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

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

1 Pencarian. 1.1 Tinjauan Singkat Larik

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

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

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

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

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

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

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

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

ALGORITMA PENGURUTAN & PENCARIAN

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Pemrograman 2 PENGURUTAN

Algoritma dan Pemrograman 2 PENCARIAN

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

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

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

Bubble Sort (Pengurutan Gelembung / Pemberatan)

Pengurutan (Sorting) Algoritma Pemrograman

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

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

Kompleksitas Algoritma

BAB VII ALGORITMA DIVIDE AND CONQUER

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

Algoritma Brute Force

SORTING. Brigida Arie Minartiningtyas, M.Kom

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

BAB V SORTING (PENGURUTAN) INTERNAL

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

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

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

ALGORITMA & PEMROGRAMAN

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

BAB VIII Pencarian(Searching)

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

STRATEGI DIVIDE AND CONQUER

Array. Teknik Informatika Politeknik Negeri Batam

Kompleksitas Algoritma (1)

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

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

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

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

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

*** SELAMAT MENGERJAKAN

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.

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

Meizano Ardhi M., S.T.

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

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

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

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

Kompleksitas Algoritma

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

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

Pencarian (Searching)

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

A. TUJUAN PEMBELAJARAN

BAB 3 SEARCHING A. TUJUAN

BAB 2 LANDASAN TEORI

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

BAB VI Pengurutan (Sorting)

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

Operasi File. Chapter 13

Modul 15 Searching. 1.1 Kompetensi

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

Algoritma Pemrograman

Modul Praktikum Algoritma dan Struktur Data

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

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

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

Soal hari Selasa (13/10) Latihan 7 AN

Modul 1 Mesin Karakter 1

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Algoritma dan Pemrograman 2 PENGURUTAN

Algoritma Pemrograman

Modul Ke-1 Pertemuan ke-1 Deskripsi: Pemrosesan Sekuensial Larik Nama File: P01-XXX (XXX adalah 3 digit terakhir NPM)

Soal hari Jumat (16/10) Latihan 10 MS

Algoritma Brute Force

Materi 5: SEARCHING (PENCARIAN) Dosen:

PERTEMUAN 11 TEHNIK SEARCHING

BAB II STACK Atau TUMPUKAN

Struktur Data. PDE - Struktur Data 1

Linked List. Bandung 2013

Transkripsi:

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

MATERI Teks/string Pointer File Struktur Kelas/Class Konstruktor dan Destruktor Kelas dan Obyek Overloading Operator Inheritance (Pewarisan) Polimorfisme Template Fungsi dan Kelas Sort Search

SEARCH/PENCARIAN Pertemuan 15 3 SKS

SEQUENTIAL SEARCH / PENCARIAN SEKUENSIAL Pertemuan 15 3 SKS

SEARCH - PENCARIAN Larik Merupakan tipe data terstruktur. Macam-macam tipe Larik adalah Integer Karakter Rekaman Pendefinisian Larik (Nama dan Tipenya) didalam kamus adalah sbb : Kamus D : Array [1..11] of Integer Kar : Array [1..8] of Character Const N : Integer = 5 Type Data = Record <Nama : String, Usia : Integer> Data_Siswa : Array [1..N] of Data

Larik Bertipe Integer 22 61 15 66 18 25 34 87 55 45 10 1 2 3 4 5 6 7 8 9 10 11 Larik Bertipe Character s t i m i k f h u * # 1 2 3 4 5 6 7 8 9 10 11 Larik Bertipe Rekaman 1 Yani 26 2 Luth 24 3 Reny 29 4 Yusuf 32

SEQUENTIAL SEARCH (Pencarian Sekuensial) Disebut juga pencarian linier menggunakan prinsip sebagai berikut : Data yang ada pada suatu array dibandingkan satu persatu dengan data yang dicari Pencarian ini hanya melakukan pengulangan dari 1 s.d. dengan jumlah data. Pada setiap pengulangan, dibandingkandata ke-i dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan, tidak ada yang sama, berarti data tidak ada

SEQUENTIAL SEARCH (Pencarian Sekuensial) Adalah proses membandingkan setiap elemen Larik satu persatu secara beruntun, dari elemen pertama sampai elemen yang dicari ditemukan. Ada 2 (dua) macam pencarian sekuensial : 1. Pencarian sekuensial pada Larik yang tidak berurut 2. Pencarian beruntun pada Larik yang terurut

Contoh : Larik L dibawah ini 22 61 16 66 18 25 1 2 3 4 5 6 Misalkan, nilai yang dicari 66 Maka elemen yang diperiksa : 22, 61, 16, 66 (ditemukan) Indeks Larik yang dikembalikan : 1X = 4

Sequential Search (Pencarian Sekuensial) Algoritmanya sebagai berikut : 1. i 1 2. ketemu false 3. Selama (not ketemu) dan (i <= N) kerjakan baris 4 4. Jika (Data [i] = x) maka ketemu true, jika tidak i i + 1 5. IF (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan

Sequential Search (Pencarian Sekuensial) Algoritmanya yang lain : 1. Tentukan dan simpan data dalam suatu array 2. Tentukan fungsi pencarian sekuensial 3. Fungsi pencarian sekuensial adalah sebagai berikut : int flag=-1; { for(int count=0; count < array_size; count++) { flag=count; break; } } 4. Masukkan data yang akan dicari 5. Kerjakan langkah 3, jika data ketemu kerjakan lang-kah 6. Jika data tidak ketemu lakukan langkah 6 6. Cetak data tersebut 7. Selesai

int flag=-1; { for(int count=0; count < array_size; count++) { flag=count; break } } Pernyataan diatas berarti : 1. Lakukan pengulangan dari data pertama sampai data yang terakhir 2. Jika data yang dimasukkan sama pada waktu pengulangan data ke count, maka data ditemukan. Jika tidak sama, maka pencarian di teruskan sampai pengulangan data terakhir/data ditemukan. Dan apabila data tidak di ketemukan sampai pengulangan terakhir, maka data tidak ada

ALGORITMANYA Kamus Const Nmaks : Integer = 1000 Type Larik100 = Array [1..Nmaks] of Integer Procedure Cari1 (Input L:Larik100, Input N:Integer, Input X:Integer, I/O Ix:Integer) {mencari X didalam Larik L[1..N] secara beruntun} K.awal : Larik L[1..N] sudah terdefinisi harganya, X adalah harga yang akan dicari K.akhir : IX berisi Indeks Larik tempat X ditemukan, IX=0 jika X tidak ditemukan} Kamus Lokal I : Integer {Indeks untuk pencarian} Algoritma I 1 While (I < N) and (L[I] X) do I I + 1 Endwhile If (L[I] X) Then IX 0 Else IX 1 Endif

Pencarian Sekuensial Pada Larik Tidak Terurut Procedure Cari2 (Input L:Larik100, Input N:Integer,Input X:Integer,I/O Ix:Integer) Kamus Lokal I : Integer Ketemu : Boolean Algoritma I 1 Ketemu False While (I N) and (not Ketemu) do If L[I] = x Then Ketemu True Else I I + 1 Endif Endwhile If Ketemu Then IX 1 Else IX 0 Endif

Pencarian Sekuential Pada Larik Yang Terurut Apabila Larik sudah terurut menaik yaitu untuk setiap I=1..N, Nilai [I-1] < Nilai [I] menurun yaitu untuk setiap I=1..N, Nilai [I-1] > Nilai [I] Maka proses pencarian dpt dibuat dgn menghilangkan langkah pencarian yg tidak perlu Contoh : Procedure Cari3 (Input L:Larik100, Input N:Integer, Input X:Integer, I/O Ix:Integer) Kamus Lokal I : Integer {Indeks untuk pencarian} Algoritma I 1 While (I < N) and (L[I] < X) do I I + 1 Endwhile If (L[I] = X) Then IX I Else IX 0 Endif

Algoritma...????? Group2 Pseudocode...?????? Group1

BINARY SEARCH/ PENCARIAN BINER Pertemuan 15 3 SKS

Binary SEARCH (Pencarian Biner) Salah satu syarat pencarian bagi dua (binary search) adalah data sudah dalam keadaan terurut Apabila data belum keadaan terurut, pencarian biner tidak dapat dilakukan Data yang terurut merupakan syarat mutlak penerapan pencarian Algoritma pencarian Bagi Dua.

Binary SEARCH (Pencarian Biner) Prinsip dari pencarian biner adalah : 1. Pertama diambil posisi awal =1 dan posisi akhir =N, kemudian dicari posisi data tengah dengan rumus (posisi awal+posisi akhir)/2 2. Kemudian data yang dicari dibandingkan dengan data tengah 3. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah -1 4. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1 5. Demikian seterusnya sampai data tengah sama dengan yang dicari

Binary SEARCH (Pencarian Biner) Algoritma pencarian biner adalah : 1. L 1 2. R N 3. Ketemu false 4. Selama (L R)dan (not ketemu) kerjakan baris 5 sampai dengan 8 5. M (L+R)/2 6. Jika (Data[M] = x) maka ketemu true 7. Jika (x < Data[M]) maka R M-1 8. Jika (x > Data[M]) maka L M+1 9. If (ketemu) maka M adalah indeks dari data yang dicari, jika tidak data tidak ditemukan

Selama proses pencarian, memerlukan 2 (dua) indeks Larik yaitu indek terkecil dan terbesar Indek Terkecil = Indek ujung Kiri Larik (Ia) Indek Terbesar = Indek ujung Kanan Larik (Ib) Langkahnya : 1. Bagi 2 elemen Larik dengan Indek K = (Ia + Ib) div 2 2. Periksa apakah L[k] = x. Jika L[k] =x pencarian dihentikan Tetapi jika L[k] x harus ditentukan apakah pencarian akan dilakukan Larik bagian Kiri (Ia=tetap; Ib=k-1)/Kanan (Ia=k+1 ; Ib=tetap) 3. Ulangi langkah 1 sampai x ditemukan

Procedure Bagi2 (Input L:Larik100, Input N:Integer,Input X:Integer,I/O Ix:Integer) Kamus Lokal Algoritma Ia, Ib : Integer K ; Integer Ketemu : Boolean 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 If (L[K] > x) Then Ia K + 1 Else Ib K - 1 Endif Endif Endwhile If Ketemu Then IX K Else IX 0 Endif

CONTOH - Binary Search Membuat algoritma dan program dari pencarian beberapa data yang telah diketahui dengan menggunakan Metode Binary Search. Data-data harus sudah dalam keadaan terurut, yaitu : 10 15 18 22 25 34 45 55 61 66 87 Algoritma/pseudecode : 1. Tentukan posisi awal, dalam contoh posisi awal 10 2. Tentukan posisi akhir, dalam contoh posisi akhir 87 3. Cari data tengah dengan rumus (posisi awal + posisi akhir)/2 sesuai dengan contoh diatas data tengahnya = (1+11)/2 = 12/2 = 6. Data tengah berada pada posisi ke-6 yaitu angka 34 4. Data yang dicari adalah 61. Karena angka 61 > 34, berarti posisi awal pencarian = posisi tengah + 1 = 6+1 = 7 5. Data tengah baru diperoleh yaitu (7+11)/2 = 9. Berarti data tengah terbaru ada pada posisi ke-9 yaitu angka 61 6. Angka yang dicari dibandingkan dengan data tengah baru ini. Karena angka 61 = data tengah yang terbaru yaitu angka 61, maka proses pencarian dihentikan karena data sudah ketemu 7. Pencarian selesai dan data yang ketemu bisa dicetak

Algoritma prosesnya adalah : 1. Tentukan dan simpan data didalam suatu array 2. Tentukan fungsi pencarian biner 3. Fungsi pencarian biner adalah sebagai berikut int flag=-1; { int start=0; int end=array_size=1; int middle; int position=-1; midlle=(start+end)/2; { if(elemen < array[middle]) end=middle-1; else if (elemen > array[middle]) start=middle+1; middle=(start+end)/2; } while(start <=end && array[middle]!= elemen); if(array[middle]==elemen) position=middle 4. Masukkan data yang akan dicari 5. Kerjakan langkah 3, jika data ketemu kerjakan langkah 6. Jika tidak ketemu lakukan langkah 7 6. Cetak data tersebut dalam posisi diketemukan 7. Selesai

Algoritma...????? Group 1 Pseudocode...?????? Group 2

UntukPrak hari RABU Jam 8.00 s.d. 11.30 Praktikum SORT BUBBLE Jam 13.00 s.d. 16.00 Praktikum SEARCH

Pencarian data ke x=6 (34) dengan data : 10 15 18 22 25 34 45 55 61 66 67 1. L=1 2. R=11 3. Ketemu False 4. M =(L+R)/2 = (1+11)/2 = 6 5. (Data[6] = x) maka ketemu true 34 = 34