Fortran - Tipe Data

Fortran menyediakan lima tipe data intrinsik, namun Anda juga bisa mendapatkan tipe data Anda sendiri. Lima tipe intrinsik adalah -

  • Jenis bilangan bulat
  • Tipe nyata
  • Tipe kompleks
  • Tipe logis
  • Jenis karakter

Jenis Integer

Jenis integer hanya dapat menampung nilai integer. Contoh berikut mengekstrak nilai terbesar yang dapat disimpan dalam integer empat byte biasa -

program testingInt
implicit none

   integer :: largeval
   print *, huge(largeval)
   
end program testingInt

Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -

2147483647

Perhatikan bahwa file huge()function memberikan angka terbesar yang dapat dipegang oleh tipe data integer tertentu. Anda juga dapat menentukan jumlah byte menggunakankindpenentu. Contoh berikut menunjukkan ini -

program testingInt
implicit none

   !two byte integer
   integer(kind = 2) :: shortval
   
   !four byte integer
   integer(kind = 4) :: longval
   
   !eight byte integer
   integer(kind = 8) :: verylongval
   
   !sixteen byte integer
   integer(kind = 16) :: veryverylongval
   
   !default integer 
   integer :: defval
        
   print *, huge(shortval)
   print *, huge(longval)
   print *, huge(verylongval)
   print *, huge(veryverylongval)
   print *, huge(defval)
   
end program testingInt

Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -

32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647

Tipe Nyata

Ini menyimpan angka floating point, seperti 2.0, 3.1415, -100.876, dll.

Biasanya ada dua tipe nyata yang berbeda, default real jenis dan double precision Tipe.

Namun, Fortran 90/95 memberikan kontrol lebih besar atas ketepatan tipe data nyata dan integer melalui file kind specifier, yang akan kita pelajari di bab Bilangan.

Contoh berikut menunjukkan penggunaan tipe data nyata -

program division   
implicit none  

   ! Define real variables   
   real :: p, q, realRes 
   
   ! Define integer variables  
   integer :: i, j, intRes  
   
   ! Assigning  values   
   p = 2.0 
   q = 3.0    
   i = 2 
   j = 3  
   
   ! floating point division
   realRes = p/q  
   intRes = i/j
   
   print *, realRes
   print *, intRes
   
end program division

Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -

0.666666687    
0

Tipe Kompleks

Ini digunakan untuk menyimpan bilangan kompleks. Bilangan kompleks memiliki dua bagian, yaitu bagian nyata dan bagian imajiner. Dua unit penyimpanan numerik yang berurutan menyimpan dua bagian ini.

Misalnya, bilangan kompleks (3.0, -5.0) sama dengan 3.0 - 5.0i

Kami akan membahas tipe Kompleks lebih detail, di bab Bilangan.

Jenis Logis

Hanya ada dua nilai logika: .true. dan .false.

Jenis Karakter

Tipe karakter menyimpan karakter dan string. Panjang string dapat ditentukan oleh penentu len. Jika tidak ada panjang yang ditentukan, itu adalah 1.

For example,

character (len = 40) :: name  
name = “Zara Ali”

Ekspresi, name(1:4) akan memberikan substring "Zara".

Pengetikan Implisit

Versi lama Fortran mengizinkan fitur yang disebut pengetikan implisit, misalnya, Anda tidak perlu mendeklarasikan variabel sebelum digunakan. Jika variabel tidak dideklarasikan, maka huruf pertama dari namanya akan menentukan tipenya.

Nama variabel yang dimulai dengan i, j, k, l, m, atau n, dianggap untuk variabel integer dan variabel lainnya adalah variabel nyata. Namun, Anda harus mendeklarasikan semua variabel karena ini adalah praktik pemrograman yang baik. Untuk itu Anda memulai program Anda dengan pernyataan -

implicit none

Pernyataan ini mematikan pengetikan implisit.