Anda di halaman 1dari 18

INTERPOLASI 6

Mengenai:
1. Pengertian Interpolasi
2. Teknik Umum yang digunakan dalam Interpolasi
3. Interpolasi menggunakan Python

Pendahuluan Interpolasi
Interpolasi digunakan untuk mencari suatu nilai yang berada di antara beberapa
titik data yang telah diketahui nilainya. Untuk dapat memperkirakan nilai tersebut,
pertama kali dibuat suatu fungsi atau persamaan yang melalui titik data.
Metode interpolasi yang banyak digunakan adalah interpolasi polinomial.
Persamaan polinomial adalah persamaan aljabar yang mengandung jumlah dari variabel
x berpangkat bilangan bulat (integer). Pada bab ini akan dijelaskan metode untuk orde
satu (interpolasi linear), yang mempunyai bentuk sedarhana dan mudah dipahami. Pada
polinomial berderajat satu, diperoleh bentuk interpolasi linear yang sudah banyak
dikenal. Interpolasi linear memberikan hasil yang kurang teliti. Berdasarkan pemahaman
tersebut, selanjutnya akan dipelajari interpolasi polinomial dengan deraj at lebih besar
dari satu (kuadrat, kubik), yang merupakan fungsi tidak linear. Interpolasi ini
memberikan hasil lebih baik.

6.1 Pengertian Interpolasi


Interpolasi adalah teknik atau suatu cara untuk mencari nilai di antara beberapa
titik data yang telah diketahui, dengan anggapan bahwa data yang ada adalah benar. Di
dunia nyata, interpolasi dapat digunakan untuk memperkirakan suatu fungsi, yang mana
fungsi tersebut tidak terdefinisi dengan suatu formula, tetapi didefinisikan hanya dengan
data-data atau tabel. Interpolasi juga dapat diaplikasikan untuk pengolahan citra digital,
membuat kontur-kontur dan penghalusan kurva atau penghalusan peta.
TOPIK 6 INTERPOLASI

Cara menentukan nilai fungsi f dititik x* 𝜀 [x 0,x n] dengan menggunakan informasi

dari seluruh atau sebagian titik-titik yang diketahui ( x 0, x 1, …., x n) .

x x0 x1 x2 …… xn
f(x) f(x 0) f(x 1) f(x 2) …… f(x n)

6.2 Teknik Umum yang digunakan dalam Interpolasi


1. Membentuk polinomial berderajat ≤ n yg mempunyai harga fungsi di titik-titik
yang diketahui -> Polinomial Interpolasi
2. Masukkan titik yang ingin dicari harga fungsinya ke dalam polinomial interpolasi
Setelah mengetahui teknik umum yang digunakan berikut ini adalah jenis-jenis
interpolasi:
a. Interpolasi Linear
Bentuk paling sederhana dari interpolasi adalah menghubungkan dua buah titik
data dengan garis lurus. Metode ini disebut dengan interpolasi linear yang dijelaskan
menggunakan Gambar 6.1.

Gambar 6.1 Grafik Interpolasi linear


Diketahui nilai suatu fungsi dititik x 0 dan x 1, yaitu f(x 0) dan f(x 1). Dengan metode
interpolasi linear akan dicari nilai fungsi di titik x, yaitu f 1(x). Indeks 1 pada f 1(x)
menunjukkan bahwa interpolasi dilakukan dengan interpolasi polinomial orde 1. Dari
segitiga sebangun ABC dan ADE seperti tampak pada Gambar 6.1, terdapat hubungan
seperti berikut:
BC DE
=
AB AD
f1 (x) − f 0 (x) f(x1 ) − f(x0 )
=
x − x0 x1 − x0

Integrated Laboratory Universitas Gunadarma-Metode Numerik 2


TOPIK 6 INTERPOLASI

f(x1 ) − f(x0 )
f1 (x) = f(x0 ) + (x − x0 )
x1 − x0
Interpolasi linear menggunakan dua titik (x0 , y 0 ) dan (x1 , y1 ) yang berada paling dekat
dengan nilai x.
Algoritma Interpolasi Linear
1. Tentukan nilai x0 , y0 x1 , dan y1 .
2. Periksa apakah x0 = x1 . Jika ya, maka kembali ke langkah 1 sebab nilai fungsinya
tidak terdefinisi dalam kondisi ini. Jika tidak, maka dilanjutkan ke langkah 3.
3. Masukkan nilai x.
4. Periksa apakah min {x0 , x1 } ≤ x ≤ max {x0 , x1 }. Jika tidak, maka masukkan nilai x
yang lain. Jika ya, maka dilanjutkan langkah 5.
y2 −y1
5. Hitung P = y1 + (x − x1 ) atau dapat juga menggunakan f1 (x) = f(x0 ) +
x2−x1
f(x1)− f(x0)
(x − x0 )
x1− x0

6. Periksa apakah y 0 = y1 . Karena jika sama, maka akan diperoleh P = y 0.


7. Tulis hasil y = P.
Contoh 6.1:
Diketahui data sebagai berikut:
x y
1,00 3,00
4,00 5,00
7,00 6,00
10,00 9,00

Untuk x = 5, maka diambil titik data (4,5) dan (7,6):


f(x1 ) − f(x0 )
f1 (x) = f(x0 ) + (x − x0 )
x1 − x0

6− 5
= 5+ (5 − 4)
7− 4
1
= 5 + (1) = 5,333
3

Integrated Laboratory Universitas Gunadarma-Metode Numerik 3


TOPIK 6 INTERPOLASI

b. Interpolasi Kuadratik

Interpolasi kuadratik menggunakan fungsi pendeketan kuadrat. Apabila ada tiga


titik yang memungkinkan untuk dihubungkan, maka bentuk polynomial orde dua akan
didapatkan, yang selanjutnya disebut polynomial kuadratik atau parabola.

x1,y
y1
1

y2 x2,y2

y0
x0,y
0

x0 x1 x2 X

Gambar 6.2 Grafik Interpolasi kuadratik


Interpolasi kuadratik menggunakan tiga titik (x0 , y 0 ), (x1 , y1 ) dan (x2 , y2 )Nilai y
pada sebuah nilai x adalah :

y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
Dimana: b0 = y 0
y1 − y0 y 2 − y1 c1 − b1
b1 = c1 = b2 =
x1 − x0 x2 − x1 x2 − x0

Algoritma Interpolasi Kuadratik

Untuk interpolasi kuadratik digunakan algoritma sebagai berikut :


1. Tentukan nilai x0 , y 0 , x1 , y1 , x2 , dany2 .
2. Periksa apakah x0 < x1 < x2 . Jika tidak, maka kembali ke langkah 1 sebab nilai
fungsinya tidak terdefinisi dalam kondisi ini. Jika tidak, maka dilanjutkan ke langkah
3.
3. Masukkan nilai x.
4. Periksa apakah min {x0 , x1 , x2 } ≤ x ≤ max {x0 , x1 , x2 } . Jika tidak, maka masukkan
nilai x yang lain. Jika ya, maka dilanjutkan langkah 5.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 4


TOPIK 6 INTERPOLASI

y1 −y0 y2−y1 c 1−b1


5. Hitung b1 = , c1 = , dan b2 =
x1−x0 x2−x1 x2−x0

6. Hitung y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
7. Periksa apakah b2 = 0. Jika ya, maka persamaan yang dihasilkan linear. Jika tidak
maka persamaan yang dihasilkan merupakan persamaan kuadrat.
8. Tulis hasil y = P.
Contoh 6.2:
Diketahui data sebagai berikut:

x y
1,00 3,00
4,00 5,00
7,00 9,00
10,00 16,00

Untuk x = 5, maka diambil titik data (4, 5), (7,9) dan (10, 16)
b0 = y0 = 5
y1 − y0 9−5
b1 = = = 1,333
x1− x0 7−4

y2 − y1 16−9
c1 = = = 2,333
x2 − x1 10−7

c 1− b1 2,333−1,333
b2 = = = 0,167
x2 − x0 10−4

y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )
= 5 + 1,333(5 - 4) + 0,167 (5 – 4)(5 – 7)
= 5 + 1,333 – 0,333 = 6

Integrated Laboratory Universitas Gunadarma-Metode Numerik 5


TOPIK 6 INTERPOLASI

c. Interpolasi Polinomial Newton (Interpolasi Kubik)

Interpolasi polynomial newton menggunakan empat titik


(x0 , y0 ), (x1 , y1 ) , (x2 , y2 ), dan (x3 , y 3) yang berada paling dekat dengan nilai x. Berikut
adalah grafik untuk interpolasi kubik.

Gambar 6.3 Grafik interpolasi kubik


Nilai y untuk sebuah nilai x adalah:

y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 ) + b3 (x − x0 )(x − x1 )(x − x2 )


Dimana:
b0 = y 0
y1 − y0
b1 =
x1 − x0
c1 − b1
b2 =
x2 − x0
c2 − b2
b3 =
x3 − x0
y2 − y1
c1 =
x2 − x1
d1 − c1
c2 =
x3 − x1
y3 − y2
d1 =
x3 − x2

Integrated Laboratory Universitas Gunadarma-Metode Numerik 6


TOPIK 6 INTERPOLASI

Contoh 6.3:
Diketahui data sebagai berikut:
x y
0.5 0.148
0.7 0.248
0.9 0.370
1.1 0.518

Untuk x = 0,8, maka diambil titik data (0.5,0.418) , (0.7,0.248), (0.9,0.370), dan
(1.1,0.518)

b0 = y 0 = 0,148
y1− y0 0.248−0.418
b1 = = = −0,85
x1− x0 0.7−0.5

y2 − y1 0.370 − 0.248
c1 = = = 0,61
x2 − x1 0.9 − 0.7
y3 − y2 0.518 − 0.370
d1 = = = 0,74
x3 − x2 1.1 − 0.9
c1 − b1 0,61 − (−0,85)
b2 = = = 3,65
x2 − x0 0,9 − 0,5
d1 − c1 0,74 − 0,61
c2 = = = 0,325
x3 − x1 1,1 − 0,7
c2 − b2 0,325 − 3,65
b3 = = = −5,54167
x3 − x0 1,1 − 0,5
y = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 ) + b3 (x − x0 )(x − x1 )(x − x2 )
= 0,148 + (-0,85)(0,8 - 0,5) + 3,65(0,8 – 0,5)(0,8 – 0,7) + (-5,54167)(0,8 – 0,5)(0,8
- 0,7)(0,8 - 0,9)
=0,418 + (-0,255) + 0,1095 + 0,016625= 0,2891250 ≅ 0,306

6.3 Interpolasi menggunakan Python


Kita juga dapat menyelesaikan permasalahan interpolasi dengan kode Python.
Untuk implementasi interpolasi pada permasalahan contoh di atas kita dapat amati
pada listing program berikut ini.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 7


TOPIK 6 INTERPOLASI

a. Interpolasi Linear
Kita juga dapat menyelesaikan permasalahan interpolasi linear dengan menerapkan
ke dalam kode Python. Untuk implementasi interpolasi linear pada permasalahan
contoh 6.1 di atas kita dapat amati pada listing program 6.1 berikut ini.

# Mengimpor library numpy dan matplotlib


import numpy as np
import matplotlib.pyplot as plt

# Membuat fungsi dengan nama interpolasi linear


def interpolasi_linear(x0,y0,x1,y1,x):
return y0 + ((y1-y0)/(x1-x0)) * (x - x0)

# Memasukkan titik x0 dan y0


print('Masukkan nilai x0 dan y0')
x0 = float(input('x0 = '))
y0 = float(input('y0 = '))

# Memasukkan titik x1 dan y1


print('Masukkan nilai x1 dan y1')
x1 = float(input('x1 = '))
y1 = float(input('y1 = '))

# Membaca poin kalkulasi


x = float(input('Masukkan nilai x: '))

# Kalkulasi interpolasi linear


yp = interpolasi_linear(x0,y0,x1,y1,x)

# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah
%0.4f' %(x,yp))

x_=np.array([x0,x,x1])
y_=np.array([y0,yp,y1])

plt.scatter(x_,y_,color="black")
plt.plot(x_,y_,color="black")

for i_x, i_y in zip(x_,y_):


plt.text(i_x + 0.2, i_y, '({}, {})'.format(i_x,
i_y))

plt.show()

Listing program 6.1: Listing program interpolasi linear

Integrated Laboratory Universitas Gunadarma-Metode Numerik 8


TOPIK 6 INTERPOLASI

Gambar 6.4: Gambar listing program interpolasi-linear.py

Maka jika program tersebut dijalankan akan menghasilkan output seperti gambar 6.5
dibawah ini.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 9


TOPIK 6 INTERPOLASI

Gambar 6.5: Output dari listing program interpolasi-linear.py

b. Interpolasi Kuadratik
Kita juga dapat menyelesaikan permasalahan Interpolasi Kuadratik dengan
menerapkan ke dalam kode Python. Untuk implementasi Interpolasi Kuadratik pada
permasalahan contoh 6.2 di atas kita dapat amati pada listing program 6.2 berikut ini.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 10


TOPIK 6 INTERPOLASI

# Mengimpor library
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

# Mendefinisikan rumus interpolasi kuadratik


def interpolasi_kuadratik(x0, y0, x1, y1, x2, y2, x, b0, b1, b2):
return b0+b1*(x-x0)+b2*(x-x0)*(x-x1)

# Memasukkan titik x0 dan y0


print('Masukkan nilai x0 dan y0')
x0 = float(input('x0 = '))
y0 = float(input('y0 = '))

# Memasukkan titik x1 dan y1


print('Masukkan nilai x1 dan y1')
x1 = float(input('x1 = '))
y1 = float(input('y1 = '))

# Memasukkan titik x2 dan y2


print('Masukkan nilai x2 dan y2')
x2 =float(input('x2 = '))
y2 = float(input('y2 = '))

# Membaca poin kalkulasi


x = float(input('Masukkan nilai x: '))

b0=y0
b1 = (y1-y0)/(x1-x0)
c1 = (y2-y1)/(x2-x1)
b2 = (c1-b1)/(x2-x0)
# Nilai y pada Interpolasi kuadratik
yp = interpolasi_kuadratik(x0, y0, x1, y1, x2, y2, x, b0, b1, b2)

# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah %0.4f' %(x,yp))

# Membuat Grafik
titik_x = np.array([x0,x1,x,x2])
titik_y = np.array([y0,y1,yp,y2])

X_Y_Spline = interp1d(titik_x, titik_y,kind='cubic')

X_ = np.linspace(titik_x.min(), titik_x.max(), 500)


Y_ = X_Y_Spline(X_)

plt.scatter(titik_x, titik_y, color='black')


plt.plot(X_, Y_)

for i_x, i_y in zip(titik_x, titik_y):


plt.text(i_x + 0.2, i_y, '({}, {})'.format(i_x, i_y))

plt.show()

Listing program 6.4: listing program interpolasi-kuadratik.py

Integrated Laboratory Universitas Gunadarma-Metode Numerik 11


TOPIK 6 INTERPOLASI

Gambar 6.6: Gambar listing program interpolasi-kuadratik.py


Jika program tersebut dijalankan maka output dari program tersebut seperti gambar
6.7 di bawah ini.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 12


TOPIK 6 INTERPOLASI

Gambar 6.7: Output listing program interpolasi-kuadratik.py

c. Interpolasi Polinomial Newton (Interpolasi Kubik)

Kita juga dapat menyelesaikan permasalahan Interpolasi Polinomial Newton


(Interpolasi Kubik) dengan menerapkan ke dalam kode Python. Untuk implementasi
Interpolasi Polinomial Newton (Interpolasi Kubik) pada permasalahan contoh 6.3 di atas
kita dapat amati pada listing program 6.3 berikut ini.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 13


TOPIK 6 INTERPOLASI

# Mengimpor library
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt

# Mendefinisikan fungsi interpolasi_kubik beserta dengan rumus


interpolasi kubik
def interpolasi_kubik(x0, y0, x1, y1, x2, y2,b0,b1,b3, x):
return b0+b1*(x-x0)+b2*(x-x0)*(x-x1)+b3*(x-x0)*(x-x1)*(x-x2)

# Memasukkan titik x0 dan y0


print('Masukkan nilai x0 dan y0')
x0 = float(input('x0 = '))
y0 = float(input('y0 = '))

# Memasukkan titik x1 dan y1


print('Masukkan nilai x1 dan y1')
x1 = float(input('x1 = '))
y1 = float(input('y1 = '))

# Memasukkan titik x2 dan y2


print('Masukkan nilai x2 dan y2')
x2 = float(input('x2 = '))
y2 = float(input('y2 = '))

# Memasukkan titik x3 dan y3


print('Masukkan nilai x3 dan y3')
x3 = float(input('x3 = '))
y3 = float(input('y3 = '))

# Membaca poin kalkulasi


x = float(input('Masukkan nilai x: '))

b0=y0
b1 = (y1-y0)/(x1-x0)
c1 = (y2-y1)/(x2-x1)
b2 = (c1-b1)/(x2-x0)
d1 = (y3 - y2)/(x3-x2)
c2 = (d1 - c1)/(x3-x1)
b3 = (c2 - b2)/(x3-x0)

# Nilai y pada Interpolasi kubik


yp = interpolasi_kubik(x0, y0, x1, y1, x2, y2,b0,b1,b3, x)

# Tampilkan hasil
print('Nilai interpolasi pada titik x %0.4f adalah %0.4f' %(x,yp))

Listing program 6.3a: Listing program interpolasi polinomial newton

Integrated Laboratory Universitas Gunadarma-Metode Numerik 14


TOPIK 6 INTERPOLASI

# Membuat Grafik
titik_x = np.array([x0,x1,x,x2,x3])
titik_y = np.array([y0,y1,yp,y2,y3])

X_Y_Spline = interp1d(titik_x, titik_y,kind='cubic')

X_ = np.linspace(titik_x.min(), titik_x.max(), 500)


Y_ = X_Y_Spline(X_)

plt.scatter(titik_x, titik_y, color='black')


plt.plot(X_, Y_)

for i_x, i_y in zip(titik_x, titik_y):


plt.text(i_x + 0.2, i_y, '({}, {})'.format(i_x, i_y))

plt.show()

Listing program 6.3b: Lanjutan dari listing program interpolasi polinomial newton

Gambar 6.8a : Gambar listing program interpolasi-kubik.py

Integrated Laboratory Universitas Gunadarma-Metode Numerik 15


TOPIK 6 INTERPOLASI

Gambar 6.8b : Lanjutan gambar listing program interpolasi-kubik.py

Sehingga jika program tersebut dijalankan, maka output dari program tersebut dapat
dilihat seperti gambar 6.9 dibawah ini

Integrated Laboratory Universitas Gunadarma-Metode Numerik 16


TOPIK 6 INTERPOLASI

Gambar 6.9: Output program interpolasi polinomial newton(kubik)

Integrated Laboratory Universitas Gunadarma-Metode Numerik 17


TOPIK 6 INTERPOLASI

Refrensi
Delima, N. (2021, Februari 1 Januari 2022). Metode Numerik. Retrieved from
researchgate.net: https://www.researchgate.net/publication/349311746
Muzzamil. (2017, Mai 1 Januari 2022). Metode Newton Raphson. Retrieved from
steemit.com: https://steemit.com/indonesia/@muzammil/metode-newton-
raphson
Paulus, E. d. (2018). Perangkat Komputasi Numerik SCILAB berbasis Open-Source:
Algoritma dan Penerapannya. Yogyakarta: Deepublish.
Rosidi, M. (2019, Desember 23). Metode Numerik Menggunakan R Untuk Teknik
Lingkungan. Retrieved from https://bookdown.org/
Sanjaya WS, M. (2015). Metode Numerik Berbasis Python. Yogyakarta: Penerbit Gava
Media.
Sasongko, B. S. (2010). Metode Numerik dengan Scilab. Yogyakarta: Penerbit ANDI.
Sholihun, & Fatomi, Z. S. (2021). Pemrograman dan Komputasi Numerik
Menggunakan Python. Yogyakarta: Gadjah Mada University Press.
Triatmodjo, B. (2018). Metode Numerik. Yogyakarta: Beta Offset.

Integrated Laboratory Universitas Gunadarma-Metode Numerik 18

Anda mungkin juga menyukai