Difference between revisions of "Farhan Tiarrafi Pratama"

From ccitonlinewiki
Jump to: navigation, search
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
βˆ’
== lecture 1;04 September 2019 ==
+
[[File:Farhan.jpg|400px|thumb|right|Nama Saya Farhan Tiarrafi Pratama akrab di sapa farhan, seorang Mahasiswa Teknik Mesin, Fakultas Teknik Universitas Indonesia]]
 +
 
 +
Nama    : Farhan Tiarrafi Pratama
 +
 
 +
NPM    : 1806201075
 +
 
 +
Jurusan : Teknik Mesin
 +
 
 +
 
 +
== lecture 1 : 04 September 2019 ==
  
 
''1. Kenapa amak mesin belajar kalkulus ?''
 
''1. Kenapa amak mesin belajar kalkulus ?''
 
karena pada kalkulus terdapat materi materi dasar yang dapat di pergunakan untuk melewati mata kuliah lain yang membutuhkan materi dasar tersebut. kalkulus juga berperan penting pada pembentukan pola pikir "analisis" yang dapat sangat berguna untuk seorang engineer seperti teknik mesin.
 
karena pada kalkulus terdapat materi materi dasar yang dapat di pergunakan untuk melewati mata kuliah lain yang membutuhkan materi dasar tersebut. kalkulus juga berperan penting pada pembentukan pola pikir "analisis" yang dapat sangat berguna untuk seorang engineer seperti teknik mesin.
  
βˆ’
'''PHYTON'''
+
'''PYTHON'''
 
merupakan sebuah media progamming yang digunakan untuk meminimalisir kesalahan hitungan dengan bantuan sebuah komputer.
 
merupakan sebuah media progamming yang digunakan untuk meminimalisir kesalahan hitungan dengan bantuan sebuah komputer.
 
pada programming hanya dapat dilakukan pengerjaan matematika berupa pertambahan (+), pengurangan (-), perkalian(x), dan pembagian (:)
 
pada programming hanya dapat dilakukan pengerjaan matematika berupa pertambahan (+), pengurangan (-), perkalian(x), dan pembagian (:)
  
βˆ’
[[Media:https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwjZteqn_rbkAhXuILcAHTB1A2AQjRx6BAgBEAQ&url=http%3A%2F%2Fbicaratechno.blogspot.com%2F2014%2F09%2Fkumpulan-tutorial-progamming-dengan.html&psig=AOvVaw3wSTWkJr6ZkeR9SrFyCB3k&ust=1567680285357890]]
+
[[File:phytonlogo.jpeg]]
  
 
'''PAY ATTENTION''' : Penilaian secara terus menerus, perkembangan cara menguasai pemograman phyton
 
'''PAY ATTENTION''' : Penilaian secara terus menerus, perkembangan cara menguasai pemograman phyton
Line 15: Line 24:
 
1. mempelajari PHYTON untuk minggu ini dengan belajar membuat sebuah program
 
1. mempelajari PHYTON untuk minggu ini dengan belajar membuat sebuah program
 
2. membuat sebuah program agar dapat menjawab sebuah soal pada papan tulis
 
2. membuat sebuah program agar dapat menjawab sebuah soal pada papan tulis
 +
 +
'''Tempat Belajar'''
 +
1. sololearn.com
 +
 +
 +
== My Progres ==
 +
'''What is phyton ?'''
 +
Python is a high-level programming language, with applications in numerous areas, including web programming, scripting, scientific computing, and artificial intelligence. Python has several different implementations, written in various languages. CPython, is the most popular by far.
 +
 +
'''My First Try to use phyton'''
 +
 +
1. print('Hello World')
 +
2. print(2*4) >> 8
 +
3. print((4+9)*5) >> 65
 +
4. print((5+7)/2) >> 6
 +
 +
pada python operasi pertambahan menggunakan (+), pengurangan menggunakan (-), perkalian (*), pembagian (/), exponensial (**)
 +
error bisa terjadi pada python, contohnya ZeroDivisionErorr (Dividing by zero in Python produces an error, as no answer can be calculated)
 +
 +
 +
'''there are 2 types of number'''
 +
 +
''integer and float'', integer dapat dikatakan sebagai bilangan bulat (1,2,3,4 dll) dan float merupakan bilangan yang mempunyai koma ( 2.0,3.2,4,3 dll).
 +
 +
ada pengoprasian khusus pada python yang dapat dikatakan '''floor division(//)''' and '''modulo(%)''' berikut contohnya:
 +
 +
1. print (20 // 6) >> 3
 +
2. print (1.25 % 0.5) >> 0.25
 +
 +
'''''strings''''' : A string is created by entering text between two single or double quotation marks. When the Python console displays a string, it generally uses single quotes. The delimiter used for a string doesn't affect how it behaves in any way.
 +
 +
'''''Variables''''': Variables play a very important role in most programming languages, and Python is no exception. A variable allows you to store a value by assigning it to a name, which can be used to refer to the value later in the program. to assign a variable, use one equals sign. Unlike most lines of code we've looked at so far, it doesn't produce any output at the Python console. for example :
 +
    x = 7
 +
    print(x)
 +
    7
 +
    print(x + 3)
 +
    10
 +
    print(x)
 +
    7
 +
 +
    x = 123.456
 +
    print(x)
 +
    123.456
 +
    x = "This is a string"
 +
    print(x + "!")
 +
    This is a string!
 +
 +
    foo= input("99")
 +
    print(foo)
 +
    99
 +
 +
 +
== Tugas ( 4 sept 2019 )==
 +
[[File:HomeWork.png|400px|thumb|center|program dari pr yang di berikan menggunakan visual studio code]]
 +
 +
== Lecture 2 : 11 September 2019 ==
 +
[[File:practicesmakeperfect.png|500px|thumb|center|belajar variable di kelas menggunakan python anywhere]]
 +
[[File:practicesmakeperfect2.png|500px|thumb|center|(2)
 +
memulai cara membuat variable dan memanggilnya dalam bentuk perintah "print"]]
 +
 +
rec=('Farhan','Tiarrafi','Pratama',(28,6,2001))
 +
NamaAwal,NamaTengah,NamaAkhir,TanggalLahir=rec
 +
print(NamaAwal)
 +
TahunLahir = TanggalLahir [2]
 +
print(TahunLahir)
 +
name = rec[0]+''+rec[1]
 +
print(name)
 +
print(rec[0:3])
 +
 +
Farhan
 +
2001
 +
FarhanTiarrafi
 +
('Farhan', 'Tiarrafi', 'Pratama')
 +
 +
'''Padahari rabu 11 september 2019''', diajarkan untuk membuat suatu perumpamaan dan membuat perintah untuk memanggil variable tersebut. terlihat pada foto ke (2) yang berisi perumpamaan dan perintah yang langsung dpt di lihat pada output nya.
 +
 +
 +
'''Perbedaan 32-bit dengan 64 bit ?''' filosofi yang berujung bahwa hati yang melakukan pemikiran dan otak yang melakukan perhitungan atau melaksanakan. industri 5.0 adalah pancasila ?, ya itu  sebuah cetusan yang dibuat pak dai. beliau menyatkan Technology '''must empower human'''. mesin merupakan numerik, numerik merupakan pelajaran ini. sebaiknya hal itu menjadi driving force untuk tetap semangat dalam mempelajari ini. pada pelajaran ini ditekankan untuk menjadikan diri manusia sebagai sebuah penggagas atau pemikir dan komputer/perangkat lunak menjadi '''tools''' yang berguna untuk mempermudah pekerjaan manusia.
 +
 +
 +
== Tugas Pertemuan Kedua ==
 +
Pelajari buku Python Bab 1
 +
 +
 +
== Lecture 3 : 19 September 2019 ==
 +
Pada pertemuan ke-tiga diadakan sebuah quiz yang bertujuan untuk melatih logika berfikir. Quiz yang di berikan berupa pemograman pada deret '''fibonacci'''.
 +
 +
[[File:fibonacci.png|500px|thumb|center]]
 +
 +
yang ditanyakan adalah algoritma dan flowchart untuk membuat pemograman deret fibonacci, akan tetapi banyak yang belum mengetahui cara membuat program deret tersebut, hampir 1 kelas belum ada yang dapat mengerjakan. Setlah mendapat menjelasan oleh pak radon tentang pembuatan deret dan sumber dr internet juga, deret fibonacci dapat di selesaikan dengan 2 cara, yaitu :
 +
 +
1. Cara '''Loop'''
 +
2. Cara '''function'''
 +
 +
Cara loop mudah digunakan karena tidak perlu menemukan pola yang amat rumit, karena jika memakai function kita harus menemukan sebuah fungsi untuk di input kedalam pemograman yang dimana fungsi itu sangat sulit di dapatkan. berikut merupakan formula dr deret fibonacci :
 +
 +
[[File:fibonacciformula.png]]
 +
 +
setlah mendapat penjelasan kita kembali membuat pemograman deret fibonacci menggunakan 2 metode, dengan loop dan function.
 +
 +
'''1. Cara Loop'''
 +
 +
[[File:programloop.png|400px|thumb|center]]
 +
[[File:hasil.png|400px|thumb|center]]
 +
 +
'''2. cara function'''
 +
 +
[[File:programfunction.png|400px|thumb|center]]
 +
[[File:hasilf.png|400px|thumb|center]]
 +
 +
 +
== Lecture 4 : 25 September 2019 ==
 +
Pada hari ini mempelajari permodelan komputer. Karena dalam mempelajari suatu konsep harus mengerti sangat akan konsep tersebut. oleh karena itu hari ini disampaikan isi dari permodelan komputer itu sendiri.
 +
 +
sebelum sampai ke ranah sana, ada sebuah pertanyaan, mengapa sebagai anak teknik kita harus '''berhitung''' ?
 +
 +
karena apa yang kita buat, apa yang kita design akan kita pertanggung jawabkan fungsional nya. Semua barang/alat yang kita buat akan mempunyai spesifikasi dan perhitungan yang berbeda. Namun manusia tetap manusia, mempunyai batas. Manusia hanya bisa melakukan usaha pendekatan akan suatu jawaban.
 +
 +
selanjutnya kita masuk ke bahasa kita, Apa itu '''model''' ?
 +
 +
model merupakan simplifikasi/penyederhanaan dari sebuah kasus/keadaan yang rumit.
 +
 +
model terdiri dari 3 Unsur, yaitu :
 +
1. Asumsi
 +
2. Simplifikasi
 +
3. Representasi
 +
 +
Contoh dari sebuah model pada fondasi. Untuk menghitung kekuatan fondasi menahan beban. Fondasi di modelkan dalam bentuk 2D dan di asumsikan Modulus Elastisitas pada semua titik sama, lalu mensimplifikasi dengan menggunakan model 2D.
 +
 +
 +
Dari berbagai model yang kita buat, dibutuhkan ilmu dalam membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Untuk itu kita harus belajar giat serta berlatih sejak dini untuk menggunakan komputasi. Selain itu ada juga aplikasi dari komputasi yaitu Diskritisasi yaitu membuat sesuatu yang kontinu menjadi titik-titik yang berhingga.
 +
 +
 +
== Lecture 5 : 2 Oktober 2019 ==
 +
 +
Hampir Semua masalah yang ada di dunia dapat di buat menjadi sebuah model. salah satu ialah menggunakan bahasa python sebagai penyelesaian masalah. mengapa python ? dikarenakan python gratis di sebar kepada khalayak luas dan sangat mendukung dalam industri 4.0
 +
pada hari ii mempelajari :
 +
1. aplikasi al jabar yang akan di modelkan pada sistem pegas
 +
2. mempelajari bagaimana membuat rangkaian pegas dengan bahasa python
 +
 +
'''Tugas untuk minggu depan'''
 +
 +
1. Membaca Bab 7
 +
2. Pelajari methode Runge Kutta
 +
 +
Pada pertemuan hari ini, Asdos menjelaskan tentang Penggunaan Pemodelan pada Sistem Tunggal menjadi sebuah persamaan linier dengan menerjemahkan rumus yang biasa digunakan pada materi Pegas menjadi sebuah matriks yang berisikan konstanta pegas.
 +
Selain itu pada pertemuan ini mempelajari tentang Cara Pembuatan Matriks Pegas yang tidak Tunggal yaitu dengan menerapkan Superposisi Matriks. Lalu, diberikan contoh pemodelan sistem ganda pada pegas seri.
 +
 +
 +
Terakhir diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada Python yang dapat memudahkan perhitungan Sistem Persamaan Linier yaitu :
 +
 +
- Numpy
 +
- Sympy
 +
 +
 +
== Jawaban Quiz : 17 Oktober 2019 ==
 +
 +
Pada Hari Rabu, 17 Oktober 2019 diadakan quiz untu mengerjakan soal, berikut soalnya dapat dilihat dari buku "Numerical Method for engineers python 3" pada halaman :
 +
 +
1. Hal 55 Pada Lathian 2.1 soal nomor 6
 +
 +
2. Hal 263 Pada Lathihan 7.1 soal nomor 6
 +
 +
 +
perintah yang diberikan untuk dikerjakan pada AIR (Ahmad Indra Research) adalah bahasa pemograman python pada soal soal tersebut.
 +
 +
 +
'''Berikut Jawabannya'''
 +
 +
'''Jawaban Soal pertama menggunakan metode 1'''
 +
 +
#Mendefinisikan matriks A
 +
Ba1 = [0, 0, 2, 1, 2]
 +
Ba2 = [0, 1, 0, 2, -1]
 +
Ba3 = [1, 2, 0, -2, 0]
 +
Ba4 = [0, 0, 0, -1, 1]
 +
ba5 = [0, 1, -1, 1, -1]
 +
 +
nmat = np.array ([Ba1, Ba2, Ba3, Ba4, Ba5])
 +
 +
    #mendefinisikan matriks B
 +
B = np.array ([1, 1, -4, -2, -1])
 +
 +
    #Dibawah ini adalah kode untuk memecahkan persamaan aljabar linear bertuliskan (linalg)
 +
jawaban = linalg.solve (nmat,B) a = int(jawaban[0]) b = int(jawaban[1]) c = int(jawaban[2]) d = int(jawaban[3]) f = int(jawaban[4])
 +
 +
    #memunculkan hasil
 +
print("X1 adalah ", a) print("X2 adalah ", b) print("X3 adalah ", c) print("X4 adalah ", d) print("X5 adalah ", f)
 +
 +
      #maka dari cara kedua didapat matriks Xnya adalah
 +
X1 adalah 2
 +
 +
X2 adalah -2
 +
 +
X3 adalah 1
 +
 +
X4 adalah 1
 +
 +
X5 adalah -1
 +
 +
 +
'''Jawaban Soal pertama menggunakan metode 2'''
 +
 +
#mendefinisikan Matriks A
 +
A = np.array([[0, 0, 2, 1, 2],
 +
            [0, 1, 0, 2, -1],
 +
            [1, 2, 0, -2, 0],
 +
            [0, 0, 0, -1, 1],
 +
            [0, 1, -1, 1, -1]], float)
 +
 +
#Mendefinisikan Matriks B
 +
b = np.array([[1],
 +
            [1],
 +
            [-4],
 +
            [-2],
 +
            [-1]],float)
 +
 +
Ab = np.hstack([A, b]) print (Ab, "\n")
 +
n = len(b)
 +
 +
#Memasuki Fase Eliminasi
 +
for i in range(0, n-1):
 +
 +
  for j in range(i + 1, n):
 +
      lam = Ab[i,i] / Ab[j,i]
 +
      Ab[j] = Ab[i] - lam * Ab[j]
 +
     
 +
print ("Hasil Dari Proses Eliminasi \n", Ab, "\n")
 +
 +
#Memasuki Fase Substitusi
 +
for i in range(n - 1, -1, -1):
 +
 +
  Ab[i] = Ab[i] / Ab[i, i]
 +
  for j in range(i - 1, -1, -1):
 +
      b = Ab[j]
 +
      lam = Ab[i,i] / Ab[j,i]
 +
      Ab[j] = Ab[i] - lam * Ab[j]
 +
print ("Hasil dari proses substitusi \n", Ab, "\n")
 +
 +
x = Ab[:, 5]
 +
#tinggal di selesaikan dengan mencetak nilai x
 +
print ("Maka didapatkan nilai x = \n", x)
 +
 +
'''Jawaban Soal kedua '''
 +
 +
# Di sini, kita akan menggunakan x0 dan y sebagai titik asal, x sebagai t yang diinginkan, dan h sebagai increment atau dapat di sebut
 +
ketelitian dalam menghitung. Kita menggunakan h = 0.01.
 +
x0 = 2
 +
 +
y = 1 h = 0.01 x = float(input("Berikan nilai t: ")) if x>0 :
 +
 +
  # dydx menyatakan persamaan awal dalam soal.
 +
  # setelah melalui proses Didapat hasil  x^2-4y
 +
 +
  def dydx(x, y):
 +
    return (x**2-4*y)
 +
  # Memasuki implementasi perhitungan menggunakan metode Runge-Kutta.
 +
  def rungeKutta(x0, y0, x, h):
 +
    n = (int)((x - x0)/h) 
 +
    y = y0
 +
    for i in range(1, n + 1):
 +
      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)
 +
 +
      # untuk y selanjutnya
 +
      y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
 +
 +
      # untuk x selanjutnya
 +
      x0 = x0 + h
 +
      list.append(y)
 +
    return y
 +
  print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h))
 +
 +
kemudian akan didapatkan hasil apabila t=0.03
 +
 +
Masukkan nilai t: 0.03
 +
 +
Nilai y pada t = 0.03 adalah 1
 +
 +
 +
 +
== MID TERM TEST : 23 OCT 2019 ==
 +
 +
'''II.A Hasil koding untuk mencari tegangan pada soal I.A'''
 +
 +
#SOAL PERTAMA TENTANG PENCARIAN MASSA FISIKA
 +
from math import *
 +
 +
#TENTUIN DATA NYA DULU BRO MAU GIMANA
 +
g=9.81
 +
M1=eval(input("mau berapa massa benda 1 ?"))
 +
M2=eval(input("Mau berapa massa benda 2 ?"))
 +
M3=eval(input("Mau berapa massa benda 3 ?"))
 +
M3=eval(input("Mau berapa massa benda 4 ?"))
 +
Fk1=eval(input("Koefisien gesek benda 1 ?"))
 +
Fk2=eval(input("koefisien gesek benda 2 ?"))
 +
Fk3=eval(input("Koefisien gesek benda 3 ?"))
 +
alfa=eval(input("sudutnya mau berapa ?"))
 +
a=eval(input("percepatan :"))
 +
x= sin(alfa)
 +
y= cos(alfa)
 +
 +
#MASUK KE PENGHITUNGAN BRO
 +
T1=M1*g*(x-Fk1*y)-M1*a
 +
T2=M2*g*(x-Fk2*y)+T1-M2*a
 +
T3=M3*g*(x-Fk3*y)+T2-M3*a
 +
 +
print("maka T1 adalah ?",T1)
 +
print("maka T2 adalah ?",T2)
 +
print("maka T3 adalah ?",T3)
 +
 +
 +
'''maka akan di dapat hasil'''
 +
 +
mau berapa massa benda 1 ?10
 +
Mau berapa massa benda 2 ?20
 +
Mau berapa massa benda 3 ?30
 +
Mau berapa massa benda 4 ?40
 +
Koefisien gesek benda 1 ?0.1
 +
koefisien gesek benda 2 ?0.2
 +
Koefisien gesek benda 3 ?0.3
 +
sudutnya mau berapa ?30
 +
percepatan :0
 +
maka T1 adalah ? 98.43910904690696
 +
maka T2 adalah ? 101.46552249370134
 +
maka T3 adalah ? 304.39656748110406
 +
 +
'''II.B Hasil koding soal nomor I.
 +
 +
F = float(input("Gaya yang dilakukan mobil (N):"))
 +
v0 = 0
 +
s0 = 0
 +
t = float(0)
 +
cd = float(input("drag coefficient: "))
 +
u = float(input("koefisien gesek ban dengan jalanan: "))
 +
g = 9.8
 +
m = float(input ("massa mobil:"))
 +
a = F/m
 +
dragfric0 = 0
 +
dragfric = ((cd * ((v0 + (a*t))**(3/2))/m) + (u * g))
 +
while dragfric0 < a:
 +
    vmax = v0 + (a - dragfric0)*t
 +
    xmax = s0 + ((vmax**2 - v0**2) / (2 * a))
 +
    dragfric0 = dragfric0 + dragfric
 +
    t = float(t) + 1
 +
print("Komponen pada saat kecepatan maksimum")
 +
print ("Waktu yang diperlukan: ",t," s")
 +
print ("Jarak yang ditempuh: ",xmax," m")
 +
print ("Kecepatan tertinggi: ",vmax," m/s")
 +
 +
'''HASIL'''
 +
Gaya yang dikeluarkan mobil (N):10000
 +
drag coefficient: 1.2
 +
koefisien gesek ban dengan jalanan: 0.5
 +
massa mobil:5000
 +
Komponen pada saat kecepatan maksimum
 +
Waktu yang diperlukan:  21.99999  s
 +
Jarak yang ditempuh:  443.14  m
 +
Kecepatan tertinggi:  300 m/s
 +
 +
== PR PRA-MID TERM TEST ==
 +
 +
1.'''Video Muhasabah(percerminan diri )'''
 +
 +
[[File:Video1.mp4]]
 +
 +
 +
2.'''Video penjelasan soal nomor I.A'''
 +
 +
[[File:Video2.mp4]]
 +
 +
 +
3.'''Video penjelasan soal II.A'''
 +
 +
 +
[[File:Video3.mp4]]
 +
 +
 +
 +
== Runge Kutta Method (Exercise) ==
 +
 +
 +
[[File:RungeKutta.jpg]]
 +
 +
# t0 dan v0 sebagai keadaan awal, t sebagai t yang diinput, dan h sebagai increment
 +
t0 = 0
 +
v0 = 0
 +
h = 0.001  # di sini digunakan h = 0.01
 +
t = float(input("Nilai t: "))  # perintah untuk memasukkan nilai t
 +
 +
if 0 <= t < 0.3:  # untuk 0 <= t < 0.3
 +
    def F(t, v):
 +
        return (1000 * t - 0.00693 * (v**2))  # persamaan a yang telah diperoleh
 +
 +
    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
 +
 +
elif t >= 0.3:  # untuk t >= 0.3
 +
    def F(t, v):
 +
        return (100 - 0.00693 * (v**2))  # persamaan a yang telah diperoleh
 +
 +
    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 positif.")
 +
 +
 +
== Eliminasi Gauss ==
 +
[[File:Gauss Eliminationn.mp4]]
 +
 +
Hari ini kita akan membuat sebuah program tentang gauss elimination yang bertujuan menyelesaikan tugas yang telah diberikan.
 +
 +
'''Petunjuk Pengerjaan Menggunakan Phyton'''
 +
 +
Dalam pengerjaan Eliminasi Gauss dengan menggunakan phyton setidaknya ada 3 langkah yang harus diselesaikan terlebih dahulu, tambahan 1 langkah tersebut jika dibandingkan dengan pengerjaan menggunakan matematis adalah pendefinisian matriks. Sehingga secara umum langkah pengerjaan Eliminasi Gauss dengan menggunakan phyton adalah sebagai berikut:
 +
 +
1. Pendefinisian Matriks
 +
 +
Pendefinisian tersebut dibantu dengan menggunakan fungsi array dari numpy dengan cara import numpy.
 +
 +
2. Eliminasi Gauss
 +
 +
3. Back Substitution
 +
 +
Berikut program python:
 +
 +
[[File:python5.png]]
 +
 +
[[File:python2.png]]
 +
 +
Setelah dijalankan, didapatkan hasil sebagai berikut:
 +
 +
[[File:hasil2.png]]
 +
 +
 +
== Pengaplikasian Eliminasi Gauss: Statika Struktur ==
 +
 +
Pengaplikasian penghitungan gauss elimination dapat di aplikasikan dalam sebuah perhitungan kasus statika struktur.
 +
 +
[[File:Pengaplikasian Gauss Elimination.mp4]]
 +
 +
Berikut program python:
 +
 +
[[File:python3.png]]
 +
 +
[[File:python4.png]]
 +
 +
Setelah dijalankan, didapatkan hasil sebagai berikut:
 +
 +
[[File:hasil1.png]]
 +
 +
 +
== Tugas: Runge Kutta Method ==
 +
 +
Runge Kutta merupakan metode untuk pendekatan suatu nilai persamaan yaitu dengan melakukan segmentasi-segmentasi dengan suatu garis-garis lurus dari suatu titik ke titik berikutnya mengikuti segmentasi yang dibuat. Runge Kutta terdiri dari beberapa orde, diantanya adalah orde 2, orde 3, dan orde 4. Perbedaan dari beberapa orde tersebut adalah: Runge Kutta Orde 4 lebih akurat dari Orde 3, sedangkan Runge Kutta Orde 3 lebih akurat dari Orde 2.
 +
 +
[[File:grafikrunge.png]]
 +
 +
Dalam tugas kali ini kami akan membuat Runge Kutta Orde 4 untuk menyelesaikan suatu permasalahan pegas. Secara umum persamaan Runge Kutta Orde 4 adalah sebagai berikut:
 +
 +
𝑦_(𝑖+1)=𝑦_𝑖+1/6 (π‘˜_1+2π‘˜_2+2π‘˜_3+π‘˜_4 )β„Ž
 +
 +
 +
Dengan :
 +
 +
π‘˜_1=𝑓(π‘₯_𝑖,𝑦_𝑖 )
 +
 +
π‘˜_2=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_1 β„Ž)
 +
 +
π‘˜_3=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_2 β„Ž)
 +
 +
π‘˜_4=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_3 β„Ž)
 +
 +
sekarang kita ingin mencoba menyelesaikan sebuah permasalahan dengan metode Runge Kutta :
 +
 +
[[File:rungek.png]]
 +
 +
Berikut flowchart untuk menyelesaikan soal tsb:
 +
 +
[[File:flowchartt22.png]]
 +
 +
 +
Program untuk python:
 +
 +
[[File:runge kutta.png]]
 +
 +
[[File:runge kutta1.png]]
 +
 +
Ketika di jalankan, hasil programnya sebagai berikut:
 +
 +
[[File:hasil22.png]]
 +
 +
 +
== Tugas: CFD (mobil) ==
 +
 +
'''Landasan Teori'''
 +
 +
Drag force merupakan gaya kebelakang yang mendorong mundur serta menekan kebawah dan drag force ini disebabkan karena gangguan aliran udara pada bodi kendaraan dan parallel dengan arah angin. Drag force adalah jumlah semua gaya eksternal dalam aliran fluida yang melawan arah gerak objek dan disebabkan oleh aliran turbulen di sekitar benda yang melawan gerak maju objek melalui fluida (gas atau cairan).
 +
 +
Drag force dapat dimanfaatkan menjadi salah satu cara yang efisien untuk meningkatkan kecepatan kendaraan serta menghemat penggunaan bahan bakar. Hal ini dapat terjadi karena jika koefisien drag semakin kecil, maka hambatan udara terhadap mobil semakin kecil, sehingga mobil dapat melaju dengan tenaga dari mesin yang lebih sedikit dan pada akhirnya akan mengurangi pemakaian atau konsumsi bahan bakar mesin mobil.
 +
 +
Secara teori, jika koefisien drag semakin berkurang, maka kecepatan akan semakin meningkat, sesuai dengan persamaan gaya drag yang di mana koefisien drag berbanding terbalik dengan kecepatan. Oleh karena itu, pengaruh tahanan udara yang paling besar terjadi ketika laju kendaraan pada kecepatan yang paling rendah.
 +
 +
Faktor yang sangat penting dalam menentukan kualitas simulasi CFD salah satunya adalah meshing atau griding. Meshing merupakan proses dikritisasi domain fluida yang kontinu yang menjadi domain komputasi yang diskrit sehingga dapat diselesaikan persamaan-persamaan didalamnya dan menghasilkan solusi.
 +
 +
Setelah mengerti penggunaan CFDSOF-NG kami menghitung besarnya drag force dari mobil yang modelnya diberikan, dengan menggunakan aplikasi CFD. Kami mengikuti semua parameter yang telah di berikan mulai dari mesh yang ada sampai jenis aliran udara. Setelah dijalankan, berikut 10 data yang di dapatkan:
 +
 +
kecepatan drag force
 +
10         8.11646
 +
15         10.1848
 +
20         17.6275
 +
25         27.0084
 +
30         38.3158
 +
35         51.53
 +
40         66.6329
 +
45         83.5765
 +
50         102.321
 +
 +
dengan grafik sebagai berikut:
 +
 +
[[File:grafik mobil1.png|400PX|middle]]
 +
 +
 +
== TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG) ==
 +
 +
Pada tugas kali ini, kita ditugaskan untuk menganalisis gaya yang terjadi pada sebuah airfoil (sayap pesawat). gaya yang telah dianalisis di hubungkan dengan percobaan sudut yang dibentuk airfoil dengan sumbu normal. Percobaan ini bertujuan untuk menentukan sudut maksimum untuk mendapatkan rasio gaya yang paling baik. Beriukut langkah langkah yang kami lakukan :
 +
1. Mencari referensi airfoil lalu mendesign airfoil tersebut di inventor.
 +
2. Setelah itu kita masukan kedalam CFDSOF-NG untuk di analisis.
 +
3. Akan di dapat sebuah data yang nanti akan di plotting menjadi sebuah grafik.
 +
4. mencari sebuah persamaan yang terbentuk.
 +
5. melakukan optimasi mengunakan pemograman phyton.
 +
6. menarik kesimpulan yang ada.
 +
 +
'''PEMBUATAN AIRFOIL'''
 +
 +
Berikut airfoil yang kelompok kami buat yang mendapatkan referensi dari NACA 0006.
 +
 +
[[File:AIRFOIL.png|800px|middle]]
 +
 +
'''ANALISIS MENGGUNAKAN CFDSOF-NG'''
 +
 +
[[File:TEST.png|600px|middle]]
 +
[[File:TEST1.png|600px|middle]]
 +
[[File:TEST2.png|600px|middle]]
 +
 +
 +
'''MENGOLAH DATA'''
 +
 +
Setelah melakukan analisis pada CFDSOF-NG, didapatkan data ytang berupa drag forve dan lift foce, berikut data yang telah kami dapatkan :
 +
 +
[[File:DATA.png|600px]]
 +
 +
'''PEMBUATAN GRAFIK'''
 +
 +
Setelah medapatkan data yang diinginkan, kita dapat memasukan data tersebut kedalam microsoft excel yang dimana nanti akan dibuat sebuah grafik yang menggunakan trend line guna mendapatkan persamaannya. berikut hasil grafik drag dan lift force terhadap sudut yang telah kami buat :
 +
 +
[[File:DRAG.jpg|600px]]
 +
[[File:LIFT.jpg|600px]]
 +
 +
 +
'''PEMOGRAMAN MENGGUNAKAN PHYTON'''
 +
 +
Setelah mendapatkan persamaan yang ada pada grafik, kita dapat membuat pemograman untuk melakukan optimasi, berikut optimasinya :
 +
 +
[[File:iyekoding.png|800px]]
 +
[[File:hoohkoding.png|800px]]

Latest revision as of 15:10, 17 December 2019

Nama Saya Farhan Tiarrafi Pratama akrab di sapa farhan, seorang Mahasiswa Teknik Mesin, Fakultas Teknik Universitas Indonesia

Nama  : Farhan Tiarrafi Pratama

NPM  : 1806201075

Jurusan : Teknik Mesin


lecture 1 : 04 September 2019

1. Kenapa amak mesin belajar kalkulus ? karena pada kalkulus terdapat materi materi dasar yang dapat di pergunakan untuk melewati mata kuliah lain yang membutuhkan materi dasar tersebut. kalkulus juga berperan penting pada pembentukan pola pikir "analisis" yang dapat sangat berguna untuk seorang engineer seperti teknik mesin.

PYTHON merupakan sebuah media progamming yang digunakan untuk meminimalisir kesalahan hitungan dengan bantuan sebuah komputer. pada programming hanya dapat dilakukan pengerjaan matematika berupa pertambahan (+), pengurangan (-), perkalian(x), dan pembagian (:)

Phytonlogo.jpeg

PAY ATTENTION : Penilaian secara terus menerus, perkembangan cara menguasai pemograman phyton

HOMEWORK 1. mempelajari PHYTON untuk minggu ini dengan belajar membuat sebuah program 2. membuat sebuah program agar dapat menjawab sebuah soal pada papan tulis

Tempat Belajar 1. sololearn.com


My Progres

What is phyton ? Python is a high-level programming language, with applications in numerous areas, including web programming, scripting, scientific computing, and artificial intelligence. Python has several different implementations, written in various languages. CPython, is the most popular by far.

My First Try to use phyton

1. print('Hello World') 2. print(2*4) >> 8 3. print((4+9)*5) >> 65 4. print((5+7)/2) >> 6

pada python operasi pertambahan menggunakan (+), pengurangan menggunakan (-), perkalian (*), pembagian (/), exponensial (**) error bisa terjadi pada python, contohnya ZeroDivisionErorr (Dividing by zero in Python produces an error, as no answer can be calculated)


there are 2 types of number

integer and float, integer dapat dikatakan sebagai bilangan bulat (1,2,3,4 dll) dan float merupakan bilangan yang mempunyai koma ( 2.0,3.2,4,3 dll).

ada pengoprasian khusus pada python yang dapat dikatakan floor division(//) and modulo(%) berikut contohnya:

1. print (20 // 6) >> 3 2. print (1.25 % 0.5) >> 0.25

strings : A string is created by entering text between two single or double quotation marks. When the Python console displays a string, it generally uses single quotes. The delimiter used for a string doesn't affect how it behaves in any way.

Variables: Variables play a very important role in most programming languages, and Python is no exception. A variable allows you to store a value by assigning it to a name, which can be used to refer to the value later in the program. to assign a variable, use one equals sign. Unlike most lines of code we've looked at so far, it doesn't produce any output at the Python console. for example :

   x = 7
   print(x)
   7
   print(x + 3)
   10
   print(x)
   7
   x = 123.456
   print(x)
   123.456
   x = "This is a string"
   print(x + "!")
   This is a string!
   foo= input("99")
   print(foo)
   99


Tugas ( 4 sept 2019 )

program dari pr yang di berikan menggunakan visual studio code

Lecture 2 : 11 September 2019

belajar variable di kelas menggunakan python anywhere
(2) memulai cara membuat variable dan memanggilnya dalam bentuk perintah "print"
rec=('Farhan','Tiarrafi','Pratama',(28,6,2001))
NamaAwal,NamaTengah,NamaAkhir,TanggalLahir=rec
print(NamaAwal)
TahunLahir = TanggalLahir [2]
print(TahunLahir)
name = rec[0]++rec[1]
print(name)
print(rec[0:3])
Farhan
2001
FarhanTiarrafi
('Farhan', 'Tiarrafi', 'Pratama')

Padahari rabu 11 september 2019, diajarkan untuk membuat suatu perumpamaan dan membuat perintah untuk memanggil variable tersebut. terlihat pada foto ke (2) yang berisi perumpamaan dan perintah yang langsung dpt di lihat pada output nya.


Perbedaan 32-bit dengan 64 bit ? filosofi yang berujung bahwa hati yang melakukan pemikiran dan otak yang melakukan perhitungan atau melaksanakan. industri 5.0 adalah pancasila ?, ya itu sebuah cetusan yang dibuat pak dai. beliau menyatkan Technology must empower human. mesin merupakan numerik, numerik merupakan pelajaran ini. sebaiknya hal itu menjadi driving force untuk tetap semangat dalam mempelajari ini. pada pelajaran ini ditekankan untuk menjadikan diri manusia sebagai sebuah penggagas atau pemikir dan komputer/perangkat lunak menjadi tools yang berguna untuk mempermudah pekerjaan manusia.


Tugas Pertemuan Kedua

Pelajari buku Python Bab 1


Lecture 3 : 19 September 2019

Pada pertemuan ke-tiga diadakan sebuah quiz yang bertujuan untuk melatih logika berfikir. Quiz yang di berikan berupa pemograman pada deret fibonacci.

Fibonacci.png

yang ditanyakan adalah algoritma dan flowchart untuk membuat pemograman deret fibonacci, akan tetapi banyak yang belum mengetahui cara membuat program deret tersebut, hampir 1 kelas belum ada yang dapat mengerjakan. Setlah mendapat menjelasan oleh pak radon tentang pembuatan deret dan sumber dr internet juga, deret fibonacci dapat di selesaikan dengan 2 cara, yaitu :

1. Cara Loop 2. Cara function

Cara loop mudah digunakan karena tidak perlu menemukan pola yang amat rumit, karena jika memakai function kita harus menemukan sebuah fungsi untuk di input kedalam pemograman yang dimana fungsi itu sangat sulit di dapatkan. berikut merupakan formula dr deret fibonacci :

Fibonacciformula.png

setlah mendapat penjelasan kita kembali membuat pemograman deret fibonacci menggunakan 2 metode, dengan loop dan function.

1. Cara Loop

Programloop.png
Hasil.png

2. cara function

Programfunction.png
Hasilf.png


Lecture 4 : 25 September 2019

Pada hari ini mempelajari permodelan komputer. Karena dalam mempelajari suatu konsep harus mengerti sangat akan konsep tersebut. oleh karena itu hari ini disampaikan isi dari permodelan komputer itu sendiri.

sebelum sampai ke ranah sana, ada sebuah pertanyaan, mengapa sebagai anak teknik kita harus berhitung ?

karena apa yang kita buat, apa yang kita design akan kita pertanggung jawabkan fungsional nya. Semua barang/alat yang kita buat akan mempunyai spesifikasi dan perhitungan yang berbeda. Namun manusia tetap manusia, mempunyai batas. Manusia hanya bisa melakukan usaha pendekatan akan suatu jawaban.

selanjutnya kita masuk ke bahasa kita, Apa itu model ?

model merupakan simplifikasi/penyederhanaan dari sebuah kasus/keadaan yang rumit.

model terdiri dari 3 Unsur, yaitu : 1. Asumsi 2. Simplifikasi 3. Representasi

Contoh dari sebuah model pada fondasi. Untuk menghitung kekuatan fondasi menahan beban. Fondasi di modelkan dalam bentuk 2D dan di asumsikan Modulus Elastisitas pada semua titik sama, lalu mensimplifikasi dengan menggunakan model 2D.


Dari berbagai model yang kita buat, dibutuhkan ilmu dalam membangun persamaan aljabar dan memodelkan persamaan dalam komputasi. Untuk itu kita harus belajar giat serta berlatih sejak dini untuk menggunakan komputasi. Selain itu ada juga aplikasi dari komputasi yaitu Diskritisasi yaitu membuat sesuatu yang kontinu menjadi titik-titik yang berhingga.


Lecture 5 : 2 Oktober 2019

Hampir Semua masalah yang ada di dunia dapat di buat menjadi sebuah model. salah satu ialah menggunakan bahasa python sebagai penyelesaian masalah. mengapa python ? dikarenakan python gratis di sebar kepada khalayak luas dan sangat mendukung dalam industri 4.0 pada hari ii mempelajari : 1. aplikasi al jabar yang akan di modelkan pada sistem pegas 2. mempelajari bagaimana membuat rangkaian pegas dengan bahasa python

Tugas untuk minggu depan

1. Membaca Bab 7 2. Pelajari methode Runge Kutta

Pada pertemuan hari ini, Asdos menjelaskan tentang Penggunaan Pemodelan pada Sistem Tunggal menjadi sebuah persamaan linier dengan menerjemahkan rumus yang biasa digunakan pada materi Pegas menjadi sebuah matriks yang berisikan konstanta pegas. Selain itu pada pertemuan ini mempelajari tentang Cara Pembuatan Matriks Pegas yang tidak Tunggal yaitu dengan menerapkan Superposisi Matriks. Lalu, diberikan contoh pemodelan sistem ganda pada pegas seri.


Terakhir diberikan penjelasan dan cara penggunaan modul yang dapat digunakan pada Python yang dapat memudahkan perhitungan Sistem Persamaan Linier yaitu :

- Numpy - Sympy


Jawaban Quiz : 17 Oktober 2019

Pada Hari Rabu, 17 Oktober 2019 diadakan quiz untu mengerjakan soal, berikut soalnya dapat dilihat dari buku "Numerical Method for engineers python 3" pada halaman :

1. Hal 55 Pada Lathian 2.1 soal nomor 6

2. Hal 263 Pada Lathihan 7.1 soal nomor 6


perintah yang diberikan untuk dikerjakan pada AIR (Ahmad Indra Research) adalah bahasa pemograman python pada soal soal tersebut.


Berikut Jawabannya

Jawaban Soal pertama menggunakan metode 1

#Mendefinisikan matriks A
Ba1 = [0, 0, 2, 1, 2] 
Ba2 = [0, 1, 0, 2, -1] 
Ba3 = [1, 2, 0, -2, 0] 
Ba4 = [0, 0, 0, -1, 1] 
ba5 = [0, 1, -1, 1, -1]
nmat = np.array ([Ba1, Ba2, Ba3, Ba4, Ba5])
   #mendefinisikan matriks B
B = np.array ([1, 1, -4, -2, -1])
   #Dibawah ini adalah kode untuk memecahkan persamaan aljabar linear bertuliskan (linalg)
jawaban = linalg.solve (nmat,B) a = int(jawaban[0]) b = int(jawaban[1]) c = int(jawaban[2]) d = int(jawaban[3]) f = int(jawaban[4])
    #memunculkan hasil 
print("X1 adalah ", a) print("X2 adalah ", b) print("X3 adalah ", c) print("X4 adalah ", d) print("X5 adalah ", f)
     #maka dari cara kedua didapat matriks Xnya adalah
X1 adalah 2
X2 adalah -2
X3 adalah 1
X4 adalah 1
X5 adalah -1


Jawaban Soal pertama menggunakan metode 2

#mendefinisikan Matriks A
A = np.array([[0, 0, 2, 1, 2],
           [0, 1, 0, 2, -1],
           [1, 2, 0, -2, 0],
           [0, 0, 0, -1, 1],
           [0, 1, -1, 1, -1]], float)
#Mendefinisikan Matriks B
b = np.array([[1],
            [1], 
            [-4],
            [-2],
            [-1]],float)

Ab = np.hstack([A, b]) print (Ab, "\n")
n = len(b)
#Memasuki Fase Eliminasi
for i in range(0, n-1):
  for j in range(i + 1, n):
      lam = Ab[i,i] / Ab[j,i]
      Ab[j] = Ab[i] - lam * Ab[j]
      
print ("Hasil Dari Proses Eliminasi \n", Ab, "\n")
#Memasuki Fase Substitusi
for i in range(n - 1, -1, -1):
  Ab[i] = Ab[i] / Ab[i, i]
  for j in range(i - 1, -1, -1):
      b = Ab[j]
      lam = Ab[i,i] / Ab[j,i]
      Ab[j] = Ab[i] - lam * Ab[j]
print ("Hasil dari proses substitusi \n", Ab, "\n")
x = Ab[:, 5]
#tinggal di selesaikan dengan mencetak nilai x
print ("Maka didapatkan nilai x = \n", x)

Jawaban Soal kedua

# Di sini, kita akan menggunakan x0 dan y sebagai titik asal, x sebagai t yang diinginkan, dan h sebagai increment atau dapat di sebut 
ketelitian dalam menghitung. Kita menggunakan h = 0.01. 
x0 = 2
y = 1 h = 0.01 x = float(input("Berikan nilai t: ")) if x>0 :
 # dydx menyatakan persamaan awal dalam soal.
 # setelah melalui proses Didapat hasil  x^2-4y
 def dydx(x, y): 
   return (x**2-4*y) 
 # Memasuki implementasi perhitungan menggunakan metode Runge-Kutta.
 def rungeKutta(x0, y0, x, h): 
   n = (int)((x - x0)/h)  
   y = y0 
   for i in range(1, n + 1): 
      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) 
      # untuk y selanjutnya 
      y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) 
      # untuk x selanjutnya
      x0 = x0 + h 
      list.append(y)
   return y 
 print("Nilai y pada t =", x, "adalah", rungeKutta(x0, y, x, h))

kemudian akan didapatkan hasil apabila t=0.03

Masukkan nilai t: 0.03

Nilai y pada t = 0.03 adalah 1


MID TERM TEST : 23 OCT 2019

II.A Hasil koding untuk mencari tegangan pada soal I.A

  1. SOAL PERTAMA TENTANG PENCARIAN MASSA FISIKA

from math import *

#TENTUIN DATA NYA DULU BRO MAU GIMANA
g=9.81
M1=eval(input("mau berapa massa benda 1 ?"))
M2=eval(input("Mau berapa massa benda 2 ?"))
M3=eval(input("Mau berapa massa benda 3 ?"))
M3=eval(input("Mau berapa massa benda 4 ?"))
Fk1=eval(input("Koefisien gesek benda 1 ?"))
Fk2=eval(input("koefisien gesek benda 2 ?"))
Fk3=eval(input("Koefisien gesek benda 3 ?"))
alfa=eval(input("sudutnya mau berapa ?"))
a=eval(input("percepatan :"))
x= sin(alfa)
y= cos(alfa)
#MASUK KE PENGHITUNGAN BRO
T1=M1*g*(x-Fk1*y)-M1*a
T2=M2*g*(x-Fk2*y)+T1-M2*a
T3=M3*g*(x-Fk3*y)+T2-M3*a
print("maka T1 adalah ?",T1)
print("maka T2 adalah ?",T2)
print("maka T3 adalah ?",T3)


maka akan di dapat hasil

mau berapa massa benda 1 ?10
Mau berapa massa benda 2 ?20
Mau berapa massa benda 3 ?30
Mau berapa massa benda 4 ?40
Koefisien gesek benda 1 ?0.1
koefisien gesek benda 2 ?0.2
Koefisien gesek benda 3 ?0.3
sudutnya mau berapa ?30
percepatan :0
maka T1 adalah ? 98.43910904690696
maka T2 adalah ? 101.46552249370134
maka T3 adalah ? 304.39656748110406

II.B Hasil koding soal nomor I.

F = float(input("Gaya yang dilakukan mobil (N):"))
v0 = 0
s0 = 0
t = float(0)
cd = float(input("drag coefficient: "))
u = float(input("koefisien gesek ban dengan jalanan: "))
g = 9.8
m = float(input ("massa mobil:"))
a = F/m
dragfric0 = 0
dragfric = ((cd * ((v0 + (a*t))**(3/2))/m) + (u * g))
while dragfric0 < a:
    vmax = v0 + (a - dragfric0)*t
    xmax = s0 + ((vmax**2 - v0**2) / (2 * a))
    dragfric0 = dragfric0 + dragfric
    t = float(t) + 1
print("Komponen pada saat kecepatan maksimum")
print ("Waktu yang diperlukan: ",t," s")
print ("Jarak yang ditempuh: ",xmax," m")
print ("Kecepatan tertinggi: ",vmax," m/s")

HASIL

Gaya yang dikeluarkan mobil (N):10000
drag coefficient: 1.2
koefisien gesek ban dengan jalanan: 0.5
massa mobil:5000
Komponen pada saat kecepatan maksimum
Waktu yang diperlukan:  21.99999  s
Jarak yang ditempuh:  443.14  m
Kecepatan tertinggi:  300 m/s

PR PRA-MID TERM TEST

1.Video Muhasabah(percerminan diri )


2.Video penjelasan soal nomor I.A


3.Video penjelasan soal II.A



Runge Kutta Method (Exercise)

RungeKutta.jpg

# t0 dan v0 sebagai keadaan awal, t sebagai t yang diinput, dan h sebagai increment
t0 = 0
v0 = 0
h = 0.001   # di sini digunakan h = 0.01
t = float(input("Nilai t: "))  # perintah untuk memasukkan nilai t
if 0 <= t < 0.3:  # untuk 0 <= t < 0.3
   def F(t, v):
       return (1000 * t - 0.00693 * (v**2))  # persamaan a yang telah diperoleh
   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
elif t >= 0.3:  # untuk t >= 0.3
   def F(t, v):
       return (100 - 0.00693 * (v**2))  # persamaan a yang telah diperoleh
   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 positif.")


Eliminasi Gauss

Hari ini kita akan membuat sebuah program tentang gauss elimination yang bertujuan menyelesaikan tugas yang telah diberikan.

Petunjuk Pengerjaan Menggunakan Phyton

Dalam pengerjaan Eliminasi Gauss dengan menggunakan phyton setidaknya ada 3 langkah yang harus diselesaikan terlebih dahulu, tambahan 1 langkah tersebut jika dibandingkan dengan pengerjaan menggunakan matematis adalah pendefinisian matriks. Sehingga secara umum langkah pengerjaan Eliminasi Gauss dengan menggunakan phyton adalah sebagai berikut:

1. Pendefinisian Matriks

Pendefinisian tersebut dibantu dengan menggunakan fungsi array dari numpy dengan cara import numpy.

2. Eliminasi Gauss

3. Back Substitution

Berikut program python:

Python5.png

Python2.png

Setelah dijalankan, didapatkan hasil sebagai berikut:

Hasil2.png


Pengaplikasian Eliminasi Gauss: Statika Struktur

Pengaplikasian penghitungan gauss elimination dapat di aplikasikan dalam sebuah perhitungan kasus statika struktur.

Berikut program python:

Python3.png

Python4.png

Setelah dijalankan, didapatkan hasil sebagai berikut:

Hasil1.png


Tugas: Runge Kutta Method

Runge Kutta merupakan metode untuk pendekatan suatu nilai persamaan yaitu dengan melakukan segmentasi-segmentasi dengan suatu garis-garis lurus dari suatu titik ke titik berikutnya mengikuti segmentasi yang dibuat. Runge Kutta terdiri dari beberapa orde, diantanya adalah orde 2, orde 3, dan orde 4. Perbedaan dari beberapa orde tersebut adalah: Runge Kutta Orde 4 lebih akurat dari Orde 3, sedangkan Runge Kutta Orde 3 lebih akurat dari Orde 2.

Grafikrunge.png

Dalam tugas kali ini kami akan membuat Runge Kutta Orde 4 untuk menyelesaikan suatu permasalahan pegas. Secara umum persamaan Runge Kutta Orde 4 adalah sebagai berikut:

𝑦_(𝑖+1)=𝑦_𝑖+1/6 (π‘˜_1+2π‘˜_2+2π‘˜_3+π‘˜_4 )β„Ž


Dengan :

π‘˜_1=𝑓(π‘₯_𝑖,𝑦_𝑖 )

π‘˜_2=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_1 β„Ž)

π‘˜_3=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_2 β„Ž)

π‘˜_4=𝑓(π‘₯_𝑖+1/2 β„Ž,𝑦_𝑖+1/2 π‘˜_3 β„Ž)

sekarang kita ingin mencoba menyelesaikan sebuah permasalahan dengan metode Runge Kutta :

Rungek.png

Berikut flowchart untuk menyelesaikan soal tsb:

Flowchartt22.png


Program untuk python:

Runge kutta.png

Runge kutta1.png

Ketika di jalankan, hasil programnya sebagai berikut:

Hasil22.png


Tugas: CFD (mobil)

Landasan Teori

Drag force merupakan gaya kebelakang yang mendorong mundur serta menekan kebawah dan drag force ini disebabkan karena gangguan aliran udara pada bodi kendaraan dan parallel dengan arah angin. Drag force adalah jumlah semua gaya eksternal dalam aliran fluida yang melawan arah gerak objek dan disebabkan oleh aliran turbulen di sekitar benda yang melawan gerak maju objek melalui fluida (gas atau cairan).

Drag force dapat dimanfaatkan menjadi salah satu cara yang efisien untuk meningkatkan kecepatan kendaraan serta menghemat penggunaan bahan bakar. Hal ini dapat terjadi karena jika koefisien drag semakin kecil, maka hambatan udara terhadap mobil semakin kecil, sehingga mobil dapat melaju dengan tenaga dari mesin yang lebih sedikit dan pada akhirnya akan mengurangi pemakaian atau konsumsi bahan bakar mesin mobil.

Secara teori, jika koefisien drag semakin berkurang, maka kecepatan akan semakin meningkat, sesuai dengan persamaan gaya drag yang di mana koefisien drag berbanding terbalik dengan kecepatan. Oleh karena itu, pengaruh tahanan udara yang paling besar terjadi ketika laju kendaraan pada kecepatan yang paling rendah.

Faktor yang sangat penting dalam menentukan kualitas simulasi CFD salah satunya adalah meshing atau griding. Meshing merupakan proses dikritisasi domain fluida yang kontinu yang menjadi domain komputasi yang diskrit sehingga dapat diselesaikan persamaan-persamaan didalamnya dan menghasilkan solusi.

Setelah mengerti penggunaan CFDSOF-NG kami menghitung besarnya drag force dari mobil yang modelnya diberikan, dengan menggunakan aplikasi CFD. Kami mengikuti semua parameter yang telah di berikan mulai dari mesh yang ada sampai jenis aliran udara. Setelah dijalankan, berikut 10 data yang di dapatkan:

kecepatan	drag force
10	        8.11646
15	        10.1848
20	        17.6275
25	        27.0084
30	        38.3158
35	        51.53
40	        66.6329
45	        83.5765
50	        102.321

dengan grafik sebagai berikut:

400PX


TUGAS ANALISIS GAYA LIFT FORCE DAN DRAG FORCE PADA AIRFOIL (CFDSOF-NG)

Pada tugas kali ini, kita ditugaskan untuk menganalisis gaya yang terjadi pada sebuah airfoil (sayap pesawat). gaya yang telah dianalisis di hubungkan dengan percobaan sudut yang dibentuk airfoil dengan sumbu normal. Percobaan ini bertujuan untuk menentukan sudut maksimum untuk mendapatkan rasio gaya yang paling baik. Beriukut langkah langkah yang kami lakukan :

1. Mencari referensi airfoil lalu mendesign airfoil tersebut di inventor.
2. Setelah itu kita masukan kedalam CFDSOF-NG untuk di analisis.
3. Akan di dapat sebuah data yang nanti akan di plotting menjadi sebuah grafik.
4. mencari sebuah persamaan yang terbentuk.
5. melakukan optimasi mengunakan pemograman phyton.
6. menarik kesimpulan yang ada.

PEMBUATAN AIRFOIL

Berikut airfoil yang kelompok kami buat yang mendapatkan referensi dari NACA 0006.

AIRFOIL.png

ANALISIS MENGGUNAKAN CFDSOF-NG

TEST.png TEST1.png TEST2.png


MENGOLAH DATA

Setelah melakukan analisis pada CFDSOF-NG, didapatkan data ytang berupa drag forve dan lift foce, berikut data yang telah kami dapatkan :

DATA.png

PEMBUATAN GRAFIK

Setelah medapatkan data yang diinginkan, kita dapat memasukan data tersebut kedalam microsoft excel yang dimana nanti akan dibuat sebuah grafik yang menggunakan trend line guna mendapatkan persamaannya. berikut hasil grafik drag dan lift force terhadap sudut yang telah kami buat :

DRAG.jpg LIFT.jpg


PEMOGRAMAN MENGGUNAKAN PHYTON

Setelah mendapatkan persamaan yang ada pada grafik, kita dapat membuat pemograman untuk melakukan optimasi, berikut optimasinya :

Iyekoding.png Hoohkoding.png