BAHASA KOMPUTER
BAHAN PENGAJARAN
(LECTURE NOTES)
SYAFRI WARDI, ST
E-mail : syafriwardi90@yahoo.com
2013
STANDAR KOMPETENSI
Setelah menyelesaikan mata kuliah Bahasa Komputer
mahasiswa mampu mengembangkan paket program aplikasi
mandiri untuk menyelesaikan masalah keteknikan khususnya
Teknik Sipil dengan bahasa FORTRAN
KOMPETENSI DASAR
Mahasiswa mampu menggunakan Program FORTRAN dan dapat
menerapkan konsep dasar aliran logika pemrograman dalam
membuat program aplikasi
INDIKATOR
1. Mahasiswa dapat membedakan karakteristik dari
berbagai macam bahasa pemrograman yang ada.
2. Mahasiswa dapat menggunakan program FORTRAN.
3. Mahasiswa dapat merancang aliran logika
pemrograman yang logis sebelum menuliskan kode
program.
a. Bahasa Aras Rendah (Low Level Language) atau sering disebut bahasa
mesin (Machine Language) merupakan bahasa pemrograman yang paling
primitif dalam memprogram komputer digital. Bahasa ini sangat dekat dengan
kerja dari mesin komputer itu sendiri. Seluruh instruksi bahasa mesin tidak
menggunakan tanda-tanda abjad, hanya menggunakan tanda tanda numerik
yang merupakan perpaduan dari bilangan 0 dan 1. Program yang ditukis
dalam bahasa ini langsung dimengerti oleh komputer tanpa harus
diterjemahkan lebih dahulu.
Contoh
Program
yang
dibuat
dalam
bahasa
assembler,
harus
Bahasa
berorientasi ke
Tidak bisa dibaca atau dipahami semudah bahasa level tinggi yang lain
Masih banyak keunggulan yang dimiliki oleh bahasa pemrograman ini yang
mungkin dapat dirasakan ketika kita membuat program.
1.3 LOGIKA PEMROGRAMAN
Pekerjaan membuat program aplikasi komputer dapat dipecahkan dalam
beberapa tahapan, yaitu :
Pertama : menyatakan persoalan yang harus dipecahkan sejelas mungkin dan
secara terperinci;
Kedua
Ketiga
tinjau keadaan
ALGORITMA :
Mulai
6. Turunkan mobil
5
6
Akhir
Ban cadangan
bocor?
Tidak
Angkat mobil dengan pengungkit
YA
Perbaikan ban
TIDAK
Lepas baut roda
Semua baut
sudah
dilepas ?
YA
(a)
(b)
(c)
Mulai
Ban cadangan
bocor?
Tidak
YA
Perbaikan ban
2
Tidak
Semua baut
sudah dilepas ?
YA
3
4
5
Tidak
Semua baut
sudah dipasang ?
YA
6
Akhir
- 10
- 11
c2
a2
c2 = a2 + b2
b2
- 12
- 13
Arti
Statemen input
Statemen output
Atau
Statemen input
atau output
Statemen
Pengerjaan
Statemen
Kondisional
Informasi
dalam simbol
Daftar hal yang
diinputkan
Daftar hal yang
dikeluarkan atau
Pesan dengan
menggunakan
medan Hollerith
FORTRAN. Pesan
dinyatakan
diantara tanda
kutip
Satu atau beberapa
statemen dalam
bentuk V=E
Keterangan
Contoh
A, B, C
Z, P, T(I)
INI ADA
PESAN
TA(I)
A(I)A(I)+1
A(I+1) T
A>C
F
Variabel yang
bernilai kurang
dari, sama dengan
atau lebih dari nol
Transfer tanpa
syarat atau
statemen GO TO
Iterasi
(pengulangan)
atau statemen DO
<0
0>
=0
52
Parameter
pengulangan
5
I 1,N, 2
GO TO 52
DO 5 I = 1, N, 2
- 14
Tabel 1. (Lanjutan)
Simbol
Arti
Pengenal
statemen yang
dipergunakan
sebagai titik
pertemuan
Informasi
dalam simbol
Nilai numerik
Keterangan
Contoh
Contoh 1
Umumnya ditulis
harus sebelum isi
statemen
yang
bersangkutan;
dapat
juga
berbentuk
statemen
CONTINUE
15
C=Z+T
D=C+K
Contoh 2
22
I 1,N
T
I=K
F
A(I)=B
A(I)=C
22
GO TO dengan
hitungan
Penghubungan ke
suatu program
SUB-ROUTINE
Nama variabel
(integer) yang
digunakan
sebanyak indeks
penghitung
Identifikasi titik
penghubung ke
suatu sub
program
Memulai dan
mengakhiri
program
(terminator)
Perkataan :
START
RETURN
END
Contoh
dalam
FORTRAN :
GO TO (4,5,5,8)L
CALL
SORT(A,MN)
SORT
(B,K,L)
RETURN
Dalam
FORTRAN
CALL
SORT(A,M,N)
Dalam
FORTRAN :
SUBROUTINE
SORT
(B,K,L)
Dalam
FORTRAN :
RETURN
- 15
1. Buatlah algoritma dan flow-chart untuk menentukan bilangan yang terbesar dari
kumpulan bilangan-bilangan atau set bilangan A=[ a1, a2, ,an], untuk n>2.
Jawab :
Dari soal di atas, kita ketahui n dan kita diminta untuk menentukan salah satu
bilangan a yang terbesar. Sebelum menyelesaiakan soal di atas untuk sembarang
harga a, lebih dahulu kita tinjau prosedur untuk menentukan bilangan terbesar antara
tiga bilangan a1, a2, dan, a3.
Algoritma :
1. Pilih harga a1
2. Bandingkan dengan harga a2
3. Bila a1 lebih besar dari a2, atau a1 sama dengan a2, simpan harga a1
4. Bila a2 lebih besar dari a1, Simpan harga a2
5. Bandingkan harga yang disimpan dengan a3
6. Bila harga yang disimpan lebih besar dari a3, simpan lagi harga tersebut
7. Bila a3 lebih besar dari harga yang disimpan pada langkah 3 atau 4, simpan
harga a3
8. Bilangan yang disimpan merupakan bilangan yang terbesar
- 16
3. Tetapkan z = a2
4. Bila syarat z > a3 dipenuhi, lanjutkan ke langkah 6, bila tidak dipenuhi
lanjutkan ke langkah 5.
5. Tetapkan z = a3
6. z merupakan jawaban yang dicari (yaitu yang berharga sama dengan bilangan
yang terbesar diantara a1, a2, dan a3)
Mulai
Z = a1
YA
Z< a2
Z = a2
Tidak
Z< a3
YA
Tidak
6
Z = a3
Selesai
Latihan 1 :
C PROGRAM MENJUMLAHKAN 3 BILANGAN
I = 24
J = 3
K = 7
LS = I+J+K
WRITE(*,5) I,J,K, LS
5 FORMAT(1X,I4,I4,I4,I6)
END
Latihan 2 :
C PROGRAM DAN MENGALIKAN 3 BILANGAN
I = 24
J = 3
K = 7
LP = I*J*K
WRITE(*,5) I,J,K, LP
5 FORMAT(1X,I4,I4,I4,I6)
END
Latihan 3 :
C MENGHITUNG KUADRAT BILANGAN GANJIL
N = 1
21 K=N*N
WRITE(*,5) N, K
5 FORMAT(1X,I8, I8)
N=N+2
IF(N .LT. 12) GOTO 21
STOP
END
- 17
STANDAR KOMPETENSI
Setelah menyelesaikan mata kuliah Bahasa Komputer
mahasiswa mampu mengembangkan paket program aplikasi
mandiri untuk menyelesaikan masalah keteknikan khususnya
Teknik Sipil dengan bahasa FORTRAN
KOMPETENSI DASAR
Mahasiswa dapat mengaplikasikan dasar-dasar pemrograman
yang dimiliki dalam bentuk program aplikasi
komputer sederhana
INDIKATOR
1. Mahasiswa dapat menuliskan kode sumber (Source
Program) program aplikasi sederhana sesuai
dengan organisasi Fortran
2. Mahasiswa dapat menggunakan elemen-elemen dasar
program Fortran dalam menulis program aplikasi
sederhana.
3. Mahasiswa dapat memilih tipe-tipe data yang
sesuai untuk setiap data yang digunakan di
dalam program aplikasi yang dibuat.
4. Mahasiswa dapat menggunakan statemen read/write
dalam memanipulasi tampilan pemasukkan data dan
tampilkan
hasil
eksekusi
program
sehingga
program yang dihasilkan lebih interaktif.
18
19
Metacommand
Metacommand atau compiler directive sifatnya adalah opsional di dalam
program FORTRAN, artinya tidak harus ada. Metacommand digunakan
apabila ingin berkomunikasi dengan compiler mengenai informasiinformasi tertentu.
Komentar
Komentar (comment) dapat berupa tulisan bebas apapun yang berguna
untuk memberikan keterangan pada program, sehingga memudahkan
untuk membaca program tersebut. Komentar tidak diproses oleh program.
Statemen
Statemen (statement) merupakan inti dari program yang berupa instruksiinstruksi kepada komputer. Logika program dituangkan dalam bentuk
statemen kepada compiler untuk diproses.
disediakan formulir khusus yang disebut Formulir Kode Fortran (Fortran Coding
Form). Bentuk formulir ini dengan contoh program FORTRAN ditunjukkan
dalam gambar 2.1. Tiap statemen FORTRAN harus mulai dari baris baru,
sedangkan statemen tersebut dapat menggunakan satu atau beberapa baris pada
20
formulir ini. Tiap baris berisi 80 spasi dan tiap spasi hanya dapat diisi oleh satu
karakter yang dikenal dalam FORTRAN. Aturan yang harus diikuti dalam
menulis program FORTRAN adalah sebagai berikut :
1. Kolom ke 1 digunakan untuk indikasi bahwa baris yang digunakan adalah
berisi komentar atau berisi metacommand.
Karakter C atau c atau * (asterik) menunjukkan kolom tersebut
berisi komentar yang tidak akan diproses oleh komputer.
Karakter $ (dollar) menunjukkan bahwa baris tersebut berisi
metacommand.
2. Kolom 1 sampai 5 dipergunakan untuk menuliskan nomor pengenal (label),
berupa suatu angka yang menunjukkan letak dari suatu statemen.
3. Kolom 6 dipergunakan untuk indikasi sambungan statemen dari baris
sebelumnya. Karakter yang digunakan adalah semua karakter kecuali blank
atau 0. Jumlah sambungan maksimum 19 buah berturut-turut.
4. Kolom 7 sampai dengan 72 dipergunakan untuk menuliskan statemen
FORTRAN.
5. Kolom ke 73 sampai dengan 80 tidak dipergunakan oleh FORTRAN, dapat
dimanfaatkan sebagai catatan atau nomor pengenal yang tidak diproses oleh
komputer.
JURUSAN TEKNIK SIPIL
INSTITUT TEKNOLOGI PADANG
Jl. Gajah Mada - Padang
STATEMEN
NUMBER
2
2
1
FORTRAN STATEMEN
Cont
COMM
PROGRAM
PROGRAMER
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1
,
27
28
29
30
31
32
33
34
15
(
35
36
37
38
39
40
21
Label Statemen
Komentar
Indikasi komentar
Metacommand
Statemen FORTRAN
Indikasi sambunga
22
nama
verb
konstanta
C = 25.0
operator
F = C * 1.8 + 32
ungkapan
WRITE(*,5) C, F
5 FORMAT(1X, F6.2, 1X, 'CELCIUS ADALAH SEBESAR ',
-F6.2, 1X,'FAHRENHEIT')
END
format specifier
unit specifier
(konstanta integer)
.TRUE. , .FALSE.
2.2.2 OPERATOR
Operator di dalam bahasa FORTRAN dapat terdiri dari operator arithmatika
(arithmetic operator), operator hubungan (relational operator) dan operator
logika (logical operator).
23
perbandingan logika
Tabel 2.1 Operator Aritmatika
Operator
Arti
Contoh
Jenjang*)
**
Perpangkatan
2**10 (210)
1
*
Perkalian
5*12 (5 x 12)
2
/
Pembagian
60/10
2
+
Penambahan
2+3
3
Pengurangan
6-2
3
*)
mana yang lebih dulu diproses jika ada beberapa operator dalam satu
ekspresi aritmatika
Tabel 2.2 Operator Hubungan
Operator
.LT.
.LE.
.EQ.
.NE.
.GT.
.GE.
Arti
Lebih kecil dari
Lebih kecil sama dengan dari
Sama dengan
Tidak sama dengan
Lebi besar dari
Lebih besar sama dengan dari
Contoh
A .LT. B (A<B)
A .LE. B (AB)
A .EQ. B (A=B)
A .NE. B (AB)
A .GT. B (A>B)
A .GE. B (AB)
Arti
Tidak atau bukan
Dan
Atau
Contoh
.NOT. TRUE
TRUE .AND. FALSE
TRUE .OR. FALSE
Hasil
FALSE
FALSE
TRUE
Jenjang
1
2
3
2.2.3 UNGKAPAN
Ungkapan (expression) dalam bahasa FORTRAN dapat berupa ungkapan
arithmatika
(arithmetic
espression),
ungkapan
karakter
(character
24
Matematika
A B
D
C
B2 4 X A X C
A2 B 2
25
2.2.4 NAMA
Nama (name) atau disebut juga identifier dapat menunjukkan suatu
variabel (variable), larik (array), fungsi (function) atau rutin bagian
(subroutine). Nama didefinisikan sendiri oleh pembuat program (user defined
name), dimana nama tersebut bersifat case sensitive, artinya huruf besar dan
huruf kecil memiliki arti yang berbeda bagi compiler. Nama didefinisikan
secara bebas dengan aturan sebagai berikut :
-
ditentukan oleh statemen yang mendahuluinya. Harga variabel dapat berubahubah selama pelaksanaan program. Tipe dari variabel ada 4 yaitu variabel
bulat (integer), pecahan (Real), karakter dan logika.
Contoh 2.6 :
I, KOB, M123
A, DELTA, XL334
STATUS = .TRUE.
26
2.2.5 VERB
Verb merupakan kata kerja perintah yang terdapat dalam statemen
FORTRAN. Hampir semua statemen FORTRAN memiliki verb, kecuali
satatemen pengerjaan (assignment statement).
Contoh 2.7 :
- WRITE
- FORMAT
- WRITE
- CALL
- GO TO
Nomor
logical unit
1
Disk (input/output)
Alat input/output
2.2.7
27
FORMAT SPECIFIER
Format specifier menunjukkan format yang akan dipergunakan oleh data
masukan maupun data keluaran. Format ini biasanya digunakan pada
penggunaan statemen READ dan WRITE.
DATA INTEGER
Data integer adalah data numerik bulat atau data numerik yang
tidak mengandung angka dibelakang koma. Di dalam mendefinisikan
suatu variabel atau konstanta dengan tipe integer nama variabel atau
konstanta tersebut harus memiliki huruf pertama I, J, K, L, M, N (i, j, k, l,
m, n), kecuali kata standar yang sudah dipakai compiler, seperti IF, if, LE,
dan le.
Contoh 2.8 :
I, KOB, M123
INTEGER*2 ISI
ISI = 275
Jumlah byte menunjukkan jumlah alokasi memori yang disediakan yang
berpengaruh terhadap besarnya jangkauan nilai yang disimpan.
2.3.2
28
DATA REAL
Tipe data real merupakan data yang dapat pecahan, hasil operasi
pembagian, dan operasi aritmatika lainnya. Di dalam mendefinisikan suatu
variabel atau konstanta dengan tipe real, nama variabel atau konstanta
tersebut harus memiliki huruf awalnya selain I, J, K, L, M, N dan huruf i,
j, k, l, m dan n, kecuali kata standar yang sudah dipakai compiler seperti
READ, read, END, end, FORMAT, format, dan lain sebagainya.
Contoh 2.9 :
A, DELTA, XL334 (tanpa deklarasi memori yang digunakan 4 byte)
REAL*8 NILAI
2.3.3
DATA KARAKTER
Data karakter adalah data yang berisi nilai karakter. Jika tidak
didefinisikan, variabel untuk menyimpan nilai data karakter ini adalah 4
byte dan dapat didefinisikan menjadi n byte (n maksimum 127 byte). Tiap
byte dapat menyimpan sebesar 1 karakter.
Contoh 2.10 :
29
DATA LOGIKA
Data logika adalah data yang hanya memiliki 2 (dua) keadaan yaitu benar
dan salah. Default dari variabel untuk menyimpan data jenis ini adalah 4
byte dan dapat didefinisikan menjadi 2 byte. Nama dari variabel dengan
tipe data logika adalah bebas, diawali huruf apapun termasuk I, J, K, L, M,
N. Variabel ini harus didefinisikan terlebih dahulu dengan statemen TYPE
atau IMPLICIT.
Contoh 2.11 :
STATUS = .TRUE.
LOGICAL STATUS
LOGICAL*2 STATUS
2.4.1
30
STATEMEN READ
Statemen dipergunakan untuk mentransfer atau membaca data dari suatu file,
dapat berupa file di disk, printer, atau console (layar, keyboard).
Bentuk umum :
READ(<unit specifier>,<format specifier>) List
Dimana :
<unit specifier>
Contor 2.12:
Format Specifier
READ(1,11) F, G, IK
11 FORMAT(2F10.2,I10)
List Variabel
31
Contoh 2.13 :
C
Contoh 1
READ(*,5)A
5 FORMAT(1X,F5.2)
WRITE (*,5)A
END
Contoh 2
INTEGER*2 A(3)
READ (*,5) A
5 FORMAT(I5)
WRITE(*,100) A
100 FORMAT(/,1X,'DATA YANG DIMASUKKAN ADALAH :',/,10X, 3I5)
END
32
Contoh 2.15 :
format specifier berbentuk
ungkapan karakter
CHARACTER*23 BENTUK
BENTUK =(F7.2)
5 FORMAT(F7.2)
WRITE(*,11)
11 FORMAT(1X,'MASUKKAN DATA : ',\)
READ(*,BENTUK) A
WRITE(*,20)
WRITE(*,5) A
20 FORMAT(/,1X,'DATA YANG DIMASUKKAN ADALAH : ',\)
END
Contoh 2.16 :
CHARACTER*10 NAMA
READ(*,*)NAMA
WRITE(*,20)
WRITE(*,21) NAMA
20 FORMAT(/,1X,'DATA YANG DIMASUKKAN ADALAH : ',\)
21 FORMAT(A10)
END
2.4.2
33
STATEMEN WRITE
Contor 2.17 :
Format Specifier
WRITE(1,20) F, G, IK
20 FORMAT(2F10.2,I10)
List Variabel
34
Program di atas dapat juga dituliskan seperti pada contoh dibawah dengan
hasil yang persis sama.
Format Specifierberupa statemen label
A=3.90
Output list berupa
B=10.00
kumpu;lan variabel dan
WRITE(*,21) Nilai A = ,A, DAN B = ,B konstanta karakter
21 FORMAT(1X,A10, F7.2, A10, F7.2)
END
3.90 DAN B =
10.00
35
A=3.90
B=10.00
WRITE(*,(1X,Nilai A = ,F7.2,DAN B = ,F7.2))A,B
END
Contoh 2.22 :
IMPLICIT REAL*4(M), REAL*4(I)
WRITE(*,(1X,A,\)) BERAPA METER ?
READ(*,*) METER
FEET = METER * 3.28
Format Specifier berupa *
YARD = METER * 1.09
MILE = METER * 0.00062
INCH = METER *39.37
WRITE(*,*)
WRITE(*,*) NILAI KONVERSINYA :
WRITE(*,*)
METER,METER
METER,METER
METER,METER
METER,METER
=
=
=
=
36
,FEET,FEET
,YARD,YARD
,MILE,MILE
,INCH,INCH
2.4.3
METER
METER
METER
METER
=
=
=
=
32.8000000 FEET
10.9000000 YARD
6.200000E-003 MILE
393.7000000 INCH
STATEMEN FORMAT
Statemen FORMAT digunakan untuk menentukan spesifikasi data yang akan
dimasukkan atau dikeluarkan. Statemen FORMAT bebas diletakkan dimana
saja di dalam program. Betuk umum statemen ini adalah :
<label> FORMAT <format-specification>
dimana :
<label>
37
I6
I3
Digit
991
5000***
38
39
Contoh 2.25 :
A = 0.275E+4
B = 0.125E+04
C = 0.6125E+05
WRITE(*,10) A, B, C
10 FORMAT(1X, E10.3, E10.3, E12.4)
END
3
10
E10.3
4
12
E12.4
0.125D+04
3
12
E12.3
0.613D+05
3
12
D12.3
40
A8
A8
A8
41
Contoh 2.28 :
LOGICAL BENAR, SALAH
BENAR = .TRUE.
SALAH = .FALSE.
WRITE(*,10) BENAR, SALAH
10 FORMAT(1X, 2L10)
END
L10
L10
Eksekusi program :
Baris 1. komputer melewati pernyataan ini karena merupakan sebuah komentar
Baris 2. Komputer menyimpan 1 dalam lokasi penyimpanan berpengenal J
J1
Baris 3. Komputer menyimpan nilai 3 dalam loksi penyimpanan berpengenal K
K3
Baris 4. pernyataan ini memberitahukan komputer untuk menghitung 2xJ+K, dan
menyimpan nilai hasilnya di lokasi penyimpanan berpengelan L
42
L 2*J+K (2*1+3)
L5
Baris 5 ini memberitahu komputer untuk menghitung 3*J+2*L mengunakan nilai
J yang sekarang dan L, kemudian menyimpan hasilnya di lokasi
penyimpanan berpengenal J
J 3*J+2*L (3*1+2*5=13)
J 13
Karenanya komputer menghapus nilai J yang sekarang dan menggantinya
dengan 13 di tempat penyimpanan yang sama. Kita gambarkan hal ini
dengan :
J 1 13
Baris 6. Pernyataan ini memberitahu komputer untuk menambah nilai K yang
sekarang dengan 2
K35
Baris 7. Komputer menambahkan nilai J, K, dan L sekarang :
J+K+L=13+5+5=23
Kemudian komputer menghapus nilai L yang sekarang dan menggantinya
dengan 23 di tempatnya.
L 5 23
Baris 8. Komputer mencetak nilai J, K dan L dengan Format seperti tercantum
dalam statemen FORMAT pada statemen dengan label 20, yaitu format
integer dengan masing-masing bernilai 5 digit
13
5 23
43
1.2 Luas permukaan dan volume suatu kotam berukuran a,b,c diberikan oleh
persamaan :
VOL = a b c
andaikan ukuran sebuah kotak adalah 23.5, 41.3 dan 16.2, temukan program
untuk menyelesaikan persoalan tersebuat.
Jawab :
READ(*,*) A
READ(*,*) B
READ(*,*) C
VOL = A*B*C
WRITE(*,*) VOLUME =
WRITE(*,62) VOL
62 FORMAT(1X,F16.2)
END
SOAL-SOAL LATIHAN
1. Temukan kesalahan, jika ada, pada masing-masing pernyataan READ berikut
dan pernyataan FORMAT yang menyertai.
a.
READ(*,11) A, K, M, Z
11 FORMAT(F6.0,I15,I10,I15)
c.
READ(*,11) A, B, J, K, L
11 FORMAT(3F8.1, 2I8)
b.
READ(*,11) A, B, C, D, J, K, L
11 FORMAT(4F15.2, 3I15)
WRITE (*,11) A, B, N
11 FORMAT (F10.2, 3X, I8, 5X, I6)
b.
WRITE (*,11) J, Z, K
11 FORMAT (1X, I10, 4X, 2F10.3)
44
c. 41 FORMAT(4X, I3)
b. 41 FORMAT(4X, I8)
d. 41 FORMAT(I5)
PRAKTIKUM
1. Tulis dan jalankan menggunakan FORTRAN, teliti bagaimana bentuk
keluarannya, kemudian simpanlah programnya
C
C
PROGRAM LAT_1A
Program menulis hasil
Bil. Bulat (integer)
KK = 779
LL = 29
WRITE(*,10)KK, LL
10 FORMAT (I3, I2)
STOP
END
C
C
PROGRAM LAT_1B
Program menulis hasil
Bil. Bulat (integer)
KK = 779
LL = 29
WRITE(*,10)KK, LL
10 FORMAT (I5, I5)
STOP
END
C
C
PROGRAM LAT_1C
Program menulis hasil
Bil. Bulat (integer)
KK = 779
LL = 29
WRITE(*,10)KK, LL
10 FORMAT (2I5)
STOP
END
C
C
PROGRAM LAT_2A
Program menulis hasil
Bilangan Real
XMAX = 0.17
YMAX = 123.9
WRITE(*,10)XMAX, YMAX
10 FORMAT (F4.2, F5.1)
STOP
END
C
C
PROGRAM LAT_2B
Program menulis hasil
Bilangan Real
XMAX = 0.17
YMAX = 123.9
WRITE(*,10)XMAX, YMAX
10 FORMAT (F7.2, F7.1)
STOP
END
C
C
PROGRAM LAT_2B
Program menulis hasil
Bilangan Real
XMAX = 0.17
YMAX = 123.9
WRITE(*,10)XMAX, YMAX
10 FORMAT (2F7.2)
STOP
END
PROGRAM LAT_3A
Program menulis hasil
DOUBLEPRECISION XMAX, XERR
XMAX = 1234567.0
XERR = 0.879
WRITE(*,10)XMAX, XERR
10 FORMAT (E17.7, E16.3)
STOP
END
45
PROGRAM LAT_3B
Program menulis hasil
DOUBLEPRECISION XMAX, XERR
XMAX = 1234567.0
XERR = 0.879
WRITE(*,10)XMAX, XERR
10 FORMAT (2E17.7)
STOP
END
PROGRAM LAT_4A
Program menulis hasil
DOUBLEPRECISION XMAX
XMAX = 776688.0
WRITE(*,10) XMAX
10 FORMAT (3X,NILAI XMAX =,F8.1)
STOP
END
PROGRAM LAT_4B
Program menulis hasil
XA=112233.0
XB=445566.0
WRITE(*,10) XA
WRITE(*,11) XB
10 FORMAT (/,NILAI XA =,F8.1)
11 FORMAT (/,NILAI XB =,F8.1)
STOP
END
5. Buatlah program untuk menghitung posisi Y(t) dan kecepatan V(t) suatu gerak
1
berubah beraturan yang dinyatakan dalam persamaan Y (t ) Yo Vo t At 2 dan
2
V (t ) Vo At , sebagai masukan adalah Yo ,Vo , A dan t .
STANDAR KOMPETENSI
Setelah menyelesaikan mata kuliah Bahasa Komputer
mahasiswa mampu mengembangkan paket program aplikasi
mandiri untuk menyelesaikan masalah keteknikan khususnya
Teknik Sipil dengan bahasa FORTRAN
KOMPETENSI DASAR
Mahasiswa dapat membuat program aplikasi yang lebih
kompleks yang membutuhkan adanya pengambilan keputusan
dalam mengatur aliran logika program.
INDIKATOR
1. Mahasiswa dapat menggunakan stetemen perulangan dalam
mengatur aliran logika pemrograman dimana dibutuhkan
adanya pengerjaan sebuah statemen yang berulang-ulang
(looping and repetition)
2. Mahasiswa dapat menerapkan penyeleksian kondisi pada
sebuah
statemen
yang
memiliki
beberapa
opsi
pengerjaan yang berbeda sesuai dengan kondisi yang
dihasilkan.
46
- 47
3.1 PERULANGAN
Statemen kontrol atau statemen kendali termasuk executabel statement, yang
mengendalikan urutan dari proses statemen-statemen di dalam blok program. Di
dalam sebuah program, kadang kala, terdapat suatu eksekusi statemen yang sama
yang dilakukan berulang-ulang. Dimana, pengulangan suatu proses adalah hal
yang mendasar untuk penulisan progran komputer, dan akan sangat berguna untuk
mempunyai sebuah komando mirip makro seperti DO WHILE 1 I N.
3.1.1 STATEMEN CONTINUE
Pernyataan CONTINUE digunakan sebagai dummy statement (statemen
boneka), yang digunakan untuk terminal statement pada statemen DO atau
statemen GOTO
3.1.2 STATEMEN END
Fungsi dari statemen END pada program utama adalah untuk mengahiri proses
dari program, sedangkan pada unit program mempunyai fungsi seperti
RETURN. Statemen END harus terletak diakhir dari program dan tidak boleh
digabung dengan statemen lain. Bentuk umum dari statemen ini adalah :
END
Contoh 3.1 :
END selalu di akhir program
A= 20.0
WRITE(*,21) A
21 FORMAT(1X,NILAI A = ,F7.2)
END
3.1.3
STATEMEN STOP
Statemen ini berfungsi untuk menghentikan proses pengerjaan program.
Statemen STOP tidak mesti ada didalam sebuah program. Penempatan
- 48
statemen ini boleh dimana saja di dalam program. Bentuk umum statemen
STOP adalah sebagai berikut :
STOP [<n>]
Dimana :
<n>
Contoh 3.1 :
A=10.0
B=60.0
WRITE(*,100) A
STOP PROSES DIHENTIKAN DENGAN STATEMEN STOP
WRITE(*,200) B
100 FORMAT(1X,NILAI A =,F5.1,/)
200 FORMAT(1X,NILAI B =,F5.1)
END
3.1.4
STATEMEN PAUSE
Tidak seperti statemen STOP yang menghentikan/keluar dari program, statemen
PAUSE digunakan untuk menghentikan sementara proses eksekusi program.
Pengaruh dari penghentian sementaran program dengan statemen PAUSE akan
berakhir atau eksekusi program dilanjutkan apabila ditekan tombol <Enter>. Bentuk
umum statemen PAUSE sebagai berikut :
PAUSE [<n>]
Dimana :
<n>
- 49
Contoh 3.2 :
A=10.0
B=60.0
WRITE(*,100) A
PAUSE Tekan Tombol RETURN untuk melihat nilai B
WRITE(*,200) B
100 FORMAT(1X,NILAI A =,F5.1,/)
200 FORMAT(1X,NILAI B =,F5.1)
END
3.1.5 STATEMEN DO
Pernyataan DO digunakan untuk mengulang suatu statemen atau proses sebanyak N
kali. Bentuk umum dari statemen ini adalah sebagai berikut :
DO <slabel>[,] <nama variabel> = <exp1>,<exp2>[,<exp3>]
Dimana :
<slabel>
<nama variabel>
<exp1>
<exp2>
<exp3>
- 50
Statemen label
Variabel numerik integer
Awal perulangan
Akhir perulangan
Peningkatan (increment)
Contoh 3.3 :
DO 5 I=1,5,1
5 WRITE(*,21) I
21 FORMAT(1X,I2,.,1X,KOMPUTER)
END
KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
KOMPUTER
DO 5 I=8,1,-2
5 WRITE(*,21) I
21 FORMAT(1X,NILAI I = ,I2)
END
I
I
I
I
=
=
=
=
8
6
4
2
DO n I = IN,IE,IC
.
.
.
BADAN DO LOOP
.
.
.
n CONTINUE
- 51
Dimana :
IN = nilai awal indeks
IE = nilai uji/akhir indexs
IC = peningkatan/interval
n = statemen label (nomor
Pernyataan CONTINUE)
I IN
DO n
I = IN,IE, IC
Badan DO
Badan DO
I I + IC
Ya
belum selesai
I IE
n
belum selesai
Tidak
SELESAI
SELESAI
(a)
(b)
- 52
MULAI
Contoh 3.6
SUM 0
DO 200
I=1,100
BACA A
SUM SUM + A
200
AVESUM/100.0
CETAK
AVE
SELESAI
- 53
mendasar dari keluar tidak normal suatu DO loop adalah bahwa pada
saat keluar, nilai indeks I yang sekarang dipertahankan, karenanya dapat
digunakan dalam perhitungan lebih lanjut atau dalam operasi
masukan/keluaran. Kerangka program berikut
menggambarkan
***
STOP
200 * * *
***
***
STOP
CONTOH 3.7 :
READ (*,8) K
8 FORMAT(I10)
KK = K/2
DO 100 I = 2, KK
IF (K .EQ.(K/I)*I) GO TO 50
100 CONTINUE
WRITE(*,10)K
10 FORMAT(10X,I5,1X,ADALAH
+PRIMA)
STOP
50 WRITE(*,20)K,I
20 FORMAT(10X,I5,1X,BUKAN PRIMA
+10X,I5,1X,ADALAH PEMBAGI)
STOP
END
MULAI
BACA K
KK K/2
DO 100
I=2, KK
Ya (keluar tak normal)
I membagi K
Tidak
100
K bukan prima
I pembagi
Keluar normal
K prima
SELESAI
3.1.7
- 54
lainnya dalam DO loop yang sama, dan seseorang secara bebas dapat melompat ke
luar dari DO loop sembarang. Tetapi tidak mungkin untuk melompat ke tengahtengah DO loop. Yakni, satu-satunya cara untuk beralih ke pernyataan di dalam
suatu DO loop hanyalah melalui pernyataan DO yang sama.
Andaikan kita ingin sebuah ruas program FORTRAN menggunakan DO loop
yang menghitung jumlah 1+2+3+5+6+7+ 8+9+10 tanpa melalui bilangan 4,
bandingkan dua program berikut :
(A)
ISUM =0
DO 100 I=1,10
IF(I .EQ. 4) I = I + 1
ISUM = ISUM + I
100 CONTINUE
(B)
ISUM = 0
50 DO 200 I=1,10
IF(I .EQ. 4) GO TO 50
ISUM = ISUM + I
200 CONTINUE
Progran A tidak benar karena indeks I diubah di dalam DO loop. Yaitu, jika
pernyataan
IF(I .EQ. 4) I = I + 1
ISUM = ISUM + I
tidak berada dalam sebuah DO loop, maka 5 akan ditambahkan pada ISUM jika I
mula-mula berisi 4. Tetapi, karena disini beada di tengah-tengah DO loop,
pernyataan-pernyataan tersebut tidak diijinkan.
- 55
Contoh 3.8 :
BACA LAR
C PROGRAM PENENTUAN
C BILANGAN TERBESAR
C
REAL LAR
READ (*,10) LAR
10 FORMAT(F10.2)
DO 50 I = 1, 99
READ (*,*) X
IF(LAR.GE.X)GO TO 50
LAR = X
50 CONTINUE
WRITE(*,20)LAR
20 FORMAT(1X,F10.2)
STOP
END
DO 50
I=1, 99
BACA X
Ya
LAR X
Tidak
LAR X
50
CETAK LAR
SELESAI
3.1.8
- 56
DO 18____________
***
***
***
DO 20___________
***
***
***
18 CONTINUE
***
***
***
20 CONTINUE
DO 20___________
***
***
DO 10___________
***
***
10 CONTINUE
20 CONTINUE
- 57
DO 10___________
***
***
DO 10___________
***
***
10 CONTINUE
DO 10___________
***
***
DO 10___________
***
***
10 PERNYATAAN TEREKSEKUSI
- 58
STATEMEN GO TO
Statemen GO TO merupakan statemen loncatan, yaitu digunakan untuk
meloncat ke suatu statemen lainnya yang tertentu. Ada dua bentuk
statemen ini, yaitu :
Statemen GO TO tanpa syarat (unconditional GO TO)
Statemen GO TO pengerjaan (assigned GO TO)
Statemen GO TO bersyarat/terhitung (computed GO TO)
A. STATEMEN GO TO TANPA SYARAT
Statemen ini memberiperintah agar program dilanjutkan langsung ke
statemen nomor <slabel>. Bentuk umum :
GO TO <slabel>
Dimana :
<slabel> = nomor statemen yang dapat dilaksanakan.
variabel <slabel> (integer) adalah salah satu
nomor statemen yangterdapat dalam program.
Dengan statemen ini program dapat meloncati beberapa baris
statemen di atas atau dibawahnya.
Contoh 3.11 :
5 WRITE(*,(1X,A))KOMPUTER
GO TO 5
END
- 59
B. STATEMEN GO TO PENGERJAAN
Statemen ini memberi perintah agar program meloncat ke statemen
nomor <slabel> yang ditunjukkan oleh isi dari <name>. Bentuk
umumnya :
GO TO <name>[[,](<slabel>[,<slabel>])]
Dimana :
<name> adalah nama variabel integer yang diisi statemen label
dengan perintah ASSIGN
Jadi salah satu nilai dari <slabel> harus sama dengan nilai dari
<name>. Kalau nilai dari <name> tidak ada yang sama dari salah
satu <slabel>, maka proses tidak akan melompat ke suatu statemen
label apapun, tetapi akan dilanjutkanke statemen berikutnya.
CONTOH 3.12 :
ASSIGN 15 TO LONCAT
GOTO LONCAT,(15)
WRITE(*,(1X,A))TIDAK DITAMPILKAN
15 WRITE(*,(1X,A))DITAMPILKAN
WRITE(*,(1X,A))INI JUGA DITAMPILKAN
END
- 60
WRITE(*,(1X,A))
<< PILIHAN >>
WRITE(*,*)
WRITE(*,(1X,A)) 1. Menghitung isi silinder
WRITE(*,(1X,A)) 2. Menghitung luas segi tiga
WRITE(*,(1X,A)) 3. Menghitung isi kubus
WRITE(*,*)
WRITE(*,(1X,A)) 4. SELESAI
15 WRITE(*,(//,1X,A,\))PILIH NOMER (1-4)?
READ(*,(I1)) NOMER
Computed GOTO
C
- 1 1000
C menuju ke label sesuai dengan nomor yang dipilih
- 2 2000
WRITE(*,*)
- 3 3000
GOTO(1000,2000,3000,4000) NOMER
- 4 4000
BUNYI = 7
WRITE(*,(1X,A,A))SALAH PILIH!!,Ulangi, BUNYI
GOTO 15
C
C MENGHITUNG ISI SILINDER
1000 WRITE(*,(1X,A,\))JARI-JARI LINGKARAN?
READ(*,(F7.2)) R
WRITE(*,(1X,A,\))TINGGI SILINDER?
- 61
READ(*,(F7.2)) T
XISI = 3.1419 *R**2*T
WRITE(*,(/,1X,A,F7.2))ISI SILINDER =,XISI
GOTO 4000
C
C MENGHITUNG LUAS SEGI TIGA
2000 WRITE(*,(1X,A,\))PANJANG SISI DASAR?
READ(*,(F7.2)) S
WRITE(*,(1X,A,\))TINGGI SEGITIGA?
READ(*,(F7.2)) T
XLUAS = 0.5*S*T
WRITE(*,(/,1X,A,F7.2))LUAS SEGITIGA =,XLUAS
GOTO 4000
C
C MENGHITUNG ISI KUBUS
3000 WRITE(*,(1X,A,\))PANJANG SISI KUBUS?
READ(*,(F7.2)) S
WRITE(*,(1X,A,\))TINGGI SILINDER?
READ(*,(F7.2)) T
XISI = S*S*S
WRITE(*,(/,1X,A,F7.2))ISI KUBUS =,XISI
GOTO 4000
C
C SELESAI
4000 CONTINUE
END
PILIHAN
>>
Jika misalnya dipilih 2, berarti akan menghitung luas segi tiga, maka
akan ditanyakan :
PANJANG SISI DASAR?20.0
TINGGI SEGITIGA?15.0
LUAS SEGITIGA = 150.00
3.2.2
- 62
STATEMEN IF
Statemen atur kondisional dan iterasi (pengulangan) merupakan
komponen bahasa FORTRAN yang dapat digunakan untuk membuat
keputusan. Keputusan diambil setelah meninjau beberapa kondisi
tertentu. Untuk keperluan ini dikenal adanya statemen IF.
Ada 3 macam statemen IF yaitu :
-
A. IF LOGIKA
IF logika digunakan untuk menyeleksi suatu statemen logika atau
statemen hubungan (relasi), jika kondisinya benar (TRUE) maka
statemen yang mengikutinya akan diperoses. Sebaliknya, jika salah
(FALSE) proses akan meloncat ke statemen berikutnya (ungkapan
logika yang digunakan .LT.,.LE.,.EQ.,.NE.,.GT.,.GE.). Dua operator
logika yang sangat berguna selain .NOT. adalah .OR. (logika atau ) dan
.AND. (logika dan).
Bentuk umum :
IF(<expresi>) <statemen>
Dimana :
<expresi> ungkapan logika atau ungkapan hubungan yang akan
diseleksi.
<statemen> executable statement, kecuali statemen DO, blok IF
atau statemen IF logika lainnya.
Berikut adalah contoh pendeklarasian IF logika yang benar :
IF(X .GT. 3 .AND. Y .LE. 2) GOTO 3
IF(A .LE. X .OR. Y .LE. 2) GOTO 5
IF(.NOT. (X .LT. Y .OR. G .GT. GG)) GOTO 3
- 63
MULAI
Contoh 3.15
BACA ITAHUN
HITUNG
XTAHUN = ITAHUN/4.0
JTAHUN =ITAHUN/4
XTAHUN=
JTAHUN
Tidak
TULIS :
BUKAN TAHUN
KABISAT
CONTINUE
SELESAI
B. IF ARITMATIKA
Statemen IF aritmatika digunakan untuk menyeleksi kondisi suatu
ungkapan aritmatika apabila bernilai positif, negatif atau nol.
Gambar 3.8 menunjukkan diagram alir dari if aritmatika.
Bentuk umu IF aritmatika adalah :
IF (<expressi>) <slabel>,<slabel>, <slabel>
dimana :
<expressi> merupakan ekspresi aritmatika (disebelah kanan
tanda =) yang akan dievaluasi harganya.
<slabel> merupakan nomor statemen yang dituju selanjutnya
bila <expressi> lebih kecil, sama dengan atau
lebih besar dari nol.
TRUE
<0
E<0
ATAU
- 64
>0
E
=0
FALSE
TRUE
E=0
FALSE
IF(Z-0.001)12, 12, 13
IF(K(I,J)-1)20, 40, 30
Contoh 3.16 :
C
C
C
C
MULAI
BACA ID
PROGRAM PREMI
PAY 50000
PREMI = 9.75 JIKA BELUM KAWIN
PREMI = 16.25 KAWIN TANPA ANAK
NEGATIF
PREMI = 24.50 KAWIN PUNYA ANAK
POSITIF
TYPE
REAL NET
WRITE(*,*)TYPE ?
NOL
READ(*,*)TYPE
PAY = 50000.00
NET PAY-9.75
NET PAY-16.25
NET PAY-24.50
IF(TYPE) 10,20,30
10 NET = PAY -9.75
CETAK
GOTO 75
ID, NET
20 NET = PAY 16.25
GOTO 75
SELESAI
30 NET = PAY 24.50
75 WRITE(*,40)NET
40 FORMAT(1X,F12.2)
Gambar 3.9 Diagram alir contoh 3.16,
END
C. IF BLOK
Statemen IF blok dapat terdiri dari statemen IF-THEN, ELSE,
ELSEIF dan ENDIF.
Bentuk umum :
IF(<statemen>) THEN
ELSE
- 65
- 66
WRITE(*,*)
WRITE(*,(1X,A)) GARIS
WRITE(*,(1X,A)) NAMA MAHASISWA
NILAI
WRITE(*,(1X,A)) GARIS
DO 15 I=1,5
IF(NILAI(I) .GT. 75.0) THEN
KET = LULUS SANGAT BAIK
ELSEIF(NILAI(I) .GT. 65.0) THEN
KET = LULUS BAIK
ELSEIF(NILAI(I) .GT. 55.0) THEN
KET = LULUS CUKUP
ELSE
KET =TIDAK LULUS
ENDIF
15 WRITE(*,40) NAMA(I), NILAI(I), KET
40 FORMAT(1X,A20,2X,F6.2,2X,A20)
WRITE(*,(1X,A)) GARIS
END
KETERANGAN
MULAI
BACA
DATA NAMA, NILAI
CETAK
JUDUL TABEL
DO I=1,5
YA
KET =LULUS SANGAT BAIK
NILAI(I) >
75.0 ?
TIDAK
NILAI(I) >
65.0 ?
YA
TIDAK
NILAI(I) >
55.0 ?
YA
TIDAK
KET =TIDAK LULUS
CETAK
JUDUL TABEL
15
SELESAI
- 67
- 68
K=2
10 DO 20 I=3,8,2
IF (I .EQ.5) GOTO 20
K=K+1
20 CONTINUE
K=2*K
b.
K=2
10 DO 20 I=3,8,2
IF (I .EQ.5) GOTO 10
K=K+1
20 CONTINUE
K=2*K
Jawab :
a. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi
sebagai berikut :
(i) Pertama untuk I=3. karena I5, pernyataan K=K+1 dieksekusi, yang
menghasilkan :
K K+1 = 2+3=5
(ii) Kemudian untuk I=5. Karena I=5,pengendalian dialihkan ke
CONTINUE yang mendaur-ulang DO loop
(iii)Kemudian untuk I=7. Karena I5, pernyataan K=K+1 dieksekusi,
yang menghasilkan :
K K+1 = 5+7=12
Nilai I berikutnya melampaui nilai uji, sehingga pengendalian
dialihkan ke pernyataan yang menyusul DO loop, yang melipat duakan
nilai K. Karenanya nilai K terakhir adalah 24.
b. Pernyataan pertama memberi nilai 2 kepada K. Kemudian DO loop dieksekusi
sebagai berikut :
(i) Pertama untuk I=3. Karena I5 pernyataan K=K+1 dieksekusi, yang
menghasilkan :
K K+1 = 2+3=5
(ii) Kemudian untuk I=5. Karena I=5, pengendalian dialihkan ke
pernyataan DO
- 69
b. (i) Perhatikan bahwa X+Y>100 jika dan hanya jika X+Y-100 positif
IF(X+Y-100.0)20, 20, 10
10 K=0
GOTO 30
- 70
20 K=1
30 .
IF (X+Y .LE. 100.0) GOTO 20
K=0
GOTO 30
20 K=1
30 .
(ii)
SOAL-SOAL LATIHAN
1. Pada tiap pernyataan DO berikut, temukan kesalahan, jika ada :
a. DO 700, LAMB=1,14,l
b. DO 800 J=7,M**2,2
c. DO 900 K=I, J, K
d. DO 1000 LONG=K234 , K123, K345
K=3
DO 100 J=3,7,3
K=K+J
100 CONTINUE
K=3*K
c.
K=3
M=2
DO 300 J=3,7,M
K=K+J
300 CONTINUE
K=3*K
b.
K=3
M=2
DO 300 J=3,7,M
M=M+K
300 CONTINUE
K=3*K
D.
K=3
M=2
DO 400 J=M,7,M
K=J+K+M
IF(K.GT.9) GOTO 10
400 CONTINUE
10 K=3*K
IF(A=B) GOTO 50
IF(X GT Y) STOP
IF(B**2-A*C) STOP
IF(X.LT.Y+Z) 10,15, 20
e. IF(X.LE.100) GOTO K
f. IF(A-100)10,20,30
g. IF(X.GE.Y) GOTO 55
h. IF(INT.LT.AMOUNT STOP
IF(J.GE.K) J=J+2
J=J+2
b.
IF(J.LT.K-1) GOTO 10
J=J+2
10 J=J+K
c.
IF(5*J.EQ.3*K) J=J+2
J=J+2
d.
D.
IF(J-) 10,10,20
10 J=K
20 J=J+2
- 71
IF(J.GE.K+1) GOTO 10
J=J+2
10 J=J+K
IF(2*J-K)10,10,20
10 J=K
20 J=J+2
PRAKTIKUM
1. Tulislah bebrapa program FORTRAN berikut, jalankan, amati prosesnya dan
simpan dengan nama berbeda.
PROGRAM LAT3_1A
PROGRAM LAT3_1B
A = 10.0
A=10.0
WRITE(*,4) A
B=12.0
WRITE(*,4) A
STOP
END
WRITE(*,6) B
4 FORMAT(1X,NILAI A = , F4.1)
6 FORMAT(1X, NILAI B = ,F4.1)
STOP
END
PROGRAM LAT3_1C
PROGRAM LAT3_1E
PROGRAM LAT3_1F
dari 1 sampai N
a (v b )
T ( P, V ) P 2
V R
DOUBLEPRECISION Y
WRITE(*,*) N = ?
C
CHARACTER*17 IFX1
READ(*,*) IAKHIR
DOUBLEPRECISION P,V,T
Y=0.0
DO 10 N=1, IAKHIR
X=FLOAT(N)
R=8.31*1.0E+3
Y=Y+X
A=366.0
WRITE(*,4) N,Y
B=0.0429
10 ENDDO
- 72
DO M=1, 25
P=10000.0*FLOAT(M)
DO N=1,M
STOP
V=FLOAT(N)
END
T=(P+A/V**2)*(V-B)/R
WRITE(*,10) P, V, T
ENDDO
ENDDO
10 FORMAT(1X, P= ,F9.1,\,1X,V= ,F9.1,\,1X,T=,F9.1)
STOP
END
C
C
PROGRAM LAT3_1F
Program mencari bilangan terbesar
REAL LAR
WRITE(*,*) N = ?
READ(*,10) N
10 FORMAT(I6)
WRITE(*,*) LAR = ?
READ(*,20) LAR
I=1
100 READ(*,20) X
20 FORMAT(F12.2)
IF (LAR .GE.X) GOTO 200
LAR=X
200 I=I+1
IF (I .LE.N-1) GOTO 100
WRITE(*,30) LAR
30 FORMAT(1X,BIL. TERBESAR ADALAH,2X,F12.2)
STOP
END