BAB 9 S e a r c h i n g.

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB IV MATRIKS (ARRAY MULTI DIMENSI)
STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
Procedure pada Pascal ALPROG II
Gerlan A. Manu, ST.,MKom - Algoritma Pemrograman I
PROSEDUR DAN FUNCTION PROSEDUR
Input dan output Data Dalam bahasa Pascal untuk keperluan input (membaca input) digunakan identifier standar READ atau READLN. ReadLn digunakan untuk.
Dasar Komputer & Pemrog 2 A minggu 4
Array Dimensi Banyak Gerlan A. Manu, ST.,MKom
STRUKTUR DATA.
MATERI 11. TAS Tanggal 30 Nopember 2011 (RABU). Jam 7-9 TUTUP BUKU Materi : 1-11.
Algoritma dan Struktur Data
Searching.
SEARCHING ( PENCARIAN )
Struktur Data M. Haviz Irfani, S.Si. Pada garis besarnya, data dapat kita kategorikan menjadi : Type Data Sederhana atau Data Sederhana yang terdiri atas.
STRUKTUR DATA (2) searching array
SEARCHING ARRAY.
STRUKTUR DATA (2) searching array
Algoritma & Struktur Data-II SEARCHING
STRUKTUR DATA ARRAY DAN OPERASI SET.
Algoritma dan Struktur Data
Dasar pemrograman “Array and Record” Kelompok 3 TIP Kelas C
PENCARIAN (SEARCHING)
OPERASI MASUKKAN-KELUARAN
PENCARIAN (SEARCHING)
Searching Struktur Data.
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Record (Rekaman) Nurdiansah PTIK 09 UNM.
ARRAY Suatu array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Komponen ini disebut dengan.
STRUKTUR PERULANGAN STRUKTUR PERULANGAN FOR
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Selamat datang Di Prosedur dan Fungsi. Sub Program “Adl Program kecil yg dpt di panggil berulang-ulang sesuai dg kebutuhan”  Manfaatnya: 1.Memudahkan.
ARRAY Suatu array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Komponen ini disebut dengan.
Procedure & Function Sub Program.
Searching Pada suatu data seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan cara searching. Searching adalah pencarian data.
Pemprograman Terstruktur 1
Array Multi Dimensi Nama Kelompok Angga Wahyu H( ) Devanda Riski F ( ) Irfan Satrio H ( )
Struktur Data M. Haviz Irfani, S.Si. Pada garis besarnya, data dapat kita kategorikan menjadi : Type Data Sederhana atau Data Sederhana yang terdiri atas.
STRUKTUR DATA (2) searching array
SEARCHING ARRAY.
Pertemuan 11 STRUKTUR SEARCHING.
STRUKTUR DATA (2) searching array
RECORD.
PROCEDURE & FUNCTION FajrizaL.
Searching.
LINGKUNGAN TURBO PASCAL
STATEMENT INPUT DAN OUTPUT
Gerlan A. Manu, ST Array Dimensi Banyak Gerlan A. Manu, ST
Matematika Pascal Identifier x bernilai 10 X = 10
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Data Structure + Algorithm = Program
Array Dimensi Sri marini, ST.
STRUKTUR DATA searching array
Rekursif.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Matematika Pascal Nilai dari 40 siswa Identifier Nilai memuat 40 data
PENYELEKSIAN KONDISI.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Tipe data sederhana Hermansyah,S.Kom.
Array (Larik)‏ Struktur Data 1 1.
SEARCHING.
Matematika Pascal Identifier x bernilai 10 X = 10
PERTEMUAN III Menggunakan Pernyataan Bersyarat untuk Menyeleksi Kondisi Menggunakan Pernyataan Bersyarat untuk Menentukan Keputusan.
ALGORITMA & PEMROGRAMAN
Dasar-Dasar Pemrograman
STRUKTUR DATA (2) searching array
RECORD / REKAMAN.
STRUKTUR DATA (2) searching array
Transcript presentasi:

BAB 9 S e a r c h i n g

Searching Searching dibutuhkan untuk mencari kembali informasi dari data yang sudah ada. Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Data yang dicari dapat berupa array, string atau informasi yang disimpan pada external storage.

Sequencial Search Adalah teknik pencarian data dalam array satu dimensi dengan menelusuri semua elemen-elemen array dari awal sampai akhir. Data array tidak diurutkan terlebih dahulu. Waktu tercepat pencarian apabila elemen yang dicari berada pada indeks pertama. Waktu terlama pencarian apabila elemen berada di akhir rangkaian indeks.

Sequencial Search... Misalnya terdapat array satu dimensi sebagai berikut: Kemudian program akan meminta data yang akan dicari, misalnya 6. Jika ada maka akan ditampilkan tulisan “ADA”, sedangkan jika tidak ada maka akan ditampilkan tulisan “TIDAK ADA”. 8 10 6 -2 11 7 1 100 1 2 3 4 5 6 7 8 ffea ffeb ffec ffed ffef fffa fffb fffc indeks value alamat

Sequencial Search... (Pascal) program cari_data_array; var cari, i, jlh, ada:byte; var arr:array[1..8] of byte; begin uses crt; clrscr; arr[1]:=8; arr[2]:=10; arr[3]:=6; arr[4]:=-2; arr[5]:=11; arr[6]:=7; arr[7]:=1; arr[8]:=100; jlh:=8; ada:=0; write(‘Cari = ‘); readln(cari); for i:=1 to jlh do begin if arr[i] = cari then ada := 1; break; end; if ada = 1 then write(‘Ada’) else write(‘Tidak ada’); end.

Sequencial Search with Sentinel Perhatikan array data berikut ini: Terdapat 6 buah data dalam array (dari indeks 1 s/d 6) dan terdapat 1 indeks array tambahan (indeks ke 7) yang belum berisi data (disebut sentinel) Array pada indeks ke 7 berguna untuk menjaga agar indeks data berada pada indeks 1 s/d 6 saja. Bila pencarian data sudah mencapai array indeks yang ke-7 maka berarti data TIDAK ADA, sedangkan jika pencarian tidak mencapai indeks ke-7, maka data ADA. 3 12 9 -4 21 6 1 2 3 4 5 6 7 ffea ffeb ffec ffed ffef fffa fffb indeks value alamat

Sequencial Search with Sentinel... (Pascal) program cari_data_array; var cari, i, jlh:byte; var arr:array[1..7] of byte; begin uses crt; clrscr; arr[1]:=3; arr[2]:=12; arr[3]:=9; arr[4]:=4; arr[5]:=21; arr[6]:=6; jlh:=7; i:=1; write(‘Cari =‘); readln(cari); while arr[i] <> cari i := i+1; if i = cari then write(‘Ada’) else write(‘Tidak ada’); end.

Binary Search Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian. Adalah teknik pencarian data dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pengurutan. Prinsip pencarian biner adalah: Data diambil dari posisi 1 sampai posisi akhir N Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar. Jika lebih besar, maka proses pencarian dicari dengan posisi awal dengan posisi tengah + 1 Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir dengan posisi tengah – 1 Jika data sama, berarti ketemu.

Binary Search... Contoh: Misalnya data yang dicari 17 1 2 3 4 5 6 7 8 9 3 9 11 12 15 17 23 31 35 L M R Karena 17 > 15 (data tengah), maka: awal = tengah + 1 L M R Karena 17 < 23 (data tengah), maka: akhir = tengah – 1 L=M=R Karena 17 = 17 (data tengah), maka KETEMU!

Binary Search... (Pascal) program cari_data_array; var cari,l,r,m,n,ketemu:byte; var arr:array[1..9] of byte; begin uses crt; clrscr; arr[1]:=3; arr[2]:=9; arr[3]:=11; arr[4]:=12; arr[5]:=15; arr[6]:=17; arr[7]:=23; arr[8]:=31; arr[9]:=35; n:=9; l:=0, r:=9; ketemu:=0; write(‘Cari =‘); readln(cari); while ( l<=r and ketemu=0 ) begin m := int((l+r)/2) if arr[m] = cari then ketemu := 1 else if (cari < arr[m]) then r := m-1 l := m+1; end; if ketemu = 1 write(“Ada”) write(“Tidak ada”); end.

Interpolasi Search Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu Teknik searching ini dilakukan dengan perkiraan letak data. Contoh ilustrasi: jika kita hendak mencari suatu nama di dalam buku telepon, misal yang berawalan dengan huruf T, maka kita tidak akan mencarinya dari awal buku, tapi kita langsung membukanya pada 2/3 atau 3/4 dari tebal buku. Jadi kita mencari data secara relatif terhadap jumlah data. Rumus posisi relatif kunci pencarian dihitung dengan rumus:

Interpolasi Search… Kasus: misalkan terdapat data sbb: Kode Judul Pengarang 025 The C++ Programming James Wood 034 Mastering Delphi 6 Marcopolo 041 Professional C# Simon Webe 056 Pure JavaScript v2 Michael Bolton 063 Advanced JSP & Servlet David Dunn 072 Calculus Make it Easy Gunner Christian 088 Visual Basic 2005 Express Antonie 096 Artificial Life : Volume 1 Gloria Virginia

Interpolasi Search… (Pascal) program cari_data_buku; var cari,l,h,pos:integer; begin uses crt; clrscr; l:=0, h:=8; cari:=088; pos:=int((088 – 025)/(096 – 025)*(8-0)+0); while kode[pos] < cari if kode[pos] = cari then write(judul[pos]) else l := pos + 1; end; end.

Interpolasi Search… (Penjelasan Pascal) Kasus #1: Kunci Pencarian? 088 Low? 0 High? 8 Posisi = int((088 - 025) / (096 - 025) * (8 - 0) + 0) = [7] Kode[7] = kunci pencarian, data ditemukan: Visual Basic 2005 Express Kasus #2: Kunci Pencarian? 060 Posisi = int((060 – 025) / (096 – 025) * (8 – 0) + 0) = [3] Kunci[3] < kunci pencarian, maka teruskan Low = 3 + 1 = 4 High = 8 Posisi = int((060 – 025) / (096 – 025) * (8 – 4) + 4) = [5] Ternyata Kunci[5] adalah 063 yang lebih besar daripada 060. Berarti tidak ada kode 060.