You are on page 1of 10

Nama:Sepriadi B Simanjuntak

Nim:4153121056

Kelas:fisika dik d 2015

PRAKTIKUM – 15

Fungsi dalam Matlab

1. Tujuan
Setelah melaksanakan praktikum dalam sesi ini mahasiswa dapat:
a. Memahami srtuktur fungsi dalam Matlab
b. Menyusun dan mengeksekusi fungsi dalam Matlab

2. Pengantar
Pekerjaan yang dilakukan secara berulang-ulang disebut dengan rutin. Demikian
halnya dengan program. Program yang dapat dieksekusi berulangkali tanpa harus ke
luar dari program utama disebut dengan rutin. Ada berbagai penamaan yang
digunakan untuk menyatakan suatu rutin. Procedure, routine, dan function merupakan
beberapa nama yang digunakan untuk menyatakan suatu rutin dalam program.
Matlab menyediakan banyak sekali yang rutin (function) yang kemudian membuat
penyusunan program dalam Matlab menjadi sangat efisien (biult-in). Namun, masih
dimungkinkan bagi penyusunan program untuk membuat sendiri function yang
diperlukan. Matlab menyimpan banyak sekali rutin dalam programnya. Penyusunan
program dapat menggunakan biult-in function ini dalam penyusunan program. Di
dalam sebuah function dapat disisipkan function yang disebut dengan subfunction.
Function dijalankan menggunakan program yang disusun pada file yang berbeda.

3. Alat dan Bahan


- Komputer PC/Laptop
- Software Matlab
- Flashdisk

4. Prosedur
4.1 Persamaan kuadrat
- Program menghitung akar-akar persamaan kuadrat digunakan sebagai contoh untuk
membuat function. Program itu dibagi menjadi dua sebagi berikut:

Program Utama:

%program Perhitungan akar persamaan kuadrat


%menggunakan function kuadr
%
% masukkan A=1; B=-2 ;C=1--->x1=1 dan x2=1
% A=2 ; B=-2 ;C=-4 --> x1=-1 dan x2=2
% A=1 ;B=0 ; C=-9 --> x1=-3 dan x2=3
% A=2 ; B=4; C=5 --->

clear;
clc;
disp('program menghitung akar persamaan kuadrat ');
disp('persamaan berbentuk Ax^2 +Bx +C ');
A=input('Berika nilai A= ');
B=input ('Berikan nilai B= ');
C=input('Berikan nilai C= ');
%
[x1,x2]=kuadr(A,B,C)

Program Function:

function [x1,x2]=kuadr(A,B,C);
D=(B^2-4*A*C)
disp(' ')
if D==0
disp('kedua akarnya sama yaitu ');
x1=-B/2*A;
x2=x1;
elseif D<0
disp('akar-akarnya imajiner ');
x1=(-B+sqrt(D))/(2*A);
x2=(-B-sqrt(D))/(2*A);
else
disp('akar-akarmya riil ');
x1=(-B+sqrt(D))/(2*A);
x2=(-B-sqrt(D))/(2*A);
end
- Menyimpan program ini dengan cara langsung di-save as, tanpa harus memberikan
nama file karena secara otomatis Matlab akan memberikan nama function-nya.
- Menjalankan program diatas dan memberikan nilai masukan sebagaimana yang
tertera pada komentar program. Memeriksa kesesuaian output program yang
dihasilkan. Bila benar, output program akan sesuai dengan komputer.

4.2 Gerak peluru


- Mengetikkan program dibawah ini dan mengeksekusi

PROGRAM UTAMA
%proggram gerak peluru
%menggunakan function gerpel
clc;
clear all;
%
disp(' ')
vo=input('berikan nilai kecepatan awal peluru ,vo= ');
sudut=input('berikan sudut arah ggerak peluru,alpha= ');
%
gerpel(vo,sudut)

PROGRAM FUNCTION
function gerpel(vo,sudut)
%
g=10;
%
alpha=(sudut*pi)/180;
tmax=vo*sin(alpha)/g;
t=0:0.01:2*tmax;
x=vo*cos(alpha)*t;
y=vo*sin(alpha)*t-(1/2)*g*t.^2;
plot(x,y)

- Mengeksekusi program diatas dengan memberikan ragam masukan.


5. Data
- Mencatat program dan hasil eksekusi program

%program Perhitungan akar persamaan kuadrat


%menggunakan function kuadr
%
% masukkan A=1; B=-2 ;C=1--->x1=1 dan x2=1
% A=2 ; B=-2 ;C=-4 --> x1=-1 dan x2=2
% A=1 ;B=0 ; C=-9 --> x1=-3 dan x2=3
% A=2 ; B=4; C=5 --->

clear;
clc;
disp('program menghitung akar persamaan kuadrat ');
disp('persamaan berbentuk Ax^2 +Bx +C ');
A=input('Berika nilai A= ');
B=input ('Berikan nilai B= ');
C=input('Berikan nilai C= ');
%
[x1,x2]=kuadr(A,B,C)

Program Function

function [x1,x2]=kuadr(A,B,C);
D=(B^2-4*A*C)
disp(' ')
if D==0
disp('kedua akarnya sama yaitu ');
x1=-B/2*A;
x2=x1;
elseif D<0
disp('akar-akarnya imajiner ');
x1=(-B+sqrt(D))/(2*A);
x2=(-B-sqrt(D))/(2*A);
else
disp('akar-akarmya riil ');
x1=(-B+sqrt(D))/(2*A);
x2=(-B-sqrt(D))/(2*A);
end
Hasil Eksekusi

program menghitung akar persamaan kuadrat


persamaan berbentuk Ax^2 +Bx +C
Berika nilai A= 1
Berikan nilai B= -2
Berikan nilai C= 1

D=
0

kedua akarnya sama yaitu

x1 =
1
x2 =
1
>>
program menghitung akar persamaan kuadrat
persamaan berbentuk Ax^2 +Bx +C
Berika nilai A= 2
Berikan nilai B= -2
Berikan nilai C= -4

D=

36

akar-akarmya riil

x1 =

x2 =

-1

>>
program menghitung akar persamaan kuadrat
persamaan berbentuk Ax^2 +Bx +C
Berika nilai A= 1
Berikan nilai B= 0
Berikan nilai C= -9

D=

36
akar-akarmya riil

x1 =

x2 =

-3

>>

program menghitung akar persamaan kuadrat


persamaan berbentuk Ax^2 +Bx +C
Berika nilai A= 2
Berikan nilai B= 4
Berikan nilai C= 5

D=

-24

akar-akarnya imajiner

x1 =

-1.0000 + 1.2247i

x2 =

-1.0000 - 1.2247i

>>
PROGRAM UTAMA

%proggram gerak peluru


%menggunakan function gerpel
clc;
clear all;
%
disp(' ')
vo=input('berikan nilai kecepatan awal peluru ,vo= ');
sudut=input('berikan sudut arah ggerak peluru,alpha= ');
%
gerpel(vo,sudut)

PROGRAM FUNCTION
function gerpel(vo,sudut)
%
g=10;
%
alpha=(sudut*pi)/180;
tmax=vo*sin(alpha)/g;
t=0:0.01:2*tmax;
x=vo*cos(alpha)*t;
y=vo*sin(alpha)*t-(1/2)*g*t.^2;
plot(x,y)

Hasil Eksekusi:

140

120

100

80

60

40

20

-20
0 100 200 300 400 500 600 700 800 900
6. Analisa Data
- Pada percobaan 4.1 nilai secara teori sama dengan nilai yang didapat oleh matlab,maka
program adalah benar.
- Pada percobaan 4.2 grafik yang ditampilkan telah sesuai dengan grafik gerak peluru
- Pada program utama hanya mengandung diketahui sedangkan rumus di ketik pada program
function

7. Simpulan
o Perintah “function” adalah perintah yang digunakan untuk mengefisienkan program
yang disusun pada file yang berbeda
o Jika meggunakan perintah function,maka nama program akan tersave as sesuai
dengan nama disebelah perintah “function” tersebut.

8. Tugas (Kerjakan di rumah)


- Modifikasi paling sedikit 2 (dua) buah program yang ada sebelumnya sehingga
menjadi function.

Jawab:

Program utama

%Program menghitung tumbukan


clear;
clc;
m1= input(' berikan nilai massa benda pertama, m1 = ');
m2= input(' berikan nilai massa benda kedua, m2 = ');
v1= input (' berikan nilai kecepatan benda pertama, v1 = ');
v2= input (' berikan nilai kecepatan benda kedua, v2 = ');
momentum(m1,m2,v1,v2)

program function

function momentum(m1,m2,v1,v2)
v1f = [(m1-m2)*v1+(2*m2*v2)]/(m1+m2)

v2f=v1-v2+v1f
disp (' ')
disp(['kecepatan pantulan benda pertama ,v1f= ',num2str(v1f)])
disp(['kecepatan pantulan benda kedua ,v2f= ',num2str(v2f)])
Hasil Eksekusi

berikan nilai massa benda pertama, m1 = 0.06

berikan nilai massa benda kedua, m2 = 0.03

berikan nilai kecepatan benda pertama, v1 = 5

berikan nilai kecepatan benda kedua, v2 = 2

v1f =

3.0000

v2f =

kecepatan pantulan benda pertama ,v1f= 3

kecepatan pantulan benda kedua ,v2f= 6

>>

2. Menggunakan Function pada Deret Fourier

Program Utama

%progam Deret Fouirer


%menggunakan for...end
%untuk contoh gunakan bs=8
clc;
clear all;
bs=input('berikan banyaknya suku,bs= ')
theta=((-180*pi)/180):((0.1*pi)/180):((180*pi)/180);
fourier(bs,theta)

program function

function fourier(bs,theta)
F=0;
for n=1:1:bs
F=F+(2/((2*n)-1))*sin(((2*n)-1)*theta);
F=F;
end
plot(theta,F)
grid
Hasil Eksekusi

1.5

0.5

-0.5

-1

-1.5

-2
-4 -3 -2 -1 0 1 2 3 4

You might also like