Skip to content

Tipe data di Fortran 95 : Tipe Data Intrinsik dan Turunan

September 8, 2012

Bahasa pemprograman Fortran memiliki tipe data yang telah terdefinisi oleh bahasa Fortran sendiri, yang disebut sebagai intrinsic data types atau tipe data intrinsik yang terdiri dari lima tipe data. Namun, memungkinkan juga jika kita mendifinisikan tipe data lain berdasarkan kumpulan dari tipe data instrinsik, yang disebut sebagai derived data types. Bisa dibilang ada dua tipe dari tipe data ini.

1. Tipe Data Intrinsik. 

Dari kelima tipe data yang ada, tiga diantaranya merupakan tipe numerik yang digunakan sebagai kalkulasi — integer, real, dan complex. Sedangkan, dua diantaranya merupakan non-numerik yang biasanya digunakan untuk pemprosesan text — character dan logical.

Integer, merupakan tipe data bilangan bulat, yang nilainya bisa signed atau unsigned — teman-teman pasti sangat familiar dengan yang ini. Kalau komputer kita 32 bit, n=32, secara default, range nya adalah -2n-1 hingga +2n-1-1 atau -2147483648 hingga +2147483648. Contoh,

integer, parameter :: a = 2147483648 !atau yang dibawah
integer(kind=4), parameter :: a0 = 2147483648 !secara default, alokasi 4 byte
integer(4), parameter :: a1 = 2147483648 !bisa juga disingkat penulisannya seperti ini
integer(16), parameter :: a2 = 2147483648 !bisa juga mengalokasi 8,16,.. byte


Real, merupakan tipe data floating point yang digunakan di Fortran. Stadarnya, bernilai 10-37 hingga 10_37, dengan presisi enam digit desimal. Sama halnya seperti integer, alokasi memori secara default adalah 4 byte. Contoh,

real, parameter :: a = 12.345678e30

Complex, nah, kalo yang ini spesial punya Fortran, hehe. Merupakan tipe data bilangan kompleks, yang terdiri dari bilangan nyata dan bilangan imajiner. Nah, tipe data yang ini memerlukan dua kali alokasi memori dari data normal. Misalnya, default dari tipe data real adalah 4 byte, sedangkan bilangan complex menggunakan 4 byte untuk bilangan nyata, dan 4 byte untuk bilangan imajiner. Contoh,

complex, parameter :: a = (1.5,5.5) ! (bilangan nyata, bilangan imajiner)

Character, yang ini juga pasti familiar. Bedanya, di Fortran perlu dialokasikan terlebih dahulu panjang karakternya. Karakter ini bisa ditandai dengan satu atau dua tanda petik, seperti “KARAKTER” atau ‘KARAKTER’. Contoh,

character(len=20, kind=1), parameter : : tulisan_romawi = 'KARAKTER'
character(len=20, kind=kanji) :: tulisan_kanji  !yang ini, tidak semua compiler support, hehe.

Pada karakter ini, kita juga bisa menyingkat characer(20) :: tulisan_romawi. Secara default, kind=1.

Logical, merupakan tipe data yang berisi true/false. Pasti juga familiar. Contoh,

logical, parameter :: a = .true.

2. Tipe Data Turunan

Sering kali kita ingin memanipulasi objek yang lebih rumit dari sekedar data intrinsik. Misalnya, kita ingin memanipulasi objek yang memrepresentasikan personal. Contoh,

program tipeturunan
type orang
 character(5) :: nama
 real :: umur
 integer :: nim
endtype orang
type(orang) :: saya,maneh
!sedikit main-main
saya = orang('cica',22.05,114)
maneh = orang('unop',19.79,75)
!
!misalnya, cari beda umur
a=saya%umur-maneh%umur

700 format(a,a,a,a,a,f5.2,a)
write(*,700)'beda umur ',saya%nama,' dan ',maneh%nama,' adalah',a,' tahun'
endprogram tipeturunan

Nah, outputnya, kira-kira berbunyi “beda umur cica dan unop adalah 2.26 tahun”. Selanjutnya, kita juga bisa membuat turunan yang komponennya berupa turunan, disebut juga sebagai structure constructor. Misalnya, kita akan membuat tipe data lingkaran, yang komponenya berupa posisi pusat dan jari-jari, yaitu (a,b, dan r) jadi deklarasinya seperti ini,

type titik
 real::x,y
endtype titik
!definisi lingkaran baru bisa
type lingkaran
 type(titik) :: a,b,r
endtype lingkaran

type(lingkaran)::L
L%a%x=1
L%a%y=5
L%b%x=2.4
L%b%y=1.5
!dan seterusnya ......

Okay, sampai di sini dulu. Semoga bermanfaat.😉

One Comment leave one →
  1. September 16, 2012 5:27 am

    Postingan yang cukup sadiss bagi kaum hawa..🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: