Anda di halaman 1dari 20

I.

PENDAHULUAN

1.1. Bahasa Pemograman

Dalam dunia aplikasi komputer dikenal istilah hardware (mesin komputer) dan
software (program komputer). Software dibuat dengan menggunakan bahasa (bahasa
pemograman) yang bisa dimengerti oleh mesin komputer (bahasa mesin).

Bahasa-bahasa pemograman dibuat dengan tujuan berbagai macam aplikasi tertentu.


Bahasa tersebut antara lain : COBOL (Common Oriented Bussines Language),
PASCAL, BASIC, dll.

FORTRAN (singkatan dari Formula Translation) diperkenalkan oleh John Backus.


Bahasa Fortran ditujukan untuk aplikasi dibidang sains dan teknik.

Dengan bantuan COMPILER, bahasa Fortran diterjemahkan ke bahasa mesin,


sehingga perintah bisa di eksekusi Processor. Proses ini disebut COMPILATION.

Ada tiga langkah kerja komputer yaitu : COMPILATION LINK EXECUTION.


Proses Link, dengan batuan program LINKER, adalah untuk melengkapi program
bahasa mesin hasil compile dengan beberapa komponen lain sehingga program
bahasa mesin bisa dieksekusi. Pada bahasa versi Fortran Powerstation 4.0, proses
link dilakukan dengan memilih perintah BUILD.

1.2. Bagan Alir (Flow Chart)

Bagan alir adalah diagram yang disusun untuk menyederhanakan arus logika suatu
program, khususnya untuk program-program yang rumit, dengan menggunakan
simbol-simbol yang sudah standard, antara lain :

SIMBOL PENJELASAN

Arah LANGKAH HITUNGAN

BACA DATA atau TULIS DATA/HASIL

Proses PERHITUNGAN

PENGECEKAN (JIKA)

Tanda MULAI atau AKHIR PROSES

TANDA SAMBUNG (didalam lingkaran diberi


huruf A, B, C, D, dst.)

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 1


Contoh :
Buat bagan alir untuk menghitung luas persegi panjang.

Jawab :
Luas persegi panjang A = P x L
Jika diperoleh A < 0, maka ada salah memasukkan data panjang (P) atau lebar (L).

Flow chart :

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 2


II. ATURAN MENULIS PROGRAM
DALAM BAHASA FORTRAN

2.1. Aturan Menulis Pada Worksheet

Lembar kerja (worksheet) pada bahasa Fortran terdiri dari baris dan kolom. Yang
digunakan dalam penulisan program hanya dari kolom 1 s/d kolom 72, selebihnya
tidak akan terbaca oleh komputer. Aturan penulisan adalah sebagai berikut :
1. Kolom 7 s/d kolom 72 : Tempat MENULIS STATEMEN.
2. Kolom 6 : Tempat TANDA SAMBUNG. Apabila statemen lebih dari kolom
72 maka sambungan statemen ditulis pada baris dibawahnya dan diberi tanda
sambung pada kolom 6. Tanda sambung menggunakan karakter : 1 , 2 , * ,
% , @ , % , a , A , C , dll.
3. Kolom 1 s/d kolom 5 : Tempat NOMOR ALAMAT STATEMEN.
4. Kolom 73 keatas : Tidak akan diproses oleh komputer.
5. Apabila kolom 1 diberi huruf C maka tulisan yang ada kolom 2, 3, dst
tidak akan diproses oleh komputer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 71 72 73

C C O N T O H A T U R A N

A = 1 0 . 5
B = 10 * A + A * * 3 + ... - 1 0 +
& 5 * * 3

W R I T E ( * , 5 ) B
5 F O R M A T ( F 5 . 2 )

S T O P
E N D

2.2. Aturan Menulis Statemen

A. Konstanta

Konstanta ada 2 macam, yaitu konstanta INTEGER dan konstanta REAL. Konstanta
integer adalah konstanta yang tidak mengandung titik desimal sedangkan konstanta
real adalah sebaliknya.

KONTANTA INTEGER KONSTANTA REAL


0 0.
10 10.5
- 100 - 100.

B. Variabel

Variabel ada 2 macam, yaitu variabel INTEGER dan variabel REAL.

Variabel integer: untuk menyimpan konstanta integer dan huruf pertamanya adalah
huruf : I, J, K, L, M, N. Sedangkan variabel real: untuk menyimpan konstanta real
dan huruf pertamanya adalah huruf : A s/d Z kecuali I N.

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 3


Untuk merubah nilai dari integer ke real digunakan fungsi FLOAT (variabel integer).
Sedangkan untuk merubah nilai real ke integer digunakan fungsi IFIX (variabel real).

Variabel dapat diberi nama sekehendak kita, asal memenuhi aturan :


1. Maksimum 6 karakter dan minimum 1 karakter.
2. Huruf pertama harus alphabetis.
3. Tidak boleh menggunakan karakter khusus seperti : - , + , ? , & , % , dll.
4. Tidak boleh ada tanda blank (spasi) di tengah-tengah variabel.
5. Tidak boleh menggunakan kata standard yang biasa dipakai oleh compiler
seperti READ, WRITE, FORMAT, END, dll.

C. Operator Aritmetika

Dalam bahasa Fortran dikenal operator-operator sebagai berikut :


1. Penambahan : +
2. Pengurangan : -
3. Pembagian : /
4. Perkalian : *
5. Perpangkatan : **

D. Aturan Tambahan

1. Hal perpangkatan :
a. Variabel integer dipangkatkan variabel integer : DIPERBOLEHKAN.
Contoh : K = N**2 (benar)

b. Variabel integer dipangkatkan variabel real : TIDAK DIPERBOLEHKAN


Contoh : K = N**2.5 (salah)

c. Variabel real dipangkatkan variabel integer : DIPERBOLEHKAN.


Contoh : A = 8.5**2 (benar)

d. Variabel real dipangkatkan variabel real : DIPERBOLEHKAN, asal harga


variabel real tidak negatif.
Contoh : A = 8.5**2.5 (benar)
A = -8.5**2 (salah)

2. Dua operator tak boleh ditulis berderet. Untuk mengatasi hal ini dipakai tanda
kurung.
Contoh : A = 3.5 * - 10.5 (salah)
A = 3.5 * (- 10.5) (benar)

3. Hasil bagi 2 variabel bulat adalah bilangan bulat pula.


Contoh : I = 10/4 maka hasilnya harga I = 2

4. Mixed Mode sebaiknya dihindarkan.


Contoh : A = B + C + I (dihindarkan)
Maka harus dibuat : A = B + C + FLOAT (I)

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 4


2.3. Proses Eksekusi Program Fortran Powerstation 4.0

Program yang telah dibuat pada lembar kerja disimpan (SAVE) dengan nama
sembarang dan harus diberi nama tambahan (extension name) adalah .FOR .
Contoh : RUNGEKUT.FOR. Selanjutnya pilih COMPILE, BUILD dan EXECUTE.

Pada saat proses Compile, komputer akan memberi informasi bila terdapat kesalahan
dalam penulisan program. Informasi ini dapat dibaca pada tampilan layar bawah
yang muncul pada saat proses Compiling. Informasi ini memperlihatkan nomor baris
letak kesalahan dan jenis kesalahan. Contoh tampilan kesalahan adalah sbb :

--------------------Configuration: RUNGEKUT - Win32 Debug--------------------

Compiling Fortran...
D:\My Documents\Bahan Kuliah\RUNGEKUT.FOR
D:\My Documents\Bahan Kuliah\RUNGEKUT.FOR(13): error FOR3852: syntax error
D:\My Documents\Bahan Kuliah\RUNGEKUT.FOR(21): error FOR3655: missing label on FORMAT
D:\My Documents\Bahan Kuliah\RUNGEKUT.FOR(49): error FOR3852: syntax error detected between G and )
D:\My Documents\Bahan Kuliah\RUNGEKUT.FOR(123): error FOR3309: undefined label 4
Error executing fl32.exe.
RUNGEKUT.OBJ - 4 error(s), 0 warning(s)

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 5


III. STATEMEN INPUT/OUTPUT

Input dan Output (I/O) biasanya menggunakan 2 statemen yaitu : I/O Statemen dan
Format Statemen.

3.1. I/O Statemen

Bentuk umum input : READ (i,1) var1, var2, ...


Bentuk umum output : WRITE (i,1) var1, var2, ...

Penjelasan :
i : nomor alat input atau output
1 : nomor alamat FORMAT statemen
var1, var2, dst : nama variabel

Contoh :
READ (8,10) A,B
10 FORMAT (2F10.2)
C=A*B
WRITE (8,20) C
20 FORMAT (F10.2)

Bila i diganti dengan tanda * , berarti data di input ataupun di output melalui
layar monitor komputer.
Bila 1 diganti dengan tanda * , maka format penulisan bisa bebas menggunakan
integer ataupun real tergantung dari macam variabel.

Contoh :
READ (*,*) A
READ (*,10) B
10 FORMAT (F10.2)
C=A*B
WRITE (*,*) C
_
_

3.2. Format Statemen

A. Format I

Fungsi : dipakai untuk membaca atau menulis data INTEGER.


Bentuk umum : FORMAT (nIw)

Penjelasan :
n : jumlah data format I
w : banyak kolom yang dipakai oleh data

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 6


Contoh :
_
_

WRITE (*,10) I
10 FORMAT (I5)
WRITE (*,20) J, K, L
20 FORMAT (I4, 2I6)
_
_

B. Format F

Fungsi : dipakai untuk membaca atau menulis data REAL.


Bentuk umum : FORMAT (nFw.d)

Penjelasan :
n : jumlah data format F
w : banyak kolom yang dipakai oleh data
d : banyak digit dibelakang titik desimal

Contoh :
_
_

WRITE (*,20) B, C, D
20 FORMAT (F7.3, 2F10.4)
_
_

C. Format X

Fungsi : memberitahu banyaknya spasi antara data yang dibaca / ditulis.


Bentuk umum : FORMAT (nX)

Penjelasan :
n : jumlah spasi antara data

Contoh :
_
_

WRITE (*,20) A, B
20 FORMAT (1x, F7.3, 2x, F10.4)
_
_

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 7


D. Format literal

Fungsi : menulis pernyataan pada format pembacaan/penulisan.


Bentuk umum : FORMAT (aaa...)

Penjelasan :
: tanda format literal
aaa... : pernyataan yang ditulis

Contoh :
_
_

WRITE (*,30) ALUAS


30 FORMAT (Luas persegi panjang = , F5.2)
_
_

E. Format A

Fungsi : dipakai untuk membaca data alphanumeris


Bentuk umum : FORMAT (nAw)

Penjelasan :
n : jumlah data format A
w : banyak kolom yang dipakai oleh data

Pemakaian format A harus didahului dengan Statemen CHARACTER yang


diletakkan pada awal listing program. Statemen CHARACTER ini berfungsi untuk
menyatakan bahwa suatu variabel hanya dapat diberi data alphanumeris.

Bentuk umum : CHARACTER *n var1, var2, ...


atau : CHARACTER var1*n1, var2*n2, ...

Penjelasan :
n : banyak kolom yang dipakai oleh data
var1, var2, dst : nama variabel

Contoh :
CHARACTER *20 NAMA, SODIAK
READ (*,30) NAMA, SODIAK
30 FORMAT (2A20)

atau

CHARACTER NAMA*20, SODIAK*10


READ (*,30) NAMA, SODIAK
30 FORMAT (A20,A10)

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 8


E. Carriage Control / dan \

Fungsi : mengatur jarak-jarak baris penulisan.


Bentuk umum : 1. Tanda / artinya satu tanda / berarti turun 1 baris.
2. Tanda \ artinya format yang telah ada membutuhkan
data input selanjutnya.

Contoh :
_
_

WRITE (*,10)
10 FORMAT (Panjang persegi panjang = , \)
READ (*,*) P
WRITE (*,30) ALUAS
30 FORMAT (///,Luas persegi panjang = , F5.2,//)
_
_

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 9


IV. STATEMEN STOP DAN END

Fungsi : - STOP dipakai untuk menghentikan operasi program.


- END dipakai untuk menyatakan batas akhir listing program
Bentuk umum : STOP
END

Contoh :
_
_

IF (A.LT.0.0) STOP
_
_

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 10


V. STATEMEN CONTROL

5.1. Statemen GOTO

Fungsi : memerintahkan proses untuk meloncat langsung ke instruksi


dengan label yang ditunjuk
Bentuk umum : GOTO n

Penjelasan :
n : nomor alamat (label) instruksi yang selanjutnya harus dikerjakan.

Contoh :
5 READ (*,*) A,B
10 C=A*B
_

IF (C.LT.0.0) GOTO 5
_

GOTO 10
_

STOP
END

5.2. Statemen IF

Fungsi : untuk membandingkan dua atau lebih variabel secara nalar.


Kalau perbandingan nalar hasilnya YA, maka instruksi
disamping IF akan dilakukan, tetapi apabila TIDAK maka
program terus mengerjakan pada statemen dibawah IF.
Bentuk umum : IF (ekspresi nalar) instruksi

Operator-operator nalar yang dipakai :

SIMBOL NOTASI MATEMATIKA ARTI


.EQ. = sama dengan
.NE. tidak sama dengan
.LT. lebih kecil dari
.GT. lebih besar dari
.LE. lebih kecil atau sama dengan
.GE. lebih besar atau sama dengan
.OR. Atau
.AND. Dan
.NOT. Bukan

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 11


Contoh :
5 READ (*,*) A,B
C=A*B
_

IF (C.LT.0.0) GOTO 5
D=A-B
_

STOP
END

5.3. Statemen DO - CONTINUE

Fungsi : untuk melakukan perintah berulang-ulang dengan cara tertentu,


dimulai dengan statemen DO dan diakhiri statemen CONTINUE
Bentuk umum : DO n var = m1, m2, m3
n CONTINUE

Penjelasan :
n : nomor alamat (label) yang merupakan batas akhir proses berulang
var : variabel integer atau real yang harganya akan berubah-ubah dari suatu
harga awal m1 ke harga akhir m2 dengan langkah m3.
m1 : konstanta integer atau real yang menyatakan harga awal variabel var.
m2 : konstanta integer atau real yang menyatakan harga akhir variabel var.
m3 : konstanta integer atau real yang menyatakan besar langkah.

Contoh 1 :
_

DO 10 I = 1,100,2
J=I+1
10 CONTINUE
_

STOP
END

Contoh 2 :
_

DO 10 I = 100,1,-2
J=I+1
10 CONTINUE
_

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 12


Aturan Tambahan DO - CONTINUE

1. Kalau m3 nilainya = 1, boleh tak usah ditulis.


Contoh :
_

DO 10 I = 1,100
J=I+1
10 CONTINUE
_

STOP
END

2. Nested DO loop dibolehkan dengan syarat variabel yang berubah tidak


sama.
Contoh :
_

DO 10 I = 1,100
J=I+1
DO 20 K = 1,5
L=K+1
20 CONTINUE
10 CONTINUE
_

STOP
END

3. Tidak boleh terjadi overlap


Contoh :
_

DO 10 I = 1,100
J=I+1
CONTOH

DO 20 K = 1,5
SALAH

L=K+1
10 CONTINUE
20 CONTINUE
_

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 13


4. Tidak boleh ada transfer dari luar ke dalam kalang DO-CONTINUE
Contoh :
_

DO 10 I = 1,100
5 J=I+1

CONTOH
DO 20 K = 1,5

SALAH
L=K+1
20 CONTINUE
10 CONTINUE
GOTO 5
_

STOP
END

5. Boleh ada transfer keluar dari kalang DO-CONTINUE


Contoh :
_

DO 10 I = 1,100
J=I+1
IF (J.GT.50) GOTO 5
DO 20 K = 1,5
L=K+1
20 CONTINUE
10 CONTINUE
_

5 STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 14


VI. VARIABEL BERINDEX

Notasi matrix adalah contoh variabel yang berindex. Misalnya matrix A2x2 maka
elemen-elemennya adalah aij :

a11 a12

a21 a22

i = nomor baris
j = nomor kolom

i dan j disebut index dan karena ada dua index maka variabel A disebut variabel dua
dimensi.
Di dalam bahasa FORTRAN variabel berindex ditulis dengan cara :
A(I,J) : I dan J adalah index.

6.1. Statemen DIMENSION

Fungsi : untuk menyatakan bahwa suatu variabel adalah variabel berindex


Statemen dimension ditulis diawal listing program.
Bentuk umum : DIMENSION var1(i1, i2, ... , im), var2(j1, j2, ... , jm)

Penjelasan :
var1, var2 : nama variabel yang dinyatakan sebagai variabel ber-index.
i1 : adalah harga maksimum index ke 1 dari var1
i2 : adalah harga maksimum index ke 2 dari var1
im : adalah harga maksimum index ke m dari var1
demikian juga j1, j2, jm untuk variabel var2.

Contoh :
DIMENSION A(2,2)

DO 10 I = 1,2
DO 20 J = 1,2
READ (*,*) A(I,J)
WRITE (*,*) A(I,J)
20 CONTINUE
10 CONTINUE

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 15


Aturan Tambahan DIMENSION

1. Cacah dimensi maksimum adalah 7.

Contoh :

DIMENSION A(2,2,2,2,2,2,2)

_
_

STOP
END

2. Nilai index tidak boleh berharga nol maupun negatif.

Contoh :

DIMENSION A(2,2)

CONTOH
SALAH
I=0
J = -1
WRITE (*,*) A(I,J)
_
_

STOP
END

3. Index tidak boleh melebihi nilai maksimum yang sudah dinyatakan dalam
Statemen DIMENSION.

Contoh :

DIMENSION A(2,2)
CONTOH
SALAH

I=5
J=2
WRITE (*,*) A(I,J)
_
_

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 16


6.2. Statemen DO IMPLIED

Fungsi : untuk mempermudah proses membaca maupun menulis.


(Implied DO loop hanya dipakai dalam proses I/O saja).

Bentuk umum input : READ (n,1) (var(i), i = m1, m2, m3)


Bentuk umum output : WRITE (n,1) (var(i), i = m1, m2, m3)

Penjelasan :
n : nomor alat input atau output
1 : nomor alamat FORMAT statemen
var : nama variabel
i : index yang akan berjalan
m1 : harga awal implied DO loop, berupa konstanta integer maupun variabel
integer.
m2 : harga akhir implied DO loop, berupa konstanta integer maupun variabel
integer.
m3 : banyaknya langkah implied DO loop, berupa konstanta integer maupun
variabel integer.

Contoh 1. :

a. Dengan DO-CONTINUE

DIMENSION A(4)

DO 10 I = 1,4
READ (*,*) A(I)
WRITE (*,*) A(I)
10 CONTINUE

STOP
END

b. Dengan Implied DO loop

DIMENSION A(4)

READ (*,*) (A(I), I=1,4)


WRITE (*,*) (A(I), I=1,4)

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 17


Contoh 2. :

a. Dengan DO-CONTINUE

DIMENSION A(2,4)

DO 10 I = 1,2
DO 20 J = 1,4
READ (*,*) A(I,J)
WRITE (*,*) A(I,J)
20 CONTINUE
10 CONTINUE

STOP
END

b. Dengan Implied DO loop

DIMENSION A(2,4)

READ (*,*) ((A(I,J), J=1,4), I=1,2)


WRITE (*,*) ((A(I,J), J=1,4), I=1,2)

STOP
END

Atau dengan cara :

DIMENSION A(2,4)

DO 10 I = 1,2
READ (*,*) (A(I,J), J=1,4)
WRITE (*,*) (A(I,J), J=1,4)
10 CONTINUE

STOP
END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 18


CONTOH PROGRAM UNTUK DIJADIKAN
LATIHAN PADA PRAKTIKUM MAHASISWA
C PROGRAM MENYELESAIKAN PERSAMAAN ALJABAR LINEAR DENGAN GAUSS-SEIDEL
C STUDI KASUS ANALISA GAYA BATANG DAN GAYA LUAR PADA RANGKA STATIS
C DIBUAT OLEH ARODY TANGA

DIMENSION A(7,7),B(7),X(7)
CHARACTER*20 DAT,HAS

WRITE (*,2)
2 FORMAT (3X,' MASUKKAN NAMA FILE DATA (?) : ',\)
READ (*,'(A20)') DAT
WRITE (*,3)
3 FORMAT (3X,' MASUKKAN NAMA FILE HASIL (?) : ',\)
READ (*,'(A20)') HAS
WRITE (*,5)
5 FORMAT (3X,' MASUKKAN JUMLAH ITERASI MAKSIMUM (?) : ',\)
READ (*,*) ITER
WRITE (*,7)
7 FORMAT (3X,' MASUKKAN TOLERASI KESALAHAN IZIN (?) : ',\)
READ (*,*) TOL

OPEN (4,FILE = DAT)


OPEN (8,FILE = HAS)

C ----- MASUKKAN JUMLAH VARIABEL YANG DICARI -----


READ (4,*)
READ (4,*) N

NI = N+1

C ----- MASUKKAN KOEFISIEN VARIABEL -----


READ (4,*)
DO 6 I=1,N
READ (4,*) (A(I,J), J=1,NI)
B(I) = A(I,NI)
6 CONTINUE

C ----- MASUKKAN TEBAKAN NILAI AWAL -----


READ (4,*)
READ (4,*) (X(I), I=1,N)

C ----- MEMERIKSA KONVERGENSI -----


ITR = 0
18 ITR = ITR+1

WRITE (*,19) ITR


WRITE (8,19) ITR
19 FORMAT (/2X,' ITERASI KE = ',I4)

RES = 0
DO 14 I=1,N
XA = X(I)
SUM = B(I)+A(I,I)*X(I)
DO 16 J=1,N
SUM = SUM-A(I,J)*X(J)
16 CONTINUE
X(I) =SUM/A(I,I)

C ----- PERIKSA KESALAHAN -----


BEDA = ABS(X(I)-XA)

IF (RES.LE.BEDA) RES = BEDA

C ----- TULIS HASIL HITUNGAN -----


WRITE (*,30) X(I)
WRITE (8,30) X(I)
30 FORMAT (3X,F9.3)

14 CONTINUE

WRITE (*,20) RES


WRITE (8,20) RES
20 FORMAT (2X,' KESALAHAN = ',F10.4,/)

IF (RES.LT.TOL.OR.ITR.EQ.ITER) GOTO 22
GOTO 18

22 CLOSE (4)
CLOSE (8)

END

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 19


DAFTAR PUSTAKA

1. Ir. EKO NUGROHO & Ir. F. SOESIANTO, BSc.E., BELAJAR SENDIRI


BAHASA FORTRAN, ANDI OFFSET, YOGYAKARTA, 1984.

2. MICROSOFT, FORTRAN POWERSTATION 4.0 REFERENCE MANUAL,


MICROSOFT

Buku Ajar - Bahasa Pemograman - by Ir. Arody Tanga 20

Anda mungkin juga menyukai