Modul Pengenalan Fortran 2015.doc

19
Pengenalan Bahasa Fortran MODUL I PENDAHULUAN, PROGRAM KONDISIONAL DAN ITERASI Tujuan Praktikum Mengetahui bagaimana struktur penulisan dalam program berbahasa FORTRAN. Mengetahui cara penggunaan syntax kondisional dan iterasi. Mengetahui tujuan penggunaan dan aplikasi program kondisional dan iterasi. 1.1 Pendahuluan 1. Tata Cara Penulisan Program Bahasa FORTRAN a) Struktur Penulisan Struktur Penulisan bahasa Fortran memiliki aturan tersendiri. 1 2 3 4 5 6 7 8 7 2 7 3 Kolom 1 digunakan untuk menulis pernyataan C (comment). Semua pernyataan di sepanjang baris itu di tidak akan dieksekusi. Kolom 1 – 5 digunakan untuk label pernyataan pengulangan dan format yang berbentuk angka. Kolom 6 disediakan untuk tanda sambung yang menghubungan baris sebelumnya dan baris sesudahnya. Biasanya diisi dengan karakter angka. Kolom 7 – 72 adalah kolom untuk menuliskan pernyataan Fortran. Tim Asisten Metode Numerik 2015 – Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur, Rizki,Aderia

Transcript of Modul Pengenalan Fortran 2015.doc

Pengenalan Bahasa Fortran

MODUL I

PENDAHULUAN, PROGRAM KONDISIONAL DAN ITERASITujuan Praktikum

Mengetahui bagaimana struktur penulisan dalam program berbahasa FORTRAN.

Mengetahui cara penggunaan syntax kondisional dan iterasi.

Mengetahui tujuan penggunaan dan aplikasi program kondisional dan iterasi.

1.1 Pendahuluan1. Tata Cara Penulisan Program Bahasa FORTRAN

a) Struktur Penulisan

Struktur Penulisan bahasa Fortran memiliki aturan tersendiri.

123456787273

Kolom 1 digunakan untuk menulis pernyataan C (comment). Semua pernyataan di sepanjang baris itu di tidak akan dieksekusi.

Kolom 1 5 digunakan untuk label pernyataan pengulangan dan format yang berbentuk angka.

Kolom 6 disediakan untuk tanda sambung yang menghubungan baris sebelumnya dan baris sesudahnya. Biasanya diisi dengan karakter angka.

Kolom 7 72 adalah kolom untuk menuliskan pernyataan Fortran.

Kolom 73 dan seterusnya diabaikan oleh computer (tidak dieksekusi).

b) Jenis Data

Ada lima jenis data standard yang di kenal dalam bahasa Fortran seperti pada table di bawah ini.

Table 1, Deklarasi jenis data

Jenis DataDeklarasi

IntegerInteger

Ril (presisi tunggal dan ganda)Real, Real*4, Real*8, double precision

KompleksComplex

LogikaLogical

KarakterCharacter*n ( 1 < n < 32767 )

Satu jenis lain yang hanya pada MS FORTRAN, yaitu jenis Record, merupakan perkembangan mutakhir.

Pada awal perkembangannya, Fortran secara otomatis menganggap setiap variable yang namanya diwakili huruf I, J, K, L, M, atau N (abjad I N) akan dianggap sebagai variable integer, dan variable yang diawali dengan huruf yang lainnya di anggap sebagai variable berjenis Real.

Pembagian jenis data berdasarkan huruf awal saja seperti di atas ada kalanya tidak di kehendaki. Untuk menyiasati hal tersebut adalah dengan menyatakan variable tersebut sebagai variable Real, contoh variable momen secara langsung merupakan variable integer, maka untuk menjadikannya real adalah :

Real momen

Atau

Real*4 momen

Jenis data yang baru ada sejak Fortran 77 adalah jenis karakter. Untuk data karakter, huruf besar dan huruf kecil tidak dipandang sama. Misalnya karakter ABC tidaklah sama dengan AbCPernyataan Write akan menulis tulis nama file yang akan di buka di layer computer, sedangkan pernyataan Read meminta data untuk variable nama file. Untuk menjawabnya harus menggunakan tanda kutip, misal coba.dat. Pernyataan Open seperti di atas berarti membuka file bernama coba.dat (pada contoh ini) dengan nomor unit 3. Selesai program ini dijalankan, pada file coba.dat akan tertulis ini di dalam file unit 3.

Cara lain untuk menyatakan jenis variable adalah dengan pernyataan Implicit. Sebagai contoh, pernyataan Implicit di dalam unit program Program Latihan berikut :

Program Latihan

Implicit Real (A-D,K), Integer (I,N)

.

.

End

Mengandung arti bahwa di dalam unit program Latihan tersebut, semua variable yang di awali dengan huruf A, B, C, D, dan K adalah varibel ril, dan semua varibel yang di awali dengan huruf I dan N adalah Integer.

Klasifikasi data dalam bahasa Fortran

data

data numeris

data alphabetis

data realdata integer

dengan melihat pembagian jenis data tersebut dapat dilihat kemana orientasi penggunaan bahasa fortran tersebut.c) Bagan Alir (Flow Chart)

Flow Chart adalah diagram yang disusun untuk menyederhanakan arus logika suatu program. Untuk menggambarkan bagan arus dipergunakan symbol-simbol sebagai berikut :

Simbol

Penjelasan

1.Tanda arah aliran

2.

Proses membaca input program

3.

Proses membaca atau menulis dari suatu media

4.

Proses menulis ke printer

5.

Suatu proses

6.

Proses pengecekan

7.

Tanda mulai, atau tanda akhir

8.

Tanda sambung

Contoh penggunaan flow chart pada permasalahan sederhana berikut :

Suatu segitiga ABC memiliki sisi-sisi a=5cm, b=4cm, c=6cm, tentukan nilai sudut a ?

Flow chart

penjelasan :

mula-mula dibaca input/masukan beerupa nilai a, b, dan c kemudian dihitung sudA dengan rumus yang telah ditentukan. Dan akhirnya mencetak hasilnya.2. Program Sederhana Statement Program

Sebuah program dapat diberi nama di awal program tersebut dengan statement program yang single.

Layout Program

Layout Program pada fortran terdiri dari 80 kolom dengan spesifikasi sebagai berikut :

KolomPenggunaan

1-5Statemen label

6Penyambung karakter atau dapat dikosongkan

7-72Statemen FORTRAN

73-80Tidak digunakan

END dan STOP

Setiap program harus mengandung statemen END, yang menandakan akhir sebuah program. Setelah statemen end tidak boleh ada perintah-perintah maupun tulisan lain.

Statemen STOP berfungsi untuk menghentikan eksekusi dari program tersebut. Pada FORTRAN 77, statemen END dapat berfungsi sebagai STOP jika eksekusi tersebut berada di akhir program. Namun, statemen STOP dapat ditulis lebih dahulu untuk mengeksekusi di bagian lain selain akhir program.

Comments

Huruf C atau tanda seru (!) pada kolom 1 membuat kompiler mengabaikan tulisan pada baris tersebut yang dapat digunakan sebagai komentar untuk memberi informasi kepada semua orang yang membaca program tersebut.

Contoh program:

Program Program_Pertama

write(*,*)ini program pertama Saya

write(*,*)

stop

end

Program Biodata

write(*,*)'Nama: .....'

write(*,*)'NIM: .....'

write(*,*)'Alamat : ....'

write(*,*)'Jenis Kelamin: .....'

write(*,*)'No. Telp.:.....'

stop

end

Program Membedakan_Bilangan_Real_dan_Integer

data a,b,c,d,e/2.,4.,6.,8.,10./

data i,j,k,l,m/2,4,6,8,10/

cMenampilkan nilai awal masing-masing data

write(*,*)'Nilai awal :'

write(*,*)'a=',a

write(*,*)'b=',b

write(*,*)'c=',c

write(*,*)'d=',d

write(*,*)'e=',e

write(*,*)'i=',i

write(*,*)'j=',j

write(*,*)'k=',k

write(*,*)'l=',l

write(*,*)'m=',m

cOperasi Matematika

cx dan y adalah operasi bilangan real

x = 2/b+a*c/4*d-e

y = (2/(a+b)*c)/(4*(d-e))

cix dan iy adalah operasi bilangan integer

ix = 2/j+i*k/4*l-m

iy = (2/(i+j)*k)/(4*(l-m))

cMenampilkan hasil operasi

write(*,*)'x=',x

write(*,*)'y=',y

write(*,*)'ix=',ix

write(*,*)'iy=',iy

cmengakhiri eksekusi

stop

cmengakhiri program

end

3. Penggunaan Operator Contoh operator yang biasa digunakan:

OperatorKegunaan (aritmatik)

*Perkalian

/Pembagian

+Penjumlahan

-Pengurangan

**Pangkat

modsisa hasil pembagian

OperatorKegunaan (pembanding)

EqSama dengan

NeTidak sama dengan

LtKurang dari

GtLebih dari

LeKurang dari sama dengan

GeLebih dari sama dengan

OperatorKegunaan (logika)

orAtau

andDan

OperatorKegunaan (penugasan)

=Menyatakan nilai suatu variabel

Contoh perhitungan dengan operator aritmatik:

Program Waktu_tidur

integer a,b,x,y,z,t,t1

write(*,*)'Masukkan lamanya dirimu tidur dalam 1 hari (jam,menit)'

read(*,*)a,b

cx adalah jumlah menit dalam 1 hari

x=24*60

cy adalah lamanya tidur dalam 1 hari (menit)

y=(a*60)+b

cz adalah lamanya tidak tidur dalam 1 hari (menit)

z=x-y

ct adalah hasil pembagian antara z dan jumlah menit dalam 1 jam

t=z/60

ct1 adalah sisa hasil pembagian antara z dan jumlah menit dalam 1 jam

t1=mod(z,60)

write(*,*)'Maka, dalam 1 hari, dirimu tidak tidur selama ='

write(*,*)t,' jam',t1,' menit'

stop

end

1.2 Program Kondisional dan Iterasi1. Program Kondisional Pemakaian Select Case

PROGRAM Konversi Nilai Huruf Menjadi Angka

character N,jwb

integer Nilai

7write(*,*)'Masukkan nilai huruf='

read(*,*)N

Select case (N)

case('A')

Nilai=4

write(*,*)'Nilai anda',Nilai

case('B')

Nilai=3

write(*,*)'Nilai anda',Nilai

case('C')

Nilai=2

write(*,*)'Nilai anda',Nilai

case('D')

Nilai=1

write(*,*)'Nilai anda',Nilai

case('E')

Nilai=0

write(*,*)'Nilai anda',Nilai

endselect

write(*,*)'Dilanjutkan?(Y/N)'

read(*,*)jwb

if(jwb.eq.'Y')then

go to 7

endif

stop

end

TUGAS :

1.Bagaimana bentuk flowchart untuk syntax SELECT CASE dan jelaskan serta analisis maksud dari program diatas!

2.Kendala apa yang ditemukan pada program diatas? Beri penjelasan!2. Program Kondisional Pemakaian If-Then-ElseProgram menentukan jenis segitiga

real s1,s2,s3

7write(*,*)'Masukkan sisi 1 dari segitiga ='

read(*,*)s1

write(*,*)'Masukkan sisi 2 dari segitiga ='

read(*,*)s2

write(*,*)'Masukkan sisi 3 dari segitiga ='

read(*,*)s3

if ((s1.le.0).or.(s2.le.0).or.(s3.le.0)) then

write(*,*)'Data salah tidak bisa diproses'

go to 7

elseif ((s1.eq.s2).and.(s2.eq.s3)) then

write(*,*)'Termasuk segitiga sama sisi'

elseif (((s1.eq.s2).and.(s1.ne.s3)).or.((s2.eq.s3).and.(s2.ne.s1)).o

5r.((s3.eq.s1).and.(s3.ne.s2)))then

write(*,*)'Termasuk segitiga sama kaki'

elseif ((s1.ne.s2).and.(s2.ne.s3)) then

write(*,*)'Termasuk segitiga sembarang'

endif

stop

end

TUGAS :

1.Bagaimana bentuk flowchart untuk syntax IF-THEN-ELSE dan jelaskan serta analisis maksud dari program diatas!

2.Apa perbedaan antara perintah ELSE dengan ELSEIF?

3.Kendala apa yang ditemukan pada program diatas? Beri penjelasan!2.3.Penggunaan Kondisional If-Then Sebagai Loop

Program if_then_bisa_buat_loop

character q

10write(*,*)'Masukkan bilangan yang akan dipangkatkan:'

read(*,*)num

i=1

pow=num

20if (i.lt.10) then

pow=pow*num

i=i+1

write(*,*)num,' pangkat',i,' adalah',pow

goto 20

endif

write(*,*)'Coba lagi? (y/n)'

read(*,*)q

if ((q.eq.'y').or.(q.eq.'Y')) then

goto 10

endif

stop

end

TUGAS :

1.Bagaimana bentuk flowchart untuk dan jelaskan serta analisis maksud dari program diatas!

2.Apa perbedaan antara syntax IF-THEN-ELSE dengan IF-THEN?3.Cobalah untuk membuat program iterasi :

X / Y dengan Y dari 1 sampai 20 dan X di masukkan dari keyboard

dengan menggunakan if-then seperti program diatas!

2.4.Program Iterasi Do-Enddo

program cara_pake_iterasi_do_enddo

write(*,*)'Masukkan bilangan yang dipangkatkan:'

read(*,*)num

pow=num

do i=1,9

pow=pow*num

write(*,*)num,' pangkat',i+1,' adalah',pow

enddo

stop

end

TUGAS :

1.Bagaimana bentuk flowchart untuk program di atas dan jelaskan serta analisis maksud dari program diatas!

2.Cobalah untuk membuat program iterasi :

X / Y dengan Y dari 1 sampai 20 dan X di masukkan dari keyboard

dengan menggunakan do-enddo seperti program diatas!

Kata Bijak :It is not enough to have a good mind,

the main thing is to use it well.

( Tidaklah cukup hanya memiliki pemikiran yang bagus,

Yang lebih penting, adalah bagaimana menggunakkannya dengan baik. )

= Rene Descartes =MODUL II

SUBPROGRAM

Tujuan praktikum

Mengetahui cara penggunaan subprogram (fungsi dan subrutin)

Dalam suatu program yang panjang terkadang dipakai subprogram untuk menghindari penulisan kode yang sama secara berulang-ulang. Subprogram ada dua macam : subprogram fungsi dan subprogram subroutine.

1. Subprogram Fungsi

Subprogram fungsi dipanggil atau dipakai dengan cara menuliskan nama fungsi disertai argument yang sesuai. Nama argument pada pernyataan pemanggilan tidak perlu sama dengan parameter yang dipakai pada waktu pendefinisian fungsi. Argument boleh berupa konstanta, nama peubah, ekspresi hitungan atau nama subprogram lainnya. Yang terpenting adalah argument-argumen harus memiliki padanan satu-satu pada dengan urutan dan tipe data parameter pada deklarasi pendefinisian fungsi.

Struktur fungsi :

FUNCTION name(argument list)

Declaration part

Subprogram statement

END

Cara pemanggilan :

Menyebutkan nama fungsi dan argumennya.

Contoh : N=name(argument list)Contoh Program :

Program luas

cpendeklarasian variabel

real a,b,c,z

cpemasukan nilai

write(*,*)'Masukkan nilai a:'

read(*,*)a

write(*,*)'Masukkan nilai b:'

read(*,*)b

write(*,*)'Masukkan nilai c :'

read(*,*)c

cproses menghitung

z=F(a)-F(b)+F(c)

write(*,*)'Luas daerah =',z

end

cfungsi

real function F(x)

F=100/(x)

end

2. Subprogram Subroutine

Subroutine digunakan apabila diperlukan perhitungan lebih dari satu nilai selain itu juga digunakan untuk melakukan suatu tugas tertentu.

Pernyataan pertama dalam subroutine harus diawali dengan deklarasi subroutine.

SUBROUTINE name(argument-list)Nama suatu subroutine tidak dikaitkan dengan suatu nilai, karena nama subroutine tidak dikaitkan dengan sutu nilai maka diperlukan suatu pernyataan khusus yaitu pernyataan Call.

CALL name(argument-list)

Subroutine tidak selalu memerlukan parameter sehingga dibolehkan tidak mempunyai parameter. Sebaliknya fungsi paling sedikit harus memiliki satu parameter. Syntax dari subroutine subprogram mirip dengan subprogram fungsi.

Struktur subroutine :

SUBROUTINE statement

Declaration part

Subprogram statement

END

Cara pemanggilan :

Menuliskan pernyataan Call.

Contoh : CALL name(argument list)Contoh program :

Program Menghitung

cPenentuan cara

1write(*,*)'Tentukan cara yang akan Anda pilih'

write(*,*)'Tekan 1 untuk penambahan'

write(*,*)'Tekan 2 untuk pengurangan'

cPemilihan subroutine

read(*,*)A

if(A.eq.1) then

call Tambah(a,b,c)

else if(A.eq.2) then

call Kurang(a,b,c)

else

write(*,*)'Tekan angka yang tepat'

goto 1

end if

stop

end

clist subroutine

SUBROUTINE Tambah(a,b,c)

cinteger a,b,c

write(*,*)

write(*,*)'Anda akan melakukan operasi penambahan'

write (*,*)'Masukkan nilai a'

read (*,*)a

write (*,*)'Masukkan nilai b'

read (*,*)b

c=a+b

write(*,*)

write(*,*)'hasil jumlah =',c

stop

return

end

SUBROUTINE Kurang(a,b,c)

cinteger a,b,c

write(*,*)

write(*,*)'Anda akan melakukan operasi pengurangan'

write (*,*)'Masukkan nilai a'

read (*,*)a

write (*,*)'Masukkan nilai b'

read (*,*)b

c=a-b

write(*,*)

write(*,*)'hasil kurang =',c

stop

return

end

Kata Bijak :

Wisest is he who knows he does not know

(Orang yang paling bijaksana adalah orang yang sadar bahwa ia tidak tahu)

= The wise one =

selesai

Baca a,b,c

hitung

sudA= cos-1[(b2+c2-a2)/2bc]

Mulai

Tulis sudA

sudA

Tim Asisten Metode Numerik 2015 Ridho,Ikhsan, Hikari,Lucki, Chandra, Nur, Rizki,Aderia