Anda di halaman 1dari 14

MAKALAH MODUL FOTRAN

JUPITER ERESTA JAYA TEKNIK KIMIA 1206230183

KATA PENGANTAR Alhamdulillahi rAbbil 'alamin. Segala puji hanya milik Allah SWT atas segala nikmat, rahmat dan karunia-Nya yang tak terhingga sehingga penulis dapat menyelesaikan makalah yang berjudul Pengaruh Internet terhadap Generasi Muda. Makalah ini merupakan salah satu syarat dalam memenuhi tugas komputasi numerik. Penulis juga mengucapkan terima kasih yang tak terhingga kepada semua pihak terutama ayah dan ibu tercinta yang telah memberikan dukungan baik moril maupun materil sehingga makalah ini berhasildiselesaikan. Kepada segenap pembimbing yang telah memberikan arahan, dukungan serta kesabaran dalam memberikan bimbingan kepada penulis, rasanya tiada kata yang pantas diucapkan selain terima kasih yangt tak terhingga. Tiada gading yang tak retak andaipun retak jadikanlah sebagai ukiran, begitupun dengan makalah ini masih banyak kekurangan dan jauh dari kesempurnaan. Untuk itu melalui kata pengantar ini penulis sangat terbuka menerima kritik serta saran yang membangun sehingga secara bertahap penulis dapat memperbaikinya. Namun demikian penulis sangat berharap kiranya makalah ini dapat memberikan manfaat dan kontribusi yang besar terhadap perkembangan IT khususnya pengaruhnya baik positif maupun negatif terhadap generasi muda. Generasi yang akan memimpin bangsa ini dimasa yang akan datang, dengan harapan menjadi pemimpin yang amanah dan menguasai teknologi mutakhir. Aamiin.Wassalamualaikum Wr. Wb. Depok, 23 September 2013 Penulis, Jupiter Eresta Jaya

Virtual Lab Sem I 2013 2014 Komputasi Numerik

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 Program Menghitung Luas Trapesium 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 1

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 **********

Jawaban Pertanyaan

1. Struktur Program Fortran


Struktur program fortran dibagi menjadi menjadi lima kolom dan masing masing baris di dalam program berisi: Metacommand

Metacommand merupakan compiler directive (misalnya statement Program seperti pada bahasa pemrograman Pascal). Sifatnya optional, maksudnya tidak harus ada. Metacommand dapat digunakan saat akan berkomunikasi dengan kompiler mengenai informasi tertentu. Comment/komentar

Komentar dapat berupa tulisan bebas apapun yang berguna untuk memberi keterangan tentang program, sehingga memudahkan dalam membaca program tersebut. Berguna bila ingin memodifikasi program atau bila terjadi kesalahan coding. 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 Sambungan dari bari sebelumnya

Sambungan dari baris sebelumnya mempunyai sifat opsional yaitu dapat ditambahkan bila perlu. Aturan Penulisan Fortran 1. Kolom pertama digunakan untuk indicator metacommand atau komentar untuk metacommand digunakan karakter $ sedangkan jika berisi C atau c berarti baris tersebut merupakan suatu komentar. 2. Kolom 1- 5 digunakan sebagai label statement, berupa suatu angka yang letak dari suatu statement. 3. Kolom 6 digunakan sebagai indikator sambungan dari baris sebelumnya. Baris sambungan harus diberi indikator dengan cara meletakkan di kolom ke 6 karakter apapun kcuali blank atau 0. Sampai dengan baris 19 baris sambungan berturutturut dapat dipergunakan. menunjukkan

4. Kolom 7 - 72 digunakan sebagai tempat untuk penulisan rutin program (statement) FORTRAN 5. Kolom 73 - 80 digunakan sebagai dokumentasi yang sifatnya optional. 6. Jumlah kolom (total) per-baris yang dapat ditulisi oleh kodeprogram adalah 80 buah, 7. Jika kolom pertama diisi oleh sembarang karakter (terutama C atau *), maka baris tersebut dialokasikan sebagai comment 8. Penulisan nomor baris (line number) dilakukan pada kolom ke-2 sampai kolom ke-5, dengan ketentuan rapat kanan 9. Penulisan baris-baris yang dapat dieksekusi (executable lines) dimulai pada kolom ke-7 sampai kolom ke-72, 10. Jika baris perintah di atas (butir 4) tidak mencukupi, maka jumlah baris dapat ditambah (sampai maksimum 6 baris) di bawahnya dengan cara: mengisi kolom ke-6 dengan sembarang karakter (dianjurkan diisi oleh karakter *), 11. Kolom ke-73 sampai kolom ke-80 tidak digunakan secara khusus, namun umumnya dapat diisikan oleh para pemrogram dengan kode-kode atau nomor-nomor baris yang tidak dieksekusi selama compiling kode program tersebut, 12. Walaupun ada beberapa compiler yang mentolerir penghapusan STOP (dalam program utama) dan RETURN (dalam subprogram), namun penulisan keduanya tetap dianjurkan, 13. Jumlah baris yang dapat dutilisi oleh kode-kode program tidak dibatasi, namun untuk OS (sistem operasi) berbasis DOS hal ini kemungkinan terbatasi oleh barier memori dasar yang besarnya hanya sekitar 64 KB, 14. Untuk OS berbasis UNIX (midi computer), penulisan program dapat dilakukan dengan menggunakan editor vi; untuk LINUX dan atau Free-BSD (PC), penulisan program dapat dilakukan dengan menggunakan editor vi dan emacs, Untuk OS berbasis DOS dan OS/2, penulisan program dapat dilakukan dengan menggunakan editor edit.com, Untuk OS berbasis WINDOWS, penulisan program dapat dilakukan dengan menggunakan editoreditor notepad, wordpad, ataupun editor lainnya seperti MS-Word, dll.

2. Perbedaan Statement Stop dan End


Stop berfungsi untuk mengakhiri kerja program secara logika dicirikan dari penulisannya yang bebas, sedangakan statement end adalah sebagai batas akhir dari statement program 3. Perbedaan Procedure dan Function Secara Umum, prosedur berguna untuk melakukan kerja sedangkan function berguna untuk menghitung dan memproses suatu nilai Procedure (Prosedur) 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 argumenargumen 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. 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. Program Menghitung Luas Trapesium


integer a,b,c

write(*,*)'Program ini bertujuan untuk mencari luas Trapesium' write(*,*)'Masukkan nilai panjang alas atas, bawah, dan tinggi' write(*,'(A,$)')'panjang alas bawah=' read(*,*)a write(*,'(A,$)')'panjang alas atas=' read(*,*)b write(*,'(A,$)')'tinggi=' read(*,*)t

L= (a+b)*t/2 write(*,*)'Luas Trapesium berdasarkan data anda = ',L stop

end

Program Menghitung Perkalian Matriks INTEGER x(5,5),y(5,5),z(5,5),a,b,c,d,e,f,g,h,i,j WRITE (*,'(24(/))') WRITE(*,*)'Perkalian Matriks ordo 22?' WRITE(*,'(a)')'' a=2 READ(*,*) WRITE (*,'(24(/))') WRITE(*,*)'Perkalian Matriks ordo 22?' WRITE(*,*)'' WRITE(*,*)'Menentukan nilai elemen matriks I' WRITE(*,*)'' DO 10 c=1,a DO 20 d=1,a WRITE(*,*)'nilai elemen [',c,'][',d,'] = ' READ(*,'(I2)')x(c,d) 20 CONTINUE 10 CONTINUE WRITE (*,'(24(/))') WRITE(*,*)'Perkalian Matriks ordo 22?' WRITE(*,*)''

WRITE(*,*)'Menentukan nilai elemen matriks II' WRITE(*,*)'' DO 30 g=1,a DO 40 h=1,a WRITE(*,*)'nilai elemen [',g,'][',h,'] = ' READ(*,*)y(g,h) 40 CONTINUE 30 CONTINUE WRITE (*,'(24(/))') WRITE(*,*) 'Perkalian Matriks ordo 22?' WRITE(*,*)' ' WRITE(*,*)' Matriks I' WRITE(*,*)' ' DO 50 c=1,a DO 60 d=1,a WRITE(*,*)x(c,d) 60 CONTINUE WRITE(*,*) 50 CONTINUE WRITE(*,*) WRITE(*,*)' Matriks II' WRITE(*,*)' -' DO 70 g=1,a

DO 80 h=1,a WRITE(*,*)y(g,h) 80 CONTINUE WRITE(*,*) 70 CONTINUE READ(*,*) WRITE(*,*) WRITE(*,*)' Hasil Perkaliannya' WRITE(*,*)' ' 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(*,*)z(i,j) 120 CONTINUE WRITE(*,*) 110 CONTINUE READ(*,*) STOP

END

5. Memasukan banyak deret 5


a. 5555 4444 3333 2222 1111 b. 5 44 33 22 11 22 33 44 5

c. 1 2 3 4 5 3 4 5 6 5 6 7 7 8 9