Modul Algoritma Dan Pemrograman PDF
Modul Algoritma Dan Pemrograman PDF
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\
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
./nf
keterangan :
nf = nama file tanpa ekstensi
Modul Algoritma Pemrograman
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 :
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.
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
a. Y = 2x + 10
Modul Algoritma Pemrograman
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 :
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?
(variabel)**(pangkat)
Pangkat Nb : bintang dua kali menyatakan x**2 maksudnya x2
suatu nilai pangkat
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 :
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
Contoh
Buatlah program perhitungan sederhana dari persamaan di bawah ini untuk mendapatkan
nilai s
1
𝑠 = 𝑣3 𝑡 + 𝑎𝑡 6
2
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
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
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
Untuk lebih lanjut, ketiklah program berikut pada text editor anda.
program input
implicit none
real :: x
simpanlah program di atas dengan nama file input.f95 pada folder yang sudah dibuat untuk
praktikum ini.
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.
Catatan : antara simbol “==” dengan “=” merupakan suatu hal yang berbeda. Untuk “=”
menandakan suatu variabel memiliki suatu nilai.
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
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
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 :
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
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
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 :: 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
Kasus
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
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
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)
program open_file
implicit none
real :: m(5), f(5)
real :: percepatan(5)
integer :: i
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
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 :
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
A. SUBROUTINE
Bentuk program dari subroutine terbagi atas dua bagian, bagian berada di dalam
program utama dan bagian berada di luar program utama.
Program utama
Implicit none
...
call nama_dummy(dummy)
contains
...
subroutine nama_dummy(dummy)
!deklarasi tipe data
...
end subroutine
...
end 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 :
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
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
subroutine akar(a,c)
real, intent(in) :: a
real, intent(out) :: c
c = (a)**0.5
end subroutine akar
Modul Algoritma Pemrograman
B. FUNCTION
Bentuk program dari function terbagi atas dua bagian, bagian berada di dalam
program utama dan bagian berada di luar program utama.
Program utama
Implicit none
!Deklarasi tipe data
...
contains
...
real function nama_dummy(dummy)
!deklarasi tipe data
...
end function
...
end program utama
Program utama
Implicit none
!Deklarasi tipe data
...
...
...
Contoh :
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
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
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 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