ardha bariq fardiansyah_tugas 2_komnum1

Upload: ardha-bariq

Post on 14-Feb-2018

221 views

Category:

Documents


0 download

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