1. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
BAB VI
G R A F I K
6.1 Grafik 2-Dimensi
6.1.1 Statemen plot
MATLAB menyediakan fasilitas dalam pembuatan suatu grafik dengan sangat sempurna dan mudah
untuk digunakan, ini merupakan salah keistimewaan MATLAB, sehingga sangat cocok digunakan
untuk komputasi teknik.
Statemen yang digunakan dalam pembuatan grafik ini yaitu :
plot : Plot linier
loglog : plot dengan skala loglog
semilogx : plot dengan skala semi log
semilogy : plot dengan skala semilog
Untuk judul, label, garis sumbu dan teks digunakan :
title : judul grafik
xlabel : label sumbu x
ylabel : label sumbu y
text : teks keterangan
gtext : tempat teks diletakkan
grid : grid line
axis : batas sumbu y dan x
Statemen yang digunakan untuk membuat grafik linier, plot (x,y ) ini untuk menggambar bidang
vector x dan vector y. Jika x atau y adalah sebuah matriks maka mereka akan saling menggambarkan
sesuai dengan baris dan kolomnya masing-masing. Tetapi bila x adalah sebuah besaran skalar
sedangkan y adalah besaran vector maka akan terjadi titik yang tidak terhubung pada plot.
Berbagai macam jenis garis, symbol plot dan warna dapat dibuat dengan perintah plot(x,y,s) dimana s
adalah karakter string yang dibuat dari salah satu atau lebih dari statemen dibawah ini
SPESIFIKASI WARNA JENIS GARIS
WARNA Istilah Jenis Simbol
Hitam k Solid -
Biru b Dashed --
Cyan c Dotted :
Hijau g Dash-dot -.
Magenta m Point .
Merah r Circle o
Putih w X-mark x
Kuning y Plus +
Star *
Kita bisa membuat tiga pilihan kurva pada grafik yang sama. Sebagai contoh,
Ansar Suyuti
VI-
81
2. G r a f i k
Plot(x1,y1,’r’,x2,y2.’+b’,x3,y3,’-‘)
Plot (x1, y1) dengan garis merah solid ,(x2,y2) dengan warna biru dan tanda +, ( x3,y3) dengan garis
putus-putus. Plot juga dapat ditambahkan dengan keterangan nama pada grafik, label pada sumbu X
dan Y dan grid. Perintah grid membuat kotak-kotak gairs / kisi-kisi pada grafik. Cara penulisannya
hanya tinggal ditulis sesudah perintah plot. Sedangkan perintah nama/title (‘Graph title’) memberi
nama pada plot dan x label (‘x-axis label’), y label (‘y-axis label’) yang memberi label pada plot
dengan string yang khusus. Perintah text ( x-coordinate, y-coordinate,’text’) dapat digunakan untuk
meletakkan text pada grafik, dimana nilai koordinat diambil dari plot tertentu. Sebagai contoh, kalimat
perintahnya adalah :
Text(3.5, 1.5,’Voltage’)
Kalimat perintah ini akan menuliskan kata Voltage pada titik grafik (3.5, 1.5). Selain itu juga dapat
digunakan perintah gtext (‘text’), dimana perintah ini menempatkan teks pada grafik dengan
menggunakan mouse. Alternatif perintah lain adalah legend(string1,sring2,string3,…) yang juga
berfungsi untuk menempatkan teks dalam grafik dengan menggunakan string. MATLAB menyediakan
skala otomatis. Perintah axis ([x min. x max. y min. y max.]). Sebagai contoh :
Axis ([-10 40 -60 60])
Menghasilkan skala sumbu x dari – 10 sampai 40 dan skala sumbu y dari – 60 sampai 60. Mengetik
kembali axis (‘auto’) akan menghasilkan skala sendiri.
Contoh 6-1:
Membuat plot X-Y dengan variabel berikut ini :
x 0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
y 10 10 16 24 30 38 52 68 82 96 123
Programnya dapat dituliskan sebagi berikut :
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
plot(x, y), grid
xlabel('x'), ylabel('y'), title('Contoh Grafik Sederhana')
Hasilnya dapat dilihat pada grafik ini :
Ansar Suyuti
VI-
82
3. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
20
40
60
80
100
120
140
x
y
ContohGrafikSederhana
MATLAB juga menyediakan statement fplot untuk membuat grafik dari fungsi dalam bentuk string.
Dengan sintaks sebagai berikut;
fplot ('string',[xmin,xmax])
atau
fplot ('string',[xmin xmax ymin ymax])
dimana string merupakan sebuah fungsi, [xmin xmax] adalah nilai minimum dan maksimum dari
variabel bebas fungsi.
Contoh
» f='cos(tan(x))-tan(sin(x))';
» fplot(f,[0 3]), title (' Grfaik cos(tan(x))-tan(sin(x))')
0 0.5 1 1.5 2 2.5 3
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
Grfaik cos(tan(x))-tan(sin(x))
6.1.2 Statemen polyval
Program ini menggunakan perintah polyfit untuk mendapatkan pencocokan data (koefisien) untuk
mendapatkan persamaan polynomial yang sesuai dengan data yang ada.
Kata perintah yang lain adalah polyval yaitu digunakan untuk, mengevaluasi polynimial dari data-data
yang diberikan :
Ansar Suyuti
VI-
81
4. G r a f i k
Contoh 6-2 :
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
p = polyfit(x, y, 2)
yc = polyval(p, x);
plot(x, y,'x', x, yc)
xlabel('x'), ylabel('y'), grid
title('Polynomial curve fitting')
legend('Actual data', 'Fitted polynomial')
Hasil penggunaan perintah polyfit dan polyval dapat dilihat berikut ini :
P=
4.02333 2.01107 9.6783
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
20
40
60
80
100
120
140
x
y
Polynomial curve fitting
Actual data
Fitted polynomial
Pada program ini akan digunakan,* untuk perkalian elemen dengan elemen dari dua bentuk persamaan
yang telah diberikan, fungsinya y = 1 + e-2t
sin (8t-π/2) dari 0 sampai 3 detik). Program ini juga
memakai perintah [cp,k]=max (c ) yang memperlihatkan nilai maksimum dari grafik.
Contoh 6-3
Program untuk mencari nilai maksimum c=1+e-2t
.sin(8t-pi/2)
t=0:.005:3;
c = 1+ exp(-2*t).*sin(8*t - pi/2);
[cp, k] = max(c)
tp = t(k)
plot(t, c), xlabel(' t, sec'), ylabel('c'), grid
title('Grafik sinus teredam')
text(0.55,1.35,['cp = ',num2str(cp)])
text(0.55, 1.2,['tp = ',num2str(tp)])
Hasil dari M-file diatas :
Ansar Suyuti
VI-
82
5. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
t, sec
c
Grafik sinus teredam
cp = 1.4702
tp = 0.36
Cara interaktif untuk mendapatkan data-data titik-titik pada kurva adalah dengan menuliskan perintah
ginput. Perintah ini akan memudah mendapatkan titik-titik yang diinginkan dengan cara mengklik
mouse.
t=0:.005:3;
c = 1+ exp(-2*t).*sin(8*t - pi/2);
[cp, k] = max(c)
tp = t(k)
plot(t, c), xlabel(' t, sec'), ylabel('c'), grid
title('Grafik sinus teredam')
text(0.55,1.35,['cp = ',num2str(cp)])
text(0.55, 1.2,['tp = ',num2str(tp)])
%menggunakan statemen ginput
[tp, cp] = ginput
6.1.3 Statemen Subplot
Statemen subplot ( m, n, p ), berfungsi untuk membagi tampilan gambar menjadi sebanyak m baris, n
kolom dan p menunjukkan gambar keberapa. Selain itu memakai perintah subplot (111) yang
fungsinya seperti CLF RESET dimana grafik yang satu dengan yang lain tidak saling mempengaruhi
sehingga mendapatkan tampilan yang maksimal.
Contoh 6-4:
wt = 0: 0.05: 3*pi;
v=120*sin(wt); % Sinusoidal voltage
i=100*sin(wt-pi/4); % Sinusoidal current
p=v.*i; % Instantaneous power
subplot(2, 2, 1),plot(wt,v, wt,i); % Plot of v & i versus wt
title('Voltage & current')
xlabel('omegat, radians ');
Ansar Suyuti
VI-
81
6. G r a f i k
subplot(2, 2, 2),plot(wt,p); % Instantaneous power vs. wt
title('Power')
xlabel(' omegat, radians ');
Fm=3.0;
fa = Fm*sin(wt); % Three-phase mmf's fa, fb, fc
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
subplot(2, 2, 3),plot(wt,fa, wt,fb, wt,fc )
title('3-phase mmf');
xlabel(' omegat, radians ');
fR = 3/2*Fm;
subplot(2, 2, 4),plot(-fR*cos(wt),fR*sin(wt))
title('Rotating mmf')
subplot(111)
0 5 10
-200
-100
0
100
200
Voltage & current
ωt, radians
0 5 10
-5000
0
5000
10000
15000
Power
ωt, radians
0 5 10
-4
-2
0
2
4
3-phase mmf
ωt, radians
-5 0 5
-5
0
5
Rotating mmf
Statemen subplot(2, 2, 1),plot(wt,v, wt,i)bertujuan untuk membagi tampilan grafik
menjadi 2 baris dan 2 kolom, sehingga layar grafik menjadi empat bagian. Bagian bagian tersebut
diberi nomor grafik berurut-urut, nomor 1 adalah baris pertama kolom pertama, selanjutnya nomor 2
adalah baris pertama kolom kedua, nomor 3 adalah baris kedua kolom pertama dan nomor empat
adalah baris kedua kolom kedua. Penempatan grafik disesuaikan dengan nomornya.
Contoh
Ansar Suyuti
VI-
82
7. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
» x=0:0.001:3;
» f=cos(tan(x))-tan(sin(x));
» subplot(1,2,1),plot(x,f),xlabel('x'),ylabel('y'),axis([0 1.5 -3 1]);
» subplot(1,2,2),plot(x,f),xlabel('x'),ylabel('y'),axis([1.5 3 -3 1]);
0 0.5 1 1.5
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
x
y
1.5 2 2.5 3
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
x
y
6.1.3 Statemen Figure
Statemen figure digunakan apabila dalam suatu program terdapat beberapa grafik, tetapi ingin
ditampilkan pada halaman grafik yang berbeda. Misal program contoh 6-4, dimana keempat grafik
ditampilkan dalam satu layar, maka dengan statemen figure grafik tersebut dapat dibuat pada layar
yang berbeda. Statemen figure adalah
Figure ( nomor grafik), plot (…,….)
Contoh 6-4:
clf
wt = 0: 0.05: 3*pi;
v=120*sin(wt); % tegangan sinusoidal
i=100*sin(wt-pi/4); % Arus sinusoidal
p=v.*i; % daya Instantaneous
figure(1),plot(wt,v, wt,i); % Grafik 1
title('Voltage & current')
xlabel('omegat, radians ');
figure(2),plot(wt,p); % Grafik 2
title('Power')
xlabel(' omegat, radians ');
Fm=3.0;
fa = Fm*sin(wt);
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
figure(3),plot(wt,fa, wt,fb, wt,fc ); % grafik 3
Ansar Suyuti
VI-
81
8. G r a f i k
title('3-phase mmf');
xlabel(' omegat, radians ');
fR = 3/2*Fm;
figure(4),plot(-fR*cos(wt),fR*sin(wt)); % Grafik 4
title('mf')
0 1 2 3 4 5 6 7 8 9 10
-150
-100
-50
0
50
100
150
Voltage & current
ωt, radians
0 1 2 3 4 5 6 7 8 9 10
-2000
0
2000
4000
6000
8000
10000
12000
Power
ωt, radians
0 1 2 3 4 5 6 7 8 9 10
-3
-2
-1
0
1
2
3
3-phase mmf
ωt, radians
Ansar Suyuti
VI-
82
9. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
-5 -4 -3 -2 -1 0 1 2 3 4 5
-5
-4
-3
-2
-1
0
1
2
3
4
5
mf
6.2 Grafik 3- Dimensi
6.2.1 Statemen Plot
Statemen plot(x,y,z), berguna untuk menghasilkan sebuah garis 3 dimensi dari 3 buah vektor x,y,z
yang menyatakan besar masing-masing sumbu
Contoh 6-5:
» t=0:pi/50:10*pi;
» plot3(sin(t),cos(t),t)
Hasilnya :
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
10
20
30
40
atau perintah
Ansar Suyuti
VI-
81
10. G r a f i k
plot (x1,y1,z1,s1,x2,y2,z2,s2,….)
mengkombinasikan beberapa plot (x,y,z,s), dimana x,y,z vektor atau matriks dan s string.
6.2.2 Statemen Meshgrid
Untuk menggambar permukaan koordinat z berdasarkan nilai matriks m x n. Antar elemen matriks
dihubungkan garis dalam penyajiannya.
Misal z = f(x,y)
22
22
)sin(
yx
yx
z
+
+
=
ingin ditampilkan pada rentang -8 8≤≤ x dan -8 8≤≤ y
» x=-8:0.5:8;
» y=x;
» [X,Y]=meshgrid(x,y);
» R=sqrt(X.^2+Y.^2)+eps;
» Z=sin(R)./R;
» mesh(Z)
Ansar Suyuti
VI-
82
11. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
6.2.3 Stateman Contour
Statemen countour digunakan untuk memvisualisasi kontur atau garis-garis yang menunjukkan
ketinggian tetap. Satatemen contour adalah :
CONTOUR(Z), menggambar contour berdasarkan nilai Z
CONTOUR (X,Y,Z), dimana X dan Y vektor, untuk membatasi area contour dari Z
CONTOUR(Z,N) dan CONTOUR(X,Y,Z,N), menggambar N buah garis
CONTOUR(Z,V) dan CONTOUR(X,Y,Z,V), menggambar sebanyak LENGTH(V) garis contour pada nilai vektor
V
CONTOUR(…..,'linetype') menggambar dengan tipe garis tertentu.
Contoh :
» contour(peaks,50)
5 10 15 20 25 30 35 40 45
5
10
15
20
25
30
35
40
45
6.2.4 Statemen Mesh dan Surface
Fungsi mesh dan surf menampilkan permukaan secara 3 dimensi. Jika Z matriks dengan elemen Z(i,j)
mendefinisikan ketinggian pada grid (i,j), maka
mesh(Z)
membangkitkan rangka berwarna permukaan matriks Z
Ansar Suyuti
VI-
81
12. G r a f i k
surf(Z)
membangkitkan rangka dan pewarnaan permukaan dari Z
contoh :
» mesh(peaks)
dengan perintah tambahan
colormap(hot)
atau
colormap(pink)
maka warna akan beruba sesuai perintah
Memotong sebagian gambar dengan NaN
NaN(Not a Number) bisa untuk menghilangkan sebagian visualisasi
Misal :
» p=peaks;
» p(25:35,2030)=nan*p(25:35,20:30);
» p(25:35,20:30)=nan*p(25:35,20:30);
Ansar Suyuti
VI-
82
13. Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro
» mesh(peaks,p)
6.2.5 Arah Pandang Grafik
Dalam MATLAB anda dapat menentukan sudut untuk melihat garafik tiga dimensi. Statemen
view(asimuth,elevation) mengeset sudut pandang dengan menentukan sudut proyeksi pandang mata
dan ketinggian anda. Statemen adalah
view(a,b)
dimana :
a : sudut antara arah pandang terhadap titil (0,0) dengan bidang (x,y)
b : sudut antara proyeksi arah pandang mata ke bidang (x,y) dengan bidang (z,y)
contoh :
» view(20,0)
Ansar Suyuti
VI-
81