A. Pendahuluan
Dalam lecture sheets yang serba ringkas ini akan diberikan beberapa teknik komputasi yang
sederhana namun cukup berguna untuk kebutuhan mendasar bagi para mahasiswa teknik kimia.
Teknik komputasi numerik yang diberikan dalam kuliah Komputasi Numerik ini, secara sistematis
disajikan dalam 2 cara, yaitu:
1. Komputasi menggunakan cara tabulasi baris dan kolom (spreadsheet) di dalam program
atau piranti lunak Microsoft Excel. Teknik ini adalah yang paling sederhana dan lebih
mudah dipahami.
2. Komputasi menggunakan Bahasa-bahasa pemrograman (programming languages), yaitu
dalam Bahasa Visual Basic (VB Macro MS-Excel), Pascal (Ezy Pascal) dan FORTRAN
(SilverFrost)
Lebih jauh dalam paragraph-paragram selanjutnya akan dibahas secara serba ringkas tentang
teknik-teknik komputasi terkait dengan deret Taylor ataupun deret MacLaurin terkait dengan seri
komputasi untuk fungsi-fungsi exp(x), ln(x), sin(x) dan cos(x). Sedangkan untuk teknik-
teknik komputasi pengembangan selanjutnya, para mahasiswa diharapkan dapat mempelajarinya
sendiri pada literatur-literatur, diktat-diktat ataupun buku teks terkait. Salah satunya dapat dilihat
di laman berikut: http://mathworld.wolfram.com/SeriesExpansion.html.
Di sini akan diberikan suatu deret Taylor (lebih tepatnya Deret MacLaurin) yang terkait untuk
komputasi fungsi atau persamaan ln(x), yaitu:
x 1
k 1
ln x (1) k
x 0,2 (1.a)
k 0 k 1
atau
x 1
k
ln x (1) k 1
x 0,2 (1.b)
k 1 k
atau komputasi dengan pendekatan deret Taylor untuk fungsi eksponensial exp(x), sebagai
berikut:
xk x0 x1 x2 x3 x4
exp x
k 0 k!
0!
1!
2!
3!
4!
x ,
x2 x3 x4
1 x
2 6 24 (2)
C. Komputasi Numerik menggunakan Spreadsheet MS-Excel
Variabel (integer) k disimpan mulai pada harga 1 sampai (dengan increment +1) pada
kolom E, dimulai dari sel E3 (baris ke 3, kolom ke 5), sedangkan suku-suku hasil komputasi dengan
formula
x 1
k 1
(1) k
(3)
k 1
disimpan pada kolom F, dimulai dari sel F3 (baris ke 3, kolom ke 6), dengan formula aplikasi Excel
yang setara dengan formula (3) adalah sebagai berikut:
F3 (-1)^(E3+1)*($C$2-1)^E3/E3
F4 (-1)^(E4+1)*($C$2-1)^E4/E4
F5 (-1)^(E5+1)*($C$2-1)^E5/E5
F6 (-1)^(E6+1)*($C$2-1)^E6/E6
F22 (-1)^(E22+1)*($C$2-1)^E22/E22
Nilain ln(x) hasil komputasi di atas adalah sepadan (identik) dengan nilai ln(x) secara analitis, yaitu
nilai fungsi intrinsik dari MS-Excel sendiri.
Yang harus diingat pada saat melakukan pemrograman, baik menggunakan Bahasa Pascal
atau yang lainnya (Basic, FORTRAN, dll) adalah 4 segmen berikut ini:
Program Komputasi_ln_x;
Var
K,ISIGN,J,N: Integer;
x: Real; {variabel untuk ARGUMEN --> ln(x)}
s1,s2,s3,s4,s5,s6: Real; {nilai tiap SUKU, sementara}
lnxa: Real; {nilai analitis/rutin dari ln(x)}
lnxc: Real; {nilai ln(x) hasil komputasi}
Begin
Write('Jumlah suku: '); Readln(N);
Write('nilai arg-x: '); Readln(x);
lnxa:= ln(x);
lnxc:= (x - 1.0);
s1:= exp(1.0*ln(lnxc))/1.0;
s2:= -exp(2.0*ln(lnxc))/2.0;
s3:= exp(3.0*ln(lnxc))/3.0;
s4:= -exp(4.0*ln(lnxc))/4.0;
s5:= exp(5.0*ln(lnxc))/5.0;
s6:= -exp(6.0*ln(lnxc))/6.0;
lnxc:= s1 + s2 + s3 + s4 + s5 + s6;
Writeln('ln(x) - analitis: ',ln(x));
Writeln('ln(x) - komputasi: ',lnxc);
Readln
End.
Program dalam Bahasa Pascal di atas adalah program yang melakukan komputasi secara
manual yang mirip dengan aplikasi MS-Excel pada Gambar 1 di atas. Sel-sel yang
merepresentasikan F3 sampai F8 disimpan dalam memori atau variabel yang diberi nama s1
sampai s6 dan nilai ln(x) disimpan dalam variabel lnxc, sehingga:
lnxc = s1 + s2 + s 3 + s4 + s5 + s6 (4)
Sekarang, perhatikanlah program Pascal yang di bawah ini
Program Komputasi_ln_x1;
Var
K,N: Integer;
x: Real; {nilai ARGUMEN --> ln(x)}
lnxa: Real; {nilai analitis/rutin dari ln(x)}
lnxc: Real; {nilai ln(x) hasil komputasi}
xmin1: Real; {bernilai (x - 1.0) atau (1.0 - x)}
Begin
{-- INPUT --}
Write('Jumlah suku: '); Readln(N);
Write('nilai arg-x: '); Readln(x);
{-- PROSES --}
lnxa:= ln(x);
lnxc:= 0.0;
For K:=1 to N do
Begin
If x <= 1.0
If Odd(K) then lnxc := lnxc +
exp(K*ln(x - 1.0))/K
else lnxc := lnxc -
exp(K*ln(x - 1.0))/K;
End;
{-- OUTPUT --}
Writeln('ln(x),analitis: ',lnxa:0:8);
Writeln('ln(x),komputasi: ',lnxc:0:8);
Readln
End.
Gambar 3. Program dalam Bahasa Pascal untuk komputasi fungsi ln(x) secara sistematis, dimulai
pada K = 1 sampai N.
Program Pascal di atas adalah program yang secara sistematis menghitung nilai ln(x), yang
dimulai dari harga (suku) ke N = 1 sampai harga suku tertentu, sehingga program di atas tampak
lebih praktis dan terstruktur penampilannya.
Program Komputasi_ln_x2;
Var
K,N: Integer;
x: Real; {nilai ARGUMEN --> ln(x)}
lnxa: Real; {nilai analitis/rutin dari ln(x)}
lnxc: Real; {nilai ln(x) hasil komputasi}
xmin1: Real; {bernilai (x - 1.0) atau (1.0 - x)}
Begin
{-- INPUT --}
Write('Jumlah suku: '); Readln(N);
Write('nilai arg-x: '); Readln(x);
{-- PROSES --}
lnxa:= ln(x);
lnxc:= 0.0;
For K:=0 to N-1 do
Begin
If x > 1.0 then
Begin
xmin1:= x - 1.0;
If Odd(K) then lnxc := lnxc -
exp((K+1)*ln(xmin1))/(K+1)
else lnxc := lnxc +
exp((K+1)*ln(xmin1))/(K+1);
End else
Begin
xmin1:= 1.0 - x;
If Odd(K) then lnxc := lnxc -
exp((K+1)*ln(xmin1))/(K+1)
else lnxc := lnxc +
exp((K+1)*ln(xmin1))/(K+1);
End;
{Jawaban untuk "If x > 1.0" masih cukup rumit untuk
Pascal}
End;
{-- OUTPUT --}
Writeln('ln(x),analitis: ',lnxa:0:8);
Writeln('ln(x),komputasi: ',lnxc:0:8);
Readln
End.
Gambar 4. Program komputasi fungsi ln(x) secara sistematis, dimulai pada K = 1 sampai N.
E. Komputasi Numerik menggunakan Bahasa FORTRAN
Kompilator atau compiler Bahasa FORTRAN yang digunakan di sini adalah buatan FORCE
3.0 (open source) dan SilverFrost (berbayar). Sama seperti dalam Bahasa Pascal, hal penting yang
harus selalu diingat pada saat melakukan pemrograman FORTRAN, adalah 4 segmen berikut:
PROGRAM LN(X)
C CARA#1: Aplikasi Deret TAYLOR untuk Komputasi Ln(x)
C ---------------------------------------------------
INTEGER K,NSUKU
REAL*8 x,Lnx
WRITE(*,'(A,$)') ' Harga x: '
READ(*,*) x
WRITE(*,'(A,$)') 'Jumlah suku: '
READ(*,*) NSUKU
Lnx = 0.0D0
DO K=1,NSUKU
Lnx = Lnx + (-1)**(K-1)*(x - 1.0D0)**K/K
END DO
WRITE(*,*) 'Analitik: LN(X) = ',LOG(X)
WRITE(*,*) ' Numerik: LN(X) = ',Lnx
READ*
END
Program FORTRAN di atas adalah program yang secara sistematis menghitung nilai ln(x),
yang dimulai dari harga (suku) ke K = 1 sampai harga suku tertentu (= NSUKU), sehingga program
di atas tampak lebih praktis dan terstruktur penampilannya.
Program FORTRAN pada Gambar 5 dapat juga dituliskan dalam cara yang lain, yaitu dengan
menggunakan formula Deret Taylor berikut (seperti Persamaan 1.b di atas):
x 1
k 1
ln x (1)
k 0
k
k 1
PROGRAM LN(X)
C CARA#1: Aplikasi Deret TAYLOR untuk Komputasi Ln(x)
C ---------------------------------------------------
INTEGER K,NSUKU
REAL*8 x,Lnx
WRITE(*,'(A,$)') ' Harga x: '
READ(*,*) x
WRITE(*,'(A,$)') 'Jumlah suku: '
READ(*,*) NSUKU
Lnx = 0.0D0
DO K=0,NSUKU-1
Lnx = Lnx + (-1)**(K)*(x - 1.0D0)**(K+1)/(K+1)
END DO
WRITE(*,*) 'Analitik: LN(X) = ',LOG(X)
WRITE(*,*) ' Numerik: LN(X) = ',Lnx
READ*
END
Gambar 6. Program FORTRAN untuk komputasi nilai pendekatan dari ln(x), dengan K
mulai dari 0.
Interpreter atau script Bahasa Visual BASIC yang digunakan di sini adalah yang terpasang
dalam piranti lunak Microsof Offrice, khususnya sebagai Macro yang terdapat di dalam MS-
Excel. Sama seperti dalam bahasa-bahasa lainnya, yang juga harus selalu diingat pada saat
melakukan pemrograman Macro Visual BASIC, adalah 4 segmen berikut:
Lnx = 0#
For K = 1 To Nsuku
Lnx = Lnx + (-1) ^ (K + 1) * (x - 1#) ^ K / K
Next K
Cells(5, 3) = Lnx
Cells(6, 3) = Log(x)
End Sub
Gambar 7. Program Visual BASIC untuk komputasi nilai pendekatan dari ln(x).
Format tayangan “masukan dan keluaran” (INPUT – OUTPUT) dalam spreadsheet MS-
Excel terkait dengan program pada Gambar 7 di atas, adalah seperti di bawah ini:
TUGAS
Dari Program Visual BASIC pada Gambar 7 di atas, coba buat juga program yang setara
dengan Gambar 6!