Kenali telepon Anda - p4c.philips.com fileKenali telepon Anda - p4c.philips.com
PETUNJUK UMUM - · PDF fileJika pada praktikum yang akan anda laksanakan ada tugas untuk...
Transcript of PETUNJUK UMUM - · PDF fileJika pada praktikum yang akan anda laksanakan ada tugas untuk...
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