statemen-statemen dasar fortran

23

Click here to load reader

Upload: radinal

Post on 25-Jun-2015

495 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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.

Page 2: Statemen-Statemen Dasar Fortran

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.

Page 3: Statemen-Statemen Dasar Fortran

<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

Page 4: Statemen-Statemen Dasar Fortran

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

Page 5: Statemen-Statemen Dasar Fortran

DATA A,B,C / 3 * 1.5/

.

.

Contoh 3.11

CHARACTER*20 B,C

DATA A,B,C /1,5 2*, ‘UGM YOGYAKARTA ‘ /

Page 6: Statemen-Statemen Dasar Fortran

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

Page 7: Statemen-Statemen Dasar Fortran

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

Page 8: Statemen-Statemen Dasar Fortran

<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 %

Page 9: Statemen-Statemen Dasar Fortran

:

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

.

.

.

Page 10: Statemen-Statemen Dasar Fortran

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

Page 11: Statemen-Statemen Dasar Fortran

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:

Page 12: Statemen-Statemen Dasar Fortran

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

Page 13: Statemen-Statemen Dasar Fortran

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.

Page 14: Statemen-Statemen Dasar Fortran

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

Page 15: Statemen-Statemen Dasar Fortran

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.

Page 16: Statemen-Statemen Dasar Fortran

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

Page 17: Statemen-Statemen Dasar Fortran

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’)

Page 18: Statemen-Statemen Dasar Fortran

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.

Page 19: Statemen-Statemen Dasar Fortran

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.