petunjuk umum - · pdf filejika pada praktikum yang akan anda laksanakan ada tugas untuk...

33
Pemrograman MATLAB ------------------------------------------------------------------------------------------------------ PETUNJUK UMUM 1. Sebelum anda melaksanakan praktikum, pelajari dahulu dengan seksama BAB yang akan anda laksanakan. 2. Laksanakan praktikum sesuai dengan urutan BAB yang ada. 3. Selama anda melaksanakan praktikum dilarang untuk membawa makanan dan minuman, dan makan, minum, atau merokok. 4. Setelah anda selesai melaksanakan praktikum, buatlah rangkuman catatan apa yang telah anda kerjakan dan anda temukan selama anda melaksanakan praktikum. 5. Jika pada praktikum yang akan anda laksanakan ada tugas untuk membuat program, siapkan draft program dan datanya sebelum anda melaksanakan praktikumnya. Kemudian serahkan hasil pekerjaan tugas anda kepada Asisten Praktikum. 6. Ikutilah petunjuk pelaksanaan praktikum ini dengan sebaik-baiknya. 7. Format laporan hasil tugas praktikum : a. Nama praktikan : ........................................ b. NIM : ........................................ c. Hasil program : ...................................... ....................................... dst (jika ada tugas membuat program) d. Hasil analisa : ...................................... ....................................... dst tanda tangan Asisten =========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 1

Upload: vohanh

Post on 09-Feb-2018

227 views

Category:

Documents


2 download

TRANSCRIPT

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

PETUNJUK UMUM

1. Sebelum anda melaksanakan praktikum, pelajari dahulu dengan seksama BAB yang

akan anda laksanakan. 2. Laksanakan praktikum sesuai dengan urutan BAB yang ada.

3. Selama anda melaksanakan praktikum dilarang untuk membawa makanan dan minuman, dan makan, minum, atau merokok.

4. Setelah anda selesai melaksanakan praktikum, buatlah rangkuman catatan apa yang

telah anda kerjakan dan anda temukan selama anda melaksanakan praktikum. 5. Jika pada praktikum yang akan anda laksanakan ada tugas untuk membuat program,

siapkan draft program dan datanya sebelum anda melaksanakan praktikumnya. Kemudian serahkan hasil pekerjaan tugas anda kepada Asisten Praktikum.

6. Ikutilah petunjuk pelaksanaan praktikum ini dengan sebaik-baiknya.

7. Format laporan hasil tugas praktikum :

a. Nama praktikan : ........................................

b. NIM : ........................................

c. Hasil program : ...................................... ....................................... dst (jika ada tugas membuat

program)

d. Hasil analisa : ...................................... ....................................... dst

tanda tangan Asisten

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 1

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB I

PENGENALAN MATLAB

Untuk memulai bekerja dengan MATLAB, lakukan langkah berikut :

1. Dari desktop monitor anda, klik 2 kali icon Matlab

2. Dari jendela Matlab yang ada di hadapan anda, anda bisa langsung menjalankan

perintah-perintah Matlab.

3. Untuk mengakhiri program MATLAB, pilih menu File kemudian Exit.

Sebagai latihan pertama, cobalah anda jalankan beberapa perintah berikut ini

langsung dari prompt MATLAB (>>). Perhatikan apa yang dilakukan oleh perintah-

perintah tersebut, catat dan amati !

>>info <enter>

>>demo <enter>

>>tour <enter>

>>intro <enter>

>>who <enter>

>>whos <enter>

>>whatsnew <enter>

Untuk mengetahui perintah-perintah yang ada pada program MATLAB dapat dilihat

dengan menggunakan perintah help seperti di bawah ini. Jalankan perintah help ini diikuti

dengan instruksi (perintah) info, demo, tour, intro, whos, dan whatsnew seperti yang telah

anda lakukan di atas. Perhatikan hasil yang diberikan.

>>help <instruksi/perintah> <enter>

contoh :

>> help who <kemudian tekan enter>

Salah satu fungsi MATLAB adalah sebagai kalkulator. Untuk itu, coba jalankan

perintah untuk menghitung seperti berikut (setiap akhir pemberian instruksi / perintah,

selalu diakhiri dengan penekanan tombol enter). perhatikan hasilnya, serta variabel

penampungnya.

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 2

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> 2+3

>> 3/2

perhatikan perbedaan hasil yang diberikan oleh instruksi di atas (3/2) dengan hasil yang

diberikan oleh instruksi berikut :

>> 3\2

apa yang bisa anda jelaskan ?

Lanjutkan dengan perintah-perintah berikut :

>> 5*6

>> 100-5

>> 12^7

>> 3* ( 2-4 )/2 .5^3

>> x = 8;

>> y = 5;

>> z = x * y kemudian >> x * y

perhatikan hasilnya, catat perbedaan-perbedaan yang anda temukan, dan analisalah !

Bilangan Kompleks

Bagian imaginari dan bilangan kompleks, 1− , disimpan dalam MATLAB dengan

huruf i atau j. Contoh operasi yang bisa dilakukan dengan menggunakan operasi bilangan

kompleks adalah seperti yang ada di bawah ini. Cobalah instruksi-instruksi tersebut,

kemudian perhatikan hasil yang diberikan. Perhatikan hasil outputnya dan amati kegunaan

dari fungsi-fungsi yang ada, serta perhatikan variabel penampungnya (variabel penyimpan

hasil output).

>> y=i^2

>> real(x)

>> imag(x)

>> conj (x)

Untuk operasi Aritmatika atas Bilangan Kompleks, bisa anda perhatikan dan coba instruksi

seperti di bawah ini :

>> x=3+4i

>> y=2+5j =========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 3

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> zl=x+y

>> z2=x-y

>> z3=x*y

>> z4=x/y

>> z5=x^y

>> z6=x^2

>> a=real(x)

>> b=imag(x)

>> c = conj(x)

Cara menggambarkan bilangan kompleks secara grafis, bisa anda berikan perintah berikut :

>> plot (a,b, ' * ' )

perhatikan hasilnya !

Cara yang lebih singkat untuk menggambarkan bilangan kompleks adalah sebagai berikut :

>> plot(x,’*’)

Perhatikan hasilnya, dan coba bandingkan dengan cara sebelumnya (plot(a,b,’*’)). Apakah

ada perbedaan hasil yang diberikan? Mengapa tidak menggunakan parameter a dan b ?

Berikan penjelasannya!

Selanjutnya bisa anda coba untuk perintah-perintah di bawah ini :

>> a = sin(pi)

>> b = sin(pi)^2+cos(pi)^2

>> c = atan(pi)

>> d = atan(5)

TUGAS :

Cobalah sekali lagi perintah/instruksi-instruksi seperti yang telah anda lakukan di atas,

tetapi selesai mengetikkan instruksi dalam satu barisnya, akhiri dengan tanda titik koma (;)

kemudian baru enter.

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 4

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

Contoh :

>> x = 6 + 7

>> x = 6 + 7;

Apa yang anda peroleh ? Bandingkan hasilnya dan perbedaan yang terjadi (jika

ada)!. Coba lagi untuk instruksi-instruksi yang lain yang telah anda coba sebelumnya!

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 5

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB II

TIPE DATA

Tipe data dasar yang digunakan dalam MATLAB adalah string, scalar, dan matriks.

Untuk mengetahui lebih jauh tentang tipe-tipe data ini, cobalah anda berikan instruksi-

instruksi berikut.

A. STRING

>> saya = ‘Mahasiswa Matematika FKIP – UMP’;

>> vartest = ‘test aja ....’;

bandingkan dengan contoh berikut ini :

>> saya = “Mahasiswa Matematika FKIP – UMP”;

>> vartest = ”test aja ...”;

apa yang anda temukan? Jelaskan !

Beberapa fungsi built-in yang dapat digunakan untuk manipulasi data tipe string

dapat anda coba perintah-perintah dibawah ini:

>> disp(‘Praktikum Pemrograman MATLAB ‘)

>> x=1:5; disp(x)

>> Nama=input('Masukkan nama Anda !’,’s’);

>> disp (‘Nama yang anda masukkan =’ ); disp (Nama)

>> z = ‘Percobaan Command fprintf ‘;

>> y= ‘Ini test kedua ‘;

>> fprintf(‘%s \n’, z)

>> fprintf(‘%s \n %s \n’, z, y)

>> fprintf(‘%s %s \n’, z, y)

Perhatikan hasil yang diberikan, coba amati perbedaan antara penggunaan disp dengan

fprintf , dan penggunaan tanda \n dan %s.

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 6

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

B. SCALAR

Untuk mengetahui kerja MATLAB dengan tipe data scalar, bisa anda lakukan

perintah seperti di bawah ini :

>> x = 0 : .1 : 1; y = [x; sin(x)];

>> fid = fopen(c:\folder_anda\sin.txt,’w’);

>> fprintf (fid, ‘%6.2f %12.8f\n’, y);

>> fclose (fid);

Perintah ini akan menyimpan tabel berisikan x dan sin(x) di file sin.txt yang berada pada

folder anda. Coba bukalah file sin.txt tersebut dan perhatikan datanya ! (file anda ini bisa

dilihat dengan mengaktifkan notepad, kemudian buka filenya.

Tugas :

Tampilkan data tersebut di layar (screen) monitor anda (bukan di dalam file)!

C. ARRAY

Untuk tipe data array, anda bisa mencoba instruksi-instruksi berikut ini :

>> a = zeros(10)

apa yang dihasilkan ?

Untuk mengasign nilai sebuah array, lakukan contoh perintah berikut, dan

perhatikan hasil yang diberikan !

>> x=[3 4 5 6]

Apa yang dihasilkan ?

Lanjutkan dengan perintah berikut :

>> y=zeros(10)

>> y([l 5 10])=[0.1 0.3 0.2]

Bagaimana hasilnya?

Untuk setiap perintah berikut ini, perhatikan apa yang terjadi, amati, dan analisalah!

>> x = 3:1:6;

>> x

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 7

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> x=6:-l:3;

>> x

>> y=x(2:4)

>> y=x([l 3 5])

>> x = x (1: length (x )-l)

>> x([3 5])=[ ]

Menambahkan element dari array

Sebagai contoh, kita akan lakukan penambahan sebagai berikut, perhatikan hasilnya !

Sebelumnya perhatikan nilai dari variabel x, catat, dan amati!

>> x = [x 1 2]

>> x = [l 2 x 3]

Apa yang anda temukan, catat dan analisalah !

Mengakses sebagian element array

Apa yang dilakukan dengan perintah seperti di bawah ini ?

>> y = x(2:4)

>> y = x ([l 3 5])

cobalah dengan akses elemen yang lain ! Perhatikan hasilnya dan catatlah!

Manghapus element array

Lihat contoh berikut!

a. Menghapus element terakhir dari array x

>> x = x (1: length (x )-l)

b. Menghapus element pada index tertentu

>> [ 1 2 3 4 5 6 ];

>> x ([3 5]) = [ ]

berapa nilai x sekarang ? mengapa demikian?

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 8

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

TUGAS :

1. Buatlah sebuah deret angka (array) yang dimulai dari angka 5 sampai dengan 100

dengan selisih dari dua angka yang berdekatan adalah 5. (5, 10, ..., 100).

2. Buatlah sebuah file test.txt di direktori anda dengan data sebagai berikut :

1 2 3 55 6 7 8 10 23

22 5 76 2 34 21 8 90 11

Baca data file anda tersebut dengan memasukkannya ke dalam variabel vektor dengan

cara sebagai berikut dan perhatikan hasilnya :

>> fd=fopen( ‘c:\folder_anda\test.txt’ );

>> vektor =fscanf(fd,’%g’,inf);

>> fclose(fd);

Sekarang variabel vektor telah berisi data seperti di atas. Sebagai tugas yang harus anda

lakukan adalah tampilkan isi variabel vektor tersebut!

3. Sekarang buatlah file fstr.txt yang disimpan di folder anda dengan informasi berikut :

Ini adalah contoh

menggunakan fscanf untuk data string !!!

Baca data file anda tersebut dengan memasukkannya ke dalam variabel vekstr kemudian

tampilkan isi variabel tersebut! (langkah seperti pada nomor 2).

Ini adalah cara untuk membaca file berisi string (ASCII) dan isi file (nilainya)

dimasukkan sebagai suatu array character (string).

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 9

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB III

MATRIKS

Menyusun Matriks

Jalankan perintah-perintah berikut, perhatikan hasilnya dan perbedaan-perbedaan yang

diberikan antara perintah yang satu dengan perintah yang lainnya !

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

>> a = [ 1 2 3

4 5 6

7 8 9]

>> al = [1 2 3]

>> a2 = [4 5 6]

>> a3 = [7 8 9]

>> a = [al;a2;a3]

perhatikan hasil-hasil yang diberikan !

Lanjutkan dengan berikut :

>> A (1,1) = 1 ; A (1,2) = 2 ; A (2,1) = 3; A (2,2) = 4;

>> A

Sampai di sini, pahami hasil yang diberikan ! Apa yang anda temukan, catat dan

analisalah!

Kemudian lanjutkan dengan perintah berikut :

>> A (2,3) = 7;

>> A

Apa hasilnya ? Mengapa demikian ?

Mengetahui ukuran matriks

Jalankan dan perhatikan perintah berikut, amati dan catat :

>> A = zeros(2,3)

>> [baris kolom] = size(A)

>> barismatriks = size(A, 1)

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 10

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> kolommatriks = size(A, 2)

>> size(A, 2)

Mengambil sebagian elemen dari matriks

Cobalah contoh berikut, perhatikan hasilnya, catat dan analisalah !

>> a = A (:, 2)

>> b = A (1, :)

Membalik urutan kolom/baris dari matriks

>> n=size(A, 2);

>> a =A(:, n:-l: l);

Perhatikan hasilnya, dan analisalah !

Lanjutkan dengan perintah berikut :

>> j = size(A, 1) ;

>> b =A(j: -l: l,:)

Tugas :

Untuk lebih jelasnya, cobalah isikan matriks A dengan nilai elemen ≠ 0. Lakukan perintah

seperti yang telah anda lakukan di atas ! Amati hasilnya, catat dan analisa mengapa terjadi

demikian !

Mencari invers matriks

Lakukan perintah berikut :

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

>> inv(a)

>> b = inv(a)

Operasi atas Matriks

Perhatikan operasi yang dilakukan terhadap dua matriks berikut, catat hasilnya dan

analisalah ! :

>> a =[l 2 3; 4 5 6; 7 8 9];

>> b = [2 5 1; 3 8 2; 5 8 6];

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 11

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> a + b

>> a.*b

>> a * b

>> a./b

>> a.^b

>> a’

Tugas :

Perhatikan contoh sistem persamaan linear berikut ini

x1 + 2x2 + 3x3 = 366

4x1 + 5x2 + 6x3 = 804

7x1 + 8x2 + 0x3 = 351

dari sistem persamaan tersebut akan dibuat matriks sebagai berikut :

>> a = [l 2 3; 4 5 6; 7 8 0)

>> b = [366; 304; 351]

untuk mengetahui bahwa sistem persamaan linear di atas mempunyai penyelesaian unik

dimana determinan matriks a tidak sama dengan nol, maka lakukan perintah berikut :

>> det(a)

(perhatikan hasilnya, sebelum anda lanjutkan dengan perintah selanjutnya)

>> x=inv(a)*b

Apa yang dihasilkan ?

Bandingkan hasil tersebut dengan hasil yang diberikan oleh perintah berikut ini :

>> x=a\b

Apa pendapat anda ?

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 12

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB IV

M-FILE

Membuat File dalam MATLAB

File yang dibuat dalam MATLAB berekstensi *.m, file MATLAB berisi deretan

perintah yang ingin dieksekusi secara berurutan, dan caranya adalah :

1. Dari menu bar pilihlah file, kemudian pilihlah new, lalu pilih M-file.

2. Setelah itu, akan didapatkan window (layar) baru yang siap diisi dengan perintah

program Anda.

3. Setelah program diketik, simpanlah dengan ekestensi *.m.

4. Pindah ke prompt MATLAB, jalankan program tersebut dengan mengetik nama filenya

saja dan tekan enter.

Contoh:

Buatlah file MATLAB berikut dan berikan nama coba.m dengan mengikuti

langkah-langkah di atas :

% program untuk menghitung hasil penjumlahan dua variabel

A = 7;

B = 8;

C = A+ B;

C

(perhatikan tanda % di awal pernyataan)

setelah program tersebut dijalankan akan didapatkan hasil penjumlahan dari dua variabel di

atas.

Tugas :

Buatlah program dengan nama file spl.m yang berisi penyelesaian SPL pada BAB III di

atas! Jalankan program tersebut (dengan mengikuti langkah cara pembuatan file dalam

MATLAB di atas), catat hasilnya dan amati apa yang terjadi !

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 13

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

Statemen Input/Output

Memasukkan data ke dalam variabel skalar, vektor, maupun matriks dapat secara

langsung dengan lambang pemberian nilai / value assignment ( = )

>> x = 50;

>> y = [1 0 3 0 -1];

Contoh :

1. Tulislah fungsi di bawah ini dan simpanlah dengan nama flipud.m

function y = flipud(x)

% flipud pembalikan matriks

% misalkan

% x = l 4 menjadi 3 6

% 2 5 2 5

% 3 6 1 4

if ndims(x) ~= 2, error (‘x harus matriks 2-D’); end

[m,n] = size(x);

y = x(m: -1:1,:);

Dari layar Matlab, lakukan pengisian elemen terhadap matriks x, kemudian

panggil fungsi flipud tersebut dengan perintah sebagai berikut :

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

>> flipud(x)

perhatikan output yang diberikan, catat hasilnya dan analisalah !

2. Menyajikan fungsi dan program untuk mendapatkan nilai f(x) dari fungsi berikut:

f(x) = 01.0)3.0(

12 +−x

+ 04.0)9.0(

12 +−x

- 6

Jalankan instruksi berikut melalui m.file dan simpan dengan nama fungsi_x.m :

function y =fungsi_x(x)

y = l./ ( (x-0.3) .^2 + 0. 01) + l. / ( (x - 0.9) .^2 + 0.04) - 6;

dan program panggilannya adalah sebagai berikut:

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 14

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> x = -l : 0.01:2;

>> fungsi_x(x)

>> plot (x,y)

sekarang bandingkan dengan perintah-perintah berikut :

>> x = -l : 0.01:2;

>> y = humps(x)

>> plot (x,y)

apa yang anda dapatkan? Perhatikan output dan grafiknya, cobalah analisa apa

yang dikerjakan oleh fungsi humps ?

3. Berikut ini adalah fungsi dengan dua buah variabel hasil skalar serta dengan satu

parameter yang merupakan sebuah vektor. Fungsi ini mencari jumlah dan rerata

nilai elemen-elemen dalam vektor tersebut (simpan file ini dengan nama

jumrat.m):

function[jum, rat] = jumrat(x)

n = max (size(x));

jum = sum(x);

if n>0

rat = jum/n;

end;

perhatikan fungsi-fungsi built-in yang digunakan, catat, apa yang dikerjakan oleh

fungsi built-in tersebut, dan amati hasil yang diberikan! Jika hasil reratanya belum

ditampilkan, cobalah untuk menampilkannya!

Penggunaan fungsi tersebut dapat dilakukan dengan cara berikut:

>> v = [3 4 5];

>> [p, q] = jumrat(v);

>> disp([p q])

bandingkan dengan instruksi berikut :

>> v = [3 4 5];

>> jumrat(v)

adakah perbedaannya? mengapa?

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 15

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB V

CARA PEMANGGILAN FUNGSI DALAM M.FILE

Berikut ini diberikan beberapa contoh cara pemanggilan fungsi baik oleh program

utama maupun oleh fungsi yang lain :

1. Fungsi untuk menyelesaikan persamaan kuadrat sederhana:

function[xl,x2]= kuad(a,b,c)

% fungsi untuk menyelesaikan persamaan kuadrat

% ax2 + bx + c = 0 dengan a,b,c diketahui

% hasilnya adalah xl dan x2

d = b*b + 4*a*c;

xl = (-b + sqrt(d) )/(2*a);

x2= (-b - sqrt(d) )/(2*a) ;

% program selesai

cara menggunakan fungsi tersebut adalah dengan memasukkan nilai a, b, dan c sebagai

parameter dari fungsi kuad(a, b, c) :

>> [x,y]=kuad(l, l, 2)

perhatikan hasil yang diberikan. Cobalah berulang-ulang dengan nilai-nilai a, b, dan c

yang lain!

2. Fungsi dan program panggilannya untuk mencari akar dari suatu fungsi:

% nama file: zfungsi.m

% program untuk menghitung f(x), f ‘(x) dengan x diketahui

% digunakan sebagai bagian dari algoritma Newton untuk

% menetapkan f(x)=0

% f(x) dan f'(x) harus didefinisikan secara eksplisit dalam file ini.

function[f, ff]=zfungsi(x)

f = x^5 - 2*x^4 + 3*x^3 – 4*x^2 + 5*x – 6;

ff= 5*x^4 - 8*x^3 + 9*x^2 - 8*x + 5;

Siapkan pula File znewton .m di bawah ini:

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 16

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

% namafile: znewton. m

% algoritma newton untuk menyelesaikan f(x)=0;

k=0;

x = input(‘masukan nilai taksiran awal = ‘);

[f,ff] = zfungsi(x);

while abs(f) > 0.0001

k = k + l;

y = x - f/ff;

[f, ff] = zfungsi (x);

x = y;

end;

disp (x)

% program selesai

Perhatikan kembali kedua fungsi di atas beserta cara pemanggilannya, termasuk cara

pemanggilan suatu fungsi terhadap fungsi lain (di dalam fungsi znewton memanggil

fungsi lain yaitu zfungsi). Jalankan program tersebut dengan perintah berikut :

>> znewton

apa yang anda dapatkan? Catat hasilnya dan analisalah!

3. Contoh program yang terdiri dari dua fungsi yaitu fungsi.m dan besud.m dan program

utama coba .m untuk memanggil kedua fungsi tersebut.

Perhatikan beberapa fungsi built-in, pelajari apa fungsinya ?

function[f]=fungsi(s)

q = s + 1;

h = (s + 2.5) * (s*s - 2*s + 2);

if h ~= 0

f = q./h;

else

f = 10 + 10i;

end;

% akhir fungsi.m

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 17

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

Sekarang dengan membuat file baru, ketiklah fungsi berikut dengan nama besud.m

function [bes, sud]=besud(s)

x = real (s) ;

y = imag(s) ;

bes = sqrt (x.^2 + y.^2);

if(abs(x)) ~= 0

z = atan(abs(y) ./abs(x));

else

z = 4;

end

z = 180*z/pi;

if (x>0 & y>=0)

sud = z;

elseif (x <= 0 & y>0)

sud =180-z;

elseif (x>= 0 & y<0)

sud = -z;

else

sud = -180 + z;

end

%akhir fungsi besud.m

Sekarang dengan membuat file baru, ketiklah program utama dengan nama coba.m

% file coba.m

clear;

clg;

clc;

[x,y] = meshgrid(-3: 0.12:2, -2:0.12:2) ;

ss = x + y*i;

[m, n] = size(ss) ;

for i = 1:m,

for j = 1:n,

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 18

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

s = ss(i,j) ;

f = fungsi(s);

[a, b] = besud(f);

mag(i, j) = a;

sud(i,j) = b;

end;

end;

above = max (max (mag));

below = min(min(mag));

step = (above-below) / 200;

h =10*below:step: 0.1 * above;

contour (mag, h);

below = -180;

above =180;

figure;

h = [-180 -150 -120 -90 -45 0 45 90 120 150 180];

contour (sud, h);

Bagaimana hasilnya ? amati dan analisalah!

Dari program tersebut, cobalah temukan rumus matematiknya !

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 19

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB VI

GRAFIK

GRAFIK 2 DIMENSI :

Cobalah jalankan perintah-perintah di bawah ini :

>> clear;

>> clc;

>> x = 0:0.l:2*pi;

>> y = sin(x);

>> plot (x,y, ' .-r' ) ;

>> grid;

>> xlabel(‘Nilai-x’);

>> ylabel(‘Nilai sin(x)’);

>> title(‘Contoh gambar fungsi sin (x)’);

>> shg;

Dari perintah-perintah tersebut masukkan dalam sebuah file baru dengan nama grafsin.m

dan jalankan file tersebut! Bandingkan dengan hasil yang telah anda peroleh pada cara yang

pertama. Lebih mudah/enak yang mana?

Contoh selanjutnya adalah akan digambar penjualan salah satu perusahaan dari bulan

November sampai Desember 1995 (menggambar histogram) :

y = [1994 1994 1995*ones(1,12)];

m = [11 12 (1:12) ] ;

s = [1.1 1.3 1.2 1.4 1.5 1.5 1.7 1.6 1.8 1.3 1.9 1.7 1.6 1.9];

bar(datenum(y,m,1),s);

datetick('x','mmmyy');

ylabel('Rp. Trillion');

title ('Penjualan perbulan');

Buat m.file untuk instruksi-instruksi di atas dengan nama histogr.m. Panggil (jalankan) file

tersebut dan perhatikan hasilnya!

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 20

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

MENGGAMBAR LEBIH DARI SATU GAMBAR DALAM SATU LAYAR

1. Cobalah program di bawah ini dan perhatikan hasil yang diberikan !

>> clear

>> x = 0:0.01:2*pi;

>> y = sin(x);

>> z = cos(x);

>> a = 2*sin(x) .*cos (x);

>> b = sin(x)./(cos (x) + eps) ;

>> subplot (2, 2, 1);

>> plot(x,y),title(‘Sin(x) ‘),axis([0 2*pi -1 1]);

>> subplot(2, 2, 2);

>> plot(x,z),title(‘Cos(x) '),axis([0 2*pi -1 1]);

>> subplot(2, 2, 3);

>> plot(x,a),title(‘2Sin(x)*Cos(x) ‘),axis([0 2*pi -1 1]);

>> subplot(2, 2, 4);

>> plot(x,b),title(‘Sin(x)/Cos(x) ‘),axis([0 2*pi -20 20])

2. Menggambar Pie

>> clear;

>> a = [0.5 1 1.6 1.2 0.8 2.1];

>> pie (a, a == max (a));

>> title (‘Contoh gambar Pie ‘);

Bagaimana hasilnya ?

GRAFIK 3 DIMENSI

Bedakan dan perhatikan pemakaian fungsi built-in untuk grafik 2D dengan grafik 3D.

Jalankan perintah-perintah tersebut dan perhatikan hasilnya dari ketiga contoh berikut.

Analisalah fungsi masing-masing statement! :

1. Gambar 1

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 21

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

>> clear;

>> t = 0:10*pi;

>> plot3 (sin (t) , cos (t) , t) ;

>> axis ij

>> clear

>> t = 0:0.1:10*pi;

>> plot3(sin(t),cos(t),t);

>> title (‘ Helix ‘),xlabel (‘Sin (t) ‘),ylabel(‘Cos (t) ‘) ;

>> zlabel(‘T’);

>> shg

2. Gambar 2

>> clear;

>> x = -2.9 : 0.2 : 2.9;

>> y = exp(-x.*x);

>> bar3 (x,y);

>> title (‘3-D bar’);

3. Gambar 3

>> clear;

>> x = -7.5 : 0.5 : 7.5;

>> y = x;

>> [X,Y] = meshgrid(x,y);

>> r = sqrt(X.^2 + Y.^2) + eps;

>> z = sin(r). / r;

>> subplot(l,2,1);

>> mesh(X,Y,z);

>> subplot (1, 2, 2);

>> surf (X, Y, z) ;

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 22

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB VII

STATEMEN PENGENDALI

1. IF …. END

% program untuk mencoba statemen if

% program untuk mengecek angka yang dimasukkan apakah itu

% negatif, nol, atau positif

a = input (‘ Masukkan sebuah angka = ‘);

if a < 0 disp(‘ angka Anda negatif’);

elseif a == 0 disp(‘angka Anda nol.');

else disp(‘angka Anda positif’);

end;

Simpan program anda ini dengan nama ifend.m

2. FOR …. END

Contoh 1

>> for n =1:10

x(n) =sin(n*pi/10)

end

Contoh 2 :

% program untuk mencoba statemen for

% program untuk menjumlahkan elemen-elemen yang ada pada

% diagonal sebuah matriks

x = input (‘ Masukkan sebuah matriks = ‘);

n = size (x);

sum = 0.0;

for i = 1 : n;

for j = 1: n

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 23

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

if i == j

sum = sum + x(i,i);

end % untuk if

end % untuk for j

end % untuk for i

disp(‘sum = ‘ )

disp(sum)

Simpan file anda ini dengan nama forend.m

3. WHILE … END

% program untuk mencoba statemen while

% program untuk mencari akar dari fungsi sinus

% menggunakan metode Newton, dengan taksiran awal 3.0

x0 = 3.0;

dif =1.0;

while dif > 0.0001

xl = x0 - sin(x0)/cos(x0);

dif = abs(x0 - xl);

x0 = xl;

end;

disp(x0)

4. GABUNGAN WHILE DAN IF

Contoh 1:

x = input(‘Masukan nilai x : ‘);

y = input(‘Masukan nilai y : ‘);

q = 0; c = l; k = l;

if (x == 0) | (x<y)

q = 0;

r = x;

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 24

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

end

if y == 0

error (‘Divition by 0 ‘)

end

if x<0

x = -x; c = -c; k = -k;

end

if y<0

y = -y; c = -c;

end

while x >= y

x = x - y;

q = q + l;

end

q = c * q;

r = k * x;

disp([‘Hasil pembagian adalah = ‘ num2str(q)]);

disp([‘Hasil sisa pembagian adalah = ‘ num2str(r)]);

Simpan file anda ini dengan nama whilif1.m.

Contoh 2 (menggunakan break untuk keluar dari loop sebelum selesai) :

function MathProblem( );

% Problem klasik di dalam teori bilangan bulat

while 1

disp(‘ Masukkan satu bilangan bulat Positip ‘);

n = input (‘ Masukkan 0 untuk berhenti dari loop! ‘);

if n<=0

break

end

while n > l

if rem(n,2) == 0 % jika n bilangan genap

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 25

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

n = n / 2

else

n = 3*n + 1;

end

end

if n == 1

disp(‘Algorithma sukses ‘);

disp(‘ ‘);

else

disp(‘Algoritma Fail ‘);

end

end

Simpan file anda dengan nama whilif2.m.

5. SWITCH CASE

Perhatikan pernyataan-pernyataan di bawah ini, bandingkan dengan pemakaian if...end.

x = input(‘Masukkan besaran yang dikonversikan ke satuan cm : ‘);

satuan = input(‘Masukkan satuannya : ‘);

switch satuan

case { ‘inch’ , ‘in’ }

y = x * 2.54;

case {‘feet’, ‘ft’}

y = x * 2.54 *12;

case{‘meter’, ‘m’}

y = x / 100;

case{‘millimeter’ , ‘mm’ }

y = x * 10;

case {‘centimeter’ , ‘cm’ }

y = x;

otherwise

disp(‘satuan tidak diketahui’);

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 26

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

y = nan;

end

disp(y);

6. TUGAS

1. Dari program di atas (bagian 5. switch...case) cobalah modifikasi sehingga outputnya

menjadi :

Masukkan besaran yang dikonversikan ke satuan cm : 45 (misal inputnya : 45)

Masukkan satuannya : ‘mm’ (misal inputnya : ‘mm’)

Hasil konversi menjadi : 450 mm

2. Andaikan tidak tersedia command root dari suatu polynomial yang

direpresentasikan dalam array, buat satu program untuk menghitung akar-akar real dari

suatu persamaan kuadrat y = ax2 + bx + c menggunakan algoritma biasa. Step-step

pemrogramannya adalah sebagai berikut :

a. input : koefisien a, b dan c dari persamaan kuadrat (command input)

b. Gunakan if-else untuk mencari akar real dari persamaan kuadrat itu, dengan D adalah

diskriminan = b2- 4ac

- D > 0 maka dimiliki dua akar real tidak sama

- D = 0 maka dimiliki dua akar real sama (tunggal)

- D < 0 maka dimiliki akar imaginer

Sedangkan akar persamaan ini dihitung menggunakan persamaan ABC

c. Print output dilayar dengan command disp

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 27

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

BAB VIII

POLINOMIAL

Untuk menggambarkan kurva dari polinomial pangkat n dengan koefisien a0, a1, a2,

..., an dapat anda coba dengan menjalankan perintah-perintah berikut :

clear;

clc;

shg;

x = -10:10;

p = [2 4 3];

v = polyval(p,x);

plot (x, v, ‘r’) ;

axis([-11 11 -50 250]);

for i = 1:2:21

text(x(i), v(i), [‘(‘ num2str(x(i)) ‘,’ num2str(v(i)) ’)’]);

end;

title(‘Kurva fungsi 2x^2 + 4x + 3’);

xlabel(‘Nilai x ‘);

ylabel(‘Nilai f (x) ‘);

title(‘Kurva fungsi f(x)=2x^2 + 4x + 3 ‘);

grid;

Simpan hasil anda ini dengan nama file poli1.m.

Untuk menghitung akar-akar dari sembarang polinomial f(x) dengan hanya

menginputkan ke MATLAB nilai-nilai koefisien dari polinomial tersebut, yaitu a0, a1, a2,

..., an. Sekarang anda bisa mencoba menggunakan perintah roots(p) sebagai berikut :

clear;

clc;

p = [1 -12 0 25]

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 28

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

q = [2 50 -7 10]

% Mencari akar-akar fungsi p dan q

rp = roots(p) ;

rq = roots(q) ;

disp (' ');

disp ('akar dari fungsi p = ');

disp(rp);

disp('akar dari fungsi q = ');

disp(rq);

pause

% Untuk mengetahui apakah akar-akar itu benar

zp = polyval(p, rp(1));

zq = polyval(q, rq(1));

disp( ' ' );

disp (['Nilai fungsi pada akarnya = ' num2str(zp)]);

disp (['Nilai fungsi pada akarnya = ' num2str(zq)]);

pause

% Penjumlahan dua fungsi

r = p + q;

disp ( ' ' );

disp (['Hasil fungsi penjumlahan = ' num2str(r)])

pause

% Perkalian dua fungsi

k = conv(p,q);

disp(' ');

disp(['Hasil fungsi perkalian = ' num2str(k)])

pause

% Pembagian dua fungsi

d = deconv(k,p);

disp (' ');

disp (['Hasil fungsi pembagian = ' num2str(d)])

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 29

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

Simpan file anda dengan nama poli2.m.

Curviting & Interpolasi

Andaikan kita mempunyai data seperti berikut (jalankan perintah-perintah ini dan

perhatikan hasilnya ) :

>> x = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];

>> y = [-.447 1.987 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ] ;

>> plot (x, y, ‘-‘,x, y, ‘o’)

Simpan file anda dengan nama curvit.m.

Interpolasi

Contoh 1 : (simpan dengan nama file intpol1.m)

clear;

clc;

clf;

t =1900:10:1990;

p = [75.995 91.972 105.711 123.203 131.669 150.697 179.32 203.212 226.505

249.633];

% untuk estimasi pada tahun 1975

y = interp1(t, p, 1925);

disp(y)

subplot (1, 2, 1);

plot(t, p, 'o', 1925, y, 'k');

x =1900:1:2000;

% untuk estimasi dari tahun 1900-2000

y1 = interp1(t, p, x, 'spline');

disp(y1);

subplot (1, 2, 2);

plot (t, p, 'o' , x, y1, '.k');

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 30

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

Contoh 2: (simpan dengan nama file intpol2.m)

clear;

clc;

clf;

x = 0 : 10;

y = sin(x);

xi = 0: .25:10;

yi = interp1(x, y, xi, 'nearest');

subplot (2, 2, 1) ;

plot(x,y,'o',xi,yi,'-k')

title ('Kurva interpolasi metode nearest')

yi = interp1(x,y,xi, 'linear');

subplot (2, 2, 2) ;

plot (x, y, 'o',xi, yi, '-k')

title('Kurva interpolasi metode linear')

yi = interp1(x, y, xi, 'cubic');

subplot (2, 2, 3) ;

plot (x, y, 'o',xi, yi, '-k');

title ('Kurva interpolasi metode cubic')

yi = interp1(x, y, xi, 'spline');

subplot (2,2,4) ;

plot(x,y, 'o',xi,yi, '-k' )

title ('Kurva interpolasi metode spline')

Contoh 3: (simpan dengan nama file intpol3.m)

clear;

clc;

clf;

% colormap('gray')

[x,y,z] = peaks(10);

[xi,yi] = meshgrid(-3:.1:3, -3:.1:3);

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 31

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

zi = interp2(x,y,z,xi, yi, 'nearest');

subplot(2,2,1) ;

mesh(xi,yi, zi);

title('Kurva interpolasi metode nearest')

subplot(2,2,2);

zi = interp2(x,y,z,xi,yi, 'Linear');

mesh(xi,yi, zi);

title('Kurva interpolasi metode linear')

subplot (2, 2, 3) ;

zi = interp2(x,y,z,xi,yi, 'cubic');

mesh(xi,yi,zi);

title('Kurva interpolasi metode cubic');

subplot(2,2,4) ;

zi = interp2 (x, y,z,xi,yi,'spline');

mesh(xi,yi,zi);

title('Kurva interpolasi metode spline');

Bandingkan hasil yang diperoleh dari contoh 2 dan contoh 3 ! Perhatikan perbedaannya,

apa sebabnya? Analisalah!

Integrasi

Contoh metode integral yang digunakan dalam komputasi adalah metode Simpson,

Trapezoidal, Quad, dan menggunakan fungsi int.

Bandingkan keempat hasil yang diberikan pada program di bawah ini (menggunakan

metode Simpson, Trapezoidal, Quad, dan fungsi int) :

clear;

clc;

format bank;

a =0:15:90;

x = (pi*a/180) ‘;

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 32

Pemrograman MATLAB ------------------------------------------------------------------------------------------------------

y = sin (x);

zl = simp(x,y);

disp(‘hasil dari metode Simpson’);

disp ( ‘ ——--——-———— ‘) ;

disp(zl) ;

z2 =trapz(x,y);

disp(‘hasil dari metode trapezoidal’);

disp ( ‘ —————————— ‘ ) ;

disp(z2) ;

z3 =quad(‘sin(x)’,0,pi/2);

disp(‘hasil dari metode Quad’);

disp ( ‘ ————————— ‘ ) ;

disp(z3);

z4 =int(‘sin(x)’,0,pi/2);

disp(‘hasil tepatnya’);

disp ( ‘ —————————— ‘ ) ;

disp(z4);

=========================================================================== Teklnik Informatika – UMP --------------------------------------------------------------------------------- hal 33