Difference between revisions of "Fahmi Ismail Wibisono"
Fahmi Ismail (talk | contribs) |
Fahmi Ismail (talk | contribs) |
||
(46 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | '''بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم''' | |
+ | |||
+ | [[File:Fahmi Ismail 17.jpg|700px]] | ||
+ | |||
+ | |||
+ | Perkenalkan saya | ||
+ | |||
Nama : Fahmi Ismail Wibisono | Nama : Fahmi Ismail Wibisono | ||
+ | |||
NPM : 1706036091 | NPM : 1706036091 | ||
− | + | ||
+ | |||
+ | |||
+ | == '''Minggu Ke-1 4 September 2019''' == | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
Kenapa anak mesin harus belajar kalkulus ? | Kenapa anak mesin harus belajar kalkulus ? | ||
+ | ''' | ||
+ | Kalkulus merupakan rangkaian perhitungan matematika yang digunakan untuk memodelkan persamaan yang ada di dunia rekayasa teknik | ||
+ | ''' | ||
+ | Kenapa anak mesin harus belajar kalkulus ?''' | ||
+ | |||
+ | Pada bidang teknik mesin banyak sekali jenis pegaplikasiaannya contohnya pada suatu struktur mesin yang memiliki struktur tidak beraturan dan perlu analisis mekanikalnya maka model persamaan integralnya pasti akan rumit dan tidak ada rumus baku, yang biasa ditemukan pada masalah ''engineering'', bagaimana memodelkan integral dari sesuatu yang acak. | ||
+ | ''' | ||
− | |||
− | + | ''' | |
+ | Kelas 4 September 2019''' :''' | ||
− | + | ---- | |
− | |||
Mata kuliah numerik salah satu pemecah masalah seperti masalah tadi. Pak Indra dalam kelas menjelaskan kegunaan kalkulus dan metode numerik dengan perumpamaan, jika kita ingin menghitung luas Pulau Jawa namun Pulau Jawa tidak dapat dihitnung begitu saja karena bentuknya yang acak, namun dengan logika, kita bisa menghitung luasan yang beraturan seperti square, kemudian kita bagi luas pulau jawa tersebut kedalam square-square tersebut, dan jika kita ingin mendapat hasil akurat maka kita dapat perkecil square-square tersebut, namun jumlahnya akan cukup mnyulitkan untuk dimodelkan dan dihitung, namun dengan perkembangan teknologi maka kita bisa menghitung dengan menggunakan komputer, yang bisa membantu menghitung tanpa 'kelelahan'. | Mata kuliah numerik salah satu pemecah masalah seperti masalah tadi. Pak Indra dalam kelas menjelaskan kegunaan kalkulus dan metode numerik dengan perumpamaan, jika kita ingin menghitung luas Pulau Jawa namun Pulau Jawa tidak dapat dihitnung begitu saja karena bentuknya yang acak, namun dengan logika, kita bisa menghitung luasan yang beraturan seperti square, kemudian kita bagi luas pulau jawa tersebut kedalam square-square tersebut, dan jika kita ingin mendapat hasil akurat maka kita dapat perkecil square-square tersebut, namun jumlahnya akan cukup mnyulitkan untuk dimodelkan dan dihitung, namun dengan perkembangan teknologi maka kita bisa menghitung dengan menggunakan komputer, yang bisa membantu menghitung tanpa 'kelelahan'. | ||
Line 20: | Line 40: | ||
buku pengantaranya 'numerical methods in engineering with python 3'. | buku pengantaranya 'numerical methods in engineering with python 3'. | ||
− | Tugas : | + | '''Tugas :''' |
+ | |||
1. Mempelajari python secara langsung. | 1. Mempelajari python secara langsung. | ||
+ | |||
2. Membuat program untuk menyelesaikan persamaan matematika seperti yang dicontohkan. | 2. Membuat program untuk menyelesaikan persamaan matematika seperti yang dicontohkan. | ||
− | Tugas | + | '''Tugas :''' |
Persamaan f(1) = x^2-1/x-1 | Persamaan f(1) = x^2-1/x-1 | ||
+ | |||
+ | Menggunakan Python | ||
+ | |||
+ | #menggunakan limit | ||
+ | def f(x): | ||
+ | return x**2-1 | ||
+ | def g(x): | ||
+ | return x-1 | ||
+ | for i in range(1,10): | ||
+ | n=0.1 | ||
+ | a=n**i | ||
+ | limit=f(1-a)/g(1-a) | ||
+ | print (limit) | ||
+ | #Run | ||
+ | 2.0 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu Ke-2 11 September 2019''' == | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Machine learning, contohnya google bisa mengetahui arah penggunaan search enginenya. Saat ini banyak menggunakan software dimana spesifikasinya berbeda seperti 32bit dan 64bit. | ||
+ | |||
+ | '''32 bit 64 bit''' | ||
+ | |||
+ | bit merupakan binary digit, OS komputer yang mampu menjalankan 32 bit disebut overflow, karena terbatas binay digitnya. Software-software engineering saat ini mengharuskan penggunaan 64bit untuk dapat menyokong penggunaan komputer yang mulai kompleks dan dapat membantu ''Machine Learning | ||
+ | '' | ||
+ | |||
+ | menurut Pak Indra : | ||
+ | |||
+ | Orang yang belajar adalah orang yang sedang mengasah kecerdasan untuk tahap selanjutnya. | ||
+ | |||
+ | Dimana saat ini AI(''artificial intelligence'') yang merupakan hasil buah pemikiran manusia yang saat ini sedang banyak dikembangkan untuk membantu pekerjaan manusia yang terbatas dengan memori dan stamina dalam melakukan suatu pekerjaan. Namun yang membedakan antara manusia dan komputer adalah manusia memiliki hati yang ibarat sebagai dasar dari pemakaian manusia dan manusia memiliki kemaungan/keinginan. | ||
+ | |||
+ | Dalam perkembangan dunia industri, saat ini dikenal dengan yang namanya revolusi industri 4.0 mengenai IOT dimana pada mata kuliah ini dapat menjadi dasar dan bekal SDM Indonesia dalam menghadapi revolusi Industri 4.0, dan ddalam waktu dekat akan hadir pula revolusi Industri 5.0 yang juga telah dibicarakan yaitu mengenai ''empowering human'' yang dimana teknologi bukannya melemahkan manusia tapi membantu manusia. | ||
+ | Teknologi bisa diibaratkan sebagai kuda ada yang liar dan jinak serta dapat membantu manusia. Yang dibutuhkan dalam memanfaatkan teknologi ini adalah pengetahuan mengenai hal yang akan kita gunakan dan sebgai anak mesin harus tahu dan harus dapat ''emporing your self''. | ||
+ | |||
+ | Pak radon memberikan gambaran mengenai metode numerik | ||
+ | pada pertemuan pertama dan mengenalkan dasar programming dalam kelas. | ||
+ | |||
+ | '''Materi dasar-dasar programing dengan python''' | ||
+ | |||
+ | Pada mata kuliah metode numerik dibutuhkan banyak energi untuk mengejar ketertinggalan untuk materi ajar yang menjadi pokok Mata Kuliah Metode Numerik ini. | ||
+ | |||
+ | Contoh Program | ||
+ | |||
+ | Strings & Tuples | ||
+ | |||
+ | rec = ('Fahmi','Ismail','Wibisono','(5,12,99)') | ||
+ | NamaAwal,NamaTengah,NamaAkhir,tanggallahir = rec | ||
+ | TahunLahir = tanggallahir[2] | ||
+ | print(TahunLahir) | ||
+ | name =rec[0]+' '+rec[1] | ||
+ | print(name) | ||
+ | print(rec[0:4]) | ||
+ | |||
+ | a=[1.0,2.0,3.0] | ||
+ | a.insert(0,0.0) | ||
+ | print(len(a)) | ||
+ | a[2:4]=[1.0,1.0,1.0] | ||
+ | |||
+ | #Strings | ||
+ | s = ’3 9 81’ | ||
+ | print(s.split()) | ||
+ | [’3’, ’9’, ’81’] | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ''' | ||
+ | ''' | ||
+ | == Minggu Ke-3 18 Sepetember 2019 == | ||
+ | '''''' | ||
+ | |||
+ | Pada Kelas hari ini diadakan kuis untuk menguji kemampuan mahasiswa dalam menggunakan bahasa pemograman Python. | ||
+ | Pak Indra memberi soal mengenai baris Fibonacci sebagai berikut | ||
+ | |||
+ | Baris Fibonacci : 1, 1, 2, 3, 5, 8, 13, ..., Un | ||
+ | |||
+ | Dari baris Fibonacci tersebut dibuat program untuk mencari besar Suku Ke-n dari baris tersebut | ||
+ | |||
+ | '''Program menggunakan For''' | ||
+ | |||
+ | [[File:Fahmi Kuis 1 For.PNG]] | ||
+ | |||
+ | '''Program menggunakan While''' | ||
+ | |||
+ | [[File:KUIS 1 While.PNG]] | ||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu Ke-4 25 September 2019''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Mempelajari suatu konsep seperti belajar integral di kalkulus | ||
+ | menyelesaikan persamaan alajabar simultan. | ||
+ | |||
+ | '''Komputasional Modeling''' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Kenapa kita harus menghitung, kita harus memastikan yang kita design mampu bekerja sesuai keinginan kita, contohnya mampu menahan beban dan memiliki efisiensi yang kita inginkan | ||
+ | namun kita tidak dapat menghitung semua secara eksak, kita hanya dapat melakukan pendekatan modeling merupakan suatu representasi merupakan suatu objek | ||
+ | di dunia ini untuk dapat mendefinisikan model adalah asumsi simplifikasi dan representasi | ||
+ | kalo semua basic ilmu teknik itu semua basisnnya mechanical. | ||
+ | |||
+ | |||
+ | == '''Minggu Ke-5 2 Oktober 2019''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Pada pertemuan ke 5 ini belajar bersama asisten Dosen mengenai Python untuk mempelajari penggunaan Python untuk penggunaan di Kelas Metode Numerik Ini. Python merupakan salah satu bahasa yang banyak digunakan saat ini karena bentuk syntax-nya yang mudah dipahami. Dan untuk dapat menokong Revolusi Industri 4.0 pembelajaran bahasa pemograman akan sangat dibutuhkan | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | == '''Minggu Ke-6 9 Oktober 2019''' == | ||
+ | |||
+ | Pada pertemuan minggu ke 6 ini belajar mengenai pemecahan masalah aljabar. Dalam masalah matematika terutama aljabar pada umumnya banyak dipakai untuk memodelkan suatu permasalahan fisika dan pada saat ini komputer memiliki peran dalam pemodelan masalah tersebut. | ||
+ | Dalam penyelesaian komputer berguna sebagai alat bantu karena komputer dapat diandalkan dalam operasi berulang dan konstan. | ||
+ | |||
+ | Alur teknik penyelesaian masalah Aljabar | ||
+ | |||
+ | 1. Metode Eliminasi | ||
+ | |||
+ | 2. Metode Gauss | ||
+ | |||
+ | 3. Trial & Error | ||
+ | |||
+ | |||
+ | == '''Minggu ke-7 16 Oktober 2019 - KUIS''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Pada kelas ini diadakan KUIS. untuk menguji pemahaman kami terhadap masalah aljabar pada kelas metode numerik ini dan Kuis mengambil contoh soal dari buku | ||
+ | |||
+ | |||
+ | |||
+ | Problem Set 2.1 no.6 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[File:KUIS_1_FI.PNG]] | ||
+ | |||
+ | Problem Set 7.1 no.2 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[File:KUIS_1.2_FI.PNG ]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == UTS == | ||
+ | |||
+ | [[File:MetnumFahmi_Ismail1.mp4]] | ||
+ | |||
+ | [[File:MuhasabahFahmiIsmail2.mp4]] | ||
+ | ---- | ||
+ | |||
+ | '''Muhasabah''' | ||
+ | |||
+ | |||
+ | '''NO.A Kesetimbangan Tegangan Tali''' | ||
+ | ---- | ||
+ | |||
+ | |||
+ | #Soal A dimana terdapat 4 buah benda pada sebuah sistem katrol | ||
+ | #dimana terdapat 3 benda pada bidang miring dan 1 benda lagi tergantung pada tali | ||
+ | #benda 1, 2, & 3 berada pada bidang miring dimana sistem dianggap setimbang dan gesekan dapat diabaikan | ||
+ | #Mencari besar dari tegangan tali dari sistem benda pada soal no 1 | ||
+ | |||
+ | Mengasumsikan dan Menentukan besaran percepatan gravitasinya | ||
+ | dan besar massa dari ke-empat benda tersebut | ||
+ | g=eval(input("Besar g: ")) | ||
+ | #Menentukan nilai massa benda 4 | ||
+ | m4=eval(input("Besar massa m4 : ")) | ||
+ | #Menentukan nilai massa benda 3 | ||
+ | m3=eval(input("Besar massa m3 : ")) | ||
+ | #Menentukan nilai massa benda 2 | ||
+ | m2=eval(input("Besar massa m2 : ")) | ||
+ | #Menentukan nilai massa benda 1 | ||
+ | m1=eval(input("Besar massa m1 : ")) | ||
+ | |||
+ | # Pada sistem dianggap setimbang dimana tidak bergerak dan dapat dianggap SF=0 | ||
+ | # W1+W2+W3-W4=0 | ||
+ | # SinA(m1+m2+m3)-m4=0 | ||
+ | sinA=m4/(m3+m2+m1) | ||
+ | #Menghitung nilai T3 | ||
+ | #F=0 | ||
+ | #T3-m4*g=0 | ||
+ | T3=m4*g | ||
+ | #Menghitung nilai T2 | ||
+ | #F=0 | ||
+ | #T2-T3+(m3*g*sinA) | ||
+ | T2=T3-(m3*g*sinA) | ||
+ | #Menghitung nilai T1 | ||
+ | #F=0 | ||
+ | #T1-(m1*g*sinA)=0 | ||
+ | T1=m1*g*sinA | ||
+ | |||
+ | #print nilai T3 | ||
+ | print("Besar Tegangan tali 3 adalah :",float(T3),"N") | ||
+ | #print nilai T2 | ||
+ | print("Besar Tegangan tali 2 adalah :",float(T2),"N") | ||
+ | #print nilai T1 | ||
+ | print("Besar Tegangan tali 1 adalah :",float(T1),"N") | ||
+ | |||
+ | '''VIDEO PRESENTASI''' | ||
+ | |||
+ | [[File:UTS_A_Fahmi_Ismail.mp4]] | ||
+ | |||
+ | |||
+ | '''No.B Mobil ''' | ||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | # mobil melaju dari posisi diam hingga ke top speednya dengan percepatan a | ||
+ | # kemudian besar gesekan dan hambatan yang terjadi mobil diperhitungkan | ||
+ | |||
+ | |||
+ | # Membuat input untuk mengsumsikan besar nilai yang terjadi pada sistm | ||
+ | # input untuk koefisien hambatan mobil terhadap udara dimana semakin cepat maka akan semakin besar pula hambatannya | ||
+ | |||
+ | m = float(input("massa mobil (kg): ")) | ||
+ | g = float(input("percepatan gravitasi (m/s^2): ")) | ||
+ | a = float(input("percepatan mobil (m/s^2) : ")) | ||
+ | cd = float(input("koefisien drag udara : ")) | ||
+ | cg = float(input("koefisien gesek jalan : ")) | ||
+ | v0 = 0 #kecepatan awal | ||
+ | t0 = 0 #waktu awal | ||
+ | dt = 1 # tinggi step atau waktu | ||
+ | error = 100 | ||
+ | p = a - g * cg | ||
+ | q = cd / m | ||
+ | |||
+ | lst = [] | ||
+ | |||
+ | def dvdt(t0, v0): | ||
+ | return p - (q * (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 # persentase error | ||
+ | v0 = v1 | ||
+ | lst.append(v1) | ||
+ | |||
+ | waktu = len(lst) | ||
+ | |||
+ | print("waktu untuk mencapai top speed adalah: ", waktu + 1, "sekon") | ||
+ | print("top speednya adalah: ", v1 , "m/s") | ||
+ | |||
+ | CARA RUNGE KUTTA | ||
+ | |||
+ | #Buat perintah input | ||
+ | a = input ("nilai x0 = ") | ||
+ | b = input ("nilai y = ") | ||
+ | c = input ("nilai h = ") | ||
+ | x0 = int(a) | ||
+ | y= int(b) | ||
+ | x= float(c) | ||
+ | h= float(d) | ||
+ | |||
+ | #definisakan persamaan f(x,y) | ||
+ | def dydx(x,y): | ||
+ | return ((x**2 -4*y)) | ||
+ | |||
+ | #menggunakan iterasi dengan step h | ||
+ | def rungekutta(x0, y0, x, h): | ||
+ | n = (int)((x - x0)/h) | ||
+ | y = y0 | ||
+ | for i in range(1, n+1): | ||
+ | "gunakan persamaan runge kutta untuk mencari nilai dari y" | ||
+ | #persamaan hk1 k2 k3 k4 pada runge kutta 4 th open | ||
+ | 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) | ||
+ | |||
+ | #nilai y | ||
+ | y=y+(1.0/6.0)*(k1+2*k2+2*k3+k4) | ||
+ | |||
+ | #pembaruan nilai x | ||
+ | x0=x0+h | ||
+ | return y | ||
+ | |||
+ | |||
+ | |||
+ | '''VIDEO PRESENTASI''' | ||
+ | |||
+ | [[File:UTS_B_Fahmi_Ismail.mp4]] | ||
+ | |||
+ | |||
+ | == '''Pertemuan Ke-8 30 Oktober 2019''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Membuat persamaan untuk belajar runge kutta | ||
+ | |||
+ | Asumsi | ||
+ | |||
+ | F = 100 | ||
+ | m = 10 #massa | ||
+ | g = float (input("Percepatan gravitasi adalah: ")) | ||
+ | miu = float (input("Koefisien gesek adalah: ")) | ||
+ | Cd = float (input("Koefisien drag adalah: ")) | ||
+ | v0 = float (input("Kecepatan awal :")) | ||
+ | vf = float (input("Kecepatan akhir :")) | ||
+ | Ff = m*g*miu | ||
+ | Fd = (Cd*v0**(3/2)) #rumus gaya drag | ||
+ | a2 = (F-Fd-Ff/m) | ||
+ | def dtdtv(t, y): | ||
+ | return((m)/(F - m*g*miu - Cd*v0**(3/2))) | ||
+ | t = 0 | ||
+ | h = 0.01 | ||
+ | def rungekutta(v0, t0, vf, h): | ||
+ | n = (int)((vf - v0)/h) | ||
+ | t = t0 | ||
+ | for i in range(1, n + 1): | ||
+ | k1 = h * dtdtv(v0, t) | ||
+ | k2 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k1) | ||
+ | k3 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k2) | ||
+ | k4 = h * dtdtv(v0 + h, t + k3) | ||
+ | t = t + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) | ||
+ | v0 = v0 + h | ||
+ | return t | ||
+ | tf = rungekutta(v0, t, vf, h) | ||
+ | print('Waktu yang dibutuhkan hingga mencapai top speed adalah',tf) | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | == ''Minggu ke-9 30 Oktober 2019''' == | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Belajar pemodelan fisika dengan metode numerik runge kutta | ||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu ke-10 6 November 2019''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Pada pertemuan kali ini belajar Mengenai software CFD untuk mencari nilai drag & lift pada suatu objek | ||
+ | |||
+ | |||
+ | '''== Simulasi CFD Pada Mobil ==''' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Tugas ini merupakan tugas untuk melakukan simulasi aliran udara pada permukaan mobil untuk mendapatkan nilai drag force menggunakan software CFDSOF-NG. CFDSOF-NG merupakan aplikasi berbasis metode numerik yang berfungsi untuk menganalisa aliran fluida pada suatu permukaan benda. Langkah-langkah untuk melakukan analisis CFD menggunakan CFDSOF-NG adalah sebagai berikut: | ||
+ | |||
+ | 1. Mengimport file .stl ke dalam software CFDSOF-NG | ||
+ | |||
+ | 2. Membuat mesh dari file .stl | ||
+ | |||
+ | 3. Run solve pada software CFDSOF-NG | ||
+ | |||
+ | 4. Melakukan analisis lebih lanjut dengan menggunakan software paraview | ||
+ | |||
+ | [[File:Sim1.png]] | ||
+ | |||
+ | [[File:Sim2.png]] | ||
+ | |||
+ | [[File:Sim3.png]] | ||
+ | |||
+ | [[File:4.png]] | ||
+ | |||
+ | [[File:Simulasi.png]] | ||
+ | |||
+ | == '''Minggu ke-11 13 November 2019''' == | ||
+ | ---- | ||
+ | |||
+ | |||
+ | Pada pertemuan kali ini mempelajari mengelola data dengan metode regresi linear, curve fitting, least square. Pengolahan data penting untuk membuat paper, skripsi. | ||
+ | |||
+ | kemudian belajar mengenai Optimasi | ||
+ | |||
+ | Optimasi adalah proses untuk mencapai hasil yang ideal atau optimasi (nilai efektif yang dapat dicapai). Optimasi dapat diartikan sebagai suatu bentuk mengoptimalkan sesuatu hal yang sudah ada, ataupun merancang dan membuat sesusatu secara optimal. Optimasi tanpa batasan yang dibahas pada bagian ini lebih lebih sulitdibandingkan sebelumnya karena variabel yang dibahas lebih dari satu . | ||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu ke-12 20 November 2019''' == | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Pada pertemuan kali ini kelas diajarkan menggunakan software untuk mensimulasikan fluida.Yaitu dengan menggunakan software CFDSOF,CFDSOF merupakan software yang digunakan untuk mendapatkan hasil simulasi aliran fluida dan thermal pada sebuah model/ design CAD (Computer Aided Design) salah satunya adalah Inventor dan Solidworks. | ||
+ | Dalam kelas diajarkan cara menggunakannya dengan contoh menghitung drag dari suatu model mobil. | ||
+ | |||
+ | Tugas ini mengenai optimasi pada airfoil menggunakan metode numerik. Mula-mula kami melakukan analisis menggunakan CFDSOF-NG untuk mendapatkan nilai lift force dan drag force. Setelah itu didapatkan grafik berdasarkan setiap perubahan AoA. Kemudian dilakukan optimasi dengan metode numerik untuk mendapatkan nilai maksimal dari gaya drag dan lif berdasarkan AoA. Berdasarkan hasil optimasi didapatkan hasil berupa sudut optimal dari pesawat yang mana akan meningkatkan performa dan meminimalisir gaya gesekan. | ||
+ | |||
+ | Kemudian kami diberikan tugas mengenai simulasi airfoil dengan menggunakan airfoil buatan sendiri ataupun airfoil yang sudah ada. Simulasi dilakukan dengan merubah sudut Angle of Attack (AoA) dalam kecepatan tertentu. AoA yang digunakan mulai dari -15 derajat sampai 90 derajat, dengan increment 15 derajat. Tugas ini nantinya akan dipresentasikan pada pertemuan selanjutnya, sehingga harus dibuat dalam bentuk powerpoint | ||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu ke-13 27 November 2019''' == | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Pada hari ini dilakukan Kuis Dadakan dan dilakukan presentasi mengenai optimasi | ||
+ | |||
+ | |||
+ | == '''Tugas Optimasi CFD Airfoil''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[File:Slide1.png]] | ||
+ | |||
+ | [[File:Slide2.png]] | ||
+ | |||
+ | [[File:Slide3.png]] | ||
+ | |||
+ | [[File:Slide4.png]] | ||
+ | |||
+ | [[File:Slide5.png]] | ||
+ | |||
+ | [[File:Slide6.png]] | ||
+ | |||
+ | [[File:Slide7.png]] | ||
+ | |||
+ | [[File:Slide8.png]] | ||
+ | |||
+ | [[File:Slide9.png]] | ||
+ | |||
+ | [[File:Slide10.png]] | ||
+ | |||
+ | == '''Minggu ke-14 4 Desember 2019''' == | ||
+ | |||
+ | |||
+ | ---- | ||
+ | Pada hari ini masih melanjutkan presentasi mengenai Optimasi dan membahas sedikit mengenai Artificial Neural Network | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | == '''Minggu ke-15 11 Desember 2019''' == | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Pada Hari ini kembali melanjutkan belajar mengenai ANN (Artificial Neural Network) | ||
+ | |||
+ | 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. | ||
+ | |||
+ | Langkah -langkah dalam membuat ANN | ||
+ | |||
+ | 1. Data Preprocessing | ||
+ | |||
+ | 2. Add input layer | ||
+ | |||
+ | 3. Random w init | ||
+ | |||
+ | 4. Add Hidden Layers | ||
+ | |||
+ | 5. Select Optimizer, Loss, and Performance Metrics | ||
+ | |||
+ | 6. Compile the model | ||
+ | |||
+ | 7. use model.fit to train the model | ||
+ | |||
+ | 8. Evaluate the model | ||
+ | |||
+ | 9. Adjust optimization parameters or model if needed | ||
+ | |||
+ | Forwardpropagaton | ||
+ | |||
+ | Backpropagation | ||
+ | |||
+ | 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 JST. Backpopagation dikatakan sebagai algoritma pelatihan multilayer karena Backpropagation memiliki tiga layer dalam proses pelatihannya, yaitu input layer, hidden layer dan output layer, dimana backpropagation ini merupakan perkembangan dari single layer network (Jaringan Layar Tunggal) yang memiliki dua layer, yaitu input layer dan output layer. Dengan adanya hidden layer pada backpropagation dapat menyebabkan besarnya tingkat error pada backpropagation lebih kecil dibanding tingkat error pada single layer network. Hal tersebut dikarenakan hidden layer pada backpropagation berfungsi sebagai tempat untuk mengupdate dan menyesuaikan bobot, sehingga didapatkan nilai bobot yang baru yang bisa diarahkan mendekati dengan target output yang diinginkan. | ||
+ | |||
+ | Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu : | ||
+ | |||
+ | • Pengambilan input | ||
+ | |||
+ | • Penelusuran error | ||
+ | |||
+ | • 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. |
Latest revision as of 21:24, 2 January 2020
بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم
Perkenalkan saya
Nama : Fahmi Ismail Wibisono
NPM : 1706036091
Contents
- 1 Minggu Ke-1 4 September 2019
- 2 Minggu Ke-2 11 September 2019
- 3 Minggu Ke-3 18 Sepetember 2019
- 4 Minggu Ke-4 25 September 2019
- 5 Minggu Ke-5 2 Oktober 2019
- 6 Minggu Ke-6 9 Oktober 2019
- 7 Minggu ke-7 16 Oktober 2019 - KUIS
- 8 UTS
- 9 Pertemuan Ke-8 30 Oktober 2019
- 10 Minggu ke-9 30 Oktober 2019'
- 11 Minggu ke-10 6 November 2019
- 12 Minggu ke-11 13 November 2019
- 13 Minggu ke-12 20 November 2019
- 14 Minggu ke-13 27 November 2019
- 15 Tugas Optimasi CFD Airfoil
- 16 Minggu ke-14 4 Desember 2019
- 17 Minggu ke-15 11 Desember 2019
Minggu Ke-1 4 September 2019
Kenapa anak mesin harus belajar kalkulus ?
Kalkulus merupakan rangkaian perhitungan matematika yang digunakan untuk memodelkan persamaan yang ada di dunia rekayasa teknik
Kenapa anak mesin harus belajar kalkulus ?
Pada bidang teknik mesin banyak sekali jenis pegaplikasiaannya contohnya pada suatu struktur mesin yang memiliki struktur tidak beraturan dan perlu analisis mekanikalnya maka model persamaan integralnya pasti akan rumit dan tidak ada rumus baku, yang biasa ditemukan pada masalah engineering, bagaimana memodelkan integral dari sesuatu yang acak.
Kelas 4 September 2019 :
Mata kuliah numerik salah satu pemecah masalah seperti masalah tadi. Pak Indra dalam kelas menjelaskan kegunaan kalkulus dan metode numerik dengan perumpamaan, jika kita ingin menghitung luas Pulau Jawa namun Pulau Jawa tidak dapat dihitnung begitu saja karena bentuknya yang acak, namun dengan logika, kita bisa menghitung luasan yang beraturan seperti square, kemudian kita bagi luas pulau jawa tersebut kedalam square-square tersebut, dan jika kita ingin mendapat hasil akurat maka kita dapat perkecil square-square tersebut, namun jumlahnya akan cukup mnyulitkan untuk dimodelkan dan dihitung, namun dengan perkembangan teknologi maka kita bisa menghitung dengan menggunakan komputer, yang bisa membantu menghitung tanpa 'kelelahan'.
Dalam memodelkan tidak hanya diperlukan persamaan kalkulus namun perintah-perintah yang dimengerti oleh mesin komputer dikarenakan komputer memiliki bahasa yang berbeda, dalam kuliah numerik ini diajarkan metode yang akan bahasa yang digunakan seperti phyton atau c++ dengan buku pengantaranya 'numerical methods in engineering with python 3'.
Tugas :
1. Mempelajari python secara langsung.
2. Membuat program untuk menyelesaikan persamaan matematika seperti yang dicontohkan.
Tugas :
Persamaan f(1) = x^2-1/x-1
Menggunakan Python
- menggunakan limit
def f(x):
return x**2-1
def g(x):
return x-1
for i in range(1,10):
n=0.1 a=n**i
limit=f(1-a)/g(1-a) print (limit)
- Run
2.0
Minggu Ke-2 11 September 2019
Machine learning, contohnya google bisa mengetahui arah penggunaan search enginenya. Saat ini banyak menggunakan software dimana spesifikasinya berbeda seperti 32bit dan 64bit.
32 bit 64 bit
bit merupakan binary digit, OS komputer yang mampu menjalankan 32 bit disebut overflow, karena terbatas binay digitnya. Software-software engineering saat ini mengharuskan penggunaan 64bit untuk dapat menyokong penggunaan komputer yang mulai kompleks dan dapat membantu Machine Learning
menurut Pak Indra :
Orang yang belajar adalah orang yang sedang mengasah kecerdasan untuk tahap selanjutnya.
Dimana saat ini AI(artificial intelligence) yang merupakan hasil buah pemikiran manusia yang saat ini sedang banyak dikembangkan untuk membantu pekerjaan manusia yang terbatas dengan memori dan stamina dalam melakukan suatu pekerjaan. Namun yang membedakan antara manusia dan komputer adalah manusia memiliki hati yang ibarat sebagai dasar dari pemakaian manusia dan manusia memiliki kemaungan/keinginan.
Dalam perkembangan dunia industri, saat ini dikenal dengan yang namanya revolusi industri 4.0 mengenai IOT dimana pada mata kuliah ini dapat menjadi dasar dan bekal SDM Indonesia dalam menghadapi revolusi Industri 4.0, dan ddalam waktu dekat akan hadir pula revolusi Industri 5.0 yang juga telah dibicarakan yaitu mengenai empowering human yang dimana teknologi bukannya melemahkan manusia tapi membantu manusia. Teknologi bisa diibaratkan sebagai kuda ada yang liar dan jinak serta dapat membantu manusia. Yang dibutuhkan dalam memanfaatkan teknologi ini adalah pengetahuan mengenai hal yang akan kita gunakan dan sebgai anak mesin harus tahu dan harus dapat emporing your self.
Pak radon memberikan gambaran mengenai metode numerik pada pertemuan pertama dan mengenalkan dasar programming dalam kelas.
Materi dasar-dasar programing dengan python
Pada mata kuliah metode numerik dibutuhkan banyak energi untuk mengejar ketertinggalan untuk materi ajar yang menjadi pokok Mata Kuliah Metode Numerik ini.
Contoh Program
Strings & Tuples
rec = ('Fahmi','Ismail','Wibisono','(5,12,99)') NamaAwal,NamaTengah,NamaAkhir,tanggallahir = rec TahunLahir = tanggallahir[2] print(TahunLahir) name =rec[0]+' '+rec[1] print(name) print(rec[0:4])
a=[1.0,2.0,3.0] a.insert(0,0.0) print(len(a)) a[2:4]=[1.0,1.0,1.0]
- Strings
s = ’3 9 81’ print(s.split()) [’3’, ’9’, ’81’]
Minggu Ke-3 18 Sepetember 2019
'
Pada Kelas hari ini diadakan kuis untuk menguji kemampuan mahasiswa dalam menggunakan bahasa pemograman Python. Pak Indra memberi soal mengenai baris Fibonacci sebagai berikut
Baris Fibonacci : 1, 1, 2, 3, 5, 8, 13, ..., Un
Dari baris Fibonacci tersebut dibuat program untuk mencari besar Suku Ke-n dari baris tersebut
Program menggunakan For
Program menggunakan While
Minggu Ke-4 25 September 2019
Mempelajari suatu konsep seperti belajar integral di kalkulus menyelesaikan persamaan alajabar simultan.
Komputasional Modeling
Kenapa kita harus menghitung, kita harus memastikan yang kita design mampu bekerja sesuai keinginan kita, contohnya mampu menahan beban dan memiliki efisiensi yang kita inginkan
namun kita tidak dapat menghitung semua secara eksak, kita hanya dapat melakukan pendekatan modeling merupakan suatu representasi merupakan suatu objek
di dunia ini untuk dapat mendefinisikan model adalah asumsi simplifikasi dan representasi
kalo semua basic ilmu teknik itu semua basisnnya mechanical.
Minggu Ke-5 2 Oktober 2019
Pada pertemuan ke 5 ini belajar bersama asisten Dosen mengenai Python untuk mempelajari penggunaan Python untuk penggunaan di Kelas Metode Numerik Ini. Python merupakan salah satu bahasa yang banyak digunakan saat ini karena bentuk syntax-nya yang mudah dipahami. Dan untuk dapat menokong Revolusi Industri 4.0 pembelajaran bahasa pemograman akan sangat dibutuhkan
Minggu Ke-6 9 Oktober 2019
Pada pertemuan minggu ke 6 ini belajar mengenai pemecahan masalah aljabar. Dalam masalah matematika terutama aljabar pada umumnya banyak dipakai untuk memodelkan suatu permasalahan fisika dan pada saat ini komputer memiliki peran dalam pemodelan masalah tersebut. Dalam penyelesaian komputer berguna sebagai alat bantu karena komputer dapat diandalkan dalam operasi berulang dan konstan.
Alur teknik penyelesaian masalah Aljabar
1. Metode Eliminasi
2. Metode Gauss
3. Trial & Error
Minggu ke-7 16 Oktober 2019 - KUIS
Pada kelas ini diadakan KUIS. untuk menguji pemahaman kami terhadap masalah aljabar pada kelas metode numerik ini dan Kuis mengambil contoh soal dari buku
Problem Set 2.1 no.6
Problem Set 7.1 no.2
UTS
Muhasabah
NO.A Kesetimbangan Tegangan Tali
- Soal A dimana terdapat 4 buah benda pada sebuah sistem katrol
- dimana terdapat 3 benda pada bidang miring dan 1 benda lagi tergantung pada tali
- benda 1, 2, & 3 berada pada bidang miring dimana sistem dianggap setimbang dan gesekan dapat diabaikan
- Mencari besar dari tegangan tali dari sistem benda pada soal no 1
Mengasumsikan dan Menentukan besaran percepatan gravitasinya dan besar massa dari ke-empat benda tersebut g=eval(input("Besar g: "))
- Menentukan nilai massa benda 4
m4=eval(input("Besar massa m4 : "))
- Menentukan nilai massa benda 3
m3=eval(input("Besar massa m3 : "))
- Menentukan nilai massa benda 2
m2=eval(input("Besar massa m2 : "))
- Menentukan nilai massa benda 1
m1=eval(input("Besar massa m1 : "))
- Pada sistem dianggap setimbang dimana tidak bergerak dan dapat dianggap SF=0
- W1+W2+W3-W4=0
- SinA(m1+m2+m3)-m4=0
sinA=m4/(m3+m2+m1)
- Menghitung nilai T3
- F=0
- T3-m4*g=0
T3=m4*g
- Menghitung nilai T2
- F=0
- T2-T3+(m3*g*sinA)
T2=T3-(m3*g*sinA)
- Menghitung nilai T1
- F=0
- T1-(m1*g*sinA)=0
T1=m1*g*sinA
- print nilai T3
print("Besar Tegangan tali 3 adalah :",float(T3),"N")
- print nilai T2
print("Besar Tegangan tali 2 adalah :",float(T2),"N")
- print nilai T1
print("Besar Tegangan tali 1 adalah :",float(T1),"N")
VIDEO PRESENTASI
No.B Mobil
- mobil melaju dari posisi diam hingga ke top speednya dengan percepatan a
- kemudian besar gesekan dan hambatan yang terjadi mobil diperhitungkan
- Membuat input untuk mengsumsikan besar nilai yang terjadi pada sistm
- input untuk koefisien hambatan mobil terhadap udara dimana semakin cepat maka akan semakin besar pula hambatannya
m = float(input("massa mobil (kg): ")) g = float(input("percepatan gravitasi (m/s^2): ")) a = float(input("percepatan mobil (m/s^2) : ")) cd = float(input("koefisien drag udara : ")) cg = float(input("koefisien gesek jalan : ")) v0 = 0 #kecepatan awal t0 = 0 #waktu awal dt = 1 # tinggi step atau waktu error = 100 p = a - g * cg q = cd / m
lst = []
def dvdt(t0, v0):
return p - (q * (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 # persentase error v0 = v1 lst.append(v1)
waktu = len(lst)
print("waktu untuk mencapai top speed adalah: ", waktu + 1, "sekon") print("top speednya adalah: ", v1 , "m/s")
CARA RUNGE KUTTA
- Buat perintah input
a = input ("nilai x0 = ") b = input ("nilai y = ") c = input ("nilai h = ") x0 = int(a) y= int(b) x= float(c) h= float(d)
- definisakan persamaan f(x,y)
def dydx(x,y):
return ((x**2 -4*y))
- menggunakan iterasi dengan step h
def rungekutta(x0, y0, x, h):
n = (int)((x - x0)/h) y = y0 for i in range(1, n+1): "gunakan persamaan runge kutta untuk mencari nilai dari y" #persamaan hk1 k2 k3 k4 pada runge kutta 4 th open 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)
#nilai y y=y+(1.0/6.0)*(k1+2*k2+2*k3+k4)
#pembaruan nilai x x0=x0+h return y
VIDEO PRESENTASI
Pertemuan Ke-8 30 Oktober 2019
Membuat persamaan untuk belajar runge kutta
Asumsi
F = 100 m = 10 #massa g = float (input("Percepatan gravitasi adalah: ")) miu = float (input("Koefisien gesek adalah: ")) Cd = float (input("Koefisien drag adalah: ")) v0 = float (input("Kecepatan awal :")) vf = float (input("Kecepatan akhir :")) Ff = m*g*miu Fd = (Cd*v0**(3/2)) #rumus gaya drag a2 = (F-Fd-Ff/m) def dtdtv(t, y):
return((m)/(F - m*g*miu - Cd*v0**(3/2)))
t = 0 h = 0.01 def rungekutta(v0, t0, vf, h):
n = (int)((vf - v0)/h) t = t0 for i in range(1, n + 1): k1 = h * dtdtv(v0, t) k2 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k1) k3 = h * dtdtv(v0 + 0.5 * h, t + 0.5 * k2) k4 = h * dtdtv(v0 + h, t + k3) t = t + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) v0 = v0 + h return t
tf = rungekutta(v0, t, vf, h) print('Waktu yang dibutuhkan hingga mencapai top speed adalah',tf)
Minggu ke-9 30 Oktober 2019'
Belajar pemodelan fisika dengan metode numerik runge kutta
Minggu ke-10 6 November 2019
Pada pertemuan kali ini belajar Mengenai software CFD untuk mencari nilai drag & lift pada suatu objek
== Simulasi CFD Pada Mobil ==
Tugas ini merupakan tugas untuk melakukan simulasi aliran udara pada permukaan mobil untuk mendapatkan nilai drag force menggunakan software CFDSOF-NG. CFDSOF-NG merupakan aplikasi berbasis metode numerik yang berfungsi untuk menganalisa aliran fluida pada suatu permukaan benda. Langkah-langkah untuk melakukan analisis CFD menggunakan CFDSOF-NG adalah sebagai berikut:
1. Mengimport file .stl ke dalam software CFDSOF-NG
2. Membuat mesh dari file .stl
3. Run solve pada software CFDSOF-NG
4. Melakukan analisis lebih lanjut dengan menggunakan software paraview
Minggu ke-11 13 November 2019
Pada pertemuan kali ini mempelajari mengelola data dengan metode regresi linear, curve fitting, least square. Pengolahan data penting untuk membuat paper, skripsi.
kemudian belajar mengenai Optimasi
Optimasi adalah proses untuk mencapai hasil yang ideal atau optimasi (nilai efektif yang dapat dicapai). Optimasi dapat diartikan sebagai suatu bentuk mengoptimalkan sesuatu hal yang sudah ada, ataupun merancang dan membuat sesusatu secara optimal. Optimasi tanpa batasan yang dibahas pada bagian ini lebih lebih sulitdibandingkan sebelumnya karena variabel yang dibahas lebih dari satu .
Minggu ke-12 20 November 2019
Pada pertemuan kali ini kelas diajarkan menggunakan software untuk mensimulasikan fluida.Yaitu dengan menggunakan software CFDSOF,CFDSOF merupakan software yang digunakan untuk mendapatkan hasil simulasi aliran fluida dan thermal pada sebuah model/ design CAD (Computer Aided Design) salah satunya adalah Inventor dan Solidworks. Dalam kelas diajarkan cara menggunakannya dengan contoh menghitung drag dari suatu model mobil.
Tugas ini mengenai optimasi pada airfoil menggunakan metode numerik. Mula-mula kami melakukan analisis menggunakan CFDSOF-NG untuk mendapatkan nilai lift force dan drag force. Setelah itu didapatkan grafik berdasarkan setiap perubahan AoA. Kemudian dilakukan optimasi dengan metode numerik untuk mendapatkan nilai maksimal dari gaya drag dan lif berdasarkan AoA. Berdasarkan hasil optimasi didapatkan hasil berupa sudut optimal dari pesawat yang mana akan meningkatkan performa dan meminimalisir gaya gesekan.
Kemudian kami diberikan tugas mengenai simulasi airfoil dengan menggunakan airfoil buatan sendiri ataupun airfoil yang sudah ada. Simulasi dilakukan dengan merubah sudut Angle of Attack (AoA) dalam kecepatan tertentu. AoA yang digunakan mulai dari -15 derajat sampai 90 derajat, dengan increment 15 derajat. Tugas ini nantinya akan dipresentasikan pada pertemuan selanjutnya, sehingga harus dibuat dalam bentuk powerpoint
Minggu ke-13 27 November 2019
Pada hari ini dilakukan Kuis Dadakan dan dilakukan presentasi mengenai optimasi
Tugas Optimasi CFD Airfoil
Minggu ke-14 4 Desember 2019
Pada hari ini masih melanjutkan presentasi mengenai Optimasi dan membahas sedikit mengenai Artificial Neural Network
Minggu ke-15 11 Desember 2019
Pada Hari ini kembali melanjutkan belajar mengenai ANN (Artificial Neural Network)
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.
Langkah -langkah dalam membuat ANN
1. Data Preprocessing
2. Add input layer
3. Random w init
4. Add Hidden Layers
5. Select Optimizer, Loss, and Performance Metrics
6. Compile the model
7. use model.fit to train the model
8. Evaluate the model
9. Adjust optimization parameters or model if needed
Forwardpropagaton
Backpropagation
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 JST. Backpopagation dikatakan sebagai algoritma pelatihan multilayer karena Backpropagation memiliki tiga layer dalam proses pelatihannya, yaitu input layer, hidden layer dan output layer, dimana backpropagation ini merupakan perkembangan dari single layer network (Jaringan Layar Tunggal) yang memiliki dua layer, yaitu input layer dan output layer. Dengan adanya hidden layer pada backpropagation dapat menyebabkan besarnya tingkat error pada backpropagation lebih kecil dibanding tingkat error pada single layer network. Hal tersebut dikarenakan hidden layer pada backpropagation berfungsi sebagai tempat untuk mengupdate dan menyesuaikan bobot, sehingga didapatkan nilai bobot yang baru yang bisa diarahkan mendekati dengan target output yang diinginkan.
Secara umum algoritmanya terdiri dari tiga langkah utama, yaitu :
• Pengambilan input
• Penelusuran error
• 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.