SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
STANDAR KOMPETENSI
  Setelah menyelesaikan mata kuliah Komputer mahasiswa
mampu mengembangkan paket program aplikasi mandiri untuk
menyelesaikan masalah keteknikan khususnya Teknik Mesin
                  dengan bahasa FORTRAN



               KOMPETENSI DASAR
   Mahasiswa dapat membuat program aplikasi yang lebih
 kompleks yang membutuhkan adanya pengambilan keputusan
          dalam mengatur aliran logika program.



                      INDIKATOR

1.                 Mahasiswa dapat menggunakan stetemen
                   perulangan   dalam   mengatur   aliran
                   logika pemrograman dimana dibutuhkan
                   adanya pengerjaan sebuah statemen
                   yang   berulang-ulang   (looping   and
                   repetition)
2.                 Mahasiswa       dapat       menerapkan
                   penyeleksian   kondisi   pada   sebuah
                   statemen yang memiliki beberapa opsi




                           4
                           42
Pemrograman Komputer Bahasa FORTRAN       - 43


                               pengerjaan   yang    berbeda   sesuai
                               dengan kondisi yang dihasilkan.


3.1 PERULANGAN

   Statemen kontrol atau statemen kendali termasuk executabel statement, yang
   mengendalikan urutan dari proses statemen-statemen di dalam blok program. Di
   dalam sebuah program, kadang kala, terdapat suatu eksekusi statemen yang sama
   yang dilakukan berulang-ulang. Dimana, pengulangan suatu proses adalah hal
   yang mendasar untuk penulisan progran komputer, dan akan sangat berguna untuk
   mempunyai sebuah komando mirip makro seperti DO … WHILE 1≤ I≤ N.

3.1.1    STATEMEN CONTINUE

        Pernyataan CONTINUE digunakan sebagai dummy statement (statemen
        boneka), yang digunakan untuk terminal statement pada statemen DO atau
        statemen GOTO

3.1.2    STATEMEN END

        Fungsi dari statemen END pada program utama adalah untuk mengahiri proses
        dari program, sedangkan pada unit program mempunyai fungsi seperti
        RETURN. Statemen END harus terletak diakhir dari program dan tidak boleh
        digabung dengan statemen lain. Bentuk umum dari statemen ini adalah :
                            END

        Contoh 3.1 :

             C234567890             END selalu di akhir program
                   A= 20.0
                   WRITE(*,21) A
                21 FORMAT(1X,’NILAI A = ’,F7.2)
                   END

3.1.3    STATEMEN STOP

         Statemen ini berfungsi untuk menghentikan proses pengerjaan program.
         Statemen STOP tidak mesti ada didalam sebuah program. Penempatan
         statemen ini boleh dimana saja di dalam program. Bentuk umum statemen
         STOP adalah sebagai berikut :

                       STOP [<n>]
Pemrograman Komputer Bahasa FORTRAN           - 44


        Dimana :
               <n>         merupakan suatu konstanta angka yang panjangnya tidak
                           boleh lebih dari lima digit atau suatu string dan sifatnya
                           opsional.
        Contoh 3.1 :

                C234567890
                      A=10.0
                      B=60.0
                      WRITE(*,100) A
                      STOP ’PROSES DIHENTIKAN DENGAN STATEMEN STOP’
                      WRITE(*,200) B
                  100 FORMAT(1X,’NILAI A =’,F5.1,/)
                  200 FORMAT(1X,’NILAI B =’,F5.1)
                      END

                Bila program ini dijalankan, didapatkan hasil sebagai berikut :
                          NILAI A = 10.0

                          PROSES DIHENTIKAN DENGAN STATEMEN STOP




3.1.4   STATEMEN PAUSE

        Tidak seperti statemen STOP yang menghentikan/keluar dari program,
        statemen PAUSE digunakan untuk menghentikan sementara proses eksekusi
        program. Pengaruh dari penghentian sementaran program dengan statemen
        PAUSE akan berakhir atau eksekusi program dilanjutkan apabila ditekan
        tombol <Enter>. Bentuk umum statemen PAUSE sebagai berikut :

                        PAUSE [<n>]
         Dimana :
            <n>        merupakan suatu konstanta angka yang panjangnya tidak boleh
                        lebih dari lima digit atau suatu string dan sifatnya opsional.

        Contoh 3.2 :

                C234567890
                      A=10.0
                      B=60.0
                      WRITE(*,100) A
                      PAUSE ’Tekan Tombol RETURN untuk melihat nilai B’
                      WRITE(*,200) B
                  100 FORMAT(1X,’NILAI A =’,F5.1,/)
                  200 FORMAT(1X,’NILAI B =’,F5.1)
                      END
Pemrograman Komputer Bahasa FORTRAN               - 45




               Bila program ini dijalankan, didapatkan hasil sebagai berikut :
                         NILAI A = 10.0

                         Tekan Tombol RETURN untuk melihat nilai B
                         Please press <return> to continue.

                         NILAI B = 60.0



3.1.5   STATEMEN DO

        Pernyataan DO digunakan untuk mengulang suatu statemen atau proses
        sebanyak N kali. Bentuk umum dari statemen ini adalah sebagai berikut :

               DO <slabel>[,] <nama variabel> = <exp1>,<exp2>[,<exp3>]

              Dimana :
                    <slabel>         : adalah statemen label dari suatu executabel
                                        statement.
                     <nama variabel> : suatu variabel numerik integer
                     <exp1>          : nilai numerik bulat sebagai awal perulang-
                                        an (starting point)
                     <exp2>          : nilai numerik bulat akhir perulangan (end
                                        point)
                     <exp3>          : nilai numerik bulat sebagai peningkatan
                                        (interval) perulangan.
                                                   Statemen label
               Contoh 3.3 :                        Variabel numerik integer
                                                   Awal perulangan
                 C234567890                        Akhir perulangan
                       DO 5 I=1,5,1                Peningkatan (increment)
                     5 WRITE(*,21) I
                    21 FORMAT(1X,I2,’.’,1X,’KOMPUTER’)
                       END
                 Bila program ini dijalankan, didapatkan hasil sebagai berikut :

                    1.   KOMPUTER
                    2.   KOMPUTER
                    3.   KOMPUTER
                    4.   KOMPUTER
                    5.   KOMPUTER
Pemrograman Komputer Bahasa FORTRAN              - 46


  Tampak statemen WRITE akan diperoses sebanyak lima kali, yaitu
  hitungan I = 1 sampai I = 5 dengan interval 1.

Untuk pengulangan menurun gunakan nilai awal lebih besar dari nilai
akhir dengan interval bertanda minus (-) seperti tampak dalam contoh
3.4 berikut.

Contoh 3.4 :

  C234567890
        DO 5 I=8,1,-2
      5 WRITE(*,21) I
     21 FORMAT(1X,’NILAI I = ’,I2)
        END

  Bila program ini dijalankan, didapatkan hasil sebagai berikut :
          NILAI   I   =   8
          NILAI   I   =   6
          NILAI   I   =   4
          NILAI   I   =   2
          NILAI   I   =   1



Selain hal tersebut di atas, statemen DO juga bisa menggunakan blok
program DO-CONTINUE (badan DO-loop diindentasi lebih kedalam
untuk memudahkan pembacaan). Bentuk statemen ini sebagai berikut:


               DO n I = IN,IE,IC                Dimana :
                          .
                          .                     IN = nilai awal indeks
                          .
                                                IE = nilai uji/akhir indexs
                   BADAN DO LOOP
                          .                     IC = peningkatan/interval
                          .                     n = statemen label (nomor
                          .                          Pernyataan CONTINUE)
           n CONTINUE



Untuk jelasnya, stateman DO dapat digambarkan dalam bentuk
diagram alir seperti tampak dalam gambar 3.1.
Pemrograman Komputer Bahasa FORTRAN                - 47




                         I  IN
                                                               DO n
                                                             I = IN,IE,
                                                                 IC
                        Badan DO
                                                         Badan DO

                         I  I + IC


                Ya
                           I≤                                    n
        belum selesai                        belum selesai
                                  Tidak

                        SELESAI                              SELESAI

                          (a)                                  (b)

                        Gambar 3.1 Diagram Alir Statemen DO


Contoh 3.5 :
                                                                     MULAI
C PROGRAM MENGHITUNG NILAI MAHASISWA
C234567890                                                            DO
                                                                      200
       WRITE (*,5)
                                                                     I=1,10
    5 FORMAT(1X,’ID NO.’,4X,
      1’TEST1’, 4X,’TEST2’,4X,    Statemen                          BACA
                                  DO                              ID,S1,S2,S3
      2’TEST3’,3X,’AVERAGE’)
       DO 200 I=1,100                                         SUM S1+S2+S3
           READ(*,10)ID,S1,S2,S3
   10      FORMAT(5X,I5,3(4X,F6.2)
           SUM = S1 + S2 + S3                                  AVESUM/3.0
           AVE = SUM/3.0
           WRITE(*,20)ID,S1,S2,S3,AVE                              CETAK
    20     FORMAT(5X,I5,4(4X,F6.2))                            ID,S1,S2,S3,AV
   200 CONTINUE                                                E
        STOP          Statemen Blok                                  20
       END            CONTINUE DO LOOP                                0


                                                                 SELESAI


                                          Gambar 3.2 Diagram alir contoh 3.5,
                                                     menghitung rata-rata 3 (tiga)
                                                     nilai ujian mahasiswa
Pemrograman Komputer Bahasa FORTRAN         - 48




                                                                MULAI
Contoh 3.6
                                                               SUM 0
      C PROGRAM PENENTUAN RATA-RATA
      C                                                           DO
      C234567890                                                  200
            SUM=0.0                                              I=1,10
            DO 200 I=1,100
                                                               BACA A
                 READ(*,10)A
         10      FORMAT(F10.2)
                 SUM = SUM+A                                 SUM SUM + A
         200 CONTINUE
             AVE = SUM/100.0
                                                                  20
             WRITE(*,20)AVE                                        0
          20 FORMAT(1X,F10.2)
             STOP                                           AVESUM/100.0
             END
                                                                CETAK
                                                                 AVE


                                                               SELESAI


                                                Gambar 3.2 Diagram alir contoh 3.6,
                                                           Menghitung rata-rata 100
                                                           bilangan
        3.1.6    KELUAR DARI DO-LOOP

                Terdapat dua cara untuk keluar dari suatu DO-loop : (a) keluar secara
                normal, (b) keluar tak normal. Pembahasan hal tersebut akan dibahas
                lebih detail di bawah ini.
                A. Keluar Normal
                    Program akan keluar dari perulangan secara normal terjadi apabila
                    indeks I melebihi nilai uji IE (seperti ditunjukkan pada diagram
                    alir pada gambar 3.1 (a). Dalam kasus demikian, pengendalian
                    dialihkam ke pernyataan pertama setelah Do-loop. Semua contoh
                    di atas keluar secara normal.

                B. Keluar Tak Normal
                   Dimungkinkan beralih dari dalam ke luar suatu DO loop, misalnya
                   dengan sebuah penyeleksian kondisi IF di dalam DO loop,
                   walaupun nilai indeks yang sekarang tidak melebihi nilai uji IE.
                   Suatu sifat mendasar dari keluar tidak normal suatu DO loop
                   adalah bahwa pada saat keluar, nilai indeks I yang sekarang
                   dipertahankan, karenanya dapat digunakan dalam perhitungan
Pemrograman Komputer Bahasa FORTRAN                        - 49


           lebih lanjut atau dalam operasi masukan/keluaran. Kerangka
           program berikut menggambarkan bilangan indeks K terdefinisi
           atau tidak.

                  DO 100 K = 1, 100, 2
                         ***
                         ***
                             IF( X .LT. Y) GO TO 200
                         ***
                         ***
                  100 CONTINUE
                      ***
                       ***        Nilai Indeks K tidak terdefinisi untuk pernyataan
                  ini
                      ***
                      STOP
                  200 * * *
                      ***          Nilai indeks K terdefinisi untuk pernyataan ini
                      ***
                      STOP



CONTOH 3.7 :                                                           MULAI

C234567890                                                            BACA K
      READ (*,8) K
    8 FORMAT(I10)
      KK = K/2                                                       KK  K/2
      DO 100 I = 2, KK
          IF (K .EQ.(K/I)*I) GO TO 50                                  DO
   100 CONTINUE                                                        100
        WRITE(*,10)K                                                   I=2,
                                                                                  Ya (keluar tak normal)
    10 FORMAT(10X,I5,1X,’ADALAH
      1PRIMA’)                                                       I membagi
        STOP
    50 WRITE(*,20)K,I                                                         Tidak
                                                                                               K bukan
    20 FORMAT(10X,I5,1X,’BUKAN PRIMA’                                                            prima
                                                                         10
      1     10X,I5,1X,’ADALAH PEMBAGI’)                                   0                   I pembagi
        STOP
                                                                              Keluar normal
        END
                                                                        K prima


                                                                      SELESAI


                                                     Gambar 3.3 Diagram alir contoh 3.7,
                                                                Mencari bilangan prima
Pemrograman Komputer Bahasa FORTRAN          - 50




   3.1.7      PENGALIHAN DI DALAM DAN KE SUATU DO-LOOP
           Seseorang selalu dapat beralih dari suatu titik dalam suatu DO loop ke
           titik lainnya dalam DO loop yang sama, dan seseorang secara bebas
           dapat melompat ke luar dari DO loop sembarang. Tetapi tidak
           mungkin untuk melompat ke tengah-tengah DO loop. Yakni, satu-
           satunya cara untuk beralih ke pernyataan di dalam suatu DO loop
           hanyalah melalui pernyataan DO yang sama.
                    Adaikan kita ingin sebuah ruas program FORTRAN
           menggunakan DO loop yang menghitung jumlah 1+2+3+5+6+7+
           8+9+10 tanpa melalui bilangan 4, bandingkan dua program berikut :

           (A)         ISUM =0
                      DO 100 I=1,10
                           IF(I .EQ. 4) I = I + 1
                           ISUM = ISUM + I
                  100 CONTINUE

           (B)         ISUM = 0
                    50 DO 200 I=1,10
                          IF(I .EQ. 4) GO TO 50
                          ISUM = ISUM + I
                   200 CONTINUE

        Progran A tidak benar karena indeks I diubah di dalam DO loop. Yaitu,
jika pernyataan
                           IF(I .EQ. 4) I = I + 1
                           ISUM = ISUM + I

tidak berada dalam sebuah DO loop, maka 5 akan ditambahkan pada ISUM jika
I mula-mula berisi 4. Tetapi, karena disini beada di tengah-tengah DO loop,
pernyataan-pernyataan tersebut tidak diijinkan.
        Berlawanan dengan hal ini, program B memuat penggunaan DO loop
secara benar, tetapi logika program salah. Terdapat suatu ke luar tak normal
bilamana I bernilai 4, tetapi pengendalian dialihkan lagi ke pernyataan DO, dan
indeks dikembalikan ke nilai awal.Sehingga hasil exsekusi hanya akan
menjumlahkan 1+2+3 berulang-ulang. Hasilnya adalah :
                       1+2+3+1+2+3+…
Program B akan menghitung jumlah yang diminta apabila pernyataan
                               IF(I .EQ. 4) GO TO 50
diganti dengan :
Pemrograman Komputer Bahasa FORTRAN            - 51


                         IF(I .EQ. 4) GO TO 200
                                                            MULAI

Contoh 3.8 :                                               BACA LAR

    C PROGRAM PENENTUAN
                                                           DO 50
    C BILANGAN TERBESAR                                    I=1, 99
    C
    C234567890
          REAL LAR                                         BACA X
          READ (*,10) LAR
        10 FORMAT(F10.2)                                                   Ya
                                                           LAR ≥ X
           DO 50 I = 1, 99
                READ (*,10) X                                      Tidak
                IF(LAR.GE.X)GO TO 50                       LAR  X
                LAR = X
        50 CONTINUE
           WRITE(*,20)LAR                                      5
        20 FORMAT(1X,F10.2)                                    0
           STOP
           END                                            CETAK LAR


                                                           SELESAI


                                                Gambar 3.4 Diagram alir contoh 3.8,
                                                        Menentukan Bilangan Terbesar

   3.1.8    DO-LOOP BERSARANG (NASTED DO)

           Dimungkinkan mempunyai sebuah DO loop (lebih dalam) di dalam
           rentang DO loop lain (lebih luar). DO loop yang terbentuk disebut DO
           loop bersarang (nasted do). Aturan yang berlaku pada DO loop
           bersarang pada dasarnya sama dengan DO loop tunggal. Tetapi berikut
           adalah hal-hal yagn penting di dalam penggunaan DO loop bersarang:
           1. Karena indeks tidak dapat didefinisikan ulang didalam badan DO
               loop, indeks DO loop yang lebih dalam harus tidak sama dengan
               indeks DO loop sebelah luar.
           2. Do loop yang lebih dalam harus terletak di dalam DO loop yang
               lebih luar; yatiu tidak boleh jadi tumpang tindih. Gambar 3.5
               menggambarkan cara DO loop bersarang dibentuk.
           3. Banyaknya Do loop bersarang dibatasi oleh kompailer. Pengalihan
               pengendalian di dalam DO loop bersarang dapat memperdayakan,
               tetapi atauran-aturan tetap sama seperti DO loop tunggal.
           4. DO loop boleh memiliki pernyataan terakhir yang sama seperti
               ditunjukkan dalam gambar 3.6.
Pemrograman Komputer Bahasa FORTRAN       - 52




              DO 18____________            DO 18____________
              ***                          ***
              ***                          ***
              DO 20___________             ***
              ***                          DO 20___________
              ***                          ***
              DO 30___________             ***
              ***                          ***
              ***                      18 CONTINUE
          30 CONTINUE                     ***
             ***                          ***
             ***                          ***
          20 CONTINUE                  20 CONTINUE
             ***
             ***
          18 CONTINUE

               Dapat diterima                Tidak dapat diterima
            ( DO loop bersarang )          (DO loop tumpang tindih)
                     (a)                              (b)

            GAMBAR 3.5 Penggunaan DO loop bersarang


              DO 20___________                  DO 10___________
              ***                               ***
              ***                               ***
              DO 10___________                  DO 10___________
              ***                               ***
              ***                               ***
          10 CONTINUE                        10 CONTINUE
           20 CONTINUE

              DO 10___________
              ***
              ***
              DO 10___________
              ***
              ***
          10 PERNYATAAN TEREKSEKUSI


GAMBAR 3.5 Penggunaan DO loop bersarang dengan akhir yang sama
Pemrograman Komputer Bahasa FORTRAN         - 53




        Contoh 3.9 :

          C PROGRAM MENGHITUNG NILAI RATA-RATA
          C TIGA KALI UJIAN 25 MAHASISWA DENGAN
          C NASTED DO-LOOP
          C
          C234567890
                 WRITE(*,100)
             100 FORMAT(‘1’,4X,’ID’,9X,’AVERAGE’)
                 DO 80 K = 1,25
                      READ (*,90) ID
              90      FORMAT(I10)
                      SUM=0.0
                      DO 20 I=1,3
                            READ(*,10)SCORE
              10            FORMAT(F6.2)
                            SUM=SUM+SCORE
              20      CONTINUE
                      AVE=SUM/3.0
                      WRITE(*,30)ID, AVE
              30      FORMAT(1X,110,5X, F6.2)
              80 CONTINUE
                 END



3.2 PENYELEKSIAN KONDISI

3.2.1    STATEMEN GO TO

         Statemen GO TO merupakan statemen loncatan, yaitu digunakan untuk
         meloncat ke suatu statemen lainnya yang tertentu. Ada dua bentuk
         statemen ini, yaitu :
             • Statemen GO TO tanpa syarat (unconditional GO TO)
             • Statemen GO TO pengerjaan (assigned GO TO)
             • Statemen GO TO bersyarat/terhitung (computed GO TO)

         A. STATEMEN GO TO TANPA SYARAT

             Statemen ini memberiperintah agar program dilanjutkan langsung ke
             statemen nomor <slabel>. Bentuk umum :
                    GO TO <slabel>
             Dimana :
Pemrograman Komputer Bahasa FORTRAN                      - 54


         <slabel> = nomor statemen yang dapat dilaksanakan.
                       variabel <slabel> (integer) adalah salah satu
                       nomor statemen yangterdapat dalam program.
  Dengan statemen ini program dapat meloncati beberapa baris
  statemen di atas atau dibawahnya.
                                                        MULAI
  Contoh 3.10 :
C PROGRAM MENGHITUNG NILAI
C RATA-RATA UNTUK TIAP MAHASISWA                                BACA
                                                              ID,S1,S2,S3
C
C234567890
                                                                CETAK
   100 READ (*,90) ID,S1,S2,S3                                ID,S1,S2,S3
    90 FORMAT(I5,F10.2,F10.2,F10.2)
       WRITE(*,90)ID,S1,S2,S3                            SUM  S1+S2+S3
       SUM = S1+S2+S3
       AVE = SUM/3.0                                          Ave SUM/3
       WRITE(*,30)AVE
    30 FORMAT(1X,’RATA-RATA =’,F6.2)
       GO TO 100                                              CETAK AVE
       END
                                                               SELESAI


                                         Gambar 3.6 Diagram alir contoh 3.10

  Contoh 3.11 :
 C234567890
      5 WRITE(*,’(1A,A)’)KOMPUTER’
        GO TO 5
        END

  Bila program ini dijalankan didapat hasil :
       KOMPUTER
       KOMPUTER
       KOMPUTER
       KOMPUTER           Tanda C ini menunjukkan ditekan tombol CTRL+C (Break)
       KOMPUTER           Karena program akan terus berjalan (loop tak terhingga)
       KOMPUTER
       KOMPUTER
       KOMPUTER
       KOMPUT^C

B. STATEMEN GO TO PENGERJAAN

  Statemen ini memberi perintah agar program meloncat ke statemen
  nomor <slabel> yang ditunjukkan oleh isi dari <name>. Bentuk
  umumnya :
         GO TO <name>[[,](<slabel>[,<slabel>]…)]
  Dimana :
Pemrograman Komputer Bahasa FORTRAN         - 55


        <name> adalah nama variabel integer yang diisi statemen label
                 dengan perintah ASSIGN
  Jadi salah satu nilai dari <slabel> harus sama dengan nilai dari
  <name>. Kalau nilai dari <name> tidak ada yang sama dari salah
  satu <slabel>, maka proses tidak akan melompat ke suatu statemen
  label apapun, tetapi akan dilanjutkanke statemen berikutnya.

  CONTOH 3.12 :
   C234567890
         ASSIGN 15 TO LONCAT
         GOTO LONCAT,(15)
         WRITE(*,’(1A,A)’)’TIDAK DITAMPILKAN’
      15 WRITE(*,’(1A,A)’)’DITAMPILKAN’
         WRITE(*,’(1A,A)’)’INI JUGA DITAMPILKAN’
         END

  Bila dijalankan akan didapatkan hasil :
                 DITAMPILKAN
                 INI JUGA DITAMPILKAN

  Nama variabel integer LONCAT berisi nilai statemen label 15 dan
  statemen
            GOTO LONCAT,(15)
  akan membawa proses meloncat ke statemen label 15, karena nilai
  variabel integer LONCAT sama dengan statemen label tersebut.


C. STATEMEN GOTO BERSYARAT

  Statemen ini digunakan untuk mengontrol loncatan dari nilai
  ungkapan integer <i>. Bentuk umum :
         GOTO (<slabel>[,<slabel>]…)[,]<i>

  Dimana :
  <slabel> adalah statemen label dari suatu executabel statemen yang
           berada pada unit program yang sama dengan statemen
           GOTO bersyarat tersebut.
  <i>      adalah ungkapan integer

  Statemen GOTO bersyarat akan menuju ke <slabel> yang pertama
  bila ungkapan <i> bernilai 1, akan menuju ke <slabel> kedua bila
  <i> bernilai 2 dan seterusnya.
Pemrograman Komputer Bahasa FORTRAN   - 56




Contoh 3.13

 C234567890
        CHARACTER*1 BUNYI
        WRITE(*,’(1X,A)’)’    << PILIHAN >>’
        WRITE(*,*)
        WRITE(*,’(1X,A)’)’ 1. Menghitung isi silinder’
        WRITE(*,’(1X,A)’)’ 2. Menghitung luas segi tiga’
        WRITE(*,’(1X,A)’)’ 3. Menghitung isi kubus’
        WRITE(*.*)
        WRITE(*,’(1X,A)’)’ 4. SELESAI’
     15 WRITE(*,’(//,1X,A,)’)’PILIH NOMER (1-4)?’
        READ(*,’(BN,I1’) NOMER
 C                                         Computed GOTO
                                              - 1
 C menuju ke label sesuai dengan nomor yang dipilih 1000
                                              - 2  2000
        WRITE(*,*)                            - 3  3000
        GOTO(1000,2000,3000,4000) NOMER
        BUNYI = 7
                                              - 4  4000
        WRITE(*,’(1X,A,A)’)’SALAH PILIH!!,Ulangi’, BUNYI
        GOTO 15
 C
 C MENGHITUNG ISI SILINDER
   1000 WRITE(*,’(1X,A,)’)’JARI-JARI LINGKARAN?’
        READ(*,’(BN,F7.2)’) R
        WRITE(*,’(1X,A,)’)’TINGGI SILINDER?’
        READ(*,’(BN,F7.2)’) T
        XISI = 3.1419 *R**2*T
        WRITE(*,’(/,1X,A,F7.2)’)’ISI SILINDER =’,XISI
        GOTO 4000
 C
 C MENGHITUNG LUAS SEGI TIGA
   2000 WRITE(*,’(1X,A,)’)’PANJANG SISI DASAR?’
        READ(*,’(BN,F7.2)’) S
        WRITE(*,’(1X,A,)’)’TINGGI SEGITIGA?’
        READ(*,’(BN,F7.2)’) T
        XLUAS = 0.5*S*T
        WRITE(*,’(/,1X,A,F7.2)’)’LUAS SEGITIGA =’,XLUAS
        GOTO 4000
 C
 C MENGHITUNG ISI KUBUS
   3000 WRITE(*,’(1X,A,)’)’PANJANG SISI KUBUS?’
        READ(*,’(BN,F7.2)’) S
        WRITE(*,’(1X,A,)’)’TINGGI SILINDER?’
        READ(*,’(BN,F7.2)’) T
        XISI = S*S*S
        WRITE(*,’(/,1X,A,F7.2)’)’ISI KUBUS =’,XISI
        GOTO 4000
Pemrograman Komputer Bahasa FORTRAN           - 57


            C
            C SELESAI
              4000 CONTINUE
                   END

               Bila dijalankan akan ditampilkan 4 buah pilihan dan anda dapat
           memilih salah satu dari pilihan tersebut :
                         <<    PILIHAN   >>

                    1. Menghitung isi silinder
                    2. Menghitung luas segi tiga
                    3. Menghitung isi kubus
                                                             Pilih proses yang and
                                                             pilih
                    4. SELESAI

                    PILIH NOMER (1-4)?2

           Jika misalnya dipilih 2, berarti akan menghitung luas segi tiga, maka
           akan ditanyakan :

                    PANJANG SISI DASAR?20.0
                    TINGGI SEGITIGA?15.0

                    LUAS SEGITIGA = 150.00



3.2.2   STATEMEN IF

        Statemen atur kondisional dan iterasi (pengulangan) merupakan
        komponen bahasa FORTRAN yang dapat digunakan untuk membuat
        keputusan. Keputusan diambil setelah meninjau beberapa kondisi
        tertentu. Untuk keperluan ini dikenal adanya statemen IF.
        Ada 3 macam statemen IF yaitu :
                   - IF logika (logical IF)
                   - IF aritmatika (arithmetic IF)
                   - IF blok (Block IF)

        A. IF LOGIKA

           IF logika digunakan untuk menyeleksi suatu statemen logika atau
           statemen hubungan (relasi), jika kondisinya benar (TRUE) maka
           statemen yang mengikutinya akan diperoses. Sebaliknya, jika salah
           (FALSE) proses akan meloncat ke statemen berikutnya (ungkapan
           logika yang digunakan .LT.,.LE.,.EQ.,.NE.,.GT.,.GE.). Dua operator
           logika yang sangat berguna selain .NOT. adalah .OR. (logika atau )
           dan .AND. (logika dan).
Pemrograman Komputer Bahasa FORTRAN             - 58




        Bentuk umum :

               IF(<expresi>) <statemen>
        Dimana :
              <expresi> ungkapan logika atau ungkapan hubungan yang
                          akan diseleksi.
             <statemen> executable statement, kecuali statemen DO, blok
                          IF atau statemen IF logika lainnya.
        Berikut adalah contoh pendeklarasian IF logika yang benar :
             IF(X .GT. 3 .AND. Y .LE. 2) GOTO 3
             IF(A .LE. X .OR. Y .LE. 2) GOTO 5
             IF(.NOT. (X .LT. Y .OR. G .GT. GG)) GOTO 3

        Contoh 3.15                                               MULAI


C PROGRAM MENCARI TAHUN KABISAT                                  BACA
                                                                ITAHUN
C234567890
      WRITE(*,’(1X,A,)’)’TAHUN ?’                               HITUNG
      READ(*,’(BN,I4)’) ITAHUN                              XTAHUN = ITAHUN/4.0
      XTAHUN=ITAHUN/4.0                                      JTAHUN =ITAHUN/4
      JTAHUN=ITAHUN/4
      IF(XTAHUN .EQ. JTAHUN) GOTO 100
      WRITE(*,’(1X,A,I4,A)’)’TAHUN’,             Ya
                                                                 XTAHUN
      1ITAHUN,’BUKAN TAHUN KABISAT’                              =
      GOTO 200
                                                                      Tidak
  100 WRITE(*,’(1X,A,I4,A)’)’TAHUN’,
     1ITAHUN,’ADALAH TAHUN KABISAT’                               TULIS :
  200 CONTINUE                          TULIS :                BUKAN TAHUN
                                     TAHUN KABISAT               KABISAT
      END

                                                                CONTINUE

                                                                 SELESAI
Bila program tersebut dijalankan akan didapatkan
hasil :
                                                   Gambar 3.7 Diagram alir contoh 3.15,
TAHUN ? 1987                                            Menentukan Tahun Kabisat
TAHUN 1987 ADALAH BUKAN TAHUN KABISAT



     B. IF ARITMATIKA
Pemrograman Komputer Bahasa FORTRAN                 - 59


      Statemen IF aritmatika digunakan untuk menyeleksi kondisi suatu
      ungkapan aritmatika apabila bernilai positif, negatif atau nol.
      Gambar 3.8 menunjukkan diagram alir dari if aritmatika.
      Bentuk umu IF aritmatika adalah :
             IF (<expressi>) <slabel>,<slabel>, <slabel>
      dimana :
            <expressi> merupakan ekspresi aritmatika (disebelah kanan
                        tanda =) yang akan dievaluasi harganya.
           <slabel> merupakan nomor statemen yang dituju selanjutnya
                        bila <expressi> lebih kecil, sama dengan atau
                        lebih besar dari nol.

                       TRUE                       <0              >0
                  E<          I    ATAU       I          E              K
          FALSE                                              =0
                       TRUE
                  E=          J                          J
          FALSE

                  K

                         Gambar 3.8 Diagram alir IF Arithmatika

      Berikut adalah contoh pendeklarasian statemen IF aritmatika yang
      sahih :
      IF (A+B) 21, 23, 24                IF(Z-0.001)12, 12, 13
      IF(X) 3, 4, 5                      IF(K(I,J)-1)20, 40, 30
      IF(A*XZ**3-A*B) 2, 3, 4


      Contoh 3.16 :                                      MULAI


C PROGRAM PREMI                                          BACA ID
C PREMI = 9.75 JIKA BELUM KAWIN                        PAY  50000
C PREMI = 16,25 KAWIN TANPA ANAK
C PREMI = 24.50 KAWIN PUNYA ANAK      NEGATIF                               POSITIF
C234567890                                               TYPE-2
      REAL NET
                                                                  NOL
      WRITE(*,50)’ID ?’
   50 READ(*,’(BN,I4)’)ID     NET PAY-9.75            NET PAY-16.25          NET PAY-24.50
      PAY = 50000.00
      IF(TYPE-2) 10,20,30
                                                          CETAK
   10 NET = PAY -9.75                                     ID, NET
      GOTO 75
   20 NET = PAY – 16.25
      GOTO 75                                            SELESAI
   30 NET = PAY – 24.50
                                           Gambar 3.9 Diagram alir contoh 3.16,
                                                Menentukan Jumlah Premi
Pemrograman Komputer Bahasa FORTRAN    - 60


75 WRITE(*,40)ID, NET
40 FORMAT(1X,I5,3X,F12.2)
   END




C. IF BLOK

   Statemen IF blok dapat terdiri dari statemen IF-THEN, ELSE,
   ELSEIF dan ENDIF.
   Bentuk umum :
          IF(<statemen>) THEN
          ELSE
            ELSEIF (<statemen>) THEN
          ENDIF
   Berikut contoh pendeklarasian IF-THEN, ELSE, ELSEIF dan
   ENDIF :

     A. IF (IREMAIN .EQ. 2) THEN
             <statemen>
        ENDIF
     B. IF(IREMAIN .EQ.2) THEN
           <statemen>
        ELSE
           <statemen>
        ENDIF
     C. IF(IREMAIN .EQ. 2) THEN
            <statemen>
            ELSEIF (IREMAIN .EQ.3) THEN
              <statemen>
            ELSE
               <statemen>
        ENDIF

  Contoh 3.17 :

   C234567890
         CHARACTE*20 NAMA(5), KET, GARIS*52
         REAL*4 NILAI(5)
         DATA NAMA /’ARIEF’,’BUDI’,’CANDRA’,’DEWI’,’EDI’/
         DATA NILAI/95.9,57.5,23.5,90.0,65.75/
   C CETAK JUDUL TABEL
         GARIS=’----------------------------------------‘
         WRITE(*,’(1X,A)’)’          DAFTAR NILAI UJIAN’
         WRITE(*,*)
         WRITE(*,’(1X,A)’) GARIS
Pemrograman Komputer Bahasa FORTRAN   - 61


          WRITE(*,’(1X,A)’)’ NAMA MAHASISWA NILAI     KETERANGAN’
          WRITE(*,’(1X,A)’) GARIS
          DO 15 I=1,5
              IF(NILAI(I) .GT. 75.0) THEN
                  KET = ‘LULUS SANGAT BAIK’
                  ELSEIF(NILAI(I) .GT. 65.0) THEN
                     KET = ‘LULUS BAIK’
                  ELSEIF(NILAI(I) .GT. 55.0) THEN
                     KET = ‘LULUS CUKUP’
                  ELSE
                     KET =’TIDAK LULUS’
              ENDIF
       15 WRITE(*,40) NAMA(I), NILAI(I), KET
       40 FORMAT(1X,A20,2X,F6.2,2X,A20)
          WRITE(*,’(1X,A)’) GARIS
          END

       MULAI


       BACA
    DATA NAMA,
       NILAI

       CETAK
    JUDUL TABEL


     DO
     I=1,5


                     YA
     NILAI(I) >            KET =’LULUS SANGAT BAIK’
       75.0 ?

             TIDAK

     NILAI(I) >
                     YA
                               KET =’LULUS BAIK’
       65.0 ?

             TIDAK

     NILAI(I) >      YA
                              KET =’LULUS CUKUP’
       55.0 ?
             TIDAK
KET =’TIDAK LULUS’


       CETAK
    JUDUL TABEL



        1
        5

      SELESAI


         Gambar 3.10 Diagram alir contoh 3.17,
                 Menentukan kelulusan mahasiswa
Pemrograman Komputer Bahasa FORTRAN          - 62




SOAL-SOAL YANG DIPECAHKAN

3.1 Temukan nilai akhir K setelah tiap ruas program FORTRAN berikut dilaksanakan
      a.       K=2                                  b.      K=2
           10 DO 20 I=3,8,2                              10 DO 20 I=3,8,2
               IF (I .EQ.5) GOTO 20                         IF (I .EQ.5) GOTO 10
               K=K+1                                        K=K+1
           20 CONTINUE                                   20 CONTINUE
               K=2*K                                       K=2*K
Jawab :
    a. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi
         sebagai berikut :
            (i)       Pertama untuk I=3. karena I≠5, pernyataan K=K+1 dieksekusi,
                      yang menghasilkan :
                                K K+1 = 2+3=5
            (ii)      Kemudian untuk I=5. Karena I=5,pengendalian dialihkan ke
                      CONTINUE yang mendaur-ulang DO loop
            (iii)     Kemudian untuk I=7. Karena I≠5, pernyataan K=K+1 dieksekusi,
                      yang menghasilkan :
                                K K+1 = 5+7=12
                 Nilai I berikutnya melampaui nilai uji, sehingga pengendalian
                 dialihkan ke pernyataan yang menyusul DO loop, yang melipat duakan
                 nilai K. Karenanya nilai K terakhir adalah 24.
            (iv)

   b. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi
      sebagai berikut :
         (i)     Pertama untuk I=3. Karena I≠5 pernyataan K=K+1 dieksekusi,
                 yang menghasilkan :
                           K K+1 = 2+3=5
         (ii)    Kemudian untuk I=5. Karena I=5, pengendalian dialihkan ke
                 pernyataan DO
         Karena pengendalian dialihkan ke pernyataan DO, DO loop mulai dari
         awal lagi dan menetapkan I=3. Jadi, (i) dan (ii) diulang berkali-kali. Ini
         memberikan sebuah loop tak terhingga dan tidak terdapat nilai terakhir
         dari K.
Pemrograman Komputer Bahasa FORTRAN         - 63


3.2 Tuliskan pernyataan-pernyataan berikut dalam FORTRAN :
    a. Jika X>Y, berhenti
    b. Jika J≠K, lanjut ke pernyataan berpengenal 31
    c. Jika a2≤B+C, lanjutkan ke pernyataan berpengenal 41
    d. Jika A-B≥X3, berhenti

    Jawab :
      a. IF(X .GT. Y) stop                            c. IF(A**2 .LE. B+C) GOTO 41
      b. IF(J .NE. K) GOTO 31                         d. IF(A-B .GE. X**3) STOP

3.3 Andaikan X dan Y telah didefinisikan. Tuliskan sebuah pernyataan FORTRAN
    atau ruas FORTRAN yang (a) mengalihkan pengendalian ke pernyataan
    berpengenal 41 jika a2 ≤ Y, dan jika tidak demikian mengalohkan pengendalian
    ke pernyataan berpengenal 42; (b) menetapkan K=0 jika X+Y>100, dan jika
    tidak menetapkan K=1.
    Lakukan hal di atas dalam dua cara, sekali dengan sebuah pernyataan IF logika.

Jawab :
a . (i) perhatikan bahwa a2 ≤ Y, jika dan hanya jika a2 – Y negatif atau nol
                IF (X**2-Y) 41, 41, 42
    (ii)        IF (X**2 .LE. Y) GOTO 41
            42 ………………………
b. (i) Perhatikan bahwa X+Y>100 jika dan hanya jika X+Y-100 positif
                IF(X+Y-100.0)20, 20, 10
            10 K=0
                GOTO 30
            20 K=1
            30 ……………………….
     (ii)        IF (X+Y .LE. 100.0) GOTO 20
                 K=0
                 GOTO 30
             20 K=1
             30 ……………….


SOAL-SOAL LATIHAN

   1. Pada tiap pernyataan DO berikut, temukan kesalahan, jika ada :
      a. DO 700, LAMB=1,14,l              c. DO 900 K=I, J, K
      b. DO 800 J=7,M**2,2                d. DO 1000 LONG=K234 , K123, K345

   2. Temukan nilai K setelah tiap ruas FORTRAN berikut dieksekusi
Pemrograman Komputer Bahasa FORTRAN        - 64


     a.       K=3                                       b.     K=3
              DO 100 J=3,7,3                                   M=2
                K=K+J                                          DO 300 J=3,7,M
          100 CONTINUE                                           M=M+K
              K=3*K                                        300 CONTINUE
                                                               K=3*K
     c.       K=3                                       D.     K=3
              M=2                                              M=2
              DO 300 J=3,7,M                                   DO 400 J=M,7,M
                K=K+J                                            K=J+K+M
          300 CONTINUE                                           IF(K.GT.9) GOTO 10
              K=3*K                                        400 CONTINUE
                                                            10 K=3*K

  3. Temukan kesalahan jika ada, pada tiap pernyataan FORTRAN berikut:
        a. IF(A=B) GOTO 50                      e. IF(X.LE.100) GOTO K
        b. IF(X GT Y) STOP                      f. IF(A-100)10,20,30
        c. IF(B**2-A*C) STOP                    g. IF(X.GE.Y) GOTO 55
        d. IF(X.LT.Y+Z) 10,15, 20               h. IF(INT.LT.AMOUNT STOP

  4. Jika J dan K masing-masing berisi 3 dan 5. temukan nilai akhir J setelah
     masing-masing ruas program dieksekusi :

     a.         IF(J.GE.K) J=J+2                        b.        IF(J.LT.K-1) GOTO 10
                 J=J+2                                            J=J+2
                                                               10 J=J+K
     c.         IF(5*J.EQ.3*K) J=J+2                    D.        IF(J.GE.K+1) GOTO 10
                J=J+2                                             J=J+2
                                                               10 J=J+K
     d         IF(J-) 10,10,20                                    IF(2*J-K)10,10,20
     .      10 J=K                                             10 J=K
            20 J=J+2                                           20 J=J+2



PRAKTIKUM

  1. Tulislah bebrapa program FORTRAN berikut, jalankan, amati prosesnya dan
     simpan dengan nama berbeda.
  C23456789                                  C23456789
        PROGRAM LAT3_1A                            PROGRAM LAT3_1B
  C     Program statemen STOP                C     Program statemen PAUSE
        WRITE(*,4) A                               A=10.0
      4 FORMAT (1X,’NILAI A = ‘,F4.1)              B=12.0
Pemrograman Komputer Bahasa FORTRAN                        - 65


       STOP                                            WRITE(*,4) A
       END                                             PAUSE ‘TEKAN <ENTER> UNTUK MELIHAT NILAI B’
                                                      WRITE(*,6) B
                                                    4 FORMAT(1X,’NILAI A = ‘, F4.1)
                                                    6 FORMAT(1X, ‘NILAI B = ‘,F4.1)
                                                      STOP
                                                      END



C23456789                                       C23456789
       PROGRAM LAT3_1C                                 PROGRAM LAT3_1D
C      Program statemen membuat fungsi          C     Program membuat fungsi
C      Y(X)= LOG10 (X)                          C     Y(X) = X!
       DO J=1,20,2                                     DOUBLEPRECISION Y
          X=FLOAT(J)                                  WRITE(*,*) ‘BERAPA FAKTORIAL? ‘
          Y=LOG10(X)                                  READ(*,*) IFAKT
          WRITE(*,50) X, Y                            Y=1.0
       ENDDO                                          DO N=1, IFAK
   50 FORMAT(1X,’NILAI A = ‘, F7.5),                      X=FLOAT(N)
     - 3X,’NILAI LOG10(X) = ‘,F9.5)                       Y=Y*X
      END                                                 WRITE(*,4) X,Y
                                                      ENDDO
                                                    4 FORMAT(1X,’HARGA ‘, I5,’!’,
                                                         ‘ADALAH’, E27.17)
                                                      STOP
                                                     END
C23456789                                       C23456789
       PROGRAM LAT3_1E                                 PROGRAM LAT3_1F
C     Program menghitung jumlah bilangan        C     Program menghitung nilai dari persamaan
C     dari 1 sampai N                                                    a  (v − b )
                                                C      T ( P, V ) =  P + 2 
       DOUBLEPRECISION Y                                                V  R
      WRITE(*,*) ‘N = ?’                        C
      READ(*,*) IAKHIR                                 CHARACTER*17 IFX1
      Y=0.0                                            DOUBLEPRECISION P,V,T
      DO 10 N=1, IAKHIR                         C      PERSAMAAN GAS CO2
           X=FLOAT(N)                                  R=8.31*1.0E+3
           Y=Y+X                                       A=366.0
           WRITE(*,10) N,Y                             B=0.0429
      ENDDO                                            DO M=1, 25
    4 FORMAT(1X,’JUMLAH BIL. DARI                        P=10000.0*FLOAT(M)
     - 1-- ‘, I5, ‘ADALAH’, F9.1)                        DO N=1,M
      STOP                                                   V=FLOAT(N)
     END                                                     T=(P+A/V**2)*(V-B)/R
                                                             WRITE(*,10) P, V, T
                                                          ENDDO
                                                       ENDDO
                                                    10 FORMAT(1X, ‘P= ’,F9.1,,1X,’V= ’,F9.1,,1X,’T=’,F9.1)
                                                       STOP
                                                      END
C23456789
       PROGRAM LAT3_1F
C      Program mencari bilangan terbesar
C
      REAL LAR
      WRITE(*,*) ‘N = ?’
      READ(*,10) N
   10 FORMAT(I6)
      WRITE(*,*) ‘LAR = ?’
      READ(*,20) LAR
      I=1
  100 READ(*,20) X
   20 FORMAT(F12.2)
      IF (LAR .GE.X) GOTO 200
          LAR=X
  200 I=I+1
Pemrograman Komputer Bahasa FORTRAN               - 66


      IF (I .LE.N-1) GOTO 100
      WRITE(*,30) LAR
   30 FORMAT(1X,’BIL. TERBESAR ADALAH’,2X,F12.2)
     STOP
     END


2. Buatlah program untuk menghitung :
      a. 1/n!
      b. y(t)=10.0 sin(2Πft) exp(-0.9t)
            n
                 1
      c. ∑             dengan A = 10.0 dan B = 1
           1=1 A + iB



       d. y (t ) = t 2 + t + 1.0
                                                   10
3. Buatlah program untuk menghitung                ∑n
                                                   n =1
                                                          2
                                                              + n + 1 menggunakan statemen

   GOTO dan IF (decision) THEN
4. Hitunglah y = x 4 − 0.5 x 2 + 7.0 x − 8.0 dengan batas -4<x<4 dengan step 0.1

Mais conteúdo relacionado

Mais procurados

Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidelPenyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidelBAIDILAH Baidilah
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanAururia Begi Wiwiet Rambang
 
Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Kannal Bakti Pakinde
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galatKelinci Coklat
 
Laporan fisika dasar (pesawat atwood)
Laporan fisika dasar (pesawat atwood)Laporan fisika dasar (pesawat atwood)
Laporan fisika dasar (pesawat atwood)Rezki Amaliah
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 
2 struktur-statis-tertentu2-libre
2 struktur-statis-tertentu2-libre2 struktur-statis-tertentu2-libre
2 struktur-statis-tertentu2-librerosidahmad
 
TEORI DASAR PENGUKURAN
TEORI DASAR PENGUKURANTEORI DASAR PENGUKURAN
TEORI DASAR PENGUKURANRafben Andika
 
Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Kelinci Coklat
 
Modul persamaan diferensial 1
Modul persamaan diferensial 1Modul persamaan diferensial 1
Modul persamaan diferensial 1Maya Umami
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman CodeAlbertus H.
 
Teknik Komunikasi Data Digital
Teknik Komunikasi Data DigitalTeknik Komunikasi Data Digital
Teknik Komunikasi Data Digitalguest995d750
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linierIzhan Nassuha
 
Laporan Fisdas Resonansi
Laporan Fisdas ResonansiLaporan Fisdas Resonansi
Laporan Fisdas ResonansiWidya arsy
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Kelinci Coklat
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 

Mais procurados (20)

Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidelPenyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier Simultan
 
Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear Makalah Metode Numerik : Sistem Persamaan Linear
Makalah Metode Numerik : Sistem Persamaan Linear
 
Materi 1 mekanika fluida 1
Materi 1 mekanika fluida 1Materi 1 mekanika fluida 1
Materi 1 mekanika fluida 1
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Laporan fisika dasar (pesawat atwood)
Laporan fisika dasar (pesawat atwood)Laporan fisika dasar (pesawat atwood)
Laporan fisika dasar (pesawat atwood)
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
2 struktur-statis-tertentu2-libre
2 struktur-statis-tertentu2-libre2 struktur-statis-tertentu2-libre
2 struktur-statis-tertentu2-libre
 
TEORI DASAR PENGUKURAN
TEORI DASAR PENGUKURANTEORI DASAR PENGUKURAN
TEORI DASAR PENGUKURAN
 
6 potensial listrik
6 potensial listrik6 potensial listrik
6 potensial listrik
 
Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )Integral Tak Wajar ( Kalkulus 2 )
Integral Tak Wajar ( Kalkulus 2 )
 
Modul persamaan diferensial 1
Modul persamaan diferensial 1Modul persamaan diferensial 1
Modul persamaan diferensial 1
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman Code
 
6. interpolasi polynomial newton
6. interpolasi polynomial newton6. interpolasi polynomial newton
6. interpolasi polynomial newton
 
Teknik Komunikasi Data Digital
Teknik Komunikasi Data DigitalTeknik Komunikasi Data Digital
Teknik Komunikasi Data Digital
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
Metode sugeno
Metode sugenoMetode sugeno
Metode sugeno
 
Laporan Fisdas Resonansi
Laporan Fisdas ResonansiLaporan Fisdas Resonansi
Laporan Fisdas Resonansi
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 

Semelhante a 90594412 bab-3-pengaturan-aliran-pemograman-fotran

Pengenalan konsep pemrograman
Pengenalan konsep pemrogramanPengenalan konsep pemrograman
Pengenalan konsep pemrogramanpurispace
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfJurnal IT
 
Presentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanPresentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanMuraba Nasuha
 
Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++ Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++ Aan Einsam
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanie Indah
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanie Indah
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikumNuRul Emi
 
Analisis semantik, kode antara dan pembangkitan kode (2).pptx
Analisis semantik, kode antara dan pembangkitan kode (2).pptxAnalisis semantik, kode antara dan pembangkitan kode (2).pptx
Analisis semantik, kode antara dan pembangkitan kode (2).pptxDiaAku6
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IIShofura Kamal
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritmacasnadi
 
Struktur data chapter_01
Struktur data chapter_01Struktur data chapter_01
Struktur data chapter_01Sejahtera Affif
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual BasicEman Mendrofa
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxDikicandra6
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping AlgoritmaFirdaus1212
 
Modul pascal
Modul pascalModul pascal
Modul pascaldanver98
 
Modul pascal
Modul pascalModul pascal
Modul pascalshediazz
 

Semelhante a 90594412 bab-3-pengaturan-aliran-pemograman-fotran (20)

Bab 3
Bab 3Bab 3
Bab 3
 
Pengenalan konsep pemrograman
Pengenalan konsep pemrogramanPengenalan konsep pemrograman
Pengenalan konsep pemrograman
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdf
 
Presentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanPresentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrograman
 
Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++ Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
Analisis semantik, kode antara dan pembangkitan kode (2).pptx
Analisis semantik, kode antara dan pembangkitan kode (2).pptxAnalisis semantik, kode antara dan pembangkitan kode (2).pptx
Analisis semantik, kode antara dan pembangkitan kode (2).pptx
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul II
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 
Struktur data chapter_01
Struktur data chapter_01Struktur data chapter_01
Struktur data chapter_01
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
 
207 p04
207 p04207 p04
207 p04
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping Algoritma
 
Algoritma flowchart
Algoritma flowchartAlgoritma flowchart
Algoritma flowchart
 
Modul pascal
Modul pascalModul pascal
Modul pascal
 
Modul pascal
Modul pascalModul pascal
Modul pascal
 

Mais de mocoz

Pertemuan 7
Pertemuan 7Pertemuan 7
Pertemuan 7mocoz
 
Pertemuan 6
Pertemuan 6Pertemuan 6
Pertemuan 6mocoz
 
Pertemuan 8
Pertemuan 8Pertemuan 8
Pertemuan 8mocoz
 
D059235657
D059235657D059235657
D059235657mocoz
 
D059283626
D059283626D059283626
D059283626mocoz
 
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotranmocoz
 
90593494 bab-2-pemogranan-aplikasi-sederhana-fotran
90593494 bab-2-pemogranan-aplikasi-sederhana-fotran90593494 bab-2-pemogranan-aplikasi-sederhana-fotran
90593494 bab-2-pemogranan-aplikasi-sederhana-fotranmocoz
 
90593353 bab-1-dasar-dasar-pemograman-komputer-fotran
90593353 bab-1-dasar-dasar-pemograman-komputer-fotran90593353 bab-1-dasar-dasar-pemograman-komputer-fotran
90593353 bab-1-dasar-dasar-pemograman-komputer-fotranmocoz
 
Asis sugianto.blogspot.com-cara meninstal android
Asis sugianto.blogspot.com-cara meninstal androidAsis sugianto.blogspot.com-cara meninstal android
Asis sugianto.blogspot.com-cara meninstal androidmocoz
 
Chapter electric motors (bahasa indonesia)
Chapter   electric motors (bahasa indonesia)Chapter   electric motors (bahasa indonesia)
Chapter electric motors (bahasa indonesia)mocoz
 
Mesin arus bolak_balik_(bahan_kuliah)
Mesin arus bolak_balik_(bahan_kuliah)Mesin arus bolak_balik_(bahan_kuliah)
Mesin arus bolak_balik_(bahan_kuliah)mocoz
 
04 01-alat-ukur
04 01-alat-ukur04 01-alat-ukur
04 01-alat-ukurmocoz
 
Struktur Molekul
Struktur MolekulStruktur Molekul
Struktur Molekulmocoz
 

Mais de mocoz (13)

Pertemuan 7
Pertemuan 7Pertemuan 7
Pertemuan 7
 
Pertemuan 6
Pertemuan 6Pertemuan 6
Pertemuan 6
 
Pertemuan 8
Pertemuan 8Pertemuan 8
Pertemuan 8
 
D059235657
D059235657D059235657
D059235657
 
D059283626
D059283626D059283626
D059283626
 
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran
90594622 bab-6-pemograman-aplikasi-teknik-mesin-fotran
 
90593494 bab-2-pemogranan-aplikasi-sederhana-fotran
90593494 bab-2-pemogranan-aplikasi-sederhana-fotran90593494 bab-2-pemogranan-aplikasi-sederhana-fotran
90593494 bab-2-pemogranan-aplikasi-sederhana-fotran
 
90593353 bab-1-dasar-dasar-pemograman-komputer-fotran
90593353 bab-1-dasar-dasar-pemograman-komputer-fotran90593353 bab-1-dasar-dasar-pemograman-komputer-fotran
90593353 bab-1-dasar-dasar-pemograman-komputer-fotran
 
Asis sugianto.blogspot.com-cara meninstal android
Asis sugianto.blogspot.com-cara meninstal androidAsis sugianto.blogspot.com-cara meninstal android
Asis sugianto.blogspot.com-cara meninstal android
 
Chapter electric motors (bahasa indonesia)
Chapter   electric motors (bahasa indonesia)Chapter   electric motors (bahasa indonesia)
Chapter electric motors (bahasa indonesia)
 
Mesin arus bolak_balik_(bahan_kuliah)
Mesin arus bolak_balik_(bahan_kuliah)Mesin arus bolak_balik_(bahan_kuliah)
Mesin arus bolak_balik_(bahan_kuliah)
 
04 01-alat-ukur
04 01-alat-ukur04 01-alat-ukur
04 01-alat-ukur
 
Struktur Molekul
Struktur MolekulStruktur Molekul
Struktur Molekul
 

90594412 bab-3-pengaturan-aliran-pemograman-fotran

  • 1. STANDAR KOMPETENSI Setelah menyelesaikan mata kuliah Komputer mahasiswa mampu mengembangkan paket program aplikasi mandiri untuk menyelesaikan masalah keteknikan khususnya Teknik Mesin dengan bahasa FORTRAN KOMPETENSI DASAR Mahasiswa dapat membuat program aplikasi yang lebih kompleks yang membutuhkan adanya pengambilan keputusan dalam mengatur aliran logika program. INDIKATOR 1. Mahasiswa dapat menggunakan stetemen perulangan dalam mengatur aliran logika pemrograman dimana dibutuhkan adanya pengerjaan sebuah statemen yang berulang-ulang (looping and repetition) 2. Mahasiswa dapat menerapkan penyeleksian kondisi pada sebuah statemen yang memiliki beberapa opsi 4 42
  • 2. Pemrograman Komputer Bahasa FORTRAN - 43 pengerjaan yang berbeda sesuai dengan kondisi yang dihasilkan. 3.1 PERULANGAN Statemen kontrol atau statemen kendali termasuk executabel statement, yang mengendalikan urutan dari proses statemen-statemen di dalam blok program. Di dalam sebuah program, kadang kala, terdapat suatu eksekusi statemen yang sama yang dilakukan berulang-ulang. Dimana, pengulangan suatu proses adalah hal yang mendasar untuk penulisan progran komputer, dan akan sangat berguna untuk mempunyai sebuah komando mirip makro seperti DO … WHILE 1≤ I≤ N. 3.1.1 STATEMEN CONTINUE Pernyataan CONTINUE digunakan sebagai dummy statement (statemen boneka), yang digunakan untuk terminal statement pada statemen DO atau statemen GOTO 3.1.2 STATEMEN END Fungsi dari statemen END pada program utama adalah untuk mengahiri proses dari program, sedangkan pada unit program mempunyai fungsi seperti RETURN. Statemen END harus terletak diakhir dari program dan tidak boleh digabung dengan statemen lain. Bentuk umum dari statemen ini adalah : END Contoh 3.1 : C234567890 END selalu di akhir program A= 20.0 WRITE(*,21) A 21 FORMAT(1X,’NILAI A = ’,F7.2) END 3.1.3 STATEMEN STOP Statemen ini berfungsi untuk menghentikan proses pengerjaan program. Statemen STOP tidak mesti ada didalam sebuah program. Penempatan statemen ini boleh dimana saja di dalam program. Bentuk umum statemen STOP adalah sebagai berikut : STOP [<n>]
  • 3. Pemrograman Komputer Bahasa FORTRAN - 44 Dimana : <n> merupakan suatu konstanta angka yang panjangnya tidak boleh lebih dari lima digit atau suatu string dan sifatnya opsional. Contoh 3.1 : C234567890 A=10.0 B=60.0 WRITE(*,100) A STOP ’PROSES DIHENTIKAN DENGAN STATEMEN STOP’ WRITE(*,200) B 100 FORMAT(1X,’NILAI A =’,F5.1,/) 200 FORMAT(1X,’NILAI B =’,F5.1) END Bila program ini dijalankan, didapatkan hasil sebagai berikut : NILAI A = 10.0 PROSES DIHENTIKAN DENGAN STATEMEN STOP 3.1.4 STATEMEN PAUSE Tidak seperti statemen STOP yang menghentikan/keluar dari program, statemen PAUSE digunakan untuk menghentikan sementara proses eksekusi program. Pengaruh dari penghentian sementaran program dengan statemen PAUSE akan berakhir atau eksekusi program dilanjutkan apabila ditekan tombol <Enter>. Bentuk umum statemen PAUSE sebagai berikut : PAUSE [<n>] Dimana : <n> merupakan suatu konstanta angka yang panjangnya tidak boleh lebih dari lima digit atau suatu string dan sifatnya opsional. Contoh 3.2 : C234567890 A=10.0 B=60.0 WRITE(*,100) A PAUSE ’Tekan Tombol RETURN untuk melihat nilai B’ WRITE(*,200) B 100 FORMAT(1X,’NILAI A =’,F5.1,/) 200 FORMAT(1X,’NILAI B =’,F5.1) END
  • 4. Pemrograman Komputer Bahasa FORTRAN - 45 Bila program ini dijalankan, didapatkan hasil sebagai berikut : NILAI A = 10.0 Tekan Tombol RETURN untuk melihat nilai B Please press <return> to continue. NILAI B = 60.0 3.1.5 STATEMEN DO Pernyataan DO digunakan untuk mengulang suatu statemen atau proses sebanyak N kali. Bentuk umum dari statemen ini adalah sebagai berikut : DO <slabel>[,] <nama variabel> = <exp1>,<exp2>[,<exp3>] Dimana : <slabel> : adalah statemen label dari suatu executabel statement. <nama variabel> : suatu variabel numerik integer <exp1> : nilai numerik bulat sebagai awal perulang- an (starting point) <exp2> : nilai numerik bulat akhir perulangan (end point) <exp3> : nilai numerik bulat sebagai peningkatan (interval) perulangan. Statemen label Contoh 3.3 : Variabel numerik integer Awal perulangan C234567890 Akhir perulangan DO 5 I=1,5,1 Peningkatan (increment) 5 WRITE(*,21) I 21 FORMAT(1X,I2,’.’,1X,’KOMPUTER’) END Bila program ini dijalankan, didapatkan hasil sebagai berikut : 1. KOMPUTER 2. KOMPUTER 3. KOMPUTER 4. KOMPUTER 5. KOMPUTER
  • 5. Pemrograman Komputer Bahasa FORTRAN - 46 Tampak statemen WRITE akan diperoses sebanyak lima kali, yaitu hitungan I = 1 sampai I = 5 dengan interval 1. Untuk pengulangan menurun gunakan nilai awal lebih besar dari nilai akhir dengan interval bertanda minus (-) seperti tampak dalam contoh 3.4 berikut. Contoh 3.4 : C234567890 DO 5 I=8,1,-2 5 WRITE(*,21) I 21 FORMAT(1X,’NILAI I = ’,I2) END Bila program ini dijalankan, didapatkan hasil sebagai berikut : NILAI I = 8 NILAI I = 6 NILAI I = 4 NILAI I = 2 NILAI I = 1 Selain hal tersebut di atas, statemen DO juga bisa menggunakan blok program DO-CONTINUE (badan DO-loop diindentasi lebih kedalam untuk memudahkan pembacaan). Bentuk statemen ini sebagai berikut: DO n I = IN,IE,IC Dimana : . . IN = nilai awal indeks . IE = nilai uji/akhir indexs BADAN DO LOOP . IC = peningkatan/interval . n = statemen label (nomor . Pernyataan CONTINUE) n CONTINUE Untuk jelasnya, stateman DO dapat digambarkan dalam bentuk diagram alir seperti tampak dalam gambar 3.1.
  • 6. Pemrograman Komputer Bahasa FORTRAN - 47 I  IN DO n I = IN,IE, IC Badan DO Badan DO I  I + IC Ya I≤ n belum selesai belum selesai Tidak SELESAI SELESAI (a) (b) Gambar 3.1 Diagram Alir Statemen DO Contoh 3.5 : MULAI C PROGRAM MENGHITUNG NILAI MAHASISWA C234567890 DO 200 WRITE (*,5) I=1,10 5 FORMAT(1X,’ID NO.’,4X, 1’TEST1’, 4X,’TEST2’,4X, Statemen BACA DO ID,S1,S2,S3 2’TEST3’,3X,’AVERAGE’) DO 200 I=1,100 SUM S1+S2+S3 READ(*,10)ID,S1,S2,S3 10 FORMAT(5X,I5,3(4X,F6.2) SUM = S1 + S2 + S3 AVESUM/3.0 AVE = SUM/3.0 WRITE(*,20)ID,S1,S2,S3,AVE CETAK 20 FORMAT(5X,I5,4(4X,F6.2)) ID,S1,S2,S3,AV 200 CONTINUE E STOP Statemen Blok 20 END CONTINUE DO LOOP 0 SELESAI Gambar 3.2 Diagram alir contoh 3.5, menghitung rata-rata 3 (tiga) nilai ujian mahasiswa
  • 7. Pemrograman Komputer Bahasa FORTRAN - 48 MULAI Contoh 3.6 SUM 0 C PROGRAM PENENTUAN RATA-RATA C DO C234567890 200 SUM=0.0 I=1,10 DO 200 I=1,100 BACA A READ(*,10)A 10 FORMAT(F10.2) SUM = SUM+A SUM SUM + A 200 CONTINUE AVE = SUM/100.0 20 WRITE(*,20)AVE 0 20 FORMAT(1X,F10.2) STOP AVESUM/100.0 END CETAK AVE SELESAI Gambar 3.2 Diagram alir contoh 3.6, Menghitung rata-rata 100 bilangan 3.1.6 KELUAR DARI DO-LOOP Terdapat dua cara untuk keluar dari suatu DO-loop : (a) keluar secara normal, (b) keluar tak normal. Pembahasan hal tersebut akan dibahas lebih detail di bawah ini. A. Keluar Normal Program akan keluar dari perulangan secara normal terjadi apabila indeks I melebihi nilai uji IE (seperti ditunjukkan pada diagram alir pada gambar 3.1 (a). Dalam kasus demikian, pengendalian dialihkam ke pernyataan pertama setelah Do-loop. Semua contoh di atas keluar secara normal. B. Keluar Tak Normal Dimungkinkan beralih dari dalam ke luar suatu DO loop, misalnya dengan sebuah penyeleksian kondisi IF di dalam DO loop, walaupun nilai indeks yang sekarang tidak melebihi nilai uji IE. Suatu sifat mendasar dari keluar tidak normal suatu DO loop adalah bahwa pada saat keluar, nilai indeks I yang sekarang dipertahankan, karenanya dapat digunakan dalam perhitungan
  • 8. Pemrograman Komputer Bahasa FORTRAN - 49 lebih lanjut atau dalam operasi masukan/keluaran. Kerangka program berikut menggambarkan bilangan indeks K terdefinisi atau tidak. DO 100 K = 1, 100, 2 *** *** IF( X .LT. Y) GO TO 200 *** *** 100 CONTINUE *** *** Nilai Indeks K tidak terdefinisi untuk pernyataan ini *** STOP 200 * * * *** Nilai indeks K terdefinisi untuk pernyataan ini *** STOP CONTOH 3.7 : MULAI C234567890 BACA K READ (*,8) K 8 FORMAT(I10) KK = K/2 KK  K/2 DO 100 I = 2, KK IF (K .EQ.(K/I)*I) GO TO 50 DO 100 CONTINUE 100 WRITE(*,10)K I=2, Ya (keluar tak normal) 10 FORMAT(10X,I5,1X,’ADALAH 1PRIMA’) I membagi STOP 50 WRITE(*,20)K,I Tidak K bukan 20 FORMAT(10X,I5,1X,’BUKAN PRIMA’ prima 10 1 10X,I5,1X,’ADALAH PEMBAGI’) 0 I pembagi STOP Keluar normal END K prima SELESAI Gambar 3.3 Diagram alir contoh 3.7, Mencari bilangan prima
  • 9. Pemrograman Komputer Bahasa FORTRAN - 50 3.1.7 PENGALIHAN DI DALAM DAN KE SUATU DO-LOOP Seseorang selalu dapat beralih dari suatu titik dalam suatu DO loop ke titik lainnya dalam DO loop yang sama, dan seseorang secara bebas dapat melompat ke luar dari DO loop sembarang. Tetapi tidak mungkin untuk melompat ke tengah-tengah DO loop. Yakni, satu- satunya cara untuk beralih ke pernyataan di dalam suatu DO loop hanyalah melalui pernyataan DO yang sama. Adaikan kita ingin sebuah ruas program FORTRAN menggunakan DO loop yang menghitung jumlah 1+2+3+5+6+7+ 8+9+10 tanpa melalui bilangan 4, bandingkan dua program berikut : (A) ISUM =0 DO 100 I=1,10 IF(I .EQ. 4) I = I + 1 ISUM = ISUM + I 100 CONTINUE (B) ISUM = 0 50 DO 200 I=1,10 IF(I .EQ. 4) GO TO 50 ISUM = ISUM + I 200 CONTINUE Progran A tidak benar karena indeks I diubah di dalam DO loop. Yaitu, jika pernyataan IF(I .EQ. 4) I = I + 1 ISUM = ISUM + I tidak berada dalam sebuah DO loop, maka 5 akan ditambahkan pada ISUM jika I mula-mula berisi 4. Tetapi, karena disini beada di tengah-tengah DO loop, pernyataan-pernyataan tersebut tidak diijinkan. Berlawanan dengan hal ini, program B memuat penggunaan DO loop secara benar, tetapi logika program salah. Terdapat suatu ke luar tak normal bilamana I bernilai 4, tetapi pengendalian dialihkan lagi ke pernyataan DO, dan indeks dikembalikan ke nilai awal.Sehingga hasil exsekusi hanya akan menjumlahkan 1+2+3 berulang-ulang. Hasilnya adalah : 1+2+3+1+2+3+… Program B akan menghitung jumlah yang diminta apabila pernyataan IF(I .EQ. 4) GO TO 50 diganti dengan :
  • 10. Pemrograman Komputer Bahasa FORTRAN - 51 IF(I .EQ. 4) GO TO 200 MULAI Contoh 3.8 : BACA LAR C PROGRAM PENENTUAN DO 50 C BILANGAN TERBESAR I=1, 99 C C234567890 REAL LAR BACA X READ (*,10) LAR 10 FORMAT(F10.2) Ya LAR ≥ X DO 50 I = 1, 99 READ (*,10) X Tidak IF(LAR.GE.X)GO TO 50 LAR  X LAR = X 50 CONTINUE WRITE(*,20)LAR 5 20 FORMAT(1X,F10.2) 0 STOP END CETAK LAR SELESAI Gambar 3.4 Diagram alir contoh 3.8, Menentukan Bilangan Terbesar 3.1.8 DO-LOOP BERSARANG (NASTED DO) Dimungkinkan mempunyai sebuah DO loop (lebih dalam) di dalam rentang DO loop lain (lebih luar). DO loop yang terbentuk disebut DO loop bersarang (nasted do). Aturan yang berlaku pada DO loop bersarang pada dasarnya sama dengan DO loop tunggal. Tetapi berikut adalah hal-hal yagn penting di dalam penggunaan DO loop bersarang: 1. Karena indeks tidak dapat didefinisikan ulang didalam badan DO loop, indeks DO loop yang lebih dalam harus tidak sama dengan indeks DO loop sebelah luar. 2. Do loop yang lebih dalam harus terletak di dalam DO loop yang lebih luar; yatiu tidak boleh jadi tumpang tindih. Gambar 3.5 menggambarkan cara DO loop bersarang dibentuk. 3. Banyaknya Do loop bersarang dibatasi oleh kompailer. Pengalihan pengendalian di dalam DO loop bersarang dapat memperdayakan, tetapi atauran-aturan tetap sama seperti DO loop tunggal. 4. DO loop boleh memiliki pernyataan terakhir yang sama seperti ditunjukkan dalam gambar 3.6.
  • 11. Pemrograman Komputer Bahasa FORTRAN - 52 DO 18____________ DO 18____________ *** *** *** *** DO 20___________ *** *** DO 20___________ *** *** DO 30___________ *** *** *** *** 18 CONTINUE 30 CONTINUE *** *** *** *** *** 20 CONTINUE 20 CONTINUE *** *** 18 CONTINUE Dapat diterima Tidak dapat diterima ( DO loop bersarang ) (DO loop tumpang tindih) (a) (b) GAMBAR 3.5 Penggunaan DO loop bersarang DO 20___________ DO 10___________ *** *** *** *** DO 10___________ DO 10___________ *** *** *** *** 10 CONTINUE 10 CONTINUE 20 CONTINUE DO 10___________ *** *** DO 10___________ *** *** 10 PERNYATAAN TEREKSEKUSI GAMBAR 3.5 Penggunaan DO loop bersarang dengan akhir yang sama
  • 12. Pemrograman Komputer Bahasa FORTRAN - 53 Contoh 3.9 : C PROGRAM MENGHITUNG NILAI RATA-RATA C TIGA KALI UJIAN 25 MAHASISWA DENGAN C NASTED DO-LOOP C C234567890 WRITE(*,100) 100 FORMAT(‘1’,4X,’ID’,9X,’AVERAGE’) DO 80 K = 1,25 READ (*,90) ID 90 FORMAT(I10) SUM=0.0 DO 20 I=1,3 READ(*,10)SCORE 10 FORMAT(F6.2) SUM=SUM+SCORE 20 CONTINUE AVE=SUM/3.0 WRITE(*,30)ID, AVE 30 FORMAT(1X,110,5X, F6.2) 80 CONTINUE END 3.2 PENYELEKSIAN KONDISI 3.2.1 STATEMEN GO TO Statemen GO TO merupakan statemen loncatan, yaitu digunakan untuk meloncat ke suatu statemen lainnya yang tertentu. Ada dua bentuk statemen ini, yaitu : • Statemen GO TO tanpa syarat (unconditional GO TO) • Statemen GO TO pengerjaan (assigned GO TO) • Statemen GO TO bersyarat/terhitung (computed GO TO) A. STATEMEN GO TO TANPA SYARAT Statemen ini memberiperintah agar program dilanjutkan langsung ke statemen nomor <slabel>. Bentuk umum : GO TO <slabel> Dimana :
  • 13. Pemrograman Komputer Bahasa FORTRAN - 54 <slabel> = nomor statemen yang dapat dilaksanakan. variabel <slabel> (integer) adalah salah satu nomor statemen yangterdapat dalam program. Dengan statemen ini program dapat meloncati beberapa baris statemen di atas atau dibawahnya. MULAI Contoh 3.10 : C PROGRAM MENGHITUNG NILAI C RATA-RATA UNTUK TIAP MAHASISWA BACA ID,S1,S2,S3 C C234567890 CETAK 100 READ (*,90) ID,S1,S2,S3 ID,S1,S2,S3 90 FORMAT(I5,F10.2,F10.2,F10.2) WRITE(*,90)ID,S1,S2,S3 SUM  S1+S2+S3 SUM = S1+S2+S3 AVE = SUM/3.0 Ave SUM/3 WRITE(*,30)AVE 30 FORMAT(1X,’RATA-RATA =’,F6.2) GO TO 100 CETAK AVE END SELESAI Gambar 3.6 Diagram alir contoh 3.10 Contoh 3.11 : C234567890 5 WRITE(*,’(1A,A)’)KOMPUTER’ GO TO 5 END Bila program ini dijalankan didapat hasil : KOMPUTER KOMPUTER KOMPUTER KOMPUTER Tanda C ini menunjukkan ditekan tombol CTRL+C (Break) KOMPUTER Karena program akan terus berjalan (loop tak terhingga) KOMPUTER KOMPUTER KOMPUTER KOMPUT^C B. STATEMEN GO TO PENGERJAAN Statemen ini memberi perintah agar program meloncat ke statemen nomor <slabel> yang ditunjukkan oleh isi dari <name>. Bentuk umumnya : GO TO <name>[[,](<slabel>[,<slabel>]…)] Dimana :
  • 14. Pemrograman Komputer Bahasa FORTRAN - 55 <name> adalah nama variabel integer yang diisi statemen label dengan perintah ASSIGN Jadi salah satu nilai dari <slabel> harus sama dengan nilai dari <name>. Kalau nilai dari <name> tidak ada yang sama dari salah satu <slabel>, maka proses tidak akan melompat ke suatu statemen label apapun, tetapi akan dilanjutkanke statemen berikutnya. CONTOH 3.12 : C234567890 ASSIGN 15 TO LONCAT GOTO LONCAT,(15) WRITE(*,’(1A,A)’)’TIDAK DITAMPILKAN’ 15 WRITE(*,’(1A,A)’)’DITAMPILKAN’ WRITE(*,’(1A,A)’)’INI JUGA DITAMPILKAN’ END Bila dijalankan akan didapatkan hasil : DITAMPILKAN INI JUGA DITAMPILKAN Nama variabel integer LONCAT berisi nilai statemen label 15 dan statemen GOTO LONCAT,(15) akan membawa proses meloncat ke statemen label 15, karena nilai variabel integer LONCAT sama dengan statemen label tersebut. C. STATEMEN GOTO BERSYARAT Statemen ini digunakan untuk mengontrol loncatan dari nilai ungkapan integer <i>. Bentuk umum : GOTO (<slabel>[,<slabel>]…)[,]<i> Dimana : <slabel> adalah statemen label dari suatu executabel statemen yang berada pada unit program yang sama dengan statemen GOTO bersyarat tersebut. <i> adalah ungkapan integer Statemen GOTO bersyarat akan menuju ke <slabel> yang pertama bila ungkapan <i> bernilai 1, akan menuju ke <slabel> kedua bila <i> bernilai 2 dan seterusnya.
  • 15. Pemrograman Komputer Bahasa FORTRAN - 56 Contoh 3.13 C234567890 CHARACTER*1 BUNYI WRITE(*,’(1X,A)’)’ << PILIHAN >>’ WRITE(*,*) WRITE(*,’(1X,A)’)’ 1. Menghitung isi silinder’ WRITE(*,’(1X,A)’)’ 2. Menghitung luas segi tiga’ WRITE(*,’(1X,A)’)’ 3. Menghitung isi kubus’ WRITE(*.*) WRITE(*,’(1X,A)’)’ 4. SELESAI’ 15 WRITE(*,’(//,1X,A,)’)’PILIH NOMER (1-4)?’ READ(*,’(BN,I1’) NOMER C Computed GOTO - 1 C menuju ke label sesuai dengan nomor yang dipilih 1000 - 2  2000 WRITE(*,*) - 3  3000 GOTO(1000,2000,3000,4000) NOMER BUNYI = 7 - 4  4000 WRITE(*,’(1X,A,A)’)’SALAH PILIH!!,Ulangi’, BUNYI GOTO 15 C C MENGHITUNG ISI SILINDER 1000 WRITE(*,’(1X,A,)’)’JARI-JARI LINGKARAN?’ READ(*,’(BN,F7.2)’) R WRITE(*,’(1X,A,)’)’TINGGI SILINDER?’ READ(*,’(BN,F7.2)’) T XISI = 3.1419 *R**2*T WRITE(*,’(/,1X,A,F7.2)’)’ISI SILINDER =’,XISI GOTO 4000 C C MENGHITUNG LUAS SEGI TIGA 2000 WRITE(*,’(1X,A,)’)’PANJANG SISI DASAR?’ READ(*,’(BN,F7.2)’) S WRITE(*,’(1X,A,)’)’TINGGI SEGITIGA?’ READ(*,’(BN,F7.2)’) T XLUAS = 0.5*S*T WRITE(*,’(/,1X,A,F7.2)’)’LUAS SEGITIGA =’,XLUAS GOTO 4000 C C MENGHITUNG ISI KUBUS 3000 WRITE(*,’(1X,A,)’)’PANJANG SISI KUBUS?’ READ(*,’(BN,F7.2)’) S WRITE(*,’(1X,A,)’)’TINGGI SILINDER?’ READ(*,’(BN,F7.2)’) T XISI = S*S*S WRITE(*,’(/,1X,A,F7.2)’)’ISI KUBUS =’,XISI GOTO 4000
  • 16. Pemrograman Komputer Bahasa FORTRAN - 57 C C SELESAI 4000 CONTINUE END Bila dijalankan akan ditampilkan 4 buah pilihan dan anda dapat memilih salah satu dari pilihan tersebut : << PILIHAN >> 1. Menghitung isi silinder 2. Menghitung luas segi tiga 3. Menghitung isi kubus Pilih proses yang and pilih 4. SELESAI PILIH NOMER (1-4)?2 Jika misalnya dipilih 2, berarti akan menghitung luas segi tiga, maka akan ditanyakan : PANJANG SISI DASAR?20.0 TINGGI SEGITIGA?15.0 LUAS SEGITIGA = 150.00 3.2.2 STATEMEN IF Statemen atur kondisional dan iterasi (pengulangan) merupakan komponen bahasa FORTRAN yang dapat digunakan untuk membuat keputusan. Keputusan diambil setelah meninjau beberapa kondisi tertentu. Untuk keperluan ini dikenal adanya statemen IF. Ada 3 macam statemen IF yaitu : - IF logika (logical IF) - IF aritmatika (arithmetic IF) - IF blok (Block IF) A. IF LOGIKA IF logika digunakan untuk menyeleksi suatu statemen logika atau statemen hubungan (relasi), jika kondisinya benar (TRUE) maka statemen yang mengikutinya akan diperoses. Sebaliknya, jika salah (FALSE) proses akan meloncat ke statemen berikutnya (ungkapan logika yang digunakan .LT.,.LE.,.EQ.,.NE.,.GT.,.GE.). Dua operator logika yang sangat berguna selain .NOT. adalah .OR. (logika atau ) dan .AND. (logika dan).
  • 17. Pemrograman Komputer Bahasa FORTRAN - 58 Bentuk umum : IF(<expresi>) <statemen> Dimana : <expresi> ungkapan logika atau ungkapan hubungan yang akan diseleksi. <statemen> executable statement, kecuali statemen DO, blok IF atau statemen IF logika lainnya. Berikut adalah contoh pendeklarasian IF logika yang benar : IF(X .GT. 3 .AND. Y .LE. 2) GOTO 3 IF(A .LE. X .OR. Y .LE. 2) GOTO 5 IF(.NOT. (X .LT. Y .OR. G .GT. GG)) GOTO 3 Contoh 3.15 MULAI C PROGRAM MENCARI TAHUN KABISAT BACA ITAHUN C234567890 WRITE(*,’(1X,A,)’)’TAHUN ?’ HITUNG READ(*,’(BN,I4)’) ITAHUN XTAHUN = ITAHUN/4.0 XTAHUN=ITAHUN/4.0 JTAHUN =ITAHUN/4 JTAHUN=ITAHUN/4 IF(XTAHUN .EQ. JTAHUN) GOTO 100 WRITE(*,’(1X,A,I4,A)’)’TAHUN’, Ya XTAHUN 1ITAHUN,’BUKAN TAHUN KABISAT’ = GOTO 200 Tidak 100 WRITE(*,’(1X,A,I4,A)’)’TAHUN’, 1ITAHUN,’ADALAH TAHUN KABISAT’ TULIS : 200 CONTINUE TULIS : BUKAN TAHUN TAHUN KABISAT KABISAT END CONTINUE SELESAI Bila program tersebut dijalankan akan didapatkan hasil : Gambar 3.7 Diagram alir contoh 3.15, TAHUN ? 1987 Menentukan Tahun Kabisat TAHUN 1987 ADALAH BUKAN TAHUN KABISAT B. IF ARITMATIKA
  • 18. Pemrograman Komputer Bahasa FORTRAN - 59 Statemen IF aritmatika digunakan untuk menyeleksi kondisi suatu ungkapan aritmatika apabila bernilai positif, negatif atau nol. Gambar 3.8 menunjukkan diagram alir dari if aritmatika. Bentuk umu IF aritmatika adalah : IF (<expressi>) <slabel>,<slabel>, <slabel> dimana : <expressi> merupakan ekspresi aritmatika (disebelah kanan tanda =) yang akan dievaluasi harganya. <slabel> merupakan nomor statemen yang dituju selanjutnya bila <expressi> lebih kecil, sama dengan atau lebih besar dari nol. TRUE <0 >0 E< I ATAU I E K FALSE =0 TRUE E= J J FALSE K Gambar 3.8 Diagram alir IF Arithmatika Berikut adalah contoh pendeklarasian statemen IF aritmatika yang sahih : IF (A+B) 21, 23, 24 IF(Z-0.001)12, 12, 13 IF(X) 3, 4, 5 IF(K(I,J)-1)20, 40, 30 IF(A*XZ**3-A*B) 2, 3, 4 Contoh 3.16 : MULAI C PROGRAM PREMI BACA ID C PREMI = 9.75 JIKA BELUM KAWIN PAY  50000 C PREMI = 16,25 KAWIN TANPA ANAK C PREMI = 24.50 KAWIN PUNYA ANAK NEGATIF POSITIF C234567890 TYPE-2 REAL NET NOL WRITE(*,50)’ID ?’ 50 READ(*,’(BN,I4)’)ID NET PAY-9.75 NET PAY-16.25 NET PAY-24.50 PAY = 50000.00 IF(TYPE-2) 10,20,30 CETAK 10 NET = PAY -9.75 ID, NET GOTO 75 20 NET = PAY – 16.25 GOTO 75 SELESAI 30 NET = PAY – 24.50 Gambar 3.9 Diagram alir contoh 3.16, Menentukan Jumlah Premi
  • 19. Pemrograman Komputer Bahasa FORTRAN - 60 75 WRITE(*,40)ID, NET 40 FORMAT(1X,I5,3X,F12.2) END C. IF BLOK Statemen IF blok dapat terdiri dari statemen IF-THEN, ELSE, ELSEIF dan ENDIF. Bentuk umum : IF(<statemen>) THEN ELSE ELSEIF (<statemen>) THEN ENDIF Berikut contoh pendeklarasian IF-THEN, ELSE, ELSEIF dan ENDIF : A. IF (IREMAIN .EQ. 2) THEN <statemen> ENDIF B. IF(IREMAIN .EQ.2) THEN <statemen> ELSE <statemen> ENDIF C. IF(IREMAIN .EQ. 2) THEN <statemen> ELSEIF (IREMAIN .EQ.3) THEN <statemen> ELSE <statemen> ENDIF Contoh 3.17 : C234567890 CHARACTE*20 NAMA(5), KET, GARIS*52 REAL*4 NILAI(5) DATA NAMA /’ARIEF’,’BUDI’,’CANDRA’,’DEWI’,’EDI’/ DATA NILAI/95.9,57.5,23.5,90.0,65.75/ C CETAK JUDUL TABEL GARIS=’----------------------------------------‘ WRITE(*,’(1X,A)’)’ DAFTAR NILAI UJIAN’ WRITE(*,*) WRITE(*,’(1X,A)’) GARIS
  • 20. Pemrograman Komputer Bahasa FORTRAN - 61 WRITE(*,’(1X,A)’)’ NAMA MAHASISWA NILAI KETERANGAN’ WRITE(*,’(1X,A)’) GARIS DO 15 I=1,5 IF(NILAI(I) .GT. 75.0) THEN KET = ‘LULUS SANGAT BAIK’ ELSEIF(NILAI(I) .GT. 65.0) THEN KET = ‘LULUS BAIK’ ELSEIF(NILAI(I) .GT. 55.0) THEN KET = ‘LULUS CUKUP’ ELSE KET =’TIDAK LULUS’ ENDIF 15 WRITE(*,40) NAMA(I), NILAI(I), KET 40 FORMAT(1X,A20,2X,F6.2,2X,A20) WRITE(*,’(1X,A)’) GARIS END MULAI BACA DATA NAMA, NILAI CETAK JUDUL TABEL DO I=1,5 YA NILAI(I) > KET =’LULUS SANGAT BAIK’ 75.0 ? TIDAK NILAI(I) > YA KET =’LULUS BAIK’ 65.0 ? TIDAK NILAI(I) > YA KET =’LULUS CUKUP’ 55.0 ? TIDAK KET =’TIDAK LULUS’ CETAK JUDUL TABEL 1 5 SELESAI Gambar 3.10 Diagram alir contoh 3.17, Menentukan kelulusan mahasiswa
  • 21. Pemrograman Komputer Bahasa FORTRAN - 62 SOAL-SOAL YANG DIPECAHKAN 3.1 Temukan nilai akhir K setelah tiap ruas program FORTRAN berikut dilaksanakan a. K=2 b. K=2 10 DO 20 I=3,8,2 10 DO 20 I=3,8,2 IF (I .EQ.5) GOTO 20 IF (I .EQ.5) GOTO 10 K=K+1 K=K+1 20 CONTINUE 20 CONTINUE K=2*K K=2*K Jawab : a. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi sebagai berikut : (i) Pertama untuk I=3. karena I≠5, pernyataan K=K+1 dieksekusi, yang menghasilkan : K K+1 = 2+3=5 (ii) Kemudian untuk I=5. Karena I=5,pengendalian dialihkan ke CONTINUE yang mendaur-ulang DO loop (iii) Kemudian untuk I=7. Karena I≠5, pernyataan K=K+1 dieksekusi, yang menghasilkan : K K+1 = 5+7=12 Nilai I berikutnya melampaui nilai uji, sehingga pengendalian dialihkan ke pernyataan yang menyusul DO loop, yang melipat duakan nilai K. Karenanya nilai K terakhir adalah 24. (iv) b. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi sebagai berikut : (i) Pertama untuk I=3. Karena I≠5 pernyataan K=K+1 dieksekusi, yang menghasilkan : K K+1 = 2+3=5 (ii) Kemudian untuk I=5. Karena I=5, pengendalian dialihkan ke pernyataan DO Karena pengendalian dialihkan ke pernyataan DO, DO loop mulai dari awal lagi dan menetapkan I=3. Jadi, (i) dan (ii) diulang berkali-kali. Ini memberikan sebuah loop tak terhingga dan tidak terdapat nilai terakhir dari K.
  • 22. Pemrograman Komputer Bahasa FORTRAN - 63 3.2 Tuliskan pernyataan-pernyataan berikut dalam FORTRAN : a. Jika X>Y, berhenti b. Jika J≠K, lanjut ke pernyataan berpengenal 31 c. Jika a2≤B+C, lanjutkan ke pernyataan berpengenal 41 d. Jika A-B≥X3, berhenti Jawab : a. IF(X .GT. Y) stop c. IF(A**2 .LE. B+C) GOTO 41 b. IF(J .NE. K) GOTO 31 d. IF(A-B .GE. X**3) STOP 3.3 Andaikan X dan Y telah didefinisikan. Tuliskan sebuah pernyataan FORTRAN atau ruas FORTRAN yang (a) mengalihkan pengendalian ke pernyataan berpengenal 41 jika a2 ≤ Y, dan jika tidak demikian mengalohkan pengendalian ke pernyataan berpengenal 42; (b) menetapkan K=0 jika X+Y>100, dan jika tidak menetapkan K=1. Lakukan hal di atas dalam dua cara, sekali dengan sebuah pernyataan IF logika. Jawab : a . (i) perhatikan bahwa a2 ≤ Y, jika dan hanya jika a2 – Y negatif atau nol IF (X**2-Y) 41, 41, 42 (ii) IF (X**2 .LE. Y) GOTO 41 42 ……………………… b. (i) Perhatikan bahwa X+Y>100 jika dan hanya jika X+Y-100 positif IF(X+Y-100.0)20, 20, 10 10 K=0 GOTO 30 20 K=1 30 ………………………. (ii) IF (X+Y .LE. 100.0) GOTO 20 K=0 GOTO 30 20 K=1 30 ………………. SOAL-SOAL LATIHAN 1. Pada tiap pernyataan DO berikut, temukan kesalahan, jika ada : a. DO 700, LAMB=1,14,l c. DO 900 K=I, J, K b. DO 800 J=7,M**2,2 d. DO 1000 LONG=K234 , K123, K345 2. Temukan nilai K setelah tiap ruas FORTRAN berikut dieksekusi
  • 23. Pemrograman Komputer Bahasa FORTRAN - 64 a. K=3 b. K=3 DO 100 J=3,7,3 M=2 K=K+J DO 300 J=3,7,M 100 CONTINUE M=M+K K=3*K 300 CONTINUE K=3*K c. K=3 D. K=3 M=2 M=2 DO 300 J=3,7,M DO 400 J=M,7,M K=K+J K=J+K+M 300 CONTINUE IF(K.GT.9) GOTO 10 K=3*K 400 CONTINUE 10 K=3*K 3. Temukan kesalahan jika ada, pada tiap pernyataan FORTRAN berikut: a. IF(A=B) GOTO 50 e. IF(X.LE.100) GOTO K b. IF(X GT Y) STOP f. IF(A-100)10,20,30 c. IF(B**2-A*C) STOP g. IF(X.GE.Y) GOTO 55 d. IF(X.LT.Y+Z) 10,15, 20 h. IF(INT.LT.AMOUNT STOP 4. Jika J dan K masing-masing berisi 3 dan 5. temukan nilai akhir J setelah masing-masing ruas program dieksekusi : a. IF(J.GE.K) J=J+2 b. IF(J.LT.K-1) GOTO 10 J=J+2 J=J+2 10 J=J+K c. IF(5*J.EQ.3*K) J=J+2 D. IF(J.GE.K+1) GOTO 10 J=J+2 J=J+2 10 J=J+K d IF(J-) 10,10,20 IF(2*J-K)10,10,20 . 10 J=K 10 J=K 20 J=J+2 20 J=J+2 PRAKTIKUM 1. Tulislah bebrapa program FORTRAN berikut, jalankan, amati prosesnya dan simpan dengan nama berbeda. C23456789 C23456789 PROGRAM LAT3_1A PROGRAM LAT3_1B C Program statemen STOP C Program statemen PAUSE WRITE(*,4) A A=10.0 4 FORMAT (1X,’NILAI A = ‘,F4.1) B=12.0
  • 24. Pemrograman Komputer Bahasa FORTRAN - 65 STOP WRITE(*,4) A END PAUSE ‘TEKAN <ENTER> UNTUK MELIHAT NILAI B’ WRITE(*,6) B 4 FORMAT(1X,’NILAI A = ‘, F4.1) 6 FORMAT(1X, ‘NILAI B = ‘,F4.1) STOP END C23456789 C23456789 PROGRAM LAT3_1C PROGRAM LAT3_1D C Program statemen membuat fungsi C Program membuat fungsi C Y(X)= LOG10 (X) C Y(X) = X! DO J=1,20,2 DOUBLEPRECISION Y X=FLOAT(J) WRITE(*,*) ‘BERAPA FAKTORIAL? ‘ Y=LOG10(X) READ(*,*) IFAKT WRITE(*,50) X, Y Y=1.0 ENDDO DO N=1, IFAK 50 FORMAT(1X,’NILAI A = ‘, F7.5), X=FLOAT(N) - 3X,’NILAI LOG10(X) = ‘,F9.5) Y=Y*X END WRITE(*,4) X,Y ENDDO 4 FORMAT(1X,’HARGA ‘, I5,’!’, ‘ADALAH’, E27.17) STOP END C23456789 C23456789 PROGRAM LAT3_1E PROGRAM LAT3_1F C Program menghitung jumlah bilangan C Program menghitung nilai dari persamaan C dari 1 sampai N  a  (v − b ) C T ( P, V ) =  P + 2  DOUBLEPRECISION Y  V  R WRITE(*,*) ‘N = ?’ C READ(*,*) IAKHIR CHARACTER*17 IFX1 Y=0.0 DOUBLEPRECISION P,V,T DO 10 N=1, IAKHIR C PERSAMAAN GAS CO2 X=FLOAT(N) R=8.31*1.0E+3 Y=Y+X A=366.0 WRITE(*,10) N,Y B=0.0429 ENDDO DO M=1, 25 4 FORMAT(1X,’JUMLAH BIL. DARI P=10000.0*FLOAT(M) - 1-- ‘, I5, ‘ADALAH’, F9.1) DO N=1,M STOP V=FLOAT(N) END T=(P+A/V**2)*(V-B)/R WRITE(*,10) P, V, T ENDDO ENDDO 10 FORMAT(1X, ‘P= ’,F9.1,,1X,’V= ’,F9.1,,1X,’T=’,F9.1) STOP END C23456789 PROGRAM LAT3_1F C Program mencari bilangan terbesar C REAL LAR WRITE(*,*) ‘N = ?’ READ(*,10) N 10 FORMAT(I6) WRITE(*,*) ‘LAR = ?’ READ(*,20) LAR I=1 100 READ(*,20) X 20 FORMAT(F12.2) IF (LAR .GE.X) GOTO 200 LAR=X 200 I=I+1
  • 25. Pemrograman Komputer Bahasa FORTRAN - 66 IF (I .LE.N-1) GOTO 100 WRITE(*,30) LAR 30 FORMAT(1X,’BIL. TERBESAR ADALAH’,2X,F12.2) STOP END 2. Buatlah program untuk menghitung : a. 1/n! b. y(t)=10.0 sin(2Πft) exp(-0.9t) n 1 c. ∑ dengan A = 10.0 dan B = 1 1=1 A + iB d. y (t ) = t 2 + t + 1.0 10 3. Buatlah program untuk menghitung ∑n n =1 2 + n + 1 menggunakan statemen GOTO dan IF (decision) THEN 4. Hitunglah y = x 4 − 0.5 x 2 + 7.0 x − 8.0 dengan batas -4<x<4 dengan step 0.1