PETUNJUK UMUM PETUNJUK UMUM
1.
1. Sebelum anda melaksanakan praktikum, pelajari dahulu dengan seksama BAB yangSebelum anda melaksanakan praktikum, pelajari dahulu dengan seksama BAB yang akan anda laksanakan.
akan anda laksanakan. 2.
2. Laksanakan praktikum sesuai dengan urutan BAB yang ada.Laksanakan praktikum sesuai dengan urutan BAB yang ada. 3.
3. Selama anda melaksanakan praktikum dilarang untuk membawa makanan danSelama anda melaksanakan praktikum dilarang untuk membawa makanan dan minuman, dan makan, minum, atau
minuman, dan makan, minum, atau merokok.merokok. 4.
4. Setelah anda selesai melaksanakan praktikum, buatlah rangkuman catatan apa yangSetelah anda selesai melaksanakan praktikum, buatlah rangkuman catatan apa yang telah anda kerjakan dan anda temukan selama anda melaksanakan praktikum.
telah anda kerjakan dan anda temukan selama anda melaksanakan praktikum. 5.
5. Jika pada praktikum yang akan anda laksanakan ada tugas untuk membuat program,Jika pada praktikum yang akan anda laksanakan ada tugas untuk membuat program, siapkan draft program dan datanya sebelum anda melaksanakan praktikumnya. siapkan draft program dan datanya sebelum anda melaksanakan praktikumnya. Kemudian serahkan hasil pekerjaan tugas anda kepada
Kemudian serahkan hasil pekerjaan tugas anda kepada Asisten Praktikum.Asisten Praktikum. 6.
6. Ikutilah petunjuk pelaksanaan praktikum ini Ikutilah petunjuk pelaksanaan praktikum ini dengan sebaik-baiknya.dengan sebaik-baiknya. 7.
7. Format laporan hasil tugas praktikum :Format laporan hasil tugas praktikum : a.
a. Nama praktikan Nama praktikan : ...: ... b.
b. NIM NIM : ...: ... c.
c. Hasil Hasil program program : : ... ...
... dst (jika ada tugas membuatdst (jika ada tugas membuat program)
program) d.
d. Hasil Hasil analisa analisa : : ... ... dst ... dst
tanda tangan Asisten tanda tangan Asisten
BAB I BAB I
PENGENALAN MATLAB PENGENALAN MATLAB
Untuk memulai bekerja dengan MATLAB,
Untuk memulai bekerja dengan MATLAB, lakukan langkah berikut :lakukan langkah berikut : 1.
1. Dari desktop monitor anda, klik 2 Dari desktop monitor anda, klik 2 kali iconkali icon MatlabMatlab
2.
2. Dari jendela Matlab yang ada di hadapan anda, anda bisa langsung menjalankanDari jendela Matlab yang ada di hadapan anda, anda bisa langsung menjalankan perintah-peri
perintah-perintah Matlab.ntah Matlab. 3.
3. Untuk mengakhiri program MATLAB, pilih menuUntuk mengakhiri program MATLAB, pilih menu FileFile kemudian kemudian ExitExit..
Sebagai latihan pertama, cobalah anda jalankan beberapa perintah berikut ini Sebagai latihan pertama, cobalah anda jalankan beberapa perintah berikut ini langsung dari prompt MATLAB (
langsung dari prompt MATLAB (>>>>). Perhatikan apa yang dilakukan oleh perintah-). Perhatikan apa yang dilakukan oleh perintah- perintah tersebut
perintah tersebut, catat dan amati !, catat dan amati ! >>info <enter> >>info <enter> >>demo <enter> >>demo <enter> >>tour <enter> >>tour <enter> >>intro <enter> >>intro <enter> >>who <enter> >>who <enter> >>whos <enter> >>whos <enter> >>whatsnew <enter> >>whatsnew <enter>
Untuk mengetahui perintah-perintah yang ada pada program MATLAB dapat dilihat 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 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 dengan instruksi (perintah) info, demo, tour, intro, whos, dan whatsnew seperti yang telah anda lakukan di atas.
anda lakukan di atas. Perhatikan hasil yang diberikan.Perhatikan hasil yang diberikan. >>help <instruksi/perintah> <enter>
>>help <instruksi/perintah> <enter> contoh :
contoh :
>> help who <kemudian tekan enter> >> help who <kemudian tekan enter>
Salah satu fungsi MATLAB adalah sebagai kalkulator. Untuk itu, coba jalankan Salah satu fungsi MATLAB adalah sebagai kalkulator. Untuk itu, coba jalankan perintah
perintah untuk untuk menghitung menghitung seperti seperti berikut berikut (setiap (setiap akhir akhir pemberian pemberian instruksi instruksi / / perintah,perintah, selalu diakhiri dengan penekanan tombol enter). perhatikan hasilnya, serta variabel selalu diakhiri dengan penekanan tombol enter). perhatikan hasilnya, serta variabel penampungny
BAB I BAB I
PENGENALAN MATLAB PENGENALAN MATLAB
Untuk memulai bekerja dengan MATLAB,
Untuk memulai bekerja dengan MATLAB, lakukan langkah berikut :lakukan langkah berikut : 1.
1. Dari desktop monitor anda, klik 2 Dari desktop monitor anda, klik 2 kali iconkali icon MatlabMatlab
2.
2. Dari jendela Matlab yang ada di hadapan anda, anda bisa langsung menjalankanDari jendela Matlab yang ada di hadapan anda, anda bisa langsung menjalankan perintah-peri
perintah-perintah Matlab.ntah Matlab. 3.
3. Untuk mengakhiri program MATLAB, pilih menuUntuk mengakhiri program MATLAB, pilih menu FileFile kemudian kemudian ExitExit..
Sebagai latihan pertama, cobalah anda jalankan beberapa perintah berikut ini Sebagai latihan pertama, cobalah anda jalankan beberapa perintah berikut ini langsung dari prompt MATLAB (
langsung dari prompt MATLAB (>>>>). Perhatikan apa yang dilakukan oleh perintah-). Perhatikan apa yang dilakukan oleh perintah- perintah tersebut
perintah tersebut, catat dan amati !, catat dan amati ! >>info <enter> >>info <enter> >>demo <enter> >>demo <enter> >>tour <enter> >>tour <enter> >>intro <enter> >>intro <enter> >>who <enter> >>who <enter> >>whos <enter> >>whos <enter> >>whatsnew <enter> >>whatsnew <enter>
Untuk mengetahui perintah-perintah yang ada pada program MATLAB dapat dilihat 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 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 dengan instruksi (perintah) info, demo, tour, intro, whos, dan whatsnew seperti yang telah anda lakukan di atas.
anda lakukan di atas. Perhatikan hasil yang diberikan.Perhatikan hasil yang diberikan. >>help <instruksi/perintah> <enter>
>>help <instruksi/perintah> <enter> contoh :
contoh :
>> help who <kemudian tekan enter> >> help who <kemudian tekan enter>
Salah satu fungsi MATLAB adalah sebagai kalkulator. Untuk itu, coba jalankan Salah satu fungsi MATLAB adalah sebagai kalkulator. Untuk itu, coba jalankan perintah
perintah untuk untuk menghitung menghitung seperti seperti berikut berikut (setiap (setiap akhir akhir pemberian pemberian instruksi instruksi / / perintah,perintah, selalu diakhiri dengan penekanan tombol enter). perhatikan hasilnya, serta variabel selalu diakhiri dengan penekanan tombol enter). perhatikan hasilnya, serta variabel penampungny
>> 2+3 >> 2+3
>> >> 3/2 3/2 perhatikan
perhatikan perbedaan perbedaan hasil hasil yang yang diberikan diberikan oleh oleh instruksi di instruksi di atas atas (3/2) (3/2) dengan dengan hasil hasil yangyang diberikan oleh instruksi berikut :
diberikan oleh instruksi berikut : >> 3\2
>> 3\2
apa yang bisa anda jelaskan ? apa yang bisa anda jelaskan ?
Lanjutkan dengan perintah-perintah berikut : Lanjutkan dengan perintah-perintah berikut :
>> >> 5*6 5*6 >> 100-5 >> 100-5 >> 12^7 >> 12^7 >> 3* ( 2-4 )/2 .5^3 >> 3* ( 2-4 )/2 .5^3 >> x = 8; >> x = 8; >> y = 5; >> y = 5; >> z >> z = x = x * y * y kemudian kemudian >> x >> x * y* y perhatikan hasiln
perhatikan hasilnya, catat perbedaan-perbya, catat perbedaan-perbedaan yang anda temukan, dedaan yang anda temukan, dan analisalah !an analisalah !
Bilangan Kompleks Bilangan Kompleks
Bagian imaginari dan bilangan kompleks,
Bagian imaginari dan bilangan kompleks, −−11, disimpan dalam MATLAB dengan, disimpan dalam MATLAB dengan huruf
huruf ii atau atau j. j. Contoh operasi yang bisa dilakukan dengan menggunakan operasi bilanganContoh operasi yang bisa dilakukan dengan menggunakan operasi bilangan kompleks adalah seperti yang ada di bawah ini. Cobalah instruksi-instruksi tersebut, kompleks adalah seperti yang ada di bawah ini. Cobalah instruksi-instruksi tersebut, kemudian perhatikan hasil yang diberikan. Perhatikan hasil outputnya dan amati kegunaan kemudian perhatikan hasil yang diberikan. Perhatikan hasil outputnya dan amati kegunaan dari
dari fungsi-fungsifungsi-fungsi yang ada, serta perhatikan variabel penampungnya (variabel penyimpan yang ada, serta perhatikan variabel penampungnya (variabel penyimpan hasil output). hasil output). >> y=i^2 >> y=i^2 >> >> real(x) real(x) >> >> imag(x) imag(x) >> conj (x) >> conj (x)
Untuk operasi Aritmatika atas Bilangan Kompleks, bisa
Untuk operasi Aritmatika atas Bilangan Kompleks, bisa anda perhatikan dan coba instruksianda perhatikan dan coba instruksi seperti di bawah ini :
seperti di bawah ini : >> x=3+4i >> x=3+4i
>> 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.
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!
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
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=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]) = [ ]
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).
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)
>> 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];
>> 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
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 pilihlahfile, kemudian pilihlahnew, 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 !
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 ( 1 2 + − x + ( 0.9) 0.04 1 2 + − 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:
>> 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)
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;
% 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.mdanbesud.m dan program utama coba .muntuk 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;
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,
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!
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!
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! :
>> 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) ;
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;
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;
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
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
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
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;
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 (' ');
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);
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);
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 fungsiint) :
clear; clc;
format bank; a =0:15:90; x = (pi*a/180) ‘;