modul pcd 1

25
PRAKTIKUM PENGOLAHAN CITRA MODUL PRAKTIKUM PENGOLAHAN CITRA DENGAN MATLAB 7.0 CHAPTER 1 INTRODUCTION TO MATLAB 1

Upload: andimizhardy4471

Post on 01-Jul-2015

420 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

MODUL

PRAKTIKUM PENGOLAHAN

CITRA

DENGAN

MATLAB 7.0

CHAPTER 1

INTRODUCTION TO MATLAB

1

Page 2: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

TABLE OF CONTENTS

CHAPTER 1 PENGENALAN MATLAB

PENDAHULUAN ….. 3

WINDOW PADA MATLAB ….. 4

CURRENT DIRECTORY ….. 4

COMMAND HISTORY ….. 4

COMMAND WINDOW ….. 4

WORKSPACE ….. 5

MATLAB EDITOR ….. 5

FIGURE WINDOW ….. 5

MATLAB HELP ….. 6

DASAR PROGRAMING PADA MATLAB ….. 7

MENULISKAN KOMENTAR ….. 7

MENULISKAN VARIABLE ….. 7

PERINTAH DASAR ….. 7

TIPE DATA ….. 8

FUNGSI-FUNGSI MATRIKS ….. 10

OPERASI PADA MATRIKS ….. 10

OPERATOR ….. 11

FUNGSI MATEMATIKA ….. 12

PEMBUATAN FUNGSI ….. 13

FLOW CONTROL PADA MATLAB ….. 13

STATEMENT IF – ELSE ….. 13

STATEMENT SWITCH ….. 14

STATEMENT WHILE ….. 15

STATEMENT FOR ….. 15

OPERATOR LOGIKA PADA MATLAB ….. 16

OUTPUT DAN INPUT PADA MATLAB ….. 17

OUTPUT ….. 17

INPUT ….. 18

2

Page 3: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

UJI PEMAHAMAN ….. 19

CHAPTER 1

PENGENALAN MATLAB

PENDAHULUAN

MATLAB singkatan dari Matrix Labotatory, merupakan sebuah software yang dibuat

oleh The Mathwork.inc ( http://www.mathworks.com ). Sebuah program untuk

komputasi numerik yang merupakan bahasa pemrograman matematika yang dibentuk

dengan dasar menggunakan sifat dan bentuk matriks. Pada mulanya program ini

merupakan proyek dari LINPACK dan EISPACK dan dikembangkan menggunakan

bahasa FONTRAN, namun sekarang merupakan produk komersial dari Mathworks.Inc

yang dalam perkembangan selanjutnya dikembangkan menggunakan bahasa C++ dan

assembler.

MATLAB merupakan bahasa pemrograman tingkat tinggi berbasis pada matriks yang

digunakan untuk menyelesaikan masalah – masalah :

Matematika dan Komputasi

Pengembangan dan Algoritma

Pemrograman Modeling, simulasi, dan pembuatan prototype

Analisa data, eksplorasi dan visualisasi

Analisis numerik dan statistik

Pengembangan aplikasi teknik

3

Page 4: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

WINDOW PADA MATLAB

CURRENT DIRECTORY

Window yang menampilkan isi dari direktori kerja saat menggunakan MATLAB.

Default alamat direktori berada dalam folder work pada C:\MATLAB7\work.

COMMAND HISTORY

Window yang menyimpan perintah – perintah apa saja yang sebelumnya

dilakukan oleh pengguna terhadap MATLAB.

COMMAND WINDOW

Window yang berfungsi sebagai tempat yang berfungsi untuk menjalankan fungsi,

menjalankan proses – proses, serta melihat isi variabel.

4

Page 5: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

WORKSPACE

Window yang berfungsi untuk menampilkan seluruh variabel – variabel yang

sedang aktif pada saat pemakaian MATLAB.

MATLAB EDITOR

Windows yang merupakan tool yang disediakan MATLAB sebagai editor script

MATLAB (M-File). Walaupun sebenarnya script ini dapat menggunakan editor

yang lain seperti notepad.

FIGURE WINDOW

Windows yang berfungsi untuk menampilkan hasil visualisasi dari script

MATLAB. Selain sebagai visualisasi output, windows ini juga berfungsi sebagai

media input yang interaktif.

5

Page 6: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

MATLAB HELP

Window yang menyediakan sistem help yang dapat diakses dengan perintah help.

Window ini dapat digunakan untuk mencari berbagi informasi seperti fungsi

trigonometri, eksponensial, dan lain-lain.

6

Page 7: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

DASAR PROGRAMING PADA MATLAB

MENULISKAN KOMENTAR

Menuliskan baris komentar pada MATLAB harus didahului dengan pemberian

symbol %. Setiap baris yang didepannya didahului dengan tanda % akan menjadi

sebuah komentar.

Misalnya : % MATLAB 7.0

MENULISKAN VARIABLE

Menuliskan variable pada MATLAB didahului dengan mendeklarasikan nama

variable diikuti tanda = setelah itu nilai dari variabel.

Misalnya : x = 7;

s = ‘MATLAB 7.0’;

PERINTAH DASAR

Perintah – perintah dasar yang dapat dilakukan pada command window maupun

editor adalah sebagai berikut:

clc : merupakan syntax untuk membersihkan layar command window

clear : merupakan syntax untuk membersihkan variabel local

whos : merupakan syntax untuk mendapatkan informasi semua variabel

yang aktif pada workspace. Whos dapat diikuti dengan nama

variabel jika ingin menampilkan keterangan suatu variabel tertentu.

7

Page 8: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Gambar 1.1 Syntax whos

size : merupakan perintah untuk mendapatkan ukuran suatu variabel

Gambar 1.1 Syntax size

semi colon (;) : terdapat perbedaan dasar penggunaan titik koma pada

akhir perintah dengan tidak menggunakan. Apabila tidak

digunakan pada akhir perintah, maka hasil perintah akan

ditampilkan pada command window

Gambar 1.1 Penggunaan titik koma

TIPE DATA

Terdapat beberapa jenis tipe data pada MATLAB seperti pada bahasa

pemrograman lainnya.

8

Page 9: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Tipe Numerik : merupakan tipe data berupa angka. Data ini pada

MATLAB secara general bertipe double. Apabila akan

menuliskan pecahan gunakan titik(.).

a=7; %double

b=7.5 %pecahan

Tipe Character : merupakan tipe data berupa satu karakter tunggal

c=’a’; %karakter

Tipe String : merupakan tipe data berupa karakter jamak

d='MATLAB 7.0'; %string

Tipe Matriks : merupakan array yang berisi tipe data lain, misalnya

karakter atau numeric. Matriks tidak dapat disamakan

dengan array seperti bahasa pemrograman lainya. Pada

MATLAB matriks dan array (pada bahasa

pemrograman lainnya) berbeda secara jenis.

e=[1 2 3]; %vektor

(matriks baris)

f=[1 2 3;4 5 6]; %double

array

g=[1,2,3;4,5,6]; %double

array

h=['m','a','t','l','a','b']; %char

array

i=['aaaa' 'bbbb' 'cccc';

'dddd' 'eeee' 'ffff']; %char array

Tipe Cell-Array : tipe data ini lebih menyerupai tipe data array pada

bahasa pemrograman pada umumnya. Panjang karakter

9

Page 10: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

di dalam cell array tidak harus sama dengan lainnya,

berbeda dengan matriks(array).

j = ['aaaa';'bbbb';'cccc']; %tipe

data array (matriks)

k = {'Yes';'No';'Goodbye'}; %tipe

data cell array

FUNGSI-FUNGSI MATRIKS

zeros :digunakan apabila kita ingin membuat suatu matriks yang semua datanya

berisi 0

Misalnya : a = zeros (3, 3);

ones :digunakan apabila kita ingin membuat suatu matriks yang semua datanya

berisi 1

Misalnya : b = ones(3, 3);

eye :digunakan apabila kita ingin membuat suatu matriks identitas

Misalnya : c = eye(3, 3);

rand :digunakan apabila kita ingin membuat matriks dengan data random

dengan distribusi uniform

Misalnya : d = rand(3, 3);

randn :digunakan apabila kita ingin membuat matriks dengan data random

dengan distribusi normal

Misalnya : e = randn(3, 3);

OPERASI PADA MATRIKS

Ditentukan matriks-matriks berikut:

A=[1 2 3];

B=[4 5 6;7 8 9];

10

Page 11: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

C=[1 3 5;2 4 6;7 8 9];

Maka Terhadap matriks-matriks tersebut dapat dikenai beberapa operasi

pemanggilan elemen-elemennya dan operasi lainnya.

D=A(1,3); %memanggil baris kesatu kolom

ketiga dari matriks A

E=C(3,:); %memanggil baris ketiga

matriks C

F=C(:,3); %memanggil kolom ketiga

matriks C

G=C(2:3,1:2); %memanggil baris 2 sampai 3

dan kolom 1 sampai 2

H=[A(1,2) B(2,3) C(3,1)]; %mendapatkan variabel

matriks H dengan mengambil variabel

matriks lain

C(:,3)=[]; %menghapus kolom ketiga

matriks C

OPERATOR

Operator pada MATLAB umumnya seperti yang biasa kita jumpai pada bahasa

pemrograman lainnya. Namun dalam penggunaannya terhadap matriks terdapat

beberapa tambahan tertentu.

Tabel 1.1 Operator pada MATLAB

OPERATOR TIPE DATA SINTAX

Penambahan Numerik dan matriks A + B

Pengurangan Numerik dan matriks A - B

11

Page 12: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Perkalian Numerik dan matriks A * B

Perkalian Perbagian Matriks A .* B

Pembagian Numerik dan matriks A / B

Pembagian Perbagian Matriks A ./ B

Pemangkatan Numerik dan matriks A ^ B

Pemangkatan

perbagian

Matriks A..^B

Ditentukan matriks-matriks berikut:

X=[1 2 3;4 5 6;7 8 0];

Y=[2 4 6;0 3 7;9 8 1];

Maka Terhadap matriks-matriks tersebut dapat dikenai beberapa operasi

menggunakan operator-operator di atas.

AA=X+Y; %operasi jumlah pada matriks

AB=X-Y; %operasi kurang pada matriks

AC=X*Y; %operasi kali pada matriks

AD=X.*Y; %operasi kali per-elemen

AE=X./Y; %operasi bagi per-elemen

AK=X.^Y; %pemangkatan perbagian

FUNGSI MATEMATIKA

Fungsi – fungsi matematika yang digunakan pada MATLAB diantaranya adalah

sebagai berikut :

12

Page 13: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Tabel 1.2 Fungsi-fungsi matematika pada MATLAB

FUNGSI KEGUNAAN CONTOH

abs(x) Menghasilkan nilai absolut dari x B = -5; A = abs( B );

exp(x) Menghasilkan nilai eksponensial

natural, ex

F = 2; E = exp( F );

log(x) Menghasilkan nilai logaritma natural

x, lnx

H = 100; G =

log( H );

sqrt(x) Menghasilkan akar dari nilai x, √x L = 16; K =

sqrt( L );mod(x, y) Menghasilkan nilai modulus (sisa

pembagian x terhadap y)

N = 9; M = mod( N,3

);

PEMBUATAN FUNGSI

Dalam MATLAB, kita dapat membuat suatu fungsi yang dimana terdapat

berbagai inputan data dan proses, sehingga dihasilkan suatu keluaran yang kita

inginkan dari sekumpulan proses dalam fungsi tersebut.

Syntax : Function [Output Value ] = Funtion Name (Input Value)

- - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - -

Misalnya : function [x, y] = Fungsi1 (a, b, c)

% this is a function

x = a * b / c;

y = a + (c ^ b);

x

y

13

Page 14: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Sekarang ketikkan Fungsi1(3, 2, 1) pada command window. Jangan lupa bahwa

nama fungsi untuk kasus ini harus sama dengan nama file MATLABnya, yaitu

Fungsi1.m.

FLOW CONTROL PADA MATLAB

Dalam MATLAB, kita juga mengenal flow control seperti halnya pada bahasa

pemrograman yang lainnya. Flow control terdiri dari empat macam yang

digunakan untuk mengatur aliran data.

STATEMENT IF – ELSE

Syntax : Contoh :

if ekspresi1

statement1

elseif ekspresi2

statement2

else

statement3

end

Pada contoh ini bila kita memasukkan nilai A lebih besar daripada B, maka pada

command window akan ditampilkan ‘A lebih besar dari B’, demikian pula

sebaliknya. Menampilkan ‘ A sama dengan B’ bila nilai masukan A sama dengan

nilai B.

14

function IFELSE(A,B)

if A > Bdisp('A lebih besar dari B')

elseif A == Bdisp('A sama dengan B')

elsedisp('A lebih kecil dari B')

end

Page 15: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

STATEMENT SWITCH

Syntax : Contoh :

switch variabel

case ekspresi1

statement1

case ekspresi2

statement2

otherwise

statement3

end

Pada contoh ini bila kita memasukkan nilai 1 pada x akan menampilkan ‘x is 1’

pada command window, menampilkan ‘x is 2, 3, or 4’ bila x = 2, 3, atau 4,

menampilkan ‘x is 5’ jika nilai x = 5. Statement ‘x is not 1, 2, 3, 4, or 5’ akan

ditampilkan bila x tidak dalam jangkauan 1 sampai 5.

STATEMENT WHILE

Syntax : Contoh :

while ekspresi

statement1

statement2

. . . . . . . . .

statementN

end

15

function SWITCH(x)

switch xcase 1

disp('x is 1')

case {2,3,4}disp('x is 2, 3 or 4')

case 5disp('x is 5')

otherwisedisp('x is not 1, 2, 3, 4

or 5')

function WHILE(x)

%selama nilai x kurang dari 10

while x < 10

disp('nilai saat ini : ');

%tampilkan nilai xx

%increment nilai xx = x+1;

end

Page 16: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Pada contoh ini function akan dijalankan selama nilai x yang dimasukkan kurang

dari 10. Hasil keluaran pada command window akan menampilkan teks ‘nilai saat

ini: ‘ beserta nilai x yang diulang hingga x = 9.

STATEMENT FOR

Syntax : Contoh :

for index = start : increment : stop

statement1

statement2

. . . . . . . . .

statementN

end

Pada contoh ini function dengan nama FOR dengan nilai keluaran a akan

menampilkan nilai hasil pemangkatan (y^2) dari y dengan nilai 1 sampai 10.

Fungsi tidak membutuhkan parameter inputan, oleh karena itu kita tidak perlu

memasukkan nilai y pada command window.

OPERATOR LOGIKA PADA MATLAB

Seperti bahasa pemrograman lain pada umumnya, MATLAB juga memiliki

jenis – jenis operator logika yang digunakan untuk kepentingan tertentu untuk

perbandingan, mungkin pada ekspresi if atau while.

Tabel 1.3 Operator logika pada MATLAB

OPERATOR SYNTAX KETERANGAN

16

function a = FOR

for y = 1:10

a(y) = y^2;

end

Page 17: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Lebih dari A > B A lebih dari B

Lebih dari sama dengan A >= B A lebih dari sama dengan B

Kurang dari A < B A kurang dari B

Kurang dari sama dengan A <= B A kurang dari sama dengan B

Sama dengan A == B A sama dengan B

Tidak sama dengan A ~= B A tidak sama dengan B

OUTPUT DAN INPUT PADA MATLAB

Seperti bahasa pemrograman lain pada umumnya, MATLAB juga memiliki

ouputan dan inputan data.

OUTPUT

Menampilkan output pada MATLAB dapat dilakukan dua perintah, yaitu:

PERINTAH disp

Perintah disp merupakan perintah tunggal, sehingga apabila ingin menampilkan

beberapa tampilan harus dituliskan perintah disp berulang – ulang.

Syntax : disp(…..)

Contoh : a = 'MATLAB 7.0 for Image Processing'

disp(a);

17

Page 18: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

Perintah disp menampilkan data yang isi di dalamnya harus merupakan string,

jadi jika ingin menampilkan sebuah angka terlebih dahulu harus dirubah kedalam

bentuk string dengan function num2str( ).

Contoh : nim = 0818077

disp(['Nim saya adalah

',num2str(nim)])

PERINTAH fprintf

Syntax : fprintf(format, A, …..)

Format adalah bentuk penulisan yang akan ditampilkan seperti jumlah angka

decimal, tab, lebar karakter, penulisan di baris baru, dan lain – lain. A adalah

nama variabel yang isinya akan dicetak.

Tabel 1.4 Format data pada MATLAB

KONVERSI KETERANGAN

%c Karakter tunggal

%s Karakter jamak ( string )

\n Penulisan dituliskan pada baris baru

Contoh : a = 'MATLAB 7.0'

b = 'for Image Processing'

fprintf ( ' %s \n ', a);

fprintf( ' %s \n ', a, b);

fprintf(' %s %s \n ', a, b);

18

Page 19: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

INPUT

Inputan pada MATLAB dapat dilakukan dengan perintah input yang membaca

data dari keyboard. Apabila di run akan muncul teks di layar command window

dan menunggu inputan dari user yg diakhiri dengan penekanan tombol enter,

apabila langsung dienter maka teks akan berisi matriks kosong.

Syntax : nama_variabel = input (‘teks’)

Contoh1 : nama = input('Masukkan Nama Anda : ','s');

disp('Nama yang Anda Masukkan : ');

disp(nama);

Contoh2 : nilai = input('Masukkan Nilai Anda : ');

disp('Nilai yang Anda Masukkan : ');

disp(nilai);

UJI PEMAHAMAN

SOAL 1 : Persamaan fungsi

Tentukan nilai fungsi tersebut dengan nilai-nilai t=25, x=43, y=15.25, z=8.2 !

19

M = 4x2 + 3y + 10

N = e (2 * x) + x

O = sqrt ((1 / (x + y)) + (1 / (t + z)))

P = 4 * (e(-x / 2)) * sin (pi * x)

Page 20: Modul PCD 1

PRAKTIKUM PENGOLAHAN CITRA

SOAL 2 : Penentuan volume silinder berlubang

Sebuah silinder mempunyai diameter luar 6.3125 dan diameter dalam 5.762 , tentukan volumenya bila diketahui rumus untuk mencari volumenya :

V = 43 π (RE3 − RI3)

Dimana RE adalah diameter luar dan RI adalah diameter dalam !

SOAL 3 : Perkalian matriks

1 3 5 6

A = -7 2 2 B = 5

4 -1 1 -7

3 x 3 1 x 3

Tentukan hasil perkalian matriks A x B !

20