Pada tahun 1956, saat komputer masih digunakan terutama oleh para
ilmuwan untuk menyelesaikan masalah matematis, bahasa FORTRAN pertama kali
dikembangkan oleh IBM. Dari asal-usul namanya, FORmula TRANslation, jelaslah
kekuatan bahasa ini digunakan dalam masalah matematis. Dalam kurun waktu satu
dekade saja, bahasa tersebut telah mempunyai standar di Amerika Serikat dengan
kode American National Standard Programming Language FORTRAN, ANSI X3,9-1996
yang biasa dikenal dengan sebutan FORTRAN 66, atau FORTRAN IV. Sejak
ditetapkannya standar tersebut, semakin banyak orang menggunakan bahasa
FORTRAN.
Hal ini ternyata semakin memperlihatkan banyaknya kekurangan pada
FORTRAN IV tersebut. Dengan demikian lama kelamaan banyak pihak yang
mengembangkan sendiri-sendiri, yang pada gilirannya menyebabkan satu program
FORTRAN yang ditulis di satu sistem menjadi besar kemungkinannya tidak dapat
digunakan di sistem lain. Karena itulah American National Standard Institute
menetapkan sebuah standar baru yang disebut FORTRAN 77 atau dikenal juga
dengan nama ANSI FORTRAN. Secara umum, FORTRAN 77 merupakan perkembangan ke
arah pemrograman terstruktur dibandingkan FORTRAN IV. Misalnya struktur IF
THEN-ELSE-END IF yang semula belum ada pada FORTRAN IV mulai dimasukkan pada
FORTRAN 77. Tambahan fasilitas baru lainnya misalnya adanya variabel berjenis
karakter (dengan spesifikasi CHARACTER) beserta fungsi-fungsi bawaannya (intrinsic
function), fasilitas penanganan input dan output (OPEN, CLOSE, dan
INQUIRE), juga pendimensian larik dengan indeks yang tidak harus positif (bisa
nol atau negatif).
Pada awal perkembangannya, harus diakui, bahwa bahasa FORTRAN
(khususnya FORTRAN IV) belum terstruktur seperti sekarang. akibat adanya
tuntutan akan adanya bahasa pemrograman yang terstruktur, kini bahasa FORTRAN
pun terdapat beberapa hal yang menempatkannya sebagai bahasa pemrograman yang
terstruktur, antara lain :
- Adanya struktur pengendali program seperti : Struktur DO-END DO, DO
WHILE-END DO, IF THEN-[ELSE IF]-ELSE-END IF.
- Adanya fasilitas untuk membuat unit-unit program seperti : PROGRAM,
SUBROUTINE, FUNCTION, BLOCK DATA.
- Adanya fasilitas untuk deklarasi jenis data seperti : REAL, DOUBLE,
PRECISION, INTEGER, IMPLICIT REAL, IMPLICIT INTEGER.
- Adanya fasilitas untuk memberikan komentar/keterangan pada program.
- Adanya pernyataan pengendali program yang tidak membutuhkan label
pernyataan seperti CYCLE dan EXIT.
Struktur Program
Fortran :
1. Metacommand
(compiler directives)
Sifatnya
optional (tidak harus ada) dan digunakan untuk melakukan komunikasi ke compiler
fortran
2. Comments
(komentar)
Digunakan
untuk memberi keterangan pada program sehingga memudahkan dokumentasi dan
pembacaan program
3. Statement
Merupakan
inti dari program yang berupa instruksi−instruksi.
Statement
dapat berupa :
·
konstanta
Nilai
yang sudah pasti dan tidak akan berubah selama program berjalan
Jenis Konstanta
Konstanta Numerik
–
Konstanta integer (bilangan bulat)
2
byte : -32767 s/d +32767
4
byte : -2147483647 s/d +2147483647
–
Konstanta real
Single
precission (ketepatan tunggal)
Double precission (ketepatan ganda)
Konstanta Karakter, yaitu non numerik, sebagai karakter ASCII yang
ditulis dalam tanda petik tunggal.
Konstanta Logika, yaitu logika benar dan salah.
·
Operator, untuk
melakukan operasi nilai antara variabel atau konstanta
Aritmatika , contoh : pangkat
(**), kali (*), bagi (/), penjumlahan (+), pengurangan (-)
Hubungan
Lebih kecil sama dengan :
.LT.
Sama dengan :
.EQ.
Tidak sama dengan : .NE.
Lebih besar dari : .GT.
Lebih besar sama dengan :
.GE.
Logika
Tidak atau bukan :
.NOT.
Dan : .AND.
Atau : .OR.
·
ungkapan/expression, yaitu pemberian nilai
kepada suatu identifier.
a.
Aritmatika
Contoh
: A + B / C + D
b.
Karakter
Contoh : JNSKEL = ‘L’
c.
Logika
Contoh : X .AND. Y
d.
Hubungan
Contoh : A .LT. B
·
Identifier, yaitu pemberian nama kepada
suatu variable, array, function, atau subroutine
Ketentuan
:
1. Maksimum
6 karakter
2. Karakter
pertama harus berupa huruf
3. Tidak
boleh ada spasi atau blank
4. Tidak
boleh menggunakan karakter khusus
·
Verb, merupakan instruksi kerja
yang dimengerti oleh compiler fortran.
·
unit specifier, menunjukkan
divais (layar/printer/file) yang digunakan dalam operasi input dan output,
berupa :
1. *
atau 0
alat
yang digunakan berupa keyboard atau layar
2. Ungkapan
integer
Nilai
integer selain 0 menunjukkan unit alat yang digunakan adalah file eksternal
(printer atau file di disk)
·
format specifier, menunjukkan
nomor label dimana terdapat statement format yang akan digunakan pada data
input dan output, berupa :
Label statement
Nama variabel statement
Ungkapan karakter
*
4. Sambungan dari
statement baris sebelumnya.
Ø
Aturan Penulisan
Fortran :
1. Kolom pertama merupakan Komentar atau
metacommand (C, *, $).
2. Kolom 1 sampai 5 untuk penulisan
label statement berupa angka.
3. Kolom 6 untuk indikasi sambungan dari
baris sebelumnya.
4. Kolom 7 sampai 72 untuk penulisan
Statement FORTRAN.
5. Kolom 73 sampai 80 tidak digunakan
(Untuk Komentar bebas).
Ø
Elemen Program Fortran
:
1. Metacommand atau compiler directive
sifatnya optional.
2. Komentar berupa tulisan bebas.
3. Statement merupakan inti yang berupa
instruksi-instruksi.
Teori Pemrograman Terstruktur Bahasa Fortran
·
INTEGER, yaitu digunakan untuk memesan tipe data bilangan bulat. Pemesanan dengancara
ini dikhususkan untuk nama variabel dengan
awalan selain dari I, J, K, L, M, dan N,
baik huruf kecil maupun huruf besar. Bentuk
umum dari pernyataan ini adalah
INTEGER[*byte] nama_variabel1, ...,
nama_variabeln
Contoh :
INTEGER nama, umur
·
REAL yaitu digunakan untuk memesan tipe data bilangan pecahan (berkoma). Pemesanancara
ini dikhususkan untuk nama variabel
yang berawal I, J, K, L, M, dan N, baik huruf kecilmaupun
huruf besar. Bentuk umum pernyataan ini adalah
REAL[*byte] nama_variabel1, ...,
nama_variabeln
Contoh :
REAL nama, nomor
·
CHARACTER yaitu digunakan untuk memesan tipe data karakter
(string) atau nilai variabeltersebut diapit oleh tanda kutip ('). Bentuk
umum pernyataan ini adalah :
CHARACTER*n nama_variabel1, ...,
nama_variabeln
Contoh :
CHARACTER nama à panjang
digit nilai 4 byte (karakter)
CHARACTER*15 alamat, kota à panjang
digit nilai alamat dan kota 15 byte (karakter).
Cara diatas juga dapat dibuat seperti :
CHARACTER nama*4 Ã panjang
digit nilai nama 4 byte (karakter)
CHARACTER Alamat*15, kota*10 Ã panjang
digit yang ditampung oleh nilai untuk variable nama sebanyak 15 digit dan kota
10 digit.
·
LOGICAL digunakan untuk memesan variabel logika, yang nilai dari variabel tersebut hanya .TRUE. dan
.FALSE. saja. Bentuk umum dari deklarasi ini adalah :
LOGICAL nama_variabel1, ..., nama_variabeln
STATEMENT DALAM PROGRAM FORTRAN
·
STATEMENT WRITE digunakan
untuk menuliskan isi suatu variabel pada suatu media output.
WRITE(no unit,
format) daftar_yang_ditulis
Keterangan
:
no
unit : nomor unit keluaran, secara default (dengan simbol *) berarti monitor.
format
: format pengaturan tampilan, secara default (dengan simbol *) berarti bebas.
Daftar
yang ditulis : variabel atau tetapan yang ingin ditulis.
Contoh :
WRITE
(*,10) A,B,C
·
READ digunakan untuk membaca data dari suatu media input
READ(no unit,
format) variabel
Keterangan
:
no
unit : nomor unit inputan, secara default (dengan simbol *) berarti keyboard.
format
: format pengaturan tampilan, secara default (dengan simbol *) berarti bebas.
variabel
: variabel tempat menyimpan data
Contoh :
READ (*,11)A,B,I
·
FORMAT digunakan untuk mmenentukan tata letak suatu data.
<label>
FORMAT (format specifier)
format
specifier berisi edit descriptor.
Repeatable Edit Descriptor
-
Edit Descriptor I (Integer)
<n> I <w>.<d>
n
= pengulangan, w = banyak digit
d
= jml angka nol dimuka pengganti blank
-
Edit Descriptor F (Real)
<n> F <w>.<d>
n
= pengulangan, w = banyak digit
d
= menunjukkan digit belakang titik desimal
-
Edit Descriptor E (Real ketepatan tunggal)
<n> F <w>.<d>
disajikan
dengan bentuk eksponensial
-
Edit Descriptor D (Real ketepatan ganda)
<n> D <w>.<d>
n
= pengulangan, w = banyak digit
d
= jumlah angka nol dimuka pengganti blank disajikan dengan bentuk eksponensial
- Edit Descriptor G
(Gabungan E dan F)
<n> G <w>.<d>
atau
<n> G <w>.<d>E<e>
-
Edit Descriptor A (Alphanumerik)
<n> A <w>
n
= pengulangan, w = banyak digit
-
Edit Descriptor L (Logika)
<n> L <w>
n
= pengulangan, w = banyak digit
Non Repeatable Edit Descriptor
-
Edit Descriptor konstanta karakter diantara tanda ‘ ‘
-
Edit Descriptor X (spasi) : <n>X
- Edit Descriptor / :
memberi jarak 1 baris
-
Edit Descriptor \ : masih dalam baris yang sama
-
Edit Descriptor H
<n> H
menampilkan
sejumlah n karakter ke alat output (blank dihitung)
-
Edit Descriptor P
<k> P
mengatur
banyaknya faktor skala nilai nol desimal
-
Edit Descriptor BN dan BZ
BN
(blank diabaikan) , BZ (blank = 0)
Contoh
Program Dengan Format
character
nama*20
write(*,7)
'Masukkan Nama : '
7
format (A,\)
read(*,8)
nama
8
format (A)
write(*,9)
'Nama Anda : ',nama
9
format (A,3X,A)
End
·
STATEMENT
IF
Statement
If merupakan statement yang dapat digunakan untuk menyeleksi suatu keadaan atau
syarat dan proses akan melakukan suatu tindakan tertentu. jika kondisi yang
diseleksi benar dan melakukan tindakan lainnya jika kondisi salah. If Statement
dapat digolongkan menjadi 3 yaitu:
1.
Logical If
Bentuk
Umum:
IF
(<Ekspresi>) <Statement> dimana
<ekspresi>
adalah ungkapan logika yang akan diseleksi <Statement>
2.
Arithmatic If
Bentuk
Umum:
IF
(<ekspresi>) <slabel1>,
<slabel2>, <slabel3> adalah executeable statement kecuali
statement Do, End, Endif,Elseif, Else, blok if atau statement if logika
lainnya.
IF
(<ekspresi>) <slabel1>,
<slabel2>, <slabel3>
<ekspresi>
adalah ungkapan aritmatic real atau integer
<slabel1>
adalah proses yang akan dilaksanakan jika ungkapan aritmatic yang diseleksi bernilai
negatif
<slabel2>
adalah proses yang akan dilaksanakan jika ungkapan aritmatic yang diseleksi
bernilai nol
<slabel3>
adalah proses yang akan dilaksanakan jika ungkapan aritmatic yang diseleksi
bernilai positif
3.
Block If
Statemen
ini digunakan untuk menyeleksi suatu kondisi dan mengambil tindakan apa yang
harus dilakukan dalam bentuk blok-blok statement.
Bentuk
Umum:
·
Bentuk Umum IF -
THEN
IF
(<ungkapan>) THEN
·
Bentuk Umum ELSE
ELSE
·
Bentuk Umum ELSEIF
ELSEIF
(<ungkapan>) THEN
·
Bentuk Umum ENDIF
ENDIF
Suatu
statemen Blok If harus diawali dengan statemen IF-THEN dan diakhiri
dengan statement ENDIF. Suatu loncatan menuju kedalam Blok If
tidak diperbolehkan, tetapi loncatan keluar Blok If diperbolehkan.
·
Statement
Lompatan
1.
Statement GOTO
Statement
GOTO merupakan statemen yang dapat digunakan untuk melompat menuju ke statemen
yang lainnya. Statemen GOTO dapat dibedakan atas:
a. GOTO tak bersyarat
Bentuk
Umum:
GOTO <Label>
Statement
ini digunakan untuk mengontrol proses untuk menuju ke suatu statemen lainnya
yang ditujukan oleh label tanpa ada syarat yang diberikan.
b.
GOTO Pengerjaan
Bentuk
Umum:
GOTO <nama>
[[,] (<label1> [, <label2>]…)]
Statemen
GOTO ini digunakan untuk melompat kesuatu label statemen yang ditunjukan oleh
isi dari <nama>
<nama>
adalah variable integer yang diisi oleh label dengan perintah Assign
c. GOTO
Bersyarat
Bentuk Umum:
GOTO
(<label1> [, <label2>]…)[,]
<i>
Statemen ini
digunakan untuk mengontrol loncatan dari proses ke suatu label tertentu
tergantung dari nilai ungkapan integer <i>
2.
Statement Perulangan
a.
Statement DO - CONTINUE
Kegunaan
Statement DO adalah untuk melaksanakan proses berulang statement yang ada
diantara statemen DO dan label
Bentuk Umum:
DO
<Label> [,] <variable> =
<ekspresi1>, <ekspresi2>, [,<ekspresi3>]
Sedangkan
Statemen CONTINUE digunakan sebagai Dummy Terminal dalam statement DO.
Disamping itu masih terdapat statement Subroutine dan Function yang
fungsi
dan
kegunaannya hampir sama dengan statement Procedure dan Function pada
bahasa
pemrograman Pascal.
Contoh
Program menggunakan Statement Perulangan
print
*,’Contoh program do-continue’
do
5 i=1,10
print
*,’nilai ke-’,I
5
continue
end
print
*,’Contoh program do-end do’
do
i=1,10
print
*,’nilai ke-’,I
end
do
end
Subroutine
Dalam Bahasa FORTRAN
Statement
ini dapat digunakan untuk mengidentifikasikan suatu unit program adalah suatu
rutin bagian serta sekaligus memberikan nama dan argumen-argumennya
Bentuk
umum:
SUBROUTINE
<nama_subroutine> [<parameter1>,
<parameter2>..]
Keterangan
:
<subroutine-name>
adalah nama dari rutin bagian
<parameter>
adalah nama dari argumen, atau disebut juga dengan dummy argumen
Berikut
ini diberikan beberapa ketentuan dari subroutine:
i.
Subroutine merupakan
unit program tersendiri yang diawali dengan statement SUBROUTINE dan diakhiri
dengan statement END atau RETURN, serta dipergunakan oleh unit program yang
lain dengan statement CALL.
ii.
Nama subroutine dapat
berisi statement-statement apapaun kecuali statement PROGRAM, statement
SUBROUTINE lainnya, maupun statement FUNCTION
iii.
Nama argument tidak
boleh tampak di statemenat COMMON, EQUIVALENCE, INTRINSIC, atau DATA
iv.
Argumen sesungguhnya
yang tampak di statement CALL harus sesuai urutannya, jumlahnya dan tipenya
dengan dummy argument yang tampak di statement Subroutine. Antara nama
argument sesungguhnya dengan dummy argument bole sama maupun
tidak.
v.
Di dalam suatu
suroutine dapat memaggil subroutine yang lainnya.
vi.
Subroutine dapat tidak
mengandung dummy argument , yang berarti tidak ada data yang dikirim ke
subroutine dan tidak ada hasil yang dikirim balik ke pemanggil subroutine
Contoh
:
CALL
CETAK
WRITE
(*, *) ‘FORTRAN’
CALL
CETAK
END
SUBROUTINE
CETAK
WRITE
(*, *) ‘------------‘
END
Outputnya
:
FORTRAN
·
STATEMEN DO
Berfungsi
untuk memerintahkan komputer agar menjalankan suatu deretan, berulang-ulang dengan
cara tertentu.
Bentuk
Umum : DO n var=m1,m2,m3
n
: Nomor statemen dari suatu statemen yang merupakan batas akhir dari deretan yang
harus diproses berulang-ulang.
Var
: Variabel integer/real yang harganya akan berubah-ubah dari suatu harga awal
m1 ke harga akhir m2 dengan besar langkah m3.
Pada
FORTRAN IV kadang DO tidak dapat diakhir dengan kontrol statemen, untuk mengatasi
ini dapat dipakai statemen CONTINUE. Sedang pada FORTARN 77 diizinkan.
Contoh:
DO
100 I =1,25
X=I**3
WRITE(*,10)X
100IF
(X .GT. 1000.0) GO TO 200
200
CONTINUE
STOP
END
·
Statement
END
Batas akhir dari statement program
Bentuk umum :
STOP atau STOP c
C :
suatu karakter sebanyak 1 s/d 6 karakter yang akan ditulis ke printer jika
statement dikerjakan
Tahapan Pembuatan
Program
Pertama, ketikkan PROGRAM (name), contohnya
PROGRAM MATRIKS. Kemudian ketikkan IMPLICIT NONE. Lalu dilanjutkan dengan
memasukkan INTEGER. Integer merupakan variabel bebas yang akan kita pakai dalam
program yang akan kita buat. Kemudian masukan
statement operasi, seperti write, read, remark, do, end, dll. Masing-masing statement memiliki fungsi yang
berbeda-beda. Write berfungsi untuk menuliskan isi suatu variable pada suatu media output. Write yang saya pakai pada program ini
yaitu Write(*,*)'Program Matriks penjumlahan'
Read berfungsi untuk membaca data dari suatu
media input, Read(*,*)x.
Remark untuk menandai statement yang akan dipakai
di input. Kemudian masukan statement
do yang berfungsi untuk melooping
(memproses berulang-ulang) sebuah statement atau fungsi yang digunakan, do
i = 1,x. Kemudian masukkan hasil(i,j)=A(i,j) + B(i,j)
Setelah itu jangan lupa masukan
statement END diakhir program untuk menghentikan
proses program agar tidak terjadi
looping yang terus menerus tanpa batas.