Laporan Akhir Metode Numerik II

15
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 <= n: hasil.append(b) a, b = b, a+b return hasil

description

Pemrograman (Metode Numerik)

Transcript of Laporan Akhir Metode Numerik II

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