Anda di halaman 1dari 8

#1.

DASAR-DASAR KOMPUTASI NUMERIK

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.

B. Komputasi Fungsi Deret Taylor atau Deret MacLaurin

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

Dengan menggunakan spreadsheet MS-Excel, dapat dilakukan komputasi secara manual


(satu per satu) dengan bantuan sel-sel yang ada sebagai representasi dari suku-suku deret yang
terbentuk. Perhatikan spreadsheed berikut yang digunakan untuk komputasi persamaan (1) di atas:

Gambar 1. Spreadsheet untuk komputasi ln (x) sesuai persamaan (1).

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:

=(-1)^(E3+1)*($C$ 2 -1)^E3/E3 (4)


maka, jika dilakukan komputasi secara manual, maka isi sel-sel F3 sampai dengan F22 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

Sehingga, dari hasil komputasi menggunakan spreadsheet MS-Excel di atas dengan


memperhitungkan ketelitian 4 angka di belakang koma (4 angka berarti) seperti contoh tersebut,
maka nilai ln(x)komputasi di atas adalah sebagai berikut:

ln(x)komputasi  jumlah nilai sel F3 sampai F8  SUM(F3:F8) = -0,287682

Nilain ln(x) hasil komputasi di atas adalah sepadan (identik) dengan nilai ln(x) secara analitis, yaitu
nilai fungsi intrinsik dari MS-Excel sendiri.

D. Komputasi Numerik menggunakan Ezy Pascal

Yang harus diingat pada saat melakukan pemrograman, baik menggunakan Bahasa Pascal
atau yang lainnya (Basic, FORTRAN, dll) adalah 4 segmen berikut ini:

1. Deklarasi VARIABEL (Real, Integer, dlsb)


2. Pernyataan (bagian) INPUT {menggunakan Readln(…)}
3. Bagian PROSES {menggunakan Writeln(…)}, dan
4. Bagian OUTPUT atau TAYANGAN HASIL.

Perhatikanlah program Pascal 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.

Gambar 2. Program komputasi manual untuk ln(x).

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.

Sekarang, perhatikanlah program Pascal yang lainnya seperti di bawah ini

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:

1. Deklarasi VARIABEL (Real, Integer, dlsb)


2. Pernyataan (bagian) INPUT {menggunakan: READ(*,*)}
3. Bagian PROSES (umumnya terdiri atas proses eksekusi dan ungkapan matematis), dan
4. Bagian OUTPUT atau TAYANGAN HASIL {mengunakan WRITE(*,*)}.

Perhatikanlah program FORTRAN berikut ini

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

Gambar 5. Program FORTRAN untuk komputasi nilai pendekatan dari ln(x).

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.

F. Komputasi Numerik menggunakan Bahasa Visual BASIC (Macro dalam MS-Excel)

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:

5. Deklarasi VARIABEL (Real, Integer, dlsb)


6. Pernyataan (bagian) INPUT {menggunakan: var = Cells(*,*)}
7. Bagian PROSES (umumnya terdiri atas proses eksekusi dan ungkapan matematis), dan
8. Bagian OUTPUT atau TAYANGAN HASIL {mengunakan Cells(*,*) = var}.

Perhatikanlah program Visual BASIC di bawah ini

Dim Lnx, x As Double


Dim J, K, Nsuku As Integer
Sub Calc_Lxn()
x = Cells(3, 3)
Nsuku = Cells(4, 3)

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!

Anda mungkin juga menyukai