Muhamad Adim Majid

From ccitonlinewiki
Revision as of 23:31, 6 November 2019 by Muhamad.adim (talk | contribs) (Contoh soal Runge-Kutta 4 orde)
Jump to: navigation, search
Muhamad Adim Majid 2019

Muhamad Adim Majid (lahir di Kudus, 22 Januari 2000) merupakan seorang mahasiswa Fakultas Teknik Universitas Indonesia, mengambil jurusan Teknik Mesin.


Pengenalan Metode Numerik

Kalkulus Untuk Mahasiswa Teknik

Menurut Adim, mahasiswa Teknik Mesin harus belajar Kalkulus karena pada dasarnya Kalkulus adalah hal yang paling mendasar yang diperlukan untuk mempelajari hal-hal yang lebih mendalam. Ilmu-ilmu dan konsep yang dipelajari pada Kalkulus pada nantinya akan dipakai di mata kuliah lain, seperti Termodinamika Dasar dan Matematika Teknik.

Python

Python adalah bahasa pemrograman interpretatif multigunadengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas,dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif. Python juga didukung oleh komunitas yang besar.

Phyton adim.png

Belajar Bahasa Python

Print "Hello World" dengan Python

Membuat tulisan di python sangatlah mudah tidak seperti bahasa pemograman yang lain cukup memberikan perintah print

print("Hello World")

Hello world Adim.png

Python Tuple

Masukkan Kode

tuple = ("Muhamad","Adim","Majid","Adim",(22,1,2000))
name1,name2,name3,surname,born = tuple
print("Nama saya",name1,name2,name3,", biasa dipanggil",surname,". Saya muncul di bumi pada tanggal",born[0],"bulan",born[1],"tahun",born[2],".")

Akan Menghasilkan

Nama saya Muhamad Adim Majid , biasa dipanggil Adim . Saya muncul di bumi pada tanggal 22 bulan 1 tahun 2000

Tuple Adim.png

Menentukan Suku Ke-n Deret Fibonacci Dengan Python

Algoritma

1. Mulai
2. Tentukan definisi n
3. Tentukan nilai a=0 , b=1
4. Jika n<0, print "Incorrect input"
5. Dan jika n=0, kembali ke a
6. Dan jika n=1, kembali ke b
7. Selain itu, untuk i di range 2 dan seterusnya: c = a + b, a = b, b = c, return b
8. Input nilai n
9. Selesai

Flowchart

Flowchart Fibo Adim2.jpg

Kode di Python

def fibonacci(n):
   a = 0
   b = 1
   if n < 0:
       print("Incorrect input")
   elif n == 0:
       return a
   elif n == 1:
       return b
   else:
       for i in range(2,n):
           c = a + b
           a = b
           b = c
       return b
Fibo = int(input('enter n: '))
print(fibonacci(Fibo))

Fibo Adim.png

Run dari kode di atas. Ketika dimasukkan nilai n = 30, program menampilkan suku ke-30 dari deret fibonacci yaitu 514229.

QUIZ

Problem 2.1 Nomor 6

#Numpy dimasukkan ke dalam program
from numpy import linalg 
import numpy as np
#Matriks dipecah menjadi 5 baris
#Baris pertama dinotasikan sebagai barisA1, baris kedua barisA2, dst.
#MatriksA sebagagai notasi dari matriks a
barisA1 = [0,0,2,1,2] 
barisA2 = [0,1,0,2,-1]
barisA3 = [1,2,0,-2,1]
barisA4 = [0,0,0,-1,1]
barisA5 = [0,1,-1,1,-1]
MatriksA = np.array ([barisA1,barisA2,barisA3,barisA4,barisA5])
#MatriksB sebagagai notasi dari matriks b
MatriksB = np.array ([1,1,-4,-2,-1])
#Perhitungan dengan modul numpy
jawab = linalg.solve (MatriksA,MatriksB)
hasilx1 = int(jawab[0])
hasilx2 = int(jawab[1])
hasilx3 = int(jawab[2])
hasilx4 = int(jawab[3])
hasilx5 = int(jawab[4])
#Hasil
print ("Hasilnya adalah:")
print ("x1=",hasilx1)
print ("x2=",hasilx2)
print ("x3=",hasilx3)
print ("x4=",hasilx4)
print ("x5=",hasilx5)

Jika kode tersebut di run maka akan memperlihatkan

Hasilnya adalah:
x1= 3
x2= -2
x3= 1
x4= 1
x5= -1

Problem 7.1 Nomor 2

# x0 dan y sebagai titik asal, x yaitu 0.03, dan h sebagai tingkat ketinggian
x0 = 0 
y0 = 1  
# pada x = 0.03 (Seperti di soal), y = 1
h = 0.008  # h dimisalkan 0.008
x = 0.03
# pers1 adalah persamaan awal soal
#y' = x^2 - 4y
def pers1(x, y):
  return (x**2 - 4*y)
def RKrangekutta(x0, y0, x, h):
  n = (int)((x - x0)/h)  
  y = y0 
  for i in range(1, n + 1): 
    k1 = h * pers1(x0, y)
    k2 = h * pers1(x0 + 0.5 * h, y + 0.5 * k1)
    k3 = h * pers1(x0 + 0.5 * h, y + 0.5 * k2)
    k4 = h * pers1(x0 + h, y + k3)
    #X selanjutnya
    x0 = x0 + h
    #Y selanjutnya
    y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
  return y 
#Hasilnya
print("hasilnya adalah")
print("Nilai y(", x, ") :") 
print (RKrangekutta(x0, y0, x, h))

Jika kode tersebut di run maka akan memperlihatkan

hasilnya adalah
Nilai y( 0.03 ) :
0.9084685163565254

UTS

Nomor 3A

Rumus yang Digunakan

Rumus A Adim.jpg

Berikut adalah Kode Python yang digunakan

import math
m1 = float(input("Massa 1 (Dalam kg) :"))
m2 = float(input("Massa 2 (Dalam kg) :"))
m3 = float(input("Massa 3 (Dalam kg) :"))
m4 = float(input("Massa 4 (Dalam kg) :"))
g = float(input("Gaya Grafitasi :"))
miu = float(input("Koefisien Gesek :"))
alfa = float(input("Sudut Alfa :"))
sinalfa = math.sin(math.radians(alfa))
cosalfa = math.cos(math.radians(alfa))
T1 = (m1 * g * sinalfa)-(m1 * g * cosalfa * miu)
T2 = T1 + (m2 * g * sinalfa) - (m2 * g * cosalfa * miu)
T3 = T2 + (m3 * g * sinalfa) - (m3 * g * cosalfa * miu)
T4 = m4 * g
print ("Nilai Tegang Tali 1 :",T1)
print ("Nilai Tegang Tali 2 :",T2)
print ("Nilai Tegang Tali 3 :",T3)
print ("Nilai Tegang Tali 4 :",T4)

Hasil

Massa 1 (Dalam kg) :35
Massa 2 (Dalam kg) :47
Massa 3 (Dalam kg) :29
Massa 4 (Dalam kg) :80
Gaya Grafitasi :9.81
Koefisien Gesek :0.3
Sudut Alfa :30
Nilai Tegang Tali 1 : 82.47005328318387
Nilai Tegang Tali 2 : 193.21555340631653
Nilai Tegang Tali 3 : 261.54788326952604
Nilai Tegang Tali 4 : 784.8000000000001

Video Penjelasan

Nomor 3B

Rumus yang Dipakai

Soal 3B Adim.jpg

Kode yang Dibuat

Torsimesin = eval(input('Torsi Mesin (Nm): '))
Ukuranban = eval(input('Ukuran Ban (inch): '))
massamobil = eval(input('Massa Mobil (kg): '))
g = eval(input('Gravitasi (m/s^2): '))
N = massamobil * g
koefgesek = eval(input('Koefisien gesek: '))
Fgesek = N * koefgesek
BAN = Ukuranban * 0.0254 / 2
Froda = Torsimesin / BAN
if Froda > Fgesek:
  print('Mobil Diam di tempat dan ngepot')
if Fgesek > Froda:
  kmh = eval(input('Top speed (km/h): '))
  bataskecepatan = kmh / 3.6
  Cd = eval(input('Koefisien Drag: '))
  A = eval(input('Area (m^2): '))
  rho = eval(input('Massa jenis udara (kg/m^3): '))
  Fdrag = Cd * A * rho * (bataskecepatan ** 2) / 2
  atotal = (Froda - Fdrag) / massamobil
  t = bataskecepatan / atotal
  print('t (s): ', t)

Hasil

Torsi Mesin (Nm): 300
Ukuran Ban (inch): 15
Massa Mobil (kg): 1000
Gravitasi (m/s^2): 9.81
Koefisien gesek: 0.4
Top speed (km/h): 200
Koefisien Drag: 0.2
Area (m^2): 3
Massa jenis udara (kg/m^3): 1.2
t (s):  119.81132075471703

Video Penjelasan

Video Muhasabah

Contoh soal Runge-Kutta 4 orde

Soal yang Saya Buat

Runge Kutta Adim Soal.jpg

Coding Runge-Kutta

t0 = 0 # waktu keadaan awal
v0 = 0 # V awal
h = 0.001 # ini adalah ketelitian (increment)
t = float(input("Nilai t (sekon): "))  # perintah untuk memasukkan nilai waktu t
if 0 <= t < 5:  # untuk 0 <= t < 5
  def F(t, v):
      return (120 * t - 0.159276 * (v**2))  # memasukkan nilai F(t) konstan pada 60t
  def rungeKutta(t0, v0, t, h):  # perhitungan Runge-Kutta
      n = (int)((t - t0) / h) # untuk mengetahui jumlah iterasi yang akan dilakukan maka panjangnya harus dibagi dengan increment yang telah ditentukan (h=0,001)
      v = v0
      for i in range(1, n + 1):
          k1 = h * F(t0, v)
          k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1)
          k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2)
          k4 = h * F(t0 + h, v + k3)
          v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4)
          t0 = t0 + h
      return v
  print("Nilai v pada waktu t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s")  # menampilkan nilai v
elif t >= 5:  # untuk t >= 5
  def F(t, v):
      return (80 - 0.159276 * (v**2))  # memasukkan nilai F(t) konstan pada 40N
  def rungeKutta(t0, v0, t, h):  # perhitungan Runge-Kutta
      n = (int)((t - t0) / h)
      v = v0
      for i in range(1, n + 1):
          k1 = h * F(t0, v)
          k2 = h * F(t0 + 0.5 * h, v + 0.5 * k1)
          k3 = h * F(t0 + 0.5 * h, v + 0.5 * k2)
          k4 = h * F(t0 + h, v + k3)
          v = v + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4)
          t0 = t0 + h
      return v
  print("Nilai v pada t =", t, "adalah", rungeKutta(t0, v0, t, h), "m/s")  # menampilkan nilai v
else:
  print("Nilai t harus lebih dari 0 atau positif.")

Hasil Run

Mtnum Adim Rungekutta.jpg

Kolom Komentar


Anonymous user #1

60 months ago
Score 0 You
test 123
Add your comment
ccitonlinewiki welcomes all comments. If you do not want to be anonymous, register or log in. It is free.