Pengenalan Scilab
Perangkat Lunak Gratis untuk Komputasi Numerik dan Visualisasi Data
Saifuddin Arief
Untuk kedua anakku:
Izzuddin dan Hanif
Kata Pengantar
Scilab adalah sebuah perangkat lunak gratis yang dikembangkan untuk komputasi numerik dan visualisasi data. Scilab cocok digunakan untuk menyelesaikan suatu persoalan matematika yang sederhana maupun untuk menyelesaikan berbagai persoalan komputasi numerik yang rumit. Hal ini karena di dalamnya telah terpasang ratusan fungsi yang merupakan implementasi dari algoritma-algoritma dalam metode numerik. Selain itu Scilab juga merupakan sebuah bahasa pemrograman tingkat tinggi.
Seperti judul buku ini, obyektif dari buku ini adalah untuk memberikan penjelasan tentang dasar-dasar penggunaan Scilab serta penerapannya dalam komputasi numerik. Sebagai ilustrasi yang lebih konkrit mengenai penggunaan Scilab maka di dalam buku juga terdapat puluhan contoh perhitungan yang diambil dari berbagai macam studi kasus. Beberapa topik tingkat lanjut. seperti pengunaan fitur antar muka grafis (GUI), pengolahan sinyal, simulasi, tidak dijelaskan dalam buku ini.
Saran, masukan atau komentar tentang buku akan penulis terima dengan senang hati dan dapat disampaikan melalui email dengan alamat [email protected].
Tulisan ini dapat digunakan secara gratis untuk keperluan personal dan pendidikan. Bagi yang ingin menggunakannya untuk kepentingan komersial harap menghubungi penulis melalui alamat email di atas.
Saifuddin Arief 20 Februari 2015
Daftar Isi
Kata Pengantar iii
Daftar Isi iv
1 Pendahuluan 1
Menjalankan Program Scilab 1
Jendela-Jendela Scilab 2
Sistem Bantuan 4
2 Dasar-Dasar Penggunaan Scilab 6
Interaksi dengan Scilab 6
Scilab Sebagai Kalkulator Sains 6
Statemen 7
Baris Komentar 8
Bilangan 9
Variabel 10
Matrik 11
Tipe dan Dimensi Variabel 12
Operator 14
Fungsi 15
Format Output Numerik 18
Penulisan dan Pengeditan Perintah 20
Daftar Riwayat Perintah 21
Melihat Daftar Variabel-Variabel yang Telah Dibuat 21
Menghapus Variabel 22
Membersihkan Jendela Scilab 23
Direktori Kerja 23
3 Matematika Dasar 25
Konstanta-Konstanta Matematika 25
Operator-Operator Aritmatika 26
Variabel-Variabel Khusus untuk Aritmatika Komputer 30
Pembagian dengan Nol 32
Akar Kuadrat 33
Nilai Mutlak 35
Tanda Bilangan 36
Pembulatan 36
Aproksimasi Bilangan Real dengan Bilangan Rasional 37
Trigonometri 38
Hiperbolik 42
Eksponensial dan Logaritma 44
Faktorial 46
Bilangan Kompleks 47
4 Matrik dan Vektor 51
Definisi Matrik dan Vektor 51
Pembuatan Vektor dan Matrik Secara Manual 52
Vektor Inkremental 53
Fungsi-Fungsi untuk Membuat Suatu Vektor 54
Fungsi-Fungsi untuk Membuat Suatu Matrik 55
Konkatenasi 58
Dimensi Matrik 59
Merubah Dimensi Matrik 60
Mengekstrak Elemen-Elemen Suatu Vektor 61
Mengekstrak Elemen-Elemen Suatu Matrik 62
Merubah Nilai Elemen Suatu Vektor atau Matrik 64
Menghapus Elemen-Elemen Suatu Vektor atau Matrik 66
Mencari Elemen-Elemen Matrik atau Vektor Yang Memenuhi Kriteria Tertentu 67
Matrik Non-Numerik 69
5 Operasi Matematika terhadap Matrik dan Vektor 70
Penjumlahan dan Pengurangan 70
Perkalian dan Pembagian antara Matrik atau Vektor dengan Skalar 73
Perkalian Matrik 76
Pembagian Matrik 82
Pemangkatan 87
Matrik atau Vektor sebagai Argumen dari Suatu Fungsi Matematika 93
Nilai Maksimum dan Minimum 94
Fungsi-Fungsi Penjumlahan dan Perkalian 96
6 Aljabar Linier 101
Transpose 101
Norma Vektor 103
Norma Matrik 105
Rank Matrik 105
Determinan 106
Matrik Inverse 108
Penyelesaian Sistem Persamaan Linier 110
Nilai Eigen dan Vektor Eigen 117
7 Polinomial dan Rasional 120
Pembuatan Fungsi Polinomial 120
Derajat Polinomial 121
Koefisien Polinomial 122
Pembuatan Fungsi Rasional 122
Evaluasi terhadap Fungsi Polinomial dan Rasional 124
Penjumlahan dan Pengurangan 125
Perkalian 126
Pembilang dan Pembagi dari Fungsi Rasional 127
Hasil Bagi dan Sisa dari Suatu Pembagian Polinomial 128
Akar-Akar Polinomial 128
Faktorisasi 131
Turunan 132
Matrik Polinomial dan Matrik Rasional 135
8 String 139
Pembuatan String 139
Penggabungan String 139
Panjang String 139
Ekstraksi Karakter String 140
Mencari Posisi Suatu String pada String yang Lain 140
Memecah String 141
Substitusi String 142
Penggabungan Elemen-Elemen Suatu Matrik String 143
Konversi ke Huruf Besar dan Huruf Kecil 143
Konversi dari Karakter ke Kode ASCII atau Sebaliknya 143
Konversi dari Numerik ke String 144
Evaluasi terhadap Suatu String Ekspresi 144
Operasi Matrik terhadap Suatu Matrik String 145
9 Tanggal dan Waktu 147
Tanggal dan Waktu 147
Kalender 147
Stopwatch 148
10 Perbandingan dan Logika 150
Operasi Perbandingan 150
Operasi Logika 153
Fungsi-Fungsi Logika 156
Fungsi-Fungsi Pengujian 157
11 Perulangan dan Kondisional 161
For 161
While 164
Break 165
Continue 166
If-Else 167
Select-Case 170
12 Editor Teks SciNotes 172
13 Skrip 174
Pembuatan Skrip 174
Cara Menjalankan Suatu Skrip 175
Kelebihan dan Kelemahan Skrip 177
14 Fungsi 178
File-Fungsi 178
Penggunaan Fungsi-Fungsi yang Tersimpan pada Suatu File-Fungsi 181 Membuat Suatu Fungsi Secara Langsung pada Jendela Scilab 182
Variabel Lokal dan Variabel Global 184
Fungsi Rekursif 186
Pengontrolan Eksekusi Suatu Fungsi 187
Menyela Eksekusi Program dan Melakukan Debugging 190
Jumlah Argumen Input dan Output 194
Menampilkan Baris Komentar yang Terdapat Pada Bagian Awal Suatu Fungsi 196
Kelebihan Fungsi 197
15 Input dan Output 200
Memasukkan Data dengan Fungsi Input 200
Menampilkan Nilai Suatu Variabel dengan Fungsi Disp 200
Penanda File 201
Mencetak Nilai Variabel dengan Fungsi Print 202
Membuka dan Menutup File Data 203
Informasi Mengenai File-File yang Telah Dibuka 207
Menyimpan dan Membaca Data String dalam Format Teks ASCII 208
Menyimpan dan Membaca Data dengan Format Fortran 209
Menyimpan dan Membaca Data dengan Format C 211
Mencetak Nilai Variabel dengan Fungsi Mprintf 213
Menyimpan dan Membaca Suatu Data Matrik 213
Menyimpan dan Membaca Data dengan Format Biner 215
16 Grafik Dua Dimensi dan Tiga Dimensi 218
Membuat Grafik Dua Dimensi dengan Fungsi Plot atau Plot2d 219
Judul dan Label Grafik 221
Pembuatan Beberapa Grafik Sekaligus pada Sebuah Jendela Grafik 223
Bentuk dan Warna Garis 224
Legenda Grafik 229
Skala Sumbu-Sumbu Grafik 230
Pengaturan Sumbu-Sumbu Grafik 232
Kisi-kisi (grid) 235
Beberapa Macam Variasi dari Fungsi Plot2d 236
Grafik dari Sebuah Fungsi dengan Variabel Tunggal 238
Grafik Polar 238
Pengeditan Suatu Grafik Secara Interaktif Melalui Jendela Grafik 239 Membagi Jendela Grafik ke dalam Sejumlah Jendela Subgrafik 247 Visualisasi Data Pada Beberapa Jendela Grafik Sekaligus 249
Kurva Parametrik Tiga Dimensi 251
Membuat Grafik Tiga Dimensi dengan Fungsi Plot3d dan Plot3d1 252
Mengatur Sudut Pandang 255
Mengatur Gradasi Warna 256
Membuat Grafik Tiga Dimensi dengan Fungsi Surf 257
Grafik Tiga Dimensi Dari Suatu Fungsi 259
Menyimpan, Menyalin dan Mencetak Gambar 261
17 Metode Numerik 262
Persamaan Nonlinier 262
Regresi Linier 269
Interpolasi 272
Gradien 276
Integrasi Numerik 277
Persamaan Differensial Biasa 282
Bilangan Random dan Simulasi 292
18 Penggunaan Scilab yang Efisien 299
Menghindari Penggunaan Statemen Perulangan 299
Menggunakan Alokasi Memori Awal 304
Menghindari Fungsi Rekursif 306
Daftar Pustaka 309
Scilab adalah sebuah perangkat lunak yang dirancang dan dikembangkan untuk komputasi numerik serta untuk visualisasi data secara dua dimensi maupun tiga dimensi. Scilab juga merupakan sebuah bahasa pemrograman tingkat tinggi yang berorientasi numerik. Scilab adalah suatu interpreter sehingga suatu kode program yang dibuat dapat dieksekusi secara langsung dan dilihat hasilnya tanpa harus melalui tahapan kompilasi.
Scilab adalah sebuah freeware yang dapat digunakan secara gratis untuk keperluan pribadi maupun komersial. Scilab tersedia dalam berbagai macam sistem operasi utama, seperti Windows (XP, Vista, 7, 8), Linux, serta MacOS X.
Alamat website Scilab adalah http://www.scilab.org. Pada website tersebut kita dapat memperoleh file instalasi Scilab, source code, dokumentasi tentang Scilab, modul-modul tambahan serta berbagai informasi lainnya yang berkaitan dengan Scilab.
Menjalankan Program Scilab
Scilab dapat dijalankan melalui menu Start atau melalui jalan-pintas Scilab yang terdapat pada dekstop. Setelah Scilab dijalankan maka beberapa saat kemudian pada layar komputer akan muncul sebuah jendela Scilab seperti yang terlihat pada Gambar 1.1.
Untuk mengakhiri penggunaan Scilab dapat digunakan perintah exit, melalui menu File
Quit, atau dengan menekan tombol yang terdapat pada ujung kanan atas dari jendela Scilab.
Gambar 1.1 Scilab
Jendela-Jendela Scilab
Konsol Scilab (Scilab Console) merupakan bagian utama dari Jendela Scilab. Hampri sebagian besar interaksi antara kita dengan Scilab dilakukan melalui jendela konsol Scilab.
Konsol Scilab adalah tempat untuk memasukkan semua perintah diberikan kepada Scilab.
Selain konsol Scilab, secara bawaan Scilab juga menampilkan beberapa jendela lainnya yaitu:
Penjelajah File (file browser). Jendela ini dapat digunakan untuk memilih direktori kerja. Semua file yang ada pada direktori kerja akan ditampilkan pada jendela penjelajah file.
Penjelajah variabel (variabel browser). Jendela ini menampilkan daftar dari semua variabel yang dihasilkan oleh statemen yang dijalankan pada jendela konsol Scilab.
Riwayat perintah (command history). Jendela riwayat perintah berisi rekaman dari perintah atau statemen yang dijalankan pada jendela Scilab.
Ilustrasi mengenai jendela-jendela di atas dapat dilihat pada gambar berikut ini.
Gambar 1.2 Jendela Scilab
Selain jendela-jendela yang telah disebutkan, masih terdapat tiga jendela lagi yaitu:
Jendela bantuan. Jendela ini yang menampilkan penjelasan mengenai suatu fungsi, operator atau perintah yang terpasang di dalam Scilab. Jendela bantuan akan muncul jika kita jalankan perintah help atau apropos.
SciNotes. SciNotes adalah sebuah program editor teks yang disediakan oleh Scilab untuk memudahkan pembuatan atau pengembangan sebuah skrip atau fungsi.
Penjelasan lebih detail mengenai SciNotes dapat dilihat pada Bab 12: Editor Teks SciNotes.
Jendela grafik. Jendela ini digunakan untuk melakukan visualisasi terhadap suatu data atau sebuah fungsi matematika. Jendela grafik akan muncul apabila kita menjalankan perintah-perintah yang berkaitan dengan visualisasi grafik. Penjelasan mengenai pembuatan grafik dapat dilihat pada Bab 16: Grafik Dua Dimensi dan Tiga Dimensi.
Sistem Bantuan
Jendela bantuan dapat ditampilkan dengan perintah help, melalui menu ? Scilab Help, atau dengan menekan tombol F1. Tampilan dari jendela bantuan adalah seperti pada gambar di bawah ini.
Gambar 1.3 Jendela Bantuan Scilab
Penjelasan mengenai suatu perintah, fungsi atau operator tertentu dapat kita peroleh dengan menelusuri jendela bantuan. Namun cara ini mungkin kurang praktis, untuk mendapatkan penjelasan mengenai suatu perintah, fungsi atau operator tertentu, kita dapat menggunakan perintah help("topik") atau help topik. Sebagai contoh, untuk melihat penjelasan tentang fungsi round maka perintahnya adalah help("round") atau help round. Apabila kita jalankan perintah tersebut maka akan muncul sebuah jendela seperti pada Gambar 1.4.
Gambar 1.4 Contoh penjelasan detail tentang suatu fungsi
Daftar dari semua dokumentasi yang berkaitan dengan sebuah topik atau kata tertentu dapat ditampilkan dengan dipergunakan fungsi apropos("topik") atau apropos "topik". Sebagai contoh untuk mencari dokumentasi yang berkaitan dengan kata inv perintahnya adalah apropos("inv"). Dokumentasi yang berkaitan dengan sebuah topik tertentu juga dapat dicari melalui fasilitas pencarian yang terdapat pada Jendela Bantuan melalui tab yang terdapat pada jendela bantuan.
Selanjutnya, melalui menu ? Scilab Demonstrations dapat dilihat berbagai macam demonstrasi yang memperlihatkan kemampuan Scilab dalam menyelesaikan berbagai macam persoalan komputasi numerik, simulasi serta visualisasi data. Dengan melihat berbagai macam demonstrasi yang telah disediakan oleh Scilab, kita dapat memperoleh gambaran yang lebih konkret mengenai kemampuan Scilab.
Bab 2
Dasar-Dasar Penggunaan Scilab
Interaksi dengan Scilab
Konsol Scilab adalah tempat utama untuk berinteraksi dengan program Scilab. Tanda -->
yang terdapat pada jendela tersebut adalah tempat untuk menjalankan suatu perintah atau statemen. Sebagai contoh, untuk melakukan suatu perhitungan sederhana yaitu 123 + 456 maka setelah tanda --> kita harus mengetikkan 123 + 456 dan kemudian menekan tombol Enter untuk menjalankan perintah tersebut. Hasil perhitungannya akan ditampilkan pada baris berikutnya. Setelah itu di bawahnya akan muncul lagi tanda --> yang berarti bahwa Scilab siap untuk mengerjakan suatu perintah atau perhitungan yang lain.
-->123 + 456 ans =
579.
-->
Scilab Sebagai Kalkulator Sains
Cara mudah untuk mengenal Scilab yaitu dengan menggunakannya untuk menyelesaikan suatu perhitungan matematika sederhana seperti pada contoh berikut ini.
-->14.59*(1 + 0.0043*80) ans =
19.60896
-->2/sqrt(5^2 + (16*%pi - 1/(40*%pi))^2) ans =
0.0395995
Dua contoh di atas adalah perintah Scilab untuk menyelesaikan dua perhitungan matematika sebagai berikut:
( )
√ ⁄ ( )
Beberapa penjelasan mengenai statemen Scilab untuk menyelesaikan dua perhitungan tersebut adalah sebagai berikut:
Simbol +, -, *, / dan ^ masing-masing adalah operator untuk operasi penjumlahan, pengurangan, perkalian, pembagian dan pemangkatan.
Tanda kurung-buka dan kurung-tutup adalah sepasang operator yang digunakan untuk mengelompokkan suatu ekspresi matematika.
sqrt adalah fungsi untuk menghitung akar kuadrat dari suatu bilangan.
%pi adalah sebuah variabel khusus untuk konstanta matematika .
ans adalah sebuah variabel yang digunakan oleh Scilab untuk menyimpan hasil dari suatu perhitungan yang nilainya tidak disimpan ke dalam sebuah variabel tertentu.
Statemen
Statemen adalah suatu baris pernyataan yang dapat dieksekusi oleh Scilab. Hasil eksekusi dari statemen tersebut akan ditampilkan pada baris di bawahnya, kecuali apabila pada baris pernyataan tersebut ditambahkan tanda titik-koma (;) di belakangnya.
-->23 + 9 ans = 32.
-->FV = 500*(1 + 5/100)^4 FV =
607.75313
-->c = sqrt(8^2 + 6^2);
-->x = cos(%pi/4)^2 + sin(%pi/4)^2;
Pada contoh perhitungan di atas FV, c, x adalah variabel-variabel yang digunakan untuk menyimpan hasil perhitungan.
Nilai yang tersimpan pada suatu variabel dapat ditampilkan dengan cara mengetikkan nama variabelnya pada baris perintah.
-->c c =
10.
-->x x =
1.
Beberapa statemen dapat dimasukkan sekaligus pada satu baris perintah yang sama.
Antara statemen yang satu dengan statemen yang lainnya dapat dipisahkan dengan tanda koma (,) atau titik-koma (;). Jika digunakan tanda koma maka nilai dari hasil eksekusi statemennya akan ditampilkan pada baris berikutnya, namun jika digunakan tanda titik- koma maka nilai dari eksekusi statemennya tidak akan ditampilkan.
-->V = 120; R = 240; I = V/R, P = V*I I =
0.5 P =
60.
Untuk sebuah statemen yang relatif panjang sehingga tidak dapat dimasukkan dalam satu baris maka statemennya dapat ditulis dalam beberapa baris dengan menggunakan dua titik atau lebih (..) sebagai tanda sambung antara satu dengan baris berikutnya.
-->e5 = 1 + 1/1 + 1/(1*2) + 1/(1*2*3) + 1/(1*2*3*4) + ...
-->1/(1*2*3*4*5) e5 =
2.7166667
Baris Komentar
Baris komentar adalah suatu catatan yang dibuat untuk menjelaskan sebuah statemen atau suatu blok statemen tertentu. Baris komentar dapat ditulis sebagai suatu baris tersendiri atau ditulis di belakang suatu statemen. Tanda // adalah operator untuk membuat baris komentar.
Berikut ini adalah contoh-contoh penggunaan baris komentar.
-->d = 53; // jarak (m)
-->t = 15; // waktu tempuh (detik) -->// kecepatan rata-rata (m/detik) -->v = d/t
v =
3.5333333
Apabila variabel-variabel yang digunakan dalam suatu perhitungan sudah cukup jelas artinya seperti pada contoh di bawah ini maka baris komentar sebaiknya tidak digunakan.
-->panjang = 20;
-->lebar = 10;
-->luas = panjang*lebar luas =
200.
Bilangan
Di dalam Scilab, semua bilangan disimpan dengan menggunakan presisi ganda dengan akurasi sekitar 16 digit desimal signifikan. Suatu bilangan dapat dinyatakan dengan notasi desimal biasa atau dengan notasi saintifik. Pada notasi desimal tanda titik (.) digunakan sebagai penanda desimal. Berikut ini adalah contoh-contoh penulisan bilangan dengan notasi desimal.
777 -123 99.9998 -4.68
Pada notasi saintifik huruf e, E, d, atau D dapat digunakan untuk menyatakan pangkat dari angka 10. Beberapa contoh penulisan suatu bilangan dalam notasi saintifik adalah sebagai berikut:
3e8 2.778E-4 1.660d-27 -9.87D34
Notasi saintifik biasanya digunakan untuk menyatakan suatu bilangan yang sangat kecil atau sangat besar. Hal ini untuk menghindari terjadinya kesalahan penulisan serta lebih memudahkan pembacaan.
Variabel
Variabel adalah sebuah nama yang digunakan untuk menyimpan nilai suatu bilangan, hasil perhitungan, atau sebuah obyek tertentu. Penyimpanan nilai suatu obyek ke dalam suatu variabel dilakukan dengan menggunakan statemen penugasan sebagai berikut:
var = ekspresi
dimana var adalah nama variabel yang digunakan untuk menyimpan nilai dari ekspresi yang terdapat di sebelah kanannya.
Sebagai contoh, untuk menyimpan hasil perhitungan ( √ ) ⁄ ke dalam variabel x, statemennya adalah sebagai berikut.
-->x = (1 + sqrt(5))/2 x =
1.618034
Apabila hasil eksekusi dari suatu statemen tidak disimpan ke dalam sebuah variabel tertentu maka hasilnya akan disimpan oleh Scilab pada variabel ans.
-->(7 - 2)*8 ans =
40.
Seperti halnya variabel lainnya, variabel ans juga dapat dipanggil atau dipergunakan dalam perhitungan selanjutnya, seperti pada contoh di bawah ini.
-->ans*10 ans =
400.
Dalam penamaan suatu variabel terdapat beberapa aturan-aturan sebagai berikut:
Nama suatu variabel harus berupa satu kata yang utuh dan di dalamnya tidak boleh terdapat tanda spasi maupun simbol operator aritmatika (+, -, /, \, *, ^).
Karakter pertama harus berupa abjad (A-Z dan a-z) atau simbol tertentu (%, _ , #, $, ?), kemudian karakter berikutnya dapat berupa abjad (A-Z dan a-z), angka (0-9), atau simbol (%, _, #, $, ?).
Nama sebuah variabel dapat dibuat sepanjang mungkin namun hanya 24 karakter pertama yang akan digunakan oleh Scilab.
Berikut contoh nama variabel yang mengikuti kaidah penulisan variabel yang benar: x, Jumlah, nilai_awal, temp, x0, s100.
Dalam penamaan sebuah variabel, huruf kecil dan huruf besar adalah berbeda. Sebagai contoh, variabel r dan R merupakan dua variabel yang berbeda, begitu juga dengan total, Total dan TOTAL, dimana ketiganya merupakan variabel yang berbeda.
Hal penting lainnya yang harus diperhatikan dalam penamaan suatu variabel yaitu nama suatu variabel tidak boleh menggunakan nama-nama dari suatu fungsi atau perintah yang telah terpasang di dalam Scilab, seperti abs, input, ones, roots, sum, dan lain sebagainya.
Apabila nama sebuah fungsi atau perintah yang terpasang di dalam Scilab digunakan sebagai nama sebuah variabel maka akan muncul sebuah pesan peringatan Warning :redefining function, seperti pada contoh berikut ini.
-->sqrt = 4
Warning :redefining function: sqrt
Peringatan ini muncul karena sqrt adalah nama sebuah fungsi terpasang dalam Scilab.
Suatu fungsi atau perintah yang secara tak sengaja dipergunakan sebagai nama sebuah variabel dapat dibuat berfungsi kembali secara normal dengan menggunakan perintah clear foo, dimana foo adalah nama fungsi atau perintah yang telah terdefinisi ulang.
Sehingga untuk membuat fungsi sqrt kembali berfungsi normal maka perintahnya yaitu:
-->clear sqrt
Matrik
Matrik adalah tipe dasar dari semua data atau obyek di dalam Scilab. Matrik adalah sebuah larik data yang berbentuk segiempat. Bilangan atau skalar adalah bentuk khusus dari sebuah matrik, dimana skalar adalah matrik dengan elemen tunggal.
Berikut adalah sebuah contoh obyek matrik.
-->A = [1 2 3; 4 5 6] // numerik A =
1. 2. 3.
4. 5. 6.
Tanda kurung-siku kanan ([) dan kurung-siku kiri (]) adalah sepasang operator yang dapat digunakan untuk membuat suatu matrik atau vektor secara manual. Penjelasan terperinci tentang matrik akan diberikan pada Bab 4: Matrik dan Vektor.
Tipe dan Dimensi Variabel
Di dalam Scilab, suatu variabel dapat langsung dibuat tanpa harus ditentukan tipe dan dimensinya, seperti pada contoh di bawah ini.
-->e1000 = (1 + 1/1000)^1000 // skalar e1000 =
2.7169239
-->M = [8 1 6 3; 5 7 4 9] // matrik numerik ukuran 2 x 3 M =
8. 1. 6. 3.
5. 7. 4. 9.
Tipe dari sebuah variabel dapat kita ketahui dengan menggunakan fungsi typeof. Ukuran atau dimensi dari suatu variabel dapat kita ketahui dengan fungsi size.
-->typeof(e1000) ans =
constant
-->typeof(M) ans =
constant -->size(e1000) ans =
1. 1.
-->size(M) ans =
2. 4.
Terlihat bahwa variabel e1000 dan M mempunyai tipe yang sama yaitu constant, yang berarti kedua variabel tersebut adalah suatu obyek numerik. Ukuran dari variabel e1000 adalah 1x1, yang berarti e1000 adalah suatu skalar. Selanjutnya ukuran dari variabel M adalah 2x3, yang berarti M adalah sebuah matrik yang berukuran 2x3.
Suatu variabel yang telah dibuat dapat berubah dimensinya, tipenya atau bahkan tipe dan dimensinya sekaligus, sesuai dengan operasi yang dilakukan terhadapnya, seperti yang diilustrasikan pada contoh-contoh di bawah ini.
-->x = 9.867; // x adalah suatu skalar -->typeof(x)
ans =
constant
-->size(x) ans =
1. 1.
-->x = [10, 20; 0, 30] // x berubah menjadi suatu matrik x =
10. 20.
0. 30.
-->typeof(x) ans =
constant
-->size(x) ans =
2. 2.
-->x = "Scilab" // x berubah lagi menjadi suatu string x =
Scilab
Pada contoh ini, pertama kali variabel x adalah suatu skalar kemudian berubah ukurannya menjadi suatu matrik, kemudian variabel x berubah tipenya menjadi sebuah string.
Penjelasan terperinci mengenai obyek string akan diberikan pada Bab 8: String.
Operator
Operator adalah simbol khusus yang melambangkan suatu operasi tertentu, seperti plus (+) untuk operasi penjumlahan dan operasi konkatenasi string, bintang (*) untuk operasi perkalian, lebih besar (>) untuk operasi perbandingan lebih besar, dan lain sebagainya.
Ilustrasi untuk operator-operator aritmatika telah kita lihat pada contoh-contoh yang telah diberikan. Selanjutnya, contoh-contoh di bawah ini adalah ilustrasi mengenai beberapa operator lain yang terdapat di dalam Scilab.
-->test = 1001 < 999 test =
F
-->1 + %eps/2 > 1 ans =
F
-->x = 5; (x >= 0) & (x <= 10) ans =
T
Penjelasan mengenai beberapa operator yang terdapat pada contoh-contoh di atas adalah sebagai berikut:
Simbol <, >, ==, <=, >= masing-masing adalah operator untuk operasi perbandingan lebih-kecil, lebih-besar, sama, lebih-kecil atau sama dan lebih-besar atau sama.
Simbol & adalah operator untuk operasi logika dan.
Variabel khusus %eps adalah variabel khusus untuk menyatakan presisi komputer dalam operasi aritmatika.
Operator aritmatika akan dijelaskan secara terperinci pada Bab 3: Matematika Dasar dan Bab 5: Operasi Matematika Terhadap Matrik dan Vektor. Selanjutnya penjelasan mengenai
operator untuk operasi perbandingan dan operasi logika akan diberikan pada Bab 10:
Perbandingan dan Logika.
Fungsi
Fungsi adalah sebuah nama yang merepresentasikan suatu perhitungan matematika, (seperti perhitungan akar kuadrat, perhitungan sinus, pembulatan); atau sebuah operasi tertentu (seperti melihat tanggal sekarang, melihat nama direktori kerja).
Berikut ini ilustrasi dari beberapa fungsi yang telah terpasang di dalam Scilab.
-->n = exp(4) n =
54.59815 -->tan(%pi/4) ans =
1.
-->r = modulo(10,4) r =
2.
-->rand() ans =
0.2113249 -->date() ans =
06-Mar-2010
Penjelasan dari beberapa fungsi di atas adalah sebagai berikut:.
Fungsi exp adalah fungsi untuk menghitung nilai exponensial dari suatu bilangan.
Fungsi tan adalah fungsi untuk menghitung nilai tangen dari suatu sudut.
Fungsi modulo adalah fungsi untuk menghitung sisa pembagian dari suatu operasi pembagian terhadap dua bilangan bulat.
Fungsi rand adalah fungsi untuk membuat bilangan random.
Fungsi date adalah fungsi untuk melihat tanggal sekarang.
Nama suatu fungsi juga bersifat sensitif terhadap ukuran huruf. Sebagai contoh, jika kita tuliskan fungsi sqrt dengan Sqrt atau SQRT maka akan muncul sebuah pesan kesalahan undefined variable.
-->Sqrt(100)
!--error 4 Undefined variable: Sqrt
Sebuah fungsi baru yang merepresentasikan suatu perhitungan atau operasi tertentu juga dapat kita buat di dalam Scilab. Sebagai contoh, fungsi matematika sebagai berikut:
x xx
f( ) exp
dapat dibuat dengan menggunakan statemen-statemen sebagai berikut:
-->function y = foo(x) --> y = x - exp(-x) -->endfunction
Penjelasan tentang cara pembuatan suatu fungsi akan diberikan pada Bab 14: Fungsi.
Suatu fungsi yang telah kita buat dapat dijalankan seperti halnya sebuah fungsi yang telah terpasang di dalam Scilab, seperti pada contoh di bawah ini.
-->fx = foo(1) fx =
0.6321206
Suatu fungsi dapat mempunyai argumen input dan output lebih dari satu. Untuk fungsi- fungsi tersebut, pada umumnya terdapat beberapa argumen input atau output yang bersifat opsional dan hanya perlu digunakan sesuai dengan kebutuhan.
Sebagai contoh, untuk mencari suatu bilangan rasional yang merupakan aproksimasi dari suatu bilangan real, dapat digunakan fungsi rat yang mempunyai notasi sebagai berikut:
[m, n] = rat(x, tol)
dimana x adalah suatu bilangan real, m dan n adalah bilangan bulat serta tol adalah toleransi aproksimasi. Argumen tol bersifat opsional, jika tidak dipakai maka nilai toleransi aproksimasi yang digunakan adalah 10-6. Bilangan rasional m/n adalah hampiran untuk bilangan real x yang dihasilkan oleh fungsi rat. Berikut ini adalah contoh penggunaan fungsi rat untuk mencari nilai aproksimasi dari bilangan irrasional .
-->[m, n] = rat(%pi) // argumen tol dengan nilai default n =
113.
m =
355.
-->[m, n] = rat(%pi, 1e-3) // tol = 1e-3 n =
7.
m =
22.
Pada sebuah fungsi yang mempunyai argumen output lebih dari satu, hanya argumen output pertama yang harus digunakan, argumen ouput kedua dan seterusnya dapat digunakan sesuai dengan yang kita perlukan. Sebagai contoh, akar dari suatu fungsi nonlinier dapat kita hitung dengan fungsi fsolve dengan sintaks sebagai berikut:
[x, fval, info] = fsolve(x0, fcn)
Dimana fcn adalah fungsi nonlinier yang dicari akarnya, x0 adalah nilai awal dalam perhitungan iterasi, x adalah hampiran akar dari fungsi fcn, fval adalah nilai fungsi fcn pada x (fval = fcn(x)) dan info adalah argumen output yang menyatakan kondisi iterasi perhitungan (konvergen atau divergen). Argumen fval dan info pada fungsi fsolve adalah argumen yang bersifat opsional.
Misalkan fungsi nonlinier yang akan kita cari akarnya adalah f(x)x2 sin
x . -->function y = fx(x)--> y = x^2 - sin(x) -->endfunction
Selanjutnya, kita dapat menjalankan fsolve untuk mencari akar dari fungsi f(x) dengan tiga macam bentuk argumen output adalah sebagai berikut:
-->x0 = fsolve(1.0, fx) // Satu argumen output x0 =
0.8767262
-->[x0, f0, iter] = fsolve(1.0, fx) // Tiga argumen output iter =
1.
f0 =
- 1.110D-16 x0 =
0.8767262
Selain fungsi-fungsi matematika standar, di dalam Scilab juga terpasang fungsi-fungsi yang merupakan implementasi dari algoritma-algoritma dalam metode numerik, seperti fsolve untuk mencari akar-akar suatu persamaan nonlinier, regress untuk perhitungan regresi linier, intg untuk melakukan integrasi numerik, dan lain sebagainya. Ilustrasi penggunaan Scilab untuk menyelesaikan berbagai persoalan dalam komputasi numerik diberikan pada Bab 17: Metode Numerik.
Format Output Numerik
Scilab akan menampilkan nilai sebuah variabel atau hasil dari suatu perhitungan sesuai dengan format yang sedang digunakan. Sebagai contoh apabila dijalankan statemen:
NA = 6.0221367e23
maka tampilan yang muncul pada jendela Scilab adalah seperti di bawah ini.
-->NA = 6.0221367e23 NA =
6.022D+23
Terlihat bahwa tampilan bilangan yang muncul adalah berbeda dengan statemen yang diketikkan dimana tidak semua digit desimal yang telah diketikkan ditampilkan.
Format output numerik pada contoh di atas adalah tampilan yang dihasilkan oleh format default untuk ouput numerik. Apabila diperlukan format output numerik dapat dirubah dengan menggunakan fungsi format. Fungsi format hanya akan berpengaruh terhadap tampilan format numerik saja dan tidak berpengaruh terhadap penyimpanan hasil perhitungannya di dalam memori komputer.
Fungsi format dapat dijalankan dengan tiga macam sintak sebagai berikut
format(fmt, n) untuk merubah tipe format dan panjang digit yang digunakan untuk menampilkan bilangan. Argumen fmt adalah tipe format, yaitu 'v' untuk format default dan 'e' untuk format saintifik, n adalah panjang digit yang digunakan untuk menampilkan bilangan (2 sampai 25 digit). Format default yang digunakan oleh Scilab yaitu format('v',10).
format(n) untuk merubah panjang digit yang digunakan untuk menampilkan bilangan menjadi n digit sedangkan tipe formatnya tetap.
v =format() untuk menampilkan format yang sedang digunakan. Output dari perintah ini adalah sebuah vektor baris v yang terdiri dari dua elemen. Elemen pertama dari vektor v adalah tipe format yaitu 0 untuk format saintifik atau 1 untuk format desimal.
Nilai elemen kedua adalah panjang digit yang digunakan.
Berikut ini adalah beberapa contoh penggunaan fungsi format. -->// Tampilan dengan format default
-->x = 1/7 x =
0.1428571 -->y = 123456789 y =
1.235D+08
-->// Tampilan dengan format desimal menggunakan 20 digit
-->format('v',20)
-->x x =
0.14285714285714285
-->y y =
123456789.
-->NA NA =
6.0221367000000D+23
-->// Tampilan dengan format saintifik menggunakan 15 digit
-->format('e',15)
-->x x =
1.42857143D-01 -->y
y =
1.23456789D+08 -->NA
NA =
6.02213670D+23
Penulisan dan Pengeditan Perintah
Misalkan kita akan melakukan sebuah perhitungan sebagai berikut:
( √ ) ⁄
Anggap perhitungan tersebut kita selesaikan dengan statemen sebagai berikut rho = (1 + sqr(5))/2
maka statement tersebut tidak dapat dieksekusi dan akan muncul sebuah pesan kesalahan, seperti di bawah ini.
-->rho = (1 + sqr(5))/2 !--error 4 undefined variable : sqr
Pesan kesalahan ini muncul karena terdapat kesalahan dalam statemen di atas yaitu fungsi sqr seharusnya ditulis sqrt.
Daripada menulis kembali seluruh statemennya, terdapat sebuah cara yang lebih mudah untuk memperbaiki kesalahan pada statemen di atas. Caranya yaitu dengan menggunakan tombol panah ke atas () untuk menampilkan kembali statemen yang telah diberikan dan menggunakan tombol panah ke kiri () untuk memindahkan kursor sehingga berada di
depan kata sqr. Setelah itu sisipkan huruf t sehingga sqr berubah menjadi sqrt. Berikut ini adalah statemen yang dihasilkan dari proses pengeditan serta hasil perhitungannya.
-->rho = (1 + sqrt(5))/2 rho =
1.618034
Pada saat penulisan atau pengeditan suatu perintah kita juga dapat menggunakan fitur tab completion. Dengan menggunakan fitur ini, pada saat pengetikan suatu perintah atau statemen apabila kita tekan tombol tab setelah kita ketikkan beberapa karakter awal dari nama suatu variabel atau fungsi maka akan muncul sebuah kotak yang berisi daftar nama- nama variabel atau fungsi yang berawalan dengan karakter yang telah kita ketikkan. Pada daftar pilihan yang muncul, pilih nama variabel atau fungsi yang kita maksud kemudian tekan enter. Berikut ini adalah ilustrasi dari fitur tab completion.
Daftar Riwayat Perintah
Perintah-perintah atau statemen-statemen yang kita jalankan pada Jendela Scilab dapat ditelusuri kembali dengan menggunakan tombol panah ke atas () dan tombol panah ke bawah (). Selain dengan menggunakan tombol-tombol panah kita juga dapat melihat statemen atau perintah yang telah diberikan pada Jendela Command History.
Melihat Daftar Variabel-Variabel yang Telah Dibuat
Semua variabel yang telah kita buat pada jendela Scilab akan disimpan dan dikelola oleh Scilab dalam ruang kerja (workspace). Selain variabel-variabel yang kita buat pada ruang kerja juga tersimpan variabel-variabel yang dibuat secara otomatis oleh Scilab. Daftar dari semua variabel yang tersimpan pada ruang kerja dapat ditampilkan pada jendela Scilab dengan menggunakan gunakan perintah who atau whos. Perintah who akan menampilkan
daftar yang berisi nama variabel saja sedangkan perintah whos akan menampilkan daftar variabel secara lengkap, yaitu nama, tipe dan ukuran variabel. Sayangnya output dari kedua perintah tersebut juga menampilkan semua variabel yang secara otomatis dijalankan oleh Scilab sehingga outputnya tidak informatif. Cara lebih praktis untuk melihat variabel yang telah dibuat adalah melaluli jendela variabel browser.
Menghapus Variabel
Semua variabel yang telah tersimpan pada ruang-kerja dapat dihapus sekaligus dengan menggunakan perintah clear. Untuk menghapus hanya beberapa variabel tertentu saja, misalkan variabel var1, var2, var3 perintahnya adalah clear var1 var2 var3.
Berikut ini adalah ilustrasi dari penggunaan perintah clear. -->h = 60;
-->L = 300;
-->w = 0.118;
-->To = (w*L^2)/(8*h) To =
22.125
-->Tmax = (w*L)/2*sqrt(1 + (L/(4*h))^2) Tmax =
28.333825
-->clear L w // menghapus variabel L dan w
-->L
!--error 4
Undefined variable: L
-->clear // menghapus semua variabel
-->Tmax
!--error 4
Undefined variable: Tmax
-->S = L*(1 + (8/3)*(h/L)^2 - (32/5)*(h/L)^4) !--error 4
Undefined variable: L
Seperti pada contoh di atas, akan muncul sebuha pesan kesalahan apabila sebuah variabel telah dihapus jika dipanggil atau digunakan kembali.
Membersihkan Jendela Scilab
Jendela Scilab dapat dibersihkan dari statemen-statemen yang telah kita berikan beserta outputnya dengan menggunakan perintah clc, melalui menu Edit Clear Console atau dengan menggunakan tombol F2. Perintah ini hanya akan membersihkan jendela perintah saja dan tidak akan menghapus statemen-statemen yang telah diberikan dari daftar riwayat perintah.
Direktori Kerja
Direktori kerja yang sedang digunakan dapat dilihat dengan menggunakan perintah pwd. -->pwd
ans =
F:\Scilab
Cara lainnya untuk melihat direktori kerja adalah dengan menggunakan menu File Display Current Directory.
Untuk pindah ke direktori lain sebagai direktori kerja, kita dapat menggunakan perintah cd atau chdir. Sintaks dari kedua perintah tersebut adalah sebagai berikut:
cd str atau cd('str')
chdir str atau chdir('str')
dimana str adalah direktori kerja yang akan digunakan. Misalkan kita akan menggunakan direktori "C:\Komputasi Numerik\Scilab" sebagai direktori kerja maka kita dapat melakukannya dengan menjalankan salah satu dari statemen sebagai berikut.
-->chdir('C:\Komputasi Numerik\Scilab');
-->cd 'C:\Komputasi Numerik\Scilab';
Selain dengan perintah pwd kita juga dapat melakukan perubahan direktori kerja dengan menggunakan menu File Change Current Directory.
Perubahan direktori kerja dengan menggunakan cara-cara yang telah disebutkan hanya
bersifat sementara saja. Ketika kita menjalankan Scilab pada sesi berikutnya maka direktori kerja yang telah kita atur pada sesi sebelumnya akan hilang. Perubahan direktori kerja yang bersifat permanen dapat dilakukan dengan cara memasukkkan nama direktori yang dikehendaki pada kotak teks untuk argumen "Start in" yang terdapat di dalam form properties dari jalan-pintas (shorcut) Scilab. Form tersebut dapat ditampilkan dengan melakukan klik-kanan terhadap shorcut Scilab dan kemudian kita pilih properties.
Bab 3
Matematika Dasar
Konstanta-Konstanta Matematika
Tabel 3.1 adalah daftar dari beberapa konstanta matematika yang telah terpasang di dalam Scilab.
Tabel 3.1 Konstanta Matematika di dalam Scilab
Variabel Deskripsi
%i i = 1
%pi = 3.1415927...
%e e = 2.7182818 ...
Contoh penggunaan konstanta-konstanta matematika di atas adalah sebagai berikut.
-->sin(%pi/2) ans =
1.
-->log(%e) ans = 1.
-->%i^2 ans = - 1.
Operator-Operator Aritmatika
Simbol-simbol untuk operator aritmatika yang terdapat di dalam Scilab diperlihatkan pada Tabel 3.2. Selain simbol-simbol tersebut, terdapat simbol lain yang digunakan dalam penulisan suatu ekspresi matematika yaitu tanda kurung-buka dan kurung-tutup, ( ), yang digunakan untuk mengelompokkan suatu bagian ekspresi matematika.
Tabel 3.2 Operator Matematika
Operasi Notasi Matematika Notasi Scilab
Penjumlahan a + b a + b
Pengurangan a – b a – b
Perkalian a × b a * b
Pembagian a / b
Pemangkatan a ^ b atau a ** b
Urutan operasi aritmatika dari tingkatan yang paling tinggi ke tingkatan yang lebih rendah adalah sebagai berikut:
1. Operasi matematika yang terletak di antara tanda kurung ( ) 2. Operasi pemangkatan
3. Operasi perkalian atau pembagian 4. Operasi pejumlahan atau pengurangan.
Eksekusi terhadap suatu ekspresi matematika yang didalamnya terdapat beberapa macam operasi aritmatika dimulai dari operasi yang mempunyai tingkatan tertinggi kemudian ke operasi berikutnya yang mempunyai tingkatan operasi lebih rendah dan seterusnya sampai selesai. Apabila di dalam suatu ekspresi matematika terdapat beberapa operasi yang mempunyai tingkatan sama maka urutan eksekusinya dimulai dari sebelah kiri ke kanan.
Berikut ini ilustrasi berbagai macam perhitungan aritmatika.
-->1 + 2/(3*4) ans =
1.1666667
-->(1 - 2/(3 + 2))/(1 + 2/(3 - 2)) ans =
0.2
-->1000*(1 + 0.15/12)^60 ans =
2107.1813
Penggunaan tanda spasi dalam penulisan suatu ekspresi matematika bersifat opsional namun sebaiknya tanda spasi digunakan untuk mempermudah pembacaan dari ekspresi matematika yang dibuat.
Contoh 1. Tentukan besarnya resultan gaya yang dihasilkan oleh gaya-gaya yang bekerja pada roda-roda mobil, seperti yang ditunjukkan pada Gambar 3.1, serta posisi resultan gaya tersebut dari titik A?
Gambar 3.1
Penyelesaian. Misalkan FA, FB dan FC adalah gaya-gaya yang bekerja pada titik A, B dan C maka resultan gaya R yang dihasilkan oleh ketiga gaya tersebut adalah
R = FA + FB + FC
Misalkan d adalah letak resultan gaya dari titik A, maka d dapat dihitung dengan formula sebagai berikut:
R
x F x F x
d FA A B B C C
dimana xA, xB, xC adalah letak gaya FA, FB dan FC dari titik A.
Perhitungan resultan gaya R dan letaknya dari titik A adalah sebagai berikut:
-->FA = 20; // Gaya pada titik A (kN)
-->FB = 20; // Gaya pada titik B (kN)
-->FC = 10; // Gaya pada titik C (kN)
-->xA = 0; // Letak gaya FA (m)
-->xB = 3; // Letak gaya FB (m)
-->xC = 5; // Letak gaya FC (m)
-->R = FA + FB + FC // Resultan gaya R (kN) R =
50.
-->d = (FA*xA + FB*xB + FC*xC)/R // Letak gaya R (m) d =
2.2
Jadi resultan gaya R adalah sebesar 50 kN dan letaknya sejauh 2.2 m dari titik A.
Contoh 2. Sebuah baterei mempunyai gaya gerak listrik 12 V dan tahanan internal 0.05 .
Jika pada terminal-terminal baterei tersebut dihubungkan dengan sebuah tahanan luar sebesar 3 . Tentukan arus yang mengalir pada rangkaian tersebut dan beda tegangan yang terdapat pada terminal baterei tersebut?
Penyelesaian. Arus (I) pada rangkaian tersebut dapat dihitung dengan menggunakan formula sebagai berikut:
r I R
dimana adalah gaya gerak listrik, r adalah tahanan internal dan R adalah tahanan luar.
Beda tegangan (V) yang terdapat di antara terminal baterei dapat dihitung dengan formula sebagai berikut:
Ir V
Arus yang mengalir pada rangkaian dan beda tegangan yang terdapat pada terminal baterei dapat kita hitung dengan perintah-perintah sebagai berikut.
-->epsilon = 12; // gaya gerak listrik
-->r = 0.05; // tahanan internal baterei (Ohm)
-->R = 3; // tahanan luar (Ohm)
-->I = epsilon/(R + r) // arus yang mengalir pada rangkaian (Ampere) I =
3.9344262
-->V = epsilon - I*r // beda tegangan pada terminal baterei (Volt) V =
11.803279
Arus yang mengalir pada rangkaian adalah 3.9 A dan beda tegangan yang terdapat pada terminal baterei yaitu 11.8 V.
Contoh 3. Sebuah bahan radioaktif mempunyai waktu paruh 150 hari. Apabila hari ini massa radioaktif tersebut adalah 10 gram, berapakah jumlah massa radioaktif yang tertinggal setelah 300 hari ?
Penyelesaian. Peluruhan suatu bahan radioaktif dapat dihitung dengan sebagai berikut:
( )
dimana m adalah massa bahan radioaktif yang tertinggal, mo adalah massa awal bahan radioaktif, t adalah waktu peluruhan, serta h adalah waktu paruh.
Perhitungan massa radioaktif yang tertinggal adalah sebagai berikut.
-->massa_awal = 10;
-->waktu_paruh = 150;
-->waktu = 300;
-->massa_tersisa = massa_awal * (1/2)^(waktu/waktu_paruh) massa_tersisa =
2.5
Sehingga setelah 300 hari, bahan radioaktif yang tertinggal yaitu sejumlah 2.5 gram.
Variabel-Variabel Khusus untuk Aritmatika Komputer
Di dalam Scilab, terdapat beberapa variabel khusus yang berkaitan dengan operasi aritmatika dengan komputer. Variabel-variabel khusus tersebut yaitu %eps, %inf dan %nan. Deskripsi singkat mengenai ketiga variabel tersebut dapat dilihat pada Tabel 3.3.
Tabel 3.3 Daftar Beberapa Konstanta Aritmatika Komputer
Variabel Deskripsi
%eps Presisi komputer
%nan Bukan sebuah bilangan (not a number)
%inf Takhingga (∞, infinity)
Variabel %eps merupakan variabel khusus yang menyatakan presisi komputer. Nilai dari variabel ini adalah nilai terkecil yang dapat ditambahkan pada suatu bilangan sehingga menghasilkan suatu nilai yang berbeda dengan nilai dari bilangan tersebut. Nilai variabel
%eps akan tergantung pada jenis komputer. Untuk komputer yang mendukung sistem 64 bit IEEE, nilai variabel %eps kira-kira adalah 2.220 10-16.
Berikut ini beberapa contoh ilustrasi mengenai variabel %eps. -->%eps
%eps =
2.220D-16 -->format(20)
-->1 + %eps ans =
1.00000000000000022 -->1 + %eps/2
ans =
1.
Variabel %inf merupakan suatu variabel yang digunakan untuk menyatakan operasi pembagian suatu bilangan real, (selain bilangan nol), dengan bilangan nol.
-->ieee(2) -->9.99/0
ans = Inf -->-345/0 ans =
-Inf
Fungsi ieee yang terdapat pada contoh ini digunakan untuk mengontrol suatu perkecualian yang terjadi dalam sebuah operasi aritmatika. Penjelasan mengenai fungsi ini akan diberikan pada subbab berikutnya tentang pembagian dengan nol.
Variabel %inf digunakan untuk merepresentasikan suatu bilangan yang nilainya diluar jangkauan bilangan yang dapat disimpan oleh Scilab. Jika suatu bilangan mempunyai nilai yang lebih besar dari 10308 maka nilainya akan dinyatakan dengan simbol %inf namun jika nilainya lebih kecil dari -10308 maka nilainya akan dinyatakan dengan simbol -%inf.
-->2^1023 ans =
8.98D+307
-->2^1024 ans =
Inf
-->-2^1024 ans =
- Inf
Variabel %nan adalah variabel yang digunakan untuk menyatakan suatu operasi matematika yang tidak didefinisikan, seperti 0/0, ∞ - ∞, ∞/∞
-->0/0 ans =
Nan
Pembagian dengan Nol
Terdapat suatu perkecualian dalam suatu operasi pembagian yaitu pembagi nilainya tidak boleh sama dengan nol. Jika hal ini terjadi maka Scilab secara default akan menampilkan suatu pesan kesalahan, seperti yang terlihat pada contoh di bawah ini.
-->99/0
!--error 27 division by zero...
Fungsi ieee dapat digunakan untuk mengontrol perkecualian yang mungkin terjadi pada suatu operasi aritmatika. Fungsi ieee mempunyai sintaks sebagai berikut:
ieee(m)
dimana m adalah mode untuk menangani operasi perkecualian yang terdapat di dalam suatu ekpresi aritmatika. Terdapat tiga pilihan untuk argumen mode dalam fungsi ieee yaitu 0, 1, dan 2. Dekripsi untuk ketiga mode tersebut adalah sebagai berikut:
Mode 0 (mode default), jika terdapat suatu operasi pembagian dengan bilangan nol maka akan muncul sebuah pesan error.
Mode 1, jika terdapat suatu operasi pembagian dengan bilangan nol maka akan muncul suatu pesan peringatan yang disertainya dengan hasil perhitungannya yang berupa Inf atau Nan sesuai dengan operasi aritmatikanya.
Mode 2, jika terdapat suatu operasi pembagian dengan bilangan nol maka hasil perhitungannya berupa Inf atau Nan sesuai dengan operasi aritmatikanya tanpa disertai suatu pesan peringatan.
Berikut ini beberapa contoh perhitungan sebagai ilustrasi untuk fungsi ieee. -->ieee(1)
-->99/0
Warning :division by zero...
ans = Inf -->0/0
Warning :division by zero...
ans = Nan -->ieee(2) -->99/0 ans = Inf -->0/0 ans = Nan
Apabila fungsi ieee() dijalankan tanpa menggunakan argumen maka fungsi tersebut akan menampilkan mode ieee yang sedang dipergunakan.
Akar Kuadrat
Fungsi sqrt adalah fungsi untuk menghitung akar kuadrat dari suatu bilangan real (termasuk bilangan negatif) maupun akar kuadrat dari suatu bilangan kompleks.
Contoh 4. Sebuah mobil bergerak dari keadaan diam dengan percepatan konstan 5 m/det2. Tentukan kecepatan mobil tersebut setelah menempuh jarak sejauh 40 m?
Penyelesaian. Kecepatan mobil dapat dihitung dengan rumus sebagai berikut:
√
dimana v0 adalah kecepatan awal, a adalah percepatan dan d jarak yang ditempuh.
Berikut ini statemen-statemen Scilab untuk menentukan kecepatan mobil.
-->v0 = 0; // kecepatan awal [m/s];
-->a = 5; // percepatan mobil [m/det^2]
-->d = 40; // jarak tempuh [m]
-->v = sqrt(v0 + 2*a*d) // kecepatan mobil [m/s]
v =
20.
Jadi kecepatan mobil adalah 20 m/det.
Contoh 5. Tentukan akar-akar dari persamaan kuadrat x2 + x + 1 = 0.
Penyelesaian. Akar-akar dari sebuah persamaan kuadrat ax2 + bx + c = 0 dapat dihitung dengan menggunakan formula sebagai berikut :
,
√
Perhitungan akar-akar dari persamaan adalah sebagai berikut:
-->a = 1; b = 1; c = 1; // koefisien persamaan kuadrat
-->D = b^2 - 4*a*c; // diskriminan -->r1 = (-b + sqrt(D))/(2*a) // akar pertama r1 =
- 0.5 + 0.8660254i
-->r2 = (-b - sqrt(D))/(2*a) // akar kedua r2 =
- 0.5 - 0.8660254i
Jawaban yang diperoleh yaitu akar-akar dari persamaan kuadrat x2 + x + 1 = 0 adalah -0.5 + 0.866i dan -0.5 - 0.866i.
Nilai Mutlak
Fungsi abs adalah fungsi untuk menghitung nilai mutlak dari suatu bilangan real atau nilai modulus dari suatu bilangan kompleks. Berikut ini contoh penggunaan fungsi abs.
-->abs(-28.9) ans = 28.9
-->abs(3 - 4*%i) ans =
5.
Contoh 6. Tentukan jarak terdekat antara titik (1, -4, -3) dengan sebuah bidang planar 2x – 3y + 6z = -1.
Penyelesaian. Jarak terdekat antara suatu titik P(x0, y0, z0) dengan sebuah bidang planar ax + by + cz + d = 0 dapat dihitung dengan rumus sebagai berikut
| |
√
Dengan menggunakan rumus ini, jarak antara titik P dengan bidang planar dapat dihitung dengan statemen-statemen sebagai berikut:
-->a = 2; b = -3; c = 6; d = 1; // normal bidang
-->x0 = 1; y0 = -4; z0 = -3; // Titik P0
-->D = abs(a*x0 + b*y0 + c*z0 + d)/sqrt(a^2 + b^2 + c^2) D =
0.4285714
Jawaban yang diperoleh yaitu jarak terdekat antara titik (1, -4, -3) dengan bidang planar 2x – 3y + 6z = -1 adalah 0.429.
Tanda Bilangan
Tanda suatu bilangan dapat diketahui dengan fungsi sign yang mempunyai definisi sebagai berikut:
0 jika
, 1
0 jika
, 0
0 jika
, 1
x x x x
sign
Contoh-contoh penggunaan fungsi sign adalah sebagai berikut.
-->sign(56.78) ans =
1.
-->sign(-28.9) ans =
- 1.
Pembulatan
Scilab menyediakan beberapa macam fungsi untuk melakukan operasi pembulatan, seperti yang terlihat pada Tabel 3.4.
Tabel 3.4 Fungsi-Fungsi Pembulatan
Fungsi Deskripsi
round Pembulatan
ceil Pembulatan ke atas floor Pembulatan ke bawah fix atau int Pembulatan ke arah nol
clean Pembulatan nilai yang sangat kecil menjadi nol
Contoh-contoh penggunaan fungsi pembulatan adalah sebagai berikut:
-->round(5.67) ans =
6.
-->ceil(2.34) ans =
3.
-->floor(5.67) ans =
5.
-->int(-123.45) ans =
- 123.
Fungsi clean(x, tol) akan membulatkan nilai dari suatu variabel x menjadi angka nol apabila nilai absolutnya lebih kecil daripada suatu nilai toleransi tol. Argumen tol adalah argumen yang bersifat opsional dengan nilai default 10-10.
-->x = cos(%pi/2) x =
6.123D-17
-->x = clean(x) x =
0.
Aproksimasi Bilangan Real dengan Bilangan Rasional
Suatu bilangan real x dapat diaproksimasi nilainya dengan suatu bilangan rasional m/n melalui fungsi rat sebagai berikut:
[m,n] = rat(x, )
dimana adalah toleransi aproksimasi. Apabila argumen tidak dipergunakan maka nilai toleransi aproksimasi yang digunakan adalah 10-6.
Ilustrasi penggunaan fungsi rat adalah sebagai berikut:
-->[n,d] = rat(1.25) d =
4.
n = 5.
-->[m,n] = rat(%pi,0.001) n =
7.
m =
22.
Contoh yang terakhir ini adalah salah satu pendekatan nilai yang populer.
Trigonometri
Daftar dari fungsi-fungsi trigonometri dan inverse trigonometri yang terdapat di dalam Scilab diberikan pada Tabel 3.5. Sebagian besar fungsi trigonometri dan inverse trigonometri hanya membutuhkan argumen input tunggal, kecuali fungsi atan dan atand. Terdapat dua macam sintaks untuk kedua fungsi tersebut, yaitu sintak dengan argumen input tunggal (atan(n) dan atand(n)), serta sintak lainnya dengan dua argumen input (atan(y,x) dan atand(y,x)).
Fungsi atan(n) dan atand(n) menggunakan dua kuadran dalam perhitungan nilai inverse tangen. Output dari fungsi atan(n) dan atand(n) masing-masing berada dalam interval sudut [-½, ½] radian dan [-90, 90] derajat. Fungsi atan(y,x) dan atand(y,x) menggunakan empat kuadran dalam perhitungan nilai inverse tangen. Output dari fungsi atan(y,x) dan atand(y,x) masing-masing berada dalam interval sudut [-, ] radian dan [-180, 180] derajat.