BAB II Landasan Teori. Model Matematika Menurut Wirodikromo (998, p77) model matematika adalah suatu rumusan matematika (dapat berbentuk persamaan, pertidaksamaan / fungsi) yang diperoleh dari hasil penafsiran seseorang ketika menerjemahkan suatu masalah ke dalam bahasa matematika.. Pengoptimalan Dalam Kamus Besar Bahasa Indonesia, pengoptimalan diartikan sebagai proses, cara, perbuatan untuk menjadikan paling baik, paling tinggi, paling menguntungkan, dan sebagainya. Hasil dari pengoptimalan disebut hasil yang optimal.. Masalah Pengoptimalan Menurut Hadley (975), masalah pengoptimalan (optimization problems) adalah suatu permasalahan yang mencoba memaksimalkan atau meminimunkan suatu fungsi numerik dari sejumlah variabel atau fungsi dengan variabel / fungsi tersebut harus memenuhi batasan-batasan tertentu yang merupakan masalah umum. Sedangkan menurut Bronson (997,p), suatu masalah pengoptimalan menentukan suatu kuantitas maksimal atau minimal yang spesifik yang disebut objektif yang tergantung pada suatu bilangan terhingga / variabel input. Variabel tersebut dapat 6
7 berdiri sendiri-sendiri atau berkaitan satu sama lain melalui satu atau beberapa kendala (constraints)..4 Interpolasi Polinom Pekerjaan menginterpolasi titik-titik data dengan sebuah polinom disebut interpolasi (dengan) polinom. Bila data tersebut berasal dari suatu fungsi, maka kurva cocokannya akan sama dengan fungsi tersebut. Bila fungsi cocokan yang digunakan berbentuk polinom, maka polinom tersebut dinamakan polinom interpolasi. Interpolasi memainkan peranan yang sangat penting dalam metode numerik. Fungsi yang tampak rumit menjadi lebih sederhana bila dinyatakan dalam polinom interpolasi. Sebagian besar metode integrasi numerik, metode persamaan diferensial biasa, dan metode turunan numerik didasarkan pada polinom interpolasi. Jika c < a < c n maka g k r(c k ) disebut nilai interpolasi (interpolated value), sedangkan jika c < c k atau c < c n maka g k r(c k ) disebut nilai ekstrapolasi (etrapolated value).
8 Keunikan dari polinom interpolasi adalah hanya ada untuk c i yang berbeda. Bila terdapat beberapa nilai c yang sama, tidak dapat dibuat polinom interpolasi yang unik. Interpolasi titik-titik data dapat dilakukan dengan polinom linier, polinom kuadratik, atau polinom kubik, tergantung pada jumlah titik data yang tersedia. Secara umum, penentuan polinom interpolasi ini kurang disukai, karean sistem persamaan linier yang diperoleh ada kemungkinan berkondisi buruk, terutama untuk derajat polinom yang semakin tinggi. Untuk itu beberapa metode perhitungan polinom interpolasi telah ditemukan oleh para ahli numerik tanpa menggunakan cara pendekatan tersebut. Beberapa di antara pendekatan tersebut adalah:. Polinom Langrange.. Polinom Newton.. Polinom Newton-Gregory (kasus khusus dari polinom Newton)..5 Polinom Newton Pada polinom liniar terdapat sebuah persamaan yaitu : r () a + a (- )
9 Yang dalam hal ini a go ƒ( ) dan a - - g g c c atau a ƒ ( ) - ƒ ( ) - Setelah polinom linier, polinom kuadratik dapat dinyatakan dalam bentuk r () a + a ( - )+ a ( - ) ( - ) atau r () r () + a ( - ) ( - )
Persamaan ini memperlihatkan bahwa r () dapat dibentuk dari polinom sebelumnya r (). Hal ini memungkinkan pembentukan polinom Newton untuk derajat lebih tinggi. Nilai a dapat ditemukan dengan menyulihkan untuk memperoleh a ƒ( ) - a ( - - a ( - )( - ) ) Nilai a dan nilai a dimasukkan dalam persamaan sehingga persamaan akhirnya menjadi a ƒ[, ] - ƒ[ -, ] Dengan demikian dapat dibentuk polinom Newton secara bertahap. Polinom berderajat n dibentuk dari polinom derajat (n-). Polinom Newton dinyatakan dalam hubungan rekursif sebagai berikut: Rekurens: r n () r n- () + a n ( - ) ( - ) ( - n- ) Basis: r () a
Jadi tahapan pembentukan polinom Newton adalah sebagai berikut: r () a + a ( - ) r () r () + a ( - ) (- ) r n () r n- () + a n (- ) ( - ) (- n- ) Nilai konstanta a, a, a,... a n merupakan nilai selisih-terbagi, dengan nilai masingmasing: a ƒ [ ] a ƒ [, ] a ƒ [,, ] a n ƒ [ n, n-,.., ] Karena tetapan a, a, a,... a n merupakan nilai selisih-terbagi, maka polinom Newton dinamakan juga polinom interpolasi selisih-terbagi Newton. Nilai selisih-terbagi ini dapat dihitung dengan menggunakan tabel yang disebut tabel selisih terbagi, misalnya tabel selisih-terbagi untuk empat buah titik (n) berikut:
Tabel.: Tabel Selisih-Terbagi (Newton) Sumber : Rinaldi Munir(p7) i i y i ƒ( i ) ST - ST - ST - ƒ ( ) ƒ [, ] ƒ [,, ] ƒ [,, ] ƒ ( ) ƒ [, ] ƒ [, ] ƒ ( ) ƒ [ ] ƒ ( ) Sekali tabel selisih-terbagi dibentuk, polinom interpolasi yang melewati sekumpulan titik ( i, y i ) berbeda (misalnya untuk i,, atau i,,) dapat ditulis dengan mudah. Bila bagian tabel yang diarsir dinyatakan di dalam matriks ST [ n,...n ], maka evaluasi rn() untuk t dapat dinyatakan sebagai: r n (t) ST[, ] + ST [, ](t - ) + ST[, ](t - )(t ) +...+ ST[, n](t - )(t ).( t n- ) Contoh: Bentuklah polinom Newton derajat satu, dua, tiga dan empat yang menghampiri fungsi ƒ() cos() di dalam selang [.,..,.4.] dan jarak antar titik adalah.. Lalu taksirlah nilai fungsi di.5 dengan polinom Newton derajat tiga. Penyelesaian:
Dengan jarak antar titik., maka titik yang digunakan adalah pada.,.,.,., 4 4.. Tabel selisih terbaginya adalah: Tabel.: Contoh Tabel Selisih-Terbagi (Newton) Sumber: Rinaldi Munir(p9) i Xi ƒ(i) ST - ST - ST - ST -4.. -.4597 -.484.466 -.47..54 -.9564.9.88. -.46 -.579.455. -.99.6 4 4. -.656 Contoh cara menghitung nilai selisih- terbagi pada tabel adalah sebagai berikut: ƒ() - ƒ( ) (.54 -. ) ƒ[, ].4597 - (. -.) ƒ( ) - ƒ() (-.46-.54 ) ƒ[, ] - (. -.).9564 ƒ[, ] ƒ[, ] (-.9564 - (-.4597)) ƒ[,, ].484 - (. -.) Maka, polinom Newton derajat,, dan dengan. sebagai titik data pertama adalah sebagai berikut: Cos () r ()..4597 ( -.).
4 Cos () r ()..4597 ( -.) -.484 ( -.) (-.). Cos () r ()..4597 ( -.) -.484 ( -.)(-.) +.466 ( -.) (-.)(-.). Cos () r4 ()..4597 ( -.) -.484 ( -.) (-.) +.466 ( -.) (-.)(-.) -.47 ( -.) (-.)(-.)(-.). Perhatikan bahwa y r () lebih baik dalam menghampiri fungsi ycos() (kurvanya hampir tepat sama berimpit di dalam selang [.,]. Taksiran nilai fungsi di.5 dengan polinom derajat tiga adalah sebagai berikut: Cos (.5) r (.5)..4597 (.5 -.) -.484 (.5 -.) (.5-.) +.466(.5-.) (.5-.)(.5-.) -.856
5 Nilai sejati ƒ(.5) adalah ƒ(.5) Cos (.5) -.8. Sehingga solusi hampiran mengandung galat sejati sebesar -.8 (-.856)-.45 Titik tidak selalu harus merupakan ujung selang. Bila r () didasarkan pada titik.,.,., 4 4. di dalam selang [.,4.] maka polinom Newton yang menginterpolasi keempat titik tersebut adalah sebagai berikut: r ().54.9564 ( -.) +.9 ( -.)( -.) +.88 ( -.)(-.)( -.) Kelebihan Polinom Newton adalah sebagai berikut:. Polinom Newton dibentuk dengan menambahkan satu suku tunggal dengan polinom derajat yang lebih rendah, maka ini memudahkan perhitungan polinom derajat yang lebih tinggi dalam program yang sama. Karena alasan itu, polinom Newton sering digunakan pada kasus dengan derajat polinom tidak diketahui.. Penambahan suku-suku polinom secara beruntun dapat dijadikan kriteria untuk menentukan tercapainya titik berhenti, yaitu bilamana penambahan suku-suku yang lebih tinggi tidak lagi secara berarti memperbaiki nilai interpolasi (bahkan memperburuk).. Tabel selisih terbagi dapat dipakai berulang-ulang untuk memperkirakan nilai fungsi dengan nilai yang berlainan.
6 Akan halnya polinom Langrange, Polinom Newton disukai karena ia mudah diprogram dan komputasinya tidak memerlukan penyimpanan tabel selisih. Polinom Langrange biasanya dipakai jika derajat polinom interpolasi diketahui terlebih dahulu..6 Interpolasi Bivariate Adakalanya dibutuhkan perkiraan nilai fungsi dengan dua peubah. Fungsi dengan dua peubah, dan y, secara umum dinyatakan sebagai berikut Zƒ(, y) Grafik fungsi Z adalah berupa permukaan atau selimut kurva dengan alasnya adalah dan y. Jadi, nilai nilai Z terletak pada permukaan tersebut. Jika Z diinterpolasi dengan polinom dua-peubah (interpolasi dwimatra atau dua dimensi), kita harus menentukan berapa derajat dalam arah- dan berapa derajat dalam arah y. Misalkan Z dihampiri dengan polinom dua-peubah, yang dalam hal ini derajat dalam arah- dan derajat dalam arah-y: Z ƒ (, y ) a + a + a y + a + a 4 y + a 5 y + a 6 y + a 7 y + a 8 y + a 9 y + a y + a y Interpolasi polinom dua peubah dilakukan dalam dua arah: dalam arah dan dalam arah y. Pada setiap arah, kita harus memilih peubah yang dipegang konstan. Dalam arah y, nilai dipegang konstan, begitu juga dalam arah, nilai y dipegang konstan (pemilihan arah mana yang dikerjakan terlebih dahulu memberikan jawaban yang sama).
7 Tabel.: Tabel Selisih Terbagi(Bivariate) dalam arah y ( tetap): Sumber: Rinaldi Munir(p4) y z Δz Δ z Δ z y ƒ ( y ) ƒ [ y, y ] ƒ [ y, y, y ] ƒ [y y, y, y ] y ƒ ( y ) ƒ [ y, y ] ƒ [ y y, y ] y ƒ ( y ) ƒ [ y y ] y ƒ ( y ) y ƒ ( y ) ƒ [ y, y ] ƒ [ y, y, y ] ƒ [y y, y, y ] y ƒ ( y ) ƒ [ y, y ] ƒ [ y y, y ] y ƒ ( y ) ƒ [ y y ] y ƒ ( y ) Tabel.4: Tabel Selisih Terbagi(Bivariate) dalam arah (y tetap): Sumber: Rinaldi Munir(p4) z Δz Δ z Δ z y ƒ ( ) ƒ [, ] ƒ [,, ] ƒ [,, ] ƒ ( ) ƒ [, ] ƒ [, ] ƒ ( ) ƒ [ ] ƒ ( ) Contoh : Diberikan tabel ƒ (, y ) sebagai berikut Tabel.5 Contoh Interpolasi Bivariate Sumber: Rinaldi Munir(p9)
8....4.5.6.5.65.48..59.7.5..7.64..59.7.5.5.447.99.54.45.549...78.568.84.77.94 4.67.5.6.5.8 5.44 6.4 7.79..5 4.9 6.6 8...84.5.6 6.679 9.986.96 6.77 9.98 Perkirakan nilai ƒ(.6,.) dengan polinom derajat dalam arah dan derajat dalam arah-y : Penyelesaian: Untuk kasus ini kita akan menggunakan interpolasi Newton untuk arah- dan arah-y. Karena dalan arah- menggunakan interpolasi derajat, maka kita memilih tiga buah titik di tabel yaitu pada.,.5, dan.. Hal ini disebabkan,6 terletak paing dekat dengan pertengahan selang [.,.] Dalam arah-y, kita memilih empat buah titik (interpolasi derajat tiga), yaitu pada y.,..4 dan.5. Karena y. terletak paling dekat dengan pertengahan selang [.,.5]. Cara menghitung nilai selisih- terbagi dalam arah-y adalah sebagai berikut : X. ƒ() - ƒ( ) (. -.64 ) ƒ[, ] - (. -.).6
9 ƒ( ) - ƒ() (.59 -. ) ƒ[, ] - (.4 -.).56 ƒ( ) - ƒ( ) (.7 -.59 ) ƒ[, ].44 - (.5 -.4) ƒ[, ] ƒ[, ] (.56 -.6) ƒ[,, ].5 - (.4 -.) ƒ[ ] ƒ[, ] (.44 -.56) ƒ[, ].6 - (.5 -.) ƒ[, ] ƒ[,, ] (-.6 - (-.5)) ƒ[,, ].8 - (.5 -.) Polinom Newton derajat tiga (dalam arah-y): Untuk.: r (y).64 +.6 ( -.) -.5 ( -.) (-.) -.8 ( -.) (-.)(-.4) r (,.).64 +.6 (. -.) -.5 (. -.) (.-.) -.8 (. -.) (.-.)(.-.4).8
X.5 ƒ() - ƒ( ) (.54 -.99 ) ƒ[, ] - (. -.) ƒ( ) - ƒ() (.45 -.54 ) ƒ[, ] - (.4 -.) 5.4 5. ƒ( ) - ƒ( ) (.549 -.45) ƒ[, ] 5.4 - (.5 -.4) ƒ[, ] ƒ[, ] (5.- 5.4) ƒ[,, ].65 - (.4 -.) ƒ[ ] ƒ[, ] (5.4-5.) ƒ[, ].85 - (.5 -.) ƒ[, ] ƒ[,, ] (-.85 - (-.65)) ƒ[,, ].667 - (.5 -.) Polinom Newton derajat tiga (dalam arah-y): Untuk.5: r (y).99 + 5.4( -.) -.65( -.)(-.).667( -.)(-.)(-.4). r (,.).99 + 5.4 (. -.) -.65 (. -.) (.-.) -.667 (. -.) (.-.)(.-.4)..688
X. ƒ() - ƒ( ) (.84 -.568 ) ƒ[, ] - (. -.) ƒ( ) - ƒ() (.88 -.84 ) ƒ[, ] - (.4 -.) 8.6 7.9 ƒ( ) - ƒ( ) (.94 -.77) ƒ[, ] 7.66 - (.5 -.4) ƒ[, ] ƒ[, ] (7.9-8.6) ƒ[,, ].5 - (.4 -.) ƒ[ ] ƒ[, ] (7.66-7.9) ƒ[, ].5 - (.5 -.) ƒ[, ] ƒ[,, ] (-.5 - (-.5)) ƒ[,, ].667 - (.5 -.) Polinom Newton derajat tiga (dalam arah-y): Untuk.: r (y).568 + 8.6 ( -.)-.5 ( -.) (-.) -.667 ( -.) (-.)(-.4) r (,.).568 + 8.6 (. -.) -.5 (. -.) (.-.) -.667 (. -.) (.-.)(.-.4).645
Dalam arah- Cara perhitungan tabel selisih-terbagi dalam arah- sebagai berikut: ƒ() - ƒ( ) (.688 -.8 ) ƒ[, ] - (.5 -.) ƒ( ) - ƒ() (.645 -.688) ƒ[, ] - (. -.5).4.8854 ƒ[, ] ƒ[, ] (.8854 -.4) ƒ[,, ].74 - (. -.) Polinom Newton derajat dua (dalam arah-): r (.6,.).8 +.4 (.6-.) +.74 (.6 -.) (.6-.5).846 Jadi, ƒ(.6,.).846 Tabel di atas diambil dari fungsi ƒ(,y) е sin y + y-., yang mana nilai sejatinya adalah.85
Tabel.6 Contoh Selisih Terbagi (Bivariate) dalam arah-y Sumber: Rinaldi Munir(p4) Y z Δz Δ z Δ z..64.6 -.5 -.8....56 -.6.4.59.44.5.7..99 5.4 -.65 -.667.5..54 5. -.85.4.45 5.4.5.549..568 8.6 -.5 -.667...84 7.9 -.5.4.77 7.66.5.94 Tabel.7 Contoh Selisih Terbagi (Bivariate) dalam arah- Sumber: Rinaldi Munir(p4) Y X z Δz Δ z
4..8.4.74 Y..5.688.8854..645.7 Rekayasa Piranti Lunak Pressman (,p) menyatakan: Perangkat lunak adalah:. Perintah (program komputer) yang bila dieksekusi akan memberikan fungsi dan unjuk kerja seperti yang diinginkan.. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional.. Dokumen yang menggambarkan operasi dan kegunaan program. Pengertian rekayasa piranti lunak adalah sebagai penetapan dan penggunaan prinsip-prinsip rekayasa dalam usaha mendapatkan piranti lunak yang ekonomis, yaitu piranti lunak yang terpercaya dan bekerja efisien pada mesin atau komputer. Dalam rekayasa piranti lunak ada lima kegiatan dasar yang wajib dilakukan. Kegiatan-kegiatan tersebut adalah Rekayasa Sistem, Analisis Kebutuhan, Perancangan, Pengkodean, Pengujian, dan Pemeliharaan. Dalam Rekayasa Sistem akan dilakukan kegiatan untuk membuat suatu gambaran system secara menyeluruh dikarenakan program yang akan dibuat akan berinteraksi dengan system tersebut. Pada Analisis Kebutuhan akan ditentukan kebutuhan dari piranti lunak, sumber informasi piranti lunak, fungsi-fungsi yang diperlukan, dan antarmuka piranti lunak tersebut. Bagian Perancangan
5 menitikberatkan pada empat atribut piranti lunak yaitu struktur data, arsitektur piranti lunak, rincian prosedur, dan karakter antarmuka. Pada aktivitas Pengkodean yang dilakukan adalah memindahkan hasil Perancangan menjadi bentuk yang dapat dimengerti oleh mesin, yaitu dengan membuat listing program. Kemudian pada tahap pengujian dilakukan test pada output program agar sesuai dengan yang diharapkan. Terakhir tinggal dilakukan pemeliharaan piranti lunak agar dapat mengantisipasi fungsi-fungsi baru yang dibutuhkan user..8 Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer diperlukan di dalam pembuatan sebuah program karena program yang interaktif dan memiliki visualisasi yang bagus lebih digemari oleh pengguna komputer. Suatu program yang interaktif dan baik harus bersifat user friendly. Ada lima kriteria yang harus dipenuhi oleh suatu program agar user friendly, yaitu waktu belajar tidak lama, kecepatan penyajian informasi yang tepat, tingkat kesalahan pemakaian yang rendah, penghafalan sesudah melampaui jangka waktu, dan kepuasan pribadi. Program yang interaktif dan user friendly dapat dengan mudah dibuat dan dirancang oleh suatu alat bantu pembuatan program yang memiliki fasilitas antarmuka seperti Borland Delphi. Dengan menggunakan alat bantu ini maka antarmuka yang dihasilkan menjadi lebih baik dan pengerjaan program dengan antarmukanya menjadi lebih mudah ditulis dan lebih ekonomis dalam pemeliharaannya..9 Alat Bantu Perancangan.9. State Transaction Diagram
6 State Trancsaction Diagram (STD) menggambarkan jalannya suatu program dalam kondisi tertentu. Notasi-notasi yang digunakan adalah. State, menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dalam program. KONDISI AKSI Anak panah berarah, menunjukkan perubahan state yang disebabkan oleh aksi (action) terhadap kondisi (condition) tertentu. Kondisi ( condition) merupakan suatu event pada lingkungan eksternal yang dapat dideteksi oleh sistem, misalnya sinyal, interupsi atau data. Hal ini akan menyebabkan perubahan dari suatu state ke state lainnya atau dari suatu aktivitas ke aktivitas lainnya Aksi (action) merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, menghasilkan kalkulasi atau kegiatan lainnya..9. Pseudocode Pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel yang tidak dimaksudkan untuk dieksekusi pada mesin, tetapi hanya digunakan untuk mengatur pemikiran pemrogram sebelum melakukan pengkodean ( Page-Jones,98,p). Pseudocode dapat merupakan alternatif lain dalam perancangan perangkat lunak di samping alat-alat bantu berupa diagram. Tidak ada standarisasi dalam hal
7 penulisan pseudocode. Penulis bebas dalam menulisnya dalam bahasa Indonesia, bahasa Inggris atau bahasa apapun yang disukai bahkan dipadukan dengan bahasa pemrograman tertentu. Penulis juga bebas menggunakan teknik dan aturan sendiri. Robertson (99p6-7) menulis pseudocodenya dengan perjanjian sebagai berikut:. Pernyataan ditulis dalam bahasa Inggris sederhana.. Setiap perintah ditulis pada baris tersendiri.. Kata kunci dan identitas (penulisan menjorok ke dalam) digunakan untuk menandai struktur kontrol khusus. 4. Setiap himpunan perintah ditulis dari atas ke bawah hanya dengan satu awal dan satu akhir program. 5. Kumpulan pernyataan-pernyataan dapat dibentuk dalam modul-modul yang diberi nama tertentu.