Teknik Elektro Universitas Brawijaya Scilab (5.4.0) Penulis: ikri !ulia !pril "#$% Bagian I Pengenalan Scilab 1.1 Pengenalan Scilab Scilab adalah software free dan open source untuk komputasi numerik& 'oftware ini menyediakan lin(kun(an untuk perhitun(an yan( dibutuhkan bidan( sains dan keteknikan& Scilab dirilis seba(ai open source dibawahi lisensi )e)ILL* dan dapat didownload se+ara (ratis& Scilab tersedia pada sistem operasi ,-U.Linu/* 0a+ 1' 2 dan 3indows& Scilab ju(a memiliki dukun(an enterprise ba(i perusahaan4perusahaan yan( membutuhkan dukun(an& Scilab menyediakan ratusan fun(si matematis& 'oftware ini memiliki bahasa pempro(raman tin(kat tin((i dan dapat men(akses struktur data* plot "5* plot %5 dan fun(si (rafis& 1.2 Interface Bentuk interfa+e default dari Scilab 6&7&# diba(i menjadi % window utama: ile Browser* Scilab )onsole dan 8ariable Browser& Interfa+e Scilab 6&7&# men((unakan sistem docking* yaitu komponen4komponen interfa+e dapat dipindah4 pindah sesuai kebutuhan pen((una& ,ambar $& Interfa+e Scilab 6&7&# 1.2.1 File Browser File Browser ber(una ba(i saat kita membuka berkas yan( dibutuhkan den(an +epat* terutama file SciNotes& 1.2.2 Scilab Console Scilab Console adalah tempat untuk menulis perintah pada Scilab& Perintah akan lan(sun( dijalankan saat kita menekan Enter dan hasil akan lan(sun( ditampilkan jika kita tidak men((unakan semicolon (;) pada akhir baris perintah& 1.2.3 Variable Browser Pada 8ariable Browser* kita dapat melihat variabel yan( telah di(unakan* dimensi* dan tipenya& Variable Browser memudahkan kita untuk men(in(at variabel yan( telah kita (unakan* terutama jika variabel yan( di(unakan berjumlah banyak& 9ika kita klik dua kali pada salah satu variabel* maka kita akan dibukakan jendela Variable Editor& 1.2.4 Variable Editor Variable Editor memun(kinkan kita untuk melihat isi variabel dalam bentuk spreadsheet, selanjutnya nilai variabel4variabel dapat kita ubah men((unakan Variable Editor& Kita ju(a dapat men(eplot variabel den(an +ara memilih variabel yan( akan diplot lalu men(eklik tombol plot dan memilih tipe plot& ,ambar "& 8ariable Editor ,ambar %& Pilihan Plot 1.2.5 Command istor! Command History menampilkan perintah4perintah yan( telah kita jalankan& 1.2." Sci#otes SciNotes merupakan tempat untuk menulis perintah dalam Scilab& Perbedaan SciNotes dan Scilab Console terdapat pada waktu eksekusi& Scilab Console akan menjalankan hasil perintah dan operasi setiap baris* sedan(kan SciNotes hanya akan menjalankan hasil perintah jika kita menekan tombol execute& SciNotes ber(una saat perintah yan( akan ditulis terlalu panjan(& ,ambar 7& '+i-otes Untuk membuka SciNotes maka buka Applications>SciNotes& SciNotes memiliki tab majemuk sehin((a dapat menulis beberapa file sekali(us dalam satu layar& Pada Execute terdapat beberapa tipe eksekusi& :aitu: execute file with no echo execute file with echo execute selection with echo save and execute save and execute all echo adalah diperlihatkanya hasil dari suatu perintah* seba(ai +ontoh: e$ec%te file wit& no ec&o Perintah ini akan men(eksekusi file namun tidak memperlihatkan hasilnya& Untuk men(etahui hasil eksekusi biasanya di(unakan fun(si disp(x) den(an x adalah variabel yan( in(in diperlihatkan hasilnya pada Scilab Console& e$ec%te file wit& ec&o Perintah ini akan men(eksekusi file den(an memperlihatkan proses yan( terjadi& Proses yan( dieksekusi akan diperlihatkan pada Scilab Console& e$ec%te selection wit& ec&o Perintah ini akan men(eksekusi hanya ba(ian yan( diblok lalu menampilkanya pada Scilab Console& sa'e and e$ec%te save and execute tidak akan lan(sun( men(eksekusi perintah* namun memuat ke dalam Scilab Console, maka tidak ada hasil yan( diperlihatkan& 8ariabel dalam SciNotes akan ter+antum dalam Variable Browser, dan fun(si dalam SciNotes bisa lan(sun( dipan((il& sa'e and e$ec%te all 'ama seperti save and execute* namun semua file akan disimpan dan dieksekusi& -->a=0 a =
0. Bagian 2 Sinta(s 2.1 )*erator 2.1.1 )*erator Standar dan +ritmati( Scilab memiliki operator standar yan( di(unakan untuk memproses& 1perator4operator ini jika di(unakan untuk memproses matriks* maka akan didapatkan hasil sesuai aturan perhitun(an matriks& operator standar itu yaitu: , -assignment. 0emberikan nilai pada variabel men((unakan operator ini& -->a=10 a =
10. / -addition. 1perator untuk penjumlahan& -->35+4 ans =
39. 0 -s%btraction. 1perator untuk pen(uran(an& -->b=49-10 b =
39. 1 -m%lti*lication. 1perator perkalian& -->13*3 ans =
39. 2 -rig&t di'ision. 1perator pemba(ian& hasil operasi ini adalah a/b=a*b^-1. -->78/2 ans =
39. 3 left di'ision 1perator pemba(ian& hasil operasi ini adalah a\b=a^-1*b. -->2\78 ans =
39. 4 ata% 11 -*ower. 1perator pan(kat& -->32 ans =
9.
-->3**2 ans =
9. 5 -trans*ose con6%gate. 1perator khusus matriks& -->a=!1 2 3"4 5 #$ a =
1. 2. 3. 4. 5. #.
-->a% ans =
1. 4. 2. 5. 3. #. 2.1.2 )*erator 7ogi(a operator khusus lo(ika hanya akan men(hasilkan nilai T ;T<UE= atau ;!L'E=& Terdiri dari: a&b ;logical and= a|b ;logical or= ~a ;logical not= Bilan(an yan( diproses oleh operator diatas adalah # seba(ai false dan bukan # seba(ai true& 'emua bilan(an bernilai T<UE ke+uali # ;bernilai !L'E=& -->5 & 0 ans =
'
-->(5 ans =
'
-->(0 ans =
) 2.1.3 )*erator Pembandingan 1perator pembandin(an adalah operator yan( membandin(kan " bilan(an dan men(hasilkan T ;T<UE= atau ;!L'E=& a==b bernilai T ;T<UE= jika kedua nilai sama* a>?b atau a@Ab bernilai T ;T<UE= jika kedua nilai tidak sama* a@b bernilai T ;T<UE= jika a lebih ke+il dari b, aAb bernilai T ;T<UE= jika a lebih besar dari b, a@?b bernilai T ;T<UE= jika a lebih ke+il atau sama den(an b, aA?b bernilai T ;T<UE= jika a lebih besar atau sama den(an b. -->400>#0 ans =
)
-->39==38 ans =
' 2.1.4 )*erator 8&%s%s 9atri(s Terdapat operasi antar element dalam matriks ;elementwise=: operasi satu4satu* bukan operasi antar matriks .* ;elementwise multiplication=* ./ ;elementwise right division=* &\ ;elementwise left division=* .^ ;elementwise power=& -->*1=!1 2 3"4 5 #"7 8 9$ *1 =
1. 2. 3. 4. 5. #. 7. 8. 9.
-->*2=!1 1 2"1 2 1"2 1 1$ *2 =
1. 1. 2. 1. 2. 1. 2. 1. 1.
-->*1.**2 ans =
1. 2. #. 4. 10. #. 14. 8. 9. 2.2 Flow Control 'ama seperti bahasa pempro(raman pada umumnya* Scilab memiliki perintah men(atur alur eksekusi pro(ram& if 0 t&en 0 else )ontoh: i+ a==b t,en //state*en end i+ a>b t,en //state*en 1 else //state*en 2 end select )ontoh: sele-t a -ase 1 //state*en 1 -ase 2 //state*en 2 else //state*en 3 end for )ontoh: -->+or a=1.5 -->dis/0a1 -->end
1.
2.
3.
4.
5. w&ile )ontoh: -->2,ile a34 t,en -->a=a+1 -->end a =
2. a =
3. a =
4. brea(: contin%e break dan continue di(unakan di dalam whie& break ber(una untuk keluar dari whie! continue di(unakan untuk melewati statemen berikutnya& Untuk lebih mudah memahami break dan continue* perhatikan +ontoh berikut& )ontoh untuk break pada SciNotes: a=0 2,ile a37 a=a+1 i+ a==4 t,en brea4 end dis/0a1 end den(an hasil eksekusi: -->e5e-0%6.\7ro8ra* 'iles\Scilab-5.4.0\testbrea4.s-e%9 -11
1.
2.
3. )ontoh untuk continue pada SciNotes: a=0 2,ile a35 a=a+1 i+ a33 t,en -ontin:e end dis/0a1 end den(an hasil eksekusi: -->e5e-0%6.\7ro8ra* 'iles\Scilab-5.4.0\test-ontin:e.s-e%9 -11
3.
4.
5. Bagian 3 Str%(t%r ;ata Variabel 3.1 Variabel dan #ilai Scilab hanya men(hitun( men((unakan bilan(an& 'emua perhitun(an diselesaikan den(an matriks* seba(ai +ontoh perhitun(an "B$ adalah penjumlahan matriks berdimensi $/$& 8ariabel tidak harus dideklarasikan terlebih dahulu* namun suatu variabel harus memiliki nilai& Kelebihan dari Scilab adalah variabel bersifat fleksibel dan dapat diubah4ubah dari bilan(an menjadi string atau sebaliknya& -ama variabel bisa sepanjan( mun(kin* namun hanya "7 karakter pertama yan( akan diperhatikan oleh Scilab& -ama variabel tidak boleh dimulai den(an an(ka& Karakter C"C* C#C* C$C* C%C* C&C* C'C adalah karakter khusus dan tidak boleh di(unakan dalam nama variabel& ans ans adalah variabel untuk penyimpanan sementara& 9ika suatu operasi yan( men(hasilkan nilai tidak disimpan dalam variabel* maka hasil operasi tersebut akan disimpan dalam ans& string Penulisan string harus diikuti tanda petik tun((al (anda& 9ika string dijumlahkan den(an string lainnya maka akan dihasilkan concatenate ;pen((abun(an= dari dua string tersebut& 'trin( tidak dapat dijumlahkan den(an bilan(an& -->str=;a:a:a:; str =
a:a:a:
-->in8=%2e2e2e% in8 =
2e2e2e
-->str+in8 ans =
a:a:a:2e2e2e -->in8+;5; ans =
2e2e2e5
3.2 9atri(s 3.2.1 Pen%lisan 9atri(s Penulisan matriks men((unakan kurun( siku CD EC masin(4masin( elemen dipisahkan oleh spasi dan masin(4masin( baris dipisahkan oleh simbol CFC +ontoh penulisan matriks $ / % yaitu: -->*=1.3 * =
3.2.3 )*erator < Elemen dalam matriks biasa diakses den(an referensi inde/ pertama dari matriks tersebut& Elemen suatu matriks bisa diakses den(an referensi inde/ terakhir dari matriks tersebut den(an men((unakan tanda && -->* * =
1. 2. 3. 4. 5. #.
-->*029<-11 ans =
5. 3.3 #ilai 8&%s%s Scilab memiliki konstanta4konstanta yan( serin( di(unakan dalam matematika* ke(unaanya adalah memudahkan dalam perhitun(an& 'emua konstanta tersebut dimulai den(an tanda C"C& "i nilai imajiner "e konstanta Euler& nilainya "&I$J"J$J "pi +onstant pi: %&$7$6K"I& ") atau "t : true "* atau "+ : false B+B 4 F%ngsi 4.1 F%ngsi dasar y=strin,(x) un(si untuk men(ubah bilan(an menjadi string& un(si ini biasa di(unakan den(an fun(si disp()& -=s.rt(x) un(si untuk men(hitun( akar* x bisa bernilai real atau kompleks& t=abs(x) un(si untuk menentukan nilai absolut& x bisa bernilai real atau kompleks* dan t selalu bernilai real& c=co/pex(a!b) un(si untuk men(hasilkan bilan(an kompleks den(an a adalah ba(ian real* b ba(ian ima(iner& exp(x) un(si untuk men(hitun( eksponen& o,(x) un(si untuk men(hitun( lo(aritma natural ;ln= o,0(x) un(si untuk men(hitun( lo(aritma berbasis "& o,11(x) un(si untuk men(hitun( lo(aritma berbasis $#& rea(x) un(si untuk mendapatkan nilai real dari suatu bilan(an kompleks* x adalah bilan(an kompleks& i/a,(x) un(si untuk mendapatkan nilai imajiner dari suatu bilan(an kompleks* x adalah bilan(an kompleks& 4.2 F%ngsi trigonometri un(si tri(onometri pada Scilab yan( palin( serin( di(unakan adalah cos* sin* tan* sec* csc* cot,* acos* asin* atan& Scilab men((unakan standar radian& un(si tri(onometri standar memiliki fun(si alternatif den(an satuan derajat& un(si tersebut diakhiri den(an huruf d& berikut tabel fun(si tri(onometri& =rigonometri Standar (rad) ;era6at -degree. !*erbolic +osine 2-3=cos(x) 2-3=cosd(x) 2-3=cosh(x) sine 2t3=sin(x) 2t3=sind(x) 2t3=sinh(x) tan(ent 2t3=tan(x) 2t3=tand(x) 2t3=tanh(x) se+ant 2-3=sec(x) 2-3=secd(x) 2-3=sech(x) +ose+ant 2t3=csc(x) 2t3=cscd(x) 2t3=csch(x) +ot 2t3=cot,(x) 2t3=cotd(x) 2t3=coth(x) Tabel $& un(si Tri(onometri di '+ilab un(si inverse tri(onometri ju(a men((unakan standar radian seba(ai nilai kembalian* namun tetap terdapat fun(si alternatif den(an kembalian dalam satuan derajat& In'ers =rigonometri Standar (rad) ;era6at -degree. !*erbolic ar++osine 2t3=acos(x) 2t3=acosd(x) 2t3=acosh(x) ar+sine 2t3=asin(x) 2t3=asind(x) 2t3=asinh(x) ar+tan(ent 2t3=atan(x) 2t3=atand(x) 2t3=atanh(x) ar+se+ant 2t3=asec(x) 2t3=asecd(x) 2t3=asech(x) ar++ose+ant 2t3=acsc(x) 2t3=acscd(x) 2t3=acsch(x) ar++ot 2t3=acot(x) 2t3=acotd(x) 2t3=acoth(x) Tabel "& un(si Invers Tri(onometri di '+ilab 4.3 F%ngsi 'ector dan matri(s -=su/(x) un(si untuk men(etahui jumlah nilai dalam vektor atau matriks& s4 = si4e(x) un(si untuk men(etahui besar suatu matriks& det(x) un(si untuk menetukan determinant matriks& -->*=!3 1"2 1$ * =
3. 1. 2. 1.
-->det0*1 ans =
1. in5(x) un(si ini adalah fun(si invers matriks* +ontoh: -->*=!1 2"3 4$ * =
1. 2. 3. 4.
-->in=0*1 ans =
- 2. 1. 1.5 - 0.5 4.4 F%ngsi *lot dan dis*la! c+ +lf ;+lear fi(ure=& Perintah ini akan men(hapus tampilan jendela (rafik& disp(x1!2x0!...xn3) un(si disp;= adalah perintah menampilkan variabel atau strin(& un(si ini membantu jika perintah yan( dieksekusi tidak melakukan e+ho& /lot01 un(si plot yan( akan dijelaskan dalam modul ini hanya plot "5& Penulisan plot yaitu pot(-). y berupa tun((al maupun array atau vektor& 9ika y tun((al maka yan( ditampilkan adalah suatu titik& )ontoh: -->>=!1 2 3 4 5 4 3 4$ > =
1. 2. 3. 4. 5. 4. 3. 4.
-->/lot0>1 ,ambar 6& Plot "5 dari 0atriks )ara penulisan plot berikutnya adalah pot(x!-)& 9ika kita men((unakan +ara penulisan pertama* maka sumbu a/is ;/= se+ara otomatis didistribusikan pada masin(4masin( nilai y& 'eandainya kita perlu memberikan nilai x yan( berbeda* maka +ara penulisan ini bisa (unakan& )ontoh: -->5=0.2.14 5 =
0. 2. 4. #. 8. 10. 12. 14.
-->>=!1 2 3 4 5 4 3 4$ > =
1. 2. 3. 4. 5. 4. 3. 4.
-->/lot059>1 ,rafik ;tanpa men(hapus terlebih dahulu=: ,ambar L& Plot dari " 0atriks untuk 0asin(40asin( 'umbu )ara penulisan yan( keti(a adalah pot(y!inespec) atau pot(x!-!inespec)& Penulisan ini akan mempermudah analisis banyak plot den(an warna plot berbeda& )ontoh: -->-l+
-->/lot0>9;8;1
-->/lot059>9;+r;1 ,ambar I& Plot "5 den(an linesec& 4.5 F%ngsi ;efinisi Pengg%na un(si dapat ditulis di Scilab )onsole maupun SciNotes* untuk alasan kemudahan* disarankan untuk menulis di SciNotes karena kesalahan sintaks serin( terjadi& Perintah dalam SciNotes dapat dihapus sebelum melakukan eksekusi& Penulisan fun(si dalam Scilab adalah: function nilai_kembalian = nama_fungsi(argument) //tuis state/ent di sini nilai_kembalian=hasi proses endfunction >eferensi )hristine ,omeM and '+ilab Enterprises& "#$%. Scilab for very beginners. 8ersailles: '+ilab Enterprises '&!&' http://www.scilab.org/content/download/84/!"#/file/Scilab$beginners.pdf 0i+hael Baudin& "#$#& %ntroduction to Scilab. Le )hesnay: )onsortium '+ilab& http://www.scilab.org/content/download/&4!/#!"&/file/introscilab.pdf '+ilab Enterprises& "#$%& Scilab 'nline (elp& http://help.scilab.org/