Wednesday, 28 March 2012

Eliminasi gaus Jordan, alogaritma dan pemograman menggunakan VBA

Eliminasi Gaus Jordan sangat bermanfaat untuk proses perhitungan persamaan suku banyak, namun linier, proses perhitungan eliminasi gaus adalah dengan mengeliminasi baris per barisnya sehingga didapatkan matrix berbentuk segitiga, bila proses segitiga selesai, perhitungan variabel bisa dijalankan dengan back subtitusi.

Alogaritma
misalnya diketahui 3 buah persamaan
a11x1+ a12x2 + a13x3 = a14
a21x1+ a22x2 + a23x3 = a24
a31x1+ a32x2 + a33x3 = a34

untuk proses eliminasi x1 dari ketiga persamaan diatas :
1. for i =1 to 3 dan j=1 to 4 read aij
2. end for
3. for i = 2 to 3 in step of 1 hitung
4. u1 = ai1/a11
5. for j = 1 to 4 in steps of 1 do
6. aij = aij-ua1j
7. end for
8. end for

untuk eliminasi x2 dari persamaan ketiga
9. i = 3
10. u = a12/a22
11. for j = 2 to 4 in step of 1 do
12 aij = aij - ua2j
13. end for
14. end for

dari alogarima diatas akan didapatkan matrik segitiga, setelah didapatkan matrik segitia tinggal dilakuakn subtitusi balik, sehingga nilai x1,x2,x3 didapatkan.

Konsep Pemograman
form yang saya pakai saya desain seperti berikut

untuk memulai memasukkan program, double klik tombol hitung, code program yang saya tulis berikut, saya gunakan konsep yang sederhana dan hanya bisa digunakan untuk tiga persamaan dengan tiga konstanta yang tidak diketahui


Private Sub CommandButton1_Click()
Dim a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, hx1, hx2, hx3 As Double
Dim u1, u2, u3 As Double
Dim e21, e22, e23, e24, e31, e32, e33, e34, e342, e332 As Double


a11 = ta11.Text
a12 = ta12.Text
a13 = ta13.Text
a14 = ta14.Text
a21 = ta21.Text
a22 = ta22.Text
a23 = ta23.Text
a24 = ta24.Text
a31 = ta31.Text
a32 = ta32.Text
a33 = ta33.Text
a34 = ta34.Text
' menghitung u
u1 = a21 / a11
u2 = a31 / a11
u3 = a32 / a22
'eliminasi baris 2 dan 3
e21 = a21 - (u1 * a11)
e22 = a22 - (u1 * a12)
e23 = a23 - (u1 * a13)
e24 = a24 - (u1 * a14)
e31 = a31 - (u2 * a11)
e32 = a32 - (u2 * a12)
e33 = a33 - (u2 * a13)
e34 = a34 - (u2 * a14)
' eliminasi baris 2 dan 3, sekaligus menghitung hasil x3, x2, dan x1
e342 = e34 - (u3 * e24)
e332 = e33 - (u3 * e23)
'subtitusi balik
hx3 = e34 / e33
hx2 = ((e24 - (e23 * hx3)) / e22)
hx1 = Val((a14 - (a12 * hx2) - (a13 * hx3)) / a11)
' menulis hasil
thx1.Text = hx1
thx2.Text = hx2
thx3.Text = hx3
End Sub


untuk clear text, silahkan masukkan program seperti berikut,

Private Sub CommandButton2_Click()
ta11.Text = ""
ta12.Text = ""
ta13.Text = ""
ta14.Text = ""
ta21.Text = ""
ta22.Text = ""
ta23.Text = ""
ta24.Text = ""
ta31.Text = ""
ta32.Text = ""
ta33.Text = ""
ta34.Text = ""
thx1.Text = ""
thx2.Text = ""
thx3.Text = ""
End Sub

untuk memudahkan loading form tersebut saya juga memasukkan tombol ke spreadsheet excel, lalu memberikan perintah menampilkan form tersebut seperti dibawah ini
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

ketika program dijalankan, hasilnya kurang lebih seperti ini
programnya dapat didownload pada embed object berikut, untuk mendownload pastikan browser anda sudah terinstal flash player, butuh waktu untuk melihat tampilan dari box.net
semoga bermanfaat


8 comments:

wah jelas bgt postingannya nih mas hasnan.. tapi program ini cuma buat 3 persamaan doank ya?

betul ger, untuk 3 persamaan atau lebih sedang dibikin, kejar tayang nie, besok harus kelas semua, keep in touch aja

Wah memang mas hasnan mantap dalam menyusun program visual basic, ditunggu nih mas yang lebih dari 3 persamaan..

Good job !!!!!

salam,

arandityonarutomo.blogspot.com

yaudah mas Hasnan..
Kalau begitu, ditunggu ya program selanjutnya..
program untuk 3 persamaan lebih.. hehe..

menarik mas,kira-kira kalo salah satu variabel ada yang nol bisa jalan gak mas

iya betul sekali @hemildadang terkadang jika kita input nilai 0 disalah satu variabel pasti ada kesalahan di proses codenya. gmn mas hasnan apakan disini bs running?

Nice posting Mas Hasnan, memudahkan saya untuk memahami algoritma dari Eliminasi Gauss-Jordan

Keep posting mas...

aq bisa minta tolong gak?
program visual basic ku error,buat cramer 3 persamaan..
aq bisa minta tlong perbaiki program ku gak??

Post a Comment