Вы находитесь на странице: 1из 77

Praktikum Dasar Pemrograman Komputer 0

MODUL PRAKTIKUM
PEMROGRAMAN KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS ISLAM INDONESIA
2005
Praktikum Dasar Pemrograman Komputer 1
Unit 1
PENGENALAN MATLAB
1.1 Tujuan
Diharapkan setelah praktikum ini mahasiswa sebagai praktikan dapat :
1. Mengenal MATLAB dan tools yang disediakannya
2. Mengetahui dan mampu memahami beberapa fungsi dasar MATLAB.
3. Mampu melakukan perhitungan matematis dalam bilangan riil maupun
bilangan kompleks dengan bantuan MATLAB.
1.2 Dasar Teori
MATLAB adalah kependekan dari matrix laboratory, dimana MATLAB
merupakan perangkat lunak untuk komputasi teknis dan saintifik. MATLAB merupakan
integrasi komputasi, visualisasi, dan pemrograman yang mudah digunakan. Sehingga
MATLAB dapat bertindak sebagai :
. Kalkulator
Ketika bertindak sebagai kalkulator, MATLAB memberikan hasil seketika
setelah perintah operasi diberikan.
. Bahasa pemrograman
Perintah perintah operasi dengan urutan dan logika tertentu, serta digunakan
berulang berulang dapat dibuat sebagai suatu program yang akan dijelaskan pada
unit selanjutnya.
Praktikum Dasar Pemrograman Komputer 2
Adapun macam macam operasi yang dapat dilakukan oleh MATLAB adalah :
. Skalar : berupa bilangan real atau kompleks.
. Matriks dan vektor : dengan elemen bilangan real atau kompleks.
. Teks : pengolahan kata.
1.2.1 Desktop Tools MATLAB
Ketika MATLAB dijalankan pertama kali, MATLAB desktop tampil, berisi
tools (graphical user interfaces) untuk mengatur file, variables, dan aplikasi M
ATLAB.
Pertama kali MATLAB dijalankan akan tampil desktop dengan ilustrasi sebagai beri
kut.
Praktikum Dasar Pemrograman Komputer 3
Jendela-jendela yang ada di MATLAB adalah sebagai berikut :
. Command window
Digunakan untuk menjalankan fungsi-fungsi MATLAB.
. Command history
Digunakan untuk menyimpan baris-baris perintah yang telah diketikkan di
command window. Kita dapat melihat fungsi-fungsi yang digunakan sebelumnya,
mengkopi dan menjalankannya kembali dari command history.
. Launch pad
Menyediakan akses yang mudah ke tools, demo dan dokumentasi.
. Help browser
Untuk mencari dan menampilkan dokumentasi semua produk MathWorks.
. Current diectory browser
Operasi MATLAB file menggunakan current directory dan search path sebagai
referensi. File yang akan dijalankan harus berada di current directory atau ada
pada
search path.
. Workspace browser
Berisi kumpulan variabel yang terbentuk sepanjang sesi MATLAB dan di
simpan di memory.
. Array editor
Menampilkan isi array dalam format tabel dan dapat digunakan untuk mengedit
isi array.
. Editor/Debugger
Digunakan untuk membuat, mengedit, dan men-debug M-files, yakni program
yang dibuat untuk menjalankan fungsi-fungsi MATLAB.
Praktikum Dasar Pemrograman Komputer 4
. Figure
Figure adalah jendela untuk menampilkan gambar grafik seperti perintah plot
dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam sebuah fi
le
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.
Operator komputasi mempunyai prioritas dengan urutan tertentu. Untuk
menentukan prioritas, digunakan tanda kurung ( ) . Adapun beberapa operator
komputasi dalam MATLAB adalah :
Simbol Operasi
+ Penambahan, a + b
- Pengurangan, a - b
* Perkalian, a x b
/ atau \ Pembagian, a : b
^ Pemangkatan, ab
Praktikum Dasar Pemrograman Komputer 5
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 koordin
at
polar dan diagram fasor yang berupa magnitude dan sudut fase.
Beberapa fungsi dasar yang berhubungan dengan bilangan kompleks adalah:
Perintah Keterangan
real Bagian riil dalam koordinat kartesian.
imag Bagian imaginer dalam koordinat kartesian.
abs Nilai absolute atau magnitude dalam koordinat polar.
angle Sudut fase dalam koordinat polar ( dalam satuan radian )
1.2.4 Fungsi matematis
Sebagai kalkulator, MATLAB mempunyai berbagai fungsi umum yang penting
untuk matematika, teknik, dan ilmu pengetahuan. Sebagai tambahan atas fungsi-fun
gsi
tersebut, MATLAB juga menyediakan ratusan fungsi yang berguna untuk
menyelesaikan permasalahan tertentu.
Beberapa fungsi matematis yang tersedia antara lain fungsi trigonometri, fungsi
eksponensial dan fungsi pembulatan.
Praktikum Dasar Pemrograman Komputer 6
Fungsi matematika keterangan
abs(x) Nilai mutlak atau magnitudo bilangan kompleks
acos(x) Invers cosinus
acosh(x) Invers cosinus hiperbolik
asin(x) Invers sinus
atan(x) Invers tangen
ceil(x) Pembulatan ke arah plus tak hingga
cos(x) Cosinus
exp(x) Eksponensial : ex
fix(x) Pembulatan ke arah nol
floor(x) Pembulatan ke arah minus tak hingga
imag(x) Bagian imajiner bilangan kompleks
log(x) Logaritma natural
log10(x) Logaritma dengan basis 10
real(x) Bagian riil suatu bilangan kompleks
rem(x,y) Sisa pembagian x/y
round(x) Pembulatan ke bilangan bulat terdekat
sin(x) Sinus
sqrt(x) Akar kuadrat
tan(x) Tangen
1.2.5 Variabel
Data dan variabel yang dibuat dalam command window tersimpan dalam
workspace MATLAB. Ada beberapa aturan dalam penamaan variabel :
Praktikum Dasar Pemrograman Komputer 7
- nama variabel harus terdiri atas satu kata tanpa spasi.
- nama variabel dibedakan antara huruf besar dan huruf kecil (case sensitive).
- panjang maksimum nama variabel adalah 31 karakter, karakter setelahnya akan
diabaikan.
- nama variabel harus diawali dengan huruf, diikuti dengan sembarang bilangan,
huruf atau garis bawah (under line).
- karakter tanda baca tidak diperbolehkan karena banyak diantaranya mempunyai ar
ti
tersendiri dalam MATLAB.
MATLAB mempunyai beberapa variabel spesial yakni :
Variabel spesial Nilai
ans Nama variabel standar untuk menampilkan hasil
pi Perbandingan antara keliling lingkaran dengan diameternya
inf Tak berhingga, misalnya 1/0
NaN Bukan sebuah bilangan, misalnya 0/0
i dan j i=j=.-1
nargin Banyaknya argument input yang digunakan pada suatu fungsi
nargout Banyaknya argument output yang digunakan pada suatu fungsi
realmin Bilangan real positif terkecil yang dapat digunakan
realmax Bilangan real positif terbesar yang dapat digunakan
Praktikum Dasar Pemrograman Komputer 8
1.3 Langkah Percobaan
Ikutilah langkah langkah berikut untuk memulai MATLAB :
. Jalankan MATLAB dengan mengklik double pada ikon MATLAB
. Amati jendela desktop MATLAB, menu-menu yang tersedia serta jendelajendela
yang tergabung disana (desktop tools)
. Cobalah untuk menutup tools yang ada dengan mengklik tanda silang pada title
bar. Untuk menampilkan kembali bisa dipanggil dari fungsi view di menu bar
. Cobalah untuk mengeluarkan tools dari desktop dengan cara mengklik tanda
panah pada title bar
. Untuk memperoleh tampilan standar pilih View,destkop layout, default.
. Ubahlah karakteristik huruf command window dengan cara memilih menu File,
Preferences, lalu klik tanda plus di sebelah kiri tulisan command window, akan
tampil Fonts & color untuk memilih jenis dan warna huruf.
. Silahkan mencoba menu-menu yang lain
Ketikkan pernyataan/perintah dibawah ini pada command window. Pada masing
masing pernyataan/perintah, akhiri dengan menekan tombol enter, kemudian amati
hasilnya untuk dianalisis.
1. Operator komputasi.
A = 10
B = 5
A+B
Praktikum Dasar Pemrograman Komputer 9
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 10
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!
Praktikum Dasar Pemrograman Komputer 11
Unit 2
ARRAY DAN MATRIKS
2.1. Tujuan
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan:
1. Mengetahui beberapa array dan matriks dasar
2. Mengetahui lebih banyak tentang kegunaan matriks dan array
3. Mampu melakukan manipulasi matriks dengan cara yang lebih kompleks
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 subscrip
t
arrays, dan penggunaan khusus untuk iterasi. Sebuah matriks adalah sebuah array
dua
dimensi dengan elemen dapat berupa riil maupun komplek.
2.2.1. Pembentukan array
Untuk membentuk array pada Matlab, dimulai dengan kurung siku buka,
masukan nilai dipisahkan dengan koma atau spasi, dan diakhiri dengan kurung tutu
p
siku.
Praktikum Dasar Pemrograman Komputer 12
Misalnya perintah : A = [2, 3 ; 4 5] , merupakan perintah untuk membuat array du
a
dimensi ..
.
..
.
.
4 5
2 3
A .
MATLAB menyediakan fasilitas untuk membuat array sederhana dengan cara-cara
berikut :
Pembentukan array keterangan
x=[2 2*pi sqrt(2) 2-3j] Membentuk vektor baris x dengan elemen yang
disebutkan
x=first:last Membentuk vektor baris x dimulai dengan first,
dinaikan satu, berakhir sampai atau sebelum last.
x=first:increment:last Membentuk vektor baris x dimulai dengan first,
dinaikan sebesar increment, berakhir sampai atau
sebelum last.
x=linspace(first,last,n) Membentuk vektor baris x dimulai dengan first,
berakhir pada last, dengan n elemen.
x=logspace(first,last,n) Membuat vektor baris x yang memiliki spasi
logaritmik, dimulai dengan 10first, berakhir di 10last,
mempunyai n elemen
2.2.2. Pengalamatan Elemen (Array) dan manipulasi array
Ketika sebuah array didefinisikan, MATLAB menyediakan cara yang powerful
untuk menyisipkan, mengekstrak, dan mengatur kembali bagian-bagiannya dengan
mengidentifikasi indeks bagian tersebut. Pengetahuan mengenai hal tersebut
Praktikum Dasar Pemrograman Komputer 13
merupakan kunci untuk memanfaatkan MATLAB secara efisien. Teknik-teknik
pengalamatan array disajikan dalam tabel berikut.
Pengalamatan Array
A(r,c) Pengalamatan elemen array di A ditentukan dengan vektor indeks baris di r
dan vektor indeks kolom di c
A(r,:) Pengalamatan subarray di A ditentukan dengan vektor indeks baris r dan
semua kolom
A(:,c) Pengalamatan subarray di A ditentukan dengan semua baris dan vektor
indeks kolom c
A(:) Pengalamatan semua elemen A sebagai vektor kolom diambil kolom per
kolom
A(i) Pengalamatan subarray di A ditentukan oleh vektor indeks tunggal dari
elemen tersebut di I, seolah A adalah vektor kolom A(:)
A(x) Pengalamatan subarray di A ditentukan oleh array logika x. x harus berisi
nilai 0 dan 1 dan harus berukuran sama dengan A.
Untuk memanipulasi array dapat digunakan fungsi-fungsi sebagai berikut :
Fungsi Manipulasi Array
flipud(A) menggulung suatu matriks dengan arah dari atas ke bawah
fliplr(A) menggulung suatu matriks dengan arah dari kiri ke kanan
rot90(A) memutar suatu matriks 90 derajat berlawanan arah jarum jam
reshape(A,m,n) menghasilkan matriks ukuran mxn dengan elemen diambil
Praktikum Dasar Pemrograman Komputer 14
searah kolom dari A. A harus berisi mxn elemen
diag(A) mengeluarkan diagonal matriks A sebagai vektor kolom
diag(v) membentuk matriks diagonal dengan vektor v pada
diagonalnya
tril(A) mengeluarkan bagian segitiga bawah matriks A
triu(A) mengeluarkan bagian segitiga atas matriks A
2.2.3. Matematika Array
Operasi matematis antara skalar dan array, meliputi penjumlahan, pengurangan,
perkalian dan pembagian, beroperasi pada semua elemen array. Sedangkan operasi
matematis antara array dengan array tidak sesederhana itu. Akan tetapi untuk arr
ay
yang berukuran sama, operasi penjumlahan, pengurangan, perkalian, dan pembagian
dengan MATLAB, berlaku elemen per elemen. Operasi matematis pada array
dirangkum dalam tabel berikut.
Matematika Array Elemen per Elemen
Data ilustratif : a = [a1 a2 an] b = [b1 b2 bn], c = suatu skalar
Penjumlahan skalar a+c = [a1+c a2+c an+c]
Perkalian skalar a*c = [a1*c a2*c an*c]
Penjumlahan array a+b = [a1+b1 a2+b2 an+bn]
Perkalian array a .*b = [a1*b1 a2*b2 an*bn]
Pembagian kanan array a . /b = [a1/b1 a2/b2 an/bn]
Praktikum Dasar Pemrograman Komputer 15
Pembagian kiri array a . \b = [a1\b1 a2\b2 an\bn]
Pemangkatan array a . ^c = [a1^c a2^c an^c]
c . ^a = [c^a1 c^a2 c^an]
a . ^b = [a1^b1 a2^b2 an^bn]
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 sebua
h
operasi matriks skalar, bukan operasi elemen per elemen.
2.2.4. Matriks
Awalnya MATLAB digunakan untuk menyederhanakan perhitungan matriks
dan aljabar linier yang muncul pada berbagai aplikasi. Permasalahan yang paling
umum
pada aljabar linier adalah mencari solusi persamaan linier, yang dapat diselesai
kan
dengan menggunakan persamaan matriks.
Fungsi-fungsi matriks yang disediakan oleh MATLAB ditunjukkan dalam tabel beriku
t.
Fungsi Matriks
balance(A) Penyekalaan untuk memperbaiki akurasi nilai eigen
cdf2rdf(A) bentuk diagonal kompleks ke bentuk diagonal blok real
chol(A) faktorisasi Cholesky
cond(A) matriks bilangan kondisi
Praktikum Dasar Pemrograman Komputer 16
condest(A) estimasi matriks bilangan kondisi l-norm
d=eig(A)
nilai eigen dan vektor eigen
[V,D]=eig(A)
det(A) determinan
expm(A) matriks eksponensial
expm1(A) implementasi M-file dari expm
expm2(A) Matriks eksponensial menggunakan deret Taylor
expm3(A) Matriks eksponensial menggunakan nilai eigen dan eigen
funm(A, fun ) menghitung fungsi matriks umum
hess(A) bentuk hessenberg
inv(A) invers matriks
logm(A) logaritma matriks
lscov(A,b,V) kuadrat terkecil dengan kovarians yang diketahui
lu(A) faktor dari eliminasi gaussian
nnls(A,b) kuadrat terkecil nonnegatif
norm(A) norm matriks dan vektor
norm(A,1) 1-norm
norm(A,2) 2-norm (Euclidean)
norm(A,inf) takberhingga (infinity)
norm(A,p) P-norm(hanya untuk vektor)
norm(A, fro ) F-norm
null(A) spasi kosong
orth(A) Ortogonalisasi
Praktikum Dasar Pemrograman Komputer 17
pinv(A) Pseudoinvers
poly(A) Variabeln karakteristik
polyvalm(A) evaluasi polinomial matriks
qr(A) dekomposisi ortogonal-triangular
qrdelete(Q,R,j) menghapus kolom dari faktorisasi qr
qrinsert(Q,R,j,x) menyelipkan kolom pada faktorisasi qr
qz(A,B) nilai eigen yang digeneralisasi
rank(A) banyaknya baris atau kolom yang independen linier
rcond(A) estimator kondisi resiprokal
rref(A) mengurangi baris bentuk echelon
rsf2csf bentuk schur real ke bentuk schur kompleks
schur(A) dekomposisi Schur
sqrtm(A) matriks akar kuadrat
svd(A) dekomposisi nilai singular
trace(A) jumlah elemen diagonal
MATLAB menawarkan beberapa matriks spesial, beberapa diantaranya merupakan
matriks yang umum digunakan.
Matriks Spesial
[] matriks kosong
Company matriks gabungan
Eye matirks identitas
Praktikum Dasar Pemrograman Komputer 18
gallery beberapa matriks pengujian yang kecil
hadamard matriks Hadamard
hankel matriks Hankel
hilb matriks Hilbert
invhilb invers matriks Hilbert
magic magic square
ones matriks yang semua elemennya 1
pascal matriks segitiga pascal
rand matriks random terdistribusi normal dengan elemen antara 0 dan 1
randn matriks random terdistribusi normal dengan elemen-elemennya
memiliki mean nol dan varians satu
rosser matriks pengujian nilai eigen simetrik
toeplitz matriks toeplitz
vander matriks vandermonde
wilkinson matriks pengujuan nilai eigen Wilkinson
zeros Matriks yang semua elemennya nol
2.2.5. Ukuran Array
Fungsi-fungsi yang digunakan untuk mengetahui ukuran array diringkas dalam tabel
berikut.
Praktikum Dasar Pemrograman Komputer 19
Ukuran Array
Whos menampilkan variabel yang ada di workspace dan ukurannya
s=size(A) menghasilkan vektor dua elemen s, dengan elemen pertama adalah
banyaknya baris di A dan elemen kedua adalah banyaknya kolom
di A
[r,c]=size(A) menghasilkan dua skalar r dan c yang berturut-turut berisi
banyaknya baris dan kolom di A
r=size(A,1) menghasilkan banyaknya baris array A dalam variabel r
c=size(A,2) menghasilkan banyaknya kolom array A dalam variabel c
n=length(A) menghasilkan max(size(A)) pada variabel n
2.3. Langkah Praktikum
Ketikkan pernyataan-pernyataan di bawah ini. Pada masing-masing pernyataan, akhi
ri
dengan menekan tombol enter. Catat dan amati hasilnya.
Jalankan Matlab sehingga muncul MATLAB Command Window!
2.3.1. Pembentukan array
Cobalah perintah-perintah dibawah ini pada command window!!! Lalu amati hasilnya
!
X=(0:0.1:1)*pi
X=linspace(0,pi,11)
Praktikum Dasar Pemrograman Komputer 20
M=logspace(0,2,11)
x=[2 2*pi sqrt(2) 2-3j]
2.3.2. Pengalamatan Elemen (Array)
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)
Praktikum Dasar Pemrograman Komputer 21
2.3.3. Matematika array
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 22
Diketahui persamaan linier sbagai berikut :
. . .
.
.
. . .
.
.
.
. . .
.
.
. . .
.
.
.
. . .
.
.
. . .
.
.
351
804
366
7 8 0
4 5 6
1 2 3
3
2
1
x
x
x
A . x = b
untuk mencari solusi dari persamaan tersebut dapat digunakan fungsi-fungsi matri
ks
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)
Praktikum Dasar Pemrograman Komputer 23
Unit 3
PEMBUATAN PROGRAM
3.1 Tujuan
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. mengetahui cara penanganan masukan dan keluaran pada program
2. mampu membuat program sederhana dengan MATLAB
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 disaji
kan
dalam tabel berikut.
Praktikum Dasar Pemrograman Komputer 24
Script Fungsi
Tidak menerima argumen input maupun
menghasilkan argumen output
Menerima argumen input dan
menghasilkan argumen output
Beroperasi dengan data di workspace Variabel internal bersifat lokal untuk
fungsi itu sendiri
Berguna untuk mengotomatisasi barisan
perintah yang perlu dijalankan beberapa
kali
Berguna untuk memperluas bahasa
matlab pada aplikasi anda
Pembuatan program pada MATLAB dilakukan di editor tersendiri yaitu MATLAB
Editor / Debugger. Di editor inilah suatu program di tulis kemudian di simpan se
bagai
file-m.
3.2.1 File-m
Program MATLAB dikenal dengan sebutan file-m, karena file ini berekstension m. F
ilem
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.
File-m tidak mempunyai struktur tertentu, berbeda dengan bahasa pemrograman C,
Pascal atau Basic. File-m tidak harus diawali atau diakhiri dengan kata kunci te
rtentu.
Praktikum Dasar Pemrograman Komputer 25
File ini cukup disusun dari pernyataan, fungsi atau perintah seperti halnya pada
MATLAB Command Window, untuk membangun logika tertentu.
3.2.2 Struktur dan Tipe Data
Tipe data yang digunakan pada pemrograman MATLAB defaultnya adalah double.
Tetapi tipe data dapat berubah menyesuaikan dengan nilai yang diberikan kepadany
a.
Beberapa tipe data, yang juga merupakan fungsi pengubah tipe data, antara lain :
. single bilangan pecahan presisi tunggal
. double bilangan pecahan presisi ganda
. int8, int16, int32 bilangan bulat 8, 16 atau 32 bit bertanda
. uint8, uint16,uint32 bilangan bulat 8, 16 atau 32 bit tak bertanda
. char karakter atau string
Yang dimaksud tak bertanda adalah tipe data yang tidak menerima bilangan negatif
.
Stuktur data yang digunakan oleh MATLAB adalah:
. Multidimensional arrays
. Cell arrays
. Characters and text
. Structure
Pada MATLAB, multidimensional arrays adalah array dengan tiga atau lebih subscri
pt.
Dapat dibentuk dengan memanggil zeros, ones, rand, atau randn dengan argument le
bih
dari dua.
Praktikum Dasar Pemrograman Komputer 26
Cell array merupakan multidimensional arrays yang elemen-elemennya dikopi dari
array yang lain. Cell array kosong dapat dibentuk dengan fungsi cell. Tetapi bia
sanya
cell array dibentuk dengan melingkupi kumpulan suatu data dengan kurung kurawal
{ } . Kurung kurawal juga digunakan untuk mengakses isi dari berbagai sel.
Karakter string adalah teks yang diawali dan diakhiri dengan apostrof ( ). Setiap
karakter dalam suatu string adalah satu elemen array, dengan setiap elemennya se
besar
2 byte. String merupakan array numerik dengan atribut khusus, oleh karena itu st
ring
dapat dimanipulasi dengan menggunakan semua metode manipulasi array yang tersedi
a
di MATLAB.
3.2.3 Struktur Fungsi
Deklarasi file-m sebagai fungsi adalah function yang terletak pada awal program.
function parameter_keluaran = nama_fungsi (parameter_masukan)
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,...)
Praktikum Dasar Pemrograman Komputer 27
Pada fungsi dengan beberapa parameter masukan, apabila cacah parameter saat
pemanggilan tidak sama dengan cacah parameter saat definisi, maka biasanya fungs
i
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 Masukan dan Keluaran (Input dan Output)
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
Variabel = input ( keterangan maukan );
Menampilkan hasil, nilai variabel atau keterangan pada saat program dijalankan d
apat
menggunakan salah satu dari fungsi dibawah ini.
. disp menampilkan nilai variabel atau string secara sederhana
. fprintf menampilkan nilai variabel menggunakan string format
Beberapa simbol yang digunakan pada fungsi fprintf antara lain :
Praktikum Dasar Pemrograman Komputer 28
Format tampilan bilangan Karakter khusus
Simbol Arti Simbol Arti
%d
%f
%o
%x, %X
%e, %E
Bilangan bulat
Bilangan pecahan
Bilangan oktal
Bilangan hexsadesimal
Bilangan sebagai ax10b
/n
/t
Pindah ke baris baru
Geser sebanyak 1 tab
Pada tampilan bilangan pecahan %f, %e dan %E, presisi dapat diatur dengan
menyisipkan format presisi bilangan. Format presisi adalah .p, dengan p berupa n
ilai
yang menyatakan banyaknya angka dibelakang koma.
3.2.5 Komentar Dan Tanda Baca
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 t
anda
koma atau titik koma. Tanda koma memberitahu MATLAB untuk menampilkan hasil
sedangkan tanda titik koma mencegah penampilan hasil.
Praktikum Dasar Pemrograman Komputer 29
Suatu perintah MATLAB yang akan ditulis terpisah tidak dalam baris yang sama har
us
ditandai dengan tiga titik berurutan. Posisi tanda tiga titik tersebut harus ber
ada 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 da
n
amati hasilnya.
Untuk memunculkan MATLAB Editor/ Debugger, ketikan edit di dalam Command
Window lalu tekan enter. Maka akan keluar window baru sebagai MATLAB Editor/
Debugger.
Praktikum Dasar Pemrograman Komputer 30
3.3.1. Struktur dan Tipe Data
Buat program berikut di MATLAB Editor/Debugger. Jangan akhiri masing masing
baris dengan tanda titik-koma ( ; ) agar nilai variabel muncul di layar.
Y = 23/47
y_double = double (23/ 47)
y_single = single (23/ 47)
z_int = int8 (-93)
z_int8 = int8 (-130)
z_uint8 = uint8 (-93)
Simpan sebagai file-m dengan nama tipedata.m
Di MATLAB Command Window , jalankan program tersebut dengan memanggil nama
file tipedata kemudian tekan enter.
Apakah variabel y, y_double dan y_single sama? Adakah yang berbeda?.
Berapakah nilai maksimum dan minimum dari tipe data int8 dan uint8 ? modifikasi
program untuk mengetahui nilai dari int16, int32, uint16 dan uint32.
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.
Praktikum Dasar Pemrograman Komputer 31
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))}
Caracters and text
Ketikan perintah berikut di Command Window, amati dan analisa hasilnya.
Teks_ku = Hello saya lagi praktikum matlab
Fungsi char menerima beberapa baris, menambahkan spasi pada setiap baris untuk
membuatnya sama panjang, dan membentuk karakter array.
Pada Editor/ Debugger ketikan :
Praktikum Dasar Pemrograman Komputer 32
teks = char( A , rolling , stone , gathers , momentum. )
karakter = { A ; rolling ; stone ; gathers ; momentum. }
karakter_ke_string = cellstr(teks)
string_ke_karakter = char(karakter)
Setelah disimpan , panggil di Command Window, amati dan analisa hasilnya
Structure adalah multidimensional array dengan elemen-elemennya diakses dengan
field designators.
Pada Editor/ Debugger ketikan :
S.nama = Ed Plum ;
S.score = 83;
S.gradae = B+
Setelah disimpan , panggil di Command Window, amati dan analisa hasilnya
3.3.2. Struktur fungsi
Buat fungsi berikut. Simpan sebagai file xpolar.m
function x = xpolar (r, p);
p_rad = p* pi / 180;
x = r * cos (p_rad); % x adalah parameter keluaran
Praktikum Dasar Pemrograman Komputer 33
Kemudian pada Command Window, panggil fungsi tersebut dengan mengetikkan
perintah berikut :
xpolar (5, 60)
SumbuX = xpolar (5,30)
Fungsi berikut mempunyai parameter keluaran lebih dari satu
function [x, y] = xypolar (r, p);
p_rad = p * pi / 180
x = r * cos (p_rad); % x adalah parameter keluaran
y = r * sin (p_rad); % y adalah parameter keluaran
Panggil fungsi dengan cara cara berikut. Bagaimana keluarannya?
[a, b] = xypolar (8, 30)
xypolar (8,30)
c = xypolar (8, 30)
Fungsi dipanggil dengan cacah parameter masukan kurang dari cacah parameter
masukan saat definisi, apa yang terjadi?
Praktikum Dasar Pemrograman Komputer 34
3.3.3. Masukan dan Keluaran (Input dan Output)
Program berikut untuk menguji masukan dan keluaran. Setiap baris diakhiri dengan
tanda titik koma ( ; ).
bilangan = input( Masukan Bilangan = );
disp ( Bilangan Tersebut = );
disp (bilangan)
matriks = input ( Masukan matriks = );
disp ( Matriks tersebut = );
disp (matriks)
Simpan dan jalankan program. Apa yang muncul dilayar? Uji untuk masukan berupa
bilangan bulat dan bilangan pecahan.
Program berikut untuk menguji format keluaran 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);
Praktikum Dasar Pemrograman Komputer 35
Simpan dan jalankan program tersebut. Apa yang muncul di layar?, Jalankan progra
m
sebanyak 3 kali dengan masukan yang berbeda-beda. Apa fungsi penyisipan .3 pada
format tampilan bilangan?
Program berikut akan menguji format keluaran bilangan bulat.
w = input ( Bilangan bulat = );
fprintf ( desimal: %d \t oktal: %o \t hexadesimal: %x \n , w, w,
w);
Simpan dan jalankan program. Apa yang muncul dilayar? Jalankan program sebanyak
3
kali dengan masukan yang berbeda.
3.3.4. Program sederhana
Buat program program berikut dan amati hasilnya.
% program membuat sinyal sinus
% masukan / input
amp_sinyal = input (' Masukan amplitudo sinyal = ');
frek = input (' Masukan Frekuensi sinyal = ');
t_max = input (' Masukan maksimal waktu pengukuran (detik) = ');
t_int = input (' Masukan interval waktu pengukuran (detik) = ');
Praktikum Dasar Pemrograman Komputer 36
% pembuatan vektor waktu
t = (0 : t_int : t_max);
% Pembuatan Sinyal
frek_x = 2 ;
frek_rad = frek * frek_x * pi;
frekuensi = cos(frek_rad * t);
Sinyal = amp_sinyal * frekuensi ;
% 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);
plot (t, Sinyal);
Selanjutnya buat program berikut, lalu jalankan di command window dan amati
hasilnya !
function [avg,med] = newstats(u) % Primary function
% NEWSTATS Find mean and median with internal functions.
n = length(u);
avg = mean(u,n);
med = median(u,n);
Praktikum Dasar Pemrograman Komputer 37
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
kemudian panggil di Command Windows dengan perintah berikut :
[a,m]= newstats([1 2 3 4 5])
Praktikum Dasar Pemrograman Komputer 38
Unit 4
PENCABANGAN BERSYARAT
4.1 Tujuan
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mengetahui kegunaan pencabangan bersyarat sebagai kendali aliran program.
2. Mampu membuat program dengan pencabangan bersyarat.
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 kom
pleks,
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
Praktikum Dasar Pemrograman Komputer 39
Aliran logika pada kendali pencabangan bersyarat digambarkan dengan
flowchart berikut :
Syarat
terpenuhi ?
Pernyataan X Pernyataan Y
Ya
Tidak
Pelaksanaan eksekusi pada pernyataan X atau Y tergantung pada hasil pengujian sy
arat.
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 Operator Relasi dan Logika
Untuk menyatakan syarat pemilihan biasanya digunakan perbandingan antara
dua buah nilai. Perbandingan dilakukan dengan menggunakan operator relasi. Berik
ut
ini beberapa operator relasi :
Praktikum Dasar Pemrograman Komputer 40
Operator relasi Keterangan
< Kurang dari
<= Kurang dari atau sama dengan
> Lebih dari
>= Lebih dari atau sama dengan
== Sama dengan
~= Tidak 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
Operator logika Keterangan
& AND
| OR
~ NOT
Untuk memastikan urutan operasi maka tiap syarat ditulis dengan menggunakan
tanda kurung ( ) .Hal ini terutama apabila syarat tebentuk dari beberapa syarat ya
ng
Praktikum Dasar Pemrograman Komputer 41
dievaluasi menggunakan operator logika. Contoh syarat yang tersusun dari beberap
a
syarat.
Syarat = syarat1 & ( syarat2 | syarat3 )
= (a = = b) & ((b ~ =c) | (b > d ))
4.2.3 Pernyataan If ..else .end
Apabila flowchart dinyatakan dengan pernyataan ini, maka :
Satu syarat Dua syarat Tiga syarat atau lebih
if syarat
Pernyataan X;
end;
if syarat
pernyataan X;
else
pernyataan Y;
end;
if syarat1
pernyataan X;
elseif syarat 2
pernyataan Y;
elseif syarat 3
pernyataan R;
elseif....
.......
else....
pernyataan Z;
end;
Pernyataan Z pada kasus ketiga berguna apabila tidak ada syarat pada
pernyataan lain.
Praktikum Dasar Pemrograman Komputer 42
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 beru
pa operasi
matematis, maka yang dievaluasi sebagai syarat adalah kesamaan hasil dengan
konstanta yang telah didefinisikan sebelumnya. Pada kasus ini, penggunaan pernya
taan
if else end kurang efektif. Untuk itu telah tersedia pernyataan
switch case otherwise sebagai berikut :
switch syarat
case konstanta 1
pernyataan 1
case konstanta 2
pernyataan 2
...
otherwise
pernyataan N
end;
4.3 Langkah praktikum
Praktikum Dasar Pemrograman Komputer 43
Buat program program berikut, simpan sebagai m-file,kemudian jalankan.
Catat dan amati hasilnya.
4.3.1 Pernyataan if else end
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;
Pada beberapa kasus diperlukan masukan berupa jawaban ya atau tidak.
MATLAB mampu menerima karakter y atau t, tetapi harus dimasukkan sebagai y atau
t ( dalam tanda petik tunggal ). Hal ini kurang efektif, sehingga lebih mudah Jika
dipakai 0 untuk tidak dan 1 untuk ya.
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
Praktikum Dasar Pemrograman Komputer 44
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.
bb0 = 0; ba0 = 0.8; %batas bawah dan atas untuk logika 0
bb1 = 4.2;ba1= 5; %batas bawah dan atas untuk logika 1
s=input('tegangan = ');
if (s > bb1) & (s <= ba1)
disp('logika 1');
elseif (s>=bb0) & (s<ba0)
disp('logika 0');
else
disp('tak terdefinisi');
fprintf('tegangan harus antara %.1f - %.1f',bb0,ba0);
fprintf('atau %.1f - %.1f\n',bb1,ba1);
end;
Uji untuk beberapa bilangan.
Apakah if dengan else if dapat diterapkan tanpa menggunakan else? Buat program u
ntuk
mengujinya!
4.3.2 Pernyataan switch case otherwise
Praktikum Dasar Pemrograman Komputer 45
Program berikut menampilkan sisa bagi.
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');
Praktikum Dasar Pemrograman Komputer 46
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.
Praktikum Dasar Pemrograman Komputer 47
Unit 5
KENDALI PERULANGAN
5.1 Tujuan
Setelah mengikuti unit praktikum ini maka praktikan diharapkan dapat :
1. Mengetahui kegunaan perulangan sebagai kendali aliran program.
2. Mampu membuat program dengan perulangan.
5.2 Dasar Teori
Perulangan atau iterasi adalah bentuk kendali aliran untuk melakukan pekerjaan
berulang kali menggunakan suatu nilai yang berfungsi sebagai pencacah atau count
er.
Nilai pencacah dinaikkan atau diturunkan setiap kali satu pekerjaan dilakukan. P
ada
operasi yang melibatkan vektor atau matriks, pencacah biasanya juga berfungsi se
bagai
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 Perulangan Berbatas ( for )
Perlangan berbatas menggunakan pernyataan for sebagai berikut :
Praktikum Dasar Pemrograman Komputer 48
for pencacah = awal : perubahan : akhir
Pernyataan operasi
end;
Perulangan akan dilakukan mulai dari pencacah sama dengan nilai awal. Setelah
satu operasi selesai dilakukan, nilai pencacah diubah sebesar nilai perubahan. J
ika 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 menj
adi :
for pencacah = awal : akhir
pernyataan operasi;
end;
5.2.2 Perulangan Bersyarat ( while )
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 syar
at
perulangan, maka perulangan dihentikan.
Perulangan bersyarat menggunakan while sebagai berikut :
Inisialisasi
Praktikum Dasar Pemrograman Komputer 49
While syarat_perulangan
Pernyataan operasi;
End;
Inisialisasi biasanya merupakan penetapan nilai awal dari pencacah. Nilai
tersebut akan diuji pada syarat perulangan. Syarat perulangan sama sebagaimana p
ada
pencabangan bersyarat ( unit 4 ). Padanya berlaku pula operator relasi dan logik
a.
Aliran logika prulangan sebagai berikut :
I n i s ia l is a s i
S y a r a t t e r p e n u h i ?
P e r n y a t a a n o p e r a s i
T i d a k
y a
Pada pernyataan for nilai pencacah diubah secara otomatis. Berbeda dari hal
tersebut pada pernyataan while, nilai pengubahan pencacah harus ditangani sendir
i
dalam pernyataan operasi.
Praktikum Dasar Pemrograman Komputer 50
5.3 Langkah Praktikum
Buatlah program program berikut, simpan sebagai m-file, kemudian jalankan. Catat
dan amati hasilnya.
5.3.1 Perulangan berbatas
Program berikut menunjukkan perulangan naik, tanpa menyebutkan nilai
perubahan
for i=1:10
fprintf('%d\n',i);
end;
Program berikut menunjukkan perulangan turun dengan penurunan sebesar 2.
for i = 20 : -2 : 0
fprintf ('%d \n', i);
end;
Apa yang terjadi jika nilai akhir lebih besar dari nilai awal, tetapi perubahan
negatif ( perulangan turun )?
Program berikut menampilkan perilaku rangkaian penyearah setengah gelombang
dengan beban R. Rangkaian akan meneruskan masukan jika masukan lebih besar dari
0
Volt. Masukan rangkaian berupa tegangan sinusoidal, akan dilihat besar arus pada
beban.
Praktikum Dasar Pemrograman Komputer 51
% 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');
Uji program dengan masukan beban , amplitude, frekuensi adalah 10 Ohm, 12
Volt dan 4 Hz. Cobalah untuk variasi nilai masukan yang lain.
Praktikum Dasar Pemrograman Komputer 52
5.3.2 Perulangan pada matriks
Pada perulangan di atas, perulangan diterapkan pada vektor. Perulangan dapat
diterapkan pada matriks. Operasi perulangan biasanya dilakukan perbaris. Pada ti
ap
baris, dilakukan operasi perulangan per kolom.
Program berikut melakukan operasi perulangan pada matriks. Pada program
menampilkan elemen elemen matriks beserta posisinya dalam matriks.
% buat matriks
p = input('cacah baris = ');
q = input('cacah kolom = ');
a = 10 * rand (p, q);
%tampilan elemen matriks
for i = 1 : p
for j = 1 : q
fprintf ('[%d,%d] = %.3f \n', i, j, a(i, j));
end;
end;
Buat program untuk melakukan operasi transpose matrik. Lakukan seperti
program diatas, bukan menggunakan operator!
Praktikum Dasar Pemrograman Komputer 53
5.3.3 Perulangan bersyarat
Program berikut menunjukkan perulangan bersyarat untuk menampilkan
bilangan 1 hingga 10.
i = 1 % inisialisasi
while ( i <= 10) % syarat perulangan
fprintf ('%d \n', i);
i = i+1; %pertambahan positif
end;
Pada program di atas, syarat terhadap pencacah berlaku sebagaimana batas akhir
pada pernyataan for.
Program berikut menjumlahkan akar kuadrat dari bilangan genap, hingga
diperoleh jumlah total tertentu. Padanya, syarat perulangan tidak berkenaan deng
an nilai
pencacah, tapi berkenaan dengan hasil operasi .
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);
Praktikum Dasar Pemrograman Komputer 54
Rangkaian komparator zero crossing membandingkan tegangan masukan Vin
terhadap tegangan 0 volt. Pada rangkaian terdapat tegangan referensi keluaran Vr
.
Apabila Vin lebih kecil dari pada 0 volt, maka keluaran rangkaian adalah Vr. Apab
ila
Vin lebih besar dari pada 0 volt, maka keluaran rangkaian +Vr. Jika Vin = 0V, ma
ka
keluaran adalah 0V.
Program berikut hendak meniru watak rangkaian komparator tersebut, dengan masuka
n
berupa tegangan sinusoidal.
% tegangsn referensi keluaran
vr = input ('referensi keluaran (volt) = ');
% gelombang sinusoidal
frek = input ('frekuensi (hz) = ');
frek_radian = 2 * pi * frek;
t = (0 : 0.01 : 1);
vin = cos(frek_radian * t);
% watak komparator zero-crossing
n = 1;
while (n <= length (vin))
if (vin(n) < 0)
vout (n) = -1 * vr;
elseif (vin(n) < 0)
vout (n) = vr;
else
vout (n) = 0;
end;
n = n + 1;
Praktikum Dasar Pemrograman Komputer 55
end;
plot ( t, [vin; vout]);
legend ( vin , vout );
Uji dengan masukan tegangan referensi keluaran bernilai 5 volt dan frekuensi 4
Hz. Bagaimana bentuk tegangan keluaran? Coba untuk nilai nilai masukan yang lain
.
Praktikum Dasar Pemrograman Komputer 56
Unit 6
TAMPILAN GRAFIK
6.1 Tujuan
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. mampu menampilkan data dalam bentuk grafik,
2. mengetahui berbagai macam cara menampilkan grafik
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.
Pada MATLAB grafik dibedakan menjadi dua macam , yaitu :
. Grafik kontinyu, baik linier ataupun logaritmis,
. Grafik diskrit.
6.2.1 Grafik Kontinyu Linier
Untuk menggambar grafik dua dimensi dapat menggunakan perintah plot.
Terdapat tiga bentuk penulisan fungsi ini, yaitu :
Praktikum Dasar Pemrograman Komputer 57
. plot(x,y), menampilkan vektor y (sumbu vertikal) terhAdap vektor x (sumbu
horizontal).
. plot(y) menampilkan vektor y terhAdap indeksnya.
. plot(x,y,s), menampilkan vektor y terhadap vektor x, dengan format menurut
string s.
String s menyatakan warna, bentuk penanda dan bentuk garis antarnilai. Berikut a
dalah
beberapa nilai yang dapat digunakan pada string s .
Simbol Warna Simbol Penandaan Simbol Style garis
b Biru . Titik - Garis lurus
g Hijau o Lingkaran : Garis titik-titik
r Merah x Tanda silang -. Garis terpotong dan titik
c Cyan + Tanda plus -- Garis terpotong-potong
m Magenta * Bintang
y Kuning s Bujursangkar
k Hitam d Diamond
w Putih ^ Segitiga ke atas
v Segitiga ke bawah
< Segitiga ke kiri
> Segitiga ke kanan
p Pentagram
h Heksagram
Praktikum Dasar Pemrograman Komputer 58
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 ga
ris
lurus kecuali jika anda memberikan style garis yang lain.
6.2.2 Menggambar Grid, Kotak Keterangan, Label dan Legenda
Beberapa fungsi untuk memberikan keterangan pada grafik, yaitu :
Fungsi Keterangan
box off Menghilangkan kotak pada grafik
box on Menampilkan kotak pada grafik
box Men-toggle kotak pada grafik
xlabel(string) Menambahkan teks di samping sumbu
x pada grafik yang aktif
ylabel(string) Menambahkan teks di samping sumbu
y pada grafik yang aktif
title(string) Menambahkan teks pada bagian atas
grafik yang aktif
grid on Menambahkan grid pada grafik
grid off Menghilangkan grid pada grafik
grid Men-toggle kotak pada grafik
text(x,y,string) Menambahkan teks pada lokasi (x,y) di
grafik yang aktif
Praktikum Dasar Pemrograman Komputer 59
gtext(string) Menempatkan teks dengan mouse
legend(string,string, ) Menambahkan keterangan pada grafik
dengan string-string sebagai label
legend off Menghilangkan keterangan dari grafik
yang aktif
Legend(...,pos) Memberikan keterangan dan
meletakannya pada posisi 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 dan Subplot
Figure adalah jendela untuk menampilkan gambar grafik yang anda buat seperti
perintah plot dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke d
alam
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
. m cacah grafik dalam satu baris
Praktikum Dasar Pemrograman Komputer 60
. n cacah grafik dalam satu kolom
. nomor nomor grafik, mulai dari baris pertama kolom pertama.
Misal, dalam figure terdapat 6 grafik, yang tersusun sebagai 2 baris dan 3 kolom
.
sublot (2, 3, 1) sublot (2, 3, 2) sublot (2, 3, 3)
sublot (2, 3, 4) sublot (2, 3, 5) sublot (2, 3, 6)
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 Grafik Kontinyu Linier
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 pengu
kuran.
t = linspace (0, 1, 20);
y = 10 * rand(1, 20);
plot (t, y)
Berikut akan ditampilkan sinyal tegangan sinusoidal y dengan amplitudo 5 volt
dan frekuensi 10 Hz. Frekuensi radian dari sinyal adalah . = 2.10 = 20. rad/ det
ik.
Praktikum Dasar Pemrograman Komputer 61
Sinyal akan diukur selama 1 detik. Frekuensi pengukuran minimal adalah 2 x 10 Hz
=
20 Hz. Berarti periode pengukuran minimal adalah 1/ 20 = 0.05 detik.
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, ro- )
plot (t, y, b^- )
plot (t, y, b: )
Lakukan fungsi berikut dan amati sumbu x (horizontal).
plot (t, y)
plot (y)
6.3.2 Menggambar Grid, Kotak Keterangan, Label dan Legenda
Ketikan program berikut, amati perubahan yang terjadi pada grafik.
x = linspace(0,2*pi,30);
z = cos(x)
Praktikum Dasar Pemrograman Komputer 62
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 Figure dan Subplot
Berikut menampilkan tiga grafik yang berbeda dalam satu figure.
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));
Pemberian keterangan diberikan per subplot.
subplot (3, 1, 1); title ( sin );
Praktikum Dasar Pemrograman Komputer 63
subplot (3, 1, 2); title ( cos );
subplot (3, 1, 3); title ( cos * sin );
Praktikum Dasar Pemrograman Komputer 64
UNIT 7
GRAPHICAL USER INTERFACE (GUI)
7.1 Tujuan
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. mengenal pemrograman grafis di dalam MATLAB
2. dapat membuat program sederhana dengan GUI
7.2 Dasar Teori
MATLAB menyediakan tool untuk pembuatan GUI (Graphical User Interface).
Fasilitas ini dinamakan GUIDE (GUI Development Environment). Untuk pembuatan
GUI, ketikkan perintah guide di command window. Kemudian keluar tampilan berikut
:
Praktikum Dasar Pemrograman Komputer 65
GUIDE Toolset :
. Layout Editor : tempat untuk menambah dan menyusun objek di jendela GUI
. Alignment Tools : untuk mengatur posisi masing-masing objek
. Property Inspector : memeriksa dan mengeset nilai-nilai (sifat) objek
. Object Browser : memantau hirarki objek-objek yang telah ada do layout
. Menu Editor : membuat menu dan submenu dari GUI
Dalam membuat GUI, proses yang dilakukan adalah :
. perancangan tampilan GUI : akan lebih baik jika tampilan GUI digambar
terlebih dahulu dalam kertas
. penempatan dan pengaturan objek seperti pushbutton, axis dll
Praktikum Dasar Pemrograman Komputer 66
. pemrograman GUI : membuat program bagi objek-objek GUI di M-File
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 Langkah Praktikum
7.3.1 Perancangan GUI
Untuk memudahkan pemahaman, buatlah GUI sederhana berikut. Pembuatan GUI
ini di bagi dalam 3 tahap yakni :
1. Perancangan GUI
2. Penempatan dan pengaturan objek
3. Pemrograman GUI
Perancangan GUI
Praktikum Dasar Pemrograman Komputer 67
GUI terdiri atas :
. 1 axes untuk menampilkan grafik 3 dimensi dari fungsi mesh, contour, dan
surface
. 3 pushbutton untuk memilih fungsi yang akan dieksekusi
. 1 popupmenu yang digunakan untuk memilih data yang akan diplot di axes,
yakni peaks , membrane dan sinc .
. 1 static text untuk menampilkan tulisan Select Data
7.3.2 Penempatan dan Pengaturan Objek
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 :
1. Pengaturan ukuran GUI
Klik pada bagian kanan bawah layout area kemudian atur ukurannya sesuai
kehendak kita. Jika ingin membuat ukuran GUI pada nilai pasti, lakukan pengeseta
n
Position property pada property inspector. Ubah satuan pada Unit property menjad
i
inches untuk mengatur ukuran GUI, kemudian kita masukan nilai lebar dan tinggi
tampilan GUI pada Position property. Setelah ukuran yang kita inginkan terbentuk
kemudian kembalikan Unit property menjadi characters.
Praktikum Dasar Pemrograman Komputer 68
2. Menambahkan komponen (pushbutton, popupmenu, axes, dan static text)
Klik komponen yang diperlukan dari komponen palette, kemudian drag dan
taruh pada layout area. Komponen yang ditambahkan adalah 3 buah pushbutton,
sebuah pupupmenu, sebuah static text, dan sebuah axes. Susun komponenkomponen
tersebut seperti gambar berikut :
Praktikum Dasar Pemrograman Komputer 69
3. Setting property dari tiap-tiap komponen
Untuk mengeset property dari tiap komponen, pilih Property Inspector dari
menu View.
Popupmenu
Praktikum Dasar Pemrograman Komputer 70
Pushbutton dan static text
Tuliskan teks (surf, mesh, membrane, select data) pada string property dari
komponen yang bersesuaian. Surf pada string property pushbutton1, mesh pada
string property pushbutton2, membrane pada string property pushbutton3, dan
select data pada string property static text
Tag dan callback property
Ketika kita menaruh komponen ke layout, maka callback property berada
pada setting automatic. Tag property berguna untuk mendiskripsikan nama
fungsi yang akan dipanggil.
Praktikum Dasar Pemrograman Komputer 71
Gambar di atas menunjukkan tag popupmenu diberi nama data_popup,
sehingga diperoleh data_popup_callback pada callback property. Lakukan
hal yang sama untuk pushbutton, sehingga diperoleh tag surf_pushbutton,
mesh_pushbutton, dan contour_pushbutton.
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. Saat penyimpanan file, MATLAB
menghasilkan dua file, yaitu file *.fig (file gambar) serta file *.m (untuk
pemrograman GUI). Aktivasi GUI akan menghasilkan gambar sebagai berikut :
Praktikum Dasar Pemrograman Komputer 72
7.3.3 Pemrograman GUI
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
Praktikum Dasar Pemrograman Komputer 73
case 1 % User selected peaks
handles.data = peaks(35);
case 2 % User selected membrane
handles.data = membrane;
case 3 % User selected sinc
[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
Surf push button callback :
Function
surf_pushbutton_Callback(hObject,eventdata,handles)
z = handles.data; % Load data from handles structure
axes(handles.axes1)
surf(z);
. Mesh push button callback:
function
mesh_pushbutton_Callback(hObject,eventdata,handles)
Praktikum Dasar Pemrograman Komputer 74
z = handles.data; % Load data from handles structure
axes(handles.axes1)
mesh(z)
. Contour push button callback:
function
contour_pushbutton_Callback(hObject,eventdata,handles)
z = handles.data; % Load data from handles structure
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 :
Praktikum Dasar Pemrograman Komputer 75
PERHATIAN !!
DILARANG KERAS MENGCOPY
DAN MENYEBARKAN MODUL INI
TANPA SEIZIN LABORATORIUM
PEMROGRAMAN KOMPUTER
JURUSAN TEKNIK ELEKTRO.

Вам также может понравиться