Dengan Matlab
IGA Widagda
Fisika FMIPA UNUD
2012
I Pendahuluan
Bab
I
Pendahuluan
I Pendahuluan
Editor
Command Window
I Pendahuluan
Dalam pemrograman command window maka baris perintah diketikkan dalam editor
command window setelah lambang >> , dan diikuti menekan enter.
>> instruksi
Contoh 1 :
>> data = 5
[enter]
Hasilnya adalah :
data =
5
Contoh 2 :
>> a=10
a=
10
>> b=20
b=
20
>> c=a+b
c=
30
Contoh 3 :
>> cos(60)
ans =
-0.9524
Contoh 4 :
>> 2^3
ans =
8
Contoh 5 :
>>x=0:pi/100:2*pi;
>> y=cos(x);
>> plot(x,y)
I Pendahuluan
Dalam pemrograman dengan script M-File ini maka baris perintah atau program
diketikkan dalam editor M-File. Setelah itu program akan disimpan dengan eksetensi .m
Untuk menampilkan editor tersebut adalah dari menu utama Matlab. Pada menu utama
Matlab pilih menu File-new-M-File maka akan tampil editor seperti diperlihatkan dalam
gambar 1.3.
simpan file tersebut dengan nama,misal : latih1.m. Untuk melihat hasil dari program
tersebut maka eksekusi program tersebut di dalam editor command window, yaitu dengan
jalan mengetikkan nama filenya, latih1, diikuti enter :
>>latih1
[enter]
Hasilnya adalah :
Hello Matlab
Welcome!
Contoh 2 :
x=-100:0.1:100;
y=x.^2;
plot(x,y);
xlabel('x');
ylabel('y=x^2');
I Pendahuluan
selanjutnya simpan (save) file tersebut dengan nama, misalnya : latih2.m. Untuk melihat
hasil eksekusi program tersebut maka kembalilah ke editor command window dan
ketikkan :
>>latih2 [enter]
Hasilnya adalah :
Bab
II
2.1 T i p e D a t a
Tipe data menentukan jenis nilai yang dapat disimpan pada suatu variabel dan
jenis operator yang dapat dikenakan pada variabel tersebut. Misalnya tipe data real hanya
dapat menyimpan bilangan real dan operator yang dapat dikenakan padanya antara lain
operator penjumlahan, pengurangan, perkalian, dll.
Tipe data dasar (primitive) dalam pemrograman komputer (misal : Matlab) seperti
tercantum dalam tabel 2.1 berikut ini :
Tipe
int
short
long
byte
float
double
char
boolean
Ukuran
4 byte
2 byte
8 byte
1 byte
4 byte
8 byte
2 byte
true or false
Tipe
int8
int16
int32
int64
single
double
char
boolean
Ukuran
1 byte
2 byte
4 byte
8 byte
4 byte
8 byte
2 byte
true or false
dipakai untuk menyimpan karakter tunggal atau sekumpulan karakter (string). Tipe data
boolean dipakai untuk menyimpan nilai true atau false.
2.2 Variabel
Variabel merupakan komponen penting dalam pemrograman. Variabel digunakan
dalam pemrograman untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat
diubah selama eksekusi program berlangsung. Adapun ketentuan atau aturan dalam
penulisan nama variabel adalah :
1. Nama variabel bisa terdiri dari huruf, angka, atau under score ( _ )
2. Nama variabel harus diawali oleh huruf (bukan angka)
contoh nama variabel yang benar :
nama_siswa
Latihan1
nilai1
3. Nama Variabel Tidak boleh memakai kata kunci (key word) seperti
diperlihatkan tabel 2.3 :
break
case
catch
continue
else
elseif
for
return
function
switch
global
try
if
while
otherwise
persistant
contoh :
jumlah = 10+5;
harga_satuan = 1500 ;
iga widagda , lab. fisika komputasi, unud
Pada deklarasi variabel jumlah menyatakan bahwa jumlah adalah variabel yang
menyimpan nilai hasil ekspresi 10+5 yaitu 15. Sementara variabel harga_satuan
menyimpan nilai yaitu 1500.
2.4 Konstanta
konstanta hampir sama fungsinya dengan variabel yaitu untuk menyimpan suatu
nilai. Jika dalam variabel nilai yang disimpan dapat diubah selama eksekusi program
berlangsung maka dalam konstanta nilai yang disimpan bersifat tetap (tidak berubah)
selama eksekusi program. Di dalam Matlab terdapat beberapa konstanta yaitu :
Konstanta
Nilai
pi
i
j
inf
NaN
3,14159
1
1
Tak berhingga ,
Not-a-Number, misal hasil dari :
0
0
Pernyataan yang pertama akan menampilkan Text dalam tanda petik ke layar tanpa
diikuti pindah baris baru sedangkan pernyataan yang kedua akan menampilkan text dalam
format tertentu. Penulisan dengan format didahului oleh : %. Adapun format tersebut
adalah :
iga widagda , lab. fisika komputasi, unud
Format
%d
%f
%c
%s
Keterangan
Bulat (integer)
Pecahan (float)
Karakter tunggal
String (kumpulan karakter)
Tabel 2.5 Format tampilan keluaran
Contoh 1 :
disp(Hello);
disp(Java);
disp(Welcome );
Contoh 2 :
A=10;
B=5;
hasil = A+B;
fprintf('Hasil penjumlahan adalah : %d\n',hasil);
atau jika kita memakai pernyataan keluaran disp() maka kode programnya akan menjadi :
A=10;
B=5;
hasil = A+B;
disp(strcat('Hasil Penjumlahan adalah : ',num2str(hasil)));
Program pada contoh 2 merupakan program untuk menghitung hasil penjumlahan dari 2
buah bilangan yang dinyatakan dengan variabel A dan variabel B. Hasil penjumlahan
disimpan dalam variabel hasil dan ditampilkan dengan perintah output fprintf() berformat
bilangan bulat (%d). Penambahan instruksi \n menyatakan pindah baris (new line). Untuk
menampilkan hasil penjumlahan bisa juga dilakukan dengan perintah disp(). Instruksi
strcat()
dan num2str() merupakan fungsi atau perintah khusus yang sudah disediakan oleh
MatLab. Perintah strcat() berfungsi untuk menggabungkan 2 atau lebih data bertipe string
sedangkan num2str() untuk mengubah data bertipe numerik (bulat atau pecahan) menjadi
iga widagda , lab. fisika komputasi, unud
data bertipe string. Pembahasan lebih mendalam tentang fungsi akan diuraikan secara
lebih rinci dalam bab selanjutnya.
sedangkan format untuk data masukan bertipe String atau karakter adalah :
nama_variabel = input (Text anda,s);
Contoh program :
Contoh 1.
bil = input('Masukkan bilangan : ');
fprintf('Bilangan yang anda masukkan adalah : %d\n',bil);
atau jika kita memakai perintah keluaran disp() maka kode programnya akan menjadi :
bil = input('Masukkan bilangan : ');
disp(strcat('Bilangan yang anda masukkan adalah : ',num2str(bil)));
Dalam contoh 1, variabel bil akan menyimpan data bilangan yang dimasukkan dengan
instruksi input(). Hasil pemasukan bilangan tersebut kemudian akan ditampilkan (output)
dengan instruksi fprintf() dengan format bilangan bulat (%d).
Contoh 2 (Menghitung penjumlahan 2 bilangan) :
bilangan1 = input('Masukkan bilangan 1 : ');
bilangan2 = input('Masukkan bilangan 2 : ');
hasil=bilangan1+bilangan2;
fprintf('Hasil penjumlahan : %d\n',hasil);
10
Contoh :
%Program menghitung luas lingkaran
%dengan jari-jari r
r = input('Masukkan jari-jari : '); %masukkan jari-jari lingkaran
luas = pi * (r^2);
fprintf('Lingkaran dengan jari-jari : %.2f,',r); %instruksi %.2f bukan komentar
fprintf('luasnya adalah %.2f\n',luas); %tampilkan luas lingkaran
Rangkaian Paralel :
1
1
1
1
R p R1 R 2 R3
11
5. Buatlah program untuk menghitung Intensitas dari sebuah sinar I ketika melewati
sebuah bahan. Dimana persamaannya adalah :
I = I0 e-x
6. Buatlah program untuk menghitung Energi photon. Dimana persamaannya adalah :
E hc /
7. Buatlah program untuk menghitung Persamaan garis lurus yang melalui 2 titik P1(x1,y1)
dan P2(x2,y2) dapat dinyatakan dengan (interpolasi linear):
y y1
x x1
y2 y1 x2 x1
atau bisa ditulis :
y y1
y 2
( x x1 ) y1
x2 x1
input dari program adalah x,x1,y1,x2,y2
8. Buatlah program untuk menghitung Persamaan garis yang melalui 3 buah titik
P1(x1,y1) , P2(x2,y2) dan P3(x3,y3) dapat dinyatakan dengan (interpolasi kuadratik):
( x x2 )( x x3 )
( x x1 )( x x3 )
( x x1 )( x x2 )
y2
y3
( x1 x2 )( x1 x3 )
( x2 x1 )( x2 x3 )
( x3 x1 )( x3 x2 )
input dari program adalah x,x1,y1,x2,y2, x3,y3
y y1
12
III Operator
Bab
III
Operator
Fungsi
Penjumlahan
Pengurangan
Perkalian
pembagian
pemangkatan
11
III Operator
c=8;
d=4;
f=a*b/c;
fprintf('f = %4.2f\n',f);
g=a+b*c;
fprintf('g= %4.2f\n',g);
h=a*b+d;
fprintf('h = %4.2f\n',h);
Operator
keterangan
&&
AND
||
OR
NOT
A && B
0 (FALSE
0 (FALSE)
0 (FALSE)
1 (TRUE)
0 (FALSE)
0 (FALSE)
0 (FALSE
1 (TRUE)
0 (FALSE)
1 (TRUE)
1 (TRUE)
1 (TRUE)
A||B
0 (FALSE)
0 (FALSE)
0 (FALSE)
1 (TRUE)
0 (FALSE)
1 (TRUE)
0 (FALSE
1 (TRUE)
1 (TRUE)
1 (TRUE)
1 (TRUE)
1 (TRUE)
12
III Operator
Contoh :
a = true;
b = false;
c = a || b;
d = a && b;
e = ~a;
fprintf('c = %d\n', c);
fprintf('d = %d\n',d);
fprintf('e = %d\n',e);
Operator
keterangan
==
sama dengan
~=
<
Lebih kecil
<=
>
Lebih besar
>=
Hasil operasi
A< B
TRUE
A ~= C/B
TRUE
C >= B
TRUE
B < C-A
FALSE
C >= B*A
FALSE
A == C
FALSE
13
III Operator
Contoh 1 :
a = 4;
b = 5;
c = a > b;
d = a ~= b;
e = c && d;
f = c || d;
fprintf('c = %d\n', c);
fprintf('d = %d\n',d);
fprintf('e = %d\n',e);
fprintf('f = %d\n',f);
Contoh 2 :
nilai = input('Masukkan nilai : ');
hasil = nilai>= 80 && nilai<=100;
fprintf('Hasil = %d\n',hasil);
Masukkan nilai : 85
Hasil = 1
14
III Operator
disp(strcat('Hasil = ',num2str(hasil_final)));
15
Bab
IV
4.1 Pernyataan if
Pernyataan yang biasanya dipakai untuk mengambil keputusan dari suatu kondisi
adalah statemen if. Adapun format atau sintax dari statemen if adalah sebagai berikut :
if kondisi
aksi
end
Dalam hal ini jika kondisi bernilai TRUE (atau 1) maka aksi akan dikerjakan sedangkan
jika kondisi bernilai FALSE (atau 0) maka aksi tidak akan dikerjakan.
Contoh 1 :
%Program untuk menguji pernyataan if
a=5;
if a==5
disp('aksi dikerjakan');
end
Contoh 2 :
%Program untuk menguji pernyataan if
nilai_ujian=input('Masukkan nilai ujian : ');
absen= input('Masukkan prosentase absen : ');
if nilai_ujian>50 && absen>=75
disp('Anda Lulus');
disp('Selamat');
end
disp('Terima Kasih');
15
Di sini diperlihatkan bahwa jika kondisi terpenuhi atau bernilai TRUE (1) maka aksi_1
yang dikerjakan. Sedangkan jika kondisi bernilai FALSE (0) maka yang akan dikerjakan
adalah aksi_2.
Contoh 1 :
%Program untuk menguji pernyataan if-else
nilai_ujian=input('Masukkan nilai ujian : ');
absen= input('Masukkan prosentasi absen : ');
if nilai_ujian>50 && absen>=75
disp('Anda Lulus');
else
disp('Anda Tidak Lulus');
end
Contoh 2 :
% Program menghitung luas lingkaran
% program mengecek error jika jari-jari< 0 (negatif)
radius = input('Masukkan jari-jari : ');
if radius <= 0
fprintf('Maaf; %.2f adalah jari-jari tidak valid\n',radius);
else
area = pi* (radius^2);
fprintf('Lingkaran dengan jari-jari %.2f,',radius);
fprintf('luasnya adalah %.2f\n',area);
end
Latihan :
iga widagda , lab. fisika komputasi, unud
16
1. Buatlah program komputer yang dapat memilih nomer channel TV dan menampilkan
stasiun TV yang bersangkutan. Andaikan nomer channel TV tersebut adalah bilangan
integer dari 1 9 seperti berikut ini :
1. RCTI
5. ANTV
2. SCTV
6. TPI
3. Indosiar
7. MetroTV
4. Lativi
8. TVRI
9. Bali TV
Petunjuk :
-
2. Andaikan kita diminta untuk mengubah nilai angka menjadi nilai huruf dari suatu data
nilai ujian mahasiswa dengan ketentuan sebagai berikut :
jika nilai_angka >=80 dan nilai_angka <=100 maka nilai_huruf = A
jika nilai_angka >=60 dan nilai_angka <80 maka nilai_huruf = B
jika nilai_angka >=40 dan nilai_angka <60 maka nilai_huruf = C
jika nilai_angka >=20 dan nilai_angka <40 maka nilai_huruf = D
jika nilai_angka >=0 dan nilai_angka <20 maka nilai_huruf = E
Petunjuk :
- masukkan nilai_angka
- gunakan statemen if dan untuk kondisi gunakan operator logika AND (&&)
4.3 Pernyataan if-else bersarang (nested if-else)
Pernyataan if-else dipakai untuk memilih diantara dua buah pernyataan. Untuk
memilih lebih dari dua pernyataan maka dipakai if-else bersarang. Pernyataan if-else dapat
disarangkan dalam if-else yang lain. Format dari pernyataan i f- el s e b e r sa ran g adalah
sebagai berikut :
If kondisi_1
aksi_1
else
if kondisi_2
aksi_2
else
...
if kondisi_n
aksi_n
else
aksi_m
end
end
end
iga widagda , lab. fisika komputasi, unud
17
Contoh kasus dari pemakaian if-else bersarang adalah pada fungsi matematika y = f(x)
yang memenuhi persamaan berikut ini :
y 1, untuk x 1
y x 2 , untuk 1 x 2
y 4, untuk x 2
Program untuk menyelesaikan fungsi tersebut dapat dilihat dalam contoh 1 dan 2 berikut ini :
18
y = 0.00
masukkan nilai x : -2
y = 1.00
masukkan nilai x : 4
y = 4.00
Contoh kasus dari pemakaian elseif adalah pada fungsi matematika y = f(x) yang
memenuhi persamaan berikut ini :
y 1, untuk x 1
y x 2 , untuk 1 x 2
y 4, untuk x 2
Program untuk menyelesaikan fungsi tersebut dapat dilihat dalam contoh berikut ini :
Contoh :
%Program hitung fungsi f(x) tanpa nested if-else
x=input('masukkan nilai x : ');
if x<-1
y = 1;
elseif x>=-1 && x <= 2
y = x^2;
else
y = 4;
end
fprintf('y = %.2f\n',y);
19
y = 1.00
masukkan nilai x : 4
y = 4.00
Contoh :
% Example of otherwise for error message
choice = input('Masukkan 1, 3, atau 5 : ');
switch choice
case 1
disp('Ini adalah satu!!')
case 3
disp('Ini adalah tiga!!')
case 5
disp('Ini adalah lima!!')
otherwise
disp('Ikuti petunjuk!!')
end
Latihan :
1.
2.
Andaikan kita mempunyai 2 buah bilangan yaitu bil1 dan bil2. Kita akan
mengoperasikan kedua bilangan tersebut dengan pilihan sebagai berikut :
1. Penjumlahan
20
2. Pengurangan
3. Pekalian
4. Pembagian
misal jika kita pilih 1 maka program akan menjumlahkan bil1 dan bil2. Dan jika kita
pilih 3 maka program komputer akan melakukan perkalian antara bil1 dan bil2.
Dalam hal ini gunakanlah pernyataan switch.
21
V Pernyataan Pengulangan
Bab
V
5.1 Pengulangan fo r
Seperti diperlihatkan dalam contoh diatas maka format dari kalang for adalah :
for var_loop = nilai_awal:step:nilai_akhir
aksi
end
keterangan :
var_loop
aksi
Jika nilai step = 1 maka nilai step bisa dihilangkan dari format menjadi :
for var_loop = nilai_awal:nilai_akhir
aksi
end
iga widagda , lab. fisika komputasi, unud
22
V Pernyataan Pengulangan
Pernyataan aksi akan terus dikerjakan selama var_loop berada dalam rentang pengulangan
yaitu dari nilai_awal sampai nilai_akhir. Dalam setiap pengulangan maka var_loop akan
dinaikkan nilainya sebesar nilai step. Misalkan kita ingin membuat kode program yang
dapat mencetak 5 buah bilangan dari 1 sampai 5 maka kode programnya adalah sebagai
berikut :
%Program pemakaian for
%mencetak bilangan 1 sampai 5
for data=1:1:5
disp(data);
end
Dari program diatas maka dalam kalang for mengandung pernyataan yaitu :
for data = 1:1:5
yang berarti variabel data mempunyai rentang atau range dari 1 sampai 5. Nilai awal data
adalah 1 (data =1) dan nilai data ini akan ditingkatkan sebesar 1 setiap mengerjakan
pernyataan aksi dalam kalang for.
%Program pemakaian for
%mencetak bilangan 1 sampai 20 dengan interval 2
for i=1:2:20
fprintf('%d\t',i);
end
5.2 Pengulangan fo r b er s a r a ng (n e st ed f or )
Dalam pemrograman ada kalanya kita memerlukan
pengulangan for yang disarangkan pada for yang lain. Adapun bentuk umum dari for
bersarang adalah :
for var_loop_1 = nilai_awal_1:step_1:nilai_akhir_1
for var_loop_2 = nilai_awal_2:step_2:nilai_akhir_2
....
....
for var_loop_n = nilai_awal_n:step_n:nilai_akhir_n
aksi_n
end
end
end
Contoh 1 :
iga widagda , lab. fisika komputasi, unud
23
V Pernyataan Pengulangan
3. Buatlah kode program yang dapat mencetak bilangan genap yang lebih kecil dari 50
dimulai dari 0.
4. Buatlah program yang dapat menghitung :
n
i
i 1
24
V Pernyataan Pengulangan
atau
1 + 2 + 3 + ...+ n
5. Buatlah program yang dapat menghitung faktorial dari sebuah bilangan n
n! = 1*2* ...*n
6. Buatlah program yang dapat menampilkan pola berikut ini
1
12
123
1234
12345
7. Buatlah program yang dapat menampilkan pola berikut ini
*****
****
***
**
*
5.2 Pengulangan while
Pengulangan while hampir sama dengan kalang for yaitu sama-sama dipakai untuk
mengulangi pernyataan yang sama berkali-kali selama kondisi terpenuhi. Adapun format
atau sintax dari kalang while adalah :
while kondisi
aksi
end
kondisi merupakan operasi relasi yang melibatkan operator-operator relasi . Hasil dari
operasi relasi ini adalah TRUE (1) atau FALSE (0). Pernyataan aksi akan diulangi selama
hasil operasi relasi dalam kondisi bernilai TRUE (1). Program berikut adalah contoh
pemakaian kalang while.
Contoh 1 :
%Program looping while
%mencetak bilangan dari 1-5
i=1;
while i<=5
disp(i);
i=i+1;
end
25
V Pernyataan Pengulangan
Contoh 2 :
%Program looping while
limit = 5;
sum = 0;
i = 1;
while i <= limit
sum = sum+i ;
i=i+1;
end
fprintf('sum = %d\n',sum);
Latihan :
1. Buatlah program komputer yang dapat menampilkan bilangan 1 sampai 10 dengan
urutan terbalik (gunakan kalang while).
2. Implementasikan kode program yang dapat menampilkan bilangan ganjil antara 0 50
dengan memakai kalang while
Petunjuk :
-gunakan kalang while yaitu :
3. Buatlah kode program yang dapat menampilkan dan menghitung hasil penjumlahan
bilangan genap dari 0 sampai 50.
Petunjuk :
-tampilkan bilangan genap dari 0 - 50
-hitung hasil penjumlahan dari bilangan genap tersebut misal :
total_jumlah = 0 + 2 + 4 ++50
-gunakan kalang while
Soal-soal Tambahan :
1. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
f ( x) x 0 x1 x 2 x3 ...x n
dimana n = 0,1,2,...
2. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
g ( x) x 0 x 2 x 4 ...x 2n2
dimana n = 1,2,3,...
3. Buatlah program komputer untuk menghitung faktorial f dari sebuah bilangan :
iga widagda , lab. fisika komputasi, unud
26
V Pernyataan Pengulangan
f n! 1x2 x...n
n4
maka : f 4! 1.2.3.4 24
n6
n0
maka : f 0! 1
f 0! 1! 2! ...n!
dimana n = 0,1,2,...
5. Buatlah program komputer untuk menyelesaikan persamaan di bawah ini :
f 0! 2! 4! ...2n 2!
dimana n = 1,2,3...
6. Buatlah program komputer dari fungsi exp(x) yang dinyatakan dengan :
exp( x) 1 x
x 2 x3
xn
...
2! 3!
n!
x2 x4 x6
x 2 n2
cos( x) 1 ...
2! 4! 6!
(2n 2)!
Dimana n menyatakan jumlah suku
27
VI Array
Bab
VI
ARRAY
Di dalam pemrograman Matlab array ekivalen dengan vektor dan matrik. Vektor
merupakan array 1 dimensi sedangkan matrik adalah array 2 dimensi. Vektor biasanya
dapat dinyatakan dengan vektor baris atau vektor kolom. Matrik dapat dinyatakan dengan
dimensi baris dan kolom. Sebuah matrik Amxn menyatakan matrik yang memiliki jumlah
baris m dan jumlah kolom n. Jadi vektor baris adalah matrik yang berdimensi 1xn yaitu
memiliki 1 baris dan n kolom. Sedangkan vektor kolom merupakan matrik berdimensi
nx1, yaitu n baris dan 1 kolom.
6.1 Array 1 Dimensi (vektor)
Adapun sintax atau format penulisan dari Array 1 dimensi (vektor) dalam Matlab
adalah :
NamaVar = [ e1 e2 ... en] ;
Atau
NamaVar = [e1 ; e2 ; ...en]; untuk vektor kolom
Keterangan :
NamaVar = Nama vektor
e1,e2,...en = elemen vektor
Contoh :
A = [1 2 3 4];
B = [1;2;3;4];
A adalah vektor baris berdimensi 1x4 dengan 4 elemen. Sedangkan B adalah vektor
kolom berdimensi 4x1 dengan 4 elemen. Untuk memberikan nilai pada elemen vektor
dilakukan dengan cara :
NamaVar(i) = nilai;
Dimana i menunjukkan indeks dari elemen vektor. Sedangkan nilai adalah nilai yang akan
diberikan (assign) pada elemen vektor.
Contoh :
A(2) = 5;
27
VI Array
A=[6 2 3 4 8];
for i = 1:5
disp(A(i));
end
Contoh 2 :
%Program array 1 dimensi (vektor)
%Memasukkan elemen vektor
for i = 1:5
A(i)= input(strcat('A[',num2str(i),']= '));
end
%menampilkan elemen vektor
disp('Elemen vektor adalah : ');
for i = 1:5
disp(strcat('A[',num2str(i),']=',num2str(A(i))));
end
a12
a
A = 11
a 21 a 22
Matrik A adalah matrik dua dimensi dengan 2 baris dan 2 kolom. Sintax untuk
menyatakan variabel array 2 dimensi dalam Matlab adalah :
NamaVar[e11 e12 ...e1n; e21 e22...e2n ; ...em1 em2...emn] ;
28
VI Array
NamaVar(i,j) = nilai;
Dimana i dan j menunjukkan indeks baris dan kolom dari elemen matrik. Sedangkan nilai
adalah nilai yang akan diberikan (assign) pada elemen matrik.
Contoh :
A(1,3) = 5;
Ini menunjukkan memberikan nilai 5 kepada elemen pada baris 1 kolom 3 dari matrik A.
Misalkan kita ingin membuat sebuah matrik 2 dimensi dengan 2 baris dan 2 kolom yang
bernama A dengan elemen seperti berikut :
4 6
A=
3 8
Contoh program yang berisi pembuatan matrik tersebut diperlihatkan dalam contoh 1
program berikut ini :
Contoh 1 :
%Program array 2 dimensi (Matrik)
%Memasukkan elemen matrik
for i = 1:2
for j=1:2
A(i,j)= input(strcat('A[',num2str(i),num2str(j),']= '));
end
end
%menampilkan elemen vektor
disp('Elemen vektor adalah : ');
for i = 1:2
for j=1:2
disp(strcat('A[',num2str(i),num2str(j),']=',num2str(A(i,j))));
end
end
Latihan :
1.Buatlah program yang menghitung nilai rata-rata dari n buah bilangan.
Petunjuk :
-masukkan nilai dari n buah bilangan tersebut (gunakan vektor)
-hitung jumlahnya
-hitung rata-rata
iga widagda , lab. fisika komputasi, unud
29
VI Array
2.Buatlah program yang dapat dipakai untuk memasukkan array 2 dimensi dengan
jumlah baris 3 dan jumlah kolom 3 (matrik 3 X 3). Kemudian tampilkan elemenelemennya
Petunjuk :
- masukkan nilai masing-masing elemen matrik
- tampilkan masing-masing elemennya
3.Tulislah program komputer untuk menghitung hasil penjumlahan 2 buah matrik 2
dimensi 3 baris dan 3 kolom. Misal hasil penjumlahan matrik A dan matrik B disimpan
dalam matrik C seperti persamaan berikut ini :
C=A+B
Petunjuk :
-masukkan nilai elemen-elemen matrik A
-masukkan nilai elemen-elemen matrik B
-jumlahkan nilai elemen-elemen matrik A dengan B yang bersesuaian
-simpan hasil penjumlahan tiap-tiap elemen dalam matrik C
-tampilkan matrik C.
4.Rancang program komputer untuk menampilkan transpose dari suatu matrik.
Petunjuk :
-masukkan nilai elemen-elemen matrik A
-tentukan traspose dari A.misal transpose dari A adalah matrik B. Sehingga nilai elemen
elemen dari B :
B[1,1] = A[1,1]
B[1,2] = A[2,1]
B[2,1] = A[1,2]
B[2,2] = A[2,2]
Soal Tambahan :
30
VI Array
1. Buatlah program untuk menghitung Hambatan total Rs dan Rp dari suatu rangkaian
hambatan yang disusun secara seri dan paralel. Dimana persamaannya adalah :
Rangkaian Seri : Rs R1 R2 ... Rn
Rangkaian Paralel :
1
1
1
1
...
R p R1 R2
Rn
2. Jika kita memiliki sekumpulan N buah titik data yaitu : ( x1,y1), (x2,y2),...(xN,yN).
Buatlah program untuk memasukkan titik-titik data tersebut dan menghitung
persamaan berikut ini :
N
A xn
a)
n 1
N
B yn
b)
n 1
C N xn2
c)
n 1
N
D N xn y n
d)
n 1
D AB
C A2
3. Buatlah program untuk menghitung persamaan interpolasi Lagrange yaitu :
E
e)
y yi
i 1
j i
(x x j )
( xi x j )
( x x2 )( x x3 )
( x x1 )( x x3 )
( x x1 )( x x2 )
y2
y3
( x1 x2 )( x1 x3 )
( x2 x1 )( x2 x3 )
( x3 x1 )( x3 x2 )
31
VII Fungsi
Bab
VII
Fungsi (function)
7.1 Fungsi
Fungsi adalah suatu cara untuk membagi program yang besar menjadi sub-sub
program, dimana masing-masing sub program mempunyai tugas atau fungsi tertentu. Di
bab-bab sebelumnya kita sudah mempergunakan fungsi bawaan Matlab (built-in function)
seperti : disp(), fprintf(), input(), dan lain-lain. Fungsi-fungsi tersebut sudah disediakan
langsung oleh Matlab dan dapat dipergunakan langsung tanpa harus didefinisikan terlebih
dahulu. Disamping fungsi built-in, di dalam Matlab kita bisa membuat fungsi buatan
sendiri yang disesuaikan dengan keperluan kita (user-defined function).
7.2 Pendefinisian dan Pemanggilan Fungsi
Fungsi buatan sendiri selanjutnya disingkat dengan fungsi. Bentuk umum fungsi
adalah :
nama_fungsi.m
31
VII Fungsi
fungsi nama_fungsi dipanggil dan hasil dari pemanggilan fungsi tersebut akan disimpan
dalam variabel nama_variabel.
Contoh 1 ( Luas Lingkaran) :
calcarea.m
function area = calcarea(rad)
% Fungsi untuk menghitung luas lingkaran
area = pi * rad * rad;
script1.m
% Skrip untuk menghitung luas lingkaran
% Skrip akan meminta user untuk memasukkan jari-jari
radius = input('Masukkan jari-jari :');
% panggil fungsi calcarea()
area = calcarea(radius);
%cetak luas
fprintf('Lingkaran dengan jari-jari %.2f,',radius)
fprintf('Luasnya adalah : %.2f\n',area)
script2.m
function nama_fungsi(input_argumen)
% komentar tentang fungsi
Statemen fungsi
iga widagda , lab. fisika komputasi, unud
32
VII Fungsi
Fungsi ini tidak memiliki argumen output, karena fungsi ini tidak memiliki nilai balik.
Pemanggilan fungsi ini dalam program adalah :
nama_fungsi (argumen);
Program berikut ini adalah contoh fungsi yang tidak memiliki nilai balik serta cara
pemanggilan fungsi tersebut dalam program.
Contoh 1 :
cetak_hasil.m
function cetak_hasil(v);
% fungsi mencetak volume di layar
fprintf('Volume Kerucut adalah : %.2f\n',v)
script3.m
Contoh 2 :
input_data.m
function [radius,height] = input_data()
%fungsi memasukkan radius dan tinggi
radius = input('Masukkan jari-jari alas : ');
height = input('Masukkan tinggi : ');
cetak_volume.m
function cetak_volume(v);
% fungsi mencetak volume di layar
fprintf('Volume Kerucut adalah : %.2f\n',v)
33
VII Fungsi
script4.m
; untuk n > 1
; untuk n <= 1
Contoh :
faktorial.m
function f=faktorial(n)
if n>1
f=n*faktorial(n-1);
else
f=1;
end
hitung_faktorial.m
hasil=faktorial(5);
disp(num2str(hasil));
34
VII Grafik
Bab
Grafik
VIII
MATLAB menyediakan beberapa fungsi built-in untuk menampilkan grafik baik
grafik 2 dimensi maupun grafik 3 dimensi.
8.1 Grafik 2 Dimensi
Fungsi dasar yang dipakai untuk menampilkan grafik 2 dimensi adalah fungsi plot.
Sebagai contoh kita akan membuat grafik dari fungsi :
y
x
; 2 x 2
1 x2
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.1:
35
VII Grafik
Keterangan
title (s)
Judul grafik
xlabel(s)
Label sumbu x
ylabel(s)
Label sumbu y
text(x,y,s)
gtext(s)
Fungsi
Keterangan
axis auto
axis tight
axis ij
axis xy
axis square
Sumbu persegi
axis normal
axis off
Sumbu dinonaktifkan
axis on
Sumbu diaktifkan
Grid
xlim([xmin xmax])
ylim([ymin ymax])
36
VII Grafik
Warna
Lambang Warna
Simbol plot
Lambang
Keterangan
Bentuk Garis
Lambang
Keterangan
blue
point
solid
green
circle
dotted
red
x-mark
-.
dashdot
cyan
plus
--
dashed
magenta
star
yellow
square
black
diamond
white
triangle(down)
triangle(up)
<
triangle(left)
>
triangle(right)
pentagram
hexagram
Tabel 8.3 Fungsi Pengaturan warna, bentuk garis, dan simbol plot
Jika program tersebut dieksekusi maka hasilnya adalah seperti tampak dalam gambar 8. 2.
Tampak bahwa hasilnya adalah berupa 2 figure window yaitu figure 1 dan figure 2.
iga widagda , lab. fisika komputasi, unud
37
VII Grafik
Dimana, fungsi ini berarti kita membagi figure window menjadi m buah baris dan n buah
kolom. Sementara p menyatakan nomer urut indeks dari grafik yang akan ditampilkan.
Program contoh 3 dan 4 berikut ini akan memperlihatkan tentang pemakaian subplot.
Contoh 3 :
%Program grafik dengan subplot
%-----------------------------------------------%sb x dari -2 sampai 2, dibagi menjadi 10 titik
x = linspace(-2,2,10);
y = x./(1+x.^2);
subplot(2,1,1)
plot(x,y,'red') %warna kurva merah
title('Grafik 1, sumbu x dibagi menjadi 10 titik');
xlabel('x')
ylabel('y')
%sb y dari -2 sampai 2, dibagi menjadi 100 titik
x = linspace(-2,2,100);
y = x./(1+x.^2);
subplot(2,1,2)
plot(x,y,'blue') %warna kurva biru
title('Grafik 2, sumbu x dibagi menjadi 100 titik');
xlabel('x')
ylabel('y')
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.3:
iga widagda , lab. fisika komputasi, unud
38
VII Grafik
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.4:
39
VII Grafik
Jika program tersebut dieksekusi maka hasilnya adalah seperti gambar 8.5:
dimana, x,y,dan z adalah vektor dari koordinat x, y, dan z. Sebagai contoh kita akan
membuat grafik dari fungsi :
x e0.02z sin( z ) ; 0 z 10 pi
iga widagda , lab. fisika komputasi, unud
40
VII Grafik
y e0.02z cos( z ) ; 0 z 10 pi
Program dari fungsi tersebut dinyatakan dalam contoh 6 berikut ini :
z = 0 : pi/50 : 10*pi;
x = exp(-0.02*z) .* sin(z);
y = exp(-0.02*z) .* cos(z);
plot3( x, y, z);
xlabel('x-axis');
ylabel('y-axis');
zlabel('z-axis');
Hasil eksekusi dari program contoh 6 dapat dilihat dalam gambar 8.6.
41
VII Grafik
mesh(X, Y, Z);
%set(gca,'fontsize', 24);
xlabel('x');
ylabel('y');
Hasil eksekusi dari program contoh 7 dapat dilihat dalam gambar 8.7.
Sebagai contoh andaikan kita ingin membuat plot grafik dari fungsi :
f ( x, y) 5 y x 2
42
VII Grafik
Hasil eksekusi dari program contoh 8 dapat dilihat dalam gambar 8.8.
atau
surf(x,y,z)
shading interp;
43
VII Grafik
44
Lampiran 1
L
Laam
mppiirraann
1.Fungsi Matematika
Fungsi
Keterangan
abs(x)
sign(x)
sqrt(x)
exp(x)
log(x)
log10(x)
log2(x)
sin(x)
cos(x)
tan(x)
cot(x)
sec(x)
csc(x)
asin(x)
acos(x)
atan(x)
acot(x)
asec(x)
acsc(x)
sinh(x)
cos(hx)
tanh(x)
coth(x)
sech(x)
csch(x)
asinh(x)
acos(hx)
atanh(x)
acoth(x)
asech(x)
acsch(x)
round(x)
floor(x)
Lampiran 1
ceil(x)
fix(x)
rem(x,y)
real(z)
imag(z)
abs(z)
angle(z)
conj(z)
Keterangan
det(A)
diag(A)
diag(x)
diff(x)
eig(A)
eye(N)
find(x)
isempty(x)
length(x)
max(x)
mean(x)
min(x)
norm(A)
ones(n,m)
prod(x)
rand(n,m)
std(x)
sort(x)
sum(x)
trace(A)
Merunut matrik A
zeros(n,m)
3.Fungsi String
Fungsi
char(x)
Keterangan
Mengubah bilangan bulat x menjadi string
47
Lampiran 1
double(s)
findstr(s1,s2)
lower(s)
strcat(s1,s2)
strcmp(s1,s2)
strtrim(s)
sprintf(...)
upper(s)
48