M-file on MATLAB

Seru banget ICS…. Sampe nggak sempet bikin tulisan diblog… sekalinya bikin tulisan yang diambil dari berbagai sumber dibilang njiplak… ck…ck…ck… oh iya, sebelum tulisan ini dibuat (sempet this is zapped beberapa saat…) mbak pritha udah mampir untuk memberi masukkan… terima kasih mbak pritha… udah mau mampir ke ITS… maaf kalo banyak yang kurang dari BEM-ITS… kami sudah berusaha lo mbak… jadi dulu tu sempet bingung mau cari pembicara dari penulis buku… eh…. Aku inget bukunya mbak pritha yang waktu itu dibaca adekku… (en sempet aku pinjem buat ngilangin stress kala itu…) kebetulan di belakang bukunya ada alamat e-mail mbak pritha dan alamat blognya… akhirnya tanpa pikir panjang aku suruh si wildan untuk menghubungi mbak pritha via e-mail… alhamdulillah ditanggapi positif… ternyata mbak pritha orangnya seru banget… hampir sama kayak bayanganku waktu baca bukunya… Cuma yang aku agak heran neh mbak… kok waktu aku baca bukunya mbak pritha deskripsiku tuh mbak pritha orangnya agak endut gitu… eh ternyata nggak banget waktu ketemu orangnya… hehehehe… sukses ya mbak buat naskah coffee beannya? Ntar kalo nikah jangan lupa undang2… insya allah aku dateng… sekalian maen2 ke bandung… ok… lets start to learn more about m-file on MATLAB…

 

M-file, apa itu m-file? m-file adalah sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file. hasil dari file yang dibuat akan memiliki ektensi m yang menandakan bahwa file yang dibuat adalah file MATLAB. Sebenarnya, MATLAB memiliki beberapa tipe file lain seperti fig, mat, mex, dan sebagainya. M-file dapat ditulis sebagai sebuah script yang sederhana atau dapat pula ditulis sebagai sebuah fungsi yang menerima argumen atau masukan dan menghasilkan output.

Dibawah ini saya coba membandingkan antara m-file sebagai script dan m-file sebagai fungsi.

 

 

Script

Script adalah m-file sederhana karena tidak memerlukan argument input atau output. Script sering digunakan untuk melakukan otomatisasi deret command matlab, misalnya komputasi yang perintahnya dapat diulang-ulang dari baris command. Selanjutnya, script mengoperasikan data yang ada di dalam workspace atau membuat data baru. Semua variable yang telah dibuat oleh script di dalam woarkspace dapat digunakan untuk komputasi selanjutnya setelah script selesai dijalankan.

Contoh script sederhana yang digunakan untuk menampilkan grafik fungsi sinus:

 

x=30:180;

alfa=deg2rad(x);

y=sin(alfa);

plot(x,y);

 

Buatlah script di atas pada layer editor m-file, kemudian simpan dan jalankan, maka kita akan mendapatkan hasil sebagai berikut:

 

Fungsi

Fungsi adalah m-file yang dapat menerima argument input dan menghasilkan argument output. Fungsi mengoperasikan variabel di dalam workspacenya, tetapi terpisah dari workspace yang diakses oleh command matlab.

Sebuah fungsi mempunyai beberapa bagian penting di antaranya:

 

Function hasil = luas(p,1)

 

Nama fungsi

Nama fungsi MATLAB secara default sama dengan nama varibelnya. Nama fungsi harus diawali dengan huruf, selanjutnya boleh diikuti oleh kombinasi huruf, angka, atau garis bawah (underscore). Sebaiknya, semua karakter menggunakan huruf kecil. Walaupun nama fungsi dapat mempunyai panjang berbeda, MATLAB hanya menggunakan N sebagai karakter pertama, di mana N adalah bilangan yang dihasilkan oleh fungsi namelengthmax().

 

Argument fungsi

Jika sebuah fungsi MATLAB memiliki nilai output lebih dari satu, maka nilai dapat dituliskan di dalam sebuah kurung siku. Argument input, jika ada, dituliskan di dalam tanda kurung biasa. Untuk memisahkan antara argument yang ada, baik input maupun output, kita dapat menggunakan tanda koma.

 

Contoh:

 

function [x1,x2]=akar(a,b,c)

x1=(-b+sqrt(b^2-4*a*c))/2*a;

x2=(-b+sqrt(b^2-4*a*c))/2*a;

 

fungsi akar di atas memiliki tiga argument input a,b, dan c serta dua argument output x1 dan x2.

 

Bila kita menjalankan fungsi dari command MATLAB, maka:

 

>> [x1,x2]=akar(1,5,6)

x1 =

-2

x2 =

-3

 

Mengetahui jumlah argument fungsi

MATLAB memiliki fungsi nargin dan nargout untuk menentukan seberapa banyak argument input dan argument output sebuah fungsi saat dipanggil. Kita dapat menggunakan sebuah tes kondisi untuk menentukan langkah yang akan dikerjakan oleh sebuah fungsi jika argument yang diinputkan tidak sesuai dengan jumlah argument input pada fungsi.

Contoh :

misalnya fungsi akar di atas, ditambahkan sebuah kondisi untuk mengetahui jumlah argument input yang dimasukkan dengan menggunakan nargin seperti berikut:

 

function [x1,x2] = akar(a,b,c)

if nargin < 3

error(‘argument input tidak boleh kurang dari 3…’);

end;

x1=(-b+sqrt(b^2-4*a*c))/2*a;

x2=(-b+sqrt(b^2-4*a*c))/2*a;

 

Selanjutnya, jika fungsi dieksekusi dari command MATLAB, maka:

 

>> [x1,x2]=akar(1,5)

??? Error using = => akar

Argument input tidak boleh kurang dari 3…

 

Fungsi m-file pada MATLAB dapat berisi lebih dari satu fungsi. Fungsi pertama di dalam file merupakan primary function. Kita dapat menambahkan satu atau beberapa fungsi di dalam fungsi pertama. Fungsi-fungsi inilah yang dinamakan subfungsi, yang hanya tampak pada fungsi utama atau subfungsi lain di dalam file yang sama.

 

Contoh:

 

function [rata,tengah] = statistik (u) %fungsi utama

n = length(u);

rata=rata_rata(u,n);

tengah=median(u,n);

function a=rata_rata(v,n) % sub fungsi

% menghitung rata-rata.

a = sum(v)/n;

function m = median (v,n) % sub fungsi

% menghitung median;

w = sort(v);

if rem(n,2) = = 1

m = w((n+1)/2);

else

m = (w(n/2) + w(n/2+1)/2;

end

 

jika dijalankan dari command windows dengan menggunakan data x = 3,5,1,8,3,2,6,5, maka akan diperoleh hasil sebagai berikut:

 

>> x=[3 5 1 8 3 2 6 5]

x =

3 5 1 8 3 2 6 5

>> [rata,nilai_tengah] = statistic(x)

rata=

4.1250

nilai_tengah=

4

 

Pada contoh diatas, dapat dilihat bahwa fungsi statistik merupakan fungsi utama yang memanggil subfungsi median dan rata-rata.

 

Monggo didiskusikan… biar tambah seru nih tulisan yang aku ambil juga dari berbagai sumber dan dari pengalaman pribadi…

Wassalam

Advertisements

14 Responses to “M-file on MATLAB”

  1. Pritha Says:

    Andre… Pritha mampir nih 🙂
    Hwaduh kalo dari segi entry sih aku nggak ngerti yah, tapi kalo dari tampilan sih udah oke.
    Oia, kmrn kamu nanya gimana biar entry-nya bisa lebih ‘hidup’ kan? Tambahin aja obrolan2 sama temen tentang tema yang mau kmu tulis, jadi bisa lebih personal. Oke? Salamnya udah aku sampein ke ippen. Kamu bisa kunjungi dia di http://www.13januari.blogspot.com
    Sama dia sih bia sharing teknis blog juga oke?

  2. parvian Says:

    @pritha: makasih mbak 🙂 eh, iya… rada bingung meng’hidup’kan blog… thx udah dateng ke ITS ya kemarin mbak 🙂 jangan kapok2 ke ITS lagi ya mbak? 😉

  3. setya5785 Says:

    lah ndre, ko’ isine cuman :

    this is zapped…. 🙂

    piye to ?

  4. parvian Says:

    @setya5785: belum selesai nulisnya neee heheheh

  5. dhanie Says:

    @parvian

    Smangat Mas..
    kalo bsa sempet blogging.. ojo lali KaPe ne
    😀 😀

  6. Windhu Says:

    maaf kak mohon bantuan, saya mahasiswa tingkat akhir salahsatu PTS di jakarta, sedang tugas akhir, karena ada lowongan buat prakiraan curah hujan dengan matlab buka saya ambil2 aja, jujur waktu ikut pelajaran saya kurang bisa mengikuti, saya membuat prakiraan curah hujan yang outputnya curah hujan(dalam kg/meter kubik)dari input suhu(celsius)dan kelembaban, tehnik yang saya pakai neural network, tetapi kebingungan memakai metoda apa yang paling baik, memasukan input saya pakai exel yang saya save extensi .dat jika ada cara lebih mudah atau kakak punya script yang berhubungan mohon bantuannya syaputra84@gmail.com terima kasih.

  7. လမင္း Says:

    I also learning Matlad in moscow

    i like it

    Keep more

    It is simple but good posting

  8. nurul Says:

    saya perlukan bantuan…saya tidak berapa jelas dengan perisian ini…sila beri bantuan

    @nurul
    OK, what can i do for you?

  9. c'put Says:

    hmm..
    nice blog .
    heu

    au gga?
    aku ge blajar matlab d smt krank..
    tepat’y d praktikum metode numerik 1.

    jd aku bsa blajar lbih bnyak dunk dri blog kmu ..
    hee

    zmangadd iaa..
    =p

    @c’put
    Ok, belajar sama-sama aja gimana? 😀

  10. mulkan Says:

    bagus juga tutorialnya
    ada nggak tutorial seperti program ku ini
    http://totalisme.blogspot.com/2009/03/simulasi-persamaan-kuadrat.html

    aku gy bingung nyari function buat gantiin fungsi load tapi udah dalam bentuk .exe dan KALO RUN, NGGAK PAKE MATLAB. OKE

  11. metha riandini Says:

    ass..
    maaf punya,, script untuk menghitung luas daerah citra xray ga?
    hasil segmentasi
    thanx

  12. nda Says:

    nice blog..
    jadi menambah2 ilmu buat tugas akhir..
    ada contoh penggunaan nargin nargout buat pengolahan citra ga?
    makasih..

  13. indy Says:

    mohon bantuannya pak, gimana caranya membuat file image (citra) menjadi ber-extension dat. mksh

  14. ana Says:

    aslmm.. mohon bantuannya mua…. gmana cara menyiapkan data yang berekstensi .dat untuk pelatihan di matlab


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: