Anda di halaman 1dari 15

Pengenalan Bahasa Fortran

MODUL I
PENDAHULUAN, PROGRAM KONDISIONAL DAN ITERASI
Tujuan Praktikum

Mengetahui bagaimana struktur penulisan dalam program berbahasa FORTRAN.

Mengetahui cara penggunaan syntax kondisional dan iterasi.

Mengetahui tujuan penggunaan dan aplikasi program kondisional dan iterasi.

1.1 Pendahuluan
1. Tata Cara Penulisan Program Bahasa FORTRAN
a) Struktur Penulisan
Struktur Penulisan bahasa Fortran memiliki aturan tersendiri.
1

4 5 6 7 8 72 73
Kolom 1 digunakan untuk menulis pernyataan C (comment). Semua pernyataan di
sepanjang baris itu di tidak akan dieksekusi.

Kolom 1 5 digunakan untuk label pernyataan pengulangan dan format yang berbentuk
angka.

Kolom 6 disediakan untuk tanda sambung yang menghubungan baris sebelumnya dan
baris sesudahnya. Biasanya diisi dengan karakter angka.

Kolom 7 72 adalah kolom untuk menuliskan pernyataan Fortran.

Kolom 73 dan seterusnya diabaikan oleh computer (tidak dieksekusi).

b) Jenis Data
Ada lima jenis data standard yang di kenal dalam bahasa Fortran seperti pada table di bawah ini.
Table 1, Deklarasi jenis data
Jenis Data
Deklarasi
Integer
Integer
Ril (presisi tunggal dan ganda)
Real, Real*4, Real*8, double precision
Kompleks
Complex
Logika
Logical
Karakter
Character*n ( 1 < n < 32767 )
Satu jenis lain yang hanya pada MS FORTRAN, yaitu jenis Record, merupakan perkembangan
mutakhir.

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


Pada awal perkembangannya, Fortran secara otomatis menganggap setiap variable yang
namanya diwakili huruf I, J, K, L, M, atau N (abjad I N) akan dianggap sebagai variable integer, dan
variable yang diawali dengan huruf yang lainnya di anggap sebagai variable berjenis Real.
Pembagian jenis data berdasarkan huruf awal saja seperti di atas ada kalanya tidak di kehendaki.
Untuk menyiasati hal tersebut adalah dengan menyatakan variable tersebut sebagai variable Real,
contoh variable momen secara langsung merupakan variable integer, maka untuk menjadikannya real
adalah :
Real momen
Atau
Real*4 momen
Jenis data yang baru ada sejak Fortran 77 adalah jenis karakter. Untuk data karakter, huruf besar
dan huruf kecil tidak dipandang sama. Misalnya karakter ABC tidaklah sama dengan AbC
Pernyataan Write akan menulis tulis nama file yang akan di buka di layer computer, sedangkan
pernyataan Read meminta data untuk variable nama file. Untuk menjawabnya harus menggunakan
tanda kutip, misal coba.dat. Pernyataan Open seperti di atas berarti membuka file bernama coba.dat
(pada contoh ini) dengan nomor unit 3. Selesai program ini dijalankan, pada file coba.dat akan tertulis
ini di dalam file unit 3.
Cara lain untuk menyatakan jenis variable adalah dengan pernyataan Implicit. Sebagai contoh,
pernyataan Implicit di dalam unit program Program Latihan berikut :
Program Latihan
Implicit Real (A-D,K), Integer (I,N)
.
.
End
Mengandung arti bahwa di dalam unit program Latihan tersebut, semua variable yang di awali dengan
huruf A, B, C, D, dan K adalah varibel ril, dan semua varibel yang di awali dengan huruf I dan N adalah
Integer.
Klasifikasi data dalam bahasa Fortran
data

data numeris

data real

data alphabetis

data integer

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


dengan melihat pembagian jenis data tersebut dapat dilihat kemana orientasi penggunaan bahasa
fortran tersebut.
c) Bagan Alir (Flow Chart)
Flow Chart adalah diagram yang disusun untuk menyederhanakan arus logika suatu program.
Untuk menggambarkan bagan arus dipergunakan symbol-simbol sebagai berikut :
Simbol

Penjelasan

1.

Tanda arah aliran

2.

Proses membaca input program

3.

Proses membaca atau menulis dari suatu media

4.

Proses menulis ke printer

5.

Suatu proses

6.

Proses pengecekan

7.

Tanda mulai, atau tanda akhir

8.

Tanda sambung

Contoh penggunaan flow chart pada permasalahan sederhana berikut :


Suatu segitiga ABC memiliki sisi-sisi a=5cm, b=4cm, c=6cm, tentukan nilai sudut a ?
Flow chart
Mulai
Baca a,b,c
hitung
sudA= cos-1[(b2+c2-a2)/2bc]

Tulis sudA
sudA

selesai

penjelasan :
mula-mula dibaca input/masukan beerupa nilai a, b, dan c kemudian dihitung sudA dengan rumus yang
telah ditentukan. Dan akhirnya mencetak hasilnya.
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


2. Program Sederhana

Statement Program
Sebuah program dapat diberi nama di awal program tersebut dengan statement program yang single.

Layout Program
Layout Program pada fortran terdiri dari 80 kolom dengan spesifikasi sebagai berikut :
Kolom
1-5
6
7-72
73-80

Penggunaan
Statemen label
Penyambung karakter atau dapat dikosongkan
Statemen FORTRAN
Tidak digunakan

END dan STOP


Setiap program harus mengandung statemen END, yang menandakan akhir sebuah program. Setelah
statemen end tidak boleh ada perintah-perintah maupun tulisan lain.
Statemen STOP berfungsi untuk menghentikan eksekusi dari program tersebut. Pada FORTRAN 77,
statemen END dapat berfungsi sebagai STOP jika eksekusi tersebut berada di akhir program. Namun,
statemen STOP dapat ditulis lebih dahulu untuk mengeksekusi di bagian lain selain akhir program.

Comments
Huruf C atau tanda seru (!) pada kolom 1 membuat kompiler mengabaikan tulisan pada baris tersebut
yang dapat digunakan sebagai komentar untuk memberi informasi kepada semua orang yang
membaca program tersebut.

Contoh program:
Program Program_Pertama
write(*,*)ini program pertama Saya
write(*,*)
stop
end
Program Biodata
write(*,*)'Nama
: .....'
write(*,*)'NIM
: .....'
write(*,*)'Alamat : ....'
write(*,*)'Jenis Kelamin
write(*,*)'No. Telp. :.....'
stop
end

: .....'

Program Membedakan_Bilangan_Real_dan_Integer
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


data a,b,c,d,e/2.,4.,6.,8.,10./
data i,j,k,l,m/2,4,6,8,10/
c

c
c
c
c

c
c

Menampilkan nilai awal masing-masing data


write(*,*)'Nilai awal :'
write(*,*)'a=',a
write(*,*)'b=',b
write(*,*)'c=',c
write(*,*)'d=',d
write(*,*)'e=',e
write(*,*)'i=',i
write(*,*)'j=',j
write(*,*)'k=',k
write(*,*)'l=',l
write(*,*)'m=',m
Operasi Matematika
x dan y adalah operasi bilangan real
x = 2/b+a*c/4*d-e
y = (2/(a+b)*c)/(4*(d-e))
ix dan iy adalah operasi bilangan integer
ix = 2/j+i*k/4*l-m
iy = (2/(i+j)*k)/(4*(l-m))
Menampilkan hasil operasi
write(*,*)'x=',x
write(*,*)'y=',y
write(*,*)'ix=',ix
write(*,*)'iy=',iy
mengakhiri eksekusi
stop
mengakhiri program
end

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


3. Penggunaan Operator
Contoh operator yang biasa digunakan:
Operator
*
/
+
**
mod

Kegunaan (aritmatik)
Perkalian
Pembagian
Penjumlahan
Pengurangan
Pangkat
sisa hasil pembagian

Operator
Eq
Ne
Lt
Gt
Le
Ge

Kegunaan (pembanding)
Sama dengan
Tidak sama dengan
Kurang dari
Lebih dari
Kurang dari sama dengan
Lebih dari sama dengan

Operator
=
Contoh perhitungan dengan operator aritmatik:

Kegunaan (penugasan)
Menyatakan nilai suatu
variabel

Program Waktu_tidur
integer a,b,x,y,z,t,t1
write(*,*)'Masukkan lamanya dirimu tidur dalam 1 hari (jam,menit)'
read(*,*)a,b
c
c
c
c
c

x adalah jumlah menit dalam 1 hari


x=24*60
y adalah lamanya tidur dalam 1 hari (menit)
y=(a*60)+b
z adalah lamanya tidak tidur dalam 1 hari (menit)
z=x-y
t adalah hasil pembagian antara z dan jumlah menit dalam 1 jam
t=z/60
t1 adalah sisa hasil pembagian antara z dan jumlah menit dalam 1 jam
t1=mod(z,60)
write(*,*)'Maka, dalam 1 hari, dirimu tidak tidur selama ='
write(*,*)t,' jam',t1,' menit'
stop
end

1.2 Program Kondisional dan Iterasi


1. Program Kondisional Pemakaian Select Case
PROGRAM Konversi Nilai Huruf Menjadi Angka
character N,jwb
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


integer Nilai
7

write(*,*)'Masukkan nilai huruf='


read(*,*)N
Select case (N)
case('A')
Nilai=4
write(*,*)'Nilai anda',Nilai
case('B')
Nilai=3
write(*,*)'Nilai anda',Nilai
case('C')
Nilai=2
write(*,*)'Nilai anda',Nilai
case('D')
Nilai=1
write(*,*)'Nilai anda',Nilai
case('E')
Nilai=0
write(*,*)'Nilai anda',Nilai
endselect
write(*,*)'Dilanjutkan?(Y/N)'
read(*,*)jwb
if(jwb.eq.'Y')then
go to 7
endif
stop
end

TUGAS :
1. Bagaimana bentuk flowchart untuk syntax SELECT CASE dan jelaskan serta analisis maksud dari
program diatas!
2. Kendala apa yang ditemukan pada program diatas? Beri penjelasan!

2. Program Kondisional Pemakaian If-Then-Else


Program menentukan jenis segitiga
real s1,s2,s3
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


7

write(*,*)'Masukkan sisi 1 dari segitiga ='


read(*,*)s1
write(*,*)'Masukkan sisi 2 dari segitiga ='
read(*,*)s2
write(*,*)'Masukkan sisi 3 dari segitiga ='
read(*,*)s3
if ((s1.le.0).or.(s2.le.0).or.(s3.le.0)) then
write(*,*)'Data salah tidak bisa diproses'
go to 7
elseif ((s1.eq.s2).and.(s2.eq.s3)) then
write(*,*)'Termasuk segitiga sama sisi'
elseif (((s1.eq.s2).and.(s1.ne.s3)).or.((s2.eq.s3).and.(s2.ne.s1)).o
5r.((s3.eq.s1).and.(s3.ne.s2)))then
write(*,*)'Termasuk segitiga sama kaki'
elseif ((s1.ne.s2).and.(s2.ne.s3)) then
write(*,*)'Termasuk segitiga sembarang'
endif
stop
end

TUGAS :
1. Bagaimana bentuk flowchart untuk syntax IF-THEN-ELSE dan jelaskan serta analisis maksud dari
program diatas!
2. Apa perbedaan antara perintah ELSE dengan ELSEIF?
3. Kendala apa yang ditemukan pada program diatas? Beri penjelasan!

2.3.Penggunaan Kondisional If-Then Sebagai Loop


Program if_then_bisa_buat_loop
character q
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


10

write(*,*)'Masukkan bilangan yang akan dipangkatkan:'


read(*,*)num
i=1
pow=num

20

if (i.lt.10) then
pow=pow*num
i=i+1
write(*,*)num,' pangkat',i,' adalah',pow
goto 20
endif
write(*,*)'Coba lagi? (y/n)'
read(*,*)q
if ((q.eq.'y').or.(q.eq.'Y')) then
goto 10
endif
stop
end

TUGAS :
1. Bagaimana bentuk flowchart untuk dan jelaskan serta analisis maksud dari program diatas!
2. Apa perbedaan antara syntax IF-THEN-ELSE dengan IF-THEN?
3. Cobalah untuk membuat program iterasi :
X / Y dengan Y dari 1 sampai 20 dan X di masukkan dari keyboard
dengan menggunakan if-then seperti program diatas!

2.4.Program Iterasi Do-Enddo


program cara_pake_iterasi_do_enddo
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


write(*,*)'Masukkan bilangan yang dipangkatkan:'
read(*,*)num
pow=num
do i=1,9
pow=pow*num
write(*,*)num,' pangkat',i+1,' adalah',pow
enddo
stop
end
TUGAS :
1. Bagaimana bentuk flowchart untuk program di atas dan jelaskan serta analisis maksud dari
program diatas!
2. Cobalah untuk membuat program iterasi :
X / Y dengan Y dari 1 sampai 20 dan X di masukkan dari keyboard
dengan menggunakan do-enddo seperti program diatas!

Kata Bijak :

It is not enough to have a good mind,


the main thing is to use it well.
( Tidaklah cukup hanya memiliki pemikiran yang bagus,
Yang lebih penting, adalah bagaimana menggunakkannya
dengan baik. )
= Rene Descartes =

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran

MODUL II
SUBPROGRAM
Tujuan praktikum

Mengetahui cara penggunaan subprogram (fungsi dan subrutin)


Dalam suatu program yang panjang terkadang dipakai subprogram untuk menghindari penulisan

kode yang sama secara berulang-ulang. Subprogram ada dua macam : subprogram fungsi dan
subprogram subroutine.

1. Subprogram Fungsi
Subprogram fungsi dipanggil atau dipakai dengan cara menuliskan nama fungsi disertai argument
yang sesuai. Nama argument pada pernyataan pemanggilan tidak perlu sama dengan parameter yang
dipakai pada waktu pendefinisian fungsi. Argument boleh berupa konstanta, nama peubah, ekspresi
hitungan atau nama subprogram lainnya. Yang terpenting adalah argument-argumen harus memiliki
padanan satu-satu pada dengan urutan dan tipe data parameter pada deklarasi pendefinisian fungsi.

Struktur fungsi :
FUNCTION name(argument list)
Declaration part
Subprogram statement
END

Cara pemanggilan :
Menyebutkan nama fungsi dan argumennya.
Contoh : N=name(argument list)

Contoh Program :
c
c

Program luas
pendeklarasian variabel
real a,b,c,z
pemasukan nilai
write(*,*)'Masukkan nilai a:'
read(*,*)a
write(*,*)'Masukkan nilai b:'
read(*,*)b
write(*,*)'Masukkan nilai c :'
read(*,*)c

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


c

proses menghitung
z=F(a)-F(b)+F(c)
write(*,*)'Luas daerah =',z
end

fungsi
real function F(x)
F=100/(x)
end

2. Subprogram Subroutine
Subroutine digunakan apabila diperlukan perhitungan lebih dari satu nilai selain itu juga digunakan
untuk melakukan suatu tugas tertentu.
Pernyataan pertama dalam subroutine harus diawali dengan deklarasi subroutine.
SUBROUTINE name(argument-list)
Nama suatu subroutine tidak dikaitkan dengan suatu nilai, karena nama subroutine tidak dikaitkan
dengan sutu nilai maka diperlukan suatu pernyataan khusus yaitu pernyataan Call.
CALL name(argument-list)
Subroutine tidak selalu memerlukan parameter sehingga dibolehkan tidak mempunyai parameter.
Sebaliknya fungsi paling sedikit harus memiliki satu parameter. Syntax dari subroutine subprogram mirip
dengan subprogram fungsi.

Struktur subroutine :
SUBROUTINE statement
Declaration part
Subprogram statement
END

Cara pemanggilan :
Menuliskan pernyataan Call.
Contoh : CALL name(argument list)

Contoh program :
Program Menghitung
c

Penentuan cara

write(*,*)'Tentukan cara yang akan Anda pilih'

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


write(*,*)'Tekan 1 untuk penambahan'
write(*,*)'Tekan 2 untuk pengurangan'
c

Pemilihan subroutine
read(*,*)A
if(A.eq.1) then
call Tambah(a,b,c)
else if(A.eq.2) then
call Kurang(a,b,c)
else
write(*,*)'Tekan angka yang tepat'
goto 1
end if
stop
end

list subroutine
SUBROUTINE Tambah(a,b,c)

integer a,b,c
write(*,*)
write(*,*)'Anda akan melakukan operasi penambahan'
write (*,*)'Masukkan nilai a'
read (*,*)a
write (*,*)'Masukkan nilai b'
read (*,*)b
c=a+b
write(*,*)
write(*,*)'hasil jumlah =',c
stop
return
end
SUBROUTINE Kurang(a,b,c)

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Pengenalan Bahasa Fortran


c

integer a,b,c
write(*,*)
write(*,*)'Anda akan melakukan operasi pengurangan'
write (*,*)'Masukkan nilai a'
read (*,*)a
write (*,*)'Masukkan nilai b'
read (*,*)b
c=a-b
write(*,*)
write(*,*)'hasil kurang =',c
stop
return
end

Kata Bijak :

Wisest is he who knows he does not know


(Orang yang paling bijaksana adalah orang yang sadar
bahwa ia tidak tahu)
Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,
Rizki,Aderia

Pengenalan Bahasa Fortran


= The wise one =

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur,


Rizki,Aderia

Anda mungkin juga menyukai