Fisika komputasi menggunakan C (bagian 1)

Tulisan ini dibuat dengan tujuan untuk membagi pengalaman belajar saya dengan buku Computational Physics  karangan R. Fitzpatrick. Alasan mengapa saya membaca buku ini dikarenakan menurut hemat saya, bahasa pemrograman C merupakan bahasa pemrograman yang dapat menghasilkan running program yang relatif cepat dibandingkan bahasa pemrograman seperti Pythonpaket perangkat lunak Maple, Matlab, atau Mathematica yang sering digunakan dalam dunia fisika komputasi. Buku di atas dapat diperoleh dengan cuma-cuma melalui link ini.

Pada bab 1 dalam buku tersebut dijelaskan mengenai pengenalan garis besar mengapa buku itu ditulis dan alasan menggunakan bahasa pemrograman C. Pembahasan dalam bab 1 ini dibagi dalam beberapa subbab yaitu

  1. Intended audience : menjelaskan bahwa buku ini merupakan catatan kuliah yang ditujukan untuk pembaca yang mengambil mata kuliah fisika komputasi atau mahasiwa tingkat lanjut (mahasiswa semester 4 atau 5).
  2. Major sources : beberapa sumber-sumber literatur penunjang atau pelengkap yang disarankan untuk dibaca oleh pembaca saat membaca buku ini.
    1. Buku penunjang yang terkait bahasa pemrograman C/C++ :
      Software engineering in C, (P.A. Darnell & P.E. Margolis)
      The C++ programming language, ( B. Stroustrup)
      Schaum’s outline: Programming with C – 2nd edition, (B. Gottfried)
      Schaum’s outline: Programming with C++ – 2nd edition, (J.R. Hubbard)
    2. Buku penunjang yang terkait metode numerik dan fisika komputasi :
      Computational physics, (D. Potter)
      Numerical recipes in C: The art of scientific computing, (W.H. Press, et.al.)
      Computational physics, (N.J. Giordano)
      Numerical methods for physics – 2nd edition, (A.L. Garcia)
    3. Buku penunjang terkait permasalahan fisika dalam bidang olahraga dan baseball :
      The physics of baseball, (R.K. Adair)
      The physics of sports, (ed: A.A. Armenti)
    4. Buku dan paper penunjang terkait permasalahan fisika dalam bidang keteracakan (chaos) :
      Chaos in a computer-animated pendulum, (R.L. Kautz)
      Nonlinear dynamics and chaos, (S.H. Strogatz)
      Chaos: An introduction to dynamical systems, (K.T. Alligood, T.D. Sauer, & J.A. Yorke)
  3. Purpose of course : menceritakan tujuan buku ini (atau kuliah yang merupakan dasar buku ini) untuk memperlihatkan kemampuan komputer untuk membantu manusia dalam menyelesaikan perhitungan fisika yang rumit dan mampu memberikan pemahaman lebih mengenai masalah fisika yang tidak dapat diberikan tanpa bantuan komputer.
  4. Course philosophy : menceritakan mengenai pendekatan yang dilakukan penulis untuk menjelaskan fisika komputasi. Capaian yang ingin ditujukan oleh penulis adalah pembaca mampu menyelesaikan permasalahan fisika menggunakan bahasa pemrograman yang mereka bisa. Namun dalam buku ini dibatasi lingkupnya hanya untuk bahasa pemrograman C.
  5. Programming methodologies : menjelaskan mengenai tiga macam pendekatan yang dapat dilakukan oleh seseorang yang menangani masalah fisika menggunakan bantuan komputer.
    1. Menggunakan paket software seperti Maple, Matlab, atau Mathematica. Keuntungan menggunakan bahasa pemrograman ini adalah cepat dalam pembuatan coding namun lama dalam hal proses running program. Hal ini dikarenakan bahasa pemrograman dalam Maple, Matlba, atau Mathematica tidak di-compile melainkan di-interpret. Jadi proses interpret ini lebih memakan waktu lebih banyak dari compile yang langsung menerjemahkan source code ke dalam bahasa mesin. Dalam proses interpet ini, source masih harus diterjemahkan ke dalam meta-language dan baru diterjemahkan ke dalam bahasa mesin. Meta-language ini bersifat tidak bergantung pada mesin atau prosesor yang digunakan. Oleh karena itu mesin harus menerjemahkan lagi ke dalam instruksinya. Hal yang berbeda tidak terjadi dengan bahasa pemrograman yang di-compile yang bersifat bergantung pada mesin. Jadi mesin tidak perlu lagi menerjemahkan instruksi namun langsung menjalankan instruksi itu.
    2. Menggunakan subrutin yang sudah ada dan memodifikasi subrutin itu sesuai kebutuhan. Contohnya adalah menggunakan subrutin library NAG, LIPACK, ODEPACK.
    3. Menulis program from the scratch, artinya membuat program dengan menggunakan bahasa pemrograman yang di-compile dan hanya menggunakan library standard.
      Penulis menekankan pendekatan terakhir ini sebagai inti dari penjelasan dalam bukunya.
  6. Scientific programming languages : menjelaskan mengenai alasan memilih C sebagai bahasa pemrograman yang digunakan dalam buku ini. Penulis memberikan 4 contoh perbandingan bahasa pemrograman yang bisa digunakan dalam proses perhitungan saintifik yaitu Fortran 77, Fortran 90, C, dan C++. Fortran 90 memiliki kelemahan dalam harga mesin compiler-nya yang relatif tidak murah. C++ menawarkan object-oriented programming dan tidak diperlukan dalam pembahasan buku ini yang lebih menekankan pada paradigma prosedural. Dan terakhir ialah Fortran 77, yang sudah dianggap terlalu usang untuk diajarkan di abad 21 ini.  

One thought on “Fisika komputasi menggunakan C (bagian 1)

Leave a Reply

Your email address will not be published.