Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta
MODUL 2 FUNGSI M DAN VISUALISASI FUNGSI DALAM BENTUK GRAFIK DAN KONTUR KOMPETENSI: 1. Praktikan memahami apa yang dimaksud dengan Fungsi M . 2. Praktikan dapat membuat suatu Fungsi M dengan format yang baik. 3. Praktikan dapat menggunakan fungsi‐fungsi grafis yang ada dalam MATLAB. I. DASAR TEORI PENGERTIAN FUNGSI M Fungsi yang dapat dipanggil oleh MATLAB ada dua, yaitu : •
Fungsi‐fungsi yang sudah ada dalam Matlab dan
•
Fungsi‐fungsi yang berekstensi .m.
Fungsi yang sudah ada dalam Matlab ini disebut fungsi built in. Sedangkan fungsi berekstensi .m disebut dengan Fungsi M. Fungsi M adalah suatu file yang berisi perintah/fungsi‐fungsi built in yang disimpan dengan ekstensi .m. Fungsi M ini adalah file program dalam matlab, sama halnya dengan file berekstensi .pas pada PASCAL, file berekstensi .bas pada BASIC, dan file berekstensi .c pada TURBO C. Jadi jelas di sini bahwa tipe yang dapat dipanggil oleh MATLAB adalah file berekstensi .m. A. Penulisan Fungsi M Fungsi M dapat disimpan dengan sembarang editor teks. Matlab menyediakan editor teks yaitu MEditor untuk membuat M file. Agar M file yang dibuat dapat dieksekusi dari Matlab, maka harus dipastikan dulu bahwa M file tersebut disimpan ke directory yang termasuk path‐path Matlab, atau tersimpan pada current directory dari Matlab! Atau current directory Matlab yang diubah ke directory dimana M file yang hendak dieksekusi berada!
Untuk membuka MEditor, yang merupakan editor Matlab, dapat dilakukan dengan
memilih menu File Æ New Æ M‐FILE pada menu windows Matlab.
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-1
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta B. Struktur Fungsi M Fungsi M terdiri dari fungsi‐fungsi built in yang ada dalam MATLAB serta baris‐baris komentar untuk memperjelas fungsi dari program yang dibuat. Secara garis besar Fungsi M dapat dibagi menjadi tiga bagian, yaitu bagian ‘header’ yang terdiri dari pendeklarasian fungsi dan bagian help, bagian ‘process’ yang berisi perhitungan/komputasi untuk mendapatkan hasil yang diinginkan. Dan yang terakhir adalah bagian ‘resolusi’ yang berisi penampilan hasil‐hasil yang didapat dari bagian procces. Untuk lebih jelasnya perhatikan struktur Fungsi M yang pada gambar 2.1 : I function [X,Y, ... ]=file1[A,B, ...]
% Baris‐baris komentar yang berfungsi sebagai bagian dari
II
% tampilan help. Baris ini akan ditampilan jika diberikan
% perintah help file1.
Fungsi built‐in Matlab .
III . .
Fungsi built‐in Matlab % Komentar keterangan fungsi dari bagian program
Fungsi built‐in Matlab IV .
. .
Fungsi built‐in Matlab
V
X % untuk menampilkan hasil perhitungan.
Y
Gambar 2.1 Struktur M File
Keterangan Struktur Fungsi M di atas : Bagian I adalah bagian Pendeklarasian Nama Fungsi (‘file1’), varible yang akan dilewatkan ke Fungsi M (A,B, ..) dan variable yang dihasilkan (X,Y, ...).
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-2
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta Bagian II adalah bagian Tampilan Help dari Fungsi M tersebut. Bagian ini juga mencakup keterangan/komentar penjelasan tentang kegunaan dari Fungsi M. Bagian III adalah rangkaian perintah‐perintah matlab yang biasanya berupa fungsi‐fungsi built in matlab. Bagian IV adalah bagian dari Fungsi M yang mempunyai satu kesatuan fungsi tertentu, sehingga perlu diberikan keterangan tentang kegunaan bagian ini agar memudahkan pemeriksaan dan perawatan Fungsi. Bagian V adalah bagian untuk menampilkan informasi yang dihasilkan. C. Contoh Pembuatan Fungsi M Untuk lebih jelasnya perhatikan contoh di berikut ini : Misal kita ingin membentuk Fungsi M dengan nama baru.m. baru.m ini dapat menghitung invers, determinan, dan eigen value secara langsung dari matriks A = [ 7 8 9 4 5 6 1 2 3 ] Bukalah Meditor dan ketikan script dibawah ini dan disimpan sebagai baru.m adalah
function baru
% Fungsi M untuk menghitung invers,determinan dan
% eigen value dari matrik A. Matrik A bernilai :
%
[ 7 8 9
%
4 5 6
%
1 2 3 ]
% B bernilai invers dari A
% C bernilai determinan dari A
% D bernilai eigen value dari A
A = [ 7 8 9 ; 4 5 6 ; 1 2 3 ]; % untuk mencari invers A
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-3
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta B = inv(A); % untuk mencari determinan A C = det(A);
% untuk mencari nilai eigen A D = eig(A);
% untuk menampilkan hasil perhitungan
A
B
C
D
A, B, C, D di atas merupakan satu kesatuan dalam baru.m Jika diberikan perintah : >> help baru maka di layar matlab akan dihasilkan :
Fungsi M untuk menghitung invers,determinan dan
eigen value dari matrik A. Matrik A bernilai :
[ 7 8 9
4 5 6
1 2 3 ]
B bernilai invers dari A
C bernilai determinan dari A
D bernilai eigen value dari A
Tanda titik koma (;) dibelakang baris perintah berfungsi untuk tidak menampilkan nilai dari variabel yang sedang dihitung. FUNGSI‐FUNGSI GRAFIS DASAR MATLAB menyediakan banyak fasilitas untuk fungsi‐fungsi grafis. Di bawah ini akan diberikan beberapa fungsi grafis dasar beserta fungsi secara globalnya. Untuk fungsi grafis yang lain, dapat dipelajari lebih mendalam pada langkah percobaan.
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-4
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta Beberapa Fungsi‐Fungsi Grafis Dasar antara lain : Echo on
: untuk menampilkan sesuatu.
Echo off
: untuk tidak menampilkan sesuatu.
Title
: untuk memberi judul.
Plot
: untuk mengambar 2 dimensi.
Mesh
: untuk mengambar 3 dimensi.
Grid
: untuk memberikan garis‐garis grid pada gambar.
Loglog
: untuk menggambar 2 dimensi dalam skala log.
Pause
: untuk menghentikan langkah program sementara.
Hold
: untuk mengabungkan atau menghapus grafik dengan grafik baru.
Xlabel
: untuk memberi nama pada axis X.
Ylabel
: untuk memberi nama pada axis Y.
Perlu diperhatikan fungsi dari perintah echo dan hold. Kedua perintah itu berfungsi untuk mengubah keadaan. Untuk perintah echo, jika keadaan echo sedang on dan diberikan perintah echo lagi, maka keadaan echo menjadi off, lalu diberikan perintah echo lagi maka keadaan echo akan kembali menjadi on. Echo pada saat on akan menampilkan semua baris perintah yang ada dalam Fungsi M. Begitu pun dengan perintah hold. Hold dalam keadaan on akan mengabungkan grafik lama dengan grafik baru. Sedangkan perintah echo on, echo off, hold on, hold off adalah perintah yang pasti, keadaan akan berubah sesuai dengan kata yang mengikutinya (on atau off). II. DEMO KASUS: Seorang tuan tanah meminta anda untuk menghitung berapa panjang pagar yang dibutuhkan untuk mengelilingi atau membatasi bidang tanahnya. Bidang tanahnya berbentuk persegi panjang dengan sisi yang satu 23 meter dan sisi lainnya 17 meter. Anda sebagai pengguna editor Matlab dapat menggunakan fasilitas M‐file, untuk membantu menyelesaikan permasalahan tersebut.
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-5
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta LANGKAH‐LANGKAH KERJA: 1. Aktifkan aplikasi Matlab dengan cara double click pada icon matlab yang tersedia di desktop. Dan akan muncul jendela command Matlab. 2. Lalu buka Meditor dengan cara pilih menu File Æ New Æ M‐file 3. Kemudian akan muncul jendela Meditor yang hampir sama seperti Notepad. 4. Kemudian ketikkan kode di bawah: function keliling = persegipanjang(p,l) %menghitung keliling persegi panjang dengan masukan melalui %parameter input keliling = 2*(p+l); 5. Setelah selesai maka simpan dengan nama yang sama dengan function yang dibuat (dalam hal ini adalah ”persegipanjang”) . Pilih menu File Æ Save 6. Pilih direktori yang telah ditentukan oleh asisten (C:\MATLAB6p1\work) dan simpan dengan nama persegipanjang.m. Perlu diketahui, bahwa dapat memanggil sebuah function dari matlab, kita perlu mengubah Current Directory Matlab ke directory dimana file yang dibuat itu disimpan. Kemudian tutup m‐editor dan kembali ke jendela command. 7. Untuk menjalankannya maka ketik >> persegipanjang(23,17) Maka hasilnya akan muncul: ans = 80 Jalankan dengan cara lain: >> KP = persegipanjang(23,17) Maka hasilnya: KP = 80 9. Selain dengan cara di atas, kita juga bisa memvariasikan kode sesuai kebutuhan. Perhatikan kode di bawah ini: function persegipanjang1 %menghitung keliling persegi panjang dengan masukan melalui %piranti keyboard p = input('masukkan panjang tanah > '); l = input('masukkan lebar tanah > ');
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-6
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta keliling = 2*(p+l); display(keliling) 10. Setelah itu simpan dengan nama persegipanjang1.m pada folder yang telah ditentukan. Dan dapat dipanggil dengan cara yang sama seperti di atas. >> persegipanjang1 masukkan panjang tanah > 23 masukkan lebar tanah > 17 Maka Hasilnya adalah: keliling = 80 11. Dengan cara yang sama seperti sebelumnya kita dapat memodifikasi fungsi serupa dengan kode M‐file seperti dibawah ini. function V = persegipanjang2 %menghitung keliling persegipanjang dengan outputnya berupa vektor %dan nilai diinputkan langsung dalam fungsi p = 23; l = 17; keliling = 2*(p+l); luas = p*l; V = [keliling, luas]; 12. Setelah itu simpan dengan nama persegipanjang2.m pada folder yang telah ditentukan. Dan dapat dipanggil dengan cara yang sama seperti di atas, yaitu: >> V = persegipanjang2 V = 80 391
keliling
luas
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-7
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta III. LATIHAN TERPANDU Untuk setiap nomer latihan dibawah ini, cetaklah hasilnya dan laporkan analisanya di laporan resmi! Untuk tiap nomor yang memberi output grafik, harap dicetak grafiknya dan disertakan untuk melengkapi analisa pada nomor yang bersangkutan. Salin grafik atau tampilan apa saja yang ada dari Matlab ke aplikasi MS Office dengan cara menekan tombol: Ctrl+Alt+PrtScr dari keyboard kemudian di‐paste dengan menekan tombol: Ctrl+V 1. Buatlah fungsi untuk menampilkan tanggal bulan dan tahun sekarang! •
Ketikkan kode dibawah ini dengan Meditor: function sekarang echo on % Fungsi M untuk menampilkan % tanggal, bulan, dan tahun sekarang echo off m=fix(clock); Tanggal_sekarang=m(3); Bulan_sekarang=m(2); Tahun_sekarang=m(1); Tanggal_sekarang Bulan_sekarang Tahun_sekarang clc % Penampilan tulisan dengan perintah text figure(1); text(0.1,0.6,' NAMA SAYA : [nama masing‐masing]') text(0.1,0.5,' NOMOR MAHASISWA : (NIM masing‐masing)') text(0.1,0.4,' UNIVERSITAS ATMA JAYA YOGYAKARTA') clc
•
Simpan kode diatas sebagai sekarang.m ke directory yang ditentukan dan pastikan dapat dipanggil dari Matlab
•
Jalankan dengan mengetikkan : >> sekarang
•
Amati hasilnya. Dari fungsi tersebut, ada dua output yang akan tampil, yang pertama berupa tampilan Tanggal, Bulan dan Tahun di command window, yang kedua adalah tampilan grafik yang berisi identitas pembuat program (praktikan). Salin tampilan tersebut ke aplikasi word processing.
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-8
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta •
Grafik‐grafik yang tampil disimpan ke direktory C:\MATLAB6p1\work dengan nama yang sama dengan nama file (sekarang) berekstensi .fig, sehingga nama file untuk grafik yang tampil adalah sekarang.fig. Selanjutnya, anda diminta menyimpan dua buah file, yang pertama berekstensi .m kedua berekstensi .fig.
2. Buatlah gambar kompas cara berikut: •
Ketikan kode m‐file dibawah ini dengan Meditor
function kompas echo on % Menggambar kompas dengan perintah compass z = eig(rand(4)); figure(2); compass(z) clc % Membentuk plot batang x=‐2.9:0.2:2.9; figure(3); bar(x,exp(‐x.*x)); clc % Membentuk plot anak tangga x=0:.25:10; figure(4); stairs(x,sin(x)); clc • Simpan sebagai kompas.m didirektory yang telah ditentukan dan pastikan dapat dipanggil dari Matlab. Amati dan pahami perintah‐perintah built‐in yang ada seperti bar, stairs dan compass..!!! •
Jalankan di Matlab dengan mengetikkan : >> kompas
3. Nomor ini akan mencoba penggunaan fungsi built‐in hold (fungsi hold berulang). Ketikkan, simpan dan jalankan kode m‐file dibawah ini: function ujihold %penggunaan perintah hold x=‐pi:pi/100:pi; figure(5); plot(x,sin(x)); x=‐pi:pi/100:pi; figure(6);
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-9
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta plot(x,sin(x)); hold; plot(x,cos(x)); x=‐pi:pi/100:pi; figure(7); plot(x,sin(x)); hold plot(x,cos(x)); hold; plot(x,sin(x)); Jelaskan pada laporan apa perbedaan antara figure 5, 6, dan 7 dengan adanya penggunaan perintah hold berulang ? 4. Buatlah fungsi m‐file untuk mencari determinan dari invers suatu matriks, dengan ketentuan data matriks dimasukkan oleh user pada saat fungsi dijalankan! Caranya: ketikkan, simpan dan jalankan fungsi m‐file berikut : function detinv %script file untuk menghitung determinan dari invers suatu %matrix 3x3 for n=1:3 Untuk menjadikan for m=1:3 matrix A menjadi A(n,m) = 0; matrix null end end for n=1:3 for m=1:3 A(n,m) = input('masukkan elemen = ') end end I = inv(A); D = det(I); display(A); display(I); display(D); ♦ Jalankan dan masukkan data seperti dibawah ini >> detinv masukkan elemen = 4 < ENTER > masukkan elemen = 2 < ENTER > masukkan elemen = 3 < ENTER >
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-10
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta masukkan elemen = 2 < ENTER > masukkan elemen = 0 < ENTER > masukkan elemen = 1 < ENTER > masukkan elemen = 3 < ENTER > masukkan elemen = 2 < ENTER > masukkan elemen = 5 < ENTER > A = 4 2 3 2 0 1 3 2 5 I = 0.2000 0.4000 ‐0.2000 0.7000 ‐1.1000 ‐0.2000 ‐0.4000 0.2000 0.4000 D = ‐0.1000 5. Buatlah sebuah fungsi untuk mencari akar‐akar kuadrat dari sebuah persamaan kuadrat. Dengan permintaan dari user untuk memasukkan koefisien dari persamaan kuadrat yang mau dicari akar‐akarnya langsung melalui parameter input dan outputnya langsung ditampilkan. ♦ Pertama‐tama buka M‐file baru lalu ketikkan kode di bawah ini: function mykuadrat(a,b,c) %mencari akar‐akar kuadrat dari sebuah persamaan kuadrat yang %koefisiennya dimasukkan melalui parameter input x1 = (‐b + sqrt(b.^2 ‐ (4*a*c)))/(2*a); x2 = (‐b ‐ sqrt(b.^2 ‐ (4*a*c)))/(2*a); display(x1); display(x2); ♦ Setelah itu simpan dengan nama mykuadrat.m
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-11
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta ♦ Panggil dengan cara ketik: >> mykuadrat(1,10,16) ans =
‐2
‐8 ♦ Dari persamaan kuadrat di atas yakni X2 + 10X + 16, diperoleh akar‐akarnya adalah sebagai berikut X1 = ‐2 dan X2 = ‐8. Dengan akar‐akar fungsi kuadrat tersebut, bandingkan penelusuran kembali koefisian polynomialnya jika anda menggunakan fungsi built in‐ poly. ♦ Sebelumnya dibuat sebuah vektor yang berisi akar‐akar persamaan di atas : >> m = [‐2 ‐8] Hasilnya : m = ‐2 ‐8 ♦ Ketikkan perintah : >> poly(m) ans =
1 10 16
>> p = poly(m) p =
1 10 16
♦ Setelah mendapat koefisian polynomialnya, bandingkan pencarian akar‐akarnya jika anda menggunakan fungsi built in‐ roots. >> roots(p) ans =
‐8
‐2
♦ Jelaskan maksud dari penggunaan fungsi built in‐ poly dan roots diatas...!
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-12
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta 6. Mirip dengan langkah ke‐5, buatlah sebuah fungsi untuk mencari akar‐akar kuadrat dari sebuah persamaan kuadrat. Dengan permintaan dari user agar koefisien persamaan kuadrat ditampung ke dalam sebuah vektor lalu vektor tersebut yang akan menjadi input bagi fungsi yang dibuat. •
Pertama‐tama buka M‐file baru lalu ketikkan kode di bawah ini: function V = mykuadrat2(k) %mencari akar‐akar kuadrat dari sebuah persamaan kuadrat yang ditampung %dalam sebuah vektor a = k(:,1); b = k(:,2); c = k(:,3); x1 = (‐b + sqrt(b.^2 ‐ (4*a*c)))/(2*a); x2 = (‐b ‐ sqrt(b.^2 ‐ (4*a*c)))/(2*a); V = [x1,x2];
♦ Setelah itu simpan dengan nama mykuadrat2.m ♦ Kemudian buat sebuah vektor k yang berisi koefisien dari persamaan yang mau dicari akar‐akarnya. >> k=[1,‐6,‐7] k = 1 ‐6 ‐7 ♦ Lalu panggil melalui command window Matlab dengan mengetikkan: >>mykuadrat2(k) ans = 7
‐1
♦ Atau kita dapat menyimpan hasil perhitungan dalam sebuah variabel yang kita tentukan misalnya ditampung dalam variabel vektor. >> vektor = mykuadrat2(k) vektor = 7 ‐1 ♦ Jelaskan perbedaan yang terdapat pada function mykuadrat dan mykuadrat2, pada laporan Anda!
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-13
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta 7. Agar menjadi lebih mudah, user meminta Anda untuk menampilkan grafiknya beserta hasil pencarian akar‐akar dari persamaan kuadrat y = 2ax 2 + 2bx + c dengan range atau jangkauan nilai X antara ‐2π sampai 2π. ♦ Pertama‐tama buka M‐file baru lalu ketikkan kode di bawah ini: function Mykurva(a,b,c) %menggambarkan kurva persamaan y = 2*a*x*x + 2*b*x + c x = linspace(‐2*pi,2*pi,30); y = ((2*a)*(x.^2)) + ((2*b)*x) + (c); x1 = (‐(2*b) + sqrt((2*b).^2 ‐ (4*(2*a)*(c))))/(2*(2*a)); x2 = (‐(2*b) ‐ sqrt((2*b).^2 ‐ (4*(2*a)*(c))))/(2*(2*a)); display([x1,x2]) plot(x,y,'ro') ♦ Setelah itu simpan dengan nama Mykurva.m ♦ Panggil fungsi dengan cara ketik: >> Mykurva(1,1,‐12) ans = 2 ‐3 ♦ Output grafik atau kurva yang diplotkan adalah sebagai berikut :
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-14
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta
♦ Salin grafik tersebut ke aplikasi MS Word dengan cara menekan tombol: Ctrl+Alt+PrtScr dari keyboard kemudian di‐paste dengan menekan tombol: Ctrl+V. Simpan pula grafik atau figure tersebut pada direktory yang sama dengan nama file Mykurva.fig. ♦ Jelaskan pada laporan Anda maksud dari baris perintah terakhir yakni perintah plot(x,y,'ro') dari function Mykurva! 8. Seorang user meminta dibuatkan function untuk menampilkan grafik 3 dimensi dari persamaan x2+y2+z2= 0. Untuk itu gunakanlah M‐file dan perintah mesh. ♦ Pertama‐tama buka M‐file baru lalu ketikkan kode di bawah ini: function mymesh clc echo on % Membuat Kurva dengan persamaan z‐x^2‐y^2=0 x=‐7.5:.5:7.5; y=x; [x,y]=meshgrid(x,y); z=(x.^2+y.^2);
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-15
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta figure(1); mesh(x,y,z) title('Kurva Persamaan z‐x^2‐y^2=0') xlabel('Sumbu x') ylabel('Sumbu y') zlabel('Sumbu z')
♦ Setelah itu simpan dengan nama mymesh.m ♦ Kemudian kembali ke jendela command matlab dan panggil dengan cara ketik: >> mymesh
9. Buatkan sebuah function untuk menghasilkan transpose dari suatu matriks yang elemennya diinputkan oleh user saat fungsi dijalankan. ♦ Pertama‐tama buka M‐file baru lalu ketikkan kode di bawah ini: function [b] = transpose(a) %menghasilkan matriks b yang merupakan %transpose dari sebuah matriks a for i=1:3 for j=1:3 b[i,j] = a[j,i] end end
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-16
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta ♦ Setelah itu simpan dengan nama transpose.m pada folder yang telah ditentukan. ♦ Kemudian kembali ke command window matlab, buatlah sebuah matriks bernilai random 4x4 dengan mengetikkan A = rand(4), lalu panggil function transpose dengan mengetikkan transpose(A). Catat hasilnya..!!! ♦ Untuk pemanggilan function yang memiliki parameter output gunakan variabel untuk menampungnya, misalnya : >> P = [ 1 1 6<enter> 6 1 1<enter> 1 6 1]
>> Q = transpose(P) Q =
1 6 1
1 1 6
6 1 1
♦ Jelaskan pada laporan resmi mengapa pemanggilan fungsi transpose dilakukan seperti di atas! 10. Visualisasi Fungsi dengan KONTUR Jika plot adalah statemen MATLAB untuk visualisasi fungsi y = f (x ) , maka contour adalah statemen MATLAB untuk memvisualisasikan fungsi z = f ( x, y ) . Fungsi z = f ( x, y ) mengungkapkan hubungan antara pasangan dua variabel bebas
( x, y ) dengan sebuah variabel tak bebas z. Kedua variabel bebas ( x, y ) itu pada dasarnya dapat digambarkan merupakan sebuah titik dalam bidang datar yang dibentuk oleh sumbu‐datar x dan sumbu‐tegak y. Misalkan bidang datar yang digunakan adalah sebuah kertas yang di atas kertas itu sebuah fungsi hendak ditampilkan, maka pada dasarnya visualisasi dapat berupa tampilan titik‐titik data
( x, y ) pada posisi atau lokasi yang tepat, dengan data nilai z yang bersangkutan dengan titik itu dituliskan di dekatnya. Namun jika cara itu dilakukan, maka hasilnya
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-17
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta adalah tampilan yang pasti membosankan – apalagi jika data yang tersedia cukup besar jumlahnya…..! Maka cara yang lebih elegan adalah dengan : (1) menghubungkan titik‐titik (x,y) dengan nilai z yang sama dalam garis kontur dan (2) mencantumkan nilai z yang sesuai untuk kontur itu didekat garis kontur tersebut. Garis kontur adalah garis dengan nilai z sama (iso‐z). Sehingga, garis‐garis itu tidak berpotongan satu sama lain dan pada dasarnya garis kontur membentuk lingkaran tertutup. Cacah garis kontur sebenarnya dapat mencapai nilai tak terhingga, namun pada dasarnya dapat dibatasi sesuai dengan kebutuhan. Yang secara visual dapat diamati adalah informasi tentang arah ke mana terjadi gerakan “mendaki” atau “menurun” dan apakah ”pendakian” atau “penurunan” itu “terjal” atau “curam”. Kontur merupakan visualisasi yang paling akurat tentang fungsi dua variabel bebas dari sebuah besaran tak bebas. Informasi tentang lokasi dimana terjadi kondisi maksimum, atau minimum, atau lokasi lokal dimana terjadi sekaligus maksimum dan minimum juga dapat diidentifikasi. Singkatnya kontur merupakan teknik visualisasi yang penting dalam komunikasi ilmiah dan hidup sehari‐hari. Sebuah contoh hasil eksekusi adalah di bawah ini, untuk
z = x − y + 2x2 + 2xy + y 2 .
Skrip MATLAB untuk menampilkan kontur dari fungsi di atas : % kontur z = x ‐ y + 2x^2 + 2xy + y^2 clear; clc; clf; set(gcf,'DefaultLineLineWidth',2,... 'DefaultAxesFontSize',13,... 'DefaultAxesPosition',[0.13 0.11 0.775 0.775],... 'DefaultTextFontSize',12) xx = ‐4 : .01 : 4; yy = ‐4 : .01 : 4 ; [x,y] = meshgrid (xx,yy); z = x ‐ y + 2.*x.^2 + 2.*x.*y + y.^2 ; v = [‐1 0 1 2 3 5 10 15 20 30 40]; [C,h] = contour (x,y,z,v); xlabel ('sumbu x');
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
Statemen ini bermaksud memberi spesifikasi tentang format grafis yang diharapkan.
SKRIP KUNCI
2-18
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta ylabel ('sumbu y'); title ('kontur z = x ‐ y + 2x^2 + 2xy + y^2'); clabel (C,h); grid on; hold on; % menemukan nilai minimum zmin = min(min(z)); cmin = find (z==zmin); titik_min = [x(cmin), y(cmin)]; plot (x(cmin), y(cmin), 'o'); text (x(cmin), y(cmin), 'Min'); ♦ Setelah itu simpan dengan nama kontur.m pada folder yang telah ditentukan. ♦ Kemudian kembali ke command window matlab, lalu panggil function transpose dengan mengetikkan : >> kontur ♦ Amati hasilnya..!!! Salin tampilan kontur ke MS Word, kemudian simpan file asli ke direktory C:\MATLAB6p1\work, beri nama figure dengan nama : kontur.fig. ♦ Hasil yang tampak sebagai berikut :
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-19
Laboratorium Komputasi Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta
♦ Jelaskan pada laporan resmi tentang pemanggilan fungsi contour yang dilakukan seperti di atas! Anda dapat menggali berbagai hal teknis tentang pemrograman MATLAB dengan mengacu kepada hasil eksekusi, menggunakan perintah help diikuti nama fungsi, serta membuat latihan secukupnya.
Modul 2 –Fungsi M dan Visualisasi Fungsi dalam Bentuk Grafis dan Kontur
2-20