• Tidak ada hasil yang ditemukan

LECTURE NOTES T Algoritma dan Metode Object Oriented Programming Week 4 Algoritma Searching

N/A
N/A
Protected

Academic year: 2021

Membagikan "LECTURE NOTES T Algoritma dan Metode Object Oriented Programming Week 4 Algoritma Searching"

Copied!
10
0
0

Teks penuh

(1)

LECTURE NOTES

T0456 - Algoritma dan Metode

Object Oriented Programming

Week 4

(2)

LEARNING OUTCOMES

1. Peserta diharapkan mampu menjelaskan algoritma searching (squential, binary dan interpolation).

OUTLINE MATERI (Sub-Topic):

1. Searching

2. Sequential Search

3. Binary Search

4. Interpolation Search

(3)

ISI MATERI

Searching

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 di dalam suatu list.

Searching dapat dibedakan berdasarkan hasilnya, yaitu single match dan multiple match. Single match searching mencari data yang unik seperti NIM, nomor induk kependudukan,

SSN. Sedangkan multiple match searching mencari data yang tidak unik. Seperti mahasiswa yang tonggal di Tangerang Selatan.

Searching berdasarkan cara kerjanya: Sequential Search, Bynary Search, Interpolation

Search.

Sequential Search

Sequential Search merupakan teknik yang sederhana dan langsung dapat digunakan pada struktur data baik array maupun linked-list. Pencarian data dilakukan secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data. Jika sampai data terakhir tidak ada data yang sama dengan kunci, maka pencarian dihentikan dan data yang dicari tidak ditemukan. Pencarian dilakukan pada data yang tidak terurut

Contoh Sequential Search:

Indeks Nim Nama IPK

[0] 2207023006 Mulyadi 2.94 [1] 2207023004 Willy Johan 3.15 [2] 2207023003 Anthony Liberty 2.78 [3] 2207023007 Ferry Santoso 3.37 [4] 2207023005 Jaya Mulya 2.93 [5] 2207023001 Budi Santoso 3.01 [6] 2207023008 Indra Gunawan 3.56 [7] 2207023002 M. Rudito W 3.44 Simulasi 1: Kunci pencarian? 2207023007 NIM[0] == kunci?  tidak

(4)

NIM[1] == kunci?  tidak NIM[2] == kunci?  tidak

NIM[3] == kunci?  ya  Ferry Santoso, 3.37

Simulasi 2:

Kunci pencarian? 2207023010 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 dicari, kunci tidak ditemukan

Source code 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); } Binary Search

Binary Search melakukan pencarian pada data yang terurut. Algoritma ini memeriksa data

tengah yaitu data dengan indeks berada di tengah deretan data. Jika data tengah sama dengan kunci, pencarian selesai. Jika tidak sama, diperiksa apa kunci lebih kecil dari data tengah. Jika iya, maka pencarian dilanjutkan pada deret yang lebih kecil dari data tengah. Jika tidak, maka pencatian dilanjutkan ke deret yang lebih besar dari data tengah.

(5)

Pencarian pada salah satu interval dilakukan sama persis dengan pencarian sebelumnya, yaitu dengan memeriksa data tengah dan seterusnya.

Lakukan pencarian ini berulang-ulang. Setiap kali pengulangan pencaraian selalu memperkecil daerah pencarian. Jika daerah pencarian tidak bisa diperkecil lagi, maka pencarian selesai dengan hasil tidak ditemukan.

Contoh:

Index Nim Nama IPK

[0] 2207023010 Mulyadi 2.94 [1] 2207023020 Willy Johan 3.15 [2] 2207023030 Anthony Liberty 2.78 [3] 2207023040 Ferry Santoso 3.37 [4] 2207023050 Jaya Mulya 2.93 [5] 2207023060 Budi Santoso 3.01 [6] 2207023070 Indra Gunawan 3.56 [7] 2207023080 M. Rudito W 3.44 Data yang terurut: NIM

Simulasi 1:

Key: 2207023060 Pencarian 1:

Indeks_tengah = (0 + 7) / 2 = 3

NIM[indeks_tengah] == 2207023060 ? jawab: tidak NIM[indeks_tengah] < 2207023060 ? jawab: ya

Lanjutkan pencarian dengan daerah pencarian mulai dari indeks_tengah + 1 sampai dengan 7. Pencarian 2:

Indeks_tengah = (4 + 7) / 2 = 5

NIM[indeks_tengah] == 2207023060 ? jawab: ya

Pencarian selesai, data ditemukan yaitu Nama Budi Santoso.

Simulasi 2:

Key: 2207023022 Pencarian 1:

Indeks_tengah = (0 + 7) / 2 = 3

(6)

NIM[indeks_tengah] < 2207023022 ? jawab: tidak

Lanjutkan pencarian dengan daerah pencarian mulai dari 0 sampai dengan indeks_tengah - 1. Pencarian 2:

Indeks_tengah = (0 + 2) / 2 = 1

NIM[indeks_tengah] == 2207023022 ? jawab: tidak NIM[indeks_tengah] < 2207023022 ? jawab: ya

Lanjutkan pencarian dengan daerah pencarian mulai dari indeks_tengah + 1 sampai dengan 2. Daerah pencarian dari indeks 2 sampai dengan indeks 2.

Pencarian 3:

Indeks_tengah = (2 + 2) / 2 = 2

NIM[indeks_tengah] == 2207023022 ? jawab: tidak NIM[indeks_tengah] < 2207023022 ? jawab: ya

Lanjutkan pencarian dengan daerah pencarian mulai dari indeks_tengah + 1 sampai dengan 2. Daerah pencarian dari indeks 3 sampai dengan indeks 2. Karena batas kiri lebih besar dari batas kanan maka pencarian dohentikan dan hasilnya data tidak ditemukan.

Source Code 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); }

(7)

Interpolation Search

Interpolation Search adalah sebuah algoritma atau metode untuk mencari nilai key yang

diberikan dalam array diindeks yang telah diperintahkan oleh nilai – nilai kunci. Metode ini didasari pada proses pencarian nomor telepon pada buku telepon yang mana manusia mencari melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini dilakukan dengan perkiraan letak data.

Rumus:

posisi = ((kunci - data[low]) * (high - low) / (data[high] – data[low]) + low

Contoh:

Kd Judul Penulis

[0] 025 The C++ programing Bjarne Strous [1] 034 Mastering Delphi 6 Marco Cantu

[2] 041 Professionl C# Simon Robin

[3] 056 Pure Corba Fintan Balron

[4] 063 Advanced JSP David Geary

[5] 072 Duration Calculus Zhou Cao Zen

[6] 088 Algebra Mastering Zohar Manna

[7] 096 Visual Basic Prof 6 F. P. Brooz

Simulasi 1: Kunci pencarian: 088 Low = 0, high = 7 Posisi = (088-025)/(096-025)x(7-0)+0 = 6 (6,211... dibulatkan) Buku[6]==kunci?  ya  Algebra Mastering  Zohar Manna Simulasi 2: Kunci pencarian: 060 Low = 0, high = 7 Posisi = (088-025)/(096-025)x(7-0)+0 = 3 (3,450.... dibulatkan) Buku[3]==kunci?  tidak Low = 4, high = 7.

(8)

Kunci 060 tidak berada di daerah pencarian ini sehingga pencarian berhenti dan data tidak ditemukan.

Source code 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); }

(9)

SIMPULAN

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 di dalam suatu list. Searching dapat dibedakan berdasarkan hasilnya, yaitu single match dan multiple match. Single match searching mencari data yang unik seperti NIM, nomor induk kependudukan, SSN. Sedangkan multiple match searching mencari data yang tidak unik. Seperti mahasiswa yang tinggal di Tangerang Selatan.

Searching berdasarkan cara kerjanya: Sequential Search, Bynary Search, Interpolation

Search. Sequential Search merupakan teknik yang sederhana dan langsung dapat digunakan

pada struktur data baik array maupun linked-list. Pencarian data dilakukan secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data. Jika sampai data terakhir tidak ada data yang sama dengan kunci, maka pencarian dihentikan dan data yang dicari tidak ditemukan. Pencarian dilakukan pada data yang tidak terurut

Binary Search melakukan pencarian pada data yang terurut. Algoritma ini memeriksa data

tengah yaitu data dengan indeks berada di tengah deretan data. Jika data tengah sama dengan kunci, pencarian selesai. Jika tidak sama, diperiksa apa kunci lebih kecil dari data tengah. Jika iya, maka pencarian dilanjutkan pada deret yang lebih kecil dari data tengah. Jika tidak, maka pencatian dilanjutkan ke deret yang lebih besar dari data tengah.

Pencarian pada salah satu interval dilakukan sama persis dengan pencarian sebelumnya, yaitu dengan memeriksa data tengah dan seterusnya. Lakukan pencarian ini berulang-ulang. Setiap kali pengulangan pencaraian selalu memperkecil daerah pencarian. Jika daerah pencarian tidak bisa diperkecil lagi, maka pencarian selesai dengan hasil tidak ditemukan.

Interpolation Search adalah sebuah algoritma atau metode untuk mencari nilai key yang

diberikan dalam array diindeks yang telah diperintahkan oleh nilai – nilai kunci. Metode ini didasari pada proses pencarian nomor telepon pada buku telepon yang mana manusia mencari melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini dilakukan dengan perkiraan letak data.

(10)

DAFTAR PUSTAKA

1. Deitel & Deitel. (2010). C++ How To Program. 7th Edition. Prentice Hall Intern. New Jersey. ISBN:0-13-246540-X, Chapter 19

Referensi

Dokumen terkait

Sebagai hasil dari kegiatan ini, para peserta memperoleh pemahaman mengenai pentingnya bertutur kata dengan baik dan santun saat berinteraksi dengan anak didik

Perkebunan Nusantara XII Kebun Ngrangkah Pawon Kediri adalah suatu kerjasama antara dua belah pihak pihak perkebunan sebagai pihak pemilik lahan yang menyiapkan

Metode inkuiri adalah cara penyajian pelajaran yang memberi kesempatan kepada peserta didik untuk menemukan informasi dengan atau tanpa bantuan guru (Mulyani Sumantri,

sebelum bulan puasa / kolam renang diserbu pengunjung/ banyak diantara mereka yang memanfaatkannya. untuk padusan // padusan / identik dengan mensucikan diri / baik

10 th International Conference on Advances in Steel Concrete Composite and Hybrid Structures Singapore, 2 – 4July 2012.. Δ 0 : when the spring in the normal direction is in tension

Berdasarkan ciri-ciri tersebut, Zainal Arifin Mochtar menetapkan tujuh Lembaga Negara independen yang menjadi kajiannya. Lembaga-lembaga itu terdiri dari Komisi Nasional Hak

Permasalahan ini sangat mengemuka pada Pemilu tahun 2009 terutama pada pemilihan presiden danwakil presiden.Banyak terjadi kasus penduduk yang sudah meninggal dunia masih

Hasil perhitungan biomassa total tegakan kelas diameter 5-30 cm di Desa Jangga Toruan ... Hasil perhitungan biomassa total tegakan kelas diameter 30