Anda di halaman 1dari 71

Oleh

LEONARDO SIREGAR

BAB 1
PENGENALAN MATLAB

1.1 Sekilas Matlab


Bahasa pemrograman merupakan media untuk berinteraksi antara manusia dengan
komputer agar semakin mudah dan cepat. Misalnya, perkembangan bahasa pemrograman
Pascal dengan memunculkan varian baru, yaitu: Delphi, Basic dengan Visual Basic, C
dengan C++ Builder, serta Matlab dibangun dari bahasa C sebagai induknya, meski bukan
varian dari bahasa C karena sintak dan cara kerjanya berbeda.
Matlab adalah bahasa pemrograman level tinggi

(semakin

mudah

cara

menggunakannya). MATLAB singkatan dari MATrix LABoratory, yang dikembangkan


oleh Mathwork .Inc (http://www.mathworks.com). Matlab mengintegrasikan antara
komputasi, visualisasi dan pemrograman dalam lingkungan yang mudah digunakan dimana
permasalahan dan solusi dinyatakan dalam notasi matematis yang dikenal secara umum.
Matlab dilengkapi dengan fungsi matematika, fisika, statistik dan visualisasi.
Dilingkungan universitas, matlab adalah alat komputasi standar dan dikembangkan
khusus dalam bidang ilmu matematika, keteknikan dan sains. Dilingkungan industri,
Matlab digunakan sebagai alat riset, pengembangan dan analisa.
Secara umum, penggunaan matlab dirangkum sebagai berikut:
Matematika dan komputasi
Pengembanagan algoritma
Pengumpulan data
Pemodelan, simulasi dan prototipe
Analisis data, eksplorasi dan visualisasi
Rancang bangun grafis
Aplikasi GUI
Singkatnya, matlab dirancang khusus untuk bekerja dengan sekumpulan data tertentu
sebagai vektor, matriks dan gambar.
1.2 Lingkungan Kerja Matlab
Matlab memiliki lingkungan terpadu yang terdiri dari beberapa form atau window dengan
kegunaan masing-masing.
1.2.1

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

File aktif tersimpan

Command history

Gambar 1. Window Matlab.


Keterangan :
Direktori aktif : berfungsi sebagai browser direktori aktif.
Prompt MATLAB pada command window : berfungsi sebagai penerima perintah
dari pemakai untuk menjalankan fungsi-fungsi yang disediakan oleh MATLAB
atau media pengguna berinteraksi dengan MATLAB.
Daftar variabel aktif (workspace) : berfungsi sebagai penyimpan seluruh variabel
yang sedang aktif selama penggunaan MATLAB.
File aktif tersimpan (current folder) : berfungsi sebagai tempat penyimpanan file
aktif di MATLAB.
3

Command history : berfungsi sebagai penyimpan perintah-perintah yang pernah


dikerjakan.
1.3 Mengakhiri Matlab
Untuk mengakhiri MATLAB dapat dilakukan dengan perintah sebagai berikut:
Pilih File > Exit MATLAB
Menekan tombol Ctrl+Q pada keyboard
Mengetikkan perintah exit atau quit pada command window diakhiri dengan Enter
Pilih File > ketikkan X pada keyboard.
1.4 File Help
MATLAB menyediakan fasilitas help browser untuk mencari dan melihat dokumen yang
telah disediakan di MATLAB. Untuk melihat helpbrowser, klik ikon

pada toolbar atau

ketik helpbrowser pada command window, yaitu:


>> helpbrowser
Untuk bentuk perintah topik yang lebih spesifik, harus diketikkan dalam ejaan yang tepat
misalnya:
>> help clc
Untuk permintaan bantuan dengan penjelasan singkat saja, dapat dilakukan dengan
perintah lookfor function sebagai berikut:
>> lookfor clc
Matlab juga menyediakan fasilitas Help online dengan mengetikkan Help > MATLAB
Help > Online Document.
1.5 File Demo
Untuk mengaktifkan jendela demo, ketikkan demos di command window, yaitu:
4

>> 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.

Selanjutnya muncul dialog set path sebagai berikut:

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.

Data Numerik Tunggal


>> a=3

% tekan Enter

a=
3
2.

Data Array atau Matrik


>> b=[2 3;4 5]

% 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

Untuk mengembalikan ke karakter aslinya, gunakan fungsi char:


>> str_karakter=char(str)
str_karakter =
MATLAB matlab
Untuk membandingkan kesamaan dua string, digunakan fungsi strcmp:
>> iseq= strcmp(str, str_karakter)
iseq =
1
Dua string dapat dirangkai dengan menggunakan fungsi ctrcat:
>> str_gabung= strcat(str,str_karakter)
str_gabung =
10

MATLAB matlabMATLAB matlab

Tabel 2.2 Beberapa simbol khusus dalam penggunaan perintah MATLAB


Simbol khusus
Deskripsi
[ ]
Pembatas awal dan akhir pada matrik
( )
Pembatas untuk indeks atau subscripts

Batas penanda dari karakter string
,
1. Pemisah subscript
2. Pemisah elemen matrik dalam satu baris
3. Tanda pemisah antar statement dalam satu baris
;
1. Mencegah menampilkan hasil operasi di command window
2. Pemisah antar baris dalam matrik
3. Tanda pemisah antar statement dalam satu baris
%
Penanda untuk memulai komentar
:
Operator kolon, digunakan untuk menyingkatkan penulisan
...
Menyambung statement dari baris sebelumnya.
Penamaan variabel:
Nama variabel terdiri dari string, yang diawali dengan huruf dan dapat diikuti oleh huruf,
angka atau garis bawah. Penamaan variabel bersifat sensitif (membedakan huruf A dan a).
Panjang nama variabel tidak dapat melebihi 31 karakter. Beberapa contoh penamaan
variabel MATLAB, sebagai berikut:
Nama variabel benar
>> level_sinyal=20
level_sinyal =
20
>> frekuensi_3400_Hz='suara dapat didengar'
frekuensi_3400_Hz =
suara dapat didengar
Nama variabel salah
>> 3dB=1000
??? 3dB=1000
|
Error: Unexpected MATLAB operator.
>> sinyal/noise = 20
??? sinyal/noise = 20
11

|
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

Bilangan terkecil/ terbesar yang digunakan dalam positif bilangan real.


Jumlah argumen yang digunakan oleh fungsi input/ output.

Tabel 2.4 merupakan tata penulisan notasi matematika pada MATLAB.


Tabel 2.4 Tata penulisan notasi matematika
Notasi Matematika
Perintah dalam MATLAB
A+B
A+B
A-B
A-B
AB
A*B
A/B
A/B atau B\A
b
x
x^b
sqrt(x)
x

|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)

Fungsi Matematika Dasar


MATLAB menyediakan standar fungsi matematika dasar bersifat built-in, yaitu:
trigonometri, eksponensial, logaritma, bilangan kompleks, dan pembulatan angka. Untuk
melihat daftar fungsi matematika dasar tersebut, jalankan perintah berikut pada command
window, yaitu:
>> help elfun

% 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

- Inverse hyperbolic secant.


- Cosecant.
- Cosecant of argument in degrees.
- Hyperbolic cosecant.
- Inverse cosecant.
- Inverse cosecant, result in degrees.
- Inverse hyperbolic cosecant.
- Cotangent.
- Cotangent of argument in degrees.
- Hyperbolic cotangent.
- Inverse cotangent.
- Inverse cotangent, result in degrees.
- Inverse hyperbolic cotangent.
- Square root of sum of squares.

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.

Rounding and remainder.


fix
- Round towards zero.
floor
- Round towards minus infinity.
14

ceil
round
mod
rem
sign

- Round towards plus infinity.


- Round towards nearest integer.
- Modulus (signed remainder after division).
- Remainder after division.
- Signum.

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)

% ei =cos (1) + i*sin (1)

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

>> f=sign([-1 0 1 1.5])

% 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

Loop implisit yang bertipe (ind_awal : ind_pertambahan : ind_akhir), merupakan nilai


dimulai dari ind_awal dengan pertambahan ind_pertambahan hingga berakhir ke nilai
atau tidak melewati nilai ind_akhir. Contoh:
>> A=[3 : -1 : 1; 6 : -1 : 4; 9 : -1 : 7]
18

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)

% mengakses matrik A pada elemen baris 1 sampai 2 dengan elemen


% kolom dari 1 sampai 3.

ans =
3
6

2
5

1
4

>> A(3 , :)

% mengakses matrik A pada baris ke-3 dengan semua elemen kolom

ans =
9

3.3 Matrik Khusus


MATLAB menyediakan fungsi matrik dasar, yaitu: zeros, ones, eye, rand, dan randn.
Berikut adalah contoh membangkitkannya:
>> B = zeros(3,4)

% membangkitkan matrik B(3x4), semua elemennya bernilai nol.

B=
0

0
19

0
0

0
0

0
0

0
0

>> C = ones(3,4)

% membangkitkan matrik C(3x4), semua elemennya bernilai satu.

C=
1
1
1

1
1
1

1
1
1

1
1
1

>> D = eye(3) % membangkitkan matrik identitas D(3x3), dengan elemen diagonal


% bernilai satu sementara elemen lain bernilai nol.
D=
1
0
0

0
1
0

0
0
1

>> E = rand(2,3)

% membangkitkan matrik E(2x3),berisi bilangan acak distribusi


% uniform pada selang [0,1].

E=
0.6797
0.6551

0.1626 0.4984
0.1190 0.9597

>> F = randn(2,3) % membangkitkan matrik F(2x3), berisi bilangan acak terdistribusi


% normal atau disebut Gaussian dengan mean = 0, varian = 1
F=
-0.0301
-0.1649

0.6277 1.1093
1.0933 -0.8637

3.4 Ekspansi Matrik (Concatenation)


Concatenation adalah proses penggabungan beberapa matrik berukuran kecil menjadi suatu
matrik berukuran besar. Contoh:
>> A=[3 : -1 : 1; 6 : -1 : 4; 9 : -1 : 7]

20

A=
3
6
9

2
5
8

1
4
7

Matrik A digabung menjadi:


>> A=[A A+1; A*2 A^2]
A=
3
6
9
6
12
18

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

3.5 Menghapus Baris Dan Kolom Matrik


Untuk menghapus baris dan kolom suatu matrik dapat digunakan simbol kurung persegi
( [ ]). Contoh :
>> A(4:6,:)= [ ]

% menghapus elemen baris ke-4 sampai ke-6 dengan


% semua elemen kolom dari matrik A.

A=
3
6
9

2
5
8

1
4
7

4
7
10

>> A(: ,4:6)= [ ]

3
6
9

2
5
8
% menghapus semua elemen baris dengan kolom ke-4 sampai ke-6
% dari matrik A.

A=
3

7
21

3.6 Ukuran Matrik


Untuk menghitung ukuran atau dimensi suatu matrik digunakan perintah, yaitu: length
untuk menghitung matrik vektor, size untuk menghitung matrik 2-dimensi. Contoh:
>> panjang_A=length(A)
panjang_A =
3

>> [panjang_baris_A, panjang_kolom_A]=size(A)


panjang_baris_A =
3
panjang_kolom_A =
3

3.7 Transpose Matrik


Suatu matrik dapat ditranspose dengan operator ( ). Contoh:
>> a=1:3
a=
1

>> 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

Transpose matrik bilangan rill, atau traspose dan


konjugasi matrik kompleks
.
Operasi transpose tanpa konjugasi. Untuk matrik rill,
operator ini memberi hasil yang sama dengan petik
tunggal
inv
Menghasilkan invers matrik, untuk matrik bujur sangkar
null
Menghasilkan suatu orthonormal basis untuk spasi null
dari matrik yang dihasilkan dari singular value
decomposition (svd)
orth
Menghasilkan orthonormal basis pada jangkauan A
rref
Menghasilkan reduce row echelon form dari matrik
eig
Menghasilkan suatu vektor yang berisi eigenvalues dari
suatu matrikbujur sangkar
svd
Suatu vektor yang berisi tunggal dari matrik
linspace Menhasilkan suatu vektor sebanyak n elemen diantara a
dan b
logspace Menghasilkan suatu vektor sebanyak n elemen diantara
10a dan 10b
diag
Menghasilkan diagonal matrik
tril
Menghasilkan bagian lower triangular dari matrik
triu
Menghasilkan upper triangular dari matrik
max
Menghitung nilai maksimum dari elemen dalam setiap
kolom matrik atau seluruh elemen matrik vektor
min
Menghitung nilai minimum dari elemen dalam setiap
kolom matrik atau seluruh elemen matrik vektor
mean
Menghitung nilai mean dari elemen dalam setiap kolom
matrik atau seluruh elemen matrik vektor

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

Menghitung nilai median dari elemen dalam setiap


S=median(A)
kolom matrik atau seluruh elemen matrik vektor
Menghitung nilai standar deviasi dari elemen dalam
S=std(A)
setiap kolom matrik atau seluruh elemen matrik vektor
Menghitung nilai varian dari elemen dalam setiap kolom S=var(A)
matrik atau seluruh elemen matrik vektor
Menghasilkan koefisien korelasi
Mengurutkan data dari elemen dalam setiap kolom
matrik atau dari elemen vektor matrik
Menghitung jumalah dari elemen dalam setiap kolom
matrik atau seluruh elemen matrik vektor
Menghitung hasil perkalian elemen suatu vektor atau
menghasilkan sebuah vektor yang berisi hasil perkalian
setiap kolom dari suatu matrik
Menghitung sebuah vektor berukuran sama, yang berisi
nilai produk kumulatif dari sebuah matrik dengan
ukuran sama, yang berisi nilai produk kumulatif kolom
suatu matrik
Menghitung sebuah vektor berukuran sama, yang berisi
nilai jumlah kumulatif dari sebuah matrik dengan
ukuran sama, yang berisi nilai produk kumulatif kolom
suatu matrik
Menyusun ulang elemen matrik A menjadi berukuran
mxn. Elemen A harus sama dengan mxn
Merotasi posisi elemen matrik A berlawanan arah jarum
jam sejauh 900
Menukar posisi elemen matrik A secara membujur,
yaitu: sebelah atas ditukar dengan sebelah bawah
Menukar posisi elemen matrik A secara melintang,
yaitu: sebelah kiri ditukar dengan sebelah kanan.
Menghitung dot-product dari matrik vektor
Menghitung cross-product dari matrik vektor

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

% mengekstrak matrik a 1x4 menjadi b 2x4.

b=
24

10

10

>> c=mean(b)

% menghitung rata-rata elemen matrik b berdasarkan elemen perkolom.

c=
1

10

>> d=mean(b')

% menghitung rata-rata elemen matrik b berdasarkan elemen perbaris.

d=
5.5000

5.5000

3.9 Operator Logika Dan Relasi dalam Menyeleksi Data


Operator relasi dapat digunakan untuk membandingkan dua atau lebih array yang memiliki
ukuran yang sama, atau suatu array dengan suatu skalar. Hasil relasi akan bernilai 1 jika
relasi benar(dipenuhi) dan bernilai 0 jika relasi tidak dipenuhi.Operator relasi dirangkum
pada Tabel 3.4.
Tabel 3.4 Tabel operator relasi
Operator
Keterangan
==
Sama dengan
~=
Tidak sama dengan
<
Kurang dari
<=
Kurang dari sama dengan
>
Lebih dari
>=
Lebih dari sama dengan
Contoh:
>> a=randn(3,4)
a=
1.4090 -1.2075

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

Dapat diringkas menjadi:


>> b=a(ind)
b=
-1.2075
-0.3034
-0.7873

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

>> [ind_baris, ind_kolom, ind_nilai]= find (ind)


ind_baris =
1
1

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

>> ind=(c>=0.5) | (c<= -0.5)


ind =
1

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.

3.10 Array Multidimensi


Array multidimensi merupakan suatu ekstensi dari suatu matrik dua dimensi. Array
multidimensi dapat diciptakan dari matrik dua dimensi yang sudah ada, seperti: zeros, one,
rand atau randn dengan lebih dari dua argumen. Contohnya:
>> R=randn(2,3,3)
R(:,:,1) =
3.5784 -1.3499
2.7694

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.

3.11 Sel dan Struktur (bersambung)

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;

% menciptakan matrik x, nilainya dimulai dari ind_awal=0,


% ind_pertambahan=pi/50, ind_akhir=2*pi.
>> y=sin(x);
% menciptakan matrik y sebagai fungsi sin(x)
>> plot(x,y);
% fungsi menampilkan grafik y versus x
>> axis([0, 6.2832, -1, 1]) % fungsi untuk menentukan batas data pada grafik, xmin= 0,
% xmax= 6.2832, ymin= -1, ymax= 1.
>> xlabel('sb-x (0-2\pi)'); % fungsi membuat label pada sumbu absis x dengan nama sb-x
% (0-2 )
>> ylabel('sb-y');
>> title('y=sin(x)');

% fungsi membuat label pada sumbu ordinat y dengan nama sb-y


% fungsi menambahkan judul y=sin(x) diatas figur.
30

>> text(3,0.2,'\leftarrow y=sin(x)')

% fungsi menyisipkan teks y=sin(x) pada posisi


% koordinat (3, 0.2) dalam figur.
% fungsi mengaktifkan grid pada figur.

>> grid on;

Hasilnya ditunjukkan pada Gambar 4.1.


y=sin(x)

sb-y

0.5

y=sin(x)

0
-0.5
-1

3
4
sb-x (0-2)

Gambar 4.1 Grafik y versus x.


4.1.1 Fungsi model garis, tanda dan warna pada kurva
Untuk menentukan secara spesifik warna, garis dan tanda ketika memplot data, maka
sintaknya dapat ditulis sebagai berikut:
plot(x , y,warna_garis_tanda)
Untuk menampilkan string karakter warna, garis dan tanda, dapat dilihat pada Tabel 4.2.
Tabel 4.2a) String warna
Simbol
Warna
c
cyan
m
magenta
y
yellow
r
red
g
green
b
blue
w
white
k
black

(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)

Tabel 4.2b) String garis


Simbol
Garis
solid
-dashed
:
dotted
-.
das-dot
none
no line
Tabel 4.2c) String tanda
31

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

Menambah Pengaturan Plot Lines


Selain mensetting grafik berdasarkan warna, garis dan tanda, terdapat juga empat
penambahan properti khusus untuk setiap grafik, yaitu:

LineWidth
MarkerEdgeColor
MarkerFaceColor
MarkerSize

: khusus mempertebal garis


: khusus mewarnai sisi marker atau bentuk tanda.
: khusus mewarnai permukaan marker.
: khusus mengubah ukuran marker.

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

Gambar 4.3 Menambah kontrol pada plot lines.


Untuk mengedit warna, garis dan tanda secara interaktif dapat juga dilakukan pada window
figur. Caranya adalah: pilih menu Edit > Figure Properties > klik objek > atur properti
objek sesuai yang diinginkan atau double klik objek yang mau dimodifikasi > atur
properti objek.
Menambah Pengaturan String Teks
Adalah mungkin menambah string teks (misal: title, axis, label, dll), dengan format seperti:
bold face, italic, bahkan karakter spesial seperti: Greek dan simbol matematika.
33

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

4.1.2 Plot Overlay


Multi grafik y versus x, dapat juga diciptakan melalui satu fungsi plot. MATLAB secara
otomatis membedakan antar grafik berdasarkan warna. Namun untuk membedakannya
dapat juga disetting sesuai keinginan. Contoh :
34

>> 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

Gambar 4.3 Multi plot y versus x.


Untuk mengubah garis, tanda agar dapat dibedakan satu sama lain, dapat disetting sesuai
keinginan. 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)');

Hasilnya seperti pada Gambar 4.4.

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.

4.1.3 Penambahan Plot pada Grafik

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.

4.1.4 Grafik Jamak atau Plot Paralel


Untuk menampilkan grafik secara terpisah dalam satu figure (sub-figure), dilakukan
dengan menggunakan fungsi subplot, dengan sintaks subplot(m, n, p) atau subplot(mnp).
Fungsi subplot(m, n, p) merupakan fungsi yang membagi figure window kedalam matrix
m x n dengan axes yang lebih kecil, p merupakan nomor atau indeks objek yang diplot.
Contoh :
37

>> 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.

Gambar 4.7 Figure gelombang dalam 3 sub-figure.

4.1.5 Sintak Dasar Grafik 2-D


38

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

>> xlabel('x(n)'); ylabel('y(n)'); title('subplot(223), bar');


>> subplot(224)
>> theta= 0:pi/50:2*pi;
>> rho= cos(theta);
>> polar(theta,rho);
% fungsi polar(theta, rho)
>> title('subplot(224), polar');
>> grid on;
Hasilnya diperlihatkan pada Gambar 4.8.
subplot(221), loglog

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.

4.2 Plot 3-D


MATLAB menyediakan variasi fungsi untuk menampilkan data 3-D, yaitu: dalam
koordinat ruang, x-, y- dan z-. Nilai z- adalah bobot nilai dari pada titik (x, y). Untuk
menampilkan data plot garis, dapat menggunakan fungsi plot3,fplot3, dll, untuk plot
permukaan dapat digunakan fungsi mesh, surf, dll, dan untuk plot kontur dapat digunakan
fungsi meshc, surfc, contour, dll.
Untuk lebih mengetahui grafik 3-D, ketikkan perintah berikut ini di command window:
>> help graph3d
Perintah command xlabel, ylabel, zlabel, title, axis, hold, grid, subplot juga berlaku
untuk plot 3-D.
40

Plot Garis 3-D


Jika vektor x, y, dan z berukuran sama, maka untuk menggambarkan plot garis 3-D-nya,
digunakan sintaks berikut:
>> plot3(x, y, z)
Contoh :
>> clear all
>> t= -10*pi:pi/50:10*pi;
>> x= t.*cos(t);
>> y= t.*sin(t);
>> plot3(x,y,t);
>> xlabel('x'); ylabel('y'); zlabel('z');
>> grid on;
Hasilnya ditunjukkan pada Gambar 4.9.
40

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

Gambar 4.10 Plot permukaan fungsi sinc dengan meshgrid.

Plot Kontur 3-D


Plot kontur digunakan untuk membuat garis kontur dari data 3-D. Garis- garis kontur
dibuat dengan teknik interpolasi dari titik-titik terdekat. Sintaksnya adalah:
>> handle= contour(zi)
>> clabel(handle)
Contoh:
>> figure
>> [X,Y] = meshgrid(-8:.5:8);
>> R = sqrt(X.^2 + Y.^2) + eps;
>> Z = sin(R)./R;
>> subplot(221)
>> meshc(X, Y, Z);
>> xlabel('X'); ylabel('Y'); zlabel('Z'); title('meshc');
>> subplot(222)
>> surfc(X, Y, Z);
>> xlabel('X'); ylabel('Y'); zlabel('Z'); title('surfc');
>> subplot(223)
>> handle= contour(X, Y, Z);
>> clabel(handle);
>> xlabel('X'); ylabel('Y'); title('contour');
>> subplot(224)
>> handle= contourf(X, Y, Z);
>> clabel(handle);
43

>> xlabel('X'); ylabel('Y'); title('contourf');


Hasilnya seperti pada Gambar 4.11.

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

cukup kecil sehingga kurva terlihat mulus.


2. Suatu filter memiliki respon frekuensi sebagai berikut:
Vo
1
=
F=4 kHz ialah frekuensi cut-off dari filter. Buatlah
V i 1+ j 2 fF , dimana

plot semilogaritmis pada sumbu frekuensi: respon amplituda,

dan plot respon fasa,

Vo
Vi

( )

versus

||
Vo
Vi

versus

f ,

f , pada rentang frekuensi 0 hingga 50

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

Gambarkan pola radiasi ini!.


4. Plot kontur dari fungsi dua variabel berikut ini:
f ( x , y ) =cos ( x) sin ( x) untuk 0 x 4 , 0 y 4 .

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

switch dan case


Statement switch mengeksekusi grup statement berdasarkan nilai dari variabel atau
ekspresi. Statement switch diikuti dengan case dan otherwise untuk menyatakan suatu
grup, kemudian diakhiri dengan end. Grup statement yang dieksekusi berdasarkan
perbandingan nilai = ekspresi. Grup statement setelah otherwise dieksekusi jika tidak ada
49

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

[( ) ]

= sudut antara MS dengan arah antena BTS dalam derajat.

3 dB = sudut beamwidth 3 dB dalam derajat


Am

= redaman maksimum, untuk antena 3 sektor 3 dB=70 , A m=20 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

% redaman pathloss menggunakan model Hatta


% pada daerah large city
hm = input('hm = '); % tinggi antena MS (m)
f = input('f = '); % frekuensi sinyal carrier (MHz)
hb = input('hb = '); % tinggi antena BTS (m)
r = input('r = '); % jarak antara BTS dengan MS (km)
A_large_city = 3.2*(log10(1175*hm)^2)-4.97;
L_urban = 69.55 + 26.16 * log10(f) +...
(44.9-6.55*log10(hb)) * log10(r)-...
13.82*log(hb) - A_large_city;
disp(['L_urban = ' num2str(L_urban)]);
case 2
% redaman antena 3 sektor
theta = input('theta = '); % sudut antara MS dgn arah antena BTS (derajat)
theta_3dB = input('theta_3dB = '); % sudut saat beamwidth 3 dB (derajat)
Am = input('Am = '); % redaman maksimum,
% utk antena 3 sektor theta_3dB = 70 (derajat),
% Am = 20 dB
A = -1*min(12*(theta/theta_3dB)^2, Am);
disp(['A = ' num2str(A)]);
otherwise
disp('tidak ada pilihan');
end
for
Loop for digunakan untuk melakukan iterasi dalam mengeksekusi grup statement
sampai batas yang ditentukan. Struktur loop for adalah sebagai berikut:
for variabel = nilai_awal : nilai_pertambahan : nilai_akhir
statement
end
Contoh :
Perbandingan sinyal terhadap derau penting dalam transmisi data digital karena
menentukan batas atas laju data yang dapat dicapai. Hasil perhitungan Shannon adalah
kapasitas kanal terbesar, dalam bit per detik, mematuhi persamaan:
C = B log2(1 + SNR)
Dengan C adalah kapasitas kanal dalam bit per detik dan B adalah bandwidth kanal
dalam Hertz.
>> % menambah kapasitas kanal Shannon
B = [7 30 40 220].*10^6; % bandwidth kanal (Hz)
SNR_dB = [1 : 30]; % Signal to Noise Ratio (dB)
SNR = 10.^(SNR_dB./10);
51

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

Hasil yang diperoleh setelah mengeksekusi program diatas adalah:


semester_sekarang = 5 % ketik 5, lalu enter
Aku mahasiswa semester -->5
Contoh lain:
Menentukan semester-semester yang telah dilewati oleh mahasiswa.
>> maks_semester = input('maksimum batas semester = ');
>> semester = input('semester sekarang = ' );
>> for i = 1:maks_semester
>> if i >= semester
>>
continue;
>> else
>>
disp(['Saya telah melewati semester = ' num2str(i)]);
>> end
>> end
Hasil yang diperoleh setelah menjalankan program diatas adalah:
maksimum batas semester = 14 % ketik 14, lalu tekan Enter
semester sekarang = 5
% ketik 5, lalu tekan Enter
Saya telah melewati semester = 1
Saya telah melewati semester = 2
Saya telah melewati semester = 3
Saya telah melewati semester = 4

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

4. _________.1997.MATLAB The Language of Technical Computing, Using


MATLAB Graphics Version 5. The MathWorks, Inc. All Rights Reserved.
5. Chapman, S., J.______. MATLAB Programming for Enginers, Second Edition.
Bookware Companion Series.
6. Chapman, S., J._______.MATLAB Programming for Engineers, Fourth Edition.
BAE SYSTEMS Australia.

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.

Gambar 6.1 Script M-File grafik heksagonal.


Untuk mengeksekusi program contoh1.m, maka pada menu Editor pilih Debug atau tekan
item Run atau tekan F5. Maka diperoleh hasil seperti Gambar 6.2.

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

Gambar 6.2 Hasil eksekusi program contoh1.m.


6.2 Fungsi M-File
Fungsi fungsi yang dibangun di MATLAB merupakan subprogram yang menggunakan
parameter input dan output yang dapat digunakan atau dipanggil pada fungsi lain dan
command window. MATLAB menyediakan tools dengan format fungsi yang dikemas
dalam folder-folder toolbox. Selain menggunakan fungsi-fungsi yang telah disediakan
MATLAB, dapat juga membuat fungsi sendiri. Adapun sintaks penulisan untuk membuat
fungsi sendiri adalah sebagai berikut:
function [argumen_output] = nama_fungsi(argumen_input)
Dimana,
a. argumen_output adalah nama variabel output, jika variabel output lebih dari satu
maka antara variabel output dipisahkan oleh tanda koma ,.
b. Tanda [ ] adalah bersifat opsional, jika terdapat hanya satu parameter
argumen_output.
c. nama_fungsi menyatakan nama fungsi, yang ditulis tidak boleh terpisah.
d. argumen_input merupakan nama variabel input, jika variabel input lebih dari satu,
maka antara variabel input dipisahkan oleh tanda koma ,.
Contoh :
Menghitung rugi ruang lepas, dengan frekuensi pembawa (f) dan jarak propagasi antar
antena (d), dirumuskan sebagai berikut:
58

LdB=20 log ( f )+ 20 log ( d )147,56 dB


LdB

sebagai fungsi dari

dan

ditulis seperti pada Gambar 6.3 disimpan sesuai

dengan nama fungsi yaitu: rugi_ruang_lepas.m.

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)

Dimana output dapat berupa matrik string atau numerik.


Contoh: output numerik
>> x=rand(1,3);
>> y=x.^2;
>> disp([x';y])
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
>> disp([x;y])
0.9134 0.6324
0.8343 0.3999

0.0975
0.0095

Contoh: output string


>> disp('Hello mahasiswa semester 5')
Hello mahasiswa semester 5
>> x = 'Hello mahasiswa semester 5';
>> y = 'Dinikmati semester 5 ini kan ?';
>> disp(y)
Dinikmati semester 5 ini kan ?
>> disp([x;y])
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
>> disp(char(x,y))
61

Hello mahasiswa semester 5


Dinikmati semester 5 ini kan ?
b. num2str dengan disp
Fungsi num2str sering digunakan bersama dengan fungsi disp untuk menciptakan label
output berupa numerik.
Sintaks :
nilaiString = num2str(nilaiNumerik)

artinya adalah mengkonversi nilaiNumerik ke representasi string dengan nilai


numerik.
Contoh :
>> A = num2str(pi)
A=
3.1416
>> B = pi
B=
3.1416
>> A-B
ans =
47.8584 42.8584 45.8584 48.8584 45.8584 50.8584
>> whos
Name Size
A
B
ans

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

>> disp(['pi = ',num2str(A)]);


pi = 3.1416

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

dimana bandwidth B = 3100 Hz, banyak unsur sinyal diskrit M = 2 , 4 , 8 , 16.


function contoh2
% menghitung kapasitas kanal dengan menggunakan rumus Nyquist
% Parameter
B = 3100; % Hz
M = [2; 4; 8; 16]; % banyak unsur sinyal diskrit
C = B*log2(M); % Rumus kapasitas kanal Nyquist
fprintf('\n=========================\n');
fprintf('|
M
|
C
|\n');
fprintf('
(bps)\n')
fprintf('=========================\n');
for i = 1:length(M)
fprintf('| %8.2f
| %8.2f |\n',M(i,:), C(i,:))
end
end

dengan memanggil fungsi contoh2 pada command window, maka:


>> contoh2 % Enter
=========================
| M | C |
(bps)
=========================
| 2.00 | 3100.00 |
| 4.00 | 6200.00 |
| 8.00 | 9300.00 |
| 16.00 | 12400.00 |

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) ;

: membangkitkan matriks a, dengan baris x dan kolom y, dengan


setiap elemen terdistribusi seragam dalam rentang [0,1].

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]

Gambar 8.1. Distribusi Seragam Kontinu, rentang [0,5].


8.2 Distribusi Seragam Diskrit (Uniform Discrete)

66

Untuk membangkitkan bilanagan acak dengan distribusi seragam diskrit, adalah:


a = floor(N*rand(x,y)+1;

: membangkitkan matrik a dengan x-baris dan y-kolom,


dimana setiap elemen merupakan angka integer dalam
rentang [ 1...N].

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

=1 , 2=25 , serta grafik histogramnya masing-masing.


>> b = randn(1,1e5);
>> c = sqrt(25)*randn(1,1e5)+1;
>> figure
>> subplot(2,1,1);
>> hist(b,100);
>> subplot(2,1,2);
>> hist(c,100);
Hasil grafik histogramnya ditunjukkan pada Gambar 8.3.
4000
2000
0
-15

-10

-5

10

15

-10

-5

10

15

4000
2000
0
-15

Gambar 8.3 Distribusi Gaussian

2
N ( , ) , a. N (0,1) , b.

N (1,25) .

8.4 Distribusi Standar


Beberapa distribusi probabilitas yang sering digunakan didukung oleh MATLAB.
MATLAB Statistics Toolbox mendukung sejumlah distribusi probabilitas. Dengan
menggunakan MATLAB, menjadi lebih mudah untuk menghitung probabilitas density,
kumulatif density dan membangkitkan fungsi random.
Beberapa fungsi Matlab untuk mengevaluasi probabilitas density, kumulatif density
dan fungsi random dirangkum pada Tabel 8.1.
Tabel 8.1 Fungsi probabilitas density, kumulatif density, dan random
Distribusi
PDF
CDF
Random
Normal
normpdf
normcdf
norm
Uniform (kontinu)
unipdf
unicdf
unifrnd
68

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.

Gambar 9.1 Membuka lembar kerja GUI dari menu file.


Atau,
ketikkan >> guide pada command window, seperti pada Gambar 9.2.

70

Gambar 9.2 Membuka lembar kerja GUI, demgan guide.


Akan muncul window GUIDE Quick Start seperti pada Gambar 9.3.

Gambar 9.3 Window GUIDE Quick Start.


Kemudian pilih OK untuk membuat lembar kerja GUI yang baru, seperti Gambar 9.4.

71

Anda mungkin juga menyukai