Difference between revisions of "Oimolala Putrawan"

From ccitonlinewiki
Jump to: navigation, search
Line 9: Line 9:
  
  
== '''Pertemuan Pertama''' ==
+
== Pertemuan ke-1 4 September 2019 ==
 
Hari/Tanggal : Rabu, 4 September 2019
 
Hari/Tanggal : Rabu, 4 September 2019
  

Revision as of 13:45, 17 December 2019

Assalamualaikum


Oimolala Putrawan

Nama : Oimolala Putrawan (Oi)

NPM : 1706036412


Pertemuan ke-1 4 September 2019

Hari/Tanggal : Rabu, 4 September 2019

Kenapa saya harus belajar kalkulus?


Saya belajar kalkulus untuk meningkatkan kemampuan bermatematika saya yang kelak berguna untuk memahami fenomena fisik yang terjadi. selain itu belajar kalkulus meningkatkan kemampuan berpikir dan pola pikir saya.


Apa itu Python?

Python merupakan salah satu general purpose high-programing language, yang berarti memiliki sintaks yang mudah dimengerti oleh manusia. Diciptakan pertama kali oleh Guido von Rossum pada 1991. Python dengan bantuan beberapa libraries memiliki banyak kegunaan seperti web developing, scientific computing, sebagai scripting language pada software finite element method, dan yang paling menarik penggunaan python sebagai bahasa yang paling digunakan untuk artificial intelligence terutama pada machine learning.

Pertemuan ke-2 11 September 2019

Pada pertemuan kedua ini, Pak Dai berpesan pada kami semua bahwa kita harus mengenal komputer untuk memehamai bagaimana komputer bekerja sehingga kita dapat memaksimalkan kegunaan komputer tersebut. Komputer merupakan sebuah alat teknologi yang dapat melaksanakan perintah dan menyelesaikan suatu persoalan dengan algoritma. Bahasa yang dipahami komputer adalah bahasa simbol binary yang terdiri dari angka 0 dan 1. Manusia adalah makhluk paling cerdas, tetapi memiliki memori yang terbatas dan mudah lelah jika melakukan pekerjaan yang berulang. Oleh sebab itu, manusia membuat komputer untuk alat bantu untuk mengingat dan menyelesaikan berbagai masalah terutama kegiatan yang bersifat iterasi.

Selain itu, pada pertemuan ini pak DAI mengajak kami berdisukusi tentang teknologi 5.0. Pak DAI berpendapat teknologi 5.0 adalah Pancasila, karena teknologi harus empowering human, bukan sebaliknya. Akan tetapi, komputer tetap harus diberikan perintah oleh manusia, sebab komputer tidak bisa memerintah dirinya sendiri. Lebih jauh lagi pak DAI mengajak kami merenung perihal kecerdasan dan kerendahan hati. Menurut pak DAI, semakin pintar seseorang, maka orang tersebut akan semakin menunduk atau rendah hati. Seseorang yang cerdas, semakin banyak ilmunya maka ia akan berpikir menggunakan hati, karena otaknya sudah dipenuhi oleh ilmu. Komputer tidak mempunyai hati, sehingga manusia tetap diperlukan untuk mengontrol dan memberi perintah komputer agar beroperasi secara maksimal.


Pak Radhon berpesan kepada kami untuk mencari suatu website atau platform untuk belajar python. Lalu install python pada laptop masing-masing.


Pertemuan ke-3 18 September 2019

While Loop Fibonacci

a, b = 0, 1
while a< 100:
   print (a)
   a, b = b, a+b

For Loop Fibonacci

a, b = 0, 1
for i in range(0,100):
   print(a)
   a, b= b, a+b
   

Function Fibonacci

def fib(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 

Submission Tugas

TUGAS 1

File:Tugas 1

TUGAS 2

Fibonacci with Python

File:Tugas 2 Function Approach
File:Tugas 2 Loop (while) Approach
File:Tugas 2 Loop (for) Approach

UTS [23 Oktober]

UTS [23 Oktober]

UTS

#cara 1
  3A
  mass1 = eval(input("Massa Benda 1 ? ")) #menginput m1
  mass2 = eval(input("Massa Benda 2 ? "))#menginput m2
  mass3 = eval(input("Massa Benda 3 ? ")) #meninput m3
  mass4 = eval(input("Massa Benda 4 ? "))
  g = eval(input("Gravitasi ? "))         #input g
  sinus@ = ((mass1+mass2+mass3)/mass4)#hitung sin theta
  T1 = mass1*sinus@*g #hitung T1
  T2 = mass2*sinus@*g + T1 #hitung T2
  T3 = mass3*sinus@*g + T2 #hitung T3
  print("T1", T1)
  print("T2",T2)
  print("T3", T3)
  print("Sin theta = ", sinus@,"")
#cara 2
  #Cara 2
m1 = eval(input("Massa Benda 1 ? "))
m2 = eval(input("Massa Benda 2 ? "))
m3 = eval(input("Massa Benda 3 ? "))
m4 = eval(input("Massa Benda 4 ? "))
g = eval(input("Gravitasi ? "))         
sinusa = ((m1+m2+m3)/m4)
Matrx=[[1,0,0,m1*sinusa*g],[1,1,0,(2*m1+m2)*sinusa*g],[2,1,1,((2*(2*m1+m2))+m3)*sinusa*g]]      #Matrix yg mau di gauss
def PrintMatrix(Matrix): #untuk print
   for i in range(len(Matrix)):
       for j in range(len(Matrix[i])):
           print(Matrix[i][j],end="\t")
       print()
def MultiplyRow(Row,Scalar): #untuk kali
   for i in range(len(Row)):
       Row[i]=Row[i]*Scalar
def AddRow(Matrix,RowNR1,RowNR2,multi=1): #untuk tambah
   for i in range(len(Matrix[RowNR2])):
       Matrix[RowNR2][i]+=Matrix[RowNR1][i]*multi
def SwitchRow(Matrix,RowNR1,RowNR2): #untuk tukar
   bufrow=Matrix[RowNR1]
   Matrix[RowNR1]=Matrix[RowNR2]
   Matrix[RowNR2]=bufrow
   return 0
def ZeroRowsBelow(Matrix,RowNR,CollumnNR): #untuk menghindari eror 0
   for i in range(len(Matrix)-RowNR-1):
       if not(Matrix[RowNR][CollumnNR]==0):
           AddRow(Matrix,RowNR,i+1+RowNR,-float(Matrix[i+1+RowNR][CollumnNR])/Matrix[RowNR][CollumnNR])
           #print(i)
def SolveMatrix(Matrix):     #untuk mensolve
   #Bring To Row-Echelon Form
   for i in range(len(Matrex)):
       ZeroRowsBelow(Matrex,i,i)
  #Make Row-Echelon 1
   for i in range(len(Matrex)):
      if not(Matrex[i][i]==0):
           MultiplyRow(Matrex[i],1./Matrex[i][i])
   #diulang lagi
   for i in range(len(Matrex)):
       for j in range(i):
           if not(Matrex[i][i]==0):
               AddRow(Matrex,i,j,-float(Matrex[j][i])/Matrex[i][i])
def IsRRowEchelon(Matrix): #cek selsai
   for i in range(len(Matrix)):
       pos=[1,0]
       if not(Matrix[i][i] in pos):
           return 0
   return 1
def CheckForEqualRows(Matrix):#cek nilai
   newlist=[]
   for i in Matrix:
       if i not in newlist:
           newlist.append(i)
   return newlist   
MatrixNew=[]
for j in range(len(Matrex)):
   RowNew=[]
   for i in range(len(Matrex[j])):
       RowNew.append(Matrex[j][i])
   MatrixNew.append(RowNew)
Matrex=MatrixNew
PrintMatrix(Matrex)
print()
while True:
   SolveMatrix(Matrex)
   Matrex=CheckForEqualRows(Matrex)
   if IsRRowEchelon(Matrex):
       break
PrintMatrix(Matrex)#print matrix
print("")
print("Solusinya")
print("T1 = ",Matrex[0][3])
print("T2 = ",Matrex[1][3])
print("T3 = ",Matrex[2][3])
print("Sin Theta = ",Matrex[0][3]/(m1*g))


3B

cd=eval(input("drag coefficient: ")) #input coef drag
Vawal=0 #kondisi diam
m=eval(input("mass (kg): ")) #massa
a=eval(input("acceleration (m/s^2): ")) #perc
Vakhir=eval(input("top speed (m/s): ")) #vtop
fdrag=(cd*Vakhir**(3/2))/m #gayagesek
Ftotal=a-fdrag
Atotal = Ftotal #dibagi m
t=(Vakhir-Vawal)/Atotal #hitung waktu
print("Waktu untuk mencapai Vakhir: ",t, "detik")
Video Muhasabah

Tugas 30 Oktober 2019
 def derivative_velocity(acc, vfinal): #Function 
   return (9.8*sina-(1/2)*(1/m)*(cd)**(3/2)-miu*9.8) 
cd=eval(input("drag coefficient: ")) #input coef drag
miu = eval(input("friction coef: "))
Vinitial=0  #stationary condition 
sina = 0.5
m=eval(input("mass (kg): ")) #mass 
accceleration=eval(input("acceleration (m/s^2): ")) 
 #perc 
Vakhir=eval(input("top speed (m/s): ")) 
#vtop 
xawal = 0 #boundary condition x awal soal 
yinit = 0 #boundary condition y awal soal 
x = Vfinal  #the asked x
h = 1  #delta used
number = (int)((x - xawal)/h) calculate the increment  
for i in range(1, angka + 1): 
  k1 = h * Derivative_velocity(xawal, yinit) #runge kutta formula 
  k2 = h * Derivative_velocity(xawal + 0.5 * h, yinit + 0.5 * k1) 
  k3 = h * Derivative_velocity(xawal + 0.5 * h, yinit + 0.5 * k2) 
  k4 = h * Derivative_velocity(xawal + h, yinit + k3) 
  yinit = yinit + (1 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) sum value of k1,k2,k3,k4 to the nwe y' and divide it 
  xawal = xawal + h 
  #sum xawal increase delta h 
print("time needed", yinit,"second")

Tugas [30 Oktober]

def TurunanKec(perc, vakir): #Fungsi

  return (9.8*sina-(1/2)*(1/m)*(cd)**(3/2)-miu*9.8) 

cd=eval(input("drag coefficient: ")) #input coef drag miu = eval(input("koef gesek: ")) Vawal=0 #kondisi diam sina = 0.5 m=eval(input("mass (kg): ")) #massa percepatan=eval(input("acceleration (m/s^2): "))

#perc 

Vakhir=eval(input("top speed (m/s): "))

  1. vtop

xawal = 0 #boundary condition x awal soal yinit = 0 #boundary condition y awal soal x = Vakhir #nilai x yang ditanya h = 1 #delta yang digunakan angka = (int)((x - xawal)/h) #menghitung jumlah increment yg diperlukan for i in range(1, angka + 1):

 k1 = h * TurunanKec(xawal, yinit) #rumus runge kutta 
 k2 = h * TurunanKec(xawal + 0.5 * h, yinit + 0.5 * k1) 
 k3 = h * TurunanKec(xawal + 0.5 * h, yinit + 0.5 * k2) 
 k4 = h * TurunanKec(xawal + h, yinit + k3) 
 yinit = yinit + (1 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) #menjumlahkan nilai k1,k2,k3,k4 ke y' yang baru dan membaginya 
 xawal = xawal + h 
 #menambahkan xawal besarkan delta h 

print("waktu yang dibutuhkan", yinit,"sekon")

Pertemuan ke-10 6 November 2019

Pada pertemuan kali ini kita belajar bagaimana cara untuk berpikir dengan benar. metode numerik merupakan salah satu tools untuk membuat kita berpikir lebih baik. Pada kelas hari ini pak DAI menyampaikan pesan bahwa menyelesaikan masalah dimulai dengan mengetahui apa masalahnya terlebih dahulu, bukan hanya diketahui, ditanya, dijawan dan mencocokkan persamaan-persamaan yang ada.Kami diharapkan menjadi sarjana yang mampu merumuskan masalah ddan menyusun solusinya. Sebelum menyelesaikan suatu permaalahan dengan metode numerik, pertama-tama kita perlu memahami permasalahannya terlebih dahulu. Metode numerik sudah tersusun secara terstruktur dan dibukukan. namun karena perkembangan teknologi sangat cepat, metode numerik belum bisa untuk mengikuti perkembangan terhadap metode-metode baru yang ada seperti AI (artificial intelligence). menurut pak Dai, mengetahui masalah bukan hanya diketahui ini dan itu saja kemudian memasukkan kedalam persamaan yang sudah ada. Pekerjaan itu merupakan pekerjaan operator. Sebagai mahasiswa teknik mesin kita harus bisa merumuskan dan menyusun masalah menjadi suatu persamaan bukan hanya menerapkan persamaan-persamaan yang sudah ada.

Pertemuan ke-11 13 November 2019

Pada pertemuan kali ini kita mempelajari beberapa proses mengelola data seperti Regresi linier, curve fitting, least square. Lalu kita belajar bagaimana cara menentukan metode tepat untuk membuat suatu grafik dengan pendekatan regresi linier. Kita perlu memahami fenomoena fisiknya terlebih dahulu agar kita bisa memiliki gambaran terhadap grafik yang akan terbentuk. Selain itu, kita juga dapat mengetahui jika ada yang tidak sesuai dengan grafik yang kita buat. Kita juga belajar tentang optimasi. Optimasi merupakan salah satu metode yang digunakan untuk menentukan nilai minimum dan maksimum dari suatu fungsi, mencari mana yang lebih ideal antar nilai minimum atau maksimumnya. Nilai minimum merupakan error dari fungsi itu sendiri. Optimasi tanpa batasan lebih sulit dibandingkan sebelumnya karena terdapat lebih dari satu variabel. contoh ,fungsi f(x,y) akan berada pada titik optimum bila derivasi pertama nilainyadisamakan dengan nol. Dengan demikian bisa dikatakan variabel x dan y berada pada titik stasioner pada x=xo dan y= yo.