You are on page 1of 7

SOAL 1. Jelaskan Struktur Program Fortran dan Aturan penulisan dalam Fortran ! 2.

Apa perbedaan Statement Stop dan End! 3. Apa perbedaan Procedure dan Function! 4. Buatlah program Fortran a. Program Menghitung Luas Trapesium b. Program Perkalian Matriks 5. Apa hasil (output) dari program berikut ini! A. PROGRAM 1, Bila banyaknya deret 5 INTEGER A,B,C WRITE (*,(24(/))) WRITE (*,(A,\)) Masukkan Banyak Deret = READ (*,(I2)) N A=N B=1 DO 10 I=1,N DO 20 J=1,A WRITE (*,(A,\)) 20 CONTINUE WRITE (*,(I1,\,A,I1)) A, ,A DO 30 J=1,B WRITE (*,(A,\)) 30 CONTINUE WRITE (*,(I1,\,A,I1)) A, ,A WRITE (*,*) A=A-1 B=B+2 10 CONTINUE STOP END B. Program 2 Bila banyaknya deret 5 INTEGER A,B,C WRITE (*,(24(/))) WRITE (*,(A,\))'Masukkan Banyaknya Deret = READ (*,(I2)) N A=N C=N-1 B=1 DO 10 I = 1,N DO 20 J = 1,A WRITE (*,(A,\)) 20 CONTINUE IF (A .EQ. N) THEN WRITE (*,(I1)) A ELSE WRITE (*,(I1,\)) A

DO 30 K=1,B WRITE (*,(A,\)) 30 CONTINUE WRITE (*,(I1)) A B=B+2 ENDIF A=A-1 10 CONTINUE A=2 B=B-4 IF (N .NE. 1) THEN DO 40 I=1,C DO 50 J=1,A WRITE (*,(A,\)) 50 CONTINUE IF (C .EQ. 1) THEN WRITE (*,(I1)) A ELSE WRITE (*,(I1,\)) A DO 60 K=1,B WRITE (*,(A,\)) 60 CONTINUE WRITE (*,(I1)) A ENDIF A=A+1 B=B-2 C=C-1 40 CONTINUE ENDIF STOP END C. Program 3 Bila banyaknya deret 5 INTEGER A,B,C WRITE (*,(24(/))) WRITE (*,(A,\)) Masukkan Jumlah Deret = READ (*,(I2)) N A=N DO 10 I=1,N B=I DO 20 J=1,A WRITE (*,(I2,\,A)) B, B=B+2 20 CONTINUE WRITE(*,*) A=A-1

10 CONTINUE STOP END ********* Selamat Mengerjakan ********** Keterangan : 1. Tugas Diatas dikumpulkan dalam bentuk print dan di jilid. 2. Tugas ini adalah tugas Peorangan bukan tugas kelompok 3. Bisa dikumpulkan perkelas atau perorangan ( Nanti akan mendapatkan tanda / bukti mengumpulkan tugas ) JAWABAN 1. Struktur Program Fortran dan Aturan Penulisan dalam Fortran - Struktur Program Fortran : Dibagi menjadi 5 bagian kolom dan tiap baris di dalam program dapat berisi : o Metacommand : Tidak harus ada dan hanya diperlukan bila ingin berkomunikasi dengan compiler o Komentar : Komentar bebas untuk keterangan program dan keterangan lainnya o Statement : Perintah-perintah program dalam bentuk syntax (atau tata bahasa dalam pemrograman) Element statement antara lain : konstanta, nama, operator, verb, ungkapan unit specifier, format specifier o Sambungan dari statement baris sebelumnya - Aturan Penulisan Fortran : 1. Kolom pertama merupakan Komentar atau metacommand (C, *, $). 2. Kolom 1 sampai 5 untuk penulisan label statement berupa angka. 3. Kolom 6 untuk indikasi sambungan dari baris sebelumnya. 4. Kolom 7 sampai 72 untuk penulisan Statement FORTRAN. 5. Kolom 73 sampai 80 tidak digunakan (Untuk Komentar bebas) 2. Perbedaan Stop dengan End - Bentuk Umum : STOP STOP berfungsi menghentikan proses operasi pengerjaan program secara logika dan cirinya penulisannya bebas, yang merupakan indikator bahwa operasi program secara logika telah berakhir. Pada umumnya statement STOP selalu mengiringi statement END didalam penulisan bahasa pemrograman FORTRAN. - Bentuk Umum : {statement} END Dapat berupa ENDCASE, ENDFOR, ENDIF, ENDWHILE [unit] END digunakan untuk memberitahu komputer sebagai batas akhir dari statement program.

Statement END harus diletakkan paling akhir di suatu program, tidak boleh diberi label statement dan harus berdiri sendiri tidak boleh digabung dengan statement lainnya 3. Perbedaan Procedure dan Function : Procedure (Prosedur) Procedure adalah suatu bagian yang terpisah dari program dan dapat diaktifkan dimanapun didalam program. Procedure dibuat jika program akan dibagi menjadi beberapa blok modul. Procedure dibuat didalam program dengan cara mendeklarasikannya dibagian deklarasi procedure. Kata cadangan PROCEDURE digunakan sebagai judul dari bagian deklarasi procedure, diikuti oleh identifier yang merupakan nama procedurenya dan secara optional dapat diikuti lagi oleh kumpulan parameter yang diakhiri dengan titik koma. Bentuk Umum : Procedure ( statement 1) ( statement 2) ( statement 3) Function (Fungsi) o Bersifat otonom, sehingga nama-nama variabel didalam subprogram boleh sama dengan namanama variabel didalam program pemanggil dengan tidak terjadi kesalahan, oleh karena memang pada prinsipnya terpisah. Boleh melakukan operasi READ atau WRITE, boleh memanggil subprogram yang lain. o Dipanggil langsung dengan namanya. o Argumen-argumen hanya merupakan input, output keluar melalui nama subprogram function. Sehingga akibatnya, input bisa banyak(sebab argumen-argumen bisa banyak), tetapi output selalu hanya satu yaitu melalui nama function. o Boleh mempunyai lebih dari satu statement RETURN, maupun juga statement STOP. o Hubungan antar argumen dalam program pemanggil dan program dipanggil adalah hubungan atas dasar posisi, bukan atas dasar nama variabel. o Argumen-argumen dapat berupa konstanta maupun variabel baik real ataupun integer. Memiliki bentuk umum : FUNCTION nf(arg1, arg2,argm) Keterangan : nf : nama subprogram function, sekaligus sebagai nama variabel outputnya, apabila namanya real maka sifat functionya real, begitu pula jika integer Arg1,arg2,argm : argumen-argumen yang dikirim dari program pemanggil kesubprogram function. Argumen boleh berupa variabel ataupun konstanta, baik real maupun integer. 4. a. Program menghitung Luas Trapesium integer a,b,c,d,e write (*,(24(/))) write(*,(a))'- write(*,(a))'Menghitung Luas Trapesium

write(*,(a))'- write(*,(a,\))'Masukkan Alas Bawah : read(*,(I2))b write(*,(a,\))'Masukkan Alas Atas : read(*,(I2))c write(*,(a,\))'Masukkan Tinggi : read(*,(I2))d e = (b+c) * d / 2 write(*,*) write(*,(a,F3,\))'Luas Trapesium Adalah : ,e stop end b. Program Menghitung Perkalian Matrix integer x(5,5),y(5,5),z(5,5),a,b,c,d,e,f,g,h,i,j 1 WRITE (*,(24(/))) write(*,(a))'Perkalian Matriks ordo 22 write(*,(a))' a=2 read(*,*) WRITE (*,(24(/))) write(*,(a))'Perkalian Matriks ordo 22 write(*,(a))' write(*,(a))'Menentukan nilai elemen matriks I write(*,(a))' DO 10 c=1,a DO 20 d=1,a write(*,(a,I1,a,I1,a,\))'nilai elemen [',c,'][',d,'] = read(*,(I2))x(c,d) 20 CONTINUE 10 CONTINUE WRITE (*,(24(/))) write(*,(a))'Perkalian Matriks ordo 22 write(*,(a))' write(*,(a))'Menentukan nilai elemen matriks II write(*,(a))' DO 30 g=1,a DO 40 h=1,a write(*,(a,I1,a,I1,a,\))'nilai elemen [',g,'][',h,'] = read(*,(I2))y(g,h) 40 CONTINUE 30 CONTINUE WRITE (*,(24(/))) write(*,(a)) Perkalian Matriks ordo 22 write(*,(a))

write(*,(a)) Matriks I write(*,(a)) DO 50 c=1,a DO 60 d=1,a write(*,(I2,a,\))x(c,d), 60 CONTINUE write(*,*) 50 CONTINUE write(*,(a,/)) write(*,(a)) Matriks II write(*,(a)) - DO 70 g=1,a DO 80 h=1,a write(*,(I2,a,\))y(g,h), 80 CONTINUE write(*,*) 70 CONTINUE read(*,*) write(*,(a,/)) write(*,(a)) Hasil Perkaliannya write(*,(a)) DO 90 i=1,a DO 100 j=1,a k=1 z(i,j)=(x(i,k)*y(k,j)) + (x(i,k+1)*y(k+1,j)) 100 CONTINUE 90 CONTINUE DO 110 i=1,a DO 120 j=1,a write(*,(I3,a,\))z(i,j), 120 CONTINUE write(*,*) 110 CONTINUE stop end 5. a. Masukkan Banyak Deret = 5 5555 4444 3333 2222 1111 b. Masukkan Banyaknya Deret = 5 5 44

33 22 11 22 33 44 5 c. Masukkan Jumlah Deret = 5 13579 2468 357 46 5

You might also like