29 - Mathlab
29 - Mathlab
PEMROGRAMAN KOMPUTER
Unit 1
PENGENALAN MATLAB
1.1
Tujuan
1.2
Dasar Teori
Kalkulator
Ketika bertindak sebagai kalkulator, MATLAB memberikan hasil seketika
Bahasa pemrograman
Perintah perintah operasi dengan urutan dan logika tertentu, serta digunakan
berulang berulang dapat dibuat sebagai suatu program yang akan dijelaskan pada
unit
Praktikum Dasar Pemrograman Komputer
selanjutnya.
Adapun macam macam operasi yang dapat dilakukan oleh MATLAB adalah :
1.2.1
Skalar
Teks
: pengolahan kata.
dibuat
untuk
menjalankan
fungsi-fungsi
MATLAB.
Figure
Figure adalah jendela untuk menampilkan gambar grafik seperti perintah plot
dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam sebuah file
yang sewaktu-waktu dapat dipanggil kembali.
Help
Untuk menghafalkan semua perintah MATLAB mungkin akan menemui banyak
kesulitan. Untuk menemukan perintah-perintah itu, MATLAB menyediakan bantuan
dengan menyediakan help online. Kemampuan ini meliputi perintah MATLAB
untuk memperoleh keterangan cepat pada command window atau pada help browser.
1.2.2
Operator komputasi.
Untuk
Simbol
Operasi
Penambahan, a + b
Pengurangan, a - b
Perkalian, a x b
/ atau \ Pembagian, a : b
^
Pemangkatan, ab
1.2.3
Bilangan kompleks.
Bilangan kompleks adalah bilangan yang terdiri dari bagian imaginer dan bagian
riil. Bagian imaginer ditandai dengan simbol imaginer i atau j . Operasi bilangan
kompleks juga menggunakan operator komputasi di atas. Bilangan kompleks selain
dapat dinyatakan dalam koordinat kartesian , dapat juga dinyatakan dalam koordinat
polar dan diagram fasor yang berupa magnitude dan sudut fase.
Beberapa fungsi dasar yang berhubungan dengan bilangan kompleks adalah:
Perintah
1.2.4
Keterangan
real
imag
abs
angle
Fungsi matematis
juga
menyediakan ratusan
fungsi
yang
berguna untuk
Fungsi matematika
1.2.5
keterangan
abs(x)
acos(x)
Invers cosinus
acosh(x)
asin(x)
Invers sinus
atan(x)
Invers tangen
ceil(x)
cos(x)
Cosinus
exp(x)
Eksponensial : ex
fix(x)
floor(x)
imag(x)
log(x)
Logaritma natural
log10(x)
real(x)
rem(x,y)
round(x)
sin(x)
Sinus
sqrt(x)
Akar kuadrat
tan(x)
Tangen
Variabel
Data dan variabel yang dibuat dalam command window tersimpan dalam
workspace MATLAB. Ada beberapa aturan dalam penamaan variabel :
Praktikum Dasar Pemrograman Komputer
Variabel spesial
Nilai
ans
pi
inf
NaN
i dan j
i=j=-1
nargin
nargout
realmin
realmax
A-B
A*B
A/B
B\A
A^B
2. Bilangan kompleks.
a = 4+3i
real(a)
imag(a)
abs(a)
angle(a)
conj(a)
3. Fungsi matematis.
x=pi/3
a=0.01
acos(a)
acosh(a)
asin(a)
atan(a)
ceil(x)
cos(x)
exp(x)
fix(x)
floor(x)
log(x)
Praktikum Dasar Pemrograman Komputer
log10(a)
rem(x,a)
round(x)
sin(x)
sqrt(a)
tan(x)
4. Variabel.
Panjang = 10
lebar = 5
Luas_persegi_panjang = Panjang * lebar
SELAMAT MENCOBA!
10
Unit 2
ARRAY DAN MATRIKS
2.1.
Tujuan
2.2.
Teori
Array atau disebut juga larik adalah bentuk dasar penyimpanan data pada
MATLAB. Array dapat berupa array kosong dengan dimensi 0x0, hingga array dengan
n-dimensi. Dengan array, kita dapat membuat vektor, matrik, menggunakan subscript
arrays, dan penggunaan khusus untuk iterasi. Sebuah matriks adalah sebuah array dua
dimensi dengan elemen dapat berupa riil maupun komplek.
Untuk membentuk array pada Matlab, dimulai dengan kurung siku buka,
masukan nilai dipisahkan dengan koma atau spasi, dan diakhiri dengan kurung tutup
siku.
11
Pembentukan array
x=[2 2*pi sqrt(2) 2-3j]
keterangan
Membentuk vektor baris x dengan elemen yang
disebutkan
x=first:last
x=first:increment:last
x=linspace(first,last,n)
x=logspace(first,last,n)
12
Pengalamatan Array
A(r,c)
A(r,:)
A(:,c)
A(:)
A(i)
A(x)
fliplr(A)
rot90(A)
reshape(A,m,n)
13
diag(v)
tril(A)
triu(A)
Perkalian skalar
Penjumlahan array
Perkalian array
14
Pemangkatan array
c^an]
Dalam operasi ini yang harus diperhatikan adalah ukuran dimensi dari operasi
elemen per elemen haruslah sama. Menghilangkan titik sebelum tanda *, /, dan ^
adalah sebuah kesalahan serius karena pernyataan kemudian akan menyebutkan sebuah
operasi matriks skalar, bukan operasi elemen per elemen.
2.2.4. Matriks
Fungsi-fungsi matriks yang disediakan oleh MATLAB ditunjukkan dalam tabel berikut.
Fungsi Matriks
balance(A)
cdf2rdf(A)
chol(A)
faktorisasi Cholesky
cond(A)
15
condest(A)
d=eig(A)
nilai eigen dan vektor eigen
[V,D]=eig(A)
det(A)
determinan
expm(A)
matriks eksponensial
expm1(A)
expm2(A)
expm3(A)
funm(A,fun)
hess(A)
bentuk hessenberg
inv(A)
invers matriks
logm(A)
logaritma matriks
lscov(A,b,V)
lu(A)
nnls(A,b)
norm(A)
norm(A,1)
1-norm
norm(A,2)
2-norm (Euclidean)
norm(A,inf)
takberhingga (infinity)
norm(A,p)
norm(A,fro)
F-norm
null(A)
spasi kosong
orth(A)
Ortogonalisasi
16
pinv(A)
Pseudoinvers
poly(A)
Variabeln karakteristik
polyvalm(A)
qr(A)
dekomposisi ortogonal-triangular
qrdelete(Q,R,j)
rank(A)
rcond(A)
rref(A)
rsf2csf
schur(A)
dekomposisi Schur
sqrtm(A)
svd(A)
trace(A)
Matriks Spesial
[]
matriks kosong
Company
matriks gabungan
Eye
matirks identitas
17
gallery
hadamard
matriks Hadamard
hankel
matriks Hankel
hilb
matriks Hilbert
invhilb
magic
magic square
ones
pascal
rand
randn
rosser
toeplitz
matriks toeplitz
vander
matriks vandermonde
wilkinson
zeros
Fungsi-fungsi yang digunakan untuk mengetahui ukuran array diringkas dalam tabel
berikut.
18
Ukuran Array
Whos
s=size(A)
c=size(A,2)
n=length(A)
2.3.
Langkah Praktikum
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
X=(0:0.1:1)*pi
X=linspace(0,pi,11)
19
M=logspace(0,2,11)
x=[2 2*pi sqrt(2) 2-3j]
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
X = [0 2 4 6 8 10 12 14 16 18 20];
Y = [1 3 5 7 9 11 13 15 17 19 21];
X(7)
Y(4)
Y(10:-1:2)
X(2:6)
Y(1:2:8)
X(1:3:10)
Y^2
X.^2
Y./2
A=[1 2 3;4 5 6;7 8 9];
A(2,3)
A(1,:)
A(:,3)
20
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
a = [2 4 3 5 7]
b = [1 2 3 4 5]'
c = a+5
d = a+b
e = b-2
f = b*3
g = b/2
h = a./b
k = a.\b
x = a*b
y = b*a
z = a.*b
2.3.4. Matriks
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
m_eye = eye(4)
m_rand = rand(3,4)
m_ones = ones(4,4)
m_zeros = zeros(3)
Praktikum Dasar Pemrograman Komputer
21
4 5 6 x 2 804
7 8 0 x3 351
Ax =b
untuk mencari solusi dari persamaan tersebut dapat digunakan fungsi-fungsi matriks
sebagai berikut.
A=[1 2 3;4 5 6;7 8 0]
b=[366;804;351]
det(A)
x=inv(A)*b
x=A\b
Cobalah perintah-perintah tersebut pada command window!!! Lalu amati hasilnya!
2.3.5
Ukuran array
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya!
A=[1 2 3 4;5 6 7 8]
s=size(A)
[r,c]=size(A)
r=size(A,1)
c=size(A,2)
length(A)
22
Unit 3
PEMBUATAN PROGRAM
3.1
Tujuan
3.2
Dasar Teori
Program adalah suatu kumpulan pernyataan, fungsi atau perintah yang diatur
sedemikian sehingga mempunyai logika tertentu. Semua pernyataan, fungsi dan
perintah dapat diberikan langsung di MATLAB Command Window yang digunakan
untuk menyusun sebuah program. MATLAB menyediakan bahasa pemrograman yang
lengkap yang memungkinkan Anda menulis perintah-perintah MATLAB ke dalam
sebuah file dan menjalankannya dengan sebuah perintah saja. m-file dapat berupa script
yang secara sederhana mengeksekusi barisan perintah-perintah MATLAB, atau m-file
dapat berupa fungsi yang menerima argumen input dan menghasilkan output. M-file
dibuat dengan menggunakan teks editor. Perbedaan antara script dan fungsi disajikan
dalam
tabel
berikut.
23
Script
Fungsi
Menerima
argumen
input
dan
untuk
memperluas
bahasa
kali
3.2.1
File-m
Program MATLAB dikenal dengan sebutan file-m, karena file ini berekstension m. Filem yang dihasilkan oleh MATLAB adalah suatu program tak-terkompilasi, sehingga
selalu membutuhkan program interprenter, yaitu MATLAB itu sendiri. Artinya untuk
dapat menjalankan program yang telah dibuat dipanggil melalui MATLAB Command
Window. Pemanggilan file-m dilakukan dengan menuliskan nama file tersebut tanpa
menyebutkan ekstensionnya.
24
File ini cukup disusun dari pernyataan, fungsi atau perintah seperti halnya pada
MATLAB Command Window, untuk membangun logika tertentu.
3.2.2
Tipe data yang digunakan pada pemrograman MATLAB defaultnya adalah double.
Tetapi tipe data dapat berubah menyesuaikan dengan nilai yang diberikan kepadanya.
Beberapa tipe data, yang juga merupakan fungsi pengubah tipe data, antara lain :
single
double
uint8, uint16,uint32
char
Yang dimaksud tak bertanda adalah tipe data yang tidak menerima bilangan negatif.
Multidimensional arrays
Cell arrays
Structure
Pada MATLAB, multidimensional arrays adalah array dengan tiga atau lebih subscript.
Dapat dibentuk dengan memanggil zeros, ones, rand, atau randn dengan argument lebih
dari
dua.
25
Karakter string adalah teks yang diawali dan diakhiri dengan apostrof (). Setiap
karakter dalam suatu string adalah satu elemen array, dengan setiap elemennya sebesar
2 byte. String merupakan array numerik dengan atribut khusus, oleh karena itu string
dapat dimanipulasi dengan menggunakan semua metode manipulasi array yang tersedia
di MATLAB.
3.2.3
Struktur Fungsi
Deklarasi file-m sebagai fungsi adalah function yang terletak pada awal program.
parameter keluaran dapat lebih dari satu buah, cara penulisannya adalah
[parameter_keluaran1, parameter_keluaran2,...]
parameter masukan juga dapat lebih dari satu. Maka penulisannya adalah
(parameter_masukan1, parameter_masukan2,...)
26
Pada fungsi dengan beberapa parameter masukan, apabila cacah parameter saat
pemanggilan tidak sama dengan cacah parameter saat definisi, maka biasanya fungsi
akan gagal dijalankan. MATLAB mempunyai kemampuan untuk menghitung cacah
parameter masukan dan cacah parameter keluaran. Cacah parameter keluaran
dinyatakan dengan fungsi nargin, sedangkan cacah parameter keluaran dinyatakan
dengan fungsi nargout.
3.2.4
Fungsi input digunakan untuk meminta masukan ketika program dijalankan. Fungsi
ini menerima parameter berupa string untuk memberikan keterangan tentang masukan
yang harus diberikan, pemasukan nilai yang ditampung disuatu variabel adalah
Menampilkan hasil, nilai variabel atau keterangan pada saat program dijalankan dapat
menggunakan salah satu dari fungsi dibawah ini.
disp
fprintf
27
Arti
Karakter khusus
Simbol
Arti
%d
Bilangan bulat
/n
%f
Bilangan pecahan
/t
%o
Bilangan oktal
Pada tampilan bilangan pecahan %f, %e dan %E, presisi dapat diatur dengan
menyisipkan format presisi bilangan. Format presisi adalah .p, dengan p berupa nilai
yang menyatakan banyaknya angka dibelakang koma.
Suatu program yang baik biasanya mempunyai komentar terhadap operasi, pernyataan
atau perintah yang diberikan dalam program. Untuk memberikan komentar/keterangan
pada perintah MATLAB, harus didahului dengan tanda %.
Beberapa perintah dapat diletakkan pada baris yang sama dengan dipisahkan oleh tanda
koma atau titik koma. Tanda koma memberitahu MATLAB untuk menampilkan hasil
sedangkan
tanda
titik
koma
mencegah
penampilan
hasil.
28
Suatu perintah MATLAB yang akan ditulis terpisah tidak dalam baris yang sama harus
ditandai dengan tiga titik berurutan. Posisi tanda tiga titik tersebut harus berada di antara
nama variabel dan operator. Jadi nama variabel tidak dapat dipecah.
3.3
Langkah Praktikum
Buat program program berikut, simpan sebagai file-m, kemudian jalankan. Catat dan
amati hasilnya.
29
Y = 23/47
y_double = double (23/ 47)
y_single = single (23/ 47)
z_int
= int8 (-93)
Lihat daftar variabel yang terbentuk dengan perintah whos . Dari semua tipe data yang
ada, urutkan berdasar ukuran byte yang digunakan mulai dari yang terkecil hingga besar.
30
Stuktur data
Multidimensional arrays dapat dibentuk dengan memanggil zeros, ones, rand, atau
randn dengan argument lebih dari dua.
Ketikan perintah berikut di Command Window, amati dan analisa hasilnya.
R = rand(3,4,5);
Cell array dibentuk dengan melingkupi kumpulan suatu data dengan kurung kurawal
{ } . Kurung kurawal juga digunakan untuk mengakses isi dari berbagai sel.
Ketikan perintah berikut di Command Window, amati dan analisa hasilnya.
A = [ 1 2 3]
C = {A sum(A) prod(prod(A))}
Fungsi char menerima beberapa baris, menambahkan spasi pada setiap baris untuk
membuatnya sama panjang, dan membentuk karakter array.
31
teks = char(A,rolling,stone,gathers,momentum.)
karakter =
{A;rolling;stone;gathers;momentum.}
karakter_ke_string = cellstr(teks)
string_ke_karakter = char(karakter)
S.nama
= Ed Plum;
S.score
= 83;
S.gradae = B+
32
y = r * sin (p_rad);
Fungsi dipanggil dengan cacah parameter masukan kurang dari cacah parameter
masukan saat definisi, apa yang terjadi?
33
Program berikut untuk menguji masukan dan keluaran. Setiap baris diakhiri dengan
tanda titik koma ( ; ).
Simpan dan jalankan program. Apa yang muncul dilayar? Uji untuk masukan berupa
bilangan bulat dan bilangan pecahan.
a = input (Pembilang = );
b = input (Penyebut = );
c = a / b;
fprintf (%f dibagi %f sama dengan %f \n, a, b, c);
fprintf (%.3f dibagi %.3f sama dengan %.3f \n, a, b, c);
fprintf (%e dibagi %e sama dengan %e \n, a, b, c);
fprintf (%.3e dibagi %.3e sama dengan %.3e \n, a, b, c);
34
Simpan dan jalankan program tersebut. Apa yang muncul di layar?, Jalankan program
sebanyak 3 kali dengan masukan yang berbeda-beda. Apa fungsi penyisipan .3 pada
format tampilan bilangan?
Simpan dan jalankan program. Apa yang muncul dilayar? Jalankan program sebanyak 3
kali dengan masukan yang berbeda.
% masukan / input
amp_sinyal = input (' Masukan amplitudo sinyal = ');
frek = input (' Masukan Frekuensi sinyal = ');
35
% keluaran
fprintf ('\t %f dikali %f dikali %f sama dengan %.3d \n', frek,
frek_x , pi, frek_rad);
fprintf ('\t %f dikali %f sama dengan %.3d \n', amp_sinyal,
frekuensi, Sinyal);
Selanjutnya buat program berikut, lalu jalankan di command window dan amati
hasilnya !
36
function a = mean(v,n)
% Subfunction
% Calculate average.
a = sum(v)/n;
function m = median(v,n)
% Subfunction
% Calculate median.
w = sort(v);
if rem(n,2) == 1
m = w((n+1)/2);
else
m = (w(n/2)+w(n/2+1))/2;
end
37
Unit 4
PENCABANGAN BERSYARAT
4.1 Tujuan
4.2
Dasar teori
Program program yang dihasilkan pada unit 3 merupakan program yang tidak
mempunyai kendali logika. Pada program tersebut, pernyataan demi pernyataan
dieksekusi dari baris pertama hingga baris terakhir. Pada program yang lebih kompleks,
logika program tidak mengalir sesederhana itu. Terdapat kasus kasus yang
mengharuskan logika program mengalir dengan syarat tertentu.
Secara umum, di semua bahasa pemrograman termasuk matlab, terdapat dua
macam kendali aliran, yaitu percabangan bersyarat dan perulangan.
4.2.1
Aliran Logika
38
Ya
Syarat
t erpenuhi ?
Pernyataan X
Tidak
Pernyataan Y
Pelaksanaan eksekusi pada pernyataan X atau Y tergantung pada hasil pengujian syarat.
Jika syarat terpenuhi maka eksekusi berikutnya adalah pernyataan X, tetapi jika syarat
tidak terpenuhi maka eksekusi selanjutnya adalah pernyataan Y. Kadang kadang
pernyataan Y tidak diperlukan, yang berarti pengujian syarat dilakukan untuk
menentukan apakah pernyataan X perlu dieksekusi atau tidak.
4.2.2
beberapa
operator
relasi
39
Operator relasi
Keterangan
<
Kurang dari
<=
>
Lebih dari
>=
==
Sama dengan
~=
Nilai benar pada MATLAB dinyatakan dengan nilai 1 dan sebaliknya nilai salah
dinyatakan dengan nilai 0. Hasil operasi 0 atau 1 dapat digunakan sebagai syarat
pemilihan. Sebaliknya, hasil perbandingan dapat pula digunakan dalam operasi
matematis.
Operator logika menyediakan cara untuk mengevaluasi ekspresi logika. Operator
tersebut adalah
AND
OR
NOT
Untuk memastikan urutan operasi maka tiap syarat ditulis dengan menggunakan
tanda kurung ( ) .Hal ini terutama apabila syarat tebentuk dari beberapa syarat yang
40
dievaluasi menggunakan operator logika. Contoh syarat yang tersusun dari beberapa
syarat.
Syarat = syarat1 & ( syarat2 | syarat3 )
= (a = = b) & ((b ~ =c) | (b > d ))
4.2.3
Pernyataan If ..else.end
Satu syarat
if syarat
Dua syarat
if syarat
if syarat1
pernyataan X;
Pernyataan X;
end;
else
pernyataan X;
elseif syarat 2
pernyataan Y;
pernyataan Y;
end;
elseif syarat 3
pernyataan R;
elseif....
.......
else....
pernyataan Z;
end;
Pernyataan Z pada kasus ketiga berguna apabila tidak ada syarat pada
pernyataan lain.
41
4.2.4
Pernyataan switch.case
Sering kali pengujian syarat bukan nilai benar ( yang berarti syarat tidak
terpenuhi ) atau salah ( yang berarti syarat tidak terpenuhi ). Jika syarat berupa operasi
matematis, maka yang dievaluasi sebagai syarat adalah kesamaan hasil dengan
konstanta yang telah didefinisikan sebelumnya. Pada kasus ini, penggunaan pernyataan
if
elseend
kurang
efektif.
Untuk
itu
telah
tersedia
pernyataan
switch syarat
case konstanta 1
pernyataan 1
case konstanta 2
pernyataan 2
...
otherwise
pernyataan N
end;
4.3
Langkah praktikum
42
4.3.1
Program berikut hanya mempunyai satu pilihan, vektor x akan ditampilkan bila
masukan, yaitu variablel jawab = 1
x = round(rand(1,10)*20)-10;
jawab = input('apakah x akan ditampilkan [0=tidak,1=ya]?');
if(jawab==1)
disp(x);
end;
Program berikut untuk menguji nilai positif atau negatif dari masukan. Program
mempunyai dua pilihan.
a=input('masukan=');
if(abs(a)==a)
disp('bilangan positif');
else
43
disp('bilangan negatif');
end;
Uji untuk bilangan positif dan negatif. Bagaimana dengan bilangan 0, positif
atau negatif ?
Program berikut untuk menguji nilai tegangan dalam suatu system digital.
Program terdiri dari tiga pilihan.
4.3.2
44
m = input('m='); n =
mod(m,5);
if(n==0)%konstanta 0
disp('tak bersisa');
elseif (n==1)%konstanta 1
disp('sisa satu');
elseif (n==2)%konstanta 2
disp('sisa dua');
elseif (n==3)%konstanta 3
disp('sisa tiga');
elseif (n==4)%konstanta 4
disp('sisa empat');
else
fprintf('m bilangan pecahan,sisa %f\n',n);
end;
Bandingkan program diatas dengan program berikut. Manakah yang dirasa lebih
efektif, dari sisi pembacaan dan penulisan program.
m=input('m=');
n=mod(m,5);
switch n
case 0
disp('tak bersisa');
case 1
disp('sisa satu');
45
case 2
disp('sisa dua');
case 3
disp('sisa tiga');
case 4
disp('sisa empat');
otherwise
fprintf('m bilangan pecahan,sisa %f\n',n);
end;
Apakah konstanta case dapat berupa bilangan pecahan ? Buat program untuk
mengujinya.
46
Unit 5
KENDALI PERULANGAN
5.1
Tujuan
5.2
Dasar Teori
Perulangan atau iterasi adalah bentuk kendali aliran untuk melakukan pekerjaan
berulang kali menggunakan suatu nilai yang berfungsi sebagai pencacah atau counter.
Nilai pencacah dinaikkan atau diturunkan setiap kali satu pekerjaan dilakukan. Pada
operasi yang melibatkan vektor atau matriks, pencacah biasanya juga berfungsi sebagai
indeks, yang menunjukkan posisi elemen vektor atau matriks yang dioperasikan.
Terdapat dua macam perulangan yaitu perulangan berbatas (for) dan perulangan
bersyarat (while).
5.2.1
47
Perulangan akan dilakukan mulai dari pencacah sama dengan nilai awal. Setelah
satu operasi selesai dilakukan, nilai pencacah diubah sebesar nilai perubahan. Jika nilai
pencacah hasil pengubahan telah melebihi nilai akhir, maka perulangan dihentikan.
Nilai perubahan dapat positif (naik) aau negatif (turun). Pada perubahan positif,
akhir harus lebih besar dari awal, sedangkan pada perubahan negatif, nilai akhir harus
lebih kecil dari nilai awal. Nilai perubahan bisa tidak dinyatakan, yang berarti
perulangan adalah perulangan positif dengan kenaikan 1, sehingga pernyataan menjadi :
5.2.2
Kadangkala, syarat nilai akhir perulangan tidak bisa ditentukan dengan pasti.
Untuk itu, digunakan perulangan bersyarat. Jika nilai pencacah memenuhi syarat
perulangan, maka perulangan dilanjutkan. Jika nilai pencacah tidak memenuhi syarat
perulangan, maka perulangan dihentikan.
Perulangan bersyarat menggunakan while sebagai berikut :
Inisialisasi
48
While syarat_perulangan
Pernyataan operasi;
End;
In is ia lis a s i
T id a k
S y a ra t te rp e n u h i ?
ya
P e rn y a ta a n o p e ra s i
Pada pernyataan for nilai pencacah diubah secara otomatis. Berbeda dari hal
tersebut pada pernyataan while, nilai pengubahan pencacah harus ditangani sendiri
dalam
pernyataan
operasi.
49
5.3
Langkah Praktikum
Buatlah program program berikut, simpan sebagai m-file, kemudian jalankan. Catat
dan amati hasilnya.
5.3.1
Perulangan berbatas
for i=1:10
fprintf('%d\n',i);
end;
Apa yang terjadi jika nilai akhir lebih besar dari nilai awal, tetapi perubahan
negatif ( perulangan turun )?
50
% beban
r_beban = input ('beban (ohm) = ');
% gelombang sinusoidal
amplitude = input ('amplitude(volt) = ');
frek = input ( 'frekuansi (hz) = ');
frek_radian = 2 * pi * frek;
t = (0 : 0.01 : 1);
v = amplitude * cos(frek_radian * t);
%rangkaian penyearah setengah gelombang
for i = 1 : length (v)
if (v(i) > 0)
ir(i) = v(i) / r_beban;
else
ir(i) = 0;
end;
end;
% grafik
plot (t, [v; ir]);
legend ('tegangan', 'arus');
51
5.3.2
% buat matriks
p = input('cacah baris = ');
q = input('cacah kolom = ');
a = 10 * rand (p, q);
diatas,
bukan
menggunakan
operator!
52
i = 1
% inisialisasi
% syarat perulangan
%pertambahan positif
end;
Pada program di atas, syarat terhadap pencacah berlaku sebagaimana batas akhir
pada pernyataan for.
n=0;
% inisialisasi
jumlah = 0;
while ( jumlah <= 100) % syarat perulangan
jumlah=jumlah + sqrt(n);
n = n+2;
% pertambahan positif
end;
fprintf('total = %.3f dengan n = %d \n', jumlah, n);
53
% gelombang sinusoidal
frek = input ('frekuensi (hz) = ');
frek_radian = 2 * pi * frek;
t = (0 : 0.01 : 1);
vin = cos(frek_radian * t);
54
end;
Uji dengan masukan tegangan referensi keluaran bernilai 5 volt dan frekuensi 4
Hz. Bagaimana bentuk tegangan keluaran? Coba untuk nilai nilai masukan yang lain.
55
Unit 6
TAMPILAN GRAFIK
6.1
Tujuan
6.2
Teori
Suatu runtun data yang banyak, sulit untuk diperiksa hanya dengan mengamati
angka angka yang ditampilkan. Penampilan data dalam bentuk grafik dapat
memudahkan analisis.
6.2.1
56
String s menyatakan warna, bentuk penanda dan bentuk garis antarnilai. Berikut adalah
beberapa nilai yang dapat digunakan pada string s .
Simbol
Warna
Simbol
Penandaan
Simbol
Style garis
Biru
Titik
Garis lurus
Hijau
Lingkaran
Garis titik-titik
Merah
Tanda silang
-.
Cyan
Tanda plus
--
Garis terpotong-potong
Magenta *
Kuning
Bujursangkar
Hitam
Diamond
Putih
Segitiga ke atas
Segitiga ke bawah
<
Segitiga ke kiri
>
Segitiga ke kanan
Pentagram
Heksagram
Bintang
57
Jika anda tidak memilih warna dan anda menggunakan skema standar,
MATLAB akan memulainya dengan warna biru dan berputar berurutan ke tujuh warna
pertama dalam tabel untuk setiap penambahan garis. Standar style garis adalah garis
lurus kecuali jika anda memberikan style garis yang lain.
Fungsi
Keterangan
box off
box on
box
xlabel(string)
ylabel(string)
title(string)
grid on
grid off
grid
text(x,y,string)
58
gtext(string)
Legend(...,pos)
Memberikan
meletakannya
keterangan
pada
posisi
dan
tetentu
sesuai pos :
0 : diletakan pada posisi terbaik
1 : kanan atas (default)
2 : kiri atas
3 : kiri bawah
4 : kanan bawah
1 : kanan atas di luar grafik
6.2.3
Figure adalah jendela untuk menampilkan gambar grafik yang anda buat seperti
perintah plot dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam
sebuah file yang sewaktu-waktu dapat dipanggil kembali.
Suatu figure dapat terdiri lebih dari satu grafik. Penempatan grafik dinyatakan
dengan subplot(m, n, nomor) diikuti fungsi penggambaran grafik, dengan
59
nomor
Misal, dalam figure terdapat 6 grafik, yang tersusun sebagai 2 baris dan 3 kolom.
6.3
Langkah Praktikum
Ketikan pernyataan pernyataan dibawah ini pada command window. Pada masing
masing pernyataan akhiri dengan menekan tombol enter. Catat dan amati hasilnya.
6.3.1
Berikut adalah penampilan sinyal acak y bernilai antara 0 hingga 10. Diasumsikan
bahwa sinyal mulai dari t = 0 detik hingga t = 1 detik, dengan 20 cuplikan pengukuran.
60
amplitudo = 5;
frek_radian = 2 * pi * 10;
y = amplitudo * cos( frek_radian * t);
plot (t, y)
Kemudian ketikan perintah fungsi berikut dan amati grafik. Apa saja perubahan
perubahan yang terjadi pada grafik ?
plot (t, y)
plot (y)
6.3.2
x = linspace(0,2*pi,30);
z = cos(x)
Praktikum Dasar Pemrograman Komputer
61
y = sin(x);
plot(x,y,x,z)
box off
xlabel(Variabel bebas x)
ylabel(Variabel tak bebas y dan z)
title(Kurva sinus dan cosinus)
grid on, box on
text(2.5,0.7,Sin(x))
gtext(Cos(x))
legend(Sin(x),Cos(x))
legend off
6.3.3
t_deg = (0 : 10 : 360);
t_rad = t_deg * pi / 180;
subplot (3, 1, 1); plot (t_deg, sin (t_rad));
subplot (3, 1, 2); plot (t_deg, cos (t_rad));
subplot (3, 1, 3); plot (t_deg, cos (t_rad).* sin (t_rad));
62
63
UNIT 7
GRAPHICAL USER INTERFACE (GUI)
7.1 Tujuan
64
GUIDE Toolset :
Layout Editor : tempat untuk menambah dan menyusun objek di jendela GUI
65
Ketika kita membuat layout GUI kemudian menyimpannya, maka MATLAB akan
membuat M-File secara otomatis yang nantinya akan digunakan untuk pemrograman.
Nama M-File harus sama dengan nama figure dari GUI tersebut.
7.3.1
Perancangan GUI
Perancangan GUI
66
7.3.2
Pada tahap ini akan dilakukan penempatan dan pengaturan komponen GUI berupa
pushbutton, popupmenu, axes, dan static text. Pertama-tama bukalah layout editor
dengan mengetik guide di command window. Kemudian lakukan langkah-langkah
berikut :
kembalikan
Unit
property
menjadi
characters.
67
tersebut
seperti
gambar
berikut
68
Popupmenu
69
yang
akan
dipanggil.
70
4. Mengaktifkan GUI
Mengaktifkan GUI dengan memilih Activate Figure dari menu Tools. Bila GUI
belum disimpan, maka saat mengaktifkan GUI sekaligus dilakukan penyimpanan.
Misal simpan dengan nama guiku.
menghasilkan dua file, yaitu file *.fig (file gambar) serta file *.m (untuk
pemrograman GUI). Aktivasi GUI akan menghasilkan gambar sebagai berikut :
71
Saat penyimpanan file, MATLAB menghasilkan dua file, yaitu file *.fig (file
gambar) serta file *.m (untuk pemrograman GUI). Pemrograman dilakukan untuk
komponen pushbutton dan popupmenu.
Popupmenu callback
Popupmenu digunakan untuk memilih data yang akan digambarkan. Callback ini
membaca value property dari popupmenu. Value sendiri menunjukkan data apa yang
dipilih oleh user melalui popupmenu untuk ditampilkan.
function data_popup_Callback(hObject,eventdata,handles)
val = get(hObject,'Value');
switch val
72
case 1
handles.data = peaks(35);
case 2
handles.data = membrane;
case 3
[x,y] = meshgrid(-8:.5:8);
r = sqrt(x.^2+y.^2) + eps;
z = sin(r)./r;
handles.data = z;
end
guidata(hObject,handles)%Save the handles structure after adding
data
Pushbutton Callback
axes(handles.axes1)
surf(z);
73
z = handles.data;
axes(handles.axes1)
mesh(z)
axes(handles.axes1)
contour(z)
Setelah selesai pemrograman kita lakukan pengujian GUI dengan cara mengaktifkan
GUI. Bila data yang kita pilih membrane dan tombol yang kita tekan contour akan
dihasilkan tampilan sebagai berikut :
74
PERHATIAN !!
DILARANG KERAS MENGCOPY
DAN MENYEBARKAN MODUL INI
TANPA SEIZIN LABORATORIUM
PEMROGRAMAN KOMPUTER
JURUSAN TEKNIK ELEKTRO.
75