Difference between revisions of "Fakhri Hawari Muhammad"

From ccitonlinewiki
Jump to: navigation, search
Line 145: Line 145:
 
   
 
   
 
  end BracketOptimal;
 
  end BracketOptimal;
 +
 +
== Tugas Besar ==
 +
Tema: Optimasi Struktur Batang 3D
 +
'''Langkah Pengerjaan'''
 +
1. Mencari persamaan defleksi dengan variabel A.E
 +
2. Mencari nilai maksimum A.E (Bisa dengan golden ratio maupun cara lain)
 +
3. Melakukan Curve Fitting (nilai A.E dengan Harga)
 +
4. Melakukan optimasi dari hasil persamaan curve fitting

Revision as of 15:01, 23 December 2020

Fakhrihawari.jpg

Nama saya Fakhri Hawari Muhammad. Saya biasa dipanggil fakhri atau hawari oleh teman-teman saya. Saya adalah mahasiswa teknik mesin universitas indonesia angkatan 2018. Saat ini saya berdomisili di Kota Depok. Saat ini saya sudah memasuki semester ke-5 dalam studi S-1 saya. Saya memilih teknik mesin karena saya rasa ilmu yang dipelajari teknik mesin akan terus digunakan dimasa mendatang dan dapat berkembang lebih luas.


Selama setengah semester di mata kuliah metode numerik ini, saya telah belajar mengenai turunan numerik, interpolasi, regresi, beberapa metode untuk mencari akar persamaan, dan juga diperkenalkan untuk membuat pseudocode.

Tujuan dari mata kuliah metode numerik ini antara lain adalah sebagai berikut,

  • Memahami konsep dan prinsip dasar dalam Metode Numerik
  • Dapat menerapkan pemahaman dari konsep yang ada di dalam permodelan numerik
  • Mampu menerapkan Metode Numerik dalam persoalan engineering
  • Mendapat nilai tambah (suatu value/ nilai moral) terhadap diri masing-masing

Pertemuan 1 (11/11/2020)

Pada kuliah 11 November 2020, Saya mempelajari dari penjelasan dan diskusi yang ada mengenai beberapa hal. Pertama, saya memahami bahwasanya dalam pembelajaran, apapun itu, kita seharusnya bukan saja memahami apa yang harus dipahami, tetapi juga harus mengetahui apa yang tidak kita pahami. Dengan begitu, kita dapat mengerti apa yang kurang dari diri kita dan menjadi refleksi diri serta memacu rasa ignin tahu. Kemudian dari contoh limit perhitungan di sebuah software, saya memahami bahwa secanggih apapun komputer tetap lebih pintar manusia dibaliknya karena komputer dan softwarenya hanyalah sebuah alat bantu. Saya juga memahami bahwa dengan adanya limit tersebut, seharusnya kita sebagai manusia bisa memanfaatkan peluang yang ada sebaik-baiknya. Jika software tersebut mencapai limit tertentu maka maksimalkanlah kemampuan komputer tersebut. Lalu saya juga memahami bahwa manusiapun ada limitnya, seperti 1/0 yang manusia tidak dapat mendefinisikannya. Maka yang tahu hanyalah tuhan sehingga sejatinya kita sebagai manusia tidaklah pantas untuk memisahkan ilmu pengetahuan dengan ketuhanan.

Tugas 1

  • Pada tugas pertama ini, Pak Dai meminta untuk mempelajari OpenModelica, kemudian memberikan penjelasan video terkait apa yang sudah dipelajari. Berikut video dari saya:

Pertemuan 2 (18/11/2020)

Pada Kuliah 18 November 2020, perkuliahan diawali dengan review mengenai tugas 1 dan apa saja yang dipelajari seminggu sebelumnya. Kemudian dijelaskan mengenai software openmodelica. Dibandingkan dengan program seperti python,c++,dsb, openmodelica cendrung lebih ke arah program permodelan, bukan program murni coding sehingga sangat cocok untuk menyelesaikan permasalahan-permasalahan yang berhubungan dengan dunia engineering. Openmodelica memiliki kekurangan yaitu ketika mensimulasikan akan cendrung lebih lama, hal ini disebabkan openmodelica harus menerjemahkan dari bahasa permodelan ke bahasa coding, kemudian ke bahasa mesin. Kemudian dijelaskan juga dasar-dasar openmodelica, seperti perbedaan 'parameter real', 'real', spesialisasi program, dan dijelaskan juga secara ringkas bagaimana contohnya untuk memanggil sebuah persamaan dari program fungsi ke program kelas. Selain itu, dari penjelasan teman-teman lainnya juga dipaparkan bahwa openmodelica juga banyak menyelesaikan permasalahan di sistem kontrol sebagaimana yang saya sebutkan di tugas 1. Di akhir kelas, bang Edo memberi sedikit penjelasan bahwa di openmodelica sebenernya sudah ada beberapa program yang sudah di rumuskan di library sehingga mempermudahkan kita untuk menyelesaikan persoalan, hanya memasukan inputnya saja.

Tugas 2

  • Pada tugas ini, Pak Dai meminta untuk mencoba menyelesaikan persamaan aljabar simultan dengan openmodelica dan dengan cara memanggil sebuah fungsi ke sebuah class. Persamaan yang saya gunakan pada kali ini saya dapat dari internet, yaitu:
Fakhri1.png

Lalu untuk video penjelasannya dapat dilihat dibawah ini,

Pertemuan 3 (25/11/2020)

Pada kuliah 25 November 2020, Sebagian besar waktu perkuliahan digunakan untuk sharing mengenai fungsi array oleh saudara Josiah dan terkait pembuatan program Eliminasi Gauss Jordan (dengan membuat fungsi sendiri) oleh saudara Christo. Kemudian dilanjutkan oleh penjelasan oleh Pak Dai mengenai penyelesaian permasalahan engineering. Dalam kasus realnya, ketika kita berhadapan dengan permasalahan engineering kita harus melakukan analisis permasalahan tersebut. Kemudian dari situ kita dapat membuat model matematisnya, sehingga dilangkah selanjutnya kita dapat menyelesaikannya dengan metode numerik untuk mempermudah penyelesaian. Selain itu saya dan yang lainnya juga diminta untuk mencoba menyelesaikan persoalaan yand ada di buku chapra dengan pseudocode yang sudah diberikan seperti berikut:

ChapraEGJcth.jpg

Untuk algoritma EGJ tersebut, saya sudah memahami dan bisa menerjemahkannya ke bahasa modelica, tetapi saya masih belum paham untuk pemrograman model keseluruhannya. Berikut pseudocode penyelesaian EGJ diatas ketika diubah ke bahasa modelica: // Forward Elimination

 for k in 1:(n-1) loop
 for i in (k+1):n loop
   factor := a[i,k] / a[k,k];
     for j in (k+1):n loop
      a[i,j] := a[i,j] - (factor * a[k,j]);
     end for;
     b[i] := b[i] - (factor * b[k]);
   end for;
 end for;
 // Back Substitution
 x[n] := b[n] / a[n,n];
 for i in (n-1):(-1) loop
   sum := b[i];
   for j in (i+1):n loop
     sum := sum - (a[i,j] * x[j]);
   end for;
   x[i] := sum / a[i,i];
 end for;


Tugas 3

  • Berikut adalah soal untuk tugas kali ini:
    Soal statur.png
  • Penyelesaian:
FH1.png
FH2.png

Kemudian untuk penyelesaian matriks diatas (mencari defleksi) dapat diselesaikan dengan OpenModelica. Berikut program yang saya buat:

FHM1.png

Lalu didapatkan hasil defleksinya (U) seperti yang tertera dibawah ini:

FHM2.png

Selanjutnya adalah mencari Gaya-gaya reaksi yang terjadi di tiap node. Berikut adalah persamaan yang dapat digunakan:

FH3.png

Lalu saya membuat programnya di Modelica seperti dibawah ini:

FHM3.png

Sehingga setelah dilakukan simulasi, didapatkan hasil (Gaya Reaksi tiap node) sebagai berikut:

FHM4.png

Pertemuan 4 (02/12/2020)

Quiz Diagram Class dan Flow Chart

Quizfakhri1.jpg

Tugas 4

  • Pada tugas kali ini, diminta untuk menyelesaikan persoalan berikut:
Tugas4fhm.png

Flowchart:

34199.jpg

Berikut video penjelasan penyelesaiannya:

Pertemuan 5 (14/12/2020)

Pertemuan ini merupakan pengganti dari minggu sebelumnya yang kelas ditiadakan karena libur. Pada pertemuan ini lebih ke arah review mengenai penyelesaian space Trusses dan juga mulai di briefing singkat mengenai tugas besar dan materi optimasi oleh pak Dai.

Pertemuan 6 (16/12/2020)

Aplikasi Metode Numerik dalam kasus optimasi. Pada pertemuan ini dikenalkan dengan contoh sederhana terkait optimasi oleh Bu Chandra, yaitu bracket optimization dengan metode golden ratio. Prinsip dari metode ini kurang lebih mirip dengan metode Bisection yang nantinya dilakukan perhitungan berulang-ulang (itterative). Berikut adalah contoh coding di modelica untuk metode golden ratio:


FungsiObjek.mo

function FungsiObjek
 
input Real x;
output Real y;

algorithm

y:= 2*Modelica.Math.sin(x)-x^2/10;

end FungsiObjek; 

Dimana fungsi ini akan menjadi sebuah fungsi yang ada dipanggil dengan file jenis model.

BracketOptimal.mo
model BracketOptimal

parameter Integer n = 8;
Real x1[n];
Real x2[n];
Real xup;
Real xlow;
Real f1[n];
Real f2[n];
Real xopt;
Real yopt;
Real d;

algorithm
xup := 4;
xlow := 0;

for i in 1:n loop
  d:=((5^(1/2)-1)/2) * (xup-xlow);
  x1[i] := xlow+d;
  x2[i] := xup-d;
  f1[i] := FungsiObjek(x1[i]);
  f2[i] := FungsiObjek(x2[i]);
  
  if f1[i]>f2[i] then
    xup := xup;
    xlow := x2[i];
    xopt := xup;
    yopt := f1[i];
    else
      xlow :=xlow;
      xup := x1[i];
      xopt := xup;
  end if;
end for;
 

end BracketOptimal;

Tugas Besar

Tema: Optimasi Struktur Batang 3D

Langkah Pengerjaan

1. Mencari persamaan defleksi dengan variabel A.E 2. Mencari nilai maksimum A.E (Bisa dengan golden ratio maupun cara lain) 3. Melakukan Curve Fitting (nilai A.E dengan Harga) 4. Melakukan optimasi dari hasil persamaan curve fitting