Referensi Agus, Naba. (2009). "Belajar cepat Fuzzy Logic Menggunakan Matlab".C.V Andi Offset, Yogyakarta,
2. Komponen [back]
3.Dasar Teori [back]
BAB 4 Matlab Dasar (4.5 s.d 4.7)
4.5 PLOT
4.5.1 Memulai Plot
Fungsi Plot digunakan untuk menampilkan grafik. Fungsi ini memiliki beberapa sintaks, tergantung pada argumennya. Berikut merupakan contoh sintaksnya :
x = 0:pi/40:2*pi ;
y = cos (x) ;
plot (x,y)
xlabel ('x dari 0 sampai 2\pi') % memberi label sumbu x
ylabel ('cos (x)') % memberi label sumbu y
title ('Plot fungsi cos', 'Fontsize', 14)
hasil matlab
Gambar 1. Plot Fungsi Cos
Pada contoh diatas, x diisi dari vektor 0 sampai 2π dengan π/40. Disini kita memakai xlabel untuk menampilkan π dalam label sumbu x.
4.5.2 Menyimpan Plot
Plot disimpan dalam format .fig menu File → Save dengan keunggulan file bisa diedit baik tampilan maupun datanya. Selain itu plot juga bisa disimpan dalam format lain seperti TIF, JPEG, atau EPS melalui menu File → Export
4.5.3 Plot Multi Data Sets
Fungsi plot bisa dipakai untuk menampilkan plot multi data sets sebagaimana dicontohkan dalam perintah-perintah berikut :
x = 0:pi/100:2*pi ;
y1 = cos (x);
y2 = cos (x-0.25);
y3 = cos (x-0.5);
plot(x, y1, x, y2, x, y3);
legend ('cos (x)', 'cos (x-0.25)', 'cos (x-0.5)')
dan hasil plotnya dapat terlihat seperti gambar 2 di bawah ini
Gambar 2. Plot 3 fungsi cos yang berbeda
Fungsi plot menyediakan fasilitas untuk membuat suatu plot bisa dibedakan dari plot lainnya. Sintaksnya berbentuk:
plot (x,y,'colorstylemarker')
dimana colorstylemarker adalah suatu string dari 1 sampai 2 karakter yang akan mengkodekan warna, line style, dan marker dari suatu plot:
kode warna: c, m, y, r, g, b, w, dan x yang masing-masing mengkodekan cyan, magenta, yellow, red, green, blue, white dan black.
kode line style: -, –, :, —. masing-masing mengkodekan solid, dashed, dotted, dash-dot. Tanpa kode ini berarti plot disembunyikan.
marker tanpa kode: +, o, *, dan x.
marker berkode: s (square), a (diamond), (up triangle), v (down triangle), > (right triangle), < (left triangle), p (pentagram), n (hexagram), dan none (tanpa marker).
Melanjutkan perintah-perintah untuk plot pada Gambar 2, coba sekarang berikan perintah
plot (x,y1, 'bs',x,y2,x,y3)
maka akan mendapatkan tampilan plot y1 yang berbeda dari yang lainnya, yaitu berwarna biru dengan square marker.
4.5.4 Menindihkan grafik pada grafik lain
Perintah
hold on
akan membuat grafik dari perintah plot berikutnya menindih grafik-grafik hasil perintah plot sebelumnya. Sebaliknya perintah
hold off
akan mematikan kemampuan ini. Untuk contoh, berikan sederetan perintah berikut:
clear all
x = 0:pi/100:2*pi;
y1= cos(x);
y2 = cos(x-0.25);
y3 = cos(x-0.5);
plot (x,y1);
hold on
plot (x,y2)
plot (x, y3);
hold off
legend('cos (x), cos(x-0.25)','cos(x-0.5)')
maka akan mendapatkan tampilan seperti pada gambar 2 diatas
4.5.5 Figure Windows
Setiap plot akan ditampilkan dalam Figure Window, lengkap dengan fasilitas menu dan toolbar. Jika ada beberapa Figure Window, maka akan ada salah satu yang ditandai dengan current figure, yaitu figure terakhir yang digunakan atau diklik. Setiap perintah plot yang Anda berikan akan ditaruh di current figure. Anda dapat memberikan perintah
figure(n)
untuk membuat figure ke n ditandai dengan current figure. Jika belum ada Figure Window yang dibuka, maka perintah
figure
akan membuat sebuah Figure Window baru dan ditandai current figure. Ketika suatu Figure Window sudah dibuka, maka perintah plot akan mereset setting dari sumbu dan menggunakan window ini untuk membuat plot baru. Namun properti dari figure seperti warna background dan colormap tidak direset. Untuk membersihkan semua properti bawaan dari plot sebelumnya gunakan perintah
clf reset
4.5.6 Multi Plot dalam satu Figure
Menggunakan perintah subplot, beberapa plot bisa ditampilkan dalam satu Figure Window tapi tidak saling menindih Sintaksnya:
subplot (m,n,p)
yang akan membagi Figure Window menjadi matriks subplot kecil berdimensi mxn dan memilih subplot ke p menjadi current plot. Perintah ini diilustrasikan dalam contoh berikut:
x1 = 0:pi/100:2*pi;
x2 = 0:pi/10:2*pi;
subplot (2,2,1); plot (x2, sin (x2), 'k+')
subplot (2,2,2); plot (x2, sin(x2),'ks')
subplot (2,2,3); plot (x1, sin(x1), 'k:',x2, sin (x2), 'k-+’)
subplot (2,2,4); plot (x1, sin (x1), 'k:’,x2, sin (x2), 'k-s')
Dan berikut merupakan hasil matlabnya yang tertampil pada gambar 3
Gambar 3. Multiplot dalam 1 Figure
4.6 PLOT 3D
MATLAB menyediakan dua fungsi untuk membuat plot 3D,yaitu mesh dan surf. Fungsi mesh memproduksi wireframe surfaces dan memberi warna hanya pada garis-garis yang menghubungkan antar titik. Fungsi surf memproduksi wireframe surfaces dan memberi warna permukaan dalam wireframe.
berikut adalah contoh penggunaan fungsi mesh untuk membuat plot 3D dari fungsi sinc(R)
x = -8:0.5:8;
y = -8:0.5:8;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin (R) ./R; %fungsi sinc(R)
mesh(X,Y,Z,'EdgeColor','black')
hasil di matlab
Gambar 4. Plot 3D dengan mesh
Contoh penggunaan fungsi surf untuk membuat plot 3D dari fungsi sinc(R) adalah
x = -8:0.5:8;
y = -8:0.5:8;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin (R) ./R; %fungsi sinc(R)
surf(X,Y,Z)
colormap hsv %jenis peta warna
colorbar %menampilkan bar peta warna
hasil di matlab
Gambar 5. plot 3D dengan surf
4.7 Dasar-Dasar Pemrograman
Dasar-Dasar pemrograman dalam MATLAB meliputi :
Flow Control : if,switch,case,for,while,continue,break
Data Structure : Dipakai untuk menangani multidimensional arrays,cell arrays, character,text data, dan structures
Scripts : Sekumpulan perintah yang disimpan dalam M-Files,tidak memerlukan argumen input dan tidak memberikan suatu keluaran (not returning output argument)
Functions : M-Files yang memerlukan argumen input dan menghasilkan suatu keluaran.
4.7.1 FLOW CONTROL
- if
sintaks umum menggunakan if adalah
if ekspresi_logika_1
command_line_1;
…
elseif ekspresi_logika_2
command_line_2;
…
else
command_line_3;
…
End
Cara yang benar untuk mengevaluasi kesamaan kedua matriks adalah dengan
if isequal (A == B) … % apakah A = B
perhatikan diperlukan dobel “=” untuk mengevaluasi apakah A sama dengan B. Fungsi lain yang sering dipakai dalam ekspresi logika yang berhubungan dengan matriks atau vektor adalah
isempty(A) %bernilai 1 jika A array kosong
all (A) %bernilai true jika semua elemen A tidak nol
any (A) %bernilai true jika ada elemen A yang tidak nol
- switch
Pernyataan Switch akan mengeksekusi group pernyataan berdasarkan harga variabel atau ekspresi. Group yang akan dieksekusi harus diletakkan setelah keyword case atau otherwise. Kemudian switch harus diakhiri dengan end.
Sintaks penggunaan switch diberikan dalam contoh eksekusi perintah berikut :
method = ‘Bilinear’;
switch lower(method)
case (‘linear’,’bilinear’)
disp (‘Method is linear’)
case ‘cubic’
disp (‘Method is cubic’)
case ‘nearest’
disp (‘Method is nearest’)
otherwise
disp (‘Unknown method.’)
end
hasil matlab
- FOR
Pernyataan Loop FOR mengeksekusi group perintah secara berulang-ulang dengan jumlah iterasi yang tetap (fixed), for harus diakhiri dengan end. contoh penggunaan :
a = [];
for i = 1:3;
a = [a [i;i^2]];
end
dimana a yang mula-mula diisi matriks kosong diisi dengan vektor kolom [i;i^2] dalam setiap iterasi. jumlah total iterasi adalah 3 jika anda ketikkan a pada MATLAB prompt maka akan didapatkan ;
a =
1 2 3
1 4 9
- WHILE
Pernyataan loop while mengeksekusi group perintah secara berulang dengan jumlah iterasi yang indefinite yang ditentukan oleh suatu kondisi atau ekspresi logika tertentu. Pernyataan while harus diakhiri dengan end. Berikut ini adalah contoh penggunaan pernyataan while untuk mencari akar-akar atau zero polinomial persamaan kuadrat f(x) = x3 - 2x -5 = 0 menggunakan metode interval bisection.
a = 0; fa = -inf;
b = 3,fb = inf;
while b-a > eps*10
x = (a+b)/2 ;
fx = x^3 - 2*x -5;
if isequal (sign (fx),sign (fa))
a= x; fa = fx ;
else
b = x; fb = fx;
end
end
setelah menjalankan kode program di atas,ketikkan x pada MATLAB prompt sehingga Anda seharusnya mendapatkan
x = 2.0946
- BREAK DAN CONTINUE
Pernyataan Break dipakai untuk keluar dari loop (for atau while) meskipun maksimum iterasi belum tercapai. sedangkan pernyataan Continue melakukan tugas yang hampir sama dengan break. diletakkan setelahnya dan tidak keluar dari loop. Begitu continue di temui,maka satu iterasi akan dilompati dan langsung pindah ke iterasi berikutnya. contoh penggunaan break
clc;
clear;
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a > eps*10
x = (a+b)/2;
f = x^3-2*x-5;
if isequal (f,0)
break
else if isequal (sign(f),sign(fa))
a=x; fa = f;
else
b = x; fb = f;
end
end
end
Dalam contoh diatas bila terjadi kondisi f sama dengan 0 maka loop while akan dihentikan meskipun belum mencapai maksimum iterasi
- Try-Catch
Pernyataan ini dipakai untuk menangkap error yang terjadi selama eksekusi program dan kemudian memberikan perintah pengganti dari pernyataan yang akan membuat error.
sintaks umumnya :
try
perintah_1;
perintah_2;
…
perintah_n;
catch
perintah_pengganti_1;
perintah_pengganti_2;
…
perintah_pengganti_n;
end
- Return
Pernyataan Return hanya dipakai dalam suatu definisi function.contoh penggunaannya
function d = det(A)
if isempty (A)
d = 1;
return
else
…
end
dalam definisi diatas,jika A adalah matriks kosong maka d akan diset bernilai 1 dan pernyataan return akan dieksekusi. eksekusi return ini akan menyebabkan eksekusi fungsi det dihentikan dan kembali ke variable pemanggil
- Array Multidimensi
- Cell Array
- Character dan Text
- Structures
Problem[back]
1. Buatlah program yang meminta input angka sebanyak N, dimana N adalah input dari pengguna. Output program adalah bilangan maksimum dan minimum dari angka-angka tersebut.
jumlah = input(‘masukkan bilangan ke-n: ‘);
Vektor = [];
for i=1:jumlah
n = input(‘masukkan angka: ‘);
Vektor = [Vektor n];
end
maksimal = max(Vektor);
minimal = min(Vektor);
disp([‘max= ‘ num2str(maksimal)]);
disp([‘min= ‘ num2str(minimal)]);
2.Buatlah program yang bisa menyimpan input berupa bilangan-bilangan integer ke dalam array. Lalu, dari bilangan-bilangan tersebut akan muncul bilangan-bilangan yang habis dibagi 4.
1. Buatlah program yang meminta input angka sebanyak N, dimana N adalah input dari pengguna. Output program adalah bilangan maksimum dan minimum dari angka-angka tersebut.
jumlah = input(‘masukkan bilangan ke-n: ‘);
Vektor = [];
for i=1:jumlah
n = input(‘masukkan angka: ‘);
Vektor = [Vektor n];
end
maksimal = max(Vektor);
minimal = min(Vektor);
disp([‘max= ‘ num2str(maksimal)]);
disp([‘min= ‘ num2str(minimal)]);
j = 0;
x = input(‘masukkan x dalam bentuk [array]: ‘);
panjang = length(x);
for i = 1:panjang
sisa = mod(x(i),4);
if(sisa == 0)
j = j+1;
y(j)= x(i);
end
end
disp(y(1:j));
Example[back]
1. Apa itu pernyataan for ?
Jawab :Pernyataan Loop FOR mengeksekusi group perintah secara berulang-ulang dengan jumlah iterasi yang tetap (fixed), for harus diakhiri dengan end
2. Apa itu pernyataan while?
Jawab:Pernyataan loop while mengeksekusi group perintah secara berulang dengan jumlah iterasi yang indefinite yang ditentukan oleh suatu kondisi atau ekspresi logika tertentu. Pernyataan while harus diakhiri dengan end
Pilihan Ganda[back]
1. Berikut ini yang merupakan fungsi untuk membuat plot 3D ialah....
A. ForB. IfC. MeshD. WhileE. Switch
2. Berikut ini yang bukan merupakan fungsi flow control ialah....
A. ForB. IfC. BreakD. WhileE. Surf
Step 1:SUSUN dan SIAPKAN KOMPONEN
Step 2:RANGKAI KOMPONEN
Step 3: BUAT SIMULASI
Step 4: MENCOBA RANGKAIAN
Step 5: MENERAPKAN RANGKAIAN
gambar 4.7 Flow Control While
gambar 4.7 Flow Control Break
6.Video Simulasi [back]
4.5.7 mengatur sumbu plot
Tidak ada komentar:
Posting Komentar