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

dokumen-dokumen yang mirip
Algoritma dan Struktur Data

Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Algoritma dan Struktur Data. Searching dan Sorting

ALGORITMA PENGURUTAN & PENCARIAN

BAB VI SEARCHING (PENCARIAN)

Algoritma dan Pemrograman 2 PENCARIAN

Searching [pencarian] Algoritma Pemrograman

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY

Sequential Search (Linear Search)

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Array & Searching Array. Alfa Faridh Suni, S.T., M.T. PTIK

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

Algoritma dan Pemrograman Searching/Pencarian

Materi 5: SEARCHING (PENCARIAN) Dosen:

BAB VIII Pencarian(Searching)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VII PENCARIAN DATA (SEARCHING)

BAB 3 SEARCHING A. TUJUAN

Algoritma dan Struktur Data

Modul Praktikum Algoritma dan Struktur Data

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

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

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

MODUL IV PENCARIAN DAN PENGURUTAN

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

SORTING (PENGURUTAN DATA)

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

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

SORTING. Brigida Arie Minartiningtyas, M.Kom

CCH1A4 / Dasar Algoritma & Pemrogramanan

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

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

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Pengurutan (Sorting) Algoritma Pemrograman

Pencarian (Searching)

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

Algoritme dan Pemrograman

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

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Modul 15 Searching. 1.1 Kompetensi

Gambar 13.1 Ilustrasi proses algoritma sorting

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

1 Pencarian. 1.1 Tinjauan Singkat Larik

BAB VII ALGORITMA DIVIDE AND CONQUER

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

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

A. TUJUAN PEMBELAJARAN

*** SELAMAT MENGERJAKAN

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

Kompleksitas Algoritma

STRATEGI DIVIDE AND CONQUER

Modul 8 SORTING (PENGURUTAN)

Kompleksitas Algoritma (1)

ARRAY. 7 th week Estu Sinduningrum ST,MT

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

Kompleksitas Algoritma

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

STRUKTUR DATA (3) sorting array. M.Cs

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

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Operasi File. Chapter 13

STRUKTUR DATA SORTING ARRAY

BAB II TINJAUAN PUSTAKA

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

Perbandingan Algoritma Pencarian Kunci di dalam Himpunan Terurut Melalui Linear Search dan Binary Search

Decrease and Conquer

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

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

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

Tenia Wahyuningrum, S.Kom. MT Sisilia Thya Safitri, S.T.,M.T.

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

BAB 2 TINJAUAN PUSTAKA

Metode Binnary Searching di Java Console

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

Algoritma dan Struktur data

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

:Mahasiswa dapat mempraktekkan penggunaan array

BAB 8 SORTING DAN SEARCHING

Algoritma dan Struktur Data

ALGORITMA PENCARIAN (HEURISTIC)

7. SORTING DAN SEARCHING

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

BAB VI Pengurutan (Sorting)

BAB III ANALISA DAN PERANCANGAN APLIKASI

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

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

# TEN Sorting PENDAHULUAN

Sorting. Pertemuan ke 14.

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

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

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

Array 1 A. TUJUAN PEMBELAJARAN

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom

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

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Transkripsi:

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

mengapa? mengapa? mengapa? mengapa? mengapa? mengapa? mengapa? mengapa?

Mengapa tombol power ada di atas? Mengapa diberi warna lain?

untuk memudahkan pencarian

Mengapa menu help paling kanan?

untuk memudahkan pencarian

Bagaimana cara anda mencari buku tertentu dari sekumpulan buku?

menemukan nilai (data) tertentu didalam sekumpulan data yang bertipe sama. data dapat disimpan secara temporer dalam memori utama atau disimpan secara permanen dalam memori sekunder.

dalam memori utama data disimpan dalam bentuk array(larik) sedangkan dalam memori sekunder dalam bentuk file(arsip).

Pencarian elemen dalam larik disebut juga pencarian internal, sedangkan pencarian data yang disimpan dalam memori sekunder disebut juga pencarian eksternal.

Linier Binnary search

Linier search Pencarian dilakukan secara teratur (secara sekuensial) dari awal sampai akhir data (atau bisa juga dari akhir ke awal data)

Ada 2 macam kemungkinan data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful)

int array[5] id 0 1 2 3 4 array[id] 5 6 4 2 9 Bagaimana cara mencari angka 4 dalam array?

Algoritma 0

search =4 for (c = 0; c < n; c++) { if (array[c] == search) { print<<search<<" is present at location "<< c+1; break; } }

Contoh Misalnya terdapat array satu dimensi sebagai berikut: 0 1 2 3 4 5 6 7 8 10 6-2 11 7 1 100 indeks value Kemudian program akan meminta data yang akan dicari, misalnya 6. Iterasi : 6 = 8 (tidak!) 6 = 10 (tidak!) 6 = 6 (Ya!) => output : 2 (index)

Contoh Program Pencarian Data Data Array : 10, 8, 11, 20, 27, 99, 21, 5, 41, 17 elemen yang di cari : 99 Maka eleman yang di periksa adalah : 10, 8, 11, 20, 27, 99 (Data 99 di temukan) Index larik yang di kembalikan : idx : 5 Pencarian akan berhenti di sini tanpa memeriksa elemen setelah elemen 99. Program dapat di lihat sebagai berikut :

Q & A Problem: Apakah cara di atas efisien? Jika datanya ada 10000 dan semua data dipastikan unik? Solution: Untuk meningkatkan efisiensi, seharusnya jika data yang dicari sudah ditemukan maka perulangan harus dihentikan! Hint: Gunakan break! Question: Bagaimana cara menghitung ada berapa data dalam array yang tidak unik, yang nilainya sama dengan data yang dicari oleh user? Hint: Gunakan variabel counter yang nilainya akan selalu bertambah jika ada data yang ditemukan!

Binnary search Sebuah pencarian biner mencari nilai tengah (median), kemudian dibandingkan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama

syarat data sudah dalam keadaan terurut

ilustrasi Contoh Data: Misalnya data yang dicari 17 0 1 2 3 4 5 6 7 8 3 9 11 12 15 17 23 31 35 A B C Karena 17 > 15 (data tengah), maka: awal = tengah + 1 0 1 2 3 4 5 6 7 8 3 9 11 12 15 17 23 31 35 A B C Karena 17 < 23 (data tengah), maka: akhir = tengah 1 0 1 2 3 4 5 6 7 8 3 9 11 12 15 17 23 31 35 A=B=C Karena 17 = 17 (data tengah), maka KETEMU!

PENCARIAN BAGI DUA Pada pencarian indeks dibutuhkan dua buah variabel untuk menyimpan indeks terbesar dan terkecil Inti dari pencarian ini adalah membagi urutan data kedalam dua bagian pencarian Pada contoh selanjutnya akan dibahas pencarian menggunakan algoritma bagi dua pada larik terurut menurun. 54 48 37 32 29 16 0 1 2 3 4 5

Pencarian bagi dua Pencarian ini hanya bisa dilakukan pada data yang sudah diurutkan (kecil besar, atau besar kecil) Array L 54 48 37 32 29 16 0 1 2 3 4 5 Misal di cari nilai x = 16 Langkah 1 : i = 0 dan j = 5 Di cari indeks tengah (t) = (i+j) div 2 = (0 + 5) div 2 = 2 54 48 37 32 29 16 0 1 2 3 4 5

Bila L[2] 16 54 48 37 32 29 16 0 1 2 3 4 5 Di putuskan apakah pencarian akan dilakukan pada bagian kiri atau kanan Jika nilai pada indeks saat ini lebih besar dari yang dicari dilakukan pencarian pada bagian kanan, sebaliknya pada bagian kiri. Jika L[2] > 16? true: 37 > 16 Maka pencarian akan dilakukan pada bagian kanan: Sehingga : i = t + 1 = 3 dan j = 5 dan nilai t= (3 + 5) div 2 = 4 32 29 16 3 4 5

32 29 16 Apakah L[4] == 16? false Di putuskan apakah pencarian akan dilakukan pada bagian kiri atau kanan Jika nilai pada indeks saat ini lebih besar dari yang dicari dilakukan pencarian pada bagian kanan, sebaliknya pada bagian kiri. L[4] > 16 = 29 > 16? true Maka pencarian dilakukan pada bagian kanan : 3 4 5 16 Apakah L[5] == 16?? TRUE.. Nilai ditemukan 5

Algoritma Binary Search 1. Data diambil dari posisi 1 sampai posisi akhir N 2. Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2 3. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar? 4. Jika data terurut secara DESCENDING (Besar ke Kecil), Jika data di indeks lebih besar MAKA nilai awal adalah posisi tengah + 1 atau Jika data di indeks lebih kecil,maka nilai akhir adalah posisi tengah 1 5. Jika data terurut secara ASCENDING (Kecil ke Besar), Jika data di indeks lebih besar MAKA nilai akhir adalah posisi tengah - 1 atau Jika data di indeks lebih kecil,maka nilai awal adalah posisi tengah + 1 6. Jika data sama, berarti ketemu.

77;23;69;12;79;82;6;301;46;92;7 Urutkan secara ASC, kemudian dengan binary search carilah 7 Urutkan secara DSC, kemudian dengan binary search carilah 92

tenia@st3telkom.ac.id http://www.slideshare.net/kuliahtenia