Difference between revisions of "Rezky Alfian Fatra"

From ccitonlinewiki
Jump to: navigation, search
Line 82: Line 82:
  
 
'''Tugas 3'''
 
'''Tugas 3'''
*Berikut adalah soal untuk tugas kali ini:[[File:Soal Trusses 2 Jos.jpg|700px|thumb|Right]]
+
*Berikut adalah soal untuk tugas kali ini:
 
*Penyelesaian:
 
*Penyelesaian:
 +
[[File:Soal Trusses 2 Rezky.jpg|480px|thumb|Soal Trusses]]
 +
 +
'''Persamaan'''
 +
 +
class Trusses_Tugas3_RezkyAlfianFatra
 +
 +
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_Tugas3_RezkyAlfianFatra;
 +
 +
'''Grafik Displacement'''
 +
[[File:Grafik Displacement Rezky.jpg|480px|Center]]
 +
 +
 +
'''Grafik Reaction Forces'''
 +
[[File:Trusses 2 Reactiion Rezky.jpg|480px|Center]]
 +
 +
 +
 +
'''Fungsi Panggil'''
 +
{| class="wikitable"
 +
|-
 +
| style='border-style: none  none  solid  solid;' |
 +
''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;
 +
 +
| style="width: 20cm;"|
 +
''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;
 +
 +
| style="width: 20cm;"| 
 +
''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;
 +
 +
|}
 +
 +
'''Gauss Jordan'''
 +
{| class="wikitable"
 +
|-
 +
| style='border-style: none  none  solid  solid;' |
 +
 +
function Gauss_Jordan
 +
input Integer N;
 +
input Real A[N,N];
 +
input Real B[N];
 +
output Real X[N];
 +
Real float_error = 10e-10;
 +
 +
algorithm
 +
X:=Modelica.Math.Matrices.solve(A,B);
 +
 +
for i in 1:N loop
 +
  if abs(X[i]) <= float_error then
 +
    X[i] := 0;
 +
  end if;
 +
end for;
 +
 +
end Gauss_Jordan;

Revision as of 15:02, 2 December 2020

Profile
Center
Nama Lengkap Rezky Alfian Fatra
NPM 1906379043
Jurusan Teknik Mesin


Rezky Alfian Fatra (lahir di Jakarta, 13 November 2000; umur 20 tahun) adalah seorang mahasiswa yang mengambil jurusan Teknik Mesin di Universitas Indonesia angkatan 2019. Selain menjalankan tugas utama menjadi seorang mahasiswa, Rezky juga dikenal aktif berkontribusi di Lembaga Dakwah Kampus,khususnya di IMM yang memberikan wawasan berupa ilmu keagamaan kepada mahasiswa Departemen Teknik Mesin.Salah satu hal yang dilakukan oleh Rezky adalah dengan membuat program kerja yang menjadi wadah bagi mahasiswa Departemen Teknik Mesin untuk meningkatkan wawasan maupun kemampuan keagamaanya.

Aktivitas

Rezky Alfian Fatra atau panggilan akrabnya adalah Ekky adalah seorang mahasiswa yang aktif dalam melakukan kontribusi semenjak SMA, khususnya dalam bidang dakwah agar bisa memberikan manfaat bagi orang banyak.Ini terbukti dengan banyaknya organisasi rohani islam yang pernah ia jalani, seperti :

  • Staff Syi'ar Dakwah Rohis SMA Negeri 52 Jakarta (2016-2017)
  • Kepala Divisi Syi'ar Dakwah Rohis SMA Negeri 52 Jakarta (2017-2018)
  • Ketua MIC IMM FTUI (2019-sekarang)
  • Steering Committee KIAS Departemen FUSI FTUI (September 2020-Oktober 2020)

Sangat besar harapan saya agar terus bisa berkontribusi memberikan kebaikan yang bisa bermanfaat dan berguna bagi orang banyak, seperti yang pernah disabdakan oleh Nabi Muhammad SAW : "Sebaik-baiknya manusia adalah manusia yang bermanfaat untuk orang lain."

Dalam aktivitasnya menjadi seorang pendakwah yang memberikan manfaat bagi orang banyak, Rezky juga tidak lupa untuk terus menambah ilmunya dengan mengikuti kajian keagamaan yang diselenggarakan oleh Manazil Ilmi Insani (Meninggikan Ilmu Manusia)


Metode Numerik

Metode numerik merupakan sebuah metode yang digunakan untuk menyelesaikan persoalan dimana perhitungan yang dilakukan secara analitik sudah sulit atau bahkan tidak bisa untuk dilakukan.Metode numerik ini berawal dari sebuah pemikiran bahwa permasalahan dapat diselesaikan dengan menggunakan pendekatan-pendekatan yang dapat dipertanggungjawabkan dengan metode analitik.Dengan menggunakan metode numerik, kita bisa mendapatkan hasil yang cepat dan tepat (meskipun dengan menggunakan pendekatan).

Pada kelas Metode Numerik-02 semester ganjil 2020/2021, dari awal perkuliahan sampai UTS diisi oleh Bapak Dr. Ir. Engkos A. Kosasih, M.T. Dimana pada pertemuan yang telah dilakukan telah membahas materi seperti:

  • Pseudocode
  • Sistem Persamaan
  • Turunan Numerik
  • Metode Newton Rhapson, Secant, dan Bisection
  • Regresi Linear
  • Interpolasi

Setelah UTS pembelajaran diisi oleh Bapak Dr. Ir. Ahmad Indra Siswantara

Pertemuan Perkuliahan

Pertemuan Pertama (Rabu, 11 November 2020)

Pada pertemuan pertama yang diisi oleh Bapak Dr. Ir. Ahmad Indra Siswantara. Mahasiswa dijelaskan mengenai esensi atau tujuan pembelajaran metode numerik, yaitu:

1. Memahami konsep-konsep dan prinsip-prinsip dasar dalam metode numerik seperti:Persamaan algoritma, aljabar, pencocokan kurva, persamaan diferensial parsial, dan lainnya

2. Mengerti dan mampu menerapkan pemahaman atau aplikasi terhadap konsep metode numerik

3. Mampu menerapkan metode numerik dalam hal terkait persoalan keteknikan

4. Mendapat added value (nilai tambah)/adab sehingga mahasiswa menjadi orang yang memiliki budi pekerti yang baik

Selain empat poin yang telah disebutkan, Mahasiswa juga mendapatkan pelajaran terkait penggunaan aplikasi OpenModelica. Dimana Mahasiswa dijelaskan dengan sangat sistematis mengenai penggunaan sederhana OpenModelica.Bahkan Bapak Dr. Ir. Ahmad Indra Siswantara juga menjelaskan bahwa komputer memiliki limit atau batasan yang tidak dapat dilampauinya.Pada misalnya saja komputer tidak mampu menentukan nilai 1/0 yang hanya Tuhan yang tahu nilainya. Pelajaran atau hikmah yang dapat diambil dari kasus ini adalah manusia haruslah beriman dengan Rabb-Nya dan jangan pernah melupakan Tuhan yang mengetahui dan berkuasa atas segala sesuatu.

Tugas minggu pertama

Pertemuan Kedua (Rabu, 18 November 2020)

Pada pertemuan minggu ke-2, beberapa mahasiswa dimintai untuk mempresentasikan hasil tugas yang diberikan pada minggu pertama.Selain itu, pada pertemuan kali ini, Bapak Dr. Ir. Ahmad Indra Siswantara juga mengajari mahasiswa mengenai fitur class dan function.Alasan Bapak Dr. Ir. Ahmad Indra Siswantara memilih untuk menggunakan open modelica, yaitu karena aplikasi ini lebih mudah untuk digunakan (tidak butuh spesifikasi yang tinggi) dan bisa digunakan secara gratis oleh mahasiswa.

Untuk tugas minggu ke dua, mahasiswa diminta untuk mempelajari lagi open modelica dan melakukan sistem panggil class dan function.Berikut tugas saya dengan menggunakan contoh soal Aljabar Linier dengan ordo 4x4

Pertemuan Ketiga (Rabu, 25 November 2020)

Tugas 3

  • Berikut adalah soal untuk tugas kali ini:
  • Penyelesaian:
Soal Trusses

Persamaan

class Trusses_Tugas3_RezkyAlfianFatra

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_Tugas3_RezkyAlfianFatra;

Grafik Displacement Center


Grafik Reaction Forces Center


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;

Gauss Jordan

function Gauss_Jordan input Integer N; input Real A[N,N]; input Real B[N]; output Real X[N]; Real float_error = 10e-10;

algorithm X:=Modelica.Math.Matrices.solve(A,B);

for i in 1:N loop

 if abs(X[i]) <= float_error then
   X[i] := 0;
 end if;

end for;

end Gauss_Jordan;