LEONARDO SIREGAR
BAB 1
PENGENALAN MATLAB
(semakin
mudah
cara
Memulai Matlab
Untuk memulai MATLAB dapat dilakukan dengan cara mengklik ikon Matlab
pada desktop window atau menu start (Start > All Programs > MATLAB > MATLAB
R2009b) seperti pada aplikasi-aplikasi lainnya.
Setelah ditunggu beberapa saat akan muncul desktop MATLAB seperti pada Gambar 1.
Direktori aktif
Prompt MATLAB
Command history
>> demos
Sesaat kemudian akan muncul berbagai pilihan yang berkaitan dengan contoh-contoh yang
dibuat dalam pemrograman MATLAB.
1.6 Perintah Menghapus
MATLAB mengalokasikan memori setiap kali suatu variabel digunakan pertama kali dan
menyimpannya didalam komputer. Untuk membebaskan memori atau menghapus variabel
dari workspace MATLAB digunakan perintah clear (nama variabel) ,misalnya:
>> clear nama_variabel
% Enter
Untuk menghapus seluruh variabel yang ada di workspace MATLAB, maka pada
command window ketikkan perintah berikut:
>> clear all
% Enter
Untuk menghapus atau mengosongkan command window, maka pada command window,
ketikkan perintah berikut:
>> clc
% Enter
Untuk menutup figure, maka pada command window ketikkan perintah berikut:
>> close
% Enter
Untuk menghapus semua pekerjaan yang dilakukan sebelumnya, adalah: mengklik menu
Edit > Clear Command History.
1.7 Interupsi Program
Ada kalanya program bekerja dan tidak berhenti yang mungkin diakibatkan oleh kesalahan
dalam perintah atau melakukan pencarian terus-menerus. Untuk menghentikan proses
dengan paksa, tekan Ctrl-c atau Ctrl-Break, yang mungkin juga harus melakukannya
beberapa kali hingga muncul prompt MATLAB (>>) kembali.
1.8 Path
MATLAB menggunakan metode path searching (pencarian direktori) untuk menemukan
file dengan ekstensi .mat, yang mengandung script dan fungsi. Jika file tidak ada dalam
direktori yang diketahui oleh MATLAB, maka ada 2 pilihan yang harus dilakukan, yaitu:
Memindahkan direktori aktif ke direktori tempat file anda berada
Misalnya direktori tempat anda menyimpan file adalah c:/latihanku. Maka caranya
adalah dengan perintah berikut:
>> cd c:/latihanku
Setelah menekan enter, maka selanjutnya direktori aktif adalah c:/latihanku.
Cara ini harus dilakukan kembali setiap membuka aplikasi MATLAB.
Menambahkan direktori anda ke dalam daftar pencarian direktori MATLAB
Caranya adalah pilih menu File > Set Path > Add Folder (pilih folder yang diinginkan)
> Save > Close.
NB: Untuk memodifikasi path, gunakan fungsi path, addpath dan rmpath pada command
window.
Referensi
1. Away, G., A.,2010.The Shortcut of Matlab Programming, Penerbit: Informatika
Bandung.
2. Peranginangin, K.,2006.Pengenalan Matlab, Penerbit: ANDI.
3. Hartanto, T., W., D dan Prasetyo, Y., W., A.,2004.Analisis Dan Desain Sistem
Kontrol Dengan Matlab. Penerbit: ANDI Yogyakarta.
4. Czylwik, A.,______.Matlab For Communications, (Seminar), NTS.
BAB 2
SINTAKS DASAR MATLAB
2.1 Matlab Sebagai Kalkulator
Matlab mengenal jenis bilangan integer, real dan kompleks. Untuk representasi bukan
bilangan seperti: Inf, dinyatakan untuk bilangan tak terhingga (misal: 1/0). Untuk
representasi NaN (Not a Number), dinyatakan sebagai hasil matematis dari operasi yang
tak terdefenisi (misal: 0/0 atau ).
MATLAB dapat digunakan sebagai fungsi kalkulator, seperti contoh pada command
window berikut:
>> (((2+3)/2)*4-4)^2
ans =
36
NB: ans adalah singkatan dari answer, merupakan variabel yang digunakan untuk
menyimpan hasil perhitungan.
Adapun operasi dasar yang didukung oleh MATLAB, dirangkum pada Tabel 2.1.
Tabel 2.1 Operator aritmatika pada MATLAB.
8
Operator
Keterangan
+
penjumlahan
pengurangan
*
perkalian
/
Pembagian, dengan pembagi disebelah kanan
\
Pembagian, dengan pembagi disebelah kiri
^
pangkat
NB: ( ) adalah tanda kurung.
Hirarki operator adalah sebagai berikut:
1.
Operasi dalam kurung lebih awal dikerjakan
2.
Operasi pangkat
3.
Operasi perkalian dan pembagian
4.
Operasi penjumlahan dan pengurangan.
2.2 Variabel
MATLAB tidak memerlukan pendeklarasian variabel atau dimensi variabel. Jika nama
variabel baru diperkenalkan, secara otomatis variabel diciptakan dan memori dialokasikan.
Jika variabel telah ada, maka MATLAB akan mengubah isi variabel dan jika perlu
mengalokasikan penyimpanan variabel yang baru. Sebagai contoh:
>> gain = 3
Artinya, menciptakan matriks 1 1, dengan nama variabel adalah gain dan menyimpan
nilai 3 dalam elemen vektor skalar.
Tipe data yang dikenal dalam pemrograman MATLAB yaitu: numerik dan string. Beberapa
cara penulisan data pada MATLAB adalah sebagai berikut:
1.
% tekan Enter
a=
3
2.
% tekan Enter
b=
2
3
9
4
3.
Data String
String adalah satu deret karakter yang masing-masing disajikan secara internal
dengan nilai ASCII-nya.
Berikut adalah contoh string:
>> str='MATLAB matlab'
% tekan Enter
str =
MATLAB matlab
Untuk melihat representasi ASCII-nya, digunakan fungsi double :
>> str_ascii=double(str)
str_ascii =
Columns 1 through 8
77
65
84
76
65
66
32 109
Columns 9 through 13
97 116 108
97
98
|
Error: The expression to the left of the equals
sign is not a valid target for an assignment.
NB: jangan menggunakan nama variabel yang dinyatakan sebagai fungsi (misal: pi, abs,
dll). Gunakan help <nama variabel> untuk memastikan apakah variabel tersebut sebagai
fungsi.
Jangan menggunakan spasi, titik, koma, atau operator aritmatika sebagai bagian dari nama
variabel.
Dalam MATLAB terdapat variabel yang memiliki arti khusus yang dapat dipergunakan
secara langsung, dinyatakan pada Tabel 2.3.
Tabel 2.3 Variabel dengan arti khusus pada MATLAB.
Nama variabel
Keterangan
ans
answer digunakan untuk menyimpan hasil perhitungan terakhir
pi
konstanta , 3.1415926...
eps
bilangan sangat kecil mendekati nol yang merupakan
batas akurasi perhitungan di MATLAB
Inf
infinity, bilangan positif tak berhingga, misal: 1/0, 2^5, dsb.
nan atau NaN
not a number, untuk menyatakan hasil perhitungan yang tak
terdefinisi, misalkan 0/0 dan inf/inf.
i atau j
unit imajiner, 1 , untuk menyatakan bilangan kompleks.
realmin / realmax
nargin / nargout
|x|
abs(x)
pi
3 10 8
3e 8 atau 3*10^ 8
i
3-4i
e, ex
i atau j
3-4*i atau 3-4*j
exp(1), exp(x)
12
ln x, log x
sin x, arcsin x,...
log(x), log10(x)
sin(x), asin(x)
% Enter
Setelah menekan tombol Enter, maka pada command window tertera fungsi matematika
dasar sebagai berikut:
>> help elfun
Elementary math functions.
Trigonometric.
sin
- Sine.
sind
- Sine of argument in degrees.
sinh
- Hyperbolic sine.
asin
- Inverse sine.
asind
- Inverse sine, result in degrees.
asinh
- Inverse hyperbolic sine.
cos
- Cosine.
cosd
- Cosine of argument in degrees.
cosh
- Hyperbolic cosine.
acos
- Inverse cosine.
acosd
- Inverse cosine, result in degrees.
acosh
- Inverse hyperbolic cosine.
tan
- Tangent.
tand
- Tangent of argument in degrees.
tanh
- Hyperbolic tangent.
atan
- Inverse tangent.
atand
- Inverse tangent, result in degrees.
atan2
- Four quadrant inverse tangent.
atanh
- Inverse hyperbolic tangent.
sec
- Secant.
secd
- Secant of argument in degrees.
sech
- Hyperbolic secant.
asec
- Inverse secant.
asecd
- Inverse secant, result in degrees.
13
asech
csc
cscd
csch
acsc
acscd
acsch
cot
cotd
coth
acot
acotd
acoth
hypot
Exponential.
exp
- Exponential.
expm1
- Compute exp(x)-1 accurately.
log
- Natural logarithm.
log1p
- Compute log(1+x) accurately.
log10
- Common (base 10) logarithm.
log2
- Base 2 logarithm and dissect floating point number.
pow2
- Base 2 power and scale floating point number.
realpow - Power that will error out on complex result.
reallog
- Natural logarithm of real number.
realsqrt - Square root of number greater than or equal to zero.
sqrt
- Square root.
nthroot
- Real n-th root of real numbers.
nextpow2 - Next higher power of 2.
Complex.
abs
angle
complex
conj
imag
real
unwrap
isreal
cplxpair
- Absolute value.
- Phase angle.
- Construct complex data from real and imaginary parts.
- Complex conjugate.
- Complex imaginary part.
- Complex real part.
- Unwrap phase angle.
- True for real array.
- Sort numbers into complex conjugate pairs.
ceil
round
mod
rem
sign
Contoh Trigonometri:
>> a=sin(pi/2)
a=
1
NB: MATLAB mengenal sudut dalam radian. Jadi untuk mengubah sudut dalam derajat
menjadi sudut dalam radian, atau sebaliknya, dapat digunakan rumus berikut:
Sudut radian = sudut dlm derajat x (pi/180) atau Sudut radian=deg2rad(x)
Sudut derajat = sudut radian x (180/pi) atau Sudut derajat = rad2deg(x).
>> b=sin(30*pi/180)
% sin(300)
b=
0.5000
Contoh Eksponensial:
>> c= exp(i)
c=
0.5403 + 0.8415i
Contoh Logaritma:
>> d = log10(1/0)
d=
Inf
Contoh Kompleks:
>> z = complex(3,4)
15
z=
3.0000 + 4.0000i
>> magnitud_z= abs(z)
magnitud_z =
5
>> sudut_z = angle(z)
sudut_z =
0.9273
Contoh Round (pembulatan angka):
>> e=round([5/4 4/3]) % membulatkan ke bilangan bulat terdekat
e=
1
% bernilai -1 jika nilai lebih kecil nol, bernilai 0 jika nilai nol
% dan bernilai 1 jika nilai lebih besar dari nol
f=
-1
MATLAB juga menyediakan fungsi matematika lanjutan, seperti: bessel, gamma, eig,
poly dan roots. Untuk melihat fungsi matematika khusus, dapat dilihat pada fungsi help
specfun.
16
Referensi
1. Away, G., A.,2010.The Shortcut of Matlab Programming, Penerbit: Informatika
Bandung.
2. Peranginangin, K.,2006.Pengenalan Matlab, Penerbit: ANDI.
3. Hartanto, T., W., D dan Prasetyo, Y., W., A.,2004.Analisis Dan Desain Sistem
Kontrol Dengan Matlab. Penerbit: ANDI Yogyakarta.
4. Czylwik, A.,______.Matlab For Communications, (Seminar), NTS.
5. Widiarsono, T.,2005.Tutorial Praktis Belajar Matlab, Jakarta.
17
BAB 3
MATRIK
3.1 Pendahuluan
MATLAB utamanya didesain bekerja berdasarkan matrik (baris dan kolom). Didalam
MATLAB, matrik tersusun dalam sekelompok bilangan berbentuk segi empat. Jadi, matrik
skalar didefenisikan sebagai matrik 1 1, matrik vektor didefenisikan sebagai matrik
satu baris atau satu kolom. MATLAB memiliki cara lain untuk menyimpan data numerik
dan data non-numerik, tetapi semuanya itu pada dasarnya dinyatakan sebagai matrik.
MATLAB seluruhnya bekerja berdasarkan matrik secara cepat dan mudah.
3.2 Menciptakan Dan Mengakses Matrik
Untuk menciptakan matrik, elemen baris harus dipisahkan dengan koma ( , ) atau spasi dan
baris dibagi dengan semikolon ( ; ), serta matrik diawali dan diakhiri dengan kurung siku
( [ ] ). Misalnya:
>> A = [3 2 1; 6 5 4; 9 8 7]
% tekan Enter
A=
3
6
9
2
5
8
1
4
7
A=
3
6
9
2
5
8
1
4
7
Mengakses elemen matrik A didasarkan pada elemen baris ke-n dan kolom ke-m dari
matrik A, yaitu: A(n,m). Berikut contohnya:
>> A(1,2) + A(2,3) - A(3,1)
% tekan Enter
ans =
-3
Mengakses matrik dengan loop implisit, dari elemen baris ke-k sampai ke-l dengan elemen
kolom ke-m sampai ke-n, A(k:l , m:n) dicontohkan sebagai berikut:
>> A(1:2 , 1:3)
ans =
3
6
2
5
1
4
>> A(3 , :)
ans =
9
B=
0
0
19
0
0
0
0
0
0
0
0
>> C = ones(3,4)
C=
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
>> E = rand(2,3)
E=
0.6797
0.6551
0.1626 0.4984
0.1190 0.9597
0.6277 1.1093
1.0933 -0.8637
20
A=
3
6
9
2
5
8
1
4
7
2
5
8
4
10
16
1
4
7
2
8
14
4
7
10
30
84
138
3
6
9
24
69
114
2
5
8
18
54
90
A=
3
6
9
2
5
8
1
4
7
4
7
10
3
6
9
2
5
8
% menghapus semua elemen baris dengan kolom ke-4 sampai ke-6
% dari matrik A.
A=
3
7
21
>> b=a'
3
% matrik a ditranspose menjadi matrik b
b=
1
2
3
3.8 Operasi dan Fungsi Matrik
22
Operasi dan fungsi pada matrik yang sering digunakan ditunjukkan pada Tabel 3.3.
Tabel 3.3 Operasi dan fungsi matrik.
Perintah
Keterangan
det
Menghitung determinan matrik
size
Menghitung ukuran matrik
trace
Menghitung jumlah elemen diagonal matrik
norm
Menghasilkan panjang Eukledian vektor
+
Menjumlahkan matrik
Mengurangkan matrik
*
Mengalikan matrik
.*
Mengalikan elemen per elemen matrik yang berukuran
sama
/
Menghasilkan solusi CA=B
\
Menghasilkan solusi AC=B
./
Membagi elemen per elemen matrik yang berukuran
sama
^
Memangkatkan matrik dengan skalar
.^
Memangkatkan elemen per elemen matrik dengan skalar
Sintaks
C=det(A)
[n,m]=size(A)
C=trace(A)
C=norm(P)
C=A+B
C=A-B
C=A*B
C=.*B
C=A/B
C=B\A
C=A./B
C=A^k
C=A.^k
C=A
C=A.
C=inv(A)
C=null(A)
C=orth(A)
C=rref(A)
P=eig(A)
P=svd(A)
X=linspace(a,b,n)
X=logspace(a,b,n)
C=diag(A)
X=tril(A)
X=triu(A)
S=max(A)
S=min(A)
S=mean(A)
23
median
std
var
corrcoef
sort
sum
prod
cumprod
cumsum
reshape
rot90
flipud
fliplr
dot
cross
S=corrcoef(A)
S=sort(A)
S=sum(A)
S=prod(A)
S=cumprod(A)
S=cumsum(A)
C=reshape(A,m,n)
C=rot90(A)
C=flipud(A)
C=fliplr(A)
C=dot(x,y)
C=cross(x,y)
Contoh:
>> a=linspace(1,10,4) % Menghasilkan vektor sebanyak 4 elemen diantara 1 dan 10.
a=
1
>> b= [a;a]
10
b=
24
10
10
>> c=mean(b)
c=
1
10
>> d=mean(b')
d=
5.5000
5.5000
0.4889 -0.3034
1.4172
0.7172
1.0347
0.6715
1.6302
0.7269 -0.7873
0.2939
25
Maka,
>> ind=(a<=0)
ind =
0
Atau dapat digunakan dengan menggunakan logical addressing dalam MATLAB, yaitu
dengan menggunakan fungsi find, berikut contohnya:
>> ind=(a<=0).*a
ind =
0 -1.2075
0 -0.3034
0 -0.7873
26
3
ind_kolom =
2
4
4
ind_nilai =
-1.2075
-0.3034
-0.7873
Ada tiga logika operator yang tersedia dalam MATLAB, dirangkum pada Tabel 3.5.
Tabel 3.5 Tabel operator logika.
Operator
Keterangan
|
Dan
&
Atau
~
Negasi
Contoh:
>> c=randn(2,4)
c=
0.5377 -2.2588
1.8339
0.3188 -0.4336
0.8622 -1.3077
0.3426
Diringkas menjadi:
>> d=c(ind)
d=
27
0.5377
1.8339
-2.2588
0.8622
-1.3077
Selain operator-operator relasi dan logika, MATLAB juga dirancang untuk melaksanakan
tugas-tugas yang sama. Daftar tugas-tugas tersebut sangat banyak, contohnya: isempty,
isspace, isletter, dll.
0.7254
3.0349 -0.0631
R(:,:,2) =
0.7147 -0.1241
1.4090
-0.2050
1.4897
1.4172
0.6715
0.7172
0.4889
-1.2075
1.6302
1.0347
R(:,:,3) =
Untuk melihat fungsi-fungsi array multidimensi yang disediakan MATLAB, dapat dilihat
dari help cat, repmat.
28
Dua jenis data, yaitu: array sel dan struktur membuat MATLAB menjadi alat yang kuat
untuk berbagai aplikasi. Didalam array sel, elemen-elemennya bisa berupa: numerik,
string, array, dll. Contoh:
Referensi
1. Away, G., A.,2010.The Shortcut of Matlab Programming, Penerbit: Informatika
Bandung.
2. Peranginangin, K.,2006.Pengenalan Matlab, Penerbit: ANDI.
3. Hartanto, T., W., D dan Prasetyo, Y., W., A.,2004.Analisis Dan Desain Sistem
Kontrol Dengan Matlab. Penerbit: ANDI Yogyakarta.
4. Czylwik, A.,______.Matlab For Communications, (Seminar), NTS.
5. Widiarsono, T.,2005.Tutorial Praktis Belajar Matlab, Jakarta.
6. Sianipar, R., H., dkk. 2012.Pemrosesan Sinyal Digital. Penerbit ANDI
Yogyakarta.
7. MATLAB R2009b.2009..MATLAB HELP.
8. _________.2001.MATLAB STUDENT VERSION, version 6 (Release 2). THE
MATLAB WORK.Inc.
29
BAB 4
GRAFIK MATLAB
MATLAB memiliki kemampuan grafis tingkat tinggi yang memungkinkan pengguna
menampilkan data vektor dan matrik sebagai grafik serta mencatat dan mencetak grafik
tersebut. Hasil tampilan dilayar dapat berupa: grafik 2-D, 3-D dan alat bantu visual seperti:
pie-chart, histogram, kontur dan animasi. Selain itu ada juga disediakan atribut objek yang
dapat disesuaikan, termasuk: skala, warna, fontsize, sudut pandang (view), pencahayaan
dan bayangan, dll.
4.1 Plot 2-D
Fungsi dasar untuk membuat grafik 2-D adalah fungsi plot. Perintah plot (x,y) merupakan
dua argumen vektor yang menghasilkan grafik y versus x. Fungsi axis([xmin, xmax, ymin,
ymax]) digunakan untuk menentukan batas minimum dan maksimum data pada grafik.
Fungsi xlabel(teks), ylabel(teks) dan zlabel(teks) masing-masing digunakan untuk
menambah label pada axis x, y, dan z. Fungsi zlabel(teks) digunakan untuk plot 3-D.
Fungsi title(teks) digunakan untuk menambah teks diatas figur. Fungsi text(x,y,string)
digunakan untuk menyisipkan teks dalam figur pada posisi titik (x,y). Fungsi grid on/ grid
off digunakan untuk mengaktifkan/ menonaktifkan grid pada figur. Contoh:
>> x=0:pi/50:2*pi;
sb-y
0.5
y=sin(x)
0
-0.5
-1
3
4
sb-x (0-2)
(RGB)
(0 1 1)
(1 0 1)
(1 1 0)
(1 0 0)
(0 1 0)
(0 0 1)
(1 1 1)
(0 0 0)
Simbol Tanda
+
o
*
.
x
s
d
^
v
>
<
p
h
none
Deskripsi
plus
circle
asterisk
point
cross
square
diamond
up ttriangle
down triangle
right triangle
left triangle
pentagram
hexagram
no marker
Untuk informasi lebih lanjut dapat digunakan fungsi help line dan LineSpec.
Berikut contoh penggunaan plot dengan warna, garis dan tanda yang disetting pada kurva:
>> x=0:pi/50:2*pi;
>> y=sin(x);
>> plot(x,y,'k-.+');
% fungsi menampilkan grafik y versus x, dengan: warna k,
% garis -., tanda +.
>> xlabel('sb-x (0-2\pi)');
>> ylabel('sb-y');
>> title('y=sin(x)');
>> text(pi,0,'\leftarrow y=sin(x)')
>> grid on;
Hasilnya ditunjukkan pada Gambar 4.2.
y=sin(x)
sb-y
0.5
0
y=sin(x)
-0.5
-1
4
6
8
sb-x (0-2 )
Gambar 4.2 Plot y versus x dengan properti warna, garis dan tanda masing-masing yaitu:
k, -., dan +.
32
LineWidth
MarkerEdgeColor
MarkerFaceColor
MarkerSize
Properti di atas secara spesifik disisipkan dalam fungsi plot, setelah data diplot
berdasarkan bentuk, sebagai berikut:
plot(x,y,'PropertyName',value,...)
Contoh :
>> x = 0:pi/15:4*pi;
>> y = exp(2*sin(x));
>> plot(x,y,'-ko','LineWidth',3.0,'MarkerSize',6,...
'MarkerEdgeColor','r','MarkerFaceColor','g')
Hasilnya diperlihatkan pada Gambar 4.3.
8
6
4
2
0
10
15
Huruf yang digunakan untuk menampilkan teks yang dimodifikasi adalah stream
modifiers. Sederetan karakter khusus sebagai interpreter MATLAB dapat berubah. Stream
modifiers secara umum adalah:
\ b : boldface
\ it : italics
\ rm : remove modifiers.
\ fontname{fontname} : fontname yang digunakan.
\ fontsize{fontsize} : font size.
_{nama} : karakter dalam kurung kurawal merupakan indeks atau subscript dibawah.
^{nama} : karakter dalam kurung kurawal merupakan indeks atau subscript diatas.
Tabel 4.3 Daftar simbol Greek dan matematika
Karakter
Simbol
Karakter
\alpha
Simbol
Karakter
\int
Simbol
\cong
\beta
\gamma
\Gamma
\sim
\delta
\Delta
\infty
\epsilon
\pm
\eta
\leq
\theta
\geq
\lambda
\neg
\mu
\propto
\nu
\div
\pi
\circ
\phi
\rho
\
leftrightarrow
\leftarrow
\sigma
\rightarrow
\tau
\uparrow
\omega
\downarrow
\Lambda
\Pi
\Sigma
\Omega
>> t = 0:0.001:0.02;
>> phasa_R = 380/sqrt(3)*sin(2*pi*50*t);
>> phasa_S = 380/sqrt(3)*sin(2*pi*50*t-120*pi/180);
>> phasa_T = 380/sqrt(3)*sin(2*pi*50*t-240*pi/180);
>> plot(t,phasa_R, t,phasa_S, t,phasa_T)
>> xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
Hasilnya ditunjukkan pada Gambar 4.3.
300
tegangan (volt)
200
100
0
-100
-200
-300
0.005
0.01
0.015
waktu (sekon)
0.02
t = 0:0.001:0.02;
phasa_R = 380/sqrt(3)*sin(2*pi*50*t);
phasa_S = 380/sqrt(3)*sin(2*pi*50*t-120*pi/180);
phasa_T = 380/sqrt(3)*sin(2*pi*50*t-240*pi/180);
plot(t,phasa_R,'-o', t,phasa_S,'-.*', t,phasa_T,'--s')
xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
35
300
tegangan (volt)
200
100
0
-100
-200
-300
0.005
0.01
0.015
waktu (sekon)
0.02
Gambar 4.4 Multi plot y versus x dengan garis, dengan tanda disetting.
Untuk membuat legend dari grafik atau kurva dalam figure, digunakan fungsi legend
(string1,string2, ...). Contoh :
>> t = 0:0.001:0.02;
>> phasa_R = 380/sqrt(3)*sin(2*pi*50*t);
>> phasa_S = 380/sqrt(3)*sin(2*pi*50*t-120*pi/180);
>> phasa_T = 380/sqrt(3)*sin(2*pi*50*t-240*pi/180);
>> plot(t,phasa_R,'-o', t,phasa_S,'-.*', t,phasa_T,'--s')
>> xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
>> legend('phasa R','phasa S','phasa T') % fungsi legend
Hasilnya ditunjukkan pada Gambar 4.5.
400
tegangan (volt)
phasa R
phasa S
phasa T
200
0
-200
-400
0.005
0.01
waktu (sekon)
0.015
0.02
Gambar 4.5 Multi plot y versus x dengan legend phasa R, phasa S dan phasa T.
36
Penambahan plot tanpa menggeser atau menghapus grafik yang sudah ada, digunakan
perintah hold. Perintah hold on untuk mengaktifkan penambahan grafik, sebaliknya hold
off. Contoh :
>> t= 0:0.05:10;
>> gel_sinus= sin(2*pi*0.5*t);
>> plot(t,gel_sinus,'-b','LineWidth',1);
>> hold on;
% perintah hold aktif
>> gel_cosinus= cos(2*pi*0.5*t);
>> plot(t,gel_cosinus,'.-r','LineWidth',1);
>> gel_persegi= square(2*pi*0.5*t);
>> plot(t,gel_persegi,'--g','LineWidth',2);
>> gel_gergaji= sawtooth(2*pi*0.5*t);
>> plot(t,gel_gergaji,':k','LineWidth',3)
>> hold off;
% perintah hold tidak aktif
>> xlabel('waktu (s)'); ylabel('amplitudo');
>> title('gelombang, f=0.5 Hz');
>> axis([0 10 -1.1 1.1]);
>> legend('sinus','cosinus','persegi','gergaji');
Hasilnya diperlihatkan pada Gambar 4.6.
gelombang, f=0.5 Hz
1
sinus
cosinus
persegi
gergaji
amplitudo
0.5
0
-0.5
-1
0
waktu (s)
10
Gambar 4.6 Menggabungkan grafik gelombang sinus, cosinus, persegi dan gergaji
menggunakan perintah hold.
>> t = 0:0.001:0.02;
>> figure(1)
% perintah figure(n)
>> subplot(3,1,1)
% subplot(311)
>> phasa_R = 380/sqrt(3)*sin(2*pi*50*t);
>> plot(t,phasa_R,'-bo')
>> axis([0 0.02 -220 220]);
>> xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
>> title('subplot(311)')
>> subplot(3,1,2)
% subplot(312)
>> phasa_S = 380/sqrt(3)*sin(2*pi*50*t-120*pi/180);
>> plot(t,phasa_S,'-.r*')
>> axis([0 0.02 -220 220]);
>> xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
>> title('subplot(312)')
>> subplot(3,1,3)
% subplot(313)
>> phasa_T = 380/sqrt(3)*sin(2*pi*50*t-240*pi/180);
>> plot(t,phasa_T,'--gs')
>> axis([0 0.02 -220 220]);
>> xlabel('waktu (sekon)'); ylabel('tegangan (volt)');
>> title('subplot(313)')
Hasilnya diperlihatkan pada Gambar 4.7.
MATLAB menyediakan berbagai fungsi untuk menampilkan data vektor menjadi grafik.
Data yang sama dengan fungsi yang berbeda, skala axesnya dapat ditampilkan berbeda.
Untuk lebih mengetahui grafik 2-D, ketikkan perintah berikut ini di command window:
>> help graph2d
Pada Tabel 4.3, menampilkan fungsi plot dasar 2-D.
Tabel 4.3 Fungsi plot 2-D.
Fungsi
Deskripsi
plot (x,y)
Memplot vektor y terhadap x
plotyy (x,y1,x,y2) Memplot x,y1 dengan label axis-y disebelah kiri dan x,y2 dengan
label axis-y disebelah kanan.
semilogx (x,y)
Memplot dengan skala logaritma basis 10 pada axis-x dan skala
linier pada axis-y
semilogy (x,y)
Memplot dengan skala linier pada axis-x dan skala logaritma basis
10 pada axis-y
loglog (x,y)
Memplot dengan skala logaritma basis 10 pada axis-x dan axis-y
bar (x,y)
Memplot diagram batang pada setiap elemen y pada posisi yang
ditentukan dalam x, dimana x merupakan vektor interval sumbu-x
untuk garis vertikal.
hist(x,y)
Memplot histogram dari data di x, dengan interval yang ditentukan
oleh panjang vektor y.
stairs (x,y)
Memplot diagram tangga elemen data y pada lokasi yang
didefenisikan elemen data x.
stem (x,y)
Memplot data diskrit pada elemen y pada berdasarkan posisi x. Tanda
bulatan pada ujung strem merupakan nilai y.
polar (theta,rho)
Memplot koordinat polar dengan sudut theta (radian) terhadap radius
rho.
Contoh :
>> n=0:10;
>> y=exp(-n);
>> figure;
% perintah figure
>> subplot(221)
>> loglog(n,y);
% fungsi loglog(x,y)
>> xlabel('x(n)'); ylabel('y(n)'); title('subplot(221), loglog');
>> grid on;
>> subplot(222)
>> stem(n,y);
% fungsi stem(x,y)
>> xlabel('x(n)'); ylabel('y(n)'); title('subplot(222), stem');
>> subplot(223)
>> bar(n,y);
% fungsi bar(x,y)
39
y(n)
-5
10
10
x(n)
subplot(223), bar
y(n)
0.5
subplot(222), stem
y(n)
10
10
0.5
5
x(n)
10
subplot(224), polar
90 1
120
60
0.5
150
30
180
210
240
0 1 2 3 4 5 6 7 8 910
x(n)
330
270
300
Gambar 4.8 Plot dengan fungsi loglog, stem, bar dan polar.
20
0
-20
-40
50
50
0
y
0
-50
-50
Gambar 4.9 Kurva z(t)=[ tcos(t) tsin(t) t], interval 10 <t <10 , dengan fungsi plot3.
Plot Permukaan 3-D
Sintaks untuk plot permukaan 3-D adalah:
>> [xi, yi]= meshgrid(x,y);
>> zi
% menentukan nilai zi(xi,yi)
>> mesh(xi,yi,zi) % fungsi lain: surf(xi, yi, zi)
Untuk plot permukaan grafik 3-D, caranya adalah:
1. Defenisikan batas-batas nilai x dan y yang akan diplot.
Contoh:
41
>> x= 0:3;
>> y= 10:16;
2. Gunakan command meshgrid untuk menjalankan 2x2 D array untuk mengisi xi
dan yi sebagai jalinan titik.
Contoh:
Perintah meshgrid diterapkan pada array x dan y, membuat 2 matrik:
>> [xi,yi] = meshgrid(x,y)
xi =
0
0
0
0
0
0
0
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
yi =
10 10 10 10
11 11 11 11
12 12 12 12
13 13 13 13
14 14 14 14
15 15 15 15
16 16 16 16
NB: matrik xi berisi replika baris dari array x, sementara yi merupakan replika
kolom dari y.
3. Hitung fungsi 3-D untuk jalinan titik, contoh: sebagai fungsi array xi dan yi.
4. Buat fungsi plot permukaan, misal: mesh, surf, dll.
Contoh :
Plot permukaan dengan fungsi meshgrid dari fungsi sin(r)/r atau sinc, dengan x dan y
berada pada interval -8 dan 8, yaitu:
>> [X,Y] = meshgrid(-8:.5:8);
>> R = sqrt(X.^2 + Y.^2) + eps;
>> Z = sin(R)./R;
>> mesh(Z);
>> colorbar;
% menampilkan warna diagram batang
>> xlabel('X'); ylabel('Y'); zlabel('Z'); title('sinc');
Hasilnya seperti pada Gambar 4.10.
42
sinc
0.8
0.6
0.5
Z
0.4
0.2
-0.5
40
40
20
Y
20
0 0
0
-0.2
surfc
-1
10
meshc
0
0
Y -10 -10 X
10
-1
10
0
0
Y -10 -10 X
contourf
contour
10
-5
-5
-5
0
X
-5
0
X
44
SOAL LATIHAN
1. Gambarkan kurva
y=x 4 9 x 2
pada rentang
6 x 6 . Buatlah inkremen x
Vo
Vi
( )
versus
||
Vo
Vi
versus
f ,
kHz.
Gambarkan kedua plot tadi pada satu window saja, setengah bagian atas untuk
amplituda, dan setengah bagian bawah untuk plot fasanya.
3. Sebuah antena diketahui memiliki pola radiasi dalam koordinat polar sebagai
berikut:
3
U ( )= cos 2 2
0 selainnya
45
Referensi
1. Away, G., A.,2010.The Shortcut of Matlab Programming, Penerbit: Informatika
Bandung.
2. Peranginangin, K.,2006.Pengenalan Matlab, Penerbit: ANDI.
3. Hartanto, T., W., D dan Prasetyo, Y., W., A.,2004.Analisis Dan Desain Sistem
Kontrol Dengan Matlab. Penerbit: ANDI Yogyakarta.
4. Czylwik, A.,______.Matlab For Communications, (Seminar), NTS.
5. Widiarsono, T.,2005.Tutorial Praktis Belajar Matlab, Jakarta.
6. Sianipar, R., H., dkk. 2012.Pemrosesan Sinyal Digital. Penerbit ANDI
Yogyakarta.
7. MATLAB R2009b.2009..MATLAB HELP.
8. _________.2001.MATLAB STUDENT VERSION, version 6 (Release 2). THE
MATLAB WORK.Inc.
9. _________.1997.MATLAB The Language of Technical Computing, Using
MATLAB Graphics Version 5. The MathWorks, Inc. All Rights Reserved.
46
BAB 5
FLOW CONTROL
MATLAB menyediakan beberapa konstruksi flow control, untuk mengeksekusi statement
tertentu. Statement menyatakan kondisi, perhentian operasi dan iterasi. Beberapa flow
control yang umum adalah:
if statements
switch statements
for loops
while loops
continue statements
break statements
Untuk melihat informasi lebih banyak, dapat dicari dari: Programming and Data Types
dalam perintah help.
if
Perintah if (ekspresi) digunakan untuk mengevaluasi logika (ekspresi) dan mengeksekusi
grup statement ketika logika (ekspresi) bernilai benar (true atau non-zero). Pemilihan grup
statement lain disediakan dengan perintah elseif dan else jika logika ekspresi tidak benar
(zero), kemudian diakhiri dengan perintah end. Struktur umumnya adalah, sebagai berikut:
Fungsi bersyarat : if - elseif - ... else end
Contoh struktur:
if (ekspresi-1)
statement-1 dieksekusi jika ekspresi-1 benar
elseif (ekspresi-2)
statement-2 dieksekusi jika ekspresi-2 benar
.
.
.
else
statement-n dieksekusi jika tidak ada ekspresi benar
end
47
Contoh :
Nilai konversi dari numerik ke huruf, sebagai berikut:
80 100 = A
70 79 = B+
65 69 = B
60 64 = C+
55 59 = C
40 54 = D
< 40 = E
%konversi nilai angka ke nilai huruf
>> nilai_angka=input('angka=');
if nilai_angka >= 80 | nilai_angka <= 100
disp('nilai huruf = A')
elseif nilai_angka >= 75 | nilai_angka < 80
disp('nilai huruf = B+')
elseif nilai_angka >= 65 | nilai_angka < 75
disp('nilai huruf = B')
elseif nilai_angka >= 60 | nilai_angka < 65
disp('nilai huruf = C+')
elseif nilai_angka >= 55 | nilai_angka < 60
disp('nilai huruf = C')
elseif nilai_angka >= 40 | nilai_angka < 55
disp('nilai huruf = D')
elseif nilai_angka < 40
disp('nilai huruf = E')
else
disp('nilai huruf = F')
end
Fungsi bersarang (nested) : if - (if - end) - elseif - ... else end
Contoh struktur:
if (ekspresi-1)
statement-1 dieksekusi jika ekspresi-1 benar
if (ekspresi-1-a)
statement-1-a dieksekusi jika ekspresi-1 dan ekspresi-1-a benar
end
48
elseif (ekspresi-2)
statement-2 dieksekusi jika ekspresi-2 benar
.
.
.
else
statement-n dieksekusi jika tidak ada ekspresi benar
end
Contoh :
Predikat Judisium Program Sarjana (S1)
a) Memuaskan
: IPK 2,00 2,75
b) Sangat Memuaskan : 2,76 3,50
c) Cumlaude
: IPK > 3,50 dan dapat menyelesaikan studi tidak melebihi
masa studi terjadwal dan tidak ada nilai D
>> % predikat Judisium Program Sarjana (S1)
ipk=input('IPK-->');
if ipk > 3.50
masa_studi=input('MASA STUDI (tahun)-->');
nilai_D=input('ADA NILAI D(1 / 0)-->'); % 1 jika ya, 0 jika tidak
if masa_studi <= 5 & nilai_D == 0
disp('PREDIKAT = CUMLAUDE')
elseif masa_studi <= 5 & nilai_D == 1
disp('PREDIKAT = SANGAT MEMUASKAN')
else
disp('PREDIKAT = SANGAT MEMUASKAN')
end
elseif ipk >=2.76 && ipk <=3.50
disp('PREDIKAT = SANGAT MEMUASKAN')
else
disp('PREDIKAT = MEMUASKAN')
end
yang memenuhi nilai = ekspresi setelah case. Nilai tidak berada dalam interval tertentu,
namun dapat berupa numerik atau string. Struktur umumnya sebagai berikut:
switch ekspresi
case nilai-1
statement-1
case nilai-2
.
.
.
otherwise
statement-n
end
Contoh :
Dua macam redaman yang mempengaruhi besar RSS yang diterima oleh MS, yaitu:
1. pada sistem komunikasi seluler yang berada pada daerah urban, redaman pathloss
menggunakan model Hatta pada daerah large city yang diformulasikan sebagai
berikut:
L(urban)[dB] = 69,55 + 26,16 x log(f) + [44,9 6,55 x log(hb)] x log(r)
13,82 x log(hb) Alarge city(hm)
Alarge city (hm) [dB] = 3,2 x [log(1175 x hm)]2 4,97
Dimana: f = frekuensi sinyal carrier (MHz)
hb = tinggi antena BTS (m)
hm = tinggi antena MS (m)
r = jarak antara BTS dngan MS (km)
2. Kesalahan pengarahan antena
Sel dalam sistem komunikasi seluler berupa sektoral. Sebagian besar sel tersebut
terdiri dari 3 sektor dan setiap sektor menggunakan sebbuah antena sektoral 120 0.
Untuk antena sektoral 1200, terdapat redaman jika MS tidak berada pada 0 0 terhadap
antena BTS. Hubungan santara sudut yang dibentuk redaman antena 3 sektor dapat
diformulasikan sebagai berikut:
2
A ( ) [ dB ] =min 12
, Am
dimana 180 180
3 dB
[( ) ]
>> % dua macam redaman yang mempengaruhi besar RSS yang diterima oleh MS
disp('pilihan redaman');
disp('1. pathloss');
disp('2. kesalahan pengarahan antena');
hitung = input('pilihan redaman (1-2)-->');
switch hitung
case 1
50
for i= 1:length(B)
for j=1:length(SNR_dB)
C(i,j) = B(i).*log2(1 + SNR(j));
end
end
plot(SNR_dB, C);
xlabel('SNR (dB)');ylabel('kapasitas kanal(bps)');
legend('Bandwidth = 7 MHZ','Bandwidth = 30 MHZ',...
'Bandwidth = 40 MHZ','Bandwidth = 220 MHZ',0)
Hasil plot diperlihatkan pada Gambar 5.1
9
2.5
x 10
Bandwidth =
Bandwidth =
Bandwidth =
Bandwidth =
kapasitas kanal(bps)
7 MHZ
30 MHZ
40 MHZ
220 MHZ
1.5
0.5
10
15
SNR (dB)
20
25
30
Gambar 5.1 Variasi bandwidth terhadap signal to noise ratio dengan menggunakan
loop for.
while
Pada loop while, grup statement dieksekusi selama ekspresi bernilai benar. Jika ekspresi
tidak benar, maka eksekusi keluar dari loop. Dengan kata lain, loop while melakukan
iterasi sampai batas yang tidak tentu selama ekspresi bernilai benar. Struktur umum loop
while adalah:
while ekspresi
Statement
end
Contoh :
52
Misalkan seseorang diberi nilai awal = 0, karena tidak ada jam belajar. Jika setiap belajar 1
jam, diperoleh pertambahan nilai sebanyak 10. Untuk mendapatkan nilai 100, berapa lama
jam belajar?
>> nilai = 0;
>> jam_belajar = 0;
>> while nilai < 100
>> jam_belajar = jam_belajar + 1;
>> nilai = nilai + 10;
>> end
>> nilai
>> jam_belajar
Hasil yang diperoleh adalah:
nilai =
100
jam_belajar =
10
continue
Statement continue digunakan untuk mengendalikan program melompat ke iterasi
selanjutnya dari suatu loop for atau while, sementara statement lain yang berada dibawah
continue dalam loop for atau while itu akan diabaikan. Apabila statement continue berada
didalam fungsi loop bersarang, maka statement continue akan mengendalikan program ke
iterasi berikutnya.
Contoh :
Menuliskan Aku mahasiswa semester --> dengan loop while, sebagai berikut:
>> semester = 0;
>> semester_sekarang =input('semester_sekarang = '); % semester_sekarang ~= 0
>> while semester < semester_sekarang
>> semester = semester + 1;
>> if semester == semester_sekarang
>>
disp(['Aku mahasiswa semester -->' num2str(semester)]);
>>
else
>>
continue;
>>
end
>> end
53
break
Statement break berfungsi untuk menghentikan eksekusi program dalam loop for atau
while. Apabila break ditemukan di dalam kolong for maupun while, maka eksekusi
program akan dihentikan apabila syarat yang diberikan terpenuhi.
Contoh :
>> maks_semester = input('maksimum batas semester = ');
>> semester = input('semester sekarang = ' );
>> for i = 1:maks_semester
>> if i >= semester
>>
break;
>> end
54
>>
disp(['Saya telah melewati semester = ' num2str(i)]);
>> end
Setelah mengeksekusi program diatas, maka akan menampilkan hasil berikut:
maksimum batas semester = 14
semester sekarang = 5
Saya telah melewati semester = 1
Saya telah melewati semester = 2
Saya telah melewati semester = 3
Saya telah melewati semester = 4
Referensi
1. Czylwik, A.,______.Matlab For Communications, (Seminar), NTS.
2. Widiarsono, T.,2005.Tutorial Praktis Belajar Matlab, Jakarta.
3. _________.2001.MATLAB STUDENT VERSION, version 6 (Release 2). THE
MATLAB WORK.Inc.
55
BAB 6
Script M-File Dan Fungsi M-File MATLAB
6.1 Script M-File
Pada bab-bab sebelumnya interaksi program MATLAB ditulis pada command window.
Untuk menulis secara manual deretan program yang panjang dan deretan program yang
berulang-ulang pada command window sangat merepotkan. Namun MATLAB dapat
56
menyimpan deretan program yang panjang dalam bentuk script m-file dengan eksistensi
(.mat) sehingga dapat dijalankan atau dieksekusi secara otomatis ketika dibutuhkan dengan
mengetikkan nama file di command window.
Cara untuk menulis script m-file adalah: menu File New Blank M-File atau dengan
mengklik ikon M-New File pada window utama. Sementara untuk menyimpan M-File
dapat dilakukan dengan: pilih menu File Save atau File Save As ataupun mengklik
ikon Save.
Contoh :
Menggambar model cakupan BTS dengan antena omnidireksional berbentuk grafik
heksagonal dengan koordinat pusat O(0,0), jari-jari R1 = 1000 meter; R2 = 500 meter.
Rumus umum : koordinat x, x = x1 + r cos(t); koordinat y, y = y1 + r sin(t).
Program disimpan dalam bentuk Script M-File dengan nama contoh1.m yang ditampilkan
pada Gambar 6.1.
57
1000
Radius = 1000 m
Radius = 500 m
800
600
400
sb-y
200
0
-200
-400
-600
-800
-1000
-1000
-500
0
sb-x
500
1000
dan
Gambar 6.3 Fungsi M-File dengan nama fungsi: rugi_ruang_lepas, yang disimpan dengan
nama rugi_ruang_lepas.m.
Pada command window, fungsi rugi_ruang_lepas dipanggil sebagai berikut:
>> rugi_ruang_lepas(35.853e6,4e9)
ans =
195.5717
>> d = [20e6 35.853e6];
>> f = [2e9 4e9];
>> rugi_ruang_lepas(d,f)
ans =
184.4812 195.5717
>> LdB = rugi_ruang_lepas(d,f)
LdB =
184.4812 195.5717
59
Referensi
1. Widiarsono, T.,2005.Tutorial Praktis Belajar Matlab, Jakarta.
2. Recktenwald, G.,W. 2001.MATLAB PROGRAMMING. Portland State
University.
60
BAB 7
Input Dan Output Teks
7.1 Fungsi input
Fungsi input dapat digunakan untuk tipe input numerik atau string. Sintaksnya sebagai
berikut:
>> numerik = input('Enter nilai numerik');
>> string = input('Enter nilai string','s');
7.2 Fungsi Output Dengan disp dan fprintf
a. disp
sintaks :
disp(output)
0.0975
0.0095
1x6
1x1
1x6
Bytes Class
Attributes
12 char
8 double
48 double
Gabungan num2str dan disp dapat digunakan untuk menampilkan keluaran sebagai
numerik.
Contoh :
>> A = pi;
62
c. fprintf
Sintaks :
fprintf(outFormat,outVariabel)
fprintf(fileHandle,outFormat,outVariabel)
String outFormat mengkonversi outVariabel menjadi tipe string. Bentuk pertama (tidak ada
fileHandle) keluarannya ditampilkan di command window. Bentuk kedua, keluarannya
ditulis ke dalam file yang disebut dengan fileHandle.
Contoh :
>> x = pi;
>> fprintf('nilai akar dari %g adl %8.6f\n',x,sqrt(x));
nilai akar dari 3.14159 adl 1.772454
String outFormat secara khusus digunakan untuk mengkonversi dan menampilkan
outVariabel. String outFormat dapat berupa teks karakter, juga konversi kode untuk setiap
outVariabel. Tabel 7.1 menunjukkan konversi kode dasar.
Tabel 7.1 Konversi kode dasar.
Kode
Perintah konversi
%s
Format string
%d
Format integer
%f
Floating point
%e
Eksponensial
%g
Floating point ataupun eksponensial
\n
Menyisipkan baris baru pada keluaran
\t
Menyisipkan tab pada keluaran
Selain menentukan tipe konversi (%d, %f, %e), dapat juga ditentukan lebar dan keakuratan
hasil konversinya. Sintaksnya adalah sebagai berikut:
%wd
%w.pf
%w.pe
Dimana, w adalah jumlah karakter hasil dan p adalah jumlah digit disebelah kanan
desimal.
63
Contoh :
Menghitung kapasitas kanal dengan menggunakan perumusan Nyquist,
C=2 B log 2 M
64
Referensi
1. Recktenwald, G.,W. 2001.MATLAB PROGRAMMING. Portland State
University.
65
BAB 8
Fungsi Random
8.1 Distribusi Seragam Kontinu (Uniform Continuous)
Untuk membangkitkan distribusi seragam kontinu (uniform), sintaknya adalah sebagai
berikut:
a = rand(x,y) ;
Untuk membangkitkan bilangan acak yang tidak terdistribusi seragam dalam rentang
[0,1], tetapi terdistribusi seragam dalam rentang [a,b], sintaknya adalah sebagai berikut:
a = A*rand(x,y) +N; : dimana, a a adalah RV
[N, A+N].
Contoh :
Membangkitkan 100 bilangan acak terdistribusi seragam dalam rentang [0,5], dan
menampilkan grafik histogram dengan interval 10.
>> a = 5*rand(1,100);
>> hist(a,10)
>> xlabel('interval [0,5]');
>> ylabel('frekuensi');
Hasil grafik histogramnya adalah pada Gambar 8.1.
20
frekuensi
15
10
5
0
2
3
interval [0,5]
66
Contoh :
Membangkitkan bilangan acak dengan distribsi seragam diskrit, dengan mengambil
nilai integer dari 1 sampai 20, serta menampilkan grafik histogramnya.
>> a = floor(20*rand(1,100)+1);
>> hist(a,100);
>> xlabel('integer 1 - 20');
>> ylabel('frekuensi');
Grafik histogramnya, ditunjukkan pada Gambar 8.2.
8
frekuensi
6
4
2
0
10
integer 1 - 20
15
20
Gambar 8.2 Membangkitkan bilangan acak dengan distribusi seragam diskrit, nilai
integer dalam rentang [0...20].
8.3 Distribusi Gaussian
Untuk membangkitkan bilangan acak yang terdistribusi Gaussian, adalah sebagai
berikut:
b = randn(x,y);
: yaitu, membangkitkan matrik dengan x-baris dan y-kolom,
dimana elemennya terdistribusi normal (Gaussian, zero mean , variansi 1).
Untuk membangkitkan distribusi Gaussian dengan mean dan variansi diubah,
dinyatakan sebagai berikut:
b = sqrt(variansi)*randn(x,y)+mean;
67
Contoh :
Membangkitkan distribusi Gaussian
N ( , 2 ) dengan nilai
=0 ,
=1 , dan
-10
-5
10
15
-10
-5
10
15
4000
2000
0
-15
2
N ( , ) , a. N (0,1) , b.
N (1,25) .
Beta
Eksponensial
Uniform (diskrit)
Binomial
Multinomial
Poisson
betapdf
exppdf
unidpdf
binopdf
mnpdf
poisspdf
betacdf
expcdf
unidcdf
binocdf
poisscdf
betarnd
exprnd
unidrnd
binornd
mnrnd
poissrnd
Contoh :
Gambarkan distribusi Normal ( , ) , dimana
=100
dan =15 .
69
BAB 9
GUI
(Graphical Gui Interface)
GUI merupakan tampilan grafis yang memudahkan user berinteraksi dengan perintah
teks, sehingga user mudah menjalankan suatu program aplikasi, atau disebut dengan
istilah user friendly.
Untuk membuka lembar kerja GUI di Matlab, yaitu:
ketikkan perintah File > New > GUI, ditunjukkan pada Gambar 9.1.
70
71