Rabu, 05 November 2014

MATLAB



Matlab atau Matrix Laboratory  merupakan bahasa pemrograman yang hadir dengan fungsi dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu seperti Delphi, Basic maupun C++. Matlab merupakan bahasa pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi teknis, visualisasi dan pemrograman seperti komputasi matematik, analisis data, pengembangan algoritma, simulasi dan pemodelan dan grafik-grafik perhitungan.   Matlab hadir dengan membawa warna yang berbeda. Hal ini karena matlab membawa keistimewaan dalam fungsi-fungsi matematika, fisika, statistik, dan visualisasi. Matlab dikembangkan oleh MathWorks, yang pada awalnya dibuat untuk memberikan kemudahan mengakses data matrik pada proyek LINPACK dan EISPACK. Saat ini matlab memiliki ratusan fungsi yang dapat digunakan sebagai problem solver mulai dari simple sampai masalah-masalah yang kompleks dari berbagai disiplin ilmu. Matlab banyak digunakan dalam bidang fisika, matematika, analisis numerik, elektronika, pemprosesan sinyal, pemodelan, dan lain-lain. Tujuan dari modul ini hanya untuk memperkenalkan sebagian dari dasar-dasar pemrograman Matlab.
Pada antar muka awal MATLAB tersebut terdapat 3 (tiga) jendela utama yaitu jendela Current Directory, Command Window dan Command History.
1.      Current Directory
Window ini menampilkan isi dari direktori kerja saat menggunakan matlab. Kita dapat mengganti direktori ini sesuai dengan tempat direktori kerja yang diinginkan. Default dari alamat direktori berada dalam folder works tempat program files Matlab berada.
2.      Command Window
Window ini adalah window utama dari Matlab, digunakan untuk memasukkan perintah program (command) yang akan dieksekusi. Command Window merupakan jendela yang berfungsi untuk menuliskan serangkaian intruksi. Tanda >> pada Command Window merupakan penanda baris intruksi.
3.      Command History
Command History digunakan untuk melihat perintah program (command) yang yang berfungsi untuk merekam intruksi-intruksi yang pernah dituliskan
di Command Window.
4.      Workspace
Berfungsi untuk menampilkan seluruh variabel-variabel  yangsedang aktif pada saat pemakaian matlab. Apabila variabel berupa data matriks berukuran besar maka user dapat melihat isi dari seluruh data dengan melakukan double klik pada variabel tersebut. Matlab secara otomatis akan menampilkan window “array editor” yang berisikan data pada setiap variabel yang dipilih user.
1.      Getting Help
Matlab menyediakan fungsi help yang tidak berisikan tutorial lengkap mengenai Matlab dan segala keunggulannya. User dapat menjalankan fungsi ini dengan menekan tombol  pada toolbar atau menulis perintah ‘helpwin’ pada command window. Matlab juga menyediakan fungsi demos yang berisikan video tutorial matlab serta contoh-contoh program yang bisa dibuat dengan matlab.
2.      Interupting dan Terminating dalam Matlab
Untuk menghentikan proses yang sedang berjalan pada matlab dapat dilakukan dengan menekan tombol Ctrl-C. Sedangkan untuk keluar dari matlab dapat dilakukan dengan menuliskan perintah exit atau quit pada comamnd window atau dengan menekan menu exit pada bagian menu file dari menu bar.
3.      Function
Function adalah kata kunci yang digunakan untuk mendefinisikan  prosedur pada matlab. Fungsi dapat menerima input berupa berbagai parameter dan mengeluarkan output berupa matriks, string, graf atau figure.  Beberapa contoh fungsi yang terdapat pada Matlab seperti sin, imread, imclose dan lain-lain. Matlab masih memiliki banyak fungsi lainnya.
Bentuk penulisan nama fungsi
Function [Nilai keluaran ] = namaFungsi (nilai masukan)
% operasi dari fungsi
%
%
Contoh penggunaan: 
fungsi yang akan dibuat bernama ‘testfungsi’ memiliki tiga nilai masukan ‘c,d,e’ dan dua nilai keluaran ‘a,b’:
function [a,b] = testFungsi(c,d,e)
%operasi yang dijalankan
a = c + d +e;
b = c * d *e;
Selanjutnya Fungsi tersebut akan dijalankan melalui command window dengan nilai masukan ’10,2,4’. Perhatikan penulisan kurung siku ‘[ ]’ pada nilai keluaran dan kurung biasa ‘( )’ pada nilai masukan.
>> [a,b] = testFungsi(10,2,3)
a =
    15
b =  
    60
4.      M-File
M-File berfungsi untuk menangani serangkaian baris intruksi yang tidak mungkin dituliskan satu-persatu di Command Window. M-File terdiri dari dua jenis yaitu Script M-File dan Function M-File. M-File dapat dipanggil dengan memilih menu file->new->M-File. Di dalam M-File, kita dapat menyimpan semua perintah dan menjalankan dengan menekan tombol atau mengetikan nama M-File yang kita buat pada command window.
1.      Script M-File berfungsi untuk menangani baris-baris intruksi biasa 2.
2.      Function M-File berfungsi untuk membuat suatu fungsi.
5.      Program Sederhana
1. Iterasi
Bukalah Script M-File yang baru dengan cara menekan “Ctrl + N” pada keyboard. Cobalah baris intruksi berikut:
clear all; clc;
%
for i=1:10
    x(i)=i^2;
end
x
Lalu tekan F5 atau “fn + F5” untuk mengeksekusi program. Catatan: intruksi  “clear”
berfungsi untuk membersihkan memory sedangkan intruksi  “clc” berfungsi untuk
membersihkan layar di Command Window.
2. Intruksi if – else – end
“if – else – end” merupakan jenis intruksi bersayarat. Cobalah baris intruksi berikut:
clear all; clc;
%
for i=1:10
    a=5;
    if i<6
        b(i)=i*a;
    else
        b(i)=i+a;
    end
end
b
Jika terdapat serangkaian syarat yang harus dipenuhi, maka dapat digunakan kombinasi-
kombinasi dari intruksi di atas, seperti:
if
    ...
elseif
    ...
elseif
    ...
else
    ...
End
6.      Operasi Array
Pada bagian sebelumnya, jenis intruksi for - end digunakan untuk melakukan iterasi atau perulangan. Walaupun MATLAB menyediakan fitur tersebut, namun pada dasarnya MATLAB tidak didesain untuk itu. Sebaiknya hal itu dihindari dan diganti dengan operasi array karena kekuatan MATLAB memang terletak pada komputasi berbasis vektor dan matriks. Cobalah baris-baris intruksi pembuatan array berikut dan perhatikan output yang dihasilkannya:
clear all; clc;
%
x=0:10
y=0:2:10
z=linspace(0,10,11)
r=linspace(0,10,6)
length(x)
length(y)
length(z)
length(r)
7.      Plot Titik dan Kurva
1. Plot titik 2D
Cobalah baris intruksi berikut di Script M-File:
clear all; clc; close all;
%
x=1;
y=1;
plot(x,y,'o')
 2. Plot titik 3D
Cobalah baris intruksi berikut di Script M-File:
clear all; clc; close all;
%
x=1;
y=1;
z=1;
plot3(x,y,z,'o')
 3. Plot kurva 2D
Cobalah baris intruksi berikut di Script M-File:
clear all; clc; close all;
%
% Membangkitkan nilai dari -1.6 sampai 1.6 dengan inkremen 0.001
x=(-1.6:0.001:1.6);
%
y=(sqrt(cos(x)).*cos(200*x)+sqrt(abs(x))-0.7).*(4-x.*x).^0.01;
% 
plot(x,y,'r')
%
% Sistem persamaan di atas adalah:
% Y=(cos(x)^0.5 * cos(200x) + abs(x)^0.5 - 0.7)*(4-x^2)^0.01
Baris hijau yang didahului oleh tanda % merupakan baris komentar yang tidak akan dieksekusi oleh program sehingga penulisannya bukan suatu keharusan. Operasi yang didahului oleh tanda titik, seperti .* di atas, merupakan operasi antar elemen dari matriks bukan operasi matriks.
4. Plot kurva 3D
Cobalah baris intruksi berikut di Script M-File:
clear all; clc; close all;
tic
%
for i=1:1000
 theta(i)=2*pi*0.01*(i-1);
x(i)=cos(theta(i));
y(i)=sin(theta(i));
z(i)=theta(i);
end
toc
Computation_time=toc
plot3(x,y,z)
Selain menggunakan jenis intruksi for – end untuk melakukan perulangan, program di atas juga dapat ditulis dalam bentuk lain tanpa melakukan perulangan yaitu dengan cara melakukan vektorisasi atau membangkitkan array, seperti berikut:
clear all; clc; close all;
tic
%
i=1:1:1000;
% membangkitkan array
theta(1,:)=2*pi*0.01*(i-ones(1,length(i)));
x(1,:)=cos(theta);
y(1,:)=sin(theta);
z(1,:)=theta;
%
toc
Computation_time=toc
plot3(x,y,z)
Bandingkanlah waktu komputasi (Computation_time) dari kedua script tersebut, lebih cepat yang mana? Waktu komputasi tersebut dinyatakan dalam satuan detik.
8.      Persoalan – Persoalan Matematika
1.      Matriks
Misalkan terdapat matriks  A(m,n), dalam hal ini m menyatakan jumlah baris sedangkan n menyatakan jumlah kolom. Andaikan matriks A tersebut adalah sebagai berikut:
A=[1 2 3 4; 1 4 9 16; 1 8 27 64; 1 16 81 254]
yang jika dieksekusi, maka di Command Window akan muncul tampilan matriks sebagai berikut:
A=
1            2     3     4
1            4     9    16
1            8    27    64
1    16    81   254
Cobalah baris-baris intruksi berikut di Script M-File:
clear all; clc; close all;
%
A=[1 2 3 4; 1 4 9 16; 1 8 27 64; 1 16 81 254]
%
Diagon_A = diag(A)   % mengambil hanya diagonal utama dari matriks A
Transp_A = A'        % melakukan operasi transpose terhadap matriks A
Determ_A = det(A)    % menghitung determinan dari matriks A
Invers_A = inv(A)    % melakukan invers terhadap matriks A
Ukuran_A = size(A)   % mengetahui ukuran matriks A (baris,kolom)
2.      Polinomial
Misalkan terdapat persamaan polinomial  ( )        , maka representasinya di dalam MATLAB adalah sebagai berikut:
y = [1 0 7 -3]
Selanjutnya cobalah baris-baris intruksi berikut di Script M-File:
clear all; clc; close all;
%
% y = x^3 + 7x -3
y = [1 0 7 -3]
r = roots(y)        % menarik akar dari persamaan polinomial
yy= poly(r)         % mengembalikan dari akar ke koefisien polinomnya
vl= polyval(y,3)    % mencari nilai polinomial pada x=3
tr= polyder(y)      % mencari turunan dari polinomial
Misalkan terdapat dua buah polinom yaitu  ( )         dan  ( )        , selanjutnya cobalah script perkalian dan pembagian polinom berikut:
clear all; clc; close all;
%
y = [1 2 4]         % y(x) = x^2 + 2x + 4
z = [1 3 7]         % z(x) = x^2 + 3x + 7
a = conv(y,z)       % a(x) = y(x)*z(x)
[b,r] = deconv(a,z) % [b,r]= a(x)/z(x)
                    % r adalah polinom sisa yang mungkin

Tidak ada komentar:

Posting Komentar