0% menganggap dokumen ini bermanfaat (0 suara)
149 tayangan28 halaman

Modul Algoritma Dan Pemrograman PDF

Modul ini membahas tentang algoritma dan pemrograman Fortran 95, meliputi pengenalan Fortran, contoh program hello world, dan penjelasan flowchart."

Diunggah oleh

RIEZKI Maisyar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
149 tayangan28 halaman

Modul Algoritma Dan Pemrograman PDF

Modul ini membahas tentang algoritma dan pemrograman Fortran 95, meliputi pengenalan Fortran, contoh program hello world, dan penjelasan flowchart."

Diunggah oleh

RIEZKI Maisyar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 28

MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN


(IMPLEMENTASI FORTRAN 95)

LABORATORIUM FISIKA KOMPUTASI


JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SYIAH KUALA
BANDA ACEH
Modul Algoritma Pemrograman

PENDAHULUAN
Fortran merupakan salah satu bahasa pemrograman yang digunakan dalam bidang ilmu sains
atau yang dikenal dengan sains komputer. Gunanya adalah tidak lain membantu untuk
memecahkan masalah dalam sains yang tidak bisa diselesaikan secara analitik. Dengan kata
lain kita menggunakan fortran sebagai alat bantu kita untuk memecahkan masalah tersebut
secara numerik. Numerik merupakan metode pendekatan (aproksimasi) dalam menentukan
sebuah hasil yang tidak bisa dilakukan lagi dengan analitik (mencari dengan manual).
Tentunya hasil yang diperoleh dari numerik pun adalah aproksimasi dari perhitungan analitik.

Bahasa pemrograman ini termasuk bahasa pemrograman tingkat tinggi. Maksudnya adalah
dimana bahasa pemrograman fortran memiliki karakteristik bahasa yang mudah dipahami
oleh manusia. Dengan kata lain bahasanya mendekati bahasa manusia dalam hal ini adalah
penggunaan logiknya.

Fortran sendiri selama pengetahuan yang saya miliki, terdiri atas beberapa jenis yaitu Fortran
77, Fortran 90, dan Fortran 95. Namun dari ketiga jenis fortran tersebut tidak ada yang
membedakan tujuan utamanya, hanya saja model penulisan yang digunakan sedikit berbeda.
Tentunya dengan adanya Fortran 95 cara penulisannya cukup mudah dipahami.

Pada modul ini akan diberikan penjelasan dasar-dasar penggunaan algoritma yang kemudian
diimplementasikan dalam bentuk pemrograman sederhana. Ini menjadi langkah awal untuk
menuju tingkat di atasnya, yaitu pemrograman numerik.
Modul Algoritma Pemrograman

PERSIAPAN

Sebelum memulai praktikum algoritma dan pemrograman, alangkah baiknya pertama sekali
membuat folder khusus untuk praktikum ini. Tujuannya adalah untuk mempermudah
pekerjaan ketika membuat suatu program. Buatlah nama folder yang mudah diingat dan
diucapkan dan disimpan pada direktori D atau disesuaikan. Mengingat pada praktikum ini
lebih diutamakan menggunakan terminal atau command prompt untuk membuat dan
memproses program yang dibuat. Untuk menyeragamkan, digunakan sistem operasi
windows dalam praktikum ini. Namun tidak menutup kemungkinan apabila ada yang
menggunakan sistem operasi lainnya seperti Linux (Ubuntu) atau MacOS.

A. Menggunakan Command Prompt Pada Sistem Operasi Windows dan Terminal Pada
Sistem Operasi Linux

Perintah
Keterangan
Linux Windows
Membuka direktori cd C:\>cd\

Secara baku perintah di atas akan


membuka direktori C pada bagian
system32, akan ditampilkan seperti
berikut

C:\Windows\system32>
Masuk ke direktori D dari C:\Windows\system32>d:
direktori C atau masuk ke
folder dari direktori Penambahan d: akan
memindahkan layar kerja pada
cmd menuju direktori D. Ini dapat
- disesuaikan berdasarkan nama
direktori yang dibuat oleh masing-
masing pengguna. Perintah di atas
akan menampilkan hasil

D:\>
Masuk ke folder yang ada di cd Nama_Folder D:\> cd\ Nama_Folder
dalam suatu direktori
Nama folder sebaiknya tidak lebih
dari satu kata. Kalaupun lebih dari
satu kata berikan tanda “_” untuk
memudahkan pembacaan sistem
terhadap folder dari cmd. Hasil dari
perintah di atas akan menjadi
seperti berikut
Modul Algoritma Pemrograman

D:\Nama_Folder>
Membuat suatu folder Mkdir Nama_Folder D:\mkdir Nama_Folder

Dengan perintah mkdir folder akan


dibuat melalui cmd
Membuat suatu file dengan Gedit nama_file.txt D:\Nama_Folder> nama_file.txt
format text (misalnya .txt,
.dat) Gedit merupakan text
editor yang terdapat
di dalam Linux
Menghapus suatu file rm –r nama_file.txt D:\Nama_Folder> del nama_file.txt
Menghapus folder rm –r Nama_Folder D:\>rmdir Nama_Folder

B. Menjalankan Program Fortran Dari Terminal

gfortran -o nf nama _file.f95

./nf

keterangan :
nf = nama file tanpa ekstensi
Modul Algoritma Pemrograman

Bagian 1 HELLO WORLD!!!


Tujuan : Untuk memahami output dasar dari pemrograman sederhana hello world

Hampir diseluruh jenis bahasa pemrograman untuk pertama kali dikenalkan istilah “hello
world”. Maksudnya adalah, bagaimana caranya menampilkan tulisan “hello world” pada layar
terminal sesuai dengan perintah bahasa pemrograman yang akan kita pelajari, yaitu Fortran.
Lantas bagaimana cara menampilkan “hello world” pada layar terminal menggunakan bahasa
pemrograman Fortran?

Contoh :

Program hello_world
implicit none
!Menampilkan Hello World pada layar terminal
print*, "Hello World"
end program

Cara :

1. Bukalah text editor anda (seperti notepad atau sejenisnya).


2. Ketiklah program di atas ke dalam notepad dengan benar.
3. Simpanlah file tersebut dengan nama file hello.f95 pada folder yang sudah anda buat
sejak awal. Setelah itu tutup text editor anda.
4. Bukalah terminal atau command prompt dan masuklah ke dalam folder yang suda
anda buat sejak awal. Dimana di dalam folder tersebut terdapat file hello.f95 yang
sudah tersimpan.
5. Ketika perintah gfortran –o hello hello.f95 lalu tekan enter.
6. Lalu ketik ./hello untuk menampilkan hasil dari program yang dibuat. Maka hasil akan
menampilkan tulisan “Hello World” pada layar terminal anda.

Penjelasan :

1. Setiap program yang dibuat menggunakan Fortran selalu dimulai dengan nama
program yang ditulis setelah kata program pada baris pertama.
2. Implicit none pada baris kedua bermakna untuk memberikan semua pengaturan baku
secara default ketika deklarasi variabel dinyatakan dalam program.
3. Tanda seru (!) pada baris ketiga merupakan suatu komentar yang diberikan oleh
pengguna sebagai catatan tambahan dan tidak berpengaruh kepada program ketik
diproses.
4. Print *, pada baris keempat merupakan perintah untuk menampilkan kalimat “Hello
World” ke layar terminal ketika proses kompalisasi dilakukan. Perlu diingat, penulisan
kalimat selalu berada di dalam tanda kutip dua (“suatu kalimat“)
5. Baris terakhir selalu diakhiri dengan end program
Modul Algoritma Pemrograman

Bagian 2 FLOWCHART
Flowchart atau disebut juga sebagai diagram alir merupakan cara bagaimana menerjemahkan
suatu program atau suatu kegiatan berproses. Secara sederhana sutau diagram alir dimulai
dari persiapan, proses dan hasil. Namun tentunya masih banyak ketentuan lain yang harus
dipakai sesuai dengan program yang dibuat. Berbagai macam bentuk diagram alir yang
digunakan dan secara umum bentuk-bentuk diagram alir adalah sebagai berikut.

Bentuk Keterangan
Disebut sebagai terminal yang digunakan
untuk memulai dan mengakhiri suatu
program.

Disebut sebagai proses yang digunakan


untuk memproses segala sesuatu yang
berkaitan dengan program. Secara umum
adalah berupa proses perhitungan.

Disebut sebagai decision yang digunakan


untuk mengambil satu keputusan dari dua
pilihan yang tersedia.

Disebut sebagai input/output yang


digunakan untuk mendeklarasikan semua
variabel yang digunakan dan kemudian akan
ditampilkan sebagai suatu hasil keluaran

Disebut sebagai One-page conetor yang


digunakan untuk menghubungkan diagram
alir yang terpisah dalam satu halaman yang
sama.

Disebut sebagai Off-page conetor yang


digunakan untuk menghubungkan diagram
alir yang terpisah pada halaman yang
berbeda

Disebut sebagai flowline yang digunakan


untuk menghubungkan satu simbol dengan
simbol lain
Modul Algoritma Pemrograman

Digunakan untuk membuat proses looping


yang berpasangan dengan one-page
conector

entuk Sederhana Diagram Alir

Contoh :

Misalkan terdapat dua variabel yang diketahui, yaitu a = 5 dan b = 10. Buatlah diagram alir
untuk proses c = a + b.

Jawab :

Mulai

a=5, b=10

c=a+b

Tampilkan c

Selesai

Kasus

Buatlah diagram alir dari kasus di bawah ini :

a. Y = 2x + 10
Modul Algoritma Pemrograman

b. Ilustrasikan : Si A meminta dibelikan kepada si B berupa bakso goreng. Namun si A


mengatakan kepada si B apabila bakso goreng tidak ada, maka diganti dengan
batagor.
Modul Algoritma Pemrograman

Bagian 3 TIPE DATA dan OPERASI MATEMATIKA


Tujuan :
Ø Mengetahui dan memahami tipe data yang digunakan dalam pemrograman secara
umum
Ø Memahami konsep operasi matematika dasar menggunakan pemrograman Fortran
serta mampu merancang program operasi matematika menggunakan pemrograman
Fortran

A. Tipe Data

Terdapat beberapa tipe yang digunakan ketika membuat suatu program. Tipe-tipe data
tersebut berupa dalam bentuk real, integer, character, dan complex. Berikut penjelasan dari
tipe data :

Tipe Data Keterangan


Real Tipe data yang sifatnya atau memiliki nilai
desimal atau bukan bilangan bulat.
Contohnya : 2.5; 5.8; 4.0 dst
Integer Tipe daya yang memiliki nilai bilangan bulat.
Cotoh : 1,2,3,4.. dst
Character/string Tipe data yang tidak bernilai apa pun hanya
berupa karakter string. Contoh : Nama,
Lokasi, dll
Complex Tipe data yang tidak bisa diakarkan sebab
terdapat nilai yang minus. Contoh : -4, -16, -
81, dst

B. Operasi Matematika

Kita mengetahui bahwa operasi matematika secara umum ada empat, yaitu tambah, kurang,
kali, dan bagi. Lantas, bagaimana cara mengoperasikan keempat operasi matematika tersebut
ke dalam pemrograman fortran?

Operasi Matematik Simbol


Tambah +
Kurang -
Kali *
Bagi /

Bentuk Matematika Perintah Contoh


Akar sqrt sqrt(4)
Eksponensial Exp exp(0)
Modul Algoritma Pemrograman

(variabel)**(pangkat)
Pangkat Nb : bintang dua kali menyatakan x**2 maksudnya x2
suatu nilai pangkat

TRIGONOMETRI DALAM FORTRAN

Perlu diketahui bahwa penggunaan trigonometri sangatlah penting dalam perhitungan yang
kompleks. Trogonometri dasar seperti sin dan cos sering digunakan dalam suatu peritungan.
Perhatikan tabel di bawah ini :

Bentuk Nilai Dalam dejarat Dalam radian


(degree)
Sin 90 1 0.8939966636
cos 90 0 -0.44807361612

Dari tabel di atas menunjukan bahwa penggunaan satuan derajat dan radian memberikan
nilai yang berbeda dari input nilai yang sama. Secara baku dalam Fortran, penggunaan sin dan
cos akan memberikan hasil dalam bentuk radian. Maka dari itu untuk menghasilkan nilai sin
dan cos dalam bentuk derajat, diperlukan konveri dari radian ke derajat menggunakan
persamaan berikut

𝑟𝑎𝑑𝑖𝑎𝑛 = 𝑑𝑒𝑟𝑎𝑗𝑎𝑡 𝑥 𝜋/180

apabila ingin mengkonversi dari derajat ke radian maka gunakan

𝑑𝑒𝑟𝑎𝑗𝑎𝑡 = 𝑟𝑎𝑑𝑖𝑎𝑛 𝑥 180/𝜋

Contoh

Buatlah program perhitungan sederhana dari persamaan di bawah ini untuk mendapatkan
nilai s

1
𝑠 = 𝑣3 𝑡 + 𝑎𝑡 6
2

dimana vo = 4.5 m/s, t = 2 dan a = 4.8 m/s2.

Terlebih dahulu lakukan analisis dari persamaan yang digunakan dan nilai yang di input.
Variabel kecepatan dan percepatan memiliki nilai desimal, maka dari itu kedua variabel
tersebut digolongkan ke dalam tipe data real. Karena di dalam persamaan tersebut memili
tipe dara real, maka untuk variabel jarak s juga bertipe data real. Sedangkan untuk variabel
waktu termasuk ke dalam tipe data integer.
Modul Algoritma Pemrograman

Ketik program di bawah ini dengan baik dan simpan dengan nama file glbb.f95 pada folder
yang sudah dibuat untuk praktikum ini

program glbb
implicit none
!Deklarasikan variabel dalam bentuk tipe data
real :: s, v0, a
integer :: t

!Deklarasikan nilai variabel yang diketahui


v0 = 4.5
a = 4.8
t = 2

!Proses perhitungan menggunakan persamaan terkait


s = (v0*t) + (a*(t**2))/2

!Menampilkan hasil perhitungan


print *, "Diperoleh jarak yang ditempuh =", s, "meter"
end program

hasil yang diperoleh adalah s = 18.6 meter

Kasus

1. Buatlah flowchart dan program Fortran dari persamaan gerak parabola di bawah ini
dimana xo = yo = 4 m, vo = 6 m/s, q = 30o, t = 12.5 detik, dan g = 9.8 m/s2.

?
𝑥 = 𝑥7 + 𝑣7 cos 𝜃 𝑡 dan 𝑦 = 𝑦7 + 𝑣7 sin 𝜃 𝑡 + 6 𝑔 𝑡
Modul Algoritma Pemrograman

Bagian 4 INPUT VARIABEL (READ) dan LOGIKA (IF dan ELSE)


Tujuan :
Ø Memahami penggunaan input variabel serta penerapannya
Ø Memahami konsep dari logika IF dan ELSE serta mampu merancang program IF dan
ELSE menggunakan pemrograman Fortran

A. Input Variabel

Input variabel merupakan salah satu cara suatu program untuk menerjemahkan segala
sesuatu masukan yang diberikan oleh pengguna. Seperti ketika memasukan password pada
komputer atau ponsel, kurang lebih seperti itulah kerja dari input variabel. Penggunaan input
variabel pada fortran menggunakan printah

Read *, variabel yang di input

Untuk lebih lanjut, ketiklah program berikut pada text editor anda.

program input
implicit none
real :: x

print *, "Masukan suatu nilai x"


read *, x

print *, "Niali x = ", x


end program

simpanlah program di atas dengan nama file input.f95 pada folder yang sudah dibuat untuk
praktikum ini.

B. Logika (IF dan ELSE)

Logika IF dan ELSE pada suatu pemrograman digunakan dimana hanya satu keadaan yang akan
dijalankan ketika terdapat dua atau lebih keadaan tertentu. Hal ini sudah diungkit secara
singkat pada bagian 2. Namun pada bagian ini akan dijelaskan lebih lanjut penggunaan dari IF
dan ELSE.

Untuk menggunakan if dan else digunakan hubungan rasional sebagai berikut ;

Lambang Bentuk Lain Keterangan Contoh


== .eq. Sama dengan A == B
!= .ne. Tidak sama dengan A !== B
< .lt. Lebih besar dari A>B
> .gt. Lebih kecil dari A<B
>= .le. Lebih besar sama A >= B
dengan
Modul Algoritma Pemrograman

<= .ge. Lebih kecil sama A <= B


dengan
- .not. Tidak A .not. B
- .and. Dan A .and. B
- .or. Atau A .or. B

Catatan : antara simbol “==” dengan “=” merupakan suatu hal yang berbeda. Untuk “=”
menandakan suatu variabel memiliki suatu nilai.

Bentuk umum dari IF dan ELSE adalah

apabila memiliki lebih dari dua keadaan, maka bentuknya adalah seperti berikut

program input
implicit none
...
...

if (kondisi 1)then
proses 1
else if (kondisi 2)then
proses 2
else
proses 3
end if
...
end program

Contoh

Buat program fortran menggunakan IF dan ELSE serta Input variabel. Terdapat dua variabel
input a dan b. berikan kondisi apabila nilai a lebih besar dari nilai b, maka akan menampilkan
keterangan “Nilai a lebih besar dari nilai b”. Jika sebaliknya, keterangannya menjadi “Nilai b
lebih besar dari nilai a”.

Ketik program di bawah ini dengan benar dan simpan dengan nama file if_else.f95

program logika
implicit none
!Deklarasi tipe variabel
real :: a, b

write(*,*) "Masukan nilai a"


read *, a
write(*,*) "Masukan nilai b"
read *, b
Modul Algoritma Pemrograman

if (a .gt. b) then
write(*,*) "Nilai a lebih besar dari nilai b "
else
write(*,*) "Nilai b lebih besar dari nilai a "
end if
end program

Kasus

Buatlah program logika dengan menggunakan input variabel untuk membedakan nilai ganjil
dan nilai genap dari nilai input yang diberikan. Serta buat diagram alirnya (flowchart).
Modul Algoritma Pemrograman

Bagian 5 PENGULANGAN (LOOP)


Tujuan : Memahami kerja dari pengulangan (looping) pada pemrograman Fortran serta
mampu merancang program menggunakan pengulangan (looping)

Pengulangan di dalam suatu pemrograman merupakan suatu hal yang sangat diperlukan. Hal
itu berguna untuk mempercepat dan mempermudah suatu perhitungan dari jumlah data
yang sangat banyak. Pengulangan atau disebut juga dengan istilah looping di dalam
pemrograman fortran memiliki bentuk secara umum adalah sebagai berikut

do i = 0, n, selang

...proses perhitungan...

end do

perlu di ingat bahwa ketika pengulangan menggunakan bentuk “do” maka nilai yang berada
di dalamnya memiliki tipe data integer (bilangan bulat). Dimana “n” merupakan suatu nilai
yang diberikan dan bernilai maksimum. Variabel selang merupakan suatu nilai yang
menyatakan nilai selang untuk rentang dari 0 sampai n.

Misalkan

do i = 0, n, 2

i merupakan nilai urut dari 0 sampai n, dimana n = 10 maka i = 0, 1, 2, 3, ...., 10. Karena
memiliki selang sama dengan 2, maka i = 0, 2, 4,6,8,10

Contoh :

Membuat angka yang berurutan, seperti : 1, 2, 3, ..., dst

program pengulangan
implicit none
!Deklarasi tipe data
integer :: i, n, x

n = 10

!Proses pengulangan
x = 0
do i = 1,n
x = x + 1
write(*,*) x
end do
end program

simpanlah file tersebut dengan nama file pengulangan_do.f95


Modul Algoritma Pemrograman

Script di atas merupakan penggunaan pengulangan dasar dengan bentuk “do”. Ada beberapa
bentuk penggulangan selain “do”, yaitu do while dan penggulangan menggunakan bentuk IF
dan ELSE. Berikut bentuk dari pengulangan menggunakan do while :

do while (kondisi)
....
end do
kondisi yang berada di dalam do while sama seperti yang ada di dalam if dan else. Do while
dapat menggunakan tipe data real.

Contoh :

program do_while
implicit none
!Deklarasi tipe data
real :: x, n

x = 0
n = 10
do while (x .lt. n)
x = x + 1
write(*,*) x
end do
end program

simpanlah program di atas dengan nama file while_loop.f95. Perlu diingat bahwa, setiap
perintah yang berada di dalam do-end do dan do while-end do maka akan terus berulang
sebanyak batas yang ditentukan. Misalnya pada contoh di atas proses x = x + 1 terus berulang
hingga n = 10 dan write (*,*) x juga akan menampilkan hasil dari peroses sebanyak n = 10.
Apabila write (*,*) x ditulis di bawah end do, maka write(*,*) akan menampilkan hasil akhir
dari pengulangan do maupun do while.

Kasus

1. Buatlah program looping menggunakan bentuk “do” sehingga membentuk deret


bilangan prima dari suatu penjumlahan sederhana
2. Buatlah program looping menggunakan bentuk “do while” sehingga membentuk
suatu deret dengan selisih 2.5
3. Sertakan diagram alir untuk kedua kasus program (poin 1 dan 2)
Modul Algoritma Pemrograman

Bagian 6 ARRAY
Tujuan : Memahami bentuk array dan mampu merancang program dengan menggunakan
bentuk array

Array merupakan suatu susunan dari kumpulan data yang dirancang pada suatu program.
Dalam bidang sains sangat diperlukan penggunaan array. Implementasinya seperti vektor dan
matriks. Secara umum bentuk array dalam pemrograman Fortran dengan menggunakan
dimension yang disematkan pada suatu tipe data yang digunakan. Bentuknya adalah sebagai
berikut :

real, dimension (2,2) :: m !matriks m dengan ukuran 2x2


real, dimensian (2) :: m !vektor m dengan ukuran 2

bentuk di atas bisa juga ditulis seperti berikut

real :: m(2)
real :: m(2,2)

Untuk mempermudah pembahasan tentang array, secara sederhana array digunakan untuk
memasangkan suatu data dengan urutan data yang dimilikinya. Misalkan terdapat 5 data yang
terdiri i, j, k, l, m. Artinya data i merupakan urutan data pertama, j urutan data kedua dan
seterusnya hingga m urutan data kelima. Apabila bentuk array disajikan dalam bentuk matrik,
maka array tersebut akan menunjukkan nomor elemen dari matrik yang digunakan. Misalnya
matriks A (2 x 2), pada matriks tersebut memiliki nomor elemen anataranya elemen A(1,1) ;
A(1,2) ; A(2,1) dan A(2,2). Lebih lanjut lagi tentang array dalam bentuk matriks akan dibahas
pada bagian 8. Pada bagian ini akan dijelaskan penggunaan array dalam bentuk vektor.

Contoh :

Terdapat 5 data yang terdiri atas : 45, 30, 21, 26, 10. Buatlah program penjumlahan dengan
Fortran dari data terkait menggunakan bentuk array.

program contoh_array
implicit none
real :: m(5), h
integer :: i

m(1) = 45
m(2) = 30
m(3) = 21
m(4) = 26
m(5) = 10

h = 0
do i = 1,5
h = h+m(i)
end do
Modul Algoritma Pemrograman

write(*,*) h
end program

simpan program di atas dengan nama file array.f95

Kasus

Penjumlahan dua vektor

Buatlah program Fortran penjumlahan antara data A dan data B menggunakan array dari data
di bawah ini kemudian carilah nilai rata-ratanya dari hasil penjumlahan tersebut. Sertakan
diagram alir dari program yang dirancang.

Data A Data B
90 85
120 45
56 39
96 20
89 66
91 56
10 150
15 20
40 40
30 20
Modul Algoritma Pemrograman

Bagian 7 MEMBUKA dan MENYIMPAN DATA


Tujuan : Memahami cara membuka dan menyimpan data dalam pemrograman Fortran serta
mampu merancang programnya

Di dalam suatu pemrograman sangat diperlukan membuka suatu data dan menyimpannya
untuk dilakukan suatu proses perhitungan yang berjumlah besar. Bentuk umum penulisan
dari membuka data adalah sebagai berikut

Open (10, file=’nama_file.txt’, status=’keterangan_status’)


...
...
close(10)

Ø Angka 10 merupakan nilai index yang bebas diatur


Ø Status merupakan keterangan yang diberikan untuk file input. Keterangan tersebut
berisikan :
1. New = membuat suatu data dari file yang kosong
2. Replace = menggantikan isi file yang lama dengan yang baru
3. Old = mempertahankan isi file yang lama

Contoh

Suatu benda memiliki 5 keadaan dimana diketahui massa dan gaya pada setiap keadaan yang
terdapat pada file percepatan.txt. Tentukan nilai percepatan untuk masing-masing keadaan
benda tersebut dengan merancang program Fortran. (catatan : kolom pertama adalah massa
dan kolom kedua adalah gaya)

Simpan dengan nama file open_file.f95

program open_file
implicit none
real :: m(5), f(5)
real :: percepatan(5)
integer :: i

open(10, file='percepatan.txt', status="old")


do i = 1,5
read(10,*) m(i), f(i)
percepatan(i) = f(i)/m(i)
write(*,*) percepatan(i)
end do
close(10)
end program

untuk menyimpan hasil dari perhitungan di atas tambahkan bagian open yang baru (font
merah) dan beri nama file hasil_percepatan.txt dengan status adalah replace, seperti script
di bawah ini
Modul Algoritma Pemrograman

program open_file
implicit none
real :: m(5), f(5)
real :: percepatan(5)
integer :: i

open(10, file='percepatan.txt', status="old")


open(20, file='hasil_percepatan.txt', status='replace')
do i = 1,5
read(10,*) m(i), f(i)
percepatan(i) = f(i)/m(i)
write(20,*) percepatan(i)
write(*,*) percepatan(i)
end do
close(10)
end program

write(20,*) merupakan hasil perhitungan percepatan akan disimpan ke dalam file


hasil_percepatan.txt yang diberi kode index 20.

Kasus

Suatu data pengukuran sound level meter telah dilakuakan sebanyak 50 kali pengulangan
terhadap alat musik tradisional rapai. Data tersebut disajikan di dalam file std.txt. buatlah
program untuk menghitung standar deviasi dari data tersebut. Serta buatlah diagram alirnya!
Modul Algoritma Pemrograman

Bagian 8 MATRIKS
Tujuan : Memahami konsep pembuatan matriks menggunakan pemrograman Fortran serta
mampu merancang program matriks

𝑎?? 𝑎?6
𝐴 = B𝑎 𝑎66 C
6?
Untuk membuat suatu matriks sangat berkaitan dengan penggunaan array yang sudah di
bahas pada bagian sebelumnya. Matriks merupakan suatu kumpulan data yang terdiri atas
baris dan kolom. Secara sederhana terdapat matriks yang memiliki orde 2x2; 3x3; 4x4; dan
seterusnya. Secara sederhana untuk membuat matriks dengan orde 2 x 2 adalah sebagai
berikut :

Simpanlah program di bawah ini dengan nama file matriks.f95

program matriks
implicit none
real, dimension (2,2) :: a
integer :: i, j

a(1,1) = 1
a(1,2) = 0
a(2,1) = 0
a(2,2) = 1

do j= 1,2
do i = 1,2
write(*,*) a(i,j)
end do
end do
end program

Setelah dijalankan program di atas maka hasilnya akan menampilkan hanya satu kolom saja.
Hal itu tidak menjadi suatu masalah, karena di dalam Fortran bentuk suatu matriks
diterjemahkan berbasis kolom (a11, a21, a12, a22) yang diletakkan berdasarkan dimensi
arraynya.

Namun, apabila ingin dibuat dengan tampilan bentuk matriks secara umum dapat dirancang
dengan merubah bentuk “do” seperti berikut :

...
do i = 1,2
write (*,*) (a(i,j),j=1,2)
end do
....
Modul Algoritma Pemrograman

Kasus

1 5 20 9 15 0
𝐴 = D9 17 2 I 𝐵 = D1 3 18I
5 3 11 5 27 9
Buatlah penjumlahan untuk kedua matriks di atas dengan menggunakan program Fortran.
Gunakan seluruh bagian materi yang sudah dibahas pada bagian-bagian sebelumnya.
Sertakan diagram alir dari program tersebut.
Modul Algoritma Pemrograman

Bagian 9 ORGANISASI PROGRAM : SUBROUTINE, FUNCTION


& MODULE
Tujuan : Memahami konsep organisasi program pada Fortran menggunakan subroutine,
function dan module. Serta mampu merancang menggunakan salah satu atau semua
organisasi program yang ada.

A. SUBROUTINE

Subroutine merupakan salah satu cara menyederhanakan bentuk suatu program


ketika dirancang. Secara sederhana subroutine disebut juga sebagai anak program
untuk membantu program utama (main program) memproses sutau perhitungan
yang sederhana maupun kompleks.

Bentuk program dari subroutine terbagi atas dua bagian, bagian berada di dalam
program utama dan bagian berada di luar program utama.

Subroutine di Dalam Program Utama

Program utama
Implicit none
...
call nama_dummy(dummy)

contains
...

subroutine nama_dummy(dummy)
!deklarasi tipe data
...
end subroutine
...
end program utama

Subroutine di Luar Program Utama

Program utama
Implicit none
...
call nama_dummy(dummy)
...
end program

subroutine nama_dummy(dummy)
!deklarasi tipe data
real, intent(in) = varin !inten(in) sebagai input variabel
real, intent(out)= varout !intent(out) sebagai output variabel
Modul Algoritma Pemrograman

...
end subroutine
contoh :

Subroutine di Dalam Program Utama

program penjumlahan
implicit none
real :: a,c
! Read in value of a
write(*,*) "Masukan nilai a"
read(*,*) a

call akar(a)
write(*,*),"Nilai akar dari", a, "=", c

contains

subroutine akar(a)
real :: a
c = (a)**0.5
end subroutine akar

end program penjumlahan

Subroutine di Luar Program Utama

program penjumlahan
implicit none
real :: a,c
! Read in value of a
write(*,*) "Masukan nilai a"
read(*,*) a

call akar(a,c)
write(*,*),"Nilai akarnya dari", a, "=", c

end program penjumlahan

subroutine akar(a,c)
real, intent(in) :: a
real, intent(out) :: c
c = (a)**0.5
end subroutine akar
Modul Algoritma Pemrograman

B. FUNCTION

Sama halnya seprti subroutine, function juga digunakan sebagai penyerdehanaan


suatu program yang dirancang. Function dibuat untuk mempermudah suatu program
utama menjalankan proses perhitungan. Ketika terdapat dua proses menggunakan
fungsi yang sama, maka hanya cukup membuat satu fungsi untuk digunakan ke dalam
kedua proses terkait.

Bentuk program dari function terbagi atas dua bagian, bagian berada di dalam
program utama dan bagian berada di luar program utama.

Function Dalam Program Utama

Program utama
Implicit none
!Deklarasi tipe data
...

panggil nama dummy(dummy)

contains
...
real function nama_dummy(dummy)
!deklarasi tipe data
...
end function
...
end program utama

Function Luar Program Utama

Program utama
Implicit none
!Deklarasi tipe data
...
...

panggil nama dummy(dummy)

end program utama

...

real function nama_dummy(dummy)


!deklarasi tipe data
...
end function
Modul Algoritma Pemrograman

Contoh :

Function Dalam Program Utama

program penjumlahan
implicit none
real :: a,u

! Read in value of a
write(*,*) "Masukan nilai a"
read(*,*) a

u = akar(a)
write(*,*),"Nilai akarnya dari", a, "=", u

contains

real function akar(a)


real :: a
akar = (a)**0.5
end function akar

end program penjumlahan

Function Luar Program Utama

program penjumlahan
implicit none
real :: a,u,akar

! Read in value of a
write(*,*) "Masukan nilai a"
read(*,*) a

u = akar(a)
write(*,*),"Nilai akarnya dari", a, "=", u

end program penjumlahan

real function akar(a)


real :: a
akar = (a)**0.5
end function akar

Ada sedikit perbedaan antara function di dalam program utama dan di luar program
utama, bisakah anda analisis dan berikan jawaban anda?
Modul Algoritma Pemrograman

C. MODULE

Module juga sangat penting dalam pemrograman Fortran yang sudah kompleks, yang
membutuhkan beberapa bagian proses untuk mendukung program utama. Secara
umum module digunakan ketika suatu program dirancang antara program utama
dengan program pendukung berada pada file yang berbeda, disinilah guna module
untuk menghubungkan antara program utama dengan program pendukung. Bentuk
umum module adalah sebagai berikut

module name
[statement declarations]
[contains
[subroutine and function definitions] ]
end module [name]

Module dibuat pada file yang berbeda dengan file program utama. Untuk memanggil
file module ke dalam program utama digunakan perintah

use nama_file_module

contoh :

Buatlah program di bawah ini sebagai program utama dengan nama swapmain.f95

program swapmain
use swapmod ! use statements must come first
implicit none
real :: a, b
! Read in two values
read(*,*) a, b
call swap(a,b)
write(*,*) a, b
end program swapmain

kemudian buat file baru sebagai bagian module dengan nama file swapmod.f95

module swapmod
implicit none ! you need this in every module
!
! Global declarations would appear here if any
!
contains
! routines provided by this module
subroutine swap(x, y)
real :: x, y, temp
temp = x
x = y
y = temp
end subroutine swap
end module swapmod
Modul Algoritma Pemrograman

simpanlah kedua file tersebut dalam folder yang sama dan kemudian jalankan terlebih
dahulu file swapmod.f95 dengan perintah di bawah ini melalui terminal

gfortran –c swapmod.f95

akan terbentuk file baru dengan nama swapmod.mod dan swapmod.o

Kemudian jalankan perintah di bawah ini untuk swapmain.f95 dan swapmod.o

gfortran –o swap swapmain.f95 swapmod.o

akan terbentuk file swap untuk menjalakan programnya. Jalankan dengan perintah
./swap melalui terminal

Kasus

1. Buatlah suatu program Fortran menggunakan Subroutine atau Function (pilih salah
satu) terkait permasalahan dalam lingkup fisika. Bonus (alangkah baiknya apabila
subroutine atau function dibuat dengan bentuk module)

Catatan :
Ø program tiap individu berbeda
Ø gunakan setiap materi yang sudah dipelajari dalam program yang anda rancang

Anda mungkin juga menyukai