Sabtu, 15 November 2014

modul potran 77



FORTRAN 77


  I
 
 
             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.


 II
 
 


               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;
  1. Kolom 1 digunakan untuk komentar,biasa digunakan karater “c” yang menunjukkan bahwa baris tersebut berisi komentar bebas.
  2. Kolom 1 sampai dengan 5 digunakan untuk penulisan label statement (statement label)
  3. Kolom 6 digunakan untuk indikasi sambungan statement dari baris sebelumnya.
  4. Kolom 7 sampai dengan kolom 72 digunakan untuk menulis statement fortran
  5. Kolom 73 sampai dengan 80 tidak digunakan oleh fortran.  
Statement fortran dapat dibentuk dari lemen-elemen sebagai berikut;
  1. konstanta
  2. operator
  3. ungkapan
  4. nama
  5. verb




 III
 
 
                       
                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.
 
Akan tampak tampilan sebagai berikut:












     
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



 IV
 
 


                 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



 V
 
 
                    Konstanta dan Variabel

A. Konstanta
Dalam bahasa FORTRAN ada 2 macam konstanta;
  1. Konstanta INTEGER (bulat) konstanta yang tidak mengandung titik desimal
  2. 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;
  1. Variabel INTEGER (bulat) adalah variabel yang huruf pertamanya I,J,K,L,M,N fungsi untuk menyimpan konstanta integer
  2. 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





 VI
 
 


                      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
            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
            MASUKKAN BESARNYA WAKTU?
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           



 VII
 
 


                      Variabel Berindex



Didalam notasi matematik seringkali adanya veriabel berindex.
Contoh:

           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
         
                                                 
 VIII
 
                          



                        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
  1. Bersifat otonom
  2. Dipanggil dengan cara: CALL ns (arg1,arg2,….arg m)
  3. Argumen-argumen boleh berfungsi sebagai input maupun sebagai out put.
  4. Argumen dapat berupa konstanta maupun varibel,real maupun integer.
  5. 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            


                                            









 IX
 
 
                      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
  1. Statemen DO CASE yang terdiri dari :
a.             Statemen DO CASE
b.            Statemen CASE
c.             Statenmen END CASE
  1. Statemen FOR yang terdiri dari :
a.Satemen FOR
b. Statemen END FOR
  1. Statemen DO yang terdiri dari :
a.       Statemen DO
b.      Statemen CONTINUE







 X
 
 


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

………………………………