oleh : prof. dr. sahyar, m.s. - · pdf fileuntuk penyelesaian masalah dan c) ada bahasa...

165
1 Sahyar Econophysics Unimed Medan OLEH : PROF. DR. SAHYAR, M.S. UNIVERSITAS NEGERI MEDAN

Upload: phamquynh

Post on 06-Feb-2018

250 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

1 Sahyar Econophysics Unimed Medan

OLEH :

PROF. DR. SAHYAR, M.S.

UNIVERSITAS NEGERI MEDAN

Page 2: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

2 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.

Page 3: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

3 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 dan

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.

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.

Page 4: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

4 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 lain-

lain.

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 masalah dalam

pemrograman dengan komputer adalah :

1. Defensisi masalah

i. Tentukan apa yang menjadi masalah

ii. Tentukan data input dan output

2. Struktur data.

Page 5: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

5 Sahyar Econophysics Unimed Medan

i. Tentukan variabel untuk masing-masing data

ii. Tentukan tipe data untuk masing-masing variabel.

3. Algoritma program komputer

i. Susun algoritma untuk input, proses dan output.

4. Pengkodean

i. Pilih bahasa pemrograman

ii. Terjemahkan algoritma dalam bahasa pemrograman

5. 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.

6. Dokumentasi program

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:

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

connect

er

Off page

connector

Dokumen cetak Display

Terminator Proses Input/output

data

Seleksi Predefined

data.

Predefined

proses

Page 6: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

6 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.

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

Mulai

Read(a);

read(b)

a>b Disp(a)

Disp(b)

selesai

T

N

Page 7: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

7 Sahyar Econophysics Unimed Medan

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.

Mulai

Read(a);

read(t)

selesai

Luas=0.5*a*t

Luas

Page 8: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

8 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.

Page 9: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

9 Sahyar Econophysics Unimed Medan

BAB 2 TIPE DATA,VARIABEL, NILAI DAN EKSPRESI

A.TUJUAN PEMBELAJARAN

1. Menjelaskan perbedaan tipe data dasar dan tipe data bentukan.

2. Menjelaskan perbedaan variabel dan konstanta.

3. Menjelaskan aturan membuat variabel dalam pemrograman.

4. Menjelaskan cara memberi nilai variabel.

5. 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:

Page 10: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

10 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

Tabel 2.1. Operasi data Logik

A B A and B A or B not A

False False False False True

False True False True True

True False False True False

True 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.

Page 11: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

11 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;

Page 12: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

12 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

Page 13: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

13 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.

Page 14: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

14 Sahyar Econophysics Unimed Medan

BAB 3 OPERATOR DAN FUNGSI STANDAR

A.Tujuan Pembelajaran 1. Menjelaskan lima jenis operator dasar Aritmatika.

2. Menjelaskan enam jenis operator dasar relasi.

3. Menjelaskan tiga jenis operator dasar logika.

4. Menggunakan fungsi standar matematika dalam MATLAB

5. 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

Power, a

b

^. 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)

Page 15: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

15 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 =

Page 16: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

16 Sahyar Econophysics Unimed Medan

0

%Operator lebih besar

» p>q

ans =

0

%Operator lebih kecil » p<q

ans =

1

%Operator negasi » p~=q

ans =

1

3.Operator logika

Tabel 3.3. Operator Logika

Operator 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

Page 17: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

17 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 Fungsi Kegunaan No Fungsi Kegunaan

1 abs Nilai absolut 13 imag Bagian imajiner bilangan kompleks

2 acos Invers kosinus 14 log Logaritma natural

3 acosh Invers hyperbolik kosinus 15 log10 Logaritma umum

4 asin Invers sinus 16 real Bagian real bilangan kompleks

5 asinh Invers hyperbolik sinus 17 rem Sisa pembagian

6 atan Invers tangen 18 round Pembulatan ke arah bilangan bulat

7 atanh Invers hyperbolik tangen 19 sign Tanda fungsi (1 atau -1)

8 cos Kosinus 20 sin Sinus

9 cosh Kosinus hyperbolik 21 sinh Sinus hyperbolik

10 exp Eksponensial 22 sqrt Akar pangkat 2

11 fix Pembulatan ke arah nol 23 tan tangen

12 floor Pembulatan ke arah minus 24 tanh Tangen hyperbolik

Tabel 3.5. Fungsi standar untuk data Teks atau String

No Fungsi Kegunaan

1 strcmp Memeriksa kesamaan dua data text. Output program type data logic

(benar atau salah). Contoh: hasil=strcmp(t1,t2);

2 strcat Menggabungkan dua data text. Contoh: gabung(t1,t2);

3 isletter Memeriksa karakter huruf atau lainnya. Bernilai 1 jika huruf dan nol jika

bukan huruf.

4 isspace Memeriksa apakah ada spasi atau tanda lain dalam data text, jika ada

maka akan bernilai 1 selainnya nol.

5 int2str Merubah data integer atau array menjadi text

6 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

Page 18: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

18 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

Page 19: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

19 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. Jelaskan lima jenis operator dasar Aritmatika dalam MATLAB.

2. Jelaskan enam jenis operator dasar relasi dalam MATLAB.

3. Menjelaskan tiga jenis operator dasar logika dalam MATLAB.

4. Berikan sepuluh contoh menggunakan fungsi standar matematika dalam

MATLAB

5. Berikan lima contoh menggunakan fungsi standar untuk data teks dalam

MATLAB

Page 20: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

20 Sahyar Econophysics Unimed Medan

BAB 4 INPUT OUTPUT DATA DALAM MATLAB

A.Tujuan Pembelajaran 1. Menggunakan statemen input untuk data numerik.

2. Menggunakan statemen input untuk data teks.

3. Menggunakan statemen output untuk data numerik.

4. 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 Arti

input Untuk input data melalui keyboard

% Memberi baris komentar pada program komputer

.(titik) Tanda desimal

; Jika variabel diberi tanda ; maka nilai variabel tidak

ditampilkan ke layar

disp Menampilkan data atau variabel text

fprintf Menampilkan data numerik

\n Memesan satu baris kosong

%7.3f 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’);

Page 21: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

21 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

Page 22: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

22 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

Page 23: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

23 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’);

Page 24: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

24 Sahyar Econophysics Unimed Medan

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)

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

Page 25: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

25 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.

Page 26: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

26 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

Page 27: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

27 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 Variabel Type of data Keterangan

Alas a Real/Numeric Input data

Tinggi t Real/Numeric Input data

Luas luas Real/Numeric Output data

3. Algorithm program

Gambar 5.1. Folwchart hitung luas segitiga

4. Coding dalam MatLab

%Computer Program for caculating area of triangle

%Input data

a= input(' Alas = ');

a, t

luas = 0.5 * a*t

luas

Start

Stop

Page 28: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

28 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 Variabel Type of data Keterangan

Velocity v Real/Numeric Input data

Mass m Real/Numeric Input data

Kinetic Energy ke Real/Numeric Output data

3. Algorithm program

Page 29: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

29 Sahyar Econophysics Unimed Medan

Algoritma menggunakan flowchart

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 = ');

v, m

ke = 0.5 * m*v^2

ke

Start

Stop

Page 30: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

30 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.

Page 31: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

31 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

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

kondisi

i

Proses

F

T

Page 32: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

32 Sahyar Econophysics Unimed Medan

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

Gambar 6.3. Flowchart if then bentuk tiga kasus

kondisi

Proses1

F

T

Proses2

Kondisi1

Proses1

F

T

Kondisi2

Proses2

T

F

Proses3

Page 33: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

33 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)

Page 34: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

34 Sahyar Econophysics Unimed Medan

3.Bentuk keputusan tiga kasus

clc;

a=10;

b=10;

if a>b

disp('Sukses');

elseif a<b

disp('Bahagia');

else

disp('Kedamaian');

end

output program:

Kedamaian (sebab a>b salah; a<b salah, maka yang dieksekusi kasus ketiga)

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 Variabel Type of data Keterangan

Coefficient a a Real/Numeric Input data

Coefficient b b Real/Numeric Input data

Coefficient c c Real/Numeric Input data

Akar-akar real x1 dan x2 Real/Numeric Output data

Akar-akar kompleks x1c dan x2c Real/Numeric Output data

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);

Page 35: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

35 Sahyar Econophysics Unimed Medan

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);

Page 36: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

36 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

Page 37: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

37 Sahyar Econophysics Unimed Medan

1. Defenisi masalah

Konversi data skor menjadi nilai huruf.

Input data: data skor

Data Output: nilai huruf.

No Skor Nilai huruf

1 90 - 100 A (Sangat kompeten)

2 80 - 89 B (Kompeten )

3 70 - 79 C (Cukup kompeten)

4 0- 69 E (Tidak kompeten)

2. Struktur data

Unit Variabel Type of data Keterangan

Nama nm Text Input data

Skor sk Real/Numerik Input data

Nilai huruf nh Text Output data

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

Page 38: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

38 Sahyar Econophysics Unimed Medan

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)

Page 39: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

39 Sahyar Econophysics Unimed Medan

E.Latihan

1. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:

db

c b aP 2

2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:

d

a

db

c bP 2

3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:

d-c b aP 2

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.

Page 40: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

40 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

Page 41: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

41 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 Variabel Type of data Keterangan

Nama nm Text Input data

Golongan gol Numeric Input data

Gaji gaji Numeric Output data

3. Algoritma program

a. Start

b. Input data

Input nm

Input gol

c. Process

Case gol

Case 1

Gaji2500000;

Case 2

Gaji 3500000;

Case 3

Gaji 4500000;

Page 42: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

42 Sahyar Econophysics Unimed Medan

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

Page 43: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

43 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.

Page 44: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

44 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

Gambar 8.1. Flowchart For

Var = awal

Var = var + n

Instruksi-instruksi

Var<= akhir

?

T

F

Page 45: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

45 Sahyar Econophysics Unimed Medan

Bentuk umum

for (var = awal to akhir step n )

……………….

Instruksi-instruksi

………………..

endfor

Keterangan :

1. Variabel perulangan (var ) harus bertipe dasar (integer, real, atau char )

2. Nilai awal harus lebih kecil dari akhir bila n > 0 ( positif )

3. Nilai awal harus lebih besar dari akhir bila n <0 ( negatif )

4. 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

Page 46: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

46 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

Page 47: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

47 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 Variabel Type of data Keterangan

Suku awal a Numeric Input data

Beda b Numeric Input data

Banyak suku n Numeric Input data

suku s Numeric Output data

Total total Numeric Output data

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

Page 48: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

48 Sahyar Econophysics Unimed Medan

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

Page 49: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

49 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.

Page 50: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

50 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

Gambar 9.1. Flowchart While

While (kondisi) do

...........................

Instruksi-instruksi

...........................

End while

Instruksi-instruksi

kondisi

T F

Page 51: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

51 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 Variabel Type of data Keterangan

Kecepatan awal vo Numeric Input data

Percepatan a Numeric Input data

Lama pengamatan lp Numeric Input data

Page 52: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

52 Sahyar Econophysics Unimed Medan

Interval waktu d Numeric Input data

Waktu t Numeric Output data

Kecepatan v Numeric Output data

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

Page 53: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

53 Sahyar Econophysics Unimed Medan

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

Page 54: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

54 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 Variabel Type of data Keterangan

Jawab jb Text Input data

Program Program komputer yang

akan diulang

3. Algorithm program

a. Start

b. 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 =');

Page 55: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

55 Sahyar Econophysics Unimed Medan

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

Page 56: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

56 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.

Page 57: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

57 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);

Page 58: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

58 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 Variabel Type data Keterangan

Kecepatan v Real/Numeric Input data

Massa m Real/Numeric Input data

Energy Kinetik ek Real/Numeric Output data

3.Algoritma program

Page 59: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

59 Sahyar Econophysics Unimed Medan

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

v, m

Fungsi ek

ke

Start

Stop

Page 60: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

60 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 Variabel Type of data Keterangan

Coefficient a A Numeric Input data

Coefficient b B Numeric Input data

Coefficient c C Numeric Input data

Akar-akar real x1 , x2 Numeric Output data

Akar-akar kompleks x1k, x2k Kompleks Output data

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

Page 61: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

61 Sahyar Econophysics Unimed Medan

[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

Page 62: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

62 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.

Page 63: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

63 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

rumus berikut: db

c b aP 2

5. Susun program komputer dengan menggunakan fungsi untuk menghitung

rumus berikut:: d

a

db

c bP 2

Page 64: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

64 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

Page 65: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

65 Sahyar Econophysics Unimed Medan

Tabel 11.1. Operasi pada variabel array dimensi satu.

No Operasi Hasil

1 Penjumlahan dengan sekalar

a=array; k=sekalar

a+k=[a(1)+k, a(2)+k,...a(n)+k]

2 Perkalian dengan sekalar

a=array; k=sekalar

a*k=[a(1)*k, a(2)*k,...a(n)*k]

3 Penjumlahan a= array,

b=array

a+b=[a(1)+b(1), a(2)+b(2),...a(n)+b(n)]

4 Perkalian a= array, b=array a.*b=[a(1)*b(1), a(2)*b(2),...a(n)*b(n)]

5 Pembagian a= array, b=array a./b=[a(1)/b(1), a(2)/b(2),...a(n)/b(n)]

6 Pemangkatan a= array,

b=array, k=sekalar

a.^b=[a(1)^b(1), a(2)^b(2),...a(n)^b(n)]

7 Pemangkatan a= array,

k=sekalar

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

Page 66: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

66 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 4.0000

7.Pemangkatan dua array

» a=[3 7 5 8];

» b=[2 1 5 2];

» a.^b

ans =

9 7 3125 64

8.Data array terstruktur

» x=1:2:10

x =

1 3 5 7 9

» x(4)

ans =

7

» p=0:0.5:6

Page 67: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

67 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 Variabel Type of data Keterangan

Banyak data n Numeric Input data

Data d Numeric Input data

Total total Numeric Output data

Rata2 av Numeric Output data

Standar deviasi ds Numeric Output data

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;

Page 68: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

68 Sahyar Econophysics Unimed Medan

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

Page 69: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

69 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:

XX i 2

iXP

2. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:

)(XP i YXY ii

3. Rancang program komputer untuk menentukan nilai P dari rumusan berikut:

YYY ii 2

i )(XP

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.

Page 70: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

70 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

Page 71: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

71 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 Bentuk

coding

Syarat

1 Penjumlahan dua matriks a+b Orde kedua matriks sama

2 Perkalian dua matriks a*b Baris matriks pertama =

kolom matriks kedua

3 Perkalian elemen-elemen dua

matriks

a.*b Orde kedua matriks sama

3 Invers matriks persegi a inv(a) Matriks bujur sangkar

4 Nilai determinan matriks

persegi a

det(a) Matriks bujur sangkar

5 Nilai eigen matriks persegi a eig(a) Umum

6 Transpose matriks a a’ Umum

Menentukan jumlah kolom

matriks a

rank(a) Umum

7 Menentukan orde matriks a 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)

Page 72: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

72 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

Page 73: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

73 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 0 0 0

» zeros(3)

ans =

0 0 0

0 0 0

0 0 0

9.Matriks satu

» ones(3)

ans =

1 1 1

Page 74: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

74 Sahyar Econophysics Unimed Medan

1 1 1

1 1 1

D.Penyelesaian Sistem Persamaan Linear

Bentuk sistem persamaan linear tiga variabel

Q\PX

QXP

l

h

d

x

x

x

kji

gfe

cba

lk x xj xi

h xg xf xe

d xc xb xa

3

2

1

321

321

321

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 Variabel Type of data Keterangan

Matriks a a Numeric/matriks Input data

Matriks b b Numeric/matriks Input data

Penjumlahan c=a+b Numeric /matriks Output data

Perkalian d=a*b Numeric /matriks Output data

3. Algorithm program

a. Start

Page 75: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

75 Sahyar Econophysics Unimed Medan

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 5 6

Page 76: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

76 Sahyar Econophysics Unimed Medan

7 8 9

3 4 8

Matriks b

b =

2 3 5

4 6 9

2 3 1

Matriks c = a+b

c =

5 8 11

11 14 18

5 7 9

Matriks d= a*b

d =

38 57 66

64 96 116

38 57 59

CONTOH 2:

1. Defenisi masalah.

Menentukan: invers, determinan, dan transpose matriks.

2. Struktur data

Unit Variabel Type of data Keterangan

Matriks a a Numeric/matriks Input data

Matriks b (invers a) b=invers(a) Numeric/matriks Output data

Matriks c (determinan

a)

c=det(a) Numeric /matriks Output data

Matriks d (Transpose

a)

d= a’ Numeric /matriks Output data

3. Algorithm program

Page 77: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

77 Sahyar Econophysics Unimed Medan

a. Start

b. Input data

Baca( a)

c. Process

binvers(a);

cdet(a);

da’; d. Tampil

a

b

c

d

6. Stop

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

Page 78: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

78 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

Page 79: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

79 Sahyar Econophysics Unimed Medan

Penyelesaian sistem persamaan linear.

2. Input and output data

Unit Variabel Type of data Keterangan

Elemen matriks m x m

sistem persamaan linear

a Numeric /matriks Input data

Elemen matriks kolom

sistem persamaan linear

b Numeric/matriks Input data

Elemen matriks kolom

yang nilainya belum

diketahui

x Numeric/matriks Output data

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

Page 80: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

80 Sahyar Econophysics Unimed Medan

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

Page 81: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

81 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 Penjelasan

plot(x,y) 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)

Page 82: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

82 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 Penjelasan

plot(x,y1,c1) 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 Symbol Warna

1 y Yellow

2 m Magenta

3 c Cyan

4 r Red

5 g Green

6 b Blue

7 w White

8 k 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 Penjelasan

grid on Mengaktifkan garis skala grafik

title (‘judul grafik’) Membuat judul grafik

xlabel(‘label pada sumbu x’) Membuat label pada sumbu x

ylabel(‘label pad sumbu y’) Membuat label pada sumbu y

legend(‘keterangan masing-masing grafik’) Membuat keterangan masing-masing grafik

linspace(a,b,n) a= batas bawah sumbu x, batas atas sumbu y, n=jumlah

segmen pada sumbu x

Page 83: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

83 Sahyar Econophysics Unimed Medan

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

Gambar 13.1. Grafik fungsi sinus

Contoh 2: Grafik garis beberapa fungsi pada sumbu xy

Coding

0 2 4 6 8 10 12 14-15

-10

-5

0

5

10

15

x axis

y a

xis

y= A sin x

Page 84: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

84 Sahyar Econophysics Unimed Medan

%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

Gambar 13.2. Grafik fungsi sinus dan cosinus

0 1 2 3 4 5-8

-6

-4

-2

0

2

4

6

8

waktu

sim

pangan

y1= A sin(3t); y2= B cos(5t)

Page 85: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

85 Sahyar Econophysics Unimed Medan

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

Gambar 13.3. Grafik batang fungsi sinus

-2 0 2 4 6 8-15

-10

-5

0

5

10

15

x axis

y a

xis

y= A sin x

Page 86: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

86 Sahyar Econophysics Unimed Medan

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

Gambar 13.4. Grafik tangga fungsi sinus

0 2 4 6 8 10 12 14-15

-10

-5

0

5

10

15

x axis

y a

xis

y= A sin x

Page 87: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

87 Sahyar Econophysics Unimed Medan

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:

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;

2

4

6

8

30

210

60

240

90

270

120

300

150

330

180 0

y= A sin x * cos x

Page 88: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

88 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:

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;

-10 -5 0 5 100

50

100

150

200

Sb x

Sb y

Fungsi ekternal f(x)=x2+5*x+6

Page 89: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

89 Sahyar Econophysics Unimed Medan

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:

Gambar 13.7. Grafik menggunakan data empirik

Contoh 8 : Grafik fungsi dengan menggunakan arsiran.

1 2 3 4 5 62

4

6

8

10

12

14Kuve data empirik

Sumbu x

Su

mb

u y

Page 90: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

90 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:

Gambar 13.8. Grafik arsir fungsi sinus

Contoh 9: Grafik dengan skala logaritma

Coding:

0 2 4 6 8 10 12 14-10

-5

0

5

10

sb x

sb

y

Kurve dengan Arsir

0 2 4 6 8 10 12 14-10

-5

0

5

10

Page 91: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

91 Sahyar Econophysics Unimed Medan

%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:

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.

10-1

100

101

100

101

102

103

104

105

sb x

sb y

Kurve dengan skala log

Page 92: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

92 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 Variabel Type of data Keterangan

Amplitudo a Numeric Input data

Jumlah periode n Numeric Input data

Simpangan y Numeric Input data

Sudut x Numeric (radian) Input data

Graphics Output data

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

Page 93: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

93 Sahyar Econophysics Unimed Medan

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

Page 94: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

94 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 Variabel Type of data Keterangan

Amplitudo a Numeric Input data

Jumlah priode n Numeric Input data

Simpanagan y Numeric Input data

Sudut x Numeric (radian) Input data

Graphics Output data

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')

Page 95: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

95 Sahyar Econophysics Unimed Medan

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

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 Variabel Type of data Keterangan

0 5 10 15 200

5

10

15

x axis

y a

xis

y= A tan x

data1

0 5 10 15 200

5

10

15

x axis

y a

xis

y= A (sin x)2

data1

Page 96: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

96 Sahyar Econophysics Unimed Medan

Amplitudo a Numeric Input data

Jumlah periode n Numeric Input data

Simpangan y Numeric Input data

Sudut x Numeric (radian) Input data

Graphics Output data

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

Page 97: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

97 Sahyar Econophysics Unimed Medan

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

0 5 10 15 20-20

-10

0

10

20

x axis

y a

xis

y= A sin x

0 5 10 15 20-20

-10

0

10

20

x axis

y a

xis

y= A cos x

0 5 10 15 20-5

0

5

10

15

x axis

y a

xis

y= A exp(-x)cos(x)

0 5 10 15 200

5

10

15

x axis

y a

xis

y= A (sin x)2

Page 98: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

98 Sahyar Econophysics Unimed Medan

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 x2 + 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* v

2 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.

Page 99: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

99 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)

Page 100: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

100 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

Colormap(fungsi

warna)

Warna

1 hsv Hue-saturation value

2 hot Black-red-yellow-white

3 cool Shades of cyan and magenta

4 pink Pastel shades of pink

5 gray Linear gray scale

6 bone Gray scale with a tinge of blue

7 jet A variant of HSV

8 copper Linear copper-tone

9 prism Prism

10 flag 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 Variabel Type of data Keterangan

Jari-jari r Numeric Input data

Jumlah periode p Numeric Input data

Graphics Output data

3. Algorithm program

Page 101: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

101 Sahyar Econophysics Unimed Medan

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

Page 102: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

102 Sahyar Econophysics Unimed Medan

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 Variabel Type of data Keterangan

Amplitudo a, b Numeric Input data

Jumlah periode n Numeric Input data

Simpangan z Numeric Input data

Sudut x,y Numeric (radian) Input data

Graphics Output data

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)

-10

-5

0

5

10

-10

-5

0

5

100

20

40

60

80

100

x axis

Helix

y axis

z a

xis

data1

Page 103: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

103 Sahyar Econophysics Unimed Medan

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

Page 104: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

104 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)

Page 105: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

105 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)

Page 106: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

106 Sahyar Econophysics Unimed Medan

Contoh 2:

1. Defenisi Masalah

Grapik z = a*x^2 +b* y^2

2. Struktur data

Unit Variabel Type of data Keterangan

Koefisien a, b Numeric Input data

Koordinat x,y,z Numeric Input data

Graphics Output data

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;

Page 107: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

107 Sahyar Econophysics Unimed Medan

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)

Page 108: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

108 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)

Page 109: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

109 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.

Page 110: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

110 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:

Page 111: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

111 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]

Page 112: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

112 Sahyar Econophysics Unimed Medan

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]

2001 2002 20030

100

200

300

400

500

600

700

800

900

Priode

Vo

lum

e

Diagram batang 2D

Beras Jagung

Page 113: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

113 Sahyar Econophysics Unimed Medan

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]

2000 2001 2002 20030

200

400

600

800

1000

1200

1400

Priode

Vo

lum

e

Diagram batang 2D stack

Beras Jagung

Page 114: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

114 Sahyar Econophysics Unimed Medan

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]

2001

2002

2003

2004

0

200

400

600

800

Priode

Diagram batang 3D

Volume

Beras Jagung

Page 115: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

115 Sahyar Econophysics Unimed Medan

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.

20%

50%

30%

Diagram pastel

Beras Jagung Kedelai

Page 116: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

116 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:

01

2

2

1

1 ...)( aXaXaXaXaXf n

n

n

n

n

n

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 Fungsi Kegunaan

1 roots(p) Menentukan akar-akar persamaan polynomial p. Variabel p adalah

koefisien persamaan polynomial dari pangkat n sampai nol dalam

bentuk array.

2 poly(r) Menentukan persamaan polynomial dengan akar-akar r. Variabel r

Page 117: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

117 Sahyar Econophysics Unimed Medan

No Fungsi Kegunaan

adalah akar-akar persamaan polynomial dalam bentuk array.

3 polyval(p,x) Menentukan nilai persamaan plynomial untuk seluruh nilai x.

Variabel x adalah array. Variabel p adalah koefisien-koefisien

persamaan polynomial dalam bentuk array

4 conv(a,b) Perkalian polynomial a dan b

5 deconv(a,b) Pembagian polynomial a dengan b

6 residue(a,b) Sisa pembagian polynomial a dengan b

7 solve(‘f(x)=0’) 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 Variabel Type of data Keterangan

Derajat polynomial n Numeric Input data

Koefisien polynomial a Numeric /array Input data

Akar-akar persamaan r Numeric /array Output data

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(' ');

Page 118: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

118 Sahyar Econophysics Unimed Medan

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-12x

3+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

Page 119: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

119 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 =

Page 120: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

120 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 Variabel Type of data Keterangan

Derajat polynomial n Numeric Input data

Akar-akar persamaan a Numeric /array Input data

Koefisien polynomial p Numeric /array Output data

Skala pada sb x x Numeric/array Output data

Skala pada sb y v Numeic/array Output data

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;

Page 121: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

121 Sahyar Econophysics Unimed Medan

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

Page 122: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

122 Sahyar Econophysics Unimed Medan

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.

-10 -5 0 5 10-20

0

20

40

60

80

100

120Kurve Polynomial

x

y

Page 123: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

123 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.

Tabel 17.1. Fungsi standar untuk fitting data pengamatan

No Fungsi standar Kegunaan

1 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

2 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 1 2 3 4 5 6

y 3 6 10 18 22 25

Data pengamatan 2

x 1 2 3 4 5 6

y 3 6 10 16 20 35

Page 124: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

124 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

Page 125: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

125 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:

Gambar 17.1. Kurve Hasil Fitting n=1

Testing 2.

Banyak data pengamatan = 6

Orde Fitting polynomial = 2

1 2 3 4 5 60

5

10

15

20

25

30Kuve fitting Polynomial

Sumbu x

Su

mb

u y

Page 126: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

126 Sahyar Econophysics Unimed Medan

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:

Page 127: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

127 Sahyar Econophysics Unimed Medan

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 1 2 3 4 5 6

y 5 9 12 10 20 14

Coding program:

%interpolasi

clc;

1 2 3 4 5 60

5

10

15

20

25

30

35Kuve fitting Polynomial

Sumbu x

Su

mb

u y

Page 128: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

128 Sahyar Econophysics Unimed Medan

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

Page 129: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

129 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

Gambar 17.3. Kurve Hasil Interpolasi metode spline

E.Latihan. Data berikut adalah hasil pengukuran pada gerak lurus berubah beraturan:

t(waktu) 1 2 3 4 5 6

S(jarak) 4 20 40 70 110 140

Berdasarkan data tersebut tentukan:

Persamaan polynomial fitting data

Nilai jarak pada t=4,5 dan t=8,1.

1 2 3 4 5 65

10

15

20

25Kurve Interpolasi

Sumbu x

Su

mb

u y

Page 130: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

130 Sahyar Econophysics Unimed Medan

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 Fungsi Keterangan

1 trapz(x,y) Perhitungan integral dengan metode tapesium. Nilai x=batas

integral dan y=fungsi yang akan diintegral.

2 quad(nf,b,a) Perhitungan integral dengan metode quadrature. Parameter

nf= nama file fungsi; b=batas bawah;a=batas atas integral

3 quad8(nf,b,a) 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-12x

2+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;

Page 131: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

131 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

Kurve fungsi

Gambar 18.1. Kurve fungsi yang akan diintegral (1)

0 1 2 3 4 5 6 7 80

10

20

30

40

Grafik fungsi yg diintegral

0 1 2 3 4 5 6 7 80

10

20

30

40

Page 132: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

132 Sahyar Econophysics Unimed Medan

Testing 2

Batas bawah = 2

Batas atas =10

Besar segmen=0.5

Hasil integral :

h =

322

Kurve fungsi

Gambar 18.2. Kurve fungsi yang akan diintegral (2)

2. Metode Quadrature

Aplikasi 1: Menghitung integral f(x)=x3-12x

2+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);

2 3 4 5 6 7 8 9 100

50

100

150

200

Grafik fungsi yg diintegral

2 3 4 5 6 7 8 9 100

50

100

150

200

Page 133: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

133 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

Page 134: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

134 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:

n

i

i

b

a

xfn

ab

dxxf

1

)(1

)(

rata-rata nggilebar x ti

area luas)(

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)= 73 22 xxx

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= ');

Page 135: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

135 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:

n

i

ii

b

a

d

c

yxfn

cdabdydxyxf1

),(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

Page 136: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

136 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

Page 137: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

137 Sahyar Econophysics Unimed Medan

n= 120 hasil= 1.183

n= 160 hasil= 0.959

n= 200 hasil= 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:

),(),( yxgyyxfdx

dy

Bentuk umum persamaan diffrensial orde dua:

),(),(),(2

2

yxhyyxgdx

dyyxf

dx

yd

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:

Page 138: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

138 Sahyar Econophysics Unimed Medan

)1,(1)1,(2)1,(2

:menjadipersamaan maka; dx

dyy2 y;y1 :Misal

),(),(),(2

2

yxhyyxgyyxfdx

dy

yxhyyxgdx

dyyxf

dx

yd

Tabel 18.2. Fungsi standar Penyelesaian persamaan diffrensial

No Nama fungsi Metode Keterangan

1 [t,y]=ode23(nf,0,a,[p,q]); Runge-Kutta 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.

2 [t,y]=ode45(nf,0,a,[p,q]); Runge-Kutta 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.

3 [t,y]=ode23s(nf,0,a,[p,q]); Rosenbrock 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

ym

k

dt

dy

m

c

dt

yd

kydt

dyc

dt

ydm

2

2

2

2

0

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]);

Page 139: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

139 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

Gambar 18.3. Kurve Hasil Solusi Getaran Teredam

Aplikasi 2: Penyelesaian persamaan diffrensial orde 2 getaran paksa.

Bentuk umum persamaan diffrensial getaran paksa

)cos(

)cos(

2

2

2

2

tAym

k

dt

dy

m

c

dt

yd

tAkydt

dyc

dt

ydm

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)];

0 5 10 15 20 25 30-6

-4

-2

0

2

4

6

Getaan teredam

t=waktu

y=

sim

pa

ng

an

/ke

ce

pa

tan

Page 140: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

140 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

Gambar 18.4. Kurve Hasil Solusi Getaran Paksa

0 5 10 15 20 25 30-15

-10

-5

0

5

10

15Getaran paksa

t=waktu

y=

sim

pa

ng

an

/ke

ce

pa

tan

Page 141: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

141 Sahyar Econophysics Unimed Medan

Aplikasi 3: Penyelesaian persamaan diffrensial orde 2 getaran Van der Pol.

Bentuk umum persamaan diffrensial getaran Van der Pol

100

)1(

0)1(

2

2

2

2

2

2

m

ydt

dyym

dt

yd

ydt

dyym

dt

yd

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

Page 142: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

142 Sahyar Econophysics Unimed Medan

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.

0 5 10 15 20 25 30-4

-3

-2

-1

0

1

2

3

4Getaran Van der Pol

t=waktu

y=

sim

pa

ng

an

/ke

ce

pa

tan

Page 143: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

143 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]

Page 144: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

144 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

Page 145: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

145 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

Gambar 19.1. Kurve Fungsi 4+5x

Contoh 2

» ezplot('sin(3*x)^2')

» grid on

-6 -4 -2 0 2 4 6

-30

-20

-10

0

10

20

30

40

x

4+5 x

Page 146: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

146 Sahyar Econophysics Unimed Medan

Gambar 19.2. Kurve Fungsi sin(3*x)^2

Contoh 3

» ezplot('x^2-4*x-21')

» grid on

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’)

-6 -4 -2 0 2 4 6

0

0.2

0.4

0.6

0.8

1

x

sin(3 x)2

-6 -4 -2 0 2 4 6-30

-20

-10

0

10

20

30

40

x

x2-4 x-21

Page 147: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

147 Sahyar Econophysics Unimed Medan

Keterangan:

0 tpaday nilaiy(0)

dt

dyDy

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:

0 tpaday nilaiy(0)

0 tpada nilai )0(

22

2

dt

dyDy

dt

dyDy

dt

ydyD

Page 148: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

148 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:

)cos(22d

:ldiffrensiaPersamaan .5

053d

:ldiffrensian 4.Persamaa

03dt

dx:ldiffrensiaPersamaan .3

)sin()2cos(xf(x) fungsi Derivatif.2

)exp(x2xf(x) fungsi dari 1.Integral

2

2

2

2

2

2/12

txdt

dx

dt

x

xdt

dx

dt

x

xt

x

x

Page 149: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

149 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

1)(n(n)

0nUntuk

...3,2,1,0n ; !)1(

)()1(

rekursi Rumus

gamma fungsi)(

0n ;)(0

1

nn

nnn

n

dtetn tn

2. Sintaks Fungsi gamma dengan MatLab

Sintaks : y= gamma(x); x=real;

Page 150: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

150 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)');

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)

1 1.5 2 2.5 3 3.5 4 4.5 50

5

10

15

20

25Grafik fungsi gamma

n

ga

mm

a(n

)

Page 151: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

151 Sahyar Econophysics Unimed Medan

» grid on

» title('Grafik fungsi gamma');

» xlabel('n');

» ylabel('gamma(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)');

0 1 2 3 4 50

5

10

15

20

25Grafik fungsi gamma

n

ga

mm

a(n

)

Page 152: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

152 Sahyar Econophysics Unimed Medan

Gambar 20.3.Kurve Fungsi Gamma n<0

D.Fungsi Beta

1. Defenisi fungsi Beta:

n)(m

(n)(m)n),(

gammadengan fungsiHubungan

beta fungsi),(

0n0,m ;)1(),( 1

1

0

1

mB

nmB

dtttnmB nm

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)

-6 -5 -4 -3 -2 -1 0-20

-10

0

10

20

30Grafik fungsi gamma

n

ga

mm

a(n

)

Page 153: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

153 Sahyar Econophysics Unimed Medan

ans =

0.0970

E.Fungsi Bessel

1. Defenisi fungsi Bessel

n

xJnxJx

knk

xx

ynxxyyx

nn

k

nkk

sin

)(cos)()(Y

kedua jenis Bessel Fungsi

)1(!

)2/()1()(J

pertama jenis Bessel Fungsi

:berupa ldiffrensiapersamaan Solusi

fungsiorder n ;0)('"

Bessel ldiffrensiaPersamaan

n

0

2

n

222

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 =

Page 154: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

154 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)');

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)');

0 2 4 6 8 10-0.5

0

0.5

1Grafik fungsi Bessel J0(x) dan J1(x)

x

J0

(x)/

J1

(x)

Page 155: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

155 Sahyar Econophysics Unimed Medan

Gambar 20.5.Kurve Fungsi Bessel Jenis kedua

F.Fungsi Legendre

1. Defenisi fungsi Legendre

0m jika ,0)(

)()(

)()1()(P

:Function Legendre Associated

)33035()(P );35()(P

);13()(P ;)(P ;1)(P

0,1,2,...n ;)1(!2

1)(P

Legendre Fungsi

:disebut ldiffrensiapersamaan Solusi

fungsiorder n ;0)1('2")1(

Legendre ldiffrensiaPersamaan

0

2/2m

n

24

81

4

3

21

3

2

21

210

2

n

2

xP

xPxP

xPdx

dxx

xxxxxx

xxxxx

xdx

d

nx

ynnxyyx

m

n

nn

nm

mm

n

n

n

n

0 2 4 6 8 10-7

-6

-5

-4

-3

-2

-1

0

1Grafik fungsi Bessel Y0(x) dan Y1(x)

x

Y0

(x)/

Y1

(x)

Page 156: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

156 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 X=0 X=0.1 X=0.2 X=0.3

0 0 -0.1475 -0.2800 -0.3825

1 1.5000 1.4179 1.1758 0.7870

2 0 1.4850 2.8800 4.0950

3 -15.0000 -14.7756 -14.1091 -13.0213

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');

Page 157: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

157 Sahyar Econophysics Unimed Medan

ylabel('Nilai fungsi ');

title(['Kurve fungsi Legendre m=0;n=',num2str(n)]);

Testing 1:

Output Program:

Orde fungsi legendre=4

Gambar 20.6.Kurve Fungsi Legendre m=0, n=4

Testing 2:

Output Program:

Orde fungsi legendre=5

-1 -0.5 0 0.5 1-0.5

0

0.5

1

x

Nila

i fu

ng

si

Kurve fungsi Legendre m=0;n=4

Page 158: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

158 Sahyar Econophysics Unimed Medan

Gambar 20.7.Kurve Fungsi Legendre m=0, n=5

G.Transformasi Laplace

1. Konsep transfomasi Laplace

asdteatsF

attf

Contoh

dtetfsF

st

st

1)exp()(

)exp()(

:

)()(

0

0

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)

-1 -0.5 0 0.5 1-1

-0.5

0

0.5

1

x

Nila

i fu

ng

si

Kurve fungsi Legendre m=0;n=5

Page 159: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

159 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)

Page 160: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

160 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

dwewFtf

dtetfwF

jwt

jwt

)(2

1)(

)()(

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 =

Page 161: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

161 Sahyar Econophysics Unimed Medan

2*t^2

» y=fourier(g)

y =

-4*pi*Dirac(2,w)

Transformasi balik.

» ifourier(y)

ans =

2*x^2

Page 162: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

162 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

Mengintegrasikan sejumlah program kedalam menu.

Page 163: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

163 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

Output data

3. Algorithm program

a. Start

b. 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

Page 164: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

164 Sahyar Econophysics Unimed Medan

%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.

Page 165: OLEH : PROF. DR. SAHYAR, M.S. -  · PDF fileuntuk penyelesaian masalah dan c) ada bahasa pemrograman untuk ... Array dimensi satu, ... karakter dan string

165 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.