Fortran (atau FORTRAN) adalah sebuah bahasa pemrograman. Pertama kali dikembangkan pada tahun 1956 oleh John Backus di IBM. Digunakan dalam bidang sains selama 50 tahun kemudian. Ditujukan untuk mempermudah pembuatan aplikasi matematika, ilmu pengetahuan, dan tehnik. Pertama kali bernama FORTRAN yang merupakan singkatan dari Formula Translator/Translation, tetapi penggunaan huruf besar kemudian ditiadakan sejak versi Fortran 90. Merupakan bahasa pemrograman tingkat tinggi pertama dan prosedural, akan tetapi versi-versi terbaru dari Fortran kemudian dikembangkan dengan memasukkan kemampuan object-oriented programming. Unggul pada dukungan dalam menangani bentuk perhitunga, termasuk bilangan kompleks. Kelemahannya pada operasi input/output yang lalu. Kode sumbernya juga sulit dipahami dibanding bahasa pemrograman tingkat tinggi lainnya.

Keunggulan bahasa pemrograman FORTRAN

  • Proses eksekusi / kompilasi program yang cukup cepat.
  • Metode penulisan program sangat fleksibel, setiap bagian blok program dapat ditulis secara tidak berurutan.
  • Mendukung teknik kompilasi secara menyeluruh (all compilation), maksudnya misalkan kita memiliki 5 buah file FORTRAN yang saling berhubungan maka semua file tersebut dapat langsung dikompilasi semua dalam satu perintah dengan bantuan makefile yang kita buat.
  • Memilki kompilator (compiler) yang cukup banyak berkembang.

Contoh kode

  program average

  ! Read in some numbers and take the average
  ! As written, if there are no data points, an average of zero is returned
  ! While this may not be desired behavior, it keeps this example simple

  implicit none

  real, dimension(:), allocatable :: points
  integer                         :: number_of_points
  real                            :: average_points=0., positive_average=0., negative_average=0.

  write (*,*) "Input number of points to average:"
  read  (*,*) number_of_points

  allocate (points(number_of_points))

  write (*,*) "Enter the points to average:"
  read  (*,*) points

  ! Take the average by summing points and dividing by number_of_points
  if (number_of_points > 0) average_points = sum(points) / number_of_points

  ! Now form average over positive and negative points only
  if (count(points > 0.) > 0) then
     positive_average = sum(points, points > 0.) / count(points > 0.)
  end if

  if (count(points < 0.) > 0) then
     negative_average = sum(points, points < 0.) / count(points < 0.)
  end if

  deallocate (points)

  ! Print result to terminal
  write (*,'(a,g12.4)') 'Average = ', average_points
  write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
  write (*,'(a,g12.4)') 'Average of negative points = ', negative_average

  end program average

Referensi