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 xMax = 2.0 v = float(input("Kecepatan awal mobil: ")) y = np.array ([v , -9.8]) h = 0 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 < xMax: h = min(h, xMax - 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)
Rabu, 6 November 2019 5:30 PM
Pada pertemuan kali ini, kami mendapat pengetahuan dari Pak Ahmad Indra mengenai pentingnya logika dan cara berpikir. Berbagai masalah matematis yang ada tidak boleh hanya diselesaikan dengn diketahui, ditanya, mencari rumus yang digunakan, dan menjawab itu adalah kerja seorang operator yang jalan secara terbuku. Akan tetapi, penyelesaian suatu masalah harus melalui proses yang lebih mendalam yaitu dengan memahami masalah tersebut terlebih dahulu. Dengan bisa memahami masalah tersebut, kita bisa berfungsi sesuai seorang mahasiswa teknik mesin dengan menyusun masalah mennjadi suatu persamaan yang kemudian bisa diselesaikan.
Juga pada pertemuan kali ini, kami membahas soal UTS yang sudah dikerjakan, yang ternyata seharusnya kami memasukkan nilai percepatan dari mobil tersebut. Namun, karena pada umumnya percepatan mobil tidak diketahui, jadi kami harus memasukkan nilai Horsepower dan RPM dari mobil tersebut.
Rabu, 13 November 2019
5:29 PM
Pada pertemuan hari ini, kami diberi materi oleh Pak Radon mengenai proses untuk mengelola data suatu grafik yaitu dengan regresi linier, curve fitting, dan least square. Hal ini dapat dilaksanakan dengan menggunakan data yang sudah dikumpulkan sebelumnya untuk diproses. Salah satu aplikasi dari regresi linier, curve fitting, dan least square ini merupakan Optimasi. Optimasi sendiri merupakan proses yang bertujuan untuk mencari nilai minimum atau maksimum dari suatu fungsi. fungsi ini dapat berasal dari data yang dikumpulkan atau model matematis yang dibuat. Dengan melakukan optimasi, kita bisa mendapatkan nilai efektif atau efisien dari suatu sistem. Contohnya, volume mobil agar bensin dapat diiritkan, desain suatu panel surya agar output daya maksimal, dan seterusnya.
Rabu, 20 November 2019
5:45 PM
Pada pertemuan hari ini, kami dikenalkan terhadap software yang baru, yaitu CFDSOF. CFDSOF adalah software yang digunakan untuk menganalisis gerak atau pengaruh suatu fluida dalam suatu Boundary Volume. secara langsung materi minggu ini juga berhubungan dengan salah satu jenis masalah matematis yaitu Boundary Value Problem. Masing-masing mahasiswa kelas Metode Numerik mempelajari CFDSOF ini dengan sebuah model contoh mobil yang sudah disediakan oleh asisten dosen, Bang Timo dan Bang Edo. Mereka mengajarkan kita langkah per langkah dari bagaimana mengimport model, membuat meshing volume serta konfigurasi jumlah mesh dan boundary, kemudian pemilihan model simulasi, input data boundary, running simulasi, hingga analisis hasil yang ada dengan aplikasi paraview. Untuk progress tugas ini, dapat dilihat di page kelompok saya, yaitu kelompok 5.\
Rabu, 27 November 2019
5:35 PM
Pada pertemuan hari ini, kami diberikan kuis oleh Pak Ahmad Indra, mengenai soal yang diberikan kepada kami pada saat pertemuan pertama, dan cara menjawabnya sesuai dengan metode analitik dan numerik. Selain itu, soal kuis tersebut menanyakan juga mengenai apa pemahaman kami tentang optimasi, dan bagaimana progress individu dalam tugas airfoil.
Rabu, 4 Desember 2019
5:49 PM
Pada pertemuan hari ini, beberapa kelompok maju kedepan kelas untuk mempresentasikan hasil airfoil yang sudah dibuat, juga kami belajar mengenai Neural Network, dan untuk tugas minggu ini, kami diminta untuk membuat ANN untuk diaplikasikan ke data CFD Airfoil yang sudah didapatkan sebelumnya.