Bab 4. Matlab Dasar (4.4 - 4.7)


Bab 4. Matlab Dasar (4.4 - 4.7)

Agus, Naba. (2009). "Tutorial cepat & mudah fuzzy Logic Menggunakan Matlab".C.V Andi Offset, Yogyakarta 




1. Tujuan[Back]
  • Mengetahui toolbox yang terdapat pada Matlab
  • Mampu memahami cara kerja dari toolbox yang terdapat dari Matlab
  • Dapat menjalankan program dengan menggunakan Matlab
2. Alat dan Bahan[Back]
  Alat yang digunakan yaitu Software Matlab.


3. Dasar Teori[Back]

4.5 PLOT


4.5.1 Memulai Plot

Fungsi Plot digunakan untuk menampilkan grafik. berikut sintaks dan hasilnya :


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 matlabnya :


Gambar 1. Plot fungsi cos

4.5.2 Menyimpan Plot

Plot disimpan dalam format .fig  menu File → Save dengan keunggulan file bisa diedit baik tampilan maupun datanya


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)')


Hasil Matlab


Gambar 2. Plot 3 fungsi cos yang berbeda


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.


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.


figure(n)

untuk membuat figure ke n ditandai dengan current figure


figure

akan membuat sebuah Figure Window baru dan ditandai current figure.


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


Sintaksnya :

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')


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.


Sintaksnya :

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')


Gambar 4. Plot 3D dengan mesh


Selain itu penggunaan fungsi surf sebagai contoh sintaks di bawah


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


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


  • 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



  • 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

contoh program :


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. 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


4.7.2 Struktur Data


  • Array Multidimensi

Array multidimensi adalah array dengan lebih dari dua indeks. Contoh array multidimensi adalah dihasilkan dari perintah berikut:


r = randn (3,2,4);


Perintah ini menghasilkan 4 buah matriks berdimensi 3 x 2.



  • Cell Array

Cell array lebih sering dibuat dengan kurung kurawal "{}" dan bisa diisi berbagai tipe data yang berbeda-beda. Contoh :


a = [1 2 ; 3 4];



C=(A sum (A) prod (prod (A))};



C= [2x2 double] [1x2 double] [24]

Untuk mengakses elemen pertama, gunakan
C{1} =
ans =
1 2 
3 4


dan elemen keduanya
C{2} =
ans =

4     6

  • Character dan Text

Dalam MATLAB, variabel yang berisi teks diperlakukan sebagai sebuah array dengan elemennya berupa kode-kode ASCII dari karakter penyusun teks. Contoh :


s = 'hallo'


Hasilnya adalah s berupa sebuah character array 1 baris 5 kolom. Sekarang berikan perintah:


c = double(s)


Anda akan mendapatkan


c =

104 97 108 108 111


dimana masing-masing elemen e ini adalah kode-kode ASCII untuk 'hallo' secara berurutan. Untuk mendapatkan teks dari kode ASCII di atas,

gunakan
char (c)
ans = 
hallo


  • Structures

Pengembangan dari array multidimensi adalah structures dimana elemen-elemennya bisa diakses memakai textual fields. Untuk contoh, eksekusi perintah membuat array berikut.


Peserta.name = 'Anom';

Peserta.score = 90;

Peserta.grade = 'A';


akan menghasilkan sebuah structure skalar dengan tiga fields:


Peserta =

name: 'Anom'

score: 90

grade: 'A'



 Untuk mengakses field name dari semua isi peserta, gunakan

Peserta.name
atau dengan memakai kurung kurawal:
{Peserta.name}

4.7.3 Fungsi

File-file yang berisi kode-kode program yang bisa dieksekusi dalam Command Window MATLAB dinamakan M-Files. Anda bisa membuat M-Files dengan editor teks biasa, dan kemudian mengeksekusinya dari MATLAB Prompt. Cara cepat untuk melihat isi suatu M-Files adalah dengan perintah:


type nama_m_file


M Files dikelompokkan menjadi dua jenis:

  • Script berisi kumpulan perintah dalam bentuk M-Files. Untuk mengeksekusinya, tidak diperlukan argumen input, tetapi juga tidak menghasilkan suatu output (return output argument).
  • Function membutuhkan argumen input dan menghasilkan argumen output.

Contoh definisi fungsi yang sudah dibahas sebelumnya, yaitu fungsi plusminus akan dipakai lagi di sini, namun dengan tambahan komentar
function [X,Y,Z)= plusmin (a,b)
%Sintaks:
%[P,Q,R]=plusminus (x,y)
% P = x + y
% P = x - y
% P = x * y
X=a+b;
Y=a-b;
Z=a*b;


help plusmin 


Jenis-jenis Fungsi


1. Fungsi anonymous
Fungsi ini tidak membutuhkan M-File karena bisa didefinisikan langsung dari MATLAB prompt dan siap pakai. Sintaksnya:

f = @(argumen) ekspresi



2. Fungsi primer dan subfungsi
Fungsi primer adalah fungsi yang muncul pertama kali dalam M-File. Kemudian di bawah primer ini bisa dibuat fungsi-fungsi lain yang disebut sebagai subfungsi.

3. Fungsi private

Ini adalah salah satu jenis fungsi M-File yang hanya bisa dipanggil oleh grup fungsi tertentu saja.


4. Fungsi bersarang

Suatu fungsi yang didefinisikan dalam bodi fungsi yang lain. Sebagai ilustrasi, berikut adalah fungsi B yang berada dalam fungsi A


function x = A(21,z2)

b=B (z2);

function y = B(z3)

end

end


5. Overloaded Function

Suatu fungsi yang bisa merespons berbagai tipe argumen input bahkan dengan jumlah yang berbeda.


6. Variabel Global

Variabel-variabel yang didefinisikan di dalam suatu fungsi tidak bisa langsung diakses dari luar fungsi demikian juga sebaliknya.




7. Fungsi eval

Fungsi eval bertugas mengeksekusi ekspresi yang diberikan padanya sebagai argumen masukan berupa string. Sintaksnya:


eval (s)


8. Function Handles

Pada dasarnya function handle adalah suatu "variabel", namun bukan dipakai untuk menaruh bilangan, tetapi suatu "fungsi". Sebuah function handle didefinisikan menggunakan tanda at, e. Untuk contoh, function handle untuk fungsi sin dibuat dengan sintaks:


function_handle = sin;


Ada banyak fungsi bawaan MATLAB yang memerlukan argumen input berupa function handles untuk berbagai keperluan meliputi:


  • Zero Finding: mencari akar suatu persamaan. Contoh: fzero.

  • Optimization: mencari nilai minimum suatu fungsi kriteria. Contoh  : fminsearch.

  • Quadrature: menghitung luas di bawah kurva. Contoh: quadl

  • Ordinary Differential Equation: mencari solusi persamaan diferensial secara numerik. Contoh: ode45.



4. Percobaan[Back]
4.1 Langkah Percobaan

Step 1:Mulai Matlab

Step 2:Masukkan codingnya

Step 3: Simpan codingnya

Step 4: Run coding Matlabnya

4.2 Gambar Percobaan


Gambar 4.5 Memulai Plot

gambar 4.5 multi plot

gambar 4.5 subplot

gambar 4.6 3D plot Mesh

gambar 4.6 3D Plot Surf

gambar 4.7 Flow Control  Case

gambar 4.7 Flow Control  For

gambar 4.7 Flow Control  While

gambar 4.7 Flow Control  Break

gambar 4.7.2 Array Multi Dimensi (3,2,4)



gambar 4.7.2 Array Multi Dimensi(3,2,4,5)



gambar 4.7.2 Cell Array



Gambar C= [2x2 double] [1x2 double] [24]

C{1} =
ans =
1 2 
3 4


dan elemen keduanya
C{2} =
ans =
4     6




Gambar 4.7.2 Character dan String


Gambar 4.7.2 Structures


 Untuk mengakses field name dari semua isi peserta, gunakan
Peserta.name
atau dengan memakai kurung kurawal:
{Peserta.name}



Gambar 4.7.3 Fungsi




1. Fungsi anonymous




Variabel Global




5. Video[Back]

Video 4.5.1 Memulai PLOT

4.5.2 multi plot

4.5.3 multi plot dengan hold

4.5.6 subplot

4.5.7 mengatur sumbu plot

4.6 plot 3D dengan mesh


4.6 plot 3D dengan surf

4.7 flow control case

4.7 flow control for

4.7 flow control while



4.7 flow control break





4.7.2 Struktur Data


                                                               4.7.3 FUNGSI



Matlab Dasar Plot


Matlab Dasar Subplot


Matlab Dasar For


Matlab Dasar While


Matlab dasar If


Matlab Dasar Break

6. 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

7. 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.

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));

8. Pilihan Ganda[Back]

1. Berikut ini yang merupakan fungsi untuk membuat plot 3D ialah....

A. For
B. If
C. Mesh
D. While
E. Switch

2. Berikut ini yang bukan merupakan fungsi flow control ialah....

A. For
B. If
C. Break
D. While
E. Surf

9. Link Download[Back]

Download Video 4.5.1 disini
Download Video 4.5.3 disini
Download Video 4.5.4 disini
Download Video 4.5.6 disini
Download Video 4.5.7 disini
Download Video 4.6.mesh disini
Download Video 4.6.surf disini
Download Video 4.7.case disini
Download Video 4.7.for disini
Download Video 4.7.whiledisini
Download Video 4.7.break disini
Download Video 4.7.2 Struktur Data disini
Download Video 4.7.3 Fungsi disini
Download Matlab Dasar Plot disini
Download Matlab Dasar Subplot disini
Download Matlab Dasar While disini
Download Matlab Dasar For disini
Download Matlab Dasar If disini
Download Matlab Dasar Break disini
Download Codingan disini
Download HTML disini




No comments:

Post a Comment

  BAHAN PRESENTASI KULIAH TEKNIK ELEKTRO UNAND Disusun Oleh: Muhammad Dafa NIM : 2010951044 Dosen Pembimbing: 1. Dr. Darwison, MT 2. Zaini, ...