PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
“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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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,
Anastasia Vrysca Jayanti
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
Metode Spline adalah salah satu metode Interpolasi yaitu dengan memakai pendekatan fungsi-fungsi Spline sebagai polinom penghubung. Fungsi Spline terdiri 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 semakin kecil nilai data yang dicari galat yang dihasilkan semakin 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
Spline method is one of Interpolation method that with make approximation Spline functions as connected polynom. Spline function 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 approximation value divide exact value and multiply one hundred percent. While the computation processing duration by determining how many times the time computation 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji syukur kepada Allah Bapa Yesus Kristus atas Roh Kudus dan segala kasih-Nya yang berlimpah, sehingga skripsi yang berjudul Perbandingan Interpolasi Dalam Metode Spline, sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains (S.Si) Program Studi Matematika, dapat terselesaikan dengan baik. Penyusunan skripsi ini tidak terlepas dari bantuan dan dukungan dari berbagai 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 panitia 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 Universitas 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6. Dosen-dosen Program Studi Matematika yang memberi dukungan kepada penulis baik selama kuliah maupun dalam penyusunan skripsi ini. 7. Bapak Z. Tukijo yang telah membantu dalam urusan administrasi dan persiapan 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 menjadi 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. 10. Mas Robeth . . . . . . . . . Thanks ya!!
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 pihak 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,
Anastasia Vrysca Jayanti
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI Halaman HALAMAN JUDUL……………………………………………………….
i
HALAMAN PERSETUJUAN PEMBIMBING…………............................. ii HALAMAN PENGESAHAN……………………………………………… iii HALAMAN PERSEMBAHAN……………………………………………
iv
HALAMAN KEASLIAN KARYA………………………………………
v
ABSTRAK…………………………………………………………………
vi
ABSTRACT………………………………………………………………… vii KATA PENGANTAR……………………………………………………….viii DAFTAR ISI………………………………………………………….......... xi DAFTAR TABEL…………………………………………………………. xiv DAFTAR GAMBAR……………………………………………….............. xv BAB I PENDAHULUAN……………………………………………….1
1
A. Latar Belakang Masalah………………………………..…………
1
B. Rumusan Masalah………………………………………………..
2
C. Tujuan Penulisan…………………………………………………… 2 D. Manfaat Penulisan………………………………………………… 3 E. Metode Penelitian ………………………………………………… 3 F. Pembatasan Penulisan ……………………………………………… 3 G. Sistematika Penulisan …………………………………………..… 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI A. Interpolasi……………………………………………..…………
6 6
B. Galat……………………………………………… ………………… 6 C. Metode Spline ……………………………………………………
7
1. Spline linear…………………………………………..…
7
2. Spline Kuadrat………………………….………………… 9 3. Spline Kubik ……………………………………………. 12 BAB III PERANCANGAN DAN IMPLEMENTASI………………………25 A. Perancangan Umum…………………………………………………25 B. Perancangan Antarmuka................................................................. 26 1. Layar Sampul………………………………………………… 26 2. Layar Masukan Spline…………………………………..….… 26 C. Rancangan Proses……………………………………………….… 27 D. Implementasi……………………………………………..……… 28 1. Spline Linear ………………………………………….……28 2. Spline Kuadrat…………………………………………… 30 3. Spline Kubik……………………………………………… 33 BAB IV ANALISIS………………………..................................……… A. Hasil Implementasi.....................................................................
38 38
1. Layar Sampul...................................................................... 38 2. .Layar Spline........................................................................ 39 B.
Pengujian Program Spline.............................................................. 41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
C.
Percobaan Dan Analisis................................................................ 41 1. Galat................................................................................... 42 a. Percobaan 1.......................................................... 42 b. Percobaan 2……………..........................................44 c. Percobaan 3............................................................ 46 2. Waktu Komputasi.............................................................. 48 a. Percobaan 1…....................................................... 48 b. Percobaan 2........................................................... 50
BAB V
PENUTUTUP…………………………………………............…. 54
A. Kesimpulan…………………………………………............……. 54 B. Saran………………………………………………….....………. 55 DAFTAR PUSTAKA...................................................................................... 56 LAMPIRAN.................................................................................................... 57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL Halaman Tabel 2.1........................................................................................................
8
Tabel 2.2 Hasil Perhitungan Spline Linear....................................................
9
Tabel 2.3 Hasil Perhitungan Spline Kuadrat…………………………………..12 24 Tabel 2.4 Hasil Perhitungan Spline Kubik…………………………………….. Tabel 4.1 Data Percobaan 1………………………………………………… 42 Tabel 4.2 Hasil Galat Percobaan 1…………………………………………….42 Tabel 4.3 Data Percobaan 2………………………………………………….. 44 Tabel 4.4 Hasil Galat Percobaan 2……………………………………………44 Tabel 4.5 Data Percobaan 3………………………………………………..
46
Tabel 4.6 Hasil Galat Percobaan 3…………………………………………
46
Tabel 4.7 Hasil Waktu Komputasi Percobaan 1………………………………48 Tabel 4.8 Hasil Waktu Komputasi Percobaan 2……………………………….50 Tabel 4.9 Rata-rata Waktu Komputasi…………………………………………51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Halaman Gambar 3.1 Rancangan Layar Sampul…………………………………………. 26 Gambar 3.2 Rancangan Layar Spline…………………………………………27 Gambar 3.3 Flowchart Spline Linear................................................................ 29 Gambar 3.4 Flowchart Spline Kuadrat............................................................. 31 Gambar 3.5 Flowchart Spline Kubik………………………………………… 35 Gambar 4.1 Hasil Implementasi Layar Sampul………………………………..38 Gambar 4.2 Hasil Implementasi Spline………………………………………… 39 Gambar 4.3 Hasil Perhitungan Spline……………………………………….. 41 Grafik 4.1 Galat Percobaan 1………………………………………………….43 Grafik 4.2 Galat Percobaan 2……………………………………………………. 45 Grafik 4.3 Galat Percobaan 3………………………………………………. 47 Grafik 4.3 Waktu Komputasi Percobaan 1………………………………… 48 Grafik 4.4 Waktu Komputasi Percobaan 2………………………………… 50 Grafik 4.5 Rata-rata Waktu Komputasi……………………………………… 51 Grafik 4.6 Rata-rata Waktu Komputasi dalam Persen……………………….. 52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 titiktitik 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 melalui 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 ditulis 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 diketahui? 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
D. Manfaat Penulisan Manfaat yang diharapkan dalam skripsi ini adalah penulis dapat menentukan 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. 4. Bahasa pemprograman yang digunakan adalah Delphi 7.0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Melakukan percobaan dan menganalisa hasil percobaan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V PENUTUTUP Pada bab ini terdapat kesimpulan dan saran dari hasil analisa serta pembahasan masalah berdasarkan pada hasil yang didapat secara keseluruhan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI A. Interpolasi Terdapat n + 1 data pasangan bilangan dengan x0 , x1 , . . . ,x n nilainya
berbeda,
jika
(x0 , f 0 ), (x1 , f1 ), . ingin
. ., ( x n , f n )
memperoleh
sebuah
polinom Pn ( x ) yang bernilai fj di xj, dengan kata lain Pn ( x0 ) = f 0 , Pn ( x1 ) = f1 , . . . , Pn ( xn ) = f n 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Definisi 2.1 : Andaikan ~ p adalah nilai hampiran dari p maka Galat Mutlak didefinisikan p− ~ p ~ sebagai Em = p − p dan Galat Relatif Persen Er = ∗ 100%, p ≠ 0. p
C. Metode Spline
Metode Spline adalah salah satu metode numerik yang dapat digunakan untuk pencarian interpolasi. Interpolasi Spline merupakan polinom sepotongsepotong. 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 ≤ b menjadi beberapa anak selang a = x1 < x 2 < . . . < x n = 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
sekelompok titik data terurut ( xi , f ( xi )) , i = 1, 2, . . ., n dinyatakan sebagai berikut :
f 1 ( x ) = f ( x1 ) +
f ( x 2 ) − f ( x1 ) ( x − x1 ) x 2 − x1
x1 ≤ x ≤ x 2
f 2 ( x) = f ( x 2 ) +
f ( x3 ) − f ( x 2 ) ( x − x2 ) x3 − x 2
x 2 ≤ x ≤ x3
f ( xi +1 ) − f ( x i ) ( x − xi ) x i +1 − x i
x i ≤ x ≤ xi +1
. . . f i ( x) = f ( xi ) +
(2.1)
. . . f n −1 ( x ) = f ( x n −1 ) +
f ( x n ) − f ( x n −1 ) ( x − x n −1 ) x n − x n −1
x n −1 ≤ x ≤ x n
Contoh 2.1
Diberikan sebuah tabel yang berisi 5 himpunan data logaritma natural i
xi
f(xi)
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
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Penyelesaian : f 1 ( x ) = 0.0953 +
(0.1823 − 0.0953 ) ( x − 1.1) 1 .2 − 1 .1
1.1 ≤ x ≤ 1.2
f 2 ( x ) = 0.1823 +
(0.2624 − 0.1823 ) ( x − 1 .2 ) 1 .3 − 1 .2
1.2 ≤ x ≤ 1.3
f 3 ( x ) = 0.2624 +
(0.3365 − 0.2624 ) ( x − 1.3) 1 .4 − 1 .3
1.3 ≤ x ≤ 1.4
f 4 ( x ) = 0.2624 +
(0.3365 − 0.2624 ) ( x − 1.3) 1 .4 − 1 .3
1.3 ≤ x ≤ 1.4
f 5 ( x ) = 0.3365 +
(0.4055 − 0.3365 ) ( x − 1 .4 ) 1 .5 − 1 . 4
1.4 ≤ x ≤ 1.5
Dari persamaan di atas didapat
x
f(x)
1.11
0.104
1.22
0.1983
1.33
0.2846
1.44
0.3641
1.49
0.3986
Tabel 2.2 Hasil Perhitungan Spline Linear 2. Spline Kuadrat
Spline Kuadrat menyediakan sebuah persamaan kuadrat yang menghubungkan sedikitnya tiga pasangan data yang berdekatan di dalam him-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 )) adalah
f i ( x) = ai x 2 + bi x + ci
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 ai , bi , dan ci . Untuk n titik data terdapat n-1 selang, maka ada 3(n-1) konstanta yang harusdicari 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 : f i ( x i ) = ai xi + bxi +c i = f (xi ) 2
f i ( x i +1 ) = ai xi +1 + bi xi +1 + c i = f ( xi +1 ) 2
i = 1,2,3,..., n − 1
(2.3)
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. 2ai xi + bi = 2ai +1 xi +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 ai = 0 .
(2.6)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 : 1.21a1 + 1.1b1 + c1 = 0.0953 1.44a 2 + 1.2b2 + c 2 = 0.1823 1.69a3 + 1.3b3 + c3 = 0.2624 1.96a 4 + 1.4b4 + c 4 = 0.3365 Persamaan (2.4) menghasilkan : 1.44a1 + 1.2b1 + c1 = 0.1823 1.69a 2 + 1.3b2 + c 2 = 0.2624 1.96a3 + 1.4b3 + c3 = 0.3365 2.25a 4 + 1.5b4 + c 4 = 0.4055 Persamaan (2.5) menghasilkan : 2.4a1 + b1 = 2.4a 2 + b2 2.6a 2 + b2 = 2.6a3 + b3 2.8a3 + b3 = 2.8a 4 + b4 Persamaan (2.6) menyatakan : a1 = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dengan menggunakan pensubtitusian didapatkan a1 = 0
b1 = 0.87
c1 = −0.8617
a2 = −0.69
b2 = 2.526
c2 = −1.8553
a3 = 0.09
b3 = 0.498
c3 = −0.5371
a4 = −0.6
b4 = 2.43
c4 = −1.8895
Maka persamaan Spline Kuadrat yang dihasilkan adalah f 1 ( x) = 0.87 x − 0.8617
1.1 ≤ x ≤ 1.2
f 2 ( x) = −0.69 x + 2.526 x − 1.8553
1.2 ≤ x ≤ 1.3
f 3 ( x) = 0.09 x + 0.498 x − 0.5371
1.3 ≤ x ≤ 1.4
f 4 ( x) = −0.6 x + 2.43x − 1.8895
1.4 ≤ x ≤ 1.5
2
2
2
Dari persamaan di atas didapat
x
f(x)
1.11
0.104
1.22
0.1994
1.33
0.2844
1.44
0.3655
1.49
0.3991
Tabel 2.3 Hasil Perhitungan Spline Kuadrat 3. Spline Kubik
Spline kubik adalah menurunkan polinom orde ketiga untuk setiap selang di antara simpul,seperti dalam : f ( x ) = ai x 3 + bi x 2 + ci x + d i .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Jadi untuk n + 1 titik data (i = 0, 1, 2, . . . , n), terdapart n interval maka diperlukan 4n konstanta yang harus dicari yang persamaan-persamaannya dicari dengan mengikuti definisi 2.2. Definisi 2.2
Diberikan fungsi f pada [a, b] dan suatu himpunan angka yang disebut simpul a = x0 < x1 < . . . < x n = b . Suatu interpolasi spline kubik S, untuk f (x) adalah suatu fungsi yang memenuhi kondisi : a. S (x ) adalah polinom kubik, S k ( x ) menyatakan polynomial pada segmen
[xk , xk +1 ] untuk k = 0, 1, .
. . , n-1 ;
b. S ( x k ) = f ( x k ) k = 0, 1, . . . , n-1 ; c. S k +1 ( x k +1 ) = S k ( x k +1 ) k = 0, 1, . . . , n-2 ; d. S ' k +1 ( x k +1 ) = S ' k ( x k +1 ) k = 0, 1, . . . , n-2 ; e. S " k +1 (x k +1 ) = S " k ( x k +1 ) k = 0, 1, . . . , n-2 ; f. Memenuhi salah satu kondisi (i) S '' ( x0 ) = S '' ( x n ) = 0 ( Batas Natural ) (ii) S ' ( x0 ) = f ' ( x0 ) dan S ' ( x n ) = f ' ( x n ) ( Batas Apitan )
Bentuk Interpolasi Spline Kubik untuk fungsi f , dengan mengikuti kondisikondisi dalam Definisi 2.1 a. S k ( x ) = a k + bk ( x − x k ) + c k ( x − x k ) 2 + d k ( x − x k ) 3
k = 0, 1, . . . , n-1 ; (2.7)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. S ( x k ) = f ( x k )
S k ( x k ) = a k + bk ( x k − x k ) + c k ( x k − x k ) 2 + d k ( x k − x k ) 3 = aK + bk * 0 + ck * 0 + d k * 0 = ak
∴ a k = f (xk )
(2.8)
c. S k +1 ( x k +1 ) = S k ( x k +1 )
maka
S k ( x k +1 ) = a k + bk ( x k +1 − x k ) + c k ( x k +1 − x k ) 2 + d k ( x k +1 − x k ) 3 dan
S k +1 ( x) = a k +1 + bk +1 ( x − x k +1 ) + c k +1 ( x − x k +1 ) 2 + d k +1 ( x − x k +1 ) 3 S k +1 ( x k +1 ) = a k +1 + bk +1 ( x k +1 − x k +1 ) + c k +1 ( x k +1 − x k +1 ) + d k +1 ( x k +1 − x k +1 ) = a k +1 + +bk +1 * 0 + c k +1 * 0 + d k +1 * 0 = a k +1 S k +1 (x k +1 ) = S k ( x k +1 ) maka a k +1 = a k + bk ( x k +1 − x k ) + c k ( x k +1 − x k ) 2 + d k ( x k +1 − x k ) 3 jika x k +1 − x k di ganti hk maka S k +1 ( x k +1 ) = a k +1 = a k + bk ( x k +1 − x k ) + c k ( x k +1 − x k ) 2 + d k ( x k +1 − x k ) 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
S k +1 ( x k +1 ) = a k +1 = a k + bk hk + c k hk + d k hk
3
(2.9)
d. S ' k +1 ( x k +1 ) = S ' k ( x k +1 )
perhatikan S k ( x ) = a k + bk ( x − x k ) + c k ( x − x k ) 2 + d k ( x − x k ) 3 S ' k ( x ) = bk + 2c k ( x − x k ) + 3d k ( x − x k ) 2 S ' k ( x k ) = bk + 2c k ( x k − x k ) + 3d k ( x k − x k ) 2 = bk + 2c k * 0 + 3d k * 0 = bk
S ' k ( x k +1 ) = bk + 2c k ( x k +1 − x k ) + 3d k ( x k +1 − x k ) 2 dan S k +1 ( x) = a k +1 + bk +1 ( x − x k +1 ) + c k +1 ( x − x k +1 ) 2 + d k +1 ( x − x k +1 ) 3 S ' k +1 ( x ) = bk +1 + 2c k +1 ( x − x k +1 ) + 3d k ( x − x k +1 ) 2 S ' k +1 ( x k +1 ) = bk +1 + 2c k +1 ( x k +1 − x k +1 ) + 3d k ( x k +1 − x k +1 ) 2 = bk +1 + 2c k +1 * 0 + 3d k * 0 = bk +1
S ' k +1 ( x k +1 ) = S ' k ( x k +1 ) maka bk +1 = bk + 2c k ( x k +1 − x k ) + 3d k ( x k +1 − x k ) 2 jika x k +1 − x k di ganti hk maka S ' k +1 ( x k +1 ) = bk +1 = bk + 2c k hk + 3d k hk
2
e. S " k +1 ( x k +1 ) = S " k ( x k +1 )
perhatikan S ' k ( x ) = bk + 2c k ( x − x k ) + 3d k ( x − x k ) 2
(2.10)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
S '' k ( x ) = 2c k + 6d k ( x − x k ) S '' k ( x k ) = 2c k + 6d k ( x k − x k ) = 2c k + 6d k * 0 = 2c k
S '' k (x k +1 ) = 2c k + 6d k ( x k +1 − x k ) dan S ' k +1 ( x ) = bk +1 + 2c k +1 ( x − x k +1 ) + 3d k ( x − x k +1 ) 2 S '' k +1 ( x k +1 ) = 2c k +1 + 6d k +1 ( x k +1 − x k +1 ) = 2c k +1 + 6d k +1 * 0 = 2c k +1
S " k +1 ( x k +1 ) = S " k ( x k +1 ) maka 2c k +1 = 2c k + 6d k ( x k +1 − x k ) jika x k +1 − x k di ganti hk maka 2c k +1 = 2c k + 6d k hk c k +1 = c k + 3d k hk
(2.11)
dari (2.11) didapat d k =
c k +1 − c k 3hk
(2.12)
Dari (2.9) dan (2.12) diperoleh : bk +1 = bk + 2c k hk + 3
c k +1 − c k 2 hk 3hk
= bk + 2c k hk + c k +1 hk − c k hk = bk + hk (c k + c k +1 )
(2.13)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dari (2.9) dan (2.12) di peroleh : 2
a k +1 = a k + bk hk + c k hk + d k hk 2
a k +1 = a k + bk hk + c k hk +
3
c k +1 − c k 3 hk 3hk
2
a a c h (c − c ) 2 bk = k +1 − k + k k + k +1 k hk hk hk hk 3hk 2
2
a − a k 3c k hk − c k +1 hk + c k hk bk = k +1 − hk 3hk bk =
2
1 (a k +1 − a k ) − hk (2ck + ck +1 ) hk 3
(2.14)
dengan pengurangan indeks bk −1 =
h 1 (a k − a k −1 ) − k −1 (2c k −1 + ck ) hk −1 3
(2.15)
Dari (2.13) dan (2.14) di peroleh : bk = bk −1 − hk −1 (c k −1 + c k ) bk =
1 (a k +1 − a k ) − hk (2ck + ck +1 ) hk 3
jadi bk −1 =
1 (a k +1 − a k ) − hk (2ck + c k +1 ) − hk −1 (ck −1 + ck ) hk 3
Persamaan (2.15) dan (2.16) menghasilkan 1 (a k − a k −1 ) − hk −1 (2ck −1 + ck ) hk −1 3 =
1 (a k +1 − a k ) − hk (2c k + ck +1 ) − hk −1 (ck −1 + ck ) hk 3
(2.16)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1 (a k − a k −1 ) − 1 (a k +1 − a k ) hk −1 hk 2h c h h c = − k (2c k + c k +1 ) − hk −1c k −1 − hk −1c k + hk −1c k k −1 k −1 + k −1 k 3 3 3 1 (a k − a k −1 ) − 1 (a k +1 − a k ) hk −1 hk =−
3 hk −1
3h c + 2hk −1c k −1 3hk −1c k + hk −1c k hk (2c k + ck +1 ) − k −1 k −1 − 3 3 3
(a k − a k −1 ) −
3 (a k +1 − a k ) = −hk (2ck + ck +1 ) − hk −1ck −1 − 2hk −1ck hk
3 (ak +1 − a k −1 ) − 3 (a k − a k −1 ) = hk −1c k −1 + hk (2ck + ck +1 ) + 2hk −1ck hk hk −1 3 (ak +1 − a k ) − 3 (a k − a k −1 ) = hk −1ck −1 + hk (2ck −1 + ck ) + hk ck +1 hk hk −1
(2.17)
untuk k = 1, 2, . . ., n-1 dari persamaan-persamaan yang telah didapat di atas, sudah didapatkan persamaan-persamaan untuk mencari koefisien-koefisien a, b, dan d. Untuk mencari 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 = x 0 < x1 < . . . < x n = b , maka f adalah interpolasi spline natural tunggal pada simpul x0 < x1 < . . . < x n , interpolasi spline natural memenuhi keadaan S '' (a ) = 0 dan S '' (b) = 0 . Bukti :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
S '' ( a ) = 0
dan
S '' (b) = 0
menyatakan
secara
tidak
langsung
c n = S '' ( x n ) 2 = 0 dan 0 = S '' ( x0 ) = 2c0 + 6d 0 ( x0 − x0 ) jadi c0 = 0 . Dua pernyataan c0 = 0 dan c n = 0 dalam persamaan 3 (ak +1 − a k ) − 3 (a k − a k −1 ) = hk −1ck −1 + hk (2ck −1 + ck ) + hk ck +1 hk hk −1 menghasilkan sistem linear dengan persamaan Ax = b , A adalah (n+1) dengan matriks (n+1). ⎡ ⎢1 ⎢ ⎢h ⎢ 0 ⎢0 A=⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢⎣ 0
0
0
2(h0 + h1 )
h1
h1
2(h1 + h2 )
h2
hn − 2 0
2(hn − 2 + hn −1 ) 0
0 ⎤ ⎡ 3 3 ⎥ ⎢ (a 2 − a1 ) − (a1 − a0 ) ⎥ ⎢ h1 h0 ⎥ ⎢ b=⎢ M ⎥ ⎢ 3 (a n − a n −1 ) − 3 (a n −1 − a n − 2 )⎥ ⎥ ⎢ hn −1 hn − 2 ⎥ ⎢ 0 ⎦ ⎣
⎤ 0 ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ hn −1 ⎥ 1 ⎥⎦
⎡c 0 ⎤ ⎢c ⎥ x=⎢ 1⎥ ⎢M⎥ ⎢ ⎥ ⎣c n ⎦
Dari persamaan Ax = b akan didapat penyelesaian tunggal dan dapat dicari dengan Eliminasi Gauss.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Teorema 2.2 Jika f didefinisikan pada a = x 0 < x1 < . . . < x n = b dan turunan pada a dan b, maka f adalah Interpolasi Spline Apitan pada simpul x0 < x1 < . . . < x n , Interpolasi Spline dinyatakan
S ' (a) = f ' (a)
S ' (b) = f ' (b) . Bukti : Menggunakan S ' (a) = S ' ( x0 ) = b0 implementasi bk =
f ' (a) =
h 1 (a k +1 − a k ) − k (2ck + ck +1 ) dengan k = 0 hk 3
a1 − a 0 h0 − (2c0 + c1 ) h0 3
2h0 c0 + h0 c1 =
3 (a1 − a0 ) − f ' (a) h0
f ' (b) = bn = bn −1 + hn −1 (c n −1 + c n ) persamaan bk =
f ' (b) =
=
h 1 (a k +1 − a k ) − k (2ck + ck +1 ) dengan k = n − 1 hk 3
a n − a n −1 hn −1 (2cn−1 + c n ) + hn−1 (c n−1 − cn ) − hn −1 3
a n − a n −1 hn −1 − (c n −1 + 2c n ) hn −1 3
dan hn −1c n −1 + 2hn −1c n = 3 f ' (b) −
3 (a n − a n −1 ) . hn −1
dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Persamaan
3 (ak +1 − a k ) − 3 (a k − a k −1 ) = hk −1ck −1 + hk (2ck −1 + ck ) + hk ck +1 hk hk −1
dengan persamaan 2h0 c0 + h0 c1 =
dan hn −1c n −1 + 2hn −1c n = 3 f ' (b) −
3 (a1 − a0 ) − f ' (a) h0
3 (a n − a n −1 ) hn −1
menghasilkan sistem linear dengan persamaan Ax = b . ⎡ ⎢2h0 ⎢ ⎢h ⎢ 0 ⎢ 0 A=⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢⎣ 0
h0
0
2(h0 + h1 )
h1
h1
2(h1 + h2 )
h2
hn − 2 0
3 ⎤ ⎡ ( a1 − a0 ) − 3 f ' ( a) ⎥ ⎢ h0 ⎥ ⎢ 3 3 ⎥ ⎢ ( a 2 − a1 ) − (a1 − a0 ) ⎥ ⎢ h1 h0 ⎥ b=⎢ M ⎥ ⎢ 3 3 (a n − a n −1 ) − (a n −1 − a n − 2 )⎥ ⎢ hn − 2 ⎥ ⎢ hn −1 ⎥ ⎢ 3 3 f ' (b) − (a n − a n −1 ) ⎥ ⎢ hn −1 ⎦ ⎣
2(hn − 2 + hn −1 ) hn −1
⎤ 0 ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ hn −1 ⎥ 2hn −1 ⎥⎦
⎡c 0 ⎤ ⎢c ⎥ x=⎢ 1⎥ ⎢M⎥ ⎢ ⎥ ⎣c n ⎦
Dari persamaan Ax = b akan didapat penyelesaian tunggal dan dapat dicari dengan Eliminasi Gauss.
Contoh 2.3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gunakan Tabel 2.1 untuk mencari nilai Interpolasi saat x = 1.11 menggunakan Spline Kubik. Penyelesaian : Persamaan Spline Kubik dari persamaan (2.7) S k ( x ) = a k + bk ( x − x k ) + c k ( x − x k ) 2 + d k ( x − x k ) 3
k = 1, 2, . . ., n-1
Dari (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
= x k +1 − x k
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 ⎡1 ⎢h ⎢ 1 A = ⎢0 ⎢ ⎢0 ⎢⎣ 0
0 ⎤ ⎡ c1 ⎤ 2(h1 + h2 ) 0 0 ⎥⎥ ⎢⎢c 2 ⎥⎥ h2 2(h2 + h3 ) 0 ⎥ ⎢c3 ⎥ h2 h3 ⎥⎢ ⎥ 0 2( h3 + h4 ) h4 ⎥ ⎢c 4 ⎥ h3 0 0 0 1 ⎥⎦ ⎢⎣c 5 ⎥⎦ 0
0
0 0 0 0 ⎤ ⎡ c1 ⎤ ⎡1 ⎢0.1 0.4 0.1 0 0 ⎥⎥ ⎢⎢c 2 ⎥⎥ ⎢ = ⎢ 0 0.1 0.4 0.1 0 ⎥ ⎢c 3 ⎥ ⎢ ⎥⎢ ⎥ 0 0.1 0.4 0.1⎥ ⎢c 4 ⎥ ⎢0 ⎢⎣ 0 0 0 0 1 ⎥⎦ ⎢⎣c 5 ⎥⎦
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
0 ⎡ ⎤ 3 ⎢3 ⎥ ⎡ 0 ⎤ ⎢ h (a3 − a 2 ) − h (a 2 − a1 ) ⎥ ⎢ ⎥ 1 ⎢ 2 ⎥ ⎢− 0.207 ⎥ 3 3 b = ⎢ (a 4 − a3 ) − (a3 − a 2 ) ⎥ = ⎢ − 0.18 ⎥ ⎢ h3 ⎥ ⎢ h2 ⎥ ⎢3 ⎥ ⎢ − 0.153⎥ 3 ⎢ (a5 − a 4 ) − (a 4 − a3 )⎥ ⎢ ⎥ h3 ⎢ h4 ⎥ ⎣ 0 ⎦ 0 ⎣⎢ ⎦⎥ 0 0 0 0 ⎤ ⎡ c1 ⎤ ⎡ 0 ⎤ ⎡1 ⎢0.1 0.4 0.1 0 0 ⎥⎥ ⎢⎢c 2 ⎥⎥ ⎢⎢− 0.207⎥⎥ ⎢ ⎢ 0 0.1 0.4 0.1 0 ⎥ ⎢c3 ⎥ = ⎢ − 0.18 ⎥ ⎥ ⎥⎢ ⎥ ⎢ ⎢ 0 0.1 0.4 0.1⎥ ⎢c 4 ⎥ ⎢ − 0.153⎥ ⎢0 ⎢⎣ 0 0 0 0 1 ⎥⎦ ⎢⎣c5 ⎥⎦ ⎢⎣ 0 ⎥⎦
Dengan Eliminasi Gauss untuk persaman sistem linear Ax = b Koefisien ck yang di dapat c1 = 0 c 2 = − 0.5818 c3 = 0.2571 c 4 = −0.4468 c5 = 0 Dari persamaan (2.14) didapat koefisien untuk bk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
bk =
1 (a k +1 − a k ) − hk (2c k + c k +1 ) 3 hk
b1 =
1 (a 2 − a1 ) − h1 (2c1 + c 2 ) = 0.87 − (−0.0194) = 0.8894 3 h1
b2 =
1 (a3 − a 2 ) − h2 (2c 2 + c3 ) = 0.801 − (−0.0302) = 0.8312 3 h2
b3 =
1 (a 4 − a3 ) − h3 (2c3 + c4 ) = 0.741 − 0.0022 = 0.7388 3 h3
b4 =
1 (a5 − a 4 ) − h4 (2c 4 + c5 ) = 0.69 − (−0.0298) = 0.7198 h4 3
Dari persamaan (2.12) didapat koefisien untuk dk dk =
c k +1 − c k 3hk
d1 =
c 2 − c1 = −1.9393 3h1
d2 =
c3 − c 2 = 2.7963 3h2
d3 =
c 4 − c3 = −2.3463 3h3
d4 =
c5 − c 4 = 1.4893 3h4
Persamaan Spline Kubik Sk(x) S1 (x ) = a1 + b1 ( x − x1 ) + c1 ( x − x1 ) 2 + d1 ( x − x1 )3
1.1 ≤ x ≤ 1.2
= 0.0953 + 0.8894( x − 1.1) − 1.9393( x − 1.1)3 S 2 (x ) = a2 + b2 ( x − x2 ) + c2 ( x − x2 ) 2 + d 2 ( x − x2 )3
1.2 ≤ x ≤ 1.3
= 0.1823 + 0.8312( x − 1.2) − 0.5818( x − 1.2) 2 + 2.7963( x − 1.2) 3 S3 (x ) = a3 + b3 ( x − x3 ) + c3 ( x − x3 ) 2 + d 3 ( x − x3 ) 3
1.3 ≤ x ≤ 1.4
= 0.2624 + 0.7388( x − 1.3) + 0.2571( x − 1.3) − 2.3463( x − 1.3)3 2
S 4 (x ) = a4 + b4 ( x − x4 ) + c4 ( x − x4 ) 2 + d 4 ( x − x4 )3
1.4 ≤ x ≤ 1.5
= 0.3365 + 0.7198( x − 1.4) − 0.4468( x − 1.4) + 1.4893( x − 1.4)3 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dari Persamaan Spline Kubik di atas maka didapat x
f(x)
1.11
0.1042
1.22
0.1989
1.33
0.2853
1.44
0.3647
1.49
0.3987
Tabel 2.4 Hasil Perhitungan Spline Kubik
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
dianalisis dengan menggunakan grafik dan hasilnya dianalisis untuk ditarik kesimpulan.
B. Perancangan Antarmuka Program yang dibuat terdiri dari 2 layar, yaitu : 1. Layar Sampul
Perbandingan Interpolasi dalam Metode Spline LOGO Oleh : Anastasia Vrysca Jayanti 013114014 Jurusan Matematika Fakultas Matematika Dan Ilmu Pengetahuan alam Universitas Sanata Dharma Yogyakarta
Spline
Exit
Gambar 3.1 Rancangan Layar Sampul
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
Gambar 3.2 Rancangan Layar Spline
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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, jumlah data, jumlah pencarian dan nilai yang akan dicari. Selanjutnya program melakukan 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 percobaan kemudian dianalisis dan dibandingkan galatnya untuk setiap spline. D. Implementasi Dalam program masukan spline ini terdapat tiga bagian penting dalam metode Spline yaitu perhitungan Spline Linear, Spline Kuadrat dan Spline Kubik. 1. Spline Linear Alur Spline Linear digambarkan secara singkat pada gambar 4.1. Titiktitik data yang diketahui dianggap X dan nilai-nilai data yang diketahui dianggap fx dan titik-titik data yang akan dicari nilainya dianggap masuk.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Mulai
Input data, pencarian, X (Titik-titik data),fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari) i=1
i<= data-1
Tidak
Ya masuk >= Xi & masuk <= Xi+1
Tidak
Ya Perhitungan Spline Linear :
fx = fx i +
fx i + 1 − fx i Xi + 1 − Xi
(masuk − X i )
i=i+1
Tulis fx
Selesai
Gambar 3.3 Flowchart Spline Linear
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 program 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. Titiktitik data yang diketahui dianggap X dan nilai-nilai data yang diketahui dianggap fx dan titik-titik data yang akan dicari nilainya dianggap masuk.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Mulai
Input data, pencarian, X[ (Titik-titik data), fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari) Hitung Koef. b1, c1, a2, b2, c2
k=3
Mencari Koefisien Spline Kuadrat ak,bk,ck
k <= data-1 Ya Hitung ak, bk, ck
Tidak
k=k+1
masuk >= X1 & masuk <= X2
Tidak
k=3
Ya
k <= data
fx = b1 * masuk + c1
Ya masuk >= Xk-1 & masuk <= Xk
Tulis fx
Perhitungan Spline Kuadrat
Tidak
Selesai
Ya Tidak
fx = a[k-1] * masuk masuk+ b{k-1] * masuk+ c[k-1]
k=k+1
Gambar 3.4 Flowchart Spline Kuadrat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Spline Kuadrat membutuhkan membutuhkan 3(n-1) 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 nilainilai data yang diketahui, titik-titik data yang nilainya yang akan dicari maka program 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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 diklik 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 pertama 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Mulai
Input data, pencarian, X[ (Titik-titik data), fx (Nilai-Nilai data), masuk(Titik-titik data yang nilainya akan dicari) Hitung Selisih titik (h1)& nilai data (d1] k=2
Selisih titik data hk & nilai data dk
k <= data Ya Hitung Selisih titik (hk)& nilai data (dk]
Tidak
k=k+1
Turunan kedua ujung simpul m1 = 0 & mdata = 0
k = data - 1
k <= 2 Ya
mk = ( vk-ck * mk+1 ) / bk k=k-1
Turunan kedua ujung simpul m1 = 0 & mdata = 0
1
Turunan Kedua mk Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
k=1
k <= data Ya
Tidak
Iterasi koefisien Spline Kubik Sk,1, Sk,2, Sk,3, Sk,4
Hitung koef.
Sk,1, Sk,2, Sk,3, Sk,4
k = k+ 1
X = X0
Tidak jj = 2
Ya k=1 ww = masuk – Xk z = ((Sk,4 * ww + Sk,3) * w + Sk,2) * w + Sk,1
Tidak
jj <= data Ya
Tulis fx
Selesai
Perhitungan Spline Kubik
Tidak
masuk >= Xjj - 1 & masuk <= Xjj Ya k = jj -1 ww = masuk – Xk z = ((Sk,4 * ww + Sk,3) * w + Sk,2) * w + Sk,1
jj = jj + 1
Gambar 3.5 Flowchart Spline Kubik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV ANALISIS A. Hasil Implementasi 1. Layar Sampul
Gambar 4.1 Hasil Implementasi Layar Sampul Layar sampul berisi 2 tombol yaitu : a. Spline : Untuk menuju layar spline b. Exit : Untuk Keluar dari program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Layar Spline
Gambar 4.2 Hasil Implementasi 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 diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
-
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.
f. Chart : Digunakan untuk tempat menggambar grafik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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]
Gambar 4.3 Hasil Perhitungan Spline
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 titik 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1. Galat a. Percobaan 1 No 1 2 3 4 5
x 1.1 1.2 1.3 1.4 1.5
y 0.0953 0.1823 0.2624 0.3365 0.4055
Tabel 4.1 Data Percobaan 1
No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Data Nilai Tabel x y 1.11 0.1044 1.12 0.1133 1.13 0.1222 1.14 0.1310 1.15 0.1398 1.21 0.1906 1.22 0.1989 1.23 0.2070 1.24 0.2151 1.25 0.2231 1.31 0.2700 1.32 0.2776 1.33 0.2852 1.34 0.2927 1.35 0.3001 1.41 0.3436 1.42 0.3507 1.43 0.3577 1.44 0.3646 1.45 0.3716
Spline Linear 0.38 0.52 0.55 0.69 0.72 0.16 0.30 0.34 0.37 0.31 0.07 0.14 0.21 0.24 0.23 0.06 0.11 0.14 0.14 0.16
Galat (%) Spline Kuadrat 0.38 0.52 0.55 0.69 0.72 0.16 0.25 0.39 0.42 0.45 0.11 0.18 0.28 0.31 0.30 0.09 0.17 0.22 0.25 0.24
Tabel 4.2 Hasil Galat Percobaan 1
Spline kubik 0.19 0.26 0.33 0.31 0.29 0 0 0.05 0.05 0.04 0.04 0.04 0.04 0.03 0.07 0 0 0 0.03 0.03
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Grafik Galat Percobaan 1 0.8
Galat ( % )
0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1.11
1.13
1.15
1.22
1.24
1.31
1.33
1.35
1.42
1.44
Tititk Data Pencarian 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. d. Galat yang dihasilkan Spline Kubik mendekati nol persen dan bisa nol.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Percobaan 2 No 1 2 3 4 5
x 1.1 1.4 1.7 2.0 2.3
y 0.0953 0.3365 0.5306 0.6931 0.8329
Tabel 4.3 Data Percobaan 2
No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Nilai Data Tabel x y 1.11 0.1044 1.12 0.1133 1.13 0.1222 1.14 0.1310 1.15 0.1398 1.21 0.1906 1.22 0.1989 1.23 0.2070 1.24 0.2151 1.25 0.2231 1.31 0.2700 1.32 0.2776 1.33 0.2852 1.34 0.2927 1.35 0.3001 1.41 0.3436 1.42 0.3507 1.43 0.3577 1.44 0.3646 1.45 0.3716
Spline Linear 1.05 1.68 2.30 2.67 3.08 3.62 3.57 3.49 3.35 3.23 2.18 1.95 1.75 1.50 1.27 0.17 0.37 0.50 0.60 0.75
Galat (%) Spline Kuadrat 1.05 1.68 2.30 2.67 3.08 3.62 3.57 3.49 3.35 3.23 2.18 1.95 1.75 1.50 1.27 0.26 0.48 0.70 0.88 1.02
Tabel 4.4 Hasil Galat Percobaan 2
Spline Kubik 0.67 1.06 1.39 1.60 1.86 1.78 1.76 1.64 1.53 1.43 0.74 0.65 0.56 0.44 0.37 0.06 0.09 0.11 0.16 0.16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Grafik Galat Percobaan 2 4
Galat ( % )
3.5 3 2.5 2 1.5 1 0.5 0 1.11
1.13
1.15
1.22
1.24
1.31
1.33
1.35
1.42
1.44
Titik Data Pencarian 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. Semakin besar beda jauh data maka persen galat yang dihasilkan semakin besar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c. Percobaan 3 No 1 2 3 4 5
x 1 10 20 30 40
y 0 2.3026 2.9957 3.4012 3.6889
Tabel 4.5 Data Percobaan 3
No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Nilai Data Tabel x y 1.11 0.1044 1.12 0.1133 1.13 0.1222 1.14 0.1310 1.15 0.1398 10.11 2.3135 10.12 2.1451 10.13 2.3155 10.14 2.3164 10.15 2.3174 20.11 3.0012 20.12 3.0017 20.13 3.0022 20.14 3.0027 20.15 3.0032 30.11 3.4048 30.12 3.4051 30.13 3.4055 30.14 3.4058 30.15 3.4061
Spline Linear 73.0585 72.9038 72.7496 72.6718 72.5125 0.1426 7.7292 0.1684 0.177 0.1899 0.0333 0.0366 0.04 0.0433 0.0466 0.3348 0.3642 0.3994 0.4287 0.458
Galat (%) Spline Kuadrat 73.0585 72.9038 72.7496 72.6718 72.5125 0.7348 8.7595 0.8637 0.9325 1.0011 0.6031 0.6563 0.7095 0.766 0.8191 0.5228 0.5697 0.6166 0.6636 0.7105
Tabel 4.6 Hasil Galat Percobaan 3
Spline Kubik 68.1992 68.0494 67.9214 67.7863 67.6681 0.2896 8.2374 0.3412 0.3669 0.3927 0.03 0.0333 0.0366 0.04 0.0433 0.1821 0.1968 0.2173 0.232 0.2496
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Grafik Galat Percobaan 3 80 70
Galat ( % )
60 50 40 30 20 10 0 1.11
1.13
1.15
10.1
10.1
20.1
20.1
20.2
30.1
30.1
Tititk Data Pencarian
Spline Linear
Spline Kuadrat
Spline Kubik
Grafik 4.3 Galat Percobaan 3
Dari tabel 4.6 dan grafik 4.3 diperoleh keterangan : a. Dari grafik 4.3 diketahui bahwa semakin kecil nilai data yang dicari maka galat yang dihasilkan semakin besar, semakin besar nilai data yang dicari maka galat yang dihasilkan semakin kecil. b. Semakin kecil nilai data yang dicari, galat yang dihasilkan mendekati 100%. Semakin besar nilai data yang dicari, galat yang dihasilkan mendekati 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Waktu Komputasi a. Percobaan 1 Waktu komputasi untuk percobaan 1 menggunakan tabel 4.1. Banyak Data 5 10 15 20 25 30
Spline Linear 0.005 0.01 0.015 0.02 0.025 0.03
Waktu Komputasi Spline Kuadrat Spline Kubik 0.02 0.02 0.04 0.04 0.055 0.06 0.07 0.08 0.085 0.1 0.1 0.12
Tabel 4.7 Hasil Waktu Komputasi Percobaan 1 W aktu Komputasi Percobaan 1
Waktu Komputasi
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 5
10
15
20
25
30
Jumlah data Spline Linear
Spline Kuadrat
Spline Kubik
Grafik 4.4 Waktu Komputasi Percobaan 1 Dari tabel 4.7 dan grafik 4.4 diperoleh keterangan : a. Waktu Komputasi yang diperlukan untuk Spline Linear lebih cepat dari Spline Kuadrat dan Spline Kubik. Waktu Komputasi yang diperlukan untuk Spline Kuadrat dan Spline Kubik bisa sama. b. Dari grafik 4.4 diketahui bahwa ketiga Spline, fungsi waktunya linear terhadap jumlah data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c. Waktu Komputasi untuk masing-masing Spline memiliki gradien yang berbeda. Spline Linear memiliki gradien
gradien
1 , Spline Kuadrat memiliki 1000
3 4 dan Spline Kubik memiliki gradien . Dari ketiganya 1000 1000
Spline Kubik terbukti memiliki gradien yang paling besar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Percobaan 2
Waktu komputasi untuk percobaan 2 menggunakan tabel 4.3.
Banyak Data 5 10 15 20 25 30
Waktu Komputasi Spline Linear Spline Kuadrat Spline Kubik 0.005 0.02 0.02 0.01 0.04 0.04 0.015 0.06 0.06 0.02 0.08 0.08 0.025 0.1 0.1 0.03 0.115 0.12
Tabel 4.8 Hasil Waktu Komputasi Percobaan 2
W aktu Komputasi Percobaan 2
Waktu Komputasi
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 5
10
15
20
25
30
Jumlah data Spline Linear
Spline Kuadrat
Spline Kubik
Grafik 4.5 Waktu Komputasi Percobaan 2
Dari tabel 4.8 dan grafik 4.5 diperoleh keterangan : a. Waktu Komputasi yang diperlukan Spline Linear tetap lebih cepat dibandingkan waktu komputasi yang diperlukan Spline Kuadrat dan Spline Kubik meskipun beda jauh data bertambah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Dari grafik 4.5 diketahui bahwa beda jauh data tidak terlalu berpengaruh terhadap waktu komputasi. c. Waktu komputasi yang diperlukan Spline Kuadrat dan Spline Kubik relatif sama. Dari hasil percobaan didapat rata-rata waktu komputasi untuk Spline Linear, Spline Kuadrat, Spline Kubik. Banyak Data 5 10 15 20 25 30
Spline Linear 0.005 0.01 0.015 0.02 0.025 0.03 Rata-rata
% 11.11 11.11 11.32 11.43 11.49 11.65 11.35
Waktu Komputasi Spline % Kuadrat 0.02 44.44 0.04 44.44 0.0575 43.40 0.075 42.86 0.0925 42.53 0.1075 41.75 43.24
Spline Kubik 0.02 0.04 0.06 0.08 0.1 0.12
% 44.44 44.44 45.28 45.71 45.98 46.60 45.41
Tabel 4.9 Rata-rata Waktu Komputasi
Rata-rata W aktu Komputasi
Waktu Komputasi
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 5
10
15
20
25
Jumlah data Spline Linear
Spline Kuadrat
Spline Kubik
Grafik 4.6 Rata-rata Waktu Komputasi
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Waktu Komputasi (%)
Rata-rata W aktu Komputasi (%) 50 40 30 20 10 0 5
10
15
20
25
30
Jumlah data Spline Linear
Spline Kuadrat
Spline Kubik
Grafik 4.7 Rata-rata Waktu Komputasi dalam Persen
Dari grafik 4.6 dan grafik 4.7 rata-rata waktu komputasi Spline Linear adalah yang tercepat yaitu 11.35 % lebih cepat dan Spline Kubik adalah yang terlama yaitu 45.51 %. Rata-rata waktu komputasi dalam persen untuk ketiga spline terbilang konstan walaupun banyak data yang dicari semakin besar, kalaupun waktu yang digunakan bertambah, penambahannya hanya sedikit. Semakin banyak data yang dicari semakin lama waktu yang diperlukan. Dapat disimpulkan bahwa semakin jauh beda data maka galat yang dihasilkan akan semakin besar. Semakin besar beda data, galat yang dihasilkan semakin besar jika nilai data yang dicari semakin kecil dan galat yang dihasilkan semakin kecil jika nilai data yang dicari semakin besar. Waktu yang digunakan Spline Linear lebih cepat dibanding waktu yang digunakan Spline Kuadrat dan Spline Kubik dan beda waktunya cukup banyak yaitu kurang lebih 32.98 %. Untuk waktu komputasi ketiga Spline fungsi waktunya linear terhadap jumlah data. Gradien yang paling besar adalah Spline Kubik. Beda jauh data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
tidak terlalu mempengaruhi waktu komputasi, dapat dilihat dari grafik 4.4 dan grafik 4.5 waktu yang diperlukan Spline Linear, Spline Kuadrat dan Spline Kubik dengan beda jauh data yang berbeda relatif sama. Waktu yang diperlukan Spline Kuadrat hampir sama dengan Spline Kubik, perbedaan waktunya hanya 2.17 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V PENUTUP A. Kesimpulan
Dari hasil percobaan dan analisis maka dapat ditarik kesimpulan sebagai berikut : 1. Spline Linear membutuhkan paling sedikit 2 pasangan data, Spline Kuadrat membutuhkan paling sedikit 3 pasangan data, Spline Kuadrat membutuhkan paling sedikit 4 pasangan data. 2. Spline Kubik menghasilkan Galat yang lebih kecil, mendekati nol dibandingkan Spline Linear dan Spline Kuadrat yang menghasilkan galat lebih besar. 3. Beda jauh data mempengaruhi besar atau kecilnya galat. Semakin besar beda jauh data semakin besar galat yang dihasilkan. Semakin besar beda jauh data galat yang dihasilkan Spline Linear dan Spline Kuadrat relatif sama. Dengan kata lain meskipun Spline Kuadrat merupakan polinomial orde lebih tinggi dibandingkan dengan Spline Linear tidak menjamin orde lebih tinggi lebih baik dibandingkan orde lebih rendah. 4. Semakin besar beda data, galat yang dihasilkan semakin besar jika nilai data yang dicari semakin kecil dan galat yang dihasilkan semakin kecil jika nilai data yang dicari semakin besar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5. Waktu komputasi yang dibutuhkan Spline Linear lebih cepat dari Spline Kuadrat dan Spline Kubik. Waktu komputasi yang dibutuhkan Spline Kuadrat dan Spline Kubik relatif sama. 6. Fungsi waktu ketiga Spline adalah linear dan berbanding lurus dengan jumlah data. Spline Kubik memiliki gradien yang paling besar.
B. Saran
Dari hasil implementasi, percobaan dan analisa saran yang bisa disampaikan : 1. Jika ingin menghasilkan galat yang kecil, Spline Kubik sangat baik untuk digunakan. 2. Jika ingin perhitungan dengan logaritma yang mudah dan waktu komputasi lebih cepat, Spline Linear sangat baik digunakan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
Ayyub, Bilal, M & Richard, H.McCuen (1996). Numerical Methods for Engineers. New Jersey : Prentice_Hall,Inc.
Burden, Richard L. & Faires, Douglas J. (1993). Numerical Analysis, fifth edition, PWS Publishing Company, Boston.
Chapra, S. C. dan Canale, R. P. (1988). Metode Numerik, Jilid 1, edisi kedua. Jakarta : Erlangga. Erwin, Kreyszig (1988). Matematika Teknik Lanjutan, edisi keenam. Jakarta : Gramedia. Wahana Komputer (2003), Panduan Praktis Pemrograman Borland Delphi 7.0, Yogyakarta : Andi Offset.
Zukhri, Zainudin (2005). Delphi 2005 Pemprograman bagi Pemula, Yogyakarta : Graha Ilmu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN 1. Program Spline procedure TForm2.BitBtn6Click(Sender: TObject); type ary=array[1..100]of currency; arys = array [1..100,1..100] of real; var s : arys; d,h:ary; m : ary; ww:currency; tt,z : currency; jj: integer; fx: currency; masuk:ary; k,w,i: integer; a : ary; b : ary; c,j,t,v,r: ary; dd,e,mm: currency; jarak:integer; temp,atemp,temp1,btemp1:real; begin data:=strtoint(edit1.Text); pencarian:=strtoint(edit2.Text); if (data <= 100)then begin if (data >=4)then begin with grid do begin for i:=1 to data-1 do begin for jarak:= 1 to data-i do begin if (strtofloat(Cells[1,jarak]) > strtofloat(cells[1,jarak+1])) then begin temp:=strtofloat(cells[1,jarak]); atemp:=strtofloat(cells[1,jarak+1]); cells[1,jarak]:=floattostr(atemp); cells[1,jarak+1]:=floattostr(temp); temp1:=strtofloat(cells[2,jarak]); btemp1:=strtofloat(cells[2,jarak+1]); cells[2,jarak]:=floattostr(btemp1); cells[2,jarak+1]:=floattostr(temp1); end; end; end; end; with StringGrid1 do begin for w:= 1 to pencarian do begin masuk[w] := StrToFloat(cells[1,w]);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
end; for i:=1 to pencarian-1 do begin for jarak:= 1 to pencarian-i do begin if (strtofloat(Cells[1,jarak]) > strtofloat(cells[1,jarak+1])) then begin temp:=strtofloat(cells[1,jarak]); atemp:=strtofloat(cells[1,jarak+1]); cells[1,jarak]:=floattostr(atemp); cells[1,jarak+1]:=floattostr(temp); masuk[jarak]:=strtofloat(cells[1,jarak]); masuk[jarak+1]:=strtofloat(cells[1,jarak+1]); end; end; end; end; with stringgrid1 do begin for i:=1 to pencarian do begin a[i]:=strtofloat(cells[1,i]); end; end; with stringgrid2 do begin for i:= 1 to pencarian do begin cells[1,i]:=floattostr(a[i]); end; end;
with grid do begin for w:=1 to pencarian do begin if (masuk[w]>=strtofloat(cells[1,1]))and(masuk[w]<=strtofloat(cells[1 ,data]))then begin //Spline Linear if checkbox1.Checked then begin for i :=1 to data-1 do begin if(masuk[w]>=strtofloat(cells[1,i]))and(masuk[w]<=strtofloat(ce lls[1,i+1]))then begin fx :=strtofloat(cells[2,i])+(((strtofloat(cells[2,i+1])strtofloat(cells[2,i]))/
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(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; inc(timer); break; end; end; end;
//Spline Kuadrat if checkbox4.Checked then begin 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; mm:=StrToFloat(Cells[1,1])-StrToFloat(Cells[1,2]); b[1]:=(StrToFloat(Cells[2,1])-StrToFloat(Cells[2,2]))/mm; c[1]:=StrToFloat(Cells[2,1])-b[1]*StrToFloat(Cells[1,1]); dd:=(StrToFloat(Cells[2,2])-StrToFloat(Cells[2,3]))(b[1]*(StrToFloat(Cells[1,2]) -StrToFloat(Cells[1,3]))); e:=(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])); a[2]:=dd/e; 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; v[2]:=(2*a[2]*StrToFloat(Cells[1,3]))+b[2]; 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[k1])*r[k]))/j[k]; b[k]:= ((2*a[k-1]*StrToFloat(Cells[1,k]))+b[k-1])(2*a[k]*StrToFloat(Cells[1,k]));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c[k]:= StrToFloat(Cells[2,k])a[k]*StrToFloat(Cells[1,k])* StrToFloat(Cells[1,k])b[k]*StrToFloat(Cells[1,k]); end; 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; inc(waktu); end; for k:=3 to data do begin if(masuk[w]>=StrToFloat(Cells[1,k1]))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; inc(waktu); end; end; //Spline Kubik if checkbox3.Checked then begin 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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; for jj := 2 to data do begin if(masuk[w]>=strtofloat(cells[1,jj1]))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; inc(before); 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
cells[4,w] := FloatToStr(z); end; inc(before); end; end; end else begin MessageDlg('Masukan Anda Salah',mtWarning,[mbOk],0) end; end; end; bitbtn6.Visible := false; bitbtn9.Visible := true; end else begin MessageDlg('Jumlah data Tidak Boleh kurang dari 3!!',mtWarning,[mbOk],0) end; end else begin MessageDlg('Jumlah data Tidak Boleh lebih dari 100!!',mtWarning,[mbOk],0) end; end; 2.
Program Galat procedure TForm2.BitBtn9Click(Sender: TObject); var i:integer; a,b,c,asli,aa,bb,cc:array[1..100]of currency; begin pencarian := strtoint(edit2.Text); with stringgrid2 do begin for i:=1 to pencarian do begin if (cells[2,i]='') then begin MessageDlg('Nilai Tabel belum Diisi!!',mtWarning,[mbOk],0) end; end; end; with stringgrid1 do begin for i:=1 to pencarian do begin a[i]:=strtofloat(cells[2,i]); b[i]:=strtofloat(cells[3,i]); c[i]:=strtofloat(cells[4,i]); end;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
end; with stringgrid2 do begin for i:= 1 to pencarian do begin asli[i]:=strtofloat(cells[2,i]); aa[i]:=abs((asli[i]-a[i])/asli[i]*100); bb[i]:=abs((asli[i]-b[i])/asli[i]*100); cc[i]:=abs((asli[i]-c[i])/asli[i]*100); cells[3,i]:=floattostr(aa[i]); cells[4,i]:=floattostr(bb[i]); cells[5,i]:=floattostr(cc[i]); end; end; end; 3.
Program Grafik procedure TForm2.BitBtn8Click(Sender: TObject); type ary=array[1..100]of currency; arys = array [1..100,1..100] of real; var s,d,h,m,a,b : ary; w,tt,z,fx : currency; jj,jarak,k,i: integer; c,j,t,v,r: ary; dd,e,mm,dt: currency; masuk:real; temp,atemp,temp1,btemp1:currency; begin groupbox3.Visible :=true; data:=strtoint(edit1.Text); with grid do begin for i:=1 to data-1 do begin for jarak:= 1 to data-i do begin if (strtofloat(Cells[1,jarak]) > strtofloat(cells[1,jarak+1])) then begin temp:=strtofloat(cells[1,jarak]); atemp:=strtofloat(cells[1,jarak+1]); cells[1,jarak]:=floattostr(atemp); cells[1,jarak+1]:=floattostr(temp); temp1:=strtofloat(cells[2,jarak]); btemp1:=strtofloat(cells[2,jarak+1]); cells[2,jarak]:=floattostr(btemp1); cells[2,jarak+1]:=floattostr(temp1); end; end; end; end;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
with grid do begin dt:=(strtofloat(cells[1,data])-strtofloat(cells[1,1]))/1000; masuk:=strtofloat(cells[1,1]); // Grafik Spline Linear if checkbox1.Checked then begin while masuk <= strtofloat(cells[1,data]) do begin for i :=1 to data-1 do begin if(masuk>=strtofloat(cells[1,i]))and (masuk<=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- strtofloat(cells[1,i]))); series1.AddXY(masuk,fx); masuk:=masuk+dt; end; end; end; end; // akhir Spline linear
//Grafik Spline Kuadrat if checkbox4.Checked then begin 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; mm:=StrToFloat(Cells[1,1])-StrToFloat(Cells[1,2]); b[1]:=(StrToFloat(Cells[2,1])-StrToFloat(Cells[2,2]))/mm; c[1]:=StrToFloat(Cells[2,1])-b[1]*StrToFloat(Cells[1,1]); dd:=(StrToFloat(Cells[2,2])-StrToFloat(Cells[2,3]))(b[1]*(StrToFloat(Cells[1,2]) -StrToFloat(Cells[1,3]))); e:=(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])); a[2]:=dd/e; 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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; v[2]:=(2*a[2]*StrToFloat(Cells[1,3]))+b[2]; 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; masuk:=strtofloat(cells[1,1]); while masuk<=strtofloat(cells[1,data]) do begin if (masuk<StrToFloat(Cells[1,2]))and (masuk>=StrToFloat(Cells[1,1]))then begin fx:=b[1]*masuk+c[1]; series2.AddXY(masuk,fx); masuk:=masuk+dt; end; if(masuk>=StrToFloat(Cells[1,2]))and (masuk<=StrToFloat(Cells[1,data]))then begin for k:=3 to data do begin if(masuk>=StrToFloat(Cells[1,k-1]))and (masuk<=StrToFloat(Cells[1,k]))then begin fx :=a[k-1]*masuk*masuk+b[k-1]*masuk+c[k-1]; series2.AddXY(masuk,fx); masuk:=masuk+dt; end; end; end; end; end; // akhir Spline Kuadrat //Grafik Spline Kubik if checkbox3.Checked then begin with grid do begin cells[1,data+1]:=floattostr(0); cells[2,data+1]:=floattostr(0);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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; masuk:=strtofloat(cells[1,1]); while masuk <= strtofloat(cells[1,data]) do begin for jj := 2 to data do begin if(masuk>=strtofloat(cells[1,jj-1]))and (masuk<=strtofloat(cells[1,jj]))then begin k := jj-1; w := masuk-strtofloat(cells[1,k]);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
z := ((s[k,4]*w+s[k,3])*w+s[k,2])*w+s[k,1]; series3.AddXY(masuk,z); masuk:=masuk+dt; end; end; if (masuk = strtofloat(cells[1,1])) then begin k := 1; w := masuk-strtofloat(cells[1,k]); z := ((s[k,4]*w+s[k,3])*w+s[k,2])*w+s[k,1]; series3.AddXY(masuk,z); masuk:=masuk+dt; end; end; end; end; //akhir spline kubik end; end;