Soal :
1. Sebutkan dan jelaskan bentuk-bentuk M-file dalam Matlab
2. Jelaskan Pengertian, contoh dan kegunaan dari statement berikut :
a. Abs
b. Fprintf
c. sprintf
d. diff
e. int2str
f. Num2str
g. strcmp
27
1. Sebutkan dan jelaskan bentuk-bentuk M-file dalam Matlab
Script adalah m-file sederhana karena tidak memerlukan argument input atau
output. Script sering digunakan untuk melakukan otomatisasi deret command
matlab, misalnya komputasi yang perintahnya dapat diulang-ulang dari baris
command. Selanjutnya, script mengoperasikan data yang ada di dalam workspace
atau membuat data baru. Semua variable yang telah dibuat oleh script di dalam
woarkspace dapat digunakan untuk komputasi selanjutnya setelah script selesai
dijalankan.
Contoh script sederhana yang digunakan untuk menampilkan grafik fungsi sinus:
28
x=30:180;
alfa=deg2rad(x);
y=sin(alfa);
plot(x,y);
Buatlah script di atas pada layer editor m-file, kemudian simpan dan jalankan,
maka kita akan mendapatkan hasil sebagai berikut:
b. Fungsi
Fungsi adalah m-file yang dapat menerima argument input dan menghasilkan
argument output. Fungsi mengoperasikan variabel di dalam workspacenya, tetapi
terpisah dari workspace yang diakses oleh command matlab.
Sebuah fungsi mempunyai beberapa bagian penting di antaranya:
Function hasil = luas(p,1)
(Vian,2008)
Contoh :
While abs(fx)>tol
Kegunaan: Untuk menghitung nilai absolut dengan mengharga mutlakkan nilai
dari persamaan tersebut.
(Michael,2012)
b. fprintf menampilkan nilai variabel menggunakan string format
Beberapa simbol yang digunakan pada fungsi fprintf antara lain :
%d = untuk bilangan bulat n\= pindah ke baris baru
%f = bilangan pecahan t\ = geser sebanyak satu tab
tampilan bilangan pecahan %f, %e dan %E, presisi dapat diatur dengan
menyisipkan format presisi bilangan. Format presisi adalah .p, dengan p berupa
nilai yang menyatakan banyaknya angka dibelakang koma.
(Anonim,2013)
29
c. sprintf()
sprintf() string sprintf (string format [, mixed arguments])
Fungsi sprintf sebenarnya hampir sama dengan printf(), kecuali output yang
awalnya sebagai sebuah string langsung menjadi sebuah standard output, sebagai
contoh:
$cost = sprintf($%01.2f, 43.2); // $cost = $43.20
(Anonim,2015)
d. Diff : Turunan pertama dari fungsi y
>> syms x;
>> y=x^3+2*x^2+6*x+7;
>> z=diff(y)
z =3*x^2+4*x+6
e. int2str
Fungsi ini dipakai untuk mengkonversi dari integer ke dalam string. Fungsi ini
akan membulatkan argument (matriks) ke dalam sebuah bilangan integer dan
mengkonversi hasilnya menjadi sebuah matriks string.
Contoh:
>> testinteger = randn(4)
testinteger =
-0.4326 -1.1465 0.3273 -0.5883
-1.6656 1.1909 0.1746 2.1832
0.1253 1.1892 -0.1867 -0.1364
0.2877 -0.0376 0.7258 0.1139
(Vian,2008)
30
f. Num2str
Nilai numerik dapat diletakkan pada string teks jika nilai numerik
tersebut dipindahkan menjadi string. Jumlah konversi string dibentuk
dengan fungsi num2str(x), seperti berikut ini
>> disp([num2str(x),' dan ',num2str(y), ' merupakan nilai x dan y.'])
17 dan 1 2 3 4 5 6 7 8 9 10 merupakan nilai x dan y.
(Vusvita,2014)
g. Strcmp
Fungsi "strcmp" merupakan salah satu fungsi string dalam C++ yang
berfungsi untuk mencari nilai selisih 2 buah data string (hasil selisihnya berupa
nilai bulat).
(Anonim,2011)
Fungsi ini dipakai untuk memeriksa apakah dua string memiliki kesamaan.
Contoh:
>> testequals = strcmp(string,testconvertchar)
testequals =1
(Vian,2008)
31
Algoritma Metode Secant
1. Definisikan fungsi F(x)
2. Definisikan torelansi error (e) dan iterasi maksimum (n)
3. Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar
yaitu x0 dan x1,sebaiknya gunakan metode tabel atau grafis untuk
menjamin titik pendakatannya adalah titik pendekatan yang
konvergensinya pada akar persamaan yang diharapkan.
4. Hitung F(x0) dan F(x1) sebagai y0 dan y1
5. Untuk iterasi I = 1 s/d n atau |F(xn)|
Xn+1 = Xn Yn (Xn Xn-1 / Yn Yn-1)
6.Akar persamaan adalah nilai x yang terakhir.
32
repeat
begin
x1:=x2;
x2:=xt;
xt:=(x2-(fx2*(x2-x1))/(fx2-fx1));
fx1:=(2*x1*x1*x1)+(12*x1*x1)-20;
fx2:=(2*x2*x2*x2)+(12*x2*x2)-20;
fxt:=(2*xt*xt*xt)+(12*xt*xt)-20;
writeln(x1:5:2,x2:10:2,xt:10:2,fx1:10:2,fx2:10:2,fxt:10:2);
end;
until abs((xt-x1)/xt)<0.001;
end.
33
Hasil Program
34
Flowchart
35
5. Selesaikan persamaan dibawah ini dengan menggunakan metode Secant!
(inputan X harus berbeda tiap praktikan)
a. F(x) = 16x2/3 2,7x2 9x 255/2
b. F(x) = 5x4 + 5x3 + 7x2 = 7x4 + 12x2
clear all;
clc;
syms x;
disp('*******Metode Secant*******');
f=input('Masukkan Persamaan=');
x1=input('Masukkan nilai x1=');
x2=input('Masukkan nilai x2=');
fa=subs(f,x,x1);
fb=subs(f,x,x2);
xn=x2-((fb*(x2-x1))/(fb-fa));
fn=subs(f,x,xn);
disp('---------------------');
disp(' x1 x2 xn fa fb fn ');
disp('---------------------');
disp([ x1' x2' xn' fa' fb' fn' ]);
while abs ((x2-x1)/x2)>0.01
x1=x2;
x2=xn;
fb=subs(f,x,x2);
fa=subs(f,x,x1);
xn=x2-((fb*(x2-x1))/(fb-fa));
fn=subs(f,x,xn);
disp([ x1' x2' xn' fa' fb' fn' ]);
36
end;
disp(sprintf('Hasil Akar=%7.5f',xn));
xn=linspace(-2,1);
fn=(xn);
plot(xn,fn);
title ('grafik metode secant');
xlabel('nilai xn baru');
ylabel('nilai fn hasil iterasi');
grid on
37
Hasil Program
38
Hasil plot
39
Flowchart
40
Program Metode Secant F(x) = 5x4 + 5x3 + 7x2 = 7x4 + 12x2
clear all;
clc;
syms x;
disp('*******Metode Secant*******');
f=input('Masukkan Persamaan=');
x1=input('Masukkan nilai x1=');
x2=input('Masukkan nilai x2=');
fa=subs(f,x,x1);
fb=subs(f,x,x2);
xn=x2-((fb*(x2-x1))/(fb-fa));
fn=subs(f,x,xn);
disp('---------------------');
disp(' x1 x2 xn fa fb fn ');
disp('---------------------');
disp([ x1' x2' xn' fa' fb' fn' ]);
while abs ((x2-x1)/x2)>0.01
x1=x2;
x2=xn;
fb=subs(f,x,x2);
fa=subs(f,x,x1);
xn=x2-((fb*(x2-x1))/(fb-fa));
fn=subs(f,x,xn);
disp([ x1' x2' xn' fa' fb' fn' ]);
end;
disp(sprintf('Hasil Akar=%7.5f',xn));
xn=linspace(-2,1);
fn=(xn);
plot(xn,fn);
title ('grafik metode secant');
41
xlabel('nilai xn baru');
ylabel('nilai fn hasil iterasi');
grid on
42
Hasil Program
43
Hasil Plot
44
Flowchart
45
DAFTAR PUSTAKA
Anonim.2009. .M-file on Matlab.(http://bisonerich-
matlab.blogspot.co.id/2009/02/m-file-matlab.html). Diakses pada tanggal 15
Maret 2017 pukul 00.05 WIB.
Anonim.2011.Mengenal Fungsi Strcmp pada
C.(http://programminginaction.blogspot.co.id/2011/08/mengenal-fungsi-
strcmp-pada-c.html). Diakses pada tanggal 15 Maret 2017 pukul 00.25
WIB.
Anonim.2013.Masukan dan Keluaran Input dan
Output.(http://infokitabersama123.blogspot.co.id/2013/02/masukan-dan-
keluaran-input-dan-output.html). Diakses pada tanggal 15 Maret 2017 pukul
00.10 WIB.
Anonim.2015.Perbedaan Print Echo Printf dan
Sprintf.(https://belajarphpyuk.wordpress.com/2015/03/10/perbedaan-print-
echo-printf-dan-sprintf/). Diakses pada tanggal 15 Maret 2017 pukul 00.15
WIB.
Elsaid,Fairuz.Penyelesaian Persamaan Non Linier Menggunakan Metode
Newton
Rhapson.(https://fairuzelsaid.wordpress.com/2010/11/21/penyelesaian-
persamaan-non-linier-menggunakan-metode-newton-raphson/). Diakses pada
tanggal 15 Maret 2017 pukul 00.30 WIB.
Vian.2008.M-file on Matlab.(https://parvian.wordpress.com/2008/02/17/m-file-
on-matlab/). Diakses pada tanggal 15 Maret 2017 pukul 00.00 WIB.
Vusvita,Indah.2014.Tugas Kuliah User Guide
Matlab.(http://indahvusvita.blogspot.co.id/2014/04/tugas-kuliah-userguide-
matlab.html). Diakses pada tanggal 15 Maret 2017 pukul 00.20 WIB.
46