BAB 4 BELAJAR MATLAB DASAR (4.4 - 4.7)



 Referensi Agus, Naba. (2009). "Belajar cepat Fuzzy Logic Menggunakan Matlab".C.V Andi Offset, Yogyakarta, 


[KEMBALI KE MENU SEBELUMNYA]



1. Mengetahui toolbox yang terdapat pada Matlab
2. Mampu memahami cara kerja dari toolbox yang terdapat dari Matlab
3. Dapat menjalankan program dengan menggunakan Matlab

2. Komponen [back]

A. Alat yang digunakan yaitu Software Matlab.





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


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=randin (3,2,4):
Perintah ini menghasilkan 4 buah matriks berdimensi 3 x 2. 


randn adalah fungsi yang memproduksi bilangan random berdistribusi normal. Sekarang bayangkan di atas adalah sebuah "balok" dengan ukuran 3 x 2 x 4. Maka hasil dari perintah berikut:
R=randn (3,2,4,5):


bisa dibayangkan sebagai kumpulan 5 buah "balok" berukuran 3 x 2 x 4. 

  • Cell Array 
Berbeda dengan matriks yang dibuat memakai kurung siku "11" dan berisi kumpulan data dari tipe yang sama, cell array lebih sering dibuat kurung kurawal "" dan bisa diisi berbagai tipe data yang berbe Untuk contoh, eksekusi berikut:
A=[1 2:3 4]:

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



sum (A) adalah menghasilkan vektor baris dimana tiap kolomnya ada penjumlahan semua elemen baris dari kolom tersebut. Jika adala baris, maka sum (A) menghasilkan hasil penjumlahan semua eleme prod (A) adalah menghasilkan vektor baris dimana tiap kolomny hasil perkalian semua elemen baris dari kolom tersebut. Jika A adala baris, prod (A) menghasilkan hasil perkalian semua elemen dari a Dengan mengetikkan C pada MATLAB prompt, didapat:
C= [2x2 double] [1x2 double] [24]



Elemen pertama dan kedua tidak langsung diperlihatkan karen elemen terlalu besar untuk dicetak di layar dalam ruang yang terbatas. elemen ketiga berisi matriks hanya berelemen tunggal, 24, sehingga bisa dicetak di layar. Untuk mengakses elemen pertama, gunakan
C{1} =
ans =
1 2 
3 4


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



Perhatikan bahwa, untuk mengakses clemen suatu cell array, jangan gunakan tanda kurung biasa "o", tetapi gunakan kurang kurawal "".

  • Character dan Text
Dalam MATLAB, variabel yang berisi teks diperlakukan sebagai sebuah array dengan elemennya berupa kode-kode ASCII dari karakter penyusun teks. Coba buat varriabel yang berisi teks:
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


 fungsi char digunakan untuk menyimpan beberapa kata yang berbeda-beda jumlah karakternya, maka fungsi char akan secara otomatis menambahkan karakter spasi pada kata-kata dengan jumlah karakter lebih sedikit sampai jumlah karakter semua elemen sama. Untuk contoh:
G=char ('hallo','saudaraku', 'apa', 'kabar')
G=
hallo
saudaraku
apa 
kabar

C=cellstr(G): 
untuk konversi kebalikannya, gunakan
G=char (C):

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

Jika ingin menyisipkan sebuah data Peserta lain, tinggal memberi indeks pada structure Peserta diikuti field. Misalkan:
Peserta(2).name = 'Anang';
Peserta(2).score 75; 
Peserta(2).grade= 'B+';


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

Ketika suatu file script dipanggil dari MATLAB prompt, MATLAB mengeksekusi perintah-perintah yang ada di dalamnya. Script bisa langsung menggunakan variabel-variabel dalam workspace atau membuat variabel-variabel baru yang langsung di letakkan dalam workspace. 
Untuk bisa dipanggil dari MATLAB prompt, M-File yang mendefinisikan suatu function harus diberi nama yang sama dengan nama fungsi. Suatu fungsi mempunyai variabel sendiri yang bersifat local, yaitu tidak bisa diakses dari luar function. 

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;

File fungsi plusmin harus disimpan dengan nama file plusmin.m untuk bisa dipanggil dari MATLAB prompt. Baris pertama plusmin.m dimulai dengan keyword function. Baris pertama ini mendefinisikan nama fungsi dan urutan dari argumen. Baris kedua sampai baris kosong pertama atau baris perintah pertama adalah belp text yang akan tampil ketika Anda mengetikkan
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.

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


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


Step 1:SUSUN dan SIAPKAN KOMPONEN 

Step 2:RANGKAI KOMPONEN

Step 3: BUAT SIMULASI 

Step 4: MENCOBA RANGKAIAN

Step 5: MENERAPKAN RANGKAIAN



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








6.Video Simulasi [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




7. File 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 Codingan disini
Download HTML disini



Tidak ada komentar:

Posting Komentar

Muhammad Sukry

Bahan Presenstasi Ini dibuat untuk  Mata Kuliah Mikroprocessor dan Mikrocontroller Semester Ganjil 2022-2023 Oleh : Muhammad Sukry 201095104...