Satria Yusuf Erlangga
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Biodata
NPM : 1706036242
TTL : Tegal, 1 september 1999
Contents
Catatan 1 ,4 September 2019
Sekarang ini kita tidak luput dari pemrograman, salah satu salah satu aplikasi yang digunakan dari pemrograman adalah python. Banyak dari universitas di indonesia maupun di luar negeri sudah mencantumkan pemrograman sebagai salah satu mata kuliah wajib mereka dikarenakan betapa pentingnya mata kuliah ini.
Kenapa kita mempelajari kalkulus dalam salah satu mata kuliah teknik mesin?
Karena dalam kalkulus kita mempelajari dasar-dasar perhitungan dan rumus dasar yang dapat kita gunakan pada mata kuliah lanjutan seperti matematika teknik , mekanika fluida dan mata kuliah lainnya.
HW 1 : Pelajari Python dan dan membuat program untuk menyelesaikan suatu fungsi
Pada Tugas yang pertama kali ini kita diminta untuk menyelesaikan limit dari fungsi F(x)= (x^2-1)/(x-1)
dengan x=1
Pada tugas kali ini, saya mencoba menggunakan import library sympy untuk simbolic mathemathic dari library python itu sendiri. sympy tersendiri didesain agar memiliki feature full sebagai CAS atau computer algebra system
Berikut langkah2 yang saya lakukan:
Catatan 2 ,11 September 2019
Kita sebagai engineer , harus memahami komputer itu sendiri. Tidak hanya cuma bisa menggunakan nya, namun memahami juga bagaimana program dari komputer sendiri dapat digunakan. Seperti kata Pak Radon, jika kita ingin mempelajari kita harus langsung masuk mencobanya dibandingkan membaca teori dari buku.
Kemudian kami diajarkan dasar-dasar python dari Pak Radon. Saya menggunakan aplikasi Spyder dari laptop saya dikarenakan komputer yang saya gunakan tidak bisa terhubung pada internet. Disitu kami belajar sedikit tentang Tupples dan List. Berikut adalah latihan saya :
Catatan 3 ,18 September 2019
Pada hari ini,Pak Dai dan Pak Radon memberikan kuis untuk menyelesaikan soal program deret fibonacci melalui python.
Deret tersebut : 1, 1, 2, 3, 5, 8, 13, .. , n. Ada banyak cara untuk menyelesaikan deret fungsi tersebut, namun yang saya gunakan adalah dengan cara if else :
Catatan 4 , 25 September 2019
Pada pertemuan kali ini, kami mempelajari Pemodelan komputer, dengan memahami dasar-dasar dan konsep pemodelan komputer.
Apa itu model?
Model adalah pengilustrasi dari suatu hal yang kita inginkan
Permodelan adalah sebuah simplifikasi dari sistem atau objek (dari keadaan yang rumit)
Contoh pada arsitek pembangunan nya rumit kemudian di simpelkan pada asumsi2 simplifikasi, representasi dan asumsi
jikalau ilmu dijadikan satu maka semua terhubung pada mechanical dan yang kita harus serap dari profesor adalah pikirannya.
pada buku dari python ada penerapan soal dan gauss sendiri, namun kita harus memahami dasar nya sehingga kita memahami bagaimana gauss tersebut (memiliki parameter,asumsi) pada saat ujian kita akan ada problem kemudian kita harus memodelkan nya, walaupun tidak pernah simulasi 100 exact seperti real nya.
Menurut saya Modelling computer adalah pengsimulasian melalui komputer sehingga kita dapat mempresentasikan suatu hal, benda atau fenomena dengan simplifikasi dan asumsi dari dasar-dasar dan paramater sehingga hal tersebut dapat dipahami oleh operator atau manusia, walaupun model tidak akan 100% sama dari aslinya
Catatan 5 , 2 Oktober 2019
Pada pertemuan kali ini, kelas diisi oleh asisten dosen , Bang Edo. Bang Edo adalah alumni S1 DTM UI. Bang Edo menceritakan mengapa kita perlu belajar dan menggunakan python dan bukan bahasa pemrograman lain. Karena, python adalah salah satu bahasa pemrograman yang sekarang sering digunakan dan mudah dipahami. Dan kita juga dapat lebih memahami bagaimana pemrograman dari suatu kode, sedangkan di matlab semua fungsi sudah ada dan kita hanya tinggal menggunakan fungsi tersebut untuk menegerjakan dan tidak menggunakan logika pengerjaan. Kita juga diajarkan bagaimana pemodelan menggunakan python pada salah satu kasus gauss jordan dan cara pemahaman kode nya.
Catatan 6 , 9 Oktober 2019
Pada pertemuan kali ini, kita masih tentang pemodelan. Dalam pemodelan, kita asumsuikanbahwa bahwa benda yang dimodelkan adalah kontinuum. Dari asumsi tersebut, kita dapatkan persamaan deferensial.
Kita diberikan tugas mengenai runge kutta
Catatan 7 , 16 Oktober 2019
Pak DAI mengadakan kuis , kita harus mengerjakan kasus dari soal buku dan menuliskan algoritma nya pada kertas, dan menuliskan kode pemrograman nya pada Air.eng. kode tersebut ada pada dibawah ini.
Kuis
from numpy import*
#Menyusun Matriks A, baris 1 disusun kembali dengan angka sehingga tidak eror A = array([[1.,2.,0.,-2.,0.,-4],\ [0.,1.,0.,2.,-1.,1],\ [0.,0.,2.,1.,2.,1],\ [0.,0.,0.,-1,1.,-2],\ [0.,1.,-1.,1.,-1.,-1]]) print ('Matrix A Adalah =',A)
n=len(A) #Segitiga atas menggunakan Gauss for k in range(0,n-1):
for i in range(k+1,n): m=A[i][k]/A[k][k]
for j in range(0,n+1): A[i][j]=A[i][j]-m*A[k][j]
#Subtitusi Hasil = zeros((n,1)) Hasil[n-1][0]=A[n-1][n]/A[n-1][n-1] for j in range(n-2,-1,-1): S=0 for i in range(j+1,n): S=S+A[j][i]*Hasil[i][0] Hasil[j][0]=(A[j][n]-S)/A[j][j] #Print Hasil print ('Hasil=',Hasil)
Run
Matrix A Adalah = [[ 1. 2. 0. -2. 0. -4.] [ 0. 1. 0. 2. -1. 1.] [ 0. 0. 2. 1. 2. 1.] [ 0. 0. 0. -1. 1. -2.] [ 0. 1. -1. 1. -1. -1.]] Hasil= [[ 2.] [-2.] [ 1.] [ 1.] [-1.]]
2
#definisikan def dydx(x, y): return ((x**2 - 4*y)) # Mencari nilai dari y untuk x menggunakan ukuran h def rungeKutta(x0, y0, x, h): n = (int)((x - x0)/h) # Iterasi y = y0 for i in range(1, n + 1): "Apply Runge Kutta Formulas to find next value of y" k1 = h * dydx(x0, y) k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1) k3 = h * dydx(x0 + 0.5 * h, y + 0.5 * k2) k4 = h * dydx(x0 + h, y + k3) # Penambahan nilai y dan x y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) x0 = x0 + h return y #Pemisalan dan penambahan data : o = input ("berapakah nilai x0 ") p = input ("berapakah nilai y ") q = input ("berapakah nilai x ") r = input ("berapakah nilai h ") x0= int(o) y= int(p) x= float(q) h= float(r) print ('Nilai y pada x adalah:', rungeKutta(x0, y, x, h))
Run
berapakah nilai x0 0 berapakah nilai y 1 berapakah nilai x 0.03 berapakah nilai h 0.01 Nilai y pada x adalah: 0.8869291754400297
UTS
1
from math import * #asumsi nilai gravitasi g = 9.81 #input nilai m1-m3 m1 = eval(input("beratnya massa 1 adalah: ")) m2 = eval(input("beratnya massa 1 adalah: ")) m3 = eval(input("beratnya massa 1 adalah: ")) #mengasumsikan sudut 30 dengan nilai sin 0.5 sin = 0.5 #menghitung nilai m4 yang dibutuhkan untuk menghitung m4 = sin*(m1 + m2 + m3) #mencetak nilai m4 print ('nilai massa untuk mengimbangi nya adalah', m4 ) T = g*m4 #mencetak nilai print ('nilai tegangan nya adalah',T)
beratnya massa 1 adalah: 1 beratnya massa 1 adalah: 2 beratnya massa 1 adalah: 3 nilai massa untuk mengimbangi nya adalah 3.0 nilai tegangan nya adalah 29.43
2
#asumsikan g = 9.81 g = 9.81 #input nilai massa m = eval(input("berat mobil adalah: ")) #input nilai koef gesek D = eval(input("nilai koefisien geseknya adalah: ")) #input nilai koef H aeronya Cu = eval(input("nilai koef H aeronya adalah: ")) #asumsikan kecepatan maksimal VS = 30 #Menghitung A = VS*m B = Cu * 164.32 + m * g * D t = A/B #print waktu yang dibutuhkan print ('waktu yang dibutuhkan adalah',t)
berat mobil adalah: 1000 nilai koefisien geseknya adalah: 2 nilai koef H aeronya adalah: 3 waktu yang dibutuhkan adalah 1.4915755811178464
UTS
from math import *
- asumsi nilai gravitasi
g = 9.81
- input nilai m1-m3
m1 = eval(input("beratnya massa 1 adalah: ")) m2 = eval(input("beratnya massa 2 adalah: ")) m3 = eval(input("beratnya massa 3 adalah: ")) A = eval(input("Sudut A adalah: "))
- mengasumsikan sudut 30 dengan nilai sin 0.5
sinA = sin (radians (A))
- menghitung nilai m4 yang dibutuhkan untuk menghitung
m4 = sinA*(m1 + m2 + m3)
- mencetak nilai m4
print ('nilai massa untuk mengimbangi nya adalah', m4 ) T1 = m1*g*sinA T2 = T1+m2*g*sinA T3 = T2+m3*g*sinA T4 = T3
- mencetak nilai
print ('nilai sin dari sudut adalah',sinA) print ('nilai T1 nya adalah',T1) print ('nilai T2 nya adalah',T2) print ('nilai T3 nya adalah',T3) print ('nilai T4 nya adalah',T4)
from numpy import* from math import *
- asumsi nilai gravitasi
g = 9.81
- input nilai m1-m3
m1 = eval(input("beratnya massa 1 adalah: ")) m2 = eval(input("beratnya massa 2 adalah: ")) m3 = eval(input("beratnya massa 3 adalah: ")) m4 = eval(input("beratnya massa 4 adalah: "))
sinA = m4 / (m1+m2+m3)
- Menyusun Matriks A, baris 1 disusun kembali dengan angka sehingga tidak eror
A = array([[1.,0.,0.,0.,(m1*g*sinA)],\
[-1.,1.,0.,0.,(m2*g*sinA)],\ [0.,-1.,1.,0.,(m3*g*sinA)],\ [0.,0.,-1.,1,0.]])
print ('Matrix A Adalah =',A)
n=len(A)
- Segitiga atas menggunakan Gauss
for k in range(0,n-1):
for i in range(k+1,n): m=A[i][k]/A[k][k] for j in range(0,n+1): A[i][j]=A[i][j]-m*A[k][j]
- Subtitusi
Hasil = zeros((n,1)) Hasil[n-1][0]=A[n-1][n]/A[n-1][n-1] for j in range(n-2,-1,-1):
S=0 for i in range(j+1,n): S=S+A[j][i]*Hasil[i][0] Hasil[j][0]=(A[j][n]-S)/A[j][j]
- Print Hasil
print ('Hasil=',Hasil)
#asumsikan g = 9.81 g = 9.81 V0 = 0 #input nilai massa m = eval(input("berat mobil adalah: ")) #input nilai koef gesek D = eval(input("nilai koefisien geseknya adalah: ")) #input nilai koef H aeronya Cu = eval(input("nilai koef H aeronya adalah: ")) #asumsikan kecepatan maksimal VS = eval(input("nilai kecepatan maksimal adalah (dlm m/s): ")) #Menghitung a = eval(input ("nilai percepatan mobilnya adalah: ")) fD = D*g*m fU = Cu*VS**1.5 fA = m*a - fD - fU aS = fA/m t = (VS-V0) / aS print ("Waktu yang dibutuhkan untuk mencapai kecepatan akhir adalah",t , "detik")
m= float (input("massanya adalah :")) g = float (input("gravitasinya adalah :")) #massa jenis udara ro = 1.2 #massa jenis udara am = float(input("percepatan mobilnya adalah: ")) Cu = float(input("koefisien dragnya adalah: ")) D = float(input("koefisien gesekannya adalah: ")) A = float(input("area [m^2]: ")) v0 = float(input("kecepatan awal mobil adalah [m/s]: ")) vf = float(input("kecepatan mobil max adalahn [m/s]: "))
# total perceptan adalah gabungan dari am, af , ad Ff = m * g * D # rumusnya Ff = m * g * nu Fd = (Cu * A * ro * v0 ** 2) / 2 # rumusnya Fd = (Cd * A * p * v0 ** 2) / 2 a2 = (am) - (Fd / m) - (Ff / m) def dtdtv(t, y): return ((m) / (am*g - m * g * D - 0.5 * Cu * A * ro * v0 ** 2)) t = 0 h = 0.01 def rungekutta(v0, t0, vf, h): n = (int)((vf - v0) / h) t = t0 for i in range(1, n + 1): #rumus Runge kutta k1 = h * dtdtv(v0, t) k2 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k1) k3 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k2) k4 = h * dtdtv(v0 + h, t + k3)
#mendapatkan nilai t yang diperlukan hingga mencapai kecepatan tersebut t = t + (1.0 / 6.0) * (k1 + (2 * k2) + (2 * k3) + k4)
# nilai Vo v0 = v0 + h return t te = rungekutta(v0, t, vf, h)
print(te)