Matematika Lanjut 2

23
MODUL FORTRAN A. Pendahuluan Tujuan : Setelah membaca bab ini diharapkan praktikan dapat menggunakan Program Fortran dan mengerti bagaimana cara membuat program. Perkembangan Fortran : Fortran Singkatan Dari FORmula TRANslator, yang merupakan bahasa tingkat tinggi dan ber-orientasi pada rumus-rumus (formula) atau ke permasalahan teknik. Referensi pertama mengenai Fortran baru dikeluarkan dalam bentuk laporan tahun 1954 oleh Programming Research Group, suatu divisi teknik terapan dari IBM baru pada tahun 1957 diterapkan pada komputer IBM 704. Struktur Program Fortran : Dibagi menjadi 5 bagian kolom dan tiap baris di dalam program dapat berisi : 1. Metacommand 2. Komentar 3. Statement 4. Sambungan dari statement baris sebelumnya. Aturan Penulisan Fortran : 1. Kolom pertama merupakan Komentar atau metacommand (C, *, $). 2. Kolom 1 sampai 5 untuk penulisan label statement berupa angka. 3. Kolom 6 untuk indikasi sambungan dari baris sebelumnya. 4. Kolom 7 sampai 72 untuk penulisan Statement FORTRAN. 5. Kolom 73 sampai 80 tidak digunakan (Untuk Komentar bebas). Elemen Program Fortran : 1

Transcript of Matematika Lanjut 2

Page 1: Matematika Lanjut 2

MODUL FORTRAN

A. Pendahuluan

Tujuan :

Setelah membaca bab ini diharapkan praktikan dapat menggunakan

Program Fortran dan mengerti bagaimana cara membuat program.

Perkembangan Fortran :

Fortran Singkatan Dari FORmula TRANslator, yang merupakan bahasa tingkat

tinggi dan ber-orientasi pada rumus-rumus (formula) atau ke permasalahan teknik.

Referensi pertama mengenai Fortran baru dikeluarkan dalam bentuk laporan

tahun 1954 oleh Programming Research Group, suatu divisi teknik terapan dari IBM

baru pada tahun 1957 diterapkan

pada komputer IBM 704.

Struktur Program Fortran :

Dibagi menjadi 5 bagian kolom dan tiap baris di dalam program dapat berisi

:

1. Metacommand

2. Komentar

3. Statement

4. Sambungan dari statement baris sebelumnya.

Aturan Penulisan Fortran :

1. Kolom pertama merupakan Komentar atau metacommand (C, *, $).

2. Kolom 1 sampai 5 untuk penulisan label statement berupa angka.

3. Kolom 6 untuk indikasi sambungan dari baris sebelumnya.

4. Kolom 7 sampai 72 untuk penulisan Statement FORTRAN.

5. Kolom 73 sampai 80 tidak digunakan (Untuk Komentar bebas).

Elemen Program Fortran :

1. Metacommand atau compiler directive sifatnya optional.

2. Komentar berupa tulisan bebas.

3. Statement merupakan inti yang berupa instruksi-instruksi.

Suatu statement dapat dibentuk dari elemen-elemen :

1. Konstanta 5. Verb

1

Page 2: Matematika Lanjut 2

2. Operator 6. Unit Specifier

3. Ungkapan 7. Format Specifier

4. Nama

Konstanta :

Numerik yang terdiri dari :

Konstanta Integer (Numerik Bilangan Bulat) 2 byte berkisar antara -32767 sampai

32767 dan yang 4 byte berkisar antara -2147483647 sampai 2147483647.

Kontanta Real ketepatan tunggal (Pecahan), mempunyai batasan : 8.43E-37 sampai

dengan 3.37E+38 Positif -3.37E+38 sampai dengan -8.43E-37 Negatif

Konstanta Real Ketepatan ganda (Pecahan), mempunyai batasan : 4.19D-307

sampai dengan 1.67D+308 Positif -1.67D+308 sampai dengan -4.19D-307

Negatif Konstanta Karakter (String) yang ditulis dalam tanda Petik. Konstanta Logika

(Nilai Logika) .TRUE. .FALSE.

Operator :

Aritmatika : ** Pangkat level 1

* Kali level 2

/ Bagi level 2

+ Penjumlahan level 3

- Pengurangan level 3

Hubungan :

.LT. Lebih Kecil dari

.LE. Lebih kecil sama dengan dari

.EQ. Sama dengan

.NE. Tidak sama dengan

.GT. Lebih besar dari

.GE. Lebih besar sama dengan dari

Logika :

.NOT. Tidak atau Bukan

.AND. Dan

.OR. Atau

Ungkapan :

Ungkapan Aritmatika dengan operasi didalam tanda kurung didahulukan,

kemudian pangkat, kali, bagi, jumlah, kurang. Ungkapan Karakter tidak boleh

2

Page 3: Matematika Lanjut 2

menggunakan operator aritmatik, tapi dapat berbentuk konstanta karakter atau

nama variabel. Ungkapan hubungan adalah membandingkan niali dari dua numeric

atau karakter.

Nama : dapat berupa variabel, larik(array), fungsi, atau rutin.

Dengan ketentuan sebagai berikut :

1. Maksimum panjangnya 1320 karakter tapi hanya 6 karakter pertama yang

dibaca.

2. Karakter pertama harus berupa huruf.

3. Tidak boleh ada spasi atau blank.

3. Tidak boleh mengandung karakter khusus.

Nama Variabel ada 5 tipe :

1. Variabel Integer untuk menyimpan nilai numerik bulat. Bila tidak didefinisikan,

maka harus ditunjukkan oleh nama variable yang diawali dengan huruf I, J, K, L,

M atau N besarnya memori 2 byte atau 4 byte default-nya 4 byte.

2. Variabel Real ketepatan Tunggal menyimpan nilai pecahan 4 byte. Bila tidak

didefinisikan maka harus diawali huruf I,J,K,L,M,N.

3. Variabel real ketepatan Ganda menyimpan pecahan 8 byte. Harus diawali dengan

huruf selain I,J,K,L,M,N.

4. Variabel Karakter menyimpan variabel karakter 4 byte. Kalau tidak didefinisikan

dapat menampung 4 karakter. Diawali huruf apa saja boleh juga I,J,K,L,M,N.

5. Variabel Logika menyimpan nilai logika .TRUE. .FALSE. Diawali dengan huruf apa

saja boleh juga I, J, K, L, M, N.

Nama Larik ( Array ) :

Digunakan untuk menyimpan beberapa nilai dalam satu nama larik. Pada Fortran

dapat berdimensi satu, dua, tiga sampai tujuh. Bila tidak didefinisikan maka harus

diawali dengan huruf I, J, K, L, M, N.

Nama Fungsi :

Digunakan untuk mendapatkan suatu nilai dari fungsi tersebut. Dengan fungsi,

nilai data dapat dikirimkan ke fungsi dan fungsi akan memberikan hasil yang

diminta. Dalam Fortran digolongkan menjadi 3 macam, yaitu :

1. Fungsi Eksternal yang dibuat sendiri oleh pembuat program dalam bentuk unit

program yang terpisah tetapi masih dalam satu program.

3

Page 4: Matematika Lanjut 2

2. Fungsi Statement dedefinisikan tidak dalam bentuk unit program yang terpisah,

tetapi dalam statement tunggal.

3. Fungsi Hakiki atau Fungsi pustaka yang sudah disediakan oleh fortran.

Verb adalah kata kerja perintah yang terdapat dalam statement. Hampir semua

statement Fortran mempunyai verb, kecuali assignment statement. Contoh WRITE,

CALL

Unit Specifier dapat berupa :

1. * atau 0 menunjukkan unit alat untuk Keyboard atau layar.

2. Ungkapan Integer, yaitu nilai integer selain nilai 0 menunjukkan unit alat yang

dipergunakan adalah file eksternal (printer atau file disk). Statement OPEN

menunjukkan nama dari filenya. Nama file sebagai berikut :

- LPT1: atau PRN (printer yang pertama).

- CON: menunjukkan alat Console.

- LPT2: (Printer kedua).

- COM: atau COM1: atau COM2 untuk Port Komunikasi.

- Nama file di Disk.

contoh : OPEN(1,File='LPT1:')

Format Specifier :

Digunakan untuk menunjukkan format yang akan dipergunakan oleh data

input ataupun output.

Statement :

1. Statement yang terolah (Executable Statement) yaitu : statement yang

menyebabkan suatu operasi dilakukan. Contoh : ASSIGN, CALL, CONTINUE, DO,

ELSE, ELSEIF, AND, ENDIF, GOTO, IF, PAUSE, RETURN, STOP, BACKSPACE, CLOSE,

ENDFILE, OPEN, READ, REWIND dan WRITE.

2. Statement tak terolah (Non-Executable Statement) yaitu : statement yang tidak

melakukan operasi. Contoh : FORMAT, DATA, PARAMETER, COMMON, DIMENSION,

QUIVALENCE, EXTERNAL, IMPLICIT, INTRINSIC, SAVE dan TYPE , PROGRAM,

FUNCTION SUBROUTINE.

STATEMEN FORMAT

Bentuk umum:

<label statement> FORMAT <format-spec>

Kegunaan:

4

Page 5: Matematika Lanjut 2

Statement 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 statement> menunjukkan label dari statement FORMAT yang akan

digunakan oleh statement READ atau statement 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 specification ini yaitu edit descriptor.

Statement FORMAT bebas diletakkan dimana saja didalam program, tetapi yang baik

adalah bila ada beberapa statement FORMAT, dapat anda kumpulkan sementara

menjadi satu dan diletakkan diujung bawah atau ujung atas program, sehingga

mudah mencarinya.

Edit descriptor menunjukkan informasi mengenai letak tipe dan panjang dari masing-

masing data yang akan dimasukkan lewat alat input atau yang akan ditampilkan di

alat output.

CARRIAGE CONTROL

Karakter pertama dari setiap data yang ditampilkan di layar maupun diprinter

tidak turun ditampilkan atau dicetak. Bila karakter carriage control berupa karakter:

Blank atau spasi, mempunyai efek ganti baris baru,tetapi tidak

memberikan spasi.

0, berarti memberi spasi satu baris dari baris sebelumnya.

1, berarti akan mencetak di halaman baru ( tidak berlaku di layar, hanya

di printer).

+, berarti tidak ganti baris, tetapi overprinting (menumpangi penampilan

sebelumnya di baris yang sama).

FORMAT SPECIFICATION BERULANG

Selain repeatable edit descriptor dapat diulang dengan sejumlah perulangan

tertentu, format specification juga dapat di ulang, dengan bentuk umum:

<r> <format specification>

Penjelasan:

<r> merupakan jumlah pengulangannya.

5

Page 6: Matematika Lanjut 2

Maksimum jumlah pengulangan untuk format specification adalah 3

Level.

1. Level pertama pada format specification adalah :

2('BASIC') Yang sama dengan: 'BASIC BASIC'

2. Level kedua pada format specification adalah:

3. 2('COBOL',2('BASIC') Yang sama dengan:2('COBOL BASIC BASIC')

4. atau 'COBOL BASIC BASIC COBOL BASIC BASIC'

5. Level ketiga pada format specification adalah:

5(3X,'FORTRAN',2X,2('COBOL',2('BASIC')),/) Yang sama dengan :

5(3X,'FORTRAN',2X,'COBOL BASIC BASIC COBOl BASIC BASIC',/) atau :

5('FORTRAN COBOL BASIC BASIC COBOL BASIC

BASIC',/) Sehingga bila program ini dijalankan,akan didapat hasil sbb:

FORTRAN COBOL BASIC BASIC COBOL BASIC BASIC

FORTRAN COBOL BASIC BASIC COBOL BASIC BASIC

FORTRAN COBOL BASIC BASIC COBOL BASIC BASIC

FORTRAN COBOL BASIC BASIC COBOL BASIC BASIC

FORTRAN COBOL BASIC BASIC COBOL BASIC BASIC

STATEMENT DATA DAN STATEMENT PARAMETER

Untuk memasukkan suatu data ke suatu variabel atau larik atau elemen dari

suatu larik dapat dilakukan dengan beberapa cara, yaitu:

1. Dengan statement pengerjaan

Contoh A = 5.25

Maka variabel A akan berisi nilai 5.25.

Contoh :

A(1) = 7.15

A(2) = 8.00

A(3) = 5.55

Maka larik A untuk elemen pertama berisi nilai 7.15, elemen kedua berisi nilai 8.00

dan elemen ketiga berisi nilai 5.55.

2. Dengan statement READ

Contoh:

READ (*,10)

10 FORMAT (F5.2)

6

Page 7: Matematika Lanjut 2

3. Dengan statement DATA.

Bila data yang akan dimasukkan ke suatu variabel atau larik jumlahnya cukup

banyak dan sifatnya konstan, maka akan lebih baik bila digunakan statement

DATA.

4. Dengan statement PARAMETER.

Banyak digunakan untuk memasukkan data konstan yang tidak begitu

banyak.

STATEMENT DATA

Bentuk umum:

DATA<nlist>/<clist>/[[,]<nlist>/<clist>/]...

Penjelasan:

Statement DATA merupakan nonexecutable statemen dan harus diletakkan

setelah statement spesifikasi bila statement 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 variable numerik,konstanta karakter harus dengan variabel karakter,

konstanta logika harus dengan variabel logika. Ada beberapa cara untuk

memasukkan data ke variabel dengan statement DATA, sebagai berikut ini.

1. Satu nama variabel dihubungkan dengan satu konstanta

2. Kumpulan variabel dihubungkan dengan kumpulan konstanta

3. Sejumlah variabel dihubungkan dengan sebuah konstanta dengan

factor Pengulang.

7

Page 8: Matematika Lanjut 2

MEMASUKKAN DATA KE LARIK

Seperti halnya data yang dimasukkan ke variabel, nilai data konstanta

harus mempunyai tipe yang sama dengan lariknya dan nama larik harus sudah

disebutkan dengan statement DIMENSION atau dengan statement type. Caranya:

1. Satu elemen larik dihubungkan dengan satu konstanta

2. Kumpulan elemen larik dihubungkan dengan kumpulan konstanta

3. Satu nama larik dihubungkan dengan kumpulan konstanta (DIMENSION,

IMPLICIT DAN TYPE)

STATEMENT DIMENSION

Bentuk umum:

DIMENSION<array>)[,<array>(<dim>]...

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 menunjukan jumlah elemen dari larik Suatu

larik maksimum dapat berdimensi sampai 7 buah dimensi & ukuran maksimum

seluruh larik adalah 64 K atau 65536 byte. Kesalahan yang dideteksi oleh compiler

menunjukan bahwa ukuran larik melebihi batas 64 kilo byte. Deklarasi dimensi dari

suatu larik yang menunjukan jumlah elemen dari larik juga merupakan batas atas

dari suatu dimensi dengan batas bawahnya adalah nol.

Suatu deklarasi dimensi dapat berupa:

1. Suatu konstanta integer positif tidak bertanda. Bila deklarasi dimensi berupa nilai

integer positif, maka larik yang bersangkutan mempunyai elemen dengan batas atas

yang sudah pasti, yang ditunjukkan oleh deklarasi dimensi tersebut.

2. Suatu argument numerik integer. Bila suatu deklarasi dimensi berupa argument

numeric integer,maka jumlah elemen dari larik tersebut tidak pasti,tergantung dari

nilai argument numerik integer bersangkutan. Untuk kasus semacam ini, larik disebut

dengan istilah larik yang ukurannya dapat berubah (adjustable size array).

Adjustable size array ini hanya dapat digunakan pada subroutine.

8

Page 9: Matematika Lanjut 2

3. Suatu asterik (*)

Jika deklarasi dimensi adalah asterik (*),maka lariknya disebut dengan assumed-

sizedarray (larik dengan ukuran asumsi), yang berarti batas atas dari elemen larik

tidak ditentukan, tetapi diasumsikan. Assumed sized array juga digunakan di

subroutine.

STATEMENT INPUT/OUTPUT

1. READ

Dipergunakan untuk membaca data dari suatu media input.

BU:

READ(I, L) var1, var2,…

Dengan:

I : Nomor alat input, yaitu nomor yang menyatakan suatu alat input, misal:

keyboard, disk dll.

L : label FORMAT

Var1, var2 : Nama varabel yang datanay dibaca.

Contoh

READ (*,11)A,B,I

11 FORMAT (2F10.2,I5)

Keterangan:

Harga-harga A, B , I dibaca memlalui alat input yang bertanda * (standar input)

biasanya keyboard, dengan tata letaknya sesuai FORMAT yang berlabel 11 yaitu:

A dengan FORMAT F10.2

B dengan FORNAT F10.2

I dengan FORMAT I5

1. WRITE

Dipergunakan untuk menuliskan isi suatu variabel pada suatu media output.

BU:

WRITE(I,L) var1, var2 …

Dengan:

I : Nomor alat output, yaitu nomor yang menyatakan suatu alat output, misal

monitor, printer,disk

L : Label FORMAT

Var1, var2 : Nama variabel yang datany dituliskan.

9

Page 10: Matematika Lanjut 2

Contoh:

WRITE (*,10) A,B,C

10 FORMAT(3F20.8)

Keterangan:

Harga-harga A,B,C dituliskan pada alat aoutput yang bertanda * ( standar

output) biasnya monitor (console). Dengan tata letaknya sesuai FORMAT.

2. FORMAT

Dipergunakan untuk menentukan tata letak suatu data masukan pada media

input maupun data keluaran pada media output. Ada tiga jenis format untuk

menyatakan data numeris yatiu: tipe I, tipe F dan tipe E.

a. Format Tipe I

Tipe I dipakai untuk membaca atau menuliskan data INTEGER.

BU : nIw

Keterangan:

n = Cacah format I

w = Banyak kolom yang dipakai oleh data.

Contoh:

READ(*,100) IDATA, IHASIL

100 FORMAT(I5,I5)

Atau

100 FORMAT(2I5)

b. Format Tipe F

Tipe F dipakai untuk membaa atau menuliskan data-data REAL.

BU: nFw.d

Keterangan:

n = cacah format F

w = banyak kolom yang dipakai oleh data

d = cacah digit di belakang titik desimal.

Contoh:

READ(*,100) X1, X2

100 FORMAT(F4.2,F4.2)

1

Page 11: Matematika Lanjut 2

Atau

100 FORMAT(2F4.2)

c. Format Tipe E

Tipe E dipakai untuk membaca atau menuliskan data-data REAL dengan cara

EXPONENT.

BU: nEw.d

Keterangan:

n = cacah format E

w = banyak kolom yang dipakai oleh data

d = cacah digit di belakang titik desimal.

Contoh:

READ(*,100) X1, X2

100 FORMAT(E4.2,E4.2)

Atau

100 FORMAT(2E4.2)

d. Format Tipe X

Tipe X ini bukan untuk membaca atau menulis, melainkan hanya untuk

memberitahu banyak ruang kosong (spasi) antar data-data yang dibaca atau

ditulis.

BU: nX dengan n: jumlah ruang kosong.

Contoh:

READ(*,100) PDAT,NILAI

100 FORMAT(F5.1,3X,I5)

e. Format Literal

Untuk menuliskan data literal langsung dari program ke media output.

BU: ‘ xxxxxxxxxx’

Contoh:

WRITE(*,100)

FORMAT(‘BELAJAR BAHASA FORTRAN’)

STATEMEN CONTROL

1. STATEMEN GO TO

Ada dua bentuk untuk statemen ini, yaitu:

- GO TO statemen tanpa syarat dan

1

Page 12: Matematika Lanjut 2

- GO TO statemen dengan hitungan

a. GO TO tanpa syarat

Berfungsi memerintahkan proses untuk meloncat langsung ke statemen dengan

label yang ditunjuk.

Contoh:

100 READ(*,10) A,B

C=A*B

-

GO TO 100

-

STOP

END

b. GO TO dengan hitungan

Statemen ini memberi perintah agar program loncat ke statemen dengan label nk

apabila harga var= k. Aturan-aturan untuk GO TO statemen dengan hitungan:

- n1,n2,..,nm dapat tidak urut dan dapat sama.

- Harga var harus lebih kecil atau sama dengan m dan var 0.

- Harga var harus telah ditentukan sebelum program tiba pada statemen ini.

- Steiap nomor statemen yang ada dalam program dapat dipergunakan dalam

GO TO statemen dengan hitungan. Kecuali nomor statemen untuk FORMAT.

Contoh:

READ(*,10)N

GO TO (100,200,300)N

100 X=P*A

200 X=P*B

300 X=p*D

STOP

END

2. STATEMEN IF

Statemen IF ada 2 jenis:

- Statemen IF hitungan

- Statemen IF nalar.

1

Page 13: Matematika Lanjut 2

a. Statemen IF hitungan adalah untuk mengecek isi suatu variabel atau hasil

suatu pernyataan hitungan, yaitu apakah negatif, nol atau positif. Dan

berdasarkan hasil cek yang diperoleh, program diperintahkan loncat ke nomor

statemen: n1, atau n2 atau n3.

BU : IF (pr) n1,n2,n3

Dimana:

pr : Pernyataan hitungan atau suatu variabel, boleh REAL atau INTEGER;

n1,n2,n3 : Nomor-nomor statemen yang akan dituju untuk digarap

instruksinya.

Penjelasan:

- Kalau harga variabel, atau hasil pernyataan hitungan < 0 (negatif), program

loncat ke n1. Hitungan = 0 (nol) program loncat ke n2 dan kalau hitungan > 0

(positif) program loncat ke n3.

- N1,n2,n3 dapat dua buiah sama, tetapi tidak dapat semua sama.

- Hirarki dan peraturan-peraturan lain berlaku juga pada ekspresi pr di dalam

statemen IF.

Contoh:

READ(*,10) A,B,C

IF(B**2-4*C)100,200,300

100 WRITE(*,110)

110 FORMAT(‘AKAR IMAJINER’)

200 X=-B/(2.*A)

300 X1=(-B+SQRT(b**2-4*A*C))/(2.*A)

STOP

END

b. Statemen IF Nalar untuk membandingkan dua (atau lebih) variabel secara

nalar, kalau perbandingan nalar memberikan hasil “ya”, maka statemen I

digarap, apabila tidak dipenuhi maka program terus menggarap statemen di

bawahnya.

BU: IF (ekspresi nalar) statemen)

Operator nalar yang dipakai:

1

Page 14: Matematika Lanjut 2

.EQ. sama dengan

.NE. tidak sama dengan

.LT. lebih kecil dari

.LE. lebih kecil atau sama dengan

.GT. lebih besar

.GE. lebih besar atau sama dengan

.OR. atau

.AND. dan

.NOT. bukan

Contoh:

IF(A .LE. 10.0 .AND. A .GT. 5.0) GO TO 150

WRITE(*,100)

100 FORMAT(1X,’TIDAK LULUS’)

STOP

150 WRITE(*,200)

200 FORMAT(1X,’LULUS’)

STOP

END

3. STATEMEN DO

Berfungsi untuk memerintahkan komputer agar menjalankan suatu deretan,

berulang-ulang dengan cara tertentu.

BU : DO n var=m1,m2,m3

n : Nomor statemen dari suatu statemen yang merupakan batas akhir dari

deretan yang harus diproses berulang-ulang.

Var : Variabel integer/real yang harganya akan berubah-ubah dari suatu

harga awal m1 ke harga akhir m2 dengan besar langkah m3.

Pada FORTRAN IV kalang DO tidak dapat diakhir dengan kontrol statemen, untuk

mengatasi ini dapat dipakai statemen CONTINUE. Sednag pada FORTARN 77

dijinkan.

Contoh:

1

Page 15: Matematika Lanjut 2

DO 100 I =1,25

X=I**3

WRITE(*,10)X

100 IF (X .GT. 1000.0) GO TO 200

200 CONTINUE

STOP

END

SUBPROGRAM

Subprogram ada 2 macam:

- subprogram FUNCTION

- subprogram SUBROUTINE

1. Subprogram FUNCTION

BU:FUNCTION nf(arg1,arg2…argm)

Sifat-sifat FUNCTION :

- bersifat otonom, sehingga nama-nama variabel di dalam subprogram

boleh sama dengan nama-anam variabel di dalam program pemanggil

dengan tidak terjadi kesalahan.

- Dipanggil langsung dengan namanya.

- Argumen-argumen hanya merupakan input, output keluar melalaui nama

subprogram FUNCTION.

- Boleh mempunyai lebih sari satu statemen RETURN, maupun juga

statemen STOP.

- Argumen dapat berupa konstanta maupun variabel, real atau integer.

Contoh:

READ(*,10) A,B

C= TAMBAH(A,B)

WRITE(*,10)C

10 FORMAT(F8.2)

STOP

END

FUNCTION TAMBAH(X,Y)

TAMBAH=X+Y

RETURN

END

1

Page 16: Matematika Lanjut 2

2. Subprogram SUBROUTINE

BU: SUBROUTINE ns(arg1, arg2…argm)

Sifat-sifat SUBROUTINE:

Hampir sama dengan FUNCTION, hanya berbeda pada pemanggilannya

yaitu dengan cara : CALL nama subroutine. Dan SUBROUTINE tidak dapat

mengembalikan nilai sebagaimana dengan FUNCTION .

Contoh:

READ(*,10) A,B

TAMBAH(A,B)

STOP

END

SUBROUTINE TAMBAH(X,Y)

Z= X+Y

WRITE(*,100)Z

100 FORMAT(F8.2)

RETURN

END

Virtual Lab PTA 2008 – 2009

Matematika Lanjut 2

1. Jelaskan Struktur Program Fortran dan Aturan penulisan dalam Fortran !

2. Apa perbedaan Statement Stop dan End!

3. Apa perbedaan Procedure dan Function!

4. Buatlah program Fortran

a. Program Menghitung Luas Trapesium

b. Program Perkalian Matriks

5. Apa hasil (output) dari program berikut ini!

A. PROGRAM 1, Bila banyaknya deret 5

INTEGER A,B,C

WRITE (*,'(24(/))')

WRITE (*,'(A,\)') 'Masukkan Banyak Deret = '

READ (*,'(I2)') N

A=N

B=1

1

Page 17: Matematika Lanjut 2

DO 10 I=1,N

DO 20 J=1,A

WRITE (*,'(A,\)') ' '

20 CONTINUE

WRITE (*,'(I1,\,A,I1)') A,' ',A

DO 30 J=1,B

WRITE (*,'(A,\)') ' '

30 CONTINUE

WRITE (*,'(I1,\,A,I1)') A,' ',A

WRITE (*,*)

A=A-1

B=B+2

10 CONTINUE

STOP

END

B. Program 2 Bila banyaknya deret 5

INTEGER A,B,C

WRITE (*,'(24(/))')

WRITE (*,'(A,\)')'Masukkan Banyaknya Deret = '

READ (*,'(I2)') N

A=N

C=N-1

B=1

DO 10 I = 1,N

DO 20 J = 1,A

WRITE (*,'(A,\)') ' '

20 CONTINUE

IF (A .EQ. N) THEN WRITE (*,'(I1)') A

ELSE WRITE (*,'(I1,\)') A

DO 30 K=1,B

WRITE (*,'(A,\)') ' '

30 CONTINUE

WRITE (*,'(I1)') A

B=B+2

ENDIF

A=A-1

1

Page 18: Matematika Lanjut 2

10 CONTINUE

A=2

B=B-4

IF (N .NE. 1) THEN

DO 40 I=1,C

DO 50 J=1,A

WRITE (*,'(A,\)') ' '

50 CONTINUE

IF (C .EQ. 1) THEN

WRITE (*,'(I1)') A

ELSE

WRITE (*,'(I1,\)') A

DO 60 K=1,B

WRITE (*,'(A,\)') ' '

60 CONTINUE

WRITE (*,'(I1)') A

ENDIF

A=A+1

B=B-2

C=C-1

40 CONTINUE

ENDIF

STOP

END

C. Program 3 Bila banyaknya deret 5

INTEGER A,B,C

WRITE (*,'(24(/))')

WRITE (*,'(A,\)') 'Masukkan Jumlah Deret = '

READ (*,'(I2)') N

A=N

DO 10 I=1,N

B=I

DO 20 J=1,A

WRITE (*,'(I2,\,A)') B,' '

B=B+2

20 CONTINUE

1

Page 19: Matematika Lanjut 2

WRITE(*,*)

A=A-1

10 CONTINUE

STOP

END

********* Selamat Mengerjakan **********

Keterangan :

1. Tugas Diatas dikumpulkan dalam bentuk print dan di jilid.

2. Tugas ini adalah tugas Peorangan bukan tugas kelompok

3. Bisa dikumpulkan perkelas atau perorangan ( Nanti akan mendapatkan tanda /

bukti mengumpulkan tugas )

1