• All
  • Category 1
  • Category 2
gravatar

Virtual-lab Matematika Lanjut 2

Matematika Lanjut 2
Virtual Lab ATA 2011 – 2012

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 nama-nama 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 2×2′
write(*,’(a)’)'————————–’
a = 2
read(*,*)
WRITE (*,’(24(/))’)
write(*,’(a)’)'Perkalian Matriks ordo 2×2′
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 2×2′
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 2×2′
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
5 5 5 5
4 4 4 4
3 3 3 3
2 2 2 2
1 1 1 1

b. Masukkan Banyaknya Deret = 5
5
4 4
3 3
2 2
1 1
2 2
3 3
4 4
5

c. Masukkan Jumlah Deret = 5
1 3 5 7 9
2 4 6 8
3 5 7
4 6
5

komentanya yah:)