Difference between revisions of "Farrel Jordan Octavian"
(→Tugas Break Even Point) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 144: | Line 144: | ||
from numpy import array | from numpy import array | ||
− | |||
− | |||
A=np.array([[5,6,7],[3,4,5],[1,2,3]],float) | A=np.array([[5,6,7],[3,4,5],[1,2,3]],float) | ||
Line 157: | Line 155: | ||
print(C) | print(C) | ||
− | |||
− | |||
n=len(B) | n=len(B) | ||
x=np.zeros((3),float) | x=np.zeros((3),float) | ||
Line 167: | Line 163: | ||
A[i, k+1:n] = A[i, k+1:n] - lam*A[k, k+1:n] | A[i, k+1:n] = A[i, k+1:n] - lam*A[k, k+1:n] | ||
B[i] = B[i] - lam*B[k] | B[i] = B[i] - lam*B[k] | ||
− | for k in range (n-1,-1,-1) : | + | for k in range (n-1,-1,-1) : |
− | + | x[k]=(B[k]-np.dot(A[k,k+1:n], x[k+1:n]))/A[k,k] | |
− | + | Panjang = x[0] | |
− | + | Lebar = x[1] | |
− | + | Kamar = x[2] | |
Line 205: | Line 201: | ||
---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ||
+ | ==UJIAN AKHIR SEMESTER== | ||
+ | |||
+ | 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 Stiffener") | ||
+ | print("Kondisi Terikat : lebas 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 L Stiffener:")) | ||
+ | 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("sectional area awal",f(H)) | ||
+ | A = -fMin/f(H)*100 | ||
+ | print("efisiensi",A,"%") | ||
+ | input("\nPress return to exit") | ||
+ | |||
+ | |||
+ | |||
+ | LINK : https://drive.google.com/open?id=1-0M2KH9uafjwzNcZdz-pQK4qOGGE_EC2 |
Latest revision as of 23:58, 29 May 2019
Contents
Pertemuan Pertama
Pada hari Rabu, 6 Februari 2019, dalam pertemuan pertama mata kuliah Metode Numerik kami mempelajari pengenalan tentang cakupan materi yang akan dipelajari pada mata kuliah ini.
Untuk mata kuliah Metode Numerik, kami diajar oleh 2 orang dosen yaitu Dr. Ahmad Indra atau Aki DAI dan juga Dr. Gunawan.
Terdapat beberapa tujuan dari dipelajarinya mata kuliah Metode Numerik, yaitu :
1. Memahami konsep/prinsip dan mampu menerapkannya
2. Menjadi orang yang lebih mengenal siapa dirinya
Mahasiswa harus memiliki akal untuk mencapai tujuan-tujuan tersebut, namun apa yang dimaksud dengan akal?
Akal merupakan daya pikir yang diberikan oleh Tuhan Yang Maha Esa agar kita dapat membedakan mana yang benar dan mana yang salah. Akal juga menentukan bagaimana cara kita berpikir maupun bertindak.
Untuk ke depannya, proses pembelajaran akan dilakukan secara bertahap. Dengan begitu, mahasiswa diharapkan dapat mengerti sepenuhnya materi-materi yang dipelajari dalam mata kuliah ini, yakni :
1. Algoritma, flowchart, pemrogaman, metode iterative
2. Penyelesaian persamaan-persamaan aljabar simultan
3. Differensial dan integral
4. Optimasi
5. Studi Kasus
Farrel Jordan Octavian - 1706042075
Pertemuan Kedua
Pada pertemuan kedua yakni pada tanggal 13 Februari 2019, kami mempelajari langkah-langkah untuk mendapatkan solusi dari permasalahan teknik.
Tahapan solusi dari masalah teknik :
1. Masalah Teknik
2. Model matematis
3. Metode numerik
4. Algoritma (Flow Chart)
5. Program Komputer
6. Hasil Numerik
7. Visual
8. Interpretasi / Analisa
9. Solusi Enjiniring (Teknik)
Sebuah masalah dapat diselesaikan dengan metode teoritis, metode percobaan/eksperimen, dan metode komputasi. Namun tidak semua masalah dapat diselesaikan secara langsung dengan metode teoritis dan untuk melakukan percobaan pun akan sangat mahal. Oleh karena itu dilakukan pendekatan dengan komputasi dengan ilmu-ilmu matematika serta dasar-dasar fisika di dalam metode komputasi untuk mendapatkan solusi dari masalah tersebut.
Algoritma merupakan langkah-langkah penyelesaian masalah dan merupakan satu set instruksi untuk dikerjakan computer. Program computer merupakan jembatan Bahasa antara manusia dan computer, python merupakan salah satu contoh tools bahasa pemograman. Setelah sebuah program dibuat, dilakukan simulasi. Setiap perhitungan disebut simulasi, dan setiap menjalankan program berarti kita melakukan simulasi.
Hasil dari pemograman tersebut berupa angka-angka, hasil tersebut disebut hasil numerik. Setelah mendapatkan hasil, hasil tersebut dianalisa oleh engineer. Tahap inilah yang disebut sebagai tahap Interpretasi yakni penafsiran hasil simulasi. Hasil tersebut dapat pula berupa hasil visual seperti perbedaan warna untuk perbedaan kondisi.
Di dalam kelas Metode Numerik, kami juga membahas berbagai hubungan ilmu. Kami pun berdiskusi mengenai hubungan antar ilmu. Terdapat hubungan antara metode numerik dengan banyak mata kuliah yang kami pelajari. Sebagai contoh, metode numerik dengan struktur kapal, metode numerik dengan propulsi kapal, dan yang tidak kalah penting yaitu metode numerik dan agama.
Dalam diskusi tersebut pun dibahas juga bahwa kalaupun boleh terdapat hanya 1 mata kuliah di Fakultas Teknik, mata kuliah tersebut bisa saja agama. Agama membuat kita cerdas, berilmu, dan berakal. Cerdas berarti kita mampu berpikiran jangka Panjang, kita mampu mempersiapkan masa dengan, dan kita dapat melihat hal yang tidak bisa kita lihat sekarang (proyeksi).
Namun, cerdas sesungguhnya dapat diartikan ketika kita melihat masa depan sesungguhnya. Sebagai contoh, bila kita beriman dan mau mempersiapkan diri untuk hari akhir maka kita tidak akan menyontek, tidak mencuri, dan tidak melakukan dosa-dosa melainkan melakukan hal-hal yang baik.
Dalam kelas pun kami berandai-andai mengenai bagaimana kalau manusia hidup bukan di dunia 4 dimensi. Bila hidup dalam 1 dimensi, dapat terbayang bahwa kita hanya mampu ke depan dan ke belakang. Dalam 2 dimensi, kita bisa ke depan, belakang, kiri, dan kanan. Dalam 3 dimensi, sama halnya dengan 2 dimensi namun terdapat juga dimensi tinggi.
Dalam dimensi 3 dimensi, bayangan yang terbentuk adalah 2 dimensi. Dalam 2 dimensi, bayangan yang terbentuk 1 dimensi. Namun, 1 dimensi digunakan dalam perhitungan Bernoulli. Karena walaupun pipa memiliki volume dan diameter, dikarenakan begitu panjangnya sistem perpipaan maka dianggap sebagai garis sehingga digunakan perhitungan 1 dimensi yakni panjang pada Bernoulli.
Dalam sistem perpipaan terdapat pressure drop, yaitu energy loss dalam pipa. Sebagai contoh minyak butuh energi untuk mendorong minyak dari sumur ke tempat pengolahan. Ketika terdapat hambatan seperti belokan, energi (gaya dorong) akan berkurang sehingga terjadi energy loss / pressure drop.
Contoh pembentukan algoritma dan program komputer adalah, ketika kita mau terjun bebas.
Algoritma :
Algoritma merupakan logika. Sebagai contoh, bila terjun dengan parasut maka kita akan selamat namun apabila kita terjun tanpa parasut kita akan mati. Selain itu, semakin lebar parasaut makan kita akan terjun semakin lambat hingga kita akan semakin aman.
Program kompuer :
Simulasi dari algoritma / logika tersebut dalam program komputer agar kita tidak melakukan percobaan / eksperimen.
Dalam pertemuan tersebut, kami juga melakukan praktek penggunaan python. Kami belajar bagaimana untuk melakukan perhitungan aljabar sederhana seperti :
X = 1 ; Y = 2 ; X + Y = 3
Farrel Jordan Octavian - 1706042075
Pertemuan Ketiga
Pada pertemuan ketiga yakni pada tanggal 20 Februari 2019, kami mempelajari bahwa kami mempelajari persamaan kontinu dalam metode numerik
Python digunakan untuk menjembatani bahasa manusia dan bahasa komputer. Pertama kita membuat bahasa dulu, ketika kita sudah mendapat kodingnya (bahasanya) kita dapat memasukkannya ke Python.
kita menggunakan python sebagai tools. Tools seperti ini dapat mengolah data dengan cepat. Metode Numerik digunakan untuk menyelesaikan masalah matematis. Sangat penting dalam menggunakan Python untuk paham bahasanya agar kita dapat menjalankannya. Jangan sampai ketika kita mau menggunakan Python, kita tidak mengerti cara menjalankannya.
Pada sistem persamaan linier, kita perlu menentukan acuan atau "default". Misalnya, kita dapat menentukan baris pertama sebagai acuan pada 3 baris persamaan linier. Namun satu hal yang perlu kita ingat, Python hanya dapat mengoperasikan pertambahan, pengurangan, perkalian, dan pembagian. Dalam membuat sistem perhitungan, kita perlu membentuk pola perhitungan. Jika kita membicarakan numerikal, kita membicarakan pola. Itulah mengapa kita perlu menentukan pola yang akan kita gunakan untuk menyelesaikan perhitungan.
misal
n = Jumlah baris / kolom
i = hasil ke...
j = kolom
k = pivot
Farrel Jordan Octavian - 1706042075
Tugas Break Even Point
import numpy as np
from numpy import array
A=np.array([[5,6,7],[3,4,5],[1,2,3]],float)
B=np.array([300,200,100],float)
C=np.array([[5,6,7,300],[3,4,5,200],[1,2,3,100]],float)
print('Panjang (x1), Lebar (x2), Jumlah Kamar Kost (x3) Didapat dari Matrix :')
print(C)
n=len(B) x=np.zeros((3),float) for k in range (0,n-1):
for i in range (k+1,n): if A[i,k] != 0.0 : lam = A[i,k]/A[k,k] A[i, k+1:n] = A[i, k+1:n] - lam*A[k, k+1:n] B[i] = B[i] - lam*B[k] for k in range (n-1,-1,-1) : x[k]=(B[k]-np.dot(A[k,k+1:n], x[k+1:n]))/A[k,k] Panjang = x[0] Lebar = x[1] Kamar = x[2]
Harga = int(input("Masukkan Harga Bangunan per Meter Kuadrat : Rp. "))
print("")
HargaKos = Panjang * Lebar * Harga
print("Rumah Kost Senilai Rp. ", HargaKos)
print("")
Sewa = int(input("Masukkan Harga Sewa Kost Per Bulan : Rp. "))
print("")
Perawatan = int(input("Masukkan Estimasi Biaya Perawatan Kost : Rp. "))
print("")
Keuntungan = HargaKos / ((Sewa-Perawatan) * x[2])
KeuntunganTahunan = Keuntungan/12
print("Anda Akan Balik Modal Setelah Menunggu Selama", round(Keuntungan),"Bulan atau selama", round(KeuntunganTahunan),"Tahun")
Link video Tugas : https://youtu.be/8K0qMJUKh1w
Farrel Jordan Octavian - 1706042075
UJIAN AKHIR SEMESTER
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 Stiffener") print("Kondisi Terikat : lebas 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 L Stiffener:")) 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("sectional area awal",f(H)) A = -fMin/f(H)*100 print("efisiensi",A,"%") input("\nPress return to exit")
LINK : https://drive.google.com/open?id=1-0M2KH9uafjwzNcZdz-pQK4qOGGE_EC2