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