Simulasi Grafik Sinusoidal Menggunakan GUI Matlab


Grafik sinusoidal adalah salah satu konsep fundamental dalam matematika dan fisika yang merujuk pada pola berulang berbentuk gelombang yang dapat ditemukan dalam berbagai aplikasi di dunia nyata. Dalam artikel ini, kita akan menjelaskan bagaimana membuat simulasi grafik sinusoidal menggunakan GUI (Graphical User Interface) di Matlab dengan persamaan umum y = y0 + A * sin(θ + θ0).

Sinusoidal Graph (https://www.math.net)

Pengenalan Grafik Sinusoidal

Sebelum kita memasuki pembahasan simulasi, mari kita pahami dasar-dasar grafik sinusoidal. Grafik sinusoidal adalah grafik fungsi sinus, yang merupakan fungsi matematika yang memiliki bentuk berulang dalam bentuk gelombang sinusoidal. Persamaan umum dari grafik sinusoidal adalah:

y = y0 + A * sin(θ + θ0)

Di sini,

  • y adalah nilai dari fungsi sinusoidal pada titik tertentu.
  • y0 adalah nilai tengah (bias) dari gelombang.
  • A adalah amplitudo, yang mengukur tinggi dari gelombang.
  • θ adalah sudut dalam satuan radian.
  • θ0 adalah fase awal, yang menggeser gelombang horizontal.
Tampilan Sistem Simulasi Grafik Sinusoidal

Menggunakan Matlab untuk Simulasi Grafik Sinusoidal

Matlab adalah lingkungan pemrograman yang kuat yang dapat digunakan untuk melakukan simulasi dan analisis data. Dengan bantuan GUI Matlab, kita dapat membuat simulasi yang interaktif untuk memvisualisasikan grafik sinusoidal dengan berbagai parameter. Berikut adalah langkah-langkah untuk membuat simulasi ini:

Baca Juga: Simulasi Gerak Parabola Menggunakan GUI Matlab

1. Membuat GUI

Langkah pertama adalah membuat GUI Matlab. Anda dapat melakukannya dengan menggunakan alat seperti “GUIDE” yang disediakan oleh Matlab. Dalam GUI, kita dapat menambahkan berbagai komponen seperti tombol, slider, dan plot untuk mengontrol dan memvisualisasikan grafik sinusoidal.

2. Menambahkan Komponen Kontrol

Tambahkan komponen kontrol yang diperlukan untuk mensimulasikan grafik sinusoidal. Beberapa komponen yang berguna termasuk:

  • Tombol “Simulasi”: Untuk memulai simulasi grafik sinusoidal.
  • Slider untuk Amplitudo, Fase Awal, dan Frekuensi: Ini memungkinkan pengguna untuk mengubah parameter grafik sinusoidal.
  • Plot Area: Area di mana kita akan menampilkan hasil simulasi grafik.

3. Membuat Fungsi Simulasi

Selanjutnya, kita perlu membuat fungsi yang akan mengambil input dari GUI dan menjalankan simulasi grafik sinusoidal. Fungsi ini akan menggunakan persamaan umum yang telah kita bahas sebelumnya untuk menghitung nilai y pada setiap titik θ.

4. Memvisualisasikan Grafik Sinusoidal

Setelah menghitung nilai y pada setiap titik θ, kita dapat menggunakan plot area dalam GUI untuk memvisualisasikan grafik sinusoidal. Ini dapat dilakukan dengan memplot titik-titik y pada setiap nilai θ.

5. Menambahkan Fitur Tambahan

Anda juga dapat menambahkan fitur tambahan ke dalam GUI, seperti mengubah skala sumbu, menghitung frekuensi dan periode, serta menambahkan variasi warna dan garis untuk memperindah grafik.

Baca Juga: Simulasi Kalkulator Sederhana Menggunakan GUI Matlab

Contoh Kode Matlab untuk Simulasi Grafik Sinusoidal

Berikut ini adalah contoh kode sederhana untuk membuat GUI Matlab yang mensimulasikan grafik sinusoidal:

function varargout = sinusoidal(varargin)
% SINUSOIDAL MATLAB code for sinusoidal.fig
%      SINUSOIDAL, by itself, creates a new SINUSOIDAL or raises the existing
%      singleton*.
%
%      H = SINUSOIDAL returns the handle to a new SINUSOIDAL or the handle to
%      the existing singleton*.
%
%      SINUSOIDAL('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in SINUSOIDAL.M with the given input arguments.
%
%      SINUSOIDAL('Property','Value',...) creates a new SINUSOIDAL or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before sinusoidal_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to sinusoidal_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

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

% Last Modified by GUIDE v2.5 29-Nov-2015 23:59:21

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

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 sinusoidal is made visible.
function sinusoidal_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 sinusoidal (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);
movegui(hObject,'center');

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


% --- Outputs from this function are returned to the command line.
function varargout = sinusoidal_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;


% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (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,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
y0 = get(handles.slider1,'Value');
A = get(handles.slider2,'Value');
theta0 = get(handles.slider3,'Value');

theta = 0:0.001:4*pi;
y = y0+A*sin(theta+theta0);
axes(handles.axes1)
plot(theta,y,'r-')
xlim([0,4*pi])
ylim([-3,3])
set(gca,'XTick',[0:4*pi/6:4*pi])
set(gca,'XTickLabel',{'0','120','240','360','480','600','720'})
grid on

persamaan = strcat(['y = ',num2str(y0),' +',num2str(A),' * sin (theta + ',num2str(theta0/2/pi*360),')']);
set(handles.edit1,'String',persamaan)


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

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end


% --- Executes on slider movement.
function slider2_Callback(hObject, eventdata, handles)
% hObject    handle to slider2 (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,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
y0 = get(handles.slider1,'Value');
A = get(handles.slider2,'Value')+1;
theta0 = get(handles.slider3,'Value')*2*pi;

theta = 0:0.001:4*pi;
y = y0+A*sin(theta+theta0);
axes(handles.axes1)
plot(theta,y,'r-')
xlim([0,4*pi])
ylim([-3,3])
set(gca,'XTick',[0:4*pi/6:4*pi])
set(gca,'XTickLabel',{'0','120','240','360','480','600','720'})
grid on

persamaan = strcat(['y = ',num2str(y0),' +',num2str(A),' * sin (theta + ',num2str(theta0/2/pi*360),')']);
set(handles.edit1,'String',persamaan)

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

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end


% --- Executes on slider movement.
function slider3_Callback(hObject, eventdata, handles)
% hObject    handle to slider3 (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,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
y0 = get(handles.slider1,'Value');
A = get(handles.slider2,'Value')+1;
theta0 = get(handles.slider3,'Value')*2*pi;

theta = 0:0.001:4*pi;
y = y0+A*sin(theta+theta0);
axes(handles.axes1)
plot(theta,y,'r-')
xlim([0,4*pi])
ylim([-3,3])
set(gca,'XTick',[0:4*pi/6:4*pi])
set(gca,'XTickLabel',{'0','120','240','360','480','600','720'})
grid on

persamaan = strcat(['y = ',num2str(y0),' +',num2str(A),' * sin (theta + ',num2str(theta0/2/pi*360),')']);
set(handles.edit1,'String',persamaan)

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

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end



function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (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 edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double


% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (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

Tampilan Sistem Simulasi Grafik Sinusoidal

Simulasi grafik sinusoidal adalah alat yang berguna untuk memahami konsep dasar grafik sinusoidal dalam matematika dan fisika. Dengan menggunakan GUI Matlab, kita dapat membuat simulasi yang interaktif dan informatif yang memungkinkan pengguna untuk mengubah parameter dan melihat bagaimana perubahan tersebut memengaruhi grafik sinusoidal. Simulasi ini dapat digunakan dalam pendidikan, penelitian, dan eksperimen virtual untuk membantu siswa dan peneliti memahami dan menggali lebih dalam tentang konsep grafik sinusoidal dan gelombang sinusoidal.

Baca Juga: Konversi Satuan Suhu Menggunakan App Designer MATLAB

Source code beserta data lengkap pemrograman MATLAB di atas dapat diperoleh melalui halaman berikut ini: Source Code

Posted on October 5, 2023, in Pengenalan Matlab and tagged , , , , , , , . Bookmark the permalink. Leave a comment.

Leave a comment