Anda di halaman 1dari 12

1

MODUL PERKULIAHAN

Komputasi
Mekanikal
Pemrograman 1

Abstrak Sub-CPMK

Pemrograman: membuat Sub CPMK 2.1


m /sci file; m /sci file sebagai Mecnciptakan program komputer
skrip program dan fungsi;
perintah masukan dan
keluaran; pernyataan
pengambilan keputusan/
percabangan; pernyataan
perulangan (looping)

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

2021 Manajemen Energi Terbarukan


2 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
ylabel(‘Fungsi kosinus)
legend(‘2*cos(x)’,’cos(x)’,’0.5*cos(x)’)
title(‘Plot Multi kurva’)
axis([0 2*pi -3 3])
2. Simpan dan beri nama misalnya coba1.m.
3. Jalankan dengan mentik coba1 dalam Jendela Perintah.
Hasil:

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:

2021 Manajemen Energi Terbarukan


3 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Untuk membuat fungsi untuk mengalikan dua bilangan, tulis kode di dalam editor skrip.
Kode:
function hasil = perkalian(a,b)
% fungsi untuk mengalikan dua bilangan
hasil = a*b;
end
Simpan fungsi dalam berkas m baru. Gunakan nama default yaitu nama fungsi tersebut.
Dalam contoh ini nama berkasnya harus perkalian.m.
Fungsi ini dapat dijalankan dengan memanggil dari dalam program atau langsung
dipanggil pada Jendela Perintah. Caranya adalah dengan menulis namanya lengkap
dengan nilai inputnya.
>> perkalian(3,4)
ans = 12

Perbedaan Skrip dan Fungsi

Perbedaan skrip dan fungsi ditunjukkan dalam Tabel 4.1


Tabel 4.1: Perbedaan antara skrip dan fungsi

Skrip Fungsi

- Tidak menerima argumen input - Dapat menerima argumen input


atau mengembalikan argument dan mengembalikan argumen
output output.
- Menyimpan variabel dalam - Menyimpan variabel di ruang
ruang kerja yang dibagikan kerja internal pada fungsi.
dengan skrip lainnya - - Berguna untuk memperluas
- Berguna untuk bahasa pemrograman untuk
mengotomatisasi serangkaian aplikasi Anda
perintah

Input Output

2021 Manajemen Energi Terbarukan


4 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ketika berkas skrip dijalankan, variabel yang digunakan dalam perhitungan dalam berkas
harus memiliki nilai yang ditetapkan. Pemberian nilai ke variabel dapat dilakukan dengan
tiga cara.
1. Variabel didefinisikan dalam file skrip.
2. Variabel didefinisikan dalam prompt perintah.
3. Variabel dimasukkan saat skrip dijalankan.
Untuk kasus ketiga, variabel didefinisikan dalam file skrip. Ketika file dijalankan, pengguna
diminta untuk menetapkan nilai ke variabel dalam prompt perintah. Hal ini dilakukan
dengan menggunakan perintah input.
Matlab/SciLab/GNU Octave secara otomatis menghasilkan tampilan saat perintah
dijalankan. Selain tampilan otomatis ini, Matlab/SciLab/GNU Octave memiliki beberapa
perintah yang dapat digunakan untuk menghasilkan tampilan atau output. Dua perintah
yang sering digunakan untuk menghasilkan output adalah: disp dan fprintf.

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.

2021 Manajemen Energi Terbarukan


5 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Perintah disp

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)

Tabel 4.2 kode untuk perintah fprintf

2021 Manajemen Energi Terbarukan


6 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Kode Format Deskripsi
%i Format bilangan bulat
%e Format ilmiah dengan huruf kecil e
%E Format ilmiah dengan huruf besar E
%f Format desimal
%g Bentuk %e atau %f lebih ringkas
Kode Kontrol Deskripsi
\n Mulai baris baru
\t Tab

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 Relasional dan Logika

2021 Manajemen Energi Terbarukan


7 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Operator relasional digunakan dalam control aliran untuk membandingkan dua angka
dengan menentukan apakah perbandingan itu benar atau salah. Operator relasional
ditampilkan dalam Tabel 4.2.
Tabel 4.2 Operator relasional dan logika

Operator Deskripsi

> Lebih besar


< Lebih kecil
>= Lebh besar atau sama dengan
<= Lebih kecil atau sama dengan
== Sama dengan
~= Tidak sama dengan
& operator AND
| operator OR
∼ operator NOT

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

2021 Manajemen Energi Terbarukan


8 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
else
disp('Akar adalah riil')
end
Catatan:
- :elseif tidak dipisah dan if (satu kata)
- tidak ada titik koma (; ) diperlukan pada akhir baris yang berisi if, else, end
- indentasi blok if tidak diperlukan, tetapi memudahkan pembacaan.
- Pernyataan end diperlukan.

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

2021 Manajemen Energi Terbarukan


9 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Hasil:
Bagus

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

Pengulangan ini digunakan ketika jumlah pengulangan tidak ditentukan. Pangulangan


berlanjut sampai kondisi yang dinyatakan terpenuhi. Pengulangan while … end memiliki
bentuk:
while pernyataan ekspresi

end
Pernyataan tersebut dieksekusi selama ekspresi itu benar.
x = 1
while x <= 10

2021 Manajemen Energi Terbarukan


10 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
x = 3*x
end
Penting untuk dicatat bahwa jika kondisi di dalam pengulangan tidak didefinisikan dengan
baik, pengulangan akan berlanjut tanpa batas waktu. Jika ini terjadi, kita dapat
menghentikan eksekusi dengan menekan Ctrl-C.

2021 Manajemen Energi Terbarukan


11 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Daftar Pustaka
Casey, J. (2013). A MATLAB primer in four hours with practical examples. Software guide
for undergraduate students. Technological University Dublin
Dukkipati, R. V. (2010). MATLAB An Introduction with Applications. New Delhi: New Age
International (P) Ltd., Publishers.
Forbes, J. R. (2017). Matlab For Mechanical Engineering Undergraduates. Montreal:
McGill University.
Hansen, J. S. (2011). GNU Octave Beginner's Guide. Birmingham: Packt Publishing.
Linge, S, dan Langtangen, H. P. (2016). Programming for Computations –
MATLAB/Octave. New York: Springer.
Magrab, E. B., Azarm, S., Balachandran, B., Duncan, J. H., Herold, K. E., dan Walsh, G.
C. (2011). An Engineer’s Guide to MATLAB, 3rd Edition. New Jersey: Prentice Hall.
Scilab Enterprises and Gomez, C. (2013). Scilab for very beginners. Scilab Enterprises.

2021 Manajemen Energi Terbarukan


12 Dr. Ir. Ignatius Agung Wibowo, M.Sc.
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/

Anda mungkin juga menyukai