ardha bariq fardiansyah_tugas 2_komnum1
TRANSCRIPT
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
1/8
PR :
"Program VBA-Excel" (Eliminasi Gauss)
2 1 3 3
11 -4 -3 45
=
Ardha Bariq Fardiansyah
1406553064
Teknik KimiaPR 2 : Pemrograman VBA pada MS-Excel
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
2/8
VB Script :Dim Am(10, 10), xs(10), bv(10) As Double
Sub ElimGauss(ByRef A(), x(), b() As Double, n As Integer)
'Dim A(10, 10) As Double
'Dim x(10), b(10) As Double
Dim i, j, k As Integer
Dim pivot, mult, top As Double
'SUBROUTINE Eliminasi Gauss
'Begin the subprogram
For j = 1 To n - 1
' Begin [outer For..Next loop]
' Begin the "Triangularisation"
pivot = A(j, j)
For i = j + 1 To n
' Begin [middle For..Next loop]
mult = A(i, j) / pivot
For k = j + 1 To n
A(i, k) = A(i, k) - mult * A(j, k)
Next
b(i) = b(i) - mult * b(j)Next
' End [middle For..Next loop]
Next
' End [outer For..Next loop]
' End of Triangularisation
' *--- Substitusi Balik ---*
x(n) = b(n) / A(n, n)
For i = n - 1 To 1 Step -1
top = b(i)
For k = i + 1 To n
top = top - A(i, k) * x(k)
Next
x(i) = top / A(i, i)Next
End Sub
Sub SPAL2P()
Dim i, j, k, neq As Integer
'
' INPUT "element" dari matriks "A":
neq = 2
For i = 1 To neq
For j = 1 To neq
Am(i, j) = Cells(i + 4, 1 + j)
Next
Next
' INPUT "element" dari vektor "b":
For i = 1 To neqbv(i) = Cells(i + 4, 8)
Next
Call ElimGauss(Am, xs, bv, 2)
' Hasil dan Tampilan ke Excel:
For i = 1 To neq
Cells(i + 4, 5) = xs(i)
Next
End Sub
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
3/8
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
4/8
3. Setelah itu, kita klik file Close and Return to Microsoft Excel atau klik Alt+Q
4. Setelah kembali ke jendela kerja Microsoft Excel, kita klik Alt+F8 lagi untuk
menjalankan program VBA dengan mengklik option Run.
Tujuan dari menjalankan (run) program VBA dari VB Script yang telah kita tuliskanpada jendela Macro yaitu untuk mendapatkan nilai x(a, b) pada matriks tersebut.
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
5/8
5. Setelah mengklik option Run, maka nilai a dan b pada matriks x akan muncul nilainya.
Nilai A = 3
NIlai B = -3
Perbandingan Sintaks VBA, Fortran, dan Pascal :
VB Script :
Dim Am(10, 10), xs(10), bv(10) As Double
Sub ElimGauss(ByRef A(), x(), b() As Double, n As Integer)
'Dim A(10, 10) As Double
'Dim x(10), b(10) As Double
Dim i, j, k As IntegerDim pivot, mult, top As Double
'SUBROUTINE Eliminasi Gauss
'Begin the subprogram
For j = 1 To n - 1
' Begin [outer For..Next loop]
' Begin the "Triangularisation"
pivot = A(j, j)
For i = j + 1 To n
' Begin [middle For..Next loop]
mult = A(i, j) / pivot
For k = j + 1 To n
A(i, k) = A(i, k) - mult * A(j, k)
Next
b(i) = b(i) - mult * b(j)
Next
' End [middle For..Next loop]
Next
' End [outer For..Next loop]
' End of Triangularisation
' *--- Substitusi Balik ---*
x(n) = b(n) / A(n, n)
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
6/8
For i = n - 1 To 1 Step -1
top = b(i)
For k = i + 1 To n
top = top - A(i, k) * x(k)
Next
x(i) = top / A(i, i)
Next
End Sub
Sub SPAL2P()
Dim i, j, k, neq As Integer
'
' INPUT "element" dari matriks "A":
neq = 2
For i = 1 To neq
For j = 1 To neq
Am(i, j) = Cells(i + 4, 1 + j)
Next
Next
' INPUT "element" dari vektor "b":
For i = 1 To neq
bv(i) = Cells(i + 4, 8)Next
Call ElimGauss(Am, xs, bv, 2)
' Hasil dan Tampilan ke Excel:
For i = 1 To neq
Cells(i + 4, 5) = xs(i)
Next
End Sub
Fortran :
Struktur dasar penulisan program FORTRAN 77, secara ringkas, mengikuti sistematika penulisan berikut:
Definisi dan atau Deklarasi PARAMETER dan VARIABEL
Program Utama (Main Program)
Sub-Program SUBROUTINE
Sub-Program FUNCTION.
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
7/8
Pascal :
Penulisan program pada Turbo PASCAL secara ringkas dapat dijelaskan sebagai berikut:
Definisi mode masukan dan atau keluaran sistem berkas (I/O file systems, termasuk juga
layar monitor dan keyboard), menggunakan predefinisi kata uses
Predefinisi, definisi dan deklarasi KONSTANTA dan VARIABEL, yang dapat belaku
untuk Program Utama sekaligus dapat juga berlaku untuk Sub-Program (Procedure
atau Function)
Program Utama (Main Program), dimulai dengan predefinisi kata begin dan diakhiri
dengan end.
Sub-Program PROCEDURE, yang dimulai dengan begin dan diakhiri dengan end;Di
antara kata PROCEDURE dan begin tersebut di atas, dapat juga diisi dengan definisi
dan atau deklarasi KONSTANTA dan atau VARIABEL yang baru, namun dalam
halini hanya berlaku lokal di dalam sub-program PROCEDURE tersebut.
Sub-Program FUNCTION, yang juga harus dimulai dengan begin dan diakhiri dengan
end;. Di antara FUNCTION dan begin dapat diisi dengan definisi/deklarasi
KONSTANTA/VARIABEL yang baru, namun dalam hal ini juga hanya berlaku lokal
Setiap baris pernyatan (termasuk predefinisi, definisi dan deklarasi) harus ditutupdengan tanda baca ; (titik koma), kecuali yang berada tepat sebelum kata end; atau
end..
Contoh Program Fortran :
-
7/23/2019 Ardha Bariq Fardiansyah_Tugas 2_Komnum1
8/8