Difference between revisions of "Stefanus Bagas Kurnia Pradana"

From ccitonlinewiki
Jump to: navigation, search
 
Line 77: Line 77:
  
 
== UAS Metode Numerik Optimasi Stiffener L ==
 
== UAS Metode Numerik Optimasi Stiffener L ==
 +
import math
 +
def bracket(f,x1,h):
 +
    c = 1.618033989
 +
    f1 = f(x1)
 +
    x2 = x1 + h
 +
    f2 = f(x2)
 +
    if f2 > f1:
 +
        h = -h
 +
        x2 = x1 + h
 +
        f2 = f(x2)
 +
        if f2 > f1:
 +
            return x2,x1 - h
 +
    for i in range (100):
 +
        h = c*h
 +
        x3 = x2 + h
 +
        f3 = f(x3)
 +
        if f3 > f2:
 +
            return x1,x3
 +
        x1 = x2
 +
        x2 = x3
 +
        f1 = f2
 +
        f2 = f3
 +
        print ("Bracket did not find a minimum")
 +
def search(f,a,b,tol=1.0e-9):
 +
        nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a))))
 +
        R = 0.618033989
 +
        C = 1.0 - R
 +
        x1 = R*a + C*b
 +
        x2 = C*a + R*b
 +
        f1 = f(x1)
 +
        f2 = f(x2)
 +
        for i in range(nIter):
 +
            if f1 > f2:
 +
                a = x1
 +
                x1 = x2
 +
                f1 = f2
 +
                x2 = C*a + R*b
 +
                f2 = f(x2)
 +
            else:
 +
                b = x2
 +
                x2 = x1
 +
                f2 = f1
 +
                x1 = R*a + C*b
 +
                f1 = f(x1)
 +
        if f1 < f2:
 +
            return x1,f1
 +
        else:
 +
            return x2,f2
 +
print("Aplikasi Optimasi Section Modulus L Stiffner")
 +
print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah")
 +
b1 = eval(input("Nilai lebar bangun alas :"))
 +
b3 = eval(input("Nilai lebar bangun atas :"))
 +
b2 = eval(input("Nilai lebar bangun tengah :"))
 +
H = eval(input("Nilai tinggi T stiffner :"))
 +
def f(x):
 +
    A1 = b1*(H-x)/2
 +
    A2 = b2*x
 +
    A3 = b3*(H-x)/2
 +
    d1 = 1/2*(H-x)/2
 +
    d2 = 1/2*x+(H-x)/2
 +
    d3 = 3/4*(H-x)+x
 +
    I1 = 1/12*b1*((H-x)/2)**3
 +
    I2 = 1/12*b2*x**3
 +
    I3 = 1/12*b3*((H-x)/2)**3
 +
    dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3)
 +
    I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2
 +
    Z = I/dc
 +
    return Z
 +
xStart = 0.0
 +
h = 1.0
 +
x1,x2 = bracket(f,xStart,h)
 +
y,fMin = search(f,x1,x2)
 +
print("optimal sectional area =",-fMin)
 +
print("sectional area awal" , f(H))
 +
A = -fMin/f(H)*100
 +
print ("efisiensi",A,"%")
 +
input ("\nPress return to exit")
 +
 
https://www.youtube.com/watch?v=MtjdjUftDvY&t=3s (Video Youtube)
 
https://www.youtube.com/watch?v=MtjdjUftDvY&t=3s (Video Youtube)
 
https://drive.google.com/drive/folders/1trNjo_Q2egYweLdXUzaEMUC5xxLQvjAW?usp=sharing (link Gdrive syntax dan Ppt)
 
https://drive.google.com/drive/folders/1trNjo_Q2egYweLdXUzaEMUC5xxLQvjAW?usp=sharing (link Gdrive syntax dan Ppt)

Latest revision as of 23:44, 29 May 2019

Pertemuan Pertama

Pada zaman sekarang, yang dibutuhkan utamanya adalah pangan dan energi. Kebutuhan manusia memang sandang, pangan, papan. Tetapi untuk memenuhi itu semua diperlukan adanya energi. Contohnya untuk bepergian, untuk memproduksi suatu barang, menghasilkan energi yang baru, dan lain-lain. Karena itu manusia terus mencari-sumber energi untuk mengatasi energi yang sebentar lagi akan habis dengan energi yang tersisa sekarang. Hal ini harus dibentuk sejak dini, dari seseorang menempuh pendidikan di sekolah sampai di tingkat universitas. Tujuan dari pembelajaran akademis adalah menjadikan seorang warga negara yang berkompeten, berakhlak, beriman, dan berguna bagi bangsa dan negara. Maka dari itu mahasiswa harus dibentuk mental dan tujuan ke depan untuk menerima ilmu/berkuliah tidak menggunakan nafsu, namun menggunakan akal sehat. Karena jika menggunakan nafsu, maka yang ada dipikiran seseorang pelajar hanyalah ingin lulus suatu mata kuliah. Jadi ia tidak benar-benar mempelajarinya dan memperdalam ilmu yang diberikan, hanya mencapai cara-cara agar ia lulus. Bahkan seorang mahasiswa akan menggunakan cara curang untuk lulus dan mendapat nilai bagus. Padahal nilai yang bagus akan mendatanggkan tanggung jawab besar bagi seseorang yang mendapatkannya. Apabila orang tersebut mendapat dengan cara curang, maka sudah pasti orang tersebut tidak akan bisa menyaingi orang yang berusaha dari awal.

Dosen Metode Numerik, Pak Ahmad Indra mengatakan bahwa prasyarat mengikuti mata kuliah Metode Numerik adalah "BERAKAL". Beliau mengatakan bahwa akal adalah tali yang mengikat pikiran kita agar tetap pada koridor yang manusiawi. Maka akal membedakan manusia dengan makhluk hidup yang lain. Dalam mata kuliah ini, mahasiswa dituntut menggunakan kemampuan akal sehatnya untuk berpikir secara rasional dan bernalar sehingga dapat menyelesaikan persoalan sains dan teknologi menggunakan pendekatan numerik yaitu persamaan matematika. Karena itu beliau menegaskan bahwa apa yang kita pelajari di kalkulus sangat berguna di kehidupan engineering. Seperti pelajaran limit, turunan, integral, dan lain-lain. Pak Ahmad Indra memberi contoh persoalan sederhana dalam matematika A=x^2-1/x-1. Jika x=1 dimasukkan nilainya ke dalam persamaan A, maka berapa hasilnya? Persoalan A merupakan persamaan yang hanya bisa diselesaikan lewat pendekatan limit. Hasilnya memang tidak terlalu tepat dan akurat, tetapi ini lah yang dinamakan pendekatan numerik dengan cara limit. Jika dimasukkan angka 1 ke dalam persamaan A, maka hasil dari Y tidak akan nampak dalam grafik. Pemikiran seperti ini yang akan dipakai dalam pembelajaran metode numerik di mana kita harus menggunakan akal sehat untuk menyelesaikan permasalahan yang ada menggunakan metode matematika. Dalam mata kuliah metode numerik, output-output yang akan dipelajari dan dikuasai: 1. Algoritma 2. Penyelesaian persamaan aljabar simultan 3. Differensial dan integral 4. Optimasi 5. Studi kasus


Pertemuan Kedua

Pada pertemuan kedua awalnya membahas metode numerik bisa digunakan untuk pengaplikasian struktur kapal, hambatan dan propulsi, dan masalah agama seperti menghitung zakat. Dalam pertemuan kali ini juga membahas tentang dimensi. Bahwa suatu dimensi adalah proyeksi dari 1 tingkatan dimensi yang lebih tinggi dari dimensi tersebut. Rumus-rumus fisika ada yang dilakukan percobaan hanya berdasarkan 1 dimensi saja contohnya rumus Bernoulli.

Di mata kuliah metnum sendiri yang harus dilakukan sebelum memulai programing adalah mengerti sistem yang akan dibawakan di programnya ingin dibuat seperti apa dan bagaimana agar komputer bisa mengerti apa yang ingin kita perintahkan kepada komputer supaya menghasilkan output yang kita inginkan. Karena komputer tidak mengerti bahasa manusia, maka manusia harus menerjemahkan bahasa kita ke bahasa komputer melalui program yang dibuat dengan coding. Langkah awal yang harus dilakukan adalah membuat algoritma dan flowchart dari perintah-perintah yang ingin dimasukkan ke program. Algoritma dibuat sesimpel mungkin karena aplikasi pemrograman komputer kebanyakan hanya bisa melakukan operasi tambah, kurang, kali, bagi. Setelah itu baru memulai coding di aplikasi coding. Aplikasi yang kita gunakan adalah python. Dalam aplikasi seperti ini, kita harus bisa memahami dan mempraktikan fungsi-fungsi untuk memberi perintah kepada komputer supaya komputer mengerti apa yang kita perintahkan. Akhirnya kami diberi tugas untuk memasukan persamaan matematika ax+by=c, px+qy=r ke dalam komputer agar setiap input a,b,c,p,q,r menghasilkan nilai x dan y.

Tugas flowchart python

print('PR METNUM') print('Misalkan ada persamaan linear dua variabel \n ax+by=c \n px+qy=r') a=float(input('nilai a=')) b=float(input('nilai b=')) c=float(input('nilai c=')) p=float(input('nilai p=')) q=float(input('nilai q=')) r=float(input('nilai r='))

if b==q:

   m=a-p
   n=c-r
   x=n/m
   y=(c-(a*x))/b
   print('nilai x=',x,'nilai y=',y)


elif a==0:

   y=c/b
   x=(r-q*(y))/p
   print('nilai x=',x,'nilai y=',y)

elif p==0:

   y=r/q
   x=(c-b*(y))/a
   print('nilaix=',x,'nilai y=',y)

elif b==0:

   x=c/a
   y=(r-p*(x))/q
   print('nilaix=',x,'nilai y=',y)

elif q==0:

   x=r/p
   y=(c-a*(x))/b
   print('nilaix=',x,'nilai y=',y)

elif b!=q:

   i=(a*q)
   j=(b*q)
   k=(c*q)
   ii=(p*b)
   jj=(q*b)
   kk=(r*b)
   x=(k-kk)/(i-ii)
   y=(c-(b*x))/a
   print('nilai x=',x,'nilai y=',y)

input()


Pertemuan ketiga

python adalah salah satu cara dari aplikasi coding agar kita bisa membuat komputer mengerti bahasa kita. Salah satu contoh penggunaan aplikasi pyton adalah untuk menyelesaikan persamaan aljabar linear untuk mencari nilai x dan y dari suatu persamaan linear 2 variabel. Penyelesaian aljabar linear menggunakan matrix, tetapi berbeda dengan bahasa yang digunakan di komputer. Sekarang bagaimana cara pyton mengeksekusi hal yang sama dengan aljabar linear? Karena untuk menyelesaikan matriks nxn menggunakan metode gaussian row echelon, maka akan terjadi pola matrix triangular atas. Pola tersebut adalah makin ke bawah barisnya, maka leader one suatu matriks akan maju ke kanan. Polanya itu adalah leader one nya sebagai k, jadi k bisa untuk mengurangi angka dibaris bawahnya supaya menjadi 0 agar menjadi matriks row echelon

Tugas BEP Kos-kosan Python

https://www.youtube.com/watch?v=80exARGoreU&t=26s

Tugas Finite Element Method Python

https://www.youtube.com/watch?v=m4kcSZT0_mQ

UAS Metode Numerik Optimasi Stiffener L

import math def bracket(f,x1,h):

   c = 1.618033989
   f1 = f(x1)
   x2 = x1 + h
   f2 = f(x2)
   if f2 > f1:
       h = -h
       x2 = x1 + h
       f2 = f(x2)
       if f2 > f1:
           return x2,x1 - h
   for i in range (100):
       h = c*h
       x3 = x2 + h
       f3 = f(x3)
       if f3 > f2:
           return x1,x3
       x1 = x2
       x2 = x3
       f1 = f2
       f2 = f3
       print ("Bracket did not find a minimum")

def search(f,a,b,tol=1.0e-9):

       nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a))))
       R = 0.618033989
       C = 1.0 - R
       x1 = R*a + C*b
       x2 = C*a + R*b
       f1 = f(x1)
       f2 = f(x2)
       for i in range(nIter):
           if f1 > f2:
               a = x1
               x1 = x2
               f1 = f2
               x2 = C*a + R*b
               f2 = f(x2)
           else:
               b = x2
               x2 = x1
               f2 = f1
               x1 = R*a + C*b
               f1 = f(x1)
       if f1 < f2:
           return x1,f1
       else:
           return x2,f2

print("Aplikasi Optimasi Section Modulus L Stiffner") print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah") b1 = eval(input("Nilai lebar bangun alas :")) b3 = eval(input("Nilai lebar bangun atas :")) b2 = eval(input("Nilai lebar bangun tengah :")) H = eval(input("Nilai tinggi T stiffner :")) def f(x):

   A1 = b1*(H-x)/2
   A2 = b2*x
   A3 = b3*(H-x)/2
   d1 = 1/2*(H-x)/2
   d2 = 1/2*x+(H-x)/2
   d3 = 3/4*(H-x)+x
   I1 = 1/12*b1*((H-x)/2)**3
   I2 = 1/12*b2*x**3
   I3 = 1/12*b3*((H-x)/2)**3
   dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3)
   I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2
   Z = I/dc
   return Z

xStart = 0.0 h = 1.0 x1,x2 = bracket(f,xStart,h) y,fMin = search(f,x1,x2) print("optimal sectional area =",-fMin) print("sectional area awal" , f(H)) A = -fMin/f(H)*100 print ("efisiensi",A,"%") input ("\nPress return to exit")

https://www.youtube.com/watch?v=MtjdjUftDvY&t=3s (Video Youtube) https://drive.google.com/drive/folders/1trNjo_Q2egYweLdXUzaEMUC5xxLQvjAW?usp=sharing (link Gdrive syntax dan Ppt)