Modul Dasar dasar C
I
Tujuan Praktikum :
a. Mahasis Mahasiswa wa dapat dapat mengen mengenal al bahasa bahasa pemrog pemrograma raman n C++. b. Mahasiswa dapat membuat source code, Struktur Program di C++ dan fungsi dari bahasa C++. c. Mahasiswa Mahasiswa dapat dapat mengkom mengkompile pile source source code code dan memanggil memanggil progra program. m. d. Mahasiswa Mahasiswa dapat dapat mengetahui mengetahui input input dan output output dan mengan menganalisa alisa dari sebuah sebuah program.
Dasar Toeri
1.
Membuat Source Code
Source code merupakan nama lain dari listing program dari suatu program yang akan akan dikom dikompil pile. e. Source Source code code dituli dituliss dengan dengan menggu menggunak nakan an text text editor editor atau aplika aplikasi si pengolah kata lainnya yang disediakan oleh sistem operasi. Misal di sistem operasi linux linux menggu menggunak nakan an text text editor editor vi vi atau atau emacs emacs sedangkan di Microsoft menggunakan notepad . Source code yang dituliskan dengan text editor tesebut harus disimpan dengan nama nama yang yang bereks bereksten tensio sion n *.cpp *.cpp atau *.c. arena arena source source code code dituli dituliss dalam dalam bahasa bahasa pemrograman C! C++
yang akan kita gunakan dalam praktikum "lgoritma dan
Pemrograman.
2.
Mengkompilasi Source Code
Source code bukanlah suatu program, tetapi dari source code ini dapat dihasilkan suatu suatu progra program. m. Progra Program m merupa merupakan kan file file yang yang berext berextensi ensi exe. exe. #inux #inux menye menyedia diakan kan perangkat lunak yang dapat digunakan untuk mengubah suatu source code men$adi program, perangkat lunak ini sering diberi nama sebagai compiler, dan compiler yang ada di #inux salah satunya adalah gcc stau g++.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1
Cara memanggilnya %
g++ nama_source_code.cpp –o nama_program Parameter &o harus dituliskan, sebab kalau tidak, akan membuat hasil compiler berupa file program bernama a.out.
3.
Memanggil Program
'ari hasil compile akan diperoleh suatu file bernama program yang mempunyai extensi *.exe. Program ini dapat di$alankan secara langsung dengan cara menuliskan nama programnya. Contoh % /pertama
4.
men$alankan
program bernama pertama.
Struktur Program di C
'alam bahasa pemrograman C++ strukturnya adalah sebagai berikut% a. (eader (eader.. )x% inclu include deios iostre tream. am.h h b. Main adalah isi dari program diawali -. dan diakhiri dengan ../ ../ Contoh%
1. #include #include #include 2. #define #define square square (x) ((x)*(x)) ((x)*(x)) 3. float float masukand masukandata(v ata(void) oid); ; . float float luas!(floa luas!(float t sisi) ". . void tam!il(fl tam!il(float oat luasn$a); luasn$a); %. int main() main() &. ' . float float sisi sisi; ; 1. 1. floa float t lua luas; s; 11. sisi sisi masuka masukanda ndata( ta(); ); 12. luas luas luas!( luas!(sis sisi); i); 13. tam!il tam!il(lu (luas) as); ; 1. + 1". 1. float masukand masukandata(v ata(void) oid) Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2
1%. 1&. 1. 2. 21. 22. 23. 2. 2". 2. 2%. 2&. 2. 3. 31. 32.
' float in!ut; cout <<,-asukkan sisi u/ursan0kar ; cin >> in!ut; return (in!ut); +
float luas!(float sisi) ' float luas; luas square(sisi); return(luas); + void tam!il (float luas) ' cout << nnluas u/ursan0karn$a adalah << luas << !erse0i,; 33. + !.
"ungsi
0ungsi dalam suatu program sangat berguna untuk membuat source code dari program tersebut men$adi ringkas dan padat. Suatu fungsi dalam source code akan dipanggil dan diker$akan sesuai dengan urut1urutan source code1nya. 0ungsi harus mengembalikan suatu nilai, baik isi maupun kosong, yang disebut 2oid. #ati$an:
1. #include 2. int tamah (int x4 int $) 3. ' . cout <<,erada di dalam fun0si tamah ( )n,; ". cout << 5n0ka 6 ; . cin >> a; %. cout << 5n0ka 66 ; &. cin >> ; . cout << n7an00il fun0si tamah ( ) 8..n ; 1. c tamah(a4); 11. cout << n 9emali ke fun0si main ( )n ; 12. cout << :asil !en/umlahan << a << dan << << adalah << c << n,; 13. cout << nelesai8n,; 1. return ; 1". +
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
3
%.
&nput dan 'utput
Program komputer berfungsi mengolah dan memroses suatu data yang diinputkan men$adi informasi yang dioutputkan men$adi informasi yang dioutputkan. Statemen input dalam c++, cin dengan cara penulisannya % cin (( a)
statemen output dalam c++, cout dengan cara penulisan cout ** +,,,,,,,,,,,,,,,,,,,,,,,+)
-.
nalisa Program
Menganalisa bagian perbagian dan men$elaskan dari kegunaan masing1masing bagian program Contoh%
include iostream.h
!! mencari
34
preprosesor
3include4
file
iostream.h dalam 3 4 yang digunakan untuk input dan output. int main 34
!! men$alankan fungsi main yang dipanggil secara otomatis leh sistem operasi yang akan mengembalikan nilai integer.
1. ' 2. int nomer; 3. cout << -asukkan suatu an0ka ; . cin >> nomer; ". cout << 5n0kan$a adalah << numer; . return ; %. +
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
Tugas
5. 6uatlah source code dari program yang memiliki algoritma sebagai berikut % a. Masukkan suatu kalimat 7 8(allo, ini program pertamaku9 b. :ulis! tampilkan kalimat yang pernah dimasukkan ;. "nalisa program tersebut.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
!
Modul Bilangan Random
II
Tujuan praktikum: •
Memahami pseudo1random pada komputer dan cara membangkitkannya.
•
Mengetahui batasan1batasan pseudo1random untuk tipe integer.
•
Mengetahui cara memanipulasi untuk membangkitkan bilangan random tipe float menggunakan
•
Mengetahui cara membangkitkan bilangan random menggunakan fungsi standard rand34 dan srand34 pada C.
Dasar teori:
6ahasa
pemrograman
C
menyediakan
fungsi
librari
rand34
untuk
membangkitkan bilangan random tipe integer antara > sampai dengan ?"@'AM"B, yang adalah harga maksimum yang bergantung pada sistem komputer yang digunakan. Pada modul 5 kita akan mencoba menggunakan fungsi rand34 dan memodifikasi output yang dihasilkan. 6ilangan random yang dihasilkan oleh komputer adalah pseudo1random 3buatan4, yang bukan benar1benar bilangan random seperti
"
1. #include 2. #include 3. int main() . ' ". !rintf(=dn4 5?@A-5B); . return ; %. + 36uatlah program di atas pada komputer, lalu compile dan $alankan4 0ungsi rand34 mengembalikan harga1harga random tipe integer antara > & ?"@'AM"B. Program di bawah ini adalah cara menggunakan fungsi rand34.
1. #include 2. #include 3. int main() . ' ". int i; . for(i; i<"; iCC) %. ' &. !rintf(=dn4rand()); . + 1. return ; 11. + 36uatlah program di atas pada komputer, lalu compile dan $alankan berulang1ulang dan catat hasil outputnya4. utput program di atas adalah urutan bilangan random dengan harga yang selalu sama. (al itu disebabkan inisialisasi benih adalah identik setiap waktu. Dntuk mendapatkan urutan harga random yang berbeda pada setiap program tersebut di$alankan anda dapat menggunakan fungsi time34 untuk membangkitkan benih dengan fungsi srand34. 0ungsi srand34 menggunakan unsigned int sebagai argument dan me1set benih random yang akan dipakai untuk membangkitkan bilangan random dengan rand34. Pada banyak aplikasi, penggunaan fungsi time34 untuk membangkitkan benih adalah cara yang baik dan 2alid. Modifikasi program anda sehingga men$adi program di bawah ini%
1. #include 2. #include 3. #include . int main() Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
#
". ' . int i; %. D* set enih untuk rand() *D &. srand((unsi0ned)time(?EFF)); . for(i; i<"; iCC) ' 1. !rintf(=dn4 rand()); 11. + 12. return ; 13. + Dntuk membangkitkan bilangan random pada range tertentu dapat dilakukan dengan cara me1map bilangan integer yang dikembalikan oleh fungsi rand34. 'ua program berikut membangkitkan bilangan random tipe float.
1. #include 2. #include 3. #include . int main() ". ' . float x; %. int i; &. D* set enih untuk rand() *D . srand((unsi0ned)time(?EFF)); 1. for(i; i<"; iCC) ' 11. x (float) rand()D(5?@A-5B); 12. !rintf(=fn4 x); 13. + 1. return ; 1". +
36uatlah kedua program tersebut, lalu compile dan $alankan. Perhatikan dan catat output dari masing1masing program4.
Tugas:
6uatlah program dengan fungsi rand34 untuk membangkitkan bilangan random antara > dan EE. emudian modifikasi program anda agar keluar dari loop pada saat bilangan random yang dibangkitkan melampui angka FF.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
$
Modul Operasi Matrix
III
Tujuan praktikum: •
Mengetahui cara inisialisasi dan memanipulasi data elemen dari sebuah matrix
•
'apat melakukan operasi matrix, penambahan, pengurangan, perkalian, in2erse dll. dengan program komputer
•
'apat menggunakan array ;' pada C untuk melakukan operasi matrix
Dasar teori:
Sebuah matrix terdiri dari array segiempat dari elemen1elemen yang ditandai dengan simbul G"H. Indi2idual elemen1elemen dari sebuah matrix G"H dinotasikan dengan aij . Set dari elemen1elemen horiJontal disebut baris dan set dari elemen1elemen 2ertikal disebut kolom. 'engan demikian sebuah program matrix dapat diimplementasikan menggunakan array ;'. Contoh% int
aG;HGKHL
aG>HG>H aG5HG>H
aG>HG5H aG5HG5H
aG>HG;H aG5HG;H
"rray ;' adalah array dari arrays, sehingga deklarasi di atas adalah array dari dua array integer. Matrix di atas mempunyai $umlah baris ; dan $umlah kolom K. 6erikut adalah contoh program untuk mengisi data elemen1elemen 5 s!d dan me1print elemen1elemen dalam baris dan kolomnya.
1. #include 2. #include 3. void main()' . clrscr(); ". int aG3HG3H; . int G3HG3H; %. int cG3HG3H; &. int i4/; . for (i1;i<3;iCC) ' 1. for (/1;/<3;/CC) ' 11. cout << -asukkan elemen matrik 5 << i << 4 << / << I ; 12. cin >> aGiHG/H; 13. + Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
%
1. 1". 1. 1%. 1&. 1. 2. 21. 22.
+ cout << -atrik 5 I <
Penambahan atau pengurangan dua buah matrix G"H dan G6H dapat dilakukan dengan cara menambahkan atau mengurangkan masing elemen yang bersesuaian dari tiap1tiap matrix G"H dan G6H tersebut. GCH 7 G"H + G6H GCH 7 G"H & G6H
⇔
cij
=
aij
+
bij
⇔
cij
=
aij
−
bij
Program penambahan dua buah matrix ; x ;. Pada program penambahan matrix di bawah terdapat dua buah function mat_read (int mat[2][2]) dan function mat_print (int mat[2][2]) belum dibuat. 6uatlah sendiri kedua function tersebut dengan mengacu potongan program di atas dan kemudian selesaikan program penambahan dua buah matrix di bawah. Program untuk menamba$ dua matri/ 2 / 2:
1. #include 2. #include 3. . void main()' ". clrscr(); . int aG3HG3H; %. int G3HG3H; &. int cG3HG3H; . int i4/; 1. 11. for (i1;i<3;iCC) ' 12. for (/1;/<3;/CC) ' 13. 1. cout << -asukkan elemen matrik 5 << i << 4 << / << I ; 1". cin >> aGiHG/H; 1. + 1%. + 1&. 1. cout << -atrik 5 I <
1&
21. 22. 23. 2. 2". 2. 2%. 2&. 2. 3. 31. 32.
for (/1;/<3;/CC) ' cout << aGiHG/H <<
;
+ cout << endl; + for (i1;i<3;iCC) ' for (/1;/<3;/CC) '
cout << -asukkan elemen matrik << i << 4 << / << I ; 33. cin >> GiHG/H; 3. + 3". + 3. 3%. cout << -atrik I <
c a5;
...
c a5n
G6H 7 c G"H 7 c a;5
c a;;
...
c a;n
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
11
c am5
c am;
...
c amm
Sedang perkalian dua buah matrix GCH 7 G"H G6H dapat dilakukan dengan persamaan sebagai berikut 3ingat $umlah baris1kolom dari matrik GCH4. cij =
n
∑a
b
ik kj
k =5
In2erse dari sebuah matrix G"H adalah G"H15 yang dapat dihitung sebagai berikut% G"H G"H15 7 G"H15 G"H 7 GIH dengan GIH adalah matrix identitas.
Dntuk matrix in2ersi dari matrix ; x ; in2erse matrix dapat dihitung dengan $auh lebih sederhana sebagai berikut.
G AH−5 =
a;; a55a;; − a5;a;5 − a;5 5
− a5; a55
Tugas: •
6uat program perkalian matrix ; x ; dengan bilangan skalar c yang dapat di2ariasi. emudian tentukan matrix in2erse dari matrix ; x ; tersebut.
•
6uat program perkalian matrix persegi m x n dengan m dan n 7 N.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
12
Modul Metode Jacobi
I'
Tujuan praktikum: •
'apat memahami penyelesaian sistem persamaan linear dimensi banyak dengan iterasi Oacobi.
•
Memahami metode trial1and1error dengan metode Oacobi.
•
'apat membuat program metode numerik Oacobi untuk mencari akar1akar persamaan linear suku banyak.
Dasar teori:
Metode Oacobi merupakan salah satu metode penyelesaian sistem persamaan linear 3baca% matriks4 berdimensi banyak 3baca% lebih dari ;4. Dntuk matriks dengan dimensi kecil 3kurang atau sama dengan dua4, lebih efektif diselesaikan dengan aturan eliminasi atau metode Cramer. Sistem persamaan linear dapat di1representasikan 3dimodelkan4 dalam bentuk matriks sebagai berikut%
Sebagai contoh% Kx5 + x; 1 xK 7 Nx5 + Qx; 1 KxK 7 ;> ;x5 1 ;x; + xK 7 5> dapat di1representasikan sebagai%
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
13
:u$uannya supaya mudah untuk diselesaikan secara matematis. turan 0acobi:
Iterasi Oacobi memiliki rumus persamaan sebagai berikut%
atau
Iterasi berakhir $ika%
"tau perhitungan saat ini tidak berbeda $auh 3baca% mirip4 dengan perhitungan sebelumnya. Oika di1implementasikan ke contoh di atas men$adi%
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1
Oika inisialisasi nilai awal x5, x; dan xK 7 >, maka%
Iterasi berikutnya ditun$ukkan pada tabel berikut ini%
Oika diperhatikan pada tabel di atas, nilai x5, x; dan xK semakin stabil 3perbedaan nilai saat ini dengan nilai sebelumnya semakin kecil4. Proses ini dapat diteruskan sesuka hati sampai diperoleh toleransi error yang diinginkan. Menulis ode Program &terasi 0acobi 1. 2. 3. . ". .
#include void main() ' int i4 /4 k4 l4 ukuran4 iterasi; float fG1H4 aG1HG1H4G1H4xG1H4 toleransi4 si0maG1H;
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1!
%. DDin!ut ukuran matrik &. cout << -asukkan esar matriks I ; . cin >> ukuran; 1. 11. te! # I 6n!ut matriks 5 dan matriks 12. 13. DDmasukkan matrik a 1. for (i1;i<ukuran;iCC)' 1". for (/1;/<ukuran;/CC)' 1. cout << -asukkan aG << i << HG << / << H ; 1%. cin >> aGiHG/H; 1&. + 1. + 2. 21. DDmasukkan matrik 22. for (i1;i<ukuran;iCC)' 23. cout << -asukkan elemen matrik G << i << H ; 2. cin >> GiH; 2". + 2. 2%. DDinisialisasi nilai aKal 2&. for (i1;i<ukuran;iCC)' 2. xGiH; 3. + 31. 32. toleransi 1; 33. iterasi ; 3. 3". Khile (toleransi > .1) 3. ' 3%. iterasiCC; 3&. cout << LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLn; 3. cout << iterasi ke << iterasi << endl; . 1. if (iterasi > ") 2. reak; 3. . ". DDmen0hitun0 /umlah total si0ma . for (k1;k<ukuran;kCC) ' %. si0maGkH ; &. for (l1;l<ukuran;lCC) ' . ". if (k M l) ' "1. si0maGkH si0maGkH C (aGkHGlH*xGlH); "2. + DD tutu! if k M l "3. + DD tutu! for l ". "". fGkH (GkH L si0maGkH)DaGkHGkH; ". cout << xG << k << H << fGkH << endl; "%. + DD tutu! for k "&. Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1"
". . 1. 2. 3. . ". . %. &. .
toleransi (fG1HLxG1H)C(fG2HLxG2H)C(fG3HLxG3H); if (toleransi < ) ' toleransi * L1; + for (i;i<ukuran;iCC) ' xGiH fGiH; + + DDtutu! Khile + DDtutu! void
#ati$an:
5. D$ilah Program di atas dengan beberapa matrik dengan beberapa dimensi. ;. #akukan analisis program di atas
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1#
Modul Metode Bisection
'
Tujuan praktikum: •
'apat memahami penyelesaian persamaan f3x4 7 > dan mencari akar1akar persamaannya dengan metode penggambaran grafis.
•
Memahami metode trial1and1error dengan metode 6isection untuk mencari akar1 akar persamaan f3x4 7 >.
•
'apat membuat program metode numerik 6isection untuk mencari akar1akar persamaan f3x4 7 >.
Dasar teori:
Metode paling sederhana untuk mencari akar1akar persamaan f3x4 7 > adalah dengan me1plot fungsi yang dicari akar1akarnya. "kar1akar persamaan adalah harga1harga f3x4 yang memotong sumbu x. Metode ini biasa disebut metode grafis. Conto$:
Runakan metode grafis untuk menentukan koefisien penurunan parasut c yang turun dengan massa m 7 F.5 kg, kecepatan 2 7 N> m!s, pada waktu turun t 7 5> detik. Rrafitasi bumi adalah g 7 E.F m!detik;. Persamaan% f 3c4 =
gm c
[5 − e −
3 c ! m 4 t
]−v
f3c4
c 3ordinat4
f3c4 3absis4
N F 5; 5 ;>
KN.55 5Q.K .>Q 1;.;E 1F.N>5
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta "kar persamaan c 5;
5
1$
"kar persamaan didapatkan c 7 5N.Q. Cara mengecek kebenaran dari estimasi grafis di atas adalah dengan memasukkan kembali harga tersebut ke dalam persamaannya.
f 35N.QP4
=
MMQ.KF 5N.QP
(5
−
e
−
>.5NMFNK35N.QP 4
)
−
N>
=
>.>PE
"nda $uga dapat mengecek 2aliditasnya dengan mencari harga kecepatannya.
v
=
E.F3MF.54 5N.QP
(5
−
e
−
35N.QP ! MF.545>
)
=
N>.>PE
yang harganya mendekati kecepatan $atuh parasut 2 7 N> m ! detik.
Metode isection:
Secara umum $ika f3x4 adalah berharga real dan kontinyu pada inter2al xl − xu dan harga1harga f 3 xl 4 dan f 3 xu 4 mempunyai tanda yang berbeda, maka berlaku persamaan f 3 xl 4 × f 3 xu 4 < > . 'an paling tidak akan ada satu persamaan yang berharga di antara xl − xu . Mencari akar1akar persamaan dengan metode 6isection adalah dengan membagi dua inter2al xl − xu kemudian mencari akar1akarnya pada tiap1tiap inter2al, lalu membagi dua kembali inter2al yang memuat akar1akar persamaannya. Step1step algoritma dari metode 6isection adalah sebagai berikut% •
Pilih harga rendah xl dan harga tinggi xu di mana akar1akar persamaanya akan termuat di antaranya. xl + xu
•
:entukan estimasi akar persamaan xr =
•
)2aluasi hasilnya dengan cara sebagai berikut%
;
a. Oika f 3 xl 4 × f 3 xu 4 < > , maka akar persamaan yang dicari ada pada inter2al bawah. Maka set xu
=
xr dan kembali ke step ;.
b. Oika f 3 xl 4 × f 3 xu 4 > > , maka akar persamaan yang dicari ada pada inter2al atas. Maka set xl
=
xr dan kembali ke step ;.
c. Oika f 3 xl 4 × f 3 xu 4 = > , maka akar persamaan yang dicari adalah
x
r
.
Program mencari akar persamaan dengan metode isection: Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
1%
!* Dser perlu memdefinisikan fungsi yang dicari akarnya sebagai fungsi pada program dengan nama% ffunction. Contoh diberikan pada program ini. *! 1. 2. 3. . ". . %. &. . 1. 11. 12. 13. 1. 1". 1. 1%. 1&. 1. 2. 21. 22. 23. 2. 2". 2. 2%. 2&. 2. 3. 31. 32. 33. 3. 3". 3.
#include void main() ' float a44c4fa4f4fc4konver0ensi; int iterasi; cout << -asukkan ?ilai 5 I ; cin >> a; cout << -asukkan ?ilai I ; cin >> ; konver0ensi1; iterasi; Khile (konver0ensi > .") ' c(aC)D2; fa(2*a)C3; f(2*)C3; fc(2*c)C3; if ((fc*f) > ) c; else ac; konver0ensiaL; if (konver0ensi < ) konver0ensikonver0ensi*L1; iterasiCC; + cout << Numlah iterasi I << iterasi << endl; cout << 5kar !ersamaan I << a <
Tugas:
6uatlah program untuk mencari akar1akar persamaan pada metode grafis di atas menggunakan metode 6isection.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2&
Modul Metode Secant
'I
Tujuan praktikum: •
Mempela$ari pemrograman komputer untuk menyelesaikan persamaan linear simultan
•
Mempela$ari teknik metode secant untuk menyelesaikan persamaan non linear
Dasar teori:
Metode Secant Metode ini $uga pengembangan dari metode Interpolasi #inier. Metode ini dapat disebut metode )kstrapolasi #inier. Pada metode ini fungsi f3x54 tidak perlu berlawanan tanda dengan f3x;4, namun dipilih dua harga yang dekat dengan akar sebenarnya yang ditun$ukkan oleh fungsi dari kedua titik tersebut. "lgoritma dari metode ini adalah % 5. Memilih harga pendekatan awal, x5 dan x;. ;. Menentukan harga xK
=
x;
−
3 x; − x5 4 ⋅
f 3 x; 4 3 f 3 x; 4 − f 3 x5 44
K. Oika f3xK4 T toleransi, maka harga x K adalah harga x yang dicari, bila tidak dilan$utkan ke tahap N. N. Oika f3x54 f3x;4, maka x5 baru 7 x;, $ika tidak maka x5 baru 7 x5. emudian menentukan harga x; baru 7 xK, dan kembali ke tahap ;.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
21
#ati$an: #include; void main() ' float x14x24x34$14$24toleransi; int iterasi; cout << -asukkan B1 I ; cin >> x1; cout << -asukkan B2 I ; cin >> x2; toleransi2; iterasi1; x3; Khile (toleransi > .1) ' cout << 6terasi << iterasi << endl; cout << B2 << x2 << endl; cout << B3 << x3 << endl; $1x1*x1L1; $2x2*x2L1; x3(L($1*x2)C($2*x1))D($2L$1); cout << B3 I << x3 << endl; toleransi(x3*x3)L1; if (toleransi<) ' toleransi*L1; + cout << Ooleransi << toleransi << endl; x1x2; x2x3; iterasiCC; + cout << 5kar 7ersamaan << x3 << endl; +
Tugas:
5. Pilih input persamaan yang sesuai sehingga program di atas dapat di$alankan ;. :ulis $awaban dari persamaan anda dalam selembar kertas dan dikumpulkan pada akhir praktikum
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
22
Modul Metode Regula Falsi
'II
Tujuan praktikum: •
Mempela$ari pemrograman komputer untuk menyelesaikan persamaan non linear dengan metode regula falsi
Dasar teori: •
Metode biseksi dapat diperbaiki apabila proses penetuan inter2al tidak perlu setengah dari inter2al sebelumnya.
•
Oika bisa dicari inter2al yang lebih baik maka proses penyelesaian akan memakan waktu yang lebih cepat dengan $umlah iterasi yang lebih sedikit.
•
Metode regula falsi titik xc ditentukan dari perpotongan garis linear g3x4 yang menghubungkan f3xa4 dan f3xb4 dengan y7>
•
Perhatikan grafik berikut%
•
Bc dicari dengan persamaan % x c
•
Sama dengan metode biseksi $ika f3xc4*f3xb4> maka xb7xc
•
Oika f3xc4*f3xb4> maka xa7xc.
•
Pada gambar dengan bertambahnya iterasi, nilai xc akan kon2ergen ke akar
=
x a
−
f 3 x a 43 x b
−
x a 4
f 3 x b 4 − f 3 x a 4
persamaan 3penyelesaian4. Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
23
•
Proses iterasi berhenti $ika selisih nilai xc pada suatu iterasi dengan xc pada iterasi sebelumnya kurang dari nilai toleransi error yang diberikan
#ati$an: #include; void main() ' float x14x24x34$14$24toleransi; int iterasi; cout << -asukkan B1 I ; cin >> x1; cout << -asukkan B2 I ; cin >> x2; toleransi2; iterasi1; x3; Khile (toleransi > .1) ' cout << 6terasi << iterasi << endl; cout << B2 << x2 << endl; cout << B3 << x3 << endl; $1x1*x1L1; $2x2*x2L1; x3 ........... cout << B3 I << x3 << endl; toleransi(x3*x3)L1; if (toleransi<) ' toleransi*L1; + cout << Ooleransi << toleransi << endl; x1x2; x2x3; iterasiCC; + cout << 5kar 7ersamaan << x3 << endl; +
Tugas:
K. Pilih input persamaan yang sesuai sehingga program di atas dapat di$alankan N. :ulis $awaban dari persamaan anda dalam selembar kertas dan dikumpulkan pada akhir praktikum
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2
Modul Persamaan Diferensial
'III
Tujuan praktikum: •
Mahasiswa mampu menyelesaikan persamaan1persamaan diferensial biasa beserta masalah syarat awalnya.
•
Mahasiswa mampu menyelesaikan sistem linear beserta masalah syarat awalnya.
•
Mahasiswa dapat melakukan studi lan$ut tentang persamaan diferensial.
Dasar teori: Persamaan dierensial adalah hubungan antara sekelompok fungsi dengan turunan1 turunannya. Persamaan dierensial biasa adalah sebuah persamaan diferensial yang menghubungkan fungsi dengan sebuah 2ariabel ke turunannya terhadap 2ariabel itu sendiri #include #include void main() ' int a4i4dera/at; float hasil4hasil14x4koefGH4koef1GH; cout << -asukkan dera/at tertin00i dari !ersamaan I ; cin >> dera/at; cout << -asukkan nilai x I ; cin >> x; for (idera/at;i>;iLL) ' cout << -asukkan koef dari xP<< i << I ; cin >> koefGiH; + cout << 7ersamaan $an0 anda masukkan adalah In ; cout << f(x) ; hasil; for (idera/at;i>1;iLL) ' cout << koefGiH << xP <
2!
hasil1; for (adera/atL1;a>1;aLL) ' koef1GaHkoefGaC1H*(aC1); cout << koef1GaH <<xP << a << C ; hasil1C(koef1GaH*!oK(x4a)); + cout << koefG1H << endl; hasil1CkoefG1H; cout << fQ( <
Tugas:
5. "mati program di atas, $alankan dengan memasukkan data beberapa dera$at pangkat dan koefisien masing1masing pangkat tersebut ;. :ulis persamaan dan $awaban 3hasil turunan4 dan dikumpulkan pada akhir praktikum
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2"
Modul Iterasi Neton
I(
Tujuan praktikum: •
Mahasiswa mampu menyelesaikan persamaan1persamaan non linear dengan metode iterasi regula falsi
Dasar teori:
Metode @ewton1?aphson Metode ini menggunakan fungsi deri2atif sebagai fungsi garis singgung. "lgoritma dari metode ini adalah % 5. Memilih harga pendekatan awal, x5. ;. Menentukan harga x; = x5 −
f 3 x5 4 f U 3 x5 4
K. Oika f3x;4 T toleransi, maka harga x ; adalah harga x yang dicari, bila tidak dilan$utkan ke tahap N. N. Menetukan harga x5 baru 7 x;. emudian kembali ke tahap ;.
#ati$an: 1. 2.
#include; #include;
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2#
3. . ". . %. &. . 1. 11. 12. 13. 1. 1". 1. 1%. 1&. 1. 2. 21. 22. 23. 2. 2". 2. 2%. 2&. 2. 3. 31. 32. 33.
void main() ' float x14x24toleransi; int iterasi; cout << -asukkan B1 I ; cin >> x1; toleransi2; iterasi1; x2; Khile (toleransi > .1) ' cout << 6terasi << iterasi << endl; cout << B1 << x1 << endl; x2x1L((((2*x1*x1)L(1*x1)C12))D((*x1)L1)); cout << B2 I << x2 << endl; toleransi(x2Lx1); if (toleransi<) ' toleransi*L1; + cout << Ooleransi << toleransi << endl; x1x2; iterasiCC; + cout << 5kar 7ersamaan << x2 << endl; +
Tugas:
5. "mati program di atas, $alankan dengan persamaan yang dapat diinput.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta
2$