M-File dan Pemrograman Matlab
Pada bab-bab yang lalu, Anda telah belajar berinteraksi dengan MATLAB
menggunakan command window. Sekarang, katakanlah Anda harus mempergunakan
sederetan command secara berulang- ulang di dalam sesi MATLAB yang berbeda.
Akan sangat repotjika Anda harus mengetikkan command tersebut secara manual di
command window setiap kali Anda butuhkan. Namun dengan M- file, deretan
command tersebut bisa Anda simpan dalam bentuk skrip teks. Kapan saja Anda
butuhkan, skrip tersebut bisa dijalankan/dieksekusi secara otomatis dengan cara
mengetikkan nama M-file yang bersangkutan di command window.
Kali ini kita akan belajar mengenal M-file dengan contoh sederhana. Namun demikian
perlu diketahui bahwa MATLAB sebenarnya merupakan bahasa pemrograman umum,
seperti halnya Basic, C, Java, Pascal, Fortran, dll. Sehingga dalam bab ini kita akan
menitikberatkan pada pelajaran pemrograman komputer.
Membuat M-File
Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru. Caranya
ialah melalui menu di main window: File New Script atau dengan mengklik ikon
yang ada di jendela utama. Sebuah jendela editor akan terbuka seperti gambar berikut
ini.
KOMPUTASI MATEMATIKA DENGAN
1
MATLAB
M-File dan Pemrograman Matlab
Dengan editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun
mencoba menjalankannya dan melakukan debugging (mencari kesalahan di dalam
skrip).
Sementara itu, untuk menyimpan M-file, Anda bisa lakukan dengan menu: File
Save atau File Save As; ataupun dengan mengklik ikon yang ada.
Namun demikian, sebenarnya Anda juga bisa menuliskan M-file dengan sebarang
editor teks, seperti MS Word, Notepad, dll.; yang penting Anda menyimpan file tersebut
dengan ekstensi *.m.
M-File Sebagai Skrip Program
Pada bagian ini, kita akan menggunakan M-file untuk menjalankan sederetan command
yang kita tuliskan sebagai skrip. Mari kita mulai dengan skrip sederhana untuk
menghitung rata-rata dari lima bilangan. File ini kita namakan rerata.m. Bukalah M-file
baru lalu ketikkan skrip berikut ini.
% Program sederhana untuk menghitung
% rata-rata 5 bilangan:
% rata_rata.ma = 50;
b = 100;
c = 150;
d = 200;
e = 250;
% Menghitung dan menampilkan rata-rata
hasil = (a + b + c + d + e)/5;
KOMPUTASI MATEMATIKA DENGAN
2
MATLAB
M-File dan Pemrograman Matlab
Teks yang diawali tanda “%” menunjukkan komentar, dan tidak akan dieksekusi oleh
MATLAB.
Simpanlah file ini di dalam direktori Matlab\work dengan nama rerata.m. Sekarang
cobalah jalankan dari command window. Sebelumnya pastikan bahwa direktori
menunjuk ke Matlab\work. Perhatikan “Editor” yang ada di jendela utama MATLAB.
Kita bisa mengubah direktori yang sedang aktif melalui klik Run.
KOMPUTASI MATEMATIKA DENGAN
3
MATLAB
M-File dan Pemrograman Matlab
Untuk melihat hasilnya klik Command window
>> clear
>> rata_rata
hasil =
150
>> whos
Name Size Bytes Class
A 1x1 8 double array
Ans 1x1 8 double array
B 1x1 8 double array
C 1x1 8 double array
D 1x1 8 double array
E 1x1 8 double Array
hasil 1x1 8 double Array
Grand total is 7 elements using 56 bytes
Perhatikan bahwa:
• Di dalam M-file, setiap command diakhiri dengan titik-koma supaya hasil
perhitungan di tiap baris tidak ditampilkan di command window. Kecuali pada
hasil perhitungan yang ingin kita tampilkan, tidak diakhiri titik-koma.
• Variabel yang didefinisikan di dalam M-file akan disimpanoleh MATLAB ketika
M-file telah dieksekusi.
Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu:
• hijau untuk komentar
• hitam untuk variabel dan command
• biru untuk statement pemrograman.
Sekarang, marilah kita mencoba M-file lain untuk menghitung sisimiring suatu segi tiga
siku-siku dengan formula phytagoras, menghitung luasnya, dan kelilingnya.
% Program menghitung segi-3 siku-siku: segi3.m
% Untuk menghitung sisi miring, luas, dan keliling
% Mendefinisikan sisi siku-siku segitiga
Sisi_A = 3;
Sisi_B = 4;
% Menghitung sisi miring
Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2)
% Menghitung luas segitiga Luas = 1/2* Sisi_A * Sisi_B
% Menghitung keliling
Keliling = Sisi_A + Sisi_B + Sisi_C
KOMPUTASI MATEMATIKA DENGAN
4
MATLAB
M-File dan Pemrograman Matlab
Lalu simpan dengan nama segi3.m. Sekarang kita panggil M-file tersebut
>> segi3
Sisi_C =5
Luas =
6
Keliling =
12
Sekarang Anda bisa mencoba sendiri membuat program yang lebih menantang,
seperti menghitung dan memplot fungsi 2 ataupun 3- dimensi dengan M-file.
M-File Sebagai Fungsi
Sebagai skrip program, jika kita ingin mengubah/mengatur parameter masukan
program, maka harus kita lakukan di dalam editor. Padahal seringkali kita harus
menjalankan satu program/algoritma berulang kali dengan nilai masukan yang
berbeda-beda, misalkan dalam proses iterasi atau optimasi. Untuk keperluan ini, kita
bisa menuliskan M-file sebagai suatu fungsispesifik sesuai kebutuhan kita.
Dalam setiap fungsi terdapat tiga unsur:
1. Parameter masukan; dalam hal ini kita sebut sebagai “argumen input”. Jumlah
parameter (argumen) tersebut bisa sebarang(satu, dua, sepuluh, atau tidak ada
argumen input sama sekali). Jenis argumen pun sebarang (variabel, bilangan
ataupun teks).
2. Proses di dalam program; berupa sederetan command untuk menjalankan suatu
algoritma tertentu.
3. Parameter keluaran; atau “argumen output” yang jumlah dan jenisnya sebarang.
Deklarasi fungsi di M-file harus dilakukan pada baris awal dengan sintaks:
function [argumen output] = nama_fungsi(argumen input)
Sebagai contoh awal, kita akan membuat fungsi untuk menghitung sisi miring, luas, dan
keliling segitiga; seperti program yang ada pada contoh sebelumnya.
KOMPUTASI MATEMATIKA DENGAN
5
MATLAB
M-File dan Pemrograman Matlab
%Fungsi untuk menghitung segi-3 siku-siku: segitiga.m
%Untuk menghitung sisi miring, luas, dan keliling
function [Sisi_C,Luas,Kll] = segitiga(Sisi_A,Sisi_B)
% Menghitung sisi miring
Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2);
% Menghitung luas segitiga
Luas = 1/2* Sisi_A * Sisi_B;
% Menghitung keliling
Kll = Sisi_A + Sisi_B + Sisi_C;
Lalu simpan dengan nama “segitiga.m”.Sekarang Anda panggil fungsi tersebut.
>> clear
>> [Sisi_C,Luas,Kll]=Segitiga(6,8)
Sisi_C =
10
Luas =
24
Kll =
24
Dari contoh sederhana tersebut, ada beberapa hal yang perlu kitaperhatikan:
• Dalam fungsi segitiga, terdapat dua argumen input (Sisi_A,
• Sisi_B), dan tiga argumen output (Sisi_C, Luas, Kll).
• Ketika dipanggil di command window, kita bisa menggunakan nama argumen
input/output yang berbeda dengan di M-file, namun urutannya tidak berubah. Di
dalam contoh, argumen Sisi_A dan Sisi_B kita isi dengan bilangan, sementara
argumen Sisi_C, Luas, dan Keliling kita panggil dengan Hyp, Area, dan Circum.
>> [Hyp,Area,Circum]=Segitiga(6,8)
Hyp =
10
Area =
24
Circum =
24
KOMPUTASI MATEMATIKA DENGAN
6
MATLAB
M-File dan Pemrograman Matlab
Sekarang kita lihat dengan command whos:
>> whos
Name Size Bytes Class
Area 1x1 8 double array
Circum 1x1 8 double array
Hyp 1x1 8 double array
Grand total is 3 elements using 24 bytes
Terlihat bahwa variabel yang dideklarasikan di dalam fungsi tidak disimpan, melainkan
dimusnahkan ketika suatu fungsi selesai dijalankan. Yang ada di sana hanyalah variabel
yang telah dideklarasikan di command window untuk menyimpan nilai output. Hal ini
merupakan salah satu perbedaan utama antara skrip program dengan fungsi.
Ketika membuat fungsi dengan M-file, nama file harus
sama dengan nama fungsi yang dideklarasikan dalam
sintaks function ...
Aturan penamaan M-file sama dengan penamaanvariabel!
Lihat kembali aturan tersebut di subbab 2.2
Perlu diperhatikan bahwa fungsi yang telah kita buat pada dasarnya sama dengan
fungsi yang telah ada di MATLAB, semisal fungsi sin(x) ataupun sqrt(x). Misalkan kita
memanggil fungsi tanpa menyebutkan argumen output, maka keluaran akan disimpan
di ans.
Display dan Input
Adakalanya kita membutuhkan interaksi dengan pengguna program untuk
memasukkan parameter tertentu di awal/tengah program. Dalam hal ini kita bisa
pergunakan cara sederhana dengan command input. Sementara command disp
digunakan untuk menampilkan teks di layar.
Misalkan kita akan membuat program untuk menghitung jumlah kombinasi team
basket yang mungkin dari sejumlah mahasiswa.
KOMPUTASI MATEMATIKA DENGAN
7
MATLAB
M-File dan Pemrograman Matlab
% Program menghitung kombinasi : Kombinasi.m
% untuk menghitung jumlah kombinasi
% dari sejumlah populasi
% Menampilkan judul program
clc;
disp('Menghitung Kombinasi');
disp('--------------------');
% Meminta masukan dari user
n = input('Berapa jumlah mahasiswa yang ada? : ');
r = input('Berapa jumlah personel satu team? : ');
% Menghitung kombinasi
kombinasi = factorial(n)/(factorial(r)*factorial(n-r));
% Menampilkan keluaran
disp('Banyak kombinasi yang ada adalah = '),disp(kombinasi)
Kita coba jalankan program tersebut:
>> Kombinasi
Menghitung Kombinasi
--------------------
Berapa jumlah mahasiswa yang ada? : 5
Berapa jumlah personel satu team? : 2
Banyak kombinasi yang ada adalah =
10
KOMPUTASI MATEMATIKA DENGAN
8
MATLAB