Bahasa Pemrograman Fortran
Bahasa Pemrograman Fortran
Kelas : A
NIM
: H1D012033
DO k, indeks=aawal,batas,naikan
awal
nomor statement dari suatu statement yang merupakan batas akhir dari deretan yang harus diproses berulang-ulang
variabel integer/real yang harganya akan berubah-ubah dari suatu harga awal m1 ke harga akhir m2 dengan besar
langkah m3.
konstanta integer/real atau variabel integer/real yang menyatakan harga awal dari variabel real.
batas
konstanta integer/real atau variabel integer/real yang menyatakan harga akhir dari variabel real.
naika konstanta integer/real atau variabel integer/real yang menyatakan besar langkah.
n
jika naikan tidak dicantumkan naikan 1 akan digunakan, jika nilai indeksnya lebih besar dari pada batasnya,
kontrol akan dialihkan ke pernyataan sesudah akhir lup bersangkutan, akhir suatu lup ditandai dengan
pernyataan continue
100
WRITE(6,250)I,I2,I3
STOP
END
Penjelasan:
dari statement DO 100 I=1,100,1 sampai dengan statement 100 WRITE(6,250)I,I2,I3 akan diproses
berulang-ulang sesuai aturan yang ada. Harga I pertama kali adalah 1. Jadi I2=1**2 dan I3=1**3, lalu dikalikan
hasilnya, lalu I naik 1 sehingga I=2, maka I2=2**2 dan I3=2**3 lalu dituliskan hasilnya dst. Sampai nanti
I=100. Setelah itu program akan terus ke instruksi dibawahnya
Pengujian selesai atau belum selesainya suatu lup dilakukan pada permulaan lup yang bersangkutan,
seperti pada lup WHILE. Jadi,jika nilai awal indeksnya lebih besar dari pada batasnya, lup tersebut
tidak akan dilaksanakan.
Nilai indeks yang bersangkutan tidak boleh diubah dengan pernyataanlain selama lup yang
bersangkutan sedang dilaksanakan.
Setelah suatu lup mulai dilaksanakan , pengubahan parameter tidak akan berpengaruh pada lup yang
bersangkutan.
Jika naikannya negatif, keuarnya kontrol dari lup akan terjadi apabila nilai indeksnya lebih kecil
daripada batasnya.
Anda dapat mencabangkan sebuah lup keluar sebelum pelaksanaan lup yang bersangkutan selesai.
Nilai indeksnya ketika keluar dari lup tersebut sama dengan nilinya pada saat sebelum keluar dari lup
yang bersangkutan
Ketika sebuah lup selesai dilaksanakan, nilai indeksnya mengandung nilai terakhir yang telah
melampaui batasnya
Masuklah kedalam sebuah lup DO selalu melalui pernyataan DO sehingga ia dapat diawali
sebagaimana mestinya.
Jumlah putaran yang terjadi di dalam lup DO, dengan andaian bahwa batas yang bersangkutan lebih
besar dari pada atau sama dengan nilai awalnya ,dapat dihitung secara berikut :
batasnilaiawal
naikan
Tanda kurung pada suku pertamanya merupakan fungsi bilangan bulat terbesar. Yakni membuang
bagian pecahannya. Sehingga, jika kita punya pernyataan lup DO
DO 35 k=5,83,4
] [ ]
835
78
+1=
+1=20
4
4
Nilai indeks K akan sama dengan 5, kemudian 9, kemudian 13 dan seterusnya hingga nilai
terakhirnya,81. Lup tersebut tidak akan di laksanakan pada nilai 85 karena nilai tersebut sudah lebih
besar dari pada batasnya, 83.
SIMBOL PETA ALUR UNTUK LUP DO
Simbol peta alur yan akan kita gunakan untuk pernyataan lup DO adalah sebagai berikut :
Perdanakan indeks
uji
Naikan indeks
Indeks
DO NUMBER=2,60,2
ENDDO
i1
i2
im
Cacah maksimum index tergantung dari memorinya. Tiap elemen variabel real membutuhkan 4 byte dan tiap
elemen variabel integer membutuhkan 2 byte.
jadi untuk: DIMENSION A(10,10),B(5,5,5)
semua membutuhkan:
var A
= 100 x 4 byte
= 400 byte
var B
= 125 x 2 byte
= 250 byte
3. PERNYATAN DATA
Pernyataan DATA adalah pernyataan pencirian dan dengan sendirinya tidak dapat dilaksanakan. Ia dapat sangat
berguna dalam pemerdanaan unsur jajaran maupun variabel biasa. Bentuk umum nya :
DATA daftar nama variabel/daftar nilai/
Karena pernyaaan DATA adalah pernyataan pencirian , harus diletakan sebelum pernyataan terlaksanakan
manapun. Jadi, ia diletakan pada bagian awal program, bersama sama dengan pernyataan REAL<INTEGER<
dan DIMENSION. Pernyataan DATA tidak dapat digunakan di dalam lup karena hanya dapat digunakan
memerdanakan variabel atau jajaran pada awal pelaksanaan program saja.
4. MASUKAN DAN KELUARAN JAJARAN SATU DIMENSI
Untuk membaca data suatu jajaran dari terminal atau kartu data, kita dapat menggunakan pernyataan READ
format bebas atau kombinasi READ/FORMAT . Jika kita ingin membaca data semua unsur jajaran, kita dapat
menggunakan nama jajaran yang bersankutan tanpa nomor kaitannya . Kita juga dapat menentukan unsur
tertentu di dalam pernyataan READ.
5. MASUKAN DAN KELUARAN JAJARAN DUA DIMENSI
Perbedaan utama antara penggunaan nilai dari sebuah jajaran satu dimensi dengan penggunaan nilai dari sebuah
jajaran dua dimensi adalah bahwa dua nomor kaitan. Karenanya,sebagian besar lup yang digunakan dalam
pembacaan atau penulisan jajaran dua dimensi biasanya merupakan lup berlapis.
1. Subprogram FUNCTION
2. Subprogram SUBROUTINE
Subprogram adalah suatu program tersendiri yang dapat dipanggil berkali-kali oleh program utama maupun oleh
subprogram lain untuk tujuan tertentu. Subprogram bersifat otonom, sehingga pada prinsipnya terpisah dari
program utama maupun terhadap subprogram yang lain. Subprogram di compile secara terpisah dari program
utama. Di dalam suatu unit program, harus selalu ada program utama, sedangkan subprogram tidak harus
selalu ada dan kalau ada boleh lebih dari satu. Untuk dapat menggunakan subprogram perlu diketahui fungsi
statement RETURN.
Nama Subprogram
FUNCTION
SUBROUTINE
Keterangan
Bentuk umum:
FUNCTION nf(arg1,arg2,,argm)
Penjeasan:
nf
= nama subprogram FUNCTION, yang sekaligus menjadi nama
variabel outputnya, apabila namanya real, maka sifat functionnya real, dan bila nama
FUNCTION-nya integer, maka sifat FUNCTION-nya integer
arg1,arg2,,argm = argumen-argumen yang dikirim dari program pemanggil
ke subprogram FUNCTION. Argumen boleh berupa variabel maupun konstanta,
boleh real maupun integer.
Sifat-sifat :
1. Bersifat otonom, sehingga nama-nama variabel di dalam subprogram boleh
sama dengan nama-nama variabel di dalam program pemanggil dengan tidak
terjadi kesalahan. Boleh melakukan operasi READ atau WRITE, boleh
memanggil subprogram yang lain (baik function maupun subroutine) dll.
2. Dipanggil langsung dengan namanya.
3. Argumen-argumen hanya merupakan input, output keluar melalui nama
subprogram FUNCTION. Sehingga akibatnya, input bisa banyak (sebab
argumen-argumen bisa banyak), tetapi output hanya satu, yaitu melalui nama
function.
4. Boleh mempunyai lebih dari satu statement RETURN, maupun statement
STOP sesuai kebutuhan.
5. Hubungan antar argumen dalam program pemanggil dan program dipanggil
adalah hubungan atas dasar posisi, bukan atas nama variabel.
6. Argumen-argumen dapat berupa konstanta maupun variabel real maupun
integer.
Bentuk umum:
SUBROUTINE ns(arg1,arg2,,argm)
Penjelasan:
ns = nama subroutine subprogram. Nama ini mengikuti aturan variabel,
hanya tidak bersifat real maupun integer.
arg1,arg2,,argm = adalah argumen-argumen subprogram SUBROUTINE.
Argumen dapat bersifat input maupun output untuk subprogram
SUBROUTINEBersifat otonom, sehingga nama-nama variabel di dalam Subprogram
boleh sama dengan nama-nama variabel di dalam program pemanggil dengan tidak
terjadi kesalahan, oleh karena pada prinsipnya terpisah. Boleh melakukan operasi
READ dan WRITE, boleh memanggil subprogram lain (baik function maupun
subroutine) dll.
Dipanggil dengan cara: CALL ns(arg1,arg2,,argm).
Argumen-argumen boleh berfungsi sebagai input maupun sebagai output.
Input boleh banyak, output juga boleh banyak. Boleh mempunyai lebih dari
satu statement RETURN, maupun juga statement STOP sesuai kebutuhan.
Hubungan antara argumen dalam program pemanggil dan program dipanggil
adalah hubungan atas dasar posisi, bukan atas dasar nama variabel.
Argumen dapat berupa konstanta maupun variabel, real maupun integer.
Statement RETURN berfungsi untuk mengembalikan arus program dari program
terpanggil kepada program pemanggil.
Bentuk Umum: RETURN
Var2(m,n)
= variabel berindeks.
Boleh terdapat keduanya, boleh hanya satu, sesuai kebutuhan. Hubungan oleh COMMON adalah per posisi,
bukan per nama variabel. Variabel dalam statement COMMON boleh banyak.
nama posisi: suatu nama di dalam subroutine atau function yang menjadi titik awal untuk
mulai diproses.
Jadi untuk memanggil SUBROUTINE dapat langsung dengan perintah CALL nama posisi.
Program terstruktur menuntut agar program yang panjang dipisahkan ke dalam modul-modul. Modul tersebut
(fungsi dan subroutine) kemudian dapat digabungkan dengan program utamanya untuk menyelesaikan masalah
yang bersangkutan Program yang panjang akan mudah dituliskan, diperbaiki, diuji, dan diarsipkan apabila ia
dipecah-pecahkan ke dalam bentuk blok dan modul secara benar.