Anda di halaman 1dari 11

INTERPOLETION SEARCH

Oleh :

Glen Michael Adam

Kelas: MI -2C

Nim : 2005102075
Pendahuluan
Salam Sejaterah bagi kita semua, pertama-tama marilah kita ucapkan puji syurkur kepada
Tuhan YME, karena rahmat nya saya masih dapat menyelesaikan tugas makalah ini sampai
selesai, pada Makalah saya kali ini yang membahas tentang InterpolationSearch ini dimana
saya akan menjabarkan apa itu teori atau pengertian dari Interpolation itu sendiri, yang mana
saya juga berharap dapat memberikan contoh contoh yang tepat dari makalah interpolation itu
juga secara bemar dan juga tepat.

Daftar Isi

I. Pendahuluan

II. Rumusan Masalah

III. Pengertian

A) Teori Interpolation Search

B) Contoh progam Interpolation search

C) Contoh progam interpolation secara manual

IV. Penutup
A) Kritik dan Saran

B) Kata Pengantar Akhir

Rumusan Masalah

1. Apa pengertian dari contoh interpolation search?

2. Apa apa saja contoh contoh progam dari interpolation search

Pengertian
A) Teori Interpolation Search

InterpolationSearch merupakan sebuah teknik pengembangan

dari binary search. Teknik binary search akan selalu memeriksa


nilai tengah dari setiap array, sedangkan interpolation search

dapat pergi ke lokasi yang berbeda berdasarkan key yang

didapat. Jika nilai key lebih dekat ke array yang terakhir, maka

teknik interpolation search akan memulai pencarian dari array

yang terakhir.

Misalkan

Nilai Mid untuk interpolation search di dapat dari :

Misalkan kita memiliki int arr[] = {70, 60, 30, 50, 40,20}, data para int arr harus

diurutkan terlebih dahulu menggunakan teknik sorting seperti bubble sort.

Sehingga array kita akan menjadi int arr[] = {20,30,40,50,60,70}. Apabila angka

yang dicari adalah angka 40, berikut gambaran dari implementasi

InterpolationSearch:

1st Cycle:

(20,30,40,50,60,70)

find=40

low = 0
high = N-1

mid =((find-arr[low]) / (arr[high]-arr[low]))*(high-low) + low= 0

(arr[mid] == 40)

(20,30,40,50,60,70)

(20==40) // FALSE

low = mid + 1

*Array di mulai dari index ke 0, maka index ke 3 berisi nilai 50.

2nd Cycle:

(20,30,40,50,60,70)

find=40

mid =((find – arr[low]) / (arr[high]-arr[low])) *(high-low) + low = 1

(arr[mid] == 40)
(20,30,40,50,60,70)

(30==40) // FALSE

low = mid + 1

3rd Cycle:

(20,30,40,50,60,70)

Pada cycle ke 3, looping ini sudah berhenti karena melanggar aturan yang dibuat

untuk interpolation search. Pada tahap ini ada kemungkinan data nya sudah

ditemukan. Kita tinggal mengcheck apakah array bagian low atau high

merupakan nilai yang kita cari atau bukan. Jika data ditemukan, maka program

akan keluar dari looping. Jika kita ingin menampilkan index dari data yang dicari,

kita tinggal menyimpan index dari array tersebut dan menampilkan nya.

B) Contoh Progam Interpolation Search

Berikut implementasi dari Binary Search menggunakan Bahasa

C:

#include <stdio.h>
 
int main()
{
int arr[]={20, 30, 40, 50, 60, 70};
int n = sizeof(arr)/sizeof(int);
int index=-1; //index array mulai dari 0, maka di set -1
int find=40;
 
int mid, low = 0, high = n-1;
while(arr[low] < find && arr[high] > find) {
mid = ((find – arr[low]) / (arr[high] – arr[low])) * (high-low) + low;
if(arr[mid] < find){
low = mid + 1;
}
else if(arr[mid] > find){
high = mid – 1;
}
else{
index=mid;
break;
}
}
 
if (arr[low] == find){
index = low;
}
else if(arr[high] == find){
index = high;
}
 
if(index==-1){
printf(“Data tidak ditemukan\n”);
}
else{
printf(“Data berada pada index ke-%d\n”,index);
}
return 0;
}

C) Contoh Progam interpolation search secara manual

Prosesnya

data ke 1 = 1 ==>A[i]==>A[0]

data ke 2 = 2 ==>A[i]==>A[1]

data ke 3 = 3 ==>A[i]==>A[2]
data ke 4 = 4 ==>A[i]==>A[3]

data ke 5 = 5 ==>A[i]==>A[4]

A[i]

Masukkan data: 4

k=4

j=0

for i=0;i<5;i++

1. i=0

jika A[i]==k

jika A[0]==k

jika 1==4 (salah)

2. i=1

jika A[i]==k

jika A[1]==k

jika 2==4 (salah)

3. i=2

jika A[i]==k

jika A[2]==k

jika 3==4 (salah)

4. i=3

jika A[i]==k
jika A[3]==k

jika 4==4 (benar)

maka, A[j]=i;

j++;

maka, A[0]=3 ==> sekarang nilai indeks 0 itu = 3 bukan 1

j=j+1

j=1;

//data ditemukan

jika j>0

jika 1>0

maka, "data 4 yang dicari ada 1 buah "

maka, "data tersebut terdapat dalam indeks ke: "

maka, selama(for) (i=0; i<j;i++) ==> (i=0; 0<1; i++)

maka, cetak " %d " diambil dari alamat A[i]

maka, cetak " %d " diambil dari alamat A[0]

maka, cetak " 3 "

i=1

5. i=4

jika A[i]==k

jika A[4]==k

jika 5==4 (salah)


6. i=5 ==> ga bisa lanjut

Outputnya:

data ke 1 = 1

data ke 2 = 2

data ke 3 = 3

data ke 4 = 4

data ke 5 = 5

Masukkan data: 4

data 4 yang dicari ada 1 buah

data tersebut terdapat dalam indeks ke: 3

Penutup
A) Kritik dan Saran

Demikian hasil dari makalah saya jika ada krtik atau saran dari ibu saya

ucapkan terimakasih banyak bu karena saya adalah manusia tempat mya

seribu salah . Oleh karena itu saya mohon terhadap kritik dan sarannya

agar saya dapat memperbaiki kesalahan kesalahan saya agar tidak

terulang di masa depan nantinya.

B) Kata Pengantar Akhir


Demikian hasil akhir dari makalah saya ini jika ada kalimat yang saya

ucapkan yang mungkin tidak berkenan bagi ibu dosen saya minta maaf

bu, oleh karena itu saya mohon pengertian nya dari ibu atas makalah

saya ini agar dapat di koreksi agar menjadi semakin baik lagi kedepannya

bu. Demikian syaa sampaikan hasil makalh saya ini kepada ibu saya

ucapkan terimakasih.

Anda mungkin juga menyukai