LISTING
PROGRAM :
Polinom.for
INTEGER HIT,HT,O,X
INTEGER A(10),POL(10),H,N,PIL
CHARACTER*20 LAGI,KEY
2 WRITE(*,'(24(/))')
WRITE(*,'(A)') ' M E N U '
WRITE(*,'(A)') '=================='
WRITE(*,'(A)') ' 1. INPUT '
WRITE(*,'(A)') ' 2. NILAI F(X) '
WRITE(*,'(A)') ' 3. HASIL BAGI '
WRITE(*,'(A)') ' 4. EXIT '
WRITE(*,'(A)') '=================='
WRITE(*,'(A,\)') ' PILIHAN ? '
READ(*,'(I3)') PIL
WRITE(*,*)
IF(PIL.EQ.1) THEN
WRITE(*,'(A,\)') 'PANGKAT TERTINGGI : '
READ(*,'(I2)') N
WRITE(*,'(A,I2)') 'MASUKKAN KOEFISIEN '
DO 5 I=1,N+1
WRITE(*,'(A,I2,A,\)') 'KOEF [ ',I,' ] = '
READ(*,'(I2)') A(I)
5 CONTINUE
ENDIF
IF(PIL.EQ.2) THEN
WRITE(*,'(/,A,\)') 'F(X) = '
J=N
DO 7 I=1,N+1
WRITE(*,'(I2,A,I2,\)') A(I),' X^',J
IF(I.NE.N+1) THEN
WRITE(*,'(\,A)') '+'
ENDIF
J=J-1
7 CONTINUE
WRITE(*,*)
WRITE(*,'(A,\)') 'NILAI X = '
READ(*,'(I2)') X
O=N
HT=0
DO 9 I=1,N+1
HT = HT + A(I) * ( X ** O )
O=O-1
9 CONTINUE
WRITE(*,'(A,I5)') 'HASILNYA = ',HT
ENDIF
IF(PIL.EQ.3) THEN
WRITE(*,'(/,A,\)') 'AKAR = '
READ(*,'(I2)') K
BN=0
DO 10 I=1,N+1
POL(I)=A(I)+K*BN
BN=POL(I)
10 CONTINUE
WRITE(*,'(A,\)') 'F(X) = '
J=N
DO 12 I=1,N
WRITE(*,'(I2,A,I2,\)') POL(I),' X^',J-1
IF(I.NE.N) THEN
WRITE(*,'(\,A)') '+'
ELSE
WRITE(*,'(/,A,I5)') 'SISANYA = ',POL(I+1)
ENDIF
J=J-1
12 CONTINUE
ENDIF
WRITE(*,*)
IF((PIL.EQ.1).OR.(PIL.EQ.2).OR.(PIL.EQ.3)) THEN
WRITE(*,'(A)') 'PRESS ANY KEY TO CONTINUE
'
READ(*,'(A)') KEY
GOTO 2
ENDIF
END
LOGIKA PROGRAM :
INTEGER HIT,HT,O,X
INTEGER A(10),POL(10),H,N,PIL
CHARACTER*20 LAGI,KEY
Blok
diatas digunakan untuk mendeklarasikan suatu variabel yaitu variabel HIT, HT, O,
X, H, N, PIL sebagai variabel integer. Kemudian variabel A dan POL merupakan
suatu array yang dapat menampung sebanyak 10 nilai. A dan POL bertipe data
array. Selanjutnya mendeklarasikan variabel karakter dan array yaitu bertipe
data karakter.
2
WRITE(*,'(24(/))')
WRITE(*,'(A)') ' M E N U '
WRITE(*,'(A)') '=================='
WRITE(*,'(A)') ' 1. INPUT '
WRITE(*,'(A)') ' 2. NILAI F(X) '
WRITE(*,'(A)') ' 3. HASIL BAGI '
WRITE(*,'(A)') ' 4. EXIT '
WRITE(*,'(A)') '=================='
WRITE(*,'(A,\)') ' PILIHAN ? '
READ(*,'(I3)') PIL
WRITE(*,*)
Blok
program ini digunakan untuk mencetak/membuat suatu menu pilihan, menginput dan
membaca hasil inputan dan disimpan dalam suatu variabel. Pertama-tama programa
akan mencetak satu baris kosong, Kemudian membaca nilai dari variabel A yaitu
suatu variabel berjenis karakter selanjutnya mencetak kata Menu. Membaca
kembali variabel A berjenis karakter kemudian mencetak tanda ===========,
mencetak kata 1. INPUT yang nantinya digunakan untuk menginput suatu nilai,
kemudian mencetak 2.NILAI F(X) yang nantinya pilihan ini digunakan untuk
menginput nilai X. Kemudian mencetak 3.HASIL BAGI user diminta untuk memasukkan
nilai bagi untuk nilai yang ada kemudian akan ditampilkan hasil baginya, yang
terakhir dalam pilihan menu adalah mencetak kata 4.EXIT yang digunakan untuk
keluar dari program polinom. Kemudian mencetak tanda ======= selanjutnya
mencetak PILIHAN? Dimana user diminta untuk memasukkan pilihan dari menu yang
ada kemudian inputan nilai tersebut dibaca/disimpan dalam variabel PIL dalam
bentuk integer. Kemudian program akan mencetak satu baris kosong.
IF(PIL.EQ.1) THEN
WRITE(*,'(A,\)') 'PANGKAT TERTINGGI : '
READ(*,'(I2)') N
WRITE(*,'(A,I2)') 'MASUKKAN
KOEFISIEN '
DO 5 I=1,N+1
WRITE(*,'(A,I2,A,\)') 'KOEF [ ',I,' ] = '
READ(*,'(I2)') A(I)
5
CONTINUE
ENDIF
Blok
program ini merupakan suatu kondisi dimana jika user menginput pilihan 1 maka
program akan mengeksekusi blok program ini. Dimana kondisi yang diberikan
adalah jika nilai dari variabel PIL sama dengan 1 maka akan mencetak kata
PANGKAT TERTINGGI : disini user diminta untuk memberikan pangkat tertinggi dari
persamaan yang akan dibuat. Kemudian hasil dari inputan tersebut akan
dibaca/disimpan dalam variabel N sebagai integer. Kemudian akan mencetak lagi
kata MASUKKAN KOEFISIEN kemudian program akan menuju line number 5 yang berisi
perintah CONTINUE yaitu melanjutkan perulangan hingga perulangan selesai.
Kondisi perulangan adalah dimana nilai awal dari variabel I adalah 1 dan
perulangannya adalah nilai dari variabel N ditambah 1. Setiap perulangan akan
mencetak kata KOEF [‘,I,’] = dimana I adalah nilai dari perulangan yang telah
dilakukan kemudian user diminta untuk menginput nilai dari koefisien tersebut
dan akan disimpan dalam variabel A sebagai integer. Untuk keluar dari kondisi
ini digunakan perintah ENDIF.
IF(PIL.EQ.2) THEN
WRITE(*,'(/,A,\)') 'F(X) = '
J=N
DO 7 I=1,N+1
WRITE(*,'(I2,A,I2,\)') A(I),' X^',J
IF(I.NE.N+1) THEN
WRITE(*,'(\,A)') '+'
ENDIF
J=J-1
7
CONTINUE
WRITE(*,*)
Kondisi
selanjutny adalah jika user memilih menu pilihan nomor 2, maka program akan
mengeksekusi blok program ini. Dimana konisi yang diberikan adalah jika nilai dari variabel PIL sama dengan 2
maka program akan mencetak kata F(X) = dimana user diminta untuk menginput
nilai dari X. Selanjutnya program akan menyamakan nilai dari variabel J dengan
N. Kemudian program akan menuju ke line number 7 dimana merupakan suatu
looping/perulangan yaitu CONTINUE nilai awal dari variabel I sama dengan 1 dan
perulangan dilakukan sebanya nilai N ditmbah 1 hingga selesai. Program akan
mencetak nilai yang terdapat pada variabel A kemudian mencetak tanda X^ dan nilai dari variabel J.
Setelah itu terdapat suatu kondisi lagi dimana kondisi ini adalah jika nilai
dari I tidak sama dengan nilai dari variabel N ditambah 1 maka program akan
mencetak tanda +. Untuk mengakhiri kondisi ini digunakan perintah ENDIF.
Terdapat suatu perhitungan dimana nilai dari variabel J sama dengan nilai
variabel J dikurangi 1. Terakhir program akan mencetak satu baris kosong.
WRITE(*,'(A,\)') 'NILAI X = '
READ(*,'(I2)') X
O=N
HT=0
DO 9 I=1,N+1
HT = HT + A(I) * ( X ** O )
O=O-1
9
CONTINUE
WRITE(*,'(A,I5)') 'HASILNYA = ',HT
ENDIF
Blok
program ini lanjutan dari blok program sebelumnya. Disini program mencetak kata
NILAI X = dan user diminta memasukkan nilai X dan hasil inputan tersebut akan
dibaca oleh variabel X sebagai integer. Kemdian program akan menyamakan nilai
dari variabel O dan N dan nilai awal dari HT adalah 0, menuju ke line number 9
yaitu suatu perulangan CONTINUE melakukan perulangan sebanya I dimana nilai
awal I sama dengan 1 dan N ditambah 1, kemudian terdapat suatu operasi
matematika yaitu nilai dari HT sama dengan HT ditambah nilai dari variabel I
kemudian nilai dari X dipangkatkan dan dikali dengan nilai O. Selanjutnya nilai
O sama dengan O dikurangi 1. Jika sudah program akan mencetak kata HASILNYA =
yaitu ajak mencetak hasil dari operasi matematika sebelumnya dimana hasil yang
ditampilkan diambil dari variabel HT. Untuk mengakhiri kondisi ini gunakan
perintah ENDIF.
IF(PIL.EQ.3) THEN
WRITE(*,'(/,A,\)') 'AKAR = '
READ(*,'(I2)') K
BN=0
DO 10 I=1,N+1
POL(I)=A(I)+K*BN
BN=POL(I)
10
CONTINUE
WRITE(*,'(A,\)') 'F(X) = '
J=N
Blok
statement selanjutnya merupakan proses yang akan dijalankan jika user menginput
menu pilihan nomor 3. Dimana blok program ini juga merupakan suatu kondisi.
Kondisi yang diberikan adalah jika PIL sama dengan 3 maka kana tercetak AKAR =
dimana user diminta untuk memasukkan nilai dari akar pembagi. Hasil inputan
tersebut disimpan dalam variabel K bertipe data integer. Diberikan nilai awal
dari BN yaitu 0. Kemudian menuju ke line number 10 dimana terdapat suatu
perintah CONITNUE yaitu melakukan perintah yang sama hingga nilai perulangan
yang ditentukan selesai. Disini nilai awal I sama dengan 1 dan nilai N akan
ditambah 1. Kemudian terdapat operasi matematik yang hasinya disimpan dalam
variabel POL dimana nilai A akan ditambah dengan variabel K namun sebelumnya
variabel K akan dikalikan terlebih dahulu dengan variabel BN. Kemudian nilai
dari variabel BN sama dengan POL. Setelah itu di baris berikutnya akan tercetak
F(X) = nilainya diambil dari variabel A. Kemudian nilai variabel J akan
disamakan dengan nilai dari variabel N.
DO 12 I=1,N
WRITE(*,'(I2,A,I2,\)') POL(I),' X^',J-1
IF(I.NE.N) THEN
WRITE(*,'(\,A)') '+'
ELSE
WRITE(*,'(/,A,I5)') 'SISANYA = ',POL(I+1)
ENDIF
J=J-1
12
CONTINUE
ENDIF
WRITE(*,*)
Blok
program ini merupakan blok program sebelumnya dalam blok program ini juga
terdapat suatu kondisi. Program akan menuju ke line number 12 yaitu suatu
perintah CONTINUE. Program akan mencetak nilai dari variabel POL kemudian X^
dan nilai dari variabel J dikurangi 1. Kondisi disini adalah jika nilai dari
variabel I tidak sama dengan N maka mencetak tanda + jika tidak maka akan
mencetak kata SISANYA = dimana nilai dari sisa ini diambil dari variabel POL.
Untuk mengakhiri kondisi ini gunakan perintah ENDIF. Kemudian nilai dari
variabel J sama dengan J dikurangi 1 untuk menutup kondisi terluar/yang pertama
gunakan perintah ENDIF. Dan terakhir program akan mencetak satu baris kosong.
IF((PIL.EQ.1).OR.(PIL.EQ.2).OR.(PIL.EQ.3))
THEN
WRITE(*,'(A)') 'PRESS ANY KEY TO CONTINUE
'
READ(*,'(A)') KEY
GOTO 2
ENDIF
Blok
program ini merupakan suatu kondisi dimana jika nilai dari variabel PIL sama
dengan 1 atau 2 atau 3 maka akan tercetak kalimat PRESS ANY KEY TO
CONTINUE kemudian akan dibaca/disimpan pada varaibel KEY sebagai sebuah
karakter. Kemudian menuju ke line number 2 setelah itu untuk mengakhiri kondisi
ini gunakan perintah ENDIF.
END
Statement ini digunakan untuk mengakhiri
pengerjaan program dan memberhentikan/mengontrol akhir proses sebuah program.
OUTPUT
PROGRAM :
No comments:
Post a Comment