Difference between revisions of "Muhammad Yusuf Abdurrahman"
Line 100: | Line 100: | ||
>> Kodingan : | >> Kodingan : | ||
− | <nowiki> | + | <nowiki>import numpy as np |
− | import numpy as np | ||
import math | import math | ||
Line 163: | Line 162: | ||
>> Kodingan penyelesaian dengan metode Runge-Kutta orde 4 : | >> Kodingan penyelesaian dengan metode Runge-Kutta orde 4 : | ||
− | <nowiki> | + | <nowiki>import numpy as np |
− | import numpy as np | ||
from math import * | from math import * | ||
Revision as of 23:47, 30 October 2019
Biodata Diri
Bismillahirrahmaanirrahiim,
Halo semua, perkenalkan nama saya Muhammad Yusuf Abdurrahman. Saya merupakan mahasiswa jurusan Teknik Mesin angkatan 2016. Saat ini saya sedang mengambil mata kuliah Metode Numerik dibawah bimbingan Bapak Dr. Eng. Radon Dhelika dan juga Bapak Dr. Ir. Ahmad Indra Siswantara
>> Review Hari Pertama Kelas Metode Numerik (4 September 2019)
Pada hari pertama, kelas dimulai dengan pembukaan oleh Bapak Ahmad Indra yang memperkenalkan diri beliau beserta Pak Radon sebagai Dosen yang mengajar secara bersamaan dengan beliau.
Beliau memberikan pemahaman kepada kami mengenai dasar fondasi yang harus dipahami dalam kegiatan belajar yaitu mengenai alasan mengapa kita harus belajar beberapa topik mata kuliah secara spesifik seperti kalkulus. Kami pun diminta untuk memberikan alasan yang logis untuk menjawab pertanyaan tersebut.
Jawaban Saya :
>Kenapa Anak Mesin harus belajar kalkulus ?
>Karena kalkulus adalah tools yang fundamental digunakan dalam penyelesaian permasalahan fisika dan keteknikan yang merupakan bentuk aplikasi secara riil dari ilmu fisika. Contohnya adalah dalam menyelesaikan masalah Kinematika dan Dinamika yang sangat kental dengan Hukum Newton dimana terdapat definisi turunan percepatan, kecepatan, dan jarak.
Tugas Metode Numerik 01 :
Selesaikan permasalahan matematika berikut dengan menggunakan algoritma, flowchart program :
Tugas Fibonacci
Tuliskan algoritma, flowchart dan juga coding di Python untuk menentukan suku ke-n pada suatu barisan Fibonacci ?
1,1,2,3,5,8,....
>> Algoritma :
Definisikan terlebih dahulu suatu list barisan fibonacci untuk dua suku pertama yaitu 0 dan 1. Definisikan n sebagai suku ke-n dari barisan fibonacci yang ingin diketahui besarnya. Masukan fungsi input untuk memasukan nilai 'n' dan kemudian dengan fungsi eval untuk membaca nilai dari 'n'
Kemudian dengan menggunakan fungsi If, dengan block pertama adalah kondisi jika variabel n yang di input adalah kurang dari 0, maka akan menghasilkan bacaan "masukan bilangan bulat positif!"
jika kondisi pertama false, maka akan masuk ke kondisi kedua dimana jika n <= jumlah komponen pada list fibonacci, maka akan di di print nilai dari komponen list fibonacci urutan ke n-1 (karena pembacaan list dimulai dari nol)
Jika kondisi kedua false, maka block terakhir yang akan dieksekusi adalah suatu variabel yang merupakan penjumlahan dari nilai fibonacci baris ke n-1 dan n-2, nilai variabel ini akan ditambahkan ke dalam list awal fibonacci.
Kemudian masukan perintah print untuk komponen list fibonacci ke n, untuk print output suku ke -n dari barisan fibonacci yang diinginkan
>> Coding Python :
BarisFib = [0,1] a = input('Masukan suku ke-n berapa dari barisan fibonacci?') n = eval(a)
def BarisFib(n):
if n<0: print("mohon masukan bilangan bulat positif!") elif n<=len(BarisFib): return BarisFib[n-1] else: Nilaifibb = BarisFib(n-1)+BarisFib(n-2) BarisFib.append(Nilaifibb) return Nilaifibb
print(BarisFib(n))
Resume Materi Kelas (25 September 2019)
Pak DAI menjelaskan bahwa pemodelan merupakan representasi, simplifikasi ataupun asumsi dari suatu sistem.
Asumsi dimaksudkan bahwa dalam memodelkan suatu sistem rancangan ataupun keadaan, kita butuh untuk memberikan asumsi keadaan yang secara sederhana dapat merepresentasikan keadaan/sistem tersebut. Kita memberikan asumsi dikarenakan keterbatasan yang kita miliki, karena pada dasarnya ilmu matematika kadang tidak bisa menerjemahkan kondisi eksak pada suatu keadaan. Ada faktor keterbatasan manusia yang membuat makna eksak sesungguhnya adalah pendekatan yang paling dekat dengan kondisi nyata.
Kemudian pak DAI menjelaskan mengenai parameter-parameter fisika, dalam hal ini adalah modulus elastisitas. E (modulus elastisitas) adalah keengganan suatu material untuk berdeformasi. Sudah menjadi keharusan bagi mahasiswa teknik mesin untuk dapat memahami parameter-parameter fisika tersebut secara mendasar, agar mampu membuat pemodelan yang baik.
UTS
A.) Kasus Soal 1A (Bidang Miring)
>> Soal :
>> Solusi Persamaan Linear :
>> Video Penyelesaian :
>> Kodingan :
import numpy as np import math #Mencari matriks umum dari sistem M = eval(input('Berapa Jumlah Massa')) Mi = M-1 m = np.zeros((Mi,Mi),float) n_m = np.zeros(Mi) for i in range (0,Mi): print('berapa besar massa ke-', i+1,'?') n_m[i]=eval(input()) a= 0 for a in range (0,Mi): m[a,0] = n_m[0] b= 0 for b in range (1,Mi): m[b,1] = n_m[1] m[2,2] = n_m[2] print('matriks massa sistem bidang miring statis adalah', '\n',m) #Definisikan matriks b sebagai pengali massa g = eval(input('berapa besar percepatan gravitasi?')) teta = eval(input('berapa sudut bidang miring?')) mat_b = np.zeros(Mi) d = 0 for d in range (0,Mi): mat_b[d] = g*math.sin(math.radians(teta)) print(mat_b) #Melakukan Perkalian Dot Product agar mendapatkan nilai T T = np.dot(m,mat_b) for l in range (0,Mi): print('nilai T ke- ', l+1, 'adalah', T[l])
>> Hasil Kodingan :
B.) Soal 1B : Kesetimbangan Dinamis >> Soal :
>> Video Penyelesaian :
>> Kodingan penyelesaian dengan metode Runge-Kutta orde 4 :
import numpy as np from math import * # Mengasumsikan parameter-parameter fisika pada sistem f = eval(input('berapa gaya dorong dari mesin mobil?')) g = eval(input('berapa besar percepatan gravitasi bumi?')) fk = eval(input('berapakah nilai koefisien gesek kinetis?')) cd = eval(input('berapakah koefisien drag udara?')) m = eval(input('berapakah massa mobil?0')) # Mencari besar kecepatan maksimum v_maks = ((f-fk*m*g)/cd)**(2/3) #mendefinisikan fungsi diferensial f(v,t) def diff_v (v,t): fungsi = ((f-cd*(v**(3/2))-m*g*fk)/m) return (fungsi) # Nilai kecepatan initial t = 0 v = 0 #Menentukan nilai step h=0.3 step_size = np.arange(v,v_maks,h) #Membuat looping untuk melakukan iterasi kecepatan k for t in step_size: k1 = diff_v (v,t) k2 = diff_v (v+0.5*h,t+0.5*h*k1) k3 = diff_v (v+0.5*h,t+0.5*h*k2) k4 = diff_v (v+h,v+k1*h) t = t+1/6*(k1+2*k2+2*k3+k4)*h print ('maka waktu yang dibutuhkan untuk dapat mencapai v maksimum adalah', t, 'sekon')
>> Hasil Kodingan :