Download - Materi Tutorial 1b FORTRAN
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
1
Materi Tutorial 2 Pemrograman Komputer dengan Fortran
Copyright Tim Asisten Metode Numeris dan Pemrograman Komputer 2012
1. Struktur Program
Dalam suatu pemrograman komputer umumnya dikenal istilah dengan main
program dan subprogram. Main program merupakan program utama dimana seluruh
proses perhitungan diintegrasikan dan diselesaikan. Di dalam suatu main program dapat
terdiri dari satu atau lebih subprogram. Subprogram merupakan program otonom atau
mandiri yang dapat dipanggil berulang kali oleh main program atau subprogram yang lain.
Agar lebih jelasnya dapat dilihat bagan hubungan main program dan subprogram pada
Gambar 1.
Main
Program
Subprogram1 Subprogram2 Subprogram3
Sub-subprogram1 Sub-subprogram2
Gambar 1. Hubungan antara main program dan subprogram.
Kaidah umum (tidak diharuskan) dalam struktur main program pada pemrograman
komputer terdiri dari beberapa bagian seperti Input Data, Proses Utama, Looping,
Display Hasil Program, dan pemanggilan Subprogram.
Seluruh nilai variabel yang sifatnya tetap atau konstan umumnya dimasukkan ke dalam
satu bagian yang disebut sebagai Input Data
Bagian perhitungan dan/atau pemanggilan subprogram untuk membantu perhitungan
dituliskan pada bagian proses.
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
2
Subprogram umumnya dituliskan pada lain dari main program dan bersifat sendiri atau
otonom. Di dalam Fortran subprogram dikenali dengan statemen SUBROUTINE yang
akan dibahas pada bagian yang lain.
Proses perhitungan iterative atau berulang dikenal dengan istilah Looping.Beberapa
statemen yang digunakan untuk Looping seperti DO dan WHILE. Selain Looping juga
dikenal istilah percabangan program atau proses membagi program untuk menghitung
beberapa proses dengan kondisi tertentu. Di dalam Fortran proses percabangan ini dapat
dilakukan dengan menggunakan statemen IF.
Ada kalanya suatu hasil pemrograman ingin ditampilkan dalam suatu jendela khusus.
Pada Fortran fasilitas yang digunakan untuk menulis/ menampilkan hasil hitungan adalah
WRITE sedangkan untuk mengatur format tampilan digunakan statemen FORMAT
Secara umum struktur pemrograman dapat dilihat pada Gambar 2.
Input
Data
ProsesSubproses/
Subprogram
Looping
Display
Akhir Program
Mulai Program
Gambar 2. Struktur pemrograman secara umum
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
3
2. Pembuatan subprogram
Seperti yang telah disebutkan sebelumnya bahwa sebuah subprogram di dalam
FORTRAN dikenali dengan menggunakan statemen SUBROUTINE. Kaidah penulisan
SUBROUTINE pada FORTRAN untuk M argumen adalah sebagai berikut:
SUBROUTINE NAMA_SUBROUTINE(ARG_1,ARG_2,,ARG_M)
Penjelasan
SUBROUTINE : merupakan pernyataan bahwa bagian yang ditulis setelah baris ini
merupakan bagian dari subroutine dengan nama NAMA_SUBROUTINE
NAMA_SUBROUTINE : merupakan identifikasi subroutine yang berfungsi sebagai
nama panggil dan membedakan antara subroutine satu dengan subroutine yang lain.
Nama subroutine mengikuti aturan penamaan variabel
ARG_1,ARG_2,,ARG_M : merupakan argumen-argumen yang masuk dan keluar
dari sebuah subroutine.
Akhir dari statemen subroutine umumnya terdiri dari dua statemen yaitu:
RETURN
END
Statemen RETURN berfungsi untuk mengembalikan arus program dari program
terpanggil kepada program pemanggil
3. Pemanggilan Subprogram
Untuk memanggil sebuah subprogram digunakan statemen CALL dengan kaidah
penulisan pada Fortran adalah sebagai berikut:
CALL NAMA_SUBROUTINE(ARG_1,ARG_2,,ARG_M)
Penjelasan
CALL : merupakan pernyataan yang memanggil subprogram bernama
NAMA_SUBROUTINE
NAMA_SUBROUTINE : merupakan identifikasi subroutine.
ARG_1,ARG_2,,ARG_M : merupakan argumen-argumen yang masuk dan keluar
dari sebuah subroutine.
NOTE:
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
4
Yang perlu diingat dalam penggunaan CALL adalah jumlah argumen yang digunakan
harus sama persis pada saat pemanggilan dengan argumen yang digunakan pada
subroutine.
Hubungan argumen-argumen antara SUBROUTINE dengan CALL didasarkan pada
posisi argument tersebut bukan berdasarkan nama dari argumen.
Contoh:
Buatlah sebuah program konversi suhu (T) dari Celcius (C) menjadi Fahrenheit (F)
dengan menggunakan rumus sebagai berikut:
32)(5
9)( CTFT
Algoritma pemrograman :
1. Masukkan data T dalam C
2. Hitung T(F) dengan menggunakan subprogram KONVERSI_SUHU dengan
argument masuk berupa T(C) dan argumen keluar berupa T(F)
3. Buat subroutine KONVERSI_SUHU
4. Tampilkan hasil perhitungan dengan WRITE dan FORMAT
Dengan algoritma tersebut disusun bahasa pemrograman dengan Fortran sebagai berikut
C Konversi suhu(T) dari T(C) menjadi T(F)
C dengan C adalah Celcius dan F adalah Fahrenheit
C deklarasi data dan variabel
REAL TC,TF
TC=30
C hitung T(F)
CALL KONVERSI_SUHU(TC,TF)
C tampilkan hasil hitungan
WRITE(*,1)TC,TF
1 FORMAT(2X,F6.2, C = ,F6.2, F)
END
C penulisan subroutine
SUBROUTINE KONVERSI_SUHU(TC,TF)
TF=9/5*TC+32
RETURN
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
5
END
4. Operator logika
Operator-operator logika yang digunakan dalam Fortran diberikan pada tabel 1.
Tabel 1. Operator Logika pada Fortran
Pernyataan logic Notasi
matematisnya
Statemen pada
Fortran
Sama dengan = .EQ.
Tidak sama dengan .NE. Lebih kecil dari < .LT.
Lebih kecil dari atau sama dengan .LE. Lebih besar dari > .GT.
Lebih besar dari atau sama dengan .GE. Atau .OR.
Dan .AND.
Bukan .NOT.
Operator-operator tersebut umumnya akan digunakan pada pembuatan statemen kontrol
5. Statemen kontrol
Statemen kontrol yang digunakan pada Fortan berupa:
5.1. GO TO
a. GO TO tanpa syarat
Bentuk Umum :
GO TO n
n merupakan label dari suatu instruksi selanjutnya yang harus dilakukan
Contoh
Algoritma perhitungan:
1. Baca nilai A dan B
2. Hitung nilai C=A*B
3. Tuliskan C
4. Kembali menuju 1.
5. Selesai
Program pada Fortran
REAL A,B
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
6
10 WRITE(*,*)'Masukkan nilai A'
READ(*,*)A
WRITE(*,*)'Masukkan nilai B'
READ(*,*)B
C=A*B
WRITE(*,20)C
20 FORMAT ('Hasil perkalian A*B=',F12.4)
GO TO 10
END
Hasilnya adalah perhitungan yang terus berulang meminta masukkan berupa nilai A
dan nilai B. Untuk mengakhiri hitungan gunakan perintah CTRL+C pada jendela IDE
b. GO TO dengan hitungan
Bentuk Umum:
GO TO (n1,n2,,nk),var
n1,n2,,nk merupakan nomor statemen-statemen hitungan yang akan dituju dan
digarap instruksinya sesuai dengan harga var
var merupakan variabel integer
Contoh
Algoritma perhitungan:
1. Baca nilai A,B,C,D,X,N
2. Apabila N=1 maka hitung X dengan persamaan (a) hingga (d)
Apabila N=2 maka hitung X dengan persamaan (b) hingga (d)
ApabilaN=3 maka hitung X dengan persamaan (c) dan (d)
Apaila N=4 maka hitung X dengan persamaan (d)
3. Hitung nilai X
a. X=A*B
b. X=A*C
c. X=A*D
d. X=A*B*C*D
4. Tuliskan X
5. Selesai
Program pada Fortran
REAL A,B,C,D,X
INTEGER N
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
7
WRITE(*,*)'Masukkan nilai A'
READ(*,*)A
WRITE(*,*)'Masukkan nilai B'
READ(*,*)B
WRITE(*,*)'Masukkan nilai C'
READ(*,*)C
WRITE(*,*)'Masukkan nilai D'
READ(*,*)D
WRITE(*,*)'Masukkan nilai N'
READ(*,*)N
GO TO (100,200,300,400)N
100 WRITE(*,*)'Hitung X=A*B'
X=A*B
WRITE(*,20)X
20 FORMAT('A*B=',F12.4)
200 WRITE(*,*)'Hitung X=A*C'
X=A*C
WRITE(*,30)X
30 FORMAT('A*C=',F12.4)
300 WRITE(*,*)'Hitung X=A*D'
X=A*D
WRITE(*,40)X
40 FORMAT('A*D=',F12.4)
400 WRITE(*,*)'Hitung X=A*B*C*D'
X=A*B*C*D
WRITE(*,50)X
50 FORMAT('A*B*C*D=',F20.4)
END
Hasilnya adalah perhitungan akan tergantung pada nilai N yang digunakan. Fortran
akan mengeksekusi mulai dari nilai instruksi pada GO TO ke-N hingga akhir. Apabila
N yang diberikan melebihi dari jumlah n1,n2, hingga nk maka seluruh perintah
setelah GO TO akan dieksekusi.
5.2.IF
a. IF dengan hitungan
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
8
Perintah IF digunakan untuk mengecek isi suatu variabel atau hasil suatu pernyataan
perhitungan apakah bernilai negatif, nol, atau positif kemudian berdasarkan hasil cek
tersebut, program diperintahkan untuk menuju ke nomor statemen n1, atau n2, atau
n3.
Bentuk umum :
IF (pr)n1,n2,n3
pr : hitugangn atau suatu variabel, boleh real atau integer.
n1,n2,n3 : nomor-nomor statemen yang akan dituju untuk dieksekusi instruksinya
Apabila nilai dari pr 0 (positif) maka program akan menuju ke n2
Contoh
Akar-akar suatu persamaan kuadrat ax2+bx+c dapat berupa imajiner, real sama atau
real berbeda. Untuk mengetahui jenis akar-akarnya dapat digunakan persamaan
determinan (D)
D=b2-4ac
Apabila nilai D>0 maka akar-akar real dan berbeda
Apabila nilai D=0 maka akar real dan sama
Apabila nilai D
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
9
D=B**2-4*A*C
WRITE(*,*)D
IF (B**2-4*A*C)10,20,30
10 WRITE(*,*) 'Akar imajiner'
STOP
20 WRITE(*,*) 'Akar real dan sama'
STOP
30 WRITE(*,*) 'Akar real'
STOP
END
b. IF nalar
Perintah IF pada IF nalar digunakan untuk membandingkan dua atau lebih
variabelsecara nalar. Instruksi pada baris selanjutnya dari statemen IF akan dieksekusi
apabila statemen IF bernilai benar.
Bentuk umum:
IF(ekspresi nalar) statemen
ekspresi nalar yang digunakan pada Fortran disampaikan pada Tabel1.
statemen merupakan statemen yang akan diproses apabila nilai ekspresi nalar bernilai
benar.
Contoh
WRITE(*,*) 'Masukkan nilai A'
READ(*,*)A
WRITE(*,*) 'Masukkan nilai B'
READ(*,*)B
WRITE(*,*) 'Masukkan nilai C'
READ(*,*)C
DET=B**2-4*A*C
IF (DET.LT.0) GO TO 100
WRITE(*,10)DET
10 FORMAT('Nilai Determinan=',F10.2)
100 STOP
END
Apabila nilai DET lebih kecil dari 0 maka meloncat ke statemen 100 yaitu STOP.
Apabila nilai DET tidak lebih kecil dari 0 maka statemen WRITE dan FORMAT
akan dieksekusi.
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
10
5.3.IF-THEN-ELSE-ENDIF
Struktur pemrograman dengan IF-THEN-ELSE-END memberikan keleluasaan
kepada programmer dalam membuat suatu program yang mengandung suatu
pengandaian dengan ekspresi nalar atau alternatif jalur program.
Statemen pemrogramannya adalah sebagai berikut:
IF (ekspresi nalar) THEN
ELSEIF
ELSE
ENDIF
Secara diagram alir dapat digambarkan seperti pada Gambar 3
Statemen kelompok A
IF
ELSEIF
Statemen kelompok B
ENDIF
YA
TIDAK
TIDAK
YA
Gambar 3. Bentuk diagram alir IF-THEN-ELSE-ENDIF
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
11
Statemen IF-THEN digunakan untuk menyatakan suatu blok statemen-statemen yang
harus dieksekusi apabila suatu kondisi pada ekspresi nalar terpenuhi.
Statemen ELSEIF-THEN digunakan untuk menyatakan suatu blok alternatif yang
akan dieksekusi apabila kondisi ekspresi nalar selain ekspresi nalar pada IF-THEN
terpenuhi.
Statemen ELSE digunakan untuk menyatakan suatu blok alternatif yang harus
dieksekusi apabila suatu ekspresi nalar dalam suatu statemen IF-THEN atau
ELSEIF-THEN tidak terpenuhi
Statemen ENDIF digunakan untuk menyatakan batas akhir dari suatu blok statemen
IF-THEN
Contoh
Ingin dibuat sebuah program yang dapat mengkonversikan nilai angka ujian
mahasiswa menjadi sebuah nilai huruf dengan syarat-syarat sebagai berikut:
1. Nilai huruf A untuk nilai ujian diatas 85
2. Nilai huruf B untuk nilai ujian diatas 75 dibawah 85
3. Nilai huruf C untuk nilai ujian diatas 65 dibawah 75
4. Nilai huruf D untuk nilai ujian diatas 50 dibawah 65
5. Nilai huruf E untuk nilai ujian dibawah 50
Program dengan Fortran
REAL NILAI
WRITE(*,*)'MASUKKAN NILAI UJIAN'
READ(*,*)NILAI
IF(NILAI.GT.85)THEN
WRITE(*,*)'NILAI HURUF A'
ELSEIF(NILAI.GT.75) THEN
WRITE(*,*)'NILAI HURUF B'
ELSEIF(NILAI.GT.65) THEN
WRITE(*,*)'NILAI HURUF C'
ELSEIF(NILAI.GT.50) THEN
WRITE(*,*)'NILAI HURUF D'
ELSE
WRITE(*,*)'NILAI HURUF E'
ENDIF
END
5.4.WHILE-DO
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
12
Statemen WHILE-DO digunakan untuk memerintahkan suatu kelompok statemen
dikerjakan berulang-ulang apabila suatu ekspresi nalar masih dipenuhi
Statemen pemrograman WHILE-DO adalah sebagai berikut
WHILE (ekspresi nalar) DO
(kelompok statemen akan dieksekusi apabila eksepresi nalar masih
terpenuhi)
ENDWHILE
ENDWHILE digunakan untuk menyatakan batas akhir dari kalang (loop) WHILE
Contoh
Suatu perhitungan konversi suhu dari Celcius menjadi Fahrenheit ingin digunakan
untuk menghitungan konversi suhu dari 30 hingga 60 oC.
REAL TC,TF,TCF
TC=30
TCF=60
WHILE(TC.LE.TCF)DO
CALL KONVERSI_SUHU(TC,TF)
WRITE(*,1)TC,TF
1 FORMAT(2X,F6.2, C = ,F6.2, F)
C TC baru dihitung dari TC lama+1
TC=TC+1
ENDWHILE
END
SUBROUTINE KONVERSI_SUHU(TC,TF)
TF=9/5*TC+32
RETURN
END
1. DO-ENDDO
Apabila proses perhitungan berulang dengan WHILE-DO menggunakan suatu
ekspresi nalar, maka perintah DO-ENDDO akan melakukan perhitungan berulang
dengan spesifikasi jumlah perulangan yang telah diketahui.
Statemen programnya adalah sebagai berikut:
DO indeks=hm,ha,hl
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
13
ENDDO
Dengan indeks merupakan variabel integer yang harganya berjalan mulai dari hm
dengan langkah hl menuju harga akhir ha.
hm merupakan harga awal dari variabel indeks
ha merupakan harga akhir dari variabel indeks
hl merupakan besar langkah dari variabel indeks
contoh
Contoh soal pada bagian DO akan diselesaikan dengan FOR-DO
Ingin dibuat sebuah program yang menghitung persamaan berikut
X=I2
I=1,2,3,,50.
REAL X
INTEGER I,N
N=50
DO I=1,N,1
X=I**2
WRITE(*,*)X
ENDDO
WRITE(*,*)'PERHITUNGAN SELESAI'
END
6. Latihan soal
1. Buatlah sebuah program perhitungan kapasitas panas fungsi suhu (Cp=f(T)) dengan
persamaan sebagai berikut:
2)(
T
CBTATCp
Dengan T divariasikan dari suhu ruang 32oF hingga suhu 212
oF. Diketahui untuk
senyawa CO2(g) nilai konstanta A=10,34; B=0.00274 dan C= -195500. Satuan Cp
adalah cal/mol/K dan T dalam K.
2. Gas CO2 masuk pendingin pada suhu 90oC dengan massa 200 kg/jam. Massa air
pendingin yang digunakan adalah 150 kg/jam dengan suhu masuk 30 oC dan suhu
keluar 50 oC. Perkirakan suhu CO2 keluar pendingin dengan menggunakan program
Fortran. Diketahui Cp CO2 seperti pada latihan soal nomor 1 dan Cp air dianggap
tetap sebesar 4,18 J/kg/K.
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
14
3. Ingin dicari nilai turunan dari suatu fungsi y=f(x) dengan menggunakan pendekatan
beda hingga (finite difference approximation/FDA) cara sentral.
Turunan pertama dari y terhadap adalah dy/dx. Rumus FDA sentral untuk turunan
pertama adalah sebagai berikut:
x
xxfxxf
dx
xdf
dx
dy
2
)()()(
Apabila y=f(x) diketahui maka dengan menggunakan rumus tersebut dapat dihitung
nilair turunan pertama dari y terhadap x pada suatu nilai x tertentu. misal diketahui
y=f(x) sebagai berikut
12)( 2 xxxfy
Buatlah program untuk menghitung turunan pertama y pada suatu x tertentu! gunakan
nilai x sebesar 0,01 dan nilai x=3. Adakah perbedaan hasil apabila digunakan nilai
x yang lebih besar atau yang lebih kecil?
(hasil secara analitis memberikan hasil dy/dx pada x=3 sebesar 8). Bandingkan hasil
yang diperoleh dengan pedekatan FDA!
4. Suatu fluida pada 2 atm dan 200 oC dipanaskan pada waktu mengalir di dalam pipa
berdiameter 1 in dengan kecepatan 10 m/s. Hitunglah perpindahan pana per satuan
panjang tabung jika terdapat kondisi fluks-kalor tetap pada dinding, dan suhu dinding
dipertahankan sebesar 20 C diatas suhu fluida di sepanjang tabung.
Diketahui sifat-sifat fisis fluida pada suhu 200oC sebagai berikut:
=1,493kg/m3; Cp=1,025 kJ/kgoC; =2,57x10-5 kg/m/s; k=0.0386 W/m/oC;
Bilangan Prandtl didefinisikan sebagai :
k
CpPr
Bilangan Reynolds untuk pipa sebagai berikut:
vDRe
Bilangan Nusselt :
k
hDNu
Hubungan Bilangan Nusselt dengan Reynolds dan Prandtl dapat didefinisikan sebagai
berikut: 4,08,0 PrRe023,0Nu untuk aliran turbulen dalam pipa
14,03/13/1Pr)(Re86,1
wL
DNu
untuk aliran laminar
Dengan merupakan densitas cairan, Cp adalah kapasitas panas, merupakan
viskositas cairan, k merupakan konduktifitas cairan, v adalah kecepatan aliran cairan
dalam pipa, D adalah diameter pipa, L merupakan panjang pipa dan h merupakan
koefisien transfer panas konveksi dari dinding pipa ke cairan. Subskrip w
menunjukkan air.
-
Tutorial Metode Numeris dan Pemrograman Komputer 2012
15
Aliran laminar dan turbulen ditentukan dengan menggunakan bilangan Reynolds.
Apabila Bilangan Reynolds lebih besar dari 10000 maka aliran bersifat turbulen.
Bilangan Reynolds yang lebih kecil dari 2100 maka aliran bersifat laminar. (Contoh
6-1 pada Holman, 1988)
Struktur ProgramPembuatan subprogramPemanggilan SubprogramOperator logikaStatemen kontrolGO TOGO TO tanpa syaratGO TO dengan hitungan
IFIF dengan hitunganIF nalar
IF-THEN-ELSE-ENDIFWHILE-DO
Latihan soal