1
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
KONSEP DASAR PEMROGRAMAN MATLAB
Ir. Sihar, M.T.
Program studi T. Informatika / FTI
Bandung – 2012
Referensi:
[1]. ______Learning MATLAB 6, Student Version. MathWorks, Inc. 2001.
[2]. Simamora, S.N.M.P. “Diktat Pemrograman Dasar MATLAB”. Peminatan Embedded-Systems.
Politeknik TELKOM. Bandung. 2010.
[3]. Simamora, S.N.M.P. “Diktat Konsep Pemrograman MATLAB”. Dept. Sistem Komputer,
Fak. Teknik. ITHB. Bandung. 2002.
Kode-sintaks pada Matlab, yang umum diistilahkan dengan source-code atau source-program,
memiliki extentions *.m, dituliskan pada editor Matlab yang disebut M-Edit atau M-File.
Perhatikan gambar berikut ini:
prompt, tempat command-line text-based langsung dieksekusi
M-Edit
2
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
1. Operator Arithmatika
Ada empat operator arithmatika dan satu operator pendukung, yakni: tambah (add), kurang
(substraction), kali (multiply), bagi (divide), dan sisa-bagi (modulo).
Contoh operator tambah (kode-sintaks symbol: +), perhatikan konstruksi-algoritma berikut
ini:
aT←0.25;
aT=aT+1.95;
tampilkan aT;
Source-code: cth1.m
aT=0.25;
aT=aT+1.95;
fprintf('%fn',aT);
Contoh operator kurang (kode-sintaks symbol: −), perhatikan konstruksi-algoritma berikut
ini:
var←(-0.95);
var=var−2.05;
tampilkan var;
Source-code: cth2.m
var=-0.95;
var=var-2.05;
fprintf('Hasil = %fn',var);
Contoh operator kali (kode-sintaks symbol: ∗), perhatikan konstruksi-algoritma berikut ini:
sns←0.25;
sns=2∗sns−(sns+1.25);
tampilkan sns;
Source-code: cth3.m
sns=0.25;
sns=2*sns-(sns+1.25);
disp(sns);
Contoh operator bagi (kode-sintaks symbol: /), perhatikan konstruksi-algoritma berikut ini:
YBS←π;
YBS=YBS÷180;
tampilkan YBS;
Source-code: cth4.m
YBS=pi;
YBS=YBS/180;
disp(YBS);
Contoh operator modulo (kode-sintaks symbol: mod), perhatikan konstruksi-algoritma
berikut ini:
Aju3←25;
3
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Aju3=Aju3%3;
tampilkan Aju3;
Disimulasikan secara algoritma sebagai berikut:
Aju3=25;
?=Aju3%3;
maka, 25 ÷ 3 = 8 sisa 1, bila dituliskan dalam bentuk bilangan pecahan =
3
1
8 ;
sehingga, 25 % 3 = 1;
dengan demikian, isi var: Aju3=1;
Source-code: cth5.m
Aju3=25;
Aju3=mod(25,3);
fprintf('Isi Aju3=%in',Aju3);
Tampilan jalannya program:
2. Operator Logika
Operator Logika bekerja berdasar Aljabar Boolean, yang dikelompokan menjadi: operator
AND, OR, XOR, dan NOT. Jika AND di-concatenate-kan dengan NOT disebut operator NAND;
jika OR di-concatenate-kan dengan NOT disebut operator NOR; XOR di-concatenate-kan
dengan NOT disebut operator XNOR;
Operator AND
Postulat: luaran bernilai 1 jika-dan-hanya jika kedua masukan bernilai 1;
Disimbolkan dalam konstruksi-algoritma dan truth-table: • atau &;
Dinotasikan dalam kode-sintaks Matlab: and(x,y); dimana x,y adalah nilai-masukan;
atau menggunakan kode-sintaks yang umum: &;
Disimbolkan pada sirkuit/rangkaian:
Contoh, perhatikan konstruksi-algoritma berikut ini:
x1←(03≥3h);
x2←(0xa≠DEC(10));
xR=x1•x2;
tampilkan xR;
Algoritma Matematika Informasi:
03=(3)8=(DEC(3));
4
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
3h=(3)16=(DEC(3));
maka, jika (03≥3h) solusinya adalah TRUE atau bernilai 1, sehingga isi var: x1=1;
0xa=(10)16=(DEC(10));
DEC(10)=(10)10;
maka, jika (0xa≠DEC(10)) solusinya adalah FALSE atau bernilai 0, sehingga isi var:
x2=0;
Dengan demikian, xR = x1•x2; dan isi var: xR=0;
Source-code: cth6a.m
x1=(3>=3);
x2=(10~=10);
xR=and(x1,x2);
fprintf('Hasil = %in',xR);
Operator OR
Postulat: luaran bernilai 1 jika-dan-hanya salah-satu saja masukan bernilai 1;
Disimbolkan dalam konstruksi-algoritma dan truth-table: + atau |;
Dinotasikan dalam kode-sintaks Matlab: or(x,y); dimana x,y adalah nilai-masukan;
atau menggunakan kode-sintaks yang umum: |;
Disimbolkan pada sirkuit/rangkaian:
Contoh, perhatikan konstruksi-algoritma berikut ini:
x1←(0xc≤bh);
x2←(07=7h);
xR=x1|x2;
tampilkan xR;
Algoritma Matematika Informasi:
0xc=(12)16=(DEC(12));
bh=(11)16=(DEC(11));
maka, jika (0xc≤11h) solusinya adalah FALSE atau bernilai 0, sehingga isi var: x1=0;
07=(7)8=(DEC(7));
7h=(7)16=DEC(7);
maka, jika (07=7h) solusinya adalah TRUE atau bernilai 1, sehingga isi var: x2=1;
Dengan demikian, xR = x1|x2; dan isi var: xR=1;
Source-code: cth6b.m
x1=(12<=11);
x2=(7==7);
xR=or(x1,x2);
fprintf('Hasil = %in',xR);
5
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Operator XOR
Postulat: luaran bernilai 1 jika-dan-hanya jumlah kedua masukan (nilai 1 atau 0)
berkelipatan ganjil;
Disimbolkan dalam konstruksi-algoritma dan truth-table: ⊕ atau ∧;
Dinotasikan dalam kode-sintaks Matlab: xor(x,y); dimana x,y adalah nilai-masukan;
Disimbolkan pada sirkuit/rangkaian:
Contoh, perhatikan konstruksi-algoritma berikut ini:
a1←(0xE<012);
a2←(7ah>0xa7);
A=a1⊕a2;
tampilkan A;
Algoritma Matematika Informasi:
0xE=(14)16=(DEC(14));
012=(12)8=(DEC(10));
maka, jika (0xE<012) solusinya adalah FALSE atau bernilai 0, sehingga isi var: a1=0;
7ah=(7a)16=(DEC(122));
0xa7=(a7)16=DEC(167);
maka, jika (7ah>0xa7) solusinya adalah FALSE atau bernilai 0, sehingga isi var: a2=0;
Dengan demikian, A = a1⊕a2; dan isi var: A=0;
Source-code: cth6c.m
a1=(14<10);
a2=(122>167);
A=xor(a1,a2);
fprintf('Hasil = %in',A);
Operator NOT
Postulat: luaran bernilai 1 jika-dan-hanya nilai masukan bernilai 0, demikian juga
sebaliknya;
Disimbolkan dalam konstruksi-algoritma dan truth-table: ∼ atau ‘;
Dinotasikan dalam kode-sintaks Matlab: not(x); dimana x adalah nilai-masukan; atau
menggunakan kode-sintaks yang umum: ∼;
Disimbolkan pada sirkuit/rangkaian:
Contoh, perhatikan konstruksi-algoritma berikut ini:
xT←DEC(27);
xT←~(xT);
tampilkan xT;
6
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Perbedaan pada Matlab hal algoritma, untuk bahasa pemrograman lain seperti
JavaScript, C/C++, dan JAVA berlaku berikut ini:
Algoritma Matematika Informasi: Komplemen
Langkah-1: ubah DEC tersebut dengan panjang 16-bit;
DEC(27) = xxxx xxxx xxxx xxxx = 0000 0000 0001 1011
Langkah-2: tambah-kan BIN tersebut dengan (1)2;
0000 0000 0001 1011
0000 0000 0000 0001 +
0000 0000 0001 1100
Langkah-3: komplemen-kan BIN tersebut
0000 0000 0001 1100 ⇒ 1111 1111 1110 0011
Langkah-4: tambah-kan BIN tersebut dengan (1)2;
1111 1111 1110 0011
0000 0000 0000 0001 +
1111 1111 1110 0100
Langkah-5: nyatakan BIN tersebut dalam DEC
i. Komplemen-kan BIN tersebut
1111 1111 1110 0100 ⇒ 0000 0000 0001 1011
ii. Tambah-kan BIN tersebut dengan (1)2;
0000 0000 0001 1011
0000 0000 0000 0001 +
0000 0000 0001 1100
iii. Representasikan BIN tersebut dalam DEC
0000 0000 0001 1100 = DEC(28);
iv. Kali-kan DEC tersebut dengan (-1)10;
DEC(28) ∗ DEC(-1) = DEC(-28);
Dengan demikian, isi var: xT=DEC(-28);
Dituliskan dalam JavaScript:
Source-code: cth6d.htm
<script language=JavaScript>
xT=27;
xT=~(xT);
document.write("Hasil = ",xT);
</script>
Tampilan jalannya program:
Sedangkan pada Matlab berlaku algoritma berikut ini:
7
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
xT←DEC(27);
apakah xT bernilai bukan 0? jika ya tampilkan 1, selain itu 0;
maka, isi var xT=1;
Source-code: cth6d.m
xT=27;
xT=~(xT);
fprintf('Hasil = %in',xT);
Tampilan jalannya program:
3. Operator Logaritma (khusus Basis Bilangan 10)
Untuk mendapatkan nilai logaritma basis bilangan 10 ada dua cara, yakni cara pertama
dengan method atau function log(x)÷log(10); sedangkan cara ke-2 dengan method/function
log10(x); dimana x adalah bilangan yang akan dicari nilai logaritma-nya.
Contoh, perhatikan konstruksi-algoritma berikut ini:
aZ←100000;
aZ←log(aZ);
tampilkan aZ;
Cara-1: Source-code: cth7a.m
aZ=100000;
aZ=(log(aZ))/(log(10));
fprintf('Hasil = %dn',aZ);
Cara-2: Source-code: cth7b.m
aZ=100000;
aZ=(log10(aZ));
fprintf('Hasil = %dn',aZ);
4. Operator Kuadrat (Pangkat 2)
Pada Matlab, operasi perpangkatan menggunakan kode-sintaks: ∧.
Misalkan: 22, dituliskan dalam syntax Matlab-script: 2∧2; hal yang sama juga berlaku untuk
pangkat di atas bilangan 2.
Contoh, perhatikan konstruksi-algoritma berikut ini:
aZ←0.4;
aZ←(aZ)2;
8
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
tampilkan aZ;
Source-code: cth8a.m
aZ=0.4;
aZ=(aZ)^2;
fprintf('Hasil = %fn',aZ);
Contoh, perhatikan konstruksi-algoritma berikut ini:
a←2;
a←(a)10;
tampilkan a;
Source-code: cth8b.m
a=2;
a=(a)^10;
fprintf('Hasil = %in',a);
Contoh, perhatikan konstruksi-algoritma berikut ini:
a←2;
a1←(a)10;
a2←(a)11;
tampilkan a1,a2;
Source-code: cth8c.m
a=2;
a1=(a^10);
a2=(a^11);
disp(a1);
disp(a2);
5. Operator Pangkat n (xn)
Operator ini identik juga dengan x∧n; namun umum digunakan untuk operator akar-
pangkat n, yakni n
x dapat disebutkan akar-pangkat n dari x.
Misalkan, akan dicari 8
256 ; maka expression ini identik dengan ( ) 125.0
256 ; dengan
demikian dapat disebutkan bahwa
8
1
125.0 = ;
Kode-sintaks pada Matlab digunakan: power(x,y); dimana merujuk pada persamaan xy;
Contoh, perhatikan konstruksi-algoritma berikut ini:
aZ←1024;
aZ← ( )5 1024 ;
tampilkan aZ;
9
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Perhatikan, bahwa ( )5 1024 =( )5
1
1024 = (1024)0.2 ;
Source-code: cth9a.m
aZ=1024;
n=0.2;
aZ=power(aZ,n);
fprintf('Hasil = %fn',aZ);
Contoh, perhatikan persamaan matematika berikut ini:
( )
( )x
x
y
yxf
81
8
),(
0
−
= ;
Tentukan )2,3(f ;
Source-code: cth9b.m
x=(1/3);
y=2;
fxy=((power(8,x))-(power(y,0)))/(power(81,x));
fprintf('Hasil = %fn',fxy);
6. Operator Perbandingan
Operator ini identik dengan operator logika, namun hanya melibatkan AND dan OR.
Contoh, perhatikan konstruksi-algoritma berikut ini:
xL←(0xb≤ch)||(07=7h)&&(DEC(-15)>1h);
tampilkan xL;
Algoritma Matematika Informasi:
0xb=(11)16=(DEC(11));
ch=(12)16=(DEC(12));
maka, jika (0xb≤ch) solusinya adalah TRUE atau bernilai 1;
07=(7)8=(DEC(7));
7h=(7)16=DEC(7);
maka, jika (07=7h) solusinya adalah TRUE atau bernilai 1;
(DEC(-15))=(-15)10;
1h=(1)16=DEC(1);
maka, jika (DEC(-15)>1h) solusinya adalah FALSE atau bernilai 0;
10
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Dengan demikian, xL = 1||(1&&0); dan isi var: xL=1;
Source-code: cth10a.m
xL=(11<=12)||(7==7)&&(-15>1);
disp(xL);
Contoh, perhatikan konstruksi-algoritma berikut ini:
faith←(73≠73)&&(18.25<18)||(-91≥-91);
tampilkan faith;
Dimodelkan sebagai berikut:
Source-code: cth10b.m
faith=(73~=73)&&(18.25<18)||(-91>=-91);
fprintf('Hasil = %in',faith);
7. Struktur Kendali Proses: if-then-else
Blok proses ini dapat dimodelkan sebagai berikut:
jika( expression ) maka {
statement;
} selain itu {
statement;
}
Contoh, perhatikan konstruksi-algoritma berikut ini:
ama←(13≠-13)&&(1.825≥1.8)||(-91<-91);
jika (ama=1) {
tampilkan TRUE;
} selain itu {
tampilkan FALSE;
}
Source-code: cth11a.m
ama=(13~=-13)&&(1.825>=1.8)||(-91<-91);
if(ama==1)
fprintf('TRUEn');
else
fprintf('FALSEn');
end
11
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
8. Struktur Kendali Proses: while
Model dalam pemrograman Matlab dituliskan sebagai berikut:
while( expression )
statement;
end
Contoh: buatlah deret bilangan dengan range -5 s.d 5 dengan selisih 0.5;
Apabila disimulasikan, maka akan terlihat sebagai berikut:
-5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Source-code: cth12a.m
i=0;
x=-5;
while(x<=5)
fprintf('%f ',x);
x=x+0.5;
i=i+1;
end
fprintf('n');
9. Struktur Kendali Proses: for
Model dalam pemrograman Matlab dituliskan sebagai berikut:
for( expression )
statement;
end
Contoh: buatlah deret bilangan dengan range -15 s.d 15 dengan selisih 3;
Apabila disimulasikan, maka akan terlihat sebagai berikut:
-15 -12 -9 -6 -3 0 3 6 9 12 15
Source-code: cth13a.m
for(x=-15:3:15)
fprintf('%i ',x);
end
fprintf('n');
Contoh: tampilkanlah secara vertikal kata ‘IF - Univ. BALE Bandung’ sebanyak 5 kali;
Source-code: cth13b.m
for(i=1:1:5)
fprintf('IF - Univ. BALE Bandungn');
end
12
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
10. Struktur Kendali Proses: switch
Model dalam pemrograman Matlab dituliskan sebagai berikut:
switch( expression )
case 0
statement;
case 1
statement;
case 2
statement;
…
otherwise
statement;
end
Contoh: menampilkan pilihan 2 dari tiga pilihan yang telah dideklarasikan.
Dituliskan dengan Matlab script sebagai berikut:
Source-code: cth14b.m
x=2;
switch(x)
case 1
fprintf('%fn',0.5+1.75);
case 2
a=1.5;
disp(a);
case 3
fprintf('Belajar Matlabn');
end
Contoh: menampilkan pilihan sembarang dari lima pilihan yang disajikan kepada end-user.
Dituliskan dengan Matlab script sebagai berikut:
Source-code: cth14a.m
x=input('Pilihan(1 s.d 5)?: ');
switch(x)
case 1
fprintf('%fn',0.5+1.75);
case 2
a=1.5;
disp(a);
case 3
fprintf('Belajar Matlabn');
case 4
x=xor(0,89);
disp(x);
case 5
z=xor(2,-2);
disp(z);
otherwise
fprintf('Maaf, out-of-the-range...n');
end
13
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
11. Operator Trigonometri
Operator trigonometri terbagi menjadi fungsi sin(x), cos(x), dan tan(x).
Model gelombang sine, cosine, dan tangent:
Oleh sebab nilai fungsi trigonometri pada Matlab (dan hampir semua bahasa
pemrograman/script) berlaku nilai radian bukan sudut, maka setiap nilai sudut harus
ditransformasikan ke dalam nilai radian. Hubungannya diturunkan dari fungsi analitik
pada lingkaran dengan konsep dasar satu putaran sempurna (yakni 2π) senilai 360o.
2π rad = 360o;
1o = (2π ÷ 360) rad;
atau
180
1
π
=o
Contoh-1: -carilah sin(30);
Konstruksi-algoritma:
zT←30;
zT=zT∗(π÷180);
zT=sin(zT);
tampilkan zT;
Source-code: cth15a.m
zT=30;
zT=zT*(pi/180);
zT=sin(zT);
disp(zT);
Contoh-2: -carilah cos(60);
Konstruksi-algoritma:
t←60;
t=t∗(π÷180);
zT=cos(t);
tampilkan zT;
14
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Source-code: cth15b.m
t=60;
t=t*(pi/180);
zT=cos(t);
fprintf('Hasil: %fn',zT);
Contoh-3: -carilah tan(45);
Konstruksi-algoritma:
t←45;
t=t∗(π÷180);
t=tan(t);
tampilkan t;
Source-code: cth15c.m
t=45;
t=t*(pi/180);
t=tan(t);
fprintf('Hasil: %fn',t);
Contoh-4: -bangkitkan gelombang sine dimana selisih (∆) ditetapkan 0.1 dengan range -2π
s.d 2π;
Solusi:
Konstruksi-algoritma:
batas_bawah←-2π;
batas_atas←2π;
selisih=0.1;
t=-2π s.d 2π;
f(t)=sin(t)
tampilkan (t,f(t));
Source-code: cth15d.m
t=[-2*pi:0.1:2*pi];
ft=sin(t);
plot(ft);
12. Operasi Matriks
Operasi matriks dalam bahasa pemrograman atau script umumnya diturunkan dari teknik
array (larik) 1D, matriks sendiri menggunakan teknik array (larik) 2D. Perbedaannya pada
Matlab, indeks dimulai dari urutan ke-1 bukan 0.
Contoh: isi var: xC adalah 0.15, -0.27, -1.5, 1.5, 1.5; maka bila ditampilkan secara array pada
Matlab adalah sebagai berikut:
xC[1]=0.15;
xC[2]=-0.27;
15
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
xC[3]=-1.5;
xC[4]=1.5;
xC[5]=1.5;
Dituliskan dengan Matlab script sebagai berikut:
Source-code: cth16a.m
xC=[0.15 -0.27 -1.5 1.5 1.5];
for(i=1:1:5)
fprintf('%f ',xC(i));
end
fprintf('n');
Source-code cth16a.m menggunakan pendekatan kolom, sedangkan cth16b.m berikut ini
menggunakan pendekatan baris; hasilnya sama saja.
Source-code: cth16b.m
xC=[0.15;-0.27;-1.5;1.5;1.5];
for(i=1:1:5)
fprintf('%f ',xC(i));
end
fprintf('n');
Contoh: deret data-numerik berikut: 9,-9,2.3,7,0.75,12.75; ditampungkan ke var: zR. Jika
zR[2] di-MUL-kan dengan 3, lalu hasilnya dipertukarkan dengan zR[6], maka tampilkan
kembali isi terbaru/termutahir zR. MUL: operasi multiply.
Solusi:
Konstruksi-algoritma
zR∈{9,-9,2.3,7,0.75,12.75};
zR[2]=zR[2]∗3;
x←zR[2];
zR[2]←zR[6];
zR[6]←x;
tampilkan zR;
Dituliskan dengan Matlab script sebagai berikut:
Source-code: cth16c.m
zR=[9 -9 2.3 7 0.75 12.75];
zR(2)=zR(2)*3;
x=zR(2);
zR(2)=zR(6);
zR(6)=x;
for(i=1:1:6)
fprintf('%f ',zR(i));
end
fprintf('n');
Contoh: deret data non-numerik berikut: ‘1’,’a’,’A’,’3’,’x’,’s’; ditampungkan ke var: a. Jika
a[1] dipertukarkan dengan a[5], maka tampilkan kembali isi terbaru/termutahir a.
Solusi:
16
Ir.SIhar, M.T. – IF – Univ.BALE Bandung
Konstruksi-algoritma
a∈{‘1’,’a’,’A’,’3’,’x’,’s’};
x←a[1];
a[1]←a[5];
a[5]←x;
tampilkan a;
Dituliskan dengan Matlab script sebagai berikut:
Source-code: cth16d.m
a=['1' 'a' 'A' '3' 'x' 's'];
x=a(1);
a(1)=a(5);
a(5)=x;
for(i=1:1:6)
fprintf('%s ',a(i));
end
fprintf('n');
Contoh, perhatikan konstruksi-algoritma berikut ini:
A← 





−
−−
015.1
915.0
;
A←A∗2;
tampilkan A;
Source-code: cth16e.m
A=[-0.5 1 -9;-1.5 1 0];
disp(A);
A=A*2;
disp(A);
Contoh, perhatikan konstruksi-algoritma berikut ini:
B← 





−
−−
015.1
915.0
; A← 





−
−−
015.1
915.0
;
C←B+2∗A;
tampilkan C;
Source-code: cth16f.m
B=[-0.5 1 -9;-1.5 1 0];
A=[-0.5 1 -9;-1.5 1 0];
C=B+2*A;
disp(C);

Matlab tutor sns

  • 1.
    1 Ir.SIhar, M.T. –IF – Univ.BALE Bandung KONSEP DASAR PEMROGRAMAN MATLAB Ir. Sihar, M.T. Program studi T. Informatika / FTI Bandung – 2012 Referensi: [1]. ______Learning MATLAB 6, Student Version. MathWorks, Inc. 2001. [2]. Simamora, S.N.M.P. “Diktat Pemrograman Dasar MATLAB”. Peminatan Embedded-Systems. Politeknik TELKOM. Bandung. 2010. [3]. Simamora, S.N.M.P. “Diktat Konsep Pemrograman MATLAB”. Dept. Sistem Komputer, Fak. Teknik. ITHB. Bandung. 2002. Kode-sintaks pada Matlab, yang umum diistilahkan dengan source-code atau source-program, memiliki extentions *.m, dituliskan pada editor Matlab yang disebut M-Edit atau M-File. Perhatikan gambar berikut ini: prompt, tempat command-line text-based langsung dieksekusi M-Edit
  • 2.
    2 Ir.SIhar, M.T. –IF – Univ.BALE Bandung 1. Operator Arithmatika Ada empat operator arithmatika dan satu operator pendukung, yakni: tambah (add), kurang (substraction), kali (multiply), bagi (divide), dan sisa-bagi (modulo). Contoh operator tambah (kode-sintaks symbol: +), perhatikan konstruksi-algoritma berikut ini: aT←0.25; aT=aT+1.95; tampilkan aT; Source-code: cth1.m aT=0.25; aT=aT+1.95; fprintf('%fn',aT); Contoh operator kurang (kode-sintaks symbol: −), perhatikan konstruksi-algoritma berikut ini: var←(-0.95); var=var−2.05; tampilkan var; Source-code: cth2.m var=-0.95; var=var-2.05; fprintf('Hasil = %fn',var); Contoh operator kali (kode-sintaks symbol: ∗), perhatikan konstruksi-algoritma berikut ini: sns←0.25; sns=2∗sns−(sns+1.25); tampilkan sns; Source-code: cth3.m sns=0.25; sns=2*sns-(sns+1.25); disp(sns); Contoh operator bagi (kode-sintaks symbol: /), perhatikan konstruksi-algoritma berikut ini: YBS←π; YBS=YBS÷180; tampilkan YBS; Source-code: cth4.m YBS=pi; YBS=YBS/180; disp(YBS); Contoh operator modulo (kode-sintaks symbol: mod), perhatikan konstruksi-algoritma berikut ini: Aju3←25;
  • 3.
    3 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Aju3=Aju3%3; tampilkan Aju3; Disimulasikan secara algoritma sebagai berikut: Aju3=25; ?=Aju3%3; maka, 25 ÷ 3 = 8 sisa 1, bila dituliskan dalam bentuk bilangan pecahan = 3 1 8 ; sehingga, 25 % 3 = 1; dengan demikian, isi var: Aju3=1; Source-code: cth5.m Aju3=25; Aju3=mod(25,3); fprintf('Isi Aju3=%in',Aju3); Tampilan jalannya program: 2. Operator Logika Operator Logika bekerja berdasar Aljabar Boolean, yang dikelompokan menjadi: operator AND, OR, XOR, dan NOT. Jika AND di-concatenate-kan dengan NOT disebut operator NAND; jika OR di-concatenate-kan dengan NOT disebut operator NOR; XOR di-concatenate-kan dengan NOT disebut operator XNOR; Operator AND Postulat: luaran bernilai 1 jika-dan-hanya jika kedua masukan bernilai 1; Disimbolkan dalam konstruksi-algoritma dan truth-table: • atau &; Dinotasikan dalam kode-sintaks Matlab: and(x,y); dimana x,y adalah nilai-masukan; atau menggunakan kode-sintaks yang umum: &; Disimbolkan pada sirkuit/rangkaian: Contoh, perhatikan konstruksi-algoritma berikut ini: x1←(03≥3h); x2←(0xa≠DEC(10)); xR=x1•x2; tampilkan xR; Algoritma Matematika Informasi: 03=(3)8=(DEC(3));
  • 4.
    4 Ir.SIhar, M.T. –IF – Univ.BALE Bandung 3h=(3)16=(DEC(3)); maka, jika (03≥3h) solusinya adalah TRUE atau bernilai 1, sehingga isi var: x1=1; 0xa=(10)16=(DEC(10)); DEC(10)=(10)10; maka, jika (0xa≠DEC(10)) solusinya adalah FALSE atau bernilai 0, sehingga isi var: x2=0; Dengan demikian, xR = x1•x2; dan isi var: xR=0; Source-code: cth6a.m x1=(3>=3); x2=(10~=10); xR=and(x1,x2); fprintf('Hasil = %in',xR); Operator OR Postulat: luaran bernilai 1 jika-dan-hanya salah-satu saja masukan bernilai 1; Disimbolkan dalam konstruksi-algoritma dan truth-table: + atau |; Dinotasikan dalam kode-sintaks Matlab: or(x,y); dimana x,y adalah nilai-masukan; atau menggunakan kode-sintaks yang umum: |; Disimbolkan pada sirkuit/rangkaian: Contoh, perhatikan konstruksi-algoritma berikut ini: x1←(0xc≤bh); x2←(07=7h); xR=x1|x2; tampilkan xR; Algoritma Matematika Informasi: 0xc=(12)16=(DEC(12)); bh=(11)16=(DEC(11)); maka, jika (0xc≤11h) solusinya adalah FALSE atau bernilai 0, sehingga isi var: x1=0; 07=(7)8=(DEC(7)); 7h=(7)16=DEC(7); maka, jika (07=7h) solusinya adalah TRUE atau bernilai 1, sehingga isi var: x2=1; Dengan demikian, xR = x1|x2; dan isi var: xR=1; Source-code: cth6b.m x1=(12<=11); x2=(7==7); xR=or(x1,x2); fprintf('Hasil = %in',xR);
  • 5.
    5 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Operator XOR Postulat: luaran bernilai 1 jika-dan-hanya jumlah kedua masukan (nilai 1 atau 0) berkelipatan ganjil; Disimbolkan dalam konstruksi-algoritma dan truth-table: ⊕ atau ∧; Dinotasikan dalam kode-sintaks Matlab: xor(x,y); dimana x,y adalah nilai-masukan; Disimbolkan pada sirkuit/rangkaian: Contoh, perhatikan konstruksi-algoritma berikut ini: a1←(0xE<012); a2←(7ah>0xa7); A=a1⊕a2; tampilkan A; Algoritma Matematika Informasi: 0xE=(14)16=(DEC(14)); 012=(12)8=(DEC(10)); maka, jika (0xE<012) solusinya adalah FALSE atau bernilai 0, sehingga isi var: a1=0; 7ah=(7a)16=(DEC(122)); 0xa7=(a7)16=DEC(167); maka, jika (7ah>0xa7) solusinya adalah FALSE atau bernilai 0, sehingga isi var: a2=0; Dengan demikian, A = a1⊕a2; dan isi var: A=0; Source-code: cth6c.m a1=(14<10); a2=(122>167); A=xor(a1,a2); fprintf('Hasil = %in',A); Operator NOT Postulat: luaran bernilai 1 jika-dan-hanya nilai masukan bernilai 0, demikian juga sebaliknya; Disimbolkan dalam konstruksi-algoritma dan truth-table: ∼ atau ‘; Dinotasikan dalam kode-sintaks Matlab: not(x); dimana x adalah nilai-masukan; atau menggunakan kode-sintaks yang umum: ∼; Disimbolkan pada sirkuit/rangkaian: Contoh, perhatikan konstruksi-algoritma berikut ini: xT←DEC(27); xT←~(xT); tampilkan xT;
  • 6.
    6 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Perbedaan pada Matlab hal algoritma, untuk bahasa pemrograman lain seperti JavaScript, C/C++, dan JAVA berlaku berikut ini: Algoritma Matematika Informasi: Komplemen Langkah-1: ubah DEC tersebut dengan panjang 16-bit; DEC(27) = xxxx xxxx xxxx xxxx = 0000 0000 0001 1011 Langkah-2: tambah-kan BIN tersebut dengan (1)2; 0000 0000 0001 1011 0000 0000 0000 0001 + 0000 0000 0001 1100 Langkah-3: komplemen-kan BIN tersebut 0000 0000 0001 1100 ⇒ 1111 1111 1110 0011 Langkah-4: tambah-kan BIN tersebut dengan (1)2; 1111 1111 1110 0011 0000 0000 0000 0001 + 1111 1111 1110 0100 Langkah-5: nyatakan BIN tersebut dalam DEC i. Komplemen-kan BIN tersebut 1111 1111 1110 0100 ⇒ 0000 0000 0001 1011 ii. Tambah-kan BIN tersebut dengan (1)2; 0000 0000 0001 1011 0000 0000 0000 0001 + 0000 0000 0001 1100 iii. Representasikan BIN tersebut dalam DEC 0000 0000 0001 1100 = DEC(28); iv. Kali-kan DEC tersebut dengan (-1)10; DEC(28) ∗ DEC(-1) = DEC(-28); Dengan demikian, isi var: xT=DEC(-28); Dituliskan dalam JavaScript: Source-code: cth6d.htm <script language=JavaScript> xT=27; xT=~(xT); document.write("Hasil = ",xT); </script> Tampilan jalannya program: Sedangkan pada Matlab berlaku algoritma berikut ini:
  • 7.
    7 Ir.SIhar, M.T. –IF – Univ.BALE Bandung xT←DEC(27); apakah xT bernilai bukan 0? jika ya tampilkan 1, selain itu 0; maka, isi var xT=1; Source-code: cth6d.m xT=27; xT=~(xT); fprintf('Hasil = %in',xT); Tampilan jalannya program: 3. Operator Logaritma (khusus Basis Bilangan 10) Untuk mendapatkan nilai logaritma basis bilangan 10 ada dua cara, yakni cara pertama dengan method atau function log(x)÷log(10); sedangkan cara ke-2 dengan method/function log10(x); dimana x adalah bilangan yang akan dicari nilai logaritma-nya. Contoh, perhatikan konstruksi-algoritma berikut ini: aZ←100000; aZ←log(aZ); tampilkan aZ; Cara-1: Source-code: cth7a.m aZ=100000; aZ=(log(aZ))/(log(10)); fprintf('Hasil = %dn',aZ); Cara-2: Source-code: cth7b.m aZ=100000; aZ=(log10(aZ)); fprintf('Hasil = %dn',aZ); 4. Operator Kuadrat (Pangkat 2) Pada Matlab, operasi perpangkatan menggunakan kode-sintaks: ∧. Misalkan: 22, dituliskan dalam syntax Matlab-script: 2∧2; hal yang sama juga berlaku untuk pangkat di atas bilangan 2. Contoh, perhatikan konstruksi-algoritma berikut ini: aZ←0.4; aZ←(aZ)2;
  • 8.
    8 Ir.SIhar, M.T. –IF – Univ.BALE Bandung tampilkan aZ; Source-code: cth8a.m aZ=0.4; aZ=(aZ)^2; fprintf('Hasil = %fn',aZ); Contoh, perhatikan konstruksi-algoritma berikut ini: a←2; a←(a)10; tampilkan a; Source-code: cth8b.m a=2; a=(a)^10; fprintf('Hasil = %in',a); Contoh, perhatikan konstruksi-algoritma berikut ini: a←2; a1←(a)10; a2←(a)11; tampilkan a1,a2; Source-code: cth8c.m a=2; a1=(a^10); a2=(a^11); disp(a1); disp(a2); 5. Operator Pangkat n (xn) Operator ini identik juga dengan x∧n; namun umum digunakan untuk operator akar- pangkat n, yakni n x dapat disebutkan akar-pangkat n dari x. Misalkan, akan dicari 8 256 ; maka expression ini identik dengan ( ) 125.0 256 ; dengan demikian dapat disebutkan bahwa 8 1 125.0 = ; Kode-sintaks pada Matlab digunakan: power(x,y); dimana merujuk pada persamaan xy; Contoh, perhatikan konstruksi-algoritma berikut ini: aZ←1024; aZ← ( )5 1024 ; tampilkan aZ;
  • 9.
    9 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Perhatikan, bahwa ( )5 1024 =( )5 1 1024 = (1024)0.2 ; Source-code: cth9a.m aZ=1024; n=0.2; aZ=power(aZ,n); fprintf('Hasil = %fn',aZ); Contoh, perhatikan persamaan matematika berikut ini: ( ) ( )x x y yxf 81 8 ),( 0 − = ; Tentukan )2,3(f ; Source-code: cth9b.m x=(1/3); y=2; fxy=((power(8,x))-(power(y,0)))/(power(81,x)); fprintf('Hasil = %fn',fxy); 6. Operator Perbandingan Operator ini identik dengan operator logika, namun hanya melibatkan AND dan OR. Contoh, perhatikan konstruksi-algoritma berikut ini: xL←(0xb≤ch)||(07=7h)&&(DEC(-15)>1h); tampilkan xL; Algoritma Matematika Informasi: 0xb=(11)16=(DEC(11)); ch=(12)16=(DEC(12)); maka, jika (0xb≤ch) solusinya adalah TRUE atau bernilai 1; 07=(7)8=(DEC(7)); 7h=(7)16=DEC(7); maka, jika (07=7h) solusinya adalah TRUE atau bernilai 1; (DEC(-15))=(-15)10; 1h=(1)16=DEC(1); maka, jika (DEC(-15)>1h) solusinya adalah FALSE atau bernilai 0;
  • 10.
    10 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Dengan demikian, xL = 1||(1&&0); dan isi var: xL=1; Source-code: cth10a.m xL=(11<=12)||(7==7)&&(-15>1); disp(xL); Contoh, perhatikan konstruksi-algoritma berikut ini: faith←(73≠73)&&(18.25<18)||(-91≥-91); tampilkan faith; Dimodelkan sebagai berikut: Source-code: cth10b.m faith=(73~=73)&&(18.25<18)||(-91>=-91); fprintf('Hasil = %in',faith); 7. Struktur Kendali Proses: if-then-else Blok proses ini dapat dimodelkan sebagai berikut: jika( expression ) maka { statement; } selain itu { statement; } Contoh, perhatikan konstruksi-algoritma berikut ini: ama←(13≠-13)&&(1.825≥1.8)||(-91<-91); jika (ama=1) { tampilkan TRUE; } selain itu { tampilkan FALSE; } Source-code: cth11a.m ama=(13~=-13)&&(1.825>=1.8)||(-91<-91); if(ama==1) fprintf('TRUEn'); else fprintf('FALSEn'); end
  • 11.
    11 Ir.SIhar, M.T. –IF – Univ.BALE Bandung 8. Struktur Kendali Proses: while Model dalam pemrograman Matlab dituliskan sebagai berikut: while( expression ) statement; end Contoh: buatlah deret bilangan dengan range -5 s.d 5 dengan selisih 0.5; Apabila disimulasikan, maka akan terlihat sebagai berikut: -5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Source-code: cth12a.m i=0; x=-5; while(x<=5) fprintf('%f ',x); x=x+0.5; i=i+1; end fprintf('n'); 9. Struktur Kendali Proses: for Model dalam pemrograman Matlab dituliskan sebagai berikut: for( expression ) statement; end Contoh: buatlah deret bilangan dengan range -15 s.d 15 dengan selisih 3; Apabila disimulasikan, maka akan terlihat sebagai berikut: -15 -12 -9 -6 -3 0 3 6 9 12 15 Source-code: cth13a.m for(x=-15:3:15) fprintf('%i ',x); end fprintf('n'); Contoh: tampilkanlah secara vertikal kata ‘IF - Univ. BALE Bandung’ sebanyak 5 kali; Source-code: cth13b.m for(i=1:1:5) fprintf('IF - Univ. BALE Bandungn'); end
  • 12.
    12 Ir.SIhar, M.T. –IF – Univ.BALE Bandung 10. Struktur Kendali Proses: switch Model dalam pemrograman Matlab dituliskan sebagai berikut: switch( expression ) case 0 statement; case 1 statement; case 2 statement; … otherwise statement; end Contoh: menampilkan pilihan 2 dari tiga pilihan yang telah dideklarasikan. Dituliskan dengan Matlab script sebagai berikut: Source-code: cth14b.m x=2; switch(x) case 1 fprintf('%fn',0.5+1.75); case 2 a=1.5; disp(a); case 3 fprintf('Belajar Matlabn'); end Contoh: menampilkan pilihan sembarang dari lima pilihan yang disajikan kepada end-user. Dituliskan dengan Matlab script sebagai berikut: Source-code: cth14a.m x=input('Pilihan(1 s.d 5)?: '); switch(x) case 1 fprintf('%fn',0.5+1.75); case 2 a=1.5; disp(a); case 3 fprintf('Belajar Matlabn'); case 4 x=xor(0,89); disp(x); case 5 z=xor(2,-2); disp(z); otherwise fprintf('Maaf, out-of-the-range...n'); end
  • 13.
    13 Ir.SIhar, M.T. –IF – Univ.BALE Bandung 11. Operator Trigonometri Operator trigonometri terbagi menjadi fungsi sin(x), cos(x), dan tan(x). Model gelombang sine, cosine, dan tangent: Oleh sebab nilai fungsi trigonometri pada Matlab (dan hampir semua bahasa pemrograman/script) berlaku nilai radian bukan sudut, maka setiap nilai sudut harus ditransformasikan ke dalam nilai radian. Hubungannya diturunkan dari fungsi analitik pada lingkaran dengan konsep dasar satu putaran sempurna (yakni 2π) senilai 360o. 2π rad = 360o; 1o = (2π ÷ 360) rad; atau 180 1 π =o Contoh-1: -carilah sin(30); Konstruksi-algoritma: zT←30; zT=zT∗(π÷180); zT=sin(zT); tampilkan zT; Source-code: cth15a.m zT=30; zT=zT*(pi/180); zT=sin(zT); disp(zT); Contoh-2: -carilah cos(60); Konstruksi-algoritma: t←60; t=t∗(π÷180); zT=cos(t); tampilkan zT;
  • 14.
    14 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Source-code: cth15b.m t=60; t=t*(pi/180); zT=cos(t); fprintf('Hasil: %fn',zT); Contoh-3: -carilah tan(45); Konstruksi-algoritma: t←45; t=t∗(π÷180); t=tan(t); tampilkan t; Source-code: cth15c.m t=45; t=t*(pi/180); t=tan(t); fprintf('Hasil: %fn',t); Contoh-4: -bangkitkan gelombang sine dimana selisih (∆) ditetapkan 0.1 dengan range -2π s.d 2π; Solusi: Konstruksi-algoritma: batas_bawah←-2π; batas_atas←2π; selisih=0.1; t=-2π s.d 2π; f(t)=sin(t) tampilkan (t,f(t)); Source-code: cth15d.m t=[-2*pi:0.1:2*pi]; ft=sin(t); plot(ft); 12. Operasi Matriks Operasi matriks dalam bahasa pemrograman atau script umumnya diturunkan dari teknik array (larik) 1D, matriks sendiri menggunakan teknik array (larik) 2D. Perbedaannya pada Matlab, indeks dimulai dari urutan ke-1 bukan 0. Contoh: isi var: xC adalah 0.15, -0.27, -1.5, 1.5, 1.5; maka bila ditampilkan secara array pada Matlab adalah sebagai berikut: xC[1]=0.15; xC[2]=-0.27;
  • 15.
    15 Ir.SIhar, M.T. –IF – Univ.BALE Bandung xC[3]=-1.5; xC[4]=1.5; xC[5]=1.5; Dituliskan dengan Matlab script sebagai berikut: Source-code: cth16a.m xC=[0.15 -0.27 -1.5 1.5 1.5]; for(i=1:1:5) fprintf('%f ',xC(i)); end fprintf('n'); Source-code cth16a.m menggunakan pendekatan kolom, sedangkan cth16b.m berikut ini menggunakan pendekatan baris; hasilnya sama saja. Source-code: cth16b.m xC=[0.15;-0.27;-1.5;1.5;1.5]; for(i=1:1:5) fprintf('%f ',xC(i)); end fprintf('n'); Contoh: deret data-numerik berikut: 9,-9,2.3,7,0.75,12.75; ditampungkan ke var: zR. Jika zR[2] di-MUL-kan dengan 3, lalu hasilnya dipertukarkan dengan zR[6], maka tampilkan kembali isi terbaru/termutahir zR. MUL: operasi multiply. Solusi: Konstruksi-algoritma zR∈{9,-9,2.3,7,0.75,12.75}; zR[2]=zR[2]∗3; x←zR[2]; zR[2]←zR[6]; zR[6]←x; tampilkan zR; Dituliskan dengan Matlab script sebagai berikut: Source-code: cth16c.m zR=[9 -9 2.3 7 0.75 12.75]; zR(2)=zR(2)*3; x=zR(2); zR(2)=zR(6); zR(6)=x; for(i=1:1:6) fprintf('%f ',zR(i)); end fprintf('n'); Contoh: deret data non-numerik berikut: ‘1’,’a’,’A’,’3’,’x’,’s’; ditampungkan ke var: a. Jika a[1] dipertukarkan dengan a[5], maka tampilkan kembali isi terbaru/termutahir a. Solusi:
  • 16.
    16 Ir.SIhar, M.T. –IF – Univ.BALE Bandung Konstruksi-algoritma a∈{‘1’,’a’,’A’,’3’,’x’,’s’}; x←a[1]; a[1]←a[5]; a[5]←x; tampilkan a; Dituliskan dengan Matlab script sebagai berikut: Source-code: cth16d.m a=['1' 'a' 'A' '3' 'x' 's']; x=a(1); a(1)=a(5); a(5)=x; for(i=1:1:6) fprintf('%s ',a(i)); end fprintf('n'); Contoh, perhatikan konstruksi-algoritma berikut ini: A←       − −− 015.1 915.0 ; A←A∗2; tampilkan A; Source-code: cth16e.m A=[-0.5 1 -9;-1.5 1 0]; disp(A); A=A*2; disp(A); Contoh, perhatikan konstruksi-algoritma berikut ini: B←       − −− 015.1 915.0 ; A←       − −− 015.1 915.0 ; C←B+2∗A; tampilkan C; Source-code: cth16f.m B=[-0.5 1 -9;-1.5 1 0]; A=[-0.5 1 -9;-1.5 1 0]; C=B+2*A; disp(C);