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

dokumen-dokumen yang mirip
Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

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

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

Algoritma dan Pemrograman Searching/Pencarian

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

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

BAB VI SEARCHING (PENCARIAN)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

LIST LINIER 1. DEFINISI

Searching [pencarian] 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 Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1

ALGORITMA PENGURUTAN & PENCARIAN

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

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Mesin Abstrak

STRATEGI DIVIDE AND CONQUER

BAB VIII Pencarian(Searching)

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

*** SELAMAT MENGERJAKAN

BAB VII ALGORITMA DIVIDE AND CONQUER

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

Kompleksitas Algoritma

Kompleksitas Algoritma (1)

REVIEW ARRAY. Institut Teknologi Sumatera

Kompleksitas Algoritma

ALGORITMA & PEMROGRAMAN

LATIHAN UTS Tim Pengajar KU1071 Sem

Notasi Algoritmik. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

CCH1A4 / Dasar Algoritma & Pemrogramanan

Kode MK/ Pemrograman Terstruktur 2

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

Representasi Logic List Linier

Pengertian Dasar Konstruksi Pemrograman Prosedural. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

MODUL IV PENCARIAN DAN PENGURUTAN

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

SORTING. Brigida Arie Minartiningtyas, M.Kom

1 Pencarian. 1.1 Tinjauan Singkat Larik

Array. Teknik Informatika Politeknik Negeri Batam

Algoritma dan Pemrograman 2 PENCARIAN

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 Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Brute Force

BAB 2 LANDASAN TEORI

CCH1A4 / Dasar Algoritma & Pemrogramanan

Analisa Kasus Part 2. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

RENCANA PEMBELAJARAN SEMESTER (RPS)

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

Algoritma dan Pemrograman 2 PENGURUTAN

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

CCH1A4 / Dasar Algoritma & Pemrogramanan

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Soal hari Selasa (13/10) Latihan 7 AN

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

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

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

IKG2A3/ Pemrograman Terstruktur 2

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

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

Linked List. Bandung 2013

SEARCHING & SORTING. Pendahuluan

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Algoritme dan Pemrograman

MODUL 1 Operasi Dasar dalam PHP

Soal hari Jumat (16/10) Latihan 10 MS

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Kompleksitas Algoritma Sorting yang Populer Dipakai

JARINGAN UNTUK MERGING

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

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

Struktur Algoritma (15 Jam) Departemen TI P4TK/VEDC Malang

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pengantar List Linier

ARRAY/LARIK. 3/25/2010 Materi Array - RIE 1

Mesin Karakter dan Mesin Kata

CCH1A4 / Dasar Algoritma & Pemrogramanan

Pencarian (Searching)

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

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

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

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

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

APLIKASI KAMUS ISTILAH EKONOMI (INGGRIS-INDONESIA) MENGGUNAKAN METODE SEQUENTIAL SEARCHING

Transkripsi:

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

Latar Belakang Merupakan proses yang penting karena sering dilakukan terhadap sekumpulan data yang disimpan dalam array Ada beberapa variasi pencarian Metoda mana yang dipakai menentukan kecepatan pencarian Metoda yang paling sering digunakan adalah sequential search/ pencarian berurutan.

Sequential Search Merupakan metode pencarian yang paling banyak digunakan. Pencarian dilakukan dari elemen awal array, terurut hingga elemen akhir array. Algoritma sequential search dapat bervariasi, yang bergantung dapat pada data. Berikut akan dibahas beberapa algoritma sequential search, seperti: Pencarian pada data yang random atau acak Pencarian pada data yang urut Pencarian dengan sentinel

Permasalahan 1 (Pada Array dengan data acak/random) Diketahui array bertipe integer A[N], yang sudah terisi. Tuliskanlah algoritma program dengan masukan X bernilai integer dan mencari apakah X ada dalam array A secara sekuensial (berturutan) Jika data ditemukan program akan menghasilkan teks Ketemu pada index Jika data tidak ditemukan maka akan ditampilkan teks Tidak ketemu Pencarian segera dihentikan begitu harga pertama diketemukan Contoh-1: N = 10, A berisi : { 1, 3, -7, 5, -8, 12, 7,90, 3, 5 }, X = 5 Pemeriksaan dilakukan terhadap {1,3, -7, 5} Output : Ketemu pada index 3 Contoh-2: N = 5, A berisi : { 18, 6, 90, 85, 55 }, X = 100 Pemeriksaan dilakukan terhadap {18, 6, 90, 85, 55 } Output : Tidak ketemu

Jawab Permasalahan 1 Dari permasalahan 1 didapatkan kesimpulan sebagai berikut: Terdapat 2 macam output, yaitu: Ketemu, pada index Tidak ketemu Data tidak ketemu jika telah dilakukan pemeriksaan terhadap semua elemen array dari awal sampai akhir

Algoritma untuk Permasalahan 1 (Skema Pencarian Tanpa Boolean) KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0 N-1] of integer X : integer {data yang akan dicari} ALGORITMA i 0 N sizeof(a) input(x) while (i < N) and (A i X) do i i + 1 { i = N or A i = X } if (A i = X) then Output ( Ketemu pada indeks, i) else { Ti X } Output ( Tidak Ketemu )

Algoritma untuk Permasalahan 1 (Skema Pencarian Dengan Boolean) KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0 N-1] of integer X : integer {data yang akan dicari} ALGORITMA i 0 N sizeof(a) Found false { awal pencarian, belum ketemu } input(x) while (i N) and (not Found) do if (T i = X) then Found true else i i + 1 { i > N or Found } if (Found) then Output ( Ketemu pada indeks, i) else Output ( Tidak Ketemu )

Diskusikan Buatlah algoritma untuk permasalahan 1 dengan menggunakan perulangan transversal dan kondisi, dimana menggunakan kata kunci break

Permasalahan 2 (Pada Array dengan data terurut) Diketahui sebuah array bertipe integer A[N], dengan isi yang terurut membesar Tuliskanlah algoritma untuk mencari X bernilai integer, apakah harga X ada dalam A secara sekuensial mulai dari elemen pertama Jika data ditemukan program akan menghasilkan teks Ketemu pada index Jika tidak data tidak ditemukan maka akan ditampilkan teks Tidak ketemu Pencarian segera dihentikan begitu harga pertama diketemukan Dengan memanfaatkan keterurutan, kondisi berhenti bisa lebih efisien (dimana x lebih besar dari nilai index maka data tidak ketemu)

Permasalahan 2 lanjutan Contoh 1: N = 8, A berisi : { 10, 30, 50, 70, 120, 190, 311, 500}, X = 70 Pemeriksaan dilakukan terhadap {10,30,50,70} Output : Ketemu pada index 3 Contoh 2: (Pada Array dengan data terurut) N = 6, A berisi : { 18, 35, 55, 101, 123, 456}, X = 100 Pemeriksaan dilakukan terhadap {18, 35, 55, 101} Output : Tidak ketemu

Algoritma untuk Permasalahan 2 KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0 N-1] of integer X : integer {data yang akan dicari} ALGORITMA i 0 N sizeof(a) input(x) while (i < N) and (Ai < X) i i + 1 { i = N or T i >= X } if (T i = X ) then Output ( Ketemu pada indeks, i) else { T i X T i > X } Output ( Tidak ketemu )

Permasalahan 3 (Pencarian berurutan dengan SENTINEL) Teknik ini menggunakan elemen fiktif yang diletakan pada elemen terakhir array, yang disebut SENTINEL. Harga elemen fiktif = elemen yang dicari Pencarian pasti ketemu maka harus dicek lagi posisi ketemu, apakah diakhir atau tidak Penempatan sentinel disesuaikan dengan arah pencarian(depan ke belakang atau blakang ke depan) Teknik sentinel sangat efisien, terutama jika pencarian dilakukan sebelum penyisipan sebuah elemen yang belum terdapat di dalam array

Permasalahan 3 lanjut (Pencarian berurutan dengan SENTINEL) Contoh 1: N = 7, A berisi : { 2, 4, 5, 8, 95, 30, 5}, X = 5 A dijadikan { 2, 4, 5, 8, 95, 30, 5, 5} Pemeriksaan dilakukan terhadap {2,4,5} Output : Ketemu pada index 2 Contoh 2: N = 4, A berisi : { 11, 3, 5, 8}, X = 100 A dijadikan { 11, 3, 5, 8, 100} Pemeriksaan dilakukan terhadap {11,3,5,8,100} Output : Tidak ketemu

Algoritma untuk Permasalahan 3 KAMUS i : integer {indeks untuk pencarian} N : integer {jumlah index} A : array [0 N-1] of integer X : integer {data yang akan dicari} ALGORITMA i 0 N sizeof(a) input(x) T N+1 X {pasang sentinel } while (T i X)do i i + 1 {T i = X; harus diperiksa apakah ketemunya di sentinel } if (i< N+1) then Output ( Ketemu pada indeks, i) else { i = N+1 } Output ( Tidak ketemu )

Tugas Buatlah algoritma untuk pencarian pada data seperti berikut: 1. N = 7, A berisi : { 2, 4, 5, 8, 5, 30, 5}, X = 5 2. N = 8, A berisi : { 2, 4, 5, 5, 9, 10, 15}, X = 5 Output dari data tersebut adalah: Jika ketemu: tampilkan teks Ketemu, tampilkan jumlah ketemu dan indeksnya Jika tidak ketemu: tampilkan teks tidak ketemu Catatan: Untuk masing-masing nomor pilihlah algoritma pencarian berurutan pada array dengan data acak, berurutan atau dengan sentinel, berikan alasan!

Referensi Inggriani Liem, IF-ITB, Diktat Pemrograman Prosedural (2007)

THANKS