Difference between revisions of "Muhamad Adim Majid"

From ccitonlinewiki
Jump to: navigation, search
(Blanked the page)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:Foto Adim.jpg|thumb|Muhamad Adim Majid 2019]]
 
  
'''Muhamad Adim Majid''' (lahir di Kudus, 22 Januari 2000) merupakan seorang mahasiswa [http://eng.ui.ac.id 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.
 
 
[[File:Phyton adim.png|600px]]
 
 
==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")
 
 
[[File:Hello_world_Adim.png|800px]]
 
 
===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
 
 
[[File:Tuple_Adim.png|800px]]
 
 
==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===
 
 
[[File:Flowchart_Fibo_Adim2.jpg|800px]]
 
 
===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))
 
 
[[File:Fibo_Adim.png|600px]]
 
 
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'''
 
 
[[File:Rumus_A_Adim.jpg|650px]]
 
 
'''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'''
 
 
[[File:adim_UTS_Soal_1.mp4]]
 
 
===Nomor 3B===
 
'''Rumus yang Dipakai'''
 
 
[[File:Soal_3B_Adim.jpg|650px]]
 
 
'''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'''
 
 
[[File:Adim_Soal_2_Render_FF.mp4]]
 
 
===Video Muhasabah===
 
[[File:Muhasabah_Adim.mp4]]
 
 
==Contoh soal Runge-Kutta 4 orde==
 
===Soal yang Saya Buat===
 
 
[[File:Runge_Kutta_Adim_Soal.jpg|800px]]
 
 
===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===
 
 
[[File:Mtnum_Adim_Rungekutta.jpg|400px]]
 
 
==Kolom Komentar==
 
<comments voting"plus" />
 

Latest revision as of 14:42, 18 September 2021