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 2007
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 I think that I am nothing I think that I can’t do anything But I can do a lot of things with Him
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
My Cute Father
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.
Hasil percobaan menunjukkan bahwa beda jauh data mempengaruhi galat. Semakin besar nilai data yang dicari galat yang dihasilkan semakin kecil dan se-makin kecil nilai data yang dicari galat yang dihasilkan sese-makin besar. Spline Linear menghasilkan galat yang besar dan waktu komputasi yang paling cepat, Spline Kuadrat menghasilkan galat yang besar dan waktu komputasi yang lama dan Spline Kubik menghasilkan galat yang paling kecil dan waktu komputasi yang paling lama.
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.
The result shows that if searching data value is more bigger, the result fewer of error, if searching data value is more fewer, the result bigger of error. Linear Spline has bigger error but faster time computation, Quadrate Spline result bigger error and longer time computation and Cubic Spline result fewer of error and longer of time computation.
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.
5. Ibu Lusia Krismiyati Budiasih, S. Si, M. Sc, selaku dosen penguji dan sebagai dosen pengajar, terima kasih atas kebaikannya dan yang selalu sabar seperti seorang ibu dan tempat bercerita sebagai seorang teman.
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 ………..… i ii iii iv v vi vii viii xi xiv xv 1 1 2 2 3 3 3 4
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...
6 6 6 7 7 9 12 25 25 26 26 26 27 28 28 30 33 38 38 38 39 41
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... 41 42 42 44 46 48 48 50 54 54 55 56 57
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………
8 9 12 24 42 42 44 44 46 46 48 50 51
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………..
26 27 29 31 35 38 39 41 43 45 47 48 50 51 52
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.
Banyak metode-metode yang dapat dipakai untuk interpolasi yaitu Metode Newton, Metode Lagrange, Metode eksponensial dan Metode Spline. Dalam penulisan ini hanya akan dibahas interpolasi dengan Metode Spline yaitu Spline Linear yang menurunkan polinom orde pertama, Spline Kuadrat yang
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
Penulisan ini bertujuan untuk membandingkan Spline Linear, Spline Kuadrat dan Spline Kubik dalam mencari nilai antara titik-titik data yang telah diketahui.
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
Pada bab ini terdapat kesimpulan dan saran dari hasil analisa serta pembahasan masalah berdasarkan pada hasil yang didapat secara keseluruhan.
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 sebuahpolinomPn
( )
x yang bernilai fj di xj, dengan kata lain
dan 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 Pn bernilai 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 x yang 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 P = = =
Definisi 2.1 :
Andaikan p~ adalah nilai hampiran dari p maka Galat Mutlak didefinisikan
sebagai Em= p−~p dan Galat Relatif Persen 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
Spline Linear merupakan polinom sepotong-sepotong yang paling sederhana. Spline linear digunakan untuk pencarian interpolasi dengan cara menghubungkan titik-titik data yang berdekatan dengan sebuah garis lurus. Hasil dari Spline ini dapat disebut Spline orde pertama. Spline Linear untuk
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.
i xi f(xi) 1 2 3 4 5 1.1 1.2 1.3 1.4 1.5 0.0953 0.1823 0.2624 0.3365 0.4055 n n n n n n n n n i i i i i i i i i x x x x x x x x f x f x f x f x x x x x x x x f x f x f x f x x x x x x x x f x f x f x f x x x x x x x x f x f x f x f ≤ ≤ − − − + = ≤ ≤ − − − + = ≤ ≤ − − − + = ≤ ≤ − − − + = − − − − − − + + + 1 1 1 1 1 1 1 1 1 3 2 2 2 3 2 3 2 2 2 1 1 1 2 1 2 1 1 ) ( ) ( ) ( ) ( ) ( . . . (2.1) ) ( ) ( ) ( ) ( ) ( . . . ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (
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
(
x ,i 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 =aixi +bxi +ci= f
( )
xi 2 ) ( i=1,2,3,...,n−1 (2.3) 2 1( )
1 1 1) ( i+ = i i+ + i i+ + i= i+ i x a x bx c f x f 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 2 , kondisi ini dapat dinyatakan ai
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 : a1 = 0
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.3991Jadi 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
( )
( ) ( )2 ( )3 k k k k k k k k k k k k x a b x x c x x d x x S = + − + − + − =aK +bk*0+ck*0+dk*0 =ak ∴ak = f( )
xk (2.8) c. Sk+1( )
xk+1 =Sk(xk+1) maka 3 1 2 1 1 1) ( ) ( ) ( ) ( k k k k k k k k k k k k x a b x x c x x d x x S + = + + − + + − + + − 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) maka 3 1 2 1 1 1 k k( k k) k( k k) k( k k) k a b x x c x x d x x a + = + + − + + − + + −jika xk+1−xkdi ganti h maka k
3 1 2 1 1 1 1 1( k ) k k k( k k) k( k k) k( k k) k x a a b x x c x x d x x S + + = + = + + − + + − + + −
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( )
( ) ( )2 ( )3 k k k k k k k k x a b x x c x x d x x S = + − + − + −( )
2 ' 2 ( ) 3 ( ) k k k k k k x b c x x d x x S = + − + −( )
2 ' 2 ( ) 3 ( ) 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 =( )
2 1 1 1 ' 2 ( ) 3 ( ) k k k k k k k k k x b c x x d x x S + = + + − + + − 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( )
2 1 1 1 1 1 ' 2 ( ) 3 ( ) + + + + + = k + k − k + k − k k x b c x x d x x S( )
2 1 1 1 1 1 1 1 1 ' 2 ( ) 3 ( ) + + + + + + + + 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 2 1 1 1 k 2 k( k k) 3 k( k k) k b c x x d x x b + = + + − + + −jika xk+1−xkdi ganti h maka k
2 1 1 1 ' ( ) 2 3 k k k k k k k k x b b c h d h S + + = + = + + (2.10) e. S"k+1
( )
xk+1 =S"k(xk+1) perhatikan '( )
2 ( ) 3 ( )2 k k k k k k x b c x x d x x S = + − + −( )
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 ''( )
1 2 6 ( 1 ) k k k k k k x c d x x S + = + + − dan( )
2 1 1 1 1 1 ' 2 ( ) 3 ( ) + + + + + = k + k − k + k − k k x b c x x d x x S S''k+1( )
xk+1 =2ck+1 +6dk+1(xk+1−xk+1) =2ck+1+6dk+1*0 =2ck+1( )
" ( 1) 1 1 " + + + k = k k k x S x S maka )2ck+1 =2ck +6dk(xk+1−xkjika xk+1−xkdi ganti h maka k 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 =bk +hk(ck +ck+1) (2.13)
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 2 1 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)
k k 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)
( ) 3 1 2 3 1 1 1 1 1 1 1 1 1 k k k k k k k k k k k k k k k c c h c c h a a h c c h a a h + − + − − = + − − − − + + − − − −(
)
(
k k)
k k k k a a h a a h −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 k k 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 k k h c h c h c h c c c h − − − − − − + + − + − + − =(
)
(
k k)
k k k k k k k k 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 k k 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 1 1 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-1dari 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 ''( )=0
a
S dan S''(b)=0. Bukti :
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 1 1 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 hmenghasilkan 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 n n 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 bDari persamaan Ax = b akan didapat penyelesaian tunggal dan dapat dicari dengan Eliminasi Gauss.
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = n c c c M 1 0 x
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 '( ) '( 0) 0 b x S a S = = 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 0 0 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 h b f c h c h .Persamaan
(
)
(
1)
1 1 1 1 1 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(
)
'( ) 0 1 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 hmenghasilkan 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.
Contoh 2.3 ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = n c c c M 1 0 x
Gunakan Tabel 2.1 untuk mencari nilai Interpolasi saat x = 1.11 menggunakan Spline Kubik.
Penyelesaian :
Persamaan Spline Kubik dari persamaan (2.7)
( )
( ) ( )2 ( )3 k k k k k k k k x a b x x c x x d x x S = + − + − + − 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
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + = 5 4 3 2 1 5 4 3 2 1 4 4 3 3 3 3 2 2 2 2 1 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 1 0 0 0 0 ) ( 2 0 0 0 ) ( 2 0 0 0 ) ( 2 0 0 0 0 1 c c c c c c c c c c h h h h h h h h h h h h A
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − − − − = 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 h b k k k k k k kDari 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)
( )
( )
( )
( )
3 2 3 4 4 2 4 4 4 4 4 4 3 2 3 3 3 2 3 3 3 3 3 3 3 2 3 2 2 2 2 2 2 2 2 2 3 3 1 1 2 1 1 1 1 1 1 ) 4 . 1 ( 4893 . 1 ) 4 . 1 ( 4468 . 0 ) 4 . 1 ( 7198 . 0 3365 . 0 5 1 4 1 ) ( ) ( ) ( ) 3 . 1 ( 3463 . 2 ) 3 . 1 ( 2571 . 0 ) 3 . 1 ( 7388 . 0 2624 . 0 4 1 3 1 ) ( ) ( ) ( ) 2 . 1 ( 7963 . 2 ) 2 . 1 ( 5818 . 0 ) 2 . 1 ( 8312 . 0 1823 . 0 3 1 2 1 ) ( ) ( ) ( ) 1 . 1 ( 9393 . 1 ) 1 . 1 ( 8894 . 0 0953 . 0 2 1 1 1 ) ( ) ( ) ( − + − − − + = ≤ ≤ − + − + − + = − − − + − + = ≤ ≤ − + − + − + = − + − − − + = ≤ ≤ − + − + − + = − − − + = ≤ ≤ − + − + − + = x x x . x . x x d x x c x x b a x S x x x . x . x x d x x c x x b a x S x x x . x . x x d x x c x x b a x S x x . x . x x d x x c x x b a x SDari 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
Exit Spline
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
Alur Spline Linear digambarkan secara singkat pada gambar 4.1. 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.
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
Alur Spline Kuadrat digambarkan secara singkat pada gambar 4.2. 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.
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
Perhitungan 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])); c[k]:= StrToFloat(Cells[2,k])-a[k]*StrToFloat(Cells[1,k])* StrToFloat(Cells[1,k])-b[k]*StrToFloat(Cells[1,k]); end;
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
Turunan kedua ujung simpul m1 = 0 & mdata = 0
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;
m[1] := 0; m[data] := 0;
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;
Nilai Spline Kubik digunakan untuk pencarian galat. Saat tombol galat diklik maka program akan menjalankan nilai galat untuk Spline Kubik. 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 Kubik.
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.