TUTORIAL OCTAVE
sigit.adinu@ub.ac.id
MATLAB
Bahasa pemrograman proprietary yang dikembangkan oleh MathWorks
Awalnya dikhususkan untuk komputasi numerik, sebagai pengembangan dari LINPACK dan EISPACK Saat ini telah berkembang dan mendukung bidang bioinformatics, neural network, image processing, signal processing, dll
Matlab merupakan software komersial, yang
harganya ditentukan berdasarkan jumlah modul yang digunakan
GNU OCTAVE
Octave merupakan software opensource yang kompatibel dengan MATLAB
Sebagai bagian dari project GNU, Octave dapat didownload secara gratis di
https://www.gnu.org/software/octave/do wnload.html
Octave Interface
FILE BROWSER WORKSPACE COMMAND HISTORY COMMAND WINDOWOctave Interface
FILE BROWSER WORKSPACE COMMAND HISTORY SCRIPT EDITORVARIABEL
Berbeda dengan Java, variabel pada octave tidak perlu didefinisikan terlebih dahulu Variabel dapat digunakan ulang untuk tipe data yang berbeda
>> a=4 a = 4 >> b=5 b = 5 >> a='FILKOM’ a = FILKOM >>
VARIABEL
Hasil perhitungan yang tidak di assign pada suatu variabel, akan disimpan pada variabel bernama ans >> b*2 ans = 10 >> ans ans = 10 >> ans + 7 ans = 17
VARIABEL
Beberapa variabel sudah memiliki nilai default pada octave
>> pi ans = 3.1416 >> i ans = 0 + 1i >> j ans = 0 + 1i >> eps ans = 2.2204e-16 >> realmax ans = 1.7977e+308 >> realmin ans = 2.2251e-308
BUILT-IN FUNCTIONS
Octave memiliki fungsi-fungsi bawaan, diantaranya :
Nama fungsi Kegunaan
cos Cosinus dari suatu sudut (dalam satuan radian) sin Sinus dari suatu sudut (dalam satuan radian) exp Fungsi eksponensial
log Logaritma natural log10 Logaritma basis 10
abs Nilai mutlak
round Pembulatan bilangan
mod Modulo dari dua bilangan
or Operasi binary OR
Daftar lengkap fungsi dasar octave :
BUILT-IN FUNCTIONS
>> rem(20,3) ans = 2 >> ne(20,17) ans = 1 >> or(1,0) ans = 1 >> floor(9.82) ans = 9 >> abs(-123) ans = 123VEKTOR
Vektor pada octave merupakan sekumpulan angka, sama dengan struktur data array pada Java. Vektor dapat berbentuk vektor kolom maupun vektor baris
>> v1=[1 7 5 3.14e3] v1 = 1 7 5 3140 >> v2 = [2;4;6;8] v2 = 2 4 6 8 >> v3 = [v1 10:15] v3 = 1 7 5 3140 10 11 12 13 14 15 >> v3(3) %mengakses elemen ke 3 ans = 5
v1 merupakan vektor baris
OPERASI VEKTOR
>> v4 = v1 * 3 v4 = 3 21 15 9420 >> v5 = v2‘ v5 = 2 4 6 8 >> v1 * v5error: operator *: nonconformant arguments (op1 is 1x4, op2 is 1x4)
>> v1 .* v5
ans = 2 28 30 25120 >> dot(v1,v5)
MATRIKS
>> m1 = [1, 6, 3; 2, 7, 4] m1 = 1 6 3 2 7 4 >> m2 = [2 7;8 3; 5 9] m2 = 2 7 8 3 5 9 >> m1(2,3) ans = 4 >> m2(2,:) ans = 8 3 >> m1([1,2],[2]) ans = 6 7OPERASI MATRIKS
>> m1 + m2‘ %penjumlahan per elemenans = 3 14 8 9 10 13
>> m1 * 3 %perkalian matriks dengan skalar ans = 3 18 9
6 21 12 >> m1 * m2‘
error: operator *: nonconformant arguments (op1 is 2x3, op2 is 2x3)
>> m1 .* m2‘ %perkalian per elemen ans = 2 48 15
OPERASI MATRIKS
>> m1 * m2 %perkalian 2 buah matriksans = 65 52 80 71
>> size(m1) %ukuran matriks (jumlah baris dan kolom)
ans = 2 3
>> inv(m2([1,2],[1,2]))
ans = -0.060000 0.140000 0.160000 -0.040000
FUNGSI DASAR MATRIKS
Nama Fungsi Kegunaan contoh
eye Membuat matriks identitas eye(3,2)
zeros Membuat matriks dengan semua elemen berisi angka 0 zeros(5,3) ones Membuat matriks dengan semua elemen berisi angka 1 ones(2,4) rand Membuat matriks dengan semua elemen berisi angka acak rand(4,3)
inv Nilai inverse dari sebuah matriks inv(m1)
det Nilai deterinan dari sebuah matriks det(m2)
trace Menghitung jumlah diagonal dari suatu matriks trace(m1) eig Menghitung nilai eigenvector dan eigenvalue dari suatu
matriks eig(m1)
svd Menghitung nilai SVD dari suatu matriks svd(m1)
SELEKSI
Seleksi percabangan pada octave dapat dilakukan menggunakan if…else... atau switch If…else... switch if expression statements elseif expression statements else statements endif switch x case x1 statements case x2 statements otherwise statements endswitch
SELEKSI
> nilai = 67; >> if nilai > 80 nilaiHuruf = 'A'; elseif nilai > 75 nilaiHuruf = 'B+'; elseif nilai > 69 nilaiHuruf = 'B'; elseif nilai > 60 nilaiHuruf = 'C+'; elseif nilai > 55; nilaiHuruf = 'C‘; else nilaiHuruf ='D+'; endif >> nilaiHuruf nilaiHuruf = C+SELEKSI
>> x = input('Masukkan angka : '); Masukkan angka : 2.5 >> switch x case -1 disp('Minus satu'); case 1 disp('Satu'); case 0 disp('Nol'); otherwise disp('Angka lainnya'); endswitch Angka lainnyaPERULANGAN
Perulangan pada octave dapat dilakukan menggunakan for atau while atau do…until
Variabel values pada for loop bertipe vektor
for while do…until
for index = values
statements endfor while expression statements endwhile do statements until (condition)
FOR
loop
>> x = [1.2, 6.3, 7.8, 3.6];>> sum=0;
>> for value = x
sum = sum + value; endfor
>> sum
sum = 18.900
>> meanValue = sum/length(x) meanValue = 4.7250
FOR
loop
%jumlah bilangan bulat antara 0 sampai 10 >> for x = 0:2:10
sum=sum+x; endfor
>> sum
WHILE
loop
>> x=1; >> while x < 1000 disp(x); x = x*2; endwhiledo...until
>> x=1; >> do disp(x); x = x*2; until (x>1000)FUNGSI POLYNOMIAL
Octave mampu menyelesaikan permasalahan-permasalahan yang melibatkan persamaan polinomial.
Permasalahan yang dapat diselesaikan diantaranya adalah :
1. Mencari akar-akar persamaan
2. Evaluasi nilai persamaan
3. Turunan (derivative) dari persamaan
NOTASI FUNGSI POLYNOMIAL
Pada octave, suatu persamaan polynomial ditulis dalam bentuk vektor yang berisi koefisien-koefisien dari persamaan tersebut.
Koefisien dari persamaan polynomial disusun menurun berdasarkan pangkatnya Contoh :
1. 𝑥$ − 2𝑥' − 𝑥 + 2 dinotasikan dalam vektor [1,-2,-1,2]
2. 4𝑥* − 3𝑥' + 2𝑥 + 33 dinotasikan dalam vektor [4,0,0,-3,2,33]
>> p1 = [1,-2,-1,2];
>> p2 = [4,0,0,-3,2,33];
>> polyout(p1, 'x') %polyout digunakan untuk menampilkan notasi matematika
EVALUASI FUNGSI POLYNOMIAL
1. Berapakah nilai 𝑓 𝑥 = 𝑥$ − 2𝑥' − 𝑥 + 2 untuk x=5 ?
2. Berapakah nilai f x = 4𝑥* − 3𝑥' + 2𝑥 + 33 untuk x=7, x=3, dan x=15 ?
>> y1 = polyval(p1,5) y1 = 72
>> y2 = polyval(p2,x)
AKAR FUNGSIPOLYNOMIAL
Akar dari fungsi polynomial f(x) adalah nilai x yang memenuhi f(x) = 0 Suatu fungsi polynomial dapat memiliki satu atau lebih akar
Contoh :
1. Berapakah akar persamaan 𝑓 𝑥 = 𝑥$ − 2𝑥' − 𝑥 + 2 ?
2. Berapakah akar persamaan 𝑓 𝑥 = 𝑥$ − 3𝑥' − 2𝑥 + 6 ?
>> roots(p1) ans =
-1.00000 2.00000 1.00000
TURUNAN DAN INTEGRAL FUNGSI
1. Berapakah turunan dan integral dari fungsi 𝑓 𝑥 = 𝑥$ − 2𝑥' − 𝑥 + 2 ?
2. Berapakah turunan dan integral dari fungsi 𝑓 𝑥 = 𝑥$ − 3𝑥' − 2𝑥 + 6 ?
Turuan dari 𝑓 𝑥 = 𝑥$ − 2𝑥' − 𝑥 + 2 adalah 3𝑥' − 4𝑥 − 1 dan integralnya 0.25𝑥4 − 0.66667𝑥$ − 0.5𝑥' + 2𝑥 >> polyder(p1) ans = 3 -4 -1 >> polyint(p1) ans = 0.25000 -0.66667 -0.50000 2.00000 0.00000
PLOT
Octave memiliki fasilitas visualisasi 2D dan 3D, yang disediakan oleh library GNUPLOT
Fungsi dasar untuk membuat grafik adalah plot(x,y), dimana x dan y adalah koordinat yang akan digambar
Jika x dan y adalah skalar, hasil plot berupa titik
Jika x dan y adalah vektor (dengan jumlah elemen yang sama), maka plot yang dihasilkan berupa garis yang menghubungkan titik-titik pada vektor
>> x=[0,1,2,3]; >> y=[3,4,-1,2]; >> plot(x,y)
PLOT
Misal plot 𝑦 = 𝑥' akan dibuat dengan nilai x di antara interval 0 dan 1. Langkah-langkah :
1. Buat vektor x yang berisi nilai-nilai x. Vektor x dapat dibuat dengan fungsi
linspace(batasBawah,batasAtas,n) 2. Tentukan nilai 𝑦 = 𝑥' 3. Plot nilai x dan y >> x = linspace(0,1,11); >> y = x .^ 2; >> plot(x,y);
PLOT
Judul, label sumbu x, dan label sumbu y dapat diatur menggunakan perintah berikut :
◦ title(‘Judul plot’);
◦ xlabel(‘Label sumbu x’);
◦ ylabel(‘Label sumbu y’);
>> title('Kurva y=x^2'); >> xlabel('Nilai x');
PLOT
Warna dan style plot dapat diubah menggunakan opsi berikut
kode warna w putih m magenta c cyan r merah g hijau b biru y kuning k hitam
kode style kode style
. titik h Hexagram
o lingkaran - Garis
x silang : Titik rapat
+ plus -. Garis dan titik
* bintang -- Garis putus
s kotak
d diamond
v Segitiga bawah
PLOT
>> plot(x,y,'ro')PLOT
Satu figure pada octave mampu menampung beberapa kurva
Fungsi hold on dan hold off digunakan untuk menambahkan kurva
Untuk menggambarkan fungsi 𝑦 = 𝑥' dan 𝑦 = 𝑥$ pada satu figure, perintah yang digunakan adalah : >> x = linspace(0,1,11); >> y1 = x .^ 2; >> y2 = x .^ 3; >> plot(x,y1,'r-'); >> hold on >> plot(x,y2,'g-'); >> hold off >> legend('x^2','x^3')
PLOT
Plot yang dihasilkan melalui octave dapat disimpan dengan berbagai format
Syntax yang digunakan adalah : print(‘namafile.ekstansi’,’-d[format]’) Contoh : print('graph1.png','-dpng') Contoh format penyimpanan ps eps jpeg gif cdr png jpg svg pdf