Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma Searching Pertemuan 13

Presentasi serupa


Presentasi berjudul: "Algoritma Searching Pertemuan 13"— Transcript presentasi:

1

2 Algoritma Searching Pertemuan 13
Matakuliah : T0456 / Algoritma dan Metode Object Oriented Programming Tahun : 2007 Algoritma Searching Pertemuan 13

3 Pada akhir pertemuan ini, diharapkan:
Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menjelaskan algoritma searching (squential, binary dan interpolation) Buku Referensi: Algorithms in C++, Addison Wesley, 1992. Websites: 3 Bina Nusantara

4 Outline Materi Sequential search Binary search Interpolation search
Simulasi searching Contoh progam searching 4 Bina Nusantara

5 Searching Adalah proses mendapatkan (retrieve) information berdasarkan kunci (key) tertentu dari sejumlah informasi yang telah disimpan Kunci (key) digunakan untuk melakukan pencarian record yang diinginkan didalam suatu list Bina Nusantara

6 Searching Single match Multiple match
Siapa mahasiswa dengan Nim Multiple match Siapa saja yang mendapat nilai Algoritma >= 85 Bina Nusantara

7 Metode Searching Sequential Search Binary Search Interpolation Search
Bina Nusantara

8 Sequential Search Merupakan teknik yang sederhana dan langsung dapat digunakan pada struktur data baik array maupun linked-list. Pencarian data secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data telah dicari dan tidak ditemukan Dilakukan pada data yang tidak terurut Bina Nusantara

9 Contoh Sequential Search
Nim Nama IPK [0] Mulyadi [1] Willy Johan [2] Anthony Liberty 2.78 [3] Ferry Santoso [4] Jaya Mulya [5] Budi Santoso [6] Indra Gunawan 3.56 [7] M. Rudito W 3.44 Bina Nusantara

10 Contoh Sequential Search
Kunci pencarian? NIM[0] == kunci?  tidak NIM[1] == kunci?  tidak NIM[2] == kunci?  tidak NIM[3] == kunci?  ya  Ferry Santoso, 3.37 Bina Nusantara

11 Contoh Sequential Search
Kunci pencarian? NIM[0] == kunci?  tidak NIM[1] == kunci?  tidak NIM[2] == kunci?  tidak NIM[3] == kunci?  tidak NIM[4] == kunci?  tidak NIM[5] == kunci?  tidak NIM[6] == kunci?  tidak NIM[7] == kunci?  tidak Semua data telah di cari, kunci tidak ditemukan Bina Nusantara

12 Algoritma Sequential search
int SequentialSearch(int *data, int N, int Key) { for(int i=0; i<N; i++) if(key == data[i]) return(i) } return(-1); Bina Nusantara

13 Binary Search Pencarian data dimulai dari pertengahan data yang telah terurut Jika kunci pencarian lebih kecil daripada kunci posisi tengah, maka kurangi lingkup pencarian pada separuh data pertama Begitu juga sebaliknya jika kunci pencarian lebih besar daripada kunci tengah, maka pencarian ke separuh data kedua Bina Nusantara

14 Binary Search Teknik Binary Search hanya dapat digunakan pada sorted array, yaitu array yang elemen-elemennya telah terurut. Bina Nusantara

15 Contoh Simulasi Binary search
Nim Nama IPK [0] Mulyadi [1] Willy Johan [2] Anthony Liberty 2.78 [3] Ferry Santoso [4] Jaya Mulya [5] Budi Santoso [6] Indra Gunawan 3.56 [7] M. Rudito W 3.44 Key = No low high mid Keterangan 1 2 4 7 (0+7)/2=3 (4+7)/2=5 Data[3]= <Key, maka low=mid+1 Data[5]= == Key, ketemu pada index = 5 Bina Nusantara

16 Contoh Simulasi Binary search
Nim Nama IPK [0] Mulyadi [1] Willy Johan [2] Anthony Liberty 2.78 [3] Ferry Santoso [4] Jaya Mulya [5] Budi Santoso [6] Indra Gunawan 3.56 [7] M. Rudito W 3.44 Key = No low high mid Keterangan 1 2 3 4 7 (0+7)/2=3 (0+2)/2=1 (2+2)/2=2 Data[3]= > Key, maka high=mid-1 Data[1]= < Key, maka low=mid+1 Data[2]= > Key, maka high=mid-1 Karena low > high, maka data Key tidak ada Bina Nusantara

17 Algoritma Binary search
int BinarySearch(int *data, int N, int Key) { int low, high, mid; low = 0; high = N-1; while(low <= high ) { mid =(low + high)/2; if( data[mid] == Key ) return(mid); else if( data[mid] < Key ) low = mid + 1; else high = mid - 1; } return(-1); Bina Nusantara

18 Interpolation Search Pencarian dilakukan pada posisi relatif kunci terhadap data yang terurut metode ini didasari pada proses pencarian nomor telepon pada buku telepon Bina Nusantara

19 Interpolation Search Rumus: kunci – data[low]
posisi = x (high – low) + low data[high] – data[low] Bina Nusantara

20 Contoh Interpolation Search
Kd Judul Penulis [0] 025 The C++ programing Bjarne Strous [1] Mastering Delphi 6 Marco Cantu [2] Professionl C# Simon Robin [3] Pure Corba Fintan Balron [4] Advanced JSP David Geary [5] Duration Calculus Zhou Cao Zen [6] Algebra Mastering Zohar Manna [7] Visual Basic Prof 6 F. P. Brooz Bina Nusantara

21 Contoh Interpolation Search
Kunci pencarian? 088 Low = 0, high = 7 Posisi = ( )/( )x(7-0)+0 = 6 Buku[6]==kunci?  ya  Algebra Mastering  Zohar Manna Bina Nusantara

22 Contoh Interpolation Search
Kunci pencarian? 060 Low = 0, high = 7 Posisi = ( )/( )x(7-0)+0 = 3 Buku[3]==kunci?  tidak Low = 4, high = 7 Kode tidak ada dalam data Bina Nusantara

23 Latihan Interpolation Search
List k terdiri dari 100 record. Kunci terrendah 220 dan tertinggi 980. Target 743. Dimanakah perkiraan posisi target? Bina Nusantara

24 Algoritma Interpolation Search
int InterPolSearch(int *data, int N, int Key) { int low, high, pos; float tmp; low = 0; high = N-1; while(data[low] <= data[high] ) { tmp = (Key-data[low])/(data[high]-data[low]) pos = tmp*(high-low) + low; if( data[pos] == Key ) return(pos); else if( data[pos] < Key ) low = pos + 1; else high = pos - 1; } return(-1); Bina Nusantara

25 Diskusi dan Tanya Jawab Latihan soal
25 Bina Nusantara


Download ppt "Algoritma Searching Pertemuan 13"

Presentasi serupa


Iklan oleh Google