laporan akhir metode numerik ii
DESCRIPTION
Pemrograman (Metode Numerik)TRANSCRIPT
-
V. Tugas Praktikum
1. Deret Fibonacci
Listing Program
print"Program Menampilkan Deret Fibonacci"
print"\n"
print"Nama: Fatah Ramdhan"
print"NPM : 140710130002"
print"Praktikum Metode Numerik II"
print"Geofisika Universitas Padjadjaran"
print"\n"
print"Cara menggunakan program:"
print"ketik fib(angka)"
print"Contoh: fib(10)"
def fib(n):
hasil = []
a, b = 0, 1
while b
-
Tampilan
Analisa
Program ini merupakan program untuk menampilkan deret Fibonacci.
Fibonacci merupakan deret yang menjumlahkan antara suku ke-(n) dengan ke-
(n-1) untuk menghasilkan suku ke-(n+1). Dengan kata lain untuk menghasilkan
suku berikutnya maka dijumlahkannya kedua suku sebelumnya. Program ini
memanfaatkan perintah perulangan (for ataupun while). Program ini akan
menampilkan deret sesuai angka yang dimasukkan saat program berjalan.
-
2. Perkalian Matriks
Listing Program
Memasukkan elemen secara manual
def cetak_matriks(matriks):
for row in matriks:
print row
def pjg_matriks(matriks):
return len(matriks[0])
def lbr_matriks(matriks):
return len(matriks)
def kalikan_matriks(mat_a, mat_b):
temp_row = []
temp_mat = []
temp_sum = 0
for i in range(0, lbr_matriks(mat_a)):
for j in range(0, pjg_matriks(mat_a)):
for k in range(0, lbr_matriks(mat_a)):
temp_sum += mat_a[i][k] * mat_b[j][k]
temp_row.append(temp_sum)
temp_sum = 0
temp_mat.append(temp_row)
temp_row = []
return temp_mat
-
matriks_a = [[2, 2, 2], [2, 2, 2], [2, 2, 2]]
matriks_b = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
print "matriks_a : "
cetak_matriks(matriks_a)
print "\nmatriks_b : "
cetak_matriks(matriks_b)
print "\nhasil perkalian :"
hasil = kalikan_matriks(matriks_a, matriks_b)
cetak_matriks(hasil)
-
Tampilan
Analisa
Pogram ini merupakan program perkalian matriks ordo 3x3. Sama halnya
dengan program Fibonacci, program ini juga memanfaatkan perintah perulangan
untuk menghitung setiap elemen dalam matriks. Selain perintah perulangan,
fungsi dengan perintah def pun dimanfaatkan didalamnya serta pemanfaatan
array (list) untuk elemen matriksnya. Program ini berjalan secara manual, karena
input nilai elemen-elemennya dimasukkan dalam listing program, bukan saat
program berjalan.
-
VI. Tugas Akhir
1. Permutasi
Listing Program
import math
def permutasi(n, r):
a=(math.factorial(n)/math.factorial(n-r))
return a
n=int(input("Masukkan nilai n:"))
r=int(input("Masukkan nilai r:"))
hasil=permutasi(n,r)
print"Hasil dari permutasi n, r adalah: ", hasil
Tampilan
Analisa
Program ini merupakan program untuk menghitung permutasi P(n,r).
Program ini memanfaatkan modul math untuk menggunakan perintah factorial.
Hal ini dikarenakan perintah tersebut sudah ada dalam modul math, sehingga kita
bisa memanggilnya tanpa harus membuat program factorial terlebih dahulu untuk
-
menghitung nilai n! dan r!. Berdasarkan hasil percobaan program untuk n=5, r=2
diperoleh hasil permutasi 20. Ini sesuai dengan hasil perhitungan secara manual.
2. Jacobi
Listing Program
import math
int i, j, k, it, b
float A[10][10], B[10][10], x[10], x_1[10], t, TRUE
def jaco()
print"Masukkan indeks matriks A: \n"
print"Baris: ", b
print"Kolom: ", k
if(b!=k):
print"\nMaaf! Syarat : matriks harus berorde sama n x n"
else:
print"\nInput elemen matriks A \n"
for i in range(0, b):
for j in range(0, k):
print"A[", i+1, "][", j+1, "]= ", A[i][j]
print"\nInput elemen B \n"
for i in range (0, b):
print"B[", i+1, "]= ", B[i]
for i in range(0, b):
x[i]=0
-
print"\nEpsilon = ", t
TRUE =0
it=0
while(!TRUE):
it=it+1
TRUE =1
for i in range(0, b):
x_1[i]=B[i]
for j in range(0, k):
if(i!=j) x_1[i]=x_1[i]-A[i][j]*x[j]:
x_1[i]=x_1[i]/A[i][i]
if(fabs(x_1[i]-x[i])>t):
TRUE=0
for i in range(0, b):
x[i]=x_1[i]
print"\nJadi solusinya adalah \n"
for i in range(0, b):
print" x[", i+1, "]= ", x[i], "\n"
print"\nBanyaknya iterasi = ", it, "\n"
return jaco
-
Tampilan
Analisa
Program ini merupakan program untuk mencari solusi numerik persamaan linier
dengan menggunakan metode Iterasi Jacobi. Berdasarkan hasil percobaan, untuk
menentukan solusi persamaan linier dengan menggunakan metode Iterasi Jacobi ini,
kita harus memsukkan nilai-nilai matriks berordo nxn (ordonya sama). Hal ini berarti
dalam listng program yang dibuat harus membuat kondisi (if) dengan syarat ordo
matriks harus sama. Program ini memanfaatkan array untuk memasukkan nilai-nilai
elemen mstriks yang akan dicari solusinya yaitu matriks A, x dan b. Sebagaimana
dalam program nilai A dan b kita sendiri yang menentukan nilainya sedangkan x adalah
nilai yang dicari. Untuk melakukan iterasi sebanyak n kali, program ini memanfaatkan
looping (for) dengan syarat batas baris mulai dari nol sampai dengan kondisi tertentu
iterasi tersebut berhenti yaitu apabila hasil perhitungan looping (yaitu nilai sesudah-
sebelum dibagi dengan nilai sesudah) nilainya mendekati atau samadengan nilai
ephsilon yang dimasukkan sebelumnya. Dalam proses iterasinya menggunakan
looping, nilai terkaan yang dimasukkan dalam proses iterasi selanjutnya adalah sama,
maksudnya x yang digunakan adalah x terkaan awal (Xo). Berdasarkan percobaan
untuk persamaan:
1+22 = 3
41+2 + 23 = 7
-
2 + 33 = 7
Dengan memasukkan nilai ephsilon yaitu 0.1 program tersebut berhenti dengna iterasi
sebanyak 84 kali. Dalam program ini solusi yang ditampilkan tidak berjalan
sebagaimana mestinya. Hal ini dimungkinkan karena ada modul yang belum terinstall.
3. Gauss-Seidel
Listing Program
import math
import numpy
print"NAMA : FATAH RAMDHAN"
print"NPM : 140710130002"
print" GEOFISIKA"
print"UNIVERSITAS PADJADJARAN"
print">>>>>PROGRAM ITERASI GAUSS_SEIDELL
-
gs()
else:
print"\nInput elemen matriks A \n"
for i in range(0, b):
for j in range(0, k):
print
-
return gs
Tampilan
Analisa
Pada dasarnya program ini hampir sama dengan program Iterasi Jacobi, hanya
saja yang membedakan adalah nilai x yang dimasukkan untuk proses iteasi
selanjutnya adalah nilai x yang dihasilkan dari iterasi sebelumnya. Pemanfaatan
hasil iterasi sebelumnya yang digunakan untuk iterasi berikutnya ini bertujuan
agar iterasi lebih sediki dan hasil atau solusi yang dicari lebih cepat didapat.
Berdasarkan hasil percobaan, untuk menentukan solusi persamaan linier dengan
menggunakan metode Iterasi Gauss-Seidel ini, kita harus memsukkan nilai-nilai
matriks berordo nxn (ordonya sama). Hal ini berarti dalam listng program yang
dibuat harus membuat kondisi (if) dengan syarat ordo matriks harus sama.
Program ini memanfaatkan array untuk memasukkan nilai-nilai elemen mstriks
yang akan dicari solusinya yaitu matriks A, x dan b. Sebagaimana dalam program
nilai A dan b kita sendiri yang menentukan nilainya sedangkan x adalah nilai yang
dicari. Untuk melakukan iterasi sebanyak n kali, program ini memanfaatkan
looping (for) dengan syarat batas baris mulai dari nol sampai dengan kondisi
tertentu iterasi tersebut berhenti yaitu apabila hasil perhitungan looping (yaitu nilai
sesudah-sebelum dibagi dengan nilai sesudah) nilainya mendekati atau
-
samadengan nilai ephsilon yang dimasukkan sebelumnya. Berdasarkan percobaan
untuk persamaan:
1+22 = 3
41+2 + 23 = 7
2 + 33 = 7
Dengan memasukkan nilai ephsilon yaitu 0.001 program tersebut berhenti
dengna iterasi sebanyak 43 kali dan solusi yang diperoleh adalah x[1]= -
0,0392272, x[2]= -0,205851, x[3]= 0,676462. Ini berarti proses iterasi yang
dilakukan lebih sedikit dibandingkan Jacobi dan hasilnyapun lebih cepat untuk
memproleh solusi dari suatu persamaan-persamaan linier.
-
VII. Kesimpulan
Berdasarkan praktikum yang telah dilaksanakan, maka dapat disimpulkan
bahwa praktikan tahu dan memahami bahasa pemrograman Python serta
mampu membuat program dengan menggunakan Bahasa Pemrograman
Python. Berdasarkan hasil percobaan program, diperoleh :
Dengan manfaatkan perintah perulangan bisa membuat program Fobonacci dan
Perkalian Matriks. Untuk perkalian matriks selain perintah perulangan juga
memanfaatkan list dan fungsi di dalamnya.
Dengan memasukkan perintah import math, kita bisa memasukkan modul math
untuk perintah factorial dalam program Permutasi.
Untuk mencari solusi persamaan linier dapat menggunakan metode Iterasi
Jacobi dan Gauss-Seidel. Dengan Iterasi Jacobi diperoleh sebanyak 84 kali
iterasi, sedangkan Gauss-Seidel sebanyak 43 kali. adalah x[1]= -0,0392272,
x[2]= -0,205851, x[3]= 0,676462. Ini berarti proses iterasi yang dilakukan lebih
sedikit dibandingkan Jacobi dan hasilnyapun lebih cepat untuk memproleh
solusi dari suatu persamaan-persamaan linier.
-
DAFTAR PUSTAKA
Adhar Muhammad, 2014, Pembahasan Array Python, blogspot. [online]
http://www.adharmuhammad.blogspot.com/2014/11/pembahasan-array-di-
python.html [diakses 4 Maret 2015]
Lia, 2011, Pengenalan Bahasa Pemrograman Python, blogspot. [online]
http://www.liaabarb.blogspot.com/2011/06/pengenalan-bahasa-pemrograman-
python.html [diakses 4 Maret 2015]
Triasanti Dini, n.d, Fungsi pada Python, Depok, AP2B Gunadarma. [online]
http://www.dini3asa.staff.gunadarma.ac.id/Fungsi -pada-python.pdf [diakses 4
Maret 2015]
Triasanti Dini, n.d, Struktur Kontrol Keputusan, Percabangan pada Python, Depok,
AP2B Gunadarma. [online]
http://www.dini3asa.staff.gunadarma.ac.id/percabangan-pada-python.pdf
[diakses 4 Maret 2015]
Triasanti Dini, n.d, Struktur Pengulangan, Perulangan, Depok, AP2B Gunadarma.
[online] http://www.dini3asa.staff.gunadarma.ac.id/Perulangan -pada-
python.pdf [diakses 4 Maret 2015]