Adriel Aron Hamonangan
Adriel Aron Hamonangan
1706986271
Departemen Teknik Mesin
Progress Tugas Merancang - Adriel Aron Hamonangan
Rabu, 4 September 2019
5:01 PM
Kita sebagai mahasiswa tentunya tidak asing dengan mata kuliah Kalkulus. Namun, seberapa pentingkah kalkulus untuk dipelajari? Kalkulus adalah mata kuliah yang sangat mendasar. Semua mata kuliah departemen ataupun matakuliah yang lain, pasti menggunakan ilmu-ilmu atau operasi matematis yang sudah dipelajari di kalkulus. Itulah mengapa kalkulus penting untuk dipelajari, karena kalkulus adalah dasar.
Senin, 9 September 2019
8:05 AM
Tugas 1
Pada tugas pertama ini, kami diberikan sebuah persamaan : (x^2-1)/(x-1). Kemudian, kami diminta untuk menyelesaikan persamaan tersebut menggunakan Python, dan kami harus menemukan dan menggunakan algoritma kami sendiri. Setelah saya mengamati permasalahan tersebut, saya memutuskan untuk menggunakan limit untuk menyelesaikan persamaan tersebut. Berikut adalah cara saya menyelesaikan persamaan tersebut menggunakan Visual Studio Codes:
Dapat dilihat dari kedua gambar diatas, bahwa dengan menggunakan limit (limit fungsi mendekati satu) kita akan mendapatkan banyak sekali hasil, karena di algoritma tersebut, variabel i merepresentasikan nilai x, yang mempunyai range dari 0 sampai dengan 0.99 (nilai i ditambahkan dengan 0.01, hanya dua angka dibelakang koma saja).
Rabu, 11 September 2019
5:11 PM
Pada pelajaran Metode Numerik kali ini, Pak Ahmad Indra mengajarkan kita tentang kecerdasan. Orang yang cerdas adalah orang yang mengerjakan segala sesuatunya bukan dengan otak saja, tetapi juga dengan hati.
Juga, pada hari ini kami belajar tentang perbedaan dari 32 bit dan 64 bit. Sistem operasi 32 bit hanya mampu beroperasi dengan kapasitas RAM maksimal 4 GB. Sedangkan, pada sistem operasi 64 bit, kapasitas RAM maksimal yang mampu digunakan adalah 192 GB.
Rabu, 18 September 2019 5:29 PM
Pada kelas Metode Numerik kali ini, kami diberikan kuis oleh Pak Radon dan Pak Ahmad Indra; yaitu tentang bagaimana memprogram deret Fibonacci ke dalam Python. Kami pertama harus menulis algoritma, lalu membuat flowchart, dan kami juga harus membuat program Python. Di kesempatan kali ini, kami juga belajar mengenai fungsi input, dan juga loop function. Kedua hal ini mempermudah kami untuk mengerjakan dan membuat program-program di Python untuk kedepannya.
Contoh pengerjaan Fibonacci:
Contoh fungsi input:
Rabu, 2 Oktober 2019 5:36 PM
Pada hari ini saya belajar bahwa dengan menggunakan Python Editor, saya dapat mengerjakan soal-soal tentang pegas, dengan dimasukkan ke dalam matriks.
Pertama-tama, kita harus meninjau terlebih dahulu satuan-satuan yang ada di pegas tersebut. Apakah ada F, k, u, atau yang lain. Setelah kita mengetahui satuan apa saja yang ada di dalam matriks dan kita mengetahui seperti apa rangkaian (paralel atau seri) dan jumlah pegas yang ada, barulah kita masukkan data yang kita ketahui ke dalam matriks.
Pertama, matriks yang kita susun kita sesuaikan dengan urutan pegas. F1 untuk pegas 1, F2 untuk pegas 2, F3 untuk pegas 3, dan seterusnya. Lalu, jika semuanya sudah kita masukkan ke dalam matriks, barulah kita pindah ke dalam Python Editor. Pada script yang dibuat oleh Bang Edo, pertama-tama beliau memasukkan ada berapa banyak pegas yang ada di dalam rangkaian tersebut. Setelah itu, barulah dimasukkan matriksnya, baru setelah itu dapat dihitung yang dicari (F, k, dst.).
Rabu, 9 Oktober 2019 5:33 PM
Pada pelajaran Metode Numerik hari ini, ada bermacam macam cara dalam menyelesaikan 1 set aljabar, salah satunya adalah Metode Eliminasi. Sebagai mahasiswa, kita harus mempunyai skill untuk memodelkannya. Ada juga Metode Direct; adalah metode langsung untuk menghitung kesetimbangan gaya. Konsep dasar dalam Mechanical Engineering adalah Continuum Asumption. Sebagai Mechanical Engineer, benda yang kita lihat (cth: meja) itu adalah kontinuum. Persamaan Diferensial harus dipecahkan ada untuk menyelesaikan masalah yang terjadi di kehidupan kita sehari-hari. Sebagai contoh, kita harus menghitung stress dari chassis mobil (menggunakan Persamaan Differensial).
Rabu, 16 Oktober 2019
5:50 PM
Code Python untuk Soal 2a Kuis adalah:
def printMatrixline(M): for x in range(lenX): for y in range(lenY): print("M[" + str(x) + "," + str(y) + "]: " + str(M[x][y])) def printMatrixform(M): for x in range(lenX): for y in range(lenY): print(str(M[x][y]) + " ", end = ) print("\n") print("Insert column: ") lenX = int(input()) print("insert row: ") lenY = int(input()) M = [[0 for x in range(lenY)] for y in range(lenX)] if lenY - 1 != lenX: print("Your matrix cannot be used.") else: #input matrix for x in range(lenX): for y in range(lenY): print("M[" + str(x) + "," + str(y) + "]: ") M[x][y] = int(input()) print("\n") #printMatrixline(M) printMatrixform(M) print("\n") flag = 0 n = lenX for i in range(n): if M[i][i] == 0: c = 1 while M[i + c][i] == 0 and (i + c) < n: c += 1 if (i + c) == n: flag = 1 break j = i for k in range(n + 1): temp = M[j][k] M[j][k] = M[j + c][k] M[j + c][k] = temp for j in range(n): if i != j: p = M[j][i] / M[i][i] for k in range(n + 1): M[j][k] = M[j][k] - (M[i][k]) * p printMatrixform(M) for i in range(n): if M[i][i] != 1: p = M[i][i] M[i][n] = M[i][n] / p M[i][i] = M[i][i] / p print("\n") printMatrixform(M)
Code Python untuk Soal no 2b Kuis adalah:
def dydx(x, y): return ((x**2 - 4*y)) # Finds value of y for a given x using step size h # and initial value y0 at x0. def rungeKutta(x0, y0, x, h): # Count number of iterations using step size or # step height h n = (int)((x - x0)/h) # Iterate for number of iterations 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) # Update next value of y y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) # Update next value of x x0 = x0 + h return y #misalkan : x0 = 0 y = 1 x = 0.03 h = 0.01 print ('The value of y at x is:', rungeKutta(x0, y, x, h))
UJIAN TENGAH SEMESTER Rabu, 23 Oktober 2019
KODING UNTUK NOMOR 3 SISTEM 1A
from math import * g = 9.81 m1 = eval(input("Berat massa1: ")) m2 = eval(input("Berat massa2: ")) m3 = eval(input("Beratnya massa3: ")) u1 = eval(input("Koefisien gesekan1: ")) u2 = eval(input("Koefisien gesekan2: ")) u3 = eval(input("Koefisien gesekan3: ")) teta = eval(input("Sudut teta: ")) a = eval(input("Percepatan: ")) x = sin (teta) y = cos (teta) t1 = m1*g*(x-u1*y) - m1*a t2 = m2*g*(x-u2*y) + t1 - m2*a t3 = m3*g*(x-u3*y) + t2 - m3*a ma = (t3 - m1*a)/g print ("Berat massa ma adalah: ",ma)
KODING UNTUK NOMOR 3 SISTEM 1B
import math a = float(input("acceleration: ")) v = 0 x = 0 t = 0 cd = float(input("drag coefficient: ")) u = float(input("koefisien gesek: ")) g = 9.8 dragfric0 = 0 dragfric = ((cd * (v + (a*t)**(3/2))) + (u * g)) while dragfric0 < a: v3 = v + a - dragfric0 x = x + ((v3**2 - v**2) / (2 * a)) v = v3 dragfric0 = dragfric0 + dragfric t += 1 print ("waktu tempuh: ",t," s") print ("jarak tempuh: ",x," m") print ("kecepatan tertinggi : ",v3 / 3.6 ," km/h")
VIDEO MUHASABAH
VIDEO PENJELASAN CODING 1A
VIDEO PENJELASAN CODING 1B
Coding untuk sistem buatan sendiri menggunakan metode Runge-Kutta
- Sebuah mobil berjalan dengan menggunakan prinsip gaya lurus berubah beraturan
- Target: menemukan jarak tempuh horizontal dari mobil saat t = 2 detik
import math import numpy as np
def F(x,y): F = np.zeros(2) F[0] = y[1] F[1] = y[1] - 9.8*x return F
x = 0.0 xStop = 2.0 v = float(input("Kecepatan awal mobil: ")) y = np.array ([v , -9.8]) h = 0.1 freq = 2
def integrate (F,x,y,xStop,h): def run_kut4(F,x,y,h): K0 = h * F(x,y) K1 = h * F(x + h/2.0, y + K0/2.0) K2 = h * F(x + h/2.0, y + K1/2.0) K3 = h * F(x + h, y + K2) return (K0 + K1*2.0 + K2*2.0 + K3)/6.0
X = [] Y = [] X.append(x) Y.append(y) while x < xStop: h = min(h, xStop - x) y = y + run_kut4(F,x,y,h) x = x + h X.append(x) Y.append(y)
def printSoln(X,Y,freq): def printHead(n): print ("\n x ", end=" ") for i in range (n): print (" y[",i,"] ",end=" ") print ()
printSoln(X,Y,freq)