Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Dasar Komputer & Pemrograman 2B
Fortran
2
Statement Kontrol Lanjutan
Statement GOTO Unconditional GOTO (Tak Bersyarat) Assigned GOTO (Pengerjaan) Computed GOTO (Bersyarat atau Terhitung) Statement IF Logical IF Arithmatic IF Block IF
3
Unconditional GOTO (Tak Bersyarat)
Bentuk Umum : GOTO <slabel> Ket : Untuk mengontrol proses menuju ke suatu statement lainnya yang ditunjukan oleh <slabel> tanpa ada syarat yang diberikan. Contoh : 5 WRITE (*,’(1X,A,)’) ‘KOMPUTER’ GOTO 5 END OUTPUT : KOMPUTER KOMPUTER KOMPUT^C MENUNJUKAN DITEKAN CTRL+C atau CTRL+BREAK
4
Assigned GOTO (Pengerjaan)
Bentuk Umum : GOTO<name>[[,](<slabel>[,<slabel>]..)] Ket : Untuk meloncat ke suatu label statement<slabel> yang ditunjukkan oleh isi dari <name> Contoh : ASSIGN 15 TO LONCAT GOTO LONCAT ,(15) WRITE (*,’(1X,A)’) ‘TIDAK DITAMPILKAN’ 15 WRITE (*,’(1X,A)’) ‘DITAMPILKAN’ WRITE (*,’(1X,A)’) ‘TIDAK JUGA DITAMPILKAN’ END RUN : DITAMPILKAN TIDAK JUGA DITAMPILKAN
5
Computed GOTO (Bersyarat atau Terhitung)
Bentuk Umum : GOTO(<slabel>[,<slabel>]…)[,]<i> Ket : Untuk mengontrol loncatan dari proses ke suatu label statement<slabel> tertentu, tergantung dari nilai ungkapan integer<i>. Contoh :
6
Contoh Character*1 BUNYI Write (*,’(1x,A)’)’ << PILIHAN>>’
Write (*,’(1x,A)’)’ 1. Menghitung isi silinder’ Write (*,’(1x,A)’)’ 2. Menghitung luas segitiga’ Write (*,’(1x,A)’)’ 3. Menghitung isi kubus’ Write (*,’(1x,A)’)’ 4. Selesai’ 15 Write (*,’(//,1x,A,\)’)’ Pilih Nomer (1-4) ?’ Read (*,(BN,I1)’) NOMER C C menuju ke label sesuai dengan nomer yang dipilih GOTO (1000,2000,3000,4000) NOMER BUNYI = 7 Write (*, ‘(1x,A,A)’)’ SALAH PILIH!!, ULANGI’,BUNYI
7
Cont.. C C menghitung isi silinder
Write (*,’(1X,A.\)’) ‘JARI-JARI LINGKARAN ?’ Read (*,’(BN,F7.2)’) R Write (*,’(1X,A.\)’) ‘TINGGI SILINDER ?’ Read (*,’(BN,F7.2)’) T XISI = * R **2 * T Write (*,’(/,1x,A,F7.2)’) ‘ ISI SILINDER = ‘,XISI C menghitung luas segitiga 2000 Write (*,’(1X,A.\)’) ‘PANJANG SISI DASAR ?’ Read (*,’(BN,F7.2)’) S Write (*,’(1X,A.\)’) ‘TINGGI SEGITIGA ?’ XLUAS = 0.5 *S * T Write (*,’(/,1x,A,F7.2)’) ‘ LUAS SEGITIGA = ‘,XLUAS
8
Cont.. C C menghitung isi kubus
3000 Write (*,’(1X,A.\)’) ‘PANJANG SISI KUBUS ?’ Read (*,’(BN,F7.2)’) S XISI = S * S * S Write (*,’(/,1x,A,F7.2)’) ‘ ISI KUBUS = ‘,XISI GOTO 4000 C selesai 4000 CONTINUE END
9
Cont.. RUN : << PILIHAN>> 1. Menghitung isi silinder
2. Menghitung luas segitiga 3. Menghitung isi kubus 4. Selesai Pilih Nomer (1-4) ? 2 Pilih Proses yang Dipilih PANJANG SISI DASAR ? 20.0 TINGGI SEGITIGA ? 15.0 LUAS SEGITIGA =
10
Logical IF Digunakan untuk menyeleksi suatu ungkapan logika atau ungkapan hubungan dan jika kondisinya benar (.TRUE.) maka statement yang mengikutinya akan diproses. Sebaliknya bila ungkapan logika atau ungkapan hubungan yang seleksi tersebut salah (.FALSE.), maka yang proses akan dilanjutkan ke statement lainnya. BU : IF (<expression>) <statement>
11
Contoh CHARACTER*10 JAWAB
WRITE (*,”(1X,A)’) ‘SAYA MEMPUNYAI 8598 KELERENG’ WRITE (*,”(1X,A)’) ‘SAYA SBAGIKAN KEPADA 1228 ANAK’ WRITE (*,”(1X,A)’) ‘TIAP ANAK DAPAT 7 BUAH’ WRITE (*,”(1X,A)’) ‘DAN SISANYA SAYA SIMPAN SENDIRI’ WRITE (*,”(1X,A)’) ‘DALAM ISTILAH KOMPUTER DISEBUT DENGAN’ WRITE (*,”(1X,A)’) ‘MODULO 7 DAN SISA PEMBAGIAN DISEBUT’ WRITE (*,”(1X,A)’) ‘DENGAN REMAINDER’ WRITE (*,*) WRITE (*,”(1X,A)’) ‘BERAPA REMAINDERNYA ? ’ READ (*,’(BN,I1)’) IREMAIN C sebelumnya jawaban anda dianggap salah terlebih dahulu JAWAB = ‘SALAH !!!’ C seleksi jawaban anda, bila benar jawaban anda diisi nilai benar IF (IREMAIN .EQ. 2) JAWAB = ‘BENAR ...’ C tampilkan hasilnya WRITE (*, ‘(/, 1x, A, A10) ‘ JAWABAN ANDA ADALAH ‘,JAWAB END
12
Cont.. SAYA MEMPUNYAI 8598 KELERENG SAYA BAGIKAN KEPADA 1228 ANAK TIAP ANAK DAPAT 7 BUAH DAN SISANYA SAYA SIMPAN SENDIRI DALAM ISTILAH KOMPUTER DISEBUT DENGAN MODULO 7 DAN SISA PEMBAGIAN DISEBUT DENGAN REMAINDER BERAPA REMAINDERNYA ? 2 JAWABAN ANDA ADALAH BENAR
13
Arithmatic IF Digunakan untuk menyeleksi kondisi dari suatu ungkapan arithmatika, apakah bernilai negatif, nol atau positif. BU : IF (<expression>)<slabel1>,<slabel2>,<slabel3>
14
Contoh Write (*,’(1X,A)’) ‘PROGRAM INI AKAN MENGHITUNG NILAI DARI’ Write (*,’(1X,A)’) ‘AKAR-AKAR PERSAMAAN KUADRAT : ‘ Write (*,’(1X,A)’) ‘ 2 ‘ Write (*,’(1X,A)’) ‘ AX + BX + C = 0 ‘ Write(*,*) 1 Write (*,’(1X,A,\)’) ‘ NILAI KOEFISIAN A ? ‘ READ (*,’(F7.2)’) A C C SELEKSI NILAI A TIDAK BOLEH SAMA DENGAN NOL’ IF (A .EQ. 0.0 ) GOTO 1 WRITE (*,’(1X,A,\)’) ‘NILAI KOEFISIEN B ? ‘ READ (*,’(F7.2)’) B WRITE (*, ‘(1X,A,\)’) ‘NILAI KOEFISIEN C ? ‘ READ (*,’(F7.2)’) C WRITE (*,*)
15
Cont.. C C HITUNG NILAI DARI DETERMINAN D = B**2 – 4*A*C C SELEKSI NILAI DARI DETERMINAN IF (D) 100, 125, 150 C NILAI DETERMINAN NEGATIF, BERARTI ADA 2 AKAR KOMPLEK BERLAINAN 100 Z1 = (-B) / (2*A) Z2 = SQRT (-D) / (2*A) WRITE (*,*) ‘ ADA 2 AKAR KOMPLEK BERLAINAN : ‘ WRITE ( *,*) ‘ ’ WRITE (*,’(1X, A, F7.2,A,F7.2,A)’) ‘X1 = ‘, Z1, ‘+’, Z2, ‘i’ WRITE (*,’(1X, A, F7.2,A,F7.2,A)’) ‘X2 = ‘, Z1, ‘-’, Z2, ‘i’ GOTO 1000
16
Cont.. C C NILAI DETERMINAN NOL, BERARTI ADA 2 AKAR REAL KEMBAR 125 X1 = (-B) / (2*A) WRITE (*,*) ‘ ADA 2 AKAR REAL KEMBAR : ‘ WRITE ( *,*) ‘ ’ WRITE (*,’(1X, A, F7.2)’) ‘X1 = X2 = ‘,X1 GOTO 1000 C NILAI DETERMINAN NOL, BERARTI ADA 2 AKAR REAL BERLAINAN 150 X1 = (-B + SQRT (D)) / (2*A) X2 = = (-B + SQRT (D)) / (2*A) WRITE (*,*) ‘ ADA 2 AKAR REAL BERLAINAN : ‘ WRITE ( *,*) ‘ ’ WRITE (*,’(1X, A, F7.2)’) ‘X1 = ‘,X1 WRITE (*,’(1X, A, F7.2)’) ‘X2 = ‘,X2
17
Cont.. C C SELESAI 1000 CONTINUE END
18
Block IF Statement IF blok dapat terdiri dari statement IF-THEN, ELSE. ELSEIF dan ENDIF. BU IF-THEN : IF (<ungkapan>) THEN BU ELSE : ELSE BU ELSEIF : ELSEIF (<ungkapan>) THEN BU ENDIF : ENDIF Digunakan untuk menyeleksi suatu kondisi dan mengambil tindakan apa yang harus dilakukan dalam bentuk blok-blok statement. Statement blok IF harus diawali dengan statement IF-THEN dan diakhiri dengan statement ENDIF.
19
Stat. IF-THEN & ENDIF CHARACTER*10 JAWAB
WRITE (*,”(1X,A)’) ‘SAYA MEMPUNYAI 8598 KELERENG’ WRITE (*,”(1X,A)’) ‘SAYA ’BAGIKAN KEPADA 1228 ANAK’ WRITE (*,”(1X,A)’) ‘TIAP ANAK DAPAT 7 BUAH’ WRITE (*,”(1X,A)’) ‘DAN SISANYA SAYA SIMPAN SENDIRI’ WRITE (*,”(1X,A)’) ‘DALAM ISTILAH KOMPUTER DISEBUT DENGAN’ WRITE (*,”(1X,A)’) ‘MODULO 7 DAN SISA PEMBAGIAN DISEBUT’ WRITE (*,”(1X,A)’) ‘DENGAN REMAINDER’ WRITE (*,*) WRITE (*,”(1X,A)’) ‘BERAPA REMAINDERNYA ? ’ READ (*,’(BN,I1)’) IREMAIN
20
Cont.. C sebelumnya jawaban anda dianggap salah terlebih dahulu
JAWAB = ‘SALAH !!!’ C seleksi jawaban anda, bila benar jawaban anda diisi nilai benar IF (IREMAIN .EG. 2) THEN JAWAB = ‘BENAR ...’ ENDIF C tampilkan hasilnya WRITE (*, ‘(/, 1x, A, A10) ‘ JAWABAN ANDA ADALAH ‘,JAWAB END
21
Stat. IF-THEN, ELSEIF, ELSE, ENDIF
CHARACTER*20 NAMA(5), KET, GARIS*52 REAL*4 NILAI (5), DATA NAMA /’ARIEF’, ‘BUDI’, ‘CHANDRA’, ‘DEWI’, ‘EDI’/ DATA NILAI /95.9, 57.5, 23.5, 90. ,65.75 / C CETAK JUDUL TABEL GARIS = ‘ ’ WRITE (*,’(1X,A)’) ‘ DAFTAR NILAI UJIAN’ WRITE (*,*) WRITE (*,’(1X,A)’) GARIS WRITE (*,’(1X,A)’) ‘NAMA MAHASISWA NILAI KETERANGAN’
22
Cont.. DO 15 I = 1, 5 IF (NILAI (I) .GT. 75.0 ) THEN
KET = ‘ LULUS SANGAT BAIK ‘ ELSEIF (NILAI (I) .GT ) THEN KET = ‘ LULUS BAIK ‘ ELSEIF (NILAI (I) .GT ) THEN KET = ‘ LULUS CUKUP ‘ ELSE KET = ‘ TIDAK LULUS ‘ ENDIF 15 WRITE (*,’(1X,A20,2X, F6.2,2X,A20)’) NAMA (I), NILAI (I), KET WIRTE (*,’(1X,A)’) GARIS END
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.