BAB 3 PERANCANGAN PROGRAM APLIKASI 3.1 Spesifikasi Rumusan Rancangan Perancangan program aplikasi ini terbagi menjadi beberapa bagian yaitu : a. Proses input persamaan Input persamaan Sistem Sturm-Liouville oleh user dilakukan dengan menginput persamaan p(x), q(x) dan r(x), serta persamaan syarat batasnya. Bentuk persamaan yang diinput adalah dalam bentuk persamaan polinomial dengan orde maksimal dua. User juga harus menginput batas bawah dan batas atas, dan jika batas bawah lebih besar nilainya dari batas atas maka pada saat tombol OK diklik, maka program aplikasi ini akan me-reset kembali semua input dan user harus menginput ulang dari awal. Hal ini juga berlaku jika ada satu bagian saja yang tidak diinput oleh user. Proses pemeriksaan benar tidaknya inputan oleh user hanya akan diketahui setelah tombol OK diklik. b. Proses mencari variabel yang memenuhi persamaan fungsi eigen dari persamaan nilai eigen Dari proses input persamaan Sistem Sturm-Liouville, akan diperoleh bentuk persamaan nilai eigennya. b persamaan λ = Nilai eigen dicari dengan menghitung b 2 ∫ p(x)y'(x)dx − ∫ q(x)y(x) dx a a b ∫ r(x)y(x) dx 2 a 29 . Input dari proses ini adalah batas bawah, batas atas persamaan p(x), q(x) dan r(x) atau dengan kata lain, nilai eigen tidak dapat dihitung jika user salah dalam memberikan inputan. Nantinya persamaan nilai eigen ini akan menjadi persamaan dengan satu peubah saja, yakni salah satu dari peubah pada persamaan asumsi, misalnya Nilai eigen akan, mencapai minimum pada saat λ A1 peubah A1 . pada persamaan nilai eigen dengan peubah A1 bernilai nol. Jika nilai eigen bernilai mininum pada A1 maka nilai peubah A1 akan digunakan untuk mencari nilai peubah-peubah lain pada persamaan asumsi. Pada listing program, pencarian nilai eigen dibagi ke dalam beberapa langkah atau tahap sebagai berikut. 1. Untuk input dengan nilai a2, b2 = 0. Buat fungsi y1(x) = y(a + x(b – a)) = A0 + A1(a + x(b – a)) + A2(a + x(b – a))2 +A3(a + x(b – a))3 = B0 + B1x + B2x2 + B3x3 dengan B0 = A0 + A1a + A2a2 + A3a3, B1 = A1(b – a) + A2(2a(b – a)) + A3(3a2(b – a)), B2 = A2(b – a)2 + A3(3a(b – a)2), B3 = A3(b – a)3 Maka syarat batas a1y(a) = 0 dan a2y(b) = 0 menjadi y1(a) = 0 dan y1(b) = 0. Dari syarat batas di atas maka B0 = 0, B3 = – (B1 + B2) shg y1 = B1(x – x3) + 30 B2(x2 – x3), b λ= b ∫ py1′ dx − ∫ qy1 dx 2 a a b ∫ ry 1 2 2 f=…(hitung secara analitik) = dx a 2 2 x11B1 + x12 B1 B2 + x 22 B2 2 2 y11B1 + y12 B1 B2 + y 22 B2 (x11, x12, x22, y11, y12, y22 sama seperti pada program, detail ada pada worksheet Maple terlampir Æ kalikan kedua ruas pembilang dan penyebut dengan 2520 agar angka-angka koefisiennya bulat semua dan mudah diimplementasikan, koefisien-koefisien sebelum dan sesudah kedua ruas dikalikan 2520 ada pada worksheet terlampir) Dengan membagi pembilang dan penyebut dengan B22 dan substitusi B = didapat λ = B1 , B2 x11B 2 + x12 B + x 22 . y11B 2 + y12 B + y 22 λ mencapai minimum pada saat dλ/dB = 0 Æ d((2x11B + x12)(y11B2 + y12B + y22) – (2y11B + y12)(x11B2 + x12B + x22))/dB = 0 Æ (x11y12 – x12y11)B2 + (2x11y22 – 2x22y11)B + (x12y22 – x22y12) = 0 ...(1) Nilai B yang dipakai adalah akar terbesar dari persamaan (1) di atas. (Implementasi pada program: zaB2 + zbB + zc = 0 Æ za = x11y12 – x12y11, zb = 2x11y22 – 2x22y11, zc = x12y22 – x22y12) 31 Dengan memasukkan B = B1 ke persamaan y1, B2 Maka y1 = B1(x – x3) + B2(x2 – x3) = B2(B(x – x3) + (x2 – x3)) = B2(Bx + x2 – (B + 1)x3) Persamaan y bisa didapatkan dengan substitusi x dari persamaan di atas dengan 1 a a ⎞ ⎛ 1 x− → y1 ⎜ x− ⎟= b−a b−a b−a⎠ ⎝b−a ⎛ ⎞ a ⎞ ⎛ 1 y⎜⎜ a + ⎜ x− ⎟(b − a )⎟⎟ = y (a + x − a ) = y ( x ) b−a⎠ ⎝b−a ⎝ ⎠ 2 3 ⎛ ⎛ 1 a ⎞ ⎛ 1 a ⎞ a ⎞ ⎞⎟ ⎛ 1 ⎜ y = B2 B⎜ x− x− x− ⎟+⎜ ⎟ − (B + 1)⎜ ⎟ ⎜ ⎝b−a b−a⎠ ⎝b−a b−a⎠ b − a ⎠ ⎟⎠ ⎝b−a ⎝ ⎛ − (B + 1) 3 ⎛ 1 3a (B + 1) ⎞ 2 ⎛ B 2a 3a 2 (B + 1) ⎞ ⎛ − aB a2 a 3 (B + 1) ⎞ ⎞⎟ ⎟ x + ⎜⎜ ⎟ x + ⎜⎜ ⎟ = B2 ⎜⎜ + − − x + ⎜⎜ + + 3 2 3 ⎟ 2 3 ⎟ 2 (b − a ) ⎠ ⎝ b − a (b − a ) (b − a ) ⎠ ⎝ b − a (b − a ) (b − a )3 ⎟⎠ ⎟⎠ ⎝ (b − a ) ⎝ (b − a ) 2. Untuk input dengan nilai a2, b2 ≠ 0. b Pertama² hitung λ = b 2 2 ∫ py′ dx − ∫ qy dx a a b = … (hitung secara analitik) ∫ ry dx 2 a Maka akan didapatkan bentuk λ = x 00 A0 2 + x 01 A0 A1 + x 02 A0 A2 + x 03 A0 A3 + x11 A12 + x12 A1 A2 + x13 A1 A3 + x 22 A2 2 + x 23 A2 A3 + x 33 A32 y 00 A0 2 + y 01 A0 A1 + y 02 A0 A2 + y 03 A0 A3 + y11 A12 + y12 A1 A2 + y13 A1 A3 + y 22 A2 2 + y 23 A2 A3 + y 33 A32 32 (x00…x33 dan y00…y33 sama seperti pada program, detail ada pada worksheet Maple terlampir) Dalam worksheet Maple p(x) = p2x2 + p1x + p0, q(x) = q2x2 + q1x + q0, r(x) = r2x2 + r1x + r0 a1y(a) + a2y’(a) = a3 Æ a1A0 + (a1a + a2)A1 + (a1a2 + 2a2a)A2 + (a1a3 + 3a2a2)A3 = 0 b1y(b) + b2y’(b) = b3 Æ b1A0 + (b1b + b2)A1 + (b1b2 + 2b2b)A2 + (b1b3 + 3b2b2)A3 = 0 Dengan men-set nilai A2 = 1 didapatkan a1A0 + (a1a + a2)A1 + (a1a3 + 3a2a2)A3 = – (a1a2 + 2a2a) ...(1) b1A0 + (b1b + b2)A1 + (b1b3 + 3b2b2)A3 = – (b1b2 + 2b2b) ...(2) (Implementasi pada program: x0A0 + x1A1 + x3A3 = –x2, y0A0 + y1A1 + y3A3 = –y2 sehingga x0 mewakili a1, x1 mewakili a1a + a2, x2 mewakili a1a2 + 2a2a, x3 mewakili a1a3 + 3a2a2, y0 mewakili b1, y1 mewakili b1a + b2, y2 mewakili b1b2 + 2b2b, y3 mewakili b1b3 + 3b2b2) Dengan cara memanipulasi (1) dan (2) diperoleh A0 = ß – αA1, A3= δ – γA1, A1 = A1 ...(3) di mana y1 − y 0 xx10 − y 2 + y 0 xx 02 x1 x3 x 2 x3 γ = − γ,β = − − δ ,δ = ,α = x3 x3 y3 − y 0 x 0 y3 − y 0 x 0 x0 x0 x0 x0 (Pada program: aa = α, bb = ß, cc = γ, dd = δ) Mensubstitusikan (3) ke dalam persamaan λ menghasilkan λ= 2 z 02 A1 + z 01A1 + z 00 2 z12 A1 + z11A1 + z10 ...(4) dengan 33 z 00 = x00β 2 + x02β + x03βδ + x 22 + x 23δ + x33δ 2 z 01 = −2 x00αβ + x01β − x02α − x03βγ − x03αδ + x12 + x13δ − x 23γ − 2 x33γδ z 02 = x00α 2 − x01α + x03αγ + x11 − x13γ + x33γ 2 z10 = y 00 β 2 + y 02 β + y 03βδ + y 22 + y 23δ + y33δ 2 z11 = −2 y 00αβ + y 01β − y 02α − y 03βγ − y 03αδ + y12 + y13δ − y 23γ − 2 y33γδ z12 = y 00α 2 − y 01α + y 03αγ + y11 − y13γ + y33γ 2 λ mencapai nilai minimumnya pada saat dλ pada (4) bernilai 0 dA1 2 2 ( 2 z 02 A1 + z 01)(z12 A1 + z11A1 + z10) − (2 z12 A1 + z11)(z 02 A1 + z 01A1 + z 00) ↔ =0 (z12 A 1 2 + z11A1 + z10 ) 2 ↔ ( z 02 z11 − z 01z12 )A1 + (2 z 02 z10 − 2 z 00 z12 )A1 + ( z 01z10 − z11z 00 ) = 0 ...(5) 2 2 ↔ zaA1 + zbA1 + zc = 0 (pada program) dimana za mewakili z02z11 – z01z12, zb mewakili 2z02z10 – 2z00z12, zc mewakili z01z10 – z11z00 Nilai A1 dapat dicari dengan menyelesaikan solusi persamaan (5) di atas, setelah itu nilai A0 dan A3 dapat ditentukan dengan menggunakan (3). (Fungsi yang didapatkan dari metode ini memiliki nilai A2 yang diset = 1). b b a a Untuk sistem dengan nilai fungsi r(x) = 0, digunakan cara sbb: λ = ∫ py ′ 2 dx − ∫ qy 2 dx 2 2 2 2 = x00A0 + x01A0A1 + x02A0A2 + x03A0A3 + x11A1 + x12A1A2 + x13A1A3 + x22A2 + x23A2A3 + x33A3 a1y(a) + a2y’(a) = a3 Æ a1A0 + (a1a + a2)A1 + (a1a2 + 2a2a)A2 + (a1a3 + 3a2a2)A3 = a3 b1y(b) + b2y’(b) = b3 Æ b1A0 + (b1b + b2)A1 + (b1b2 + 2b2b)A2 + (b1b3 + 3b2b2)A3 = b3 Dengan menset nilai A2 = 1 didapatkan a1A0 + (a1a + a2)A1 + (a1a3 + 3a2a2)A3 = a3 – (a1a2 + 2a2a) ...(6) 34 b1A0 + (b1b + b2)A1 + (b1b3 + 3b2b2)A3 = b3 – (b1b2 + 2b2b) ...(7) (Implementasi pada program: x0A0 + x1A1 + x3A3 = –x2, y0A0 + y1A1 + y3A3 = –y2) Dengan cara memanipulasi (6) dan (7) diperoleh A0 = ß – αA1, A3= δ – γA1, A1 = A1 ...(8) di mana − y 2 + y 0 xx 02 y1 − y 0 xx10 x1 x3 x 2 x3 ,δ = ,α = γ = − γ,β = − − δ x3 x3 y3 − y 0 x 0 y3 − y 0 x 0 x0 x0 x0 x0 (Implementasi pada program: aa = α, bb = ß, cc = γ, dd = δ) Mensubstitusikan (8) kedalam persamaan λ menghasilkan λ = z 02 A1 2 + z 01A1 + z 00 ...(9) dengan z 00 = x00β 2 + x02β + x03βδ + x 22 + x 23δ + x33δ 2 z 01 = −2 x00αβ + x01β − x02α − x03βγ − x03αδ + x12 + x13δ − x 23γ − 2 x33γδ z 02 = x00α 2 − x01α + x03αγ + x11 − x13γ + x33γ 2 λ mencapai nilai minimumnya → 2 z 02 A1 + z 01 = 0, A1 = − z 01 2 z 02 pada saat dλ dA1 pada (9) bernilai 0 …(10) Nilai A0 dan A3 dapat dicari dengan memasukkan nilai A1 pada (10) ke dalam (8). (Dalam hal ini nilai A2 diasumsikan = 1). c. Proses mencari fungsi eigen Setelah semua nilai peubah pada persamaan asumsi diketahui yakni dengan mengeliminasi beberapa persamaan, maka fungsi eigen aproksimasi dapat diperoleh. 35 Fungsi eigen aproksimasi diperoleh dengan memasukkan nilai peubahpeubah yang memenuhi persamaan nilai eigen pada persamaan asumsi fungsi eigen sebelumnya. Karena nilai eigen yang dicari adalah nilai eigen yang minimum, maka fungsi eigen aproksimasi yang diari juga merupakan fungsi minimum. 3.2 Perancangan Modul ( Fungsi ) Program aplikasi ini hanya memiliki satu modul, yakni modul utama atau modul tunggal yang mencakup proses input, pencarian nilai eigen dan pencarian fungsi eigen. Pada bagian input persamaan Sistem Sturm-Liouville terbagi atas tiga bagian (tiga buah fungsi) yakni fungsi input persamaan polinomial p(x), fungsi input persamaan polinomial q(x) dan fungsi input persamaan polinomial r(x) dengan orde maksimalnya adalah dua. User juga harus menginput nilai batas bawah dan batas atas serta koefisien persamaan syarat batas, yakni persamaan syarat batas untuk batas bawah dan persamaan syarat batas untuk batas atas. Inputnya berupa nilai koefisien untuk fungsi y dan turunan fungsi y pada nilai batas bawah serta nilai koefisien untuk fungsi y dan turunan fungsi y pada nilai batas atas. Input syarat batas ini mempunyai validasi tersendiri di mana khusus koefisien y(a) harus bernilai satu. 36 Persamaan nilai eigen diperoleh setelah user menginput persamaan p(x), q(x) dan r(x) dengan benar. Akan diasumsikan persamaan fungsi eigen yang akan dicari dalam bentuk y = A 0 + A1x + A 2 x 2 + A 3 x 3 , di mana nilai A 2 adalah tetap, yakni satu. Lalu akan diperoleh persamaan nilai eigen dalam A 0 , A1 , A 3 atau hanya dalam dua di antaranya. Lalu persamaan nilai eigen ini akan diubah lagi melalui permisalan sehingga persamaannya hanya dalam peubah sejenis, dalam hal ini A1 . Nilai peubah persamaan nilai eigen yang baru akan menentukan nilai eigen, yakni jika λ A1 bernilai nol atau λ bernilai minimum. Nilai peubah yang ini akan kembali dimasukkan atau dieliminasi dalam persamaan peubah A 0 , A1 , A 3 sehingga masing-masing peubah akan diperoleh nilainya untuk mencari fungsi eigen aproksimasi dengan memasukkan ke dalam persamaan. 3.2 Form Program aplikasi ini hanya memiliki satu buah form, yang di dalamnya sudah terdapat bagian input persamaan Sistem Sturm-Liouville yakni fungsi p(x), q(x) dan r(x) dalam bentuk persamaan polinomial atau hanya berupa koefisien, input batas bawah dan batas atas, serta input koefisien persamaan syarat batasnya. Dalam form terdapat tiga buah tombol, yaitu tombol ”OK”, tombol ”Kembali ke awal” dan tombol ”Selesai”. Jika tombol ”OK” diklik, maka program aplikasi ini akan menampilkan persamaan fungsi eigen yang dicari. Untuk keluar dari program ini maka tombol ”Selesai” yang diklik. Tombol ”Kembali ke awal” digunakan untuk 37 me-reset semua input dan melakukan perhitungan ulang. Berikut ini adalah rancangan layar dari form 1. Rancangan layar ini adalah rancangan layar sebelum diinput atau tampilan awal dan rancangan layar pada saat fungsi eigennya ditampilkan atau layar output. Gambar 3.3 Rancangan layar input form 1. 3.3 Cara Kerja Program Pada sub bab ini akan digambarkan secara lebih rinci lagi tentang diagram alir (flowchart) dan gambaran proses kerja yang terjadi yang akan ditampilkan dalam bentuk STD mengenai proses-proses yang terjadi pada setiap modul. 3.4.1 Perancangan Diagram Alir (flowchart) Diagram alir merupakan alat pantau pemrograman yang biasanya digunakan. Diagram alir (flowchart) 38 membantu programmer dalam mengorganisasikan pemikiran mereka dalam pemrograman, terutama bila dibutuhkan penalaran tajam dalam logika prosedur suatu program. 39 Mulai Tidak Valid Proses Input Persamaan Valid Proses Pilih Variabel yang memenuhi persamaan fungsi eigen dari persamaan nilai eigen Proses Hitung Fungsi Eigen Ya Kembali Tidak Selesai Gambar 3.4.1.1 Flowchart perancangan form pada Sistem Sturm-Liouville 40 Mulai Ya a2.b2=0 Cari koefisien nilai eigen bagian pembilang & penyebut Cari koefisien persamaan turunan pertamanya tidak Cari koefisien nilai eigen bagian pembilang r=0 ya Cari akar-akar persamaan nilai eigen Cari koefisien persamaan syarat batas atas dan bawah tidak Cari koefisien persamaan nilai eigen bagian penyebut Cari koefisien persamaan syarat batas atas dan bawah Cari koefisien persamaan nilai eigen yang baru Pilih nilai variabel yang terbesar lalu masukkan ke persamaan asumsi koefisien fungsi eigen Eliminasi kedua persamaaan syarat batas untuk mendapatkan persamaaan nilai eigen baru Turunkan persamaan nilai eigen yang baru dan dapatkan nilai akarnya Nilai akar dimasukkan ke dalam persamaan asumsi fungsi eigen Turunkan persamaan nilai eigen Cari akar-akar nilai eigen dari persamaan turunan pertamanya Tentukan variabel yang tebesar Selesai Gambar 3.4.1.2 Flowchart pencarian variabel fungsi eigen dari persamaan nilai eigen 41 3.4.2 Perancangan Diagram Transisi (State Transition Diagram) Diagram transisi memberikan keterangan kepada sistem tentang apa yang harus dikerjakan (action) dan kondisi (state) tertentu. Kondisi adalah suatu event pada external environment yang dapat dideteksi oleh sistem misalnya sinyal, interrupt atau data. Hal ini akan menyebabkan perubahan terhadap state dari aktivitas x ke aktivitas y. Action adalah hal yang akan dilakukan oleh sistem bila terjadi perubahan state atau data. Action akan menghasilkan output, message display pada layar, menghasilkan kalkulasi dan lain-lain. 42 Halaman Form Input dan Output (Semua isi teks dalam keadaan kosong) Memasukkan persamaan input p(x),q(x) dan r(x), dan syarat batas serta persamaannya Halaman Form Input dan Output (Tanpa Hasil Fungsi Eigen) Klik OK Klik Kembali Klik Selesai Halaman Form Input dan Output (Fungsi eigen ditampilkan hasilnya) Selesai Klik Kembali ke awal Gambar 3.4.2 STD form Input dan Output 43