Simulasi yang tidak lepas dari fisika

Perkenalan

Jihad D
5 min readAug 29, 2023

Simulasi dan Pemodelan Sistem Fisis atau yang biasa disingkat SPSF adalah salah satu mata kuliah wajib bagi mahasiswa sarjana Fisika Institut Teknologi Bandung. Mata kuliah ini dapat diambil oleh mahasiswa tingkat 4 atau terakhir dengan syarat telah mengambil mata kuliah Fisika Komputasi atau yang biasa disingkat dengan Fiskom. Berdasarkan silabusnya, secara ringkas mata kuliah ini akan mempelajari tentang representasi dan analisis data menggunakan grafik, metoda numerik dalam fisika, sistem partikel sederhana, sistem bilangan random, pengolahan sinyal digital (time series data), metoda simulasi berbasis grid, metode elemen hingga, metode simulasi berbasis partikel, dan intelegensia buatan (AI).

Pada Agustus 2023 yang lalu saya termasuk salah satu mahasiswa Fisika yang diwajibkan untuk mengambil matakuliah ini. Dalam pikiran saya matakuliah ini akan banyak membahas tentang pemrograman yang berkaitan dengan sistem fisis (Fisika). Saya sebenarnya sedikit menyukai tentang pemrograman, terutama saat tingkat pertama telah mengambil mata kuliah wajib pada Tahap Persiapan Bersama (TPB) Pengenalan Komputasi (Pengkom). Hal pertama yang saya ingat saat diajarkan tentang pemrograman dalam bahasa python adalah..

name = str(input("name : "))
print(f"Hello {name}!")

Akan tetapi, saya kurang menyukai tentang fisika-nya. Aneh memang mahasiswa yang berkuliah di program studi Fisika apalagi berkuliah di ITB, tetapi tidak menyukainya dan bertahan hingga tingkat terakhir…

https://assets.kompasiana.com/items/album/2023/05/15/9a24d48eafa6ba090c13cb91bcda5323-6462152e08a8b53812152342.jpg?t=o&v=400

Pertemuan pertama

Perkuliahan pertama SPSF K01 dimulai dengan banyak kejutan yang diberikan oleh bapak dudung selaku dosen pengampu matakuliah ini. Salah satunya adalah ujaran provokasi beliau berikut

Bagi yang kurang cocok dengan kelas ini masih ada kelas sebelah yang lebih bagus @pak dudung

Selain itu juga beliau berterus terang dengan mengatakan akan senang jika separuh kelas pindah ke kelas sebelah. Tidak cukup sampai disitu, beliau juga mengatakan nanti akan banyak tugas. Klimaksnya, menjelang akhir kelas beliau mengadu domba mahasiswa-nya dengan menunjuk salah seorang mahasiswa sebagai korban pertama untuk maju ke depan mengerjakan soal, lalu menyuruhnya untuk menunjuk teman yang lain untuk maju ke depan dan begitu seterusnya hingga perkuliahan berakhir.

https://hajijatim.id/wp-content/uploads/2023/07/WhatsApp-Image-2023-07-09-at-05.37.45-700x380.jpeg

Seperti yang ditunjukan pada gambar diatas, dapat menggambarkan bagaimana ekspresi saya pada saat itu. Namun itu semua tidak mengurungkan niat saya untuk melanjutkan kuliah di kelas SPSF K01 ini. Kembali ke Satuan Acara Perkuliahan (SAP) yang dapat dilihat pada laman SIX (dibawah), mata kuliah ini merupakan kelanjutan dari mata kuliah Fisika Komputasi pada tingkat 3. Namun dengan pemrograman yang lebih mendalam tentang aplikasi maupun metode yang akan diterapkan dalam sistem fisis dan simulasinya.

SAP SPSF

Berharap dan berkomit

Dari berbagai kesulitan pasti akan ada kemudahan, mungkin itulah yang saya benamkan di hati agar tetap semangat dalam menjalani perkuliahan ini dan memperoleh hasil maksimal yang sesuai dengan kapasitas dan kemampuan yang saya miliki. Harapan dan ekspektasi saya tidak terlalu besar atau aneh-aneh, seperti perkuliahan yang menarik, tidak menyulitkan mahasiswa dan tentunya yang sangat amat membuat mahasiswa bahagia adalah nilai yang memuaskan (A). Sehingga saya dapat memperoleh investasi (waktu, tenaga, otak, uang) yang positif selama menjalani perkuliahan ini dalam satu semester.

Komitmen dalam perkuliahan ini yang bisa saya lakukan adalah dengan mengerjakan tugas-tugas yang diberikan sesuai kapasitas dan kemampuan saya. Selain itu juga, jika mendapatkan kesulitan dan stuck saya tidak akan ragu bertanya dan berdiskusi kepada teman saya, walaupan hal itu membuat bete teman saya yang harus mengeluarkan daya, upaya, dan tenaganya untuk menjelaskannya kepada saya.

https://i.imgflip.com/67mpqi.jpg

Beberapa hal penting yang harus saya lakukan seperti

  • Mereview kembali sintaks-sintaks dalam python, karena dalam perkuliahan ini akan menggunakan bahasa pemrograman python, selain itu juga karena saya tidak sering melakukan coding atau menuliskan sintaks-sintaks dalam python membuat saya lupa dan tidak familiar atau tidak terbiasa.
  • Menonton video tutorial dan mempraktikannya langsung, hal ini dapat membantu hands on langsung dan mencoba-coba sintaks yang diajarkan dalam video tutorial. Salah satu channel youtube yang membantu saya dalam mempelajari bahasa pemrograman python adalah Kelas Terbuka dan freeCodeCamp. Pada channel kelas terbuka lebih mudah dipahami karena memang berbahasa Indonesia, tetapi dalam channel freeCodeCamp lebih banyak hal yang dapat dipelajari seperti topik-topik terbaru dan menarik dalam dunia Code dan rekaman kelas perkuliahan kampus luar negeri yang membagikan ilmunya secara gratis melalui channel tersebut.

Berikut adalah review kembali code yang telah dipelajari pada saat mengambil mata kuliah Fisika Komputasi. Pada saat itu materi yang diberikan adalah bagaimana cara menghitung nilai dari integral menggunakan komputasi. Banyak metode yang dapat digunakan dalam memecahkan permasalahan ini. Salah satunya, program dibawah ini digunakan untuk membandingkan hasil yang diperoleh dari menghitung integral tentu dengan menggunakan metode trapezoid dan monte carlo. Setelah program ini dijalankan output yang dikeluarkan adalah hasil integral berdasarkan metode monte carlo sebesar 1.9282319238342245 dan berdasarkan metode trapezoid sebesar 2.000004000000001.

import random

# metode trapezoid
def trapezoid(f, a, b, n):
h = (b-a)/n
x = [a+i*h for i in range(n+1)]
y = [f(x[i]) for i in range(n+1)]
result = h/2*(y[0] + y[n] + 2*sum(y[1:n]))
return result

# metode monte carlo
def monte_carlo(f, a, b, n):
sum = 0
for i in range(n):
x = random.uniform(a, b)
sum += f(x)
result = (b-a)/n*sum
return result

# fungsi yang akan di integralkan
def f(x):
return x**3 - 1

# set batas atas integral (a), batas bawah integral (b), n
a = 0
b = 2
n = 1000

# hasil
result_trapezoid = trapezoid(f, a, b, n)
result_monte_carlo = monte_carlo(f, a, b, n)

# tampilkan hasil
print("Hasil integral dengan Metode Trapezoid\t\t=", result_trapezoid)
print("Hasil integral dengan Metode Monte Carlo\t=", result_monte_carlo)

Mungkin itu saja yang bisa saya ketik, kurang lebihnya mohon maaf, wassalam…

--

--