FORTRAN 77
| 
 | 
 Pendahuluan
             Pendahuluan
Suatu group di
IBM yang diketuai oleh John Bakus pada tahun 1945 mulai bekerja untuk
mengembangkan bahasa pemrograman tingkat tinggi (high level language) untuk Teknik dan Matematika yang diberi nama
FORTRAN (FORmula TRANslator),Bahasa FORTRAN dimulai dari FORTRAN I dan oleh
ANSI (American National Standarts Institute) membentuk FORTRAN 77. Dalam
praktikum ini digunakan WATFOR 77 yang merupakan waterloo dari WATFOR 77.
| 
 | 
 Struktur Program Fortran
               Struktur Program Fortran
Struktur bahasa
fortran dibagi 4 bagian kolom dan tiap-tiap baris berisi di dalam program dapat
berisi :
1. Metacommand
2. Komentar
3. Statemen
4. Sambungan
dari statemen baris sebelumnya
Aturan menulis;
- Kolom 1 digunakan untuk komentar,biasa digunakan karater “c” yang menunjukkan bahwa baris tersebut berisi komentar bebas.
- Kolom 1 sampai dengan 5 digunakan untuk penulisan label statement (statement label)
- Kolom 6 digunakan untuk indikasi sambungan statement dari baris sebelumnya.
- Kolom 7 sampai dengan kolom 72 digunakan untuk menulis statement fortran
- Kolom 73 sampai dengan 80 tidak digunakan oleh fortran.
Statement
fortran dapat dibentuk dari lemen-elemen sebagai berikut;
- konstanta
- operator
- ungkapan
- nama
- verb
| 
 | 
 Menjalankan FORTRAN 77
                Menjalankan FORTRAN 77
Setelah layar
monitor tampil A: (promt A) atau C: atau lainnya (tergantung dimana program
Watforr77 dilletakkan).
Langkah-langkah;
1.  Ketik “ watfor77”  tekan enter.
| 
 | 
2. Tekan F9 untuk menaikkan kursor dari area
command ke area statemen.
3. Tekan F5   untuk memberikan ruang kosong pada area
statemen.
 Setelah
program selesai diketik
4. Ketik PUT untuk menyimpan dan memberikan nama
file contoh  put mesin.FOR 
5. Ketik RUN 
untuk menjalankan program   contoh
: run mesin.for
6. Ketik QUIT untuk mengakhiri watfor 77
| 
 | 
 Flow Chart
                 Flow Chart| 
Simbol | 
Uraian | |||
| 
 | 
Terminal interupsi, menunjukkan awal atau akhir dari suatu program utama atau subprogram | |||
|  | 
Proses, menunjukkan penentuan
  sebuah nilai kesuatau variabel atau perubahan nilai dari suatu variabel | |||
|  | 
Proses membaca | |||
|  | 
Dokumen, menunjukkan informasi
  yang akan dicetak pada media | |||
|  | 
Sambung halaman, menunjukkan
  aliran logika | |||
|  | 
Arah aliran logika | |||
|   | 
Proses pengecekan | 
LATIHAN I
Buatlah program untuk menghitung
LUAS dan VOLUME kubus
C PROGRAM MENGHITUNG LUAS DAN
VOLUME KUBUS
C
=============================================
C234567
             WRITE (*,*) ‘MASUKKAN SALAH SATU
SISI KUBUS’         
               READ (*,*) S
               L=6.*S*S
               V=S*S*S
               WRITE(*,*)S,L,V
               STOP
               END
PUT KUBUS.FOR
RUN KUBUS.FOR
| 
 | 
 Konstanta dan Variabel
                    Konstanta dan Variabel
A. Konstanta
Dalam bahasa FORTRAN ada 2 macam
konstanta;
- Konstanta INTEGER (bulat) konstanta yang tidak mengandung titik desimal
- Konstanta REAL (nyata) konstanta yang mengandung titik desimal
Contoh
| 
Konstanta Integer | 
Konstanta Real | 
| 
7 | 
7.0 | 
| 
-25 | 
-25.0 | 
B. Varibel
Dalam bahasa FORTRAN ada 2 macam
variabel;
- Variabel INTEGER (bulat) adalah variabel yang huruf pertamanya I,J,K,L,M,N fungsi untuk menyimpan konstanta integer
- Variabel REAL (nyata) adalah variabel yang huruf pertamanya A -Z kecuali I - N fungsi untuk menyimpan konstanta real
Contoh
| 
Contoh variabel | 
uraian | 
| 
W1 | 
Variabel real | 
| 
NAMA | 
Variabel integer | 
| 
2HR | 
Salah, sebab huruf awal berupa
  angka | 
| 
YOGYAKARTA | 
Salah, sebab lebih dari 6
  karakter | 
| 
PELAN-2 | 
Salah, sebab menggunakan
  spesial karakter (?, =,! , dll) | 
| 
NO    NIN | 
Salah, sebab ada “blank”
  ditengah | 
| 
 | 
 Statemen
                      Statemen
1.
Untuk menampilkan hasil
      Perintah
: WRITE
Contoh :
            WRITE (*,15)
15        FORMAT
(1X,’FORTRAN ? MUDAH ITU’)
      STOP 
END
      Bila program dijalankan akan
didapatkan hasil :
FORTRAN ? MUDAH ITU
            Contoh
lain
                        A=10.0
B=5.0
C=A*B
WRITE (*,*)’HASIL PERKALIAN’
WRITE(*,*)’………………………’
WRITE(*,*)’C=’,C
STOP
 END
            Bila program dijalankan akan
didapatkan hasil :
HASIL PERKALIAN
………………………
                        C=       50.000000
2. Untuk memasukkan data
          a. Perintah : READ
            a.1. Dengan assigment statement
                 
contoh:
                             I= 25
                             WRITE (*,10) I
10   
        FORMAT(‘NILAI I ADALAH =’,I3)
STOP 
 END
            Bila program dijalankan akan
didapatkan hasil :
            NILAI
I ADALAH = 25
Contoh lain :
                        READ(*,*)A
                        READ(*,*)B
               
        C=A+B
WRITE(*,*)’HASIL PERHITUNGAN’
WRITE(*,’(IX,A,F6.2)’)’NILAI C=’,C
STOP 
END
Bila program dijalankan akan didapatkan hasil :
 10.0        data yang diisikan
            10.0        data yang diisikan 20.0                 data yang diisikan
            20.0                 data yang diisikan
            HASIL
PERHITUNGAN
            NILAI
C= 30.00
            Contoh
lain :
                        WRITE(*,’(1X,A)’)’MASUKKAN
NILAI A?’
                        READ(*,*)A
WRITE(*,’(1X,A)’)’MASUKKAN NILAI B?’
                        READ(*,*)B
                        C= A+B
                        WRITE(*,*)’HASIL
PERHITUNGAN’
                        WRITE(*,’(1X,A,F6.2)’)’
NILAI C= ‘,C
                        STOP
                        END
Bila program dijalankan akan didapatkan hasil :
Silahkan dicoba sendiri !!
b.      Perintah : DATA
DATA J,A / 25,3.0 /
                        B=A*J
                        WRITE((*,’(1x,A,F6.2)’)’NILAI
B=’B
                        Bila program ini dijalan
kan hasilnya
adalah
                        NILAI B= 75.00
3.    
Untuk
Menentukan Tata Letak Suatu Data Input maupun Output
a.     Format tipe I
Untuk membaca atau menuliskan data INTEGER
Contoh: 
            Akan dibaca NILAI =95
Program
            READ(*,20)NILAI
20               
FORMAT(I5)
…………………..
………………….
b.    Format tipe F
Untuk membaca atau
menuliskan data REAL
Contoh:
            Akan dibaca A=13.5
Program
            READ(*,13)A
13               
FORMAT(F5.1)
………………..
………………..
c.      Format tipe X
TIDAK untuk membaca atau menuliskan hanya memberikan
spasi
Contoh
            Akan dibaca   A=25.
                                    B=3.
            Dengan diantara data ada 3 kolom spasi
Program
            READ(*,10)A,B
10               
FORMAT(F5.2,3X,F4.1)
……………….
………………
d.    Format literal
Untuk menuliskan data langsung kemedia output
Contoh
            Akan ditulis A=1.
Program
            A=1.
            WRITE(*,12)A
11               
FORMAT(‘NILAI
A=’,F2.1)
STOP
END
Bila program ini dijalan kan
hasilnya adalah
                        NILAI A= 1.0
LATIHAN 2.
            Akan dibuat program untuk menghitung
kecepatan lintasan
Program
C PROGRAM  MENGHITUNG KECEPATAN LINTASAN
C                        OLEH :  MESIN,ST
C
            WRITE(*,*)’MASUKKAN BESARNYA
PERCEPATAN?’
            READ(*,*)A
            WRITE(*,*)’MASUKKAN BESARNYA WAKTU?’
            READ(*,*)T
            V=A*T
            S=0.5*A*T**2.
            WRITE(*,20)A,T,V,S
20               
FORMAT(‘PERCEPATAN
(M/DET2)=’,F5.1,’WAKTU(DETIK)=’,F5.1,/
1                                       
‘KECEPATAN(M/DET)=’,F5.1,’LINTASAN(M)=’,F5.1)
   STOP
   END
Bila program dijalankan akan didapatkan hasil :
            MASUKKAN BESARNYA PERCEPATAN?
 5.0    
   data yang diisikan
            5.0    
   data yang diisikan
            MASUKKAN BESARNYA WAKTU?
 20.0                 data yang diisikan
20.0                 data yang diisikan
PERCEPATAN (M/DET2)=5.0WAKTU(DETIK)=10.0
KECEPATAN(M/DET)=50.0LINTASAN(M)=250.0
TUGAS 1
a.      
Umur Mesin,ST adalah 24 tahun, 1 bulan,15 hari, 6 jam
      Bila 1 tahun= 365 hari,1 bulan=30 hari.
      Berapa umur Mesin,ST dalam satuan jam,
dalam satuan menit, dalam satuan detik
      Buatlah Programnya !
b.     
Pengisian suatu baterai mengikuti persamaan
Isi=k(1-e-T)
Bila k= 10 dan e=2.71828
Berapakah isi baterai
tersebut setelah T=0.5
Buatlah programnya!
4.     Untuk Mengubah Urutan Langkah
a.     GO TO
a.1. GO TO tanpa syarat
                                    Perintah
untuk meloncat langsung ke label yang ditunjuk
                    Contoh:
                        100      READ (*,*)A,B
                                    C=A*B
                                   
WRITE(*,*)’HARGA C=’,C
                                    IF(A.GT.5) GOTO 10
GOTO 100
10             
STOP
END
a.2. GO TO dengan syarat
Perintah untuk meloncat langsung ke label yang ditunjuk (nk) apabila
var=k 
                                    Bentuk umum : GO TO (n1,n2,…,nk),var
                                                n1,n2,….=
label yang akan dilaksanakan
                    Contoh:
                                    READ (*,*)N,A,B
                                    GO TO
(100,200,300),N
100      C=A*B
             GOTO 20
200      C=A+B
            GOTO 20
300      C=A-B
                                    GOTO 20                    
20        WRITE(*,*)’HARGA
C=’,C
            STOP
 END
b.    IF
b.1. IF hitungan
          Untuk
memeriksa isi suatu variabel atau hasil suatu pernyataan hitungan yaitu apakah
negatif,nol, atau positif.
Bentuk umum: IF(pr) n1,n2,n3
N1= nomor statemen yang akan dituju apabila hasil  hitungan negatif
N2= nomor statemen yang akan dituju apabila hasil  hitungan nol
N3= nomor statemen yang akan dituju apabila hasil  hitungan positif
b.2. IF nalar
          Untuk
membandingkan dua (atau lebih) variabel secara nalar.kalau perbandingan
memberikan hasil “ya” maka statemen disamping IF dikerjakan,apabila “tidak”
maka akan dilanjutkan ke baris berikutnya
Bentuk umum: IF(ekspresi nalar)satemen
Ekspresi : suatu
ekspresi penalaran
 Statemen : suatu yang akan
dikerjakan bila hasil ekspresi “ ya”
                        Operator nalar yang
dipakai:
| 
Simbol / operator | 
Notasi matematik | 
| 
.EQ. | 
= | 
| 
.NE. | 
= | 
| 
.LT. | 
<  | 
| 
.LE. | 
<  | 
| 
.GE. | 
>  | 
| 
.GE. | 
>  | 
| 
.OR. | 
ATAU | 
| 
.AND. | 
DAN | 
| 
.NOT. | 
BUKAN | 
            Contoh:
                                    WRITE(*,*)’ISI
DATA’
                                    READ(*,*)A,B,C
                                    DISK=B**2-4*A*C
                                    IF(DISK.LT.1000.0)GOTO
100
                                   
X1=(-B**2+SQRT(B**2-4*A*C))/(2*A)
                                    X2=(-B**2-SQRT(B**2-4*A*C))/(2*A)
100         
STOP
END
c.      DO
Untuk memerintahkan komputer agar menjalankan suatu deretan perintah
berulang-ulang
Bentuk umum:
Do n var=m1,m2,m3
Dimana:
n          = nomor statemen yang
merupakan batas akhir perulangan
Var      =
variabel yang akan brubah-ubah yang harganya mulai dari m1 sampa dengan m2
dengan lompatan langkah sebesar m3
Contoh
C1234567
               DO 50 I= 1,10,-1
                A= I*2
                B= I*4
                WRITE (*,*) A,R,I
50         
CONTINUE
STOP
         END
d.      CONTI NUE
Sebagai statemen dummy pada suatu bentuk posisi
Bentuk umum:
            n Continue
Dimana:
n= nomor statemen
Contoh 
C1234567
                            DO 50
V=30,200,10
                            FM=0.5
                            T=3.5
                            D= 0.278*V*T+V**2/(254.*FM)
                            WRITE(*,*)D
50   
    CONTINUE
    STOP
    END           
| 
 | 
 Variabel
Berindex
                      Variabel
Berindex
Didalam notasi matematik seringkali
adanya veriabel berindex.
Contoh:
 dengan aij    i= nomor baris
          
dengan aij    i= nomor baris
                                                    j= nomor kolom
Bentuk umum:
DIMENSION Var
1(i1,i2,i3,.......im),Var2 (i1,i2,i3,...im)
Dengan:
Var 1,var2 = nama-nama variabel yang
dinyatakan sebagai variabel berindex
i1 = harga
maksimum index ke 1 untuk var 1
i2 = harga maksimium indek 2         
Contoh
C234567
             DIMENSION A(5,5),D(5,5)
             READ(*,*)A(1,1),A(1,2),A(2,1),A(2,2),D(1,1),D(1,2),D(2,1),D(2,2)
             E(1,1)=D(1,1)+A(1,1)
             E(1,2)=D(1,2)+A(1,2)
             WRITE(*,*)E(1,1),E(1,2)
             STOP
             END
| 
 | 
 
                           
                        Sub Program
Sub Program ada dua macam:
1.           
Sub
Program FUNCTION
2.           
Sub
Program SUBROUTINE
Sub program adalah : suatu program
tersendiri yang dapat dipanggil berkali-kali oleh sub program lain untuk suatu
tujuan.
1. Return
Untuk mengembalikan arus
program dari  program terpanggil kepada
program pemanggil.
Bentuk umum:
                  RETURN
 Return boleh dipasang dimana saja yang
diperlukan
Contoh:
C234567
             WRITE (*,*) ‘BAHASA FORTRAN SULIT AMAT’
              WRITE(*,*)’SUDAH BERULANG-ULANG TETAP
TIDAK BISA’
               CALL XYZ
               STOP
                END
               SUBROUTINE XYZ
                WRITE(*,*)’MAKANYA BELAJAR LAGI’
                WRITE(*,*)’JANGAN PACARAN MELULU’
                 RETURN
                 END
2. CALL
Bentuk umum:
      CALL ns (arg1,arg2,...,argm)
Dengan:
Ns= nama call subprogram
Arg1,arg2,..= argumen-argumen subprogram call
3. SUBROUTINE
            Bentuk umum : 
                        SUBROUTINE ns
(arg1,arg2,…,argm)
            Dimana:
                        ns=nama subroutine
program
                        arg1,arg2,….=
argumen-argumen subprogram berupa subroutine
Sifat-sifat
subprogram SUBROUTINE
- Bersifat otonom
- Dipanggil dengan cara: CALL ns (arg1,arg2,….arg m)
- Argumen-argumen boleh berfungsi sebagai input maupun sebagai out put.
- Argumen dapat berupa konstanta maupun varibel,real maupun integer.
- Hubungan antara argumen dalam program pemanggil dan program dipanggil adalah hubungan atas dasar posisi,bukan atas dasar nama varibel.
Contoh:
C234567
             WRITE(*,*)’PROGRAM
1’
              CALL  MESIN1
             WRITE(*,*)’PROGRAM 2’
             CALL MESIN2
              STOP
              END
              SUBROUTINE  MESIN1
               READ(*,*)C
  R=4./5.*C
  
F=9./5.*C+32
  WRITE(*,*)R,F
  RETURN
  
END
  SUBROUTINE MESIN2
                      X=-1
100                 
X=X+7
Q=100
L=10
RA=(Q*L)/2
SFD=RA-Q**2
WRITE(*,*)X,RA,SFD
IF(X.LT.10)GOTO 100
RETURN
END             
| 
 | 
 Pemograman Fortran Terstruktur
                      Pemograman Fortran Terstruktur
          Pemrograman
tersetruktur adalah  bahwa tidak boleh
ada statemen yang memerintahkan loncat keatas staemen terdahulu.
Statemen
tersebut adalah :
1.  
statemen IF tersetruktur yang terdiri dari :
a. Statemen IF THEN
b. Statemen ELSE
c. StatemenELSE IF
d. Statemen END IF
2.     
statemen WHILE tersetruktur yang terdiri dari :
a.      
statemen WHILE DO
b.           
statemen ENDWHILE
- Statemen DO CASE yang terdiri dari :
a.            
Statemen DO CASE
b.           
Statemen CASE
c.            
Statenmen END CASE
- Statemen FOR yang terdiri dari :
a.Satemen FOR
b. Statemen END FOR
- Statemen DO yang terdiri dari :
a.      
Statemen DO
b.     
Statemen CONTINUE
| 
 | 
 Statemen IF
Terstruktur
Statemen IF
Terstruktur
LAMPIRAN :
FORMAT
LAPORAN PRAKTIKUM
HALAMAN JUDUL
HALAMAN PENGESAHAN
KATA PENGANTAR
DAFTAR ISI
BAB I PENDAHULUAN
BAB II SISTEM KOMPUTER
            1
CPU
            2
MONITOR
            3
KEYBOARD DLL
BAB III MENJALANKAN
FORTRAN 77
BAB IV
…………………………
BAB V ………………….
BAB  …..  
LATIHAN SOAL
PENUTUP
DAFTAR PUSTAKA
LAMPIRAN
Contoh lembar
pengesahan
LEMBAR PENGESAHAN
LAPORAN
PRAKTIKUM
PEMROGRAMAN
KOMPUTER
|  | 
Oleh:
Alexander
Paiman
02030010
                                                                      
                DISETUJUI OLEH:
Yogyakarta,     ……  
2004
          INSTRUKTUR
………………………………


 
Tidak ada komentar:
Posting Komentar