Algoritma dan Pemrograman Searching

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
PENGURUTAN (SORTING).
PENCARIAN (SEARCHING)
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Searching.
13 Searching (Pencarian) pada Array Satu Dimensi Bab
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
Pemrogramman Terstruktur
Pertemuan 11 STRUKTUR SEARCHING.
Algoritma dan Pemrograman Subrutin
DIKTAT struktur data Oleh: Tim Struktur Data IF
Algoritma Pencarian (searching)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
ALGORITMA DAN PEMROGRAMAN Tipe Data
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
Oleh : Agus Priyanto, M.Kom Norma Amalia, M.Eng
Algoritma dan Pemrograman Searching
STRUKTUR DATA STACK.
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
Algoritma dan Pemrograman Sorting
KUG1A3 Algoritma& Pemrograman
ALGORITMA DAN PEMROGRAMAN Pengantar
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Algoritma dan Pemrograman RECORD dan ARRAY OF RECORD
Searching.
Mata Kuliah Ekonomi Pertanian (ESL 211)
PENGURUTAN (SORTING).
PENCARIAN INTERPOLASI
Linked List.
Pseudocode – Tipe Data, Variabel, dan Operator
STRUKTUR DATA Array Statis.
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman Subrutin
STRUKTUR DATA STACK.
Algoritma dan Pemrograman RECORD (REKAMAN)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Analisis Algoritma dan Struktur Data
Algoritma dan Pemrograman ARRAY (LARIK)
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
ALGORITMA DAN PEMROGRAMAN Tipe Data
MATRIKS (ARRAY 2 DIMENSI)
ALGORITMA DAN PEMROGRAMAN Tipe Data
STRUKTUR DATA Array Statis.
ALGORITMA DAN PEMROGRAMAN Pengantar
Algorithms and Programming Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Pemrograman Sorting
Algoritma dan Pemrograman Subrutin (Function)
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
Algoritma dan Pemrograman Subrutin
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman Searching
Pengurutan (Shorting)
STRUKTUR DATA Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
DIKTAT struktur data Oleh: Tim Struktur Data IF
SORTING (PENGURUTAN).
Pencarian (searching)
DIKTAT struktur data Oleh: Tim Struktur Data IF
SEARCHING Universitas Dian Nuswantoro Semarang 12/7/2018.
Transcript presentasi:

Algoritma dan Pemrograman Searching Tim Algoritma dan Pemrograman Universitas Komputer Indonesia

Metode Searching Sequential Search Binary Search

Definisi Sequential Search Proses menemukan data dari array yang ditinjau dengan cara menelusuri satu persatu elemen array mulai dari elemen array pertama sampai data yang dicari ditemukan atau sampai seluruh elemen array ditelusuri

Sequential Search Sequential Search Tanpa Boolean - Tanpa Sentinel - Dengan Sentinel Sequential Search Dengan Boolean

Sequential Search Tanpa Boolean Mis. diberikan data sebagai berikut: Angka Data yang dicari : 9 Angka(1) = 9? Angka(2) = 9? Angka(3) = 9? Maka data yang dicari ditemukan pada indeks ke-3 5 1 9 4 2 3 5 1 9 F F T

Algoritma Sequential Search Tanpa Sentinel Procedure SeqSearchTanpaSentinel(Input nama_array:tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer data_cari : tipedata Algoritma: input(data_cari) i  1 while(nama_array (i) ≠ data_cari) and (i < maks_array) do i  i + 1 endwhile if (nama_array(i) = data_cari) then output(data_cari,’ ditemukan pada indeks ke-’,i) else output(data_cari,’ tidak ditemukan’) endif EndProcedure

Sequential Search Dengan Sentinel Mis. diberikan data sebagai berikut: Angka Data yang dicari : 9 - Tempatkan data yang dicari pada sentinel Telusuri array seperti sequential search tanpa sentinel, jika data ditemukan pada sentinel, maka data yang dicari tidak ada/tidak ditemukan, tapi jika data yang dicari ditemukan bukan pada sentinel, maka data yang dicari ditemukan. sentinel 5 1 9 4 2 3 9 6

Algoritma Sequential Search Dengan Sentinel Procedure SeqSearchSentinel(Input nama_array:tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer data_cari : tipedata Algoritma: input(data_cari) i  1 nama_array(maks_array + 1)  data_cari while (nama_array (i) ≠ data_cari) do i  i + 1 endwhile if (i < maks_array+1) then output(data_cari,’ ditemukan pada indeks ke-’,i) else output(data_cari,’ tidak ditemukan’) endif EndProcedure

Sequential Search Dengan Boolean Mis. diberikan data sebagai berikut: Angka Data yang dicari : 9 Proses pencariannya sama seperti proses pencarian pada metode sequential search lainnya, hanya saja melibatkan sebuah variabel lain yg bertipe boolean. 5 1 9 4 2 3

Algoritma Sequential Search Dengan Boolean Procedure seq_search_boolean (Input nama_array:tipe_array) {I.S. : elemen array [1..maks_array] sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer ketemu : boolean data_cari : tipedata Algoritma: input(data_cari) i  1 ketemu  false while (not ketemu) and (i ≤ maks_array) do if (nama_var_array(i) = data_cari) then ketemu  true else i  i + 1 endif endwhile if (ketemu) output(data_cari,’ ditemukan pada indeks ke-’,i) output(data_cari,’ tidak ditemukan’) EndProcedure

Binary Search Proses pencarian dengan cara membagi larik menjadi 2 bagian (bagian kiri dan bagian kanan), dan mengecek data diposisi tengah apakah sama atau tidak dengan data yg dicari, jika tidak proses pencarian akan dilanjutkan ke larik bagian kiri atau bagian kanan. Mis. diberikan data sebagai berikut: Angka Data yang dicari : 7 Catatan : data harus sudah terurut 3 7 12 15 29 1 2 4 5

Binary Search (lanjutan) Langkah 1 : bagi larik menjadi 2 bagian untuk mencari posisi tengah (k) dengan cara indeks atas (Ia) dijumlahkan dengan indeks bawah (Ib) lalu dibagi 2. k = (Ia + Ib) div 2 = (1 + 5) div 2 = 3 3 7 12 15 29 1 2 4 5 Ia k Ib Bag. Kiri Bag. Kanan

Binary Search (lanjutan) Langkah 2 : periksa data di posisi tengah larik (12), lalu bandingkan apakah sama atau tidak(12 = 7? F), karena tidak sama maka akan diperiksa apakah data di posisi tengah lebih kecil dari data yang dicari (12 < 7 ? F) karena lebih besar maka pencarian dilanjutkan ke bagian kiri dengan cara menarik Indeks bawah ke kiri (Ib = k – 1) Hitung kembali titik tengah dari Larik yang ditinjau (didapat k = 1) 3 7 1 2 Ia Ib

Binary Search (lanjutan) Langkah 3 : ulangi langkah 1 s/d langkah 2 sampai data ditemukan atau sampai harga Ia > Ib Angka 7 ditemukan pada indeks ke-2, dan pada looping ke-3 3 7 1 2 Ia Ib k Bag. Kiri Bag. Kanan

Illustrasi Binary Search Mis. Dicari angka 7 menggunakan Binary Search Angka 7 ditemukan pada indeks ke-2 Data yang dicari ditemukan pada looping ke-3, dengan harga Ia = 2 dan Ib = 2 3 7 12 15 29 1 2 4 5 Ia k Ib Ia Ib k Ib Ia k

Algoritma Binary Search Procedure binary_search (Input nama_array : tipe_array) {I.S. : elemen array [1..maks_array] yg terurut secara ascending sudah terdefinisi} {F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: Ia, Ib, k : integer {Ia=indeks bawah, Ib=indeks atas, k=posisi tengah} ketemu : boolean data_cari : tipedata Algoritma: input(data_cari) Ia  1 Ib  maks_array ketemu  false while (not ketemu) and (Ia ≤ Ib) do k  (Ia + Ib) div 2 if (nama_var_array(k) = data_cari) then ketemu  true else if (nama_var_array(k) < data_cari) Ia  k + 1 Ib  k – 1 endif endwhile if (ketemu) output(data_cari,’ ditemukan pada indeks ke-’,k) output(data_cari,’ tidak ditemukan’) EndProcedure

TUGAS BESAR (1) Buat 8 kelompok dengan 8 topik berbeda: Reservasi Hotel Rental Kendaraan Peminjaman Buku (Perpustakaan) Apotek Pasien Rawat Inap Distribusi Produk ke Cabang/Agen Koperasi Rekam Medik

TUGAS BESAR (2) Buat Algoritma, Program dan Layar Tampilan, dengan Menu sebagai berikut: MENU PILIHAN ISI DATA CARI DATA BERDASARKAN KODE CARI DATA BERDASARKAN NAMA CARI DATA BERDASARKAN HARGA (atau lainnya, intinya ada satu untuk yg unik dan dua untuk yg tidak unik) TAMPIL DATA KESELURUHAN YG SDH TERURUT 0. KELUAR Catatan: Dikumpulkan ketika UAS!

TUGAS BESAR (3) Isi Makalah yang harus dikumpulkan: 1. Pendahuluan berisi data apa yang akan diolah beserta batasan-batasan yang dibutuhkan untuk pembuatan algoritma dan program (harus jelas dan komleks). 2. Algoritma 3. Program 4. Tampilan Layar 5. Daftar Pustaka 6. Kontribusi masing-masing anggota kelompok Catatan: Tipe data yang diperkenankan dalam bentuk array of record Boleh menambahkan proses lain, misalnya proses perhitungan Ada penambahan nilai bagi yang membuat dalam tipe data File Beri cover yang berisi judul, susunan angggota dan kelas

Contoh Cover Reservasi Hotel menggunakan Bubble Sort secara Ascending Tugas Besar Algoritma dan Pemrograman Reservasi Hotel menggunakan Bubble Sort secara Ascending Disusun Oleh: IF-1 NIM – Nama Dst. {Lambang UNIKOM} Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer UNIKOM Januari 2017

TUGAS BESAR (3) Aturan Penulisan: Ukuran kertas A4 Margin : Kiri 4 cm, Kanan 3 cm, Atas 4 cm, Bawah 3 cm (kecuali cover harus proposional) Spasi 1,5 (kecuali cover spasi 1) Huruf Times New Roman 12 (kecuali judul sesuaikan) Listing program Courier New 10