Difference between revisions of "Aisyah Aulia"
Aisyah aulia (talk | contribs) |
Aisyah aulia (talk | contribs) (→UTS) |
||
(81 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
Angkatan : 2018 | Angkatan : 2018 | ||
+ | |||
+ | email : aisyah99auval@gmail.com | ||
=Perkenalan Singkat= | =Perkenalan Singkat= | ||
Line 20: | Line 22: | ||
=Pengalaman Pemrograman= | =Pengalaman Pemrograman= | ||
− | + | Saya belum pernah mempelajari hal-hal yang berbau pemrograman di SMA. Mungkin ada beberapa mata kuliah yang berkaitan dan dapat diterapkan dalam pemrograman seperti kalkulus, aljabar linear, matematika teknik, dan beberapa mata kuliah cabang fisika. Alhamdulillah selama berada di bangku kuliah saya mulai mengembangkan soft skill pada penggunaan beberapa software seperti AutoCAD, Maxsurf, dan Adobe Photoshop. Saya cukup tertarik untuk mempelajari ilmu dan kemampuan pemrograman untuk mempermudah kehidupan saya bahkan orang lain kedepannya. | |
+ | |||
+ | =Pertemuan Pertama= | ||
+ | Pertemuan pertama pada hari Jumat, 7 Februari 2020 diperkenalkan dosen pengampu mata kuliah metode numerik Teknik Perkapalan 2019/2020 yaitu Dr. Ir. Ahmad Indra Siswantara yang biasa dipanggil Pak Dai dan Prof. Dr. Ir. Harinaldi M.Eng. Kelas pertama diisi oleh Pak Dai diawali dengan perkenalan pemrograman dengan langsung praktek membuat halaman di wiki dan bagaimana mengupload file untuk kontennya. Selain menanamkan ilmu pemrograman, Pak Dai juga memberikan nasihat agar tidak selalu bergantung pada dunia karena pengatur di muka bumi ini adalah Pencipta kita | ||
+ | === Tugas 1 -> Menentukan nilai f(x)= x^2-1/x-1 , dengan x=1 === | ||
+ | * [[Tugas 1_Aisyah Aulia_1806202260]] | ||
+ | |||
+ | =Pertemuan Kedua= | ||
+ | Kenapa kita harus menggunakan numerik? | ||
+ | Kenapa saat 1 dibagi 1 hasilnya 1, 2 dibagi 2 hasilnya 1, 3 dibagi 3 hasilnya 1, sedangkan 0 dibagi dengan 0 hasilnya tidak terdefinisi? | ||
+ | Metode numerik dapat memecahkan persoalan-persoalan matematis yang rumit menjadi mudah untuk diselesaikan. Persoalan-persoalan fisika dalam berbagai bidang dapat di jadikan algoritma kalkulus. | ||
+ | |||
+ | ===Analisis Soal=== | ||
+ | Soal dalam buku panduan '''Numerical Methods in Engineering with Python''' yang cukup menarik buat saya adalah di soal no 20 BAB 2. | ||
+ | |||
+ | [[File:Soal_no_20.jpg|500px|thumb|center|alt text]] | ||
+ | Referensi gambar : Kiusalaas, Jaan. (2013).Numerical Methods in Engineering with Python 3.Cambridge University | ||
+ | |||
+ | Di soal tersebut terdapat enam buah pegas yang disambungkan secara seri disisipi dengan lima buah balok secara selang-seling. Kedua ujung rangkaian itu juga memiliki ujung tetap yang tidak ikut berisolasi dengan pegasnya. Pada setiap pegas diketahui masing-masing konstantanya. | ||
+ | Nah, yang menarik bagi saya disini adalah, soal tersebut biasa saya dapati dalam mata kuliah fisika mekanika dan biasa diselesaikan secara manual dengan menerapkan rumus-rumus tertentu. Pada soal ini dapat diselesaikan dengan rumus '''F = k . Δ x'''. Namun ternyata, aljabar linear dapat menjadi tools untuk menyelesaikan soal ini dengan cepat yang dikombinasikan dengan teknik pemrograman. | ||
+ | Data-data yang kita dapat dari soal dapat dijadikan persamaan dari balok dan pegas yang bekerja pada sistem. Contoh persamaan pertama '''3(x2-x1) - 2x1 = -80''' | ||
+ | |||
+ | F12 = k2.x2 - k12.x1 - k1.x1 ; dengan asumsi arah gaya ke kanan | ||
+ | -80 = 3x2 - 3x1 - 2x1 | ||
+ | |||
+ | Persamaan-persamaaan ini kemudian dapat diselesaikan dengan membentuk matriksnya dan dilanjutkan dengan metoda numerik | ||
+ | === Tugas 2 -> Pembahasan analisis soal === | ||
+ | Solusi manual | ||
+ | Pada penyelesaian secara manual, saya menggunakan metode crammer untuk mencari nilai x nya. Langkah- langkah pengerjaannya adalah dengan membuat SPL terlebih dahulu, kemudian SPL-SPL tersebut dijadikan matrix sehingga mempermudah pengerjaan. Lalu dari matrix yang didapat kita dapat mengganti setiap kolom pada matrix A dengan kolom matrix B yang kemudian didapat setiap nilai x sesuai pada setiap kolom yang diganti, misal untuk mencari nilai x1, kolom 1 diganti dengan kolom matix B, dan seterusnya seperti pada gambar : | ||
+ | [[File:Aisyah_manual 2-1.jpg|400px|thumb|center|alt text]] | ||
+ | |||
+ | Solusi menggunakan aplikasi Spyder(Python 3.7) | ||
+ | Pada penyelesaian menggunakan aplikasi coding, saya menggunakan matrix yang telah disusun tadi dengan numpy yang merupakan komputasi produk array. Dengan matrix 5x5 yang diselesaikan cukup lama dengan manual, menggunakan aplikasi coding mempermudah penyelesaiannya dalam waktu singkat dengan resiko kesalahan hitung yang kecil. Berikut penyelesaiannya dengan aplikasi : | ||
+ | [[File:tugas 2-1_Aisyah Aulia.png|800px|thumb|center|alt text]] | ||
+ | |||
+ | === Tugas 2 -> Initial Value Problem === | ||
+ | Solusi Manual | ||
+ | Pada solusi manual, saya menggunakan rumus pokok '''F = m.a''' yang merupakan hukum kedua newton dengan mempertimbangkan gaya yang bekerja pada penerjun adalah gaya beratnya yang membawanya turun kebawah dan gaya hambat udara yang merupakan pengaruh gerak angin terhadap parasut. Asumsi penyelesaian adalah positif untuk semua arah yang mengarah ke bawah(sesuai dengan gerak jatuh penerjun). Kemudian setelah didapat percepatan yang dialami oleh penerjun, saya menghitung ketinggian yang ditanya terhadap waktu yang telah ditentukan untuk mencapai tanah. Rumus ketinggian '''h = V0t + at²/2''' merupakan bagian dari fungsi jarak terhadap waktu '''xt = x0 + V0t + at²/2''' yang merupakan turunan dari fungsi kecepatan '''v = dx/dt'''. Maka saya menyimpulkan soal ini merupakan tipe soal initial value problem. Berikut penyelesaian secara manualnya : | ||
+ | [[File:Aisyah_manual 2-2.jpg|400px|thumb|center|alt text]] | ||
+ | |||
+ | Solusi Menggunakan Aplikasi | ||
+ | Pada solusi dengan aplikasi Spyder(Python3.7) saya menginput data-data yang diketahui di soal, kemudian membuat rumusnya, dan mendapatkan percepatan yang dicari. Setelah percepatan didapat, saya menghitung ketinggian yang dicari dengan menginput rumus juga '''h = V0t + at²/2''' dengan kode '''h = v0*t + (a*t**2)/2''' dan kemudian memasukkan kode '''print("maka ketinggian yang dialami penerjun bebas setinggi", h,"m")'''. Lalu didapat ketinggian penerjun hingga sampai ke tanah. Berikut penyelesaiannya : | ||
+ | [[File:tugas 2-2_Aisyah Aulia.png|800px|thumb|center|alt text]] | ||
+ | |||
+ | Pada aplikasi ini saya sebatas mencari nilai-nilai yang diinginkan, belum secara spesifik mendapat nilai di titik-titik sesaat. | ||
+ | |||
+ | === PPT Progres Belajar Metoda Numerik === | ||
+ | [[File:1582259596102.png|500px|thumb|center|alt text]] | ||
+ | Metoda numerik merupakan mata kuliah yang berhubungan erat dengan pemrograman. Metoda numerik memanipulasi data dan memanfaatkan bahasa program untuk menyelesaikan suatu permasalahan matematis. | ||
+ | [[File:1582259835556.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:1582259832059.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | =Pertemuan Ketiga= | ||
+ | Setiap manusia punya frekuensinya sendiri. Contohnya suara. Suara ditimbulkan oleh getaran pita suara. Pita suara membuat udara memiliki fluktuasi tekanan yang bergerak osilasi sehingga menghasilkan beberapa periode yang berulang. Ada sebuah pegas yang kita tarik sepanjang ∆x sehingga kembali naik ke atas karena mempunyai kelembaman dan kembali ke bawah karena mempunyai berat. Hal ini dapat disusun model matematika nya secara metode numerik. Kedepannya dapat mensimulasikan hidrodinamika kapal dan memodelkan dinamika geraknya. Dengan menggunakan simulasi software Computational Fluid Dynamics (CFD). Kita akan melihat terjadinya hambatan yang merupakan fungsi dari kecepatan dengan metode regresi dan bisa melakukan optimasi bentuk. Pada pertemuan kali ini juga dibahas sedikit tentang kesetimbangan energi. Dimana massa dalam suatu sistem adalah tetap artinya tidak bisa diciptakan dan dimusnahkan. Ini membutuhkan ilmu kalkulus. Dengan merujuk persamaan '''dM/dt = 0''' yang merupakan prinsip konservasi massa. | ||
+ | |||
+ | Ada tiga prinsip dasar ilmu teknik : | ||
+ | |||
+ | 1. Prinsip konservasi massa. '''v x A = Q= konstan''' , tetapi rumus ini terbatas. aliran inkompresibel adalah aliran yang massa jenisnya tidak berubah. | ||
+ | |||
+ | 2. Prinsip konservasi momentum. Sering disebut kesetimbangan gaya. '''F=m.a''' -> '''F=M.(dv/dt)''' | ||
+ | |||
+ | 3. Prinsip konservasi energi. '''dE/dt = W + Q''' atau laju perubahan energi. Dalam suatu sistem ada resultan gaya maka sistem itu memiliki percepatan | ||
+ | |||
+ | ===Asistensi dan Tugas=== | ||
+ | - Kode Pertama yang saya kerjakan | ||
+ | import numpy as np | ||
+ | import matplotlib.pyplot as plt | ||
+ | def integral (F, x, y, xStop, h) : | ||
+ | def run_kut4(f,x,y,h): | ||
+ | k0 = h*f(x,y) | ||
+ | k1 = h*f(x+h/2, y+k0/2) | ||
+ | k2 = h*f(x+h/2, y+k1/2) | ||
+ | k3 = h*f(x+h, y+k2) | ||
+ | return(k0+2*k1+2*k2+k3)/6 | ||
+ | X = [] | ||
+ | Y = [] | ||
+ | X.append(x) | ||
+ | Y.append(y) | ||
+ | while x<xStop: | ||
+ | h = min(h,x-xStop) | ||
+ | y = y+ run_kut4(f,x,y,h) | ||
+ | x = x+hX | ||
+ | X.append(x) | ||
+ | Y.append(Y) | ||
+ | return np.array(X), np.array(Y) | ||
+ | def f(x,y): | ||
+ | f = np.zeros(2) | ||
+ | f[0] = y[1] | ||
+ | f[1] = -0.1*y[1] | ||
+ | return f | ||
+ | h= 0.2 | ||
+ | x= 0 | ||
+ | y= [0,1] | ||
+ | xStop=1 | ||
+ | X,Y = integral(f,x,y, xStop,h) | ||
+ | plt.plot(X,Y[;,1],' ',c=pink') | ||
+ | plt.show() | ||
+ | |||
+ | *pada kode ini saya belum mendapatkan hasil karena aplikasi yang saya gunakan tidak memiliki modul runge kutta | ||
+ | |||
+ | |||
+ | - Kode Kedua | ||
+ | x0 = 0 | ||
+ | y = 0 | ||
+ | h = 0 | ||
+ | x = float(input("masukkan nilai t: ")) | ||
+ | if 0<= x < 2: | ||
+ | def dydx(x,y): | ||
+ | return (4*x- 30*y) | ||
+ | def rungekutta(x0, y0, x, h): | ||
+ | n= (int)((x-x0)/h) | ||
+ | y= y0 | ||
+ | for i in range(1, n+1) | ||
+ | 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) | ||
+ | y = y+(1/6)*(k1+2k2+2k3+k4) | ||
+ | x0 = xO+h | ||
+ | return y | ||
+ | print("Nilai y pada t=", x, "yaitu", rungekutta(x0,y,x,h)) | ||
+ | elif x >=2: | ||
+ | def dydx(x,y): | ||
+ | return(8-30*y) | ||
+ | def rungekutta(x0,y0,x,h): | ||
+ | n = (int)((x-x0)/h) | ||
+ | y = y0 | ||
+ | for i in range(1, n+1) | ||
+ | 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) | ||
+ | y = y+(1/6)*(k1+2k2+2k3+k4) | ||
+ | x0 = xO+h | ||
+ | return y | ||
+ | print("y saat t=",x, "yaitu", rungekutta(x0,y,x,h)) | ||
+ | |||
+ | hasil : | ||
+ | nilai y pada t= 2 yaitu 0.26666666666665745 | ||
+ | nilai y pada t= 3 yaitu 0.26666666666665745 | ||
+ | nilai y pada t= 4 yaitu 0.26666666666665745 | ||
+ | nilai y pada t= 5 yaitu 0.06222223581783385 | ||
+ | nilai y pada t= 6 yaitu 0.07554222229010824 | ||
+ | nilai y pada t= 7 yaitu 0.0888755555892813 | ||
+ | |||
+ | ===Hasil Asistensi=== | ||
+ | |||
+ | [[File:1Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:2Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:3Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:4Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:5Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | [[File:6Ai.png|500px|thumb|center|alt text]] | ||
+ | |||
+ | =Pertemuan Keempat= | ||
− | + | Pada pertemuan keempat, diberikan materi tentang konsep kapal model untuk pengujian. Salah satu pengujian yang dilakukan adalah towing tank testing. Kapal model merupakan kapal contoh dengan perbandingan terntentu terhadap kapal sesungguhnya untuk mendapatkan estimasi nilai koefisien-koefisien hambatan kapal. Koefisien-koefisien hambatan ini diperlukan untuk menghitung estimasi hambatan yang diterima kapal dan kemudian dapat diperoleh kekuatan mesin yang diperlukan untuk menggerakkan kapal sehingga dapat berlayar. Pada pembelajaran kali ini saya mengerjakan estimasi hambatan dengan software CFD (Computational Fluid Dynamics) sebagai bagian dari perhitungan setelah dilakukan eksperimen dan penyelesaian secara teoritik untuk melihat interaksi gelombang laut terhadap kapal model. | |
− | + | Berikut hasil pekerjaan saya : | |
− | Pada | ||
− | + | ===Hasil Penggunaan CFD=== | |
− | |||
− | . | + | [[File:mari.png|800px|thumb|center|alt text]] |
− | + | [[File:mariii.png|800px|thumb|center|alt text]] | |
+ | |||
+ | Pada hasil yang saya kerjakan saat melakukan meshing, kapal hilang, tetapi saat melakukan pengecekan, tertera "Mesh OK" dan tetap bisa mendapatkan grafik | ||
− | 1. | + | 1. Buka aplikasi CFD dan membuat new case |
− | |||
− | 2. | + | 2. Import Geometri dari file 3D kapal selam yang sebelumnya sudah kita simpan |
+ | 3. Klik kanan pada nama File yang sudah muncul, kemudian pilih scale dan masukkan scale '''1e-3''' untuk mengubah satuan objek kita dari meter menjadi centimeter | ||
+ | 4. Pindah ke bagian '''mesh'''. Bagian ini berfungsi untuk membuat grid-grid atau memecah benda yang kontinu menjadi sebuah grid kecil. | ||
+ | 5. Pada '''Surface Refinement''' yaitu bagian untuk mengatur grid di daerah permukaan kapal. Tujuannya untuk melihat kondisi aliran daerah sekitar kapal secara detail. Ini minimum level dengan '''3''' dan maximum level dengan '''4''' | ||
+ | 6. Pada '''Base Mesh''', disini kita membuat domain fluida atau tempat fluida mengalir. Ukuran pada '''min coordinate''' adalah '''-2, -5, -5''' dan '''max coordinate''' adalah '''13, 0, 5'''. Pada box mesh isi division dengan '''75, 25, dan 50'''. Pada '''x- face''' ubah menjadi inlet, '''x+face''' menjadi outlet, dan '''Y-face''' menjadi symmetry, kemudain apply mesh | ||
+ | 7. Di bagian '''Generate Mesh''' isi mesh location atau titik geometri sebagai referensi untuk melakukan meshing, pada '''0, -3, -2''' | ||
+ | 8. kemudian klik tanda warna kuning dan '''Generate mesh'''. Mesh yang kita buat akan berubah warna menjadi kuning dan biru. | ||
+ | 9. Lalu ke '''Model''' dengan mengaktifkan '''Turblence''' terdahulu pada '''Simulation Model'''. Pilihan turbulence akan mundul dan ganti '''Turbulence Model Settings''' menjadi '''SST k-omega''' | ||
+ | 10. Selanjutnya ke '''Fluid Properties''' dengan mengganti material name menjadi '''water''', density '''1000''' dan dynamic viscosity menjadi '''0.000899''' | ||
+ | 11. Lalu '''Boundary Conditions''' dengan memilih '''Inlet1''' pada Face name dan '''Velocity Inlet''' pada boundary conditions type. Kemudian memasukkan Reference Value '''11''' m/s | ||
+ | 12. Kemudian pilih '''outlet1''' pada Face name dan '''Outflow''' pada Boundary Conditions Type | ||
+ | 13. Selanjutnya pilih '''Boundary1''' pada Face Name dan '''Far-Field''' pada Boundary Conditions Type | ||
+ | 14. Pindah ke Bagian '''CFD-Solve''' dengan menagtur Number of Iteration '''2000''' dan Time Step pada '''1000''' juga | ||
+ | 15. Kemudian cek basic initial condition pada '''Default''' semua | ||
+ | 16. Saat dipencet '''RUN-solve''' CFD akan mengkalkulasi Residu gelombang Turbulen kapal selam kita | ||
+ | 17. Dari grafik dengan membuka kapal kita di '''Paraview''' akan didapat V(kecepatan) inlet dan grid | ||
+ | 18. Data V inlet dan Grid dikumpulkan dan dihitung dengan metode Python | ||
+ | ===Hasil Asistensi dan Penggunaan Python=== | ||
+ | [[File:Ai1.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai2.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai3.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai4.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai5.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai6.png|500px|thumb|center|alt text]] | ||
+ | [[File:Ai7.png|500px|thumb|center|alt text]] | ||
+ | =Pertemuan kelima= | ||
+ | Pada pertemuan kelima tanggal 6 Maret 2020 dibahas tentang progress pribadi untuk mata kuliah metoda numerik dan diskusi umum tentang perbedaan initial value problem dan boundary value problem. Menurut saya pribadi, initial value problem adalah masalah yang dapat diselesaikan dengan acuan titik awal atau initial state, sedangkan boundary value problem adalah masalah yang diselesaikan dengan mengacu pada batasan-batasan yang diketahui atau diberikan. | ||
+ | ==Hasil Asistensi== | ||
+ | [[File:3-1.png|500px|thumb|center|alt text]] | ||
+ | [[File:3-2.png|500px|thumb|center|alt text]] | ||
+ | [[File:3-3.png|500px|thumb|center|alt text]] | ||
+ | [[File:3-4.png|500px|thumb|center|alt text]] | ||
+ | ==Tugas Initial Value Problem== | ||
+ | Saya mengambil contoh jarak tempuh sebuah truk dengan mengabaikan massa dan friksi disekelilingnya. Sebuah truk memiliki posisi awal 0 pada t=0 dan dihitung jarak pada waktu yang diinginkan yaitu pada 0.05 detik. Dengan metode Runge-Kutta dengan cepat kita bisa mendapatkan hasil yang diinginkan hanya dengan memasukkan waktu yang diperlukan untuk setiap pergerakan si mobil truk tersebut, Berikut penyelesaian dengan metode Runge-Kutta : | ||
+ | [[File:initial-aiii.png|400px|thumb|center|alt text]] | ||
+ | [[File:initial-ai.png|550px|thumb|center|alt text]] | ||
− | + | ==Tugas Boundary Value Problem== | |
+ | Saya mengambil contoh sederhana untuk mendapatkan regresi linier sebuah hambatan pada kapal yang sebelumnya sudah diakumulasi melalui CFDSOF. Hambatan ini dibatasi oleh kecepatan tertetu yaitu yang saya ambil pada 5 m/s, 6 m/s, 7 m/s, 8 m/s, dan 9 m/s dan didapat regresi berikut ini : | ||
− | + | [[File:regresi-ai.png|550px|thumb|center|alt text]] | |
− | + | =Pertemuan keenam= | |
− | + | Pertemuan keenam diisi oleh asisten dosen dan bahasan yang dipakai adalah '''Optimasi''' | |
− | + | Optimasi merupakan salah satu cara untuk mendapatkan sebuah nilai sebesar-besarnya atau sekecil-kecilnya dari suatu parameter yang ada. Optimize dimaksudkan untuk mengurangi nilai kerugian dan mendapatkan untung sebanyak-banyaknya dengan pemanfaatan parameter yang ada. Berikut hasil pemrograman yang saya lakukan dengan meniru langkah-langkah yang diinstruksikan asisten dosen | |
− | |||
− | + | [[File:optimizeai.png|550px|thumb|center|alt text]] | |
− | + | ===Tugas Optimasi=== | |
+ | Tugas Optimasi yaitu diberikan sebuah kayu (parameter) sepanjang 20 m. Cari luas area maksimum yang dapat dijangkau oleh kayu sepanjang 20 m tersebut | ||
− | + | [[File:maxareaai.png|550px|thumb|center|alt text]] | |
− | + | Dari hasil didapat luas maksimum sebesar '''25 m''' dengan menggunakan perintah matematis '''ceil''' dan '''floor''' dan memasukkan variabel panjang(p) dan lebar(l) | |
− | + | ||
− | === Tugas | + | ===Tugas Video=== |
− | + | ||
+ | Soal yang saya ambil adalah sebagai berikut : | ||
− | |||
− | |||
− | |||
− | |||
− | + | [[File:wajan.png|550px|thumb|center|alt text]] | |
− | |||
− | + | Sebuah wajan dengan ketinggian L dan jari-jari 7 cm yang biasa digunakan untuk menggoreng telur memiliki volume 90 cm^3. Berapa ketinggian L maksimum untuk mendapatkan volume sekian. | |
− | + | Berikut video penyelesaian soal yang saya buat : | |
− | |||
− | |||
− | + | https://youtu.be/tuyq4rOEVYQ | |
− | |||
− | + | =UTS= | |
+ | https://youtu.be/aKzq5vHofNU |
Latest revision as of 23:02, 3 April 2020
Assalamu'alaikum!
Contents
Data Pribadi
Nama : Aisyah Aulia
NPM : 1806202260
TTL : Jakarta, 10 Oktober 1999
Jurusan : Teknik Perkapalan
Angkatan : 2018
email : aisyah99auval@gmail.com
Perkenalan Singkat
Saya merupakan anak pertama dari empat bersaudara. Sejak kecil sampai sekarang, saya dan keluarga saya memiliki tempat tinggal yang berpindah-pindah. Mulai dari tinggal di beberapa pulau kecil hingga tinggal di kota-kota besar yang salah satunya adalah tempat saya melanjutkan pendidikan di perguruan tinggi impian saya ini. Oleh karena itu, hobi saya adalah jalan-jalan dan belajar mengenai banyak hal baru yang dapat memperluas pola pikir, sudut pandang, serta pengetahuan saya. Saya lebih suka belajar dari pengamatan dan pengalaman langsung dibanding membaca buku, hehe. Tidak salah jika saya dijuluki si kinestetik.
Pengalaman Pemrograman
Saya belum pernah mempelajari hal-hal yang berbau pemrograman di SMA. Mungkin ada beberapa mata kuliah yang berkaitan dan dapat diterapkan dalam pemrograman seperti kalkulus, aljabar linear, matematika teknik, dan beberapa mata kuliah cabang fisika. Alhamdulillah selama berada di bangku kuliah saya mulai mengembangkan soft skill pada penggunaan beberapa software seperti AutoCAD, Maxsurf, dan Adobe Photoshop. Saya cukup tertarik untuk mempelajari ilmu dan kemampuan pemrograman untuk mempermudah kehidupan saya bahkan orang lain kedepannya.
Pertemuan Pertama
Pertemuan pertama pada hari Jumat, 7 Februari 2020 diperkenalkan dosen pengampu mata kuliah metode numerik Teknik Perkapalan 2019/2020 yaitu Dr. Ir. Ahmad Indra Siswantara yang biasa dipanggil Pak Dai dan Prof. Dr. Ir. Harinaldi M.Eng. Kelas pertama diisi oleh Pak Dai diawali dengan perkenalan pemrograman dengan langsung praktek membuat halaman di wiki dan bagaimana mengupload file untuk kontennya. Selain menanamkan ilmu pemrograman, Pak Dai juga memberikan nasihat agar tidak selalu bergantung pada dunia karena pengatur di muka bumi ini adalah Pencipta kita
Tugas 1 -> Menentukan nilai f(x)= x^2-1/x-1 , dengan x=1
Pertemuan Kedua
Kenapa kita harus menggunakan numerik? Kenapa saat 1 dibagi 1 hasilnya 1, 2 dibagi 2 hasilnya 1, 3 dibagi 3 hasilnya 1, sedangkan 0 dibagi dengan 0 hasilnya tidak terdefinisi? Metode numerik dapat memecahkan persoalan-persoalan matematis yang rumit menjadi mudah untuk diselesaikan. Persoalan-persoalan fisika dalam berbagai bidang dapat di jadikan algoritma kalkulus.
Analisis Soal
Soal dalam buku panduan Numerical Methods in Engineering with Python yang cukup menarik buat saya adalah di soal no 20 BAB 2.
Referensi gambar : Kiusalaas, Jaan. (2013).Numerical Methods in Engineering with Python 3.Cambridge University
Di soal tersebut terdapat enam buah pegas yang disambungkan secara seri disisipi dengan lima buah balok secara selang-seling. Kedua ujung rangkaian itu juga memiliki ujung tetap yang tidak ikut berisolasi dengan pegasnya. Pada setiap pegas diketahui masing-masing konstantanya. Nah, yang menarik bagi saya disini adalah, soal tersebut biasa saya dapati dalam mata kuliah fisika mekanika dan biasa diselesaikan secara manual dengan menerapkan rumus-rumus tertentu. Pada soal ini dapat diselesaikan dengan rumus F = k . Δ x. Namun ternyata, aljabar linear dapat menjadi tools untuk menyelesaikan soal ini dengan cepat yang dikombinasikan dengan teknik pemrograman. Data-data yang kita dapat dari soal dapat dijadikan persamaan dari balok dan pegas yang bekerja pada sistem. Contoh persamaan pertama 3(x2-x1) - 2x1 = -80
F12 = k2.x2 - k12.x1 - k1.x1 ; dengan asumsi arah gaya ke kanan -80 = 3x2 - 3x1 - 2x1
Persamaan-persamaaan ini kemudian dapat diselesaikan dengan membentuk matriksnya dan dilanjutkan dengan metoda numerik
Tugas 2 -> Pembahasan analisis soal
Solusi manual
Pada penyelesaian secara manual, saya menggunakan metode crammer untuk mencari nilai x nya. Langkah- langkah pengerjaannya adalah dengan membuat SPL terlebih dahulu, kemudian SPL-SPL tersebut dijadikan matrix sehingga mempermudah pengerjaan. Lalu dari matrix yang didapat kita dapat mengganti setiap kolom pada matrix A dengan kolom matrix B yang kemudian didapat setiap nilai x sesuai pada setiap kolom yang diganti, misal untuk mencari nilai x1, kolom 1 diganti dengan kolom matix B, dan seterusnya seperti pada gambar :
Solusi menggunakan aplikasi Spyder(Python 3.7)
Pada penyelesaian menggunakan aplikasi coding, saya menggunakan matrix yang telah disusun tadi dengan numpy yang merupakan komputasi produk array. Dengan matrix 5x5 yang diselesaikan cukup lama dengan manual, menggunakan aplikasi coding mempermudah penyelesaiannya dalam waktu singkat dengan resiko kesalahan hitung yang kecil. Berikut penyelesaiannya dengan aplikasi :
Tugas 2 -> Initial Value Problem
Solusi Manual
Pada solusi manual, saya menggunakan rumus pokok F = m.a yang merupakan hukum kedua newton dengan mempertimbangkan gaya yang bekerja pada penerjun adalah gaya beratnya yang membawanya turun kebawah dan gaya hambat udara yang merupakan pengaruh gerak angin terhadap parasut. Asumsi penyelesaian adalah positif untuk semua arah yang mengarah ke bawah(sesuai dengan gerak jatuh penerjun). Kemudian setelah didapat percepatan yang dialami oleh penerjun, saya menghitung ketinggian yang ditanya terhadap waktu yang telah ditentukan untuk mencapai tanah. Rumus ketinggian h = V0t + at²/2 merupakan bagian dari fungsi jarak terhadap waktu xt = x0 + V0t + at²/2 yang merupakan turunan dari fungsi kecepatan v = dx/dt. Maka saya menyimpulkan soal ini merupakan tipe soal initial value problem. Berikut penyelesaian secara manualnya :
Solusi Menggunakan Aplikasi
Pada solusi dengan aplikasi Spyder(Python3.7) saya menginput data-data yang diketahui di soal, kemudian membuat rumusnya, dan mendapatkan percepatan yang dicari. Setelah percepatan didapat, saya menghitung ketinggian yang dicari dengan menginput rumus juga h = V0t + at²/2 dengan kode h = v0*t + (a*t**2)/2 dan kemudian memasukkan kode print("maka ketinggian yang dialami penerjun bebas setinggi", h,"m"). Lalu didapat ketinggian penerjun hingga sampai ke tanah. Berikut penyelesaiannya :
Pada aplikasi ini saya sebatas mencari nilai-nilai yang diinginkan, belum secara spesifik mendapat nilai di titik-titik sesaat.
PPT Progres Belajar Metoda Numerik
Metoda numerik merupakan mata kuliah yang berhubungan erat dengan pemrograman. Metoda numerik memanipulasi data dan memanfaatkan bahasa program untuk menyelesaikan suatu permasalahan matematis.
Pertemuan Ketiga
Setiap manusia punya frekuensinya sendiri. Contohnya suara. Suara ditimbulkan oleh getaran pita suara. Pita suara membuat udara memiliki fluktuasi tekanan yang bergerak osilasi sehingga menghasilkan beberapa periode yang berulang. Ada sebuah pegas yang kita tarik sepanjang ∆x sehingga kembali naik ke atas karena mempunyai kelembaman dan kembali ke bawah karena mempunyai berat. Hal ini dapat disusun model matematika nya secara metode numerik. Kedepannya dapat mensimulasikan hidrodinamika kapal dan memodelkan dinamika geraknya. Dengan menggunakan simulasi software Computational Fluid Dynamics (CFD). Kita akan melihat terjadinya hambatan yang merupakan fungsi dari kecepatan dengan metode regresi dan bisa melakukan optimasi bentuk. Pada pertemuan kali ini juga dibahas sedikit tentang kesetimbangan energi. Dimana massa dalam suatu sistem adalah tetap artinya tidak bisa diciptakan dan dimusnahkan. Ini membutuhkan ilmu kalkulus. Dengan merujuk persamaan dM/dt = 0 yang merupakan prinsip konservasi massa.
Ada tiga prinsip dasar ilmu teknik :
1. Prinsip konservasi massa. v x A = Q= konstan , tetapi rumus ini terbatas. aliran inkompresibel adalah aliran yang massa jenisnya tidak berubah.
2. Prinsip konservasi momentum. Sering disebut kesetimbangan gaya. F=m.a -> F=M.(dv/dt)
3. Prinsip konservasi energi. dE/dt = W + Q atau laju perubahan energi. Dalam suatu sistem ada resultan gaya maka sistem itu memiliki percepatan
Asistensi dan Tugas
- Kode Pertama yang saya kerjakan import numpy as np import matplotlib.pyplot as plt def integral (F, x, y, xStop, h) : def run_kut4(f,x,y,h): k0 = h*f(x,y) k1 = h*f(x+h/2, y+k0/2) k2 = h*f(x+h/2, y+k1/2) k3 = h*f(x+h, y+k2) return(k0+2*k1+2*k2+k3)/6 X = [] Y = [] X.append(x) Y.append(y) while x<xStop: h = min(h,x-xStop) y = y+ run_kut4(f,x,y,h) x = x+hX X.append(x) Y.append(Y) return np.array(X), np.array(Y) def f(x,y): f = np.zeros(2) f[0] = y[1] f[1] = -0.1*y[1] return f h= 0.2 x= 0 y= [0,1] xStop=1 X,Y = integral(f,x,y, xStop,h) plt.plot(X,Y[;,1],' ',c=pink') plt.show()
- pada kode ini saya belum mendapatkan hasil karena aplikasi yang saya gunakan tidak memiliki modul runge kutta
- Kode Kedua x0 = 0 y = 0 h = 0 x = float(input("masukkan nilai t: ")) if 0<= x < 2: def dydx(x,y): return (4*x- 30*y) def rungekutta(x0, y0, x, h): n= (int)((x-x0)/h) y= y0 for i in range(1, n+1) 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) y = y+(1/6)*(k1+2k2+2k3+k4) x0 = xO+h return y print("Nilai y pada t=", x, "yaitu", rungekutta(x0,y,x,h)) elif x >=2: def dydx(x,y): return(8-30*y) def rungekutta(x0,y0,x,h): n = (int)((x-x0)/h) y = y0 for i in range(1, n+1) 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) y = y+(1/6)*(k1+2k2+2k3+k4) x0 = xO+h return y print("y saat t=",x, "yaitu", rungekutta(x0,y,x,h))
hasil : nilai y pada t= 2 yaitu 0.26666666666665745 nilai y pada t= 3 yaitu 0.26666666666665745 nilai y pada t= 4 yaitu 0.26666666666665745 nilai y pada t= 5 yaitu 0.06222223581783385 nilai y pada t= 6 yaitu 0.07554222229010824 nilai y pada t= 7 yaitu 0.0888755555892813
Hasil Asistensi
Pertemuan Keempat
Pada pertemuan keempat, diberikan materi tentang konsep kapal model untuk pengujian. Salah satu pengujian yang dilakukan adalah towing tank testing. Kapal model merupakan kapal contoh dengan perbandingan terntentu terhadap kapal sesungguhnya untuk mendapatkan estimasi nilai koefisien-koefisien hambatan kapal. Koefisien-koefisien hambatan ini diperlukan untuk menghitung estimasi hambatan yang diterima kapal dan kemudian dapat diperoleh kekuatan mesin yang diperlukan untuk menggerakkan kapal sehingga dapat berlayar. Pada pembelajaran kali ini saya mengerjakan estimasi hambatan dengan software CFD (Computational Fluid Dynamics) sebagai bagian dari perhitungan setelah dilakukan eksperimen dan penyelesaian secara teoritik untuk melihat interaksi gelombang laut terhadap kapal model. Berikut hasil pekerjaan saya :
Hasil Penggunaan CFD
Pada hasil yang saya kerjakan saat melakukan meshing, kapal hilang, tetapi saat melakukan pengecekan, tertera "Mesh OK" dan tetap bisa mendapatkan grafik
1. Buka aplikasi CFD dan membuat new case
2. Import Geometri dari file 3D kapal selam yang sebelumnya sudah kita simpan
3. Klik kanan pada nama File yang sudah muncul, kemudian pilih scale dan masukkan scale 1e-3 untuk mengubah satuan objek kita dari meter menjadi centimeter
4. Pindah ke bagian mesh. Bagian ini berfungsi untuk membuat grid-grid atau memecah benda yang kontinu menjadi sebuah grid kecil.
5. Pada Surface Refinement yaitu bagian untuk mengatur grid di daerah permukaan kapal. Tujuannya untuk melihat kondisi aliran daerah sekitar kapal secara detail. Ini minimum level dengan 3 dan maximum level dengan 4
6. Pada Base Mesh, disini kita membuat domain fluida atau tempat fluida mengalir. Ukuran pada min coordinate adalah -2, -5, -5 dan max coordinate adalah 13, 0, 5. Pada box mesh isi division dengan 75, 25, dan 50. Pada x- face ubah menjadi inlet, x+face menjadi outlet, dan Y-face menjadi symmetry, kemudain apply mesh
7. Di bagian Generate Mesh isi mesh location atau titik geometri sebagai referensi untuk melakukan meshing, pada 0, -3, -2
8. kemudian klik tanda warna kuning dan Generate mesh. Mesh yang kita buat akan berubah warna menjadi kuning dan biru.
9. Lalu ke Model dengan mengaktifkan Turblence terdahulu pada Simulation Model. Pilihan turbulence akan mundul dan ganti Turbulence Model Settings menjadi SST k-omega
10. Selanjutnya ke Fluid Properties dengan mengganti material name menjadi water, density 1000 dan dynamic viscosity menjadi 0.000899
11. Lalu Boundary Conditions dengan memilih Inlet1 pada Face name dan Velocity Inlet pada boundary conditions type. Kemudian memasukkan Reference Value 11 m/s
12. Kemudian pilih outlet1 pada Face name dan Outflow pada Boundary Conditions Type
13. Selanjutnya pilih Boundary1 pada Face Name dan Far-Field pada Boundary Conditions Type
14. Pindah ke Bagian CFD-Solve dengan menagtur Number of Iteration 2000 dan Time Step pada 1000 juga
15. Kemudian cek basic initial condition pada Default semua
16. Saat dipencet RUN-solve CFD akan mengkalkulasi Residu gelombang Turbulen kapal selam kita
17. Dari grafik dengan membuka kapal kita di Paraview akan didapat V(kecepatan) inlet dan grid
18. Data V inlet dan Grid dikumpulkan dan dihitung dengan metode Python
Hasil Asistensi dan Penggunaan Python
Pertemuan kelima
Pada pertemuan kelima tanggal 6 Maret 2020 dibahas tentang progress pribadi untuk mata kuliah metoda numerik dan diskusi umum tentang perbedaan initial value problem dan boundary value problem. Menurut saya pribadi, initial value problem adalah masalah yang dapat diselesaikan dengan acuan titik awal atau initial state, sedangkan boundary value problem adalah masalah yang diselesaikan dengan mengacu pada batasan-batasan yang diketahui atau diberikan.
Hasil Asistensi
Tugas Initial Value Problem
Saya mengambil contoh jarak tempuh sebuah truk dengan mengabaikan massa dan friksi disekelilingnya. Sebuah truk memiliki posisi awal 0 pada t=0 dan dihitung jarak pada waktu yang diinginkan yaitu pada 0.05 detik. Dengan metode Runge-Kutta dengan cepat kita bisa mendapatkan hasil yang diinginkan hanya dengan memasukkan waktu yang diperlukan untuk setiap pergerakan si mobil truk tersebut, Berikut penyelesaian dengan metode Runge-Kutta :
Tugas Boundary Value Problem
Saya mengambil contoh sederhana untuk mendapatkan regresi linier sebuah hambatan pada kapal yang sebelumnya sudah diakumulasi melalui CFDSOF. Hambatan ini dibatasi oleh kecepatan tertetu yaitu yang saya ambil pada 5 m/s, 6 m/s, 7 m/s, 8 m/s, dan 9 m/s dan didapat regresi berikut ini :
Pertemuan keenam
Pertemuan keenam diisi oleh asisten dosen dan bahasan yang dipakai adalah Optimasi
Optimasi merupakan salah satu cara untuk mendapatkan sebuah nilai sebesar-besarnya atau sekecil-kecilnya dari suatu parameter yang ada. Optimize dimaksudkan untuk mengurangi nilai kerugian dan mendapatkan untung sebanyak-banyaknya dengan pemanfaatan parameter yang ada. Berikut hasil pemrograman yang saya lakukan dengan meniru langkah-langkah yang diinstruksikan asisten dosen
Tugas Optimasi
Tugas Optimasi yaitu diberikan sebuah kayu (parameter) sepanjang 20 m. Cari luas area maksimum yang dapat dijangkau oleh kayu sepanjang 20 m tersebut
Dari hasil didapat luas maksimum sebesar 25 m dengan menggunakan perintah matematis ceil dan floor dan memasukkan variabel panjang(p) dan lebar(l)
Tugas Video
Soal yang saya ambil adalah sebagai berikut :
Sebuah wajan dengan ketinggian L dan jari-jari 7 cm yang biasa digunakan untuk menggoreng telur memiliki volume 90 cm^3. Berapa ketinggian L maksimum untuk mendapatkan volume sekian.
Berikut video penyelesaian soal yang saya buat :