Senin, 01 April 2013

Scilab (pemrograman)


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;
xbar
kemudian 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.

2 komentar:

  1. Jelas dan rinci, akan tetapi saya berharap bisa mengetahui bagaimana cara menjalankan scilab dibawah OS ubuntu?

    Salam
    aries
    aries.ds@gmail.com

    BalasHapus