Top Banner

of 42

Modul 1 Matlab

Jan 06, 2016

Download

Documents

dedetmix

modul matlab untuk pemula bagian 1
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Jurusan Teknik GeomatikaFakultas Teknik Sipil dan PerencanaanInstitut Teknologi Sepuluh Nopember Surabaya

Pemrograman Matlab

Matlab adalah singkatan dari Matrix Laboratory. Disebut demikian karena Matlab didesain dengan kemampuan spesial dalam bekerja dengan variabel-variabel bertipe matriks/array. Matlab adalah salah satu bahasa pemrograman high level, sehingga ia lebih mudah digunakan dibandingkan dengan bahasa low level. Matlab memiliki pustaka banyak fungsi standar dari berbagai bidang keilmuan yang siap untuk digunakan. Dengan demikian, seorang programmer yang bekerja dengan Matlab akan lebih terfokus pada alur/konsep pemecahan masalah yang dihadapi. Ia tidak harus bersusah payah memikirkan logika pemrograman komputer yang belum tentu dia kuasai. Di samping itu, Matlab menawarkan kemampuan visualisasi yang mumpuni, baik visualisasi 2D maupun 3D. Kemampuan ini sangat penting untuk menyajikan hasil pengolahan data dalam wujud yang lebih mudah dipahami. Hal inilah yang menyebabkan Matlab banyak digunakan pada berbagai bidang di luar informatika, seperti ekonomi, geofisika, statistika, geodesi dan geomatika, rekayasa, biologi, dan lain sebagainya.

Namun demikian Matlab bukannya tanpa kelemahan. Matlab adalah bahasa pemrograman interpreter. Hal ini mengakibatkan eksekusi program yang ditulis dengan Matlab akan berjalan lebih lambat. Selain itu file sumber (source code) Matlab bertipe teks ASCII sehingga bisa dibuka oleh editor teks apapun. Jadi, membuat program dengan Matlab berarti harus siap-siap open source.

1. Pertama Kali Bekerja dengan MatlabKetika pertama kalinya menjalankan Matlab, programmer akan mendapati tampilan seperti gambar berikut (untuk Matlab R2010a):

Command WindowMenu Bar dan ToolbarEditorGambar 1. Tampilan Matlab R2010a

Ada 2 jendela yang paling sering diakses, yaitu Command Window dan M-File Editor.

Info 1.Selain kedua tampilan tersebut, ada jendela lain yang dapat ditampilkan, seperti Command History, Workspace, Variable Editor, dan lain-lain yang dapat diakses lewat menu Desktop pada Menu Bar.

Command WindowCommand Window adalah arena di mana sang programmer dapat menuliskan perintah langsung terhadap komputer, yang segera dieksekusi ketika programmer menekan Enter. Misalnya programmer mengetikkan perintah berikut:

a=7

maka Matlab akan membuat variabel a dengan nilai 7. Bila programmer menulis perintah berikutnya, misalnya:

b=8c=a+b

maka hasil eksekusi dapat dilihat pada Command Window:

Gambar 2. Eksekusi perintah lewat Command Window

M-File EditorCara kedua bekerja dengan Matlab adalah dengan menggunakan M-File Editor (selanjutnya cukup disebut Editor). Cara ini memungkinkan keseluruhan program ditulis untuk dijalankan sebagai satu kesatuan. Misalnya programmer mengetik kode berikut pada Editor:

a=7b=8c=a+b

Jalankan program dengan mengklik ikon Save and Run ( ), Matlab akan meminta programmer untuk menyimpan file skrip program.

Gambar 3. Kotak dialog penyimpanan skrip program

Tentukan direktori/folder penyimpanan file dan nama skripnya (berikan nama latihan00.m dan simpan di C:\). Skrip program pada Matlab memiliki ekstensi *.m.

Info 2.Penting untuk diketahui, Matlab akan mengenali dan menjalankan skrip pada direktori yang dikenali (current folder atau direktori aktif). Apabila skrip tidak terdapat pada direktori aktif, maka Matlab tidak dapat mengenali semua variabel sehingga program tidak dapat dijalankan.

Matlab akan menawarkan untuk mengganti direktori aktif sesuai dengan direktori skrip yang dijalankan, seperti kotak dialog berikut:

Gambar 4. Kotak dialog pergantian direktori aktif

Klik Change Folder sehingga hasil eksekusi program tampak pada gambar berikut:

Gambar 5. Hasil eksekusi skrip program sederhana

Mengatur Direktori AktifSeperti yang dijelaskan sebelumnya, Matlab akan mengeksekusi program pada direktori yang dikenali, dalam hal ini adalah direktori aktif atau current folder. Kadangkala sebuah skrip program tidak disimpan pada direktori aktif atau current folder sehingga Matlab tidak mengenali variabel yang tertulis pada skrip tersebut. Ada beberapa cara yang dapat dilakukan untuk mengeset direktori aktif: Dengan Windows Explorer, temukan file skrip program. Buka dengan cara klik ganda. Ketika skrip sudah terbuka, maka klik ikon Save and Run pada Toolbar, sehingga muncul kotak dialog perubahan direktori aktif seperti pada Gambar 4.

Info 3.Cara ini mungkin tidak berhasil pada Matlab dengan versi di bawah R2008, di mana Editor dan aplikasi utama Matlab masih terpisah.

Gunakan menu dropdown Current Folder pada toolbar, dan pilih direktori yang akan menjadi direktori aktif. Bila folder yang dituju tidak terdapat pada pilihan, cari dengan mengklik tombol Browse for Folder.

Gambar 6. Memilih direktori aktif

Menggunakan menu File>Set Path, programmer dapat melibatkan lebih dari satu folder sebagai direktori aktif. Pada kotak dialog Set Path, klik tombol Add Folder, dan tentukan folder lain yang akan dijadikan sebagai direktori aktif.

direktori baruGambar 7. Menambahkan direktori aktif

Kalau sudah, klik tombol Close, dan Matlab akan menanyakan apakah direktori aktif yang baru ditambahkan tersebut akan dipakai pada sesi-sesi Matlab selanjutnya melalui kotak dialog berikut:

Gambar 8. Kotak dialog menyimpan setting direktori aktif

Jawab Yes.

Menuliskan KomentarKomentar adalah baris kode program yang berguna untuk memberikan keterangan pada bagian-bagian program sehingga lebih mudah dipahami bila suatu saat hendak dibaca/diperiksa kembali. Penulisan baris komentar diawali dengan tanda %. Sebagai contoh:

a=7b=8c=a+b %baris ini adalah perintah untuk menjumlahkan a dan b%d=a+b+c baris ini tidak akan dieksekusi

Baris komentar boleh ditulis sebaris dengan baris perintah, dengan diawali tanda %. Entah dituliskan pada Command Window atau Editor, setiap baris komentar tidak akan dieksekusi.

Perintah KhususAda beberapa instruksi khusus di Matlab yang berguna untuk melakukan tugas-tugas tertentu. Beberapa instruksi khusus tersebut mungkin akan sering digunakan, yaitu sebagai berikut:

clcMenghapus semua teks pada Command Window, tanpa menghapus variabel di memori aktif

clear nama_variabel1 nama_variabel2 ...Menghapus variabel tertentu dari memori aktif. Nama variabel dituliskan di antara tanda kutip tunggal. Kode clear tidak menghapus teks pada layar

clear allMenghapus semua variabel dari memori program

whosMelihat nama-nama variabel yang terdapat di memori aktif

helpMenampilkan bantuan tentang penggunaan fungsi-fungsi Matlab

Sintaks Dasar MatlabTidak seperti C++ maupun Delphi, menuliskan sintaks program pada Matlab tidak perlu diawali dengan deklarasi variabel. Secara umum, sintaks dasar Matlab adalah:

variabel=ekspresi

atau

ekpresi

Perhatikan contoh kode program sederhana berikut:

%-----------------------------------%Latihan 01%-----------------------------------disp(Hallo Bu! (: )%menampilkan teks. Teks diapit tanda disp(Selamat Siang)%ini juga, samaa=7%membuat variabel a yang bernilai 7b=8%membuat variabel b yang bernilai 8c=a+b%variabel c hasil penjumlahan a dan b

Matlab akan mengeksekusi perintah tersebut baris-perbaris sesuai urutan penulisan. Setiap baris pada Matlab akan dianggap sebagai instruksi yang berbeda. Baris perintah pada Matlab boleh tidak diakhiri dengan titik koma (;) dan tidak akan berpengaruh terhadap jalan atau tidaknya program ;)

Kadangkala programmer salah memasukkan ekspresi yang tidak dikenali Matlab, sehingga memunculkan pesan kesalahan:

>> 10+5b??? 10+5b Error: Unexpected MATLAB expression.

Pada potongan kode tersebut, kesalahan terdapat pada 5b di mana ia bukanlah variabel dan bukan pula suatu operasi.

2. Variabel, Tipe Data, dan OperatorAda beberapa aturan umum dalam mendefinisikan variabel pada Matlab, yaitu: Nama variabel bersifat case sensitive. Variabel A dengan a dianggap sebagai variabel yang berbeda. Nama variabel boleh berupa kombinasi huruf, angka, dan simbol, dengan catatan harus diawali dengan huruf. Misalnya: dth1, dx2, hasil_terbaru, dll. Nama variabel tidak boleh lebih dari 31 karakter Nama variabel tidak boleh memuat spasi

Variabel pada Matlab akan langsung dideklarasikan saat variabel tersebut diberi nilai yang jelas dan digunakan. Variabel dapat pula di-overwrite nilainya dengan nilai yang baru. Namun karena Matlab tidak mendefinisikan secara eksplisit tipe suatu variabel, sebuah variabel dapat saja berubah-rubah tipenya tergantung nilai terakhir yang dimasukkan. Berikut ini adalah beberapa variabel yang sering digunakan dalam Matlab.

Angka/SkalarPemberian nilai variabel dilakukan dengan tanda =. Misalnya programmer mengetikkan kode program berikut pada M-File Editor:

%-----------------------------------%Latihan 02%-----------------------------------disp(Hallo Bu! (:)%menampilkan teks. Teks diapit tanda disp(Selamat Siang)%ini juga, samaa=13%membuat variabel a yang bernilai 13b=12%membuat variabel b yang bernilai 12c=a+b%variabel c hasil penjumlahan a dan bd=c-9%variabel d, yaitu c-9e=d-5.45%variabel e, yaitu d-5.45

Simpan skrip dengan nama latihan02.m, dan jalankan untuk mendapatkan hasil berikut:

Gambar 9. Variabel angka pada Matlab

Info 4. By default, variabel bertipe angka pada Matlab adalah double precision, baik itu untuk angka desimal maupun integer. Tetapi ada variabel angka tertentu dengan tipe lain, misalnya uint8, uint16, int8, int16, dll. Matlab menyediakan fungsi konversi antartipe variabel.

VektorVariabel vektor didefinisikan dengan cara yang sama seperti variabel angka/skalar. Namun karena variabel vektor memuat lebih dari 1 nilai angka, maka cara pengisian nilainya agak berbeda. Untuk memisahkan kolom pada vektor baris, cukup gunakan spasi. Sedangkan untuk memisahkan baris pada vektor kolom menggunakan tanda (;). Perhatikan potongan kode berikut:

%-----------------------------------%Latihan 03%-----------------------------------clcdisp(Definisi variabel vektor)A=[1 2 3]%A adalah sebuah vektor barisB=[3;2;1]%B adalah sebuah vektor kolom

Pada contoh tersebut, A adalah vektor baris dengan 3 elemen, sedangkan B adalah sebuah vektor kolom dengan 3 elemen. Pada Command Window Matlab, hasil eksekusi kedua variabel tersebut adalah:

Gambar 10. Variabel vektor pada Matlab

Jumlah elemen vektor tidak dibatasi.

MatriksVariabel matriks didefinisikan dengan cara yang sama seperti variabel vektor. Hanya saja variabel matriks umumnya memiliki jumlah baris dan kolom lebih dari satu. Aturan pengisiannya sama dengan variabel vektor. Namun perlu diperhatikan bahwa pengisian nilai variabel matriks harus dituntaskan baris per baris. Perhatikan contoh kode berikut:

C=[13 21 34;42 51 60]%matriks ukuran 2x3D=[15 27;33 41;51 60]%matriks ukuran 3x2

Hasil eksekusi kode tersebut adalah:

Gambar 11. Variabel matriks

Info 5. Vektor dapat pula dianggap sebagai matriks. Vektor baris adalah matriks berdimensi 1xn dan vektor kolom adalah matriks berdimensi mx1.

StringVariabel string adalah kumpulan karakter yang membentuk satu kata atau baris kalimat. Variabel ini biasanya dibuat untuk menampilkan teks. Untuk membuat variabel string, maka pendefinisiannya menggunakan tanda (apostrof, kutip tunggal/single quotation) pada awal dan akhir string. Misalnya:

E=Hello WorldF=Bonjour a tous!yang akan menghasilkan:

Gambar 12. Variabel string

Variabel string boleh hanya memuat satu karakter.

Info 6. Bagaimana cara menulis tanda apostrof di Matlab, padahal karakter itu dipakai untuk membatasi string? Gunakan tanda kutip tunggal 2 kali (). Misalnya string Aa Gym dapat ditulis: disp(Aa Gym)

Variabel KhususAda beberapa variabel khusus yang telah didefinisikan di Matlab, yaitu sebagai berikut:

VariabelKegunaan

iAkar -1

jSama dengan i

piKonstanta lingkaran pi=3.1415.......

InfTidak terhingga

NaNNot a Number. Variabel yang bukan angka. Biasanya muncul pada operasi yang seharusnya menghasilkan nilai angka, tetapi karena hal-hal tertentu malah menghasilkan nilai yang bukan angka.

ansSingkatan dari answer, yaitu variabel default yang diberikan matlab kepada hasil suatu operasi yang tidak ditentukan nama variabelnya oleh programmer.

Info 7.Masih ada beberapa variabel khusus lain yang terdapat di Matlab. Yang perlu diperhatikan adalah meskipun variabel tersebut telah didefinisikan oleh Matlab, programmer dapat saja meng-overwrite variabel tersebut dengan nilai yang baru. Misalnya pi=12.345, maka variabel pi bukan lagi konstanta lingkaran yang kita kenal.

Operator dan Operasi AritmatikaOperator pada Matlab terdiri dari beberapa jenis, yaitu operator logika, aritmatika, maupun operator relasional. Operator sering dipakai pada perhitungan-perhitungan matematika, perbandingan, maupun kendali program.

OperatorKegunaan

+Penjumlahan 2 atau lebih variabel. Misalnya a=c+d

-Pengurangan 2 atau lebih variabel. Misalnya a=c-d

*Perkalian 2 atau lebih variabel. Misalnya a=c*d

/Pembagian 2 atau lebih variabel. Bilangan pembagi diletakkan di sebelah kanan. Misalnya a=c/d berarti c dibagi d.

\Left Division.Bilangan pembagi diletakkan di sebelah kiri. Misalnya a=c\d berarti d dibagi c.

^Perpangkatan. Misalnya a=b^c berarti b pangkat c.

Operator tersebut bekerja sebagaimana operasi matematika biasa. Operator tersebut juga dapat bekerja secara langsung dengan variabel vektor dan matriks. Jadi di Matlab, melakukan operasi-operasi pada vektor dan matriks sama mudahnya dengan operasi pada bilangan biasa, selama kaidah operasi tersebut terpenuhi. Perhatikan contoh kode berikut:

%-----------------------------------%Latihan 04%Operator%-----------------------------------clcclear alldisp(Menguji Operator)a=3%a=3b=2%b=2c=a+b%c adalah penjumlahan 3 dan 2d=a-b%d adalah pengurangan 3 oleh 2e=a*b%e adalah perkalian 3 dan 2f=a/b%f adalah pembagian 3 oleh 2g=a^b%g adalah 3 pangkat 2A=[1 2 3;4 5 6]%A adalah sebuah matriks 2x3B=[3 4;2 5;1 6]%B adalah sebuah matriks 3x2C=A*B%C adalah matriks 2x2D=B*A%D adalah matriks 3x3 E=A*A%error, menyalahi aturan perkalian matriks

Berikut adalah cuplikan hasil program tersebut:

error, menyalahi aturan perkalian matriksGambar 13. Hasil operator

Dalam perhitungan, tidak jarang berbagai jenis operasi dilakukan dalam satu baris. Namun urutan operasi yang harus dikerjakan terlebih dahulu sesuai dengan kaidah matematika secara umum, di mana derajat operasi perpangkatan lebih tinggi dari perkalian atau pembagian, dan derajat operasi perkalian atau pembagian lebih tinggi daripada operasi penjumlahan atau pengurangan. Operasi dengan derajat lebih tinggi akan didahulukan. Namun bila operator menghendaki operasi tertentu dikerjakan terlebih dahulu dapat menggunakan tanda kurung ().

%-----------------------------------%Latihan 05%Operator Precedence%-----------------------------------clcclear alldisp(Operator Precedence)a=3b=2c=1d=4f=a+b-c*d %c dan d dikalikan terlebih dahulug=a+(b-c)*d %pengurangan b dengan c dikerjakan lebih dahuluh=a+b^d %b dipangkatkan dahulu, lalu dijumlahkan dengan ai=(a+b)^d %a dan b dijumlahkan dahulu, lalu dipangkatkan

Berikut adalah hasil running kode tersebut yang menunjukkan perbedaan hasil akibat operator precendence:

Gambar 14. Operator precedence

3. Fungsi MatematikaMatlab menyediakan beberapa fungsi matematika standar untuk melakukan perhitungan-perhitungan yang sangat sulit bila diselesaikan dengan operator aritmatika. Fungsi-fungsi tersebut umumnya adalah fungsi trigonometri, hiperbolik, dan eksponensial. Terdapat juga fungsi-fungsi lain yang terkait dengan pembulatan.

Fungsi Trigonometri dan InversnyaBeberapa fungsi trigonometri beserta inversnya yang umum digunakan di Matlab adalah sebagai berikut:

FungsiContoh PemakaianPenjelasan

sinsin(pi)Nilai sinus pi radian (180)

coscos(pi/2)Nilai cosinus pi/2 radian (90)

tantan(pi/4)Nilai tangen pi/4 radian (45)

secsec(pi)Nilai sekan pi radian (180)

csccsc(pi/2)Nilai kosekan pi/2 radian (90)

asinasin(0.5)Nilai sudut arcsin 0.5, yaitu pi/6 radian (30)

acosacos(0.5)Nilai sudut arcos 0.5 , yaitu pi/3 radian (60)

atanatan(1)Nilai sudut arctan 1, yaitu pi/4 radian (45)

asecasec(2)Nilai sudut arcsec 2, yaitu pi/3 radian (60)

acscacsc(2)Nilai sudut arccsc 2, yaitu pi/6 radian (30)

Bila kita memperhatikan tabel di atas, secara default fungsi trigonometri pada Matlab mensyaratkan nilai input sudut dalam radian. Pada bahasa program lain pun umumnya fungsi trigonometri menggunakan satuan sudut dalam radian. Namun Matlab juga me nyediakan fungsi trigonometri yang bekerja pada satuan derajat:

FungsiContoh PemakaianPenjelasan

sindsind(180)Nilai sinus 180

cosdcosd(90)Nilai kosinus 90

tandtand(45)Nilai tangen 45

secdsecd(180)Nilai sekan 180

cscdcscd(90)Nilai kosekan 90

asindasind(0.5)Nilai sudut arcsin 0.5, yaitu 30

acosdacosd(0.5)Nilai sudut arcos 0.5 , yaitu 60

atandatand(1)Nilai sudut arctan 1, yaitu 45

asecdasecd(2)Nilai sudut arcsec 2, yaitu 60

acscdacscd(2)Nilai sudut arccsc 2, yaitu 30

Berikut adalah contoh skrip program untuk menguji fungsi-fungsi tersebut:

%-----------------------------------%Latihan 06%Fungsi Trigonometri%-----------------------------------clcclear alla=sin(pi/6) %sinus pi/6 radianb=sind(30)%sinus 30 derajatc=cos(pi/3)%cosinus pi/3 radiand=cosd(60)%cosinus 60 derajate=tan(pi/4)%tangen pi/4 radianf=tand(45)%tangen 45 derajatg=asin(0.5)%satuan g dalam radianh=asind(0.5)%satuan h dalam derajati=acos(0.5)%satuan i dalam radianj=acosd(0.5)%satuan j dalam derajatk=atan(1)%satuan k dalam radianl=atand(1)%satuan l dalam derajat

yang apabila dijalankan menghasilkan:

a = 0.5b = 0.5c = 0.5d = 0.5e = 1f = 1g = 0.523598775598299h = 30i = 1.0471975511966j = 60k = 0.785398163397448l = 45>>

Info 8.Fungsi-fungsi trigonometrik pada Matlab dapat bekerja dengan masukan data bertipe vektor atau matriks, dengan hasilnya juga akan memiliki tipe dan jumlah elemen yang sama. Sebagai contoh, programmer dapat menuliskan perintah a=sind([0 30 90 120]) yang akan menghasilkan a=[0 0.5 1 0.5]. Kemampuan ini juga berlaku untuk fungsi hiperbolik dan eksponensial yang akan dijelaskan selanjutnya.

Fungsi Hiperbolik dan InversnyaMatlab memiliki sekumpulan fungsi hiperbolik yang siap untuk digunakan. Fungsi-fungsi ini menggunakan satuan sudut berupa radian baik untuk masukan maupun keluarannya:

FungsiContoh PemakaianPenjelasan

sinhsinh(pi)Nilai sinus hiperbolik pi radian

coshcosh(pi/2)Nilai cosinus hiperbolik pi/2 radian

tanhtanh(pi/4)Nilai tangen hiperbolik pi/4 radian

sechsech(pi)Nilai sekan hiperbolik pi radian

cschcsch(pi/2)Nilai kosekan hiperbolik pi/2 radian

asinhasinh(0.5)Nilai invers sinus hiperbolik 0.5

acoshacosh(0.5)Nilai invers cosinus hiperbolik 0.5

atanhatanh(1)Nilai invers tangen hiperbolik 1

asechasech(2)Nilai invers sekan hiperbolik 2

acschacsch(2)Nilai invers kosekan hiperbolik 2

Berikut adalah contoh skrip program yang menggunakan fungsi-fungsi tersebut:

%-----------------------------------%Latihan 07%Fungsi Hiperbolik%-----------------------------------clcclear alla=sinh(pi/6) %sinus hiperbolik pi/6 radianb=cosh(pi/3)%cosinus hiperbolik pi/3 radianc=tanh(pi/4)%tangen hiperbolik pi/4 radiand=sech(pi)%secant hiperbolik pi radiane=csch(pi)%cosecant hiperbolik pi radianf=asinh(1)%invers sinus hiperbolikg=acosh(1)%invers cosinus hiperbolikh=atanh(1)%invers tangen hiperboliki=asech(1)%invers secant hiperbolikj=acsch(1)%invers cosecant hiperbolik

yang apabila dijalankan menghasilkan:

a = 0.54785347388804b = 1.60028685770239c = 0.655794202632672d = 0.0862667383340544e = 0.0865895375300469f = 0.881373587019543g = 0h = Infi = 0j = 0.881373587019543>>

Perlu diketahui bahwa selain mencakup bilangan real, fungsi hiperbolik juga dapat mencakup bilangan kompleks.

Fungsi EksponensialFungsi eksponensial berkaitan erat dengan perpangkatan suatu bilangan. Adapun beberapa fungsi eksponensial di Matlab adalah:

FungsiContoh PemakaianPenjelasan

loglog(10)Nilai logaritma natural dari 10, yaitu 2.3026

log10log10(10)Nilai logaritma basis 10 dari 10, yaitu 1

log2log2(2)Nilai logaritma basis 2 dari 2, yaitu 1

expexp(5)Nilai eksponensial 5, yaitu e pangkat 5, di mana e adalah bilangan Euler (e=2.78....)

sqrtsqrt(3)Nilai akar kuadrat suatu bilangan, dalam hal ini 3

Berikut adalah contoh program yang menggunakan fungsi tersebut:

%-----------------------------------%Latihan 08%Fungsi Eksponensial%-----------------------------------clcclear alla=log(34) %nilai logaritma natural 34b=log10(100)%nilai logaritma basis 10 dari 100c=log2(8)%nilai logaritma basis 2 dari 8d=exp(7)%bilangan Euler dipangkatkan 7e=sqrt(d)%akar kuadrat dari variabel d

yang apabila dijalankan menghasilkan:

a = 3.52636052461616b = 2c = 3d = 1096.63315842846e = 33.1154519586923>>

Pembulatan BilanganPembulatan bilangan berguna untuk mengubah bilangan desimal menjadi bilangan bulat. Pembulatan bisa dilakukan ke atas atau ke bawah, tergantung keperluan. Ada 4 fungsi pembulatan yang sering dipakai di Matlab, yaitu:

FungsiContoh PemakaianPenjelasan

roundround(2.35)Pembulatan ke bilangan bulat terdekat, yaitu 2

floorfloor(-3.35)Pembulatan ke arah negatif tak hingga, hasilnya -4

ceilceil(-3.35)Pembulatan ke arah positif tak hingga, hasilnya -3

fixfix(4.98)Pembulatan ke arah nol, hasilnya 4

Berikut adalah contoh program yang menunjukkan perbedaan hasil fungsi pembulatan tersebut:

%-----------------------------------%Latihan 09%Pembulatan%-----------------------------------clcclear alla=round(2.78) %pembulatan 2.78 -> 3b=round(2.34)%pembulatan 2.34 -> 2c=floor(2.78)%pembulatan ke tak hingga 2.78 -> 2d=floor(-2.11)%pembulatan ke tak hingga -2.11 -> -3e=ceil(3.11)%pembulatan ke + tak hingga 3.11 -> 4f=ceil(-2.78)%pembulatan ke + tak hingga -2.78 -> -2g=fix(-2.78)%pembulatan ke arah nol -2.98 -> -2h=fix(3.11)%pembulatan ke arah nol 3.11 -> 3

Hasil dari program tersebut adalah:

a = 3b = 2c = 2d = -3e = 4f = -2g = -2h = 3>>

4. Manipulasi VariabelSeringkali dalam sebuah program komputer kita perlu mengubah-ubah jenis data yang digunakan. Selain itu kadangkala kita juga menggunakan banyak data yang harus dimasukkan dan diproses secara cepat. Pada bagian ini dijelaskan beberapa teknik manipulasi variabel yang sering dilakukan dengan Matlab.

Konversi Variabel Numerik-StringVariabel angka dan string dapat saling dikonversi satu sama lain. Perintah str2num digunakan untuk mengubah string menjadi angka, sedangkan perintah num2str akan mengubah angka menjadi string. Hasil konversi dapat disimpan dalam suatu variabel lain atau digunakan langsung dalam suatu perintah atau perhitungan tertentu.

Perhatikan potongan kode berikut yang menunjukkan konversi string ke angka:

a=3.1415x=str2num(a)y=str2num(34.5667)whos

Pada potongan kode tersebut, variabel a bertipe string diubah menjadi variabel x bertipe numerik. Sedangkan pada baris ketiga, string 34.5667 diubah langsung menjadi variabel y bertipe numerik double precision dan dapat dipakai pada beragam perhitungan.

Gambar 15. Konversi string ke numerik

Sebaliknya, variabel bertipe angka dapat diubah menjadi string dengan perintah num2str dalam pola berikut:

str=num2str(number,format)

Untuk menspesifikkan jumlah tempat desimal di belakang koma yang dituliskan, isian format dapat diisi dengan %.af di mana a menunjukkan jumlah angka di belakang koma. Berikut adalah perbedaan hasil string akibat format yang berbeda:

>> num2str(pi)ans =3.1416>> num2str(pi,'%.1f')ans =3.1>> num2str(pi,'%.3f')ans =3.142>> num2str(pi,'%.7f')ans =3.1415927>>

Secara otomatis, hasil string dituliskan dengan pembulatan tergantung jumlah tempat desimal yang ditulis.

Membuat Variabel dengan Rentang Nilai TertentuMatlab menyediakan cara cepat untuk membuat variabel dengan rentang nilai tertentu: Data dengan batas awal dan batas akhir yang ditentukan:

>> A=[0:10]A = 0 1 2 3 4 5 6 7 8 9 10>>

Secara default, interval data diset menjadi 1 poin.

Data dengan batas awal, batas akhir, dan interval data yang ditentukan:

>> A=[0:2:10]A = 0 2 4 6 8 10>>

Interval data dapat ditentukan dengan mudah oleh programer.

Data dengan batas awal, batas akhir, dan jumlah data ditentukan:

>> A=linspace(1,7,6)A = 1 2.2 3.4 4.6 5.8 7>>

Penulisan perintah pada contoh tersebut mengikuti pola variabel=linspace(batas_awal,batas_akhir,jumlah_data).

Matriks-Matriks KhususAda beberapa matriks-matriks khusus yang dapat dibuat dengan mudah dengan Matlab, yaitu: Matriks dengan semua elemen bernilai nol, dibuat dengan perintah yang ditulis mengikuti pola berikut:

variabel=zeros(jml_baris,jml_kolom)

Sebagai contoh, berikut adalah implementasinya:

>> A=zeros(3,5)A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>

Matriks dengan semua elemen bernilai 1, dibuat dengan cara yang sama seperti membuat matriks nol. Hanya saja perintah yang digunakan adalah ones, seperti contoh berikut:

>> A=ones(3,5)A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>>

Matriks berisi bilangan acak antara 0 dan 1 dibuat dengan cara yang sama seperti membuat matriks nol dan satu, tetapi perintah yang digunakan adalah rand, seperti contoh berikut:

>> A=rand(3,5)A = 0.1419 0.7922 0.0357 0.6787 0.3922 0.4218 0.9595 0.8491 0.7577 0.6555 0.9157 0.6557 0.9340 0.7431 0.1712>>

Matriks identitas, memiliki elemen diagonal utama 1 dan elemen selain itu adalah nol. matriks ini dibuat dengan perintah eye(jumlah_baris).Perhatikan contoh berikut:

>> A=eye(4)A = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1>>

Orientasi dan Penggabungan Matriks Transpose matriks dilakukan untuk menukar elemen baris matriks menjadi kolom matriks, dan sebaliknya. transpose suatu matriks pada Matlab dilakukan hanya dengan menambahkan tanda apostrof ( ) setelah matriks. Perhatikan contoh berikut:

>> A=[1 2 3;4 5 6]A = 1 2 3 4 5 6>> B=A'B = 1 4 2 5 3 6>>

Concatenation, yaitu menggabungkan lebih dari 1 matriks menjadi matriks yang lebih besar dengan menempatkan matriks tersebut secara berdampingan/berurutan, baik kiri-kanan maupun atas-bawah. Perhatikan contoh berikut:

>> A=[1 2 3;4 5 6]A = 1 2 3 4 5 6>> B=[3 4 5;6 7 8]B = 3 4 5 6 7 8>> C=[A B]C = 1 2 3 3 4 5 4 5 6 6 7 8>> D=[B A]D = 3 4 5 1 2 3 6 7 8 4 5 6>> E=[A;B]E = 1 2 3 4 5 6 3 4 5 6 7 8>> F=[B;A]F = 3 4 5 6 7 8 1 2 3 4 5 6>>

Matriks C dan D adalah hasil penggabungan matriks dalam arah kiri-kanan. Sedangkan matriks E dan F adalah hasil penggabungan matriks dalam arah atas-bawah. Pada dasarnya proses ini sama dengan cara pengisian elemen suatu matriks (lihat bagian 2). Tentu saja proses ini akan berhasil bila jumlah baris dan kolom matriks-matriksnya bersesuaian.

Flip matriks, yaitu pencerminan matriks dalam arah kiri-kanan ataupun atas-bawah. Proses ini membalik urutan baris atau kolom matriks, di mana baris atau kolom terakhir menjadi baris atau kolom pertama dan sebaliknya. Perhatikan contoh kode program berikut:

%-----------------------------------%Latihan 10%Flip matriks%-----------------------------------clcclear all A=[1 2 3 4;5 6 7 8;9 10 11 12]B=flipud(A) % pencerminan matriks A dalam arah atas-bawahC=fliplr(A) % pencerminan matriks A dalam arah kiri-kanan

Bila kode tersebut dijalankan, akan menghasilkan:

A = 1 2 3 4 5 6 7 8 9 10 11 12B = 9 10 11 12 5 6 7 8 1 2 3 4C = 4 3 2 1 8 7 6 5 12 11 10 9>>

String ConcatenationSelain dapat diterapkan pada variabel matriks atau vektor, teknik concatenation ini dapat diterapkan pada data string. Kemampuan ini sangat penting untuk menuliskan kalimat yang berasal dari kombinasi kata tertentu. Cara melakukannya sama persis dengan penggabungan matriks, di mana pada kasus ini setiap string dapat dianggap sebagai matriks yang berisi kumpulan karakter. Perhatikan contoh berikut:

>> angka=num2str(pi,'%.6f')angka =3.141593>> awal='jadi nilai pi adalah 'awal =jadi nilai pi adalah >> gabungan=[awal angka]gabungan =jadi nilai pi adalah 3.141593>> disp(gabungan)jadi nilai pi adalah 3.141593>>

Mengakses Elemen VariabelDari sebuah variabel vektor atau matriks, kita dapat mengambil sebagian isinya untuk menjadi variabel baru baik variabel skalar, vektor, atau matriks yang berukuran lebih kecil. Umumnya mengakses variabel dilakukan dengan pola:

output=variabel_asal(indeks_baris,indeks_kolom)

Semisal terdapat matriks A:

>> A=[2 3 4;5 6 7;8 9 10;11 12 13]A = 2 3 4 5 6 7 8 9 10 11 12 13>>

Variabel tunggal dari matriks A diakses dengan cara:

>> a=A(3,2)%a adalah elemen matriks A baris ke-3 kolom ke-2a = 9>>

Vektor kolom dan baris dari suatu matriks diperoleh dengan cara:

>> b=A(:,3) b = 4 7 10 13>> %hasilnya adalah vektor kolom>> c=A(2,:) c = 5 6 7>> %hasilnya adalah vektor baris

Tanda ( : ) pada isian indeks baris atau kolom berarti seluruhnya. Jadi bila dituliskan b=A(:,3) secara harfiah berarti elemen b berasal dari matriks A pada semua baris ( : ) pada kolom ke-3 (3).

Matriks dari suatu matriks diperoleh dengan menuliskan batas awal dan batas akhir pada isian indeks baris dan kolom:

>> AA = 2 3 4 5 6 7 8 9 10 11 12 13>> D=A(2:4,2:3)%elemen matriks A baris ke-2 sampai ke-4D = 6 7 9 10 12 13>> E=A(1:3,:)E = 2 3 4 5 6 7 8 9 10>>

Pada contoh tersebut, matriks D elemennya berasal dari matriks A baris ke-2 sampai baris ke-4 (2 : 4) pada kolom ke-2 sampai kolom ke-3 (2 : 3). Sedangkan matriks E elemennya berasal dari matriks A baris ke-1 sampai baris ke-3 (1 : 3) pada semua kolom ( : ).

Mengganti Elemen VariabelBila kita dapat mengambil suatu variabel dari variabel lain, maka suatu nilai tertentu juga dapat disisipkan untuk mengganti nilai pada suatu elemen variabel. Proses ini hampir sama dengan cara mengakses nilai variabel, hanya saja pola perintahnya terbalik:

variabel_asal(indeks_baris,indeks_kolom)=nilai_input_baru=

Mengganti nilai satu elemen tunggal di A dengan nilai baru:

>> AA = 2 3 4 5 6 7 8 9 10 11 12 13>> A(2,3)=100A = 2 3 4 5 6 100 8 9 10 11 12 13>>

Nilai elemen matriks A baris ke-2 kolom ke-3 telah berganti menjadi 100.

Mengganti nilai satu baris atau kolom di A dengan nilai baru:

>> AA = 2 3 4 5 6 100 8 9 10 11 12 13>> A(:,2)=44A = 2 44 4 5 44 100 8 44 10 11 44 13>>

Kolom ke-2 pada matriks A diubah nilainya menjadi 44.

>> AA = 2 44 4 5 44 100 8 44 10 11 44 13>> A(3,:)=0A = 2 44 4 5 44 100 0 0 0 11 44 13>>

Baris ke-3 pada matriks A diubah nilainya menjadi 0. Mengganti nilai elemen tertentu di A dengan nilai baru:

>> AA = 2 44 4 5 44 100 0 0 0 11 44 13>> A(3:4,2:3)=77A = 2 44 4 5 44 100 0 77 77 11 77 77>>

Pada contoh tersebut, elemen baris ke-3 sampai ke-4 dan kolom ke-2 sampai ke-3 diubah nilainya menjadi 77.

Array OperationArray operation adalah operasi matematika pada variabel bertipe vektor atau matriks yang dilakukan elemen-per-elemen. Operator yang digunakan sama dengan operator matematika, hanya saja sebelum tanda operator diletakkan tanda titik ( . ). Berikut adalah beberapa contoh array operation:

Perkalian:

>> B=[1 2 3;4 5 6]B = 1 2 3 4 5 6>> C=B.*B%setiap elemen B dikalikan dengan dirinya sendiriC = 1 4 9 16 25 36>> D=[2 2 2;1 1 1]D = 2 2 2 1 1 1>> E=C.*D%setiap elemen C dikalikan dengan elemen D yang bersesuaianE = 2 8 18 16 25 36>>

Operasi tersebut tidak bisa dilakukan bila kita memakai operator perkalian biasa karena tanpa tanda ( . ) perkalian akan dianggap sebagai perkalian matriks.

Pembagian:

>> BB = 1 2 3 4 5 6>> C=B./B%setiap elemen B dibagi dengan dirinya sendiriC = 1 1 1 1 1 1>> D=[3 4 5;3 2 1]D = 3 4 5 3 2 1>> E=C./D%setiap elemen C dibagi dengan elemen D yang bersesuaianE = 0.3333 0.25 0.2 0.3333 0.5 1>>

Perpangkatan:

>> BB = 1 2 3 4 5 6>> G=B.^2%setiap elemen B dipangkatkan 2G = 1 4 9 16 25 36>> H=B.^3%setiap elemen B dipangkatkan 3H = 1 8 27 64 125 216>>

Seperti perkalian dan pembagian, operasi ini bila tidak ditandai dengan tanda ( . ) maka akan dianggap sebagai perkalian matriks yang tentu saja tidak bisa dilakukan bila syarat baris dan kolomnya tidak terpenuhi.

Menyeleksi DataKadang-kadang kita perlu melakukan seleksi data untuk keperluan tertentu. Proses seleksi data ini dapat dilakukan dengan bantuan operator perbandingan dan perkalian elemen-per-elemen. Berikut adalah contoh seleksi data dengan operator perbandingan:

>> A=[1 2 3 6 3 7 8;9 2 5 1 5 8 7;9 3 7 4 2 5 9;3 4 6 9 8 1 2]A = 1 2 3 6 3 7 8 9 2 5 1 5 8 7 9 3 7 4 2 5 9 3 4 6 9 8 1 2

>> A==1%mencari semua elemen A yang sama dengan 1ans = 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0>> A>5%mencari semua elemen A yang lebih dari 5ans = 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0>>

Seleksi data dengan operator perbandingan hanya menghasilkan angka 0 dan 1 (0 berarti tidak sesuai kriteria seleksi; 1 berarti sesuai kriteria seleksi). Untuk mengetahui nilai yang terseleksi, lakukan perkalian elemen-per-elemen matriks asli dengan hasil pencarian:

>> B=(A>5).*AB = 0 0 0 6 0 7 8 9 0 0 0 0 8 7 9 0 7 0 0 0 9 0 0 6 9 8 0 0>>

Info 9.Operator perbandingan yang terdapat pada Matlab antara lain:==: sama dengan>: lebih besar dari>=: lebih besar dari atau sama dengan

Info 10.Untuk memasukkan variabel string dengan menggunakan input, maka ketika mengetiknya harus diapit dengan tanda apostrof ( ).

Perulangan TerbatasPerulangan terbatas adalah perintah yang diulangi beberapa kali dalam jumlah tertentu. Perulangan terbatas pada Matlab dilakukan dengan perintah for dengan sintaks umum:

for indeks_perulangan=nilai_awal:nilai_akhirbaris perintah 1baris perintah 2...dstend

atau:

for indeks_perulangan=nilai_awal:interval:nilai_akhirbaris perintah 1baris perintah 2...dstend

Baris perintah yang diletakkan di antara for dan end adalah baris perintah yang diulangi. Perbedaan antara kedua contoh tersebut tersebut adalah pada contoh pertama, nilai indeks perulangan bergerak dari nilai awal sampai ke nilai akhir dengan interval 1 angka. Sedangkan pada contoh kedua, interval perulangan dapat ditentukan secara spesifik di antara batas awal dan batas akhir. Perhatikan contoh kode sederhana berikut:

%---------------------------%Latihan 11%---------------------------clear allclc disp('Iterasi terbatas dengan interval default')for i=1:10 disp(['hello world. This is the ' num2str(i) 'th order'])end disp(' ')disp(' ')disp('Iterasi terbatas dengan interval ditentukan')for i=1:2:10 disp(['hello world. This is the ' num2str(i) 'th order'])end

Hasil running kode tersebut adalah:

Iterasi terbatas dengan interval defaulthello world. This is the 1th orderhello world. This is the 2th orderhello world. This is the 3th orderhello world. This is the 4th orderhello world. This is the 5th orderhello world. This is the 6th orderhello world. This is the 7th orderhello world. This is the 8th orderhello world. This is the 9th orderhello world. This is the 10th order Iterasi terbatas dengan interval ditentukanhello world. This is the 1th orderhello world. This is the 3th orderhello world. This is the 5th orderhello world. This is the 7th orderhello world. This is the 9th order>>

Yang menarik, nilai indeks perulangan tidak harus bilangan bulat. Kita bisa mengisikan bilangan pecahan pada nilai awal, interval, dan nilai akhir kalau memang diperlukan.

Perulangan Tidak TentuBentuk perulangan yang kedua adalah perulangan tidak tentu. Perulangan ini tidak dapat ditentukan jumlahnya. Program akan mengulang perintah yang sama apabila kondisi yang memungkinkan terjadinya perulangan tersebut terpenuhi. Perulangan tidak tentu dilakukan dengan perintah while dengan sintaks umum:

while kondisiperintah 1perintah 2...dstend

Contoh kode berikut:

%---------------------------%Latihan 12%while%---------------------------clear allclc i=1n=0while i>

Info 11.Perulangan dengan while dapat saja tidak bisa berakhir. Hal ini dapat disebabkan oleh syarat perulangan yang selalu terpenuhi. Perhatikan contoh potongan kode berikut:...while i=80 %syarat 1 grade='A'elseif nilai>=70 && nilai=60 && nilai=50 && nilai>

Pada kode tersebut, syarat untuk mengerjakan suatu alternatif perintah dapat lebih dari 1. Sehingga untuk mengkombinasikannya dapat menggunakan operator relasional: && berarti dan || berarti atau ~ berarti not (bukan)

Percabangan Switch...CaseSelain menggunakan perintah if, percabangan juga dapat menggunakan perintah switch...case. Percabangan ini biasanya dipakai bila syarat percabangan diasosiasikan dengan nilai satu variabel tertentu. Sintaks umum perulangan switch...case adalah:

switch variabelcase nilai_1perintah 1perintah 2...dstcase nilai_2perintah 1perintah 2...dst...otherwiseperintah 1perintah 2end

Blok otherwise pada sintaks tersebut menyatakan alternatif solusi yang dikerjakan bila tidak ada nilai variabel yang memenuhi salah satu kondisi yang didefinisikan pada blok case. Blok otherwise tersebut boleh ditiadakan bila tidak diperlukan. Berikut adalah contoh penggunaan switch...case:

%---------------------------%Latihan 14%Percabangan Switch case%---------------------------clear allclcdisp('NB: ngetik pilihannya diapit tanda apostrof, nggih?')pilihan=input('Mau menghitung luas persegi, segitiga, atau lingkaran?: ') switch pilihan case 'persegi' s=input('masukkan ukuran sisi: ') L=s^2; disp(['Luas ' pilihan ' adalah: ' num2str(L)]) case 'segitiga' a=input('masukkan ukuran alas: ') t=input('masukkan ukuran tinggi: ') L=0.5*a*t; disp(['Luas ' pilihan ' adalah: ' num2str(L)]) case 'lingkaran' r=input('masukkan ukuran jari-jari: ') L=pi*r^2; disp(['Luas ' pilihan ' adalah: ' num2str(L)]) otherwise disp('sorry, ente typo gans :P')end

Bila program tersebut dijalankan akan menghasilkan:

NB: ngetik pilihannya diapit tanda apostrof, nggih?Mau menghitung luas persegi, segitiga, atau lingkaran?: 'segitiga'pilihan =segitigamasukkan ukuran alas: 10a = 10masukkan ukuran tinggi: 20t = 20Luas segitiga adalah: 100>>

6. Interaksi FileSelain dari input pengguna melalui keyboard, sebuah program komputer pada Matlab juga dapat berinteraksi dengan file lain, misalnya untuk membaca dan menyimpan data. Berikut akan dijelaskan beberapa teknik interaksi file dengan Matlab.

Interaksi dengan MAT-FileCara paling mudah dalam interaksi file menggunakan Matlab adalah dengan perantaraan file *.mat. File jenis ini adalah file biner yang berisi variabel-variabel Matlab yang hanya bisa dibuka dengan Matlab.Untuk menyimpan variabel dalam sebuah file *.mat, kita dapat menggunakan perintah save:

save nama_file variabel1 variabel2 variabel3 ... variabel_dst

Nama file diketik tanpa spasi dan ekstensi apapun. Untuk lebih jelasnya, perhatikan kode berikut:

%---------------------------------%Latihan 15%Save MAT-File%--------------------------------- clear allclc x=[0:2:16]y=[0:1:8] save data15 x y

Matlab akan menyimpan variabel x dan y tersebut pada folder yang sama dengan m-file skrip tersebut dengan nama data15.mat.

Selanjutnya, file tersebut dapat dipanggil dengan perintah load:

load nama_file

Nama file diketik tanpa spasi dan ekstensi apapun dan Matlab akan me-load semua variabel yang tersimpan dalam file tersebut ke dalam memori aktif. Perhatikan kode berikut:

%---------------------------------%Latihan 16%Load MAT-File%--------------------------------- clear allclc load data15xyz=x+y

yang apabila dijalankan, maka akan menghasilkan:

x = 0 2 4 6 8 10 12 14 16y = 0 1 2 3 4 5 6 7 8z = 0 3 6 9 12 15 18 21 24>>

Perhatikan pada kode tersebut, meskipun di awal Matlab melakukan pengosongan memori, namun setelah me-load file data15.mat Matlab dapat mengenali x dan y sehingga dapat digunakan untuk menghitung z.

Info 11.Perintah save boleh dituliskan tanpa menuliskan nama variabelnya sehingga Matlab akan meyimpan semua variabel di memori aktif ke dalam file *.mat tersebut.

Menyimpan dan Me-Load File TeksSelain dengan MAT-File, Matlab juga dapat berinteraksi dengan file bertipe teks ASCII (ekstensi *.txt). Untuk menyimpan sebuah variabel ke dalam file *.txt, gunakan perintah berikut:

save nama_file.txt variabel1 -ascii

Nama file harus ditulis tanpa spasi lengkap dengan ekstensinya. Variabel yang disimpan dalam file teks hendaknya cukup 1 saja. Karena bila terdapat lebih dari 1 variabel yang ditulis dalam file teks yang sama, proses me-load-nya kembali untuk menghasilkan variabel yang benar akan cukup rumit. Perhatikan contoh kode berikut:

%---------------------------------%Latihan 17%Save *.txt file%--------------------------------- clear allclc x=[0:2:16]y=[0:1:8] save data15x.txt x asciisave data15y.txt y -ascii

Skrip tersebut akan melakukan penyimpanan data x dan y dalam file *.txt terpisah. Untuk me-load data tersebut ke dalam suatu variabel, digunakan perintah berikut:

variabel=load(nama_file.txt)

Nama variabel tersebut berguna sebagai media penyimpanan data yang terdapat pada file yang di-load. Perhatikan contoh kode berikut:

%---------------------------------%Latihan 18%Load *.txt file%--------------------------------- clear allclc x=load(data15x.txt)y=load(data15y.txt)z=x+y

yang apabila dijalankan akan menghasilkan:

x = 0 2 4 6 8 10 12 14 16y = 0 1 2 3 4 5 6 7 8z = 0 3 6 9 12 15 18 21 24>>

File *.txt hanya menyimpan nilai variabelnya saja. Oleh karena itu ketika me-load file *.txt, agar nilai tersebut dapat digunakan maka nama variabelnya ditentukan sendiri oleh programmer. Hal ini berbeda dengan *.mat file yang menyimpan nilai/data sekaligus dengan nama variabelnya.

Info 12.Untuk menyimpan dan me-load data dari folder tertentu, maka nama file dituliskan lengkap dengan direktorinya. Semisal programmer ingin menyimpan atau me-load file dataku di folder D:\tugas, maka nama file haris ditulis dengan didahului direktorinya menjadi D:\tugas\dataku atau D:\tugas\dataku.txt. Hal ini berlaku baik untuk file *.txt maupun *.mat.

Membaca Data dari File TerformatKadangkala suatu aplikasi lain menyimpan dan membaca data dalam file tertentu. Sebagai contoh adalah data GPS yang disimpan dalam file RINEX dan ditulis dengan tata letak tertentu. Matlab menyediakan cara untuk membaca file tersebut yang umumnya bertipe teks ASCII.

Untuk memanipulasi sebuah file di Matlab, file tersebut harus dibuka terlebih dahulu, lalu dimanipulasi, dan ditutup kembali. Kita dapat membuka file menggunakan perintah fopen dengan sintaks:

file_id=fopen(nama_file,izin_akses)

file_id pada sintaks di atas adalah variabel pengenal file. Izin akses dapat diisikan dengan 3 cara: r yaitu bila file yang dibuka hanya untuk dibaca w yaitu bila file yang dibuka hanya untuk ditulis a yaitu bila file yang dibuka hanya untuk ditambahkan datanya

Ketika file telah selesai dibuka atau dimanipulasi, selanjutnya file harus ditutup dengan perintah fclose:

fclose(file_id)

Untuk membaca isi sebuah file terformat dapat menggunakan perintah fscanf. Perintah ini mengambil beberapa bagian dari file dan mengubahnya ke dalam variabel yang diinginkan:

fscanf(file_id,format,size)

Format diisikan dengan: %f untuk konversi ke tipe data float/desimal %s untuk konversi ke tipe data string %i untuk konversi ke tipe data integer

Input size diisikan dengan: N: membaca N elemen ke dalam sebuah vektor kolom inf: membaca hingga ke akhir file [m,n]: hasil pembacaan akan dipakai untuk mengisi matriks berdimensi mxn, tetapi nilai diisikan dalam urutan kolom-per-kolom.

Bila size tidak diisikan, maka Matlab akan membaca hingga ke akhir file.

Perhatikan data teks dan skrip berikut:

Skrip berikut akan membaca data yang terdapat pada teks tersebut untuk menghasilkan variabel string dan matriks:

%---------------------------------%Latihan 19%fscanf%---------------------------------clear allclc fid=fopen('mydata.txt','r'); %file mydata.txt akan dibacateks=fscanf(fid,'%s',1)matrix=fscanf(fid,'%f',[4,5]); %matriks4x5matrix=matrix'%lalu ditranspose agar sama dengan di filefclose(fid)

yang akan menghasilkan:

teks =hellomatrix = 2 3 4 5 6 7 8 9 11 12 34 56 34 78 63 23 33 90 54 78>>

Selain menggunakan perintah fscanf, pembacaan isi file berformat juga dapat menggunakan perintah fgets. Perbedaannya, perintah fgets membaca file baris-per-baris.

fscanf(file_id,jumlah_karakter)

Jumlah karakter menunjukkan jumlah karakter yang dibaca dalam 1 baris. Bila tidak dituliskan, maka keseluruhan baris akan dibaca. Nilai keluaran perintah ini adalah string sehingga untuk operasi matematika harus dikonversi ke tipe data numerik. Berikut adalah contoh file yang dibaca dengan perintah fgets:

Data tersebut adalah data pengukuran jarak, di mana baris pertama adalah judul file, baris kedua adalah jumlah data jarak, baris ketiga adalah keterangan data jarak, dan baris selanjutnya adalah data ukuran jarak sejumlah angka pada baris kedua. Skrip berikut akan membaca dan menampilkan, dan menghitung data ukuran jarak tersebut:

%---------------------------------%Latihan 20%fgets%---------------------------------clear allclc fid=fopen('jarak.txt','r');judul=fgets(fid)n_jarak=str2num(fgets(fid))keterangan=fgets(fid)for i=1:n_jarak jarak(i,1)=str2num(fgets(fid));endjarak %menampilkan data jarak yang dibacafclose(fid);total_jarak=sum(jarak) %sum: jumlahan vektordisp(['total panjang jarak adalah ' num2str(total_jarak)])

Bila dijalankan, hasilnya adalah:

judul =Pengukuran Jarakn_jarak = 6keterangan =data jarakjarak = 789.478 675.455 598.355 478.903 982.466 342.892total_jarak = 3867.549total panjang jarak adalah 3867.549>>

Menulis Data ke Dalam File TerformatBila program dapat membaca data dari file terformat, maka tentu program juga harus dapat menulis data ke dalam file terformat. Fungsi ini dapat dijalankan dengan perintah fprintf yang memiliki pola:

fprintf(file_id,string)

Secara default, karena file ASCII adalah teks, maka data yang dituliskan dalam file diubah dulu ke tipe string, lalu dijadikan sebagai satu kesatuan string (lihat String Concatenation). Selanjutnya string tersebut ditulis sebagai satu baris dalam file. Berikut adalah contoh skrip yang akan menuliskan variabel ke dalam file terformat:

%---------------------------------%Latihan 21%fprintf%---------------------------------clear allclc X=rand(6,1) nama_file=input('Simpan di file: ');fid=fopen(nama_file,'wt'); %ijin akses berkode wtfprintf(fid,'Menulis Data ke Dalam File Teks\n\n');%backslash-n berarti baris baru/enterfor i=1:6 fprintf(fid,['Data ke-' num2str(i) ': ' num2str(X(i,1),'%.3f') '\n']); endfprintf(fid,'\nAkhir File Data')fclose(fid)

Program tersebut akan menghasilkan sebuah file *.txt pada direktori aktif. Bila hendak menuliskan file pada folder tertentu, ketika program meminta nama file hasil, programmer harus menuliskan direktori filenya secara lengkap. Hasil runngin program tersebut adalah:

X = 0.751267059305653 0.255095115459269 0.505957051665142 0.699076722656686 0.890903252535799 0.959291425205444Simpan di file: 'percobaan jaya raya.txt'ans = 16ans = 0>>

File yang dihasilkan adalah:

Jurusan Teknik Geomatika | FTSP-ITS | Modul Komputasi Spasial41