Modul 1 Matlab
Modul 1 Matlab
Pemrograman Matlab
Matlab adalah singkatan dari Matrix Laboratory. Disebut demikian karena Matlab
didesain dengan kemampuan spesial dalam bekerja dengan variabel-variabel
bertipe matriks/array. Matlab adalah salah satu bahasa pemrograman high level,
sehingga ia lebih mudah digunakan dibandingkan dengan bahasa low level.
Matlab memiliki pustaka banyak fungsi standar dari berbagai bidang keilmuan
yang siap untuk digunakan. Dengan demikian, seorang programmer yang
bekerja dengan Matlab akan lebih terfokus pada alur/konsep pemecahan
masalah yang dihadapi. Ia tidak harus bersusah payah memikirkan logika
pemrograman komputer yang belum tentu dia kuasai. Di samping itu, Matlab
menawarkan kemampuan visualisasi yang mumpuni, baik visualisasi 2D maupun
3D. Kemampuan ini sangat penting untuk menyajikan hasil pengolahan data
dalam wujud yang lebih mudah dipahami. Hal inilah yang menyebabkan Matlab
banyak digunakan pada berbagai bidang di luar informatika, seperti ekonomi,
geofisika, statistika, geodesi dan geomatika, rekayasa, biologi, dan lain
sebagainya.
Namun demikian Matlab bukannya tanpa kelemahan. Matlab adalah bahasa
pemrograman interpreter. Hal ini mengakibatkan eksekusi program yang ditulis
dengan Matlab akan berjalan lebih lambat. Selain itu file sumber (source code)
Matlab bertipe teks ASCII sehingga bisa dibuka oleh editor teks apapun. Jadi,
membuat program dengan Matlab berarti harus siap-siap open source.
1.
Command
Window
Editor
Info 1.
Selain kedua tampilan tersebut, ada jendela lain yang dapat ditampilkan, seperti
Command History, Workspace, Variable Editor, dan lain-lain yang dapat diakses lewat
menu Desktop pada Menu Bar.
Command Window
Command Window adalah arena di mana sang programmer dapat
menuliskan perintah langsung terhadap komputer, yang segera dieksekusi
ketika programmer menekan Enter. Misalnya programmer mengetikkan
perintah berikut:
a=7
maka Matlab akan membuat variabel a dengan nilai 7. Bila programmer
menulis perintah berikutnya, misalnya:
b=8
c=a+b
maka hasil eksekusi dapat dilihat pada Command Window:
M-File Editor
Cara kedua bekerja dengan Matlab adalah dengan menggunakan M-File
Editor (selanjutnya cukup disebut Editor). Cara ini memungkinkan
keseluruhan program ditulis untuk dijalankan sebagai satu kesatuan.
Misalnya programmer mengetik kode berikut pada Editor:
a=7
b=8
c=a+b
Jalankan program dengan mengklik ikon Save and Run (
), Matlab
akan meminta programmer untuk menyimpan file skrip program.
direktori
baru
Menuliskan Komentar
Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 5
Spasial
Baris komentar boleh ditulis sebaris dengan baris perintah, dengan diawali
tanda %. Entah dituliskan pada Command Window atau Editor, setiap
baris komentar tidak akan dieksekusi.
Perintah Khusus
Ada beberapa instruksi khusus di Matlab yang berguna untuk melakukan
tugas-tugas tertentu. Beberapa instruksi khusus tersebut mungkin akan
sering digunakan, yaitu sebagai berikut:
clc
clear nama_variabel1
nama_variabel2 ...
clear all
whos
help
atau
ekpresi
??? 10+5b
Error: Unexpected MATLAB expression.
2.
Angka/Skalar
Pemberian nilai variabel dilakukan dengan tanda =. Misalnya
programmer mengetikkan kode program berikut pada M-File Editor:
%----------------------------------%Latihan 02
%----------------------------------disp(Hallo Bu! (:)
%menampilkan teks. Teks diapit tanda
disp(Selamat Siang)
%ini juga, sama
a=13
b=12
c=a+b
d=c-9
e=d-5.45
Vektor
Variabel vektor didefinisikan dengan cara yang sama seperti variabel
angka/skalar. Namun karena variabel vektor memuat lebih dari 1 nilai
angka, maka cara pengisian nilainya agak berbeda. Untuk memisahkan
kolom pada vektor baris, cukup gunakan spasi. Sedangkan untuk
memisahkan baris pada vektor kolom menggunakan tanda (;). Perhatikan
potongan kode berikut:
%----------------------------------%Latihan 03
%----------------------------------clc
disp(Definisi variabel vektor)
A=[1 2 3]
%A adalah sebuah vektor baris
B=[3;2;1]
%B adalah sebuah vektor kolom
Matriks
Variabel matriks didefinisikan dengan cara yang sama seperti variabel
vektor. Hanya saja variabel matriks umumnya memiliki jumlah baris dan
kolom lebih dari satu. Aturan pengisiannya sama dengan variabel vektor.
Namun perlu diperhatikan bahwa pengisian nilai variabel matriks harus
dituntaskan baris per baris. Perhatikan contoh kode berikut:
String
Variabel string adalah kumpulan karakter yang membentuk satu kata atau
baris kalimat. Variabel ini biasanya dibuat untuk menampilkan teks. Untuk
membuat variabel string, maka pendefinisiannya menggunakan tanda
(apostrof, kutip tunggal/single quotation) pada awal dan akhir string.
Misalnya:
E=Hello
World
yang
akan menghasilkan:
F=Bonjour a tous!
Info 6.
Bagaimana cara menulis tanda apostrof di Matlab, padahal karakter itu dipakai untuk
membatasi string? Gunakan tanda kutip tunggal 2 kali (). Misalnya string Aa Gym
dapat ditulis: disp(Aa Gym)
Variabel Khusus
Ada beberapa variabel khusus yang telah didefinisikan di Matlab, yaitu
sebagai berikut:
Variabel
i
j
pi
Inf
NaN
ans
Kegunaan
Akar -1
Sama dengan i
Konstanta lingkaran pi=3.1415.......
Tidak terhingga
Not a Number. Variabel yang bukan angka. Biasanya
muncul pada operasi yang seharusnya menghasilkan nilai
angka, tetapi karena hal-hal tertentu malah menghasilkan
nilai yang bukan angka.
Singkatan dari answer, yaitu variabel default yang
diberikan matlab kepada hasil suatu operasi yang tidak
ditentukan nama variabelnya oleh programmer.
Kegunaan
Penjumlahan 2 atau lebih variabel. Misalnya a=c+d
Pengurangan 2 atau lebih variabel. Misalnya a=c-d
Perkalian 2 atau lebih variabel. Misalnya a=c*d
Pembagian 2 atau lebih variabel. Bilangan pembagi
diletakkan di sebelah kanan. Misalnya a=c/d berarti c
dibagi d.
Left Division.Bilangan pembagi diletakkan di sebelah kiri.
Misalnya a=c\d berarti d dibagi c.
Perpangkatan. Misalnya a=b^c berarti b pangkat c.
%----------------------------------%Latihan 04
%Operator
%----------------------------------clc
clear all
disp(Menguji Operator)
a=3
%a=3
b=2
%b=2
c=a+b
%c adalah penjumlahan 3 dan 2
d=a-b
%d adalah pengurangan 3 oleh 2
e=a*b
%e adalah perkalian 3 dan 2
f=a/b
%f adalah pembagian 3 oleh 2
g=a^b
%g adalah 3 pangkat 2
A=[1 2 3;4 5 6]
%A adalah sebuah matriks 2x3
B=[3 4;2 5;1 6]
%B adalah sebuah matriks 3x2
C=A*B
%C adalah matriks 2x2
D=B*A
%D adalah matriks 3x3
E=A*A
%error, menyalahi aturan perkalian matriks
error, menyalahi
aturan perkalian
matriks
3.
Fungsi Matematika
Contoh
Pemakaian
sin(pi)
cos(pi/2)
tan(pi/4)
sec(pi)
Penjelasan
Nilai
Nilai
Nilai
Nilai
Contoh
Pemakaian
csc(pi/2)
asin(0.5)
acos
acos(0.5)
atan
atan(1)
asec
asec(2)
acsc
acsc(2)
Penjelasan
Nilai kosekan pi/2 radian (90)
Nilai sudut arcsin 0.5, yaitu pi/6 radian
(30)
Nilai sudut arcos 0.5 , yaitu pi/3 radian
(60)
Nilai sudut arctan 1, yaitu pi/4 radian
(45)
Nilai sudut arcsec 2, yaitu pi/3 radian
(60)
Nilai sudut arccsc 2, yaitu pi/6 radian
(30)
Contoh
Pemakaian
sind(180)
cosd(90)
tand(45)
secd(180)
cscd(90)
asind(0.5)
acosd(0.5)
atand(1)
asecd(2)
acscd(2)
Penjelasan
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
sinus 180
kosinus 90
tangen 45
sekan 180
kosekan 90
sudut arcsin 0.5, yaitu 30
sudut arcos 0.5 , yaitu 60
sudut arctan 1, yaitu 45
sudut arcsec 2, yaitu 60
sudut arccsc 2, yaitu 30
%----------------------------------%Latihan 06
%Fungsi Trigonometri
%----------------------------------clc
clear all
a=sin(pi/6)
b=sind(30)
c=cos(pi/3)
d=cosd(60)
e=tan(pi/4)
f=tand(45)
Jurusan
Teknik Geomatika
FTSP-ITS
g=asin(0.5)
%satuan g |dalam
radian| Modul Komputasi 14
h=asind(0.5)
%satuan h dalam derajat
Spasial
i=acos(0.5)
j=acosd(0.5)
k=atan(1)
l=atand(1)
%satuan
%satuan
%satuan
%satuan
i
j
k
l
dalam
dalam
dalam
dalam
radian
derajat
radian
derajat
0.5
b =
0.5
c =
0.5
d =
0.5
e =
f =
g =
0.523598775598299
h =
30
i =
1.0471975511966
j =
60
k =
l =
0.785398163397448
45
>>
Info 8.
Fungsi-fungsi trigonometrik pada Matlab dapat bekerja dengan masukan data bertipe
vektor atau matriks, dengan hasilnya juga akan memiliki tipe dan jumlah elemen yang
sama. Sebagai contoh, programmer dapat menuliskan perintah a=sind([0 30 90 120])
yang akan menghasilkan a=[0 0.5 1 0.5]. Kemampuan ini juga berlaku untuk fungsi
hiperbolik dan eksponensial yang akan dijelaskan selanjutnya.
Contoh
Pemakaian
sinh(pi)
cosh(pi/2)
tanh(pi/4)
Penjelasan
Nilai sinus hiperbolik pi radian
Nilai cosinus hiperbolik pi/2 radian
Nilai tangen hiperbolik pi/4 radian
Contoh
Pemakaian
sech(pi)
csch(pi/2)
asinh(0.5)
acosh(0.5)
atanh(1)
asech(2)
acsch(2)
sech
csch
asinh
acosh
atanh
asech
acsch
Penjelasan
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
f=asinh(1)
g=acosh(1)
h=atanh(1)
i=asech(1)
j=acsch(1)
%invers
%invers
%invers
%invers
%invers
sinus hiperbolik
cosinus hiperbolik
tangen hiperbolik
secant hiperbolik
cosecant hiperbolik
a =
0.54785347388804
b =
1.60028685770239
c =
0.655794202632672
d =
0.0862667383340544
e =
0.0865895375300469
f =
0.881373587019543
g =
h =
Jurusan
Inf Teknik Geomatika | FTSP-ITS | Modul Komputasi 16
Spasial
i =
j =
>>
0
0.881373587019543
Fungsi Eksponensial
Fungsi eksponensial berkaitan erat dengan perpangkatan suatu bilangan.
Adapun beberapa fungsi eksponensial di Matlab adalah:
Fungsi
Contoh
Pemakaian
log
log(10)
log10
log2
log10(10)
log2(2)
exp
exp(5)
sqrt
sqrt(3)
Penjelasan
Nilai logaritma natural dari 10, yaitu
2.3026
Nilai logaritma basis 10 dari 10, yaitu 1
Nilai logaritma basis 2 dari 2, yaitu 1
Nilai eksponensial 5, yaitu e pangkat 5,
di mana e adalah bilangan Euler
(e=2.78....)
Nilai akar kuadrat suatu bilangan, dalam
hal ini 3
3.52636052461616
2
c =
e =
>>
33.1154519586923
Pembulatan Bilangan
Pembulatan bilangan berguna untuk mengubah bilangan desimal menjadi
bilangan bulat. Pembulatan bisa dilakukan ke atas atau ke bawah,
tergantung keperluan. Ada 4 fungsi pembulatan yang sering dipakai di
Matlab, yaitu:
Fungsi
Contoh
Pemakaian
round
round(2.35)
floor
floor(-3.35)
ceil
ceil(-3.35)
fix
fix(4.98)
Penjelasan
Pembulatan
yaitu 2
Pembulatan
hasilnya -4
Pembulatan
hasilnya -3
Pembulatan
%pembulatan
%pembulatan
%pembulatan
%pembulatan
%pembulatan
%pembulatan
%pembulatan
%pembulatan
2.78 -> 3
2.34 -> 2
ke tak hingga 2.78 -> 2
ke tak hingga -2.11 -> -3
ke + tak hingga 3.11 -> 4
ke + tak hingga -2.78 -> -2
ke arah nol -2.98 -> -2
ke arah nol 3.11 -> 3
3
2
2
-3
4
Jurusan
-2 Teknik Geomatika | FTSP-ITS | Modul Komputasi 18
g =
Spasial
h =
>>
-2
3
4.
Manipulasi Variabel
>> num2str(pi)
ans =
3.1416
>> num2str(pi,'%.1f')
ans =
3.1
>> num2str(pi,'%.3f')
ans =
3.142
>> num2str(pi,'%.7f')
ans =
3.1415927
>>
10
Data dengan batas awal, batas akhir, dan interval data yang ditentukan:
>> A=[0:2:10]
A =
0
2
>>
10
Data dengan batas awal, batas akhir, dan jumlah data ditentukan:
>> A=linspace(1,7,6)
A = 1 2.2 3.4 4.6
>>
5.8
Matriks-Matriks Khusus
Ada beberapa matriks-matriks khusus yang dapat dibuat dengan mudah
dengan Matlab, yaitu:
Matriks dengan semua elemen bernilai nol, dibuat dengan perintah
yang ditulis mengikuti pola berikut:
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
Matriks berisi bilangan acak antara 0 dan 1 dibuat dengan cara yang
sama seperti membuat matriks nol dan satu, tetapi perintah yang
digunakan adalah rand, seperti contoh berikut:
>> A=rand(3,5)
A =
0.1419
0.7922
0.4218
0.9595
0.9157
0.6557
>>
0.0357
0.8491
0.9340
0.6787
0.7577
0.7431
0.3922
0.6555
0.1712
0
0
1
0
0
0
0
1
3
6
4
7
5
8
1
4
2
5
3
6
Matriks C dan D adalah hasil penggabungan matriks dalam arah kirikanan. Sedangkan matriks E dan F adalah hasil penggabungan matriks
dalam arah atas-bawah. Pada dasarnya proses ini sama dengan cara
pengisian elemen suatu matriks (lihat bagian 2). Tentu saja proses ini
akan berhasil bila jumlah baris dan kolom matriks-matriksnya
bersesuaian.
B=flipud(A)
pencerminan matriks
A dalam
arah Komputasi
atas-bawah 23
Jurusan
Teknik% Geomatika
| FTSP-ITS
| Modul
C=fliplr(A)
% pencerminan matriks A dalam arah kiri-kanan
Spasial
B =
C =
>>
1
5
9
2
6
10
3
7
11
4
8
12
9
5
1
10
6
2
11
7
3
12
8
4
4
8
12
3
7
11
2
6
10
1
5
9
String Concatenation
Selain dapat diterapkan pada variabel matriks atau vektor, teknik
concatenation ini dapat diterapkan pada data string. Kemampuan ini
sangat penting untuk menuliskan kalimat yang berasal dari kombinasi
kata tertentu. Cara melakukannya sama persis dengan penggabungan
matriks, di mana pada kasus ini setiap string dapat dianggap sebagai
matriks yang berisi kumpulan karakter. Perhatikan contoh berikut:
>> angka=num2str(pi,'%.6f')
angka =
3.141593
>> awal='jadi nilai pi adalah '
awal =
jadi nilai pi adalah
>> gabungan=[awal angka]
gabungan =
jadi nilai pi adalah 3.141593
>> disp(gabungan)
jadi nilai pi adalah 3.141593
>>
Vektor kolom dan baris dari suatu matriks diperoleh dengan cara:
>> b=A(:,3)
b =
4
7
10
13
>>
>> c=A(2,:)
c =
5
6
>>
7
%hasilnya adalah vektor baris
Tanda ( : ) pada isian indeks baris atau kolom berarti seluruhnya. Jadi
bila dituliskan b=A(:,3) secara harfiah berarti elemen b berasal dari
matriks A pada semua baris ( : ) pada kolom ke-3 (3).
Matriks dari suatu matriks diperoleh dengan menuliskan batas awal dan
batas akhir pada isian indeks baris dan kolom:
>> A
A =
2
3
4
5
6
7
8
9
10
11
12
13
>> D=A(2:4,2:3)
D =
6
7
9
10
12
13
>> E=A(1:3,:)
E =
2
3
4
5
6
7
8
9
10
>>
4
7
10
13
4
100
10
13
Nilai elemen matriks A baris ke-2 kolom ke-3 telah berganti menjadi
100.
2
3
5
6
8
9
11
12
>> A(:,2)=44
A =
2
44
5
44
8
44
11
44
>>
4
100
10
13
4
100
10
13
Pada contoh tersebut, elemen baris ke-3 sampai ke-4 dan kolom ke-2
sampai ke-3 diubah nilainya menjadi 77.
Array Operation
Array operation adalah operasi matematika pada variabel bertipe vektor
atau matriks yang dilakukan elemen-per-elemen. Operator yang
digunakan sama dengan operator matematika, hanya saja sebelum tanda
operator diletakkan tanda titik ( . ). Berikut adalah beberapa contoh array
operation:
Perkalian:
>> B=[1 2 3;4 5 6]
B =
1
2
3
4
5
6
>> C=B.*B
%setiap elemen B dikalikan dengan dirinya sendiri
C =
1
4
9
16
25
36
>> D=[2 2 2;1 1 1]
D =
2
2
2
1
1
1
>> E=C.*D
%setiap elemen C dikalikan dengan elemen D yang
bersesuaian
E =
2
8
18
16
25
36
>>
Operasi tersebut tidak bisa dilakukan bila kita memakai operator perkalian
biasa karena tanpa tanda ( . ) perkalian akan dianggap sebagai perkalian
matriks.
Pembagian:
>> B
B =
1
2
3
4
5
6
>> C=B./B
%setiap elemen
C =
1
1
1
1
1
1
>> D=[3 4 5;3 2 1]
D =
3
4
5
3
2
1
>> E=C./D
%setiap elemen
bersesuaian
E =
0.3333
0.25
0.3333
0.5
>>
Perpangkatan:
>> B
B =
1
2
4
5
>> G=B.^2
G =
1
4
16
25
>> H=B.^3
H =
1
8
64
125
>>
3
6
%setiap elemen B dipangkatkan 2
9
36
%setiap elemen B dipangkatkan 3
27
216
Seperti perkalian dan pembagian, operasi ini bila tidak ditandai dengan
tanda ( . ) maka akan dianggap sebagai perkalian matriks yang tentu saja
tidak bisa dilakukan bila syarat baris dan kolomnya tidak terpenuhi.
Menyeleksi Data
Kadang-kadang kita perlu melakukan seleksi data untuk keperluan
tertentu. Proses seleksi data ini dapat dilakukan dengan bantuan operator
perbandingan dan perkalian elemen-per-elemen. Berikut adalah contoh
seleksi data dengan operator perbandingan:
>> A=[1 2 3 6 3 7 8;9 2 5 1 5 8 7;9 3 7 4 2 5 9;3 4 6 9 8 1 2]
A =
1
2
3
6
3
7
8
9
2
5
1
5
8
7
9
3
7
4
2
5
9
3
4
6
9
8
1
Jurusan Teknik Geomatika | FTSP-ITS | 2Modul Komputasi 28
Spasial
>> A==1
ans =
1
0
0
0
>> A>5
ans =
0
1
1
0
>>
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
%mencari semua elemen A yang
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
lebih dari 5
1
1
1
0
0
0
7
6
6
0
0
9
0
0
0
8
7
8
0
0
8
7
9
0
Info 9.
Operator perbandingan yang terdapat pada Matlab antara lain:
== : sama dengan
>
: lebih besar dari
<
: kurang dari
5.
Perulangan Terbatas
Perulangan terbatas adalah perintah yang diulangi beberapa kali dalam
jumlah tertentu. Perulangan terbatas pada Matlab dilakukan dengan
perintah for dengan sintaks umum:
for indeks_perulangan=nilai_awal:nilai_akhir
baris perintah 1
baris perintah 2
...
dst
end
atau:
for indeks_perulangan=nilai_awal:interval:nilai_akhir
perintah
1
Jurusanbaris
Teknik
Geomatika
| FTSP-ITS | Modul Komputasi 30
baris perintah 2
Spasial
...
dst
end
Baris perintah yang diletakkan di antara for dan end adalah baris perintah
yang diulangi. Perbedaan antara kedua contoh tersebut tersebut adalah
pada contoh pertama, nilai indeks perulangan bergerak dari nilai awal
sampai ke nilai akhir dengan interval 1 angka. Sedangkan pada contoh
kedua, interval perulangan dapat ditentukan secara spesifik di antara
batas awal dan batas akhir. Perhatikan contoh kode sederhana berikut:
%--------------------------%Latihan 11
%--------------------------clear all
clc
disp('Iterasi terbatas dengan interval default')
for i=1:10
disp(['hello world. This is the ' num2str(i) 'th order'])
end
disp(' ')
disp(' ')
disp('Iterasi terbatas dengan interval ditentukan')
for i=1:2:10
disp(['hello world. This is the ' num2str(i) 'th order'])
end
Yang menarik, nilai indeks perulangan tidak harus bilangan bulat. Kita bisa
mengisikan bilangan pecahan pada nilai awal, interval, dan nilai akhir
kalau memang diperlukan.
while kondisi
perintah 1
perintah 2
...
dst
end
akan menghasilkan:
i =
n =
0
hello world
perulangan ke 1
hello world
perulangan ke 2
hello world
perulangan ke 3
hello world
perulangan ke 4
hello world
perulangan ke 5
hello world
perulangan ke 6
hello world
perulangan ke 7
hello world
perulangan ke 8
hello world
perulangan ke 9
hello world
Jurusan
Teknik
perulangan
ke 10Geomatika | FTSP-ITS | Modul
hello world
perulangan ke 11
jadi, kita sudah mengulang sebanyak 11 kali
>>
Komputasi 32
Spasial
Info 11.
Perulangan dengan while dapat saja tidak bisa berakhir. Hal ini dapat disebabkan oleh
syarat perulangan yang selalu terpenuhi. Perhatikan contoh potongan kode berikut:
...
while i<5
%selama i kurang dari 5
disp('hello world') %maka perintah ini akan terus dikerjakan
i=i-rand;
%setiap iterasi, nilai i berkurang secara acak
n=n+1;
disp(['perulangan ke ' num2str(n)])
end
disp(['jadi, kita sudah mengulang sebanyak ' num2str(n) ' kali'])
Percabangan If
Secara mudah, program komputer selalu dijalankan baris per baris.
Namun kadangkala suatu program komputer dapat berbelok bila
memang terdapat lebih dari 1 alternatif solusi masalah yang hendak
diselesaikan. Tidak mungkin program akan memilih semua solusi yang ada
untuk dikerjakan karena akan memakan waktu. Komputer akan memilih
salah satu solusi dengan mengabaikan yang lain. Pada Matlab, kondisi
percabangan ditandai dengan blok perintah if dengan sintaks umum:
if syarat1
perintah 1
elseif syarat2
perintah 2
...
else
perintah ke-i
end
if nilai>=80 %syarat 1
grade='A'
elseif nilai>=70 && nilai<80
grade='B'
elseif nilai>=60 && nilai<70
grade='C'
elseif nilai>=50 && nilai<60
grade='D'
else
Jurusan
Teknik Geomatika
grade='E' %perintah bila
end
%syarat 2
%syarat 3
%syarat 4
|semua
FTSP-ITS
| Modul Komputasi 33
syarat tadi tidak terpenuhi
Spasial
Percabangan Switch...Case
Selain menggunakan perintah if, percabangan juga dapat menggunakan
perintah switch...case. Percabangan ini biasanya dipakai bila syarat
percabangan diasosiasikan dengan nilai satu variabel tertentu. Sintaks
umum perulangan switch...case adalah:
switch variabel
case nilai_1
perintah 1
perintah 2
...dst
case nilai_2
perintah 1
perintah 2
...dst
...
end
otherwise
perintah 1
perintah 2
%--------------------------%Latihan 14
%Percabangan Switch case
%--------------------------clear all
clc
disp('NB: ngetik pilihannya diapit tanda apostrof, nggih?')
pilihan=input('Mau menghitung luas persegi, segitiga, atau
lingkaran?: ')
switch pilihan
case 'persegi'
s=input('masukkan ukuran sisi: ')
L=s^2;
disp(['Luas ' pilihan ' adalah: ' num2str(L)])
case 'segitiga'
a=input('masukkan ukuran alas: ')
t=input('masukkan ukuran tinggi: ')
L=0.5*a*t;
disp(['Luas ' pilihan ' adalah: ' num2str(L)])
case 'lingkaran'
r=input('masukkan ukuran jari-jari: ')
L=pi*r^2;
disp(['Luas ' pilihan ' adalah: ' num2str(L)])
otherwise
disp('sorry, ente typo gans :P')
end
6.
Interaksi File
Nama file diketik tanpa spasi dan ekstensi apapun. Untuk lebih jelasnya,
perhatikan kode berikut:
%--------------------------------%Latihan 15
%Save MAT-File
%--------------------------------clear all
clc
x=[0:2:16]
y=[0:1:8]
save data15 x y
Matlab akan menyimpan variabel x dan y tersebut pada folder yang sama
dengan m-file skrip tersebut dengan nama data15.mat.
Selanjutnya, file tersebut dapat dipanggil dengan perintah load:
load nama_file
Nama file diketik tanpa spasi dan ekstensi apapun dan Matlab akan meload semua variabel yang tersimpan dalam file tersebut ke dalam memori
aktif. Perhatikan kode berikut:
%--------------------------------%Latihan 16
%Load MAT-File
%--------------------------------clear all
clc
load data15
x
Jurusan
Teknik Geomatika | FTSP-ITS | Modul Komputasi 36
y
Spasial
z=x+y
10
12
14
16
12
15
18
21
24
>>
Nama file harus ditulis tanpa spasi lengkap dengan ekstensinya. Variabel
yang disimpan dalam file teks hendaknya cukup 1 saja. Karena bila
terdapat lebih dari 1 variabel yang ditulis dalam file teks yang sama,
proses me-load-nya kembali untuk menghasilkan variabel yang benar
akan cukup rumit. Perhatikan contoh kode berikut:
%--------------------------------%Latihan 17
%Save *.txt file
%--------------------------------clear all
clc
x=[0:2:16]
y=[0:1:8]
save data15x.txt x ascii
save data15y.txt y -ascii
Skrip tersebut akan melakukan penyimpanan data x dan y dalam file *.txt
terpisah. Untuk me-load data tersebut ke dalam suatu variabel, digunakan
perintah berikut:
variabel=load(nama_file.txt)
%--------------------------------%Latihan 18
%Load *.txt file
%--------------------------------clear all
clc
x=load(data15x.txt)
y=load(data15y.txt)
z=x+y
10
12
14
16
12
15
18
21
24
File *.txt hanya menyimpan nilai variabelnya saja. Oleh karena itu ketika
me-load file *.txt, agar nilai tersebut dapat digunakan maka nama
variabelnya ditentukan sendiri oleh programmer. Hal ini berbeda dengan
*.mat file yang menyimpan nilai/data sekaligus dengan nama variabelnya.
Info 12.
Untuk menyimpan dan me-load data dari folder tertentu, maka nama file dituliskan
lengkap dengan direktorinya. Semisal programmer ingin menyimpan atau me-load file
dataku di folder D:\tugas, maka nama file haris ditulis dengan didahului direktorinya
menjadi D:\tugas\dataku atau D:\tugas\dataku.txt. Hal ini berlaku baik untuk file
*.txt maupun *.mat.
file_id pada
dapat diisikan
r yaitu
w yaitu
Ketika file telah selesai dibuka atau dimanipulasi, selanjutnya file harus
ditutup dengan perintah fclose:
fclose(file_id)
Bila size tidak diisikan, maka Matlab akan membaca hingga ke akhir file.
Perhatikan data teks dan skrip berikut:
Skrip berikut akan membaca data yang terdapat pada teks tersebut untuk
menghasilkan variabel string dan matriks:
%--------------------------------%Latihan 19
%fscanf
%--------------------------------clear all
clc
fid=fopen('mydata.txt','r'); %file mydata.txt akan dibaca
teks=fscanf(fid,'%s',1)
matrix=fscanf(fid,'%f',[4,5]); %matriks4x5
matrix=matrix'
%lalu ditranspose agar sama dengan di file
fclose(fid)
Jurusan
Teknik Geomatika | FTSP-ITS | Modul Komputasi 39
Spasial
3
7
12
78
90
4
8
34
63
54
5
9
56
23
78
40
total_jarak =
789.478
675.455
598.355
478.903
982.466
342.892
3867.549
total panjang jarak adalah 3867.549
>>
Secara default, karena file ASCII adalah teks, maka data yang dituliskan
dalam file diubah dulu ke tipe string, lalu dijadikan sebagai satu kesatuan
string (lihat String Concatenation). Selanjutnya string tersebut ditulis
sebagai satu baris dalam file. Berikut adalah contoh skrip yang akan
menuliskan variabel ke dalam file terformat:
%--------------------------------%Latihan 21
%fprintf
%--------------------------------clear all
clc
X=rand(6,1)
nama_file=input('Simpan di file: ');
fid=fopen(nama_file,'wt'); %ijin akses berkode wt
fprintf(fid,'Menulis Data ke Dalam File Teks\n\n');
%backslash-n berarti baris baru/enter
for i=1:6
fprintf(fid,['Data ke-' num2str(i) ': ' num2str(X(i,1),'%.3f')
'\n']);
end
fprintf(fid,'\nAkhir File Data')
fclose(fid)