LAB. MANUFAKTUR
DEPARTEMEN TEKNIK MESIN
UNIVERSITAS INDONESIA
2008
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Modul ini berisi tentang pengenalan dan juga cara – cara pengoperasian MATLAB
serta dilengkapi dengan panduan cara pemograman MATLAB secara umum.
Pendekatan yang dilakukan dalam modul ini adalah dengan menggunakan contoh –
contoh pemrograman dengan menggunakan MATLAB dengan disertai penjelasan
tentang program tersebut. Secara umum materi yang akan diberikan dalam modul ini
adalah sebagai berikut:
Sintak dasar dan control flow
Teknik membangun data
Teknik manipulasi data array
Interaksi input output user
Interaksi dengan file input/output
Visualisasi data 2D dan 3D
Pemrograman Windows
Tujuan MODUL
Modul ini dibuat dengan tujuan untuk mempermudah pembelajaran MATLAB dan
memberikan pemahaman dasar mengenai pemrograman dengan menggunakan
MATLAB.
1
Pelatihan MATLAB lab. Manufaktur DTM FTUI
BAB I
PENDAHULUAN
MATLAB berasal dari 2 kata yaitu Matrix dan Laboratory. MATLAB seperti halnya
C dan C++ merupakan salah satu bahasa pemrograman komputer. Namun MATLAB
merupakan bahasa pemrograman tingkat tinggi yang lebih mudah digunakan.
MATLAB memberikan sistem interaktif yang menggunakan konsep array/matik
sebagai standar varialbel elemennya tanpa membutuhkan pendeklarasian array seperti
bahasa pemrograman lainnya. MATLAB banyak digunakan dalam lingkungan
pendidikan dan penelitian sebagai alat pemrograman standar.
2
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Window ini adalah window induk yang melingkupi seluruh lingkungan kerja
MATLAB. Pada beberapa program MATLAB ada perbedaan tampilan.
Window ini mulai ada pada MATLAB versi 6, berfungsi sebagai penuntun bagi
pemakai dalam memilih opsi yang telah disediakan langsung pada MATLAB.
Workspace Wimdow
3
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Window ini berfungsi sebagai navigator bagi pemakai dalam menyediakan informasi
mengenai variabel yang sedang aktif dalam workspace saat pemakaian. Workspace
adalah suatu lingkungan abstrak yang menyimpan seluruh variabel dan perintah yang
pernah digunakan selama pengunaan MATLAB berlangsung.
Berfungsi sebagai browser direktory aktif, yang serupa dengan window explorer.
Command History
4
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Command Window
Merupakan window yang penting. Pada window ini dituliskan berbagai sintak dan
perintah pemrograman MATLAB. Window ini merupakan tempat interaksi kita
dengan MATLAB.
Matlab Editor
5
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Contoh:
Cara ini memiliki kelemahan bila banyak variabel yang berubah maka penggantian
akan dilakukan dengan manual.
Cara lain menggunakan MATLAB adalah dengan menggunakan M file. Cara ini
merupakan cara yang sangat efektif dan handal dalam melakukan berbagai jenis
6
Pelatihan MATLAB lab. Manufaktur DTM FTUI
pemrograman. Dengan cara ini maka kita akan lebih mudah mengevaluasi perintah
secara keseluruhan tanpa harus mengganti skrip.
Contoh:
Ketik pada MATLAB editor seperti di bawah ini. Lalu save dengan nama latihan01
Jika tidak muncul maka berarti diretory penyimpan m file salah. Ganti diretory di
tempat m file program disimpan.
Yang perlu diperhatikan dalam penulisan pada editor adalah pemberian nama variable
tidak boleh sama dengan nama-nama default yang telah dikenal MATLAB. Jika tidak
maka akan terjadi overlaping yang mengakibatkan program tidak akan jalan.
7
Pelatihan MATLAB lab. Manufaktur DTM FTUI
BAB II
SINTAK DASAR MATLAB
Seperti bahasa pemrograman pada umumnya, MATLAB juga memiliki metoda dan
simbol tersendiri dalam penulisannya. Tipe data yang dikenal dalam pemrograman
MATLAB hanya 2 numeric dan string. Tidak seperti bahasa pemrograman lain, dalam
pemrograman MATLAB tidak dibutuhkan deklarasi eksplisit yang menyatakan tipe
data, karena MATLAB memiliki kemampuan tersendiri untuk mengenali tipe data
yang dimasukan oleh pemrogram pada setiap variabelnya, dan dapat secara dinamis
mengganti tipe data tersebut pada waktu yang relatif bersamaan tanpa adanya
kesalahan. Namun demikian ada beberapa hal penting ayng harus diperhatikan dalam
penulisan sintak, yaitu:
1. penamaan variabel bersifat case censitif, artinya MATLAB akan
membedakan adanya huruf besar dan kecil.
2. panjang nama variabel tidak dapat melebihi 31 karakter
3. penamaan variabel harus diawali dengan huruf tidak dengan bilanga atau
simbol lainnya.
8
Pelatihan MATLAB lab. Manufaktur DTM FTUI
a=
12 30
10 20
9
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Operasi Matematika
10
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Pengetahuan tentang Matrik adalah suatu hal yang sangat mendasar dalam
pemrograman MATLAB. Karena semua pola operasi matematika akan dikembalikan
dalam pola operasi matrik. Sebagai contoh adalah ketika melakukan deklarasi variabel
a yang diisi dengan nilai 5 adalah sebagai berikut:
>>a = 5
ans =
5
Maka secara otomatis MATLAB akan mengenal variabel a sebagai sebuah matrik
dengan dimensi 1x1. lihat pembuktian dibawah
>>a (1,1)
ans =
5
Perbedaan akan sangat terasa ketika melakukan operasi yang melibatkan perkalian
dan pembagian. Sebgai contoh lihat penyelesaian dibawah:
>>pjg = 5;
>>lbr = 6;
>>luas = pjg*lbr;
Luas =
30
Jika panjang dan lebar terdapat banyak elemen maka akan terjadi
Eror tersebut terjadi karena tidak terpenuhinya syarat perkalian matrik. Maka agar
sesuai dengan yang dimaksud adalah sebagaiberikut:
11
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Penggunaan titik dimaksudkan perkalian antar elemen pada data panjang dengan
lebar. Keputusan penggunaan titik sesuai dengan kebutuhan dalam program.
12
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Sedangkan untuk kebutuhan pemisahan nilai real dan imajiner dapat dengan mudah
dilakukan, misalnya:
13
Pelatihan MATLAB lab. Manufaktur DTM FTUI
14
Pelatihan MATLAB lab. Manufaktur DTM FTUI
15
Pelatihan MATLAB lab. Manufaktur DTM FTUI
16
Pelatihan MATLAB lab. Manufaktur DTM FTUI
HASILNYA=>
Control Flow
Sama sepeti bahasa yang lainnya pada matlab banyak tipe command yang
mengkondisikan sesuatu data. Contohnya adalah sbb:
Sintak iterasi ini digunakan untuk melakukan pengulangan proses tanpa diketahui
jumlah pengulangannya. Iterasi ini hanya berhenti melakukan pengulangan ketika
mencapai syarat tertentu. Cara penulisannya adalah sbb:
While
syarat
Perintah –perintah
end
17
Pelatihan MATLAB lab. Manufaktur DTM FTUI
HASILNYA
if syarat1
Perintah –perintah
elseif syarat2
18
Pelatihan MATLAB lab. Manufaktur DTM FTUI
HASILNYA
swicth variabel11
case value1
perintah-perintah
case value2
perintah-perintah
.
.
.
Otherwise perintah-perintah
end 19
Pelatihan MATLAB lab. Manufaktur DTM FTUI
20
Pelatihan MATLAB lab. Manufaktur DTM FTUI
BAB III
TEKNIK MANIPULASI DATA
Vektor kolom
Vektor baris
matrik
21
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Data log.
22
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Data random.
23
Pelatihan MATLAB lab. Manufaktur DTM FTUI
24
Pelatihan MATLAB lab. Manufaktur DTM FTUI
25
Pelatihan MATLAB lab. Manufaktur DTM FTUI
BAB IV
VISUALISASI MATLAB
MATLAB selain untuk program juga dapat digunakan untuk menampilkan grafik baik
itu 2D atau 3D. Untuk dapat membuat grafik pada MATLAB sebenarnya tidak sulit.
Penampilan grafik pada MATLAB hanya menggunakan comand plot. Berikut adalah
contoh penggunaan sederhana.
Grafik tersebut terlihat polos tanpa keterangan. Untuk memberikan keterangan grafik
beri command title dan label serta grid bila perlu.
26
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Grafik juga dapat diganti warna serta jenis garisnya. Contohnya sbb:
27
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Berikut ini adalah tabel sintak yang dipakai dalam editing grafik pada MATLAB.
Selain grafiknya font pada legenda grafik juga dapat diedit. Sintaknya adalah sbb:
28
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Berikut ini adalah tabel yang digunakan untuk font properti pada MATLAB.
FONT PROPERTY VALUE
fontname Arial, times news roman, dll.
fontweight Bold, normal
fontsize 1,2,3,.....,30
fontangel Italic,normal.
Selain hal tersebut. Grafik juga dapat ditampilkan dengan cara overlay. Maksudnya
adalah penampilan lebih dari satu grafk dalam plot yang sama. Sintaknya adalah sbb:
Plot(x1,y1,simbol1,x2,y2,simbol2,……,dst)
Atau dengan cara lain yaitu fungsi hold on. Sintaknya adalah sbb:
29
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Visualisasi data 3D merupakan penampilan data dalam bidang x,y,z. Sintak – sintak
editing grafiknya sama dengan 2D. Namun sintak untuk membuat grafik 3D adalah
plot3(x,y,z); . Berikut ini adalah contoh cara ploting 3D:
Fungsi mesh.
>> [x,y]=meshgrid(-3:0.25:3);
>> z=peaks(x,y);
>> plot3(x,y,z)
30
Pelatihan MATLAB lab. Manufaktur DTM FTUI
>> [xi,yi]=meshgrid(-3:0.25:3);
>> zi1=interp2(x,y,z,xi,yi,’nearest);
>> surf(xi,yi,zi1)
>> zi2=interp2(x,y,z,xi,yi,’bilinear’);
>> surf(xi,yi,zi2)
31
Pelatihan MATLAB lab. Manufaktur DTM FTUI
>> zi3=interp2(x,y,z,xi,yi,’bicubic’);
>> surf(xi,yi,zi3)
32
Pelatihan MATLAB lab. Manufaktur DTM FTUI
BAB V
PEMROGRAMAN GUI
GUI (Graphic User Interface) merupakan salah satu fitur yang terdapat pada
MATLAB untuk dapat membuat suatu tampilan program lebih menarik, atraktif, dan
juga efektif. Dengan adnay GUI maka kita dapat menggunakan program yang kita
buat secara langsung dengan tampilan yang lebih mudah dipahami. Penggunaan GUI
pada MATLAB tidak sulit, karena MATLAB telah menyediakan komponen –
komponen standar untuk pemrograman window. Unutk dapat menggunakan
komponen – komponen tersebut kita harus memahami konsep pemrograman berbasis
objek di matlab dengan benar. Berikut ini adalah penjelasannya.
PARENT
SCREEN
FIGURE
CHILDREN
SCRIPT STYLE
Penjelasan diagram di atas adalah sebagai berikut: setipa objek yang akan digunakan
harus diposisikan pada objek parentnya. Misalnya pushbotton harus diletakan pada
objek figure sebagai parentnya. Sintak umum untuk menggunakan objek pada
program MATLAB adalah :
33
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Untuk lebih jelasnya dapat dilihat langsung pada contoh yang akan di buat pada bab
ini.
Objek GUI pada MATLAB yang paling sering digunakan adalah sebagai berikut:
Objek Figure
Figure adalah objek tertinggi dalam pemrograman window. Objek ini dapat di akses
dengan sintak sebagai berikut:
Nama = figure (
‘color’,[r g b],…
‘menubar’,<’figure’|’none’>,…
‘units’,<’points’|’pixel’>,…
‘position’,[left top width height],..
‘resize’,<’on’|’off’>,…
‘numbertitle,<’on’|’off’>,…
‘name’,[teks window],…
‘window style’,<’normal’|’modal’>);
Contoh pemakaian:
Win1 = figure (
‘color’,[.8 .8 .9],
‘menubar’,’none’,
‘units’,’points’,
‘position’,[100 150 500 300],
‘resize’,’off’,
‘numbertitle,’off’,
‘name’,’latihan programing window’);
Objek UI Control
34
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Objek UI control objek yang kita gunakan untuk berinteraksi dengan program. Objek
ini berisi komponen yang dibutuhkan unutk mendeasain form unutk media interaksi.
Sintak untuk mengaksesnya adalah sebagai berikut:
Nama = uicontrol (
‘parent’,[nama figure],..
‘style’,[komponen],…
‘units’,<’points’|’pixel’>,…
‘listboxtop’,0,…
‘position’,[left top width height],..
‘string’,[teks pada objek],…
‘callback’,[MATLAB skrip]);
Contoh :
Edit1 = uicontrol (
‘parent’,win1,
‘style’,’pushbutton’,
‘units’,’points’,
‘fontname’,’arial’,
‘fontsize’,10,
‘position’,[110 140 100 15],
‘string’,[exit],
‘callback’,’close’);
Pada style dipilih push button. Namun MATLAB menyedikan bermacam style yaitu:
35
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Objek UI Menu
Objek ui menu pada dasarnya mirip dengan ui control khususnya pada komponen
push button. Seperti namanya kegunaan objek ui menu adalah untuk membuat menu
pada program window. Berikut adalah sintak untuk menampilkan ui menu.
Contohnya:
Objek Axes
Objek ini sangat penting untuk visualisasi data pada MATLAB. Tanpa menggunakan
objek axes kita tidak dapat menampilkan hasil eksekusi fungsi plot, mesh, contour,
dan lainnya. Sintak umumnya adalah:
36
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Untuk lebih jelasnya coba ikuti contoh premrograman GUI berikut ini:
----------------------------------------------------------------------------------------------------
% MATLAB GUI kalkulator
% by vrickoh
clear all;
clc;
win1 = figure(...
'units','points',...
'position',[130 190 400 200],...
'color',[.9 .9 .9],...
'menubar','none',...
'resize','off',...
'numbertitle','off',...
'name','oto');
frame1 = uicontrol('parent',win1,...
'units','points',...
'position',[0 0 400 65],...
'backgroundcolor',[.3 .3 .3],...
'style','frame');
label1 = uicontrol('parent',win1,...
'units','points',...
'position',[40 170 320 20],...
'backgroundcolor',[.8 .8 .9],...
'style','text',...
'string','KALKULATOR',...
'fontname','verdana',...
'fontsize',12,...
'fontweight','bold',...
'foregroundcolor',[0 0 0]);
label2 = uicontrol('parent',win1,...
'units','points',...
'position',[30 140 100 15],...
'backgroundcolor',[.3 .8 .9],...
'style','text',...
'string','ANGKA ke 1',...
'fontname','arial',...
37
Pelatihan MATLAB lab. Manufaktur DTM FTUI
'fontsize',10);
label3 = uicontrol('parent',win1,...
'units','points',...
'position',[30 120 100 15],...
'backgroundcolor',[.3 .8 .9],...
'style','text',...
'string','ANGKA ke 2',...
'fontname','arial',...
'fontsize',10);
label4 = uicontrol('parent',win1,...
'units','points',...
'position',[30 90 100 15],...
'style','text',...
'string','sama dengan',...
'fontname','arial',...
'fontweight','bold',...
'fontsize',10);
%angka ke 1
edit1 = uicontrol('parent',win1,...
'units','points',...
'position',[130 140 60 15],...
'backgroundcolor',[1 1 1],...
'style','edit',...
'string','0',...
'fontname','arial',...
'fontsize',10);
%angka ke 2
edit2 = uicontrol('parent',win1,...
'units','points',...
'position',[130 120 60 15],...
'backgroundcolor',[1 1 1],...
'style','edit',...
'string','0',...
'fontname','arial',...
'fontsize',10);
%sama dengan
edit3 = uicontrol('parent',win1,...
'units','points',...
'position',[130 90 60 15],...
'backgroundcolor',[1 1 1],...
'style','edit',...
'string','0',...
'fontweight','bold',...
38
Pelatihan MATLAB lab. Manufaktur DTM FTUI
'fontname','arial',...
'fontsize',11);
tomkurang = uicontrol('parent',win1,...
'units','points',...
'position',[110 40 80 15],...
'style','pushbutton',...
'callback','otob',...
'string','kurang',...
'fontname','arial',...
'fontsize',10);
tomkali = uicontrol('parent',win1,...
'units','points',...
'position',[190 40 80 15],...
'style','pushbutton',...
'callback','otoc',...
'string','kali',...
'fontname','arial',...
'fontsize',10);
tombagi = uicontrol('parent',win1,...
'units','points',...
'position',[270 40 80 15],...
'style','pushbutton',...
'callback','otod',...
'string','bagi',...
'fontname','arial',...
'fontsize',10);
tomclose = uicontrol('parent',win1,...
'units','points',...
'position',[270 20 80 15],...
'style','pushbutton',...
'string','close',...
'fontname','arial',...
'fontsize',10,...
'callback','close');
39
Pelatihan MATLAB lab. Manufaktur DTM FTUI
Program – program ini di save pada satu direktori, yang kemudian akan dipanggil
pada window parentnya. Setelah dipanggil maka akan tampak seperti ini
% --------------------------------
% Program Latihan grafik GUI
% Matlab Window Programming
% vrickoh
% --------------------------------
clear all;
clc;
win1=figure(...
'units','points',...
'position',[100 150 500 300],...
'color',[.8 .8 .9],...
40
Pelatihan MATLAB lab. Manufaktur DTM FTUI
'menubar','none',...
'resize','off',...
'numbertitle','off',...
'name','Latihan 25 : Window Programming');
frame1=uicontrol('parent',win1,...
'units','points',...
'position',[0 270 500 50],...
'backgroundcolor',[.3 .3 .4],...
'style','Frame');
frame1=uicontrol('parent',win1,...
'units','points',...
'position',[0 0 500 60],...
'backgroundcolor',[.3 .3 .4],...
'style','Frame');
label1=uicontrol('parent',win1,...
'units','points',...
'position',[150 270 200 20],...
'backgroundcolor',[.3 .3 .4],...
'style','Text',...
'horizontalalignment','left',...
'string','Hitung Trigonometri',...
'fontname','arial',...
'fontsize',12,...
'fontweight','bold',...
'foregroundcolor',[1 1 1]);
label2=uicontrol('parent',win1,...
'units','points',...
'position',[10 140 100 15],...
'backgroundcolor',[.8 .9 .9],...
'style','Text',...
'string','Sudut Awal',...
'fontname','arial',...
'fontsize',10);
label3=uicontrol('parent',win1,...
'units','points',...
'position',[10 120 100 15],...
'backgroundcolor',[.8 .9 .9],...
'style','Text',...
'string','Sudut Akhir',...
'fontname','arial',...
'fontsize',10);
label4=uicontrol('parent',win1,...
'units','points',...
41
Pelatihan MATLAB lab. Manufaktur DTM FTUI
label5=uicontrol('parent',win1,...
'units','points',...
'position',[10 80 100 15],...
'backgroundcolor',[.8 .9 .9],...
'style','Text',...
'string','Buat Grafik',...
'fontname','arial',...
'fontsize',10);
edit1=uicontrol('parent',win1,...
'units','points',...
'position',[110 140 100 15],...
'backgroundcolor',[1 1 1],...
'style','Edit',...
'string','0',...
'fontname','arial',...
'fontsize',10);
edit2=uicontrol('parent',win1,...
'units','points',...
'position',[110 120 100 15],...
'backgroundcolor',[1 1 1],...
'style','Edit',...
'string','0',...
'fontname','arial',...
'fontsize',10);
edit3=uicontrol('parent',win1,...
'units','points',...
'position',[110 100 100 15],...
'backgroundcolor',[1 1 1],...
'style','Edit',...
'string','0',...
'fontname','arial',...
'fontsize',10);
popup1=uicontrol('parent',win1,...
'units','points',...
'position',[110 85 100 10],...
'backgroundcolor',[1 1 1],...
'style','popupmenu',...
'string','Sinus|Cosinus|Sinus Dan Cosinus',...
'fontname','arial',...
42
Pelatihan MATLAB lab. Manufaktur DTM FTUI
'fontsize',10);
grafik1=axes('parent',win1,...
'units','points',...
'position',[250 80 240 180],...
'xgrid','on',...
'ygrid','on',...
'xcolor',[0.4 0 .15],...
'ycolor',[0.4 0 .15],...
'fontsize',8,...
'color',[1 1 1]);
tomproses=uicontrol('parent',win1,...
'units','points',...
'position',[250 40 80 15],...
'style','pushbutton',...
'callback','trigonoa',...
'string','Proses',...
'fontname','arial',...
'fontsize',10);
tomtutup=uicontrol('parent',win1,...
'units','points',...
'position',[400 40 80 15],...
'style','pushbutton',...
'string','Tutup',...
'fontname','arial',...
'fontsize',10,...
'callback','close');
Pada program di atas belum dapat dijalankan karena belum ada rumusnya. Seperti
mobil hanya baru ada bodinya saja tapi tidak ada mesin. Sekarang akan dibuat
mesinnya. Pembuatan program dilakukan di m file juga dan di save pada direktori
yang sama. Berikut adalah contoh programnya.
% -------------------------------------
% Program Trigonometri Untuk Latihan 25
% -------------------------------------
awal=str2num(get(edit1,'String'));
akhir=str2num(get(edit2,'String'));
interval=str2num(get(edit3,'String'));
x=[awal:interval:akhir];
pilihan = get(popup1,'Value');
switch pilihan
case 1
y=sin(x*pi/180);
43
Pelatihan MATLAB lab. Manufaktur DTM FTUI
set(win1,'CurrentAxes',grafik1);
plot(x,y,'*r');
case 2
y=cos(x*pi/180);
set(win1,'CurrentAxes',grafik1);
plot(x,y,'*r');
case 3
y1=sin(x*pi/180);
y2=cos(x*pi/180);
set(win1,'CurrentAxes',grafik1);
plot(x,y1,'*r');
hold on;
plot(x,y2,'ob');
hold off;
end;
set(grafik1,...
'xgrid','on',...
'ygrid','on',...
'xcolor',[0.4 0 .15],...
'ycolor',[0.4 0 .15],...
'fontsize',8,...
'color',[1 1 1]);
Setelah selesai save program dengan nama trigonoa. Lalu coba jalankan lagi program
trigono. Maka akan terlihat tampilan seperti berikut;
44