Modul Pemrograman Komputer FORTRAN
Modul Pemrograman Komputer FORTRAN
PEMROGRAMAN KOMPUTER
Menggunakan Bahasa fortran
LABORATORIUM KOMPUTER
PROGRAM STUDI TEKNIK SIPIL
FAKULTAS SAINS DAN TEKNIK
UNIVERSITAS JENDERAL SOEDIRMAN
TAHUN 2016
KATA PENGANTAR
Puji syukur penyusun panjatkan kepada Tuhan Yang Maha Kuasa, karena atas limpahan
rahmat dan hidayahnya, Buku Petunjuk Praktikum Pemrograman Komputer ini dapat
terselesaikan dengan baik. Buku petunjuk praktikum ini disusun sebagai panduan mahasiswa,
dalam melaksanakan Praktikum Pemrograman Komputer. Beberapa perubahan dan
penyempurnaan dilakukan terhadap buku edisi sebelumnya, dengan harapan agar sesuai dengan
kurikulum yang diajarkan di mata kuliah Pemrograman Komputer.
Buku Petunjuk Praktikum ini, disusun oleh Tim KBK Pemrograman Komputer
dibantu oleh Asisten. Pada kesempatan ini, penulis mengucapakan terima kasih kepada
pihak-pihak yang telah membantu menyelesaikan penyusunan buku. Penulis menyadari
masih banyak kekurangan pada buku ini, sehingga masukan dari berbagai pihak yang terkait,
sangat diharapkan demi perbaikan.
Akhir kata penulis berharap agar Buku Petunjuk Praktikum Pemrograman Komputer
ini, dapat dimanfaatkan secara maksimal oleh mahasiswa dalam melaksanakan Praktikum
Pemrograman Komputer.
Purbalingga,
Ketua,
September 2016
DAFTAR ISI
KATA PENGANTAR.................................................................................................................................... 1
DAFTAR ISI.................................................................................................................................................. 2
PERATURAN PRAKTIKUM ....................................................................................................................... 5
BAB 1
INPUT/OUTPUT (I/O)........................................................................................................... 6
FORMAT ............................................................................................................................... 7
OPEN/CLOSE......................................................................................................................... 8
Langkah Kerja............................................................................................................................... 10
Flowchart............................................................................................................... 11
Spesifikasi pengamatan................................................................................................ 12
Latihan .................................................................................................................................. 12
Pengayaan .................................................................................................................................... 12
BAB 2
STRUKTUR KONTROL........................................................................................................... 14
IF........................................................................................................................................... 14
GOTO................................................................................................................................... 16
Langkah Kerja............................................................................................................................. 17
Problematika ......................................................................................................................... 18
Solusi ............................................................................................................................ 18
a
Flowchart.............................................................................................................. 19
Spesifikasi pengamatan................................................................................................. 21
Latihan .......................................................................................................................................... 22
Pengayaan ..................................................................................................................................... 22
BAB 3
LOOP DO ................................................................................................................................. 23
2
C
Problematika ......................................................................................................................... 25
Solusi ............................................................................................................................ 26
a
Flowchart............................................................................................................. 26
Source Code............................................................................................................. 27
Spesifikasi pengamatan................................................................................................ 28
Latihan ......................................................................................................................................... 29
Pengayaan .................................................................................................................................... 29
BAB 4
ARRAY..................................................................................................................................... 30
Dengan DIMENSION.......................................................................................................... 31
Langkah Kerja............................................................................................................................. 32
Problematika ........................................................................................................................32
Solusi ........................................................................................................................... 33
a
Flowchart............................................................................................................. 33
Source Code............................................................................................................. 35
Spesifikasi pengamatan............................................................................................... 37
Latihan ....................................................................................................................................... 38
Pengayaan .................................................................................................................................. 38
BAB 5
SUBPROGRAM....................................................................................................................... 39
SUBROUTINE ................................................................................................................... 39
FUNCTION ........................................................................................................................ 39
Langkah Kerja............................................................................................................................ 39
Problematika ....................................................................................................................... 40
Solusi .......................................................................................................................... 40
a
Flowchart........................................................................................................... 40
Source Code........................................................................................................... 41
Spesifikasi pengamatan.............................................................................................. 44
Latihan ....................................................................................................................................... 44
Pengayaan .................................................................................................................................. 44
BAB 6
Langkah Kerja............................................................................................................................ 46
Problematika ..................................................................................................................... 46
Solusi ......................................................................................................................... 47
a
Flowchart........................................................................................................... 47
Source Code.......................................................................................................... 48
Spesifikasi pengamatan............................................................................................. 49
Latihan ....................................................................................................................................... 50
Pengayaan .................................................................................................................................. 50
PERATURAN PRAKTIKUM
Dalam pelaksanaan praktikum, dianjurkan mengikuti pedoman yang ada, agar
praktikum dapat berjalan dengan sempurna dan lancar. Oleh karena itu, mahasiswa/praktikan
diharapkan untuk membaca pedoman sebelum melakukan praktikum.
A. Peraturan Praktikum
Dalam melaksanakan praktikum, mahasiswa diwajibkan untuk :
1. Mempelajari dengan baik mengenai cara-cara melakukan/prosedur yang akan
dilaksanakan, sehingga dapat menjalankan praktikum dengan baik.
2. Bekerja secara hati-hati dengan seluruh alat yang digunakan di laboratorium
pemrograman komputer. Setelah selesai praktikum, Kembalikan kondisi seluruh alat
seperti sebelum memulai praktikum.
3. Tidak boleh membawa ataupun mempergunakan media penyimpanan digital
semisal USB flashdisk, External Harddisk dll
4. Tidak boleh mengikuti praktikum jika belum menyelesaikan laporan sebelum
praktikum.
B. Laporan
Dalam melaksanakan praktikum pemrograman komputer, mahasiswa diwajibkan
untuk membuat Laporan Praktikum dengan ketentuan sebagai berikut ini.
1. Isi laporan sebelum praktikum :
a. Judul
e. Contoh Kasus
b. Tujuan Umum
f. Latihan
c. Deskripsi Umum
d. Langkah Kerja
2. Isi Laporan setelah praktikum :
a. Pengayaan
3. Laporan ditulis tangan secara rapih diatas kertas margin 3322 dan Seluruh Source
Code ditulis menggunakan kertas millimeter block.
BAB 1
INPUT & OUTPUT
A
Tujuan Umum
1. Mengerti susunan algoritma yang disajikan dalam suatu Flow Chart (bagan alir).
2. Mampu membuat source code (kode sumber) bahasa fortran.
3. Mengerti perilaku statement input dan output dalam bahasa fortran.
4. Mampu membuat dan mengeksekusi program yang sangat sederhana
Deskripsi Umum
Secara umum, pemrograman komputer hanya terbagi atas 3 bagian, yakni input,
proses dan output. Proses Input/Output berhubungan dengan alat (device) I/O standar
seperti keyboard, konsul (monitor), file serta peripheral lainnya. Bagian terbesar dari
pemograman biasanya terletak pada bagaimana proses (proses perhitungan misalnya)
dilakukan. Bagian Input/Output dapat dikelompokkan pada pembahasan yang sama,
sedangkan bagian proses ada yang dipisahkan menurut kegunaannya.
Dalam penulisan kode sumber (source code), aturan /format berikut harus selalu
dipatuhi. Setelah itu, setiap bagian program akan dibahas.
Kolom 1
Kolom 1-5
Kolom 6
Kolom 7-72
Kolom 73-80
Tidak digunakan.
INPUT/OUTPUT (I/O)
Perintah untuk Input/Output digunakan dalam membaca data masukan
dan menuliskan data keluaran dari memori komputer dari dan ke periferal
tertentu. Perintah untuk Input menggunakan penyataan READ dan sedangkan
untuk Output menggunakan pernyataan WRITE. Bentuk umum untuk kedua
pernyataan tersebut dapat ditulis sebagai berikut,
Bentuk Umum :
READ (<unit spec>,<format spec>) var1,var2,
WRITE (<unit spec>,<format spec>) var1,var2,
<unit spec>
angka 6
bebas,
sedangkan
untuk
output
disarankan
FORMAT
ini
akan
dilakukan
dalam
pembahasan berikutnya.
var1,var2,
FORMAT
Penyataan FORMAT digunakan untuk membentuk format (bentuk)
data masukan/keluaran yang meliputi tentang tata letak, tipe dan panjang data.
Bentuk Umum :
<label> FORMAT (edit list)
<label>
(edit list)
EDIT DESCRIPTOR
Edit descriptor merupakan perintah dalam membentuk format I/O.
Dalam Tabel berikut diberikan edit descriptor yang umum digunakan dalam
FORTRAN-77.
No. Tipe Editing
1. Character
2.
Bentuk Umum
Integer
<n>A<w>
<n>I<w>
<n>
Arti notasi
jumlah pengulangan
<w>
jumlah karakter
<n>
jumlah pengulangan
<w>
3.
Real
<n>
<n>F<w>.<d> <w>
<d>
4.
Real
<n>E<w>.<d> <n>
Logika
jumlah desimal
jumlah pengulangan
<d>
jumlah desimal
<n>L<w>
<n>
jumlah pengulangan
<w>
<k>
Apostrophe
<k>
7.
8.
Positional
Slash
<n>X
/
9.
Backslash
interpretation
6.
10. Blank
jumlah pengulangan
<w>
Exponensial
5.
<n>
BN
Blank = kosong
BZ
Blank = nol
OPEN/CLOSE
Semua data yang akan dan diproses di CPU dibaca dari main memory
komputer. Main memory hanya menyimpan data tersebut secara temporary
(sementara) hingga program selesai dieksekusi. Jika data tersebut ingin
disimpan secara tetap, maka semua data tersebut harus disimpan dalam bentul
file. Oleh karena itu disini akan dijelaskan tentang perintah yang umum
digunakan dalam FORTRAN-77 untuk mengatur data dan file dalam
pemograman komputer.
a. OPEN
Penyataan OPEN digunakan untuk membuka file, baik file yang telah
tersedia maupun file yang harus disediakan. Setelah file ini terbuka, maka
main memory akan membaca/menulis data ke dalam file ini. Bentuk umumnya
adalah,
Bentuk Umum :
OPEN(<unitspec>,FILE=<namafile>,STATUS=<status>,ACCESS=<acce
ss>,FORM=<form>,RECL=,rec-leng)
<unit spec>
<nama file>
<status>
<access>
dari
record
ACCESS=SEQUENTIAL,
awal.
Karena
default
pada
umumnya
metode
data
disimpan
terformat,
Perintah
ACCESS=DIRECT
ini
hanya
digunakan
untuk
b.
CLOSE
Pernyataan CLOSE digunakan untuk menutup file yang tidak
diperlukan. Penutupan file ini diperlukan untuk space dalam main memory
komputer.
Bentuk Umum :
CLOSE(<unit spec>, STATUS=<status>)
<unit spec>
<status>
Langkah Kerja
1. Buka program FORTRAN yang telah tersedia.
2. Pahami terlebih dahulu maksud maupun tujuan program yang akan kita buat.
3. Susunlah Algoritma suatu program dapat berjalan, gunakan bantuan flow chart.
4. Ketikkan Source Code dengan aturan penulisan yang telah kita pahami
sebelumnya.
5. Lakukan kompilasi sampai tidak ada error
6. akukanlah eksekusi
Contoh Kasus
1. Problematika
Jika kita ingin menghitung kadar lumpur pada agregat halus metode saringan
ayakan no 200, dengan data laboratorium: berat agregat awal adalah 250 gram dan
setelah disaring berat agragat
10
2. Solusi
a.
Flow Chart
MULAI
BACA
AWAL, AKHIR
HITUNG
BERAT,PERSEN
TULIS
BERAT,PERSEN
STOP
b.
11
Source Code
#Penjelasan Program :
No. Baris
Keterangan
1 Menjelaskan nama program
2 Komentar penjelasan pemilik progrm
3 Output perintah untuk pemakai program agar memasukkan data berat
awal agregat
4 Membaca berat awal memakai variabel AWAL.
5,8 Format untuk membaca data. Data berupa bilangan REAL dan disediakan
5 kolom, tiga untuk angka sebelum titik, satu untuk titik, dan satu kolom
lagi untuk angka dibelakang titik
6 Output perintah untuk pemakai program agar memasukkan data berat
agragat setelah di ayak
7 Membaca data berat akhir memakai variable AKHIR
9 Menghitung berat lumpur, variable BERAT
10 Menghitung kadar lumput, variabel PERSEN.
11 Menuliskan hasilnya.
12 Format untuk penulisan hasil.
15,16 Statemnet STOP dan END. Mengakhiri program.
*Perhatikan data berat awal dan berat akhir yang akan di baca
Lihat cara perletakan data. Data-data langsung ditulis bilangannya.
c.
Spesifikasi Pengamatan
INPUT
OUTPUT
E
: 250.0
200.0
: Berat Lumpur: 50
Kadar lumpur :20
Latihan
1. Check dan perbaiki Kembali Program sehingga berhasil di eksekusi, Apakah benar
dalam eksekusinya? Kembangkanlah program dibawah ini sehingga lebih
interaktif!
(Program terlampir)
Pengayaan
1. Kembangkanlah suatu program kreatif dan inovatif dengan memanfaatkan perintah
READ, WRITE, FORMAT, OPEN, CLOSE!
2. Hal penting yang harus kalian sertakan adalah
a.
12
13
BAB 2
STRUKTUR KONTROL
A
Tujuan Umum
1. Mampu membuat program yang memuat deklarasi variable (diturunkan dari tipe
dasar), cara akses (baca/tulis) variable, konstruksi control if-then-else.
2. Mampu menterjemahkan bagan alir (flowchart) yang memuat struktur control ifthen-else ke dalam bahasa FORTRAN.
Deskripsi Umum
Secara Umum Struktur control terbagi menjadi 2 bentuk. Yaitu IF dan GO TO.
1.
IF
Pernyataan IF digunakan untuk mengatur alur program komputer
sesuai dengan arah yang diinginkan.
Bentuk Umum :
IF(<ekspresi>)<statement>
<ekspresi>
Arti
.GT.
.GE.
.LT.
.LE.
.EQ.
sama dengan
.NE.
Arti
.NOT.
Tidak
.AND.
Dan
.OR.
Atau
.XOR.
ekslusif atau
.EQV.
Ekivalen
.NEQV.
tidak ekivalen
a.
Aritmatik IF
15
berikut
IF-THEN-ENDIF
IF-THEN-ELSE-
IF(<ekspresi>)THEN
IF(<ekspresi>)THEN
IF-THEN-ELSEIFIF(<eksp1>)THEN
penyataan 1
penyataan 1
penyataan 1
penyataan 2
penyataan 2
penyataan 2
penyataan n
penyataan n
penyataan n
ENDIF
ELSEIF(<eksp2>)THEN
ELSE
penyataan a
penyataan a
penyataan b
penyataan b
penyataan z
penyataan z
ELSE
ENDIF
penyataan a1
penyataan b2
Hal yang perlu diperhatikan bahwa jangan mengkontrol alur program menuju
blok IF (menggunakan statement GOTO, misalnya).
2
GOTO
Pernyataan
GOTO
digunakan
untuk
memindahkan
alur
Assigment GOTO
Bentuk Umum :
GOTO nvar,(label1,label2,)
Penyataan ini memerintahkan agar alur program berpindah ke label yang
sesuai dengan nvar.
Sample :
GOTO I,(10,20,30)
Contoh di atas menunjukkan bahwa jika nilai I bernilai 10, 20 atau 30,
maka proses selanjutnya mengikuti perintah dalam label 10, 20 atau 30.
16
b.
Computed GOTO
Bentuk Umum :
GOTO (label1,label2,),n.
Pernyataan ini memerintahkan komputer untuk melanjutkan proses
sesuai dengan urutan yang diberikan oleh n.
Sample :
GOTO (10,20,30),n
Jika n = 3, maka proses selanjutnya mengikuti perintah yang dimulai
dari label ke-3, yakni label 30.
c.
Unconditional GOTO
Pola GOTO ini adalah pola yang paling sederhana dengan
bentuk umum GOTO label. Pernyataan ini memerintahkan komputer
untuk melanjutkan proses ke alamat yang diberikan pada label.
Sample :
IF(A.GT.B) GOTO 100
Pernyataan ini berarti Jika A > B, maka proses dilanjutkan ke perintah
yang dimulai dari label 100.
Langkah Kerja
1.
2.
3.
17
Contoh Kasus
1.
Problematika
Jika diketahui data berupa suhu dengan satuan celcius, berapakah nilai suhu 100
derajat celcius bila di konversikan ke dalam satuan derajat
a. Reamur
b. Fahrenheit
c. Kelvin
2.
Solusi
Dalam kasus ini pengguna program akan diberi pilihan opsi konversi suhu dari
celcius untuk dikonversikan ke dalam satuan yang diingikannya saja. Pertama harus
di tentukan sebuah angka sebagai opsi konversi, angka 1 untuk reamur, angka 2 untuk
Fahrenheit, dan angka 3 untuk Kelvin. Jika sudah memilih opsinya, lalu suhu dalam
satuan derajat celcius tersebut di konversikan menggunakan masing-masing rumus
konversi dan menuliskannya
Rumus konversi dari suhu celcius ke
18
Kelvin = Suhu+273
a.
Flowchart
MULAI
BACA
A, SUHU
A=?
1
RMR=SUHU*(4/5)
TULIS
SUHU, RMR
19
2
FRHT=SUHU*(9/5)*+32
TULIS
SUHU, FRHT
AKLVN=SUHU+273
TULIS
SUHU, AKLVN
#Penjelasan Flowchart
Pada saat membuka program, terdapat pilihan konversi suhu celcius ke
reamur, fahrenheit atau kelvin kemudian menginput nilai untuk variable A sesuai
dengan nomor konversi yang diinginkan , nomor 1 untuk konversi dari celcius ke
reamur, nomor 2 untuk konversi dari celcius ke Fahrenheit, dan nomor 3 untuk
konversi dari celcius ke kelvin. Bila sudah membaca variable A, kemudian
menginput nilai suhu celcius (dalam derajat). Lalu program menghitung
perhitungan konversi sesuai dengan opsi yang diambil. Setelah dihitung nilai
konversinya, program akan menuliskannya. Program akan mengulang untuk
membaca nilai A dan SUHU
b.
20
Source Code
#Penjelasan Program
No. Baris
Keterangan
3-5
7
8-9
11
13-17
18-22
23-27
28
30
31
Statement END
c.
Spesifikasi Pengamatan
INPUT :
A=1
A=2
A=3
SUHU =100
SUHU =100
SUHU=100
OUTPUT :
Latihan
1. Check dan perbaiki Kembali Program sehingga berhasil di eksekusi, Apakah
benar dalam eksekusinya? Kembangkanlah program dibawah ini sehingga lebih
interaktif! (Program terlampir)
Pengayaan
1. Kembangkanlah suatu program kreatif dan inovatif dengan memanfaatkan perintah
READ, WRITE, FORMAT, OPEN, CLOSE, IF, THEN, ELSE, ELSEIF, ENDIF,
GO TO !
2. Hal penting yang harus kalian sertakan adalah
a. Maksud dan tujuan program anda dibuat
b. Flowchart, Beserta Pembahasannya
c. Source Code, Beserta Pembahasannya
d. Spesifikasi (Input, process & Output), Beserta Pembahasannya
e. Screenshot program yang telah anda buat
22
BAB 3
LOOP DO
A
Tujuan Umum
1. Mampu membuat program yang memuat deklarasi variabel (diturunkan dari tipe
dasar), cara akses variabel, konstruksi kontrol pengulangan while-do dan repeat- until.
2. Mampu mengubah program dalam notasi algoritmik yang memuat struktur kontrol
pengulangan repeat-until dan while-do ke dalam bahasa FORTRAN.
Deskripsi Umum
Dalam prakteknya banyak dijumpai suatu perintah harus dikerjakan berulangulang hingga diperoleh hasil sesuai dengan yang diinginkan. Secara logis, perintahperintah kontrol dan logika dapat digunakan untuk
mengulang perintah-perintah
DO CONTINUE / DO END DO
Bentuk Umum :
DO <label> var=n1,n2,inc
pernyataan 1
pernyataan n
<label>
<label>
CONTINUE
Label yang menunjukkan batasan awal dan akhir dari
proses yang akan diulang.
var
n1
n2
inc
DO 10 I=1,10
WRITE(*,'(3X,A,I2)')'PERULANGAN KE ',I
10
CONTINUE
END
24
2.
DO WHILE END DO
Perintah DO WHILE END DO memproses sesuatu atau sekelompok
statement secara berulang berdasarkan syarat yang diberikan.
Sample :
I=0
DO WHILE(I.lt.10)
I=I+1
WRITE(*,'(3x,A,2I2)')'perulangan ke ',I
END DO
END
Hal yang perlu dicatat bahwa setiap loop harus tertutup dimulai dari loop yang
paling dalam. Disamping itu tidak diijinkan proses perhitungan dialihkan ke
dalam loop (dengan perintah GOTO, misalnya)
Langkah Kerja
1.
2.
3.
4.
Contoh Kasus
1.
Problematika
Jika kita mempunyai tulangan baja dengan panjang 1 meter, diameter 3 cm dan
modulus elastisitasnya adalah 2.1x106 kg/cm2 . Berapakah pertambahan panjang jika
baja akan diberi gaya tarik dimulai dari 1000 kg sampai 2000 kg dengan interval 100
kg?
25
2. . Solusi
a.
Flow Chart
MULAI
BACA
AL, E, D
I=0.0
I = 1000
I >2000
I =1000+100
AK = 0.25 x 3.14 x D2
T = I / AK
EF = T / E
PJG = EF x AL
TULIS
I, PJG
STOP
#Penjelasan Flowchart
Setelah memulai kemudian program akan membaca variable AL sebagai
panjang awal baja, E sebagai nilai modulus elastisitas, dan D sebagai diameter baja.
Selanjutnya , program akan memperdanakan nilai I=0 dan program melakukan
iterasi I dengan nilai awal 1000 dan nilai akhir 2000 per 100. Iterasi ini digunakan
untuk menghitung nilai AK, T, EF, dan PJG. Kemudian program menuliskan nilai
I sebagai pertambahan beban dan PJG sebagai pertambahan panjang baja. Ketika
iterasi telah sampai pada data sentinel (data akhir) yaitu 2000, program akan
berhenti (STOP) dan mengakhiri program
26
b.
27
Source Code
#Penjelasan Program
No. Baris
Keterangan
c.
Spesifikasi Pengamatan
INPUT :
PANJANG AWAL BAJA (cm)
100
MODULUS ELASTISITAS (kg/cm2)
2100000
DIAMETER BAJA (cm)
3
OUTPUT :
Latihan
1.
F.
Pengayaan
1. Kembangkanlah suatu program kreatif dan inovatif dengan memanfaatkan perintah
READ, WRITE, FORMAT, OPEN, CLOSE, DO, DO WHILE, END DO,
CONTINUE!
2. Hal penting yang harus kalian sertakan adalah
a. Maksud dan tujuan program anda dibuat
b. Flowchart, Beserta Pembahasannya
c. Source Code, Beserta Pembahasannya
d. Spesifikasi (Input, process & Output), Beserta Pembahasannya
e. Screenshot program yang telah anda buat
29
BAB 4
ARRAY
A.
Tujuan Umum
1. Mampu membuat program yang memuat variable array.
2. Mampu menerangkan cara kerja i iterasi (do-continue pada FORTRAN)
B.
Deskripsi Umum
Kontras dengan variabel tunggal, dimana hanya ada satu nilai untuk tiap
variabel, variabel yang menggunakan array mempunyai sekelompok nilai dengan
variabel yang sama. Variabel ber-array biasa digunakan untuk menterjemahkan
variabel berindeks dalam matematika.
DO 10 I=1,4,1
DO 20 J=1,4,1
DO 30 K=1,4,1
A(I,J)=A(I,J)+B(I,K)*C(K,J)
30
CONTINUE
20
10
CONTINUE
CONTINUE
Variabel A(I,J), B(I,K) dan C(K,J) disebut sebagai variabel ber-array. Urutan angka
integer dalam tanda ( ) menunjukkan dimensi array n, dimana n maksimal 7. angka integer
dalam tanda kurung menunjukkan alokasi tempat (indeks) yang disediakan untuk
array tersebut. Oleh karenanya, pada awal program variabel tersebut harus dideklarasikan.
Ada 2 bentuk deklarasi yang umum digunakan.
30
Dengan DIMENSION
Bentuk Umum :
DIMENSION var(n1:m1,n2:m2,..,nl:ml),
Var
karakter.
n1:m1
n2:m2
CONTINUE
20
CONTINUE
10
CONTINUE
31
Bentuk Umum :
<type data> var(n1:m1,n2:m2,..,nl:ml),
<type data> Tipe data yang digunakan dalam array, real, integer atau
karakter.Dengan penyataan eksplisit ini,
integer
dan
karakter
variabel real,
kelompoknya.
Sample :
REAL*8 A(4,4),B(4,4),C(4,4)
DO 10 I=1,4,1
DO 20 J=1,4,1
DO 30 K=1,4,1
A(I,J)=A(I,J)+B(I,K)*C(K,J
30
20
10
C.
CONTINUE
CONTINUE
Langkah Kerja
1.
2.
3.
4.
5.
6.
D.
CONTINUE
Contoh Kasus
1.
Problematika
Jika kita ingin menghitung rata-rata hujan di stasiun penangkap hujan, dan
mencari standar deviasi pada 11 stasiun hujan, diperlukan data input berupa intesitas
hujan di 11 stasiun tersebut. Fasilitas dimensi dapat digunakan untuk menyediakan
data input, menghitung dan menuliskan data output
32
2.
Solusi
a.
Flow Chart
START
OPEN
FILE =HUJAN.TXT
READ
L
SUM = 0.0
SUM2 = 0.0
I=1
I=L
I=I+L
READ
HUJAN (I)
TULIS
L, RATA ,SD
33
RATA = SUM/L
RATA2 = SUM2/L
SD = ((L/(L-1.0))*(RATA2(RATA2)))0.5
#Penjelasan Flowchart
Setelah memulai program kemudian program akan menyediakan jajaran untuk
variable hujan hingga 1000 unsur. Selanjutnya program akan membuka file
HUJAN.TXT untuk membaca nilai variable HUJAN lalu masukkan jumlah
stasiun hujannya (jumlah stasiun harus sesuai dengan jumlah variable hujan pada
file HUJAN.TXT) dan akan dibaca sebagai variable L. Sebelum melakukan iterasi
I = 1,L untuk membaca variable HUJAN (I) , harus dilakukan pemerdanaan data
pada variable SUM dan SUM2 sehingga dapat menghitung nilai jumlah intesitas
hujan (SUM) dan jumlah kuadrat intesitas hujan (SUM2). Setelah iterasi selesai,
dilanjutkan dengan menghitung nilai RATA, RATA2 dan SD lalu menuliskan
perhitungan yaitu L,RATA, dan SD. Jika ingin mengulangi perhitungan dengan
jumlah atau nilai intesitas hujan yang berbeda, pengguna/user harus memperbaharui
terlebih dahulu data hujannya
34
b.
35
Source Code
Keterangan
1,2
36
c.
Spesifikasi Pengamatan
INPUT
OUTPUT
37
E.
Latihan
1. Check dan perbaiki Kembali Program berikut sehingga berhasil di eksekusi,
Apakah benar dalam eksekusinya? Kembangkanlah program dibawah ini sehingga
lebih interaktif!
(Program terlampir)
F.
Pengayaan
1. Kembangkanlah suatu program kreatif dan inovatif dengan memanfaatkan perintah
READ, WRITE, FORMAT, OPEN, CLOSE, DO, DIMENSION!
2. Hal penting yang harus kalian sertakan adalah
a. Maksud dan tujuan program anda dibuat
b. Flowchart, Beserta Pembahasannya
c. Source Code, Beserta Pembahasannya
d. Spesifikasi (Input, process & Output), Beserta Pembahasannya
e. Screenshot program yang telah anda buat
38
BAB 5
SUBPROGRAM
A.
Tujuan Umum
1. Mampu membuat program dalam bahasa FORTRAN yang dibentuk dari modulmodul subprogram.
2. Mampu mengatur strukturalisasi program dengan mengalihkan sebagian alur
program ke dalam blok program tertentu.
B.
Deskripsi Umum
Subprogram digunakan untuk mengalihkan sebagian alur program ke dalam
blok program tertentu. Efektifitas, efisiensi dan kemudahan pengaturan merupakan alasan
utama dalam pengalihan alur program ke dalam subprogram. Dengan adanya
subprogram, blok proses yang mungkin akan dilakukan berulang-ulang, hanya perlu
disusun satu kali. Untuk selanjutnya hanya perlu dipanggil/diaktifkan. Ada 2 jenis
subprogram yang umum digunakan, yakni SUBROUTINE dan FUNCTION.
1.
SUBROUTINE
Subroutine merupakan subprogram yang hampir mirip dengan program
utama Dalam subroutine dapat dilakukan serangkaian/sekelompok input,
proses maupun output.
2.
FUNCTION
Berbeda dengan penggunaan SUBROUTINE,
FUNCTION hanya
dapat digunakan untuk menentukan nilai satu variabel, baik real, integer maupun
karakter. Subprogram ini umumnya digunakan untuk mendefenisikan fungsi
tertentu dalam program.
C.
Langkah Kerja
1.
2.
3.
4.
39
D. Contoh Kasus
1. Problematika
Pada pemadatan tanah yang ideal, tanah timbunan harus mempunyai kadar air
yang optimum, jika di ketahui kadar air awal pada 2,4 ton tanah timbunan adalah 22 %
dan kadar air optimum yang ingin dicapai adalah 28%, berapa volume air yang diperlukan
agar tanah timbunan tersebut mencapai nilai kadar air optimum?
2. Solusi
a.
Flow Chart
MULAI
TULIS
DESKRIPSI
PROGRAM
CALL INPUT
CALL PROSES
CALL HASIL
MULAI
40
41
b.
43
Source Code
Keterangan
1-11
14 Memanggil INPUT
15 Memanggil PROSES
16
46
c.
Spesifikasi Pengamatan
INPUT :
Latihan
1. Check dan perbaiki Kembali Program sehingga berhasil di eksekusi, Apakah benar
dalam eksekusinya? Kembangkanlah program dibawah ini sehingga lebih interaktif!
(Program terlampir)
F.
Pengayaan
1. Kembangkanlah suatu program kreatif dan inovatif dengan memanfaatkan perintah
READ, WRITE, FORMAT, OPEN, CLOSE, CALL, RETURN, SUBROUTINE!
2. Hal penting yang harus kalian sertakan adalah
a. Maksud dan tujuan program anda dibuat
b. Flowchart, Beserta Pembahasannya
c. Source Code, Beserta Pembahasannya
d. Spesifikasi (Input, process & Output), Beserta Pembahasannya
e. Screenshot program yang telah anda buat
47
BAB 6
PENGEMBANGAN DALAM TEKNIK SIPIL
A.
Tujuan Umum
1. Mengaplikasikan seluruh pengetahuan dan pemahaman tentang program berbahasa
FORTRAN dalam membantu mempermudah engineer menyelesaikan berbagai
permasalahan rekayasa teknik sipil.
2. Meningkatkan kreativitas dan kemampuan penalaran untuk berfikir logis melalui
pemrograman dengan bahasa FORTRAN
3. Dapat melakukan berbagai riset dan inovasi secara pribadi mengenai pembuatan
program teknik sipil.
Deskripsi Umum
Secara umum, langkah-langkah yang diperlukan secara singkat adalah sebagai
berikut.
Langkah 1
Tentukan masalah yang akan diselesaikan (menyelesaikan persamaan matematika
dengan metode numerik, misalnya). Pastikan bahwa masalah telah dikuasai dengan
baik.
Langkah 2
Analisis masalah tersebut. Tentukan secara tepat bagian-bagian input, proses dan
output serta hubungan antar ketiganya. Bagian ini merupakan bagian yang terpenting
karena siapapun tidak ingin menyelesaikan masalah yang salah maupun
menyelesaikan masalah yang benar dengan akan tetapi mendapatkan jawaban yang
salah.
Langkah 3
Susun algoritma untuk menyelesaikan masalah. Algoritma harus disusun secara tepat
tanpa ada keraguan dalam tiap langkahnya serta harus terdefenisi dengan baik dan
tepat sehingga akan diketahui akibat dari perubahan tiap langkah yang dilakukan.
Langkah 4
Susun diagram alir sesuai dengan algoritma yang disusun dalam langkah 3.
Langkah 5
Terapkan diagram alir tersebut dalam bentuk source code program. Walaupun
masing-masing orang mempunyai bahasa pemograman favorit, akan tetapi pada saat
tertentu dibutuhkan bahasa pemograman khusus untuk menyelesaikan masalah.
FORTRAN-77 misalnya, khusus dibuat untuk menyelesaikan masalah dalam bidang
sains dan teknologi.
Langkah 6
Pengujian dan verifikasi program. Bagian ini merupakan bagian tersulit dalam proses
pemograman komputer. Untuk program yang besar dan kompleks, pengalaman dan
latihan yang terus-menerus merupakan modal utama dalam melakukan pengujian dan
verifikasi program ini.
Ketika menerapkan algoritma/diagram yang telah disusun dalam langkah 3
dan 4, terdapat beberapa langkah dalam menyusun dan mengeksekusi program.
Langkah-langkah tersebut antara lain,
48
Langkah 1
Gunakan editor yang tersedia untuk menyusun program tersebut. Simpan source code
program tersebut sebagai source file.
Langkah 2
Compile source dengan compiler yang tersedia. Jika terjadi kesalahan berupa syntax
error, kembali ke langkah 1. Jika tidak terjadi kesalahan, maka compiler akan
membuat object file.
Langkah 3
Dalam menyusun program yang besar dan kompleks, sangat disarankan untuk
membagi-bagi program dalam bentuk subprogram. Tiap subprogram dapat disusun
dan di-compile tersediri sesuai dengan langkah 1 dan 2 di atas. Pola ini akan
memudahkan dalam melihat, menyusun maupun menguji program yang disusun.
Setelah semua subprogram telah selesai di-compile, langkah selanjutnya adalah
meng-link semua file object tersebut.
Langkah 4
Jika semuanya berjalan lancar, langkah berikutnya adalah mengeksekusi program
untuk menguji dan memverifikasi program. Jika terdapat kesalahan berupa logic
error, periksa kembali source code di langkah 1.
C.
Langkah Kerja
1. Buka program FORTRAN yang telah tersedia.
2. Pahami terlebih dahulu maksud maupun tujuan program yang akan kita buat.
3. Susunlah Algoritma suatu program dapat berjalan, gunakan bantuan flow chart.
4. Ketikkan Source Code dengan aturan penulisan yang telah kita pahami
sebelumnya.
5. Lakukan kompilasi sampai tidak ada error.
6. Lakukanlah eksekusi
D.
Contoh Kasus
1. Problematika
Dengan menggunakan jajaran dan subprogram , dapat dibuat sebuah program yang
dapat menghitung jarak pandang henti, jarak yang diperlukan untuk menyiap, dan jarak
minimum yang diperlukan untuk menyiap berdasarkan kecepatan rencana. Data kecepatan
rencana dimuat dalam jajaran VR. Proses Inpur data dan menghirung data menggunakan
subprogram
49
2. Solusi
a.
Flow Chart
MULAI
REAL VR (I)
TULIS
DESKRIPI
PROGRAM
CALL INPUT
CALL PROSESHASIL
SELESAI
#Penjelasan Flowchart
Program ini mempunyai 2 subprogram yang membentuk program utama.
Disediakan jajaran real dengan variabel VR yang memuat 7 unsur. Menulis
deskripsi program. Kemudian memanggil subprogram CALL INPUT yang
selanjutnya membuka file KECEPATAN RENCANA.TXT. yang akan dibaca
sebagai variabel VR, kemudian RETURN yang berfungsi mengebalikan ke control
utama. Selanjutnya memanggil subprogram CALL PROSESHASIL, di dalamnya
memuat perhitungan dan penulisan hasil. Pertama dibuka file HASIL
HITUNGAN.TXT. yang dipersiapkan untuk menulis data jarak serta menuliskan
hasil ke dalam file. Selanjutnya RETURN yang berfungsi kembali ke control utama,
kemudian END yang berfungsi sebagai berhentinya program yang telah berjalan
50
b.
50
Source Code
#Penjelasan Program
No.
Baris 1
2
3-5
6-7
8,17,25,30,43
9
10
13
15-21
Keterangan
Memberikan Komentar Tentang Nama Program yang di buat
Menyediakan Jajaran VR
Deskripsi program
Menyuliskan pernyataan untuk memulai, dengan menekan enter
Komentar Tentang Penjelasan Statement yang ada di bawah baris tersebut.
Memanggil INPUT
Memanggil PROSESHASIL
Statement END
Membuat Subroutine untuk program INPUT, penyediaan jajaran real VR, dan
menggunakan OPEN dan READ untuk membaca data
23-51 Membuat Subroutine untuk menjabarkan program PROSESHASIL menggunakan
LOOP DO dalam perhitungan berulang menggunakan rumus, dan statement OPEN
dan WRITE untuk menuliskan hasil perhitungan
c.
Spesifikasi Pengamatan
51
40.0
41.78
50.0
56.59
60.0
73.16
70.0
91.48
80.0
111.55
100.0
156.93
120.0
209.31
E.
253.59
124.20
316.84
144.36
386.04
166.31
461.19
190.03
542.30
215.53
722.41
271.87
926.37
335.33
Latihan
1. Check dan perbaiki Kembali Program sehingga berhasil di eksekusi, Apakah benar
dalam eksekusinya? Kembangkanlah program dibawah ini sehingga lebih
interaktif! (Program terlampir)
F.
Pengayaan
1.
Buatlah suatu program kreatif dan inovatif yang dapat mempermudah kita dalam
menyelesaikan permasalahan rekayasa teknik sipil! Perhatikan kembali SELURUH
BAB yang sudah kita pelajari sebelumnya.
52