56
Home

tata cara matlab 2015

Embed Size (px)

DESCRIPTION

menggunakan matlab dalam kehidupan sehari-hari adalah hal yang biasa

Citation preview

  • Home

  • *

  • Daftar IsiStrategi Penulisan ProgramScript dan M-FileMembuat M-FileMemanggil M-FileSimulasi dengan M-FilePrioritas Pengerjaan di MATLABEcho On dan Echo OffKegunaan Komentar dalam M-FileFungsi-fungsi yang Berguna pada M-FileContoh Penggunaan FungsiPerintah InputFungsi Input dan Fungsi LainEfek Perintah Echo pada M-File*

  • Strategi Penulisan ProgramJika masalah yang dihadapi sederhana, mengetikkan beberapa perintah langsung di jendela Command memang cukup cepat dan efektifJika jumlah perintahnya sangat banyak, atau ingin mengubah nilai beberapa variabel dan kemudian mengulang kembali perhitungannya, cara di atas membosankanAda sarana untuk mengetikkan deretan perintah dalam suatu teks file kemudian memerintahkan MATLAB untuk membuka file tersebut menjalankannya seolah-olah diketikkan langsung di jendela CommandFile seperti itu dinamakan file script atau M-file

    *

  • Script dan M-FileKata script berarti bahwa MATLAB hanya membaca dari script yang ditemukan dalam fileKata M-file berasal dari aturan bahwa nama file script harus diakhiri dengan ekstensi .m, misalnya contoh1.m*

  • Membuat M-FilePilih New dari menu File dan pilih M-fileCara lain: klik ikon New M-file pada toolbarSuatu jendela editor teks ditampilkan*

  • Memanggil M-FileUntuk memanggil M-file yang sudah dibuat, tinggal ketikkan nama M-file itu di jendela Commad, maka MATLAB akan mengeksekusi semua perhitungan yang sudah ditulis di M-fileEksekusi (running) juga bisa dilakukan dengan mengklik ikon (Run) pada toolbar*>> asam

    n =

    59

  • Simulasi dengan M-FileDengan M-file kita bisa melakukan simulasi suatu perhitunganJika suatu variabel diubah harganya, apa yang terjadi?Dengan melakukan eksekusi, jawaban atas pertanyaan tersebut akan terjawab langsungDengan M-file, perintah-perintah akan disimpan dalam disk untuk sesi MATLAB berikutnya*

  • Prioritas Pengerjaan di MATLABMATLAB memprioritaskan variabel-variabel aktif dan perintah-perintah MATLAB standar sebelum nama M-fileJika asam bukan nama suatu variabel aktif atau suatu perintah standar MATLAB, MATLAB membuka file asam.m (jika ada) dan mengerjakan perintah-perintah yang ditemukan dalam file tersebutPerintah-perintah yang ada di M-file dapat mengakses semua variabel yang ada di ruang kerja MATLAB dan semua variabel yang dibuat oleh perintah dalam M-file menjadi bagian dari ruang kerja MATLABBiasanya perintah yang dibaca dari M-file tidak ditampilkan jika sedang dievaluasi*

  • Echo On dan Echo OffPerintah echo on membuat perintah-perintah yang ditemui dalam M-file ditampilkan lagi saat dikerjakanSebaliknya jika ada perintah echo off*

  • Kegunaan Komentar dalam M-FileKegunaan komentar menjadi jelas dalam penggunaan M-fileKomentar memungkinkan kita untuk mendokumentasikan perintah-perintah yang terdapat dalam script sehingga dapat mengingat yang dikerjakan perintah-perintah tersebut jika pada suatu saat membuka kembali script tersebutPenggunaan titik koma pada akhir perintah mengatur penampilan dari hasil suatu perintah sehingga hasil-hasil yang penting yang ditampilkan*

  • Fungsi-fungsi yang Berguna pada M-File*

    disp(ans)Menampilkan hasil tanpa menampilkan nama variabelechoMengatur jendela command dalam penampilan kembali perintah yang sedang dikerjakaninputMeminta pemakai untuk memberikan inputkeyboardMemberikan kontrol pada keyboard sementara waktu. Ketikkan Enter untuk kembalipauseBerhenti sampai pemakai menekan kembali sembarang tombolpause(n)Berhenti selama n detikwaitforbuttonpressBerhenti sampai ada penekanan tombol mouse atau tombol keyboard

  • Contoh Penggunaan Fungsi*>> kons_awal % cara biasa untuk menampilkan hasil

    kons_awal =

    90

    >> disp(kons_awal) % menampilkan hasil tanpa menampilkan nama variabel 90

  • Perintah Input*% contoh1.m script file untuk masalah konsentrasi asamKons_awal=90; Kons_min=50; lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100n=floor(log(Kons_awal/Kons_min)/log(1+lost))Kalau M-file ini dijalankan, maka hasilnya:Masukkan konsentrasi asam yang hilang setiap pencelupan = 1

    lost =

    0.0100

    n =

    59

  • Fungsi Input dan Fungsi Lain*>> contoh1Masukkan konsentrasi asam yang hilang setiap pencelupan = round(sqrt(13))+3

    lost =

    0.0700

    n =

    8

  • Efek Perintah Echo pada M-File*echo on% contoh1.m script file untuk masalah konsentrasi asamKons_awal=90; Kons_min=50; lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100n=floor(log(Kons_awal/Kons_min)/log(1+lost))echo off

  • *>> contoh1b% contoh1.m script file untuk masalah konsentrasi asamKons_awal=90; Kons_min=50; lost=input('Masukkan konsentrasi asam yang hilang setiap pencelupan = ')/100Masukkan konsentrasi asam yang hilang setiap pencelupan = 25

    lost =

    0.2500

    n=floor(log(Kons_awal/Kons_min)/log(1+lost))

    n =

    2

    echo off

  • *

  • Daftar IsiFungsi Sistem FileContoh Fungsi Sistem FileAlamat Pencarian MATLABMATLAB dalam Kondisi Awal*

  • Fungsi Sistem FileMATLAB menyediakan sejumlah fungsi sistem file dan perintah-perintah yang memungkinkan: Menampilkan daftar nama fileMenghapus dan melihat isi M-fileMelihat atau mengubah direktori atau folder aktifDapat juga melihat dan memodifikasi Alamat Pencarian MATLAB yang dinamakan matlabpathFungsi-fungsi MATLAB sesungguhnya adalah M-file yang tersimpan dalam diskJika yakin keberadaan suatu fungsi namun MATLAB tidak menemukannya, kemungkinan besar fungsi tersebut tidak berada di matlabpath*

  • Contoh Fungsi Sistem File*

    Addpath dir1Menambahkan direktori dir1 pada awal matlabpathcdMenampilkan direktori atau folder aktif saat iniP=cdMenyimpan data direktori atau folder aktif dalam variabel Pcd pathMengubah direktori atau folder ke direktori atau folder yang diberikan oleh pathdelete test.mMenghapus M-file bernama test.mexist(cow, file)Mengecek ada atau tidaknya file cow.m pada matlabpathlsSama dengan dirtempdirNama direktori sementara

  • Alamat Pencarian MATLABUmumnya jika mengetikkan >>cow, inilah yang dikerjakan oleh MATLAB:Mengecek apakah cow suatu variabel dalam ruang kerja MATLAB; jika tidakMengecek apakah cow suatu fungsi standar MATLAB; jika tidak...Mengecek apakah suatu M-file yang bernama cow.m ada dalam direktori yang sedang aktif; jika tidakMengecek apakah cow,m ada di suatu tempat dalam alamat pencarian MATLAB, dengan mencari pada path sesuai urutan yang ada*

  • MATLAB Dalam Kondisi AwalSaat MATLAB mulai dijalankan, MATLAB mengeksekusi dua file script, matlabrc.m dan startup.mFile matlabrc.m dibuat sendiri oleh MATLAB dan sebaiknya jangan dimodifikasiPerintah-perintah dalam M-file ini mengatur ukuran window, penempatannya, dan sejumlah fasilitas lainnyaFile startup.m biasanya berisi perintah-perintah untuk menambahkan berbagai fasilitas yang dirancang sendiri oleh pemakai*

  • *

  • Daftar IsiPendahuluanArray SederhanaBerbagai Cara PenulisanPengalamatan ArrayOrientasi ArrayMatematika Array-SkalarMatematika Array-ArrayArray dengan Elemen Bilangan Satu atau Bilangan NolMemanipulasi ArrayPencarian Sub-ArrayPembandingan ArrayUkuran ArrayArray MultidimensiContoh 1: Peluruhan Radioaktif Menggunakan ArrayContoh 2: Perhitungan Konsentrasi dengan Matematika ArrayContoh 3: Mencari Suatu Penyelesaian Menggunakan Vektor*

  • PendahuluanSemua komputasi yang dikerjakan sejauh ini hanya melibatkan bilangan tunggal yang disebut skalarOperasi skalar merupakan dasar matematikaJika ingin melakukan operasi yang sama pada beberapa bilangan, perulangan operasi skalar akan menghabiskan waktu dan tidak praktisUntuk mengatasi masalah ini MATLAB menyediakan operasi array (larik) data*

  • Array SederhanaY = sin(x); 0 x Harus dibuat x secara inkremental, misal dengan kenaikan 0.1: x = 0, 0.1, 0.2, , Dengan MATLAB:x=[0 0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]y = sin(x)*

  • Pembentukan Array*

    x=[2 2*pi sqrt(2) 2-3] menciptakan vektor baris x yang memuatelemen elemen yang diberikan x=awal: akhir membuat vektor baris x dimulai dari awal,kenaikan satu diakhiri pada atau sebelum akhir x=awal:kenaikan:akhir membuat vektor baris x diawali dengan awalkenaikan sebesar kenaikan diakhiri pada atausebelum akhir x=linspace(awal,akhir,n) menciptakan vektor baris x diawali dengan awal,berakhir dengan akhir mempunyai n elemen x=logspace(awal,akhir,n) menciptakan vektor kolom dengan elemen elemenberjarak logaritmis dimulai dengan 10 diakhiridengan 10 mempunyai n elemen

  • Berbagai Cara Penulisanx=[0 0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]x=[0 0.1 .2 .3 .4 .5 .6 .7 .8 .9 1]*pix=[0:0.1:1]*pix=linspace(0,1,11)*pi*

  • Pengalamatan Arrayx(1,6) = ? 1.5708

    >> sin(x(1,6))

    ans =

    1

    >> sin(x(1,9))

    ans =

    0.5878*

  • Orientasi Array>> x2=x' %transpose dari x

    x2 =

    0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416*>> y=sin(x2)

    y =

    0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000

  • Operator Titik TransposeSebagai tambahan, pada MATLAB disediakan operator titik transpose dengan diawali titik. Operator titik transpse ini diinterprestasikan sebagai transpose konjugasi non-kompleks. Jika suatu array merupakan array kompleks, transpose () memberikan transpose konjugasi kompleks, yaitu tanda dari bagian imajiner yang berubah sebagai akibat operasi transpose. Tetapi titik transpose melakukan transpose pada array namun tidak melakukan konjugat pada dirinya.*

  • Contoh Operasi Titik Transpose>> A=[3 2i 3;1 2 i;4i 1 1]

    A =

    3.0000 0 + 2.0000i 3.0000 1.0000 2.0000 0 + 1.0000i 0 + 4.0000i 1.0000 1.0000

    >> B=A'

    B =

    3.0000 1.0000 0 - 4.0000i 0 - 2.0000i 2.0000 1.0000 3.0000 0 - 1.0000i 1.0000

    *>> C=A.'

    C =

    3.0000 1.0000 0 + 4.0000i 0 + 2.0000i 2.0000 1.0000 3.0000 0 + 1.0000i 1.0000

  • Matematika Array-Skalar>> m1=[1 2 3 4 5;6 7 8 9 10]

    m1 =

    1 2 3 4 5 6 7 8 9 10

    >> m2=[11 12 13 14 15;16 17 18 19 20]

    m2 =

    11 12 13 14 15 16 17 18 19 20

    *>> m3=m1*3-4

    m3 =

    -1 2 5 8 11 14 17 20 23 26

  • Matematika Array-Array (1)Jika operasi array dilakukan pada dimensi yang tidak sama susah untuk didefenisikan.Jika dua vektor mempunyai dimensi yang sama, penambahan, pengurangan, perkalian, dan pembagian berlaku pada elemen ke elemen.Perkalian bisa menggunakan *, pembagian menggunakan garis miring kiri atau kanan, pemangkatan array dengan simbol ^ *

  • Matematika Array-Array (2)*

    Data ilustrasi : a=[a1 a2 an], b=[b1 b2 ..bn], c= Penambahan skalar a+c=[a1+c a2+c an+c] Perkalian skalar a*c=[a1*c a2*c an*c] Penambahan array a+b=[a1+b1 a2+b2 an+bn] Perkalian array a.*b=[a1*b1 a2*b2 an*bn] Pembagian kanan array a./b=[a1/b1 a2/b2 an/bn] Pembagian kiri array a.\b=[a1\b1 a2\b2 an\bn] Pemangkatan array c.^a=[c^a1 c^a2 c^an]a.^c=[a1^c a2^c an^c]a.^b=[a1^b1 a2^b2 an^bn]

  • Matematika Array-Array (3)>> m5=m1*m2??? Error using ==> *Inner matrix dimensions must agree.

    >> m5=m1.*m2

    m5 =

    11 24 39 56 75 96 119 144 171 200

    >> m5=m1./m2

    m5 =

    0.0909 0.1667 0.2308 0.2857 0.3333 0.3750 0.4118 0.4444 0.4737 0.5000*

  • Array dengan Elemen Bilangan Satu atau Bilangan Nol>> ones(5)

    ans =

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    >> ones(2,5)

    ans =

    1 1 1 1 1 1 1 1 1 1

    *>> zeros(3,4)

    ans =

    0 0 0 0 0 0 0 0 0 0 0 0

  • Memanipulasi Array (1)MATLAB menyediakan cara mudah untuk menyisipkan, mengambil dan mengatur kembali sebagian dari matriks dengan mendefenisikan subscript yang berkaitan.Saat mengakses sesuatu menjadi matriks kosong [], sesuatu itu akan terhapus, mengakibatkan matriks berkurang menjadi apa yang tertinggal.Penggunaan indeks tungggal pada matriks lebih mudah. Jika indeks tunggal digunakan, indeks dihitung setiap kolom ke bawah dimulai dengan kolom pertama.Selain menggunakan subcript untuk mengamati matriks, dapat juga digunakan array logika, jika ukuran array logika sama dengan yang di amati. Array logika adalah suatu array khusus dengan presisi ganda dalam MATLAB *

  • Memanipulasi Array (2)*

    A(r,c)mengamatai subarray dalam A dengan indeks baris yang diingini dalam r dan kolom yang diingini dalam c A(r,:) mengamati subarray dalam A dengan indeks baris yang diamati dalam r dan semua kolom diambil A(:,r) mengamati subarray dalam A dengan semua baris diambil dan indeks kolom yang diingini dalam r A(: ) mengamati semua elemen dalam A sebagai vektor kolom diambil kolom perkolom A( i ) mengamati subarray dalam A dengan indeks tunggal i dianggap A merupakan vektor kolom a(: ) A(x) mengamati subarray dalam A dengan array logika x; x harus mempunyai ukuran sama dengan A

  • Memanipulasi Array (3)>> m6=ones(3)

    m6 =

    1 1 1 1 1 1 1 1 1

    >> m6(2,3)=0

    m6 =

    1 1 1 1 1 0 1 1 1

    *>> m6(2,3)=7

    m6 =

    1 1 1 1 1 7 1 1 1

  • Pencarian Sub-Array (1)Seringkali perlu mengetahui indeks elemen sustu array yang memenuhi suatu ekspresi relasi.Dalam MATLAB masalah ini diselesaikan dengan fungsi find yang menghasilkan indeks elemen-elemen yang padanya nilai ekspresirelasi benarJika suatu fungsi MATLAB menghasilkan dua atau lebih variabel, variabel-variabel itu akandisusun dalam tanda kurung kotak disisi kiri tanda sama dengan.*

  • Pencarian Sub-Array (2)>> k=find(abs(m3)>5)

    k =

    2 4 6 7 8 9 10*

  • Pembandingan Array (1)Suatu saat didalam matrriks diperlukan perbandingan dua array.Fungsi isequal menghasilkan nilai logika Benar(1) jika dua array mempunyai dimensi sama dengan elemen- elemennya identik, jika tidak isequal akan menghasilkan nilai logika Salah(0). Fungsi ismember mengenali elemen-elemen identik dari dua array. Ismember menghasilkan nilai logoka benar untuk indeks-indeks yang ada dalam argumen kedua.Kedua argumen tidak harus mempunyai nilai yang sama. *

  • Pembandingan Array (2)*

    isequal(A,B) benar (Benar) jika A dan B identik ismember (A,B) benar (Benar ) jika suatu elemen A adalah juga elemen B intersect (A,B) nilai-nilai interaksi A dengan B setdiff(A,B)nilai-nilai A yang tidak terdapat dalam B setxor (A,B) nilai-nilai ekslusif OR A dengan B union (A,B) nilai-nilai hasil penggabungan A dengan B

  • Pembandingan Array (3)A=[1 2 3;4 5 6;7 8 9]B=A.*(-1)C=1:9isequal(A,C)isequal(A,B)isequal(A,A)isequal(C,C')ismember(A,B)ismember(A,C)*>> A = 1 2 3 4 5 6 7 8 9B = -1 -2 -3 -4 -5 -6 -7 -8 -9C = Columns 1 through 6 1 2 3 4 5 6 Columns 7 through 9 7 8 9ans = 0ans = 0ans = 1ans = 0ans = 0 0 0 0 0 0 0 0 0ans = 1 1 1 1 1 1 1 1 1

  • Ukuran Array (1)*

    whos Menampilkan variabel yang ada dala ruang kerja MATLAB beserta ukurannya s=size(A) Menghasilkan vekror baris s, dengan elemen pertama adalah jumlah baris, dan elemen kedua adalah jumlah kolom A [r,c]=size(A) menghasilkan dua skalar r dan c yang memuat jumlah baris dan kolom A r=size (A,1) menghasilkan jumlah baris A dalam variabel r c=size (A,2) menghasilkan jumlah kolom A dalam variabel c n=length(A) menghasilkan max(sixe(A)) dalam variabel n jika A bukan matriks kosong

  • Ukuran Array (2)>> a = size(A)

    a =

    3 3*

  • Array Multidimensi (1)*

    s=size(A) untuk A n dimensi, menghasilkan vektor baris n elemen dengan elemen ke I adalah ukuran dimensi ke I dari A ndims jumlah dimensi A yaitu length(size(A)) permute(A,order) ekuivalen dari dot transpose untuk n dimensi ipermute(A,order) balikan dari permute(A,order)shiftdim(A,n) menaikkan imensi A sejumlah bilangan bulat nsqueeze (A) menghapus dimensi singleton, menghapus dimensi-dimensi yang lebih dari tiga

  • Array Multidimensi (2)>> a1=[1 0;0 1]

    a1 =

    1 0 0 1

    >> b1=[2 2;2 2]

    b1 =

    2 2 2 2

    >> c=[16 1;1 16]

    c =

    16 1 1 16>> d=cat(3,a1,b1,c)

    d(:,:,1) =

    1 0 0 1

    d(:,:,2) =

    2 2 2 2

    d(:,:,3) =

    16 1 1 16

    >> size(d)

    ans =

    2 2 3

    *

  • Contoh 1: Peluruhan Radioaktif Menggunakan ArrayElemen radioaktif polonium mempunyai waktu paruh 140 hari, yang berarti bahwa, karena radioaktif meluruh, jumlah polonium yang tertinggal setelah 140 hari adalah setengah dari jumlah semula. Jika dimiliki 10 gram polonium hari ini, berapa banyak yang tersisa pada akhir setiap minggu selama 10 minggu?Menggunakan solusi pada Bab 2:Jumlah_tertinggal=semula*0.5^(waktu/waktu_paruh)*

  • MATLAB Contoh 1: radioaktif.m*% Peluruhan Radioaktifsemula=10; waktu_paruh=140; waktu=7:7:70 % akhir dari sepuluh minggu pertamaJumlah_tertinggal=semula*0.5.^(waktu/waktu_paruh) % titik tidak boleh lupaplot(waktu/7,Jumlah_tertinggal)xlabel('Jumlah Minggu'), ylabel('Jumlah Polonium Tersisa')

  • Contoh 2: Perhitungan Konsentrasi dengan Matematika ArraySebagai bagian dari suatu proses pembuatan suku cadang di suatu pabrik otomatis, suku cadang tersebut dicelupkan kedalam air agar dingin, kemudian dicelup di bak air asam untuk membersihkannya. Setelah beberapa lama maka konsentrasi larutan asam akan menurun karena penambahan air saat pencelupan dan larutan yang terbuang saat suku cadang tadi diambil dari bak. Untuk memelihara kualitas, keasaman larutan asam tidak boleh kurang dari suatu batas minimum. Dimulai dengan konsentrasi asam 90% maka jika konsentrasi minimum 50%, air yang ditambahkan ke dalam bak asam adalah 1% dari volume bak dan 1% dari larutan terbuang saat suku cadang dikeluarkan. Berapa banyak suku cadang dapat dicelupkan ke bak air asam sebelum keasaman larutan dalam bak ada di bawah batas minimum?

    Solusi sama dengan Bab 2*

  • MATLAB Contoh 2: asam.m*% Penentuan Konsentrasi AsamKons_awal=90; Kons_min=50; lost=1:10 % 1% sampai 10% dengan kenaikan 1%n=floor(log(Kons_awal/Kons_min)./log(1+lost/100)) % ingat titiknyastem(lost,n)xlabel('persentase yang hilang setiap kali pencelupan')ylabel('jumlah pencelupan')title('Contoh Pencelupan Bak Air-Asam')

  • Contoh 3: Mencari Suatu Penyelesaian Menggunakan VektorSoal minggu ini di suatu sekolah adalah menemukan semua bilangan lebih kecil dari 1000 yang habis dibagi 7, tetapi punya sisa pembagian 1 jika dibagi dengan 2, 3, 4, 5 dan 6

    Tidak terdapat penyelesaian analitis untuk masalah ini. Jadi semua bilangan tersebut harus ditemukan lewat pencarian. Jika Anda memulainya dengan semua kelipatan 7 yang kurang dari 1000, semua bilangan yang tidak memenuhi syarat berikutnya dapat dibuang, sehingga menghasilkan solusi yang diinginkan*

  • MATLAB Contoh 3: lipat7.m*% Kelipatan 7 kurang dari 1000 habis dibagi 7,% sisa 1 jika dibagi 2, 3, 4, 5 dan 6

    n=7:7:1000; % semua kelipatan 7 yang kurang dari 1000number=length(n) % jumlah penyelesaian yang mungkin

    n(rem(n,2)~=1)=[]; % membuang yang bukan solusinumber=length(n)n(rem(n,3)~=1)=[]; % mengesetnya sama dengan matriks kosongnumber=length(n)n(rem(n,4)~=1)=[]; % fungsi rem menghitung sisa hasil baginumber=length(n)n(rem(n,5)~=1)=[];number=length(n)n(rem(n,6)~=1)=[];number=length(n)n>> number = 142number = 71number = 24number = 12number = 2number = 2n =

    301 721

    Dasar Komputer - Abdul Wahid Surhim*Dasar Komputer - Abdul Wahid Surhim