TUGAS 3 SCRIPT DAN FUNTION M-FILE

1. PENGANTAR Sript dan Function adalah file-file yang memiliki ekstensssi ‘m’ biasa dikenal dengan m-file, yaitu file-file yang berisi perintah-perintah dan statement-statement pemrograman dengan MATLAB. Script bisa langsung dieksekusi pada MATLAB prompt dengan cara menuliskan nama file, kemudian menekan tombol Enter. Function biasa dieksekusi dengan menyertakan masukan berupa bilangan atau karakter string. Function bisa diterjemahkan langsung sebagai fungsi, yang bermanfaat untuk menghasilkan suatu keluaran sesuai bentuk dari fungsi yang ada. Contoh : dalam MATLAB terdapat fungsi trigonometri seperti sin, cos, dan tan yang berguna untuk mencari harga-harga sinus, cosinus dan tangen suatu sudut. Berkaitan dengan pemanfaatan fungsi MATLAB, kita bisa membuat fungsi-fungsi kita sendiri, misalkan fungsi konversi dari derajat Celcius ke derajat Kelvin, fungsi untuk mengubah satuan sudut yang bersatuan derajat (dalam MATLAB, sudut-sudut bersatuan radian) ke satuan radian, dan lain-lainnya. Pada modul sebelumnya, telah diperkenalkan cara-cara melakukan komputasi, yaitu mengeksekusi perintah-perintah MATLAB untuk mendapatkan hasilnya, baik berupa angka maupun berupa plot grafik 2 dimensi. Pekerjaan menuliskan dan mengeksekusi satu persatu pada MATLAB prompt, biasanya menjemukan dan rawan dengan kesalahan ketik. Untuk mengatasi hal ini, perlu dibuat suatu file-file yang berisi variable-variabel dengan konstantany, perintahperintah yang berlaku untuk variable-variabel tersebut, mengendalikan dan mengevaluasi perintah-perintah, sampai dengan mendapatkan hasilnya di layar monitor (baik gambar, angka, maupun karakter) atau hasil yang tersimpan dalam sebuah file eksternal yang bisa dimanfaatkan untuk pekerjaan yang akan dating atau langsung dicetak pada printer. Disamping membuat m-file, pada bagian ini akan diperkenalkan pembuatan keputusan (decision marking) yang diwujudkan dengan pengendalian aliran (control flow) perintah, yang berfungsi untuk mengulang-ulang dan mengevaluasi perintah-perintah. Mereka adalah: for loop, while loop, dan if else end loop. Untuk melengkapi pengendalian aliran (Tabel 2.1), MATLAB menyediakan operator-operator logika, yaitu: AND (dan) dengan notasi &, OR (atau) dengan notasi |, NOT (tidak atau bukan) dengan notasi ~. Operator-operator relasi (Tabel 2.2) biasanya dipakai bersama-sama dengan operator logika.

OPERATOR LOGIKA & | ~

DISKRIPSI AND OR NOT

Tabel 2.2 Operator-operator logika

1

OPERATOR LOGIKA < <= > >= = ==

DISKRIPSI Lebih Kecil dari Lebih kecil dari atau samadengan Lebih besar dari Lebih besar dari atau sama dengan Sama dengan Tidak sama dengan Tabel 2.2 Operator-operator relasi

Tabel 2.2 Operator-operator logika 2. TUJUAN a. Membuat script M-file b. Membuat function file atau file fungsi c. Menggunakan For-Loops dalam pemrograman d. Menggunakan While-Loops dalam pemrograman e. Menggunakan konstruksi IF-ELSE-END dalam pemrograman f. Mengenal operator-operator logika dan relasi

3. PELAKSANAAN KOMPUTASI a. Function M-file Tulis dan simpanlah file berikut dengan nama rata2.m dengan MATLAB editor: function y = rata2(x) % rata2.m % fungsi untuk menghitung rata-rata %data masukan x berbentuk vektor baris atau kolom [m,n] = size(x); if m==1 & n>=1 y = sum(x) / n; elseif m>=1 & n==1 y = sum(x) /m; else error ('masukkan harus vektor baris atau kolom') end Kerjakan contoh-contoh berikut ini: >> p = [ 65 78 98 76 54 49] >> nilai_rata2 = rata2(p) 2

Selanjutnya Coba: >> q = [ 65; 78; 98; 54; 49] >> nilai_rata2 = rata2(q) Evaluasi dengan statement-statement berikut: >> h = rand(4 , 2) >> nilai_rata2 = rata2(h) Tulislah dan simpanlah file fungsi berikut dengan nama radian.m dengan MATLAB editor. Function y = radian(x) % derajad.m % untuk mengubah sudut dari derajat ke radian y = x * (pi/180); Kerjakan dan eksekusi statement-statement berikut: >> alpha = linspace(0, 180, 18) % dalam derajat >> alpha = radian(alpha); % dalam satuan radian

b. Script M-file Ketikan statement-statement dan perintah-perintah berikut pada suatu MATLAB editor, kemudian simpan dalam file coba_21.m : 5 % Coba_21.m % Membandingkan plot resistivitas umum dengan % resistivitas oleh Wisseman rho = 0.0178; alpha=0.0039; theta = 20 : 5 : 100; delta = theta - 20; rho1=rho*(1+alpha*delta); rho_20 = 0.017; alpha_20= 0.0043; beta_20 = 0.6*10^(-6); rho2 = rho_20*(1+alpha_20*delta + beta_20*delta.^2); plot(theta, rho1,'k', theta, rho2,'k+') title ('Resistivitas Tembaga') xlabel('Temperature, (derajat Celcius)') ylabel('Resistivitas, (Ohm*mm^2/m)') legend('\rho umum','\rho Wisseman')

3

Setelah file coba_21 tersimpan dalam ruang kerja MATLAB, cobalah menjalankan program di atas pada MATLAB prompt, dengan mengetik nama program, yaitu coba_21, bila hasil penulisan program di atas benar, maka akan ditampilkan sebuah jendela (window) gambar dari MATLAB.Kemudian kerjakan juga untuk file berikut ini, yaitu untuk menggambar lintasan peluru yang ditembakkan dari bidang datar dalam bentuk coba_22.m % coba_22.m % Program untuk membuat plot kedudukan peluru % dengan masukkan : % vo = kecepatan awal (m/s), dalam bentuk skalar % alpha = sudut elevasi (derajat), dalam bentuk skalar % t = lama waktu (sekon), dalam bentuk vektor clear all g = 9.8 ; % percepatan gravitasi vo = input(' kecepatan awal (m/s), misal 20 = '); alpha = input (' sudut elevasi (derajat), misal 45 = '); alpha = radian(alpha); % konversi derajat ke satuan radian disp(' waktu tembak tulis dalam bentuk vektor, misal (0:.1:5)') t_tembak = input(' waktu tembak (atau tekan Enter saja) = ') disp('------------------------------------------------') if isempty (t_tembak) ==1 t_datar = (2*vo*sin(alpha))/g; % t sampai di bidang datar t = (0 : .1 : t_datar); disp(' Peluru akan jatuh di bidang datar ') disp(' tekan Enter untuk melihat lintasan peluru ') pause disp(' ------------------------------- ') disp(' Peluru sampai di bidang datar ') else isempty(t_tembak)~= 1; t = t_tembak; disp(' ============================================ disp(' Belum diketahui lokasi terakhir dari peluru ') disp(' Peluru jatuh di bawah bidang gatar ') disp(' tekan Enter untuk melihat lintasan peluru ') pause end % kedudukan mendatar peluru xt = vo*cos(alpha)*t; % kedudukan vertikal peluru yt = (vo * sin(alpha) * t - 0.5 * g * t.^2) + eps; % plot kedudukan peluru clf plot (xt, yt) title('Lintasan Peluru','Fontw','b','Fontsize',12) xlabel('xt (gerak mendatar), meter') ylabel('yt (gerak vertikal), meter')

')

4

Setelah file coba_22 tersimpan, cobalah mengeksekusi pada MATLAB prompt dengan cara mengetik coba_22 dan tekan Enter.

Tulislah file berikut dan simpan dalam coba_23.m . File ini dibuat untuk menggambarkan beberapa hampiran Fourier dari gelombang persegi pada suku ke n (bandingkan hasilnya dengan komputasi pada Modul 2). % coba_23.m clear all t = -2 : 0.05 : 2 ; omega = 2 * pi; n = input(' banyaknya suku : '); nt = length (t); k=0; x=zeros (n,nt); for i = 1 : n x(i,:) = (4*((-1)^(k)) * cos(omega*(2*k+1)*t)) / (2*k+1); k = k + 1; end xt = sum(x); plot(t, xt), grid % perintah plot dan tampilkan grid title ('Hampiran Fourier Gelombang Persegi, n = 'num2str(n)') xlabel('t','Fontw','b','Fontsize',14) ylabel('x(t)','Fontw','b','Fontsize',14)

Setelah file coba_23.m terbentuk, cobalah mengeksekusi pada MATLAB prom, gantilah n dengan 3, dan seterusnya (missal n = 100). Tulislah sebuah file dengan nama coba_24.m untuk menghitung nilai eps, yaitu bilangan positif terkecil pada program MATLAB: % coba_24.m num=0; EPS=1; while (1+EPS) > 1 EPS = EPS / 2; num = num + 1; end eps = 2*EPS; disp([' eps= 'num2str(eps)])

4. TUGAS MANDIRI 5

Tuliskan program-program di bawah pada kertas folio bergaris dan kumpulkan sebelum melakukan praktikum. Buatlah 1 copy untuk praktikum (melakukan komputasi di Lab). a. Buatlah sebuah fungsi MATLAB untuk membuat konversi suhu dari derajat Celcius menjadi derajat Fahrenheit. b. Tuliskan sebuah fungsi MATLAB untuk menghitung besar pergeseran sinar yang melewati kaca plan parallel.

6

Sign up to vote on this title
UsefulNot useful