how to make calculator with matlab gui

7
[all about matlab] January 28, 2013 [[email protected]] Page 1 HOW TO MAKE CALCULATOR WITH MATLAB GUI Membuat program kalkulator pada sebuah bahasa pemrograman berbasis GUI merupakan tantangan yang menarik karena kreatifitas kita diuji dalam hal ini. Kemampuan dalam melogikakan proses eksekusi kalkulator merupakan sedikit banyak hal yang perlu dimiliki. Saya mencoba membuat program kalkulator dengan menggunakan matlab GUI. Silakan dipelajari dan dimodifikasi semaunya. berikut ini program yang bisa anda gunakan function varargout = calculator(varargin) % CALCULATOR M-file for calculator.fig % CALCULATOR, by itself, creates a new CALCULATOR or raises the existing % singleton*. % % H = CALCULATOR returns the handle to a new CALCULATOR or the handle to % the existing singleton*. % % CALCULATOR('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in CALCULATOR.M with the given input arguments. % % CALCULATOR('Property','Value',...) creates a new CALCULATOR or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before calculator_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to calculator_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Original Made By JANS HENDRY Butarbutar % Edit the above text to modify the response to help calculator % Last Modified by GUIDE v2.5 28-Jan-2013 11:30:40 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @calculator_OpeningFcn, ... 'gui_OutputFcn', @calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end

Upload: jans-hendry

Post on 08-Aug-2015

1.666 views

Category:

Documents


3 download

DESCRIPTION

calculator matlab, calculator gui, matlab gui

TRANSCRIPT

Page 1: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 1

HOW TO MAKE CALCULATOR WITH MATLAB GUI

Membuat program kalkulator pada sebuah bahasa pemrograman berbasis GUI merupakan

tantangan yang menarik karena kreatifitas kita diuji dalam hal ini. Kemampuan dalam melogikakan

proses eksekusi kalkulator merupakan sedikit banyak hal yang perlu dimiliki. Saya mencoba

membuat program kalkulator dengan menggunakan matlab GUI. Silakan dipelajari dan dimodifikasi

semaunya.

berikut ini program yang bisa anda gunakan

function varargout = calculator(varargin) % CALCULATOR M-file for calculator.fig % CALCULATOR, by itself, creates a new CALCULATOR or raises the existing % singleton*. % % H = CALCULATOR returns the handle to a new CALCULATOR or the handle to % the existing singleton*. % % CALCULATOR('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in CALCULATOR.M with the given input

arguments. % % CALCULATOR('Property','Value',...) creates a new CALCULATOR or raises

the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before calculator_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to calculator_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES

% Original Made By JANS HENDRY Butarbutar

% Edit the above text to modify the response to help calculator

% Last Modified by GUIDE v2.5 28-Jan-2013 11:30:40

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @calculator_OpeningFcn, ... 'gui_OutputFcn', @calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end

Page 2: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 2

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before calculator is made visible. function calculator_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to calculator (see VARARGIN)

% Choose default command line output for calculator clc; handles.output = hObject;

set(handles.samping, 'UserData', 0); set(handles.pbhasil, 'UserData', 0); set(handles.utama, 'UserData', 0); % Update handles structure guidata(hObject, handles);

% UIWAIT makes calculator wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = calculator_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

function utama_Callback(hObject, eventdata, handles) % hObject handle to utama (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of utama as text % str2double(get(hObject,'String')) returns contents of utama as a

double

% --- Executes during object creation, after setting all properties.

Page 3: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 3

function utama_CreateFcn(hObject, eventdata, handles) % hObject handle to utama (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function samping_Callback(hObject, eventdata, handles) % hObject handle to samping (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of samping as text % str2double(get(hObject,'String')) returns contents of samping as a

double

% --- Executes during object creation, after setting all properties. function samping_CreateFcn(hObject, eventdata, handles) % hObject handle to samping (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function input(bil)

h = findobj(gcbf, 'Style', 'edit'); picu = get(h(1), 'UserData');

if (picu == 0) angka = get(h(2), 'String'); if ~strcmp(angka, '0') angka2 = strcat(angka, bil); else angka2 = bil; end set(h(2), 'String', angka2); else angka = '0'; set(h(2), 'String', angka); if ~strcmp(angka, '0') angka2 = strcat(angka, bil);

Page 4: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 4

else angka2 = bil; end set(h(2), 'String', angka2); set(h(1), 'UserData', 0); end

function pb0_Callback(hObject, eventdata, handles) input('0');

function pb1_Callback(hObject, eventdata, handles) input('1');

function pb2_Callback(hObject, eventdata, handles) input('2');

function pb3_Callback(hObject, eventdata, handles) input('3');

% --- Executes on button press in pbkurang. function pbkurang_Callback(hObject, eventdata, handles) tanda = 2; % artinya pengurangan operator(tanda);

% --- Executes on button press in pbhasil. function pbhasil_Callback(hObject, eventdata, handles)

angka1 = get(handles.figure1, 'UserData'); angka2 = str2double(get(handles.utama, 'String')); op = get(handles.utama, 'UserData');

if op == 1 hasil = angka1 + angka2; temp1 = sprintf(' + '); elseif op == 2 hasil = angka1 - angka2; temp1 = sprintf(' - '); elseif op == 3 hasil = angka1 * angka2; temp1 = sprintf(' * '); elseif op == 4 hasil = angka1 / angka2; temp1 = sprintf(' / '); else hasil = num2str(angka2); end

if op == 0 set(handles.samping, 'String', num2str(angka2)); else temp = strcat(num2str(angka1), temp1, sprintf(' %s',num2str(angka2))); set(handles.samping, 'String', temp); end set(handles.utama, 'String', hasil);

Page 5: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 5

set(handles.samping, 'UserData', 1);

function pbplus_Callback(hObject, eventdata, handles) tanda = 1; % artinya penjumlahan operator(tanda);

function operator(tanda) h = findobj(gcbf, 'Style', 'edit'); angka = get(h(2), 'String'); h2 = findobj(gcbf, 'Tag', 'figure1');

switch(tanda) case 1 temp = sprintf(' + '); angka3 = strcat(angka, temp); set(h(1), 'String', angka3); case 2 temp = sprintf(' - '); angka3 = strcat(angka, temp); set(h(1), 'String', angka3); case 3 temp = sprintf(' * '); angka3 = strcat(angka, temp); set(h(1), 'String', angka3); case 4 temp = sprintf(' / '); angka3 = strcat(angka, temp); set(h(1), 'String', angka3); end set(h(1), 'UserData', 1); set(h(2), 'UserData', tanda); % 1 artinya tambah set(h2, 'UserData', str2double(angka));

function pbdot_Callback(hObject, eventdata, handles) angka = get(handles.utama, 'String'); [bar, kol] = find(angka == '.'); if isempty(kol) hasil = strcat(angka, '.'); else hasil = angka; end set(handles.utama, 'String', hasil);

function pb4_Callback(hObject, eventdata, handles) input('4');

function pb5_Callback(hObject, eventdata, handles) input('5');

function pb6_Callback(hObject, eventdata, handles) input('6');

% --- Executes on button press in pbkali. function pbkali_Callback(hObject, eventdata, handles) tanda = 3; % artinya perkalian

Page 6: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 6

operator(tanda);

% --- Executes on button press in pushbutton13. function pushbutton13_Callback(hObject, eventdata, handles) angka = str2double(get(handles.utama, 'String'));

inve = (1/angka); set(handles.utama, 'String', num2str(inve)); temp = strcat('1/(', num2str(angka), ')'); set(handles.samping, 'String', temp); set(handles.samping, 'UserData', 1);

% --- Executes on button press in pb7. function pb7_Callback(hObject, eventdata, handles) input('7');

% --- Executes on button press in pb8. function pb8_Callback(hObject, eventdata, handles) input('8');

% --- Executes on button press in pb9. function pb9_Callback(hObject, eventdata, handles) input('9');

% --- Executes on button press in pbbagi. function pbbagi_Callback(hObject, eventdata, handles) tanda = 4; % artinyan pembagian operator(tanda);

function pbpersen_Callback(hObject, eventdata, handles) angka = str2double(get(handles.utama, 'String')); persen = angka / 100; set(handles.utama, 'String', num2str(persen)); temp = strcat('%(', num2str(angka), ')'); set(handles.samping, 'String', temp); set(handles.samping, 'UserData', 1);

function pbhapus_Callback(hObject, eventdata, handles) angka = get(handles.utama, 'String');

if (~strcmp(angka, 'Inf')) && (~strcmp(angka, 'Nan')) if ~strcmp(angka, '0') angka = angka(1:length(angka)-1); if isempty(angka) angka = '0'; end set(handles.utama, 'String', angka); end

Page 7: How To Make Calculator with Matlab GUI

[all about matlab] January 28, 2013

[[email protected]] Page 7

end

function pbCE_Callback(hObject, eventdata, handles) set(handles.utama, 'String', 0);

function pbC_Callback(hObject, eventdata, handles) set(handles.utama, 'String', 0); set(handles.samping, 'String', 0);

function pbtanda_Callback(hObject, eventdata, handles) angka = str2double(get(handles.utama, 'String')); angka = -1 * angka; set(handles.utama, 'String', num2str(angka));

function pbakar_Callback(hObject, eventdata, handles) angka = str2double(get(handles.utama, 'String'));

if (sign(angka) == 1) | (sign(angka) == 0) akar = angka^(.5); else akar = 'Nan'; set(handles.utama, 'String', num2str(akar)); return; end set(handles.utama, 'String', num2str(akar)); temp = strcat('roots(',num2str(angka),')'); set(handles.samping, 'String', temp); set(handles.samping, 'UserData', 1);