Monday, April 20, 2009

GUI Sederhana dengan menggunakan pemrograman pragmatikal di MATLAB®

Sebelumnya kita harus mengerti apa itu GUI. Sebuah "Graphical User Interface (GUI)" merupakan tampilan grafis yang mengandung alat-alat atau komponen-komponen yang memampukan pengguna untuk melakukan pekerjaan interaktif. Untuk melakukan pekerjaan ini, pengguna dari GUI tidak perlu membuat script atau mengetik perintah di command line. Sering sekali, user tidak perlu tahu detail dari pekerjaan yang dilakukan.

Komponen GUI dapat berupa menu, toolbar, push button, radio button, list box, dan slider. di software MATLAB®, GUI dapat juga menampilkan data dengan bentuk tabular atau sebagai plot, dan dapat dikelompokkan ke dalam komponen yang berkaitan.

Gambar di bawah menunjukkan GUI sederhana.



















GUI ini mengandung:
-sebuah kompone push button
-sebuah edit box komponen
ketika anda mengklik push button, pada edit box akan muncul tulisan "Hello World".

Bagaimana GUI ini bekerja?
Setiap komponen, dan GUI tersebut, diasosiasikan dengan satu atau lebih rutin yang ditulis pengguna yang dikenal sebagai callback. Eksekusi setiap callback dipicu oleh aksi tertentu dari pengguna seperti tombol ditekan, klikan mouse, pemilihan menu item, atau cursor melewati sebuah komponen. Kita sebagai pembuat GUI, yang menyediakan callback tersebut.


Lalu apa itu callback?
Sebuah callback merupakan fungsi yang kita tulis dan asosiasikan dengan sebuah komponen tertentu pada GUI atau dengan GUI itu sendiri. Callback mengontrol sifat GUI atau komponen dengan melakukan beberapa aksi untuk merespon kejadian pada komponennya tersebut. Kejadian dapat berupa mouse diklik pada sebuah push button, pemilihan menu, keyboard ditekan, etc.

Ok, cukup sudah basa-basinya (terlalu panjang jadi membosankan, saya pun capek mengetiknya hahaha :)). Di bawah ini listing source codenya:





function simple_gui
% Simple GUI with matlab to show how it works

% Initialize and hide the GUI as it is being constructed
fh = figure('Visible', 'off', 'Position', [360, 400, 300, 180]);

%Construct the components
% Push Button
hButton = uicontrol(fh, 'Style', 'pushbutton',...
'String', 'Push Button',...
'Position', [20, 120, 70, 25],...
'Callback',{@hButton_Callback});
% Edit Button
hEdit = uicontrol(fh, 'Style', 'edit',...
'String', '',...
'Position', [100 115 130 35]);

% Make the GUI visible.
set(fh,'Visible','on');

% Callback for hButton to show string 'Hello World' in edit Button
function hButton_Callback(source, eventdata)
set(hEdit, 'String', 'Hello World');
end

end







Saya akan menjelaskannya sedikit,


function simple_gui
.
.
.
end
Setiap script MATLAB® yang menggunakan callback harus diawali dengan function dan diakhiri dengan end karena script ini merupakan fungsi bersarang.

% blablabla
Kalimat yang diawali dengan tanda '%' merupakan komentar dan tidak akan dieksekusi oleh MATLAB®.


fh = figure('Visible', 'off', 'Position', [360, 400, 300, 180]);
Statement ini membentuk objek figure bernama fh, tidak ditampilkan lebih dahulu (properti Visible dibuat off), properti Position merupakan vektor empat-elemen yang menentukan lokasi GUI pada layar serta ukurannya: [jarak dari kiri, jarak dari bawah, lebar, tinggi]. Nilai defaultnya dalam pixel.


hButton = uicontrol(fh, 'Style', 'pushbutton',...
'String', 'Push Button',...
'Position', [20, 120, 70, 25],...
'Callback',{@hButton_Callback});
Statement ini membentuk objek kontrol user interface hButton, Dengan fh sebagai parent GUInya, berupa push button, memiliki String Push Button, berada pada posisi 20 dari kiri layar, 120 dari bawah layar, lebar 70, tinggi 25, serta memiliki fungsi callback 'hButton_Callback' untuk merespon kejadian pada objek ini.


hEdit = uicontrol(fh, 'Style', 'edit',...
'String', '',...
'Position', [100 115 130 35]);
Penjelasannya sama dengan hButton, tetapi objek berupa edit box.

set(fh,'Visible','on');
Set properti fh supaya ditampilkan di layar.


function hButton_Callback(source, eventdata)
set(hEdit, 'String', 'Hello World');
end
Bagian ini merupakan callback untuk objek hButton, dimana ketika push button ditekan akan menyebabkan edit box menunjukkan string 'Hello World' di dalamnya.


Untuk menjalankannya, simpan source code di atas ke sebuah file berekstensi m atau M, lalu jalankan dari command line MATLAB®.

















Referensi:
1. MATLAB® R2008A help file.
2. Otakku yang segar :).



Selamat mencoba,


Juan Rio Sipayung

1 komentar:

plankton mini.. said...

betulnya itu???



http://apalagiyach.blogspot.com