Jonathan Kevin Samuel

From ccitonlinewiki
Jump to: navigation, search

Introduction

Jonathan Kevin Samuel.jpg

Nama: Jonathan Kevin Samuel

NPM: 1706036513

Jurusan: Teknik Mesin


Meeting 1, September 4th, 2019

Mengapa saya sebagai mahasiswa teknik mesin harus belajar kalkulus?

Karena menurut saya, kalkulus merupakan dasar dari perhitungan-perhitungan seperti di bidang fisika. Untuk penerapannya di jurusan teknik mesin, contohnya seperti di pelajaran Termodinamika, Matematika Teknik, dan Pengendalian Sistem. Untuk di mata kuliah Termodinamika, kalkulus diterapkan untuk menurunkan rumus-rumus yang ada. Lalu, untuk di mata kuliah Matematika Teknik, diterapkan untuk menyelesaikan perhitungan-perhitungan fisika menggunakan persamaan matematika. Dan untuk di mata kuliah Pengendalian Sistem, digunakan untuk membuat pemodelan sistem.


Pertemuan pertama mata kuliah Metode Numerik tanggal 4 September 2019 diisi oleh Bapak Dr. Ahmad Indra dan Dr. Eng. Radon Dhelika. Yang mulai berbicara adalah Bapak Dr. Ahmad Indra. Beliau akrab dipanggil Pak Dai. Beliau mengatakan bahwa sebagai manusia kita harus berakal. Beliau juga mengatakan bahwa setiap sebelum memulai belajar, kita tidak boleh lupa untuk berdoa agar ilmu yang kita dapatkan akan berguna ke depannya.


Setelah memperkenalkan diri, Pak Dai bertanya kepada kami mengapa kami sebagai mahasiswa teknik mesin harus belajar kalkulus, sedangkan kalkulus adalah mata kuliah dari Fakultas Matematika dan Ilmu Pengetahuan Alam. Beliau meminta kami menjawabnya sesuai pribadi kami masing-masing. Dan jawaban saya adalah seperti yang saya jabarkan di atas.


Selanjutnya, Pak Dai baru mulai menjelaskan tentang apa itu Metode Numerik. Dan ini adalah pengertian Metode Numerik.

  Metode numerik merupakan sebuah metode yang digunakan untuk menyelesaikan berbagai kasus dan masalah matematis melalui komputasi. Metode numerik pada umumnya melibatkan jumlah komputasi yang sangat banyak, dengan melibatkan proses iterasi hitungan. Oleh karena itu, komputasi metode numerik dilakukan dengan menggunakan bantuan komputer.


Dalam belajar Metode Numerik di semester 5 ini, kami sebagai mahasiswa dianjurkan menggunakan buku Numerical Methods in Engineering, Python 3 sebagai panduan. Karena bahasa pemrograman yang akan banyak digunakan adalah Python. Pak Dai juga mengatakan bahwa kami tidak boleh takut jika tidak bisa programming. Yang penting adalah harus ada progress setiap harinya. Kita harus punya driving force bahwa setiap hari harus menjadi orang yang lebih baik dari sebelumnya.

  Karena orang yang lebih baik dari hari kemarin adalah orang yang beruntung. Orang yang sama saja dari hari kemarin adalah orang yang rugi. Dan orang yang lebih buruk dari hari kemarin adalah orang yang celaka.

Setelah Pak Dai selesai berbicara, Pak Radon juga memberikan hal-hal yang harus kami ketahui dalam belajar Metode Numerik. Beliau mengatakan bahwa kemampuan programming sangat dibutuhkan di era Revolusi Industri 4.0 ini. Dan di akhir pertemuan pertama ini, Pak Dai dan Pak Radon memberikan kami tugas untuk belajar Python dan menyelesaikan sebuah persamaan dalam bentuk algoritma atau flow chart. Persamaan tersebut adalah sebagai berikut.


Persamaan.PNG


Meeting 2, September 11th, 2019

Pada pertemuan kedua kelas Metode Numerik kali ini, kelas kembali diisi oleh Pak Dai dan Pak Radon. Mereka mengatakan bahwa numerik sangat berhubungan dengan komputer karena kita tidak mampu menghafal banyak hal. Beliau memberikan contoh seperti permainan catur di komputer. Jika kita bermain catur di komputer, sistem permainan catur komputer ini sudah menyimpan database untuk mengingat gerakan-gerakan kita dan gerakan-gerakan komputer itu sendiri.


Karena numerik sangat berhubungan dengan komputer, maka kita sebagai mahasiswa yang sedang mempelajari Metode Numerik harus menjadikan komputer sebagai partner kita. Di dalam komputer ada istilah 32 bit dan 64 bit. Seperti di dalam otak kita, komputer mampu menyimpan data-data dalam binary digit. Jika komputer kita 64 bit, maka komputer tersebut memiliki kemampuan yang lebih akurat dan tepat. Dan sekarang ini, hampir semua gadget menggunakan 64 bit.


Selain membahas komputer, Pak Dai dan Pak Radon juga membahas tentang Artificial Intelligence atau yang biasa disingkat AI karena sekarang sedang zamannya Revolusi Industri 4.0. AI dibuat untuk membantu kehidupan manusia. AI ini berupa robot yang dibuat seakan-akan mempunyai kecerdasan seperti manusia. Tetapi Pak Dai mengatakan bahwa yang memiliki kecerdasan sebenarnya hanyalah MANUSIA. Hanya saja, manusia memiliki keterbatasan dan exhaust. Selain itu, manusia juga mempunyai hati yang membuat manusia berbeda dengan AI. Menurut Pak Dai, jika nanti ada Revolusi Industri 5.0, maka harus ada kaitannya dengan Pancasila. Karena teknologi seharusnya empowering human, bukan melemahkan manusia dan menjadikan manusia idiot. Manusia tidak boleh dikendalikan oleh teknologi contohnya media sosial. Tetapi kita yang seharusnya mengendalikan dan mengerti teknologi.


Setelah itu, Pak Dai dan Pak Radon menjelaskan kembali tentang Python. Untuk mempelajari teknis dari program Python, beliau mengarahkan kami untuk melihat di web Intro to Python. Dan kami mendapatkan 2 tahap untuk menggunakan Python. Yang pertama adalah dengan meng-install package Python. Dan yang kedua adalah dengan meng-install IDE. Selanjutnya, Pak Dai dan Pak Radon juga memberitahu kami cara untuk menggunakan Python tanpa harus meng-install di laptop/komputer kita. Caranya adalah dengan membuka web Python Anywhere.


Meeting 3, September 18th, 2019

Pada pertemuan ketiga kelas Metode Numerik ini, kelas seperti biasa kembali diisi oleh Pak Dai dan Pak Radon. Dan di pertemuan ketiga ini, Pak Dai dan Pak Radon mengadakan quiz untuk melihat apa saja yang sudah kami pelajari di kelas Metode Numerik ini. Soal quiz yang kami dapat adalah membuat algoritma, flowchart, dan pemrograman Python. Untuk bisa menyelesaikan soal tersebut, kami diberikan kasus deret Fibonacci 1, 1, 2, 3, 5, 8, 13, ...., n.


Kami diberikan waktu 30 menit untuk menyelesaikan quiz tersebut. Kami mengerjakan quiz tersebut di selembar kertas. Setelah selesai mengerjakan, Pak Radon mengatakan bahwa membuat program untuk menyelesaikan deret Fibonacci tersebut cukup kompleks. Jadi, Pak Radon memberi kami kasus yang lebih mudah supaya kami dapat lebih mengerti tentang pemrograman, terutama dalam menggunakan Python. Kasus yang diberikan adalah membuat sebuah program yang dapat menentukan selisih dari 2 bilangan. Dan kami diminta dengan menggunakan metode Loop dengan while condition dan metode Function.


Untuk metode Loop dengan while condition, ini yang berhasil saya dapatkan:

Fibonacci with Loop Update.PNG


Fibonacci with Loop 2.PNG


Untuk metode Function, ini yang berhasil saya dapatkan:


Fibonacci with Function.PNG


Fibonacci with Function 2.PNG


Meeting 4, September 25th, 2019

Pada pertemuan keempat Metode Numerik di minggu terakhir di bulan September ini, Pak Dai dan Pak Radon menjelaskan kepada kami tentang menghitung.

Kenapa kita harus menghitung?

Karena apa yang kita desain harus kita pastikan berfungsi secara baik dan reliable dengan fungsi yang optimal.

Kami juga belajar tentang pengertian suatu model. Jadi, model adalah sebuah representasi yang di asumsikan agar dapat mensimplifikasi dari keadaan real yang rumit menjadi lebih simple. Model dibagi menjadi 3 unsur, yaitu representasi, simplifikasi, dan asumsi.


Meeting 5, October 2nd, 2019

Pada pertemuan kelima kelas Metode Numerik di awal bulan Oktober ini, kami diajarkan cara penggunaan turunan menggunakan Python dengan Metode Runge Kutta orde 4. Sebelum mempelajari ini, kami diajarkan dengan menggunakan excel terlebih dahulu untuk mempermudah pemahaman terkait pendekatan metode ini terhadap turunan yang berlaku.


Ada penjelasan-penjelasan singkat mengenai metode ini. Yang pertama adalah metode Runge-Kutta adalah alternatif lain dari metode deret Taylor yang tidak membutuhkan perhitungan turunan. Yang kedua, metode ini menawarkan penyelesaian persamaan diferensial dengan pertumbuhan truncation error yang jauh lebih kecil. Yang dimaksud dengan truncation error adalah kesalahan atau penyimpangan nilai yang timbul akibat pemotongan suku pada suatu deret atau rumus dalam aproksimasi.

Runge-kutta1.JPG

Meeting 6, October 9nd, 2019

Pada pertemuan keenam kelas Metode Numerik ini, kelas tidak diisi oleh Pak Dai dan Pak Radon, melainkan diisi oleh alumni Teknik Mesin UI angkatan 2014, yaitu Bang Edo. Bang Edo mengajarkan kami memecahkan satu set persamaan aljabar. Yang pertama, kami bisa menggunakan metode eliminasi. Metode eliminasi adalah metode untuk mengurangi variabel dari persamaan berikutnya, sehingga persamaan tersebut pada akhirnya hanya mempunya 1 variabel sehingga bisa disubstitusi. Yang kedua adalah dengan metode Gauss. Eliminasi Gauss dapat diaplikasikan untuk menyelesaikan kasus pada aljabar simultan. Eliminasi Gauss juga dapat dilakukan dengan menggunakan metode numerik. Dengan menggunakan metode numerik, perhitungan dapat dilakukan secara efisien dan cepat dengan menggunakan bantuan program python. Yang ketiga adalah metode trial and error.

Meeting 7, October 16th, 2019 (QUIZ)

Pada pertemuan ketujuh kelas Metode Numerik ini, Pak Dai dan Pak Radon mengadakan quiz yang soalnya berasal dari buku Numerical Methods in Engineering with Python 3. Soal yang pertama berasal dari soal nomor 6 halaman 55 dan soal yang kedua berasal dari soal nomor 2 halaman 263.

Jawaban soal yang pertama adalah sebagai berikut:

Jawaban 1 Quiz Jokev.PNG

Jawaban 2 Quiz Jokev.PNG


Jawaban soal yang kedua adalah sebagai berikut:

Jawaban 3 Quiz Jokev.PNG

Jawaban 4 Quiz Jokev.PNG

Meeting 8, October 23rd, 2019 (UTS)

Video Muhasabah Diri

Hasil coding soal nomor 1A

from math import *
g = 9.81
M1 = eval(input("Massa 1 (kg): "))
M2 = eval(input("Massa 2 (kg): "))
M3 = eval(input("Massa 3 (kg): "))
teta = eval(input("Sudut: "))
a = 0
x = sin(teta)
T1 = M1*x*g - M1*a
print ("Besar T1 adalah: ", T1, "N")
T2 = (M2*x*g - M2*a) + T1
print ("Besar T2 adalah: ", T2, "N")
T3 = (M3*x*g - M3*a) + T1 + T2
print ("Besar T3 adalah: ", T3, "N")
T4 = T1 + T2 + T3 
print ("Besar T4 adalah: ", T4, "N")

Video penjelasan soal nomor 1A


Hasil coding soal nomor 1B

from math import *
from numpy import *
g = 9.81
cd = eval(input("Drag coefficient: "))
Vmax = eval(input("Kecepatan maksimum (m/s): "))
M = eval(input("Massa mobil (kg): "))
u = eval(input("Koefisien gesek: "))
a = eval(input("Percepatan awal (m/s^2): "))
Fs = M*g*u
Fd = cd*Vmax**1.5
F1 = M*a
atot = (F1 - Fs - Fd)/M
t = Vmax/atot
print ("Waktu untuk mencapai Vmax: ", t, "s")

Video penjelasan soal nomor 1B


Perbaikan UTS

Perbaikan soal nomor 1A:

import math 
import numpy as np 
#matrix a & b
A = np.array([[1., 0., 0.],
         [-1., 1., 0.],
         [0., -1., 1.]], float)
B = np.array([21.37, 14.24, 7.12], float)
n = len(A) #panjang baris a
print('Matriks A :')
print(A,'\n')
print('Matriks A mempunyai ', n , ' baris','\n')
print('Matriks B :')
print(B,'\n') 
for k in range(0,n-1): #Metode gauss
 for i in range(k+1,n):
     if A[i,k]!=0 :
         lam = A[i,k]/A[k,k] 
         A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
         B[i] = B[i]-(B[k]*lam)
print('matrix A:', '\n', A, '\n')
print('Besar Tegangan Tali yaitu:') 
x = np.zeros(n,float)
for m in range(n-1,-1,-1):
 x[m]=(B[m]-np.dot(A[m,m+1:n],x[m+1:n]))/A[m,m]
 print('T',m+1,'=', x[m])


Perbaikan soal nomor 1B

g = 9.81
cd = eval(input("Drag coefficient: "))
m = eval(input("Massa mobil (kg): "))
myu = eval(input("Koefisien gesek: "))
a = eval(input("Percepatan awal (m/s^2): "))
t0 = 0
v0 = 0
dt = 1 
error = 100
sigmaf = a - g*myu #dibagi mass
fs = cd/m #dibagi mass
lst = []
def dvdt(t0, v0):
  return sigmaf-(fs*(v0)**(1.5))
while error > 0.005: 
  k1 = dvdt(t0, v0) 
  k2 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k1)
  k3 = dvdt(t0 + 0.5 * dt, v0 + 0.5 * dt * k2) 
  k4 = dvdt(t0 + dt, v0 + dt * k3) 
  v1 = v0 + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
  t0 = t0 + dt
  error = ((v1 - v0) / v1)*100 
  v0 = v1
  lst.append(v1)
waktu = len(lst)
print ("Waktu untuk mencapai Vmax: ", waktu+1, "s")
print ("Vmax: ", v1, "m/s")

Meeting 9, October 30th, 2019

Damping System Jokev.PNG

Persamaan dari Damping System di atas ini:

F = m*a (sigma Gaya)
6t - cv = m*a
a = (6t-cv)/m
dv/dt = (6t-cv)/m

Pemrograman Damping System ini:

def TurunanV(t, v): #Fungsi Turunan V terhadap t
  return ((6*t - c*v)/m)
m=eval(input("massa (kg) : ")) 
c=eval(input("damper koefisien (Ns/m) : "))
t0 = 0 #t initial
v0 = 0 #v initial
t = 7  #kecepatan sistem ditanya pada t setelah 7s
h = 0.06  #delta yang digunakan
nilai = (int)((t - t0)/h) #menghitung jumlah increment  
for i in range(1, nilai + 1):
  k1 = h * TurunanV(t0, v0) #runge kutta
  k2 = h * TurunanV(t0 + 0.5 * h, v0 + 0.5 * k1)
  k3 = h * TurunanV(t0 + 0.5 * h, v0 + 0.5 * k2)
  k4 = h * TurunanV(t0 + h, v0 + k3)
  v0 = v0 + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) #sigma nilai k1,k2,k3,k4 ke y' yang baru dan membaginya  
  t0 = t0 + h
print("System Velocity : ",v0, "m/s")

Meeting 10, November 6th, 2019

Pada pertemuan kesepuluh kelas Metode Numerik ini, kelas kembali diisi oleh Pak Dai. Beliau memberi wawasan kepada kami mengenai pentingnya cara berpikir dan logika berpikir untuk memahami masalah lebih dalam supaya kami dapat menyusun masalah menjadi suatu persamaan yang bisa dimodelkan Lalu bisa diselesaikan. Karena sebagai manusia kita harus mengetahui berbagai masalah sistematis bukan hanya sekedar mengerti permukaannya.


Pak Dai juga membahas mengenai soal UTS kemarin. Dalam menjawab soal UTS, kami diminta menuliskan percepatan dalam menghitung terminal velocity namun pada realitanya dalam penjualan mobil, spesifikasi percepatan tidak ada. Untuk itu, kami disarankan untuk mengerjakan ulang soal UTS tersebut dan menambahkan data horsepower dan RPM mobil tersebut.

Meeting 11, November 13th, 2019

Pada pertemuan kesebelas kelas Metode Numerik ini, kelas diisi oleh Pak Radon. Beliau memberikan materi mengenai regresi linier, curve fitting, dan least square. Ketiga hal ini berguna untuk membantu mencari optimasi pada suatu fungsi. Optimasi ini sendiri adalah metode yang digunakan untuk mencari nilai optimum dengan mencari nilai minimum atau maksimum dari suatu fungsi. Fungsi yang diberikan bisa berupa persamaan yang sudah dicari atau ditemukan. Fungsi bisa didapatkan dengan menggunakan curve fitting. Cara penggunaannya dari membuat curve fitting lalu mengambil persamaan dari curve fitting tersebut. Persamaan ini bisa digunakan dalam Python untuk melakukan optimasi.

Meeting 12, November 20th, 2019

Pada pertemuan keduabelas kelas Metode Numerik ini, kelas diisi oleh Pak Dai dan asistennya yaitu Bang Edo. Pak Dai memperkenalkan kepada kami sebuah software CFD (Computational Fluid Dynamics) bernama CFDSOF_NG. Pak Dai dan Bang Edo mengajarkan kami cara menggunakan software tersebut. Bang Edo menyediakan contoh untuk kami analisis, yaitu body dari sebuah mobil. Dalam pengoperasian CFDSOF_NG ini, banyak sekali variabel yang diatur. Mulai dari bentuk mesh, mesh point, karakteristik fluida, boundaries aliran fluida, serta metode analisanya.


Untuk dapat melakukan analisis CFD ini, tentu kami harus mengunduh software CFDSOF_NG ini sendiri. Kami mengunduh CFDSOF_NG di CFDSOF. Setelah kami mengunduhnya, kami melakukan instalasi software dan melakukan analisis terhadap body mobil. Hasil analisis ini adalah berupa tampak visual persebaran tekanan diseluruh permukaan body. Lalu kami diberikan tugas untuk menganalisis gaya-gaya yang ada di body mobil dan kemudian menggunakan metode curve fitting dalam pencarian persamaan.

Cfdsoff2.jpg

Meeting 13, November 27th, 2019

Pada pertemuan ketigabelas kelas Metode Numerik ini, kelas diisi oleh Pak Dai. Pak Dai memberikan kami kuis dadakan untuk menguji kesiapan kami dalam memahami metode numerik. Materi kuisnya adalah mengenai tugas yang sudah diberikan pada kami sebelumnya dan tentunya mengenai optimasi.


Setelah selesai kuis, Pak Dai meminta kami semua untuk melakukan presentasi mengenai tugas kami dari minggu lalu, yaitu mengenai airfoil dan optimasi. Tetapi dikarenakan waktu kelas yang tidak cukup, akhirnya tidak semua kelompok dapat melakukan presentasi. Dan kami diarahkan untuk membuat urutan maju kelompok minggu depan berurutan berdasarkan progres kelompok. Kelompok dengan progress terkecil akan mendapat giliran pertama pada presentasi minggu depan.

Meeting 14, December 4th, 2019

Pada pertemuan keempat belas kelas Metode Numerik ini, kelas diisi oleh Pak Radon dan asistennya yaitu Bang Edo dan Bang Timo. Pertemuan kali ini langsung dimulai dengan presentasi dari kelompok yang telah dibuat urutan majunya minggu lalu. Beberapa kelompok yang maju dapat menjelaskan dengan baik dan menjawab setiap pertanyaan dengan baik.


Lalu ternyata waktu juga masih kurang cukup sehingga Pak Radon memberhentikan sesi presentasi karena harus ada pemberian materi ANN. ANN dijelaskan secara singkat dan diperkenalkan kelebihannya. Sisa kelompok yang belum presentasi akan melakukan presentasi di luar jam kelas. Mengenai ANN ini, Bang Edo mengatakan bahwa metode ini dipakai NASA dalam menyelesaikan kasus-kasus besar, dan terbukti benar. Namun Bang Edo berkata bahwa metode ini memiliki kekurangan yaitu jika dipakai terus menerus, manusia akan kehilangan sense of knowledge karena terbiasa hanya memasukkan input dan mendapat output secara langsung.

Meeting 15, December 11th, 2019

Pertemuan kelimabelas kelas Metode Numerik ini adalah pertemuan kelas terakhir karena di minggu depannya adalah minggu UAS. Jadi, di pertemuan terakhir ini membahas UAS metode numerik dan membahas tentang Artificial Neural Networks atau biasa disingkat dengan ANN.


ANN Adalah sistem pembelajaran terawasi yang dibangun dari sejumlah besar elemen sederhana, yang disebut neuron atau perceptron. Setiap neuron dapat membuat keputusan sederhana, dan memberi makan keputusan itu ke neuron lain, yang diorganisasikan dalam lapisan yang saling berhubungan. Backpropagation adalah algoritma pembelajaran untuk memperkecil tingkat error dengan cara menyesuaikan bobotnya berdasarkan perbedaan output dan target yang diinginkan. Backpropagation juga merupakan sebuah metode sistematik untuk pelatihan multilayer.


Arsitektur algoritma backpropagation terdiri dari tiga layer, yaitu input layer, hidden layer dan output layer. Pada input layer tidak terjadi proses komputasi, namun pada input layer terjadi pengiriman sinyal input X ke hidden layer. Pada hidden dan output layer terjadi proses komputasi terhadap bobot dan bias dan dihitung pula besarnya output dari hidden dan output layer tersebut berdasarkan fungsi aktivasi tertentu. Dalam algoritma backpropagation ini digunakan fungsi aktivasi sigmoid biner, karena output yang diharapkan bernilai antara 0 sampai 1.


Ilustrasi ANN


Algoritma backpropagation adalah sebuah algoritma untuk memperkecil tingkat error dengan menyesuaikan bobot berdasarkan perbedaan output dan target yang diinginkan. Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu :

a. Pengambilan input

b. Penelusuran error

c. Penyesuaian bobot


Pada pengambilan input, terlebih dahulu dilakukan inisialisasi bobot, kemudian masuk ke dalam algoritma proses backpropagation yang terdiri dari komputasi maju yang bertujuan untuk menelusuri besarnya error dan komputasi balik untuk mengupdate dan menyesuaikan bobot. Dalam mengupdate bobot daapat dilakukan dengan dua cara, yaitu tanpa momentum dan dengan momentum. Namun, yang dijelaskan di bawah ini dalam mengupdate bobotnya dilakukan tanpa memperhatikan besarnya momentum. Dengan demikian dalam metode backpropagation, algoritma yang harus dilakukan adalah inisialisasi bobot, komputasi feed forward dan backpropagation dan inisialisasi kondisi stopping berdasarkan nilai batas error atau jumlah batas epoch. Epoch merupakan rangkaian langkah dalam pembelajaran ANN. Satu epoch diartikan sebagai satu kali pembelajaran ANN.