MODUL PERKULIAHAN
Komputasi
Mekanikal
Pemrograman 1
Abstrak Sub-CPMK
Berkas m/sci
Kode Matlab/SciLab/GNU Octave bisa dieksekusi di Jendela Perintah. Masalahnya,
perintah yang langsung ditulis dalam Jendela Perintah tidak dapat disimpan dan
dieksekusi lagi beberapa kali. Oleh karena itu, diperlukan cara yang berbeda untuk
melaksanakan perintah berulang kali dengan langkah-langkah sebagai berikut
1. Membuat berkas yang berisi daftar perintah;
2. menyimpan berkas tersebut; dan
3. menjalankannya.
Bekas yang digunakan untuk tujuan ini disebut berkas m (Matlab dan GNU Octave) atau
berkas sci (SciLab) karena memiliki ekstensi nama .m atau .sci. Jadi ini adalah berkas
eksternal yang berisi urutan pernyataan Matlab/SciLab/GNU Octave. Berkas m/sci dapat
ditulis menggunakan editor teks biasa seperti notepad atau dengan editor skrip bawaan
Matlab/SciLab/GNU Octave. Salah satu keuntungan menggunakan skrip adalah koreksi
atau perubahan dapat dilakukan pada perintah di dalam berkas jika diperlukan.
Terdapat 2 jenis berkas m/sci yaitu
1. skrip yang hanya menjalankan serangkaian pernyataan
2. fungsi yang dapat menerima argumen input dan dapat menghasilkan argumen
output.
Skrip
Contoh:
Plot fungsi cosinus berikut,
y 1=2 cos ( x),
y 2=cos ( x) , dan
y 3=0,5∗cos ( x) ,
dalam interval 0 ≤ x ≤ 2π.
Penyelesaian:
1. Tulis perintah dalam berkas m
Kode:
x = 0:pi/100:2*pi;
y1 = 2*cos(x);
y2 = cos(x);
y3 = 0.5*cos(x);
plot(x,y1,’—',x,y2,’-‘,x,y3,’:’)
xlabel({‘0 \leq x \leq 2\pi’})
Ketika eksekusi selesai, variabel x, y1, y2, dan y3 tetap berada di Ruang Kerja. Untuk
melihat daftar variabel tersebut, tulis whos pada prompt perintah atau lihat di dalam panel
Ruang Kerja.
Fungsi
Fungsi adalah program (atau rutin) yang menerima satu atau lebih argumen input dan
mengembalikan satu atau lebih argumen output. Setiap skrip fungsi memiliki area ruang
kerja sendiri, dipisahkan dari ruang kerja dasar Matlab/SciLab/Octave.
Fungsi yang ditulis sendiri ke dalam berkas m/sci ini disebut fungsi yang ditentukan
pengguna (user defined function) sedangkan fungsi yang sudah ada dalam dalam
program disebut fungsi bawaan (built-in function).
Contoh:
Skrip Fungsi
Input Output
Perintah Input
Contoh:
% File skrip ini menghitung rata-rata poin % yang dicetak dalam
tiga permainan.
% Poin dari setiap permainan dimasukkan ke variabel
% dengan menggunakan perintah input
permainan1 = input(‘Masukkan poin yang dicetak di permainan
pertama’);
permainan2 = input(‘Masukkan poin yang dicetak di permainan
kedua’’);
permainan3 = input(‘Masukkan poin yang dicetak di permainan
ketiga‘);
rata_rata = (permainan1+permainan2+permainan3)/3
Berikut ini menunjukkan prompt perintah saat berkas skrip ini yang disimpan sebagai
contoh3.m dieksekusi.
>> contoh3
>> Masukkan poin yang dicetak di permainan pertama 15
>> Masukkan poin yang dicetak di permainan kedua 23
>> Masukkan poin yang dicetak di permainan ketiga 10
rata_rata =
16
Perintah input juga dapat digunakan untuk memasukkan string ke variabel.
Perintah ini memberikan cara sederhana untuk menampilkan nilai atau pesan (tidak
keduanya tetapii harus satu-satu) pada satu baris. Perintah adalah
disp(nilai)
atau
disp(‘pesan teks’)
Contoh:
Tulislah skrip untuk mengevaluasi fungsi skalar
y(x) = 2x[cos(x)]2.
Kode:
x = 15;
y = 2*x*cos(x)^1;
disp('nilai fungsi adalah: ')
disp(y)
Hasil:
nilai fungsi adalah:
-22.791
Perintah fprintf
Perintah fprintf memberi pengguna kontrol penuh dalam menampilkan pesan dan
data yang diformat pada baris yang sama. Perintah dasarnya adalah:
fprintf(‘format’, x, …)
di mana format adalah string yang menentukan bagaimana nilai variabel x akan
ditampilkan.
Contoh format adalah %7.3f
%: tempat di mana nomor akan disisipkan dalam teks
7: lebar field (opsional)
3: banyaknya digit decimal (opsional)
f: kode format (rujuk Tabel 4.2)
Contoh:
Tabel nilai sinus
Kode:
x = 0:pi/2:2*pi;
y = sin(x);
z = [x; y];
fprintf(' x y\n')
fprintf('%5.3f %10.3f\n',z);
Hasil:
x y
0.000 0.000
1.571 1.000
3.142 0.000
4.712 -1.000
6.283 -0.000
Kontrol Aliran
Kontrol aliran dalam program Matlab/SciLab/GNU Octave terbagi 2 yaitu struktur
percabangan dan pengulangan. Terdapat dua struktur percabangan yaitu: if dan
switch, dan dua struktur pengulangan yaitu for dan while.
Operator Deskripsi
Contoh:
Perhitungan akar persamaan kuadrat.
discr = b*b - 4*a*c;
if discr < 0
disp(’Peringatan: diskriminan adalah negatif, akar adalah
imajiner ');
end
discr = b*b - 4*a*c;
if discr < 0
disp(Peringatan: diskriminan adalah negatif, akar adalah
imajiner’);
else
disp(’Akar adalah riil, tetapi mungkin berulang’)
end
discr = b*b - 4*a*c;
if discr < 0
disp(Peringatan: diskriminan adalah negatif, akar adalah
imajiner’);
elseif discr == 0
disp(‘Diskriminan adalah nol, akar berulang’)
Percabangan switch
Dalam peercabangan switch, variabel diuji kesetaraan terhadap daftar nilai. Percabangan
switch dapat bersarang yaitu satu pernyataan switch di dalam pernyataan switch lain.
switch pernyataan ekspresi switch
case pernyataan ekspresi case
…
case pernyataan ekspresi case
…
otherwise
…
end
Contoh:
nilai = 'B';
switch(nilai)
case 'A'
fprintf('Istimewa\n' );
case 'B'
fprintf('Bagus\n' );
case 'C'
fprintf('Cukup\n' );
case 'D'
fprintf('Kurang\n' );
case 'F'
fprintf('Tidak lulus\n' )
otherwise
fprintf('Masukan salah\n' );
end
Pengulangan for
Dalam pengulangan for, eksekusi perintah diulang pada jumlah yang tetap dan sudah
ditentukan. Perintahnya adalah
for variabel = pernyataan ekspresi
…
end
Biasanya, ekspresi adalah vektor dari bentuk i: s: j.
Contoh sederhana untuk pengulangan for adalah
for ii=1:5
x=ii*ii
end
Beberapa pengulangan for dapat bersarang, sehingga penulisan kode dengan indentasi
akan membantu meningkatkan kemudahan membaca. Pernyataan berikut membentuk
matriks A simetris 5 x 5 A dengan elemen (i, j) adalah i / j untuk j ≥ i:
n = 5;
A = eye(n);
for j=2:n
for i=1:j-1
A(i,j)=i/j;
A(j,i)=i/j;
end
end
Pengulangan while