Grafik_2D_&_3D_(Kelompok-3)
-
Upload
putra-rezpector-ngalam -
Category
Documents
-
view
220 -
download
0
description
Transcript of Grafik_2D_&_3D_(Kelompok-3)
TUGAS
MATEMATIKA TERAPAN
KRISTINA W.,S.Si, MPd.
GRAFIK 2-D DAN 3D PADA MATLAB
Oleh :
Ari Prahastomo R. JTD-1D / 1441160052
Bambang Eka S.W.P JTD-1D / 1441160004
Debby Rachmawati D. JTD-1D/ 1441160043
JARINGAN TELEKOMUNIKASI DIGITAL
TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2015
KATA PENGANTAR
Assalamua’alaikum wr.wb.
‘Makalah GRAFIK 2-D dan 3D pada MATLAB’ menyediakan materi-materi tentang
bagaimana penggunaan MATLAB yang berkaitan dengan grafik 2-D maupun 3-D yang di
ringkas di dalam makalah ini.
MATLAB adalah salah satu bahasa pemograman untuk komputasi teknis, utamanya
pada bidang matematika, sains, dan teknik. Beberapa versi MATLAB telah dirilis diantaranya
versi 4 hingga versi 8. MATLAB dapat dioperasikan ddengan sistem windows 98, windows
xp, windows 7 hingga windows 8. MATLAB memerlukan ruang space minimal 16 MB,
disamping itu supaya bekerja dengan baik diperlukan minimal 50 MB ruang ksosng pada
hardisk. Prosesor dari generasi Intel Pentium sangat disarankan untuk mempercepat proses
komputasi.
Di dalam MATLAB juga membahas tentang grafik 2-D dan grafik 3-D. MATLAB
sendiri menyediakan fungsi-fungsi dalam pembuatan grafik 2-D dan grafik 3-D. Didalam
grafik 2-D kita akan dikenalkan dengan berbagai macam hal yang berkaitan dengan grafik 2-
D, seperti menggunakan fungsi plot, pola garis dan warna, grid label dan legenda, manipulasi
sumbu dan grafik, serta grafik 2-D khusus.
Disisi lain kita juga dikenalkan dengan grafik 3-D serta fungsi-fungsinya. Di grafik 3-
D kita akan mempelajari fungsi plot, fungsi mesh, fungsi surf, kontur, fungsi sphere dan
cykinder, pengaturan warna dan gambar animasi.
A. GRAFIK 2-D
7.1 Menggunakan fungsi plot
Fungsi yang di gunakan untuk menggambar grafik dua dimensi (grafik 2-D) dalam
koordinat cartesius adalah plot. Sebagai contoh jika akan di gambar grafik fungsi y = −x
x2+1
dengan nilai -3 ≤ x ≤ -3, dapat di ketikkan perintah-perintah sebagaimana di tunjukkan
pada contoh 7.1 di bawah ini.
Contoh 7.1 di bawah ini :
%Grafik fungsi y = -x/(x^2+1)
%dibuat oleh Budi Doremi
%untuk contoh buku MATLAB
x = -3 : 0.2 :3; %interval [-3,3] di bagi ke dalam 30 titik
y = -x./(x.^2 + 1);
plot (x,y)
Gambar 7.1. Grafik fungsi y = −x
x2+1
Pada Contoh 7.1 di atas, interval -3 ≤ x ≤ -3 di bagi kedalam 30 titik data, yang di
tunjukkan dengan perintah : x = -3 : 0.2 : 3 ; Ini berarti grafik akan di buat berdasarkan 30
pasang data titik (x,y). Kemudian perintah plot (x,y) akan menggambar grafik yang di minta.
Untuk mengetahui (melihat) grafik dari hasil perintah di atas dapat di lakukan sebagai
berikut, dari Jendela Perintah MATLAB :
1. Klik Window
2. Kemudian pilih Figure No,1
Selanjutnya MATLAB akan menampilkan Jendela Figure No.1 sebagaimana tampak pada
Gambar 7.1 di atas.
MATLAB juga memberikan fasilitas untuk menampilkan beberapa gambar sekaligus dalam
satu jendela figure untuk nilai array yang sama. Contoh 7.2 di bawah ini akan menggambar
grafik fungsi y = sin(x), y = cos(x), dan y = sin(x) + cos(x) untuk array x yang sama, maka
dalam hal ini 0 ≤ x ≤ 2π di bagi kedalam 45 titik.
Contoh 7.2:
%grafik fungsi y = sin(x), y = cos(x), dan y = sin(x) + cos(x)
%dibuat oleh Budi Doremi
%untuk contoh buku MATLAB
x = linspace (0, 2*pl, 45);
y = sin(x);
z = cos(x);
w= sin(x) + cos(x);
plot(x,y,x,z,x,w)
Gambar 7.2 Grafik y = sin(x), y = cos(x), dan y = sin(x) + cos(x)
Dari contoh 7.2 di atas , perhatikan bahwa ketiga grafik tersebut pada saat yang sama
untuk array x yang sama, di tampilkan pada jendela yang sama sebagaimana ditunjukkan
pada gambar 7.2 di atas. Perhatikan juga bahwa secara otomatis MATLAB akan memberikan
warna yang berbeda untuk tiap grafik yang di tampilkanya. Pada Gambar 7.2 tersebut warna
kuning (yellow) untuk grafik dari sin(x)+cos(x), warna magenta untuk grafik cos(s), dan
warna cyan untuk grafik sin(x).
7.2 Pola Garis dan Warna
Grafik yang di tampilkan oleh MATLAB pada Contoh 7.1 maupun Contoh 7.2
mempunyai pola garis padat (solid linestyle), serta warna (color) yang secara otomatis
diberikan oleh MATLAB. User dapat mengatur atau memilih pola garis untuk grafik yang di
buatnya serta warna dari grafik yang di inginkanya, dengan menambahkan karakter tertentu
yang berfungsi mengatur pola garis dan warna dari grafik. Tabel 7.1 di bawah ini
menunjukkan warna dan pola garis yang dapat di pilih untuk membuat grafik.
Tabel 7,1 Kode Warna Pola dan Garis
Kode Warna Kode Pola Garis
y Kuning (yellow) . Titik (point)
m Magenta o Lingkaran (circle)
c Cyan x x-mark
r Merah (red) + Plus
g Hijau (green) * Bintang (star)
b Biru (blue) - Garis padat (solid line)
w Putih (white) : Dotted line
k Hitam (black) -. Dash-dot line
-- Dash line
Pola garis yang diberikan oleh MATLAB adalah garis padat (solid line) sampai user
menentukan pola garis tertentu untuk grafiknya. Sedangkan jika user tidak secara khusus
memilih warna untuk grafiknya, warna yang di berikan oleh MATLAB (untuk satu jendela
Figure yang memuat beberapa gambar sekaligus) akan selalu diawali dengan warna kuning,
magenta, cyan, dan seterusnya sampai enam warna dalam Tabel 7.1 di atas. Jadi jika satu
jendela Figure memuat 7 buah gambar sekaligus, maka gambar ke 7 akan diberi warna
kuning oleh MATLAB. Contoh 7.3 berikut ini menggunakan pola garis dan warna yang
berbeda dari Contoh 7.2 di atas.
Contoh 7.3
x = linspace(0.2*pi,45);
y = sin(x);
z = cos(x);
w = sin(x) + cos(x);
plot(x, y,’r*’, x, z, ’bo’, x, w, ‘g+’)
Gambar 7.3 : Grafik sin(x), cos(x), dan sin(x) + cos(x)
Pada Gambar 7.3 di atas, grafik sin(x) digambarkan dengan warna merah dan pola garis
bintang, hal ini dihasilkan oleh perintah plot(x,y, ‘ r * ‘). Grafik cos(x) digambarkan dengan
warna biru dan pola garis lingkaran yang di hasilkan oleh perintah plot(x, z, ‘bo’). Sedangkan
grafik sin(x) + cos(x) digambarkan dengan warna hijau dan pola garis plus, yang dihasilkan
oleh perintah plot(x, w, ‘g+’).
7.3. Grid Label dan Legenda
Sejauh ini grafik yang ditampilkan oleh MATLAB tampak masih kurang komunikatif
dengan user. Untuk membantu memperjelas dalam membaca atau memahami grafik, dapat
ditambahkan petak-petak (grid), label, atau legenda pada grafik yang di buat.
Perintah grid on akan menambahkan garis-garis grid pada grafik yang dibuat.
Sebaliknya, perintah grid off akan menghapus garis-garis grid dari grafik. Sedangkan
perintah grid tanpa diikuti argument tambahan akan mengembalikan ke posisi grid off jika
sebelumnya dalam posisi grid on; begitu pula sebaliknya. Jika user tidak memberikan
perintah khusus, MATLAB selalu menampilkan grafiknya dalam keadaan grid off.
Sumbu horizontal dapat diberi label (nama) dengan perintah xlabel, sedangkan sumbu
vertical dapat diberi label (nama) dengan perintah ylabel. Judul grafik (yang ditampilkan di
atas grafik) dapat diberikan dengan menggunakan perintah title.
Contoh 7.4:
%grafik y = x/(x^2+x+1) dan y = -x/(x^2 + x + 1)
x = -3 : 0.1 : 4; % x pada interval [-3,4]
y = x./(x^2+x+1);
z = -x./(x^2 + x + 1);
plot (x,y,x,z)
grid on
xlabel(‘variable Independen x’) %label sumbu horizontal
ylabel(‘variable dependen y dan z’) %label sumbu vertical
title(‘Grafik y = x/(x^2+x+1) dan y = -x/(x^2 + x + 1) ’) %Judul
Gambar 7.4: Grafik y = x
x2+x+1 dan y =
−x
x2+x+1
User dapat juga menambahkan label pada lokasi tertentu jendela Figure dengan
menggunakan perintah text(x,y, ‘string’). Dalam perintah tersebut (x,y) menunjukkan
koordinat awal (tepi kiri) dari ‘string’. Di samping itu, user dapat juga menambahkan legenda
dari grafik yang di gambarnya, yaitu dengan perintah legend. Contoh 7.5 berikut ini adalah
grafik dari Contoh 7.4 dengan menambahkan perintah text dan legend.
Contoh 7.5:
%grafik y = x/(x^2+x+1) dan y = -x/(x^2+x+1)
x = -3 : 0.1 : 4 ; % x pada interval [-3,4]
y = x./ (x^2 + x + 1);
z = -x./ (x^2 + x + 1);
plot(x, y, ‘r-’, x, z, ‘k-’)
grid on
xlabel(‘variable independen x’)
ylabel(‘variable dependen y dan z’)
title (‘Grafik y = x/(x^2 + x + 1) dan y = -x/(x^2 + x + 1) ’)
legend (‘y = x/(x^2 + x + 1)’,’y = -x/(x^2 + x + 1)’)
Gambar 7.5: Grafik y = x
x2+x+1 dan y =
−x
x2+x+1
User dapat juga menempatkan label di lokasi tertentu di jendela Figure dengan perintah
gtext. Sintak dari perintah gtext adalah : gtext(‘string’). Perintah gtext akan menukar jendela
yang sedang aktif ke jendela Figure. Selanjutnya dengan menggerakkan mouse, maka label
‘string’ yang akan di kembalikan ke grafik dapat di bawa ke lokasi yang dinginkan, kemudian
setelah sampai pada tempat yang dikehendaki user, dapat dilakukan klik untuk menempatkan
‘string’. Dengan tambahan perintah:
gtext(‘y = -x/(x^2+x+1)’)
dari Contoh 7.5 di atas, silahkan user mencoba menempatkan string tersebut di lokasi yang
sesuai pada grafik.
7.4 Manipulasi Sumbu dan Grafik
Sumbu grafik dapat diatur sesuai keperluan user. MATLAB menyediakan berbagai
perintah yang dapat di gunakan untuk mengatur tampilan sumbu (axes) pada suatu grafik.
Tabel 7.2 berikut ini menunjukkan beberapa perintah yang berhubungan dengan manipulasi
sumbu.
Contoh 7.6
%grafik fungsi y = 2e^x – x^3 – 2x^2
%untuk contoh buku MATLAB
%oleh BUDI MURTIYASA
x = -4 : 0,1 : 4;
y = 2*exp(x) – x.^3 + 2*x.^2;
plot (x,y)
.grid
xlabel(‘x’)
ylabel(‘y’)
title (‘Grafik y =2e^x – x^3 -2x^2’)
title (0, 4, ‘y =2e^x – x^3 -2x^2’)
Perintah-perintah pada Contoh 7.6 tersebut akan menghasilkan gambar sebagaimana
ditunjukkan dalam Gambar 7.4 di bawah ini.
Tabel 7.2 Manipulasi Sumbu
No Perintah Keterangan
1 axis([xmin xmax ymin ymax])Membuat sumbu dengan nilai minimum dan
maximum sebagaimana ditunjukkan array
2 axis auto atau axis (‘auto’)Kembali ke skala sumbu secara otomatis
(default MATLAB)
3 axis off atau axis (‘off’)
Menghapus semua label pada sumbu. Hanya
meniysakan label yang dibuat dengan
perintah text atau gtext
4 axis on atau axis (‘on’)Menampilkan kembali semua label pada
sumbu
5 axis xy atau axis (‘xy’) Menggunakan bentuk koordinat kartesius,
dimana nilai sumbu vertical naik dari bawah
ke atas, dan nilai sumbu horizontal naik dari
kiri ke kanan. Ini merupakan sistem sumbu
default dalam MATLAB
6 Axis ij atau axis (‘ij’)
Menggunakan bentuk koordinat matriks;
artinya nilai sumbu vertical turun dari atas ke
bawah, dan sumbu horizontal nilainya naik
dari kiri ke kanan
7 Axis equal atau axis (‘equal’)Membuat factor skala pada kedua sumbu
menjadi sama
Gambar 7.6 : Grafik fungsi y= 2ex – x3 -2x2
Kemudian jika perintah-perintah pada Contoh 7.6 ditambah dengan perintah :
axis off
akan dihasilkan gambar sebagaimana ditunjukkan pada Gambar 7.7 di bawah ini.
Gambar 7.7: Grafik fungsi y = 2ex – x3 -2x2
Kemudian jika ditambahkan perintah-perintah :
grid on
axis ij
axis on
akan di peroleh gambar seperti pada Gambar 7.8 di bawah ini.
Gambar 7.8: Grafik fungsi y = 2ex – x3 -2x2
Salah satu perintah yang berguna untuk melakukan manipulasi grafik adalah perintah hold.
Dengan perintah hold on dimaksudkan bahwa MATLAB tidak memindahkan grafik yang
telah dibuat, ketika user memakai kembali perintah plot pada program yang dibuatnya.Ini
berarti pada jendela figure yang sama akan memunculkan dua buah grafik sekaligus. Secara
otomatis MATLAB akan mangalur kembali (bila perlu) skala dari sumbu yang dipakai untuk
menampilkan kedua grafik sekaligus. Sedangkan perintah hold off akan mengembalikan
kondisi dimana user dapat membuat grafik baru pada jendela Figure yang baru.
Contoh 7.7:
%grafik fungsi y = 3sin(x) – 2 cos(x)
x =-4 : 0.1 : 6;
y = 3*sin(x) – 2*cos(x);
plot (x,y’r’)
grid on
xlabel(‘x’)
ylabel(‘y’)
Perintah-perintah tersebut menghasilkan gambar sebagaimana ditunjukkan pada gambar 7.9
dibawah ini,
Gambar 7.9 : Grafik fungsi y = 3 sin(x) – 2 cos(x)
Selanjutnya jika user ingin menggambar grafik yang lain pada Jendela Figure yang sama,
misalnya untuk grafik y = x-3 sin(x), dapat ditambahkan perintah –perintah berikut ini :
hold on
z = x – 3*sin(x);
plot(x,z,’b’)
legend(‘y = 3sin(x) – 2 cos(x)’,’y = x – 3 sin(x)’)
text(-4,3,’ y = 3 sin(x) – 2 cos(x)’)
text(4,-3,’y = x – 3 sin(x)’)
Tambahan perintah-perintah tersebut akan menghasilkan gambar sebagaimana ditunjukkan
pada Gambar 7.10 berikut ini.
Gambar 7.10 : Grafik y = 3sin(x) – 2cos(x) dan y = x – 3 sin(x)
Perintah subplot dapat digunakan membagi satu jendela Figure menjadi beberapa
subjendela, yang masing-masing subjendela dapat mempunyai sumbu sendiri-sendiri.
Karenanya dengan perintah subplot, tiap-tiap subjendela dapat digunakan untuk menampilkan
gambar dari grafik yang berbeda pula. Secara umum perintah subplot mempunyai sintak :
subplot(m,n,p)
Pada perintah tersebut, dengan m dan n bilangan bulat positif, dimaksudkan bahwa satu
jendela Figure dibagi menjadi mxn buah subjendela, dengan p (di mana p bernilai 1 sampai
mxn) menunjukkan sub jendela dibaca (dinomori) dari kiri ke kanan dimulai dari baris paling
atas (baris pertama), kemudian baris kedua, dan seterusnya.
Andaikan akan digambar seperti grafik fungsi y = sin(x), y=cos(x), y = sin(x) + cos(x),
dan y= sin(x) + cos(x), dan y = sin(x)-cos(x) berturut-turut ditempatkan dalam subjendela 1,
subjendela , subjendela 3, dan subjendela 4 dalam satu jendela Figure yang sama. Dalam hal
ini karena jendela Figure akan dibagi ke dalam 4 buah subjendela, dapat digunakan perintah
subplot(2,2,p) dengan p=1,2,3,4. Perintah selengkapnya untuk menggambar keempat grafik
tersebut pada empat buah subjendela sebagaimana disajikan dalam Contoh 7.8 berikut ini.
Contoh 7.8:
%Perintah subplot untuk membuat beberapa subjendela
%dibuat untuk BUDI DOREMI
%untuk contoh Buku MATLAB
x = linspace(0,2*pi,45); % [0,2*pi] dibagi kedalam 45 detik
y = sin(x);
z = cos(x);
w= sin(x) + cos(x);
t = sin(x) – cos(x);
subplot(2,2,1) %mengaktifkan subjendela 1 untuk sin(x)
plot(x,y);
axis([0 2*pi -1 1])
title(‘Grafik sin(x)’)
xlabel(‘x’)
ylabel(‘y’)
subplot(2,2,2) %mengaktifkan subjendela 2 untuk cos(x)
plot(x,z)
axis([0 2*pi -1 1])
title(‘Grafik cos(x)’)
xlabel(‘x’)
ylabel(‘y’)
subplot (2,2,3) %subjendela 3 untuk sin(x) + cos(x)
plot(x,w)
axis([0 2*pi -2 2])
title(‘Grafik sin(x) + cos(x)’)
xlabel(‘x’)
ylabel(‘y’)
subplot (2,2,4) %subjendela 4 untuk sin(x) + cos(x)
plot(x,t)
axis([0 2*pi -2 2])
title(‘Grafik sin(x) - cos(x)’)
xlabel(‘x’)
ylabel(‘y’)
Perintah-perintah tersebut akan menampilkan sebagai berikut :
Gambar 7.11 Grafik sin(x), cos(x), sin(x) + cos(x) dan sin(x)-cos(x)
Jika user ingin kembali ke satu jendela figure untuk satu grafik, maka dapat digunakan
perintah subplot(1,1,1) Perintah subplot(1,1,1) berarti Jendela Figure di bagi kedalam 1x1= 1
jendela, yang berarti juga hanya ada 1 jendela.
Cara lain untuk membuat beberapa grafik dalam subjendela pada jendela Figure yang
sama adalah menggunakan perintah figure. Perintah Figure tersebut akan membuat jendela-
jendela figure. Sebagai contoh, program dalam Contoh 7.8 di atas dapat ditulis kembali
perintah figure sebagaimana ditunjukkan pada contoh 7.9 di bawah ini.
Contoh 7.9
%Perintah subplot untuk membuat beberapa subjendela
%dibuat untuk BUDI DOREMI
%untuk contoh Buku MATLAB
x = linspace(0,2*pi,45); % [0,2*pi] dibagi kedalam 45 detik
y = sin(x);
z = cos(x);
w= sin(x) + cos(x);
t = sin(x) – cos(x);
g1=figure; %subjendela baru dan tetap mengaktifkanya
plot(x,y);
axis([0 2*pi -1 1])
title(‘Grafik sin(x)’)
xlabel(‘x’)
ylabel(‘y’)
g2 = figure; % subjendela baru dan tetap mengaktifkanya
plot(x,z)
axis([0 2*pi -1 1])
title(‘Grafik cos(x)’)
xlabel(‘x’)
ylabel(‘y’)
g3 = figure; %subjendela baru dan tetap mengaktifkanya
plot(x,w)
axis([0 2*pi -1 1])
title(‘Grafik sin(x) + cos(x)’)
xlabel(‘x’)
ylabel(‘y’)
Program dalam contoh 7.9 tersebut jika dieksekusi juga akan menampilkan gambar seperti
pada Gambar 7.11 diatas.
Salah satu keuntungan dari penggunaa perintah figure adalah memudahkan penutupan /
penghapusan satu atau beberapa subjendelafigure jika sudah tidak diperlukan. Perintah untuk
menutup jendela (subjendela) dengan memakai perintah close. Perintah-perintah seperti
Close akan menutup jendela yang sedang aktif
Close (k) akan menutup subjendela k
Close all akan menutup semua sub jendela.
Sedangkan perintah untuk menghapus isi jendela (isi grafik) tanpa menutup jendela dapat
dilakukan perintah (clf).
Beberapa bidang datar seperti lingkaran atau elips misalnya, dapat lebih mudah digambar
grafiknya jika dibawa kedalam bentuk persamaan parameter. Andaikan akan di gambar
lingkaran x2+ y2 = 9 dan elips (x−2)2
16+¿ ¿¿ = 1. Peintah untuk menggambar lingkaran dan
elips tersebut dapat dilakukan dengan mengubah dulu persamaan lingkaran atau elips tersebut
ke dalam persamaan parameter, yaitu untuk lingkaran menjadi :
x = 3 cos(t);
y = 3 sin(t);
serta untuk ellips menjadi
x = 2 + 4 cos(t),
y = -3 + 6 sin(t),
Contoh 7.10:
%Gambar ellips dan lingkaran
t = 0 : 0.1 : 2*pi;
%data lingkaran
x1 = 3 * cos(t);
y1 = 3 * sin(t);
%data ellips
x2 = 2 + 4 * cos(t);
y2 = -3 + 6 * sin(t);
plot(x1,y1,’r’) % lingkaran dengan warna merah
hold on
plot (x2,y2,’b’) % ellips dengan warna biru
axis square % grafik di gambar pada bingkai persegi
grid on
xlabel(‘x’), ylabel(‘y’)
title(‘Grafik x^2+y^2 = 9 dan (x-2)^2/16 + (y+3)^2/36 = 1’)
Perintah dalam program tersebut menghasilkan gambar seperti pada gambar 7.12 di bawah
ini.
Gambar 7.12 : Grafik x2 + y2 = 9 dan (x−2)2
16+¿ ¿¿
Dari Contoh 7.10, perintah axis square menjadi grafik digambar dalam bingkai persegi
(catatan : default dari bingkai grafik adalah persegi panjang). Perhatikan juga bahwa kedua
grafik digambar pada jendela yang sama dengan menggunakan perintah hold on.
7.5. Grafik 2-D Khusus
MATLAB menyediakan beberapa fungsi yang berguna untuk membuat grafik 2-D
khusus. Beberapa fungsi tersebut adalah fill, polar, bar, state, stairs, hist, pie, compass,
feather, dan errorbar.
Fungsi fill berguna untuk mengisi warna kedalam suatu kurva tertutup dalam sistem
koordinat kartesius. Hasil program dari Contoh 7.11 tersebut di tunjukkan pada Gambar 7.13
berikut ini.
Gambar 7.13 Penggunaan fill untuk member warna kurva
Contoh 7.11:
%Contoh penggunaan fungsi fill
t = -3:0.1:3;
%data lingkaran
x = 2*cos(t);
y = 2*sin(t);
plot(x,y)
fill(x,y,’r’) %memberi warna merah lingkaran
%data ellips
x1 = 4*cos(t);
y1 = -2 + sin(t);
hold on
plot (x1,y1)
fill(x1,y1,’y’) %memberi warna kuning ellips
grid on
axis ([-5 5 -5 4])
text (-2,-4,’Gambar apakah ini ?’)
Fungsi polar berguna untuk menggambar grafik dalam sistem koordinasi polar.
Contoh 7.12:
%Grafik dalam koordinat polar
%Grafik kardioda dan lemniscates
%dibuat oleh BUDI DOREMI
Untuk contoh buku MATLAB
t = 0 : 0.1 : 2*pi;
r = 2 + 2 * cos(t); %kardioda
s = sqrt(4*cos(2*t)); %lemniscate
subplot(1,2,1) %mengaktifkan subjendela 1
polar(t,r) %menggambar kardioda
title(‘kardioda r = 2 + 2 cos(t)’)
subplot(1,2,2) %mengaktifkan subjendela 2
polar (t,s) %menggambar lemniscates
title(‘lemniscate s^2 = 4*cos(2*t)’)
Hasil program tersebut ditunjukkan dalam Gambar 7.14 berikut di bawah.
Dari sistem koordinat polar, MATLAB mempunyai fungsi yang berguna untuk
mengkonversi (mentransformasi) sistem polar ke sistem cartesius, yaitu fungsi pol2cart .
Jika t menyatakan sudut, r menyatakan sudut, r menyatakan radius dan koordinat polar,
kemudian x dan y adalah absis dan ordinat dari sistem cartesius, maka perintah :
[x,y] = pol2cart(t,r)
Plot(x,y)
akan menggambar grafik dengan data-data dalam sistem koordinat polar ke dalam koordinat
cartesius.
Gambar 7.14 : Kardioda dan Lemniscate
Andaikan akan di gambar sebuah rose (mawar) dengan persamaan r = sin(3t) cos(3t) pada
interval [0,2π]. Grafik rose pada koordinat polar seperti di tunjukkan pada Gambar 7.15
dibawah yang dihasilkan oleh perintah-perintah:
% grafik rose
t = 0:0.01:2*pi;
r = sin(3*t).*cos(3*t);
polar(t,r)
title (‘rose r = sin(3t) cos(3t)’)
Kemudian dengan menambahkan perintah-perintah :
[x,y] = pol2cart(t,r);
plot(x,y)
title(‘rose r = sin(3t) cos(3t)’)
menghasilkan gambar rose dalam koordinat kartesius seperti Gambar 7.16.
Gambar 7.15. Rose r = sin(3t) cos(3t) (Polar)
Gambar 7.16. Rose r = sin(3t) cos(3t) (Polar)
Contoh 7.13:
%menggambar fungsi polar pada sistem cartesius
%menggunakan fungsi pol2cart
%menggambar kardioda
tetha = 0:0.01:2*pi;
rho = 3 + 3 *cos(tetha);
[x,y] = pol2cart(tetha,rho);
plot(x,y)
pill(x,y,’r’)
xlabel(‘x’)
ylabel(‘y’)
title(‘kardioda r = 3 + 3 cos(t)’)
Gambar 7.17 Kardioda r= 3 + 3 cos (t)
Fungsi bar berguna untuk membuat bar chart atau dengan kata lain fungsi bar berguna
untuk membuat “persegi panjang” di bawah kurva dengan sumbu horizontal. Untuk lebih
jelasnya perhatikan Contoh 7.14 berikut ini.
Contoh 7.14:
%Contoh fungsi bar
x = linspace(0,2*pi,30);
y = sin(x);
bar(x,y) %membuat diagram bar
title(‘diagram bar dari y = sin(x)’)
Hasil dari diagram akan di tunjukkan di Gambar 7.18 di bawah ini.
e
Gambar 7.18. Diagram bar dari y = sin(x)
Fungsi stairs berguna untuk membuat diagram tangga, dalam hal ini hamper sama
dengan diagram bar tetapi tidak dilukiskan garis-garis di dalamnya. Gambar 7.19 merupakan
diagram tangga dari fungsi y = sin(x)
Contoh 7.15
%contoh fungsi stairs
x = linspace (0,2*pi,30);
y = sin(x);
stairs(x,y) %menggambar diagram tangga
title(‘diagram tangga dari y = sin(x)’)
Gambar 7.19: Diagram tangga dari y = sin(x)
Fungsi hist berguna untuk menggambar histogram dari distribusi statistika. Dalam hal
banyaknya data cukup besar, suatu histogram akan mempunyai bentuk mendekati kurva
normal. Contoh 7.16 berikut ini menggunakan fungsi hist untuk menggambar histogram,
seperti ditunjukkan Gambar 7.20.
Contoh 7.16:
%Contoh fungsi hist
x = -5 : 0.5 :5 ;
y= randn(10000,1); %10000 data secara random
hist(y,x) %menggambar histogram
title(‘histogram distribusi Gauss’)
Gambar 7.20 : histogram distribusi Gauss
B. Grafik 3D
8.1 Pengantar
MATLAB menyediakan fungsi-fungsi yang berguna untuk membuat grafik atau
gambar tiga dimensi. Beberapa fungsi berguna untuk menggambar garis pada dimensi tiga,
dan beberapa berguna menggambar permukaan.
Grafik 3-D yang digambar pada system kordinat cartesius mempunyai default :
1. Searah dengan titik pandang mata sebagai arah sumbu x,
2. Arah ke samping arah sumbu y, dan
3. Arah ke atas (tinggi) sebagai sumbu z.
Gambar 8.1 Sistem Koordinat Grafik 3-D
Pada Gambar 8.1, sudut orientasi terhadap bidang z = 0 disebut dengan sudut elevasi.
Sedangkan sudut orientasi terhadap bidang x = 0 disebut sudut azimuth. Dalam MATLAB
default grafik 3-D adalah sudut elevasi =300 dan sudut azimuth = −37.50. Jika dikehendaki,
user dapat mengubah besarnya sudut tersebut untuk mengubah sudut pandang terhadap grafik
3-D. Untuk mengubah sudut digunakan perintah : View ([a, e]), di mana a adalah azimuth
dan e adalah elevasi.
Beberapa perintah untuk membuat grafik 2-D dapat juga dipakai di grafik 3-D. Dalam
hal ini fungsi-fungsi seperti title, legend, text, xlabel, ylabel, zlabel, grid dapat dipakai untuk
membuat grafik 3-D. Demikian fungsi subplot juga dapat digunakan untuk grafik 3-D. Perlu
dipahami argument-argumen dari beberapa fungsi harus menyesuaikan dengan karakteristik
grafik pada ruang dimensi tiga. Misal fungsi text, yang berguna menempatkan ‘string’ pada
grafik, memerlukan tiga buah argument, yaitu nilai x, y, dan z. Jadi untuk perintah text (x, y,
z, ‘string’) akan menempatkan ‘string’ pada koordinat (x, y, z).
8.2 Menggunakan Fungsi plot3
Fungsi plot3 berguna menggambar garis pada ruang dimensi tiga. Perintah plot3 (x, y,
z) menggambar garis yang melalui titik-titik yang koordinatnya (x, y, z); di mana x, y, dan z
harus merupakan vector-vektor dengan banyaknya anggota sama.
Gambar 8.2 Grafik z = x + y, x = sin(t), y =sin(2t)
Contoh 8.1:
» contoh penggunaan fungsi plot3
» t = 0:0.1:2*pi;
» x = sin (t);
» y = sin (2*t);
» z = x + y;
» plot3 (x, y, z)
» grid on
» xlabel (‘x’), ylabel (‘y’), zlabel (‘z’)
» title (‘z = x + y, x = sin (t), y = sin (2t)’)
Perintah-perintah tersebut akan menghasilkan grafik sebagaimana ditunjukkan pada gambar
8.1 di atas.
Contoh 8.2 dibawah merupakan grafik z = x + y, dengan x = sin (t), y = sin (2t) untuk
0 ≤ t ≤ 2π di atas dengan beberapa suddut pandang yang berbeda.
Contoh 8.2:
%contoh penggunaan fungsi plot3
t = 0:0.1:2*pi;
x = sin (t); y = sin (2*t);
z = x + y;
%subjendela1, azimuth dan elevasi default
subplot (2, 2, 1)
plot3 (x, y, z), grid on
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘sudut pandang default’)
view (-37.5,30)
%subjendela2, azimuth +90, elevasi default
subplot(2, 2, 2)
plot3 (x, y, z), grid on
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘sudut (azimuth +90)’)
view (-37.5+90,30)
%subjendela3, azimuth default, elevasi +30
subplot (2, 2, 3)
plot3 (x, y, z), grid on
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘sudut (elevasi +30)’)
view (-37.5,60)
%subjendela4, tampil 2-D
subplot (2, 2, 4)
plot3 (x, y, z), grid on
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘azimuth = 0, elevasi = 90’)
view (0,90)
Gambar 8.3 sudut pandang grafik x = x+y, x = sin(t), y =sin(2t)
8.3 Fungsi mesh
Fungsi mesh berguna untuk membuat permukaan jarring (mesh) pada ruang dimensi
tiga. Sebelum fungsi mesh digunakan, diperlukan fungsi meshgrid yang berguna untuk
membangun array dua dimensi. Contoh 8.3 di bawah menunjukkan penggunaan fungsi
meshgrid untuk membangun array dua dimensi.
Contoh 8.3:
%contoh penggunaan fungsi meshgrid
x = [2 1 -1]; %array x
y = [1 3 5 7]; %array y
[A B] = meshgrid (x,y)
A =
2 1 -1
2 1 -1
2 1 -1
2 1 -1
B =
1 1 1
3 3 3
5 5 5
7 7 7
Dari contoh 8.3 tersebut amati bahwa array x mempunyai 3 anggota dan array y
mempunyai 4 anggota. Perintah [A B] = meshgrid (x, y) menghasilkan dua buah matriks A
dan B sedemikian hingga : matriks A baris-barisnya merupakan array x, dan mempunyai 4
baris; sedangkan matriks B kolom-kolomnya adalah array y, dan mempunyai 3 kolom.
Fungsi mesh dapat digunakan menggambar permukaan jarring berdasarkan data-data
yang dihasilkan oleh fungsi meshgrid. Andaikan akan digambar ellipsoida z= 2 x2+ y2,
dengan -2 ≤ x ≤ 2, -2 ≤ y ≤ 2. Untuk menggambar jarring ellipsoida ini dapat dikerjakan
sebagaimana ditunjukkan contoh berikut ini.
Contoh 8.4:
%contoh penggunaan fungsi mesh
A = [-2 : 0.1 : 2];
B = [-2 : 0.1 : 2];
[x y] = meshgrid (a, b);
z = 2*x.^2 + y.^2;
mesh (x, y, z)
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘ellipsoida z = 2x.^2 + y.^2’)
Gambar 8.4 Jaring Ellipsoida z=2x2 + y2
8.4 Fungsi surf
Fungsi surf juga berguna untuk menggambar permukaan (surface). Jika fungsi mesh
menggambar berbentuk jaring, fungsi surf menggambar permukaan yang berbayang-bayang/
diarsir (shading). Bandingkan Gambar 8.5 di bawah ini yang dihasilkan oleh fungsi surf
dengan Gambar 8.4 di atas yang dihasilkan oleh fungsi mesh.
Contoh 8.5:
%contoh penggunaan fungsi surf
x = [-2 : 0.1 : 2];
y = [-2 : 0.1 : 2];
[a b] = meshgrid (x, y);
z = 2*a.^2 + b.^2;
mesh (a, b, z)
xlabel (‘sb-x’), ylabel (‘sb-y’), zlabel (‘sb-z’)
title (‘ellipsoida z = 2x.^2 + y.^2’)
Gambar 8.5 Jaring Ellipsoida z=2x2 + y2 dengan fungsi surf
Baik fungsi mesh maupun fungsi surf, dapat juga dipakai menggambar suatu
permukaan berdasarkan data-data yang dibangun oleh fungsi peaks dan sphere. Perintah
peaks (n) berarti memproduksi matriks berdimensi nxn. Dengan demikian kegunaan fungsi
peaks ini sama dengan fungsi meshgrid, yaitu sama-sama menyediakan data untuk membuat
gambar permukaan dari fungsi mesh dan surf.
Contoh 8.6:
%contoh fungsi peaks
[x, y, z] = peaks(25);
subplot (1, 2, 1)
mesh (x, y, z)
xlabel (‘x’), ylabel (‘y’), zlabel (‘z’)
title (‘menggunakan fungsi mesh’)
subplot (1, 2, 2)
surf (x, y, z)
xlabel (‘x’), ylabel (‘y’), zlabel (‘z’)
title (‘menggunkan fungsi surf’)
8.5. Kontur
Kontur atau contour digunakan untuk membuat garis kontur dari data 3D. Garis-garis
kontur ini dibuat dengan teknik interpolasi dari titik-titik terdekat. Pada MATLAB sendiri
disediakan beberapa fungsi yang dapat digunakan untuk membuat kontur suatu permukaan.
Perintah contour (Z) akan menggambarkan kontur dari matriks Z.
Gambar 8.6 Kontur
Contoh 8.7
%contoh penggunaan fungsi contour
subplot (2,1,1)
A = eye(3,3);
contour(A)
title(‘contour dari I = eye(3,3)’)
subplot(2,1,2)
B = peaks(25);
contour(B)
title(‘contour dari peaks (25)’)
Kontur pada Gambar 8.6 (atas) adalah kontur yang di hasilkan oleh matriks Identitas
beridentitas 3. Sedangkan kontur pada Gambar 8.6 (bawah) adalah kontur yang di hasilkan
oleh matriks persegi berdimensi 25.
Grafik yang dihasilkan dengan fungsi mesh dan fungsi surf dapat juga di gambar
bersama-sama dengan konturnya. Untuk itu digunakan fungsi mesch dan fungsi surfc guna
membuat grafik permukaan bersama-sama dengan konturnya. Berikut ini digambar
permukaan hiperboloida dan paraboloida, masing-masing bersama konturnya.
Contoh 8.8 :
%permukaan jaring hiperboloida dan konturnya
%menggunakan fungsi mesch
a = [-2:0.1:2];
b = a;
[x y] = meshgrid (a,b);
z = x.^2 – y.^2;
meshc (x,y,z)
title (‘jaring hiperboloida dan konturnya’)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
Gambar 8.7 Jaringan hiperbola dan konturnya
Contoh 8.9
%permukaan jaring paraboloida dan konturnya
%menggunakan fungsi surfc
a = [-3:0.25:3];
b = a;
[x y] = meshgrid(a,b);
z = x.^2 – y+1;
surfc(x,y,z)
title (‘jaring paraboloida dan konturnya’)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
Gambar 8.8 permukaan jaring hiperboloida dan konturnya
Contoh 8.10
%Contoh penggunaan fungsi surfc
[x y z] = peaks(35);
surfc(x,y,z)
xlabel(‘sb- x’), ylabel(‘sb- y’), zlabel(‘sb- z’)
title(‘peaks(35) dan konturnya’)
Gambar 8.9 Peaks(35) dan Konturnya
8.6. Fungsi Sphere dan Cylinder
Fungsi sphere berguna untuk menyiapkan data untuk membuat permukaan berbentuk
bulat. Perintah [x y z] = sphere(n) akan membuat tiga buah matriks persegi berdimensi nxn
sebagai data untuk membuat gambar. Berdasarkan data tersebut, dapat dibuat permukaan
berbentuk bulat yang dapat dilakukan dengan fungsi surf, surfc, mesh, atau fungsi meshc.
Contoh 8.11 :
%contoh fungsi sphere
[x y z] = sphere(9);
surfc(x,y,z)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
title(‘permukaan sphere(9)’)
Grafik contour, mencetak kontur dari fungsi "peaks".
Gambar 8.10 . sphere(9)
Fungsi cylinder berguna untuk menyiapkan data untuk menggambar sebuah silinder.
Perintah [x y z] = cylinder(R, N) berarti menyiapkan data untuk sebuah silinder dengan jari-
jari adalah vektor R dan banyaknya titik yang mengelilingi silinder adalah N. Vektor jari- jari
R = [r1 r2], dimana r1 adalah jari- jari bidang alas silinder dan r2 adalah jari- jari bidang atas
silinder. Nilai default dari R = [1 1] dan N = 20. Sedangkan perintah [x y z] = cylinder(R)
berarti menyiapkan data untuk menggambar silinder dengan jari- jari R. Selanjutnya utnuk
menggambar silindernya dapat digunakan fungsi surf atau fungsi mesh.
Contoh 8.12 :
%penggunaan fungsi cylinder
%menyiapkan data menggambar silinder
[x y z] = cylinder(13)
surf (x,y,z)
title(‘silinder r=’)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
Gambar 8.11 Silinder dengan R = 13
Dengan melakukan manipulasi pada vektor jari- jari R, fungsi cylinder dapat
digunakan menyiapkan data untuk menggambar kerucut atau kerucut terpancung.
Contoh 10 :
%penggunaan fungsi cylinder
%menyiapkan data menggambar kerucut
%dengan modifikasi vektor jari- jari R
N = 17;
subplot(1,2,1)
R = [10 0];
[x y z] = cylinder (R, N);
surf (x,y,z)
title (‘kerucut’)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
subplot(1,2,2)
R = [10 4]; %jari- jari kerucut terpancung
[x y z] = cylinder (R, N);
surf (x,y,z)
title (‘kerucut terpancung’)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
Gambar 8.12 Kerucut dan Kerucut terpancung
8.7. Mengatur Warna
Pengaturan pemakaian warna antara grafik 2-D dengan grafik 3-D sangat berbeda.
Fungsi- fungsi yang berhubungan dengan pengaturan warna di antaranya adalah shadding
dan colormap. Fungsi shadding berguna untuk memberikan arsiran pada permukaan gambar
mempunyai tiga pilihan perintah, yaitu :
a. Shadding flat, berguna untuk memberikan arsiran datar (flat).
b. Shadding interp, berguna untuk memberikan arsiran terinterpolasi atau tambahan
arsiran.
c. Shadding faceted, berguna memberikan arsiran (biasa) pada permukaan gambar
(default MATLAB).
Fungsi colormap berguna untuk memberikan warna pada permukaan gambar. Sedangkan
warna- warna yang disediakan oleh MATLAB untuk grafik 3-D seperti ditunjukkan pada
tabel 8.1 berikut ini.
Tabel 8.1. Warna untuk Grafik 3-D
No Kode Keterangan
1 Hsv Hue- saturation- value (warna awal dan akhir merah); merah- merah
2 Hot Hitam- merah- kuning- putih
3 Cool Arsiran dari cyan dan magenta
4 Pink Pink terarsir pastel
5 Gray Abu- abu bergradasi
6 Bone Abu- abu bergradasi dengan sedikit biru
7 Jet Variasi hsv; biru- merah
8 Copper Warna tembaga
9 Prism Warna prisma, merah, orange, kuning, hijau, dan biru- violet
bergantian
10 Flag Merah, putih, biru, dan hitam bergantian
11 Autum Bayang- bayang merah dan kuning
12 Spring Bayang- bayang magenta dan kuning
13 Winter Bayang- bayang biru dan hijau
14 Summer Bayang- bayang hijau dan kuning
Berikut ini digambar hiperboloida pada interval -3≤ x≤ 3 dan -3≤ y≤ 3 dan juga
konturnya. Hiperboloida diberi warna jet dan tampil berarsir.
Contoh 8.14 :
%contoh penggunaan warna dan shadding
%pada hiperboloida
a = -3:0.2:3;
b = a;
[x y] = meshgrid (a, b);
z = x^2 – y^2;
surfc (x,y,z)
shading interp
colormap(jet)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’) title (‘hiperboloida dengan warna jet’)
Gambar 8.13 hiperbola z = x2-y2
Contoh 8.13 :
%contoh penggunaan warna dan shading
[x y z] = peaks(47);
surfc(x,y,z)
shading interp
colormap(hsv)
xlabel(‘sumbu- x’), ylabel(‘sumbu- y’), zlabel(‘sumbu- z’)
title (‘peaks(47) warna hsv’)
axis off
Gambar 8.14 peaks(47) warna hsv
Catatan : untuk fungsi plot 3 dan contour pengaturan warnanya sebagaimana pengaturan
warna untuk grafik 2-D.
8.8. Gambar Animasi
Salah satu fasilitas yang dimiliki MATLAB pada grafik 3- D adalah fungsi- fungsi
untuk membuat animasi, yaitu moviein, getframe, dan movie. Fungsi moviein untuk
membuat matrik frame yang berguna menyimpan movie frame. fungsi getframe untuk yang
ada. untuk mengambil gambar, sedangkan fungsi movie untuk memainkan (menggerakkan)
gambar- gambar yang ada. Untuk MATLAB Release 5.3, perintah moviein dapat diabaikan
(dapat tidak dipakai). Secara umum perintah- perintah untuk membuat gambar animasi adalah
sebagai berikut :
M = moviein(n);
for j = 1:n
blok_perintah_menggambar
M(:,j) = getframe;
end
movie(M)
Contoh berikut ini merupakan gambar animasi dari permukaan yang dilihat dari
berbagai sudut, dengan jalan mengbah sudut azimuth dan sudut elevasi.
Contoh 8.16 : (m- file)
%membuat gambar animasi
%gambar dibuat dengan mengubah sudut pandang
%mengubah nilai azimuth dan elevasi
[x y z] = peaks(37);
surf (x,y,z)
shading interp
axis off
colormap(jet)
m = moviein(25);
for i = 1:25
view(-37.5+20*i, 30+10*i);
m(:,i) = getframe;
pause(1)
end
movie(m)
DAFTAR PUSTAKA
Murtiyasa, Budi , 2002, Menyelesaikan Persoalan Matematika Dengan MATLAB, Surakarta:
Universitas Muhammadiyah Surakarta.