Download - Statemen-Statemen Dasar Fortran
BAB IV
STATEMEN-STATEMEN DASAR FORTRAN
Statemen format
1. Statemen Format
Bentuk umum
<label statemen> FORMAT <format-spec>
Kegunaan:
Statemen FORMAT digunakan untuk mengedit data pada alat-alat I/O, yaitu
mengatur letak, tipe dan panjang dari data yang akan dimasukkan lewat alat
input atau yang akan ditampilkan ke alat output.
Penjelasan:
<label statemen> menunjukkan label dari statemen FORMAT yang akan
digunakan oleh statemen READ atau statemen WRITE.
<format-spec> adalah format specification, merupakan bentuk yang
menyediakan informasi terhadap letak, tipe dan
panjang dari data. Format specification ini harus
ditulis dalam tanda kurung. Isi dari format-spec ini adalah
edit deskriptor.
Statemen FORMAT lebih baik diletakkan di letakkan di ujung bawah atau
ujung atas program, sehingga mudah untuk mencarinya.
Contoh 2.1
Edit deskriptor menunjukkan informasi mengenai letak, tipe dan panjang dari
masing-masing data yang akan dimasukkan lewat alat input atau yang akan
ditampilkan di alat output. Ada dua macam edit deskriptor, yaitu repeatable
edit descriptor dan nonrepeatable edit descriptor.
STATEMEN DATA DAN STATEMEN PARAMETER
Sudah diketahui, bahwa untuk memasukkan suatu data ke suatu variabel
atau larik atau elemen dari suatu larik dapat dilakukan dengan beberapa
cara, yaitu:
1. Dengan statemen pengerjaan.
Contoh 3.1:
A = 5.25
Maka variabel A berisi nilai 5.25
A(1) = 7.15
A(2) = 8.00
A(3) = 5.55
Maka larik A untuk elemen pertama berisi 7.15, elemen kedua berisi nilai
8.00, dst.
2. Dengan statemen READ.
Contoh 3.2
READ (*,10)
10 FORMAT (F5.2)
3. Dengan statemen DATA.
Bila data yang akan dimasukkan ke suatu variabel atau larik jumlahnya
cukup banyak dan sifatnya konstan, maka akan lebih baik bila digunakan
statemen DATA.
4. Dengan statemen PARAMETER.
Banyak digunakan untuk memasukkan data konstan yang tidak begitu
banyak.
Statemen DATA
Bentuk umum:
DATA<nlist>/<clist>/[[,]<nlist>/<clist>/]…
Penjelasan:
Statemen DATA merupakan nonexecutable statement dan harus diletakkan
setelah statemen spesifikasi bila statemen spesifikasi digunakan.
<nlist> merupakan satu atau kumpulan dari nama variabel, larik atau
elemen larik.
<clist> merupakan satu atau kumpulan dari konstanta.
Jumlah konstanta untuk masing-masing <clist> harus sama dengan jumlah
dari nama variabel atau elemen larik untuk masing-masing <nlist>.
Memasukkan data ke variabel
Data yang berbentuk konstanta yang akan dimasukkan ke suatu variabel
harus mempunyai tipe yang sama dengan variabelnya. Konstanta numerik
harus dengan variabel numerik, konstanta karakter harus dengan variabel
karakter, konstanta logika harus dengan variabel logika.
Ada beberapa cara untuk memasukkan data ke variabel dengan statemen
DATA, sebagai beikut.
SATU NAMA YANG DIHUBUNGKAN DENGAN SATU KONSTANTA
Contoh 3.4
DATA A/3.0/,B/5.0/,C/1.5/
.
.
Contoh 3.5:
CHARACTER*20 B,C
DATA A/3.0/,B/’UGM YOKYAKARTA’/,C/’INDONESIA’/
Contoh 3.6:
CHARACTER B*14,C*9
DATA B/’UGM YOKYAKARTA’/,C/’INDONESIA’/
.
.
Contoh 3.7:
CHARACTER*20 NAMA
DATA NAMA /’ARIEF KURNIAWAN’/,GAJI/500000./
DATA TUNJANGAN /150000./
TOTAL = GAJI + TUNJANGAN
WRITE (*,1) NAMA
WRITE (*,2) GAJI
WRITE (*,3) TUNJANGAN
WRITE (*,4) TOTAL
1 FORMAT (1X, ‘NAMA :’,A20,/)
2 FORMAT (1X, ‘GAJI : Rp’,A20,/)
3 FORMAT (1X, ‘TUNJANGAN : Rp’,A20,/)
4 FORMAT (1X, ‘ -----------------+ ’, /, 1X, ‘TOTAL
* : Rp ‘,F10.2)
END
Bila program ini dijalankan, akan didapat hasil:
NAMA
:
GAJI
:
TUNJANGAN
:
TOTAL
ARIEF KURNIAWAN
Rp 500000.00
Rp 150000.00
-------------------+
Rp 650000.00
Kumpulan variabel dihubungkan dengan kumpulan konstanta
Contoh 3.8:
DATA A,B,C /3.0, 5.0, 1.5/
.
.
Contoh 3.9:
CHARACTER*20 B,C
INTEGER D
DATA A,B,C,D /3.0, ‘UGM YOKYAKARTA’,’INDONESIA’,25/
.
.
Sejumlah Variabel Dihubungkan dengan Sebuah Konstanta dengan Faktor
Pengulang
Contoh 3.10
DATA A,B,C / 3 * 1.5/
.
.
Contoh 3.11
CHARACTER*20 B,C
DATA A,B,C /1,5 2*, ‘UGM YOGYAKARTA ‘ /
SATU ELEMEN LARIK DIHUBUNGKAN DENGAN SATU KONSTANTA
Contoh 3.12:
DIMENSION A (3)
DATA A (1) /3.0/, A (2) /5.0/, A(3) /1.5/
Atau dapat juga ditulis:
REAL A (3)
DATA A (1) /3.0/ , A (2) /5.0 /, A (3) /1.5/
Contoh 3.13 :
REAL A (3)
CHARACTER*20 B (2)
DATA A (1) /3.0/, A (2) /5.0/ , A (3) /1.5/ , B (1) /’UGM
YOGYAKARTA’/
DATA B (2) / ‘INDONESIA’ /
KUMPULAN ELEMEN LARIK DIHUBUNGKAN DENGAN KUMPULAN KONSTANTA
Contoh 3.14 :
REAL A (3)
CHARACTER*20 B (2)
DATA A (1) , A (2) , B (1) , B (2) /3.0 ,5.0 , ‘UGM YOGYAKARTA’ , ‘
INDONESIA’ /
SATU NAMA LARIK DIHUBUNGKAN DENGAN KUMPULAN KONSTANTA
Contoh 3.15 :
REAL A (3)
CHARACTER*20 B (2)
DATA A / 3.0, 5.0, 1.5 /
DATA B / ‘UGM YOGYAKARTA’. ‘INDONESIA’ /
Karena A sudah didefinisikan dengan statement REAL sebagai larik real yang
mempunyai 3 elemen , demikian juga B didefinisikan sebagai larik karakter
yang mempunyai 2 elemen, maka:
A (1) = 3.0
A (2) = 5.0
A (3) = 1.5
B (1) = ‘UGM YOGYAKARTA’,
B (2) = ‘ INDONESIA
Contoh 3.16 :
REAL A (2,3)
DATA A /3.0, 5.0, 1.5, 1.25, 0.5, 7.5/
Yang perlu diperhatikan dalam pembacaan data matrik ini adalah elemen
baris dibaca terlebih dahulu tiap-tiap kolom baru bergerak ke kolom
berikutnya, sebagai berikut:
A(1,1) = 3.0
A(2,1) = 5.0
A(1,2) = 1.5
A(2,2) =
1.25
A(1,3) = 0.5
A(2,3) = 7.5
Contoh 3.17:
CHARACTER*7 A(2,2)
DATA A /’FORTRAN’, ‘COBOL’, ‘BASIC’, ‘PASCAL’/
.
.
Berarti:
A(1,1) =
‘FORTRAN’
A(2,1) = ‘COBOL’
A(1,2) = ‘BASIC’
A(2,2) = ‘PASCAL’
STATEMEN PARAMETER
Bentuk umum:
PARAMETER<name>=constant[[,]<name> = constant]…
Penjelasan:
Statemen PARAMETER digunakan untuk memasukkan sebuah data konstanta
ke suatu variabel.
<name> adalah nama variabel
<constant> adalah nilai konstanta yang tipenya harus sama
dengan tipe variabelnya.
Contoh 3.19:
1
2
3
4
5
CHARACTER NAMAPER*8, ALAMAT*10
PARAMETER (PHI=3.14159)
PARAMETER (NAMAPER=’’’PT XYZ’’’, ALAMAT=’YOKYAKARTA’)
PARAMETER (HPP=17500.00, DISCOUNT=15.00)
WRITE (*,1) PHI
WRITE (*,2) NAMAPER
WRITE (*,3) ALAMAT
WRITE (*,4) HPP
WRITE (*,5) DISCOUNT
FORMAT (1X, ‘NILAI PHI ADALAH : ‘,F7.5)
FORMAT (1X, ‘NAMA PENGUSAHA : ‘,A8)
FORMAT (1X, ‘ALAMAT PENGUSAHA : ‘,A10)
FORMAT (1X, ‘HARGA POKOK : Rp‘,F9.5)
FORMAT (1X, ‘POTONGAN HARGA : ‘,F5.2, ‘%’)
END
Bila program ini dijalankan, akan didapat hasil:
NILAI PHI ADALAH
:
NAMA PERUSAHAAN
:
ALAMAT PERUSAHAAN
:
HARGA POKOK
3.14259
“PT XYZ”
YOKYAKARTA
Rp 17500.00
15.00 %
:
POTONGAN
:
STATEMEN SPESIFIKASI
1. STATEMEN DIMENSION
Kegunaan:
Mendefinisikan bahwa suatu nama yang dibentuk oleh pembuat program
merupakan suatu larik serta sekaligus menentukan jumlah dari elemen-
elemennya.
Penjelasan:
<array> adalah nama dari suatu larik yang didefinisikan
<dim> adalah deklarasi dimensi yang menunjukkan jumlah elemen dari
larik.
Suatu larik maksimum dapat berdimensi sampai 7 buah dimensi dan uuran
maksimum seluruh larik adalah 64 K atau 65536 byte.
Suatu deklarasi dimensi dapat berupa:
1. Suatu konstanta integer positif tidak bertanda.
Contoh 4.4:
DIMENSION A(125), B(2,3)
Menunjukkan bahwa larik A berdimensi satu mempunyai jumlah elemen
yang pasti yaitu sebanyak 125 buah elemen. Larik B berdimensi dua juga
mempunyai jumlah elemen yang pasti, yaitu sejumlah 6 buah elemen
berbetuk matrik 2x3.
2. Suatu argumen numerik integer.
Contoh 4.5:
DIMENSION X(1000)
WRITE (*,100)
READ (*,105) N
.
.
.
C234
5
DIMENSION X(1000)
WRITE (*,100)
READ (*,105) N
.
.
.
CALL STDEV (N,X,RATA,SD)
.
.
.
END
SUBROUTINE STDEV(N,X,RATA,SD)
DIMENSION X(N)
.
.
.
RETURN
END
Jumlah elemen dari larik deklarasi dimensi argumen numerik integer tidak
pasti, tergantung dari nilai numerik integer yang bersangkutan. Untuk kasus
semacam ini, larik yang ukurannya dapat berubah (adjustable size array).
Bentuk ini hanya dapat digunakan pada subroutine.
STATEMEN IMPLICIT
Bentuk umum:
IMPLICIT <type>(<a> [,<a>]…) [, <type (<a> [,<a>],…)…]
Kegunaan:
Mendefinisikan tipe default dari nama yang dibuat oleh pembuat program.
Penjelasan:
<type> adalah salah satu dari type:
INTEGER
INTEGER*2
INTEGER*4
REAL
REAL*4
REAL*8
DOUBLE PRECISION
LOGICAL
LOGICAL*2
LOGICAL*4
CHARACTER
<a> adalah suatu huruf atau range dari huruf. Bila berbentuk range dari
harus dari urutan kecil ke besar.
STATEMEN TYPE
Bentuk Umum:
<type><name>[,<name>] …
Kegunaan:
Mendefinisikan tipe dari suatu nama yang dibentuk oleh pembuat program.
Penjelasan:
<type> adalah salah satu dari tipe:
INTEGER
INTEGER*2
INTEGER*4
REAL
REAL*4
REAL*8
DOUBLE PRECISION
LOGICAL
LOGICAL*2
LOGICAL*4
CHARACTER
<name> adalah nama variabel , nama larik, nama fungsi statem,en atau
nama fungsi eksternal.
Statemen type mempunyai aturan sebagai berikut:
1. Suatu Statemen type harus ditulis sebelum executable statement.
2. Nama yang ditunjukkan di statemen type tidak boleh didefinisikan lebih
dari sekali.
3. Suiatu statemen type tidak boleh diberi label statemen.
STATEMEN PENGERJAAN DAN STATEMEN ASSIGN
1. Statemen Pengerjaan
Bentuk umum:
<variabel> = <expression>
Penjelasan:
<variabel> adalah suatu nama variabel atau suatu elemen dari larik.
<expression> adalah ungkapan yang hasilnya akan disimpan di
<variabel>
Tipe variabel dan tipe ungkapan harus sejenis, maksudnya adalah bila
ungkapan adalah ungkapan aritmatika, maka variabelnya harus bertipe
numerik, kalau ungkapannya ungkapan karakter, maka variabelnya harus
tipe karakter dan kalau ungkapannya berupa ungkapan logika, maka
variabelnya harus bertipe logika. Kalau tidak sejenis, maka data akan
diartikan lain.
1.1Statemen pengerjaan aritmatika
Statemen pengerjaan aritmatika akan mengerjakan ungkapan
aritmatika dan menyimpannya ke variabel numerik atau ke elemen
larik numerik.
Contoh 5.1:
REAL A,B
B = 25.75
A = b*2
WRITE (*,5) A
5 FORMAT (1X, ‘B = ‘,F5.2)
END
Bila program ini dijalankan, akan diperoleh hasil:
B = 51.50
1.2Statemen pengerjaan logika
Pada statemen pengerjaan logika, ukuran dari variabel atau larik
penerima logika tidak terpengaruh oleh hasil ungkapannya, jadi dapat
digunakan tipe logika 2 bvyte atau pun tipe logika 4 byte sembarang.
Contoh 5.38:
LOGICAL A, B, C, D
A = .TRUE.
B =.FALSE.
C = A .AND. B
D = A. .OR. B
WRITE (*,5) A, B, C
5 FORMAT (1X,L2, ‘DAN’, L2, ‘ADALAH’,L2)
WRITE (*,6) A, B, C
6 FORMAT (1X,L2, ‘ATAU’,L2, ‘ADALAH’,L2)
END
Bila program ini dijalankan, akan didapatkan hasil:
T DAN F ADALAH F
T ATAU F ADALAH T
2. Statemen Assign
Bentuk umum:
ASSIGN <label> TO <variabel>
Kegunaan:
Memasukkan nilai dari suatu label ke suatu variabel tipe integer.
Penjelasan:
<label> adalah label dari suatu statemen yang berada pada unit program
yang sama dengan statemen ASSIGN-nya, label tersebut tidak boleh
berada di unit program yang lain, misalnya di suatu subroutine.
<variabel>adalah variabel tipe integer.
Bila variabel integer hasil dari statemen ASSIGN digunakan pada statemen
READ atau WRITE, maka harus menunjukkan label dari suatu statemen
FORMAT. Variabel integer tersebut di statemen READ dan WRITE digunakan
sebagai format specifier.
Contoh :
WRITE (*,5)
READ (*,15) A
WRITE (*,20) A
5 FORMAT (1X, ‘NILAI DARI A ?’, \)
15 FORMAT (BN, F6.2)
20 FORMAT (1X, ‘NILAI A YANG ANDA MASUKKAN ADALAH :’,F6.2)
END
Program tersebut dapat ditulis dengan statemen ASSIGN sebagai berikut:
ASSIGN 5 TO LABEL1
ASSIGN 15 TO LABEL2
ASSIGN 20 TO LABEL3
WRITE (*, LABEL1)
READ (*, LABEL2) A
WRITE (*, LABEL3) A
5 FORMAT (1X, ‘NILAI DARI A ?’, \)
15 FORMAT (BN, F6.2)
20 FORMAT (1X, ‘NILAI A YANG ANDA MASUKKAN ADALAH :’,F6.2)
END
Bila program ini dijalankan, akan didapat hasil:
NILAI DARI A ? 25.50
NILAI A YANG ANDA MASUKKAN ADALAH : 25.50
Statemen Kontrol (End, Stop, Pause, Do, dan Continue)
1. Statemen END
Bentuk umum:
END
Kegunaan:
Di dalam unit program utama, statemen END digunakan untuk mengakhiri
proses dari program. Bila terletak di unit program bagian, mempunyai efek
seperti statemen RETURN.
Penjelasan:
Pada suatu unit program utama harus mengandung statemen END.
Statemen END ini harus diletakkan paling akhir di suatu program. Statemen
END tidak boleh diberi label statemen dan harus berdiri sendiri tidak boleh
digabungkan dengan statemen yang lainnya.
Contoh :
A = 3.0
WRITE (*,5) A
5 FORMAT (1X, ‘NILAI A =’, F5.2)
END
2. Statemen STOP
Bentuk umum:
STOP [<n>]
Kegunaan:
Menghentikan proses pengerjaan program.
Penjelasan:
<n> merupakan suatu konstanta angka yang panjangnya tidak lebih dari
5 digit atau suatu string.
Perbedaan antara statemen STOP dengan statemen END ADALAH:
1. Statemen STOP tidak harus ada di dalam suatu unit program.
2. Statemen STOP boleh berada di bagian mana pun di dalam program,
tidak harus diletakkan di akhir program.
3. Statemen STOP dapat ditambahkan bentuk tulisan tertentu sebagai
berita.
Statemen STOP banyak dipergunakan untuk menghentikan suatu proses
program bila suatu kondisi yang diseleksi dalam program ada yang tidak
memenuhi dan menampilkan sebabnya.
4. Statemen PAUSE
Bentuk umum:
PAUSE[<n>]
Kegunaan:
Menghentikan sementara proses dari program dan proses akan dilanjutkan
bila ditekan tombol RETURN.
Penjelasan:
<n> adalah konstanta angka yang tidak boleh lebih dari 5 digit atau suatu
string.
Bila statemen STOP menghentikan program secara permanen, maka
statemen PAUSE menghentikan program secara sementara.
Bila <n> ditulis, maka akan ditampilkan di layar. Bila <n> tidak dituliskan,
maka sebagai gantinya akan ditampilkan berita:
Pause.
Please press <return> to continue
Contoh :
A = 3.0
B = 5.0
WRITE (*,5) A
5 FORMAT (1X,’NILAI A =’,F5.1,/)
15FORMAT (1X, ‘NILAI B=’,F5.1)
END
Bila program dijalankan, akan didapat hasil:
NILAI A = 3.0
Pause.
Please press <return> to continue.]
NILAI B = 5.0
5. Statemen DO
Bentuk umum:
DO<slabel>[,]<variabel> = <exprl>,<expr2> [,<expr3>]
Kegunaan:
Statemen DO digunakan untuk memproses berulang-ulang statemen-
statemen yang berada di antara statemen DO sampai dengan statemen
yang ditunjukkan oleh <slabel>.
Penjelasan:
<slabel> adalah label statemen dari suatu executable statement.
<variabel> adalah suatu variabel numerik integer.
<expr1> adalah ungkapan integer yang menunjukkan hitungan awal dari
banyaknya perulangan.
<expr2> adalah ungkapan integer yang menunjukkan hitungan akhir dari
banyaknya perulangan.
<expr3> adalah ungkapan integer yang menunjukkan pertambahan dari
hitungan perulangan, kalau pertambahannya satu, maka tidak
perlu ditulis.
Label statemen yang ditunjukkan oleh statemen DO harus berisi suatu
executable statement, tidak boleh berupa nonexecutable statement.
Executable statement tersebut disebut dengan istilah terminal statemen
(statemen yang menunjukkan akhir dari perulangan DO).
Contoh :
DO 5 I = 1, 5
5 WRITE (*,100)
100 FORMAT (1X, ‘KOMPUTER’)
END
Bila program dijalankan, akan didapat hasil:
KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
Dalam mengeksekusi loop DO ada beberapa langkah.
I. Mengevaluasikan parameter.
II. Menginisialkan variabel DO.
III. Mengkomputasikan bilangan iterasi.
IV. Mengetes bilangan iterasi.
V. Mengeksekusi statemen terminal.
VI. Mengaktifkan loop DO.
STATEMEN KONTROL (GOTO, IF, dan CONTINUE)
Statemen GOTO
Statemen GOTO merupakan statemen loncatan, yaitu digunakan untuk
meloncat ke suatu statemen lainnya yang tertentu. GOTO <slabel> adalah
statemen tak bersyarat yang digunakan untuk mengontrol proses menuju ke
suatu statemen lainnya yang ditunjukkan oleh <slabel> tanpa ada syarat
yang diberikan. Sedangkan GOTO<name>[[,](<slabel> [,<slabel>]…)]untuk
meloncat ke suatu label statemen <slabel> yang ditunjukkan oleh isi dari
<name>.
Statemen IF
Statemen IF merupakan statemen yang digunakan untuk mengontrol
suatu kondisi tertentu, dimana apabila kondisi statemen yang diberikan
terpenuhi, maka akan dilakukan proses selanjutnya. Bila tidak maka akan
dicari dilakukan proses sesuai dengan kondisi yang diberikan. Statemen IF
selalu diakhiri/diblock dengan ENDIF.