PEMROGRAMAN SCILAB
Pemrograman
adalah kemampuan dasar yang diperlukan dalam penerapan di metode
numerik. Pada bagian ini kita menjelaskan konsep pemrograman dasar di
dalam Scilab dan memberi beberapa contoh penerapan metode numerik
dasar. Pada bagian kedua akan membahas tentang fungsi input/output
yang disediakan Scilab meliputi operasi dengan file. Pada bagian
akhir akan dibahas tentang manipulasi string.
Bentuk Pemrograman
Scilab
Scilab
menyediakan bagi pengguna dengan jumlah bentuk pemrograman yang
banyak memiliki kesamaan dengan FORTRAN dan bahasa pemrograman
tingkat tinggi lainnya. Kita menyajikan beberapa bentuknya di bawah
ini :
Perbandingan dan
operator logika
Operator
perbandingan di dalam Scilab
== sama dengan
< kurang dari
> lebih dari
<= kurang dari
sama dengan
>= lebih dari
sama dengan
<> atau
~= tidak sama dengan
Operator logika di
dalam Scilab :
& dan
| atau
~ tidak
Contoh :
Coba untuk
menjalankan perintah di bawah ini di Scilab
-->3
<> 2
ans
=
T
-->3
== 3
ans
=
T
-->(2>1)
& (3>1)
ans
=
T
-->(2>1)
& (3>5)
ans
=
F
-->(2<1)
& (3>1)
ans
=
F
-->(2<1)
& (3>5)
ans
=
F
-->(2>1)
| (3>1)
ans
=
T
-->(2>1)
| (3>5)
ans
=
T
-->(2<1)
| (3>1)
ans
=
T
-->(2<1)
| (3>5)
ans
=
F
-->~(2<1)
ans
=
T
-->~(2>1)
ans
=
F
-->~(2>1)|(3>5)
ans
=
F
Loop (Perulangan)
dalam Scilab
Perulangan dalam
Scilab dapat menggunakan perintah perulangan for
dan while. Format
Perulangan FOR
perulangan for
sebagai berikut :
for
indeks = nilai_awal : kenaikan : nilai_akhir,
...ekspresi..., end
for
indeks = nilai_awal : nilai_akhir, ...ekspresi..., end
Jika kenaikan
(increment) tidak disertakan berarti kenaikannya dianggap nilainya 1.
Contohnya, ketikkan perintah – perintah berikut di dalam Scilab :
-->r
= 1; for k = 1:0.5:4, r = r+k, end
r
=
2.
r
=
3.5
r
=
5.5
r
=
8.
r
=
11.
r
=
14.5
r
=
18.5
-->xs
= -1; dx = 0.25; n = 20; for j = 1:n, x = xs + (j-1)*dx,end
x
=
-
1.
x
=
-
0.75
x
=
-
0.5
x
=
-
0.25
x
=
0.
x
=
0.25
x
=
0.5
x
=
0.75
x
=
1.
x
=
1.25
x
=
1.5
x
=
1.75
x
=
2.
x
=
2.25
x
=
2.5
x
=
2.75
x
=
3.
x
=
3.25
x
=
3.5
x
=
3.75
-->for
m = 1:10, a = m^2, end
a
=
1.
a
=
4.
a
=
9.
a
=
16.
a
=
25.
a
=
36.
a
=
49.
a
=
64.
a
=
81.
a
=
100.
Perulangan WHILE
format :
while
kondisi, … ekspresi... , end
contoh :
-->s
= 100; while s>50, disp(s^2), s = s - 10, end
10000.
s
=
90.
8100.
s
=
80.
6400.
s
=
70.
4900.
s
=
60.
3600.
s
=
50.
Perulangan for
dan while dapat dihentikan
dengan perintah break
tanpa harus menunggu berakhir, contoh :
-->for
i = 1 : 10, disp(i), if i>5 then break, end, end
1.
2.
3.
4.
5.
6.
Bentuk kondisi /
syarat di dalam Scilab
Pada contoh di atas
kita sudah menggunakan ekspresi kondisi yaitu pemakaian
if...then...end. Ada dua tipe pemakaian ekspresi kondisi di Scilab
yaitu : bentuk if-then-else-end dan
bentuk select-case.
Bentuk
if-then-else-end
format
:
if
kondisi then ekspresi, end
if
kondisi then ekspresi, else ekspresi, end
if
kondisi then ekspresi, elseif ekspresi, end
contoh
:
-->x
= 10; y = 5; if x > 5 then disp(y),end
5.
-->x
= 3; y = 5; if x > 5 then disp(y), else disp(x),end
3.
-->x
= 3; y = 5; z=4; if x > 5 then disp(y), elseif x>6 then
disp(y), else disp(z),end
4.
Bentuk select-case
format :
select
variabel, case n1, ekspresi, case n2, ekspresi,....,
end
contoh :
-->x
= -1; select x, case 1, y = x + 5, case -1, y = sqrt(x), end
y
=
i
-->r
= 7; select r, case 1, disp(r), case 2, disp(r^2), case 7, disp(r^3),
end
343.
Skrip
Kita dapat menulis
suatu program dalam skrip sehingga akan memudahkan kita jika program
yang kita buat sudah tidak sederhana lagi. Skrip ini dapat kita tulis
lewat skrip yang sudah disediakan oleh scilab atau dari penulis skrip
lain (text editor, notepad, dll)
contoh :
kita buka Scinotes
(launch scinotes), kemudian tuliskan program berikut :
clear // menghapus
semua variabel
clear
//
menghapus semua variabel
x = [10 -1 3 5 -7 4 2]; suma = 0; [n,m] = size(x); for j = 1:m suma = suma + x(j); end xbar = suma/m; xbar
simpan program
dengan nama program1.sce,
atau program1.txt kemudian
kembali ke jendela kerja scilab lalu ketik perintah berikut :
exec('program1.sce')
atau exec('program1.txt')
ctt : direktori yang
bekerja harus diatur sesuai dengan direktori file yang disimpan.
-->exec('program1.sce');
xbar
=
2.2857143
Karena x adalah
vektor baris (natriks dengan n = 1 baris dan m = 7 kolom ), fungsi
size menyediakan sebuah arrai dengan dua nilai dengan pernyataan
[n,m] = size(x). Kemudian m digunakan untuk pengulangan for dan di
dalam perhitungan untuk xbar .
Ada alternatif
selain menggunakan vektor baris atau kolom yaitu dengan menggunakan
list. List adalah sebuah kumpulan objek data yang tidak harus dengan
tipe yang sama. Pada contoh berikut kita membatasi untuk menggunakan
list. Untuk mendefinisikan sebuah list kita menggunakan perintah
list, sebagai contoh coba perintah berikut
-->y
= list(0,1,2,3,4,5,6)
y
=
y(1)
0.
y(2)
1.
y(3)
2.
y(4)
3.
y(5)
4.
y(6)
5.
y(7)
6.
-->size(y)
ans
=
7.
Pada kasus ini
ukuran (size) dari suatu list hanya menghasilkan satu angka, tidak
seperti size pada vektor atau matrik. Kita dapat memodifikasi
program1 di awal menjadi :
clear // menghapus semua variabel x = list (10, -1, 3, 5, -7, 4, 2); suma = 0; n = size(x); for j = 1:n suma = suma + x(j); end xbar = suma/n; xbarkemudian program tersebut kita beri nama program2.sce, running program dengan perintah
exec('program2.sce')
bandingkan dengan program pertama tadi
-->exec('program2.sce');
xbar =
2.2857143
Fungsi di Scilab
Fungsi adalah prosedur
yang boleh memasukkan ekspresi / argumen dan mengembalikan nol, satu
atau lebih nilai. Fungsi didefinisikan baik menggunakan online,
dengan menggunakan perintah deff atau dari file yang terpisah yang
diperlukan untuk diload dengan menggunakan perintah getf. Coba kita
ikuti beberapa contoh fungsi online berikut :
-->deff('[z]=euler(r,theta)','z=r*exp(%i*theta)')-->euler(1,-%pi/2)
ans =
6.123D-17 - i
Kita coba membuat program untuk mengkonversi dari kartesian ke polar
-->deff('[r,theta]=cart_pol(x,y)',['r=sqrt(x^2+y^2)';'theta=atan(y,x)'])
-->[r,sudut] = cart_pol(3,4)
sudut =
0.9272952
r =
5.
Fungsi
Perintah function dapat diakses dari file yang berbeda artinya kita dapat menuliskan fungsi – fungsi dan menyimpannya di file yang berbeda dengan program utama. Format penulisan perintahnya :
function [y1,....,yn] = nama_fungsi {x1,...,xn}
dimana [y1,....,yn] = arrai nilai keluaran
{x1,...,xn} = nilai masukan
nama_fungsi = nama fungsi
contoh : Tuliskan perintah – perintah berikut dalam skrip
function [x, y, z]=sphecart(r, theta, rho) // konversi dari koordinat spherical ke kartesian x = r*cos(rho)*cos(theta) y = r*cos(rho)*sin(theta) z = r*sin(rho)kemudian simpan dengan nama file sphecart.sce, kemudian jalankan di Scilab dengan
-->exec('sphecart.sce');
-->[X,Y,Z] = sphecart(10, %pi/3,%pi/6)
Z =
5.
Y =
7.5
X =
4.330127
Variabel Global
Variabel Global adalah variabel yang dapat diakses untuk semua fungsi
Variabel Lokal
Variabel Lokal adalah variabel yang penggunannya terbatas atau hanya berlaku di fungsi tertentu yang mendefinisikannya.
Nice info gan
BalasHapusJelas dan rinci, akan tetapi saya berharap bisa mengetahui bagaimana cara menjalankan scilab dibawah OS ubuntu?
BalasHapusSalam
aries
aries.ds@gmail.com