).
cosh(x) Fungsi ini menghasilkan kosinus hiperbolik
dari x (yaitu
2
x x
e e
+
).
tanh(x) Fungsi ini menghasilkan tangent hiperbolik
x.
asinh(x) Fungsi ini menghasilkan inversi sinus
hiperbolik x.
acosh(x) Fungsi ini menghasilkan inversi kosinus
714 Pengolahan Citra, Teori dan Aplikasi
hiperbolik x.
atanh(x) Fungsi ini menghasilkan inversi tangent
hiperbolik x.
L.11 Prioritas Operator dalam Octave
Prioritas keseluruhan operator dalam Octavebisa dilihat pada Tabel L.7.
Informasi yang terkandung di dalamnya sangat bermanfaat ketika melibatkan
berbagai operator.
Tabel L.7Daftar prioritas operator dalam Octave
Prioritas Keterangan
1 (tertinggi) Kurung
2 Perpangkatan
3 Logika NOT (~)
4 Perkalian, pembagian
5 Penjumlahan, pengurangan
6 Operator relasional
7 Logika AND (&)
8 (terendah) Logika OR (|)
L.12 Mengakhiri Octave
Mengakhiri Octave dapat dilakukan dengan cara mengetikkan perintah exit.
L.13String Karakter
Octave tidak hanya berguna untuk menangani data numerik, melainkan juga
bisa digunakan untuk memproses string karakter. String karakter (atau sering
disebut dengan nama singkat string) adalah deretan karakter. Sebuah string bisa
saja terdiri dari puluhan karakter, satu karakter, atau bahkan tidak mengandung
karakter sama sekali. String yang tidak mengandung karakter satu pun biasa
disebut string kosong.
String ditulis dengan awalan dan akhiran tanda petiktunggal. Contoh:
nama = Siti Nurhaliza
Pada contoh di atas, variabel nama diisi dengan string Siti Nurhaliza.
Adapun contoh berikut menunjukkan variabel yang diisi dengan string
kosong:
temp =
Apabila suatu string mengandung petik tunggal, petik tunggal perlu ditulis
dua kali. Contoh:
kata = dont
Lampiran 715
Dalam hal ini, variabel kata berisi string : dont.
Octave dapat menerima tanda petik ganda sebagai
awalan dan akhiran string. Namun, tanda tersebut
tidak berlaku pada MATLAB.
L.14 Menampilkan dengan disp
Isi suatu variabel biasa ditampilkan dengan cara menyebutkan nama variabel.
Cara yang lain adalah menggunakan disp. Contoh penggunaan perintah ini:
>> S = 'Tes...tes...123';
>> disp(S);
Tes...tes...123
>>
Contoh di atas menunjukkan penampilan variabel Smelaluidisp.
Contoh berikut menunjukkan penggunaan disp untuk menggabungkan
informasi string dan isi sebuah variabel.
>> disp (['Intensitas: ' num2str(intensitas)])
Intensitas: 20
>>
Perhatikan penggabungan antara string Intensitas dan isi variabelintensitas
dilakukan dengan meletakkan keduahal tersebut dalam tanda [ ]. Perlu juga
diketahui, notasi [ ] adalah notasi larik (array) dan elemen dalam larik harus
setipe. Itulah sebabnya, intensitas yang bertipe bilangan perlu dikonversikan ke
string melalui fungsi num2str, yang berfungsi melakukan konversi bilangan ke
string.
L.15 Larik
Sebuah larik (array) dapat menampung sejumlah data yang sejenis. Oleh
karena itu, larik sangat berguna untuk menyatakan vektor ataupun matriks. Vektor
adalah larik dengan satu dimensi. Vektor kolom adalah vektor dengan satu kolom
dan vektor baris adalah vektor dengan satu baris. Matriks adalah larik yang
berdimensi dua.
716 Pengolahan Citra, Teori dan Aplikasi
Hanya sebagai kebiasaan, nama larik biasa ditulis dengan
menggunakan huruf awal berupa kapital. Jadi, hal ini bukanlah
suatu keharusan.
Sebagai contoh, terdapat vektor seperti berikut:
9
8
7
6
5
Vektor tersebut dapat dinyatakan dengan larik dengan cara yang sangat sederhana,
yaitu seperti berikut:
V = [ 5; 6; 7; 8; 9]
Tanda [ ] digunakan untuk menyatakan larik dan tanda titik-koma (;) digunakan
untuk memisahkan antarelemen. Dengan cara seperti itu, V berisi vektor kolom
(vektor yang mengandung hanya sebuah kolom dan memiliki sejumlah baris).
Seperti halnya variabel biasa (nonlarik), isi larik dapat ditampilkan dengan
cukup menyebutkan namanya. Perhatikan contoh berikut:
>>V = [ 5; 6; 7; 8; 9]
V =
5
6
7
8
9
>>
Jika dikehendaki untuk membuat vektor baris (vektor yang hanya
mengandung sebuah baris, tetapi memiliki sejumlah kolom), antarelemen dalam
larik perlu ditulis dengan pemisah spasi atau koma. Contoh:
V = [ 5 6 7 8 9]
atau
Lampiran 717
V = [ 5; 6; 7; 8; 9]
L.16 Notasi : untuk Menyatakan Jangkauan
Pada pembentukan elemen larik, notasi titik dua (:) dapat dipakai untuk
menyatakan jangkauan. Contoh:
V = [ 1:5 ]
identik dengan
V = [ 1, 2, 3, 4, 5 ]
Selain notasi berbentuk x : y, Octave juga menyediakan notasi :
a : b : c
Pada bentuk ini,
a menyatakan nilai awal;
b menyatakan kenaikan untuk elemen berikutnya;
c menyatakan batas nilai tertinggi dalam jangkauan.
Contoh:
V = [ 1: 2: 7 ]
atau
V = [ 1: 2: 8 ]
akan memberikan hasil yang sama, yaitu
[ 1, 3, 5, 7]
Contoh berikut memperlihatkan pembentukan larik yang menggunakan 10:-
2:0:
>> V = 10:-2:0
V =
10 8 6 4 2 0
>>
Perlu diketahui,
V = 10:-2:0
718 Pengolahan Citra, Teori dan Aplikasi
identik dengan
V = [ 10:-2:0 ]
L.17 Operasi Transpos
Octave menyediakan operator yang disebut transpos dan dinotasikan dengan
petik tunggal (). Jika diterapkan pada vektor, operator transpos menghasilkan
vektor baris terhadap suatu vektor kolom atau menghasilkan vektor kolom
terhadap vektor baris. Bentuk pemakaiannya:
V
Contoh:
>> V = [ 1 2 3 4]
V =
1 2 3 4
>> V'
ans =
1
2
3
4
>>
L.18 Membentuk Matriks
Matriks mempunyai notasi seperti berikut:
Secara umum, matriks mengandung lebih dari sebuah kolom dan baris. Jumlah
baris dan kolom tidak harus sama.
Tanda koma atau titik-koma bisa digunakan untuk memisahkan elemen.
Tanda koma untuk memisahkan elemen dalam baris yang sama, sedangkan tanda
titik koma berfungsi sebagai pemisah baris. Contoh :
>> I = [1 2 3; 4 5 6; 7 8 9]
I =
mn m m
n
n
a a a
a a a
a a a
...
...
...
...
2 1
2 22 21
1 12 11
Lampiran 719
1 2 3
4 5 6
7 8 9
>>
Alternatif lain, setiap baris dipisahkan dengan Enter. Contoh:
>> I = [ 1 2 3
4 5 6
7 8 9]
I =
1 2 3
4 5 6
7 8 9
>>
L.19 Operasi Skalar terhadap Larik
Octave menyediakan cara yang sangat mudah untuk mengenakan operasi
nilai skalar terhadap suatu larik. Sebagai contoh, untuk mengalikan setiap elemen
larik dengan nilai 2, dapat ditulis perintah seperti berikut:
>> A = [2 4; 3 5];
>> A * 2
ans =
4 8
6 10
>>
Secara prinsip, operator seperti +, -, dan / dapat dipakai untuk melakukan
operasi skalar terhadap larik. Khusus kalau operasi yang akan dilakukanberupa
pemangkatan setiap elemen dengan suatu nilai, operator ^ perlu ditulis menjadi .^.
Contoh:
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = A .^ 2
B =
720 Pengolahan Citra, Teori dan Aplikasi
1 4
9 16
>>
L.20 Operasi Matematika Antarlarik
Apabila dua buah matriks memiliki dimensi yang sama (jumlah baris sama
dan jumlah kolom sama), operasi matematika antarlarik bisa dikenakan. Sebagai
contoh, terdapat dua buah matriks seperti berikut:
A =
mn m m
n
n
a a a
a a a
a a a
...
...
...
...
2 1
2 22 21
1 12 11
B =
mn m m
n
n
b b b
b b b
b b b
...
...
...
...
2 1
2 22 21
1 12 11
Operasi seperti berikut
+ + +
+ + +
+ + +
mn mn m m m m
n n
n n
b a b a b a
b a b a b a
b a b a b a
...
...
...
...
2 2 1 1
2 2 22 22 21 21
1 1 12 12 11 11
dapat diperoleh melalui perintah
C = A + B
Contoh:
>> A = [1 2; 3 4];
>> B = [6 -3; -1 2];
>> C = A + B
C =
7 -1
2 6
>>
Jika dikehendaki untuk melakukan operasi pengurangan seperti berikut,
Lampiran 721
mn mn m m m m
n n
n n
b a b a b a
b a b a b a
b a b a b a
...
...
...
...
2 2 1 1
2 2 22 22 21 21
1 1 12 12 11 11
perintahyang diperlukan berupa
C = A B
Contoh berdasarkan matriks A dan B di depan:
>> C = A B
C =
-5 5
4 2
>>
Untuk melakukan operasi perkalian antarelemen matriks seperti berikut
mn mn m m m m
n n
n n
xb a xb a xb a
xb a xb a xb a
xb a xb a xb a
...
...
...
...
2 2 1 1
2 2 22 22 21 21
1 1 12 12 11 11
dapat diberikan perintah berupa
C = A .* B
Perhatikan bahwa di depan * ada tanda titik.
Operasi seperti
A * B
memiliki makna yang berbeda, yaitu sebagai berikut
+ + + + + +
+ + + + + +
+ + + + + +
1 21 2 11 1 1 21 2 11 1
1 2 21 22 11 21 1 2 21 22 11 21
1 1 1 12 1 11 1 1 21 12 11 11
... ... ...
...
... ... ...
... ... ...
n nn n n n nn n n
n n n n
n n n n n n
xb a xb a xb a xb a xb a xb a
xb a xb a xb a xb a xb a xb a
xb a xb a xb a xb a xb a xb a
Dalam hal ini, jumlah kolom matriks A harus sama dengan jumlah baris matriks
B. Contoh:
722 Pengolahan Citra, Teori dan Aplikasi
>> A * B
ans =
4 1
14 -1
>>
Untuk melakukan operasi pembagian antarelemen matriks seperti berikut
mn mn m m m m
n n
n n
b a b a b a
b a b a b a
b a b a b a
: ... : :
...
: ... : :
: ... : :
2 2 1 1
2 2 22 22 21 21
1 1 12 12 11 11
diperlukan perintah berupa
C = A ./ B
atau
C = B .\ A
Contoh penggunaan ./:
>> C = A ./ B
C =
0.16667 -0.66667
-3.00000 2.00000
>>
Untuk melakukan operasi pemangkatan antarelemen matriks seperti berikut
mn mn m m m m
n n
n n
b a b a b a
b a b a b a
b a b a b a
^ ... ^ ^
...
^ ... ^ ^
^ ... ^ ^
2 2 1 1
2 2 22 22 21 21
1 1 12 12 11 11
diperlukan perintahberupa
C = A .^ B
Contoh:
Lampiran 723
>> C = A .^ B
C =
1.00000 0.12500
0.33333 16.00000
>>
Tabel L.8 memberikan ringkasan tentang operasi antarelemen pada dua buah
vektor. Pada prinsipnya, hal ini juga berlaku untuk matriks.
Tabel L.8Ringkasan operasi antarelemen matriks
Operasi Keterangan
A adalah vektor [a
1
a
2
a
3
.. a
n
]
B adalah vektor [b
1
b
2
b
3
.. b
n
]
Penjumlahan elemen-
elemen vektor
A+B = [a
1
+b
1
a
2
+b
2
a
3
+b
3
.. a
n
+b
n
]
Pengurangan elemen-
elemen vektor
A-B = [a
1
-b
1
a
2
-b
2
a
3
-b
3
.. a
n
-b
n
]
Perkalian elemen-
elemen vektor
A.*B = [a
1
*b
1
a
2
*b
2
a
3
*b
3
.. a
n
*b
n
]
Pembagian elemen-
elemen vektor
A./B = [a
1
/b
1
a
2
/b
2
a
3
/b
3
.. a
n
/b
n
]
Pemangkatan elemen-
elemen vektor
A.^B = [a
1
^b
1
a
2
^b
2
a
3
^b
3
.. a
n
^b
n
]
L.21 Mengakses Larik
Pengaksesan (pengambilan atau pengubahan) elemen larik dapat dilakukan
dengan menggunakan notasi:
1) A(i) untuk vektor
2) A(i, j) untuk matriks
Dalam hal ini,A adalah nama larik dan isertaj menyatakan indeks. Baik i dan j
dimulai dari 1.
Jika V adalah vektor,
V(1) menyatakan elemen pertama dalam vektor,
V(2) menyatakan elemen kedua dalam vektor, dan seterusnya.
Contoh:
>> V = [ 9 6 3 1];
>> V(2)
ans = 6
>> V(3)
724 Pengolahan Citra, Teori dan Aplikasi
ans = 3
>>
Pada matriks, i pada notasi A(i, j) menyatakan indeks baris dan j menyatakan
indeks kolom. Contoh berikut menunjukkan pembentukan matriks A dan
cara menampilkan elemen pada baris 2 kolom 1.
>> A = [1 2; 3 4];
>> A(2,1)
ans = 3
>>
Adapun contoh berikut digunakan untuk mengubah elemen pada baris 2
kolom 1 dengan nilai 10:
>> A = [1 2; 3 4];
>> A(2,1) = 10
A =
1 2
10 4
>>
Tampak bahwa isi elemen baris 2 kolom 1 yang semula berisi 3 telah diganti
dengan 10.
Sekarang perhatikan contoh berikut:
>> A = [1 2; 3 4];
>> A(4,1) = 9;
>> A
A =
1 2
3 4
0 0
9 0
>>
Tampak bahwa larik A tidak lagi berukuran 2x2 melainkan menjadi 2x4. Mengapa
begitu? Mengingat kolom 4 semula tidak ada, maka penugasan nilai pada elemen
yang semula tidak ada akan membuat Octave menjadikan larik tersebut berukuran
sesuai dengan indeks terbaru. Alhasil, akan terbentuk ukuran baru, dengan
elemen-elemen baru yang tidak disebutkan dalam penugasan berisi nol. Contoh
ini sekaligus menunjukkan bahwa ukuran larik bisa diperbesar.
Notasi larik() juga bisa digunakan untuk mengambil sebagian elemen dalam
larik. Contoh:
Lampiran 725
>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B = A(2:3,:)
B =
4 5 6
7 8 9
>>
Notasi 2:3 pada A(2:3,:) berarti baris 2 hingga baris 3, sedangkan notasi : setelah
koma berarti semua kolom.
Perhatikan pula contoh berikut.
>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(:,2)
ans =
2
5
8
>>
Pada contoh di atas, mengingat tanda : diletakkan pada indeks baris maka berarti
dari baris pertama hingga baris yang terakhir. Dengan kata lain, A(:,2) berarti
mengambil hanya kolom kedua pada larik A (untuk semua baris).
Sebuah larik juga bisa dibentuk dari gabungan dua buah larik atau lebih.
Contoh berikut menunjukkan pembentukan larik C yang didasarkan pada isi larik
A dan B.
>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
726 Pengolahan Citra, Teori dan Aplikasi
7 8 9
>> B = [40, 50; 60, 70; 80, 90]
B =
40 50
60 70
80 90
>> C = [A B(:,2)]
C =
1 2 3 50
4 5 6 70
7 8 9 90
>>
Pada contoh di atas,
C = [ A B(:, 2)]
berarti membentuk larik C yang merupakan gabungan dari keseluruhan larik A
ditambah dengan sebuah kolom dari larik B (yaitu kolom 2).
Contoh berikut menunjukkan cara mengubah elemen dalam matriks menjadi
sebuah vektor.
>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(:)
ans =
1
4
7
2
5
8
3
6
9
>>
Lampiran 727
L.22 Memperoleh Ukuran Larik
Ukuran suatu larik ditentukan oleh jumlah baris dan kolom. Misalnya,
matriks
memiliki ukuran 5 x 4, sedangkan vektor kolom
9
8
7
6
5
memiliki ukuran 5 x 1.
Ukuran suatu larik dapat diketahui dengan menggunakan fungsi size. Contoh:
>> A = [ 1 2 3; 4 5 6; 7 8 9; 10 11 12];
>> size(A)
ans =
4 3
>>
Hasil size berupa vektor baris yang berisi 2 elemen. Elemen pertama berupa
jumlah baris dan elemen kedua berupa jumlah kolom. Itulah sebabnya, penugasan
seperti berikut diperkenankan.
>> A = [ 1 2 3; 4 5 6; 7 8 9; 10 11 12];
>> [tinggi, lebar] = size(A)
tinggi =
4
lebar =
3
>>
0 9 8 7
6 5 4 3
2 1 0 9
8 7 6 5
4 3 2 1
728 Pengolahan Citra, Teori dan Aplikasi
Pada contoh di atas, variabel tinggi diisi dengan elemen pertama yang dihasilkan
size, yaitu menyatakan jumlah baris dan variabel lebar berisi jumlah kolom.
Terkait dengan larik, terdapat fungsi length, yang kegunaannya adalah
menghasilkan jumlah elemen dalam suatu vektor. Contoh:
>> V = [4 3 2 1 7];
>> length(V)
ans =5
>>
L.23 Mengenal Sejumlah Fungsi Larik
Sejumlah fungsi dasar yang terkait dengan larik dapat dilihat pada Tabel L.9.
Tabel L.9Sejumlah fungsi tentang larik
Fungsi Keterangan
linspace(x,y,n) Menghasilkan vektor yang memiliki elemen
pertama x dan elemen terakhir y dengan
jumlah elemen berupa n buah dengan selang
antara elemen satu dengan berikutnya bernilai
sama.
logspace(x,y,n) Menghasilkan vektor yang memiliki elemen
pertama 10
x
dan elemen terakhir 10
y
dengan
jumlah elemen berupa n buah dengan selang
antara elemen satu dengan berikutnya bernilai
sama secara logaritmik.
find(M) Menghasilkan indeks untuk semua elemen
yang tidak bernilai nol.
ones(M,N)
ones(M)
Membentuk matriks berukuran MxN dengan
seluruh elemen diisi dengan angka 1. Jika
argumen hanya sebuah, ukuran matriks yang
dibentuk berupa MxM.
zeros(M,N)
zeros(M)
Membentuk matriks berukuran MxN dengan
seluruh elemen diisi dengan angka 0. Jika
argumen hanya sebuah, ukuran matriks yang
dibentuk berupa MxM.
Contoh berikut memberikan gambaran tentang fungsi linspace.
>>linspace(1,5,6)
ans =
1.0000 1.8000 2.6000 3.4000 4.2000 5.0000
>>
Hasil di atas menunjukkan bahwa argumen ketiga menentukan jumlah elemen
yang dihasilkan oleh linspace.
Contoh berikut memperlihatkan hasil logspace:
Lampiran 729
>>logspace(2,5,6)
ans =
1.0000e+002 3.9811e+002 1.5849e+003 6.3096e+003 2.5119e+004
1.0000e+005
>>
Contoh berikut menunjukkan penggunaan find:
>> A = [3 4 1; 2 5 9; 4 1 2]
A =
3 4 1
2 5 9
4 1 2
>> [baris, kolom] = find(A<3)
baris =
2
3
1
3
kolom =
1
2
3
3
>> find(A<3)
ans =
2
6
7
9
>>
Pada contoh di atas, find menghasilkan pasangan indeks baris dan kolom untuk
semua elemen pada larik A yang bernilai kurang dari 3. Pada find yang kedua,
hasil yang diperoleh menyatakan posisi semua elemen pada A yang bernilai
kurang dari 3. Sebagai contoh, baris 2 kolom 1 mempunyai posisi berupa 2. Cara
penomorannya seperti berikut:
730 Pengolahan Citra, Teori dan Aplikasi
Contoh penggunaan ones:
>> C = ones(3,4)
C =
1 1 1 1
1 1 1 1
1 1 1 1
>>
Contoh penggunaan zeros:
>> C = zeros(3,4)
C =
0 0 0 0
0 0 0 0
0 0 0 0
>>
L.24 Berkas Skrip
Berkas skrip,atau kadang dinamakan berkas-M, adalah berkas teks yang dapat
diciptakan dengan menggunakan sebarang editor teks (misalnya Notepad pada
Windows). Isi berkas-M adalah deretan perintah Octave. Dengan kata lain, berkas
ini menghimpun perintah-perintah yang biasa diketikkan pada prompt pada
jendela Command. Itulah sebabnya skrip terkadang disebut sebagai program.
Untuk kepentingan latihan dalam mempraktekkan berkas skrip, perlu
disiapkan sebuah folder baru. Pada buku ini, folder yang dipakai untuk latihan
berupa C:\pcd. Folder bisa dibuat dengan menggunakan Windows Explorer.
Selanjutnya, agar direktori tersebut menjadi direktori kerja, berikan perintah
seperti berikut:
cd C:\pcd
Lampiran 731
Selain folder C:\PCD, contoh-contoh yang diberikan
dalam buku ini menggunakan folder C:\Image
sebagai tempat untuk menaruh file citra.
Untuk membuat berkas-M dengan menggunakan Octave, ikutilah langkah-
langkah berikut.
1. Gunakan editor teks.
2. Buat file baru.
3. Ketikkan perintah-perintah Octave, misalnya seperti berikut:
lebar = 3;
panjang = 6;
keliling = 2 * (panjang + lebar)
4. Simpan dengan nama yang dikehendaki pada folder C:\pcd, misalnya
keliling.m.Ekstensi berupa .m.
Dengan cara seperti itu, berkas dengan nama keliling.m telah tercipta pada folder
C:\pcd.
Agar perintah-perintah pada berkas keliling.m diproses oleh Octave, berkas
tersebut perlu dieksekusi. Caranya, ketikkan nama depan berkas tersebut pada
promptOctavedan tekanlah tombol Enter. Contoh:
>>keliling
keliling = 18
>>
Hasil di atas menyatakan bahwa isi berkas-M keliling.m telah dieksekusi.
L.25 Menambahkan Komentar
Komentar biasa digunakan dalam berkas-M dengan tujuan untuk memberikan
keterangan-keterangan bagi pembaca berkas-M. Penambahan komentar tidak
mempengaruhi hasil eksekusi karena komentar memang ditujukan kepada
pembaca isi berkas-M, bukan keterangan pada hasil eksekusi berkas tersebut.
Komentar bisa berupa tujuan berkas-M, pembuatnya, tanggal yang menyatakan
kapan berkas tersebut dibuat atau dimodifikasi ataupun penjelasan terhadap
bagian tertentu dalam berkas-M. Penjelasan-penjelasan seperti itu terkadang
berguna bagi pembaca berkas-M ataupun bahkan bagi pembuatnya pada suatu
waktu ketika dia tidak ingat lagi terhadap perintah-perintah tertentu dalam berkas-
M.
Komentar ditandai dengan awalan %. Ketika Octave menjumpai tanda %,
karakter dimulai dari tanda tersebut hingga akhir baris akan dianggap sebagai
komentar sehingga bagian tersebut tidak dijalankan oleh Octave. Contoh:
732 Pengolahan Citra, Teori dan Aplikasi
% berkas: keliling.m
lebar = 3; % Lebar persegipanjang
Pada contoh pertama, seluruh baris dijadikan sebagai komentar. Adapun pada
contoh kedua, komentar berupa:
% Lebar persegipanjang
Dengan demikian, bagian
lebar = 3;
akan tetap dijalankan oleh Octave.
Komentar pada Octave juga bisa berupa pasangan %{ dan %}. Dengan
menggunakan pasangan tersebut. Komentar bisa mencapai beberapa baris.
Contoh:
%{ Ini sebuah komentar
yang cukup panjang.
Mencakup
beberapa baris
%}
Octave dapat menerima tanda # sebagai awalan
komentar. Namun, tanda tersebut tidak berlaku pada
MATLAB.
L.26 Menuliskan Sebuah Perintah pada Beberapa Baris
Normalnya, sebuah perintah dituliskan dalam sebuah baris. Namun, sebuah
perintah dapat ditulis dalam beberapa baris asalkan ada pemberitahuan.
Pemberitahuan bahwa sebuah perintah mempunyai kelanjutan pada baris
berikutnya dilakukan dengan meletakkan tanda titik tiga kali () di akhir baris
yang kelanjutannya masih ada. Contoh:
>>x = 1 + 2 + ...
3
x = 6
>>
Lampiran 733
Pada contoh di atas, x = 1 + 2 + 3 merupakan sebuah perintah yang ditulis dalam
dua buah baris. Tanda menyatakan bahwa baris x = 1 + 2 + masih memiliki
kelanjutan.
Octave dapat menerima tanda \ sebagai pengganti
untuk menyatakan bahwa baris berikutnya adalah
lanjutan baris sebelumnya. Namun, tanda tersebut
tidak berlaku pada MATLAB.
L.27 Operator Relasional dan Logika
Banyak persoalan yang memerlukan pengambilan keputusan. Namun,
sebelum masuk ke topik pengambilan keputusan, dasar yang digunakan untuk
keperluan itu, yaitu operator relasional dan operator logika, perlu dipahami
terlebih dulu. Kedua operator ini juga menjadi komponen penting pada perintah
pengulangan. Perlu diketahui, baik operator relasional maupun operator logika
hanya menghasilkan dua kemungkinan nilai:
1) 0 (atau disebut salah / false);
2) 1 (atau disebut benar / true).
L.27.1 Operator Relasional
Operator relasional adalah semua operator yang berfungsi untuk melakukan
pembandingan. Daftar operator yang termasuk dalam kategori ini dapat dilihat
pada Tabel L.10.
Tabel L.10Daftar operator relasional
Operator Keterangan Contoh Pemakaian
< Kurang dari a < 1
<= Kurang dari atau sama
dengan
a <= 1
> Lebih dari a > 1
>= Lebih dari atau sama
dengan
a >= 1
== Sama dengan a == 1
~= Tidak sama dengan A ~= 1
Contoh berikut menunjukkan berbagai pemakaian operator relasional:
>> 3 > 1
ans =1
>> 20 < 6
ans =0
734 Pengolahan Citra, Teori dan Aplikasi
>> x = 5
x = 5
>> x >= 5
ans =1
>> x ~= 6
ans = 1
>>
Perhatikan hasil untuk masing-masing pembandingan. Nilai 0 menyatakan salah
dan nilai 1 menyatakan benar.
L.27.2 Operator Logika
Operator logika berguna untuk menggabungkan dua buah ekspresi relasional
atau untuk membalik nilai logika dari suatu ekspresi relasional. Tabel L.11
memperlihatkan daftar operator logika dan bentuk pemakaiannya.
Tabel L.11Daftar operator logika
Operator Keterangan Contoh Pemakaian
& Operator dan x & y
| Operator atau x | y
~ Operator tidak ~x
Operator & membentuk ekspresi yang menghasilkan nilai berupa benar kalau
seluruh operand bernilai benar, sedangkan operator | menghasilkan nilai benar
kalau ada operand yang bernilai benar. Tabel L.12 memperlihatkan semua
kemungkinan pada operasi dengan & maupun |.
Tabel L.12Daftar kemungkinan pada operasi dengan & dan |
X Y x & y x | y
Salah Salah Salah Salah
Salah Benar Salah Benar
Benar Salah Salah Benar
Benar Benar Benar Benar
Contoh berikut memperlihatkan penggunaan operator & :
>> x = 'A';
>> x >= 'a' & x <= 'b'
ans =0
>> x = 'c';
>> x >= 'a' & x <= 'b'
Lampiran 735
ans =0
>>
Ekspresi
x >= 'a' & x <= 'z'
dapat dipakai menentukan apakah isi variabel x berupa huruf kecil atau bukan.
Pada contoh, ketika x diisi dengan A, hasil ekspresi berupa nol (salah),
sedangkan ketika x diisi dengan c maka ekspresi menghasilkan nilai 1 (benar).
Adapun contoh berikut menunjukkan penggunaan & dan |:
>> x = 'b';
>> (x >= 'a' & x <= 'b') | (x >= 'A' & x <= 'Z' )
ans =1
>> x = '+';
>> (x >= 'a' & x <= 'b') | (x >= 'A' & x <= 'Z' )
ans =0
>>
Pada contoh di atas, ekspresi
(x >= 'a' & x <= 'z') | (x >= 'A' & x <= 'Z')
digunakan untuk memastikan apakah variabel x berisi huruf (huruf kecil atau
huruf kapital). Hasilnya berupa 0 kalau x tidak berisi huruf dan 1 kalau x berisi
huruf.
Operator ~ berfungsi untuk membalik nilai logika. Dengan bentuk pemakaian
berupa
~x
ekspresi tersebut menghasilkan:
benar kalau x bernilai salah, atau
salah kalau x bernilai benar.
Contoh:
>> a = 0;
>> ~(a == 4)
ans =1
>> ~(a == 0)
ans =0
736 Pengolahan Citra, Teori dan Aplikasi
>>
Pada contoh di atas, ekspresi
~(a == 5)
menghasilkan nilai 1 (benar) disebabkan a == 5 sendiri menghasilkan salah.
Dengan melibatkan ~, maka diperoleh keadaan sebaliknya (yaitu benar). Pada
contoh kedua,
~(a == 0)
menghasilkan nilai 0 (salah) disebabkan ekspresi a == 0 menghasilkan nilai benar.
Khusus untuk mendukung operasi atau eksklusif, Octave menyediakan
fungsi bernama xor, dengan bentuk pemakaian:
xor(x, y)
Dalam hal ini, nilai balik fungsi ditunjukkan pada Tabel L.13.
Tabel L.13Operasi atau eksklusif
x Y xor(x,y)
Salah Salah Salah
Salah Benar Benar
Benar Salah Benar
Benar Benar Salah
L.28 Pernyataan if
Untuk menangani pengambilan keputusan, Octavemenyediakan struktur if
dengan bentuk:
ifekspresi
pernyaataan_pernyataan
end
dan
ifekspresi
pernyataan_pernyataan_1
else
pernyataan_pernyataan_2
end
Pada bentuk pertama, bagian pernyataan_pernyataan (bisa lebih dari sebuah
pernyataan) hanya akan dijalankan kalau ekspresi bernilai benar.
Penjelasan pada bentuk kedua sebagai berikut.
Lampiran 737
1. Bagian
pernyataan_pernyataan_1
hanya akan dijalankan kalau ekspresi bernilai benar.
2. Bagian
pernyataan_pernyataan_2
hanya akan dijalankan kalau ekspresi bernilai salah.
Contoh berikut menunjukkan skrip yang digunakan untuk mengubah semua
nilai yang kurang dari 128 menjadi 0,sedangkan yang lebih dari atau sama dengan
128 akan diubah menjadi 1.
Program : setbiner.m
% SETBINER Mengubah data 0.255 menjadi data biner
Mat = [255 127 200 78;
128 255 255 125;
0 5 200 125;
123 124 128 255];
[tinggi, lebar] = size(Mat);
for i = 1 : tinggi
for j = 1 : lebar
if Mat(i,j) < 128
Mat(i,j) = 0;
else
Mat(i,j) = 1;
end
end
end
Mat
Akhir Program
Contoh pemanggilan skrip setbiner:
>> setbiner
Mat =
1 0 1 0
1 1 1 0
0 0 1 0
0 0 1 1
738 Pengolahan Citra, Teori dan Aplikasi
>>
L.29Pernyataan if..elseif
Khusus untuk menangani persoalan yang mempunyai tiga kemungkinan atau
lebih, Octave menyediakan struktur berbentuk seperti berikut:
ifekspresi_1
pernyataan_pernyataan_1
elseif ekspresi_2
pernyataan_pernyataan_2
else
pernyataan_pernyataan_n
end
Tanda menyatakan bahwa bagian elseif bisa lebih dari sebuah. Pada bentuk di
atas, bagian
pernyataan_pernyataan_1
hanya akan dijalankan kalau ekspresi_1 bernilai benar. Bagian
pernyataan_pernyataan_2
hanya akan dijalankan kalau ekspresi_2 bernilai benar dan ekspresi_1 bernilai
salah.
Bagian
pernyataan_pernyataan_n
hanya dijalankan kalau tidak ada ekspresi pada if maupun elseif yang bernilai
benar.
L.30 Pernyataan switch
Pernyataan switch sebenarnya merupakan bentuk lain dari perintah if yang
berguna untuk melakukan pengambilan keputusan yang melibatkan banyak
alternatif. Bentuk umum pernyataan ini:
switchekspresi
caseekspr_case_1
pernyataan_pernyataan_1
case { ekspr_case_21, ekspr_case_22, ekspr_case_23,...}
pernyataan,_pernyataan_2
...
otherwise
pernyataan_pernyataan_n
end
Lampiran
Pencocokan nilai ekspresi dan nilai pada
dimulai dari yang paling atas. Jika nilai ekspresi cocok dengan
hanya pernyataan_pernyataan_1
pencocokan dilakukan pada
yang cocok dengan ekspresi
pernyataan_pernyataan_n
case bisa melibatkan lebih dari sebuah ekspresi yang ditulis dalam tanda { } dan
antar ekspresi ditulis dengan pemis
L.31 Pernyataan while
Pernyataan while
pengulangan. Sebagai contoh, pernyataan ini
tulisan OK sebanyak 10 kali atau bahkan 1000 kali
perintah yang pendek. Bentuk pernyataan
whileekspresi
pernyataan_pernyataan
end
Bagian yang berada di antara
ekspresi bernilai benar.
Contoh :
Program : sepuluhx.m
% SEPULUHX Contoh while untuk menampilkan
% 10x tulisan
pencacah = 0;
while pencacah < 10
disp('OK');
pencacah = pencacah + 1;
end
Akhir Program
Hasilnya seperti berikut:
>>sepuluhx
OK
OK
OK
OK
OK
OK
OK
OK
Pencocokan nilai ekspresi dan nilai pada ekspresi case dilakukan secara bertingkat
dimulai dari yang paling atas. Jika nilai ekspresi cocok dengan
pernyataan_pernyataan_1 yang akan dijalankan. Jika tidak cocok,
pencocokan dilakukan pada case berikutnya. Jika tidak ada satu pun ekspresi
yang cocok dengan ekspresi switch, bagian otherwise
pernyataan_pernyataan_n) akan dieksekusi. Hal yang menarik, bagian
bisa melibatkan lebih dari sebuah ekspresi yang ditulis dalam tanda { } dan
si ditulis dengan pemisah koma.
Pernyataan while
while merupakan perintah yang berguna untuk menangani suatu
pengulangan. Sebagai contoh, pernyataan ini dapat digunakan untuk menampilkan
sebanyak 10 kali atau bahkan 1000 kali dengan me
perintah yang pendek. Bentuk pernyataan while:
pernyataan_pernyataan
Bagian yang berada di antara while dan end dijalankan terus-
ekspresi bernilai benar.
Program : sepuluhx.m
% SEPULUHX Contoh while untuk menampilkan
% 10x tulisan OK
while pencacah < 10
pencacah = pencacah + 1;
Hasilnya seperti berikut:
739
dilakukan secara bertingkat
dimulai dari yang paling atas. Jika nilai ekspresi cocok dengan ekspr_case_1,
yang akan dijalankan. Jika tidak cocok,
berikutnya. Jika tidak ada satu pun ekspresi case
otherwise (yaitu
) akan dieksekusi. Hal yang menarik, bagian ekspresi
bisa melibatkan lebih dari sebuah ekspresi yang ditulis dalam tanda { } dan
merupakan perintah yang berguna untuk menangani suatu
digunakan untuk menampilkan
dengan menggunakan
-menerus selama
740
OK
OK
>>
Hal yang terpenting yang perlu diperhatikan, pada pengulangan seperti
ada variabel yang dijadikan sebagai pencacah untuk menghitung tulisan
yang sudah ditampilkan. Perintah
pencacah = pencacah + 1;
menaikkan isi variabel pencacah setiap k
saat, ketika pencacah bernilai 11, ekspresi pada
salah. Keadaan itulah yang mengakhiri pengulangan
L.32 Pernyataan for
Octave menyediakan pernyataan
pengulangan, terutama untuk menangani pencacahan. Format pernyataan
for variable = ekspr
pernyataan_pernyataan
end
Contoh berikut menunjukkan penggunaan
sampai dengan 10.
Program :
% CONTFOR Contoh for untuk menampilkan bilangan 1 s/d 10
for i = 1 : 10
disp(num2str(i));
end
Akhir Program
Hasil pemanggilan contfor:
>> contfor
1
2
3
4
5
6
7
8
9
Pengolahan Citra, Teori dan Aplikasi
Hal yang terpenting yang perlu diperhatikan, pada pengulangan seperti
ada variabel yang dijadikan sebagai pencacah untuk menghitung tulisan
yang sudah ditampilkan. Perintah
pencacah = pencacah + 1;
menaikkan isi variabel pencacah setiap kali tulisan OK telah ditampilkan.
saat, ketika pencacah bernilai 11, ekspresi pada while yaitu pencacah < 11 bernilai
salah. Keadaan itulah yang mengakhiri pengulangan while.
Pernyataan for
menyediakan pernyataan for juga untuk kepentingan penanganan
pengulangan, terutama untuk menangani pencacahan. Format pernyataan
ekspr
pernyataan_pernyataan
Contoh berikut menunjukkan penggunaan for untuk menampilkan bilangan dari 1
Program : contfor.m
% CONTFOR Contoh for untuk menampilkan bilangan 1 s/d 10
disp(num2str(i));
Hasil pemanggilan contfor:
Pengolahan Citra, Teori dan Aplikasi
Hal yang terpenting yang perlu diperhatikan, pada pengulangan seperti di depan,
ada variabel yang dijadikan sebagai pencacah untuk menghitung tulisan OK
telah ditampilkan. Suatu
yaitu pencacah < 11 bernilai
ntuk kepentingan penanganan
pengulangan, terutama untuk menangani pencacahan. Format pernyataan for:
untuk menampilkan bilangan dari 1
% CONTFOR Contoh for untuk menampilkan bilangan 1 s/d 10
Lampiran
10
>>
Contoh penggunaan larik dalam ekspresi
Program :
% CONTFOR2 Contoh for untuk menampilkan bilangan 1 s/d 10
for i = [8 9 4 6 3]
disp(num2str(i));
end
Akhir Program
Hasil pemanggilan contfor2
>>contfor2
8
9
4
6
3
>>
Perhatikan bahwa nilai yang ditampilkan oleh
L.33 Pernyataan break
Pernyataan break
ataupun while. Bila diletakkan dalam suatu
(while), break hanya memberikan efek mengakhiri
break dapat dilihat pada Gambar L.2
Gambar L
Contoh penggunaan larik dalam ekspresi for dapat dilihat pada skrip berikut.
Program : contfor2.m
% CONTFOR2 Contoh for untuk menampilkan bilangan 1 s/d 10
for i = [8 9 4 6 3]
disp(num2str(i));
contfor2:
Perhatikan bahwa nilai yang ditampilkan oleh disp berasal dari larik
Pernyataan break
break berguna untuk mengakhiri eksekusi suatu pernyataan
. Bila diletakkan dalam suatu for (while) yang berad
hanya memberikan efek mengakhiri for (while) terdalam.
dapat dilihat pada Gambar L.2.
for i = 1:10,
if i == 5
break
end
end
Pernyataan_sesudah_for
Gambar L.2Pernyataan break mengakhiri eksekusi for
741
dapat dilihat pada skrip berikut.
% CONTFOR2 Contoh for untuk menampilkan bilangan 1 s/d 10
berasal dari larik [8 9 4 6 3].
berguna untuk mengakhiri eksekusi suatu pernyataan for
) yang berada dalam for
) terdalam. Ilustrasi
Pernyataan break mengakhiri eksekusi for
742
Contoh untuk memperlihatkan efek
Program : contbr.m
% CONTBR Contoh break pada for
for i = 1 : 5
if i == 3
break;
end
disp(num2str(i));
end
Akhir Program
Hasil pemanggilan contbr:
>>contbr
1
2
>>
Pernyataan break dieksekusi saat
yang ditampilkan oleh disp adalah 2.
L.34 Pernyataan continue
Seperti halnya break
while. Secara umum,
berikutnya. Pada pernyataan
bawahnya akan diabaikan dan variabel pencacah
ke nilai berikutnya. Lalu, eksekusi dilanjutkan ke bagian awal
tubuh for sepanjang batas akhir pada variabel
Program :
% CONTCONT Contoh continue pada for
for i = 1 : 5
if i == 3
continue;
end
disp(num2str(i));
end
Akhir Program
Pengolahan Citra, Teori dan Aplikasi
Contoh untuk memperlihatkan efek break:
Program : contbr.m
% CONTBR Contoh break pada for
disp(num2str(i));
Hasil pemanggilan contbr:
dieksekusi saat i bernilai 3. Itulah sebabnya, nilai
yang ditampilkan oleh disp adalah 2.
Pernyataan continue
break, pernyataan continue digunakan bersama
. Secara umum, continue digunakan untuk mengatur eksekusi ke iterasi
berikutnya. Pada pernyataan for, continue membuat semua pernyataan di
bawahnya akan diabaikan dan variabel pencacah for dinaikkan (atau diturunkan)
ke nilai berikutnya. Lalu, eksekusi dilanjutkan ke bagian awal pernyataan dalam
sepanjang batas akhir pada variabel for belum tercapai.
Program : contcont.m
% CONTCONT Contoh continue pada for
continue;
disp(num2str(i));
Pengolahan Citra, Teori dan Aplikasi
bernilai 3. Itulah sebabnya, nilai i terakhir
digunakan bersama for atau
digunakan untuk mengatur eksekusi ke iterasi
membuat semua pernyataan di
dinaikkan (atau diturunkan)
pernyataan dalam
belum tercapai. Contoh:
Lampiran 743
Hasil pemanggilan contcont:
>>contcont
1
2
4
5
>>
Tampak bahwa nilai 3 tidak ditampilkan akibat pernyataan continue dieksekusi
sewaktu i bernilai 3. Namun, perhatikan bahwa berbeda dengan break, continue
membuat nilai 4 dan 5 tetap ditampilkan.
744 Pengolahan Citra, Teori dan Aplikasi