OLEH : PROF. DR. SAHYAR, M.S.
UNIVERSITAS NEGERI MEDAN
1
Sahyar Econophysics Unimed Medan
Tentang Penulis Prof. Dr. SAHYAR, M.S. saat ini menjabat sebagai Ketua Progaram Studi Magister Pendidikan Fisika (S2) Pascasarjana Unimed Medan. Beliau merupakan guru besar FMIPA Unimed Medan bidang Ekonofisika sejak tahun 2010. Beliau Lahir di Langkat pada tanggal 26 April 1960. Pendidikan Dasar, Menengah Pertama dan Menengah Atas masing-masing diselesaikan di Kec. Hinai, Stabat dan Tanjung Pura Langkat. Pendidikan Sarjana diselesaikan pada tahun 1984 dari Unimed (IKIP) Medan bidang Pendidikan Fisika. Pendidikan Magister Sains diselesaikan pada tahun 1991 dari Universitas Gajah Mada Yogyakarta dalam bidang Fisika Komputasi. Pendidikan Doktor diselesaikan tahun 2008 dari Universitas Padjadjaran Bandung dalam bidang Ekonofisika.
Tentang Buku Buku ini merupakan buku pendukung matakuliah pemrograman dasar yang diajarkan pada berbagai jurusan di lingkungan Perguruan Tinggi Fakultas Matematika dan Ilmu Pengetahuan Alam (FMIPA) dan Teknik. Kompetensi yang dapat dicapai setelah mempelajari buku ini adalah: Memahami dasar-dasar pemrograman terstruktur menggunakan MatLab. Mengenal Operasi-operasi dasar dalam Matlab. Menggunakan fungsi-fungsi standar dalam Matlab untuk aplikasi dalam bidang Sains. Menyusun progam komputer untuk komputasi berbagai model matematika dalam bidang Sains dengan menggunakan MatLab. Menyusun progam komputer untuk Visualisasi berbagai model matematika dalam bidang Sains dengan menggunakan MatLab.
2
Sahyar Econophysics Unimed Medan
BAB 1 DASAR-DASAR PEMROGRAMAN A.Tujuan Pembelajaran 1. Menjelaskan pengertian perogram komputer. 2. Menjelaskan pengertian algoritma. 3. Menjelaskan perbedaan algortima menggunakan flowchrt menggunakan kalimat. 4. Menyusun algoritma untuk perhitungan sederhana. 5. Menjelaskan langkah-langkah penyusunan program komputer. 6. Menjelaskan standar program komputer yang baik. 7. Menjelaskan kriteria pemrograman terstruktur.
dan
B.Perangkat Sitem Komputer Komputer adalah alat pengolah data yang bekerja secara elektronik dan dikontrol oleh program, dengan keterlibatan pemakai seminimal mungkin. Perangkat dalam pemakaian sistem komputer adalah : brainware, software dan hardware. Sistem komputer dapat berjalan bila ketiga bagian perangkat tersebut bekerja dalam satu kesatuan. 1. Brainware Brainware adalah orang yang menggunakan atau memanfaatkan komputer. Brainware dapat dibagi menjadi tiga golongan utama yaitu: operator, programmer dan analis 2. Software (Perangkat Lunak) Software adalah perintah-perintah dalam bentuk rekaman untuk mengendalikan kerja perangkat keras komputer. Perangkat keras komputer dapat bekerja hanya dengan sinyal elektronik digital dengan nilai 1 (high) atau 0 (low). Sulitnya untuk melakukan instruksi terhadap perangkat keras, maka diciptakan beberapa kelompok software untuk memudahkan pengendalian perangkat keras komputer. Software dapat dikelompokkan dalam tiga bagian yaitu: a. Software sistem operasi (Operating system), yaitu progam yang ditulis untuk mengendalikan dan mengkoordinasikan kegiatan dari sistem komputer. Contoh sistem operasi yang terkenal adalah: windows dan linux. b. Software bahasa (Bahasa pemrograman) yaitu program yang digunakan untuk menterjemahkan perintah-perintah yang ditulis dalam bahasa pemrograman ke dalam bahasa mesin (level low/0, atau high/1) agar dapat dimengerti oleh komputer. Contoh software bahasa : Turbo Pascal, Delphi, C, visual C, Visual Basic, MatLab, dll.
3
Sahyar Econophysics Unimed Medan
c. Software aplikasi yaitu program yang ditulis menggunakan software bahasa untuk menyelesaikan suatu aplikasi tertentu. Contoh software aplikasi: microsoft word, microsoft excel, microsoft power point, microsoft access, spss, dll. 3. Hardware (Perangkat keras) Perangkat keras komputer dapat dibagi menjadi 2 kelompok yaitu perangkat keras utama dan perangkat keras pendukung (periferal). Perangkat keras utama meliputi: papan induk, kartu ekspansi, CPU, memori, penyimpan data, cakram pemutar, kartu vidio, papan ketik dan monitor. Perangkat keras pendukung di antaranya: printer, plotter, modem, mouse, scanner, dll.
C.Program Komputer dan Bahasa Pemrogaman. Program komputer adalah perintah-perintah atau instruksi yang disusun berdasarkan algoritma dengan menggunakan bahasa pemrograman untuk penyelesaian suatu masalah. Bahasa pemrograman adalah perangkat lunak yang digunakan untuk meterjemahkan atau menuliskan algoritma dalam bentuk teks perintah-perintah yang dapat dimengerti oleh komputer untuk menyelesaikan suatu masalah. Berdasarkan hirarkhi dikenal beberapa bahasa pemrograman di antaranya adalah: a. Bahasa pemrograman aras dasar sperti: Bhs. Mesin, Bhs assembley. b. Bahasa aras tengah seperti: Bhs. C c. Bahasa pemrograman aras atas sperti: Pascal, Visual Basic, MatLab dan lainlain. Bahasa pemrograman yang dapat menghasilkan file program komputer yang berdiri sendiri disebut dengan Compiler, sedangkan bahasa pemrograman yang hanya berperan sebagai penterjemah kode-kode program disebut dengan interpreter. File program komputer yang ditulis dengan menggunakan interpreter hanya dapat dieksekusi jika menggunakan bahasa pemrograman tersebut. Melalui defenisi di atas maka untuk menyusun proram komputer harus dipenuhi hal-hal berikut: a) ada masalah yang akan dipecahkan, b) ada algoritma untuk penyelesaian masalah dan c) ada bahasa pemrograman untuk menterjemahkan algoritma.
D.Tahapan Dalam Menyusun Program komputer Langkah-langkah yang dilakukan dalam meyelesaikan pemrograman dengan komputer adalah : 1. Defensisi masalah i. Tentukan apa yang menjadi masalah ii. Tentukan data input dan output 2. Struktur data.
4
Sahyar Econophysics Unimed Medan
masalah
dalam
i. Tentukan variabel untuk masing-masing data ii. Tentukan tipe data untuk masing-masing variabel. Algoritma program komputer i. Susun algoritma untuk input, proses dan output. Pengkodean i. Pilih bahasa pemrograman ii. Terjemahkan algoritma dalam bahasa pemrograman Pengujian dan verifikasi program i. Pengujian kesalah sintaks (penulisan program) ii. Pengujian kesalahan logika dengan menggunakan data input sederhana iii. Bandingkan output program dengan perhitungan manual. Dokumentasi program
3. 4.
5.
6.
E.Pengertian Algoritma Algoritma adalah: langkah-langkah yang sistematis, logis dan lengkap untuk penyelesaian suatu masalah. Ada dua cara menyusun algoritma yaitu: 1. Menggunakan bagan-bagan/simbol-simbol tertentu yang membentuk bagan alir (flowchart). 2. Menggunakan kata-kata atau kalimat matematis. Simbol-simbol untuk menyusun algoritma mengguanakan flowchart: Terminator
Proses
Predefined proses
Predefined data.
Seleksi
connect er
Input/output data
Off page connector
Dokumen cetak
Display
Gambar 1.1. Simbol Flowchart 1. Contoh algoritma menggunakan kalimat untuk menentukan angka yang lebih besar dari dua buah angka. a. Mulai b. Input data
5
Sahyar Econophysics Unimed Medan
read(a); read(b); c. Proses If a>b then write(a) else write(b) end if d. Stop 2. Contoh algoritma menggunakan flowchart untuk menentukan angka yang lebih besar dari dua buah angka.
Mulai
Read(a); read(b)
T a>b
Disp(a) N
Disp(b)
selesai
Gambar 1.2. Flowchart menentukan nilai lebih besar 3. Contoh algoritma menentukan luas segitiga menggunakan kalimat: a. Mulai b. Input data Read(a) Read(t) c. Proses Luas=0.5*a*t d. Output Luas e. Stop 4. Contoh algoritma menentukan luas segitiga menggunakan flowchart
6
Sahyar Econophysics Unimed Medan
Mulai
Read(a); read(t)
Luas=0.5*a*t
Luas
selesai
Gambar 1.3.Flowchart hitung luas segitiga
F.Syarat Program komputer yang baik Program komputer yang baik harus memenuhi beberapa syarat berikut: 1. Bekerja sesuai dengan tujuan dan memenuhi spesfikasi yang telah ditentukan. 2. Fleksibel 3. Tidak menandung kesalahan 4. Didokumentasi secara baik 5. Cepat dalam waktu pelaksanaan 6. Efisien dalam penggunaan memory komputer.
G.Pemrograman terstruktur. Pemrograman terstruktur adalah pemrograman yang disusun dengan menggunakan komponen-komponen berikut: 1. Rancangan atas bawah (top down design) 2. Rancangan bermodul (modular design) 3. Kodifikasi terstruktur (structured coding). Program komputer yang dirancang dalam buku ini disusun dengan menggunakan pendekatan pemrograman terstruktur menggunakan bahasa pemrogaram MatLab.
7
Sahyar Econophysics Unimed Medan
H.SOAL LATIHAN 1. Jelaskan pengertian perogram komputer. 2. Jelaskan pengertian algoritma. 3. Jelaskan perbedaan algortima menggunakan flowchrt dan menggunakan kalimat. 4. Rancang algoritma untuk menghitung luas persegi panjang menggunakan flowchart dan kalimat. 5. Rancang algoritma untuk menghitung luas trapesium menggunakan flowchart dan kalimat. 6. Jelaskan langkah-langkah penyusunan program komputer. 7. Jelaskan standar program komputer yang baik. 8. Jelaskan kriteria pemrograman terstruktur.
8
Sahyar Econophysics Unimed Medan
BAB 2 TIPE DATA,VARIABEL, NILAI DAN EKSPRESI A.TUJUAN PEMBELAJARAN 1. 2. 3. 4. 5.
Menjelaskan perbedaan tipe data dasar dan tipe data bentukan. Menjelaskan perbedaan variabel dan konstanta. Menjelaskan aturan membuat variabel dalam pemrograman. Menjelaskan cara memberi nilai variabel. Menjelaskan empat cara membuat ekspresi variabel dalam pemrograman.
B.TIPE DATA Ada dua jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar meliputi bilangan bulat (integer), bilangan pecahan (real), bilangan tetap (const), data karakter (character), tipe data logik (logic atau boolean). Tipe data bentukan adalah tipe data yang dibentuk dari kombinasi tipe data dasar, yang terdiri dari tipe data larik (array), rekaman (record), dan tipe data string. 1.Tipe data dasar. a. Bilangan bulat Karekteristik bilangan bulat: Bilangan bulat adalah angka yang tidak memiliki titik desimal Jangkauan nilai bergantung pada implementasi perangkat keras komputer. Operasi aritmatika: tambah(+), kurang(-), kali (*), bagi (/) Operasi pembandingan: lebih kecil (<), lebih kecil atau sama (<=), lebih besar (>), lebih besar atau sama (>=), sama (=), tidak sama (<>) b. Bilangan real Karekteristik bilangan real: Bilangan yang mempunyai titik desimal atau pecahan. Jangkauan nilai bergantung pada implementasi perangkat keras komputer. Operasi aritmatika: tambah(+), kurang(-), kali (*), bagi (/) Operasi pembandingan: lebih kecil (<), lebih kecil atau sama (<=), lebih besar (>), lebih besar atau sama (>=), sama (=), tidak sama (<>) c.Bilangan tetap (const) Karakteristik bilangan tetap Bilangan tipe integer atau real yang nilainya tidak berubah selama algoritma dilaksanakan. Jangkauan nilai meliputi semua bilangan yang mungkin 2.Tipe data karakter Karakteristik data karakter:
9
Sahyar Econophysics Unimed Medan
Karakter adalah data tunggal yang memiliki semua huruf, simbol baca, dan juga simbol angka yang tidak dapat dioperasikan secara matematis, misalnya: ‘A’, ‘B’,...,’Z’, ‘a’, ‘b’,’c’,...,’z’, ‘0’,’1’,...,’9’, ‘?’, ’!’, ’;’, dst. Operasi pembandingan dapat dilakukan.
3.Tipe data Logik Karakteristik tipe data logik Data mempunyai nilai benar (True atau 1) dan salah (false atau 0). Operasi data logik meliputi: and, or, dan not
A False False True True
Tabel 2.1. Operasi data Logik B A and B A or B not A False False False True True False True True False False True False True True True False
4.Tipe data Bentukan. a.Tipe data larik(array) Karakteristik tipe data array Sejumlah data sejenis yang ditampung oleh variabel yang mempunyai indeks. Array dimensi satu, data ditampung oleh variabel yang mempnyai satu indeks. Misal: a(1)= 20; a(2)=30; a(3)=34; dst. Array dimensi dua, data ditampung oleh variabel yang mempnyai dua indeks. Misal: a(1,1)= 20; a(1,2)=30; a(1,3)=34; a(2,1)=12; a(2,2)=15; dst. b. Tipe data String Karakteristik tipe data string. Data yang merupakan deretan karakter yang membentuk kata atau kalimat. Data string biasanya diapit oleh dua tanda kutip. c. Tipe data Record Karakteristik tipe data record. Data yang terdiri dari beberapa jenis tipe data seperti: real, integer, karakter dan string. Sebagai contoh: Record pegawai berisi data: nama (string), nip(integer), alamat (string), gaji(real), tanggungan (integer).
C.Variabel Variabel adalah suatu pengenal yang digunakan untuk menampung data di memory komputer.
10
Sahyar Econophysics Unimed Medan
Aturan dalam membuat pengenal variabel: Harus dimulai dengan huruf abjad. Tidak boleh ada sepasi Menggunakan huruf dan angka. Untuk Matlab huruf kecil dan besar dibedakan, sebagai contoh: Luas berbeda dengan luas. Sebaiknya singkat dan mempunyai makna. Contoh variabel: Besaran luas dapat menggunakan variabel : l atau lu atau luas, dll. Besaran Gaji pokok dapat menggunakan variabel : gp, gapok, gpokok, dll Besaran Nama pegawai dapat menggunakan variabel: nm, nama, dll Besaran kecepatan dapat menggunakan variabel : v (singakatan dari velocity), kec, kp, dll. Besaran tinggi dapat menggunakan variabel : t, tg, dll. Sifat Variabel: Mengingat nilai data terakhir. Ketika variabel mendapat nilai baru, maka nilai lama diganti dengan nilai baru. Untuk variabel sederhana setiap variabel hanya merekam/mengingat satu nilai data. Untuk variabel array setiap variabel dapat merekam/mengingat sejumlah data, tergandung jumlah indeks array. Menganalisis sifat vaiabel menggunakan Matlab: Contoh 1: variabel mengingat/mencatat data terakhir » a=10;b=70; » a=b;b=a; »a a= 70 »b b= 70 Keterangan: ketika a=b, maka nilai a=70; nilai 10 sudah diganti nilai 70; ketika b=a, maka b=70. Terakhir a dan b mempunyai nilai 70. Contoh 2: Menukar nilai variabel » p=30;q=90; » c=p; » p=q; » q=c;
11
Sahyar Econophysics Unimed Medan
»p p= 90 »q q= 30 Keterangan: nilai p dan q telah bertukar.
D.Pemberian Nilai Pemberian nilai variabel dapat melalui proses penugasan (assignment) dan pembacaan. 1.Melalui pembacaan. Pemberian nilai melalui pembacaan dilakukan input data melalui keyboard. Contoh: Menggunakan bahasa Pascal : read(variabel); Menggunakan MatLab: variabel = input(‘Masukkan data = ‘); 2.Melalui Penugasan. Contoh: Variabel nilai; luas25.89 Variabel1 variabel2 ; jarak70; xjarak; Vaiabel ekspresi; y5*x + 6*z; Contoh menggunakan MatLab Memberikan nilai langsung ke variabel » a=30 a= 30 Memberikan nilai melalui variabel lain » a=20; » b=a; »b b= 20
E.Ekspresi Ekspresi adalah transformasi data dan variabel dalam bentuk persamaan yang direlasikan oleh operator dan operand. Ada empat macam ekspresi yaitu: ekspresi aritmatika, ekspresi relasional, ekspresi logik dan ekspresi string. Ekspresi aritmatika
12
Sahyar Econophysics Unimed Medan
o Vt v0 + a*t; o Gajigapok+tunjangan o Luas0.5 * alas*tg; Ekspresi relasional o skorA>skorB o (a+b)< c o p<>q Ekspresi Logik o m(n) and (o) o p(q) or (r) o anot(b) Ekspresi string o Alamat’Jl W Iskandar no 8 Medan’; o Nama’Zakarni Yusuf’; o Nilai’A’;
F. Soal Latihan. 1. Jelaskan perbedaan tipe data dasar, tipe karakter, tipe logik dan tipe data bentukan. 2. Jelaskan perbedaan variabel dan konstanta. 3. Jelaskan aturan membuat variabel dalam pemrograman. 4. Jelaskan dua cara memberi nilai variabel dengan memberikan contoh. 5. Jelaskan empat cara membuat ekspresi variabel dalam pemrograman dengan memberikan contoh.
13
Sahyar Econophysics Unimed Medan
BAB 3 OPERATOR DAN FUNGSI STANDAR A.Tujuan Pembelajaran 1. 2. 3. 4. 5.
Menjelaskan lima jenis operator dasar Aritmatika. Menjelaskan enam jenis operator dasar relasi. Menjelaskan tiga jenis operator dasar logika. Menggunakan fungsi standar matematika dalam MATLAB Menggunakan fungsi standar untuk data teks dalam MATLAB
B.Operator. Di dalam Matlab dikenal tiga jenis operator yaitu : a) Operator aritmatika yang digunakan untuk komputasi numerik, b) Operator relasional yang digunakan untuk membandingkan operand-operand seacara kuantitatif dan c) Operator logika. 1.Operator Aritmatika tipe data sederhana Tabel 3.1. Operator Aritmatika Operation
Symbol
Addition, a+b
+. Example: 5+3
Subtraction, a-b
-. Example: 7-2
Multiplication, a x b
*. Example : 3.24*4.56
Division, a:b
/ or \. Example: 75/3=3\75
b
Power, a
^. Example: 3^5
Contoh pemakaian: » a=20; b=5; » c=a+b; » d=a-b; » e=a*b; » f=a/b; » g=a\b; » h=a^2; » c (menampilkan nilai c hasil jumlah) c= 25 » d (menampilkan nilai d hasil pengurangan)
14
Sahyar Econophysics Unimed Medan
d= 15 » e (menampilkan nilai e hasil perkalian) e= 100 » f (menampilkan nilai f hasil pembagian) f= 4 » g(menampilkan nilai g hasil pembagian) g= 0.2500 » h (menampilkan nilai h hasil pemangkatan) h= 400 2.Operator Relasi Tabel 3.2. Operator Relasi Operator
Description
>
Greater than
>=
Greater than or equal to
<
Less than
<=
Less than or equal to
==
Equal to
~=
not equal to
Contoh pemakaian: Penjelasan: jawaban =0 berarti salah, 1 berarti benar » p=10;q=15; %Operator kesamaan » p==q ans =
15
Sahyar Econophysics Unimed Medan
0 %Operator lebih besar » p>q ans = 0 %Operator lebih kecil » p
Description
&
And
|
Or
~
Not
Contoh pemakaian: » x=1;y=0; » x&y (x dan y) ans = 0 » x|y (x atau y) ans = 1 » ~x (tidak y) ans = 0 » ~y ans = 1
16
Sahyar Econophysics Unimed Medan
C.Fungsi Standar. Fungsi standar adalah fungsi-fungsi dasar bawaan MatLab yang dapat dipakai langsung dan dioperasikan pada suatu nilai atau variabel. Tabel 3.4. Fungsi Dasar Matematika No 1 2 3 4 5 6 7 8 9 10 11 12
Fungsi abs acos acosh asin asinh atan atanh cos cosh exp fix floor
Kegunaan Nilai absolut Invers kosinus Invers hyperbolik kosinus Invers sinus Invers hyperbolik sinus Invers tangen Invers hyperbolik tangen Kosinus Kosinus hyperbolik Eksponensial Pembulatan ke arah nol Pembulatan ke arah minus
No 13 14 15 16 17 18 19 20 21 22 23 24
Fungsi imag log log10 real rem round sign sin sinh sqrt tan tanh
Kegunaan Bagian imajiner bilangan kompleks Logaritma natural Logaritma umum Bagian real bilangan kompleks Sisa pembagian Pembulatan ke arah bilangan bulat Tanda fungsi (1 atau -1) Sinus Sinus hyperbolik Akar pangkat 2 tangen Tangen hyperbolik
Tabel 3.5. Fungsi standar untuk data Teks atau String No Fungsi 1 strcmp 2 3 4 5 6
Kegunaan Memeriksa kesamaan dua data text. Output program type data logic (benar atau salah). Contoh: hasil=strcmp(t1,t2); strcat Menggabungkan dua data text. Contoh: gabung(t1,t2); isletter Memeriksa karakter huruf atau lainnya. Bernilai 1 jika huruf dan nol jika bukan huruf. isspace Memeriksa apakah ada spasi atau tanda lain dalam data text, jika ada maka akan bernilai 1 selainnya nol. int2str Merubah data integer atau array menjadi text num2str Merubah data numerik atau array menjadi text
Contoh Pemakaian menggunakan Matlab Contoh1: Nilai cos » x=0.5*pi; » cos(x) ans = 6.1232e-017 Contoh 2:Log dengan bilangan pokok e » log(100) ans = 4.6052
17
Sahyar Econophysics Unimed Medan
Contoh 3: Log dengan bil.pokok 10 » log10(100) ans = 2 Contoh 4: Nilai pemangkatan e » exp(1) ans = 2.7183 Contoh 5: Nilai mutlak » y=-30; » abs(y) ans = 30 Contoh 6: menentukan akar » sqrt(9) ans = 3 Contoh 7: Pembulatan » x=3.768; » round(x) ans = 4 » fix(x) ans = 3 » floor(x) ans = 3 Contoh 8: Sisa pembagian » rem(17,5) ans = 2 Contoh 9: Menggabung dua teks » a='Ali '; » b='pergi ke Medan'; » strcat(a,b) ans = Ali pergi ke Medan
18
Sahyar Econophysics Unimed Medan
D.Konstanta Konstanta adalah pengenal yang nilainya tetap selama program berjalan. Dalam Matlab telah disiapkan beberapa konstanta yang dapat langsung dipakai tanpa dideklarasikan terlebih dahulu. Konstanta tersebut adalah: Konstanta pi nilai : 3.14152... Konstanta eps nilai bilangan natural = 2.7... Konstanta inf nilai tak berhingga Konstanta i tau j, bilangan imajiner. Konstanta nan hasil 0/0. Konstanta jumlah argumen input: nargin Konstanta jumlah argumen output: nargout Konstantan bilangan ril positif terkecil: realmin. Konstanta bilangan ril positif terbesar: realmax.
E. Soal Latihan. 1. 2. 3. 4.
Jelaskan lima jenis operator dasar Aritmatika dalam MATLAB. Jelaskan enam jenis operator dasar relasi dalam MATLAB. Menjelaskan tiga jenis operator dasar logika dalam MATLAB. Berikan sepuluh contoh menggunakan fungsi standar matematika dalam MATLAB 5. Berikan lima contoh menggunakan fungsi standar untuk data teks dalam MATLAB
19
Sahyar Econophysics Unimed Medan
BAB 4 INPUT OUTPUT DATA DALAM MATLAB A.Tujuan Pembelajaran 1. 2. 3. 4.
Menggunakan statemen input untuk data numerik. Menggunakan statemen input untuk data teks. Menggunakan statemen output untuk data numerik. Menggunakan statemen output untuk data teks.
B.Input data dalam MATLAB Input data adalah data yang akan dimasukkan ke dalam memori internal komputer. Input data yang umum diapakai dalam pemrograman adalah input melalui keyboard. Output data adalah data hasil operasi komputer yang dapat ditampilkan ke monitor, printer atau direkam pada memori eksternal sebagai data file. 1. Instruksi Matlab terkait input dan output data Tabel 4.1. Statemen dasar dalam MatLab Instruksi/statemen/simbol input % .(titik) ; disp fprintf \n %7.3f
Arti Untuk input data melalui keyboard Memberi baris komentar pada program komputer Tanda desimal Jika variabel diberi tanda ; maka nilai variabel tidak ditampilkan ke layar Menampilkan data atau variabel text Menampilkan data numerik Memesan satu baris kosong Memesan 7 spasi dan tampilan variabel numerik 3 desimal
2.Input data numerik Sintaks: variable = input(‘Nama of variable =’); Contoh: alas= input (‘Masukkan data alas = ‘); Keterangan: alas adalah variabel data numerik; data input melalui keyboard; data akan ditampung variabel alas. 3.Input data teks (string data) Sintaks: variable = input(‘Name of variable = ‘,’s’);
20
Sahyar Econophysics Unimed Medan
Contoh: nama= input(‘Masukkan nama anda =’, ‘s’);
C.Output data dalam MatLab 1.Output data text . Contoh: disp('I go to school'); Output : I go to school 2.Output data numerik dalam text Contoh : x=4.7895; disp([‘Force =',num2str(x),' newton']); Output result :Force =4.7895 newton 3.Output data numerik Contoh : x=1007.46; y=2.7658; z=17; fprintf('\nx=%8.2f y=%6.4f z=%2.0f\n',x,y,z); Output : x= 1007.46
y=2.7658
z=17
4.Output data numerik diikuti pindah baris x=1007.46; y=2.7658; z=17; disp('x y z'); disp(‘--------------------------------------------------‘); fprintf('\n%8.2f%10.4f%8.0f\n',x,y,z); Output : x y z --------------------------------------------------------1007.46 2.7658 17
D.Contoh Program Aplikasi Contoh 1. Program Output data menggunakan MATLAB. Coding program % output data text
21
Sahyar Econophysics Unimed Medan
clc; disp('Output Text'); disp('1. Saya Belajar Fisika'); disp('2. Saya Belajar MatLab'); disp('3. Jarak tempuh GLBB'); % Output data Numeric disp(' '); disp('Output Numeric'); energy=3.784; x=27.561; y=12.34; z=23.1323; disp('Bentuk pertama '); disp(['Nilai energy = ',num2str(energy),' joule']); disp(['Nilai x = ',num2str(x)]); disp(['Nilai y = ',num2str(y)]); disp(['Nilai z = ',num2str(z)]); disp(' ------------------------------'); disp('Bentuk kedua'); fprintf('\n Nilai energi = %6.3f',energy);disp(‘ joule’); fprintf('\n value of x = %6.3f ',x); fprintf('\n value of y = %5.3f ',y); fprintf('\n value of z = %7.4f ',z); fprintf('\n x= %6.3f y=%5.2f z=%7.4f ',x,y,z);
Output program Output Text 1. Saya Belajar Fisika 2. Saya Belajar MatLab 3. Jarak tempuh GLBB Output Numeric Bentuk pertama Nilai energy = 3.784 joule Nilai x = 27.561 Nilai y = 12.34 Nilai z = 23.1323 -----------------------------Bentuk kedua Nilai energi = 3.784 joule
22
Sahyar Econophysics Unimed Medan
value of x = 27.561 value of y = 12.340 value of z = 23.1323 x= 27.561 y=12.34 z=23.1323 Contoh 2. Program Input Output data menggunakan MATLAB. Coding program. % Input output data text clc; disp('Input data Text'); name=input('Input your name =','s'); ad=input('Input your address=','s'); hs=input('Input your high school=','s'); disp(' '); disp('Output data text'); disp(‘-------------------‘); disp(['Your name =',name]); disp(['Your address = ',ad]); disp(['Your high school= ',hs]); % Input Numeric disp(' '); disp('Input Data Numeric'); disp(‘---------------------- ‘); energy=input('Energy= '); x=input('X = '); y=input('Y = '); z=input('Z = '); disp('Output Bentuk petama '); disp(‘----------------------------‘); disp(['Nilai energy = ',num2str(energy),' joule']); disp(' '); disp(['Nilai x = ',num2str(x)]); disp(['Nilai y = ',num2str(y)]); disp(['Nilai z = ',num2str(z)]); disp('Output Bentuk kedua'); disp('--------------------------'); fprintf('\n Nilai energi = %6.3f ',energy);disp(‘ joule’);
23
Sahyar Econophysics Unimed Medan
fprintf('\n fprintf('\n fprintf('\n fprintf('\n
value of x = %6.3f ',x); value of y = %5.3f ',y); value of z = %7.4f ',z); x= %6.3f y=%5.2f z=%7.4f ',x,y,z)
Ouput program: Input data Text Input your name =Sahyar Input your address=Medan Input your high school=SMA Tg. Pura Output data text -------------------Your name =Sahyar Your address = Medan Your high school= SMA Tg. Pura Input Data Numeric -----------------------Energy= 25.78 X = 12.3 Y = 89 Z = 13.789 Output Bentuk petama --------------------------Nilai energy = 25.78 joule Nilai x = 12.3 Nilai y = 89 Nilai z = 13.789
Output Bentuk kedua -------------------------Nilai energi = 25.780 joule value of x = 12.300 value of y = 89.000 value of z = 13.7890 x= 12.300 y=89.00 z=13.7890
24
Sahyar Econophysics Unimed Medan
E.Soal Latihan 1. Buat program sederhana untuk proses input dan output data numerik untuk data: gaya, usaha, gaji, pajak, nilai rata-rata. Ouput data menggunakan statemen disp dan fprintf 2. Buatlah program sederhana untuk proses input dan output data teks untuk data: alamat, nama, pangkat, pekerjaan, pendidikan.
25
Sahyar Econophysics Unimed Medan
BAB 5 PROGRAM DENGAN INSTRUKSI RUNTUN (SEQUENTIAL) A.Tujuan Pembelajaran Menyusun program komputer dengan instruksi runtun
B.Teori Instruksi runtun adalah instruksi yang dikerjakan secara beruntun atau berurutan baris perbaris mulai baris pertama sampai baris terakhir, tanpa ada lompatan atau perulangan. Karakteristik instruksi runtun: Tiap instruksi dikerjakan satu persatu sebanyak satu kali. Urutan pelaksanaan instruksi sama dengan penulisan algoritma. Instruksi terakhir merupakan akhir algoritma Perubahan urutan akan menyebabkan hasil yang berbeda.
C.Contoh Instruksi runtun menggunakan MatLab Contoh 1: Clc; %Data x=10; y=15; %proses r= x+y- x^2+y^2; %output data r Contoh 2: clc; %input data a=input(‘Input nilai a= ‘); b=input(‘Input nilai b= ‘); %proses p=a*b; q=a+b; r=a/b; %output data p q r
26
Sahyar Econophysics Unimed Medan
D.Contoh Program aplikasi. Contoh1: Program Untuk menghitung Luas Segitiga 1. Defenisi Masalah Menghitung Luas segitiga Input: data alas dan tinggi Output: data luas. 2. Struktur data Unit /Besaran Alas Tinggi Luas
Variabel a t luas
Type of data Real/Numeric Real/Numeric Real/Numeric
Keterangan Input data Input data Output data
3. Algorithm program Start
a, t
luas = 0.5 * a*t
luas
Stop
Gambar 5.1. Folwchart hitung luas segitiga 4. Coding dalam MatLab %Computer Program for caculating area of triangle %Input data a= input(' Alas = ');
27
Sahyar Econophysics Unimed Medan
t = input('Tinggi = '); %Proses luas = 0.5*a*t; %Output data fprintf('\nLuas segitiga =%8.3f\n',luas); 5. Testing and Verification Pengujian pertama. Alas = 20 Tinggi = 30 Luas segitiga = 300.000 Pengujian kedua Alas = 17 Tinggi = 10 Luas segitiga = 85.000 Pengujian ketiga. Alas = 10 Tinggi = 47 Luas segitiga = 235.000 Contoh 2: Program Untuk menghitung Energi Kinetik 1. Problem definition Menentukan Energi Kinetik Rumus: Ek = 0.5 * m*v2 Data input: kecepatan, massa Data output: energi kinetik. 2. Struktur Data Unit /Besaran Velocity Mass Kinetic Energy
Variabel v m ke
Type of data Real/Numeric Real/Numeric Real/Numeric
3. Algorithm program
28
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
Algoritma menggunakan flowchart
Start
v, m
ke = 0.5 * m*v^2
ke
Stop Gambar 5.2. Folwchart hitung Energi kinetik Algoritma menggunakan kalimat: a. Mulai b. Input data: v m c. Proses ke 0.5*m*v^2 d. Output ke e. Stop 4. Coding dalam MatLab %Computer program for calculating Kinetic Energy %Input v=input('velocity = '); m=input('Mass = ');
29
Sahyar Econophysics Unimed Medan
%process ke=0.5*m*v.^2; %Output fprintf('\Kinetic Energy=%8.2f\n',ke);disp(['joule ']); 5. Testing and Verification Pengujian pertama velocity = 10 Mass = 2.5 Kinetic Energy= 125.00joule Pengujian kedua velocity = 2.5 Mass = 15 Kinetic Energy= 46.88 joule Pengujian ketiga velocity = 125 Mass = 23 Kinetic Energy=179687.50joule
E.Latihan 1. Susun program komputer untuk menghitung jarak tempuh gerak lurus berubah beraturan. 2. Susun program komputer untuk menghitung energi kinetik dan energi potensial benda pada gerak jatuh bebas. 3. Susun program komputer untuk menghitung luas selimut permukaan selinder. 4. Susun program komputer untuk menghitung jauh dan tinggi tembakan peluru pada bidang datar dengan sudut elevasi a dan kecepatan awal vo. 5. Susun pogram komputer untuk menghitung usaha. 6. Susun program komputer untuk menghitung modal akhir pada perhitungan bunga majemuk. 𝑀𝑎 = 𝑀𝑜(1 + 𝑏)𝑛 ; Ma= modal akhir; Mo=modal awal; b=bunga dalam persen; n=periode penyimpanan.
30
Sahyar Econophysics Unimed Medan
BAB 6 PROGRAM DENGAN INSTRUKSI PILIHAN IF THEN A.Tujuan Pembelajaran 1. Menyusun program komputer dengan instruksi if then
B.Teori Instruksi pilihan adalah instruksi yang dipakai untuk memilih suatu proses dari beberapa kemungkinan proses berdasarkan suatu persyaratan. Intruksi yang sering digunakan untuk logika pengambilan keputusan atau pilihan adalah: if/then/else. Persyaratan atau kondisi dalam logika ini pada umumnya bersifat kompleks. 1.Instruksi bentuk satu kasus if (kondisi) then proses end F
kondisi i T Proses
Gambar 6.1. Flowchart If then satu kasus Keterangan Gambar 6.1: proses dikerjakan jika kondisi benar 2. Instruksi bentuk dua kasus if (kondisi) then proses1 else proses2 end
31
Sahyar Econophysics Unimed Medan
F
kondisi T Proses1
Proses2
Gambar 6.2. Flowchart If then dua kasus Keterangan Gambar 6.2: proses1 dikerjakan jika kondisi benar, jika salah proses 2 dikerjakan. 3.Instruksi bentuk tiga kasus if (kondisi1) then proses1 elseif kondisi2 then proses2 else proses3 end
F
F
Kondisi1
Kondisi2
T Proses1
T Proses2
Proses3
Gambar 6.3. Flowchart if then bentuk tiga kasus
32
Sahyar Econophysics Unimed Medan
Keterangan Gambar 6.3: proses1 dikerjakan jika kondisi 1 benar, proses2 dikerjakan jika kondisi 2 benar, proses 3 dikerjakan jika kondisi 1 dan 2 salah.
C.Contoh program sederhana. 1.Bentuk keputusan satu kasus Contoh1 clc; a=5; b=3; if a>b disp('Sukses'); end Output program: Sukses (karena a>b kondisi benar) Contoh2 clc; a=5; b=10; if a>b disp('Sukses'); end Output program: Kosong/blank, (karena a>b salah) 2.Bentuk keputusan dua kasus clc; a=5; b=10; if a>b disp('Sukses'); else disp('Bahagia'); end output program: Bahagia (karena a>b salah maka yang tampil kasus kedua)
33
Sahyar Econophysics Unimed Medan
3.Bentuk keputusan tiga kasus clc; a=10; b=10; if a>b disp('Sukses'); elseif ab salah; a
D.Contoh Program aplikasi Contoh 1. Program menentukan akar-akar persamaan kuadrat. 1. Defenisi masalah Menentukan akar-akar persamaan kuadrat, a X2 + b X + c = 0 Input koef : a, b, c Output : akar-akar persamaan kuadrat 2. Struktur data Unit Coefficient a Coefficient b Coefficient c Akar-akar real Akar-akar kompleks
Variabel a b c x1 dan x2 x1c dan x2c
Type of data Real/Numeric Real/Numeric Real/Numeric Real/Numeric Real/Numeric
3. Algoritma program a. Start b. Input data Input a Input b Input c c. Proses. d b^2 – 4*a*c If d> 0 then x1(-b + sqrt(d))/(2*a); x2(-b - sqrt(d))/(2*a); elseif d=0 x1(-b)/(2*a);
34
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Output data Output data
x2x1; else x1c(-b + sqrt(d))/(2*a); x2c(-b - sqrt(d))/(2*a); end d. Output data if d>0 then write ('Nilai X1 <> X2 dan real'); write(x1); write(x2); elseif d=0 write('Nilai X1 = X2 dan real'); write(x1); write (x2); else write('Nilai X1 <> X2 dan kompleks'); write(x1c); write(x2c); end if e. Stop 4. Coding dalam Matlab. %Input clc; a=input('Coef a= '); b=input('Coef b= '); c=input('Coef c= '); %Process d=b^2 - 4*a*c; if d>0 x1=(-b + sqrt(d))/(2*a); x2=(-b - sqrt(d))/(2*a); elseif d==0 x1=(-b)/(2*a); x2=x1; else x1c=(-b + sqrt(d))/(2*a); x2c=(-b - sqrt(d))/(2*a);
35
Sahyar Econophysics Unimed Medan
end %Output if d>0 disp('Nilai X1 <> X2 dan real'); fprintf('x1 =%5.2f \n',x1); fprintf('x2 =%5.2f \n',x2); elseif d==0 disp('Nilai X1 = X2 dan real'); fprintf('x1 =X2=%5.2f \n',x1); else disp('Nilai X1 <> X2 dan kompleks'); fprintf('x1 = ');disp(x1c); fprintf('x2 = ');disp(x2c); end 5. Testing and Verification. Pengujian pertama Coef a= 1 Coef b= 7 Coef c= 12 Nilai X1 <> X2 dan real x1 =-3.00 x2 =-4.00 Pengujian kedua Coef a= 1 Coef b= -6 Coef c= 9 Nilai X1 = X2 dan real x1 =X2= 3.00 pengujan ketiga Coef a= 5 Coef b= 3 Coef c= 2 Nilai X1 <> X2 and complex x1 = -0.3000 + 0.5568i x2 = -0.3000 - 0.5568i Contoh .2. Program konversi nilai angka mejadi nilai huruf
36
Sahyar Econophysics Unimed Medan
1. Defenisi masalah Konversi data skor menjadi nilai huruf. Input data: data skor Data Output: nilai huruf. No 1 2 3 4 2. Struktur data Unit Nama Skor Nilai huruf
Skor 90 - 100 80 - 89 70 - 79 0- 69
Variabel nm sk nh
Nilai huruf A (Sangat kompeten) B (Kompeten ) C (Cukup kompeten) E (Tidak kompeten)
Type of data Text Real/Numerik Text
3. Algorithm program a. Start b. Input data Input nm Input sk c. Process if sk>=90 then nh'A (sangat kompeten )'; elseif sk>=80 then nh'B (Kompeten )'; elseif sc>=70 then nh'C (Cukup kompeten)'; else nh'E (Tidak kompeten )'; end if d. Output data Write (nm); Write (sk); Write(nh); e. Stop 4. Coding In MatLab %Input skor
37
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
sk=input(' Input Skor anda = '); nm=input(' Input nama anda =','s'); %Process if sk>=90 nh='A (Sangat kompeten )'; elseif sk>=80 nh ='B (Kompeten )'; elseif sk>=70 nh='C (Cukup kompeten )'; else nh ='E (Tidak kompeten )'; end %Output disp(['Nama anda = ',nm]); fprintf('Skor ujian anda =%8.2f\n',sc); disp(['Hasil =',nh]); 5. Testing and Verification Pengujian 1. Input Skor anda = 68 Input Nama anda =Syarifuddin Nama anda = Syarifuddin Skor ujian anda = 68.00 Hasil =E (Tidak kompeten) Pengujian 2. Input Skor anda = 75 Input Nama anda = Andina Nama anda = Andina Skor ujian anda = 75.00 Hasil = C (Cukup kompeten) Pengujian 3. Input Skor anda = 90 Input Nama anda = Tatang Nama anda = Tatang Skor ujian anda = 90.00 Hasil =A (Sangat kompeten)
38
Sahyar Econophysics Unimed Medan
E.Latihan 1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: c P a b2 bd 2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: c a P b2 bd d 3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: P a b2 c - d 4. Rancang program komputer untuk menentukan besarnya gaya Coulomb dari dua muatan dengan jarak r. 5. Rancang program komputer untuk menentukan besarnya kuat medan listrik dan potensial listrik oleh muatan pada jarak tertentu dari muatan.
39
Sahyar Econophysics Unimed Medan
BAB 7 PROGRAM DENGAN INSTRUKSI PILIHAN CASE A.Tujuan Pembelajaran. 1. Menyusun program komputer dengan instruksi pilihan case.
B.Teori Instruksi case digunakan sebagai instruksi pilihan yang dipakai untuk memilih suatu proses dari beberapa kemungkinan proses berdasarkan nilai dari variabel kontrol. Intruksi yang sering digunakan untuk logika pengambilan keputusan atau pilihan case adalah: Case variabel Nilai_1 : proses1; Nilai_2 : proses2; Nilai_3 : proses3; ... Nilai_n : prosesn; End case Keterangan: Kemungkinan atau proses yang akan dikerjakan ada n pilihan, proses1, proses2 sampai prosesn. Jika nilai variabel 1 maka akan dikerjakan proses1, jika variabel bernilai 2 maka akan dikerjakan proses2 dan sterusnya sampai kemungkinan variabel bernilai n.
C.Contoh Program sederhana Coding: clc; disp('Pilihan'); disp('1.Jeruk;2.Mangga;3.Sirsak'); p=input('Pilihan : '); switch p case 1 disp('Pilihan anda:Jeruk'); case 2 disp('Pilihan anda:Mangga'); case 3 disp('Pilihan anda:Sirsak'); end
40
Sahyar Econophysics Unimed Medan
Output program: Pilihan 1.Jeruk;2.Mangga;3.Sirsak Pilihan : 3 Pilihan anda:Sirsak
D.Contoh Program aplikasi Program : Penentuan gaji berdasar golongan. 1. Defenisi Masalah
Penentuan gaji berdasar golongan. Golongan
Gaji
1
2.500.000
2
3.500.000
3
4.500.000
4
5.500.000
2. Struktur Data Unit Nama Golongan Gaji
Variabel nm gol gaji
Type of data Text Numeric Numeric
3. Algoritma program a. b.
Start Input data Input nm Input gol c. Process Case gol Case 1 Gaji2500000; Case 2 Gaji 3500000; Case 3 Gaji 4500000;
41
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
Case 4 Gaji 5500000; end d. Output data Write (nm); Write (gol); Write(gaji); e. Stop 4. Coding In MatLab %Input Golongan nm=input(' Input nama anda =','s'); gol =input(' Golongan anda = '); %Process switch gol case 1 gaji= 2500000; case 2 gaji =3500000; case 3 gaji =4500000; case 4 gaji =5500000; end %Output disp(['Nama anda = ',nm]); fprintf('\n Golongan anda =%4.0f',gol); fprintf(‘\n Gaji anda = Rp %9.2f’,gaji);
5. Testing and Verification Pengujian 1 Input Nama Anda = Ali Input Golongan Anda = 1 Nama anda = Ali Golongan anda = 1 Gaji anda = Rp 2500000.00 Pengujian 2 Input Nama Anda = Badu
42
Sahyar Econophysics Unimed Medan
Input Golongan Anda = 2 Nama anda = Badu Golongan anda = 2 Gaji anda = Rp 3500000.00 Pengujian 3 Input Nama Anda = Syarif Input Golongan Anda = 3 Nama anda = Syarif Golongan anda = 3 Gaji anda = Rp 4500000.00
E.Latihan 1. Rancanglah program komputer menu dengan pilihan menu sebagai berikut: a. Pilihan=1, program akan menghitung luas segitiga b. Pilihan=2, program akan menghitung luas persegi panjang. c. Pilihan=3, pogram akan menghitung luas trapesium. d. Pilihan=4, program selesai. 2. Rancanglah program komputer menu dengan pilihan menu sebagai berikut: a. Pilihan=1, program akan menghitung usaha b. Pilihan=2, program akan menghitung energi kinetik. c. Pilihan=3, pogram akan menghitung energi potensial pegas. d. Pilihan=4, program selesai. 3. Rancanglah program komputer menu dengan pilihan menu sebagai berikut: a. Pilihan=1, program akan menghitung gaji pegawai tetap. Komponen gaji: gaji pokok, tunjangan, potongan. b. Pilihan=2, program akan menghitung gaji pegawai honor. Komponen gaji: gaji pokok, gaji lembur, potongan. c. Pilihan=3, pogram akan menghitung gaji pegawai borongan. Komponen gaji: tarif borongan, jumlah borongan, potongan. d. Pilihan=4, program selesai.
43
Sahyar Econophysics Unimed Medan
BAB 8 PROGRAM DENGAN INSTRUKSI PERULANGAN FOR A.Tujuan Pembelajaran 1. Menyusun program komputer dengan instruksi perulangan for
B.Teori Instruksi perulangan for digunakan untuk mengulang suatu proses dengan menggunakan variabel kendali dengan batas nilai awal dan nilai akhir variabel. Jumlah perulangan dengan menggunkan kontrol for dapat diketahui. Karakteristik perulangan for: Proses perulangan stop jika nilai variabel kendali telah mencapai batas nilai akhir. Nilai variabel kedali berubah secara teratur. Jumlah perulangan dapat diketahui. Flowchart Perulangan For Var = awal
Var<= akhir ? T F
Instruksi-instruksi
Var = var + n
Gambar 8.1. Flowchart For
44
Sahyar Econophysics Unimed Medan
Bentuk umum for (var = awal to akhir step n ) ………………. Instruksi-instruksi ……………….. endfor Keterangan : 1. 2. 3. 4.
Variabel perulangan (var ) harus bertipe dasar (integer, real, atau char ) Nilai awal harus lebih kecil dari akhir bila n > 0 ( positif ) Nilai awal harus lebih besar dari akhir bila n <0 ( negatif ) Mula-mula variabel var bernilai awal, kemudian setiap satu kali putaran maka nilai var bertambah sebesar n. 5. Perulangan akan berhenti apabila nilai var sudah mencapai akhir.
C.Contoh program sederhana 1.Perulangan satu loop Contoh 1. clc; for k=1:5 disp([num2str(k),'.Sukses']); end output program: 1.Sukses 2.Sukses 3.Sukses 4.Sukses 5.Sukses Contoh 2. clc; for k=1:2:15 disp([num2str(k),'.Sukses']); end output program: 1.Sukses 3.Sukses 5.Sukses 7.Sukses
45
Sahyar Econophysics Unimed Medan
9.Sukses 11.Sukses 13.Sukses 15.Sukses Contoh 3. clc; for k=20:-3:0 disp([num2str(k),'.Sukses']); end output program: 20.Sukses 17.Sukses 14.Sukses 11.Sukses 8.Sukses 5.Sukses 2.Sukses 2.Perulangan berlapis (dua loop) clc; for k=1:5; disp(['Nilai k= ',num2str(k)]); for j=2:3:10; disp([num2str(j),'.Sukses']); end end output program: Nilai k= 1 2.Sukses 5.Sukses 8.Sukses Nilai k= 2 2.Sukses 5.Sukses 8.Sukses Nilai k= 3 2.Sukses 5.Sukses 8.Sukses
46
Sahyar Econophysics Unimed Medan
Nilai k= 4 2.Sukses 5.Sukses 8.Sukses Nilai k= 5 2.Sukses 5.Sukses 8.Sukses
D. Contoh program aplikasi. Contoh Program 1: Menentukan suku-suku dan jumlah deret. 1. Defenisi masalah Menentukan suku-suku deret. Menentukan total suku-suku deret 2. Struktur Data Unit Suku awal Beda Banyak suku suku Total
Variabel a b n s total
Type of data Numeric Numeric Numeric Numeric Numeric
3. Algorithm program a. Start b. Input data Input a Input b Input n c. Process Total0; sa; for k1:n totaltotal+s; cetak(s) ss+b end d. Output data cetak(total) e. Stop
47
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Output data Output data
4. Coding %Deret Aritmatika %Input a=input('Suku awal ='); b=input('Beda suku ='); n=input('Banyak suku ='); %Process disp('Suku-suku deret '); total=0; s=a; for k= 1:n total=total+s; disp(['Suku ',num2str(k),'= ',num2str(s)]); s=s+b; end %Output disp(['Total = ',num2str(total)]); 5. Testing and Verification Pengujian 1 Suku awal =5 Beda suku = 4 Banyak suku =5 Suku 1= 5 Suku 2= 9 Suku 3= 13 Suku 4= 17 Suku 5= 21 Total = 65 Pengujian 2. Suku awal =6 Beda suku =-3 Banyak suku =5 Suku 1= 6 Suku 2= 3
48
Sahyar Econophysics Unimed Medan
Suku 3= 0 Suku 4= -3 Suku 5= -6 Total = 0 Pengujian 3 Suku awal =10 Beda suku =0 Banyak suku =5 Suku 1= 10 Suku 2= 10 Suku 3= 10 Suku 4= 10 Suku 5= 10 Total = 50
E.Latihan 1. Rancang program komputer untuk menampilkan suku deret dan jumlah total suku deret ke n untuk deret: 3, 5, 8, 12, 17,... 2. Rancang program komputer untuk menampilkan suku deret dan jumlah total suku deret ke n untuk deret: 4, 7, 17, 20, 30, 33,... 3. Rancang program komputer untuk menampilkan nilai variasi kecepatan dan energi kinetik Ek= ½ m v2 dalam bentuk tabel. Jika diketahui: massa konstan, jumlah variasi n, interval kecepatan d, dan kecepatan awal v =0. 4. Rancang program komputer untuk menampilkan variasi nilai periode waktu, modal awal, besar bunga, dan modal akhir dalam bentuk tabel. Jika diketahui rumus bunga majemuk: M = Mo (1 + i)n. M= modal akhir ; Mo=modal awal, i=bunga tiap periode dalam pesen, dan n=periode.
49
Sahyar Econophysics Unimed Medan
BAB 9 PROGRAM DENGAN INSTRUKSI PERULANGAN WHILE A.Tujuan Pembelajaran 1. Menyusun program komputer menggunakan instruksi perulangan while.
B.Teori Instruksi perulangan while digunakan untuk mengulang suatu proses dengan cara pengecekan nilai kondisi (benar atau salah), selagi kondisi benar maka proses perulangan akan tetap berjalan dan stop jika kondisi salah. Karakteristik perulangan while : Kondisi bertipe boolean. Proses perulangan akan berjalan selagi kondisi benar dan akan stop jika kondisi salah. Nilai variabel kondisi dikendalikan pada proses perulangan. Jumlah perulangan tidak penting diketahui. Flowchart perulangan While
kondisi
T
F
Instruksi-instruksi
Gambar 9.1. Flowchart While While (kondisi) do ........................... Instruksi-instruksi ........................... End while
50
Sahyar Econophysics Unimed Medan
Keterangan : 1. Instruksi-instruksi akan diulangi selagi kondisi benar, dan ketika kondisi salah maka perulangan berhenti. 2. Intruksi-instruksi dikerjakan setelah kondisi diperikasa. 3. Harus ada satu instruksi yang mendahului while agar kondisi terpenuhi sehingga perulangan bisa berlangsung. 4. Harus ada instruksi di antara instruksi yang diulang sehingga pada akhirnya dapat mengubah kondisi menjadi tidak terpenuhi (salah) sehingga perulangan dpat berhenti. 5. Apabila di awal pelaksanaan kondisi tidak terpenuhi (salah) maka instruksi-instruksi tidak dikerjakan sama sekali.
C.Contoh program sederhana Contoh 1 clc; a=10; b=0; while a>b disp([num2str(b),'.Sukses']); b=b+2; end Output program: 0.Sukses 2.Sukses 4.Sukses 6.Sukses 8.Sukses Proses perulangan berhenti ketika nilai b=12
D. Contoh aplikasi program. Contoh Program 1: 1. Defenisi masalah Menentukan variasi kecepatan gerak lurus berubah beraturan dengan variasi waktu. 2. Struktur Data Unit Kecepatan awal Percepatan Lama pengamatan
51
Variabel vo a lp
Type of data Numeric Numeric Numeric
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data
Interval waktu Waktu Kecepatan
d t v
Numeric Numeric Numeric
3. Algorithm program a. Start b. Input data Input vo Input a Input lp Input d c. Process and output t0; while t <= lp vvo+ a*t; cetak (k,t,v) tt+d; end d. Stop 4. Coding %Tabel Kecepatan glbb %Input clc; vo =input('Kecepatan awal ='); a =input('Percepatan ='); lp =input ('Lama pengamatan ='); d =input ('Interval waktu = '); %Process disp('Nomor Waktu Kecepatan '); disp(‘---------------------------------------‘); t=0; k=1; while t<=lp v=vo+ a*t; fprintf('\n %4.0f %8.2f %8.2f ',k,t,v); t=t+d; k=k+1; end
52
Sahyar Econophysics Unimed Medan
Input data Output data Output data
5. Testing and Verification Pengujian 1 Kecepatan awal =10 Percepatan =2 Lama pengamatan =4 Interval waktu = 0.5 Nomor Waktu Kecepatan --------------------------------------1 0.00 10.00 2 0.50 11.00 3 1.00 12.00 4 1.50 13.00 5 2.00 14.00 6 2.50 15.00 7 3.00 16.00 8 3.50 17.00 9 4.00 18.00 Pengujian 2. Kecepatan awal =20 Percepatan =-2 Lama pengamatan =3 Interval waktu = 0.4 Nomor Waktu Kecepatan --------------------------------------1 0.00 20.00 2 0.40 19.20 3 0.80 18.40 4 1.20 17.60 5 1.60 16.80 6 2.00 16.00 7 2.40 15.20 8 2.80 14.40 Pengujian 3. Kecepatan awal =2.8 Percepatan =1.5 Lama pengamatan =6
53
Sahyar Econophysics Unimed Medan
Interval waktu = 1 Nomor Waktu Kecepatan --------------------------------------1 0.00 2.80 2 1.00 4.30 3 2.00 5.80 4 3.00 7.30 5 4.00 8.80 6 5.00 10.30 7 6.00 11.80
Contoh Program 2 1. Defenisi masalah Mengulang Esekusi progam komputer 2. Input and output data Unit Jawab Program
Variabel jb
Type of data Text
3. Algorithm program a. b.
Start Input data Input jb c. Process and output jb’y’ while (jb=’y’) or (jb=’Y’) do Computer program end d. Stop 4. Coding %Deret Aritmatik jb='y'; while (jb=='y')|(jb=='Y') clc; a=input('Suku awal =');
54
Sahyar Econophysics Unimed Medan
Keterangan Input data Program komputer yang akan diulang
b=input('Beda suku ='); n=input('Banyak suku ='); disp('Suku-suku deret '); total=0; s=a; for k= 1:n total=total+s; disp(['Suku ',num2str(k),'= ',num2str(s)]); s=s+d; end %Output disp(['Total = ',num2str(total)]); jb=input('Dilanjutkan ? y/n = ','s'); end
5. Testing and Verification Pengujian 1 Suku awal =3 Beda suku =3 Banyak suku =4 Suku-suku deret Suku 1= 3 Suku 2= 4 Suku 3= 5 Suku 4= 6 Total = 18 Dilanjutkan ? y/n = Pengujian 2 Suku awal =4 Beda suku =12 Banyak suku =5 Suku-suku deret Suku 1= 4 Suku 2= 5 Suku 3= 6 Suku 4= 7
55
Sahyar Econophysics Unimed Medan
Suku 5= 8 Total = 30 Dilanjutkan ? y/n =
E.Latihan 1. Rancang program komputer untuk menampilkan variasi nilai x dan y dalam bentuk tabel dari rumus : y = a x3 + bx. Diketahui : a, b: konstan; interval x: d, batas x: x1 sampai x2. 2. Rancang progam komputer untuk menampilkan variasi jarak tempuh glbb dalam bentuk tabel. Jika diketahui: lama pengamatan t dan interval waktu d, percepatan a, dan kecepatan awal vo 3. Rancang program komputer untuk menampilkan suku deret dan jumlah total suku deret ke n untuk deret: 4, 6, 9, 13, 18,.... Program akan berhenti setelah jumlah total suku >300.
56
Sahyar Econophysics Unimed Medan
BAB 10 FUNGSI A.Tujuan Pembelajaran 1. Menyusun program komputer dengan menggunakan fungsi buatan.
B. Teori. Fungsi adalah bagian dari program yang dibuat terpisah untuk mengerjakan fungsi tertentu, sehingga menghasilkan satu nilai untuk dikembalikan ke program utama. Dalam MatLab fungsi merupakan m-file yang menerima argumen input dan menghasilkan argumen output. Nama fungsi matlab secara default sama dengan nama variabelnya. Deklarasi Fungsi dalam MatLAb. function hasil = nama (x,y,z) Keterangan: function = keyword (kata kunci Matlab) hasil = argumen output. nama = nama fungsi. x,y,z = argumen fungsi.
C.Contoh Sederhana Contoh 1 function hasil=luas3(a,t) hasil= 0.5*a*t; fungsi ini direkam dengan nama file luas3 jika fungsi dipanggil melalui program atau command window dengan menggunakan nama file luas3 dan argumen a dan t, maka hasil akan ditampilkan contoh eksekusi: » luas3(10,4) ans = 20 Keteranagan: nilai 10 dicopy ke a; nilai 4 dicopy ke t contoh 2: function [x1,x2]=akar(a,b,c) x1=(-b+sqrt(b^2-4*a*c))/(2*a); x2=(-b-sqrt(b^2-4*a*c))/(2*a);
57
Sahyar Econophysics Unimed Medan
output program: » [x1,x2]=akar(1,5,6) x1 = -2 x2 = -3 Koefisien a mengkopy nilai 1, koef b mengkopy nilai 5 dan koef c mengkopy nilai 6.
D.Contoh aplikasi program. Contoh Program 1: Program Untuk menghitung Energi Kinetik dengan fungsi. Fungsi Energi kinetik function energi=ek(m,v) energi=0.5*m*v^2; Fungsi ini akan direkam dengan nama file: ek 1. Definisi masalah Menentukan Energi Kinetik Rumus: Ek = 0.5 * m*v2 Data input: kecepatan, massa Data output: energi kinetik. 2. Struktur Data Unit /Besaran Kecepatan Massa Energy Kinetik
Variabel v m ek
Type data Real/Numeric Real/Numeric Real/Numeric
3.Algoritma program
58
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
Start
v, m
Fungsi ek
ke
Stop Gambar 10.1. Flowchart menggunakan fungsi 4. Coding in MatLab %Input Clc; v=input('Kecepatan = '); m=input('Massa = '); %process energi =ek(m,v); %Output fprintf('\n Energy Kinetik =%8.2f ',energi );disp([' joule ']); 5. Testing and Verification Pengujian pertama Kecepatan = 10 Massa = 2.5 Energy Kinetik = 125.00 joule Pengujian kedua Kecepatan = 2.5 Massa = 15
59
Sahyar Econophysics Unimed Medan
Energy Kinetik = 46.88 joule Pengujian ketiga Kecepatan = 125 Massa = 23 Kinetic Energy=179687.50 joule Contoh Program 2: Menghitung akar-akar persamaan kuadrat. Fungsi menghitung akar-akar persamaan kuadrat. function [x1,x2]=akar(a,b,c); x1=(-b+sqrt(b^2-4*a*c))/(2*a); x2=(-b-sqrt(b^2-4*a*c))/(2*a); fungsi ini direkam dengan nama file: akar. 1. Defenisi masalah Menentukan akar-akar persamaan kuadrat. a X2 + b X + c = 0 2. Input and output data Unit Coefficient a Coefficient b Coefficient c Akar-akar real Akar-akar kompleks
Variabel A B C x1 , x2 x1k, x2k
Type of data Numeric Numeric Numeric Numeric Kompleks
3. Algorithm program a. Start b. Input data Input a Input b Input c c. Process D b^2 – 4*a*c If d> 0 then [x1,x2]akar(a,b,c); elseif d=0 [x1,x2]akar(a,b,c); else
60
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Output data Output data
[x1k,x2k]akar(a,b,c); end if d. Output data if d>0 then write ('Nilai x1 <> x2 dan real'); write(x1); write(x2); elseif d=0 write('Nilai x1 = x2 dan real'); write(x1); write (x2); else write('Nilai x1 <> x2 dan kompleks '); write(x1k); write(x2k); end if e. Stop 4. Coding in Matlab. %Input clc; a=input('Coef a= '); b=input('Coef b= '); c=input('Coef c= '); %Process d=b.^2 - 4*a*c; if d>0 [x1,x2]=akar(a,b,c); elseif d==0 [x1,x2]=akar(a,b,c); else [x1k,x2k]=akar(a,b,c); end %Output if d>0 disp('value X1 <> X2 and real'); fprintf('\n x1 =%5.2f ',x1); fprintf('\n x2 =%5.2f ',x2); elseif d==0
61
Sahyar Econophysics Unimed Medan
disp('value X1 = X2 and real'); fprintf('\n x1 =X2=%5.2f ',x1); else disp('value X1 <> X2 and complex'); fprintf('x1 = ');disp(x1k); fprintf('x2 = ');disp(x2k); end 5.Testing and Verification. Pengujian pertama Coef a= 1 Coef b= 7 Coef c= 12 value X1 <> X2 and real x1 =-3.00 x2 =-4.00 Pengujian kedua Coef a= 1 Coef b= -6 Coef c= 9 value X1 = X2 and real x1 =X2= 3.00 Pengujan ketiga Coef a= 5 Coef b= 3 Coef c= 2 value X1 <> X2 and complex x1 = -0.3000 + 0.5568i x2 = -0.3000 - 0.5568i
E.Latihan Soal-soal berikut telah dikerjakan pada bab sebelumnya namun belum menggunakan fungsi. Pada bab ini anda diminta mengerjakannya dengan menggnakan fungsi. 1. Susun program komputer dengan menggunakan fungsi untuk menghitung jarak tempuh gerak lurus beraturan.
62
Sahyar Econophysics Unimed Medan
2. Susun program komputer dengan menggunakan fungsi untuk menghitung luas permukaan selinder. 3. Susun program komputer dengan menggunakan fungsi untuk menghitung energi kinetik dan potensial pegas. 4. Susun program komputer dengan menggunakan fungsi untuk menghitung c rumus berikut: P a b 2 bd 5. Susun program komputer dengan menggunakan fungsi untuk menghitung c a rumus berikut:: P b 2 bd d
63
Sahyar Econophysics Unimed Medan
BAB 11 VARIABEL ARRAY SATU DIMENSI A.Tujuan pembelajaran 1. Menyusun program komputer menggunakan array dimensi satu
B.Teori. Variabel array dimensi satu adalah variabel yang mempunyai satu indeks. Variabel array dimesi satu digunakan untuk menampung sejumlah data yang tipenya sama. Contoh pemakaian variabel array dimensi satu: untuk menampung sejumlah data skor siswa, data gaji, data nama dan lainnya. Input data array dengan Matlab. Cara 1: a=input( ‘a = ‘); a= [12 13 7 6]; Input data menunjukan: a(1)= 12; a(2)=13; a(3)=7; a(4)=6; cara 2: for k = 1:n
% n=banyak data
fprintf('Data:%3.0f',k);
a(k)=input(‘Input data : ‘); end Outut data array dengan Matlab. Cara 1: %menampilkan data variabel a a Cara 2: for k = 1:n fprintf('\n Data ke: %3.0f, = %8.2f\n',k,a(k)); end
64
Sahyar Econophysics Unimed Medan
Tabel 11.1. Operasi pada variabel array dimensi satu. No 1 2 3 4 5 6 7
Operasi Penjumlahan dengan sekalar a=array; k=sekalar Perkalian dengan sekalar a=array; k=sekalar Penjumlahan a= array, b=array Perkalian a= array, b=array Pembagian a= array, b=array Pemangkatan a= array, b=array, k=sekalar Pemangkatan a= array, k=sekalar
Hasil a+k=[a(1)+k, a(2)+k,...a(n)+k] a*k=[a(1)*k, a(2)*k,...a(n)*k] a+b=[a(1)+b(1), a(2)+b(2),...a(n)+b(n)] a.*b=[a(1)*b(1), a(2)*b(2),...a(n)*b(n)] a./b=[a(1)/b(1), a(2)/b(2),...a(n)/b(n)] a.^b=[a(1)^b(1), a(2)^b(2),...a(n)^b(n)] a.^k=[a(1)^k, a(2)^k,...a(n)^k]
C.Contoh operasi array dimensi satu 1.Penjumlahan dengan sekalar » a=[3 5 6 7 8 10] a= 3 5 6 7 8 10 » k=5; » a+k ans = 8 10 11 12 13 15 2.Perkalian dengan sekalar » a=[3 5 6 7 8 10] a= 3 5 6 7 8 10 » k=5; » a*k ans = 15 25 30 35 40 50 3.Pemangkatan dengan sekalar » a=[3 5 6 7 8 10] a= 3 5 6 7 8 10 » k=2; » a.^k
65
Sahyar Econophysics Unimed Medan
ans = 9 25
36
49
64 100
4.Penjumlahan dua array » a=[3 7 5 8]; » b=[2 1 5 2]; » a+b ans = 5 8 10
10
5.Pekalian dua array » a=[3 7 5 8]; » b=[2 1 5 2]; » a.*b ans = 6 7 25
16
6.Pembagian dua array » a=[3 7 5 8]; » b=[2 1 5 2]; » a./b ans = 1.50007.0000 1.0000 7.Pemangkatan dua array » a=[3 7 5 8]; » b=[2 1 5 2]; » a.^b ans = 9 7 3125
4.0000
64
8.Data array terstruktur » x=1:2:10 x= 1 3 5 » x(4) ans = 7
7
9
» p=0:0.5:6
66
Sahyar Econophysics Unimed Medan
p= Columns 1 through 7 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 Columns 8 through 13 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 » p(10) ans = 4.5000
D. Contoh aplikasi program. Contoh 1. 1. Defenisi masalah Menentukan : total , rata-rata dan standard deviasi n data. 2. Struktur data Unit Banyak data Data Total Rata2 Standar deviasi
Variabel n d total av ds
Type of data Numeric Numeric Numeric Numeric Numeric
3. Algorithm program a. Start b. Input data Input n for k1:n input d(k) end c. Process total0; for k1:n totaltotal+d(k); end avtotal/n; totalav0; for k1:n totalavtotalav+(d(k)-av)^2;
67
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data Output data Output data
end dssqrt(totalav/(n-1)); d. Output data Write(total) Write (av) Write(ds) e. Stop 4. Coding %Deviation standard Value %Input clc; n=input('Banyak data ='); for k=1:n fprintf('Data:%3.0f',k); d(k)=input(' Input data= '); end %Process total=0; for k=1:n total=total+d(k); end av=total/n; totalav=0; for k=1:n totalav=totalav+(d(k)-av)^2; end ds=sqrt(totalav/(n-1)); %Output fprintf('\n Total = %8.2f',total); fprintf('\n Average = %8.2f\n',av); fprintf('\n Deviation standard = %8.2f\n',ds); 5. Testing and Verification Testing 1 Data: 1 Input data= 10 Data: 2 Input data= 20
68
Sahyar Econophysics Unimed Medan
Data: 3 Input data= 30 Data: 4 Input data= 40 Data: 5 Input data= 20 Total = 120.00 Average = 24.00 deviation standard = 11.40 Testing 2 Data: 1 Input data= 10 Data: 2 Input data= 10 Data: 3 Input data= 10 Data: 4 Input data= 10 Total = 40.00 Average = 10.00 deviation standard = 0.00 Testing 3. Data: 1 Input data= -10 Data: 2 Input data= 30 Data: 3 Input data= -40 Data: 4 Input data= 20 Data: 5 Input data= 80 Data: 6 Input data= -30 Total = 50.00 Average = 8.33 deviation standard = 44.46
E.Latihan 1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: P X i Xi2 X 2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: P XiYi ( X i Y ) 3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut: P (XiYi )2 Yi Y 4. Rancang program komputer untuk menampilkan tabel gaji pegawai yang terdiri dari kolom : nomor, nama, gaji pokok, potongan dan gaji bersih. Pada baris terakhir tampilkan gaji total seluruh pegawai. 5. Rancang program komputer untuk menentukan besar korelasi product moment.
69
Sahyar Econophysics Unimed Medan
BAB 12 VARIABEL ARRAY DUA DIMENSI (MATRIKS) A.Tujuan pembelajaran 1. Menyusun program komputer dengan menggunakan fungsi standar MatLab untuk matriks. 2. Penyelesaian sistem persamaan linear
B.Teori. Variabel array dimensi dua adalah variabel yang mempunyai dua indeks. Indeks pertama menunjukan posisi baris dan indeks kedua menunjukkan posisi kolom. Variabel array dimesi dua digunakan untuk menampung data matriks dengan tipe data yang sama untuk seluruh elemen. Input data array dimensi dua dengan Matlab. Cara 1: a=input( ‘a = ‘); a= [12 13; 7 6; 4 9]; Input data menunjukkan: a(1,1)= 12; a(1,2)=13; a(2,1)=7; a(2,2)=6; a(3,1)=4; a(3,2)=9 cara 2: for b = 1:m for k= 1:n fprintf('Data:%3.0f, %3.0f ',b, k);
a(b,k)=input(‘Input data : ‘); end end Outut data array dimensi dua dengan Matlab. Cara 1: a (menampilkan matriks a) Cara 2:
for b = 1:n for k = 1:m
70
Sahyar Econophysics Unimed Medan
fprintf('\n Data ke: %3.0f, , %3.0f,= %8.2f\n',b,k,a(b,k));
end end Tabel 12.1. Operasi dan fungsi standar pada matriks. No
Operasi
1 2
Penjumlahan dua matriks Perkalian dua matriks
3
Perkalian elemen-elemen dua matriks Invers matriks persegi a Nilai determinan matriks persegi a Nilai eigen matriks persegi a Transpose matriks a Menentukan jumlah kolom matriks a Menentukan orde matriks a
3 4 5 6
7
Bentuk coding a+b a*b a.*b
Orde kedua matriks sama Baris matriks pertama = kolom matriks kedua Orde kedua matriks sama
inv(a) det(a)
Matriks bujur sangkar Matriks bujur sangkar
eig(a) a’ rank(a)
Umum Umum Umum
size(a)
Umum
C.Contoh operasi matriks 1.Invers matriks. » a=[3 4 6;2 5 7;3 2 1] a= 3 4 6 2 5 7 3 2 1 » inv(a) ans = 0.5294 -0.4706 0.1176 -1.1176 0.8824 0.5294 0.6471 -0.3529 -0.4118 2.Determinan matriks » a=[3 4 6;2 5 7;3 2 1] a= 3 4 6 2 5 7 3 2 1 » det(a)
71
Syarat
Sahyar Econophysics Unimed Medan
ans = -17 3.Transpose matriks » a=[3 4 6;2 5 7;3 2 1] a= 3 4 6 2 5 7 3 2 1 » a' ans = 3 2 3 4 5 2 6 7 1 4.Nilai eigen matriks » a=[3 4 6;2 5 7;3 2 1] a= 3 4 6 2 5 7 3 2 1 » eig(a) ans = 10.4688 0.7364 -2.2052 5.Perkalian dua matriks » a=[3 4 5;7 8 4;2 5 1]; » b=[2 4 7;2 6 3;3 2 4]; » a.*b ans = 6 16 35 14 48 12 6 10 4 » a*b ans = 29 46 53 42 84 89
72
Sahyar Econophysics Unimed Medan
17
40
33
6.Penjumlahan dua matriks » a=[3 4 5;7 8 4;2 5 1]; » b=[2 4 7;2 6 3;3 2 4]; » a+b ans = 5 8 12 9 14 7 5 7 5 7.Matriks identitas » eye(4) %matriks identitas 4 x 4 ans = 1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
8.Matriks nol » zeros(3,4) ans = 0 0 0 0 0 0 0 0 0 » zeros(3)
0 0 0
ans = 0 0 0
0 0 0
0 0 0
9.Matriks satu » ones(3) ans = 1
73
1
1 Sahyar Econophysics Unimed Medan
1 1
1 1
1 1
D.Penyelesaian Sistem Persamaan Linear Bentuk sistem persamaan linear tiga variabel
a x1 b x 2 c x 3 d e x1 f x 2 g x 3 h i x1 j x 2 k x 3 l a b c x 1 d e f g x h 2 i j k x 3 l P X Q XP\Q Keterangan: P=matriks orde 3 x 3; Q dan X orde 3 x1, dengan menggunakan fasilitas Matlab nilai-nilai variabel xd dapat dihitung dengan rumus:X=P\Q Nilai X adalah nilai variabel x1, x2 dan x3 dalam bentuk matriks
E. Contoh aplikasi program. CONTOH 1: 1. Defenisi masalah. Menjumlah dan mengalikan matriks. 2.Struktur data Unit Matriks a Matriks b Penjumlahan Perkalian
Variabel a b c=a+b d=a*b
Type of data Numeric/matriks Numeric/matriks Numeric /matriks Numeric /matriks
3. Algorithm program a. Start
74
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data Output data
b.
Input data Baca( a) Baca (b) c. Process ca+b da*b d. Tampil a b c d e. Stop 4. Coding %Input data Matriks clc; a=input('Input elemen matriks a ='); b=input('Input elemen matriks b=’); %proses; c=a+b; d=a*b; %output disp('Matriks a'); a disp(‘Matriks b’); b disp('Matriks c = a+b '); c disp(‘Matriks d= a*b’); d 5. Testing and Verification Input elemen matriks a =[3 5 6;7 8 9;3 4 8] Input elemen matriks b=[2 3 5;4 6 9;2 3 1] Matriks a a= 3
75
5
6 Sahyar Econophysics Unimed Medan
7 3
8 4
9 8
Matriks b b= 2 4 2
3 6 3
5 9 1
Matriks c = a+b c= 5 11 5
8 11 14 18 7 9
Matriks d= a*b d= 38 64 38
57 66 96 116 57 59
CONTOH 2: 1. Defenisi masalah. Menentukan: invers, determinan, dan transpose matriks. 2. Struktur data Unit Matriks a Matriks b (invers a) Matriks c (determinan a) Matriks d (Transpose a)
Variabel a b=invers(a) c=det(a)
Type of data Numeric/matriks Numeric/matriks Numeric /matriks
Keterangan Input data Output data Output data
d= a’
Numeric /matriks
Output data
3. Algorithm program
76
Sahyar Econophysics Unimed Medan
a. Start b. Input data c. Process d. Tampil 6. Stop
Baca( a) binvers(a); cdet(a); da’; a b c d
4. Coding %Input data Matriks clc; a=input(‘Input elemen matriks a =’); %proses; b=inv(a); c=det(a); d=a’; %output disp(‘Matriks a’); a disp(‘b= Invers a’); b disp(‘c= determinan a ‘); c disp(‘d= Transpose a ’); d
5. Testing and Verification Testing ke 1 Input elemen matriks a =[4 5;7 8] Matriks a a= 4 5
77
Sahyar Econophysics Unimed Medan
7 8 b= Invers a b= -2.6667 1.6667 2.3333 -1.3333 c= determinan a c= -3 d= Transpose a d= 4 7 e. 8
Testing ke 2 Input elemen matriks a =[7 8 9;3 4 5;2 7 8] Matriks a a= 7 8 9 3 4 5 2 7 8 b= Invers a b= 0.1875 0.0625 -0.2500 0.8750 -2.3750 0.5000 -0.8125 2.0625 -0.2500 c= determinan a c= -16 d= Transpose a d= 7 3 2 8 4 7 9 5 8
CONTOH 3 1. Defenisi Masalah
78
Sahyar Econophysics Unimed Medan
Penyelesaian sistem persamaan linear. 2. Input and output data Unit Variabel Type of data Elemen matriks m x m a Numeric /matriks sistem persamaan linear Elemen matriks kolom b Numeric/matriks sistem persamaan linear Elemen matriks kolom x Numeric/matriks yang nilainya belum diketahui 3. Algorithm program a. Start b. Input data Baca matriks (a) Baca matriks (b) c. Proses xa\b; d. Output a b x e. Stop 4. Coding clc; disp('Aljabar Linear dan matriks: Ax = b'); a=input('Input elemen Matriks a= '); b=input('Input elemen Matriks b=’); %Proses x=a\b; %Output disp('Elemen matriks a '); a disp(‘Elemen matriks b ‘); b disp(‘Elemen matriks x atau hasil ‘); x 5. Testing dan Verifikasi
79
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
Aljabar Linear dan matriks: Ax = b Input elemen Matriks a= [1 1 1;2 3 1;4 1 4] Input elemen Matriks b=[9;17;27] Elemen matriks a a= 1 1 1 2 3 1 4 1 4 Elemen matriks b b= 9 17 27 Elemen matriks x atau hasil x= 2.0000 3.0000 4.0000
F.Latihan 1. Rancang program komputer untuk menentukan hasil rumusan berikut: C=A* inv(A). 2. Rancang program komputer untuk menentukan hasil rumusan berikut: C = P*Q*R. 3. Rancang program komputer untuk menentukan hasil rumusan berikut: C=(P*Q)+R. 4. Selesaikan sistem persamaan berikut: X1 + 7X2 - 3X3 = -51 4X1- 4X2 + 9X3 = 61 12 X1 – X2 + 3X3 = 8 5. Selesaikan sistem persamaan berikut: -6I1 + 12I3 = 60 4I1- I2 - I3 = -2 6I1 + 8I2 = 44
80
Sahyar Econophysics Unimed Medan
BAB 13 GRAFIK DUA DIMENSI A.Tujuan Pembelajaran 1. Menyusun program komputer untuk visual grafik dua dimensi pada satu jendela dengan menggunakan fungsi standar MatLab. 2. Menyusun program komputer untuk visual grafik dua dimensi pada multi jendela dengan menggunakan fungsi standar MatLab.
B.Teori. Grafik merupakan kumpulan titik-titik koordinat yang menunjukkan pola hubungan dua variabel atau lebih. Titik-titik koordinat merupakan nilai-nilai variabel yang saling berhubungan atau hubungan kausalitas. Melalui grafik dapat diketahui pola hubungan dua variabel yaitu varibabel bebas (yang memberi pengaruh) dan variabel terikat (variabel yang dipengaruhi). Dalam Matlab satu grafik dapat ditampilkan pada satu jendela atau beberapa grafik dapat ditampilkan ke dalam beberapa jendela secara bersamaan. Tabel 13.1. Beberapa fungsi standar untuk grafik dua dimensi pada Matlab Fungsi plot(x,y)
Penjelasan Menggambar grafik garis 2D dengan skala linear pada kedua sumbunya loglog(x,y) Menggambar grafik garis 2D dengan skala logaritma pada kedua sumbunya semilogx(x,y) Menggambar grafik garis 2D dengan skala logaritma pada sumbu x semilogy(x,y) Menggambar grafik garis 2D dengan skala logaritma pada sumbu y bar(x,y) Menggambar grafik batang 2D stairs(x,y) Menggambar grafik tangga 2D polar(t,r) Menggambar grafik garis pada koordinat polar, t=sudut, r=radius. plotyy(x,y,x,y,’plot’,’stem’) Menggambar grafik 2D dengan arsir pada sumbu y fplot(‘ff’,[b,a]) Menggambar grafik garis 2D menggunakan file fungsi eksternal. ff=nama file fungsi, b=batas bawah skla, a=batas atas skala pada sumbu x.
Tahap menggambar grafik dengan MatLab. Jika akan digambar grafik: y = f(t)
81
Sahyar Econophysics Unimed Medan
% tahap 1: membangkitkan nilai t dari 0 s/d 10 dengan interval:0,2. t= 0:0.2: 10; % tahap 2: membangkitkan nilai y y=f(t); % tahap 3: menggambar grafik plot(t, y,’warna’); Pemakaian fungsi standar plot untuk menggambar grafik tunggal dan beberapa grafik pada sumbu yang sama dapat digunakan sintaks pemakaian plot pada Tabel berikut: Tabel 13.2. Bentuk pemakaian plot Fungsi plot(x,y1,c1)
Penjelasan Menggambar grafik garis 2D dengan y1=f(x) warna c1. plot(x,y1,’c1’,x,y2,’c2’,x,y3,’c3’) Menggambar tiga grafik garis 2D pada sumbu yang sama dengan y1=f(x) warna c1, y2=f(x) warna c2 dan y3=f(x) warna c3.
Utuk pengaturan tampilan warna grafik dua dimensi dapat digunakan pilihan warna sebagai berikut: Tabel 13.3. Beberapa pilihan warna grafik Nomor 1 2 3 4 5 6 7 8
Symbol y m c r g b w k
Warna Yellow Magenta Cyan Red Green Blue White Black
Beberapa fungsi standar pendukung yang dapat digunakan untuk mengatur tampilan grafik adalah sebagai berikut: Tabel 13.4. Beberapa fungsi pendukung untuk grafik pada Matlab Fungsi grid on title (‘judul grafik’) xlabel(‘label pada sumbu x’) ylabel(‘label pad sumbu y’) legend(‘keterangan masing-masing grafik’) linspace(a,b,n)
82
Sahyar Econophysics Unimed Medan
Penjelasan Mengaktifkan garis skala grafik Membuat judul grafik Membuat label pada sumbu x Membuat label pada sumbu y Membuat keterangan masing-masing grafik a= batas bawah sumbu x, batas atas sumbu y, n=jumlah segmen pada sumbu x
C. Contoh aplikasi program Dalam satu jendela. Contoh 1: Grafik garis suatu fungsi pada sumbu xy Coding %graphic y= a sin(x) %input clc; n=input('Jumlah Periode : '); a=input('Amplitudo = '); %process x=0:0.01:2*pi*n; y=a*sin(x); %output plot(x,y,’k’) xlabel('x axis');ylabel('y axis'); title('y= A sin x'); grid on; Testing and Verification Pengujian 1 Number of periode: 2 Amplitude = 12
y= A sin x
15 10
y axis
5 0 -5 -10 -15 0
2
4
6
8
10
12
x axis
Gambar 13.1. Grafik fungsi sinus Contoh 2: Grafik garis beberapa fungsi pada sumbu xy Coding
83
Sahyar Econophysics Unimed Medan
14
%graphic 1.y= a sin(3t) %graphic 2.y= b cos(5t) %input clc; a=input('Amplitudo a = '); b=input ('Amplitudo b = '); n=input(‘Lama pengamatan=’); %process t=0:0.01:n; y1=a*sin(3*t); y2=b*cos(5*t); y=y1+y2; %output plot(t,y1,'b',t,y2,'r',t,y,’k’) xlabel(' waktu ');ylabel(' simpangan'); title('y1= A sin(3t); y2= B cos(5t) '); grid on; Testing Amplitudo a = 3; Amplitudo b = 5; Lama pengamatan =5 y1= A sin(3t); y2= B cos(5t) 8 6
simpangan
4 2 0 -2 -4 -6 -8 0
1
2
3
4
waktu
Gambar 13.2. Grafik fungsi sinus dan cosinus
84
Sahyar Econophysics Unimed Medan
5
Contoh 3: Grafik batang y = a sin(x) pada sumbu xy Coding %graphic y= a sin(x) %input clc; n=input('Jumlah Periode : '); a=input('Amplitudo = '); %process x=0:0.2:2*pi*n; y=a*sin(x); %output bar(x,y,’k’) xlabel('x axis');ylabel('y axis'); title('y= A sin x'); grid on; Testing Pengujian 1; Number of periode: 1; Amplitude = 15 y= A sin x 15 10
y axis
5 0 -5 -10 -15 -2
0
2
4
6
x axis
Gambar 13.3. Grafik batang fungsi sinus
85
Sahyar Econophysics Unimed Medan
8
Contoh 4: Grafik tangga y = a sin(x) pada sumbu xy Coding %graphic y= a sin(x) %input clc; n=input('Jumlah Periode : '); a=input('Amplitudo = '); %process x=0:0.2:2*pi*n; y=a*sin(x); %output stairs(x,y,’k’) xlabel('x axis');ylabel('y axis'); title('y= A sin x'); grid on; Testing and Verification Pengujian 1 Jumlah periode = 2 Amplitudo = 15 y= A sin x 15 10
y axis
5 0 -5 -10 -15 0
2
4
6
8
10
12
x axis
Gambar 13.4. Grafik tangga fungsi sinus
86
Sahyar Econophysics Unimed Medan
14
Contoh 5: Grafik polar y = a sin(x)*cos(x) Coding %graphic y= a sin(x)* cos (x) %input clc; %process x=0:0.01:2*pi; %y=15*sin(x).*cos(x); y=15*sin(x).^2; %output polar(x,y,’k’); title('y= A sin x * cos x'); grid on; Testing: y= A sin x * cos x 90 8 120 60 6 4
150
30
2 180
0
210
330 240
300 270
Gambar 13.5. Grafik polar fungsi sinus*cosinus Contoh 6: Grafik menggunakan fungsi eksternal Coding %Kurve 2D menggunakan fungsi eksternal %function kuadrat=fk(x); %kuadrat=X^2+5*x+6; clc;
87
Sahyar Econophysics Unimed Medan
fplot('fk',[-10,10]); xlabel('Sb x');ylabel('Sb y'); title('Fungsi ekternal f(x)=x^2+5*x+6'); grid on; Testing: Fungsi ekternal f(x)=x2+5*x+6
200
Sb y
150
100
50
0 -10
-5
0 Sb x
5
Gambar 13.6. Grafik fungsi eksternal Contoh 7: Grafik dengan menggunakan data empirik Coding %Kurve 2D menggunakan data empirik clc; n=input('Banyak data = '); for k=1:n disp(['Data ke = ',num2str(k)]); x(k)=input('x = '); y(k)=input('y = '); end; plot(x,y,'o',x,y,'k'); title('Kuve data empirik'); xlabel('Sumbu x ');ylabel('Sumbu y'); grid on;
88
Sahyar Econophysics Unimed Medan
10
Testing: Banyak data = 6 Data ke = 1 x=1 y=3 Data ke = 2 x=2 y=5 Data ke = 3 x=3 y=8 Data ke = 4 x=4 y = 13 Data ke = 5 x=5 y=6 Data ke = 6 x=6 y=2 Output: Kuve data empirik
14 12
Sumbu y
10 8 6 4 2 1
2
3
4
5
6
Sumbu x
Gambar 13.7. Grafik menggunakan data empirik Contoh 8 : Grafik fungsi dengan menggunakan arsiran.
89
Sahyar Econophysics Unimed Medan
Coding: %Kurve 2D menggunakan arsir clc; clear; disp('y=a sin x'); a=input('Amplitudo = '); n=input('Jumlah priode = '); x=0:0.1:2*pi*n; y=a*sin(x); plotyy(x,y,x,y,'plot','stem'); xlabel('sb x');ylabel('sb y'); title('Kurve dengan Arsir'); grid on; Testing: y=a sin x Amplitudo = 10 Jumlah priode = 2 Output:
sb y
Kurve dengan Arsir 10
10
5
5
0
0
-5
-5
-10
0
2
4
6
8
10
12
sb x
Gambar 13.8. Grafik arsir fungsi sinus Contoh 9: Grafik dengan skala logaritma Coding:
90
Sahyar Econophysics Unimed Medan
-10 14
%Kurve 2D menggunakan skala log % clc; disp('y=a^x'); a=input('Koef a= '); x=0:0.1:10; y=a.^x; loglog(x,y); xlabel('sb x');ylabel('sb y'); title('Kurve dengan skala log'); grid on; Testing: y=a^x Koef a= 3 Output: 5
10
Kurve dengan skala log
4
10
3
sb y
10
2
10
1
10
0
10 -1 10
0
10
1
10
sb x
Gambar 13.9. Grafik skala logaritma
D.Grafik Dua Dimensi Pada Multi jendela Dalam Matlab satu grafik dapat ditampilkan pada satu jendela atau beberapa grafik dapat ditampilkan ke dalam beberapa jendela secara bersamaan. Pada Bab ini akan dibahas tampilan sejumlah grafik pada multi jendela. Membagi layar menjadi beberapa bagian.
91
Sahyar Econophysics Unimed Medan
Menjadi empat bagian: Subplot(2,2,1); plot(x,y1); Subplot(2,2,2); plot(x,y2); Subplot(2,2,3); plot(x,y3); Subplot(2,2,4); plot(x,y4); Menjadi dua bagian mendatar: Subplot(2,1,1); plot(x,y1); Subplot(2,1,2); plot(x,y2); Menjadi dua bagian vertikal: Subplot(1,2,1); plot(x,y1); Subplot(1,2,2); plot(x,y2);
E.Aplikasi program Untuk Multi jendela Contoh 1: 1. Defenisi masalah Grafik y = A sin(x) dan y = A cos(x) pada 2 jendela mendatar . 2. Input and output data Unit Amplitudo Jumlah periode Simpangan Sudut Graphics
Variabel a n y x
Type of data Numeric Numeric Numeric Numeric (radian)
3. Algorithm program a. Start b. Input data Input a, n c.Process x0:0.01:2*pi*n; y1a*sin(x); y2a*cos(x); d.Output subplot(2,1,1); plot(x,y1); subplot(2,1,2); plot(x,y2); e.Stop
92
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Input data Output data
4. Coding %graphic 1.y= a sin(x) %graphic 2.y= a cos(x) %input n=input('Number of periode: '); a=input('Amplitude = '); %process x=0:0.01:2*pi*n; y1=a*sin(x); y2=a*cos(x); %output subplot(2,1,1);plot(x,y1,'b'); xlabel('x axis');ylabel('y axis'); title('y= A sin x'); grid on; subplot(2,1,2);plot(x,y2,'r'); xlabel('x axis');ylabel('y axis'); title('y= A cos x'); grid on; 5. Uji coba dan Testing and Verification Jumlah priode: 3; Amplitudo = 15
93
Sahyar Econophysics Unimed Medan
Gambar 13.10. Grafik pada dua jendela (2 x 1) Contoh 2: 1. Problem definition Graphics y = A tan(x) and y = A (sin(x))^2 pada 2 jendela tegak . 2. Input and output data Unit Amplitudo Jumlah priode Simpanagan Sudut Graphics
Variabel a n y x
Type of data Numeric Numeric Numeric Numeric (radian)
3. Algorithm program a. Start b. Input data Input a, n c.Process x=0:0.01:2*pi*n; y1=a*(cos(x)).^2; y2=a*(sin(x)).^2; d.Output subplot(1,2,1); plot(x,y1); subplot(1,2,2); plot(x,y2); e.Stop 4. Coding %graphic 1.y= a (cos(x))^2 %graphic 2.y= a (sin(x))^2 %input n=input('Jumlah periode: '); a=input('Amplitudo = '); %process x=0:0.01:2*pi*n; y1=a*(cos(x)).^2; y2=a*(sin(x)).^2; %output subplot(1,2,1);plot(x,y1,'b')
94
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Input data Output data
xlabel('x axis');ylabel('y axis'); title('y= A tan x'); grid on; subplot(1,2,2);plot(x,y2,'r'); xlabel('x axis');ylabel('y axis'); title('y= A (sin x)^2'); grid on; 5. Testing and Verification Jumlah periode: 3 Amplitudo = 15 y= A tan x
15
y= A (sin x)2
15 data1
data1
10
y axis
y axis
10
5
0
5
0
5
10 x axis
15
0
20
0
5
10 x axis
15
20
Gambar 13.11. Grafik pada dua jendela (1 x 2) CONTOH 3: 1. Problem definition Grafik y= A sin(x), y=A cos(x), y = A tan(x) and y = A (sin(x))^2 pada jendela 2 x 2. 2. Input and output data Unit
95
Variabel
Type of data
Sahyar Econophysics Unimed Medan
Keterangan
Amplitudo Jumlah periode Simpangan Sudut Graphics
a n y x
Numeric Numeric Numeric Numeric (radian)
3. Algorithm program a. Start b. Input data Input a, n c.Process x0:0.01:2*pi*n; y1a*sin(x); y2a*cos(x); y3a*tan(x); y4a*(sin(x)).^2; d.Output subplot(2,2,1); plot(x,y1); subplot(2,2,2); plot(x,y2); subplot(2,2,3); plot(x,y3); subplot(2,2,4); plot(x,y4); e.Stop 4. Coding clc; %graphic 1.y= a sin(x) %graphic 2.y= a cos(x) %graphic 3.y= a exp(-x).*cos(x) %graphic 4.y= a (sin(x))^2 %input n=input('Number of periode: '); a=input('Amplitude = '); %process x=0:0.01:2*pi*n; y1=a*sin(x); y2=a*cos(x); y3=a*exp(-x).*cos(x); y4=a*(sin(x)).^2; %output
96
Sahyar Econophysics Unimed Medan
Input data Input data Input data Input data Output data
subplot(2,2,1);plot(x,y1,'b') xlabel('x axis');ylabel('y axis'); title('y= A sin x'); grid on; subplot(2,2,2);plot(x,y2,'r'); xlabel('x axis');ylabel('y axis'); title('y= A cos x '); grid on; subplot(2,2,3);plot(x,y3,'b'); xlabel('x axis');ylabel('y axis'); title('y= A exp(-x)cos(x) '); grid on; subplot(2,2,4);plot(x,y4,'r'); xlabel('x axis');ylabel('y axis'); title('y= A (sin x)^2 '); grid on; 5. Testing and Verification Jumlah priode: 3 Amplitudo = 15 y= A sin x
20
10
y axis
y axis
10 0 -10 -20
0 -10
0
15
5
10 15 x axis y= A exp(-x)cos(x)
20
-20
10 x axis y= A (sin x)2
15
20
0
5
10 x axis
15
20
y axis
y axis
5
10
5
5
0
97
0
15
10
-5
y= A cos x
20
0
5
10 x axis
15
20
Sahyar Econophysics Unimed Medan
0
Gambar 13.12. Grafik pada empat jendela (2 x 2)
F.Latihan 1. Rancang program komputer untuk menggambar grafik y vs x dari persamaan : y = a x2 + b x + c. 2. Rancang program komputer untuk menggambar grafik d vs t dari persamaan: d = vo t + ½ a t2 3. Rancang program komputer untuk menggambar grafik x vs y atau kurve Lissajous, yaitu paduan getaran harmonis saling tegak lurus. x= A sin (p t) dan y=B sin(q t). Dalam hal ini : p, q frekuensi, t=waktu. 4. Rancang program komputer untuk menggambar grafik lintasan peluru. 5. Rancang program komputer untuk menggambar grafik superposisi getaran mekanik dalam dua dimensi. Input: amplitudo, periode dan beda fase 6. Rancang program komputer untuk menggambar grafik Lissajous getaran mekanik dalam dua dimensi. Input: frekuensi masing-masing getaran. 7. Rancang program komputer untuk menggambar grafik y = a x 2 + b x + c dan y= a (cos(x))2 + sin(x) pada layar orde 2 x 1. 8. Rancang program komputer untuk menggambar grafik t vs d dari rumus d = vo t + ½ a t2 dan Ek vs v dari rumus Ek= 0.5* m* v2 pada layar orde 1 x 2. 9. Rancang program komputer untuk menggambar grafik lintasan peluru pada layar orde 2 x 2. Dalam kasus ini kecepatan awal konstan, g=10 m/s2, dan sudut elevasi pada masing-masing layar : 20, 30, 45 dan 60 derjat.
98
Sahyar Econophysics Unimed Medan
BAB 14 GRAFIK DALAM TIGA DIMENSI A.Tujuan Pembelajaran 1. Menyusun program komputer untuk grafik garis tiga dimensi dengan menggunakan fungsi standar MatLab. 2. Menyusun program komputer untuk visual grafik permukaan tiga dimensi dengan menggunakan fungsi standar MatLab.
B.Teori Grafik tiga dimensi adalah garis yang menghubungkan posisi titik dalam tiga dimensi yaitu kordinat x, y dan z. Nilai z diperoleh dengan memvariasi nilai x dan y dalam fungsi z=f(x,y). Untuk setiap nilai x,y akan diperoleh satu nilai z atau sebaliknya. Grafik permukaan tiga dimensi adalah grafik yang menggambarkan selimut atau permukaan bangun ruang. Kordinat selimut ditentukan oleh kordinat x, dan y dalam bentuk matriks, sedangkan tinggi permukaan selimut ditentukan oleh kordinat z. Fungsi yang dapat digunakan menggambar grafik garis tiga dimensi dalam Matlab adalah: Cara 1 >>x=a:b:c; %variasi nilai x >>y=x; % variasi nilai y >z=f(x,y); %variasi nilai z >>plot3(x,y,z); Cara 2 >>[x,y]=meshgrid([a:b:c]); %variasi nilai x dan y >>z=f(x,y); % variasi nilai z >>plot3(x,y,z); Fungsi yang disiapkan Matlab untuk menggambarkan selimut bangun ruang adalah: Cara 1. Untuk permukaan berarsir. >>x=a:b:c; >>y=x; >>[x,y]=meshgrid(x,y)
99
Sahyar Econophysics Unimed Medan
>>z=f(x,y); >>surf(x,y,z); >>colormap(gray) Cara 2 (untuk permukaan halus ) >>x=a:b:c; >>y=x; >>[x,y]=meshgrid(x,y) >>z=f(x,y); >>surfl(x,y,z); >>shading interp; >>colormap(cool) Pengaturan Warna kurve permukaan. Untuk mengatur kurve permukaan digunakan sintaks: colormap(fungsi warna). Berikut tabel fungsi untuk pengaturan warna permukaan. Tabel 14.1. Pilihan warna untuk grafik permukaan No mor 1 2 3 4 5 6 7 8 9 10
Colormap(fungsi warna) hsv hot cool pink gray bone jet copper prism flag
Warna Hue-saturation value Black-red-yellow-white Shades of cyan and magenta Pastel shades of pink Linear gray scale Gray scale with a tinge of blue A variant of HSV Linear copper-tone Prism Alternating red, white, and black
C.Contoh Aplikasi grafik garis tiga dimensi Contoh 1: 1. Defenisi Masalah Grafik Helix dengan r tetap. 2. Struktur data Unit Jari-jari Jumlah periode Graphics
Variabel r p
Type of data Numeric Numeric
3. Algorithm program
100
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
a. Start b. Input data input: p,r c. Process t0:0.1:2*pi*p; xr* sin(t); yr* cos(t); d. Output plot3(x,y,t); grid on d. Stop 4. CODING %graphic helix %input clc; p=input('Jumlah periode: '); r=input('Jari-jari:'); %process t=0:0.1:p*2*pi; x=r*sin(t); y=r* cos(t); plot3(x,y,t); grid on xlabel('x axis');ylabel('y axis');zlabel('z axis'); title('Helix'); 5. Testing and Verification Jumlah periode: 15; Jari-jari:8
101
Sahyar Econophysics Unimed Medan
Helix data1
100
z axis
80 60 40 20 0 10 5
10 5
0
0
-5 y axis
-5 -10 -10
x axis
Gambar 14.1. Grafik garis bangun seliner
D.Aplikasi Grafik Kurve Permukaan Contoh 1: 1. Defenisi Masalah Grapik z = a sin(x) + b sin (y). 2. Struktur data Unit Amplitudo Jumlah periode Simpangan Sudut Graphics
Variabel a, b n z x,y
Type of data Numeric Numeric Numeric Numeric (radian)
3. Algorithm program a. Start b. Input data Input a,b, n c.Process x0:0.01:2*pi*n; yx; [x,y]meshgrid(x,y)
102
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Input data Input data Output data
z a*sin(x) + b sin(y) d.Output surf(x,y,z) e.Stop 4. Coding %graphic z= a sin(x) + b sin (y) %input clc; n=input('Jumlah Periode : '); a=input('Amplitudo 1= '); b=input('Amplitudo 2= '); %process x=0:0.3:2*pi*n; y=x; [x,y]=meshgrid(x,y); z=a*sin(x)+b*sin(y); %output colormap(gray); surf(x,y,z) xlabel('x axis');ylabel('y axis');zlabel('z axis'); title('z= A sin x + B sin y'); grid on; 5. Testing and Verification Testing 1 Jumlah Periode : 2 Amplitudo 1 = 3 Amplitudo 2 = 4
103
Sahyar Econophysics Unimed Medan
Gambar 14.2. Grafik permukaan 3D fungsi sinus (1) Testing 2 Jumlah Periode : 2 Amplitudo 1 = 4 Amplitudo 2 = 0
Gambar 14.3. Grafik permukaan 3D fungsi sinus(2)
104
Sahyar Econophysics Unimed Medan
Coding: %graphic y= a sin(x) + b sin (y) %input clc; n=input('Jumlah Periode : '); a=input('Amplitudo 1= '); b=input('Amplitudo 2= '); %process x=0:0.3:2*pi*n; y=x; [x,y]=meshgrid(x,y); z=a*sin(x)+b*sin(y); %output colormap(gray); surfl(x,y,z); shading interp; xlabel('x axis');ylabel('y axis');zlabel('z axis'); title('z= A sin x + B sin y'); grid on; Testing: Jumlah Periode : 2 Amplitudo 1= 3 Amplitudo 2= 4
Gambar 14.4. Grafik permukaan 3D fungsi sinus(3)
105
Sahyar Econophysics Unimed Medan
Contoh 2: 1. Defenisi Masalah Grapik z = a*x^2 +b* y^2 2. Struktur data Unit Koefisien Koordinat Graphics
Variabel a, b x,y,z
Type of data Numeric Numeric
3. Algorithm program a. Start b. Input data Input a, b c.Process x-10:0.2:10; yx; [x,y]meshgrid(x,y) z a*x^2 +b* y^2 d.Output surf(x,y,z) e.Stop 4. Coding %input clc; disp(‘Grafik z = a*x^2 +b* y^2’); a=input('Koefisien a = '); b=input('Koefisien b = '); %process x=-10:0.4:10; y=x; [x,y]=meshgrid(x,y); z= a*x.^2 +b* y.^2; %output colormap(gray); surf(x,y,z) xlabel('x axis');ylabel('y axis');zlabel('z axis'); title('z= a*x^2 +b* y^2 '); grid on;
106
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
5. Testing and Verification Testing 1 Grafik z = a*x^2 +b* y^2; Koefisien a = -1; Koefisien b = -1
Gambar 14.5. Grafik permukaan 3D fungsi kuadrat(1) Testing 2 Grafik z = a*x^2 +b* y^2; Koefisien a = -2; Koefisien b = 0
Gambar 14.6. Grafik permukaan 3D fungsi kuadrat (2)
107
Sahyar Econophysics Unimed Medan
Coding: Pemakaian surfl %input clc; disp(‘Grafik z = a*x^2 +b* y^2’); a=input('Koefisien a = '); b=input('Koefisien b = '); %process x=-10:0.4:10; y=x; [x,y]=meshgrid(x,y); z= a*x.^2 +b* y.^2; %output colormap(gray); surfl(x,y,z) shading interp; xlabel('x axis');ylabel('y axis');zlabel('z axis'); title('z= a*x^2 +b* y^2 '); grid on; Testing: Grafik z = a*x^2 +b* y^2; Koefisien a = -1; Koefisien b = -1
Gambar 14.7. Grafik permukaan 3D fungsi kuadrat (3)
108
Sahyar Econophysics Unimed Medan
E.Latihan. 1. Rancang program komputer untuk menggambar bangun kerucut dengan menggunakan grafik garis tiga dimensi. 2. Rancang program komputer untuk menggambar bangun kerucut dengan posisi puncak kerucut pada bagian bawah dengan menggunakan grafik garis tiga dimensi. 3. Rancang program komputer untuk menggambar bangun kerucut dengan posisi puncak kerucut pada bagian kanan dengan menggunakan grafik garis tiga dimensi. 4. Rancang program komputer untuk menggambar bangun kerucut dengan posisi puncak kerucut pada bagian kiri dengan menggunakan grafik garis tiga dimensi. 5. Susunlah program komputer untuk visual grafik permukaan bola. 6. Susunlah program komputer untuk visual grafik permukaan bidang datar posisi miring. 7. Susunlah progam komputer untuk visual grafik permukaan elip.
109
Sahyar Econophysics Unimed Medan
BAB 15 DIAGRAM BATANG DAN PASTEL A.Tujuan Pembelajaran 1. Menyusun program komputer untuk visual diagram batang dan pastel dengan menggunakan fungsi standar MatLab.
B.Teori. Diagram batang digunakan untuk melihat sekumpulan data selama kurun waktu tertentu dan sesuai untuk data yang berbentuk diskrit. Diagram pastel digunakan untuk menampilkan data dalam bentuk pastel dengan tampilan data secara persentase. Setiap elemen data akan dibandingkan dengan penjumlahan seluruh data yang ada. Sintaks untuk menggambar diagram batang. 1.Diagram batang dua dimensi Bentuk sintaks: >>bar (t) Keterangan: t adalah data diagram batang dalam bentuk matriks. Elemen kolom menyatakan kumpulan data digaram untuk setiap periode Data baris pertama menyatakan periode pertama dan data baris ke n menyatakan periode ke n. Contoh: t=[a b c; d e f; g h i; j k l]. Data periode satu: a b c dan data periode 3 adalah: j k l. Bentuk sintaks: >>bar (p,t) Keterangan: t adalah data diagram batang dalam bentuk matriks. Elemen kolom menyatakan kumpulan data diagram untuk setiap periode Data baris pertama menyatakan periode pertama dan data baris ke n menyatakan periode ke n. Contoh: t=[a b c; d e f; g h i; j k l]. Data periode kesatu: a b c dan data periode ke 3 adalah: j k l. Data p adalah array dimensi satu yang menyatakan waktu atau tahun setiap periode. Contoh: p=[2000 2001 2002]; p(1)=2000;p(2)=2001;p(3)=2002. Data ini menyatakan data tahun periode 1 sampai periode 3. 2.Diagram batang tiga dimensi Bentuk sintaks:
110
Sahyar Econophysics Unimed Medan
>>bar3 (t) atau >>bar3 (p,t) 3.Diagram batang bentuk stack Bentuk sintaks: >>bar (t, ‘stack’) atau >>bar (p,t,’stack’) 4.Diagram Pastel Bentuk Sintaks: >>pie(x) >>pie(x,y) Keterangan: x adalah data patstel dalam bentuk array satu dimensi. Contoh: x=[a b c d ]. Data perrtama x(1)=a dan data keempat x(4)=d. Data y adalah array dimensi satu yang menyatakan jenis data. Contoh: y=[‘A’,’B’,’C’,’D’]; Data ini menyatakan jumlah jenis data A =a sampai jumlah jenis data D=d.
C. Contoh Program Aplikasi Contoh 1: Grafik Diagram batang dua dimensi Coding: %graphic Bar 2d %input clc; t=input('Tahun produksi ='); z=input('Volume produksi = '); disp(' '); %process and output %subplot(1,2,1); bar(t,z); xlabel('Priode ');ylabel('Volume '); title('Diagram batang 2D'); legend('Beras','Jagung'); grid on; Testing: Tahun produksi =[2001 2002 2003] Volume produksi = [300 500;500 700;600 850]
111
Sahyar Econophysics Unimed Medan
Diagram batang 2D 900 800
Beras Jagung
700
Volume
600 500 400 300 200 100 0
2001
2002 Priode
2003
Gambar 15.1. Diagram batang 2D Contoh 2. Grafik diagram batang stack dua dimensi Coding: %graphic Bar 2d Stack %input clc; t=input('Tahun produksi ='); z=input('Volume produksi = '); disp(' '); %process and output %subplot(1,2,1); bar(t,z,’stack’); xlabel('Priode ');ylabel('Volume '); title('Diagram batang 3D'); legend('Beras','Jagung'); grid on;
Testing: Tahun produksi =[2000 2001 2002 2003] Volume produksi = [300 500;400 700;500 800;300 900]
112
Sahyar Econophysics Unimed Medan
Diagram batang 2D stack 1400 Beras Jagung
1200
Volume
1000 800 600 400 200 0
2000
2001
2002
2003
Priode
Gambar 15.2. Diagram batang 2D tumpukan Contoh 3. Grafik diagram batang tiga dimensi Coding: %graphic Bar 3d %input clc; t=input('Tahun produksi ='); z=input('Volume produksi = '); disp(' '); %process and output %subplot(1,2,1); bar3(t,z); xlabel('Priode ');ylabel('Volume '); title('Diagram batang 3D'); legend('Beras','Jagung'); grid on; Testing: Tahun produksi =[2001 2002 2003 2004] Volume produksi = [300 400;400 500;500 600;200 700]
113
Sahyar Econophysics Unimed Medan
Diagram batang 3D Beras Jagung
800 600 400 200 0 2001 2002 2003 2004 Volume Priode
Gambar 15.3. Diagram batang 3D Contoh 4. Grafik diagram Pastel Coding: clc; t=input('Tahun produksi ='); z=input('Volume produksi = '); disp(' '); %process and output %subplot(1,2,1); pie(z,t); xlabel('Priode ');ylabel('Volume '); title('Diagram pastel'); legend('Beras','Jagung','Kedelai'); grid on; Testing: Tahun produksi =[2000 2001 2002] Volume produksi = [200 500 300]
114
Sahyar Econophysics Unimed Medan
Diagram pastel 20%
Beras Jagung Kedelai
30%
50%
Gambar 15.4. Diagram pastel 2D
D.Latihan 1. Rancang program komputer untuk menampilkan jumlah siswa pada satu sekolah dengan menggunakan diagram batang. Data input jumlah periode, jumlah siswa wanita dan laki-laki pada tiap periode. 2. Rancang program komputer untuk menampilkan persantase kelulusan mahasiswa yang mendapat nilai A, B, C, D dan E dengan menggunakan diagram pastel. Input data jumlah siswa yang mendapat nilai A, B, C dan D.
115
Sahyar Econophysics Unimed Medan
BAB 16 AKAR-AKAR PERSAMAAN A.Tujuan Pembelajaran 1. Menyusun program komputer untuk menentukan akar-akar persamaan fungsi polynomial dengan menggunakan fungsi standar MatLab. 2. Menyusun program komputer untuk menentukan persamaan fungsi polynomial dengan menggunakan fungsi standar MatLab jika diketahui akar-akarnya. 3. Menyusun program komputer untuk menentukan akar-akar persamaan fungsi nonlinear dengan menggunakan fungsi standar MatLab.
B.Teori Jika f(x) = 0, maka nilai-nilai x yang memenuhi persamaan tersebut disebut sebagai akar-akar persamaan. Pada bab ini akan diuraikan bagaimana menentukan akar-akar persamaan untuk fungsi polynomial dan bentuk fungsi nonlinear dengan bantuan Matlab. Persamaan polynomial dapat dinyatakan dalam bentuk sebagai berikut: f ( X ) an X n an 1 X n 1 an 2 X n 2 ...a1 X a0 Untuk menentukan akar-akar persamaan polynomial pada derajat n=2 atau persamaan kuadrat dapat diselesaikan secara analitik dengan menggunakan rumus abc, sedangkan untuk derajat n harus menggunakan pendekatan metode numerik. Bahasa pemrograman MatLab menyediakan fasilitas standar siap pakai untuk menyelesaikan akar-akar persamaan polynomial dan persamaan nonlinear, sehingga programmer sangat terbantu dalam menyusun program komputer yang terkait dengan persamaan polynomial atau nonlinear. Adanya fasilitas fungsi standar, programmer tidak perlu lagi merancang program komputer dalam menentukan akar-akar persamaan. Dalam penyusunan program programmer hanya melakukan modifikasi pada bagian input dan output, sedangkan bagian proses menggunakan fungsi standar. Aplikasi penentuan akar-akar persamaan banyak dipakai dalam bidang sains maupun teknik. Menentukan akar-akar persamaan adalah menentukan nilai variabel bebas yang memberi dampak bernilai nol pada variabel terikat. Fungsi standar MatLab untuk persamaan polynomial dan nonlinear: Tabel 16.1. Fungsi standar persamaan polynomial dan nonlinear No 1
Fungsi roots(p)
2
poly(r)
116
Kegunaan Menentukan akar-akar persamaan polynomial p. Variabel p adalah koefisien persamaan polynomial dari pangkat n sampai nol dalam bentuk array. Menentukan persamaan polynomial dengan akar-akar r. Variabel r
Sahyar Econophysics Unimed Medan
No
Fungsi
3
polyval(p,x)
4 5 6 7
conv(a,b) deconv(a,b) residue(a,b) solve(‘f(x)=0’)
Kegunaan adalah akar-akar persamaan polynomial dalam bentuk array. Menentukan nilai persamaan plynomial untuk seluruh nilai x. Variabel x adalah array. Variabel p adalah koefisien-koefisien persamaan polynomial dalam bentuk array Perkalian polynomial a dan b Pembagian polynomial a dengan b Sisa pembagian polynomial a dengan b Menentukan akar-akar persamaan fungsi nonlinear.
C.Menentukan akar-akar persamaan Polynomial Aplikasi Program 1. Defenisi Masalah Menentukan akar-akar persamaan polynomial. 2. Struktur data Unit Derajat polynomial Koefisien polynomial Akar-akar persamaan
Variabel n a r
Type of data Numeric Numeric /array Numeric /array
3. Algorithm program a. Start b. Input data Input n j0 for in:-1:0 jj+1; input: a(j) end c.Process dan Output rroots(a); r d. Stop 1. Coding: %menentukan akar polynomial clc; %input n=input('Derajat polynomial='); j=0; for i=n:-1:0 j=j+1; disp(' ');
117
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data
disp(['Koef. pangkat: ',num2str(i)]); a(j)=input('Koef = '); end %proses r=roots(a); %output for i=1:n disp(' '); disp(['Akar ke: ',num2str(i),'=',num2str(r(i))]); end 2. Pengujian Program Testing ke 1: Fungsi f(x)=x2+5x+6=0 Derajat polynomial=2 Koef. pangkat: 2 Koef = 1 Koef. pangkat: 1 Koef = 5 Koef. pangkat: 0 Koef = 6 Akar-akar persamaan: Akar ke: 1=-3 Akar ke: 2=-2 Testing ke 2 Fungsi f(x)=x4-12x3+25x+116 Derajat polynomial=4 Koef. pangkat: 4 Koef = 1 Koef. pangkat: 3 Koef = -12 Koef. pangkat: 2 Koef = 0 Koef. pangkat: 1 Koef = 25 Koef. pangkat: 0 Koef = 116
118
Sahyar Econophysics Unimed Medan
Akar-akar persamaan: Akar ke: 1=11.7473 Akar ke: 2=2.7028 Akar ke: 3=-1.2251+1.4672i Akar ke: 4=-1.2251-1.4672i
D.Menentukan akar-akar persamaan fungsi nonlinear Aplikasi program: Coding program %Akar-akar persamaan nonlinear. clear; clc; y=input('Fungsi persamaan nonlinear='); p=solve(y); disp('Akar-akar persamaan'); p Output Program Testing 1: Fungsi persamaan nonlinear='3*x-exp(-x)=0' Akar-akar persamaan p= lambertw(1/3) » lambertw(1/3) ans = 0.2576 Testing ke 2 Fungsi persamaan nonlinear='5-exp(x)=0' Akar-akar persamaan p= log(5) » log(5) ans = 1.6094 Testing ke 3 Fungsi persamaan nonlinear='x^2+7*x+10=0' Akar-akar persamaan p=
119
Sahyar Econophysics Unimed Medan
[ -5] [ -2]
E.Menentukan persamaan dan Kurve polynomial: Aplikasi: 1. Defenisi Masalah Menentukan persamaan dan kurve polynomial. 2. Struktur data Unit Derajat polynomial Akar-akar persamaan Koefisien polynomial Skala pada sb x Skala pada sb y
Variabel n a p x v
Type of data Numeric Numeric /array Numeric /array Numeric/array Numeic/array
3. Algorithm program a. Start b. Input data input n for i1:n input a(i); end c.Process ppoly(a); d.Output j0; for in:-1:0 jj+1; p(j) end %kurve polynomial xlinspace(-10,10,100); vpolyval(p,x); plot(x,v); grid on; title('Kurve Polynomial'); xlabel('x');ylabel('y'); e.Stop 4.Coding: %menentukan persamaan polynomial clc;
120
Sahyar Econophysics Unimed Medan
Keterangan Input data Input data Output data Output data Output data
clear; %input n=input('Derajat polynomial='); for i=1:n disp(' '); disp(['Akar ke : ',num2str(i)]); a(i)=input('Akar = '); end %proses p=poly(a); %output j=0; for i=n:-1:0 j=j+1; disp(' '); disp(['Koef. pangkat: ',num2str(i),'=',num2str(p(j))]); end %kurve polynomial x=linspace(-10,10,100); v=polyval(p,x); plot(x,v); grid on; title('Kurve Polynomial'); xlabel('x');ylabel('y'); 5.Pengujian Program Testing: Derajat polynomial=2 Akar ke : 1 Akar = -3 Akar ke : 2 Akar = 5 Koef. pangkat: 2=1 Koef. pangkat: 1=-2 Koef. pangkat: 0=-15
121
Sahyar Econophysics Unimed Medan
Kurve Polynomial
120 100 80
y
60 40 20 0 -20 -10
-5
0 x
5
10
Gambar 16.1. Kurve Polynomial
F.Latihan. 1. Pilih suatu persamaan kuadrat, lalu tentukan akar-akar persamaan dengan menggunakan fungsi standar Matlab. Bandingkan hasilnya dengan menggunakan perhitungan manual menggunakan rumus abc. 2. Pilih tiga buah akar-akar persamaan, lalu tentukan persamaan polynomialnya dengan menggunakan fungsi standar Matlab. Bandingkan dengan perhitungan secara manual.
122
Sahyar Econophysics Unimed Medan
BAB 17 FITTING DATA DAN INTERPOLASI A.Tujuan Pembelajaran 1. Menyusun program komputer untuk menentukan persamaan fungsi polynomial dengan menggunakan fungsi standar MatLab berdasarkan data empirik. 2. Menyusun program komputer untuk melakukan interpolasi data dengan menggunakan fungsi standar MatLab.
B.Fitting Data Fitting data adalah proses menentukan persamaan yang paling sesuai dalam menjelaskan hubungan variabel bebas dengan variabel terikat dari sejumlah pasangan data (x,y) hasil pengukuran. Jika x variabel bebas dan y variabel terikat maka akan ditentukan persamaan y=f(x). Matlab menyediakan fungsi-fungsi standar untuk fitting data dalam bentuk persamaan polynomial orde n. Persamaan fitting data semakin baik jika nilai chi kuadrat semakin kecil.
No 1
2
Tabel 17.1. Fungsi standar untuk fitting data pengamatan Fungsi standar Kegunaan p=polyfit(x,y,n) Menentukan koefisien persamaan polynomial. Dengan x,y : pasangan data hasil pengamatan; n= derajat atau orde polynomial; p=koefisien persamaan polynomial dari pangkat paling tinggi. Variabel x,y tipe array y1=polyval(p,x1) Menentukan nilai-nilai pasangan data (x1,y1) hasil interpolasi dari persamaan polynomial yang diperoleh. Variabel p,x1,y1 tipe array.
C.Contoh aplikasi fit data Aplikasi 1. Fitting data hasil pengukuran berikut: Data pengamatan 1 x y
1 3
2 6
3 10
4 18
5 22
6 25
x y
1 3
2 6
3 10
4 16
5 20
6 35
Data pengamatan 2
123
Sahyar Econophysics Unimed Medan
Coding program: %curve fitting clc; clear; n=input('Banyak data pengamatan = '); m=input ('Orde Fitting polynomial = '); for k=1:n disp(['Data ke = ',num2str(k)]); x(k)=input('x = '); y(k)=input('y = '); end; p1=polyfit(x,y,m); disp(['Orde polynomial =',num2str(m)]); disp('Koefisien polynomial :'); p1 y1=polyval(p1,x); ks=sum(((y-y1)/y1).^2); disp('Nilai chi kuadrat='); ks x1=x(1):0.1:x(n); z1=polyval(p1,x1); plot(x,y,'o',x,y,'b',x1,z1,'k'); title('Kuve fitting Polynomial'); xlabel('Sumbu x ');ylabel('Sumbu y'); grid on;
Output Program: Testing 1 Banyak data pengamatan = 6 Orde Fitting polynomial = 1 Data ke = 1 x=1 y=3 Data ke = 2 x=2 y=6 Data ke = 3 x=3 y = 10 Data ke = 4 x=4 y = 18
124
Sahyar Econophysics Unimed Medan
Data ke = 5 x=5 y = 22 Data ke = 6 x=6 y = 25 Orde polynomial =1 Koefisien polynomial : p1 = 4.7429 -2.6000 Nilai chi kuadrat= ks = 1.0177e-032 Persamaan hasil Fitting Orde n=1 Y=4.7429 x -2.600 Nilai Chi Kuadrat: 1.0177e-032 Kurve hasil Fitting: Kuve fitting Polynomial 30 25
Sumbu y
20 15 10 5 0 1
2
3 4 Sumbu x
5
Gambar 17.1. Kurve Hasil Fitting n=1 Testing 2. Banyak data pengamatan = 6 Orde Fitting polynomial = 2
125
Sahyar Econophysics Unimed Medan
6
Data ke = 1 x=1 y=3 Data ke = 2 x=2 y=6 Data ke = 3 x=3 y = 10 Data ke = 4 x=4 y = 16 Data ke = 5 x=5 y = 20 Data ke = 6 x=6 y = 35 Orde polynomial =2 Koefisien polynomial : p1 = 1.0714 -1.5571 4.2000 Nilai chi kuadrat= ks = 6.3772e-032 Persamaan hasil Fitting Orde n=2 Y=1.0714 x2-1.5571 x + 4.2000 Nilai Chi Kuadrat: 6.377e-032 Kurve hasil Fitting:
126
Sahyar Econophysics Unimed Medan
Kuve fitting Polynomial 35 30
Sumbu y
25 20 15 10 5 0 1
2
3 4 Sumbu x
5
6
Gambar 17.2. Kurve Hasil Fitting n=2
D.Interpolasi Jika y=f(x) dan bentuk fungsi diketahui maka kita dapat menentukan nilai y jika x diketahui. Dalam eksperimen pasangan data (x,y) fungsinya belum diketahui Interpolasi adalah proses menentukan nilai data y untuk suatu nilai x yang tidak diamati. Matlab meyediakan fungsi standar siap pakai untuk melakukan interpolasi, sehingga membantu dalam penyusunan program komputer. Fungsi standar interpolasi Matlab: y1=interp1(x,y,x1,metode); Keterangan: Tipe data x,y,x1,y1: array dimensi satu. Data: x,y : data hasil pengukuran Data :x1,y1: data hasil interpolasi Metode: metode yang digunakan: ‘linear’, ‘cubic’,’spline’ dan ‘nearest’ Aplikasi 1. Interpolasi data hasil pengukuran berikut: Data pengamatan x y
1 5
2 9
3 12
Coding program: %interpolasi clc;
127
Sahyar Econophysics Unimed Medan
4 10
5 20
6 14
clear; n=input('Banyak data pengamatan = '); for k=1:n disp(['Data ke = ',num2str(k)]); x(k)=input('x = '); y(k)=input('y = '); end; disp('Data y yang akan diinterpolasi'); xh=input('Untuk data x = '); yh=interp1(x,y,xh,'spline'); disp('Hasil interpolasi'); yh x1=x(1):0.1:x(n); y1=interp1(x,y,x1,'spline'); plot(x,y,'o',x,y,'b',x1,y1,'k'); title('Kurve Interpolasi'); xlabel('Sumbu x ');ylabel('Sumbu y'); grid on; Output Program Testing 1: Banyak data pengamatan = 6 Data ke = 1 x=1 y=5 Data ke = 2 x=2 y=9 Data ke = 3 x=3 y = 12 Data ke = 4 x=4 y = 10 Data ke = 5 x=5 y = 20 Data ke = 6 x=6 y = 14 Data y yang akan diinterpolasi
128
Sahyar Econophysics Unimed Medan
Untuk data x = 4.7 Hasil interpolasi yh = 16.7963 Hasil interpolasi dengan metode Spline Pada x=4.7, nilai y = 16.7963 Kurve hasil interpolasi untuk sejumlah nilai hasil interpolasi Kurve Interpolasi 25
Sumbu y
20
15
10
5 1
2
3 4 Sumbu x
5
6
Gambar 17.3. Kurve Hasil Interpolasi metode spline
E.Latihan. Data berikut adalah hasil pengukuran pada gerak lurus berubah beraturan: t(waktu) 1 S(jarak) 4
2 3 20 40
Berdasarkan data tersebut tentukan: Persamaan polynomial fitting data Nilai jarak pada t=4,5 dan t=8,1.
129
Sahyar Econophysics Unimed Medan
4 70
5 6 110 140
BAB 18 PENYELESAIAN INTEGRAL DAN PERSAMAAN DIFFRENSIAL A.Tujuan Pembelajaran 1. Menyusun program komputer untuk menentukan hasil integral secara numerik dengan bantun fungsi standar MatLab. 2. Menyusun program komputer untuk menentukan hasil integral dengan metode montecarlo. 3. Menyusun program komputer untuk menyelesaian persamaan diffrensial orde satu dan orde dua secara numerik dengan menggunakan fungsi standar MatLab.
B.Penyelesaian Integral Secara numerik Penyelesaian Integral secara numerik disebut sebagai quadrature. Penyelesaian integral secara numerik secara umum digunakan untuk bentuk integral yang tidak dapat diselesaikan secara analitik. Konsep yang digunakan penyelesaian integral secara numerik adalah dengan membagi area yang dilingkupi fungsi menjadi beberapa segemen yang kecil. Hasil integral diperoleh dengan cara menjumlahkan seluruh segmen dalam batas integral. Matlab menyediakan beberapa fungsi standar yang dapat diunakan untuk penyelesaian integral secara numerik. Tabel 18.1. Fungsi standar integral No 1
Fungsi trapz(x,y)
2
quad(nf,b,a)
3
quad8(nf,b,a)
Keterangan Perhitungan integral dengan metode tapesium. Nilai x=batas integral dan y=fungsi yang akan diintegral. Perhitungan integral dengan metode quadrature. Parameter nf= nama file fungsi; b=batas bawah;a=batas atas integral Perhitungan integral dengan metode quadrature. Parameter nf= nama file fungsi; b=batas bawah;a=batas atas integral
C.Contoh Aplikasi Metode Numerik 1. Metode Trapesium Aplikasi 1: Menghitung integral f(x)=x3-12x2+36x+8 Fungsi eksternal: %nama file yk.m %p,x,y tipe array function p=yk(x) p=x.^3-12*x.^2+36*x+8;
130
Sahyar Econophysics Unimed Medan
Coding program %Integral Numerik %Metode Trapesium clc; clear; b=input('Batas bawah = '); a=input('Batas atas ='); s=input('Besar segmen='); x=b:s:a; y=yk(x); h=trapz(x,y); disp('Hasil integral :'); h plotyy(x,y,x,y,'plot','stem'); grid on title('Grafik fungsi yg diintegral'); Output program: Testing 1 Batas bawah = 0 Batas atas =8 Besar segmen=0.2 Hasil integral : h= 192.0000
Grafik fungsi yg diintegral 40
40
30
30
20
20
10
10
Kurve fungsi
0
00
11
22
33
44
55
66
77
0 88
Gambar 18.1. Kurve fungsi yang akan diintegral (1)
131
Sahyar Econophysics Unimed Medan
Grafik fungsi yg diintegral Testing 2 Batas bawah = 2 Batas atas =10 Besar segmen=0.5 Hasil integral : h= 322 Kurve fungsi
200
200
150
150
100
100
50
50
0
2
3
4
5
6
7
8
9
0 10
Gambar 18.2. Kurve fungsi yang akan diintegral (2) 2. Metode Quadrature Aplikasi 1: Menghitung integral f(x)=x3-12x2+36x+8 fungsi eksternal: % nama file yk.m %p,x,y tipe array function p=yk(x) p=x.^3-12*x.^2+36*x+8; Coding Program: %Integral Numerik %Metode Quadrature clc; clear; b=input('Batas bawah = '); a=input('Batas atas ='); x=b:0.01:a; y=yk(x); h=trapz(x,y); disp('Hasil metode trapesium:'); h h1=quad('yk',b,a);
132
Sahyar Econophysics Unimed Medan
disp('Hasil metode quadrature:'); h1 disp('Hasil metode quadrature 8:') h2=quad8('yk',b,a); h2 Output program Testing 1 Batas bawah = 0 Batas atas =8 Hasil metode trapesium: h= 192.0000 Hasil metode quadrature: h1 = 192 Hasil metode quadrature 8: h2 = 192 Testing 2 Batas bawah = 3 Batas atas =12 Hasil metode trapesium: h= 861.7516 Hasil metode quadrature: h1 = 861.7500 Hasil metode quadrature 8: h2 = 861.7500
D.Penyelesaian Integral dengan Metode Monte Carlo. Konsep yang digunakan untuk menyelesaikan integral suatu fungsi menggunakan metode Monte Carlo adalah dengan memanfaatkan bilangan random. Nilai-nilai pada batas integrasi diacak dengan menggunakan pembangkit bilangan random. Dengan cara ini tidak semua nilai pada batas integrasi digunakan, tetapi hanya sejumlah nilai yang telah diacak. Hasil integral
133
Sahyar Econophysics Unimed Medan
merupakan luas area yang dilingkupi fungsi yang akan diintegral. Luas area ditentukan dengan perkalian nilai rata-rata fungsi (rata-rata tinggi) dan lebar (batas integral). Kelebihan metode Monte Carlo dibandingkan metode numerik biasa adalah sebagai berikut: pada metode Monte Carlo tidak semua nilai pada batas integral digunakan tetapi hanya sejumlah yang ditentukan secara random, pada metode Numerik seluruh segmen luas pada batas integral harus dihitung untuk dijumlahkan. Metode Monte Carlo akan menguntungkan jika akan menghitung integral untuk batas integrasi yang relatif besar. Sebagai contoh jika akan dihitung integral untuk batas integrasi 1000, sedangkan lebar segmen 0,1 maka dengan metode numerik harus dilakukan perhitungan dengan perulangan atau loop 10000 kali. Melalaui penggunaan metode Monte Carlo dapat saja kita pilih 1000 titik secara random pada batas integral, sehingga cukup dengan 1000 kali perulangan.
E.Contoh Aplikasi Metode Monte Carlo 1. Integral lipat satu dengan metode Monte Carlo: b
f ( x)dx luas area a
lebar x ti nggi rata - rata (b a)
1 n f ( xi ) n i 1
Keterangan: n=banyak bilangan random f(x)=fungsi yang akan diintegral xi= nilai bilangan random interval a s/d b Aplikasi 1. Integral fungsi f(x)= 3x 2 x 2 x 7 Fungsi eksternal Fungsi yang akan digunakan terletak sebagai file eksternal berikut: %nama file ym1.m function p=ym1(x) p=3*x^3+x^2+x+7; Coding program %Metode Monte Carlo clc; a=input('Batas bawah= '); b=input('Batas atas= ');
134
Sahyar Econophysics Unimed Medan
n=input('Jumlah bil.random = '); for i=1:5 jumx=0; for k=1:(n*i) x=a+(b-a)*rand(1); jumx=jumx+ym1(x); end hasil(i)=(b-a)*jumx/(n*i); end for j=1:5 fprintf('\n n=%4.0f hasil= %8.3f\n',n*j,hasil(j)); end Output program Uji coba 1: Batas bawah= 3 Batas atas= 20 Jumlah bil.random = 50 n= 50 hasil= 104501.900 n= 100 hasil= 102603.428 n= 150 hasil= 119700.045 n= 200 hasil= 126431.301 n= 250 hasil= 127088.717 Uji coba 2: Batas bawah= 0 Batas atas= 3 Jumlah bil.random = 50 n= 50 hasil= 80.409 n= 100 hasil= 90.526 n= 150 hasil= 89.287 n= 200 hasil= 95.798 n= 250 hasil= 85.458 2. Integral lipat dua dengan metode Monte Carlo: b d
a c
1 n f ( x, y )dxdy (b a)(d c) f ( xi , yi ) n i 1
Keterangan: n=banyak bilangan random f(x,y)=fungsi yang akan diintegral xi= nilai bilangan random interval c s/d d yi= nilai bilangan random interval a s/d b
135
Sahyar Econophysics Unimed Medan
Aplikasi 1: Integral fungsi f(x,y)=xy Fungsi eksternal Fungsi yang akan digunakan terletak sebagai file eksternal berikut: %nama file fungsi ym.m function p=ym(x,y) p=x*y; Coding program %Integral lipat dua %Metode Monte Carlo clc; clear; a1=input('Batas bawah x= '); b1=input('Batas atas x= '); a2=input('Batas bawah y= '); b2=input('Batas atas y= '); n=input('Jumlah bil.random = '); for i=1:5 jumxy=0; for k=1:(n*i) x=a1+(b1-a1)*rand(1); y=a2+(b2-a2)*rand(1); jumxy=jumxy+ym(x,y); end hasil(i)=(b1-a1)*(b2-a2)*jumxy/(n*i); end for j=1:5 fprintf('\n n=%4.0f hasil= %8.3f\n',n*j,hasil(j)); end
Output program Testing 1 Batas bawah x= 0 Batas atas x= 2 Batas bawah y= 0 Batas atas y= 1 Jumlah bil.random = 40 n= 40 hasil= 0.951 n= 80 hasil= 0.936
136
Sahyar Econophysics Unimed Medan
n= 120 hasil= n= 160 hasil= n= 200 hasil=
1.183 0.959 1.060
Testing 2 Batas bawah x= 1 Batas atas x= 5 Batas bawah y= 2 Batas atas y= 7 Jumlah bil.random = 50 n= 50 hasil= 282.116 n= 100 hasil= 243.345 n= 150 hasil= 260.605 n= 200 hasil= 291.219 n= 250 hasil= 276.612
F.Penyelesaian Persamaan diffrensial. Persamaan diffrensial yang banyak diterapkan dalam bidang sains adalah persamaan diffrensial orde satu dan orde dua. Penyelesaian persamaan diffrensial secara numerik secara umum dipakai untuk bentuk persamaan diffrensial yang tidak dapat diselesaikan secara analitik. Bentuk umum persamaan diffrensial orde satu: dy f ( x, y) y g ( x, y) dx Bentuk umum persamaan diffrensial orde dua: d2y dy f ( x, y) g ( x, y) y h( x, y) 2 dx dx
Matlab menyediakan beberapa fungsi standar untuk menyelesaikan persamaan diffrensial orde satu. Untuk persamaan diffrensial orde dua, maka harus dilakukan modifikasi sehingga menjadi bentuk persamaan diffrensial orde satu. Perubahan bentuk persamaan diffrensial orde dua ke satu:
137
Sahyar Econophysics Unimed Medan
d2y dy f ( x, y ) g ( x, y ) y h ( x, y ) 2 dx dx dy M isal : y1 y; y2 ; maka persamaan menjadi : dx dy 2 f ( x, y1) y 2 g ( x, y1) y1 h( x, y1) dx
Tabel 18.2. Fungsi standar Penyelesaian persamaan diffrensial No 1
Nama fungsi [t,y]=ode23(nf,0,a,[p,q]);
Metode Runge-Kutta
2
[t,y]=ode45(nf,0,a,[p,q]);
Runge-Kutta
3
[t,y]=ode23s(nf,0,a,[p,q]);
Rosenbrock
Keterangan nf=nama fungsi; a=lama pengamatan; p=nilai y pada t=0; q=nilai y’ pada t=0. Variabel t dan y tipe data array dimensi satu. nf=nama fungsi; a=lama pengamatan; p=nilai y pada t=0; q=nilai y’ pada t=0. Variabel t dan y tipe data array dimensi satu. nf=nama fungsi; a=lama pengamatan; p=nilai y pada t=0; q=nilai y’ pada t=0. Variabel t dan y tipe data array dimensi satu.
G.Aplikasi Penyelesaian Persamaan Diffrensial Aplikasi 1: Penyelesaian persamaan diffrensial orde 2 getaran teredam. Bentuk umum persamaan diffrensial getaran teredam
d2y dy c ky 0 2 dt dt 2 d y c dy k y 2 dt m dt m
m
Fungsi eksternal getaran teredam %getaran teredam %my’’+cy’+ky=0 function dydt=getar(t,y); m=1;c=0.5;k=2; dydt=[y(2);-c/m*y(2)-k/m*y(1)]; Coding program %Getaran teredam %my’’+cy’+ky=0 %nama file getar.m [t y]=ode45('getar',0,30,[5;0]);
138
Sahyar Econophysics Unimed Medan
y1=y(:,1); y2=y(:,2); plot(t,y1,'k',t,y2,'.'); grid on; title('Getaan teredam'); xlabel('t=waktu'); ylabel('y=simpangan/kecepatan'); Uji coba program Getaan teredam
y=simpangan/kecepatan
6 4 2 0 -2 -4 -6
0
5
10
15
20
25
30
t=waktu
Gambar 18.3. Kurve Hasil Solusi Getaran Teredam Aplikasi 2: Penyelesaian persamaan diffrensial orde 2 getaran paksa. Bentuk umum persamaan diffrensial getaran paksa
d2y dy c ky A cos(t ) 2 dt dt d2y c dy k y A cos(t ) 2 dt m dt m
m
Fungsi eksternal getaran paksa %getaran paksa %my''+cy'+ky= a cos wt %nama file getarp.m function dydt=getarp(t,y); m=1;c=0.5;k=2; dydt=[y(2);-c/m*y(2)-k/m*y(1)+2*cos(3*t)];
139
Sahyar Econophysics Unimed Medan
Coding program: %Getaran paksa m=1;c=0.5;k=2; [t y]=ode45('getarp',0,30,[10;2]); y1=y(:,1); y2=y(:,2); plot(t,y1,'k',t,y2,'.'); grid on; title('Getaran paksa '); xlabel('t=waktu'); ylabel('y=simpangan/kecepatan'); Uji coba program Getaran paksa
y=simpangan/kecepatan
15 10 5 0 -5 -10 -15 0
15 20 25 30 t=waktu Gambar 18.4. Kurve Hasil Solusi Getaran Paksa
140
5
10
Sahyar Econophysics Unimed Medan
Aplikasi 3: Penyelesaian persamaan diffrensial orde 2 getaran Van der Pol. Bentuk umum persamaan diffrensial getaran Van der Pol
d2y dy m(1 y 2 ) y 0 2 dt dt 2 d y dy m(1 y 2 ) y 2 dt dt 0 m 10 Fungsi Ekternal getaran Van der Pol %getaran Van der Pol % y”=-m(1-y^2)y’-y %nama file van.m function dydt=van(t,y); m=2; dydt=[y(2);m*(1-y(1)^2)*y(2)-y(1)]; Coding Program: %Getaran Van der Pol % y”=m(1-y^2)y’+y [t y]=ode45('van',0,30,[2;0]); y1=y(:,1); y2=y(:,2); plot(t,y1,'k',t,y2,'.'); grid on; title('Getaran Van der Pol'); xlabel('t=waktu'); ylabel('y=simpangan/kecepatan'); Uji Coba Program
141
Sahyar Econophysics Unimed Medan
Getaran Van der Pol 4
y=simpangan/kecepatan
3 2 1 0 -1 -2 -3 -4
0
5
10
15 t=waktu
20
25
30
Gambar 18.5. Kurve Hasil Solusi Getaran Van der Pol
H. Latihan 1. Rancang program komputer untuk menghitung besar usaha jika diketahui fungsi gaya mengikuti persamaan berikut: F=x.exp(x1/3). 2. Pada getaran dengan redaman, selidiki nilai-nilai m, c dan k melalui tampilan grafik agar terjadi: a) getaran dengan redaman, b) keadaan kritis, dan c)keaadan redaman lebih.
142
Sahyar Econophysics Unimed Medan
BAB 19 OPERASI MATLAB PADA MATEMATIK SIMBOLIK A.Tujuan Pembelajaran 1. Menggunakan sintaks standar MatLab dalam menyelesaikan persamaan simbolik matematika.
B.Teori Operasi matematik simbolik menggunakan fasilitas Matlab adalah proses menyelesaikan persamaan atau model matematik dengan cara memberikan perintah langsung pada persamaan atau model matematik yang akan diselesaikan. Operasi matematik simbolik menggunakan Matlab dapat langsung dioperasikan pada Comand window tanpa menyusun program komputer. Pengguna dapat langsung mengoperasikannnya dengan memberi perintah yang sesuai seperti pada kalkulator. Berikut akan diuraikan beberapa operasi Matlab pada matematika simbolik diantaranya adalah: penyelesaian persamaan matematik, diffrensial fungsi, integral fungsi, grafik fungsi, persamaan diffrensial orde satu dan persamaan diffrensial orde dua.
C.Contoh Aplikasi 1. Menyelesaikan persamaan matematik Sintaks: solve(‘persamaan matematik’) Contoh 1: » solve('4*x=60') ans = 15 Contoh 2: » solve('exp(3*x)=25') ans = 1/3*log(25) Contoh 3: » solve('sin(2*x)=cos(x)') ans = [ 1/2*pi] [ -1/2*pi] [ 1/6*pi]
143
Sahyar Econophysics Unimed Medan
[ 5/6*pi] Contoh 4 » solve('2*x^2=20') ans = [ 10^(1/2)] [ -10^(1/2)] 2. Diffrensial suatu fungsi Sintaks: diff(‘fungsi’) Contoh 1: » diff('6*x^3+x^2') ans = 18*x^2+2*x Contoh 2 » diff('sin(2*x)^2') ans = 4*sin(2*x)*cos(2*x) Contoh 3 » diff('exp(4*x^2+3*x)') ans = (8*x+3)*exp(4*x^2+3*x) Contoh 4 » diff('6^(2*x^2+x)') ans = 6^(2*x^2+x)*(4*x+1)*log(6) 3. Integral suatu fungsi Sintaks: int(‘fungsi’) Contoh 1 » int('5*x^3+4*x^2') ans = 5/4*x^4+4/3*x^3 Contoh 2 » int('cos(4*x)') ans = 1/4*sin(4*x) Contoh 3 » int('sin(x)*cos(x)^2') ans = -1/3*cos(x)^3
144
Sahyar Econophysics Unimed Medan
Contoh 4 » int('(3*x^2+x)/(x+2)') ans = 3/2*x^2-5*x+10*log(x+2) 4. Menggambar grafik fungsi Sintaks; ezplot(‘fungsi’); grid on; Keterangan: Grafik yang ditampilkan adalah grafik 2D sebagai y=f(x) Contoh 1 » ezplot('4+5*x') » grid on 4+5 x 40 30 20 10 0 -10 -20 -30 -6
-4
-2
0 x
2
4
Gambar 19.1. Kurve Fungsi 4+5x Contoh 2 » ezplot('sin(3*x)^2') » grid on
145
Sahyar Econophysics Unimed Medan
6
sin(3 x)2 1 0.8 0.6 0.4 0.2 0 -6
-4
-2
0 x
2
4
6
Gambar 19.2. Kurve Fungsi sin(3*x)^2 Contoh 3 » ezplot('x^2-4*x-21') » grid on 2
x -4 x-21
40 30 20 10 0 -10 -20 -30 -6
-4
-2
0 x
2
4
Gambar 19.3. Kurve Fungsi 'x^2-4*x-21' 5. Persamaan diffrensial orde satu Sintaks 1: dsolve(‘Dy=f(t,y)’) Sintaks 2: : dsolve(‘Dy=f(t,y)’,’y(0)=a’)
146
Sahyar Econophysics Unimed Medan
6
Keterangan: dy Dy dt y(0) nilai y pada t 0 Contoh 1 » dsolve(‘Dy=3*t^2’) ans = t^3+C1 Contoh 2 » dsolve('Dy=3*t^2','y(0)=1') ans = t^3+1 Contoh 3 » dsolve(‘Dy=4*t^2+2*y’) ans = -2*t^2-2*t-1+exp(2*t)*C1 Contoh 4 » dsolve('Dy=4*t^2+2*y','y(0)=5') ans = -2*t^2-2*t-1+6*exp(2*t) Contoh 5 » dsolve(‘Dy=3*sin(2*t)+y’) ans = -6/5*cos(2*t)-3/5*sin(2*t)+exp(t)*C1 6. Persamaan diffrensial Orde dua Sintaks 1: dsolve(‘D2y+f(t,y)*Dy+f(t,y)*y=f(t,y)’) Sintaks 2: dsolve(‘D2y=f(t,y)*Dy+f(t,y)*y’,’Dy(0)=a’,’y(0)=b’) Keterangan: d2y dt 2 dy Dy dt D2 y
dy pada t 0 dt y(0) nilai y pada t 0 Dy(0) nilai
147
Sahyar Econophysics Unimed Medan
Contoh 1 » dsolve('D2y-2*Dy-3*y=0') ans = C1*exp(3*t)+C2*exp(-t) Contoh 2 » dsolve('D2y-2*Dy-3*y=2*t') ans = 4/9-2/3*t+C1*exp(3*t)+C2*exp(-t) Contoh 3 » dsolve('D2y-2*Dy-3*y=0','Dy(0)=0','y(0)=4') ans = exp(3*t)+3*exp(-t)
D.Latihan Selesaikan persamaan matematik berikut dengan menggunakan sintaks standar Matlab:
1.Integral dari fungsi f(x) 2x x 2 exp( x1/ 2 ) 2.Derivatif fungsi f(x) 2cos(x 2 ) sin( x) dx 3xt 0 dt d2 x dx 4.Persamaan diffrensial : 2 3 5 x 0 dt dt 2 d x dx 5.Persamaan diffrensial : 2 2 x 2 cos(t ) dt dt 3.Persamaan diffrensial :
148
Sahyar Econophysics Unimed Medan
BAB 20 PENYELESAIAN FUNGSI KHAS DAN TRANSFORMASI INTEGRAL A.Tujuan Pembelajaran 1. Menggunakan fungsi standar matlab dalam menyelesaikan fungsi-fungsi khas. 2. Menggunakan fungsi standar matlab dalam menyelesaikan transformasi integral.
B.Teori Fungsi khusus adalah fungsi yang diperoleh dari penyelesaian suatu persamaan tertentu. Beberpa fungsi khas yang akan dibahas dalam bab ini adalah fungsi gamma, beta, Bessel dan Legendre. Fungsi gama dan fungsi beta adalah fungsi yang diperoleh dari penyelesaian bentuk integral. Fungsi Bessel adalah fungsi yang diperoleh dari penyelesaian persamaan diffrensial orde dua Bessel. Fungsi Legendre adalah fungsi yang diperoleh dari penyelesaian persamaan diffrensial orde dua Legendre. Transformasi integral adalah proses tranformasi suatu fungsi menjadi fungsi baru dengan menggunakan operator integral. Taransformasi yang akan dibahas dalam bab ini adalah transformasi Laplace dan Fourier.
C.Fungsi Gamma. 1. Defenisi fungsi gama:
(n) t n1e t dt ; n 0 0
(n) fungsi gamma Rumus rekursi (n 1) n(n) (n 1) n! ; n 0,1,2,3... Untuk n 0 (n)
(n 1) n
2. Sintaks Fungsi gamma dengan MatLab Sintaks : y= gamma(x); x=real;
149
Sahyar Econophysics Unimed Medan
3. Aplikasi Contoh 1: » gamma(3) ans = 2 Contoh 2 » gamma(4.7) ans = 15.4314 Contoh 3 » gamma(-3.8) ans = 0.2996 Contoh 4: Grafik fungsi gamma untuk n>0 » x=1:0.2:5; » y=gamma(x); » plot(x,y) » grid on » title('Grafik fungsi gamma'); » xlabel('n'); » ylabel('gamma(n)'); Grafik fungsi gamma
25
gamma(n)
20 15 10 5 0
1
1.5
2
2.5
3 n
3.5
4
4.5
Gambar 20.1.Kurve Fungsi Gamma n>0 (1) Contoh 5: Grafik fungsi gamma untuk n>0 » x=0.1:0.1:5; » y=gamma(x); » plot(x,y)
150
Sahyar Econophysics Unimed Medan
5
» grid on » title('Grafik fungsi gamma'); » xlabel('n'); » ylabel('gamma(n)'); Grafik fungsi gamma
25
gamma(n)
20 15 10 5 0
0
1
2
3
4
n
Gambar 20.2.Kurve Fungsi Gamma n>0 (2) Contoh 5: Grafik fungsi gamma untuk n<0 » x=-5.1:0.13:-0.1; » y=gamma(x); » plot(x,y) » grid on » title('Grafik fungsi gamma'); » xlabel('n'); » ylabel('gamma(n)');
151
Sahyar Econophysics Unimed Medan
5
Grafik fungsi gamma 30
gamma(n)
20
10
0
-10
-20 -6
-5
-4
-3 n
-2
-1
Gambar 20.3.Kurve Fungsi Gamma n<0
D.Fungsi Beta 1. Defenisi fungsi Beta: 1
B(m, n) t m1 (1 t ) n1 dt ; m 0, n 0 0
B(m, n) fungsi beta Hubungan fungsi dengan gamma B(m, n)
(m)(n) (m n)
2.Sintaks fungsi Beta dengan Matlab Sintaks: beta(a,b); a,b : positif dan real; 3.Aplikasi: Contoh 1: » beta(3,4) ans = 0.0167 Contoh 2: » beta(1.7,3.4)
152
Sahyar Econophysics Unimed Medan
0
ans = 0.0970
E.Fungsi Bessel 1. Defenisi fungsi Bessel
Persamaan diffrensial Bessel x 2 y" xy '( x 2 n 2 ) y 0; n order fungsi Solusi persamaan diffrensial berupa : Fungsi Bessel jenis pertama (1) k ( x / 2) 2 k n k 0 k! ( n k 1) Fungsi Bessel jenis kedua
J n ( x)
Yn ( x)
J n ( x) cos n J n ( x) sin n
2. Sintaks fungsi Bessel dengan Matlab. Sintaks fungsi bessel jenis pertama: besselj(n,x); n=(orde); x tipe real; Sintaks fungsi bessel jenis kedua : bessely(n,x); n=(orde); x tipe real; 3. Aplikasi Contoh 1: fungsi Bessel jenis pertama » besselj(2,4) ans = 0.3641 Contoh 2: fungsi Bessel jenis kedua » bessely(2,4) ans = 0.2159 Contoh 3: fungsi Bessel jenis pertama orde pecahan » besselj(3.5,2.8) ans = 0.1772 Contoh 4: fungsi Bessel jenis kedua orde pecahan » bessely(3.5,2.8) ans = -0.8016 Contoh 5: fungsi Bessel jenis pertama orde negatif » besselj(-2,8) ans =
153
Sahyar Econophysics Unimed Medan
-0.1130 Contoh 6: Grafik fungsi Bessel jenis pertama %Fungsi bessel jenis pertama x=0:0.1:10; j0=besselj(0,x); j1=besselj(1,x); plot(x,j0,'k',x,j1,'b') grid on title('Grafik fungsi Bessel J0(x) dan J1(x)'); xlabel('x'); ylabel('J0(x)/J1(x)'); Grafik fungsi Bessel J0(x) dan J1(x)
1
J0(x)/J1(x)
0.5
0
-0.5
0
2
4
6
8
x
Gambar 20.4.Kurve Fungsi Bessel Contoh 7: Grafik fungsi Bessel jenis kedua %Fungsi bessel jenis kedua x=0:0.1:10; j0=bessely(0,x); j1=bessely(1,x); plot(x,j0,'k',x,j1,'b') grid on title('Grafik fungsi Bessel Y0(x) dan Y1(x)'); xlabel('x'); ylabel('Y0(x)/Y1(x)');
154
Sahyar Econophysics Unimed Medan
10
Grafik fungsi Bessel Y0(x) dan Y1(x) 1 0
Y0(x)/Y1(x)
-1 -2 -3 -4 -5 -6 -7 0
2
4
6
8
10
x
Gambar 20.5.Kurve Fungsi Bessel Jenis kedua
F.Fungsi Legendre 1. Defenisi fungsi Legendre Persamaan diffrensial Legendre (1 x 2 ) y"2 xy ' n(n 1) y 0; n order fungsi Solusi persamaan diffrensial disebut : Fungsi Legendre 1 dn 2 Pn ( x) n ( x 1) n ; n 0,1,2,... n 2 n! dx P0 ( x) 1; P1 ( x) x; P2 ( x) 12 (3x 2 1); P3 ( x) 12 (5 x 3 3x); P4 ( x) 18 (35 x 4 30 x 2 3) Associated Legendre Function : Pnm ( x) (1 x 2 ) m / 2
dm Pn ( x) dx m
Pn0 ( x) Pn ( x) Pnm ( x) 0, jika m 0
155
Sahyar Econophysics Unimed Medan
2. Sintaks fungsi Legendre dengan Matlab. Matlab menyediakan fasilitas fungsi standar untuk Associated Legendre Function. Sintaks fungsi Legendre : legendre(n,x); m=0,1,2,...n; -1<=x<=1; Contoh: legendre(3,0.1); artinya: menentukan nilai fungsi Legendre untuk x=0.1; orde n=3 dan m=0,1,2,3; sehingga ada empat nilai fungsi. 3. Aplikasi Contoh 1 » legendre(3,0.2) ans = -0.2800 1.1758 2.8800 -14.1091 Arti output program: -0.2800, nilai fungsi untuk n=3;m=0 1.1758, nilai fungsi untuk n=3;m=1 2.8800; nilai fungsi untuk n=3;m=2 -14.1091; nilai fungsi untuk n=3;m=3 Contoh 2: » y=legendre(3,0:0.1:0.3); »y y= n=3; m 0 1 2 3
X=0 0 1.5000 0 -15.0000
X=0.1 -0.1475 1.4179 1.4850 -14.7756
Contoh 3: Kurve fungsi Legendre Coding: %Kurve fungsi Legendre clc; clear n=input('Orde fungsi legendre='); x=-1:0.02:1; p=legendre(n,x); y=p(1,:); plot(x,y) grid on xlabel('x');
156
Sahyar Econophysics Unimed Medan
X=0.2 -0.2800 1.1758 2.8800 -14.1091
X=0.3 -0.3825 0.7870 4.0950 -13.0213
ylabel('Nilai fungsi '); title(['Kurve fungsi Legendre m=0;n=',num2str(n)]); Testing 1: Output Program: Orde fungsi legendre=4 Kurve fungsi Legendre m=0;n=4 1
Nilai fungsi
0.5
0
-0.5 -1
-0.5
0 x
0.5
Gambar 20.6.Kurve Fungsi Legendre m=0, n=4 Testing 2: Output Program: Orde fungsi legendre=5
157
Sahyar Econophysics Unimed Medan
1
Kurve fungsi Legendre m=0;n=5 1
Nilai fungsi
0.5
0
-0.5
-1 -1
-0.5
0 x
0.5
1
Gambar 20.7.Kurve Fungsi Legendre m=0, n=5
G.Transformasi Laplace 1. Konsep transfomasi Laplace
F ( s ) f (t )e st dt 0
Contoh : f (t ) exp( at )
F ( s ) exp( at )e st dt 0
1 sa
2. Sintaks tranformasi Laplace Sintaks 1 : y=laplace(g); g=sym(‘f(t’); transformasi fungsi Sintaks 2 : ilaplace(y); Transformasi kembali ke g=f(t) Sintaks 3 : y=laplace(diff(g)); g=sym(‘f(t)’); transformasi diffrensial fungsi. 3. Aplikasi Contoh 1: » g=sym('exp(5*t)'); » y=laplace(g) y= 1/(s-5) Transformasi balik: » ilaplace(y)
158
Sahyar Econophysics Unimed Medan
ans = exp(5*t) Contoh 2: » g=sym('sin(7*t)') g= sin(7*t) » y=laplace(g) y= 7/(s^2+49) Tranformasi balik: » ilaplace(y) ans = 1/7*49^(1/2)*sin(49^(1/2)*t) Contoh 3 » g=sym('5*t^3+7*t^2+11') g= 5*t^3+7*t^2+11 » y=laplace(g) y= 30/s^4+14/s^3+11/s Transformasi balik: » ilaplace(y) ans = 5*t^3+7*t^2+11 Contoh 4: » g=sym('2*t^2+t') g= 2*t^2+t » y=laplace(diff(g)) y= 4/s^2+1/s Transformasi balik » ilaplace(y) ans = 4*t+1 Contoh 5: » g=sym('2*t^2+cos(2*t)') g= 2*t^2+cos(2*t)
159
Sahyar Econophysics Unimed Medan
» y=laplace(diff(g)) y= 4/s^2-4/(s^2+4) Transformasi balik: » ilaplace(y) ans = 4*t-4^(1/2)*sin(4^(1/2)*t)
H.Transformasi Fourier 1. Konsep transfomasi Fourier
F ( w)
f (t )e
jwt
dt
1 f (t ) 2
F (w)e
jwt
dw
2. Sintaks dalam Matlab: Sintaks 1 : y=fourier(g); g=f(t); Transformasi fungsi g. Sintaks 2 : ifourier(y); Transformasi balik 3. Aplikasi Contoh 1: » g=sym('t*exp(-t^2)') g= t*exp(-t^2) » y=fourier(g) y= -1/2*i*pi^(1/2)*w*exp(-1/4*w^2) Transformasi balik » ifourier(y) ans = 1/2*4^(1/2)*x*exp(-x^2) Contoh 2: » g=sym('2*t^2') g=
160
Sahyar Econophysics Unimed Medan
2*t^2 » y=fourier(g) y= -4*pi*Dirac(2,w) Transformasi balik. » ifourier(y) ans = 2*x^2
161
Sahyar Econophysics Unimed Medan
BAB 21 MENGINTEGRASIKAN PROGRAM A.Tujuan Pembelajaran 1. Menyusun program komputer untuk mengintegrasikan beberapa program komputer dalam bentuk menu pilihan.
B.TEORI Sejumlah program yang dirancang dengan menggunakan Matlab dapat diintergrasikan ke dalam satu program menu dengan cara memanggil nama file program yang akan diintegrasikan. Logika program yang digunakan adalah logika perulangan dengan perintah while...end dan logika keputusan dengan perintah switch...end. Perintah while...end digunakan untuk mengulang program menu, sedangkan perintah switch...end digunakan untuk memilih pilihan menu program. File program menu dan file-file program yang akan diintegrasikan harus berada dalam direktori yang sama. Algoritma umum program menu While kondisi Menu; Pilihan: pilih Switch pilih Case 1 File1; Case 2 File2; ........ End; Lanjut y/t: ........ End;
C.CONTOH APLIKASI. Contoh 1: 1. Defenisi Masalah
162
Mengintegrasikan sejumlah program kedalam menu. Sahyar Econophysics Unimed Medan
2. Struktur data Unit
Variabel
Type of data
Keterangan
Nomor pilihan
jb
Numeric
Input data
Sejumlah program dalam file eksternal
File1, file2, file3, file4
3. Algorithm program a. b.
Start Input data jb’y’ c. Process dan Output while jb=='y' | jb=='Y' tampil (' Menu '); tampil(' 1. Luas segi tiga '); tampil(' 2. Deret Aritmatik'); tampil(' 3. Standar Deviasi'); tampil(' 4. Grafik sin dan cos '); tampil(' 5. Exit'); jbinput(' Input pilihan anda = '); switch jb case 1 file1;%nama file hitung luas case 2 file2;%nama file deret case 3 file3;%nama file standar deviasi case 4 file4;%nama file grafik sin dan cos case 5 jb='t'; end disp(''); jb=input('Lanjutkan ? y/t =','s'); end d.
Stop
3. Coding
163
Sahyar Econophysics Unimed Medan
Output data
%menu program jb='y'; while jb=='y'|jb=='Y' clc; disp(' Menu'); disp(' 1. Luas segi tiga '); disp(' 2. Deret Aritmatik'); disp(' 3. Standar Deviasi'); disp(' 4. Grafik sin dan cos '); disp(' 5. Exit'); disp(' '); jb=input(' Input pilihan anda = '); switch jb case 1 PRAC1;%nama file hitung luas case 2 PRAC2;%nama file deret case 3 PRAC3;%nama file standar deviasi case 4 PRAC4;%nama file grafik sin dan cos case 5 jb='t'; end disp(''); jb=input('Lanjutkan ? y/t =','s'); end;
D.Latihan. 3. Susunlah program komputer yang dapat mengintegrasikan beberapa permasalahan pada gerak lurus berubah beraturan yang meliputi: perhitungan kecepatan, jarak tempuh, grafik kecepatan versus t, grafik jarak vs t. 4. Susunlah program komputer yang dapat mengintegrasikan beberapa permasalahan pada gerak peluru yang meliputi: perhitungan kecepatan, jarak tempuh, jauh dan tinggi tembakan maksimum dan grafik lintasan peluru. 5. Sama seperti soal 1 dan 2 kembangkan untuk kasus pada listrik dan kemagnetan.
164
Sahyar Econophysics Unimed Medan
Daftar Bacaan Attaway Stormy, 2009. Matlab:A Practical Introduction to Programming and Problem Solving. College of Engineering, Boston University Boston, MA Brassard G. And Bratley P. 1998. Algorithmics. Prentice Hall. Newjersey. Brian R. Hunt Ronald L. Lipsman Jonathan M. Rosenberg , 2001. A Guide to MATLAB for Beginners and Experienced Users. Cambridge University Press
Budi Sutedjo dan Michael AN. 2000. Algoritma dan Teknik Pemrograman. Yogyakarta: Penerbit Andi. Carl Reynolds and Paul Tymann, 2005. Principles of computer science. Schaum’s Outline Series McGRAW-HILL Gonnect, G.H. 1998. Handbook of Algorithm and Data Structure. Addison Wesley. Hanselman D dan Littlefield B. 1998. The Student Edition of MATLAB. Prentice Hall, Englewood Cliffs. Newjersey. Jaan Kinsalaas. 2010. Numerical Methods in Engineering with MatLab. Cambridge University. Penny J dan Lindfield G. 1998. Numerical Methods Using Matlab. Ellis Horwood. New York. Sigmon, K. 1994. Matlab Primer, 4th Edition, CRC Press, Boca Raton. Soegeng. 2000. Visualisasi Fisika. Gramedia Jakarta. Suarga. 2004. Algoritma Pemrograman. Penerbit Andi Yogyakarta. ...................., Learning MATLAB. Copyright 1999 - 2001 by The MathWorks, Inc.
165
Sahyar Econophysics Unimed Medan