0% menganggap dokumen ini bermanfaat (0 suara)
216 tayangan42 halaman

Modul 1 Matlab

Jurusan Teknik Geomatika Fakultas Teknik Sipil dan Perencanaan Institut Teknologi Sepuluh Nopember Surabaya menjelaskan tentang Matlab dan pengenalan dasar pemrograman Matlab."

Diunggah oleh

dedetmix
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
216 tayangan42 halaman

Modul 1 Matlab

Jurusan Teknik Geomatika Fakultas Teknik Sipil dan Perencanaan Institut Teknologi Sepuluh Nopember Surabaya menjelaskan tentang Matlab dan pengenalan dasar pemrograman Matlab."

Diunggah oleh

dedetmix
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 42

Jurusan Teknik Geomatika

Fakultas Teknik Sipil dan Perencanaan


Institut Teknologi Sepuluh Nopember Surabaya

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.

Pertama Kali Bekerja dengan Matlab

Ketika pertama kalinya menjalankan Matlab, programmer akan mendapati


tampilan seperti gambar berikut (untuk Matlab R2010a):
Menu Bar
dan
Toolbar

Command
Window

Editor

Gambar 1. Tampilan Matlab R2010a


Ada 2 jendela yang paling sering diakses, yaitu Command Window dan
M-File Editor.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 1


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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:

Gambar 2. Eksekusi perintah lewat 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.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 2


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Gambar 3. Kotak dialog penyimpanan skrip program


Tentukan direktori/folder penyimpanan file dan nama skripnya (berikan
nama latihan00.m dan simpan di C:\). Skrip program pada Matlab
memiliki ekstensi *.m.
Info 2.
Penting untuk diketahui, Matlab akan mengenali dan menjalankan skrip pada direktori
yang dikenali (current folder atau direktori aktif). Apabila skrip tidak terdapat pada
direktori aktif, maka Matlab tidak dapat mengenali semua variabel sehingga program
tidak dapat dijalankan.

Matlab akan menawarkan untuk mengganti direktori aktif sesuai dengan


direktori skrip yang dijalankan, seperti kotak dialog berikut:

Gambar 4. Kotak dialog pergantian direktori aktif


Klik Change Folder sehingga hasil eksekusi program tampak pada
gambar berikut:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 3


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Gambar 5. Hasil eksekusi skrip program sederhana

Mengatur Direktori Aktif


Seperti yang dijelaskan sebelumnya, Matlab akan mengeksekusi program
pada direktori yang dikenali, dalam hal ini adalah direktori aktif atau
current folder. Kadangkala sebuah skrip program tidak disimpan pada
direktori aktif atau current folder sehingga Matlab tidak mengenali
variabel yang tertulis pada skrip tersebut. Ada beberapa cara yang dapat
dilakukan untuk mengeset direktori aktif:
Dengan Windows Explorer, temukan file skrip program. Buka
dengan cara klik ganda. Ketika skrip sudah terbuka, maka klik ikon
Save and Run pada Toolbar, sehingga muncul kotak dialog
perubahan direktori aktif seperti pada Gambar 4.
Info 3.
Cara ini mungkin tidak berhasil pada Matlab dengan versi di bawah R2008, di mana
Editor dan aplikasi utama Matlab masih terpisah.

Gunakan menu dropdown Current Folder pada toolbar, dan pilih


direktori yang akan menjadi direktori aktif. Bila folder yang dituju
tidak terdapat pada pilihan, cari dengan mengklik tombol Browse
for Folder.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 4


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Gambar 6. Memilih direktori aktif

Menggunakan menu File>Set Path, programmer dapat melibatkan


lebih dari satu folder sebagai direktori aktif. Pada kotak dialog Set
Path, klik tombol Add Folder, dan tentukan folder lain yang akan
dijadikan sebagai direktori aktif.

direktori
baru

Gambar 7. Menambahkan direktori aktif


Kalau sudah, klik tombol Close, dan Matlab akan menanyakan
apakah direktori aktif yang baru ditambahkan tersebut akan dipakai
pada sesi-sesi Matlab selanjutnya melalui kotak dialog berikut:

Gambar 8. Kotak dialog menyimpan setting direktori aktif


Jawab Yes.

Menuliskan Komentar
Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 5
Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Komentar adalah baris kode program yang berguna untuk memberikan
keterangan pada bagian-bagian program sehingga lebih mudah dipahami
bila suatu saat hendak dibaca/diperiksa kembali. Penulisan baris komentar
diawali dengan tanda %. Sebagai contoh:
a=7
b=8
c=a+b
%d=a+b+c

%baris ini adalah perintah untuk menjumlahkan a dan b


baris ini tidak akan dieksekusi

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

Menghapus semua teks pada Command


Window, tanpa menghapus variabel di
memori aktif
Menghapus variabel tertentu dari memori
aktif. Nama variabel dituliskan di antara
tanda kutip tunggal. Kode clear tidak
menghapus teks pada layar
Menghapus semua variabel dari memori
program
Melihat nama-nama variabel yang terdapat
di memori aktif
Menampilkan bantuan tentang penggunaan
fungsi-fungsi Matlab

Sintaks Dasar Matlab


Tidak seperti C++ maupun Delphi, menuliskan sintaks program pada
Matlab tidak perlu diawali dengan deklarasi variabel. Secara umum,
sintaks dasar Matlab adalah:
variabel=ekspresi

atau
ekpresi

Perhatikan contoh kode program sederhana berikut:


%----------------------------------%Latihan 01
%----------------------------------disp(Hallo Bu! (: )
%menampilkan teks. Teks diapit tanda
disp(Selamat Siang)
%ini juga, sama
a=7
%membuat
variabel
a yangKomputasi
bernilai 7 6
Jurusan
Teknik Geomatika
| FTSP-ITS
| Modul
b=8
%membuat variabel b yang bernilai 8
Spasial
c=a+b
%variabel c hasil penjumlahan a dan b

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Matlab akan mengeksekusi perintah tersebut baris-perbaris sesuai urutan


penulisan. Setiap baris pada Matlab akan dianggap sebagai instruksi yang
berbeda. Baris perintah pada Matlab boleh tidak diakhiri dengan titik koma
(;) dan tidak akan berpengaruh terhadap jalan atau tidaknya program ;)
Kadangkala programmer salah memasukkan ekspresi yang tidak dikenali
Matlab, sehingga memunculkan pesan kesalahan:
>> 10+5b

??? 10+5b
Error: Unexpected MATLAB expression.

Pada potongan kode tersebut, kesalahan terdapat pada 5b di mana ia


bukanlah variabel dan bukan pula suatu operasi.

2.

Variabel, Tipe Data, dan Operator

Ada beberapa aturan umum dalam mendefinisikan variabel pada Matlab,


yaitu:
Nama variabel bersifat case sensitive. Variabel A dengan a dianggap
sebagai variabel yang berbeda.
Nama variabel boleh berupa kombinasi huruf, angka, dan simbol,
dengan catatan harus diawali dengan huruf. Misalnya: dth1, dx2,
hasil_terbaru, dll.
Nama variabel tidak boleh lebih dari 31 karakter
Nama variabel tidak boleh memuat spasi
Variabel pada Matlab akan langsung dideklarasikan saat variabel
tersebut diberi nilai yang jelas dan digunakan. Variabel dapat pula
di-overwrite nilainya dengan nilai yang baru. Namun karena Matlab tidak
mendefinisikan secara eksplisit tipe suatu variabel, sebuah variabel dapat
saja berubah-rubah tipenya tergantung nilai terakhir yang dimasukkan.
Berikut ini adalah beberapa variabel yang sering digunakan dalam Matlab.

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

%membuat variabel a yang bernilai 13


%membuat variabel b yang bernilai 12
%variabel c hasil penjumlahan a dan b
%variabel d, yaitu c-9
%variabel e, yaitu d-5.45
7

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Simpan skrip dengan nama latihan02.m, dan jalankan untuk


mendapatkan hasil berikut:

Gambar 9. Variabel angka pada Matlab


Info 4.
By default, variabel bertipe angka pada Matlab adalah double precision, baik itu untuk
angka desimal maupun integer. Tetapi ada variabel angka tertentu dengan tipe lain,
misalnya uint8, uint16, int8, int16, dll. Matlab menyediakan fungsi konversi
antartipe variabel.

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

Pada contoh tersebut, A adalah vektor baris dengan 3 elemen, sedangkan


B adalah sebuah vektor kolom dengan 3 elemen. Pada Command Window
Matlab, hasil eksekusi kedua variabel tersebut adalah:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 8


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Gambar 10. Variabel vektor pada Matlab


Jumlah elemen vektor tidak dibatasi.

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:

C=[13 21 34;42 51 60]


D=[15 27;33 41;51 60]

%matriks ukuran 2x3


%matriks ukuran 3x2

Hasil eksekusi kode tersebut adalah:

Gambar 11. Variabel matriks


Info 5.
Vektor dapat pula dianggap sebagai matriks. Vektor baris adalah matriks berdimensi
1xn dan vektor kolom adalah matriks berdimensi mx1.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 9


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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!

Gambar 12. Variabel string


Variabel string boleh hanya memuat satu karakter.

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.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 10


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Info 7.
Masih ada beberapa variabel khusus lain yang terdapat di Matlab. Yang perlu diperhatikan
adalah meskipun variabel tersebut telah didefinisikan oleh Matlab, programmer dapat
saja meng-overwrite variabel tersebut dengan nilai yang baru. Misalnya pi=12.345,
maka variabel pi bukan lagi konstanta lingkaran yang kita kenal.

Operator dan Operasi Aritmatika


Operator pada Matlab terdiri dari beberapa jenis, yaitu operator logika,
aritmatika, maupun operator relasional. Operator sering dipakai pada
perhitungan-perhitungan matematika, perbandingan, maupun kendali
program.
Operator
+
*
/
\
^

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.

Operator tersebut bekerja sebagaimana operasi matematika biasa.


Operator tersebut juga dapat bekerja secara langsung dengan variabel
vektor dan matriks. Jadi di Matlab, melakukan operasi-operasi pada
vektor dan matriks sama mudahnya dengan operasi pada
bilangan biasa, selama kaidah operasi tersebut terpenuhi.
Perhatikan contoh kode berikut:

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

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 11


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Berikut adalah cuplikan hasil program tersebut:

error, menyalahi
aturan perkalian
matriks

Gambar 13. Hasil operator


Dalam perhitungan, tidak jarang berbagai jenis operasi dilakukan dalam
satu baris. Namun urutan operasi yang harus dikerjakan terlebih dahulu
sesuai dengan kaidah matematika secara umum, di mana derajat operasi
perpangkatan lebih tinggi dari perkalian atau pembagian, dan derajat
operasi perkalian atau pembagian lebih tinggi daripada operasi
penjumlahan atau pengurangan. Operasi dengan derajat lebih tinggi akan
didahulukan. Namun bila operator menghendaki operasi tertentu
dikerjakan terlebih dahulu dapat menggunakan tanda kurung ().
%----------------------------------%Latihan 05
%Operator Precedence
%----------------------------------clc
clear all
disp(Operator Precedence)
a=3
b=2
c=1
d=4
f=a+b-c*d
g=a+(b-c)*d
h=a+b^d
i=(a+b)^d

%c dan d dikalikan terlebih dahulu


%pengurangan b dengan c dikerjakan lebih dahulu
%b dipangkatkan dahulu, lalu dijumlahkan dengan a
%a dan b dijumlahkan dahulu, lalu dipangkatkan

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 12


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Berikut adalah hasil running kode tersebut yang menunjukkan perbedaan
hasil akibat operator precendence:

Gambar 14. Operator precedence

3.

Fungsi Matematika

Matlab menyediakan beberapa fungsi matematika standar untuk


melakukan perhitungan-perhitungan yang sangat sulit bila diselesaikan
dengan operator aritmatika. Fungsi-fungsi tersebut umumnya adalah
fungsi trigonometri, hiperbolik, dan eksponensial. Terdapat juga fungsifungsi lain yang terkait dengan pembulatan.

Fungsi Trigonometri dan Inversnya


Beberapa fungsi trigonometri beserta inversnya yang umum digunakan di
Matlab adalah sebagai berikut:
Fungsi
sin
cos
tan
sec

Contoh
Pemakaian
sin(pi)
cos(pi/2)
tan(pi/4)
sec(pi)

Penjelasan
Nilai
Nilai
Nilai
Nilai

sinus pi radian (180)


cosinus pi/2 radian (90)
tangen pi/4 radian (45)
sekan pi radian (180)

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 13


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Fungsi
csc
asin

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)

Bila kita memperhatikan tabel di atas, secara default fungsi trigonometri


pada Matlab mensyaratkan nilai input sudut dalam radian. Pada bahasa
program lain pun umumnya fungsi trigonometri menggunakan
satuan sudut dalam radian. Namun Matlab juga me nyediakan fungsi
trigonometri yang bekerja pada satuan derajat:
Fungsi
sind
cosd
tand
secd
cscd
asind
acosd
atand
asecd
acscd

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

Berikut adalah contoh skrip program untuk menguji fungsi-fungsi tersebut:

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

%sinus pi/6 radian


%sinus 30 derajat
%cosinus pi/3 radian
%cosinus 60 derajat
%tangen pi/4 radian
%tangen 45 derajat

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

yang apabila dijalankan menghasilkan:


a =

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.

Fungsi Hiperbolik dan Inversnya


Matlab memiliki sekumpulan fungsi hiperbolik yang siap untuk digunakan.
Fungsi-fungsi ini menggunakan satuan sudut berupa radian baik untuk
masukan maupun keluarannya:
Fungsi
sinh
cosh
tanh

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

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 15


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Fungsi

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

sekan hiperbolik pi radian


kosekan hiperbolik pi/2 radian
invers sinus hiperbolik 0.5
invers cosinus hiperbolik 0.5
invers tangen hiperbolik 1
invers sekan hiperbolik 2
invers kosekan hiperbolik 2

Berikut adalah contoh skrip program yang menggunakan fungsi-fungsi


tersebut:
%----------------------------------%Latihan 07
%Fungsi Hiperbolik
%----------------------------------clc
clear all
a=sinh(pi/6)
b=cosh(pi/3)
c=tanh(pi/4)
d=sech(pi)
e=csch(pi)

%sinus hiperbolik pi/6 radian


%cosinus hiperbolik pi/3 radian
%tangen hiperbolik pi/4 radian
%secant hiperbolik pi radian
%cosecant hiperbolik pi radian

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

yang apabila dijalankan menghasilkan:

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Perlu diketahui bahwa selain mencakup bilangan real, fungsi hiperbolik


juga dapat mencakup bilangan kompleks.

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

Berikut adalah contoh program yang menggunakan fungsi tersebut:


%----------------------------------%Latihan 08
%Fungsi Eksponensial
%----------------------------------clc
clear all
a=log(34)
b=log10(100)
c=log2(8)
d=exp(7)
e=sqrt(d)

%nilai logaritma natural 34


%nilai logaritma basis 10 dari 100
%nilai logaritma basis 2 dari 8
%bilangan Euler dipangkatkan 7
%akar kuadrat dari variabel d

yang apabila dijalankan menghasilkan:


a =
b =

3.52636052461616
2

c =

3 Teknik Geomatika | FTSP-ITS | Modul Komputasi 17


Jurusan
d =
Spasial
1096.63315842846

e =
>>

33.1154519586923

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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

ke bilangan bulat terdekat,


ke arah negatif tak hingga,
ke arah positif tak hingga,
ke arah nol, hasilnya 4

Berikut adalah contoh program yang menunjukkan perbedaan hasil fungsi


pembulatan tersebut:
%----------------------------------%Latihan 09
%Pembulatan
%----------------------------------clc
clear all
a=round(2.78)
b=round(2.34)
c=floor(2.78)
d=floor(-2.11)
e=ceil(3.11)
f=ceil(-2.78)
g=fix(-2.78)
h=fix(3.11)

%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

Hasil dari program tersebut adalah:


a =
b =
c =
d =
e =
f =

3
2
2
-3
4

Jurusan
-2 Teknik Geomatika | FTSP-ITS | Modul Komputasi 18
g =
Spasial
h =
>>

-2
3

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

4.

Manipulasi Variabel

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 19


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Seringkali dalam sebuah program komputer kita perlu mengubah-ubah
jenis data yang digunakan. Selain itu kadangkala kita juga menggunakan
banyak data yang harus dimasukkan dan diproses secara cepat. Pada
bagian ini dijelaskan beberapa teknik manipulasi variabel yang sering
dilakukan dengan Matlab.

Konversi Variabel Numerik-String


Variabel angka dan string dapat saling dikonversi satu sama lain. Perintah
str2num digunakan untuk mengubah string menjadi angka, sedangkan
perintah num2str akan mengubah angka menjadi string. Hasil konversi
dapat disimpan dalam suatu variabel lain atau digunakan langsung dalam
suatu perintah atau perhitungan tertentu.
Perhatikan potongan kode berikut yang menunjukkan konversi string ke
angka:
a=3.1415
x=str2num(a)
y=str2num(34.5667)
whos

Pada potongan kode tersebut, variabel a bertipe string diubah menjadi


variabel x bertipe numerik. Sedangkan pada baris ketiga, string 34.5667
diubah langsung menjadi variabel y bertipe numerik double precision dan
dapat dipakai pada beragam perhitungan.

Gambar 15. Konversi string ke numerik


Sebaliknya, variabel bertipe angka dapat diubah menjadi string dengan
perintah num2str dalam pola berikut:
str=num2str(number,format)

Untuk menspesifikkan jumlah tempat desimal di belakang koma yang


dituliskan, isian format dapat diisi dengan %.af di mana a menunjukkan

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 20


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
jumlah angka di belakang koma. Berikut adalah perbedaan hasil string
akibat format yang berbeda:

>> num2str(pi)
ans =
3.1416
>> num2str(pi,'%.1f')
ans =
3.1
>> num2str(pi,'%.3f')
ans =
3.142
>> num2str(pi,'%.7f')
ans =
3.1415927
>>

Secara otomatis, hasil string dituliskan dengan pembulatan tergantung


jumlah tempat desimal yang ditulis.

Membuat Variabel dengan Rentang Nilai Tertentu


Matlab menyediakan cara cepat untuk membuat variabel dengan rentang
nilai tertentu:
Data dengan batas awal dan batas akhir yang ditentukan:
>> A=[0:10]
A =
0
1
>>

10

Secara default, interval data diset menjadi 1 poin.

Data dengan batas awal, batas akhir, dan interval data yang ditentukan:
>> A=[0:2:10]
A =
0
2
>>

10

Interval data dapat ditentukan dengan mudah oleh programer.

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

Penulisan perintah pada contoh tersebut mengikuti pola


variabel=linspace(batas_awal,batas_akhir,jumlah_data).

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:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 21


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
variabel=zeros(jml_baris,jml_kolom)

Sebagai contoh, berikut adalah implementasinya:


>> A=zeros(3,5)
A =
0
0
0
0
0
0
>>

0
0
0

0
0
0

Matriks dengan semua elemen bernilai 1, dibuat dengan cara yang


sama seperti membuat matriks nol. Hanya saja perintah yang
digunakan adalah ones, seperti contoh berikut:
>> A=ones(3,5)
A =
1
1
1
1
1
1
>>

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

Matriks identitas, memiliki elemen diagonal utama 1 dan elemen selain


itu adalah nol. matriks ini dibuat dengan perintah
eye(jumlah_baris).Perhatikan contoh berikut:
>> A=eye(4)
A =
1
0
0
1
0
0
0
0
>>

0
0
1
0

0
0
0
1

Orientasi dan Penggabungan Matriks

Transpose matriks dilakukan untuk menukar elemen baris matriks


menjadi kolom matriks, dan sebaliknya. transpose suatu matriks pada
Matlab dilakukan hanya dengan menambahkan tanda apostrof ( )
setelah matriks. Perhatikan contoh berikut:

>> A=[1 2 3;4 5 6]


A =
1
2
3
4
5
6
>> B=A'
B =
1
4
2
5
3 Teknik
6
Jurusan
Geomatika
>>

| FTSP-ITS | Modul Komputasi 22


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Concatenation, yaitu menggabungkan lebih dari 1 matriks menjadi


matriks yang lebih besar dengan menempatkan matriks tersebut secara
berdampingan/berurutan, baik kiri-kanan maupun atas-bawah.
Perhatikan contoh berikut:
>> A=[1 2 3;4 5 6]
A =
1
2
3
4
5
6
>> B=[3 4 5;6 7 8]
B =
3
4
5
6
7
8
>> C=[A B]
C =
1
2
3
4
5
6
>> D=[B A]
D =
3
4
5
6
7
8
>> E=[A;B]
E =
1
2
3
4
5
6
3
4
5
6
7
8
>> F=[B;A]
F =
3
4
5
6
7
8
1
2
3
4
5
6
>>

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.

Flip matriks, yaitu pencerminan matriks dalam arah kiri-kanan ataupun


atas-bawah. Proses ini membalik urutan baris atau kolom matriks, di
mana baris atau kolom terakhir menjadi baris atau kolom pertama dan
sebaliknya. Perhatikan contoh kode program berikut:
%----------------------------------%Latihan 10
%Flip matriks
%----------------------------------clc
clear all
A=[1 2 3 4;5 6 7 8;9 10 11 12]

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Bila kode tersebut dijalankan, akan menghasilkan:


A =

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

Mengakses Elemen Variabel


Dari sebuah variabel vektor atau matriks, kita dapat mengambil sebagian
isinya untuk menjadi variabel baru baik variabel skalar, vektor, atau
matriks yang berukuran lebih kecil. Umumnya mengakses variabel
dilakukan dengan pola:
output=variabel_asal(indeks_baris,indeks_kolom)

Semisal terdapat matriks A:


>> A=[2 3 4;5 6 7;8 9 10;11 12 13]
A =
2
3
4
5
6
7
8
9
10
11
12
13
>>

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 24


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Variabel tunggal dari matriks A diakses dengan cara:


>> a=A(3,2)
a =
9
>>

%a adalah elemen matriks A baris ke-3 kolom ke-2

Vektor kolom dan baris dari suatu matriks diperoleh dengan cara:
>> b=A(:,3)
b =
4
7
10
13
>>

%hasilnya adalah vektor kolom

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

%elemen matriks A baris ke-2 sampai ke-4

Pada contoh tersebut, matriks D elemennya berasal dari matriks A baris


ke-2 sampai baris ke-4 (2 : 4) pada kolom ke-2 sampai kolom ke-3 (2 : 3).
Sedangkan matriks E elemennya berasal dari matriks A baris ke-1 sampai
baris ke-3 (1 : 3) pada semua kolom ( : ).

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 25


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Mengganti Elemen Variabel


Bila kita dapat mengambil suatu variabel dari variabel lain, maka suatu
nilai tertentu juga dapat disisipkan untuk mengganti nilai pada suatu
elemen variabel. Proses ini hampir sama dengan cara mengakses nilai
variabel, hanya saja pola perintahnya terbalik:
variabel_asal(indeks_baris,indeks_kolom)=nilai_input_baru
=

Mengganti nilai satu elemen tunggal di A dengan nilai baru:


>> A
A =
2
3
5
6
8
9
11
12
>> A(2,3)=100
A =
2
3
5
6
8
9
11
12
>>

4
7
10
13
4
100
10
13

Nilai elemen matriks A baris ke-2 kolom ke-3 telah berganti menjadi
100.

Mengganti nilai satu baris atau kolom di A dengan nilai baru:


>> A
A =

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

Kolom ke-2 pada matriks A diubah nilainya menjadi 44.


>> A
A =
2
44
4
5
44
100
8
44
10
11
44
13
>> A(3,:)=0
A =
2
44
4
5
44
100
0
0
0
Jurusan
Geomatika
11 Teknik
44
13
>>

| FTSP-ITS | Modul Komputasi 26


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Baris ke-3 pada matriks A diubah nilainya menjadi 0.


Mengganti nilai elemen tertentu di A dengan nilai baru:
>> A
A =
2
44
4
5
44
100
0
0
0
11
44
13
>> A(3:4,2:3)=77
A =
2
44
4
5
44
100
0
77
77
11
77
77
>>

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.

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 27


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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

B dibagi dengan dirinya sendiri

C dibagi dengan elemen D yang


0.2
1

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

>> A==1
ans =
1
0
0
0
>> A>5
ans =
0
1
1
0
>>

%mencari semua elemen A yang sama dengan 1


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

Seleksi data dengan operator perbandingan hanya menghasilkan angka 0


dan 1 (0 berarti tidak sesuai kriteria seleksi; 1 berarti sesuai kriteria
seleksi). Untuk mengetahui nilai yang terseleksi, lakukan perkalian
elemen-per-elemen matriks asli dengan hasil pencarian:
>> B=(A>5).*A
B =
0
0
9
0
9
0
0
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

>= : lebih besar dari atau sama dengan

<
: kurang dari

<= : kurang dari atau sama dengan

~= : tidak sama dengan

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 29


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

5.

Interaksi dan Kontrol Program

Sebuah program komputer yang baik hendaknya memberikan kebebasan


kepada pengguna untuk menentukan data masukan sehingga program
dapat berjalan secara dinamis. Untuk itu diperlukan suatu metode
masukan data. Nah, karena masukan data bebas, maka mungkin saja
terjadi beberapa perintah yang harus dikerjakan beberapa kali, diabaikan,
atau dialihkan ke perintah lain sebagai solusi permasalahan yang hendak
diselesaikan. Dalam kasus ini kontrol program memegang peranan
penting.

Input Variabel Dinamis


Matlab dapat menerima suatu masukan dari pengguna secara langsung
dan memasukkannya ke dalam suatu variabel. Tipe variabel nantinya akan
terdefinisi dengan sendirinya sesuai dengan data yang dimasukkan.
Adapun caranya memasukkan variabel secara dinamis adalah:
variabel=input(teks untuk ditampilkan)

Huruf atau karakter apapun yang diketik pengguna melalui keyboard,


maka akan dimasukkan ke dalam variabel. Berikut adalah contohnya:
angka=input(umur Anda: )
disp([jadi Anda sudah hidup selama num2str(angka) tahun])

yang apabila dijalankan menghasilkan:


umur Anda: 35
angka =
35
jadi Anda sudah hidup selama 35 tahun
>>
Info 10.
Untuk memasukkan variabel string dengan menggunakan input, maka ketika
mengetiknya harus diapit dengan tanda apostrof ( ).

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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

Hasil running kode tersebut adalah:


Iterasi terbatas dengan interval default
hello world. This is the 1th order
hello world. This is the 2th order
hello world. This is the 3th order
hello world. This is the 4th order
hello world. This is the 5th order
hello world. This is the 6th order
hello world. This is the 7th order
hello world. This is the 8th order
hello world. This is the 9th order
hello world. This is the 10th order
Iterasi terbatas dengan interval ditentukan
hello world. This is the 1th order
hello world. This is the 3th order
hello world. This is the 5th order
hello world. This is the 7th order
hello world. This is the 9th order
>>

Yang menarik, nilai indeks perulangan tidak harus bilangan bulat. Kita bisa
mengisikan bilangan pecahan pada nilai awal, interval, dan nilai akhir
kalau memang diperlukan.

Perulangan Tidak Tentu


Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 31
Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Bentuk perulangan yang kedua adalah perulangan tidak tentu. Perulangan
ini tidak dapat ditentukan jumlahnya. Program akan mengulang perintah
yang sama apabila kondisi yang memungkinkan terjadinya perulangan
tersebut terpenuhi. Perulangan tidak tentu dilakukan dengan perintah
while dengan sintaks umum:

while kondisi
perintah 1
perintah 2
...
dst
end

Contoh kode berikut:


%--------------------------%Latihan 12
%while
%--------------------------clear all
clc
i=1
n=0
while i<5
%selama i kurang dari 5
disp('hello world') %maka perintah ini akan terus dikerjakan
i=i+rand;
%setiap iterasi, nilai i berubah secara acak
n=n+1;
disp(['perulangan ke ' num2str(n)])
end
disp(['jadi, kita sudah mengulang sebanyak ' num2str(n) ' kali'])

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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

Sebagai contoh, berikut adalah program sederhana yang menggunakan


blok perintah if:
%--------------------------%Latihan 13
%if
%--------------------------clear all
clc
nilai=round(rand*100)

%nilai acak 0-100

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

disp(['jadi, nilai hurufnya adalah ' grade])

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

yang akan menghasilkan:


nilai =
93
grade =
A
jadi, nilai hurufnya adalah A
>>

Pada kode tersebut, syarat untuk mengerjakan suatu alternatif perintah


dapat lebih dari 1. Sehingga untuk mengkombinasikannya dapat
menggunakan operator relasional:
&& berarti dan
|| berarti atau
~ berarti not (bukan)

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

Blok otherwise pada sintaks tersebut menyatakan alternatif solusi yang


dikerjakan bila tidak ada nilai variabel yang memenuhi salah satu kondisi
yang didefinisikan pada blok case. Blok otherwise tersebut boleh
ditiadakan bila tidak diperlukan. Berikut adalah contoh penggunaan
switch...case:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 34


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

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

Bila program tersebut dijalankan akan menghasilkan:

NB: ngetik pilihannya diapit tanda apostrof, nggih?


Mau menghitung luas persegi, segitiga, atau lingkaran?: 'segitiga'
pilihan =
segitiga
masukkan ukuran alas: 10
a =
10
masukkan ukuran tinggi: 20
t =
20
Luas segitiga adalah: 100
>>

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 35


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

6.

Interaksi File

Selain dari input pengguna melalui keyboard, sebuah program komputer


pada Matlab juga dapat berinteraksi dengan file lain, misalnya untuk
membaca dan menyimpan data. Berikut akan dijelaskan beberapa teknik
interaksi file dengan Matlab.

Interaksi dengan MAT-File


Cara paling mudah dalam interaksi file menggunakan Matlab adalah
dengan perantaraan file *.mat. File jenis ini adalah file biner yang berisi
variabel-variabel Matlab yang hanya bisa dibuka dengan Matlab.
Untuk menyimpan variabel dalam sebuah file *.mat, kita dapat
menggunakan perintah save:
save nama_file variabel1 variabel2 variabel3 ... variabel_dst

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

yang apabila dijalankan, maka akan menghasilkan:


x =
y =
z =

10

12

14

16

12

15

18

21

24

>>

Perhatikan pada kode tersebut, meskipun di awal Matlab melakukan


pengosongan memori, namun setelah me-load file data15.mat Matlab
dapat mengenali x dan y sehingga dapat digunakan untuk menghitung z.
Info 11.
Perintah save boleh dituliskan tanpa menuliskan nama variabelnya sehingga Matlab
akan meyimpan semua variabel di memori aktif ke dalam file *.mat tersebut.

Menyimpan dan Me-Load File Teks


Selain dengan MAT-File, Matlab juga dapat berinteraksi dengan file bertipe
teks ASCII (ekstensi *.txt). Untuk menyimpan sebuah variabel ke dalam file
*.txt, gunakan perintah berikut:
save nama_file.txt variabel1 -ascii

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)

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 37


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Nama variabel tersebut berguna sebagai media penyimpanan data yang
terdapat pada file yang di-load. Perhatikan contoh kode berikut:

%--------------------------------%Latihan 18
%Load *.txt file
%--------------------------------clear all
clc
x=load(data15x.txt)
y=load(data15y.txt)
z=x+y

yang apabila dijalankan akan menghasilkan:


x =
y =
z =
>>

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.

Membaca Data dari File Terformat


Kadangkala suatu aplikasi lain menyimpan dan membaca data dalam file
tertentu. Sebagai contoh adalah data GPS yang disimpan dalam file RINEX
dan ditulis dengan tata letak tertentu. Matlab menyediakan cara untuk
membaca file tersebut yang umumnya bertipe teks ASCII.
Untuk memanipulasi sebuah file di Matlab, file tersebut harus dibuka
terlebih dahulu, lalu dimanipulasi, dan ditutup kembali. Kita dapat
membuka file menggunakan perintah fopen dengan sintaks:
file_id=fopen(nama_file,izin_akses)

file_id pada
dapat diisikan
r yaitu
w yaitu

sintaks di atas adalah variabel pengenal file. Izin akses


dengan 3 cara:
bila file yang dibuka hanya untuk dibaca
bila file yang dibuka hanya untuk ditulis

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 38


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

a yaitu bila file yang dibuka hanya untuk ditambahkan datanya

Ketika file telah selesai dibuka atau dimanipulasi, selanjutnya file harus
ditutup dengan perintah fclose:
fclose(file_id)

Untuk membaca isi sebuah file terformat dapat menggunakan perintah


fscanf. Perintah ini mengambil beberapa bagian dari file dan
mengubahnya ke dalam variabel yang diinginkan:
fscanf(file_id,format,size)

Format diisikan dengan:


%f untuk konversi ke tipe data float/desimal
%s untuk konversi ke tipe data string
%i untuk konversi ke tipe data integer
Input

size diisikan dengan:


N
: membaca N elemen ke dalam sebuah vektor kolom
inf
: membaca hingga ke akhir file
[m,n] : hasil pembacaan akan dipakai untuk mengisi matriks
berdimensi mxn, tetapi nilai diisikan dalam urutan kolom-perkolom.

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

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

yang akan menghasilkan:


teks =
hello
matrix =
2
6
11
34
33
>>

3
7
12
78
90

4
8
34
63
54

5
9
56
23
78

Selain menggunakan perintah fscanf, pembacaan isi file berformat juga


dapat menggunakan perintah fgets. Perbedaannya, perintah fgets
membaca file baris-per-baris.
fscanf(file_id,jumlah_karakter)

Jumlah karakter menunjukkan jumlah karakter yang dibaca dalam 1 baris.


Bila tidak dituliskan, maka keseluruhan baris akan dibaca. Nilai keluaran
perintah ini adalah string sehingga untuk operasi matematika harus
dikonversi ke tipe data numerik. Berikut adalah contoh file yang dibaca
dengan perintah fgets:

Data tersebut adalah data pengukuran jarak, di mana baris pertama


adalah judul file, baris kedua adalah jumlah data jarak, baris ketiga adalah
keterangan data jarak, dan baris selanjutnya adalah data ukuran jarak
sejumlah angka pada baris kedua. Skrip berikut akan membaca dan
menampilkan, dan menghitung data ukuran jarak tersebut:
%--------------------------------%Latihan 20
%fgets
%--------------------------------clear all
clc
fid=fopen('jarak.txt','r');
judul=fgets(fid)
n_jarak=str2num(fgets(fid))
keterangan=fgets(fid)
for i=1:n_jarak
jarak(i,1)=str2num(fgets(fid));
end
jarak
%menampilkan data jarak yang dibaca
fclose(fid);
Jurusan
Teknik Geomatika
| FTSP-ITS | Modul Komputasi
total_jarak=sum(jarak)
%sum: jumlahan vektor
Spasial
disp(['total panjang jarak adalah ' num2str(total_jarak)])

40

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya

Bila dijalankan, hasilnya adalah:


judul =
Pengukuran Jarak
n_jarak =
6
keterangan =
data jarak
jarak =

total_jarak =

789.478
675.455
598.355
478.903
982.466
342.892

3867.549
total panjang jarak adalah 3867.549
>>

Menulis Data ke Dalam File Terformat


Bila program dapat membaca data dari file terformat, maka tentu program
juga harus dapat menulis data ke dalam file terformat. Fungsi ini dapat
dijalankan dengan perintah fprintf yang memiliki pola:
fprintf(file_id,string)

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)

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 41


Spasial

Jurusan Teknik Geomatika


Fakultas Teknik Sipil dan Perencanaan
Institut Teknologi Sepuluh Nopember Surabaya
Program tersebut akan menghasilkan sebuah file *.txt pada direktori aktif.
Bila hendak menuliskan file pada folder tertentu, ketika program meminta
nama file hasil, programmer harus menuliskan direktori filenya secara
lengkap. Hasil runngin program tersebut adalah:
X =
0.751267059305653
0.255095115459269
0.505957051665142
0.699076722656686
0.890903252535799
0.959291425205444
Simpan di file: 'percobaan jaya raya.txt'
ans =
16
ans =
0
>>

File yang dihasilkan adalah:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi 42


Spasial

Anda mungkin juga menyukai