Difference between revisions of "User:LuthfiShafwan"

From ccitonlinewiki
Jump to: navigation, search
(Tugas 1)
(Tugas 1)
Line 19: Line 19:
  
 
[https://drive.google.com/file/d/16igB5W7afo-zhgvOhsVQl6Hb307WD-rp/view?usp=sharing hasil diskusi dengan chatGPT]
 
[https://drive.google.com/file/d/16igB5W7afo-zhgvOhsVQl6Hb307WD-rp/view?usp=sharing hasil diskusi dengan chatGPT]
 +
 +
Berikut merupakan dokumentasi coding chatGPT
 +
import numpy as np
 +
import matplotlib.pyplot as plt
 +
 +
# Parameter Model
 +
E = 210e9            # Modulus elastisitas dalam Pascal (Pa)
 +
A = 0.01            # Luas penampang dalam meter persegi (m^2)
 +
L = 1.0              # Panjang batang dalam meter (m)
 +
F = 1000            # Gaya tarik dalam Newton (N)
 +
num_elements = 10    # Jumlah elemen
 +
node_count = num_elements + 1  # Jumlah node
 +
 +
# Panjang elemen
 +
Le = L / num_elements
 +
 +
# Matriks kekakuan untuk setiap elemen
 +
k_e = (E * A / Le) * np.array([[1, -1], [-1, 1]])
 +
 +
# Matriks kekakuan global
 +
K = np.zeros((node_count, node_count))
 +
 +
# Rakitan matriks kekakuan global
 +
for i in range(num_elements):
 +
    K[i:i+2, i:i+2] += k_e
 +
 +
# Vektor gaya
 +
F_ext = np.zeros(node_count)
 +
F_ext[-1] = F  # Gaya diterapkan pada node terakhir
 +
 +
# Kondisi batas: Ujung kiri tetap
 +
K = K[1:, 1:]  # Menghapus baris dan kolom pertama (fixed node)
 +
F_ext = F_ext[1:]  # Menghapus gaya pada fixed node
 +
 +
# Menghitung perpindahan
 +
u = np.linalg.solve(K, F_ext)
 +
 +
# Menambahkan perpindahan pada node tetap (nol)
 +
u = np.insert(u, 0, 0)
 +
 +
# Hitung tegangan pada setiap elemen
 +
stresses = []
 +
for i in range(num_elements):
 +
    strain = (u[i+1] - u[i]) / Le
 +
    stress = E * strain
 +
    stresses.append(stress)
 +
 +
# Plot perpindahan dan tegangan
 +
x = np.linspace(0, L, node_count)
 +
 +
plt.figure(figsize=(10, 5))
 +
 +
# Plot Perpindahan
 +
plt.subplot(1, 2, 1)
 +
plt.plot(x, u, marker='o')
 +
plt.title("Perpindahan di sepanjang batang")
 +
plt.xlabel("Panjang (m)")
 +
plt.ylabel("Perpindahan (m)")
 +
 +
# Plot Tegangan
 +
plt.subplot(1, 2, 2)
 +
plt.plot(x[:-1] + Le/2, stresses, marker='x', color='red')
 +
plt.title("Tegangan di sepanjang batang")
 +
plt.xlabel("Panjang (m)")
 +
plt.ylabel("Tegangan (Pa)")
 +
 +
plt.tight_layout()
 +
plt.show()
 +
 +
Berdasarkan 'code' diatas grafik akhir yang menjadi output perhitungan tersebut tertera pada gambar dibawah

Revision as of 21:59, 3 November 2024

Introduction

IMG-20240516-WA0001.jpg

Nama saya muhammad luthfi shafwan, mahasiswa S2 Teknik Mesin peminatan Teknologi dan Sumber Daya Maritim angkatan 2024

Komputasi Teknik Pertemuan 1 (Pasca UTS) 29/10/2024

Pada pertemuan pertama ini, mahasiswa diperkenalkan dengan sebuah framework bernama DAI-5, yang dikembangkan oleh Dr. Ir. Ahmad Indra Siswantara. Framework ini didasari oleh konsep conscious thinking atau berpikir secara sadar. Landasan dari framework ini adalah falsafah yang beliau utarakan, yaitu "I'm my consciousness," yang menegaskan pentingnya kesadaran dalam setiap tindakan. Sebagai inisiator, beliau merumuskan framework ini menjadi empat tahapan penting:

(1) Intention, Menentukan niat/ide awal

(2) Initial Thinking, Mengeksplorasi dari ide yang kita inisiasikan sebelumnya

(3) Idealization, Penarikan solusi Dari ide tersebut kemudian mensimplifikasi sesuatu agar lebih ideal

(4) Instruction Set, Solusi ideal yang menjadi output pada tahapan sebelumnya, dikonversi menjadi sebuah tahapan sistematis Tahapan-tahapan ini merepresentasikan pentingnya pendekatan sistematis dalam berbagai aspek kehidupan.

Tugas 1

Pada pertemuan kali ini, Pak Dai memberikan arahan kepada mahasiswa untuk melakukan diskusi mengenai FEM (Finite Element Method) satu dimensi melalui platform ChatGPT. Diskusi ini akan mencakup beberapa pertanyaan yang sesuai dengan arahan beliau, dengan output yang diharapkan dapat menghubungkan konsep FEM satu dimensi dengan langkah-langkah yang terdapat dalam kerangka DAI-5.

hasil diskusi dengan chatGPT

Berikut merupakan dokumentasi coding chatGPT import numpy as np import matplotlib.pyplot as plt

  1. Parameter Model

E = 210e9 # Modulus elastisitas dalam Pascal (Pa) A = 0.01 # Luas penampang dalam meter persegi (m^2) L = 1.0 # Panjang batang dalam meter (m) F = 1000 # Gaya tarik dalam Newton (N) num_elements = 10 # Jumlah elemen node_count = num_elements + 1 # Jumlah node

  1. Panjang elemen

Le = L / num_elements

  1. Matriks kekakuan untuk setiap elemen

k_e = (E * A / Le) * np.array([[1, -1], [-1, 1]])

  1. Matriks kekakuan global

K = np.zeros((node_count, node_count))

  1. Rakitan matriks kekakuan global

for i in range(num_elements):

   K[i:i+2, i:i+2] += k_e
  1. Vektor gaya

F_ext = np.zeros(node_count) F_ext[-1] = F # Gaya diterapkan pada node terakhir

  1. Kondisi batas: Ujung kiri tetap

K = K[1:, 1:] # Menghapus baris dan kolom pertama (fixed node) F_ext = F_ext[1:] # Menghapus gaya pada fixed node

  1. Menghitung perpindahan

u = np.linalg.solve(K, F_ext)

  1. Menambahkan perpindahan pada node tetap (nol)

u = np.insert(u, 0, 0)

  1. Hitung tegangan pada setiap elemen

stresses = [] for i in range(num_elements):

   strain = (u[i+1] - u[i]) / Le
   stress = E * strain
   stresses.append(stress)
  1. Plot perpindahan dan tegangan

x = np.linspace(0, L, node_count)

plt.figure(figsize=(10, 5))

  1. Plot Perpindahan

plt.subplot(1, 2, 1) plt.plot(x, u, marker='o') plt.title("Perpindahan di sepanjang batang") plt.xlabel("Panjang (m)") plt.ylabel("Perpindahan (m)")

  1. Plot Tegangan

plt.subplot(1, 2, 2) plt.plot(x[:-1] + Le/2, stresses, marker='x', color='red') plt.title("Tegangan di sepanjang batang") plt.xlabel("Panjang (m)") plt.ylabel("Tegangan (Pa)")

plt.tight_layout() plt.show()

Berdasarkan 'code' diatas grafik akhir yang menjadi output perhitungan tersebut tertera pada gambar dibawah