Pengenalan Scilab Perangkat Lunak Gratis untuk Komputasi Numerik dan Visualisasi Data
Saifuddin Arief
ii
Untuk kedua anakku:
Izzuddin dan Hanif
iii
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
iv
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
v
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
vi
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
vii
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
viii
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
ix
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
x
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
xi
Daftar Pustaka 309
Bab 1
Pendahuluan
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.
Pendahuluan - 2
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.
Pendahuluan - 3
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.
Pendahuluan - 4
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.
Pendahuluan - 5
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
Dasar-Dasar Penggunaan Scilab - 7
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.
Dasar-Dasar Penggunaan Scilab - 8
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.
Dasar-Dasar Penggunaan Scilab - 9
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.
Dasar-Dasar Penggunaan Scilab - 10
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 (%, _, #, $, ?).
Dasar-Dasar Penggunaan Scilab - 11
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.
Dasar-Dasar Penggunaan Scilab - 12
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.
Dasar-Dasar Penggunaan Scilab - 13
-->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
Dasar-Dasar Penggunaan Scilab - 14
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
Dasar-Dasar Penggunaan Scilab - 15
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.
Dasar-Dasar Penggunaan Scilab - 16
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:
xxxf 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 .
Dasar-Dasar Penggunaan Scilab - 17
-->[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 xxxf sin)( 2 .
-->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
Dasar-Dasar Penggunaan Scilab - 18
-->[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.
Dasar-Dasar Penggunaan Scilab - 19
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.
Dasar-Dasar Penggunaan Scilab - 20
-->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
Dasar-Dasar Penggunaan Scilab - 21
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
Dasar-Dasar Penggunaan Scilab - 22
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
Dasar-Dasar Penggunaan Scilab - 23
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
Dasar-Dasar Penggunaan Scilab - 24
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.
Matematika Dasar - 26
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.
Matematika Dasar - 27
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
Matematika Dasar - 28
Misalkan d adalah letak resultan gaya dari titik A, maka d dapat dihitung dengan formula
sebagai berikut:
R
xFxFxFd CCBBAA
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:
rRI
dimana adalah gaya gerak listrik, r adalah tahanan internal dan R adalah tahanan luar.
Matematika Dasar - 29
Beda tegangan (V) yang terdapat di antara terminal baterei dapat dihitung dengan formula
sebagai berikut:
IrV
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;
Matematika Dasar - 30
-->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)
Matematika Dasar - 31
-->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
Matematika Dasar - 32
-->-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.
Matematika Dasar - 33
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:
Matematika Dasar - 34
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.
Matematika Dasar - 35
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.
Matematika Dasar - 36
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
xsign
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
Matematika Dasar - 37
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.
Matematika Dasar - 38
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.
Matematika Dasar - 39
Tabel 3.5 Fungsi-Fungsi Trigonometri
Fungsi Deskripsi
sin Sinus (radian)
sind Sinus (derajat)
cos Cosinus (radian)
cosd Cosinus (derajat)
tan Tangen (radian)
tand Tangen (derajat)
cotg Cotangen (radian)
asin Inverse sinus (radian)
asind Inverse sinus (derajat)
acos Inverse cosinus (radian)
acosd Inverse cosinus (derajat)
atan Inverse tangen (radian)
atand Inverse tangen (derajat)
Contoh-contoh penggunaan fungsi-fungsi trigonometri adalah sebagai berikut:
-->sin(%pi/3) ans = 0.8660254 -->cosd(45) ans = 0.7071068 -->tan(%pi/4) ans = 1.
Berikut ini adalah beberapa contoh pengunaan fungsi-fungsi inverse trigonometri.
-->acosd(0.5*sqrt(2)) ans = 45.
Matematika Dasar - 40
-->4*atan(1) ans = 3.1415927 -->atan(-1,1) ans = - 0.7853982
Contoh 7. Sebuah peluru ditembakkan dari sebuah meriam dengan kecepatan awal 72
m/detik dan sudut kemiringan terhadap bidang horisontal adalah 60 derajat. Tentukan
jarak jangkauan peluru tersebut ?
Penyelesaian. Jarak jangkauan (r) peluru dapat dihitung dengan formula sebagai berikut:
( )
dimana vo adalah kecepatan awal, adalah sudut tembakan, g adalah percepatan gravitasi.
Statemen-statemen untuk menghitung jarak jangkauan peluru adalah sebagai berikut:
-->v0 = 72; // kecepatan awal (m/detik) -->theta = 60; // sudut tembakan (derajat) -->g = 9.81; // percepatan gravitasi (m/detik^2) -->r = v0^2*sind(2*theta)/g // jangkauan peluru (m) r = 457.64278
Jadi jangkauan peluru adalah sejauh 457.6 m.
Contoh 8. Dengan mengacu pada Gambar 3.2, tentukan besarnya gaya F yang harus
dikerjakan pada ujung pengungkit sehingga dihasilkan momen pada titik O sebesar 15 Nm
yang bekerja searah jarum jam? Diketahui = 60o, = 30o, a = 50 mm, serta b = 300 mm.
Matematika Dasar - 41
Gambar 3.2
Penyelesaian. Momen yang dihasilkan oleh gaya F yang bekerja pada pengungkit adalah:
cossinsincos bFbaFM
Dari persamaan ini diperoleh besarnya gaya F untuk menghasilkan momen M yaitu"
cossinsincos bbaM
F
Berikut ini adalah statemen-statemen Scilab untuk menghitung gaya F.
-->M = 15; // Nm -->phi = 60; // derajat -->theta = 30; // derajat -->a = 0.05; // m -->b = 0.30; // m -->F = M/(cosd(theta)*(a + b*sind(phi)) - b*sind(theta)*cosd(phi)) F = 77.599076
Jadi gaya yang diperlukan untuk menghasilkan momen sebesar 15 Nm adalah 77.6 N.
Matematika Dasar - 42
Hiperbolik
Daftar dari fungsi-fungsi hiperbolik dan inverse hiperbolik yang terdapat di dalam Scilab
dapat dilihat pada tabel di bawah ini.
Tabel 3.6 Fungsi-Fungsi Hiperbolik dan Inverse Hiperbolik
Fungsi Deskripsi
sinh Sinus hiperbolik
cosh Cosinus hiperbolik
tanh Tangen hiperbolik
coth Cotangen hiperbolik
asinh Inverse sinus hiperbolik
acosh Inverse cosinus hiperbolik
atanh Inverse tangen hiperbolik
Berikut ini adalah ilustrasi penggunaan fungsi-fungsi hiperbolik dan inverse hiperbolik.
-->sinh(2) ans = 3.6268604 -->tanh(0.5 + 2.5*%i) ans = 0.6433315 - 0.5249367i -->asinh(3.5) ans = 1.9657205
Contoh 9. Sebuah kabel optik tergantung pada tiang-tiang dimana ujung-ujung pada setiap
bentangnya membentuk sudut terhadap horisontal (Gambar 3.3). Tentukan tegangan
minimum yang bekerja pada kabel dan tinggi maksimum lendutannya? Diketahui kabel
optik mempunyai kerapatan massa 0.9 kg/m dan jarak antar tiang adalah 30 m.
Matematika Dasar - 43
Gambar 3.3
Penyelesaian. Tegangan tarik maksimum (Tmax) yang bekerja pada kabel dan tinggi
lendutan maksimum (h) dapat ditentukan dengan rumus-rumus sebagai berikut
tanasinh2
aw
FH
cosmaxHFT
12coshH
H
F
aw
w
Fh
gw
Dimana: FH adalah tegangan tarik horisontal yang bekerja pada kabel optik
Tmax adalah tegangan tarik maksimum yang bekerja pada kabel optik
h adalah panjang lendutan maksimum
a adalah jarak antara tiang
w adalah berat satuan kabel
adalah kerapatan massa (density) kabel
g adalah percepatan gravitasi
Perhitungan tegangan tarik maksium (Tmax) yang bekerja pada kabel dan tinggi lendutan
maksimum (h) adalah sebagai berikut.
Matematika Dasar - 44
-->g = 9.81; // percepatan gravitasi (m/s^2) -->rho = 0.9; // density kabel (kg/m) -->w = rho*g; // berat satuan kabel; -->theta = 22/180*%pi; // sudut kemiringan pd ujung kabel (rad) -->a = 30; // jarak antar tiang (m) -->FH = w*(a/2)/asinh(tan(theta)) // Gaya horisontal (N) FH = 336.32494 -->Tmax = FH/cos(theta) // Tegangan tarik maksimum pd kabel (N) Tmax = 362.73813 -->h = FH/w*(cosh(w*(a/2)/FH) - 1) // Tinggi lendutan maksimum h = 2.9916403
Jadi tegangan tarik maksimum yang bekerja pada kabel adalah 362.7 N dan tinggi lendutan
maksimum pada bagian tengah kabel adalah 2.99 m.
Eksponensial dan Logaritma
Daftar dari fungsi-fungsi exponensial dan logaritma yang terdapat terpasang di dalam
Scilab diberikan pada Tabel 3.7.
Tabel 3.7 Fungsi-Fungsi Exponensial dan Logaritma
Fungsi Deskripsi
exp Exponensial
nextpow2 Pangkat dua terbesar selanjutnya
log Logaritma alami
log2 Logaritma base 2
log10 Logaritma base 10
Matematika Dasar - 45
Deskripsi mengenai fungsi-fungsi tersebut adalah sudah jelas dari deskripsi yang diberikan
pada Tabel 3.7 kecuali untuk fungsi nextpow2. Fungsi nextpow2(x) adalah suatu fungsi
yang digunakan untuk menghitung suatu bilangan integer n terkecil yang memenuhi
persyaratan 2n |x|.
Contoh penggunaan fungsi-fungsi exponensial dan logaritma adalah sebagai berikut:
-->exp(2.5) ans = 12.182494 -->log(10) ans = 2.3025851 -->log10(0.001) ans = - 3. -->nextpow2(20) ans = 5.
Contoh 10. Anggap suatu minuman kopi mempunyai kandungan ion hidrogen sebanyak
1.210-6 mol/Liter. Tentukan berapakah nilai pH-nya ?
Penyelesaian. Nilai pH suatu zat dapat ditentukan dengan formula sebagai berikut:
HpH 10log dimana [H+] adalah konsentrasi dari ion hidrogen dalam satuan mol/Liter. Maka nilai pH
dari minuman kopi dapat dihitung sebagai berikut:
-->kopi = 1.2E-6; // kandungan ion hidrogen dalam kopi -->pH_kopi = -log10(kopi) pH_kopi = 5.9208188
Jadi nilai pH kopi adalah sekitar 5.9.
Matematika Dasar - 46
Contoh 11. Jumlah penduduk dunia pada awal tahun 1990 diperkirakan adalah sekitar 5.3
milyar dengan laju pertambahan penduduk sekitar 2% per tahun. Dengan mengunakan
asumsi bahwa pertumbuhan populasi penduduk akan bertambah secara eksponensial,
maka perkirakan jumlah penduduk dunia pada awal tahun 2015 ?
Penyelesaian. Jumlah penduduk pada awal suatu tahun tertentu dapat dihitung dengan
persamaan sebagai berikut:
kt
oeyy
dimana yo adalah jumlah penduduk pada awal tahun 1990 (dalam satuan milyar), k adalah
laju pertambahan penduduk dan t adalah perbedaan waktu sejak tahun 1990 (dalam
satuan tahun).
Perhitungan jumlah penduduk dunia pada awal tahun 2015 dapat diselesaikan dengan
perintah-perintah sebagai berikut:
-->y0 = 5.3; // jumlah penduduk pada awal th 1990 (milyar) -->k = 0.02; // laju pertumbuhan pertahun -->t = 20151990; // selang waktu sejak awal th 1990 (tahun) -->y = y0*exp(k*t) // jumlah penduduk pada awal th 2015 (milyar) y = 8.7382227
Jadi jumlah penduduk dunia pada awal tahun 2015 adalah sebanyak 8.73 milyar.
Faktorial
Notasi matematika untuk faktorial dari suatu bilangan bulat n adalah n!. Di dalam Scilab,
nilai faktorial dari suatu bilangan dapat dihitung dengan menggunakan fungsi factorial,
seperti yang ditunjukkan pada contoh di bawah ini:
-->factorial(6) ans = 720.
Matematika Dasar - 47
Contoh 12. Sebuah panitia yang terdiri dari tiga orang akan diambil dan dibentuk dari
delapan orang. Tentukan berapa banyak kombinasi panitia yang dapat dibentuk apabila
satu orang hanya dapat masuk sekali saja dalam satu grup?
Penyelesaian. Jumlah kombinasi panitia yang dapat dibentuk dapat dihitung dengan
rumus sebagai berikut:
( )
dimana n adalah jumlah orang yang akan dipilih dan k adalah jumlah anggota panitia. Jadi,
jumlah kombinasi panitia yang dapat dibentuk adalah
-->K = factorial(8)/(factorial(3)*factorial(8-3)) K = 56.
Bilangan Kompleks
Misalkan z adalah bilangan kompleks z = x + iy, dimana i adalah simbol bilangan imajiner
1 , maka bilangan kompleks z di dalam Scilab dapat dinyatakan sebagai berikut:
z = x + y*%i atau z = x + %i*y
Sebagai contoh, notasi untuk bilangan kompleks z = 2 3i adalah sebagai berikut:
-->z = 2 - 3*%i z = 2. - 3.i
Operasi Aritmatika terhadap Bilangan Kompleks
Operasi aritmatika terhadap suatu bilangan kompleks dapat dilakukan dengan
menggunakan notasi yang sama seperti notasi pada bilangan real. Berikut ini beberapa
contoh operasi aritmatika terhadap bilangan kompleks.
-->x = 1 - 3*%i; -->y = -2 + %i*5; -->p = x + y p = - 1. + 2.i
Matematika Dasar - 48
-->q = x - y q = 3. - 8.i -->r = x*y r = 13. + 11.i -->r/x ans = - 2. + 5.i
Komponen Real dan Imajiner.
Komponen real dan imajiner dari suatu bilangan kompleks dapat diekstrak dengan
menggunakan fungsi real dan imag, seperti pada contoh di bawah ini.
-->x = 3 + 4*%i; -->real(x) ans = 3. -->imag(x) ans = 4.
Conjugate Bilangan Kompleks.
Jika z = x + iy maka conjugate untuk bilangan compleks tersebut didefiniskan sebagai
.
Conjugate suatu bilangan kompleks dapat dihitung dengan fungsi conj, seperti pada contoh
di bawah ini.
-->w = 8 + 10*%i; -->conj(w) ans = 8. - 10.i
Matematika Dasar - 49
Modulus Bilangan Kompleks
Modulus atau nilai mutlak dari bilangan z = x + iy didefinisikan sebagai berikut
| |
Modulus bilangan kompleks dapat kita hitung dengan fungsi abs.
-->v = 12 - 5*%i; -->abs(v) ans = 13.
Bentuk Polar dari Bilangan Kompleks
Selain dalam notasi kartesian (x, y) sebuah bilangan komplek z = x + iy juga dapat
dinyatakan dengan notasi koordinat polar (r, ) sebagai berikut:
( ( ) ( ))
dimana:
(
)
Seperti yang diilustrasikan pada gambar di bawah ini.
Gambar 3.4 Ilustrasi Bentuk Polar dari Bilangan Kompleks
Sebagai contoh, bilangan kompleks z = -3 + 4i dapat dirubah ke dalam bentuk polar dengan
perhitungan sebagai berikut.
-->z = -3 + 4*%i; -->r = abs(z) r = 5.
Matematika Dasar - 50
-->theta = atand(imag(z),real(z)) // derajat theta = 126.8699
Jadi bentuk polar untuk bilangan kompleks z = -3 + 4i adalah
z = 5 (cos(126.9o) + i sin(126.9o))
Notasi Eksponensial untuk Bentuk Polar
Dengan menggunakan identitas Euler: ( ) ( ). Bilangan komplek
( ( ) ( )) juga dapat dinyatakan dalam notasi ekponensial . Dalam
notasi ini sudut harus dinyatakan dalam satuan radian.
Berikut ini adalah ilustrasi penulisan bilangan kompleks dalam notasi eksponensial.
-->z = -3 + 4*%i; -->r = abs(z) r = 5. -->theta = atan(imag(z),real(z)) // radian theta = 2.2142974 -->r*exp(theta*%i) ans = - 3. + 4.i
Terlihat bahwa statemen 5*exp(2.21*%i) ekuivalen dengan statemen -3 + 4*%i.
Bab 4
Matrik dan Vektor
Definisi Matrik dan Vektor
Semua tipe data di dalam Scilab dianggap berupa suatu matrik. Matrik adalah sebuah larik
data segiempat yang terdiri dari beberapa baris dan kolom. Vektor dan skalar merupakan
bentuk khusus dari matrik. Vektor adalah sebuah matrik yang hanya mempunyai satu baris
(vektor baris) atau satu kolom (vektor kolom) kemudian skalar adalah sebuah matrik yang
hanya terdiri dari satu elemen saja.
Berikut ini adalah ilustrasi mengenai obyek skalar, vektor dan matrik.
-->a = 123 // skalar
a = 123. -->v = [1 2 3 4 5] // vektor baris (1 x 5) v = 1. 2. 3. 4. 5. -->w = [4; 4; 2] // vektor kolom (3 x 1) w = 4. 4. 2. -->M = [1 3 5; 2 4 6] // matrik (2 x 3) M = 1. 3. 5. 2. 4. 6.
Matrik dan Vektor - 52
Pembuatan Vektor dan Matrik Secara Manual
Suatu vektor atau matrik dapat dibuat secara manual dengan menggunakan operator
kurung-siku kanan ([) dan operator kurung-siku kiri (]).
Elemen-elemen suatu vektor dapat dipisahkan dengan menggunakan tanda spasi, koma (,)
atau titik koma (;). Jika elemen-elemen vektor dipisahkan dengan tanda spasi atau koma
maka yang dihasilkan adalah suatu vektor baris, namun jika elemen-elemen vektor
dipisahkan dengan titik-koma maka yang akan dihasilkan adalah suatu vektor kolom.
-->v1 = [1, 3, 9] v1 = 1. 3. 9. -->v2 = [2 4 6] v2 = 2. 4. 6. -->v3 = [10; 11; 12] v3 = 10. 11. 12.
Dalam pembuatan suatu matrik, elemen-elemennya harus dimasukkan secara perbaris.
Elemen-elemen yang terdapat dalam satu baris yang sama dapat dipisahkan dengan tanda
spasi atau tanda koma. Kemudian diantara suatu baris dengan baris lainnya dapat
dipisahkan dengan tanda titik-koma atau dengan tombol ENTER.
-->A = [9 7 5; 1 4 3] A = 9. 7. 5. 1. 4. 3. -->B = [1 2 4 [Enter] --> 2 4 8 [Enter] --> 3 6 12] B = 1. 2. 4. 2. 4. 8. 3. 6. 12.
Matrik dan Vektor - 53
Elemen matrik yang terdapat pada setiap baris harus sama jumlahnya. Jika hal ini tidak
dipenuhi maka akan muncul sebuah pesan kesalahan, seperti yang pada contoh berikut ini.
-->X = [1 2 3; 4 5 6 7; 8 9 10] !--error 6 inconsistent row/column dimensions
Suatu ekspresi matematika juga dapat digunakan sebagai nilai suatu dari elemen vektor
atau matrik, seperti pada contoh di bawah ini:
-->D = [(1+2) 3*4; exp(1) log(10)] D = 3. 12. 2.7182818 2.3025851
Vektor Inkremental
Vektor inkremental adalah suatu vektor baris dimana nilai dari setiap elemennya
bertambah atau berkurang secara konstan terhadap elemen sebelumnya. Suatu vektor
inkremental dibuat dengan operator titik-dua () sebagai berikut.
x = j:k
x = j:d:k
Statemen j:k akan menghasilkan sebuah vektor baris dimana nilai elemen pertamanya
adalah j, nilai elemen berikutnya adalah j+1 dan seterusnya sampai nilai elemen terakhir
nilainya sama dengan k atau suatu nilai inkremental terbesar yang lebih kecil dari k.
Apabila nilai indek j lebih besar dari indek k maka statemen j:k akan menghasilkan
sebuah vektor kosong.
-->tahun = 2011:2016 tahun = 2011. 2012. 2013. 2014. 2015. 2016.
Statemen j:d:k akan menghasilkan sebuah vektor baris dimana nilai elemen pertamanya
adalah j, nilai elemen berikutnya adalah j+d, dan seterusnya sampai diperoleh suatu
elemen yang nilai nilainya sama dengan k atau suatu nilai inkremental terbesar yang lebih
kecil dari k. Nilai d dapat berupa suatu bilangan desimal positif maupun desimal negatif.
Namun bila d bernilai negatif maka nilai j harus lebih besar daripada k.
Matrik dan Vektor - 54
-->xpts = 0:.25:2 xpts = 0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. -->y = 10:-2:1 y = 10. 8. 6. 4. 2.
Fungsi-Fungsi untuk Membuat Suatu Vektor
Terdapat dua fungsi yang dapat digunakan untuk membuat suatu vektor baris inkremental
yaitu linspace dan logspace.
Linspace
Fungsi linspace mempunyai sintaks sebagai berikut:
X = linspace(n_awal, n_akhir, npts)
Output dari fungsi linspace adalah sebuah vektor baris yang mempunyai elemen sebanyak
npts dimana elemen-elemen tersebut mempunyai jarak linier yang seragam yang nilainya
terletak diantara n_awal dan n_akhir. Argumen npts bersifat opsional jika tidak digunakan
maka jumlah elemen yang dihasilkan adalah sebanyak 100 elemen.
Berikut ini contoh penggunaan fungsi linspace.
-->a = linspace(1,2,4) a = 1. 1.333 1.667 2. -->b = linspace(4,0,5) b = 4. 3. 2. 1. 0.
Logspace
Sintak dari fungsi logspace adalah sebagai berikut:
X = logspace(n_awal, n_akhir, npts)
Output dari fungsi logspace adalah sebuah vektor baris yang mempunyai elemen sebanyak
npts dimana elemen-elemen tersebut mempunyai jarak logaritmik yang seragam yang
Matrik dan Vektor - 55
nilainya terletak diantara 10n_awal dan 10n_akhir. Apabila argumen n_akhir berupa %pi maka
nilai dari elemen terakhir adalah bukan 10. Argumen npts bersifat opsional jika tak
digunakan maka jumlah elemen yang dihasilkan adalah sebanyak 50 elemen.
Ilustrasi penggunaan fungsi logspace adalah sebagai berikut:
-->x = logspace(1,2,4) x = 10. 21.544347 46.415888 100.
Fungsi-Fungsi untuk Membuat Suatu Matrik
Scilab juga menyediakan fungsi-fungsi yang dapat digunakan untuk membuat beberapa
matrik khusus. Fungsi-fungsi tersebut yaitu ones, zeros, eye, diag dan rand.
Ones
Fungsi ones(m,n) akan menghasilkan suatu matrik berukuran m n dimana semua
elemennya mempunyai nilai satu.
-->A = ones(3,4) A = 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. -->B = ones(3,1) B = 1. 1. 1.
Fungsi ones juga dapat menerima argumen berupa suatu matrik. Statemen ones(X) akan
menghasilkan suatu matrik satuan yang berukuran sama dengan matrik X.
-->C = [4 5 1; 4 4 2]; -->D = ones(C) D = 1. 1. 1. 1. 1. 1.
Matrik dan Vektor - 56
Zeros
Fungsi zeros(m,n) akan menghasilkan suatu matrik berukuran m n dimana semua
elemennya mempunyai nilai nol.
-->X = zeros(2,3) X = 0. 0. 0. 0. 0. 0.
Argumen dari fungsi zeros juga dapat berupa suatu matrik. Fungsi zeros(X) akan
menghasilkan suatu matrik nol yang berukuran sama dengan matrik X.
Eye
Fungsi eye(m,n) akan menghasilkan suatu matrik identitas yang berukuran m n.
-->I = eye(3,3) I = 1. 0. 0. 0. 1. 0. 0. 0. 1. -->J = eye(2,5) J = 1. 0. 0. 0. 0. 0. 1. 0. 0. 0.
Fungsi eye juga dapat menerima argumen berupa suatu matrik. Statemen eye(X) akan
menghasilkan suatu matrik identitas yang berukuran sama dengan matrik X.
Rand
Fungsi rand dapat digunakan untuk membuat suatu matrik yang elemen-elemennya
merupakan bilangan random. Sintak dari fungsi rand adalah sebagai berikut:
A = rand(m,n,dist)
A = rand(X,dist)
dimana m dan n adalah jumlah baris dan kolom matrik yang akan dibuat, X adalah
sembarang matrik dan dist adalah distribusi dari bilangan random. Apabila argumen
fungsi rand berupa suatu matrik X maka matrik bilangan random yang dihasilkannya akan
Matrik dan Vektor - 57
mempunyai dimensi yang sama dengan dimensi matrik X.
Terdapat dua pilihan untuk argumen dist yaitu:
'uniform' untuk membuat bilangan random yang mempunyai distribusi seragam
dalam range [0,1]
'normal' untuk membuat bilangan random yang mempunyai distribusi normal
dengan nilai rata-rata 0 dan deviasi standar 1.
Argumen dist bersifat opsional apabila tidak dipergunakan maka bilangan random akan
dibuat dengan menggunakan distribusi seragam.
Berikut ilustrasi dari fungsi rand.
-->x = rand(2,4) x = 0.8782165 0.5608486 0.7263507 0.5442573 0.0683740 0.6623569 0.1985144 0.2320748 -->Y = rand(3,3,'normal') Y = - 0.1884803 - 1.3874078 0.0698768 0.4241610 2.7266682 - 2.8759126 - 1.0327357 - 0.7123134 - 1.3772844
Diag
Fungsi diag dapat digunakan untuk membuat sebuah matrik diagonal. Misalkan v adalah
sebuah vektor maka fungsi diag(v) akan menghasilkan suatu matrik yang elemen-elemen
diagonalnya merupakan elemen-elemen dari vektor v.
-->d = [1 2 3 4]; -->D = diag(d) D = 1. 0. 0. 0. 0. 2. 0. 0. 0. 0. 3. 0. 0. 0. 0. 4.
Selain itu, fungsi diag juga dapat digunakan untuk mengekstrak elemen-elemen diagonal
suatu matrik, seperti pada contoh di bawah ini.
Matrik dan Vektor - 58
-->A = [9 8 7;6 5 4;3 2 1] A = 9. 8. 7. 6. 5. 4. 3. 2. 1. -->diag(A) ans = 9. 5. 1.
Konkatenasi
Konkatenasi merupakan operasi penggabungan beberapa vektor atau matrik sehingga
menjadi sebuah vektor atau matrik baru yang lebih besar. Seperti pada operasi pembuatan
suatu vektor atau matrik secara manual, operasi konkatenasi juga dilakukan dengan
menggunakan operator kurung-siku kanan dan operator kurung-siku kiri ([ ]).
Beberapa contoh operasi konkatenasi adalah sebagai berikut:
-->V1 = [1 2 3 4]; -->V2 = [5 6 7 8]; -->V3 = [11 12 13 14]; -->V4 = [15 16 17 18]; -->P = [V1 V2] P = 1. 2. 3. 4. 5. 6. 7. 8. -->Q = [V1 V2; --> V3 V4] Q = 1. 2. 3. 4. 5. 6. 7. 8. 11. 12. 13. 14. 15. 16. 17. 18. -->N1 = [1 2 3 4 5]; -->N2 = [10 20 30; 11 21 31]; -->N3 = eye(2,2);
Matrik dan Vektor - 59
-->N = [N1; N2 N3] N = 1. 2. 3. 4. 5. 10. 20. 30. 1. 0. 11. 21. 31. 0. 1.
Operasi konkatenasi hanya dapat dilakukan terhadap vektor-vektor atau matrik-matrik
yang mempunyai dimensi yang konsisten. Apabila persyaratan tersebut tidak dipenuhi
maka akan muncul sebuah pesan kesalahan seperti pada contoh di bawah ini.
-->A = [1 2 3]; -->B = [4 5 6 7]; -->X = [A; B] !--error 6 inconsistent row/column dimensions
Dimensi Matrik
Informasi mengenai dimensi dari suatu matrik dapat diperoleh dengan menggunakan
fungsi size yang mempunyai sintaks sebagai berikut:
[nr,nc] = size(A)
dimana nr dan nc adalah jumlah baris dan kolom dari matrik atau vektor A. Fungsi size juga
dijalankan dengan argumen output tunggal, sebagai berikut:
n = size(A)
Output dari sintak ini adalah suatu vektor baris, dimana elemen pertama dan keduanya
masing-masing menyatakan jumlah baris dan jumlah kolom matrik A.
Berikut ini contoh penggunaan fungsi size.
-->A = [1 1 0 1; 1 0 2 0; 0 -2 2 -4]; -->[nr,nc] = size(A) nc = 4. nr = 3.
Matrik dan Vektor - 60
Jumlah semua elemen yang terdapat pada suatu vektor atau matrik dapat diketahui dengan
menggunakan fungsi length, seperti yang ditunjukkan pada contoh-contoh di bawah ini.
-->length(a) ans = 5. -->length(A) ans = 12.
Merubah Dimensi Matrik
Suatu matrix dapat dirubah dimensinya dengan fungsi matrix dengan sintaks sebagai
berikut:
matrix(A, m, n)
dimana A adalah matrik yang akan dirubah dimensinya, kemudian m dan n adalah ukuran
dimensi dari matrik yang baru. Jika yang dirubah dimensi baris atau kolomnya saja maka
angka -1 digunakan sebagai nilai argumen untuk dimensi lainnya yang tidak ditentukan.
Berikut ini ilustrasi penggunaan fungsi matrix.
-->V = 1:12; -->M = matrix(V,3,4) M = 1. 4. 7. 10. 2. 5. 8. 11. 3. 6. 9. 12. -->A = [1:4 ; 5:8 ; 9:12] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. -->B = matrix(A, 2, 6) B = 1. 9. 6. 3. 11. 8. 5. 2. 10. 7. 4. 12.
Matrik dan Vektor - 61
-->C = matrix(A, -1, 4) C = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Dimensi dari matrik yang dihasilkan oleh fungsi matrix harus sesuai atau kompatibel
dengan dimensi dari matrik lama. Apabila persyaratan ini tidak dipenuhi maka akan
muncul suatu pesan kesalahan seperti pada contoh di bawah ini.
-->X = matrix(A,5,3) !--error 60 argument with incompatible dimensions
Mengekstrak Elemen-Elemen Suatu Vektor
Elemen ke-i dari suatu vektor v dapat diekstrak dengan notasi sebagai berikut:
v(i)
Pada operasi ini, simbol $ dapat digunakan untuk menyatakan indek dari elemen yang
terakhir. Berikut ini ilustrasi proses ekstrasi elemen-elemen suatu vektor.
-->a = [1 3 5 7 9]; -->a(2) ans = 3. -->a($) ans = 9.
Semua elemen vektor yang terletak pada indek ke-i sampai ke-j dapat diekstrak dengan
cara sebagai berikut.
v(i:j)
Elemen-elemen vektor yang letaknya tidak berurutan juga dapat diekstrak dengan
menggunakan notasi sebagai berikut:
v([i k p . . .])
dimana i, k, p adalah letak atau indek dari elemen-elemen yang akan diekstrak.
Matrik dan Vektor - 62
Berikut ilustrasi proses ekstraksi beberapa elemen vektor sekaligus.
-->a = [1 3 5 7 9]; -->b = a(2:4) b = 3. 5. 7. -->c = a([5 1 3]) c = 9. 1. 5.
Mengekstrak Elemen-Elemen Suatu Matrik
Elemen yang terletak pada baris ke-m dan kolom ke-n dari suatu matrik X dapat diekstrak
dengan notasi sebagai berikut:
X(m,n)
Pada operasi ini, simbol $ dapat digunakan untuk menyatakan baris terakhir atau kolom
terakhir.
Berikut ini beberapa contoh proses ekstraksi elemen-elemen suatu matrik.
-->A = [1 2 3; 4 5 6; 7 8 9] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. -->a12 = A(1,2) a12 = 2. -->b = A(2,$) b = 6. -->A($,$) ans = 9.
Matrik dan Vektor - 63
Elemen-elemen matrik X yang terletak pada baris ke-i dapat diekstrak dengan sintaks
sebagai berikut:
X(i,:)
Kemudian untuk mengekstrak semua elemen matrik X yang terletak pada kolom ke-j
sintaknya adalah sebagai berikut.
X(:,j).
Berikut ini ilustrasi ekstraksi elemen-elemen matrik yang terletak pada suatu baris atau
kolom tertentu.
-->A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. -->A(3,:) ans = 9. 10. 11. 12. -->A(:,$) ans = 4. 8. 12. 16.
Elemen-elemen matrik X yang terletak pada baris ke-i sampai baris ke-j serta kolom ke-m
sampai kolom ke-n dapat diekstrak dengan sintaks sebagai berikut:
X(i:j, m:n)
Pada operasi ini, simbol titik-dua (:) juga dapat digunakan untuk menyatakan elemen-
elemen yang terletak pada semua baris atau semua kolom yang dimaksud.
-->A(2:3, 2:4) ans = 6. 7. 8. 10. 11. 12.
Matrik dan Vektor - 64
-->A(3:4, :) ans = 9. 10. 11. 12. 13. 14. 15. 16.
Beberapa elemen matrik yang letaknya tidak berurutan dapat diekstrak secara serentak
dengan sintaks sebagai berikut:
X([p q ...], [r s ...])
dimana p q ... adalah indek untuk posisi baris, kemudian r s ... adalah indek untuk
posisi kolom.
-->A([1 2], [2 4]) ans = 2. 4. 6. 8.
Elemen-elemen matrik yang diekstrak harus berada di dalam dimensi matrik. Apabila
elemen yang diekstrak berada di luar dari dimensi matrik maka akan muncul sebuah pesan
kesalahan seperti pada contoh di bawah ini.
-->A(4,5) !--error 21 invalid index
Merubah Nilai Elemen Suatu Vektor atau Matrik
Elemen-elemen yang terdapat pada sebuah matrik atau vektor juga dapat dirubah nilainya
dengan menggunakan statemen penugasan, seperti yang terlihat pada contoh-contoh di
bawah ini.
-->x = [1 2 4 6]; -->x(2) = 3 x = 1. 3. 4. 6. -->x($) = 12 x = 1. 3. 4. 12.
Matrik dan Vektor - 65
-->A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. -->A(4,4) = 0 A = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 0. -->A(2,:) = [0 1 0 0] A = 1. 2. 3. 4. 0. 1. 0. 0. 9. 10. 11. 12. 13. 14. 15. 0. -->A(3:4, 1:3) = zero(2,3) A = 1. 2. 3. 4. 0. 1. 0. 0. 0. 0. 0. 12. 0. 0. 0. 0.
Seperti yang terlihat pada contoh-contoh di atas, notasi untuk menyatakan indek dari
elemen-elemen matrik atau vektor yang akan dirubah nilainya adalah sama seperti notasi
yang digunakan pada proses ekstraksi elemen-elemen matrik atau vektor.
Apabila indek atau posisi dari elemen yang akan dirubah nilainya berada di luar dari
dimensi matrik atau vektor maka dimensi dari matrik atau vektor akan bertambah secara
otomatis. Pada operasi ini elemen-elemen baru lainnya yang nilainya tidak didefinisikan
akan diisi dengan nilai nol.
-->X = [1 2 3 4]; -->X(7) = 7 X = 1. 2. 3. 4. 0. 0. 7.
Matrik dan Vektor - 66
-->Z = ones(3,3); -->Z(3,5) = 2 Z = 1. 1. 1. 0. 0. 1. 1. 1. 0. 0. 1. 1. 1. 0. 2.
Menghapus Elemen-Elemen Suatu Vektor atau Matrik
Elemen-elemen yang terdapat pada suatu vektor atau matrik dapat dihapus sehingga
menjadi sebuah vektor atau matrik baru yang lebih kecil. Notasi posisi elemen-elemen
vektor atau matriks adalah sama seperti notasi pada proses ekstraksi elemen-elemen
vektor atau matrik.
Berikut ini beberapa contoh operasi penghapusan elemen-elemen suatu vektor atau
matrik.
-->A = [1 2 3 4 5 6 7]; -->A(4) = [ ] A = 1. 2. 3. 5. 6. 7. -->xyz = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] xyz = 16. 3. 2. 13. 5. 10.