• Tidak ada hasil yang ditemukan

modulmetnum_matlab

N/A
N/A
Protected

Academic year: 2021

Membagikan "modulmetnum_matlab"

Copied!
33
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

>> 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

(5)

>> 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.

(6)

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!

(7)

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

(8)

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;

(9)

>> 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]) = [ ]

(10)

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).

(11)

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)

(12)

>> 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];

(13)

>> 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

(14)

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 !

(15)

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:

(16)

>> 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)

(17)

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;

(18)

% 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;

(19)

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,

(20)

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!

(21)

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!

(22)

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! :

(23)

>> 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) ;

(24)

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;

(25)

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;

(26)

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

(27)

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

(28)

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

(29)

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;

(30)

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 (' ');

(31)

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);

(32)

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);

(33)

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) ‘;

Referensi

Dokumen terkait

Penelitian tersebut berisi mengenai kisah moral yang pada relief Jataka, yang kedua adalah karya dari Dewanti berjudul “Studi Relief Jataka”, isinya mengenai

Penelitian ini bertujuan untuk mengetahui bagaimana penentuan sewa tanah bengkok sebagai peningkatan pendapatan perangkat desa yang digunakan Desa Tawangrejo, yaitu

Hal ini diduga karena pada penelitian ini juga digunakan air limbah laundry dengan konsentrasi yang cukup rendah yaitu 25% sebanyak 5 L dalam satu reaktor uji,

Berbagai tugas utama dalam keluarga merupakan tanggung jawab orangtua. Memenuhi kebutuhan fisik, emosi dan sosial dari seluruh anggota keluarga adalah pekerjaan bagi kedua

Upaya penetapan jenis, jumlah, dan kualifikasi tenaga kesehatan sesuai dengan kebutuhan pembangunan kesehatan (Depkes, 2004). Proses yang secara sistematis mengkaji keadaan SDM

PRIMAIR : --- Bahwa ia Terdakwa MUHAMMAD RIDWAN alias OM IDAN alias JIPANG bin SUMARNA pada hari Jum’at tanggal 05 Juli 2013 sekitar jam 18.00 wib atau

Hasil simulasi menunjukkan bahwa metode pendugaan area kecil menggunakan sebaran prior logit normal melalui pendekatan Bayes empirik yang dikembangkan dengan memperhitungkan

Pelanggan yang sangat puas akan tetap setia lebih lama, membeli lebih banyak ketika perusahaan memperkenalkan produk baru dan memperbarui produk-produk yang ada, membicarakan