PENUNTUN PRAKTIKUM
PEMOGRAMAN KOMPUTER
BAHASA FORTRAN
LABORATORIUM KOMPUTASI
JURUSAN TEKNIK SIPIL
FAKULTAS TEKNIK-UNIVERSITAS
ANDALAS PADANG
Pendahuluan - 1
Tujuan1. Memahami komponen utama komputer pribadi (Personal Computer). 2. Memahami tentang system operasi (Operating System).
Perbekalan Praktikum
Secara umum, komputer pribadi mempunyai komponen yang saling berhubungan dan berinteraksi antara satu dengan lainnya. Komponen tersebut antara lain.
a. Central Processor Unit (CPU). Kegunaan utma dari CPU dalah untuk memproses data dalam main memory. CPU mampu mengolah data, baik data aritmatik maupun operasi logika yang tersimpan dalam main memory. CPU merupakan bagian yang paling rumit dalam komputer yang terdiri atas chip untuk melakukan semua instruksi dalam komputer. CPU mempunyai register dan chace memory untuk menyimpan semua instruksi dan data dari dan ke main memory. Disamping itu, dalam CPU terdapat jaringan yang sangat rumit untuk melakukan perintah yang akan dilakukan dalam ALU (Arithmatic and Logic Unit).
Pendahuluan - 2
b. Main Memory. Perangkat lunak/program (software) dan data-data yang diperlukan akan disimpan dalam main memory. Perintah-perintah dalam program diambil dan dieksekusi oleh CPU dari main memory. Semua data maupun pernyataan yang berkenaan dengan program disimpan dalam main meory ini. Secara fisik memory merupakan cell yang diindeks berdasarkan alamat-alamat tertentu. Cell berisi sejumlah bytes. Tiap bait mempunyai 8 bits. Memory dapat dalam bentuk RAM (Random Access Memory) maupun dalam bentuk ROM (Read Only Memory). RAM hanya dapat menyimpan data untuk sementara hingga program selesai dieksekusi.
c. Secondary Storage. Secondary Storage merupakan penyimpan data secara permanen. Hardisk merupakan dalam satu Secomdary Storage yang populer karena kemampuannya untuk menyimpan data dalam kapasitas banyak.
d. Input/Output Device. I/O device merupakan jalur untuk mengirim dan menerima data dari dan ke komputer. I/O divide akan terhubung dengan perangkat lain seperti keyboard, monitor, printer dan perangkat lain.
Sistim Operasi (Operating System)
Sistem Operasi merupakan perangkat lunak yang mengatur pengoperasian, pengendalian dan mengkoordinir semua kegiatan dalam perangkat komputer. Sistem operasi merupakan perangkat lunak dasar yang harus dimiliki oleh setiap perangkat komputer pribadi. Windows, Macintos dan
Pendahuluan - 3
Unix family merupakan perangkat lumak sistem operasi yang umum digunakan dalam komputer pribadi.
Pemograman Komputer
Pada dasarnya pemograman komputer merupakan serangkaian perintah yang terstruktur dan sistematis kepada komputer. Karena komputer hanya dapat memahami perintah dalam bentuk bahasa mesin, maka diperlukan perangkat lunak yang berguna untuk menginterpretasikan perintah dari high level language ke bahasa mesin. Walaupun saat ini banyak perangkat lunak yang demikian banyak tersedia, seperti C/C++, Pascal, COBOL, ADA, akan tetapi dalam praktikum ini hanya digunakan bahasa FORTRAN 77. FORTRAN-77 umumnya digunakan untuk menyelesaikan masalah sains dan teknologi.
Dalam banyak hal, pemograman komputer disusun untuk menyelesaikan berbagai masalah. Dengan demikian, proses pemograman komputer merupakan bagian dari penyelesaian permasalahan itu sendiri. Penjelasan lebih detail tentang penyelesaian malsah dengan program komputer akan diberikan dalam modul 8 paraktikum ini. Sebelum menyusun pemograman, langkah-langkah berikut sangat penting untuk dilakukan.
a. Perumusan masalah. b. Penyusunan algoritma.
c. Penyusunan diagram alir (flow chart). d. Pengkodean program (source code).
Pendahuluan - 4
a. Perumusan Masalah
Perumusan masalah merupakan proses untuk mendeskripsikan masalah serta penjabaran masalah tersebut dalam bentuk yang lebih spesifik, yakni menentukan bagian-bagian yang masuk dalam kategori input, proses dan output. Contoh sederhana berikut memperlihatkan permusan masalah dimaksud.
Perhitungan volume balok ditentukan dengan persamaan V=l*p*t. Dari rumusan tersebut terlihat bahwa data masukan adalah lebar, panjang dan tinggi. Penyelesaian persamaan V=l*p*t merupakan proses dan output adalah volume balok.
b. Algoritma
Algoritma merupakan langkah-langkah yang harus dilakukan dalam menyele-saikan masalah dalam butir a di atas. Langkah-langkah ini harus sistematis dan terstruktur sedemikian sehingga penyelesaian masalah diperoleh sesuai dengan yang diinginkan. Algoritma masalah dalam butir a di atas dapat ditulis sebagai berukut:
1. Mulai.
2. Baca lebar, panjang dan tinggi balok. 3. Hitung V=l*p*t.
4. Tulis volume 5. Selesai. c. Diagram Alir
Diagram alir merupakan gambaran/notasi tentang alur (pola fikir) program komputer yang akan dibuat. Diagram alir memegang peranan penting
Pendahuluan - 5
baik dalam menyusun program komputer maupun pada saat pengecekan ulang jika program komputer mempunyai kesalahan.
Contoh:
mulai
Baca : lebar,
panjang, tinggi
V= l*p*t
Tulis : volume
selesai
Pendahuluan - 6
Tabel 1. Gambaran/notasi yang umum digunakan dalam diagram alir
No. Gambar/notasi Arti
1.
Titik terminal untuk mulai, selesai dan kembali. Jika untuk mulai tulis START, selesai tulis STOP dan kembali tulis RETURN
2.
Input dan/atau output. Jika digunakan untuk input, tulis READ: dan jika untuk output, tulis WRITE: dan diikuti dengan variabel yang akn dibaca/ditulis
3.
Proses. Tuliskan proses yang akan dilakukan komputer dalam kotak yang tersedia
4.
Tanda penghubung. Angka numerik dalam lingkaran menunjukkan bahwa alur program dilanjutkan ke tahapan dengan alamat nomor yang diberikan dalam lingkaran. Huruf dalam lingkaran digunakan
Pendahuluan - 7
untuk tanda sambung.
5.
atau Kedua notasi ini digunakan untuk alur dengan keputusan (if conditional). Notasi pertama jika hanya 2 pilihan sedang notasi kedua untuik 3 pilihan.
6. Gambar/notasi untuk subprogram.
7. Gambar/notasi untuk memulai dan mengakhiri proses pengulangan
8. Garis aliran. Ujung panah
menunjukkan arah aliran Tugas :
1. Buat algoritma dan diagram alir untuk menghitung kecepatan kendaraan dengan input berupa jarak dan waktu tempuh.
Tujuan
1. Memahami dasar-dasar pemograman komputer yang meliputi tentang format dan struktur bahasa pemograman FORTRAN-77 beserta tipe data dan variabel yang digunakan.
2. Dapat menyusun program komputer sederhana.
Perbekalan Praktikum
Fortran adalah bahasa tingkat tinggi pertama dan merupakan singkatan dari FORmula TRANslator.Dalam praktikum ini kita menggunakan FORTRAN standar 77(selanjutnya ditulis FORTRAN-77).
Bahasa pemograman FORTRAN-77 merupakan high level language yang digunakan untuk membuat perintah tertentu kepada komputer. Dalam penyusunan program, struktur pemograman dengan FORTRAN-77 mengikuti pola berikut,
1. Untuk program utama,
[PROGRAM <nama program>]
<deklarasi external file dan module> <deklarasi varibel> <inisialisasi variabel> . . <executable statement> . STOP END
2. Untuk subprogram, <blok subprogram> <deklarasi varibel> <inisialisasi variabel> <executable statement> RETURN END
Walaupun dalam bahasa fortran tidak membedakan huruf besar dan kecil, akan tetapi sangat disarankan untuk selalu mengunakan huruf besar dalam menyusun program komputer. Berikut ini akan dijabarkan tentang bagian-bagian dari struktur program tersebut.
Nama Program (Program Statement)
Program statement, dalam bentuk nama program, diperlukan untuk menidentifikasi program. Nama program sebaiknya dibuat berdasarkan apa yang akan dilakukan dalam program tersebut. Sangat disarankan, nama program identik dengan nama file (source code).
Contoh : PRAKTIKUM.FOR Coba.f
Coments (Komentar)
Walaupun komentar tidak akan diproses oleh copiler, akan tetapi komentar mempunyai fungsi yang penting, terutama untuk menjelaskan bagimana program itu disusun, arti dari variabel-variabel yang digunakan. Komentar ini sangat penting, baik bagi yang menyusun program itu sendiri maupun bagi pihak lain yang membaca program tersebut.
Contoh :
c program menghitung luas persegi panjang c input write(*,*)'panjang = ' read(*,*)p write(*,*)'lebar = ' read(*,*)l c proses L=p*l c hasil write(*,*)L end komentar indikasi komentar
Type Declaration (Bentuk Deklarasi)
Statement deklarasi berhubungan dengan variabel yang menggunakan tipe data tertentu, seperti apa variabel itu diperlakukan dan bagaimana pola
penyimpanannya dalam memory. Lihat penjelasan tentang Type Variabel/Data dalam pembahasan berikutnya.
Gambar 1. Mengaktifkan Compaq Visual Fortran
Program yang telah disusun dalam bentuk program sumber (source code) harus diterjemahkan ke dalam bahasa mesin. Interpreter untuk menterjemahkan tersebut dikenal sebagai compiler. Dalam praktikum ini digunakan compiler Compaq Visual Fortran Edisi 6.5.0. Gambar 1 memperlihatkan cara untuk mengaktifkan compiler Compaq Visual Fortran. Cara
membuat dan menyusun program komputer dalam editor akan dijelaskan asisten dalam praktikum
Gambar 2. Menu untuk kompilasi, build dan eksekusi
Untuk mendapatkan output dari suatu program, dilakukan tahap-tahap sebagai berikut :
1. Tahap kompilasi.
- klik pada [build] > [compile] - atau klik pada toolbar - atau Ctrl + F7
kompilasi
build
eksekusi
2. Build
- klik pada [build] > [build nama file.exe]
- atau klik pada toolbar - atau F7
3. Execute program
- klik pada [build] > [execute]
- atau klik pada toolbar - atau Ctrl + F5
Tipe Variabel/Data
Dalam FORTRAN-77 terdapat 3 tipe data yang paling umum digunakan, yakni REAL, INTEGER dan CHARACTER yang mewakili angka desimal (floating point), bilangan bulat dan rangkaian dari karakter tertentu. Penamaan variabel sebaiknya memiliki arti. Disarankan hanya menggunakan maksimum 6 karakter dalam setiap nama variabel. Penggunaan nama variabel yang panjang seringkali tidak sesuai untuk komputer tertentu. Default untuk FORTRAN-77 adalah INTEGER untuk semua variebel yang dimulai dengan huruf I-N dan REAL untuk semua variabel yang dimulai dengan huruf A-H,O-Z.
Walau semua variabel tersebut secara otomatis masih dalam kategorinya masing-masing, akan tetapi sangat diremendasikan untuk selalu mendeklarasikannya di awal program sumber. Contoh berikut menunjukkan deklarasi untuk variabel REAL dan INTEGER,
IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER*4 (I-N)
Statement IMPLICIT mendefinisikan tipe dari semua variable atau larik yang huruf pertama dari nama yang disebutkan. Huruf yang sama tidak boleh didefinisikan ulang dengan statement IMPLICIT. Variabel atau huruf yang sudah didefinisikan dengan statement IMPLICIT dapat didefinisikan ulang dengan statement type.
Disamping itu, secara lengkap tipe data yang digunakan dalam FOOTRAN-77 diberikan sebagai berikut.
Tipe Byte Keterangan
INTEGER 2 Bilangan bulat (-32767 – 32767) INTEGER*2 2 Bilangan bulat (-32767 – 32767)
INTEGER*4 4 Bilangan bulat (-2147483647 – 2147483647)
REAL 4 Bilangan desimal (floating point) Untuk bilangan positif 8.43E-37 – 3.37E38
Untuk bilangan negative 3.37E38 – -8.43E-37
REAL*4 4 Sama dengan REAL
REAL*8 8 Bilangan desimal (floating point) DOUBLE
PRECISION
8 Identik dengan REAL*8
COMPLEX 8 Bilangan kompleks
COMPLEX*8 8 Bilangan kompleks COMPLEX*16 16 Bilangan kompleks DOUBLE
COMPLEX
16 Identik dengan COMPLEX*16 LOGICAL 4 Logika .TRUE. dan .FALSE.
LOGICAL2 2 Logika .TRUE. dan .FALSE. LOGICAL4 4 Logika .TRUE. dan .FALSE. CHARACTER 1 Karakter (bukan angka) CHARACTER*
n
n Karakter (bukan angka)
Dasar-dasar Pemograman
Secara umum, pemograman 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 periferal 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 dipisahkan menurut kegunaanya.
Dalam penulisan program sumber (source code), aturan/format berikut harus selalu dipatuhi. Setelah itu, setiap bagian program akan dibahas.
1 Kolom 1 Komentar. Jika pada kolom 1 diberi huruf C atau *, maka semua karakter yang mengikutinya dikategorikan sebagai komentar.
2 Kolom 1-5 Tempat penulisan label yang merupakan alamat perintah lanjutan. Label harus dibuat ditulis dengan bilangan bulat (integer)
3 Kolom 6 Tempat tanda sambung. Semua karakter dapat digunakan sebagai tanda sambung.
Disarankan untuk tidak menggunakan karankter / dan \.
4 Kolom 7-72 Main body program. Tempat penulisan semua perintah yang diinginkan.
5 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,
READ/WRITE (<unit spec>,<format spec>) var1,var2,…
dimana,
<unit spec> Menunjukkan kode/nomor alat input. Karakter *
atau angka 5 menunjukkan bahwa input dilakukan melalui keyboard (terlihat pada monitor). Karakter * atau angka 6 menunjukkan bahwa output ditampilkan melalui monitor.
<format spec> Menunjukkan format input/output untuk var1,var2,…. Karakter * pada <format spec> menunjukkan format bebas (free format).
format bebas, sedangkan untuk output disarankan menggunakan format tertentu. Format tertentu ini umumnya menggunakan pernyataan FORMAT. Pembahasan tentang pernyataan FORMAT ini akan dilakukan dalam pembahasan berikutnya.
var1,var2,… Menunjukkan variabel-variabel yang akan diinput
atau yang akan dioutput
Contoh penggunaan :
WRITE(*,*)’Nilai A = ‘ READ(*,*)A
WRITE(*,*)’Nilai A = ‘,A END
Bila prograqm dijalankan akan didapat hasil :
Nilai A = ……..hasil dari
WRITE(*,*)’Nilai A = ‘
6 ……..ditulis (berdasarkan
READ(*,*)A)
Nilai A = 6.000000 ……..hasil dari WRITE(*,*)’Nilai A = ‘,A
Press any key to continue
Penyataan FORMAT digunakan untuk membentuk format (bentuk) data masukan/keluaran yang meliputi tentang tata letak, tipe dan panjang data. Bentuk umum FORMAT ditulis sebagai berikut,
<label> FORMAT (edit list)
<label> Menunjukkan label yang merupakan alamat dari
pernyataan READ/WRITE
edit list Merupakan edit descriptor yang merupakan
perintah untuk mengatur tata letak, tipe dan panjang data.
Contoh penggunaan :
WRITE(6,10)A,B 10 FORMAT(2(1X,F12.5))
Edit Descriptor
Edit descriptor merupakan perintah dalam membentuk format I/O. Dalam Tabel 2 berikut diberikan edit descriptor yang umum digunakan dalam FORTRAN-77.
Tabel 2. Edit Descriptor dalam FORTRAN-77 No. Tipe Editing Bentuk
umum Arti notasi 1. Character <n>A<w > <n> <w> jumlah pengulangan jumlah karakter 2. Integer <n>I<w > <n> <w> jumlah pengulangan jumlah digit integer 3. Real <n>F<w >.<d> <n> <w> <d> jumlah pengulangan jumlah digit termasuk desimal jumlah desimal 4. Real Exponensial <n>E<w >.<d> <n> <w> <d> jumlah pengulangan jumlah digit termasuk desimal jumlah desimal 5. Logika <n>L<w > <n> <w> jumlah pengulangan jumlah digit data 6. Apostrophe ‘<k>’ <k> karakter 7. Positional <n>X <n> jumlah pengulangan
8. Slash / turun satu baris
9. Backslash \ naik satu baris
10. Blank interpretation BN BZ blank=kosong blank=nol
Contoh :
Penggunaan edit descriptor I
I=123
WRITE(*,'(3X,I2)')I WRITE(*,'(3X,I3)')I WRITE(*,'(3X,I5)')I END
Bila prograqm dijalankan akan didapat hasil :
** 123 123
Press any key to continue
Penjelasan :
- Hasil ** didapat karna nilai I adalah 3 digit sedangkan format output hanya untuk
2digit (I2)
- hasil 123 didapat dari format I3 - hasil 123 didapat dari format I5.
Disediakan untuk 5 digit Contoh Penggunaan edit descriptor F
A=123.235
WRITE(*,'(3X,F7.3)')A END
123.235
Press any key to continue
Penjelasan :
F7.3 - variable dapat menyimpan nilai sebesar 7 digit termasuk koma - maksimal 3 angka dibelakang koma
1 2 3 . 2 3 5 Contoh penggunaan edit descriptor ‘ ‘, X, /, \
WRITE(*,'(5X,A,///)')'PRAKTIKUM FORTRAN' WRITE(*,'(3X,A,\)')'DILABORATORIUM' WRITE(*,*)'KOMPUTASI'
END
Bila prograqm dijalankan akan didapat hasil :
praktikum fortran
kosong sebanyak 5 karakter(5x) tiga baris kosong (///)
dilaboratorium komputasi laboratorium dan komputasi digabung (\) Press any key to continue
Tugas :
Tentukan format terbaik untuk nilai :
-
32767-
1234567-
123.356-
12345678.9-
1234567993.321-
0.3333-
-555.66666-
-36544275865.5788-
235E24a. Tugas dibuat dalam bentuk program dengan statement read dan write.
b. Masing-masing nilai dideklarasikan sebagai variable dan tentukan type dari masing-masing variable.
Tujuan
1. Memahami perintah-perintah berupa proses dalam pemograman komputer.
2. Memahami tentang logika dan kontrol dalam proses. 3. Dapat menyusun program komputer lanjutan.
Perbekalan Praktikum
Bagian utama pemograman komputer adalah bagaimana proses (perhitungan misalnya) dilakukan. Dalam praktikum ini akan dijabarkan/diterapkan proses dalam pemograman komputer dengan menggunakan,
1. Operator aritmatika. 2. Logika dan kontrol. 3. Proses pengulangan. 4. Penggunaan array. 5. Penggunaan subprogram.
Operator aritmatika
Operator aritmatika memegang peranan penting dalam pemograman komputer dengan FORTRAN-77 karena dengan operator aritmatika inilah rumus-rumus matematika diterjemahkan ke program sumber. Operator aritmatika dan hirarkinya disusun sebagai berikut,
Operator Operasi/Arti Hirarki ** Pangkat 1 * Kali 2 / Bagi 2 + Tambah 3 - Kurang 3 = Sama dengan -
Proses aritmatika pada komponen (operant) sejenis akan menghasilkan komponen sejenis. Sedangkan proses aritmatika yang tidak sejenis akan menghasilkan komponen dengan hirarki yang lebih tinggi. Agar proses aritmatika dengan hirarki yang lebih rendah dapat diproses terlebih dahulu, digunakan tanda kurung ( ).
Contoh :
3**2+3/2*(4-6) 32 + (3:2) * (4-6) = 6
Logika dan Kontrol
Ada 3 bentuk logika dan kontrol yang umum digunakan dalam FORTRAN-77, yakni IF, blok IF dan GOTO.
1. IF
Pernyataan IF digunakan untuk mengatur alur program komputer sesuai dengan arah yang diinginkan. Bentuk umum penyataan IF adalah,
<ekspresi> Menunjukkan ekspresi, logika atau aritmatik, yang
harus dibandingkan.
<statement> Penyataan/perintah yang harus dilakukan jika
hasil perbandingan dalam <ekspresi> benar.
Untuk logikal expression, membandingkan dua nilai numerik, <statement> dalam IF di atas disusun dengan menggunakan salah satu comparison (relation) operator berikut.
Operator Arti
.GT. lebih lebar dari
.GE. lebih besar dan sama dengan
.LT. lebih kecil dari
.LE. lebih kecil dan sama dengan
.EQ. sama dengan
.NE. tidak sama dengan
Contoh penggunaan :
write(*,'(3x,a,\)')'nilai a = ' read(*,*)a
write(*,'(3x,a,\)')'nilai b = ' read(*,*)b
if (a.gt.b) write(*,'(3x,a)')'nilai a besar dari b' if (a.lt.b) write(*,'(3x,a)')'nilai b besar dari a'
end
Bila prograqm dijalankan akan didapat hasil : nilai a = 5
nilai b = 3 nilai a besar dari b Press any key to continue
Untuk logical variable, <statement> menggunakan salah satu dari logical operator berikut. Hasil akhir dari IF logika hanya benar atau salah (.TRUE. atau .FALSE.).
Operator Arti
.NOT. tidak
.AND. dan
.OR. atau
.XOR. ekslusif atau
.EQV. ekivalen
.NEQV. tidak ekivalen
Contoh penggunaan : Write(*,'(3X,A,\)')'NILAI A = ' READ(*,*)A Write(*,'(3X,A,\)')'NILAI B = ' READ(*,*)B Write(*,'(3X,A,\)')'NILAI C = '
READ(*,*)C
If((a.lt.b).and.(a.lt.c))write (*,*)'nilai a yang terkecil'
IF((A.GE.B).OR.(A.GE.C))WRITE(*,*)'NILAI A BUKAN YANG TERKECIL'
End
Dalam eksekusinya, operator aritmatik akan dilaksanakan pertama kali, disusul dengan comparison (relation) operator dan logical operation.
2. Aritmatik IF Bentuk umum :
IF (<expresion>)<slabel1>,<slabel2>,<slabel3>
Statement IF aritmatika digunakan untuk menyeleksi kondisi dari suatu ungkapan aritmatika, apakah bernilai negatif, nol atau positif.
contoh:
CHARACTER*15 NILAI
WRITE(*,'(3X,A,\)')'NILAI X = ' READ(*,*)X
IF(X)1,2,3
1 NILAI = 'NILAI X NEGATIF' GO TO 4
2 NILAI = 'NILAI X NOL' GO TO 4
GO TO 4
4 WRITE(*,'(3X,A)')NILAI END
3. Blok IF
Blok IF digunakan untuk pengaturan logika program yang lebih luas dan kompleks dengan pilihan yang lebih variatif. Blok IF disusun dengan struktur dasar IF-THEN-ELSE-ENDIF. Pola blok IF tersebut diberikan dalam Tabel 3 berikut.
Tebel 3. Pola blok IF
IF-THEN-ENDIF IF-THEN-ELSE-ENDIF IF-THEN-ELSEIF-ELSE-ENDIF IF(<ekspresi>)TH EN penyataan 1 penyataan 2 … penyataan n ENDIF IF(<ekspresi>)THE N penyataan 1 penyataan 2 … penyataan n ELSE penyataan a penyataan b … penyataan z ENDIF IF(<eksp1>)THEN penyataan 1 penyataan 2 … penyataan n ELSEIF(<eksp2>)T HEN penyataan a penyataan b … penyataan z ELSE penyataan a1 penyataan b2 … penyataan zn ENDIF
Contoh penggunaan : Write(*,'(3X,A,\)')'NILAI A = ' READ(*,*)A Write(*,'(3X,A,\)')'NILAI B = ' READ(*,*)B Write(*,'(3X,A,\)')'NILAI C = ' READ(*,*)C If((a.lt.b).and.(a.lt.c))then write (*,*)'nilai a yang terkecil' else
WRITE(*,*)'NILAI A BUKAN YANG TERKECIL'
end if
End
Hal yang perlu diperhatikan bahwa jangan mengkontrol alur program menuju blok IF (menggunakan statement GOTO, misalnya).
3. GOTO
Pernyataan GOTO digunakan untuk memindahkan alur program mengikuti label yang ditunjukkan dalam perintah GOTO. Ada 3 jenis GOTO yang umum digunakan,
a. Assigment GOTO
Bentuk umum GOTO nvar,(label1,label2,…).Penyataan ini memerintahkan agar alur program berpindah ke label yang sesuai dengan nvar. Contoh penggunaan :
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.
b. Computed GOTO
Bentuk umum GOTO (label1,label2,…),n. Pernyataan ini memerintahkan komputer untuk melanjutkan proses sesuai dengan urutan yang diberikan oleh n.
Contoh penggunaan :
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.
Contoh penggunaan :
IF(A.GT.B) GOTO 100
Tujuan
1. Memahami perintah-perintah perulangan.
2. Dapat mengaplikasikannya ke dalam program komputer.
Perbekalan Praktikum
Dalam prakteknya banyak dijumpai suatu perintah harus dikerjakan berulang-ulang hingga diperoleh hasil sesuai dengan yang diinginkan. Secara logis, perintah-perintah kontrol dan logika yang dijelaskan dalam Modul 3 dapat digunakan untuk mengulang perintah-perintah yang sama dalam program. Perhatikan contoh sederhana proses penjumlahan angka 1 hingga 10 di bawah ini. I=0 SUM=0.0 10 I=I+1 WRITE(*,'(3X,A,I2)')'PERULANGAN KE ',I IF(I.LT.10) GOTO 10 END
Bila program dijalankan akan didapat hasil : perulangan ke 1 perulangan ke 2 perulangan ke 3 perulangan ke 4 perulangan ke 5 perulangan ke 6 perulangan ke 7
perulangan ke 8 perulangan ke 9 perulangan ke 10 Press any key to continue
Dari contoh diatas dapat dilihat bahwa program akan terus diproses selama masih memenuhi syarat (I.LT.10) dan akan berhenti setelah syarat tidak lagi terpenuhi. 1. DO …CONTINUE / DO …END DO DO <label> var=n1,n2,inc pernyataan 1 pernyataan 2 … pernyataan n <label> CONTINUE
<label> Label yang menunjukkan batasan awal dan akhir
dari proses yang akan diulang.
var Variabel integer yang merupakan variabel
pengontrol perulangan.
n1 Nilai awal perulangan. n2 Nilai akhir perulangan.
perulangan. Nilai penambahan harus bilangan bulat (integer) positif maupun negatif. Default=1
Perhatikan perbedaannya jika proses penjumlahan angka 1 hingga 10 dalam contoh di atas diprogram dengan menggunakan DO loop dalam contoh penerapan berikut. Contoh penggunaan : DO 10 I=1,10 WRITE(*,'(3X,A,I2)')'PERULANGAN KE ',I 10 CONTINUE END
Contoh di atas merupakan contoh untuk proses perulangan tunggal. Dengan pola yang sama dimungkinkan untuk menyusun perulangan berkalang (nested loop). Dengan demikian akan ada kalang dalam (inner loop) dan kalang luar (outer loop) seperti diperlihatkan dalam contoh perkalian matriks berikut.
Contoh penggunaan : DO I=1,3 DO J=1,3 WRITE(*,'(3X,A,2I2)')'PERULANGAN KE ',I,J END DO END DO END
Bila program dijalankan akan didapat hasil : perulangan ke 1 1 perulangan ke 1 2 perulangan ke 1 3 perulangan ke 2 1 perulangan ke 2 2 perulangan ke 2 3 perulangan ke 3 1 perulangan ke 3 2 perulangan ke 3 3 Press any key to continue
Pada contoh diatas, perintah end do mempunyai tujuan yang sama dengan continue
2. DO WHILE…END DO
Perintah DO WHILE …END DO memproses sustu atau sekelompok statemen secara berulang berdasarkan syarat yang diberikan.
Contoh : 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)
Tujuan
1. Memahami penggunaan array.
2. Dapat mengaplikasikannya ke dalam program komputer.
Perbekalan Praktikum
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. Perhatikan kembali contoh perkalian matriks dalam modul sebelumnya.
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 CONTINUE 10 CONTINUE
Dengan notasi matematika program di atas ditulis sebagai,
(
)
4 ij ik kj k 1a
b .c
==
∑
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.
a. Dengan DIMENSION
Penyataan DIMENSION mempunyai bentuk umum,
DIMENSION var(n1:m1,n2:m2,..,nl:ml),…
var Variabel yang mempunyai indeks, baik real, integer
maupun karakter.
n1:m1 Nilai awal dan nilai maksimum indeks ke-1. n2:m2 Nilai awal dan nilai maksimum indeks ke-2. nn:mn Nilai awal dan nilai maksimum indeks ke-l.
Dalam penyataan DIMENSION, variabel real, integer maupun karakter dapat dituliskan dalam satu satuan DIMENSION. Default n1, n2, dan nn adalah 1. Jika nilai awal n1, n2, dan nn adalah 1, jumlah indeks dalam penyataan DIMENSION cukup ditulis nilai maksimumnya saja.
Contoh penggunaan :
DIMENSION 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 CONTINUE
20 CONTINUE 10 CONTINUE
b. Dengan Cara Eksplisit
Bentuk lain dari deklarasi array adalah dengan menyatakan secara eksplisit tipe data yang digunakan dalam array tersebut. Bentuk umumnya adalah
<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, variabel real, integer dan karakter harus dipisahkan dalam tiap kelompoknya.
Contoh penggunaan : 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 CONTINUE 20 CONTINUE 10 CONTINUE
Tujuan
1. Memahami perintah dan penggunaan subprogram. 2. Dapat mengaplikasikannya ke dalam program komputer.
Perbekalan Praktikum
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.
SUBROUTINE
Subroutine merupakan subprogram yang hampir mirip dengan program utama (perhatikan kembali penjelasan dalam Modul 2). Dalam subroutine dapat dilakukan serangkaian/sekelompok input, proses maupun output. Bentuk umum dan cara pemanggilan/pengaktifan SUBROUTINE diberikan sebagai berikut.
Bentuk umum Cara pemanggilan
SUBROUTINE <nm>(vr1,…varn) <deklarasi varibel> <inisialisasi variabel>
PROGRAM <nama program utama>
. .
<executable statement> RETURN END . . STOP END <nm> Nama subroutine <nm> Nama subroutine
vr1,…varn Variabel yang
digunakan dalam subroutine
vra,…varz Variabel yang
digunakan dalam program utama. Variabel ini tidak perlu sama dengan
vr1,…varn,
akan tetapi harus dengan tipe yang sama
Contoh penggunaan : Program utama . CALL KALI(A,B,F) . Subprogram SUBROUTINE KALI(A,B,C)
IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER*4 (I-N) C DIMENSION 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 CONTINUE 20 CONTINUE 10 CONTINUE C RETURN END FUNCTION
Berbeda dengan penggunaan SUBROUTINE, FUNCTION hanya dapat digunakan untuk menentukan nilai satu variabel, bail real, integer maupun karakter. Subprogram ini umumnya digunakan untuk mendefenisikan fungsi tertentu dalam program. Bentuk umum dan cara pemanggilan/pengaktifan FUNCTION diberikan sebagai berikut.
Bentuk umum Cara pemanggilan
<td>FUNCTION <nm>(vr1,…varn)
PROGRAM <nama program utama>
<deklarasi varibel> <inisialisasi variabel> <executable statement> RETURN END . . vo=<nm>(vra,…varz) . . STOP END <nm> Nama function.
Nama ini harus sama dengan nama variabel yang nilainya ingin ditentukan. <nm> Nama function
Nama ini harus sama dengan nama variabel yang nilainya ingin ditentukan.
vr1,…varn Variabel yang
digunakan dalam function
vra,…varz Variabel yang
digunakan dalam program utama. Variabel ini tidak perlu sama dengan vr1,…varn, akan tetapi harus dengan tipe yang sama
vo Variabel yang digunakan dalam program utama, yang identik dengan nilai fungsi dalam subprogram Contoh penggunaan : Program utama . SUHUC=CELS(F) . Subprogram
REAL*8 FUNCTION CELS(FAH) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER*4 (I-N) C
CELS=5.0/9.0*(FAH-32.0) RETURN
Tujuan
1. Memahami tentang metode pengolahan data dan file. 2. Dapat mengaplikasikannya ke dalam program komputer.
Perbekalan Praktikum
Seperti dijelaskan dalam Modul 1 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. Dalam Modul 2 juga telah disinggung bagaimana cara membaca dan menulis data dari media monitior maupun file ke main memory. Pada Modul 7 ini akan dijelaskan tentang perintah yang umum digunakan dalam FORTRAN-77 untuk mengatur data dan file dalam pemograman komputer.
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,
OPEN(<unit spec>,FILE=’<nama file>’,STATUS=’<status>’, ACCESS=’<access>’,FORM=’<form>’,RECL=,rec-leng)
<unit spec> Menunjukkan nomor spesifikasi file. Nomor
spesifikasi merupakan nilai integer kecuali 5 dan 6.
<status> Status file yang dibuka. STATUS=’OLD’ untuk file
yang telas tersedia, file untuk data masukan misalnya. STATUS=’NEW’ digunakan untuk membuat file baru, dan STATUS =
‘UNKNOWN’,untuk file baru atau lama. Secara
default jika status tidak ditulis berarti STATUS =
‘UNKNOWN’.
<access> Metode pengaksesas data dari main memory ke file. ACCESS=’DIRECT’, pengaksesan dilakukan ke
lokasi yang dikehendaki. ACCESS=’SEQUENTIAL’, pengaksesan dilakukan secara berurut dari record awal. Karena default ACCESS=’SEQUENTIAL’, pada umumnya metode ACCESS ini tidak dituliskan.
<form> Menunjukkan bentuk format penyimpanan. form=’FORMATTED’, data disimpan terformat, form=’UNFORMATTED’ data disimpan tanpa
format.
rec-leng Panjang record yang ditunjukkan oleh bilangan bulat
(integer). Perintah ini hanya digunakan untuk
ACCESS=’DIRECT’
Contoh penggunaan :
Open(1,file = 'output.txt') C data input dalm layar dos
write(*,'(5x,a,\)')'nilai x : ' unit specifier
read(*,*)x no. File yang dituju
write(*,'(5x,a,\)')'nilai y : ' (output.txt)
read(*,*)y C perhitungan
z = x*y
write(*,'(5x,a)')'lihat hasil di file output.txt' C data output dalam file
write(1,'(3x,a,f6.2)')'hasil kali x dengan y = ',z close(1)
end
Apabila program dieksekusi akan didapat hasil : nilai x : 3.5
nilai y : 66
lihat hasil perhitungan di file output.txt Press any key to continue
Untuk melihat hasil dari perhitungan, lakukan langkah berikut : 1. Klik File > open (Ctrl O) atau klik 2. Ubah pilihan Files of type menjadi All Files(*.*)
3. Double clik nama file yang ingin dibuka. Hasil perhitungan dalam file yaitu :
Contoh diatas merrupakan contoh pengolahan data dengan input pada layar dos dan out put dalam file.
Secara umum ada 3 cara pengolahan data dengan file : 1. Input pada layar dos dan output dalam file. 2. Input dalam file dan output pada layar dos. 3. Input dan output dalam layar.
Selain dalam bentuk .txt(notepad), file extension dari file penyimpanan bisa juga berupa bentuk lain.
Contoh :
- simpan.xls (data akan tersimpan dalam excel)
- output.abc (.abc adalah file extension buatan dan hanya bisa dibuka dalam notepad atau fortran)
- input.tugas (hanya bisa dibuka dalam notepad atau fortran)
- asadff (tanpa file extension, hanya bisa dibuka dalam notepad atau fortran )
Nama file penyimpanan selain ditentukan dalam listing program, juga bisa ditentukan saat program dieksekusi.
Contoh :
character*4 a
write(*,'(3x,a,\)')'nama file penyimpanan : ' read(*,*)a
open(1,file = a)
c data input dalm layar dos
write(*,'(5x,a,\)')'nilai x : ' read(*,*)x write(*,'(5x,a,\)')'nilai y : ' read(*,*)y c perhitungan z = X*y
c data output dalam file
write(1,'(3x,a,f6.2)')'hasil kali x dengan y = ',z close(1)
end
nama file penyimpanan : asdf nilai x : 3
nilai y : 2.3
Press any key to continue
CLOSE
Pernyataan CLOSE digunakan untuk menutup file yang tidak diperlukan. Penutupan file ini diperlukan untuk space dalam main memory komputer. Bentuk umumnya adalah.
CLOSE(<unit spec>, STATUS=’<status>’)
<unit spec> Menunjukkan nomor spesifikasi file. Nomor spesifikasi
merupakan nilai integer kecuali 5 dan 6.
<status> Status lanjutan dari file setelah ditutup.
status=’KEEP’ digunakan agar file tetap seperti
semula, status=’DELETE’ digunakan untuk menghapus file.
Contoh penggunaan :
Proses (Pengaturan Program)- 25
Tujuan1. Memahami tentang metode metode penyelesaian masalah dengan program komputer.
2. Dapat mengatur program secara efektif dan efisien.
Perbekalan Praktikum
Tujuan utama dalam penyusunan program komputer adalah untuk membantu dalam menyelesaikan masalah dalam bidang rekayasa. Secara umum, langkah-langkah yang diperlukan sejelaskan secara singkat sebagai berikut.
Langkah 1 Tentukan masalah yang akan diselesaikan (menyelesaikan persamaan matematika dengan metode numerik, misalnya). Pastikan bahwa masalah telah dikusai 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.
Proses (Pengaturan Program)- 26
Langkah 4 Susun diagram alir sesuai dengan algoritma yang disusun dalam langkah3.
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,
Langkah 1 Gunakan editor yang tersedia untuk menyusun program tersebut, gambar berikut memperlihatkan editor yang telah disediakan Compaq Visual Fortran. Simpan source code program tersebut sebagai source file.
Proses (Pengaturan Program)- 27
Langkah 2 Compile source dengan compiler yang tersedia (perhatikan kembali Modul 2). Jika terjadi kesalahan berupa syntax error, kembali ke langka 1. Jika tidak terjadi kesalahan, maka compiler akan membuat objec file.
Langkah 3 Dalam menyusun program yang besar dan kompleks, sangat disarankan untuk membagi-bagi program dalam bentuk subprogram (perhatikan gambar di atas untuk lebih jelas). 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
Source code dalam editor
Proses (Pengaturan Program)- 28
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 langka 1.
Seperti telah disinggung sebelumnya, pengujian dan verifikasi program merupakan bagian yang paling sulit dalam penyusunan program komputer. Untuk program sederhana, pengujian dengan cara hand trace atau desk check dapat dilakukan jika terdapat kesalahan berupa logic error. Untuk program yang besar dan kompleks, fasilitas debugging dan tracing Compaq Visual Fortran dapat digunakan seperti terlihat dalam gambar berikut.
Proses (Pengaturan Program)- 29
2. Klik menu ini
1. Klik ke batas
baris yang
diinginkan
3. Klik menu ini
untuk memulai
debugging
Proses (Pengaturan Program)- 30
Contoh proses pengujian program (debugging) :
1. Tempatkan kursor pada statement pertama pada awal program.
2
3
1
Proses (Pengaturan Program)- 31
2. Tekan F9 pada keybord atau klik 3. Tekan F5 pada keybord atau klik
4. Tekan F11 berulang kali hingga panah kuning pada bagian kiri listing program berhenti berpindah.
5. Masukkan data input (pada layar dos/file) 6. Kembali Listing program dan ulangi menekan F11
7. Perhatikan perubahan nilai dari semua variable pada jendela variable, atau tulis nama variable tententu yang ingin diamati pada jendela watch 8. Ulangi langkah diatas sampai menemukan kesalahan dari program. 9. Keluar dari Proses debugging dengan menekan Shift + F5 atau klik
Proses (Pengaturan Program)- 32