Page 1
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 1/25
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 aliranlogika 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 pengerjaan yang berbeda
sesuai dengan kondisi yang dihasilkan.
4244
Page 2
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 2/25
Pemrograman Komputer Bahasa FORTRAN -
3.1 PERULANGAN
Statemen kontrol atau statemen kendali termasuk executabel statement , yang
mengendalikan urutan dari proses statemen-statemen di dalam blok program. Didalam 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 statemenGOTO
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 digabungdengan statemen lain. Bentuk umum dari statemen ini adalah :
END
Contoh 3.1 :
C234567890
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>]
Dimana :
43
END selalu di akhir program
Page 3
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 3/25
Pemrograman Komputer Bahasa FORTRAN -
<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 bolehlebih dari lima digit atau suatu string dan sifatnya opsional.
Contoh 3.2 :
C234567890
A=10.0B=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
44
Page 4
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 4/25
Pemrograman Komputer Bahasa FORTRAN -
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.
Contoh 3.3 :
C234567890
DO 5 I=1,5,1
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
Tampak statemen WRITE akan diperoses sebanyak lima kali, yaitu
hitungan I = 1 sampai I = 5 dengan interval 1.
45
Statemen label
Variabel numerik integer
Awal perulangan
Akhir perulangan
Peningkatan (increment )
Page 5
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 5/25
Pemrograman Komputer Bahasa FORTRAN -
Untuk pengulangan menurun gunakan nilai awal lebih besar dari nilai
akhir dengan interval bertanda minus (-) seperti tampak dalam contoh3.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 kedalamuntuk memudahkan pembacaan). Bentuk statemen ini sebagai berikut:
DO n I = IN,IE,IC .
.
.
BADAN DO LOOP
.
.
.
n CONTINUE
Untuk jelasnya, stateman DO dapat digambarkan dalam bentuk diagram
alir seperti tampak dalam gambar 3.1.
46
Dimana :
IN = nilai awal indeksIE = nilai uji/akhir indexs
IC = peningkatan/interval
n = statemen label (nomor
Pernyataan CONTINUE)
Page 6
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 6/25
Pemrograman Komputer Bahasa FORTRAN -
(a) (b)
Gambar 3.1 Diagram Alir Statemen DO
Contoh 3.5 :
C PROGRAM MENGHITUNG NILAI MAHASISWA
C234567890
WRITE (*,5)
5 FORMAT(1X,’ID NO.’,4X,1’TEST1’, 4X,’TEST2’,4X,
2’TEST3’,3X,’AVERAGE’)
DO 200 I=1,100
READ(*,10)ID,S1,S2,S3
10 FORMAT(5X,I5,3(4X,F6.2)
SUM = S1 + S2 + S3
AVE = SUM/3.0
WRITE(*,20)ID,S1,S2,S3,AVE
20 FORMAT(5X,I5,4(4X,F6.2))
200 CONTINUE
STOP
END
47
StatemenCONTINUE
StatemenDO
Blok DO LOOP
MULAI
DO
200
I=1,100
BACA
ID,S1,S2,S3
SUM S1+S2+S3
AVESUM/3.0
CETAK
ID,S1,S2,S3,AV
E
20
0
SELESAI
Gambar 3.2 Diagram alir contoh 3.5,
menghitung rata-rata 3 (tiga)
nilai ujian mahasiswa
belum selesai belum selesai
Ya
I
IN
Badan DO
I I + IC
I ≤
IE
Tidak
SELESAI
Badan DO
DO nI = IN,IE,
IC
SELESAI
n
Page 7
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 7/25
Pemrograman Komputer Bahasa FORTRAN -
Contoh 3.6
C PROGRAM PENENTUAN RATA-RATA
C
C234567890
SUM=0.0
DO 200 I=1,100
READ(*,10)A
10 FORMAT(F10.2)
SUM = SUM+A
200 CONTINUE
AVE = SUM/100.0
WRITE(*,20)AVE
20 FORMAT(1X,F10.2)
STOP
END
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 NormalDimungkinkan 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 lebih lanjut atau
48
MULAI
DO
200
I=1,10
0
BACA A
SUM SUM + A
AVESUM/100.0
CETAK
AVE
20
0
SELESAI
Gambar 3.2 Diagram alir contoh 3.6,
Menghitung rata-rata 100 bilangan
SUM 0
Page 8
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 8/25
Pemrograman Komputer Bahasa FORTRAN -
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
* * *
STOP200 * * *
* * * Nilai indeks K terdefinisi untuk pernyataan ini
* * *
STOP
CONTOH 3.7 :
C234567890
READ (*,8) K8 FORMAT(I10)
KK = K/2
DO 100 I = 2, KK
IF (K .EQ.(K/I)*I) GO TO 50
100 CONTINUE
WRITE(*,10)K
10 FORMAT(10X,I5,1X,’ADALAH
1PRIMA’)
STOP
50 WRITE(*,20)K,I
20 FORMAT(10X,I5,1X,’BUKAN PRIMA’
1 10X,I5,1X,’ADALAH PEMBAGI’)
STOPEND
49
Keluar normal
Tidak
Ya (keluar tak norm
MULAI
DO
100
I=2,
KK
BACA K
K buka
prima
I pemba10
0
SELESAI
Gambar 3.3 Diagram alir contoh 3.7Mencari bilangan prima
KK K/2
I membagi
K
K prima
Page 9
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 9/25
Pemrograman Komputer Bahasa FORTRAN -
3.1.7 PENGALIHAN DIDALAM 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 bebasdapat 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,10IF(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 50ISUM = 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 + 1ISUM = 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 :
50
Page 10
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 10/25
Pemrograman Komputer Bahasa FORTRAN -
IF(I .EQ. 4) GO TO 200
Contoh 3.8 :
C PROGRAM PENENTUAN
C BILANGAN TERBESAR
C
C234567890
REAL LAR
READ (*,10) LAR
10 FORMAT(F10.2)
DO 50 I = 1, 99
READ (*,10) X
IF(LAR.GE.X)GO TO 50
LAR = X50 CONTINUE
WRITE(*,20)LAR
20 FORMAT(1X,F10.2)
STOP
END
3.1.8 DO-LOOPBERSARANG (NASTED DO)
Dimungkinkan mempunyai sebuah DO loop (lebih dalam) di dalamrentang 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 berikutadalah 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 yanglebih 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.
51
Tidak
Ya
MULAI
DO 50
I=1, 99
BACA LAR
5
0
SELESAI
Gambar 3.4 Diagram alir contoh 3.8,Menentukan Bilangan Terbes
LAR X
LAR ≥ X
CETAK LAR
BACA X
Page 11
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 11/25
Pemrograman Komputer Bahasa FORTRAN -
DO 18____________
***
***
DO 20___________
***
***
DO 30___________ ***
***
30 CONTINUE
***
***20 CONTINUE
***
***18 CONTINUE
Dapat diterima
( DO loop bersarang )
(a)
DO 18____________
***
***
***
DO 20___________
***
******
18 CONTINUE
***
***
***20 CONTINUE
Tidak dapat diterima
(DO loop tumpang tindih)
(b)
GAMBAR 3.5 Penggunaan DO loop bersarang
DO 20___________
***
***
DO 10___________
******
10 CONTINUE
20 CONTINUE
DO 10___________
***
***
DO 10___________
******
10 CONTINUE
DO 10___________
***
***
DO 10___________
******
10 PERNYATAAN TEREKSEKUSI
GAMBAR 3.5 Penggunaan DO loop bersarang dengan akhir yang sama
52
Page 12
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 12/25
Pemrograman Komputer Bahasa FORTRAN -
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) ID90 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 :
53
Page 13
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 13/25
Pemrograman Komputer Bahasa FORTRAN -
<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.
Contoh 3.10 :C PROGRAM MENGHITUNG NILAI
C RATA-RATA UNTUK TIAP MAHASISWA
C
C234567890
100 READ (*,90) ID,S1,S2,S3
90 FORMAT(I5,F10.2,F10.2,F10.2)
WRITE(*,90)ID,S1,S2,S3
SUM = S1+S2+S3
AVE = SUM/3.0WRITE(*,30)AVE
30 FORMAT(1X,’RATA-RATA =’,F6.2)
GO TO 100
END
Contoh 3.11 :C234567890
5 WRITE(*,’(1A,A)’)KOMPUTER’
GO TO 5END
Bila program ini dijalankan didapat hasil :KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
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 :
54
Tanda C ini menunjukkan ditekan tombol CTRL+C (Break)Karena program akan terus berjalan (loop tak terhingga)
Gambar 3.6 Diagram alir contoh 3.10
MULAI
BACAID,S1,S2,S3
SELESAI
SUM S1+S2+S3
CETAK AVE
CETAK
ID,S1,S2,S3
AveSUM/3
Page 14
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 14/25
Pemrograman Komputer Bahasa FORTRAN -
<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 danstatemen
GOTO LONCAT,(15)
akan membawa proses meloncat ke statemen label 15, karena nilaivariabel 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.
55
Page 15
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 15/25
Pemrograman Komputer Bahasa FORTRAN -
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
C menuju ke label sesuai dengan nomor yang dipilih
WRITE(*,*)
GOTO(1000,2000,3000,4000) NOMER
BUNYI = 7
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 4000C
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
56
Computed GOTO
- 1 1000
- 2 2000
- 3 3000
-
Page 16
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 16/25
Pemrograman Komputer Bahasa FORTRAN -
C
C SELESAI
4000 CONTINUE
END
Bila dijalankan akan ditampilkan 4 buah pilihan dan anda dapatmemilih salah satu dari pilihan tersebut :
<< PILIHAN >>
1. Menghitung isi silinder
2. Menghitung luas segi tiga
3. Menghitung isi kubus
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).
57
Pilih proses yang and
pilih
Page 17
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 17/25
Pemrograman Komputer Bahasa FORTRAN -
Bentuk umum :
IF(<expresi>) <statemen>Dimana :
<expresi> ungkapan logika atau ungkapan hubungan yang akan
diseleksi.
<statemen> executable statement , kecuali statemen DO, blok IFatau 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 5IF(.NOT. (X .LT. Y .OR. G .GT. GG)) GOTO 3
Contoh 3.15
C PROGRAM MENCARI TAHUN KABISAT
C234567890
WRITE(*,’(1X,A,\)’)’TAHUN ?’
READ(*,’(BN,I4)’) ITAHUN
XTAHUN=ITAHUN/4.0
JTAHUN=ITAHUN/4
IF(XTAHUN .EQ. JTAHUN) GOTO 100
WRITE(*,’(1X,A,I4,A)’)’TAHUN’,
1ITAHUN,’BUKAN TAHUN KABISAT’GOTO 200
100 WRITE(*,’(1X,A,I4,A)’)’TAHUN’,
1ITAHUN,’ADALAH TAHUN KABISAT’
200 CONTINUE
END
Bila program tersebut dijalankan akan didapatkan
hasil :
TAHUN ? 1987TAHUN 1987 ADALAH BUKAN TAHUN KABISAT
B. IF ARITMATIKA
58
Tidak
Ya
MULAI
BACA
ITAHUN
SELESAI
Gambar 3.7 Diagram alir contoh
Menentukan Tahun Kabis
TULIS :
BUKAN TAHUN
KABISAT
XTAHUN
=
JTAHUN
HITUNG
XTAHUN = ITAHUN/4.0
JTAHUN =ITAHUN/4
TULIS :
TAHUN KABISAT
CONTINUE
Page 18
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 18/25
Pemrograman Komputer Bahasa FORTRAN -
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.
Gambar 3.8 Diagram alir IF Arithmatika
Berikut adalah contoh pendeklarasian statemen IF aritmatika yangsahih :
IF (A+B) 21, 23, 24 IF(Z-0.001)12, 12, 13IF(X) 3, 4, 5 IF(K(I,J)-1)20, 40, 30IF(A*XZ**3-A*B) 2, 3, 4
Contoh 3.16 :
C PROGRAM PREMI
C PREMI = 9.75 JIKA BELUM KAWIN
C PREMI = 16,25 KAWIN TANPA ANAK
C PREMI = 24.50 KAWIN PUNYA ANAK
C234567890
REAL NET
WRITE(*,50)’ID ?’
50 READ(*,’(BN,I4)’)ID
PAY = 50000.00
IF(TYPE-2) 10,20,30
10 NET = PAY -9.75
GOTO 75
20 NET = PAY – 16.25
GOTO 75
30 NET = PAY – 24.50
59
= 0
< 0 > 0
FALSE
FALSETRUE
TRUEI
E<
0
E=
0J
K
EI
J
K
ATAU
Gambar 3.9 Diagram alir contoh 3.16,
Menentukan Jumlah Premi
POSITIF
NOL
NEGATIF
MULAI
BACA ID
PAY 50000
SELESAI
NETPAY-16.25 NET PAY-9.75 NETPAY-2
CETAK
ID, NET
TYPE-2
Page 19
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 19/25
Pemrograman Komputer Bahasa FORTRAN -
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
ENDIFBerikut 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>
ENDIFC. IF(IREMAIN .EQ. 2) THEN
<statemen>
ELSEIF (IREMAIN .EQ.3) THEN
<statemen>ELSE
<statemen>
ENDIF
Contoh 3.17 :
C234567890CHARACTE*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
60
Page 20
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 20/25
Pemrograman Komputer Bahasa FORTRAN -
WRITE(*,’(1X,A)’)’ NAMA MAHASISWA NILAI KETERANGAN’
WRITE(*,’(1X,A)’) GARIS
DO 15 I=1,5
IF(NILAI(I) .GT. 75.0) THENKET = ‘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
61
Gambar 3.10 Diagram alir contoh 3.17,Menentukan kelulusan mahasiswa
TIDAK
TIDAK
TIDAK
YA
YA
YA
MULAI
BACA
DATA NAMA, NILAI
SELESAI
NILAI(I) >
75.0 ?
KET =’TIDAK LULUS’
CETAK
JUDUL TABEL
DO
I=1,5
NILAI(I) >
65.0 ?
NILAI(I) >
55.0 ?
CETAK
JUDUL TABEL
1
5
KET =’LULUS SANGAT BAIK’
KET =’LULUS BAIK’
KET =’LULUS CUKUP’
Page 21
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 21/25
Pemrograman Komputer Bahasa FORTRAN -
SOAL-SOAL YANG DIPECAHKAN
3.1 Temukan nilai akhir K setelah tiap ruas program FORTRAN berikut dilaksanakan
a. K=210 DO 20 I=3,8,2
IF (I .EQ.5) GOTO 20
K=K+1
20 CONTINUEK=2*K
b. K=210 DO 20 I=3,8,2
IF (I .EQ.5) GOTO 10
K=K+1
20 CONTINUEK=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, yangmenghasilkan :
K K+1 = 2+3=5
(ii) Kemudian untuk I=5. Karena I=5,pengendalian dialihkan keCONTINUE 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 dieksekusisebagai 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 awallagi dan menetapkan I=3. Jadi, (i) dan (ii) diulang berkali-kali. Ini
memberikan sebuah loop tak terhingga dan tidak terdapat nilai terakhir dari
K.
62
Page 22
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 22/25
Pemrograman Komputer Bahasa FORTRAN -
3.2 Tuliskan pernyataan-pernyataan berikut dalam FORTRAN :
a. Jika X>Y, berhenti
b. Jika J≠K, lanjut ke pernyataan berpengenal 31c. 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 nolIF (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=0GOTO 3020 K=1
30 ……………………….
(ii) IF (X+Y .LE. 100.0) GOTO 20K=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
63
Page 23
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 23/25
Pemrograman Komputer Bahasa FORTRAN -
a. K=3
DO 100 J=3,7,3
K=K+J100 CONTINUE
K=3*K
b. K=3
M=2
DO 300 J=3,7,MM=M+K
300 CONTINUE
K=3*K c. K=3
M=2
DO 300 J=3,7,M
K=K+J300 CONTINUE
K=3*K
D. K=3
M=2
DO 400 J=M,7,M
K=J+K+MIF(K.GT.9) GOTO 10
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
J=J+2
b. IF(J.LT.K-1) GOTO 10
J=J+210 J=J+K c. IF(5*J.EQ.3*K) J=J+2
J=J+2
D. IF(J.GE.K+1) GOTO 10
J=J+2
10 J=J+K d. IF(J-) 10,10,20
10 J=K
20 J=J+2
IF(2*J-K)10,10,20
10 J=K
20 J=J+2
PRAKTIKUM
1. Tulislah bebrapa program FORTRAN berikut, jalankan, amati prosesnya dan
simpan dengan nama berbeda.
C23456789
PROGRAM LAT3_1A
C Program statemen STOP
WRITE(*,4) A
4 FORMAT (1X,’NILAI A = ‘,F4.1)
C23456789
PROGRAM LAT3_1B
C Program statemen PAUSE
A=10.0
B=12.0
64
Page 24
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 24/25
Pemrograman Komputer Bahasa FORTRAN -
STOP
END
WRITE(*,4) A
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
C23456789PROGRAM LAT3_1C
C Program statemen membuat fungsi
C Y(X)= LOG10 (X)
DO J=1,20,2
X=FLOAT(J)Y=LOG10(X)
WRITE(*,50) X, Y
ENDDO
50 FORMAT(1X,’NILAI A = ‘, F7.5),
- 3X,’NILAI LOG10(X) = ‘,F9.5)
END
C23456789PROGRAM LAT3_1D
C Program membuat fungsi
C Y(X) = X!
DOUBLEPRECISION Y
WRITE(*,*) ‘BERAPA FAKTORIAL? ‘READ(*,*) IFAKT
Y=1.0
DO N=1, IFAK
X=FLOAT(N)
Y=Y*X
WRITE(*,4) X,YENDDO
4 FORMAT(1X,’HARGA ‘, I5,’!’,
‘ADALAH’, E27.17)
STOPEND
C23456789
PROGRAM LAT3_1E
C Program menghitung jumlah bilangan
C dari 1 sampai NDOUBLEPRECISION Y
WRITE(*,*) ‘N = ?’
READ(*,*) IAKHIR
Y=0.0DO 10 N=1, IAKHIR
X=FLOAT(N)
Y=Y+XWRITE(*,10) N,Y
ENDDO4 FORMAT(1X,’JUMLAH BIL. DARI
- 1-- ‘, I5, ‘ADALAH’, F9.1)
STOP
END
C23456789
PROGRAM LAT3_1F
C Program menghitung nilai dari persamaan
C R
bv
V
a P V P T
)(),(
2
−
+=
C
CHARACTER*17 IFX1
DOUBLEPRECISION P,V,TC PERSAMAAN GAS CO2
R=8.31*1.0E+3
A=366.0B=0.0429
DO M=1, 25P=10000.0*FLOAT(M)
DO N=1,M
V=FLOAT(N)
T=(P+A/V**2)*(V-B)/R
WRITE(*,10) P, V, TENDDO
ENDDO
10 FORMAT(1X, ‘P= ’,F9.1,\,1X,’V= ’,F9.1,\,1X,’T=’,F9.1)
STOP
ENDC23456789
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=X200 I=I+1
65
Page 25
5/17/2018 BAB 3 Pengaturan Aliran Pemograman (Fotran) - slidepdf.com
http://slidepdf.com/reader/full/bab-3-pengaturan-aliran-pemograman-fotran 25/25
Pemrograman Komputer Bahasa FORTRAN -
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)
c. ∑=
==+
n
iB A11
1Bdan10.0Adengan1
d. 0.1)(2
++= t t t y
3. Buatlah program untuk menghitung
∑=++
10
1
2 1n
nn menggunakan statemen
GOTO dan IF (decision) THEN
4. Hitunglah 0.80.75.0 24−+−= x x x y dengan batas -4<x<4 dengan step 0.1
66