1.42k likes | 4.67k Views
METODE NUMERIK & FORTRAN. FAKULTAS ILMU KOMPUTER UNIVERSITAS GUNADARMA. TIM PENYUSUN. Suryadi M.T Teguh Yuniarko Mike Susmikanti Maukar Mufid Nilmada Miftah Andriansyah Erni Rihyanti Fitri Ningsih Umi Sholikhah. POKOK BAHASAN (1). Pendahuluan (Algoritma)
E N D
METODE NUMERIK & FORTRAN FAKULTAS ILMU KOMPUTER UNIVERSITAS GUNADARMA
TIM PENYUSUN • Suryadi M.T • Teguh Yuniarko • Mike Susmikanti • Maukar • Mufid Nilmada • Miftah Andriansyah • Erni Rihyanti • Fitri Ningsih • Umi Sholikhah
POKOK BAHASAN (1) • Pendahuluan (Algoritma) • Solusi Persamaan Non Linier • Metode Bisection • Metode False Position • Metode Secant • Metode Fixed point iteration • Metode Newton Raphson
POKOK BAHASAN (2) • Solusi Sistem Persamaan Linier • Eliminasi Gauss • Eliminasi Gauss Yourdan • Iterasi Gauss-Seidel • Interpolasi • Interpolasi Linier • Interpolasi Kuadrat • Interpolasi Lagrange • Interpolasi Newton
POKOK BAHASAN (3) • Integrasi Numerik • Metode Empat persegi panjang • Metode Trapesium • Metode Simpson • Metode Kuadratur Gauss
Referensi • 1. Steven C. Chapra & Raymond P. Canale, Metode Numerik untuk Teknik dengan Penerapan pada Komputer Pribadi, UI-Press, Jakarta, 1991. • 2. Suryadi H.S., Pengantar Metode Numerik, Seri Diktat Kuliah, Gunadarma, 1990 • 3. Suryadi M.T., Bahasa FORTRAN dan Analisis Numerik, Seri Diktat Kuliah, Gunadarma, 1995 • 4. William H. Press, et. al., Numerical Recipes in FORTRAN, 2n ed, Cambridge University Press, 1992.
PEMROGRAMAN TERSTRUKTUR FAKULTAS ILMU KOMPUTER UNIVERSITAS GUNADARMA
Coding Struktur Data + Algoritma Program Pengembangan Algoritma Analisa Persoalan Pemrograman Terstruktur
Analisa Persoalan • Persoalan apa yang perlu diselesaikan =>tujuan/program • Bagaimana program harus berbuat untuk menyelesaikan persoalan Struktur Data Bagaimana menyusun data yang ada (struktur data) sehingga program menjadi efisien : • mudah dalam pengambilan data • mudah dalam memperbarui data (insert, delete, update) • mudah algoritmanya
Algoritma Suatu rancangan rinci yang menggambarkan langkah demi langkah instruksi-instruksi bagi komputer agar dapat memcahkan suatu persoalan • Algoritma dapat ditulis (yang mudah dimengerti manusia) berupa : • diagram alur (flowchart) • pengkodean semu (pseudocode)
Program Kumpulan instruksi, ditulis dalam suatu bahasa komputer (mis. TURBO PASCAL) yang memerintahkan komputer bagaimana memecahkan suatu persoalan Garis besar Tahap analisa persoalan : • menentukan data yang diperlukan untuk proses (data input) • memahami dengan baik persoalan yang akan dipecahkan • menentukan data apa yang diharapkan muncul dari hasil proses (data output)
Tahap struktur data & algoritma : Rancang struktur data yang digunakan, sedemikian rupa sehingga mudah merancang algoritmanya dan memberikan proses yang efisien Dengan memahami masalah yang dimiliki, rancang setiap langkah yang diperlukan untuk menyelesaikan (bisa dalam bentuk flowchart ataupun pseudocode) dan pilih teknik-teknik yang efisien => design algorithm Mencoba algoritma yang dibuat dengan data sederhana Garis Besar
Garis Besar : Tahap Program : • Memahami syntax dari bahasa yang akan digunakan • Inti : INPUT => PROSES => OUTPUT • Coding : susun pengkodean-nya sesuai dengan algoritma dan struktur data yang telah dibuat beserta Keterangannya • Debugging : memperbaiki kesalahan syntax (tahap compiling), kesalahan logika dan kesalahan run-time (tahap execution) • Testing : menguji dengan data yang telah diketahui hasil outputnya • dokumentasi
Garis Besar Di dalam menyusun algoritma, hanya dikenal 3 jenis struktur proses : : : : Algoritma yang disusun berdasarkan struktur di atas disebut : algoritma terstruktur, sedangkan program yang dibuat berdasarkan algoritma terstruktur dikatakan sebagai program terstruktur
Garis Besar Alasan menggunakan program terstruktur : • Jika kita telah terbiasa menganalisa dan menyusun program untuk suatu masalah dengan menggunakan teknik yang sama, maka pemecahan masalah (analisa, design, penyusunan program) akan menjadi lebih cepat dan mengurangi error • Jika persoalan dilakukan oleh suatu team work, dan semua programer menggunakan teknik yang sama, maka akan lebih mudah bagi seorang programmer untuk dapat membaca pekerjaan programmer yang laindan mudah dalam pengembangan /perbaikan program nantinya
Struktur Logika (3 struktur kendali dasar) Untuk menghindari terjadinya “spaghetti code” yang menyebabkan suatu program sulit untuk ditelusuri baik dalam penulisan maupun debugging maka digunakanlah 3 struktur kendali dasar yang dapat mengatur jalannya program : • Struktur Sederhana (berurutan) : jika perintah-perintah dilakukan secara berurutan • Struktur Berulang (loop) : jika sekumpulan perintah diulang beberapa kali • Struktur Bersyarat (selection) : jika sekumpulan perintah dilakukan pada kondisi tertentu
N y N 1 ? 1 1 y 2 4 2 2 3 3 3 (1) (3) (2) Struktur Logika Bentuk umum dari 3 struktur kendali proses
1 2 Y 1 ? T 2? T Y DO WHILE DO UNTIL Struktur Logika a. Terdapat tiga macam struktur berulang : • FOR LOOP : badan loop dilakukan untuk sejumlah tertentu pengulangan • DO WHILE : lakukan pengujian, selama kondisi masih dipenuhi, lakukan badan loop • DO UNTIL : lakukan badan loop satu kali, uji kondisi dan lakukan badan loop sampai kondisi tidak dipenuhi
Struktur Logika b. Struktur Bersyarat dapat dibedakan : • Struktur 2 pilihan : IF – THEN – ELSE • Struktur lebih dari 2 pilihan : NESTED IF/ DO CASE Y T ? Y ? T If - Then - Else
Do Case Nested If Struktur Logika
Contoh 1 dimana Nilai rata-rata ditentukan dari 20% ujian 1, 35% ujian 2dan 45% ujian 3.
Contoh 2 Menjumlahkan n buah bilangan Persoalan : hitung
Pengembangan Algoritma Dekomposisi : • Perincian Sub Persoalan : • Masukkan jumlah bilangan yang akan dijumlah dan simpan pada variabel n • Lakukan sebanyak n kali : • masukkan nilai bilangan pada variabel ai (I= 1, 2, …,n) • Isi variabel S=0 • Baca/masukkan jumlah bilangan yang akan dijumlahkan • Baca/masukkan bilangan-bilangan yang akan dijumlah • Jumlahkan satu per satu bilangan di atas ke suatu nilai total • Cetak nilai total tersebut
Pengembangan Algoritma • Lakukan sebanyak n kali : jumlahkan ai ke s (i = 1, 2, …, n) • Cetakisi variabel s Data : Variabel penyimpanan banyaknya data (n) bertipe integer Varibel penyimpanan masing-masing bilangan linier array (ai) dan bertipe integer/real Variabel penyimpanan nilai total (s) bertipe integer/real
Pengembangan Algoritma Algoritma 1 : • Baca/masukkan suatu nilai dan simpan pada variabel n • Untuk nilai varibel i dari 1 s/d n lakukan : baca/masukkan nilai ai • Set isi variabel s = 0 • Untuk nilai variabel i dari 1 s/d n lakukan : s = s + ai • Cetak variabel s
Pengembangan Algoritma Algoritma 2 : • Baca/masukkan suatu nilai dan simpan pada variabel n • Set isi variabel s=0 • Untuk nilai variabel i dari s/d n lakukan : a. baca/masukkan nilai ai b. s = s + ai • Cetak variabel s
Latihan • Bila dibaca 2 buah bilangan bulat positip x dan y, maka buatlah algoritma untuk menghitung FPB dari x dan y ! • Bila dibaca sebuah bilangan bulat positip x maka buatlah algoritma untuk menyatakan bahwa bilangan tersebut adalah bilangan Amstrong !
SOLUSI PERSAMAAN NON LINIER METODE BISEKSI (BAGI DUA)
Metode Biseksi • Fungsi kontinu pada [a,b] • Akarnya x = p & p [a,b] • Untuk setiap iterasi akan membagi 2 interval yang memuat x = p dan berhenti bila mencapai suatu bilangan yang berada dalam toleransi (ditetapkan) • Hanya ada 1 akar dalam [X0,X1] maka f(X0)*f(X1) 0 • Titik tengah interval X2=½(X0 + X1)
Metode Biseksi (lanjutan) • Bila f(X0)*f(X2) 0 maka akar p [X0,X2] • Ulangi iterasi pada interval [X0,X1] yang baru (dalam hal ini [X0,X2]) • Pada kasus lainnya, yakni bila f(X0)*f(X2) > 0, maka akar p [X2,X1] • Ulangi iterasi pada interval [X0,X1] yang baru (dalam hal ini [X2,X1])
Metode Biseksi (lanjutan) • Setelah dilakukan n kali iterasi biseksi, akan diperoleh interval yang lebarnya (½)n(X1 – X0) • Bila (½)n(X1 – X0)<t maka akarnya berselisih kurang dari t terhadap kedua titik ujung interval kecil (terakhir) tsb.
Metode Biseksi (lanjutan) • Bila diinginkan toleransi kesalahan lebih kecil dari t, maka diperlukan paling sedikit 2log(X1 – X0) iterasi biseksi, kecuali bila akarnya tepat pada ujung interval.
Algoritma Biseksi (1) INPUT X0 ,X1 ,F(X),T WHILE[(X1 – X0) T OR F(X0)*F(X1) 0] DO X2 = (X0 + X1)/2 IF F(X0)*F(X2) >0 THEN X0 = X2 ELSE X1 = X2 ENDIF ENDWHILE
Algoritma Biseksi (2) IF F(X0)=0 THEN OUTPUT (X0) ELSE IF F(X1) = 0 THEN OUTPUT (X1) ELSE OUTPUT (X2) ENDIF
KEUNTUNGAN BISEKSI • Selalu berhasil menemukan akar (solusi) yang dicari, atau dengan kata lain selalu konvergen.
KELEMAHAN BISEKSI • Bekerja sangat lambat. Tidak memandang bahwa sebenarnya akar atau solusi yang dicari telah berada dekat sekali dengan X0 ataupun X1.
SOLUSI PERSAMAAN NON LINIER METODE REGULA FALSI (FALSE POSITION)
METODE REGULA FALSI • Salah satu alternatif untuk mempercepat perhitungan akar (solusi). • Tetapkan interval awal [X0 ,X1] yang memuat akar (solusi). • Hitung X2 (yang merupakan titik ujung interval baru) : titik potong garis lurus dari titik [X0,f(X0)] ke titik [X1,f(X1)] dengan sumbu X.
METODE REGULA FALSI • Persamaan garis lurus melalui titik [X0,f(X0)] dan [X1,f(X1)], yaitu :
METODE REGULA FALSI • Garis tersebut berpotongan dengan sumbu X Y = 0 dengan titik absisnya yaitu X2, sehingga diperoleh :
METODE REGULA FALSI • Penetapan interval baru: bila F(X0)*F(X2) <0 maka intervalnya menjadi [X0 , X2] bila F(X0)*F(X2) >0 maka intervalnya menjadi [X2 , X1]
Metode Regula Falsi • Pengulangan/iterasi mencari X2 dan interval baru dilakukan berdasarkan nilai toleransi atau bila akarnya belum ditemukan • Sebaiknya nilai toleransi secara relatif mengacu pada : error aproksimasi
ALGORITMA REGULA FALSI INPUT X0,X1,T,F(X), MAX I=0; FOUND = false REPEAT I=I+1 X2 = X1 -(X1 - X0)*F(X1)/(F(X1)-F(X0)) IF F(X0)*F(X2)<0 THEN X1 = X2
ALGORITMA REGULA FALSI ELSE X0 = X2 ENDIF IF (|(X2 - X1)/ X1|T OR I=MAX) THEN FOUND=true ENDIF UNTIL (FOUND=true) OUTPUT (X2)
KELEMAHAN REGULA FALSI • Hanya salah satu titik ujung interval (X0 atau X1) yang bergerak menuju akar dan yang lainnya selalu tetap untuk setiap iterasi. • Sehingga mungkin [X0, X1] masih cukup besar jaraknya bila menggunakan batas | X1 - X0| T padahal X0 X2 atau X1 X2
KELEMAHAN Regula falsi hal tersebut dikenal dengan pendekatan error mutlak. diperbaiki dengan pendekatan Error relatif :
SOLUSI PERSAMAAN NON LINIER METODE SEKAN
Metode Sekan • Disebut juga Metode Interpolasi Linear • Dalam prosesnya tidak dilakukan penjepitan akar atau dpl. [X0, X1] tidak harus mengandung akar yang akan dicari. • Sehingga f(x0) dan f(x1) bisa bertanda sama • Untuk mencari X2 , sama dengan metode REGULA FALSI
Metode Sekan (lanjutan) • Untuk iterasi berikutnya akan diperoleh interval baru [X0, X1] dengan cara pergeseran: X0 X1 , X1 X2 • Iterasi berlangsung sampai batas maksimum (Max.) atau sampai dipenuhinya batas Toleransi (T): | (X1 - X2 )/ X1 |≤ T -------------------------- | \/ Nilai kesalahan relatif
Metode Sekan (lanjutan) • Proses Pencapaian Akar (Mtd. SEKAN) • Tambah gambar ! (halaman akhir)