Diyas Prawara Mahdi
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Contents
Data Pribadi
Nama: Diyas Prawara Mahdi
NPM: 1906301173
TTL: Jakarta, 5 April 2002
Jurusan: Teknik Mesin
Angkatan: 2019
Email: diyas.prawara@ui.ac.id
Perkenalan Singkat
Nama saya Diyas Prawara Mahdi mahasiswa Teknik Mesin Universitas Indonesia 2019 dan saya adalah salah satu ciptaan terbaik dari Tuhan Yang Maha Esa karena pada prinsipnya Tuhan Yang Maha Esa itu mendesain manusia dengan sebaik-baiknya makhluk.
Saya memilih jurusan teknik mesin dikarenakan saya memiliki ketertarikan di bidang otomotif dan juga powerplant. Alasan lainnya adalah ayah saya yang juga merupakan lulusan teknik mesin ui dan Prof. Indra juga mungkin mengenalnya karena merupakan anak bimbingan Bapak dahulu sehingga menjadi motivasi saya.
Pengalaman Pemograman
Sebelumnya saya belum pernah mempelajari tentang pemograman secara serius namun saya senang membaca-baca buku tentang tutorial menggunakan bahasa pemograman seperti pyton dan lainnya walaupun tidak sampai ke level paham sepenuhnya sehingga saya sudah mendapat gambaran kedepannya akan mempelajari hal apa saja.
Minggu 1 11-11-2020 Metode Numerik
Pada tanggal 11-11-2020, Bapak Dr. Ir. Ahmad Indra Siswantara memberikan penjelasan terlebih dahulu tentang apa itu metode numerik dan apa pentingnya metode numerik. Beliau juga menjelaskan bagaimana cara menggunakan Wiki AIR (Ahmad Indra Research Group). Kemudian kami diajak berdiskusi tentang apa saja manfaat dari mempelajari metode numerik untuk kehidupan dan dunia kerja. Lalu, beliau menjabarkan tentang 4 poin penting penilaian dari beliau yaitu:
1. Matching dengan tujuan belajar: memahami konsep dan prinsip dasar di dalam metnum
2. Dapat menerapkan pemahaman terhadap konsep di dalam permodelan numerik (skill)
3. Mampu menerapkan metnum di dalam persoalan keteknikan (skill)
4. Untuk mencapai poin 1,2,3, harus memiliki hal terpenting, yaitu dengan cara moral value (adab)
Setelah itu, beliau memberikan gambaran penggunaan aplikasi OpenModelica dan mengingatkan kepada kita semua bahwa komputer hanyalah sebuah dummy dan kita (manusia) yang dapat mengatur bagaimana komputer itu bekerja. Sebelum kelas berakhir, beliau memberikan kita dua tugas untuk minggu depan, yaitu:
1. Mempelajari Modelica dari Youtube
2. Membuat video bagaimana kita mempelajari Modelica kemudian diupload ke channel youtube dan cantumkan link nya di wiki air masing masing
Tugas Minggu 1
Dari tugas yang diberikan yaitu mempelajari bagaimana menggunakan aplikasi OpenModelica. OpenModelica adalah aplikasi yang dapat melakukan simulation dan modeling. Sumber ajar yang saya gunakan yaitu melalui platform youtube dan dapat diakses melalui link:
- https://www.youtube.com/watch?v=SW5Eclf1tRs
- https://www.youtube.com/watch?v=m0Ahs8fEN28
- https://www.youtube.com/watch?v=GhtBMIlO70w
Setelah saya mempelajari bagaimana cara kerja dari OpenModelica, saya lalu mencoba menggunakan aplikasi tersebut sekaligus mencoba mengerjakan perhitungan sederhana yang dapat diakses melalui link:
Minggu 2 18-11-2020 Metode Numerik
Pada minggu kedua, Pak Dai mengawali pertemuan dengan memberikan kata-kata bahwa kita sebagai manusia harus selalu berusaha agar membuat hari ini lebih baik dibanding hari sebelumnya. Kemudian Pak Dai meminta kepada kami untuk memberikan review tentang apa saja manfaat yang dapat diambil dari mempelajari materi aljabar linear. Lalu kita diminta untuk menghubungkan manfaat tersebut dengan metode numerik. Kemudian kami diminta untuk menayangkan hasil pembuatan tugas 1 di OpenModelica kemudian bebas menceritakan atau bertanya tentang hal yang kurang dipahami. Setelah itu, Pak Dai menjelaskan tentang alasan mengajarkan kepada kami aplikasi OpenModelica yaitu karena lisensinya gratis, memiliki fitur yang lengkap, dan mudah digunakan karena aplikasi OpenModelica itu sendiri lebih ke arah bahasa pemodelan sehingga memiliki interface yang lebih mudah digunakan.
Pak Dai kemudian mengajarkan kepada kami salah satu fitur yang ada di OpenModelica, yaitu fitur yang dapan menghubungkan Function dengan Class sehingga dapat memudahkan kami dalam menggunakan OpenModelica. Setelah itu, kami diberikan tugas yaitu membuat sebuah fungsi persamaan aljabar simultan dengan variabel array lalu membuat Class dan memanggil Class ke dalam fungsi tersebut. Hasil pembuatan tugas ini dapat dilihat pada video berikut:
Minggu 3 25-11-2020 Metode Numerik
Pada minggu ketiga, Pak Dai mengajak kita untuk membahas apa saja maanfaat aplikasi metode numerik dalam permasalahan di lingkup teknik. Pak Dai juga menjelaskan software yang dapat digunakan untuk menghitung aplikasi metode numerik di lingkup teknik seperti CFD. Stokastik, dan FEA. Saat kita akan melakukan operasi perhitungan pada masalah teknik, ada urutan agar hasil sesuai, yaitu
1. Melakukan analisis
2. Membuat model matematis
3. Menggunakan software untuk melakukan perhitungan metode numerik berbasis permasalahan teknik
4. Hasil dari perhitungan keluar
Pada minggu ini, ada dua tugas yang diberikan. Yang pertama adalah tugas sebelum kelas dimulai dan tugas homework. Keduanya menggunakan permasalahan Truss.
TUGAS SEBELUM KELAS
Persamaan
model Trusses parameter Integer N=10; //Global matrice = 2*points connected parameter Real A=8; parameter Real E=1.9e6; Real G[N,N]; //global Real Ginitial[N,N]; //global Real Sol[N]; //global dispplacement Real X[N]={0,0,0,0,0,0,0,-500,0,-500}; Real R[N]; //global reaction force Real SolMat[N,1]; Real XMat[N,1]; //boundary coundition Integer b1=1; Integer b2=3; //truss 1 parameter Real X1=0; //degree between truss Real k1=A*E/36; Real K1[4,4]; //stiffness matrice Integer p1a=1; Integer p1b=2; Real G1[N,N]; //truss 2 parameter Real X2=135; //degree between truss Real k2=A*E/50.912; Real K2[4,4]; //stiffness matrice Integer p2a=2; Integer p2b=3; Real G2[N,N]; //truss 3 parameter Real X3=0; //degree between truss Real k3=A*E/36; Real K3[4,4]; //stiffness matrice Integer p3a=3; Integer p3b=4; Real G3[N,N]; //truss 4 parameter Real X4=90; //degree between truss Real k4=A*E/36; Real K4[4,4]; //stiffness matrice Integer p4a=2; Integer p4b=4; Real G4[N,N]; //truss 5 parameter Real X5=45; //degree between truss Real k5=A*E/50.912; Real K5[4,4]; //stiffness matrice Integer p5a=2; Integer p5b=5; Real G5[N,N]; //truss 6 parameter Real X6=0; //degree between truss Real k6=A*E/36; Real K6[4,4]; //stiffness matrice Integer p6a=4; Integer p6b=5; Real G6[N,N]; /* for each truss, please ensure pXa is lower then pXb (X represents truss element number) */ algorithm //creating global matrice K1:=Stiffness_Matrices(X1); G1:=k1*Local_Global(K1,N,p1a,p1b); K2:=Stiffness_Matrices(X2); G2:=k2*Local_Global(K2,N,p2a,p2b); K3:=Stiffness_Matrices(X3); G3:=k3*Local_Global(K3,N,p3a,p3b); K4:=Stiffness_Matrices(X4); G4:=k4*Local_Global(K4,N,p4a,p4b); K5:=Stiffness_Matrices(X5); G5:=k5*Local_Global(K5,N,p5a,p5b); K6:=Stiffness_Matrices(X6); G6:=k6*Local_Global(K6,N,p6a,p6b); G:=G1+G2+G3+G4+G5+G6; Ginitial:=G; //implementing boundary condition for i in 1:N loop G[2*b1-1,i]:=0; G[2*b1,i]:=0; G[2*b2-1,i]:=0; G[2*b2,i]:=0; end for; G[2*b1-1,2*b1-1]:=1; G[2*b1,2*b1]:=1; G[2*b2-1,2*b2-1]:=1; G[2*b2,2*b2]:=1; //solving displacement Sol:=Gauss_Jordan(N,G,X); //solving reaction force SolMat:=matrix(Sol); XMat:=matrix(X); R:=Reaction_Trusses(N,Ginitial,SolMat,XMat); end Trusses;
|}
Trusses Problem 2 (Homework)
Persamaan class Trusses_PR_Week3 parameter Integer N=8; //Global matrice = 2*points connected parameter Real A=0.001; //Area m2 parameter Real E=200e9; //Pa Real G[N,N]; //global Real Ginitial[N,N]; //global Real Sol[N]; //global dispplacement Real X[N]={0,0,-1035.2762,-3863.7033,0,0,-1035.2762,-3863.7033}; Real R[N]; //global reaction force Real SolMat[N,1]; Real XMat[N,1]; //boundary condition Integer b1=1; Integer b2=3; //truss 1 parameter Real X1=0; //degree between truss Real k1=A*E/1; Real K1[4,4]; //stiffness matrice Integer p1a=1; Integer p1b=2; Real G1[N,N]; //truss 2 parameter Real X2=0; //degree between truss Real k2=A*E/1; Real K2[4,4]; //stiffness matrice Integer p2a=2; Integer p2b=3; Real G2[N,N]; //truss 3 parameter Real X3=90; //degree between truss Real k3=A*E/1.25; Real K3[4,4]; //stiffness matrice Integer p3a=2; Integer p3b=4; Real G3[N,N]; //truss 4 parameter Real X4=90+38.6598; //degree between truss Real k4=A*E/1.6; Real K4[4,4]; //stiffness matrice Integer p4a=1; Integer p4b=4; Real G4[N,N]; //truss 5 parameter Real X5=90-38.6598; //degree between truss Real k5=A*E/1.6; Real K5[4,4]; //stiffness matrice Integer p5a=3; Integer p5b=4; Real G5[N,N]; /* for each truss, please ensure pXa is lower then pXb (X represents truss element number) */ algorithm //creating global matrice K1:=Stiffness_Matrices(X1); G1:=k1*Local_Global(K1,N,p1a,p1b); K2:=Stiffness_Matrices(X2); G2:=k2*Local_Global(K2,N,p2a,p2b); K3:=Stiffness_Matrices(X3); G3:=k3*Local_Global(K3,N,p3a,p3b); K4:=Stiffness_Matrices(X4); G4:=k4*Local_Global(K4,N,p4a,p4b); K5:=Stiffness_Matrices(X5); G5:=k5*Local_Global(K5,N,p5a,p5b); G:=G1+G2+G3+G4+G5; Ginitial:=G; //implementing boundary condition for i in 1:N loop G[2*b1-1,i]:=0; G[2*b1,i]:=0; G[2*b2-1,i]:=0; G[2*b2,i]:=0; end for; G[2*b1-1,2*b1-1]:=1; G[2*b1,2*b1]:=1; G[2*b2-1,2*b2-1]:=1; G[2*b2,2*b2]:=1; //solving displacement Sol:=Gauss_Jordan(N,G,X); //solving reaction force SolMat:=matrix(Sol); XMat:=matrix(X); R:=Reaction_Trusses(N,Ginitial,SolMat,XMat); end Trusses_PR_Week_3; |
Fungsi Panggil
Matrice Transformation function Stiffness_Matrices input Real A; Real Y; output Real X[4,4]; Real float_error = 10e-10; final constant Real pi=2*Modelica.Math.asin(1.0); algorithm Y:=A/180*pi; X:=[(Modelica.Math.cos(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.cos(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y); Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.sin(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.sin(Y))^2; -(Modelica.Math.cos(Y))^2,-Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.cos(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y); -Modelica.Math.cos(Y)*Modelica.Math.sin(Y),-(Modelica.Math.sin(Y))^2,Modelica.Math.cos(Y)*Modelica.Math.sin(Y),(Modelica.Math.sin(Y))^2]; for i in 1:4 loop for j in 1:4 loop if abs(X[i,j]) <= float_error then X[i,j] := 0; end if; end for; end for; end Stiffness_Matrices; |
Global Element Matrice function Local_Global input Real Y[4,4]; input Integer B; input Integer p1; input Integer p2; output Real G[B,B]; algorithm for i in 1:B loop for j in 1:B loop G[i,j]:=0; end for; end for; G[2*p1,2*p1]:=Y[2,2]; G[2*p1-1,2*p1-1]:=Y[1,1]; G[2*p1,2*p1-1]:=Y[2,1]; G[2*p1-1,2*p1]:=Y[1,2]; G[2*p2,2*p2]:=Y[4,4]; G[2*p2-1,2*p2-1]:=Y[3,3]; G[2*p2,2*p2-1]:=Y[4,3]; G[2*p2-1,2*p2]:=Y[3,4]; G[2*p2,2*p1]:=Y[4,2]; G[2*p2-1,2*p1-1]:=Y[3,1]; G[2*p2,2*p1-1]:=Y[4,1]; G[2*p2-1,2*p1]:=Y[3,2]; G[2*p1,2*p2]:=Y[2,4]; G[2*p1-1,2*p2-1]:=Y[1,3]; G[2*p1,2*p2-1]:=Y[2,3]; G[2*p1-1,2*p2]:=Y[1,4]; end Local_Global; |
Reaction Matrice Equation function Reaction_Trusses input Integer N; input Real A[N,N]; input Real B[N,1]; input Real C[N,1]; Real X[N,1]; output Real Sol[N]; Real float_error = 10e-10; algorithm X:=A*B-C; for i in 1:N loop if abs(X[i,1]) <= float_error then X[i,1] := 0; end if; end for; for i in 1:N loop Sol[i]:=X[i,1]; end for; end Reaction_Trusses; |
Minggu 4 02-12-2020 Metode Numerik
Pada pertemuan hari ini, diawali dengan Pak Dai memberikan motivasi bahwa kita dalam mempelajari metode numerik harus sampai memahami tentang hal-halnya. Setelah itu kami melakukan diskusi tentang bagaimana pengerjaannya dari hasil kerja kami tentang tugas sebelumnya. Kemudian dilanjutkan dengan kami mengerjakan kuis tentang flowchart dengan waktu pengerjaan selama satu jam.
KUIS FLOWCHART DAN CLASS DIAGRAM