PERBANDINGAN INTERPOLASI DALAM METODE SPLINE
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains
Program Studi Matematika
Oleh :
Anastasia Vrysca Jayanti NIM : 013114014
PROGRAM STUDI MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
When Jesus Say That He Love Me
I feel that I am lonely It doesn’t prove that I am alone
I listen to the words He say That He will always be by my side
I mean everything to Him And He will never leave me
‘cause He love me so
When He say that He love me It means He give the best for me
When He say that He love me He will give everything for me No more fear about the future
And the blame for the past He will give everything When He say that He love me
He died for me He give His life for me
When He say that He love………. Say that He love me
Apa yang kuberikan untuk Mama Untuk Mama tersayang Tak kumiliki sesuatu berharga
Untuk Mama tercinta
Hanya ini kutuliskan
Tugas Akhir dari tanganku untuk Mama Hanya sebuah tugas akhir sederhana
Tugas akhirku untuk Mama
Walau tak dapat lagi kuungkapkan Rasa cintaku untuk Mama
Namun dengarlah hatiku selalu berkata
Sungguh kusayang padamu Mama
Mama . . . . . . .
Yogyakarta, 28 Maret 2007
“Janganlah gelisah hatimu; percayalah kepada Allah,
percayalah juga kepada-Ku. ”
- Yohanes 14 : 1 -
Kupersembahkan untuk :
My Sweet Heart Jesus
My Beautiful Life
My Be Loved Mom
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 28 Maret 2007 Penulis,
ABSTRAK
Metode Spline adalah salah satu metode Interpolasi yaitu dengan memakai pendekatan fungsi-fungsi Spline sebagai polinom penghubung. Fungsi Spline ter-diri Spline Linear, Spline Kuadrat dan Spline Kubik.
Pada skripsi ini akan dibuat perangkat lunak untuk membandingkan Spline Linear, Spline Kuadrat dan Spline Kubik. Perbandingan dilakukan dalam hal galat dan waktu komputasi. Proses perhitungan galat dihasilkan dari harga mutlak nilai sebenarnya dikurangi nilai hampiran dibagi nilai sebenarnya dikali seratus persen. Lama tidaknya waktu komputasi ditunjukkan dari banyaknya data yang dicari dalam proses perhitungan.
ABSTRACT
Spline method is one of Interpolation method that with make approxima-tion Spline funcapproxima-tions as connected polynom. Spline funcapproxima-tion consist of Linear Spline, Quadrate Spline and Cubic Spline.
In this thesis, will make a program to compare Linear Spline, Quadrate Spline ang Cubic Spline, on particular the error and the time computation. Process error computation is shown by absolute value from exact value minus approxima-tion value divide exact value and multiply one hundred percent. While the compu-tation processing duration by determining how many times the time compucompu-tation from data quantity in computation process.
KATA PENGANTAR
Puji syukur kepada Allah Bapa Yesus Kristus atas Roh Kudus dan segala kasih-Nya yang berlimpah, sehingga skripsi yang berjudul Perbandingan Interpo-lasi Dalam Metode Spline, sebagai salah satu syarat untuk memperoleh gelar Sar-jana Sains (S.Si) Program Studi Matematika, dapat terselesaikan dengan baik.
Penyusunan skripsi ini tidak terlepas dari bantuan dan dukungan dari ber-bagai pihak, baik yang terlibat secara langsung maupun tidak langsung. Oleh karena itu, dalam kesempatan ini dengan segala kerendahan hati, penulis ingin menyampaikan rasa terima kasih yang mendalam kepada :
1. My Be Loved Mom…………..Love u, Miss u, Need u,Want u so much.
2. Keluarga yang selalu memberi semangat dan segenap doa : Babeh Nano, Mas Chemi, Ade Luchia dan Tante Lusi. Terima kasih atas segala-segalanya………Kakak lulus!!
3. Bapak Drs. Jong Jek Siang, M.Sc., selaku dosen pembimbing skripsi dan pani-tia penguji yang telah memberi bimbingan, pengarahan, saran dan koreksi dalam penyusunan skripsi penulis.
4. Bapak Y. G. Hartono, S. Si, M. Sc, selaku Kaprodi Fakultas MIPA Univer-sitas Sanata Dharma, dosen penguji dan dosen pembimbing akademik. Terima kasih atas pencarian judul skripsi, telah memberikan yang terbaik sebagai dosen, berbagi canda seperti teman dan memahami seperti ayah.
6. Dosen-dosen Program Studi Matematika yang memberi dukungan kepada pe-nulis baik selama kuliah maupun dalam penyusunan skripsi ini.
7. Bapak Z. Tukijo yang telah membantu dalam urusan administrasi dan persia-pan ujian akhir.
8. Sahabat-sahabat tersayang di Tangerang:
• Elly yang selalu menemani saat-saat yang paling menyakitkan dan yang selalu bisa diandalkan untuk bertukar fikiran.
• Olla yang selalu menemani saat-saat yang paling hancur dan selalu men-jadi teman yang paling manja.
• Linda yang selalu menemani saat-saat langkah kaki terasa sangat berat dan yang selalu bisa diandalkan untuk jalan-jalan.
Sahabat termanis di Yogyakarta :
• Cece yang selalu mencoba mendekatkan pada Kristus, tempat berbagi suka dan duka. Terima kasih atas persahabatan yang manis dan yang selalu melarang pergi ke luar paingan saat fikiran penulis sedang kacau.
Kehadiran kalian membuat penulis percaya bahwa Tuhan tidak meninggalkan saat-saat penulis merasa tidak dapat lagi melangkah.
9. Angkatan 2001 yang teristimewa (urut abjad) : Ajeng, Andre, Ariel, Alam , Agnes, April, Bita, Dani, Deta, Daniel, Erika, Fanya, Indah, Maria, Ray, Rita, Tedi,Yuli, Upik, Veri, Wiwit. Terima kasih untuk semua kisah yang sudah dilewati bersama.
11.- Fanya dan kostnya yang selalu menjadi tempat pelarian dikala stress. - Eko yang selalu siap membantu, menyupir dan mentraktir, he....he....
Cayoo Fanya & Eko, Semangat !!!
12.Catur Prasdianto tempat bertukar fikiran, thanks for everything, Koko Satijan, Robet Tampa, Moko, Mba Sumi, Bruder Koko, Mba Dwi, Mba Nia.
13.Keluarga kost 99999 : Bora, Diana, Maria, Okta, Grace, Emi, Desi, Cicil, Lia, Nana, Juli, Hanny, Vivi. Terima kasih kalian telah menjadi keluarga inti di jogja. Terima kasih untuk Welly, Olive dan lainnya. You All always be My Friends!! Bapak dan ibu kost atas nasihat-nasihatnya dan penjagaannya. 14.Kediaman DED : Rm. Sari Jatmiko...terima kasih atas setiap doa dan paksaan
untuk mengerjakan skripsi, Mba Tika, Mba Vivi, Septi, Eko, Siska, Theo, Mas Adhit.
Penulis berharap agar Tugas Akhir ini dapat berguna bagi penulis maupun pi-hak lain sebagai wahana pembelajaran interpolasi dengan Metode Spline. Tak ada gading yang tak retak dan tak ada langit yang tak berawan. Demikian juga penelitian dan penulisan Tugas Akhir ini masih jauh dari kesempurnaan. Oleh karena itu, penulis siap menerima dengan mata, tangan dan hati yang terbuka akan segala macam kritik dan saran demi peningkatan kualitas penelitian di kemudian hari.
Yogyakarta, 28 Maret 2007 Penulis,
DAFTAR ISI
Halaman HALAMAN JUDUL……….
HALAMAN PERSETUJUAN PEMBIMBING…………... HALAMAN PENGESAHAN……… HALAMAN PERSEMBAHAN……… HALAMAN KEASLIAN KARYA……… ABSTRAK……… ABSTRACT……… KATA PENGANTAR………. DAFTAR ISI………... DAFTAR TABEL………. DAFTAR GAMBAR………... BAB I PENDAHULUAN……….1
A. Latar Belakang Masalah………..…………
B. Rumusan Masalah………..
C. Tujuan Penulisan………
D. Manfaat Penulisan………
E. Metode Penelitian ………
F. Pembatasan Penulisan ………
G. Sistematika Penulisan ………..…
BAB II LANDASAN TEORI
A. Interpolasi………..…………
B. Galat……… ………
C. Metode Spline ………
1. Spline linear………..…
2. Spline Kuadrat……….………
3. Spline Kubik ……….
BAB III PERANCANGAN DAN IMPLEMENTASI………
A. Perancangan Umum………
B. Perancangan Antarmuka...
1. Layar Sampul………
2. Layar Masukan Spline………..….…
C. Rancangan Proses……….…
D. Implementasi………..………
1. Spline Linear ……….……
2. Spline Kuadrat………
3. Spline Kubik………
BAB IV ANALISIS………...……… A. Hasil Implementasi...
1. Layar Sampul... 2. .Layar Spline... B. Pengujian Program Spline...
C. Percobaan Dan Analisis... 1. Galat...
a. Percobaan 1... b. Percobaan 2………... c. Percobaan 3... 2. Waktu Komputasi... a. Percobaan 1…... b. Percobaan 2... BAB V PENUTUTUP………...….
A. Kesimpulan………...…….
B. Saran………...……….
DAFTAR PUSTAKA... LAMPIRAN...
DAFTAR TABEL
Halaman Tabel 2.1...
Tabel 2.2 Hasil Perhitungan Spline Linear... Tabel 2.3 Hasil Perhitungan Spline Kuadrat……….. Tabel 2.4 Hasil Perhitungan Spline Kubik……….. Tabel 4.1 Data Percobaan 1……… Tabel 4.2 Hasil Galat Percobaan 1………. Tabel 4.3 Data Percobaan 2……….. Tabel 4.4 Hasil Galat Percobaan 2……… Tabel 4.5 Data Percobaan 3……….. Tabel 4.6 Hasil Galat Percobaan 3……… Tabel 4.7 Hasil Waktu Komputasi Percobaan 1……… Tabel 4.8 Hasil Waktu Komputasi Percobaan 2………. Tabel 4.9 Rata-rata Waktu Komputasi………
DAFTAR GAMBAR
Halaman Gambar 3.1 Rancangan Layar Sampul………. Gambar 3.2 Rancangan Layar Spline……… Gambar 3.3 Flowchart Spline Linear... Gambar 3.4 Flowchart Spline Kuadrat... Gambar 3.5 Flowchart Spline Kubik……… Gambar 4.1 Hasil Implementasi Layar Sampul……….. Gambar 4.2 Hasil Implementasi Spline……… Gambar 4.3 Hasil Perhitungan Spline……….. Grafik 4.1 Galat Percobaan 1………. Grafik 4.2 Galat Percobaan 2………. Grafik 4.3 Galat Percobaan 3………. Grafik 4.3 Waktu Komputasi Percobaan 1……… Grafik 4.4 Waktu Komputasi Percobaan 2……… Grafik 4.5 Rata-rata Waktu Komputasi……… Grafik 4.6 Rata-rata Waktu Komputasi dalam Persen………..
BAB I PENDAHULUAN
A. Latar Belakang Masalah
Seringkali harus mencari nilai antara titik-titik data yang telah diketahui dan itu menjadi masalah yang cukup rumit. Metode numerik merupakan cabang atau bidang ilmu matematika yang masalah penaksiran nilai antara titik-titik data yang telah diketahui diformulasikan sedemikian rupa sehingga dapat diselesaikan menggunakan pencocokan kurva. Fungsi-fungsi dalam pencocokan kurva mampu memecahkan berbagai persoalan mengenai penaksiran nilai antara titik-titik data yang telah diketahui. Taksiran nilai antara titik-titik data yang telah tepat dinamakan Interpolasi.
Interpolasi Spline merupakan interpolasi sepotong-sepotong. Ini berarti bahwa suatu fungsi f(x) tertentu pada selang a ≤ x ≤ b, jika ingin menghampiri f(x) pada selang ini dengan sebuah fungsi lain g(x). Fungsi g(x) yang diperoleh ini dinamakan Spline. Nama Spline sendiri diambil dari batang tipis yang telah digunakan sejak lama oleh para insinyur untuk mengepaskan kurva me-lalui titik tertentu.
menurunkan polinom orde kedua dan Spline Kubik yang menurunkan polinom orde ketiga. Prediksi yang digunakan yaitu nilai x natural logaritma
Dari Fungsi-fungsi Spline yang ada maka akan diketahui Spline mana yang dapat mencapai hasil yang optimal, yaitu errornya kecil dan waktu perhitungan yang singkat.
B. Rumusan Masalah
Pokok permasalahan yang akan dibahas dalam skripsi ini dapat ditu-lis dengan beberapa pertanyaan berikut :
1 Bagaimana mencari nilai antara titik-titik data yang telah diketahui dengan Spline Linear, Spline Kuadrat, dan Spline Kubik?
2 Bagaimana menganalisis Fungsi-fungsi Spline sehingga menghasilkan Fungsi Spline yang baik untuk mencari nilai antara titik-titik data yang telah diketa-hui?
3 Fungsi Spline mana yang lebih baik di antara Spline Linear, Spline Kuarat dan Spline Kubik dalam hal akurasi dan waktu untuk memprediksi nilai x natural logaritma dengan menggunakan bahasa pemprograman Delphi 7.0?
C. Tujuan Penulisan
D. Manfaat Penulisan
Manfaat yang diharapkan dalam skripsi ini adalah penulis dapat me-nentukan Fungsi Spline mana yang paling baik untuk memprediksi nilai x natural logaritma sehingga errornya kecil dan waktu perhitungan yang singkat.
E. Metode Penelitian
Metode Penelitian :
1. Masukan data natural logaritma.
2. Terapkan persamaan Fungsi Spline Linear untuk memprediksi nilai x
yang tidak terdapat dalam tabel dan catat kesalahannya.
3. Terapkan persamaan Fungsi Spline Kuadrat untuk memprediksi nilai x
yang tidak terdapat dalam tabel dan catat kesalahannya.
4. Terapkan persamaan Fungsi Spline Kubik untuk memprediksi nilai x
yang tidak terdapat dalam tabel dan catat kesalahannya.
5. Bandingkan kesalahan yang terjadi pada masing-masing Fungsi Spline.
F. Pembatasan Penulisan
Dalam skripsi ini dilakukan beberapa batasan sebagai berikut :
1. Interpolasi dengan Metode Spline yaitu Spline Linear, Spline Kuadrat , Spline Kubik .
2. Faktor untuk membandingkan yaitu galat dan running time. 3. Data yang dipakai adalah tabel natural logaritma.
G. Sistematika Penulisan
Sistem penulisan laporan skripsi ini terdiri dari 6 bab dengan urutan sebagai berikut :
BAB I PENDAHULUAN
Menjelaskan uraian mengenai hal-hal yang menjadi dasar dalam pembahasan skripsi ini. Uraian tersebut mengenai latar belakang masalah, rumusan masalah, tujuan penulisan, manfaat penulisan, metode penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Pada bab ini, penulis membahas dasar-dasar teori yang mendukung penyusunan skripsi ini secara terperinci, sehingga mudah dimengerti.
BAB III PERANCANGAN DAN IMPLEMENTASI
Menjelaskan perencanaan dalam rancangan program untuk implementasi. Serta melakukan implementasi dari rancangan program yang telah dibuat.
BAB IV ANALISIS
BAB V PENUTUTUP
BAB II
LANDASAN TEORI
A. Interpolasi
Terdapat n + 1 data pasangan bilangan
(
x0,f0) (
, x1, f1)
,. . .,(
xn,fn)
denganx0, x1, . . . ,xn nilainya berbeda, jika ingin memperoleh sebuah
polinomPn
( )
x yang bernilai fjdi xj, dengan kata laindan berderajat n atau kurang. Polinom Pn sering dinamakan polinom penginterpolasi. Nilai xj sering dinamakan simpul. Besaran fj mungkin saja merupakan nilai fungsi matematis f(x) tertentu sehingga f(xj) = fj dan dengan demikian Pn
( )
x merupakan suatu hampiran bagi f(x) dengan sifat bahwa Pnbernilai sama dengan f di semua simpul. Polinom Pn
( )
x ini digunakan untuk memperoleh nilai bagi semua x yang merupakan nilai hampiran bagi f(x). Jika xyang ingin dicari terletak di antara simpul-simpul tersebut maka dinamakan Interpolasi.
B. Galat
Perhitungan numerik tidak terlepas dari kesalahan atau galat. Terdapat dua bentuk galat yang utama di dalam metode numerik yaitu galat pembulatan yang dapat terjadi akibat keterbatasan mesin hitung dan galat pemotongan yang dapat terjadi karena keterbatasan proses komputasi. Kedua galat tersebut mempengaruhi
Galat Mutlak dan Galat Relatif Persen.
1 1 0
0) ( ) ( )
( n n n n
n x f , P x f, . . ., P x f
Definisi 2.1 :
Andaikan p~ adalah nilai hampiran dari p maka Galat Mutlak didefinisikan
sebagai Em= p−~p dan Galat RelatifPersen 100%, 0. ~
≠ ∗
−
= p
p p p Er
C. Metode Spline
Metode Spline adalah salah satu metode numerik yang dapat digunakan untuk pencarian interpolasi. Interpolasi Spline merupakan polinom sepotong-sepotong. Suatu fungsi f(x) yang sudah diketahui pada selang a≤ x≤b di hampiri dengan sebuah fungsi lain g(x) dengan cara menyekat selang a≤ x≤bmenjadi beberapa anak selang a= x1 < x2 <. . .< xn =b. Fungsi g(x) yang didapat
dinamakan spline. Akan dibahas Spline Linear, Spline Kuadrat dan Spline Kubik. Besar kesalahan Metode Spline dapat diketahui dengan cara mereduksi nilai eksak dari tabel natural logaritma dengan pendekatan yang dihasilkan dari Metode Spline.
1. Spline Linear
sekelompok titik data terurut (xi,f(xi)), i=1,2,. . .,n dinyatakan sebagai berikut : Contoh 2.1
Diberikan sebuah tabel yang berisi 5 himpunan data logaritma natural
Tabel 2.1
Gunakan Tabel 2.1 untuk mencari nilai Interpolasi saat x = [1.11 1.22 1.33 1.44 1.49] menggunakan Spline Linear.
Penyelesaian :
Dari persamaan di atas didapat
2. Spline Kuadrat
Spline Kuadrat menyediakan sebuah persamaan kuadrat yang men-ghubungkan sedikitnya tiga pasangan data yang berdekatan di dalam
him-x f(x) 1.11 1.22 1.33 1.44 1.49 0.104 0.1983 0.2846 0.3641 0.3986 1.2 1.1 ) 1 . 1 ( 1 . 1 2 . 1 ) 0953 . 0 1823 . 0 ( 0953 . 0 ) (
1 − − ≤ ≤
− +
= x x
x f 1.3 1.2 ) 2 . 1 ( 2 . 1 3 . 1 ) 1823 . 0 2624 . 0 ( 1823 . 0 ) (
2 − − ≤ ≤
− +
= x x
x f 1.4 1.3 ) 3 . 1 ( 3 . 1 4 . 1 ) 2624 . 0 3365 . 0 ( 2624 . 0 ) (
3 − − ≤ ≤
− +
= x x
x f 1.4 1.3 ) 3 . 1 ( 3 . 1 4 . 1 ) 2624 . 0 3365 . 0 ( 2624 . 0 ) (
4 − − ≤ ≤
− +
= x x
x f 1.5 1.4 ) 4 . 1 ( 4 . 1 5 . 1 ) 3365 . 0 4055 . 0 ( 3365 . 0 ) (
5 − − ≤ ≤
− +
= x x
x f
punan data (xi,f(xi)), i=1,2, . . . ,n . Bentuk umum dari persamaan kuadrat
diantara titik
(
xi,f( )
xi)
dan(
xi+1,f( )
xi+1)
adalahi i i
i x a x bx c
f ( )= 2 + + i=1,2,. . ., n−1 (2.2) oleh karena itu, setiap dua titik-titik data yang berdekatan mempunyai sebuah persamaan interpolasi yang diberikan oleh (2.2) dengan 3 konstanta
i i
i b c
a , ,dan .
Untuk n titik data terdapat n-1 selang, maka ada 3(n-1) konstanta yang harus-dicari dan yang memenuhi 3(n-1) persamaan atau kondisi sebagai berikut : 1. Spline harus melalui titik-titik data. Nilai-nilai fungsi harus sama pada simpul-simpul dalam untuk i = 1 sampai n dimana i=1,2, . . . ,n−1. Kondisi ini dapat dinyatakan sebagai berikut :
fi(xi)=aixi2 +bxi +ci= f
( )
xi i=1,2,3,...,n−1 (2.3) fi(xi+1)=aixi+12 +bixi+1 +ci= f( )
xi+1 i=1,2,3,...,n−1 (2.4)2. Spline harus kontinu pada bagian dalam titik-titik data. Kondisi ini dapat dinyatakan menggunakan derivatif pertama dari spline kuadrat.
2aixi +bi =2ai+1xi+1 +bi+1 i=1,2,3,...,n−1 (2.5) 3. Kondisi terakhir yang dapat dibentuk bebas sebagai turunan kedua dari spline diantara dua titik data pertama menjadi nol. Sejak turunan pertama untuk spline pertama adalah 2ai, kondisi ini dapat dinyatakan
Contoh 2.2
Gunakan Tabel 2.1 untuk mencari nilai Interpolasi saat x = [1.11 1.22 1.33 1.44 1.49] menggunakan Spline Kuadrat.
Penyelesaian :
Data tabel terdapat 5 titik data. Dengan menggunakan persamaan (2.3) sampai dengan persamaan (2.6) dihasilkan 3(5-1) = 12 kondisi yang dibutuhkan untuk mendapatkan 3(5-1) = 12 konstanta yang dibutuhkan.
Persamaan (2.3) menghasilkan :
. = c b . a . . = c b . a . . = c b . a . . = c b . a . 3365 0 4 1 96 1 2624 0 3 1 69 1 1823 0 2 1 44 1 0953 0 1 1 21 1 4 4 4 3 3 3 2 2 2 1 1 1 + + + + + + + +
Persamaan (2.4) menghasilkan :
. c b . a . . c b . a . . c b . a . . c b . a . 4055 0 5 1 25 2 3365 0 4 1 96 1 2624 0 3 1 69 1 1823 0 2 1 44 1 4 4 4 3 3 3 2 2 2 1 1 1 = + + = + + = + + = + +
Persamaan (2.5) menghasilkan :
b a . b a . b a . b a . b a . b a . 4 4 3 3 3 3 2 2 2 2 1 1 8 2 8 2 6 2 6 2 4 2 4 2 + = + + = + + = +
Persamaan (2.6) menyatakan :
Dengan menggunakan pensubtitusian didapatkan
8895 1 43 2 6 0 5371 0 498 0 09 0 8553 1 526 2 69 0 8617 0 87 0 0 4 4 4 3 3 3 2 2 2 1 1 1 . c . b . a . c . b . a . c . b . a . c . b a − = = − = − = = = − = = − = − = = =
Maka persamaan Spline Kuadrat yang dihasilkan adalah
5 . 1 4 . 1 8895 . 1 43 . 2 6 . 0 ) ( 4 . 1 3 . 1 5371 . 0 498 . 0 09 . 0 ) ( 3 . 1 2 . 1 8553 . 1 526 . 2 69 . 0 ) ( 2 . 1 1 . 1 8617 . 0 87 . 0 ) ( 2 4 2 3 2 2 1 ≤ ≤ − + − = ≤ ≤ − + = ≤ ≤ − + − = ≤ ≤ − = x x x x f x x x x f x x x x f x x x f
Dari persamaan di atas didapat
3. Spline Kubik
Spline kubik adalah menurunkan polinom orde ketiga untuk setiap selang di antara simpul,seperti dalam :
f
( )
x =aix3 +bix2 +cix+di.x f(x) 1.11 1.22 1.33 1.44 1.49 0.104 0.1994 0.2844 0.3655 0.3991
Jadi untuk n + 1 titik data (i = 0, 1, 2, . . . , n), terdapart n interval maka diperlukan 4n konstanta yang harus dicari yang persamaan-persamaannya di-cari dengan mengikuti definisi 2.2.
Definisi 2.2
Diberikan fungsi f pada
[ ]
a,b dan suatu himpunan angka yang disebut simpul a=x0 <x1 <. . .< xn =b. Suatu interpolasi spline kubik S, untuk f(x)adalah suatu fungsi yang memenuhi kondisi :a. S
( )
x adalah polinom kubik, Sk( )
x menyatakan polynomial pada segmen[
xk,xk+1]
untuk k = 0, 1, . . . , n-1 ;b. S
( )
xk = f( )
xk k = 0, 1, . . . , n-1 ;c. Sk+1
( )
xk+1 =Sk( )
xk+1 k = 0, 1, . . . , n-2 ;d. S'k+1
( )
xk+1 =S'k( )
xk+1 k = 0, 1, . . . , n-2 ; e. S"k+1( )
xk+1 =S"k( )
xk+1 k = 0, 1, . . . , n-2 ; f. Memenuhi salah satu kondisi(i) S''
( )
x0 =S''( )
xn =0 ( Batas Natural ) (ii) S'( )
x0 = f'( )
x0 dan S'( )
xn = f'( )
xn ( Batas Apitan )Bentuk Interpolasi Spline Kubik untuk fungsi f , dengan mengikuti kondisi-kondisi dalam Definisi 2.1
a. Sk
( )
x =ak +bk(x−xk)+ck(x−xk)2 +dk(x−xk)3 k = 0, 1, . . . , n-1 ;b. )S(xk)= f(xk
Sk
( )
xk =ak +bk(xk −xk)+ck(xk −xk)2 +dk(xk −xk)3 =aK +bk*0+ck*0+dk*0=ak
∴ak = f
( )
xk (2.8)c. Sk+1
( )
xk+1 =Sk(xk+1) makaSk(xk+1)=ak +bk(xk+1 −xk)+ck(xk+1 −xk)2 +dk(xk+1−xk)3 dan
3
1 1
2 1 1
1 1
1
1( ) + + ( + ) + ( + ) + ( + )
+ = k + k − k + k − k + k − k
k x a b x x c x x d x x
S
Sk+1(xk+1)=ak+1 +bk+1(xk+1−xk+1)+ck+1(xk+1−xk+1)+dk+1(xk+1 −xk+1) =ak+1++bk+1*0+ck+1*0+dk+1*0
=ak+1
Sk+1
( )
xk+1 =Sk(xk+1) makaak+1 =ak +bk(xk+1−xk)+ck(xk+1−xk)2 +dk(xk+1−xk)3 jika xk+1−xkdi ganti hk maka
3 2
1 1
1( k ) k k k k k k k k
k x a a b h c h d h
S + + = + = + + + (2.9)
d. S'k+1
( )
xk+1 =S'k(xk+1)perhatikan Sk
( )
x =ak +bk(x−xk)+ck(x−xk)2 +dk(x−xk)3( )
2' ) ( 3 ) (
2 k k k k
k
k x b c x x d x x
S = + − + −
( )
2' ) ( 3 ) (
2 k k k k k k
k k
k x b c x x d x x
S = + − + −
0 * 3 0 *
2 k k
k c d
b + +
=
k
b
=
( )
21 1
1
' 2 ( ) 3 ( )
k k k k k k k k
k x b c x x d x x
S + = + + − + + −
dan Sk+1(x)=ak+1+bk+1(x−xk+1)+ck+1(x−xk+1)2 +dk+1(x−xk+1)3
( )
21 1 1 1 1 ' ) ( 3 ) (
2 + + +
+
+ = k + k − k + k − k
k x b c x x d x x
S
( )
21 1 1 1 1 1 1 1 ' ) ( 3 ) (
2 + + + + +
+ +
+ k = k + k k − k + k k − k
k x b c x x d x x
S 0 * 3 0 * 2 1
1 k k
k c d
b + +
= + +
1 +
=bk
( )
1 ' ( 1)1 '
+ +
+ k = k k
k x S x
S
maka bk+1 =bk +2ck(xk+1 −xk)+3dk(xk+1−xk)2 jika xk+1 −xkdi ganti hk maka
S'k+1(xk+1)=bk+1 =bk +2ckhk +3dkhk2 (2.10)
e. S"k+1
( )
xk+1 =S"k(xk+1)( )
2 6 ( )''
k k k
k x c d x x
S = + −
( )
2 6 ( )''
k k k k k
k x c d x x
S = + −
=2ck +6dk*0 =2ck
S''k
( )
xk+1 =2ck +6dk(xk+1−xk)dan S'k+1
( )
x =bk+1+2ck+1(x−xk+1)+3dk(x−xk+1)2S''k+1
( )
xk+1 =2ck+1 +6dk+1(xk+1−xk+1) =2ck+1+6dk+1*0=2ck+1
S"k+1
( )
xk+1 =S"k(xk+1)maka )2ck+1 =2ck +6dk(xk+1−xk
jika xk+1 −xkdi ganti hk maka
k k k
k c d h
c 2 6
2 +1 = +
ck+1 =ck +3dkhk (2.11) dari (2.11) didapat
k k k k
h c c d
3
1−
= + (2.12)
Dari (2.9) dan (2.12) diperoleh :
2 1
1
3 3
2 k
k k k k k k
k h
h c c h c b
b + = + + + −
k k k k k k
k c h c h c h
b + + −
= 2 +1
Dari (2.9) dan (2.12) di peroleh :
3 2
1 k k k k k k k
k a b h c h d h
a + = + + +
3 1
2 1
3 k k
k k k k k k k k h h c c h c h b a
a + = + + + + −
2 1 2 1 3 ) ( k k k k k k k k k k k k h h c c h h c h a h a
b = + − + + + −
k k k k k k k k k k k h h c h c h c h a a b 3
3 2 1 2 2
1 − − − +
= + +
(
1)
(
2 1)
3 1
+
+ − − +
= k k
k k k k
k c c
h a a h
b (2.14) dengan pengurangan indeks
(
)
(
k k)
k k
k k
k c c
h a
a h
b = − − − − − +
− − 1 1 1 1 1 2 3 1 (2.15)
Dari (2.13) dan (2.14) di peroleh :
(
k k)
kk
k b h c c
b = −1 − −1 −1 +
(
1)
(
2 1)
3 1
+
+ − − +
= k k
k k k k
k c c
h a a h b
jadi
(
)
(
2)
( )3 1 1 1 1 1
1 k k k k k
k k k k
k c c h c c
h a a h
b − = + − − + + − − − + (2.16) Persamaan (2.15) dan (2.16) menghasilkan
(
)
(
)
(
)
(
2)
( )(
)
(
k k)
k k k k a a h a ah −1 − −1 − +1−
1 1
(
)
3 3 2 2 3 1 1 1 1 1 1 1 1 k k k k k k k k k k k kk h c h c
c h c h c h c c
h − − −
− − − − + − − + + + − =
(
)
(
k k)
k k k k a a h a a
h −1 − −1 − +1−
1 1
(
)
3 3 3 2 3 2 3 1 1 1 1 1 1 1 k k k k k k k k k kk h c h c h c h c
c c
h − − − − − −
+ + − + − + − =
(
)
(
k k)
k k k k k k kk k k k c h c h c c h a a h a a
h 1 1 1 (2 1) 1 1 2 1
3 3 − − − + + − − − − + − = − − −
(
)
(
k k)
k k k k k k kk k k k c h c c h c h a a h a a
h 1 1 1 1 1 1 (2 1) 2 1
3 3 − + − − − − − + − − − = + + +
(
)
(
1)
1 1 1 11
1 (2 )
3 3 + − − − − −
+ − − k − k = k k + k k + k + k k
k k k k c h c c h c h a a h a a
h (2.17)
untuk k = 1, 2, . . ., n-1
dari persamaan-persamaan yang telah didapat di atas, sudah didapatkan per-samaan-persamaan untuk mencari koefisien-koefisien a, b, dan d. Untuk men-cari koefisien c akan digunakan persamaan (2.17) dengan mengikuti teorema yang memenuhi kondisi dari (i) atau (ii).
Teorema 2.1
Jika f di definisikan pada a= x0 < x1 <. . .<xn =b, maka f adalah
interpolasi spline natural tunggal pada simpul x0 < x1 <. . .<xn, interpo-lasi spline natural memenuhi keadaan S''(a)=0 dan S''(b)=0.
0 ) (
'' =
a
S dan S''(b)=0 menyatakan secara tidak langsung 0 2 ) ( '' = = n
n S x
c dan )0=S''(x0)=2c0 +6d0(x0 −x0
jadi 0c0 = .
Dua pernyataan c0 =0 dan cn =0 dalam persamaan
(
)
(
1)
1 1 1 11
1 (2 )
3 3 + − − − − −
+ − − k − k = k k + k k + k + k k
k k k k c h c c h c h a a h a a h
menghasilkan sistem linear dengan persamaan Ax=b, A adalah (n+1) dengan matriks (n+1).
(
)
(
)
(
)
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + = − − − − 1 0 0 0 2 0 2 0 2 0 0 0 1 1 1 2 2 2 2 1 1 1 1 0 0 n n nn h h h
h h h h h h h h h A ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − = − − − − − 0 ) ( 3 ) ( 3 ) ( 3 ) ( 3 0 2 1 2 1 1 0 1 0 1 2 1 n n n n n n a a h a a h a a h a a h M b
Dari persamaan Ax = b akan didapat penyelesaian tunggal dan dapat dicari dengan Eliminasi Gauss.
Teorema 2.2
Jika f didefinisikan pada a=x0 <x1 <. . .< xn =bdan turunan pada a dan b, maka f adalah Interpolasi Spline Apitan pada simpul
n
x x
x0 < 1 <. . .< , Interpolasi Spline dinyatakan S'(a)= f'(a) dan ) ( ) ( ' ' b f b
S = .
Bukti :
Menggunakan S'(a)=S'(x0)=b0
implementasi
(
1)
(
2 1)
3 1
+
+ − − +
= k k
k k k k
k c c
h a a h
b dengan k = 0
(
0 1)
0 0 0 1 ' 2 3 )( h c c
h a a a
f = − − +
(
)
( ) 3 2 ' 0 1 0 1 0 00 a a f a
h c h c
h + = − −
) (
)
( 1 1 1
'
n n n n
n b h c c
b b
f = = − + − − +
persamaan
(
1)
(
2 1)
3 1
+
+ − − +
= k k k
k k k
k c c
h a a h
b dengan k =n−1
(
2)
( )3 )
( 1 1 1 1
1 1 ' n n n n n n n n n c c h c c h h a a b
f = − − − − + + − − −
− − ) 2 ( 3 1 1 1 1 n n n n n n c c h h a a + − − = − − − −
dan 2 3 ( ) 3 ( 1)
1 ' 1 1 1 − − − −
− + = − n − n
n n
n n
n a a
Persamaan
(
)
(
1)
1 1 1 11
1 (2 )
3 3 + − − − − −
+ − − k − k = k k + k k + k + k k
k k k k c h c c h c h a a h a a h
dengan persamaan 2 3
(
1 0)
'( )0 1 0 0
0 a a f a
h c h c
h + = − −
dan 2 3 ( ) 3 ( 1)
1 ' 1 1 1 − − − −
− + = − n − n
n n
n n
n a a
h b f c h c h
menghasilkan sistem linear dengan persamaan Ax = b .
(
)
(
)
(
)
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + = − − − − − − 1 1 1 1 2 2 2 2 1 1 1 1 0 0 0 0 2 0 0 2 0 2 0 2 0 0 2 n n n n n n h h h h h h h h h h h h h h h h A ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − − − − − = − − − − − − − ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 1 1 ' 2 1 2 1 1 0 1 0 1 2 1 ' 0 1 0 n n n n n n n n n a a h b f a a h a a h a a h a a h a f a a h M bDari persamaan Ax = b akan didapat penyelesaian tunggal dan dapat dicari dengan Eliminasi Gauss.
Gunakan Tabel 2.1 untuk mencari nilai Interpolasi saat x = 1.11 menggunakan Spline Kubik.
Penyelesaian :
Persamaan Spline Kubik dari persamaan (2.7)
Sk
( )
x =ak +bk(x−xk)+ck(x−xk)2 +dk(x−xk)3 k = 1, 2, . . ., n-1Dari (2.8) didapat koefisien a
S(xk) = f(xk) = ak
S(x1) = f(x1) = 0.0953 = a1 S(x2) = f(x2) = 0.1823 = a2 S(x3) = f(x3) = 0.2624 = a3 S(x4) = f(x4) = 0.3365 = a4 S(x5) = f(x5) = 0.4055 = a5
Untuk hk = xk+1 −xk
h1 = x2 – x1 = 1.2 – 1.1 = 0.1 h2 = x3 – x2 = 1.3 – 1.2 = 0.1 h3 = x4 – x3 = 1.4 – 1.3 = 0.1 h4 = x5 – x4 = 1.5 – 1.4 = 0.1
Untuk mencari koefisien c menggunakan Teorema 2.1 yaitu Batas Natural
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − − − − = 0 153 . 0 18 . 0 207 . 0 0 0 ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 ) ( 3 0 3 4 3 4 5 4 2 3 2 3 4 3 1 2 1 2 3 2 a a h a a h a a h a a h a a h a a h b ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 5 4 3 2 1 1 0 0 0 0 1 . 0 4 . 0 1 . 0 0 0 0 1 . 0 4 . 0 1 . 0 0 0 0 1 . 0 4 . 0 1 . 0 0 0 0 0 1 c c c c c ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = 0 153 . 0 18 . 0 207 . 0 0
Dengan Eliminasi Gauss untuk persaman sistem linear Ax = b
Koefisien ck yang di dapat
0 4468 . 0 2571 . 0 5818 0 0 5 4 3 2 1 = − = = − = = c c c . c c
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
2)
0.69 ( 0.0298) 0.7198 3 1 7388 . 0 0022 . 0 741 . 0 2 3 1 8312 . 0 ) 0302 . 0 ( 801 . 0 2 3 1 8894 . 0 ) 0194 . 0 ( 87 . 0 2 3 1 2 3 1 5 4 4 4 5 4 4 4 3 3 3 4 3 3 3 2 2 2 3 2 2 2 1 1 1 2 1 1 1 1 = − − = + − − = = − = + − − = = − − = + − − = = − − = + − − = + − − = + + c c h a a h b c c h a a h b c c h a a h b c c h a a h b c c h a a hb k k
k k k k k
Dari persamaan (2.12) didapat koefisien untuk dk
4893 . 1 3 3463 . 2 3 7963 . 2 3 9393 . 1 3 3 4 4 5 4 3 3 4 3 2 2 3 2 1 1 2 1 1 = − = − = − = = − = − = − = − = + h c c d h c c d h c c d h c c d h c c d k k k k
Persamaan Spline Kubik Sk(x)
Dari Persamaan Spline Kubik di atas maka didapat
BAB III
PERANCANGAN DAN IMPLEMENTASI
A. Perancangan Umum
Untuk mengetahui seberapa besar galat yang dihasilkan dalam metode Spline yaitu Spline Linear, Spline Kuadrat dan Spline Kubik maka akan dilakukan percobaan. Percobaan dilakukan menggunakan sebuah program dengan bahasa pemrograman Delphi versi 7.0. Program yang akan dibuat adalah program dengan masukan spline. Sebagai dasar perbandingannya adalah galat yang dihasilkan masing-masing Spline dengan data pada tabel natural logaritma.
Program masukan spline digunakan untuk mencari Interpolasi dalam metode Spline yaitu Spline Linear, Spline Kuadrat dan Spline Kubik. Dari hasil percobaan dapat diketahui nilai Interpolasi yang dilakukan oleh Spline Linear, Spline Kuadrat dan Spline Kubik. Perbandingan Interpolasi dari data masukan
x f(x) 1.11
1.22 1.33 1.44 1.49
0.1042 0.1989 0.2853 0.3647 0.3987
dianalisis dengan menggunakan grafik dan hasilnya dianalisis untuk ditarik ke-simpulan.
B. Perancangan Antarmuka
Program yang dibuat terdiri dari 2 layar, yaitu :
1. Layar Sampul
Gambar 3.1 Rancangan Layar Sampul
LOGO
Perbandingan Interpolasi dalam Metode Spline
Oleh :
Anastasia Vrysca Jayanti 013114014
Jurusan Matematika
Fakultas Matematika Dan Ilmu Pengetahuan alam Universitas Sanata Dharma
Yogyakarta
Dalam layar ini berisi text judul, nama penyusun beserta NIM, nama fakultas dan nama universitas serta 2 tombol pilihan.
2. Layar Masukan Spline
Dalam layar ini terdapat pilihan spline, edit text untuk jumlah data masukan, jumlah data yang dicari, kolom baris untuk dihapus dan kolom baris untuk ditambah, stringgrind untuk masukan nilai-nilai data, 2 tabsheet yang masing-masing terdapat stringgrid untuk hasil pencarian dan galat, chart untuk grafik spline yang dipilih dan 11 tombol pilihan.
C. Rancangan Proses
Proses yang dilakukan untuk membandingkan Interpolasi dalam metode Spline yaitu Spline Linear, Spline Kuadrat dan Spilne Kubik, dilakukan percobaan dengan memasukan nilai-nilai data. Pertama kali yang dilakukan yaitu memilih spline yang akan digunakan, kemudian memasukan nilai-nilai data, jum-lah data, jumjum-lah pencarian dan nilai yang akan dicari. Selanjutnya program mela-kukan proses perhitungan sebanyak nilai yang dicari. Hasil yang ditampilkan dari perhitungan berupa nilai interpolasi. Dari hasil perhitungan ketiga spline tersebut akan ditampilkan galat untuk masing-masing nilai yang didapat. Dari hasil perco-baan kemudian dianalisis dan dibandingkan galatnya untuk setiap spline.
D. Implementasi
Dalam program masukan spline ini terdapat tiga bagian penting dalam me-tode Spline yaitu perhitungan Spline Linear, Spline Kuadrat dan Spline Kubik. 1. Spline Linear
i = 1
i < = data-1
i = i + 1 masuk
>= Xi & masuk <= Xi+1
Selesai
Tidak
Tidak Ya
Ya
Tulis fx
Perhitungan Spline Linear :
(
masuk Xi)
i X 1 i X
i fx 1 i fx i fx
fx −
− +
− + + =
Input data, pencarian, X (Titik-titik data),fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari)
Mulai
Setelah user memasukan banyaknya data yang diketahui, banyaknya data yang dicari, titik-titik data dan nilai-nilai data yang diketahui, titik-titik data yang nilainya yang akan dicari, selanjutnya dengan menekan tombol Spline maka pro-gram menjalankan proses perhitungan dengan Spline Linear.
Potongan programnya sebagai berikut :
for i :=1 to data-1 do begin
if(masuk[w]>=strtofloat(cells[1,i]))and (masuk[w]<=strtofloat(cells[1,i+1]))then begin
fx:=strtofloat(cells[2,i])+(((strtofloat(cells[2,i+1])-
strtofloat(cells[2,i]))/(strtofloat(cells[1,i+1])- strtofloat(cells[1,i])))*(masuk[w]-strtofloat(cells[1,i])));
with StringGrid1 do begin
Cells[2,w]:= FloatToStr(fx); end;
end; end;
Nilai Spline Linear digunakan untuk pencarian galat. Saat tombol galat diklik maka program akan menjalankan nilai galat untuk Spline Linear. Untuk pembuatan grafik yang pertama dilakukan adalah menghitung selisih titik data yang diketahui yang terakhir dengan titik data yang diketahui yang pertama dan dibagi 1000. Hasilnya merupakan penambahan titik data yang diketahui yang pertama sampai titik data yang diketahui yang terakhir. Kemudian program melakukan perhitungan nilai data dengan alur perhitungan Spline Linear.
2. Spline Kuadrat
Hitung Koef. b1, c1, a2, b2, c2
Ya Tidak
Tidak
Ya k <= data-1
k = 3
k = k + 1 Input data, pencarian,
X[ (Titik-titik data), fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari)
Hitung ak, bk, ck Mulai
masuk >= X1
& masuk
<= X2
Tulis fx
Selesai Ya
fx = b1 * masuk + c1
k = 3
k <= data
masuk >= Xk-1
& masuk
<= Xk
fx = a[k-1] * masuk masuk+ b{k-1] * masuk+ c[k-1]
k = k + 1 Tidak
Ya
Tidak
Mencari Koefisien Spline Kuadrat ak,bk,ck
Gambar 3.4 Flowchart Spline Kuadrat
Spline Kuadrat membutuhkan membutuhkan 3(n-1) buah konstanta yang dicari dengan mengikuti kondisi yang ada di bab II. Setelah user memasukan ban-yaknya data yang diketahui, banban-yaknya data yang dicari, titik-titik data dan nilai-nilai data yang diketahui, titik-titik data yang nilai-nilainya yang akan dicari maka pro-gram akan mencari 3(n-1) konstanta yang dibutuhkan. Pencarian konstanta dilakukan pensubtitusian. Potongan program berikut merupakan pencarian konstanta ak, bk, ck:
for k:=3 to data-1 do begin
r[k]:=StrToFloat(Cells[1,k])-StrToFloat(Cells[1,k+1]); t[k]:=StrToFloat(Cells[2,k])-StrToFloat(Cells[2,k+1]); end;
b[1]:=(StrToFloat(Cells[2,1])-StrToFloat(Cells[2,2]))/ (StrToFloat(Cells[1,1])-StrToFloat(Cells[1,2])); c[1]:=StrToFloat(Cells[2,1])-b[1]*StrToFloat(Cells[1,1]);
a[2]:=(StrToFloat(Cells[2,2])-StrToFloat(Cells[2,3]))- (b[1]*(StrToFloat(Cells[1,2])-StrToFloat(Cells[1,3])))/
(2*StrToFloat(Cells[1,2])*StrToFloat(Cells[1,3])- StrToFloat(Cells[1,2])*StrToFloat(Cells[1,2])-StrToFloat(Cells[1,3])*StrToFloat(Cells[1,3])); b[2]:=b[1]-2*a[2]*StrToFloat(Cells[1,2]);
c[2]:=StrToFloat(Cells[2,2])-a[2]*StrToFloat(Cells[1,2])* StrToFloat(Cells[1,2])-b[2]*StrToFloat(Cells[1,2]);
for k:=3 to data-1 do begin
j[k]:=2*StrToFloat(Cells[1,k])*StrToFloat(Cells[1,k+1])- StrToFloat(Cells[1,k])*StrToFloat(Cells[1,k])- StrToFloat(Cells[1,k+1])*StrToFloat(Cells[1,k+1]); end;
for k:= 3 to data-1 do begin
a[k]:= ((StrToFloat(Cells[2,k])-StrToFloat(Cells[2,k+1]))- (((2*a[k-1]*StrToFloat(Cells[1,k]))+b[k-1])*r[k]))/j[k]; b[k]:= ((2*a[k-1]*StrToFloat(Cells[1,k]))+b[k-1])-
(2*a[k]*StrToFloat(Cells[1,k]));
Potongan program berikut untuk mencari nilai Spline Kuadrat :
if(masuk[w]<StrToFloat(Cells[1,2]))and (masuk[w]>=StrToFloat(Cells[1,1]))then begin
fx:=b[1]*masuk[w]+c[1]; With StringGrid1 do begin
Cells[3,w]:= FloatToStr(fx); end;
end;
for k:=3 to data do begin
if(masuk[w]>=StrToFloat(Cells[1,k-1]))and (masuk[w]<=StrToFloat(Cells[1,k]))then begin
fx :=a[k-1]*masuk[w]*masuk[w]+b[k-1]*masuk[w]+c[k-1]; with StringGrid1 do
begin
Cells[3,w]:= FloatToStr(fx); end;
end; end;
Nilai Spline Kuadrat digunakan untuk pencarian galat. Saat tombol galat dik-lik maka program akan menjalankan nilai galat untuk Spline Kuadrat. Untuk pembuatan grafik yang pertama dilakukan adalah menghitung selisih titik data yang diketahui yang terakhir dengan titik data yang diketahui yang pertama dan dibagi 1000. Hasilnya merupakan penambahan titik data yang diketahui yang per-tama sampai titik data yang diketahui yang terakhir. Kemudian program melakukan perhitungan nilai data dengan alur perhitungan Spline Kuadrat.
3. Spline Kubik
Alur Spline Kubik digambarkan secara singkat pada gambar 4.3. Titik-titik data yang diketahui dianggap X dan nilai-nilai data yang diketahui dianggap fx dan titik-titik data yang akan dicari nilainya dianggap masuk.
Tidak
Tidak Ya
k <= data k = 2
k = k + 1 Input data, pencarian,
X[ (Titik-titik data), fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari)
Mulai
Ya
Turunan kedua ujung simpul m1 = 0 & mdata = 0
mk = ( vk-ck * mk+1 )
/ bk
k = k - 1 k <= 2 k = data - 1
1 Hitung
Selisih titik (h1)& nilai data (d1]
Hitung
Selisih titik (hk)& nilai data (dk]
Selisih titik data hk & nilai
data dk
Turunan Kedua mk
Tidak
Tidak Tidak Tidak 1
k = k+ 1 k = 1
Hitung koef.
Sk,1, Sk,2, Sk,3, Sk,4
jj = 2
jj = jj + 1 masuk >= Xjj - 1
& masuk
<= Xjj k <=
data
X = X0
jj <= data k = 1
ww = masuk – Xk z = ((Sk,4 * ww + Sk,3) * w + Sk,2) * w + Sk,1
Tulis fx
Selesai
k = jj -1
ww = masuk – Xk z = ((Sk,4 * ww + Sk,3) * w + Sk,2) * w + Sk,1 Ya
Ya
Ya
Iterasi koefisien Spline Kubik
Sk,1, Sk,2, Sk,3, Sk,4
Perhitungan Spline Kubik
Ya
Spline Kuadrat membutuhkan membutuhkan 4n buah konstanta yang dicari dengan mengikuti kondisi yang ada di bab II. Setelah user memasukan banyaknya data yang diketahui, banyaknya data yang dicari, titik-titik data dan nilai-nilai data yang diketahui, titik-titik data yang nilainya yang akan dicari maka program akan mencari 4n konstanta yang dibutuhkan. Pencarian konstanta dilakukan dengan eliminasi Gauss. Potongan program berikut merupakan pencarian konstanta Sk,1, Sk,2, Sk,3, Sk,4.
cells[1,data+1]:=floattostr(0); cells[2,data+1]:=floattostr(0);
h[1] := strtofloat(cells[1,2])-strtofloat(cells[1,1]);
d[1] := (strtofloat(cells[2,2])-strtofloat(cells[2,1]))/h[1];
for k :=2 to data do begin
h[k] := strtofloat(cells[1,k+1])-strtofloat(cells[1,k]);
d[k] := (strtofloat(cells[2,k+1])-strtofloat(cells[2,k]))/h[k]; a[k] := h[k];
b[k] := 2*(h[k-1]+h[k]); c[k]:= h[k];
end;
for k := 2 to data do begin
v[k] :=6*(d[k]-d[k-1]); end;
m[1] := 0; m[data] := 0;
for k := 3 to data do begin
tt := a[k-1]/b[k-1]; v[k] := v[k]-tt*v[k-1]; b[k] := b[k]-tt*c[k-1]; end;
m[data] := v[data]/b[data];
for k:= data-1 downto 2 do begin
m[k] := (v[k]-c[k]*m[k+1])/b[k]; end;
for k := 1 to data do begin
s[k,1] := strtofloat(cells[2,k]);
s[k,2] := d[k]-((h[k]*((2*m[k])+m[k+1]))/6); s[k,3] := m[k]/2;
s[k,4] := (m[k+1]-m[k])/(6*h[k]); end;
Potongan program berikut untuk mencari nilai Spline Kubik :
for jj := 2 to data do begin
if(masuk[w]>=strtofloat(cells[1,jj-1]))and
(masuk[w]<=strtofloat(cells[1,jj]))then begin
k := jj-1;
ww := masuk[w]-strtofloat(cells[1,k]);
z := ((s[k,4]*ww+s[k,3])*ww+s[k,2])*ww+s[k,1]; with stringgrid1 do
begin
cells[4,w] := FloatToStr(z); end;
end; end;
if (masuk[w] = strtofloat(cells[1,1])) then begin
k := 1;
ww := masuk[w]-strtofloat(cells[1,k]);
z := ((s[k,4]*ww+s[k,3])*ww+s[k,2])*ww+s[k,1]; with stringgrid1 do
begin
cells[4,w] := FloatToStr(z); end;
end;
BAB IV
ANALISIS
A. Hasil Implementasi
1. Layar Sampul
Layar sampul berisi 2 tombol yaitu : a. Spline : Untuk menuju layar spline b. Exit : Untuk Keluar dari program.
2. Layar Spline
Layar Spline terdapat 2 tabsheet yang pertama untuk pencarian dan yang kedua untuk galat. Layar Spline keseluruhannya terdiri dari :
a. CheckBox
Digunakan untuk memilih Spline yang akan digunakan b. Edit Text
Tempat masukan untuk jumlah data masukan, jumlah data yang dicari, kolom baris yang ingin dihapus, dan kolom baris yang ingin ditambah. c. BitBtn
- No : Digunakan untuk memberi nomor baris.
- Reset : Digunakan untuk membersihkan semua tampilan.
- Delete : Digunakan untuk menghilangkan kolom baris yang di-inginkan.
- Spline : Digunakan untuk mencari nilai Spline. - Clear : Digunakan untuk menghapus grafik. - Grafik : Digunakan untuk menggambar grafik. - Close : Untuk kembali ke layar sampul.
d. StringGrid
- Data : Digunakan untuk masukan nilai data.
- Pencarian : Digunakan untuk masukan nilai data yang dicari dan hasil pencarian.
- Galat : Digunakan untuk hasil perhitungan galat. e. PageControl
- Pencarian : Digunakan untuk StringGrid Pencarian. - Galat : Digunakan untuk StringGrid Galat.
B. Pengujian Program Spline
Contoh 4.1
Mencari nilai Interpolasi terhadap data pada tabel 2.1 sebagai data yang diketahui untuk mencari x = [1.11 1.22 1.33 1.44 1.49]
C. Percobaan dan Analisis
Percobaan yang dilakukan untuk menganalisis galat dan waktu komputasi. Percobaan dilakukan sebanyak dua kali yaitu dengan 5 pasangan data. Beda jauh data untuk percobaan pertama yaitu 0.1 dan percobaan kedua 0.3. Untuk menganalisis galat dilakukan dengan mencari 20 nilai data yang ti-tik datanya diketahui. Setelah melakukan percobaan untuk Spline Linear, Spline Kuadrat dan Spline Kubik, hasil yang diperoleh akan dianalisis dengan galat dan grafik.. Untuk menganalisis waktu komputasi, percobaan dilakukan dengan jumlah data pencarian yang berbeda-beda.
Tabel 4.1 Data Percobaan 1 1. Galat
a. Percobaan 1
No x y
1 1.1 0.0953 2 1.2 0.1823 3 1.3 0.2624 4 1.4 0.3365 5 1.5 0.4055
Data Nilai Tabel Galat (%)
No
x y Spline Linear Spline Kuadrat Spline kubik
1 1.11 0.1044 0.38 0.38 0.19 2 1.12 0.1133 0.52 0.52 0.26 3 1.13 0.1222 0.55 0.55 0.33 4 1.14 0.1310 0.69 0.69 0.31 5 1.15 0.1398 0.72 0.72 0.29 6 1.21 0.1906 0.16 0.16 0 7 1.22 0.1989 0.30 0.25 0 8 1.23 0.2070 0.34 0.39 0.05 9 1.24 0.2151 0.37 0.42 0.05 10 1.25 0.2231 0.31 0.45 0.04 11 1.31 0.2700 0.07 0.11 0.04 12 1.32 0.2776 0.14 0.18 0.04 13 1.33 0.2852 0.21 0.28 0.04 14 1.34 0.2927 0.24 0.31 0.03 15 1.35 0.3001 0.23 0.30 0.07 16 1.41 0.3436 0.06 0.09 0 17 1.42 0.3507 0.11 0.17 0 18 1.43 0.3577 0.14 0.22 0 19 1.44 0.3646 0.14 0.25 0.03 20 1.45 0.3716 0.16 0.24 0.03
Grafik Galat Percobaan 1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
1.11 1.13 1.15 1.22 1.24 1.31 1.33 1.35 1.42 1.44
Tititk Data Pencarian
Ga
la
t
( %
)
Spline Linear Spline Kuadrat Spline Kubik
Grafik 4.1 Galat Percobaan 1
Dari tabel 4.2 dan grafik 4.1 diperoleh keterangan :
a. Galat yang dihasilkan Spline Linear dan Spline Kuadrat bisa sama.
b. Dari grafik 4.1 diketahui bahwa Spline Linear yang merupakan orde yang lebih kecil dibandingkan Spline Kuadrat, menghasilkan galat yang lebih kecil. Dengan kata lain orde yang lebih tinggi tidak menjamin akan menghasilkan galat yang lebih kecil.
c. Galat yang dihasilkan Spline Kubik lebih kecil dari galat yang dihasilkan Spline Linear dan Spline Kuadrat.
b. Percobaan 2
Tabel 4.3 Data Percobaan 2
Nilai Data Tabel Galat (%)
No
x y Spline Linear Spline Kuadrat Spline Kubik
1 1.11 0.1044 1.05 1.05 0.67 2 1.12 0.1133 1.68 1.68 1.06 3 1.13 0.1222 2.30 2.30 1.39 4 1.14 0.1310 2.67 2.67 1.60 5 1.15 0.1398 3.08 3.08 1.86 6 1.21 0.1906 3.62 3.62 1.78 7 1.22 0.1989 3.57 3.57 1.76 8 1.23 0.2070 3.49 3.49 1.64 9 1.24 0.2151 3.35 3.35 1.53 10 1.25 0.2231 3.23 3.23 1.43 11 1.31 0.2700 2.18 2.18 0.74 12 1.32 0.2776 1.95 1.95 0.65 13 1.33 0.2852 1.75 1.75 0.56 14 1.34 0.2927 1.50 1.50 0.44 15 1.35 0.3001 1.27 1.27 0.37 16 1.41 0.3436 0.17 0.26 0.06 17 1.42 0.3507 0.37 0.48 0.09 18 1.43 0.3577 0.50 0.70 0.11 19 1.44 0.3646 0.60 0.88 0.16 20 1.45 0.3716 0.75 1.02 0.16
Tabel 4.4 Hasil Galat Percobaan 2
No x y
Grafik Galat Percobaan 2
0 0.5 1 1.5 2 2.5 3 3.5 4
1.11 1.13 1.15 1.22 1.24 1.31 1.33 1.35 1.42 1.44
Titik Data Pencarian
Gal
a
t (
%
)
Spline Linear Spline Kuadrat Spline Kubik
Grafik 4.2 Galat Percobaan 2
Dari tabel 4.4 dan grafik 4.2 diperoleh keterangan :
a. Dari grafik 4.2 diketahui bahwa semakin besar beda jauh data maka galat yang dihasilkan Spline Linear dan Spline Kuadrat relatif sama.
b. Galat yang dihasilkan Spline Kubik tetap lebih kecil dibandingkan galat yang dihasilkan Spline Linear dan Spline Kuadrat meskipun beda jauh data bertambah.
c. Percobaan 3
Tabel 4.5 Data Percobaan 3
Nilai Data Tabel Galat (%)
No
x y Spline Linear Spline Kuadrat Spline Kubik
1 1.11 0.1044 73.0585 73.0585 68.1992 2 1.12 0.1133 72.9038 72.9038 68.0494 3 1.13 0.1222 72.7496 72.7496 6