∫ ∫ ∫−

advertisement
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
Download