Judul Makalah - Teknik Sipil

advertisement
PANDUAN UNTUK
PRAKTIKUM DAN PERKULIAHAN
PEMROGRAMAN FORTRAN
Oleh:
Ahmad Zakaria, Ph.D.
Jurusan Teknik Sipil
Fakultas Teknik Universitas Lampung
2014
Pemrograman bahasa Fortran
1.
Pendahuluan
Fortran merupakan bahasa pemrograman tingkat tinggi yang paling
banyak
dipergunakan
orang
untuk
pemrograman,
terutama
untuk
pemrograman yang membutuhkan perhitungan numerik yang rumit. Selain
Fortran, banyak juga bahasa pemrograman lain yang dikembangkan orang
seperti Basic, Pascal, C, Cobol, ada, dan masih banyak lagi. Bahasa-bahasa
pemrograman seperti yang disebutkan ini merupakan bahasa pemrograman
yang sering disebut sebagai bahasa pemrograman under DOS, ini dikarenakan
bahasa pemrograman ini dijalankan lewat DOS. Setelah itu berkembang
bahasa pemrograman yang sering disebut sebagai bahasa pemrograman
berorientasi objek atau Object Oriented Programming. Bahasa-bahasa
pemrograman itu antara lain Visual Compaq Fortran, Visual Basic, Borland
Delphi, Visual C++ dan lain-lain. Disamping itu juga berkembang bahasa
pemrograman yang berjenis Script seperti java, matlab, dan beberapa bahasa
pemrograman WEB seperti, bahasa php dan Java Script.
Banyak sekali materi bahasa pemrograman yang menarik untuk
dipelajari dan dikembangkan untuk kepentingan didalam bidang Teknik, akan
tetapi sepanjang pengetahuan penulis, Fortran merupakan bahasa yang paling
banyak dipergunakan oleh para Scientist dan Engineer untuk aplikasi-aplikasi
praktis dalam rangka penyelesaikan permasalahan-permasalahan di dalam
bidang teknik.
Sehubungan dengan makin banyaknya penggunaan Fortran oleh
Scientist dan Engineer, Program Fortran juga mengalami perkembangan dari
Fortran 77, Fortran 90 dan Fortran 95. Program Fortran ini juga bisa didapat
baik untuk yang menggunakan Operating Sistem Win32 (Windows 31,
Windows 98, Windows 2000, Win NT dan Windows Xp) maupun yang
menggunakan operating sistem lain seperti LINUX ( Mandrake, RedHat,
Slackwere, SuSe dll), UNIX, OS2, BeOs yang mana Fortran 77 dikenal
sebagai g77 (ji_seventiseven) atau f77 (ef_seventiseven). Selain itu juga
Fortran 77 juga mengalami perkembangan dalam hal tampilan program, yang
biasanya disebut dengan Front End yang sebenarnya hanya tampilan muka
program, akan tetapi program ini tetap menggunakan Fortran 77 dan Fortran
90 sebagai Compilernya seperti Lahey Fortran, NF Fortran, F Fortran, FTN77,
Ahmad Zakaria
2
Pemrograman bahasa Fortran
FORT99, Salford Fortran, BC Fortran, PyFort, RATFOR, VFORT,
WATCOM, Fortran FORCE dan masih banyak lagi. Ini merupakan salah satu
bukti bahwa Compiler Fortran tetap eksis didalam perkembangan ilmu
pengetahuan, dalam hal perkembangan berbagai macam bahasa pemrograman.
Salah satu program Fortran 77 yang akan dipergunakan pada pelatihan ini
adalah Fortran FORCE yang juga menggunakan Fortran 77 sebagai
Compilernya.
Bila seseorang ingin menggunakan komputer, orang tersebut tidak
harus bisa dan mengetahui benar seluk beluk mengenai komputer. Hal ini
dapat dimisalkan sebagaimana halnya bila seseorang ingin menggunakan atau
mengendarai sebuah mobil, apa seseorang harus mempunyai pengetahuan
yang lengkap mengenai mobil, jika hanya untuk bisa menjalankan atau
mengendarainya?
Kita sebagai pemakai, untuk dapat menjalankan sebuah program, kita
tidak harus mengetahui benar seluk beluk mengenai komputer, walaupun lebih
banyak pengetahuan dan, berpengalaman dan lebih mengenal seluk beluk
komputer adalah lebih baik.
Sebagai pengguna yang ingin membuat program komputer hanya perlu
mengenal pengetahuan pemrograman yang diminatinya dalam hal ini kita akan
belajar bahasa pemrograman Fortran. Jadi untuk dapat membuat dan bisa
menjalankan program Fortran tentu kita perlu mengetahui bahasa (Sintax)
sebagai intruksi yang dimengerti oleh bahasa pemrograman Fortran. Biasanya
untuk dapat membuat sebuah program yang baik, kita perlu membuat atau
melengkapinya dengan sebuah Flow Chart, yang menggambarkan jalan fikiran
algoritma program.
Untuk dapat mempelajari bahasa pemrograman Fortran kita perlu
mengetahui aturan-aturan penting dan Sintax-Sintax dasar yang selalu
dipergunakan didalam pembuatan sebuah program Fortran. Dengan berbekal
mengetahui Sintax-Sintax Dasar tersebut kita sudah dapat membuat sebuah
program yang besar.
Ahmad Zakaria
3
Pemrograman bahasa Fortran
Program Fortran ditulis dalam suatu file dengan ekstensi *.f , *.ftn,
atau *.for. Dalam menulis program Fortran pada suatu file dengan berekstensi
seperti tersebut di atas ( Fortran 77) harus mengikuti aturan-aturan penulisan
sebagai berikut,
1. Pernyataan untuk program Fortran yang bisa dimengerti oleh
program apabila ditulis dalam selang kolom 7 sampai dengan
kolom 72.
2. Kolom ke 6 disebut sebagai kolom sambungan dan dipersiapkan
hanya untuk keperluan tersebut. Apabila pernyataan Fortran terlalu
panjang dan akan melebihi kolom 72 maka pernyataannya dapat
dilanjutkan di bawahnya dengan menambahkan satu karakter pada
kolom ke 6.
3. Kolom 1 s/d kolom 5 dapat dipergunakan untuk untuk pengenal
atau acuan.
4. Isi kolom 73 s/d 80 diabaikan komputer, dan kolom ini dapat
dipergunakan sebagai identifikasi atau untuk keperluan lain.
Untuk aturan penulisan Fortran tersebut dapat dilihat pada Gambar berikut,
1
56 7
Label
pernyataan
Ahmad Zakaria
Kode sambungan
Pernyataan fortran
72
80
identitas
4
Pemrograman bahasa Fortran
2.
Sintax Dasar Program Fortran
2.1.
Perhitungan Aritmatik
Operasi perhitungan yang dilakukan oleh komputer sebenarnya
hanya berupa operasi aritmatik seperti penjumlahan (+), pengurangan
(-), perkalian (*), dan pembagian(/). Selain itu juga dapat dilakukan
operasi perpangkatan (**), logaritma, perhitungan sudut, sinus dan
kosinus, serta perhitungan bilangan imaginer yang dilambangkan
dengan IMAG. Untuk perhitungan aritmatik biasa, semua bahasa
pemrograman tingkat tinggi lain juga memiliki sintax yang hampir
sama jumlahnya, akan tetapi untuk perhitungan bilangan imaginer
sepanjang pengetahuan penulis hanya bahasa pemrogram fortran yang
bisa melakukannya. Operasi Aritmatik dalam bentuk aljabar dan
Fortran dapat dilihat pada Tabel berikut,
Operasi
Bentuk Aljabar
FORTRAN
Penjumlahan
A+B
A+B
Pengurangan
A–B
A-B
Perkalian
A×B
A*B
A
B2
A
A/B
Pembagian
Perpangkatan
A**2
Nama konstanta dan variabel yang dimulai huruf I, J, K, L, M, N
menyimpan nilai dalam bentuk Integer, dan yang dimulai dengan huruf
selain yang disebutkan, menyimpan nilai dalam bentuk Real.
2.2.
Masukkan dan Keluaran(Input/Output)
Biasanya suatu program untuk melakukan perhitungan-
perhitungan membutuhkan data masukan atau data input yang berasal
dari layar monitor atau file input, dan mengeluarkan hasil
perhitungannya berupa data keluaran atau data Output didalam file
Output atau pada layar monitor. Ini untuk membaca data dari suatu file
atau mengeluarkan data ke dalam suatu file. Pernyataan Fortran untuk
membuka file dapat dilakukan dengan sintax sebagai berikut,
Ahmad Zakaria
5
Pemrograman bahasa Fortran
OPEN(unit = ekspresi integer, FILE = nama file, STATUS = literal)
Untuk literal dapat dipergunakan ‘OLD’ ( file lama dan sudah ada) ,
‘NEW’ (membuat file baru dan tidak dapat di update) dan
‘UNKNOWN’ (membuat file baru dan dapat di update).
Untuk membaca data dari suatu file dapat dipergunakan perintah
READ. Akan tetapi bila data yang dibaca pada posisi kolom tertentu
maka dapat dipergunakan perintah atau sintax berformat. Aturan
penggunaan perintah READ adalah sebagai berikut,
READ (nomor unit,nomor acuan berformat) daftar variabel
Untuk menulis data ke dalam suatu berkas file dapat dilakukan dengan
melakukan perintah sbb,
WRITE(nomor unit,nomor acuan berformat)daftar variabel
Bentuk umum penggunaan pernyataan berformat adalah sebagai
berikut,
k FORMAT(daftar rincian)
Secara keseluruhan penggunaan sintax OPEN, READ, WRITE dan
FORMAT dapat dilihat pada contoh program berikut,
Contoh Pernyataan FORTRAN
Contoh untuk Open file Input dan File Output adalah sebagai berikut,
Ahmad Zakaria
6
Pemrograman bahasa Fortran
Contoh File input.inp
2 3
Contoh File output.out
hasilnya =
2.00 3.0 5.00 6.0000
Dari Contoh program sederhana di atas dapat dilihat bagaimana
penggunaan sintax READ, WRITE, FORMAT dan penggunaan OPEN file Input dan OPEN file Output. Dari contoh di atas juga dapat
dipelajari pencirian X, I, dan F yang banyak dipergunakan untuk
pernyataan berformat. Pencirian X dipergunakan apabila dalam
pembacaan atau penulisan data akan melompati beberapa posisi pada
baris data bentuk umumnya adalah nX. Pencirian I dipergunakan
apabila kita ingin membaca suatu nilai ke dalam suatu bilangan
integer. Bentuk umum dari pencirian I adalah Iw. Pencirian F dapat
dipergunakan untuk membaca atau menuliskan nilai suatu variabel real
ke dalam atau dari suatu berkas. Bentuk umum dari pencirian F adalah
Fw.d. Dimana w menunjukkan jumlah posisi total, dan d menandakan
jumlah desimal.
2.3.
Struktur Kontrol
Struktur kontrol yang paling banyak dipakai dalam pembuatan
sebuah program Fortran adalah IF Logika. Ekspresi logika menyatakan
suatu kondisi itu benar atau salah, diterima atau tidak. Ekspresi logika
dibentuk dengan menggunakan salah satu dari operator relasional
berikut,
Ahmad Zakaria
7
Pemrograman bahasa Fortran
Operasi relasional
.EQ.
.NE.
.LT.
.LE.
.GT.
.GE.
Untuk
melengkapi
Tafsiran Aljabar
Sama dengan
Tidak sama dengan
Lebih kecil daripada
Lebih kecil daripada atau sama dengan
Lebih besar dari pada
Lebih besar dari pada atau sama dengan
struktur
logika,
bentuk
pernyataan
untuk
penggunaan operator Relasional dapat dilihat pada bentuk berikut,
IF (ekspresi logika) pernyataan terlaksana
IF (ekspresi logika) THEN
…….
Pernyataan
……..
ENDIF
IF (ekspresi logika) THEN
Pernyataan
IF (ekspresi logika) THEN
…….
Pernyataan
……..
ENDIF
Pernyataan
ENDIF
Contoh penggunaan struktur kontrol IF dapat dilihat pada contoh
program berikut,
Ahmad Zakaria
8
Pemrograman bahasa Fortran
Contoh penggunaan IF
OPEN(UNIT=2,FILE=’output1.out’,STATUS=’unknown’)
A = 2
B = 3
IF(A.GE.B)THEN C = A + B
ENDIF
IF(A.LT.B)THEN
C = A * B
ENDIF
WRITE(2,*)’hasilnya =’
WRITE(2,10)A,B,C
10 FORMAT(F4.2,2X,F4.1,2X,F6.2)
stop
end
Contoh File output1.out untuk penggunaan IF
hasilnya =
2.00 3.0 6.00
2.4.
Looping Berlapis
Lop DO dapat dilakukan berlapis, lop yang satu dapat
diletakkan di dalam lop yang lainnya, akan tetapi antara satu lop
dengan yang lain tidak boleh tumpang tindih. Penggunaan lop secara
umum dapat ditulis sbb,
DO I=m,n
DO J = mm,nn
........................
pernyataan
.......................
END DO
END DO
Didalam penggunaan looping DO, m, mm, n, nn merupakan ekspresi
integer. m dan mm merupakan variabel lop awal, n dan nn merupakan
variabel lop akhir.
Ahmad Zakaria
9
Pemrograman bahasa Fortran
Penggunaan looping DO dapat dilihat pada contoh program berikut,
Contoh penggunaan Looping DO
OPEN(UNIT=2,FILE=’output2.out’,STATUS=’unknown’)
DO I=1,2 DO J=1,3
WRITE(2,10)I,J
10 FORMAT(2X,I4,2X,I6)
END DO
END DO
stop
end
Contoh File output2.out keluaran Looping DO
00­­­100­­­­­1
00­­­100­­­­­2
00­­­100­­­­­3
00­­­200­­­­­1
00­­­200­­­­­2
00­­­200­­­­­3
Dengan menggunakan looping DO, kita dapat melakukan perhitungan
secara berlapis. Perhitungan berlapis diperlukan antara lain untuk
pemodelan numerik, misalnya pemodelan numerik 1 dimensi (1-D), 2
dimensi (2-D) dan 3 dimensi (3-D).
2.5.
Jajaran (array)
Untuk melakukan perhitungan perhitungan yang besar,
biasanya selama melakukan perhitungan membutuhkan tempat
penyimpanan hasil perhitungan kedalam suatu variabel. Pernyataan
yang dipergunakan untuk melakukan penyimpanan tersebut adalah
dengan menggunakan perintah sebagai berikut,
DIMENSION array1(ukuran), array 2 (ukuran),..
Ahmad Zakaria
10
Pemrograman bahasa Fortran
Contoh penggunaan DIMENSION dapat dilihat pada program berikut,
Contoh program untuk penggunaan DIMENSION
DIMENSION IA(2,3),JA(2,3)
OPEN(UNIT=2,FILE=’output3.out’,STATUS=’unknown’)
DO I=1,2 DO J=1,3
IA(I,J) = I+J
JA(I,J) = I*J
END DO
END DO DO I=1,2 DO J=1,3
WRITE(2,10)IA(I,J),JA(I,J)
10 FORMAT(2X,I4,2X,I6)
END DO
END DO
stop
end
Contoh File output3.out keluaran penggunaan DIMENSION
00­­­200­­­­­1
00­­­300­­­­­2
00­­­400­­­­­3
00­­­300­­­­­2
00­­­400­­­­­4
00­­­500­­­­­6
Dengan menggunakan pernyataan DIMENSION, perhitungan yang
dilakukan dengan looping DO dapat disimpan ke dalam suatu variabel,
sehingga dalam melakukan perhitungan aritmatik menjadi lebih cepat.
2.6.
Pernyataan GOTO
Pernyataan GOTO termasuk struktur looping. Dengan menggunakan
struktur GOTO looping dapat dilakukan dengan bebas dibandingkan
Ahmad Zakaria
11
Pemrograman bahasa Fortran
dengan looping dengan menggunakan struktur DO…END DO. Bentuk
umum dari penggunaan pernyataan GOTO adalah sebagai berikut,
n
pernyataan
………………
GOTO n
Contoh penggunaan struktur GOTO dapat dilihat dari program
berikut,
Contoh program untuk penggunaan GOTO
A = 0
10 A = A + 1
write(*,*)A
IF(A.LE.5)GOTO 10
stop
end
Contoh hasil keluaran program di layar monitor untuk penggunaan
GOTO
1.
2.
3.
4.
5.
6.
Program di atas dimaksudkan untuk melakukan perhitungan dari 1
sampai dengan 6 dengan menggunakan pernyataan GOTO.
Ahmad Zakaria
12
Pemrograman bahasa Fortran
2.7.
Sub Program
Subprogram yang sering dipergunakan didalam perhitungan
aritmatik dalam suatu program besar adalah SUBROUTINE.
Penggunaan SUBROUTINE secara umum adalah sbb,
……………
……………
CALL
CALLNama
Nama(argumen)
(argumen)
……………
……………
MAIN PROGRAM
STOP
STOP
END
END
SUBROUTINE
SUBROUTINENama(argumen)
Nama(argumen)
………..
………..
RETURN
RETURN
END
END
SUBPROGRAM
Contoh penggunaan subprogram SUBROUTINE dapat dilihat pada
contoh program berikut,
Contoh program untuk penggunaan SUBROUTINE
A = 2.0
CALL Func(A,F)
write(*,*)A,F
stop
end
SUBROUTINE Func(X,F)
F = X*X
return
end
Ahmad Zakaria
13
Pemrograman bahasa Fortran
Dari contoh di atas terlihat bahwa untuk memanggil subroutine
Func(A,F) yang melakukan perintah F = X × X dilakukan dengan
perintah CALL. Nilai A=2 yang dimasukkan ke dalam Func merupakan
variabel X. Selanjutnya hasil yang didapat berupa nilai variabel F.
2.8.
Pernyataan Double Precision
Pernyataan Double Precision dipergunakan bila didalam
perhitungan aritmatik dari suatu program kita ingin mendapatkan hasil
dengan ketelitian yang lebih baik. Dengan mendeklarasikan variabel
sebagai variabel double precision atau presisi ganda maka variabel
tersebut mempunyai akurasi perhitungan yang lebih baik. Bentuk
umum dari penggunaan DOUBLE PRECISION adalah sebagai
berikut,
DOUBLE PRECISION nama nama variabel
Penggunaan pernyataan DOUBLE PRECISION dapat dilihat pada
contoh program berikut ini.
Contoh program yang menggunakan DOUBLE PRESISSION
DOUBLE PRECISION A,C
A =1.D+00/3.D+00
B = 1./3.
C = A ­ B
write(*,20)A,B,C
20 FORMAT(2X,F25.20,2X,F25.20)
stop
end
Hasil keluaran dari program ini adalah,
0.33333333333333331000 0.33333334326744080000
­0.00000000993410748107
Ahmad Zakaria
14
Pemrograman bahasa Fortran
Dari hasil keluaran ini terlihat bahwa perhitungan aritmatik yang
menggunakan double precision dan yang tidak menggunakan double
precision mempunyai selisih yang cukup besar yaitu lebih kurang 10-9.
Untuk program yang melakukan perhitungan numerik, selisih ini
sangat berarti untuk mendapatkan hasil yang lebih akurat.
2.9.
Fungsi Intrinsik
Beberapa Fungsi Intrinsik yang sering dipergunakan didalam
penulisan program Fortran adalah sebagai berikut,
Nama Fungsi
SQRT(X)
DSQRT(X)
ABS(X)
DABS(X)
EXP(X)
DEXP(X)
LOG(X)
LOG10(X)
REAL(GX)
FLOAT(IX)
SIN(X)
COS(X)
TAN(X)
ASIN(X)
ACOS(X)
ATAN(X)
Jenis Fungsi
Real
Double Precision
Real
Double Precision
Real
Double Precision
Real
Real
Real
Real
Real
Real
Real
Real
Real
Real
Definisi
√X
√ DX
|X|
| dX |
ex
edx
ln (X)
Log (X)
Ubah GX ke nilai real
Ubah IX ke nilai real
Sudut dalam radian
Sudut dalam radian
Sudut dalam radian
ArcSin
ArcCos
ArcTan
10
Selain dari fungsi-fungsi di atas masih banyak lagi fungsi-fungsi
intrinsik yang tidak dipresentasikan di tutorial ini dapat didapatkan dari
buku pedoman pemrograman fortran.
Dengan mempelajari dan menguasai sintax dasar pemrograman Fortran
di atas, dan dapat menggunakan pendekatan-pendekatan untuk pemrograman
numerik dengan baik, kita dapat membuat program numerik.
Ahmad Zakaria
15
Pemrograman bahasa Fortran
3. Diagram Alir (Flow Chart)
3.1. Diagram
Bentuk diagram alir biasa dipergunakan didalam pemrograman komputer. Dengan
menggunakan diagram alir, alur logika pemrograman yang dibuat dapat lebih mudah
difahami.
Bentuk diagram alir yang biasa dipergunakan didalam pemrograman komputer adalah
seperti dalam Tabel 1 berikut,
Tabel 1. bentuk diagram alir pemrograman
No
Gambar Diagram
Keterangan
1
pernyataan untuk menyatakan
mulai (start) dan selesai (finish)
2
untuk menyatakan perhitungan
Untuk menyatakan sub program atau unit
program
3
untuk menyatakan masukkan (input) dan
keluaran (output)
4
untuk menyatakan keluaran (output) atau
menuliskan hasil hasil proses eksekusi
5
untuk menyatakan masukkan (input) atau
pembacaan data dari kartu
6
untuk menyatakan perulangan/looping
(do =1,n … enddo)
7
Untuk pernyataan bersyarat
(If...then … endif)
8
Tanda penghubung diagram alir
Ahmad Zakaria
16
Pemrograman bahasa Fortran
4. Contoh Program.
4.1. Contoh 1 Penggunaan If … then … endif.
Code Program
Diagram Alir
A = 0.0
B = 1.0
C = 2.0
If (C.GT.B)then
A = 1.0
endif
write(*,*)A,B,C
stop
end
mulai
A=0,B=1,C=2
tidak
C>B
ya
Hasil Keluaran Program
A=1
112
tulis A,B,C
selesai
4.2. Contoh 2 Penggunaan If … then … endif.
Code Program
open(unit=1,file='1.inp',status='old')
read(1,*)A,B,C
If (C.GT.B)then
A = 1.0
endif
write(*,*)A,B,C
stop
end
Input File (1.inp)
Hasil Keluaran Program
Ahmad Zakaria
mulai
A=0,B=1,C=2
C>B
tidak
ya
A=1
012
112
Diagram Alir
tulis A,B,C
selesai
17
Pemrograman bahasa Fortran
4.3. Contoh 1 Penggunaan Looping (do … enddo).
Code Program
Diagram Alir
do J=1,5
write(*,*)J
enddo
stop
end
Hasil Keluaran Program
1
2
3
4
5
mulai
J=1
J=J+1
J>5
ya
tidak
tulis J
selesai
4.4. Contoh 2 Penggunaan Looping (do … enddo).
Code Program
Diagram Alir
do J=5,1,­1
write(*,*)J
enddo
stop
end
Hasil Keluaran Program
5
4
3
2
1
Ahmad Zakaria
mulai
J=5
J=J - 1
J<1
ya
tidak
tulis J
selesai
18
Pemrograman bahasa Fortran
4.5. Contoh Penggunaan Subroutine.
Code Program
A = 1.0
B = 2.0
call hitung(A,B,C)
write(*,*)A,B,C
stop
end
subroutine hitung(D,E,F)
F = D + E
return
end
Hasil Keluaran Program
Diagram Alir
mulai
A=1, B=2
Hitung C
Tulis A, B, C
123
selesai
Ahmad Zakaria
19
Pemrograman bahasa Fortran
DAFTAR PUSTAKA
Etter, D.M., 1986, Fortran 77 Terstruktur, Bina Aksara, Jakarta.
Djojodihardjo, H., Sudarmo, M.S., 1985, Pengantar Pemrograman
Dengan Bahasa Fortran IV, Gramedia, Jakarta.
Nasution, Amrinsyah, 1987, FORTRAN 77, Erlangga, Jakarta.
Ahmad Zakaria
20
Download