Nama NIM Kelas M.Kuliah Jurusan Tugas V : Sahatma Pangaribuan : 509131036 : Reguler’09 : Pemrograman Komputer : Pendidikan Teknik Elektro : Prosedure Pemrograman GUI MATLAB Prosedure Pemrograman GUI MATLAB Pengenalan GUI MATLAB GUI adalah singkatan dari Graphical User Interface, sebuah aplikasi display dari MATLAB yang mengandung tugas, perintah, atau komponen program yang mempermudah user (pengguna) dalam menjalankan sebuah program dalam MATLAB.Kenapa sebaiknya menggunakan atau membuat GUI di MATLAB? Ringkasnya, GUI akan membuat program di MATLAB menjadi lebih simpel dan praktis digunakan oleh para end-user. MATLAB adalah sebuah lingkungan perhitungan aritmatika sekaligus bahasa pemrograman. Dibuat oleh The Mathworks, MATLAB menyediakan fasilitas dan sarana dalam memanipulasi matriks, memplot data dan fungsi matematika, pembuatan UI (User Interface), implementasi algoritma, serta antarmuka dengan bahasa-bahasa pemrograman lainnya. Sebagai singkatan dari "matrix laboratory", MATLAB diciptakan di akhir 1970 oleh Cleve Moler, yang kemudian menjadi chairman dari Jurusan Ilmu Komputer Universitas New Mexico. Dia mendesain MATLAB untuk memberikan anak didiknya akses ke LINPACK dan EISPACK dengan tanpa mempelajari Fortran. Dengan cepat software ini menyebar ke universitas-universitas lainnya. Jack Little, seorang insinyur, mengetahui potensi komersil MATLAB ketika Moler mengunjungi Universitas Stanford di tahun 1983. Ia bergabung dengan Moler dan Steve Bangert untuk menulis ulang MATLAB ke dalam bahasa C dan mendirikan perusahaan The MathWorks di tahun 1984 untuk melanjutkan pengembangannya. Software pengembangan ini juga disebut JACKPAC. Tugas V Sahatma 1 MATLAB pertama kali diadopsi oleh insinyur-insinyur desain kontrol, yang merupakan bidang ilmu Little, akan tetapi dengan cepat menyebar ke bidang-bidang ilmu lainnya. Sekarang MATLAB digunakan di area pendidikan, khususnya pembelajaran aljabar dan analisis numerik, dan terkenal di kalangan akademik yang berhubungan dengan image processing. Karakteristik MATLAB: • Bahasa pemrogramannya didasarkan pada matriks (baris dan kolom). • Lambat (dibandingkan dengan Fortran atau C) karena bahasanya langsung diartikan. • Automatic memory management, misalnya kita tidak harus mendeklarasikan arrays terlebih dahulu. • Tersusun rapi. • Waktu pengembangannya lebih cepat dibandingkan dengan Fortran atau C. • Dapat diubah ke bahasa C lewat MATLAB Compiler. • Tersedia banyak toolbox untuk aplikasi-aplikasi khusus. Beberapa kelebihan MATLAB jika dibandingkan dengan program lain seperti Fortran, dan Basic adalah: 1. Mudah dalam memanipulasi struktur matriks dan perhitungan berbagai operasi matriks yang meliputi penjumlahan, pengurangan, perkalian, invers dan fungsi matriks lainnya. 2. Menyediakan fasilitas untuk memplot struktur gambar (kekuatan fasilitas grafik tiga dimensi yang sangat memadai). 3. Script program yang dapat diubah sesuai dengan keinginan user. 4. Jumlah routine-routine powerful yang berlimpah yang terus berkembang. 5. Kemampuan interface (antarmuka, misal dengan bahasa C, word dan mathematica). 6. Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai melimpahnya source code di internet yang dibuat dalam MATLAB ( contoh Tugas V Sahatma 2 toolbox misalnya : signal processing, control system, neural networks dan sebagainya). Karakter Spesial MATLAB : • Tanda % merupakan penanda komentar. Keterangan setelah tanda tersebut akan diabaikan dalam proses perhitungan. Contoh: y = 2:1:5 % y = [2345]; y = 2.00 3.00 4.00 5.00 • Tanda ; merupakan perintah pembatas yang tidak ditampilkan di jendela kerja, merupakan pemisah kolom dan baris dalam matriks. Contoh: A = [1 2 3 ; 3 2 1]; • Tanda : merupakan pembatas jangkauan, contohnya: B = [0:3:9] B = 0.00 3.00 6.00 9.00 • Tanda ` merupakan transpose matriks yang merupakan suatu vector kolom X = [3 2 4 5;7 6 5 8] X= 3.00 2.00 4.00 5.00 7.00 6.00 5.00 8.00 X=X ` X= 3.00 7.00 2.00 6.00 4.00 5.00 5.00 8.00 • Tanda ... digunakan untuk menuliskan baris perintah yang panjang, contohnya: P = sin(1) – sin(2) + sin(3) – sin(4) + sin(5) + cos(6) + ... cos(7) – cos(8) + cos(9) – cos(10) + cos(11) + cos(12) P = 1.0273 Sintaks Penulisan pada MATLAB MATLAB dibuat dengan mengacu pada bahasa MATLAB, kadang-kadang disebut M-code atau M saja. Cara termudah mengeksekusi (menjalankan) M-code adalah dengan mengetikkannya secara langsung di prompt pada jendela Command Window, sebuah elemen UI di desktop MATLAB. Dengan cara ini, MATLAB dapat Tugas V Sahatma 3 digunakan sebagai shell (pengeksekusi perintah) matematis yang interaktif. Urutanurutan perintah yang lebih kompleks dapat disimpan dan dimasukkan ke dalam sebuah M-file, dengan menggunakan MATLAB Editor, sebagai skrip sehingga dapat memperluas perintah-perintah yang tersedia. Variabel Variabel didefinisikan dengan operator assignment, =. Perintah pada MATLAB bisa diketik secara dinamis, dalam artian variabel-variabel dapat langsung diisi tanpa mendefinisikan jenisnya terlebih dahulu, kecuali bila variabel tersebut merupakan objek simbolis. Nilai yang diisikan ke sebuah variabel dapat berupa konstan, yang didapat dari hasil perhitungan yang melibatkan variabel lainnya, atau dari keluaran suatu fungsi. Contohnya: >> x = 17 x = 17 >> x = 'hat' x = hat >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*sin(x) y = -1.6097 3.0000 Vektor/Matriks dalam MATLAB MATLAB adalah sebuah "Matrix Laboratory", dan karenanya ia menyediakan berbagai cara untuk membuat matriks dengan dimensi berbeda-beda. Menurut gaya bahasa di dalam MATLAB, sebuah vektor mengacu pada sebuah matriks satu dimensi (1×N or N×1), yang biasanya disebut sebagai sebuah array di bahasa pemrograman lainnya. Sebuah matriks umumnya multi-dimensional, yang artinya terdiri dari satu/lebih dimensi, contohnya sebuah matriks N×M, matriks N×M×L, dsb, dimana N, M, and L lebih besar dari 1. Di bahasa lain, matriks seperti ini dapat dilukiskan sebagai array dari array-array, atau array dari array-array dari array-array, atau array multi-dimensi saja. Untuk membuat array yang sederhana di MATLAB, sintaks penulisan perintahnya adalah nilai awal:langkah:nilai akhir. Contohnya, perintah >> array = 1:2:9 array = 1 3 5 7 9 akan membuat sebuah variabel bernama array dengan isi 1, 3, 5, 7 dan 9. Yaitu, sebuah array dengan nilai awal 1, dengan nilai selanjutnya berjarak 2 dari sebelumnya, kemudian berhenti ketika sampai ke 9. Tugas V Sahatma 4 a. Vektor Baris vektor adalah daftar angka-angka yang dipisahkan oleh koma (,) atau spasi. Jumlah masukan dikenal sebagai panjang vektor. Masukan harus ditulis dalam tanda kurung siku ([]). Perhatikan contoh berikut : Vektor baris : >> v = [-2 sin(45) 4 6] v= -2.0000 0.8509 4.0000 6.0000 >> length(v) % menghitung panjang vektor ans = 3 Vektor kolom : >> x = [6; 5 ; 9] x= 6 5 9 b. Matriks Dapat diasumsikan bahwa didalam MATLAB setiap data akan disimpan dalam bentuk matriks. Dalam membuat suatu data matriks pada MATLAB, setiap isi data harus dimulai dari kurung siku ‘[‘ dan diakhiri dengan kurung siku tutup ‘]’. Untuk membuat variabel dengan data yang terdiri beberapa baris, gunakan tanda ‘titik koma’ (;) untuk memisahkan data tiap barisnya. Contoh pembuatan data matriks pada MATLAB: MATLAB menyediakan beberapa fungsi yang dapat kita gunakan untuk menghasilkan bentuk-bentuk matriks yang diinginkan. Fungsi-fungsi tersebut antara lain: • zeros : untuk membuat matriks yang semua datanya bernilai 0 • ones : matriks yang semua datanya bernilai 1 • rand : matriks dengan data random dengan menggunakan distribusi uniform Tugas V Sahatma 5 • randn : matris dengan data random dengan menggunakan distribusi normal • eye : untuk menghasilkan matriks identitas Operasi dan Fungsi pada Matriks Tabel 1. Operasi dan fungsi pada matriks yang sering digunakan : Perintah Keterangan Contoh Det Menghasilkan determinan matriks Det(A) Size Menghasilkan ukuran matriks Size(A) + Menjumlahkan matriks C=A+B * Mengalikan matriks C=A*B .* Mengalikan elemen dengan elemen, dengan ketentuan memiliki ukuran yang sama C = A .* B ^ Memangkatkan matriks dengan suatu skalar C = A^ k .^ Memangkatkan dengan skalar C = A .^ k ’ Transpose matriks A’ ./ Membagi elemen per elemen dengan ketentuan memiliki ukuran yang sama C = A ./ B \ Menghasilkan solusi AX = B C=A\B / Menghasilkan solusi XA = B C=A/B Inv Menghasilkan invers matriks dengan ketentuan matriks merupakan matriks bujur sangkar C = Inv(A) elemen per elemen matriks Angka dan Operasi Aritmatika Ada tiga jenis angka di MATLAB yaitu : 1. Bilangan bulat yaitu bilangan yang tidak mengandung desimal. Contohnya: >> xi = 10 2. Bilangan real yaitu bilangan yang mengandung desimal contohnya : >> xr = 12.6054 >> realmax % batas atas bilangan real di MATLAB ans = 1.7977e+308 Tugas V Sahatma 6 >> realmin % batas minimum bilangan real di MATLAB ans = 2.2251e-308 3. Bilangan kompleks >> i ans = 0 + 1.0000i >> x = 1 + sqrt(3)*i x = 1.0000 + 1.7321i >> A= [1 j;-j*5 2] A= 1.0000 0 + 1.0000i 5.0000i 2.0000 Beberapa penggunaan operator aritmatika antara dua operand (A dan B) ditunjukkan pada tabel berikut ini : Operasi Simbol Penambahan + Pengurangan - Perkalian * Pembagian / atau \ Perpangkatan ^ Fungsi Dasar MATLAB a. Fungsi Matematika Dasar Tabel 2.a Fungsi Matematika Dasar Fungsi Abs Exp log Sqrt Ceil Fix Floor Gcd Isprime Tugas V Sahatma Keterangan Menghitung nilai absolut Memperoleh nilai dari e pangkat bilangan tertentu (e = 2.718282) Menghitung logaritma natural (ln) suatu bilangan Menghitung akar pangkat 2 dari suatu bilangan Membulatkan bilangan ke bilangan bulat terdekat menuju plus tak berhingga. Membulatkan bilangan ke bilangan bulat terdekat menuju nol.. Membulatkan bilangan ke bilangan bulat terdekat menuju minus tak berhingga. Menghitung nilai faktor pembagi terbesar Menghasilkan true jika merupakan bilangan prima. 7 Log10 Mod Primes Rem Round Menghitung logaritma suatu bilangan untuk dasar 10. Menghitung nilai modulus. Menghasilkan daftar bilangan. Menghitung nilai remainder. Membulatkan bilangan ke bilangan bulat terdekat. b. Fungsi Trigonometri Fungsi trigonometri banyak digunakan terkait dengan sudut. Nilai perhitungan yang dalam fungsi trigonometri sudut dalam radian. Tabel 2.b Fungsi Trigonometri Fungsi Sin Cos Tan Acos Asin Atan Cosh Sinh Tanh Cosd Sind Tand Sec Keterangan Menghitung sinus suatu bilangan, dimana bilangan dalam radian. Menghitung cosinus suatu bilangan, dimana bilangan dalam radian. Menghitung tangen suatu bilangan, dimana bilangan dalam radian. Menghitung arccosinus (invers cos) suatu bilangan yang menghasilkan sudut dalam radian, dimana bilangan harus antara -1 dan 1. Menghitung arcsinus suatu bilangan yang menghasilkan sudut dalam radian, dimana bilangan harus antara -1 dan 1. Menghitung arctangensuatu bilangan yang menghasilkan sudut dalam radian. Menghitung cosinus hiperbolik dari suatu sudut dalam radian. Menghitung sinus hiperbolik dari suatu sudut dalam radian. Menghitung tangen hiperbolik dari suatu sudut dalam radian. Menghitung cosinus suatu bilangan, dimana bilangan dalam derajat. Menghitung sinus suatu bilangan, dimana bilangan dalam derajat. Menghitung tangen suatu bilangan, dimana bilangan dalam derajat. Menghitung 1 suatu bilangan, dimana bilangan dalam cos( x ) radian. Csc Menghitung 1 suatu bilangan, dimana bilangan dalam sin( x ) radian. Cot Menghitung 1 suatu bilangan, dimana bilangan dalam tan( x ) radian. Tugas V Sahatma 8 c. Fungsi Analisis Data MATLAB menyediakan sejumlah fungsi penting untuk digunakan dalam meng-analisis data, antara lain ditunjukkan pada Tabel 1.1c. Tabel 2.c Fungsi Analisis Data Fungsi Max Min Mean dll Keterangan Menghasilkan nilai terbesar dari suatu vektor atau matriks Menghasilkan nilai terbesar dari suatu vektor atau matriks Menghasilkan nilai mean ..... M-File M-file selain dipakai sebagai penamaan file juga bisa dipakai untuk menamakan fungsi, sehingga fungsi fungsi yang kita buat di jendela editor bisa di simpan dengan ektensi .m sama dengan file yang kita panggi dijendela editor. Saat kita menggunakan fungsi MATLAB seperti inv, abs, cos, sin dan sqrt, MATLAB menerima variabel berdasarkan variabel yang kita berikan. Fungsi M-file mirip dengan script file dimana keduanya merupakan file teks dengan ektensi .m . sebagaimana script M-file, fungsi m-file tidak dimasukkan dalam jendela command window tetapi file tersendiri yang dibuat dengan editor teks. Membentuk dan menjalankan M-File: • Klik menu File, pilih New dan klik M-File • Pada editor teks, tulis argumen atau perintah • Simpan dengan cara klik File, pilih Save As dan beri nama dengan ekstensi .m • Pastikan file yang akan dijalankan berada pada direktori aktif Misalkan file graf1.m berada di C:\MATLAB, maka lakukan perintah cd >> cd c:\MATLAB • Kemudian jalankan file graf1.m dengan cara >> graf1 Fungsi di MATLAB Seringkali ketika membuat sebuah program, kita membutuhkan suatu proses yang berulang-ulang. Jika proses tersebut hanya tersusun dari beberapa baris, Tugas V Sahatma 9 mungkin kita tidak akan terlalu direpotkan dengan penulisan script pemrogramannya, namun jika perintah kita tersusun dari banyak baris, ketidak-efisienan kemudian menjadi masalah. Oleh karena itu, MATLAB menyediakan fasilitas untuk memecahkan permasalahan ini, yaitu dengan adanya kemampuan untuk membentuk suatu fungsi. Fungsi di MATLAB sangat mirip dengan fungsi pada C++. Secara umum, struktur penulisan fungsi di MATLAB sama dengan di C++, yaitu mendeklarasikan nama fungsi, parameter, dan isi dari fungsinya itu sendiri. Hanya format penulisannya saja yang sedikit berbeda. Dari contoh 1.a diatas, dapat kita lihat struktur penulisan fungsi di MATLAB yang berbeda dengan C++. Pada MATLAB, kita hanya perlu mendefinisikan fungsi saja, karena MATLAB sudah secara otomatis mendefinisikan setiap variabel sebagai double, jika variabel tersebut berupa angka. Syntax fungsi pada MATLAB adalah sebagai berikut: Kata pertama, yaitu function adalah sebagai deklarasi atau definisi bahwa yang ada pada file terebut merupakan sebuah fungsi, dan dapat dijalankan layaknya sebuah fungsi. Maksudnya, kita dapat menjalankan fungsi ini dari command window berikut parameter-parameter yang kita butuhkan, layaknya fungsi-fungsi bawaan MATLAB seperti sin(x), rref(x), dll. [out1,out2, …] menunjukkan hasil keluaran dari fungsi tersebut yang disimpan dalam variabel out1, out2, dan seterusnya. Dalam contoh 1.a diatas, solusi dari fungsi tersebut hanyalah satu, yaitu hasil. Dalam permasalahan yang membutuhkan banyak output, maka pendefinisian output dapat dilakukan sesuai syntax-nya, seperti: Tugas V Sahatma 10 Program diatas akan menghasilkan tiga buah keluaran, yaitu tambah, kali dan bagi. Penjelasan bagaimana cara menggunakan fungsi akan dijelaskan berikutnya. Penggunaan tanda semicolon (;), membuat hasil dari langkah perhitungan tidak ditamilkan di layar. Hal ini disarankan jika tahapan-tahapan perhitungan tidak perlu ditampilkan hasilnya. Karena selain membuat kotor layar, penulisan perintah tanpa diakhiri dengan tanda semicolon juga akan memperlambat proses compilingnya. File teks yang berisi fungsi tersebut kemudian disimpan dengan nama file berekstensi .m. Sama seperti menjalankan M-File, sebuah fungsi pada MATLAB juga dijalankan langsung dengan meng-execute M-File yang berisi fungsi tersebut. Hanya saja, jika pada proses menjalankan M-File semua variabel yang tertulis didalamnya akan terekam pada workspace, maka tidak begitu ketika kita menjalankan sebuah fungsi. Tidak ada satupun variabel yang ada dalam fungsi terekam dalam workspace, selain ans sebagai keluaran akhir dari fungsi. Hal ini dikarenakan semua variabel yang masuk dalam fungsi merupakan variabel lokal. Dalam satu M-File fungsi, tidak terbatas hanya untuk satu fungsi saja. Kita dapat membuat banyak fungsi dalam satu M-File, selama itu dibutuhkan. Untuk membuat sebuah subfungsi, dapat dilakukan dengan mendeklarasikan kembali function sebelum deretan perintahnya. Berikut adalah beberapa contoh berikut langkahlangkah untuk membuat fungsi. Matematika Dalam Teknik Kontrol A. Fungsi Polinomial MATLAB menyediakan fungsi operasi standar dari polinom, seperti akar poli-nomial, evaluasi, dan turunan. Sebagai tambahan, fungsi-fungsi berikut diberikan untuk aplikasi lebih lanjut, seperti pencocokan kurva dan ekspansi fraksi parsial. Fungsi Conv Deconv Tugas V Sahatma Keterangan Perkalian polinomial Pembagian polinomial 11 Poly Polyder Polyfit Polyval Polyvalm Residue Roots Polinomial dengan akar-akar tertentu Turunan polinomial Pencocokan kurva polinomial Evaluasi polinomial Evaluasi matrik polinomial Ekspansi fraksi parsial Mencari akar-akar polinomial Transformasi a. Transformasi Laplace Sintaks L=Laplace (F) L=Laplace (F,t) L= Laplace(F,w,z) Deskripsi L=Laplace (F), adalah transformasi dari simbol skalar F dengan variabel t. Variabel tersebut mengembalikan fungsi ke s. Transformasi laplace dari fungsi t dan mengembalikan fungsi ke s. Definisi: F(s) = L{f(t)} = ∞ Sintaks: L = Laplace(f(t)) e −st f (t )dt ∫0 Contoh: Laplace f(t) = sin(t) >> syms t >> f = sin(t) >> c = Laplace(f) >> c = ans = 1/(s^2+1) L=Laplace(F,t), Membuat L fungsi dari t sebagai pengganti default s. ∞ ∫ F ( x )e −tx dx L(s) = , L menghasilkan simbol skalar L= Laplace(F,w,z) Membuat fungsi L dari z dan F sebagai fungsi w sebagai pengganti variabel s dan t.. 0 ∞ ∫ F ( w)e −zw dw L(s) = Contoh : F(t) = te-(at) Laplacenya adalah >> syms t a % Untuk inisialisasi variabel >> laplace(exp(-a*t)*t) Ans = 1/(s+a)2 0 b. Invers Laplace Tugas V Sahatma 12 • Sintaks F=iLaplace (L) F=iLaplace (L,t) F=iLaplace(L,y,x) Deskripsi: F=iLaplace (L) Merupakan invers transformasi Laplace dari simbol skalar F dengan variabel default s. Variabel tersebut mengembalikan fungsi ke t. Transformasi Laplace dari fungsi s dan mengembalikan fungsi ke t. Sintaks : f(t) = iLaplace(F(s)) Contoh : >> syms s >> g = (0.1/(0.1*s+1)) >> iLaplace(g) ans = exp(-10*t) • F=iLaplace (L,t), menghasilkan f fungsi dari y sebagai pengganti default : c +j ∞ F(y) = ∫L( y )e sy ds , y adalah objek simbolik (scalar) c −j∞ • F=iLaplace (L,y,x), Mengambil F sebagai fungsi x dan L fungsi y sebagai pengganti variable default t dan s. c + j∞ F(y) = ∫L ( y ) e xy dy c −j∞ Contoh : F(s) = s +a ( s + a) 2 + b 2 Invers laplacenya adalah : >> syms s a b % Untuk inisialisasi variabel >> ilaplace((s+a)/((s+a)^2+b^2)) ans exp(-a*t)*cos(b*t) Flow Control MATLAB memiliki empat macam statement yang dapat digunakan untuk mengatur aliran data pada fungsi yang akan dibuat. 1. If,Else,Elseif Tugas V Sahatma 13 Bentuk dasar penggunaan statement jenis ini adalah sebagai berikut: Ekspresi akan bernilai 1 jika benar dan bernilai 0 jika salah. Fungsi disp digunakan untuk menampilkan pesan pada command window. Fungsi tersebut setelah dijalankan melalui command window: 2. Switch Bentuk dasar penggunaan statement switch Contoh penggunaan: Tugas V Sahatma 14 Hasil setelah dijalankan 3. While Statement while digunakan untuk aliran data yang bersifat perulangan. Bentuk dasar penggunaan while: Contoh penggunaan : Hasil setelah dijalankan : Tugas V Sahatma 15 4. For Bentuk dasar penggunaan bentuk for: Default dari nilai increment (penambahan nilai setiap perulangan) jika tidak ditentukan oleh user adalah 1. Contoh fungsi : Hasil setelah fungsi dijalankan Mem-Plot beberapa grafik Anda juga dapat membuat beberapa grafik/plot pada satu window dengan menggunakan fungsi subplot. Fungsi ini tidak melakukan proses plotting, namun hanya membagi window menjadi beberapa segmen. Sebagai contoh, perintah subplot(3,2,3) akan membagi figure window menjadi tiga baris dan dua kolom (jadi terdapat enam segmen) dan mengarahkan plot berikutnya ke segmen kiri baris kedua. Grafik pada PA.1 diperoleh dengan perintah subplot(2,1,1) dan subplot(2,1,2). REFERENSI http://ganeshatech.wordpress.com/2009/02/10/matlab-gui-introduction-for-beginners/ http://blog.uad.ac.id/sutarto/index.php/2009/03/dasar-dasar-pemrograman-matlab/ http://danangdwidarmawan.students-blog.undip.ac.id/2009/07/01/belajar-matlab/ http://trensains.com/plotting_a_curve.htm Tugas V Sahatma 16