FORTRAN 77
|
Pendahuluan
Suatu group di
IBM yang diketuai oleh John Bakus pada tahun 1945 mulai bekerja untuk
mengembangkan bahasa pemrograman tingkat tinggi (high level language) untuk Teknik dan Matematika yang diberi nama
FORTRAN (FORmula TRANslator),Bahasa FORTRAN dimulai dari FORTRAN I dan oleh
ANSI (American National Standarts Institute) membentuk FORTRAN 77. Dalam
praktikum ini digunakan WATFOR 77 yang merupakan waterloo dari WATFOR 77.
|
Struktur Program Fortran
Struktur bahasa
fortran dibagi 4 bagian kolom dan tiap-tiap baris berisi di dalam program dapat
berisi :
1. Metacommand
2. Komentar
3. Statemen
4. Sambungan
dari statemen baris sebelumnya
Aturan menulis;
- Kolom 1 digunakan untuk komentar,biasa digunakan karater “c” yang menunjukkan bahwa baris tersebut berisi komentar bebas.
- Kolom 1 sampai dengan 5 digunakan untuk penulisan label statement (statement label)
- Kolom 6 digunakan untuk indikasi sambungan statement dari baris sebelumnya.
- Kolom 7 sampai dengan kolom 72 digunakan untuk menulis statement fortran
- Kolom 73 sampai dengan 80 tidak digunakan oleh fortran.
Statement
fortran dapat dibentuk dari lemen-elemen sebagai berikut;
- konstanta
- operator
- ungkapan
- nama
- verb
|
Menjalankan FORTRAN 77
Setelah layar
monitor tampil A: (promt A) atau C: atau lainnya (tergantung dimana program
Watforr77 dilletakkan).
Langkah-langkah;
1. Ketik “ watfor77” tekan enter.
|
2. Tekan F9 untuk menaikkan kursor dari area
command ke area statemen.
3. Tekan F5 untuk memberikan ruang kosong pada area
statemen.
Setelah
program selesai diketik
4. Ketik PUT untuk menyimpan dan memberikan nama
file contoh put mesin.FOR
5. Ketik RUN
untuk menjalankan program contoh
: run mesin.for
6. Ketik QUIT untuk mengakhiri watfor 77
|
Flow Chart
Simbol
|
Uraian
|
|||
|
Terminal interupsi, menunjukkan awal atau akhir dari suatu program utama atau subprogram
|
|||
|
Proses, menunjukkan penentuan
sebuah nilai kesuatau variabel atau perubahan nilai dari suatu variabel
|
|||
|
Proses membaca
|
|||
|
Dokumen, menunjukkan informasi
yang akan dicetak pada media
|
|||
|
Sambung halaman, menunjukkan
aliran logika
|
|||
|
Arah aliran logika
|
|||
|
Proses pengecekan
|
LATIHAN I
Buatlah program untuk menghitung
LUAS dan VOLUME kubus
C PROGRAM MENGHITUNG LUAS DAN
VOLUME KUBUS
C
=============================================
C234567
WRITE (*,*) ‘MASUKKAN SALAH SATU
SISI KUBUS’
READ (*,*) S
L=6.*S*S
V=S*S*S
WRITE(*,*)S,L,V
STOP
END
PUT KUBUS.FOR
RUN KUBUS.FOR
|
Konstanta dan Variabel
A. Konstanta
Dalam bahasa FORTRAN ada 2 macam
konstanta;
- Konstanta INTEGER (bulat) konstanta yang tidak mengandung titik desimal
- Konstanta REAL (nyata) konstanta yang mengandung titik desimal
Contoh
Konstanta Integer
|
Konstanta Real
|
7
|
7.0
|
-25
|
-25.0
|
B. Varibel
Dalam bahasa FORTRAN ada 2 macam
variabel;
- Variabel INTEGER (bulat) adalah variabel yang huruf pertamanya I,J,K,L,M,N fungsi untuk menyimpan konstanta integer
- Variabel REAL (nyata) adalah variabel yang huruf pertamanya A -Z kecuali I - N fungsi untuk menyimpan konstanta real
Contoh
Contoh variabel
|
uraian
|
W1
|
Variabel real
|
NAMA
|
Variabel integer
|
2HR
|
Salah, sebab huruf awal berupa
angka
|
YOGYAKARTA
|
Salah, sebab lebih dari 6
karakter
|
PELAN-2
|
Salah, sebab menggunakan
spesial karakter (?, =,! , dll)
|
NO NIN
|
Salah, sebab ada “blank”
ditengah
|
|
Statemen
1.
Untuk menampilkan hasil
Perintah
: WRITE
Contoh :
WRITE (*,15)
15 FORMAT
(1X,’FORTRAN ? MUDAH ITU’)
STOP
END
Bila program dijalankan akan
didapatkan hasil :
FORTRAN ? MUDAH ITU
Contoh
lain
A=10.0
B=5.0
C=A*B
WRITE (*,*)’HASIL PERKALIAN’
WRITE(*,*)’………………………’
WRITE(*,*)’C=’,C
STOP
END
Bila program dijalankan akan
didapatkan hasil :
HASIL PERKALIAN
………………………
C= 50.000000
2. Untuk memasukkan data
a. Perintah : READ
a.1. Dengan assigment statement
contoh:
I= 25
WRITE (*,10) I
10
FORMAT(‘NILAI I ADALAH =’,I3)
STOP
END
Bila program dijalankan akan
didapatkan hasil :
NILAI
I ADALAH = 25
Contoh lain :
READ(*,*)A
READ(*,*)B
C=A+B
WRITE(*,*)’HASIL PERHITUNGAN’
WRITE(*,’(IX,A,F6.2)’)’NILAI C=’,C
STOP
END
Bila program dijalankan akan didapatkan hasil :
10.0 data yang diisikan
20.0 data yang diisikan
HASIL
PERHITUNGAN
NILAI
C= 30.00
Contoh
lain :
WRITE(*,’(1X,A)’)’MASUKKAN
NILAI A?’
READ(*,*)A
WRITE(*,’(1X,A)’)’MASUKKAN NILAI B?’
READ(*,*)B
C= A+B
WRITE(*,*)’HASIL
PERHITUNGAN’
WRITE(*,’(1X,A,F6.2)’)’
NILAI C= ‘,C
STOP
END
Bila program dijalankan akan didapatkan hasil :
Silahkan dicoba sendiri !!
b. Perintah : DATA
DATA J,A / 25,3.0 /
B=A*J
WRITE((*,’(1x,A,F6.2)’)’NILAI
B=’B
Bila program ini dijalan
kan hasilnya
adalah
NILAI B= 75.00
3.
Untuk
Menentukan Tata Letak Suatu Data Input maupun Output
a. Format tipe I
Untuk membaca atau menuliskan data INTEGER
Contoh:
Akan dibaca NILAI =95
Program
READ(*,20)NILAI
20
FORMAT(I5)
…………………..
………………….
b. Format tipe F
Untuk membaca atau
menuliskan data REAL
Contoh:
Akan dibaca A=13.5
Program
READ(*,13)A
13
FORMAT(F5.1)
………………..
………………..
c. Format tipe X
TIDAK untuk membaca atau menuliskan hanya memberikan
spasi
Contoh
Akan dibaca A=25.
B=3.
Dengan diantara data ada 3 kolom spasi
Program
READ(*,10)A,B
10
FORMAT(F5.2,3X,F4.1)
……………….
………………
d. Format literal
Untuk menuliskan data langsung kemedia output
Contoh
Akan ditulis A=1.
Program
A=1.
WRITE(*,12)A
11
FORMAT(‘NILAI
A=’,F2.1)
STOP
END
Bila program ini dijalan kan
hasilnya adalah
NILAI A= 1.0
LATIHAN 2.
Akan dibuat program untuk menghitung
kecepatan lintasan
Program
C PROGRAM MENGHITUNG KECEPATAN LINTASAN
C OLEH : MESIN,ST
C
WRITE(*,*)’MASUKKAN BESARNYA
PERCEPATAN?’
READ(*,*)A
WRITE(*,*)’MASUKKAN BESARNYA WAKTU?’
READ(*,*)T
V=A*T
S=0.5*A*T**2.
WRITE(*,20)A,T,V,S
20
FORMAT(‘PERCEPATAN
(M/DET2)=’,F5.1,’WAKTU(DETIK)=’,F5.1,/
1
‘KECEPATAN(M/DET)=’,F5.1,’LINTASAN(M)=’,F5.1)
STOP
END
Bila program dijalankan akan didapatkan hasil :
MASUKKAN BESARNYA PERCEPATAN?
5.0
data yang diisikan
MASUKKAN BESARNYA WAKTU?
20.0 data yang diisikan
PERCEPATAN (M/DET2)=5.0WAKTU(DETIK)=10.0
KECEPATAN(M/DET)=50.0LINTASAN(M)=250.0
TUGAS 1
a.
Umur Mesin,ST adalah 24 tahun, 1 bulan,15 hari, 6 jam
Bila 1 tahun= 365 hari,1 bulan=30 hari.
Berapa umur Mesin,ST dalam satuan jam,
dalam satuan menit, dalam satuan detik
Buatlah Programnya !
b.
Pengisian suatu baterai mengikuti persamaan
Isi=k(1-e-T)
Bila k= 10 dan e=2.71828
Berapakah isi baterai
tersebut setelah T=0.5
Buatlah programnya!
4. Untuk Mengubah Urutan Langkah
a. GO TO
a.1. GO TO tanpa syarat
Perintah
untuk meloncat langsung ke label yang ditunjuk
Contoh:
100 READ (*,*)A,B
C=A*B
WRITE(*,*)’HARGA C=’,C
IF(A.GT.5) GOTO 10
GOTO 100
10
STOP
END
a.2. GO TO dengan syarat
Perintah untuk meloncat langsung ke label yang ditunjuk (nk) apabila
var=k
Bentuk umum : GO TO (n1,n2,…,nk),var
n1,n2,….=
label yang akan dilaksanakan
Contoh:
READ (*,*)N,A,B
GO TO
(100,200,300),N
100 C=A*B
GOTO 20
200 C=A+B
GOTO 20
300 C=A-B
GOTO 20
20 WRITE(*,*)’HARGA
C=’,C
STOP
END
b. IF
b.1. IF hitungan
Untuk
memeriksa isi suatu variabel atau hasil suatu pernyataan hitungan yaitu apakah
negatif,nol, atau positif.
Bentuk umum: IF(pr) n1,n2,n3
N1= nomor statemen yang akan dituju apabila hasil hitungan negatif
N2= nomor statemen yang akan dituju apabila hasil hitungan nol
N3= nomor statemen yang akan dituju apabila hasil hitungan positif
b.2. IF nalar
Untuk
membandingkan dua (atau lebih) variabel secara nalar.kalau perbandingan
memberikan hasil “ya” maka statemen disamping IF dikerjakan,apabila “tidak”
maka akan dilanjutkan ke baris berikutnya
Bentuk umum: IF(ekspresi nalar)satemen
Ekspresi : suatu
ekspresi penalaran
Statemen : suatu yang akan
dikerjakan bila hasil ekspresi “ ya”
Operator nalar yang
dipakai:
Simbol / operator
|
Notasi matematik
|
.EQ.
|
=
|
.NE.
|
=
|
.LT.
|
<
|
.LE.
|
<
|
.GE.
|
>
|
.GE.
|
>
|
.OR.
|
ATAU
|
.AND.
|
DAN
|
.NOT.
|
BUKAN
|
Contoh:
WRITE(*,*)’ISI
DATA’
READ(*,*)A,B,C
DISK=B**2-4*A*C
IF(DISK.LT.1000.0)GOTO
100
X1=(-B**2+SQRT(B**2-4*A*C))/(2*A)
X2=(-B**2-SQRT(B**2-4*A*C))/(2*A)
100
STOP
END
c. DO
Untuk memerintahkan komputer agar menjalankan suatu deretan perintah
berulang-ulang
Bentuk umum:
Do n var=m1,m2,m3
Dimana:
n = nomor statemen yang
merupakan batas akhir perulangan
Var =
variabel yang akan brubah-ubah yang harganya mulai dari m1 sampa dengan m2
dengan lompatan langkah sebesar m3
Contoh
C1234567
DO 50 I= 1,10,-1
A= I*2
B= I*4
WRITE (*,*) A,R,I
50
CONTINUE
STOP
END
d. CONTI NUE
Sebagai statemen dummy pada suatu bentuk posisi
Bentuk umum:
n Continue
Dimana:
n= nomor statemen
Contoh
C1234567
DO 50
V=30,200,10
FM=0.5
T=3.5
D= 0.278*V*T+V**2/(254.*FM)
WRITE(*,*)D
50
CONTINUE
STOP
END
|
Variabel
Berindex
Didalam notasi matematik seringkali
adanya veriabel berindex.
Contoh:
dengan aij i= nomor baris
j= nomor kolom
Bentuk umum:
DIMENSION Var
1(i1,i2,i3,.......im),Var2 (i1,i2,i3,...im)
Dengan:
Var 1,var2 = nama-nama variabel yang
dinyatakan sebagai variabel berindex
i1 = harga
maksimum index ke 1 untuk var 1
i2 = harga maksimium indek 2
Contoh
C234567
DIMENSION A(5,5),D(5,5)
READ(*,*)A(1,1),A(1,2),A(2,1),A(2,2),D(1,1),D(1,2),D(2,1),D(2,2)
E(1,1)=D(1,1)+A(1,1)
E(1,2)=D(1,2)+A(1,2)
WRITE(*,*)E(1,1),E(1,2)
STOP
END
|
Sub Program
Sub Program ada dua macam:
1.
Sub
Program FUNCTION
2.
Sub
Program SUBROUTINE
Sub program adalah : suatu program
tersendiri yang dapat dipanggil berkali-kali oleh sub program lain untuk suatu
tujuan.
1. Return
Untuk mengembalikan arus
program dari program terpanggil kepada
program pemanggil.
Bentuk umum:
RETURN
Return boleh dipasang dimana saja yang
diperlukan
Contoh:
C234567
WRITE (*,*) ‘BAHASA FORTRAN SULIT AMAT’
WRITE(*,*)’SUDAH BERULANG-ULANG TETAP
TIDAK BISA’
CALL XYZ
STOP
END
SUBROUTINE XYZ
WRITE(*,*)’MAKANYA BELAJAR LAGI’
WRITE(*,*)’JANGAN PACARAN MELULU’
RETURN
END
2. CALL
Bentuk umum:
CALL ns (arg1,arg2,...,argm)
Dengan:
Ns= nama call subprogram
Arg1,arg2,..= argumen-argumen subprogram call
3. SUBROUTINE
Bentuk umum :
SUBROUTINE ns
(arg1,arg2,…,argm)
Dimana:
ns=nama subroutine
program
arg1,arg2,….=
argumen-argumen subprogram berupa subroutine
Sifat-sifat
subprogram SUBROUTINE
- Bersifat otonom
- Dipanggil dengan cara: CALL ns (arg1,arg2,….arg m)
- Argumen-argumen boleh berfungsi sebagai input maupun sebagai out put.
- Argumen dapat berupa konstanta maupun varibel,real maupun integer.
- Hubungan antara argumen dalam program pemanggil dan program dipanggil adalah hubungan atas dasar posisi,bukan atas dasar nama varibel.
Contoh:
C234567
WRITE(*,*)’PROGRAM
1’
CALL MESIN1
WRITE(*,*)’PROGRAM 2’
CALL MESIN2
STOP
END
SUBROUTINE MESIN1
READ(*,*)C
R=4./5.*C
F=9./5.*C+32
WRITE(*,*)R,F
RETURN
END
SUBROUTINE MESIN2
X=-1
100
X=X+7
Q=100
L=10
RA=(Q*L)/2
SFD=RA-Q**2
WRITE(*,*)X,RA,SFD
IF(X.LT.10)GOTO 100
RETURN
END
|
Pemograman Fortran Terstruktur
Pemrograman
tersetruktur adalah bahwa tidak boleh
ada statemen yang memerintahkan loncat keatas staemen terdahulu.
Statemen
tersebut adalah :
1.
statemen IF tersetruktur yang terdiri dari :
a. Statemen IF THEN
b. Statemen ELSE
c. StatemenELSE IF
d. Statemen END IF
2.
statemen WHILE tersetruktur yang terdiri dari :
a.
statemen WHILE DO
b.
statemen ENDWHILE
- Statemen DO CASE yang terdiri dari :
a.
Statemen DO CASE
b.
Statemen CASE
c.
Statenmen END CASE
- Statemen FOR yang terdiri dari :
a.Satemen FOR
b. Statemen END FOR
- Statemen DO yang terdiri dari :
a.
Statemen DO
b.
Statemen CONTINUE
|
Statemen IF
Terstruktur
LAMPIRAN :
FORMAT
LAPORAN PRAKTIKUM
HALAMAN JUDUL
HALAMAN PENGESAHAN
KATA PENGANTAR
DAFTAR ISI
BAB I PENDAHULUAN
BAB II SISTEM KOMPUTER
1
CPU
2
MONITOR
3
KEYBOARD DLL
BAB III MENJALANKAN
FORTRAN 77
BAB IV
…………………………
BAB V ………………….
BAB …..
LATIHAN SOAL
PENUTUP
DAFTAR PUSTAKA
LAMPIRAN
Contoh lembar
pengesahan
LEMBAR PENGESAHAN
LAPORAN
PRAKTIKUM
PEMROGRAMAN
KOMPUTER
Oleh:
Alexander
Paiman
02030010
DISETUJUI OLEH:
Yogyakarta, ……
2004
INSTRUKTUR
………………………………