Biar lebih paham, silakan copy-paste source berikut ke komputer anda, dan langsung dijalankan. Kebetulan pada komennya sudah diberikan penjelasannya.
function runGUI
% dibuat oleh Mohammad Fajar pada malam selasa (29/1/2013)
clc;
init();
% dalam GUI matlab, container kedua tertinggi adalah figure...
% yang pertama tertinggi adalah root yang merupakan monitor
fig = ...
figure('name', 'Test Sin', ...
'numbertitle', 'off', ...
'position' , [200, 100, 500,500], ...% relatif terhadap
'menubar' , 'none' ... % monitor
);
% panel yang digunakan untuk memanajemen control-control
panel_control = uipanel( ...
'title', 'Control Panel', ...
'units', 'pix', ...
'fontsize', 12, ...
'backgroundcolor', 'white', ...
'position',[10 10 480 100] ... % relatif terhadap 'fig'
);
buttonStart = uicontrol('units','pix',...
'style','pushbutton',...
'parent', panel_control, ...
'position',[10 10 90 25],... % relatif terhadap 'panel_control'
'fontweight','bold',...
'fontsize',12,...
'string','draw',...
'HorizontalAlignment' , 'right', ...
'callback',@start ... % memanggil fungsi 'start'
);
% untuk button ini kita akan gunakan unit centimeter...
% sementara pada button sebelumnya (button start) yang digunakan adalah
% unit pixels (atau disingkat 'pix' ==> dalam matlab terdapat kemudahan
% dengan menggunakan singkatan)
% cuma saya bingung yang mana bisa disingkat, yang mana tidak...
% demi amannya mending g usa disingkat.....
buttonPause = uicontrol('units', 'centimeters', ...
'style', 'pushbutton',...
'parent' , panel_control , ...
'position', [ .24 1.0 2.5 .7], ... % rel. terhadap 'panel_control'
'fontsize', 12, ...
'fontweight', 'bold', ...
'string', 'delete', ...
'HorizontalAlignment', 'left', ...
'callback', @pause ); % memanggil fungsi 'pause'
% ingat parameter-parameter pada MATLAB selain bisa disingkat juga tidak
% mengenal case-sensitiv ... alias tidak peduli huruf besar atau huruf
% kecil .... jadi 'Position' atau 'posiTion' hasilnya sama saja...
% sepanjang hurufnya tidak kurang atau lebih....
% selanjutnya akan dibuat panel untuk memanajemen daerah plotting
panel_plot = uipanel('title', 'plot area', ...
'units', 'pix', ...
'positioN', [10 120 480 370] , ...
'backgrounDcolor', 'cyan', ...
'fontsize', 12);
% sekarang tambahkan plot area
% saya ga' tau kenapa, yang jelas untuk object "axis" tidak dibolehkan
% untuk menggunakan units selain 'inch'
global g;
g =axes('position',[.1 .1 .86 .87], ...
'xlim', [0 (2*pi)], ...
'parent', panel_plot);
% mesh(peaks(20));
end
function init()
global x;
x = linspace(0,2*pi , 400 );
end
function [] = start(varargin)
global x;
global hline;
hline = plot(x,sin(x));
end
function [] = pause(varargin)
% gunanya untuk menghapus plotting
cc = get(gcf, 'CurrentAxes');
aa = get(cc, 'Children');
delete(aa);
end



