TUJUAN
1. Mampu membuat program sederhana dengan Scilab untuk melakukan
perhitungan tertentu dengan nilai-nilai masukan yang berbeda-beda.
2. Bisa menggunakan fasilitas Scipad untuk membuat program Scilab.
3. Memahami kegunaan fungsi dan peranannya dalam pemrograman,
terutama dalam penentuan parameter dan hasil keluaran fungsi sebagai
hasil perhitungan.
II. ANALISA
Setelah membuka program Scilab, pada jendela Scilex ketik:
>chdir('~/datapraktikum/33125');
>scipad
[ ]
s= 2 1
1 1
dari k=3 sampai k=n. Looping pertama akan menghasilkan matriks s baru
dengan
s=
[ ]
k v
w s
[]
w= 2
1
dan s
[ ]
3 2 1
s= 2 2 1
1 1 1
Dan untuk n=7, n=4, dan n=9 akan diperoleh matriks s sebagai berikut:
>n=7;
>execzlas.sci;
>s
s=
7.6.5.4.3.2.1.
6.6.5.4.3.2.1.
5.5.5.4.3.2.1.
4.4.4.4.3.2.1.
3.3.3.3.3.2.1.
2.2.2.2.2.2.1.
1.1.1.1.1.1.1.
>n=4;
>execzlas.sci;
>s
s=
4.3.2.1.
3.3.2.1.
2.2.2.1.
1.1.1.1.
>n=9;
>execzlas.sci;
>s
s=
9.8.7.6.5.4.3.2.1.
8.8.7.6.5.4.3.2.1.
7.7.7.6.5.4.3.2.1.
6.6.6.6.5.4.3.2.1.
5.5.5.5.5.4.3.2.1.
4.4.4.4.4.4.3.2.1.
3.3.3.3.3.3.3.2.1.
2.2.2.2.2.2.2.2.1.
1.1.1.1.1.1.1.1.1.
diketahui
//digunakansebagaibagiandarialgoritmaNewtonuntuk
menetapkanf(x);
//f(x)danf'(x)harusdidefinisikansecaraeksplisitdalam
fileini
function[f,ff]=zfungsi(x)
f=x^52*x^4+3*x^34*x^2+5*x6
ff=5*x^48*x^3+9*x^28*x+5
endfunction
Program kedua
//Namafile:znewton.sci
//AlgortimaNewtonuntukmenyelesaikanf(x)=0;
//nilaitaksiranawalxharusdiinputkanlebihdahulu
function[x]=znewton(x)
k=0
[f,ff]=zfungsi(x)
whileabs(f)>0.0001
k=k+1
y=f/ff
x=xy
[f,ff]=zfungsi(x)
end
Program di atas dapat dijalankan dengan memberikan nilai pada x sebagai
nilai taksiran terlebih dahulu. Pada scilex ketik perintah sebagai berikut:
>getd('percobaan_5b');
>x=0;
>znewton(x)
ans=
1.4918006
Hasil dari program itu adalah akar dari persamaan f(x). Kedua program
tersebut akan mencari akar dari f(x)=0 dari harga x taksiran awal. Apabila
f(x) digambar dengan grafik maka akan terlihat:
m=
y 2 y 1
x 2x 1
f ' ( x )=
f ( x )0
x 2x
f ' ( x )=
f ( x)
x 2x
x 2x=
f (x)
f ' ( x)
x 2x= y
Sehingga akan didapat x2 yang semakin mendekati akar f(x)=0 yang
sebenarnya. Kemudian, x dimasukkan ke program pertama dan
mengulang looping program kedua sampai didapat nilai absolut f=0.0001.
Karena dalam perhitungan scilab dengan rumus ini tidak akan pernah
tercapai angka f=0, maka diambil angka f=0.0001 yang paling mendekati
0.
Apabila dimasukkan nilai taksiran awal x=5 dan x=-3, maka akan
diperoleh hasil sebagai berikut:
>x=5;
>znewton(x)
ans=
1.4917986
>x=3;
>znewton(x)
ans=
1.4917985
107 .
8.5.13.
6.3.2.
>inv(A)
ans=
0.31868130.02197800.7802198
0.68131870.02197801.2197802
0.06593410.09890110.0109890
>getfsmw.sci
>smw(A)
ans=
0.31868130.02197800.7802198
0.68131870.02197801.2197802
0.06593410.09890110.0109890
][ ][
11 7 4
1 0 0
10 7 4
c= 8 5 13 0 1 0 = 8 4 13
6 3 2
0 0 1
6 3 1
[ ]
1 0 0
a= 0 1 0
0 0 1
[]
10
z=1+ [ 1 0 0 ] 8 =11
6
dan a=aa*c(:,k)*a(k,:)/zyang berarti a=a-(a*kolom ke-k matriks c
* baris ke-k matriks a / z).
[ ][ ][ ]
1 0 0
1 0 0 10
0.0909091 0 0
a= 0 1 0 0 1 0 8 [ 1 0 0 ] /z = 0.7272727 1 0
0 0 1
0 0 1
6
0.5454545 0 1
III.
KESIMPULAN
1. Pemrograman dalam scilab dapat dilakukan dengan fasilitas scipad.
2. Untuk mengeksekusi program digunakan perintah >execnamaprogram;
3. Scipad juga dapat digunakan untuk mendefinisikan fungsi yang
membutuhkan parameter dari luar (input) yang bisa menghasilkan output
JAWAB PERTANYAAN
1. Kegunaan dan perbedaan dari fungsi:
a. exec()
: digunakan untuk mengeksekusi program yang ada pada
direktori
b. getf(): digunakan untuk memanggil fungsi yang ada pada program
dalam direktori
c. getd()
: digunakan untuk memanggil program yang ada pada
direktori tertentu
2. Flowchart:
a. Program Sederhana
Sreta
sv == [s2( 1 ,:) ; / b a r is p e r t a m a ma t r ik s s
takd=rn [ k
wr1Ew=s;1it 2( ]:,;1 ) ; / k o lo m p e r t a m a ma t r ik s s
vt= ;w s ] ;
en s
n
d
b. Program Mencari Akar
rzS
w
E
e
ntrn
aa
e
id
drt
w
tte
x
o
nx
(
x
)
Program Pertama (zfungsi.sci)
fSE =
x
^
-tn
2a
* x
^
d
+r
3
* x
^
3
t
4
* x
^
+
5
* x
6
5
4
2
-
S
k
kzza
tE
=
ff
=
a
n
0
kb
u
s
ru
d
+
n
(
tn
1
g
;g
)
ss
>
ii
0
0
0
0
1
Sr
[k
z =
ktewm
E=1
=a,ar n
n1+
n]rid
(
da
=tt
k
, :
s i
eA) *
z
c
( :
e
(
,A k
)
a
)
;
;