Simbolisasi visual dari komputasi numerik Fortran.
Fortran, singkatan dari Formula Translation, adalah salah satu bahasa pemrograman tertua yang masih digunakan secara luas, terutama dalam bidang komputasi ilmiah, teknik, dan pemodelan cuaca. Popularitasnya tidak lekang oleh waktu karena kecepatan eksekusi yang luar biasa untuk operasi numerik intensif. Mempelajari contoh program fortran sangat krusial bagi siapa pun yang bergerak di bidang simulasi dan perhitungan performa tinggi.
Meskipun bahasa modern seperti Python dan Julia semakin populer, Fortran tetap menjadi standar emas dalam banyak lingkungan akademis dan industri yang memerlukan optimasi kecepatan maksimum. Kompiler Fortran modern sangat mahir dalam mengoptimalkan loop dan operasi array, menjadikannya pilihan tak terkalahkan untuk tugas-tugas yang melibatkan matriks besar atau integrasi persamaan diferensial.
Untuk memulai, mari kita lihat contoh program fortran paling dasar: menghitung nilai faktorial dari suatu bilangan bulat. Kode ini menggunakan sintaks modern Fortran 90/95 (Free Format) yang lebih mudah dibaca dibandingkan dengan Fortran 77.
PROGRAM HitungFaktorial
IMPLICIT NONE
INTEGER :: n, i
INTEGER(8) :: hasil ! Menggunakan tipe 8-byte untuk hasil besar
! Meminta input dari pengguna
WRITE(*,*) 'Masukkan bilangan bulat non-negatif:'
READ(*,*) n
! Validasi input
IF (n < 0) THEN
WRITE(*,*) 'Faktorial hanya didefinisikan untuk bilangan non-negatif.'
STOP
END IF
! Inisialisasi hasil
hasil = 1
! Perulangan untuk perhitungan
DO i = 1, n
hasil = hasil * i
END DO
! Menampilkan hasil
WRITE(*,*) 'Faktorial dari ', n, ' adalah: ', hasil
END PROGRAM HitungFaktorial
Dalam contoh di atas, penggunaan IMPLICIT NONE sangat dianjurkan untuk memastikan semua variabel harus dideklarasikan, mengurangi potensi kesalahan. Kami menggunakan INTEGER(8) untuk menampung hasil yang mungkin melebihi batas INTEGER standar.
Kekuatan utama Fortran terletak pada penanganan array. Berikut adalah contoh program fortran yang melakukan perkalian dua matriks (Matrix Multiplication). Ini menunjukkan bagaimana sintaks Fortran yang ringkas bekerja dengan operasi multidimensi.
PROGRAM PerkalianMatriks
IMPLICIT NONE
INTEGER, PARAMETER :: N = 3 ! Ukuran Matriks NxN
REAL, DIMENSION(N, N) :: A, B, C
INTEGER :: i, j, k
! Inisialisasi Matriks A dan B (Contoh Sederhana)
A = RESHAPE((/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 /), SHAPE=(/N, N/))
B = RESHAPE((/ 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 /), SHAPE=(/N, N/))
C = 0.0 ! Inisialisasi hasil matriks C menjadi nol
! Perkalian Matriks (C = A * B)
DO i = 1, N
DO j = 1, N
DO k = 1, N
C(i, j) = C(i, j) + A(i, k) * B(k, j)
END DO
END DO
END DO
! Menampilkan Matriks Hasil C
WRITE(*,*) 'Hasil Perkalian Matriks C:'
DO i = 1, N
WRITE(*, '(3F8.2)') C(i, :)
END DO
END PROGRAM PerkalianMatriks
Perhatikan penggunaan fungsi RESHAPE untuk mengisi matriks secara cepat. Operasi inti perkalian matriks (tiga loop bersarang) adalah inti dari banyak aplikasi komputasi numerik. Kompiler Fortran sangat efisien dalam mengeksekusi struktur loop semacam ini.
Seiring kompleksitas program meningkat, penggunaan modul menjadi praktik standar dalam Fortran modern. Modul memungkinkan enkapsulasi data dan prosedur, mempromosikan kode yang lebih modular dan dapat digunakan kembali. Ini adalah salah satu peningkatan terbesar dari Fortran lama ke sintaks modern. Setiap contoh program fortran besar harus mempertimbangkan modularisasi.
Dalam pengembangan perangkat lunak ilmiah, kemudahan integrasi dengan pustaka yang sudah teruji seperti BLAS (Basic Linear Algebra Subprograms) dan LAPACK juga menjadi alasan kuat mengapa para ilmuwan terus memilih Fortran. Kecepatan dan stabilitas yang ditawarkan oleh pustaka-pustaka ini sulit ditandingi oleh bahasa lain tanpa kompromi performa yang signifikan. Mempelajari cara memanggil fungsi eksternal (seperti dari BLAS) dari kode Fortran Anda adalah langkah selanjutnya yang penting setelah menguasai contoh program fortran dasar yang telah disajikan di sini.