06090172780327630672
06090172780327630672
( L A R I K S )
Variabel-variabel yang digunakan sebelumnya disebut
variabel tanpa indeks atau variabel skalar. Tiap variabel skalar
mewakili sebuah sel memori tempat disimpannya sebuah nilai
tunggal, yaitu sebuah variabel X dapat dipandang sebagai
sebuah kotak :
Contoh :
DIMENSION AMOUNT (100)
DIMENSION ID(50), TAX(150)
DIMENSION AMOUNT(100,100)
Pada contoh pertama di atas, statemen tersebut
memerintahkan kompiler bahwa AMOUNT adalah nama
suatu larik linier (berdimensi satu) dan memerintahkan
kompiler untuk mengalokasikan 100 lokasi memori
untuknya.
Pada statemen ke dua, mendeklarasikan dua buah
larik linier dengan 50 elemen untuk ID dan 150 elemen
untuk TAX.
Sedangkan statemen ke tiga mendefinisikan larik
berdimensi banyak yang bernama AMOUNT dengan
elemen 100x100 (100 baris dan 100 kolom).
STATEMEN IMPLICIT
Statemen IMPLICIT digunakan untuk mendefinisikan tipe
default dari nama yang dibuat oleh pembuat program.
IMPLICIT type>(<a>[<a>]…)[,<type(<a>[,<a>],…)…]
<a> adalah suatu huruf atau range dari huruf. Bila berbentuk
range dari huruf, harus dari urutan kecil kebesar.
Statemen IMPLICIT mendefinisikan tipe dari semua variabel
atau larik yang huruf pertama dari namanya disebutkan
sebagai <a>. Huruf yang sama tidak boleh didefinisikan ulang
dengan statemen IMPLICIT. Variabel atau larik yang sudah
didefinisikan dengan statemen IMPLICIT dapat didefinisikan
ulang dengan statemen TYPE.
Contoh : !234567
IMPLICIT INTEGER A
ANGKA = 5
AKAR= 15
........
Statemen diatas mendeklarasikan semua nama variabel dan
larik yang diawali dengan huruf A dianggap sebagai tipe
integer, sudah bukan real lagi.
Contoh :
!234567
NILAI = 57.35
BOBOT = 1.5
NILAIAKHIR= NILAI*BOBOT
WRITE(*,200) NILAIAKHIR
200 FORMAT(1X,’NILAIAKHIR=’ ,F6.2)
END
<nama> adalah nama dari variabel, nama larik, nama fungsi atau
nama fungsi eksternal.
Statemen type mempunyai atauran sebagai berikut :
.Suatu statemen type harus ditulis sebelum executable statement
.Nama yang ditunjukkan di statemen type tidak boleh didefinisikan
lebih dari sekali.
.Suatu statemen type tidak boleh diberi statemen label .
!234567
REAL NILAI1, NILAI2, NILAI3, JUMLAH
.
.
!234567
IMPLICIT INTEGER (A-D,X)
REAL BOBOT
.
.
!234567
DIMENSION A(5,5), NILAI(100)
.
.
.
dapat juga ditulis dengan arti yang sama sebagai berikut :
REAL A(5,3)
INTEGER NILAI(100)
.
.
.
LARIK BERDIMENSI SATU
Larik linier atau dimensi-satu dengan N elemen adalah suatu
daftar atau serangkai N sel memori, dimana tiap sel boleh
menyimpan sebuah nilai. Sel-sel ini mempunyai nama sama dan
berdampingan satu sama lain. Suatu sel khusus dalam larik
dimensi-satu ini dikenali oleh sebuah bilangan bulat K, yaitu
posisinya dalam larik (jadi 1≤ K ≤ N).
&
&
K←0
200
!
! HITUNG BILANGAN DIBAWAH RATA-
! RATA DO 300
K=0
I =1, 25
DO 300 I=1,25
IF(SCORE(I).LT.AVE) K = K+1
300 CONTINUE
WRITE(*,30) K SCORE(I) YA
30 FORMAT(1X,’BANYAKNYA DIBAWAH < AVE
1RATA-RATA’,1X,I3)
STOP
TIDAK K ← K+1
END
300
CETAK K
SELESAI
LARIK BERDIMENSI BANYAK
Dalam matematika, sebuah matriks didefinisikan sebagai
rangkaian bilangan berbentuk segi-empat, seperti berikut ini :
Baris pertama a11 a12 a13 a14
Baris kedua a21 a22 a23 a24
Baris ketiga a31 a32 a33 a34
Kolom Kolom Kolom Kolom
pertama kedua ketiga keempat
Halaman 2
Halaman 1
Larik Dimensi-Tiga (2 x 4 x 3)
! PROGRAM MATRIK N X M
!234567
REAL*4 A(20,20)
WRITE(*,’(1X,A,\)’) ’JUMLAH BARIS ?’
READ(*,’(BN,I2)’)N
WRITE(*,’(1X,A,\)’) ’JUMLAH KOLOM ?’
READ(*,’(BN,I2)’)M
! MEMASUKKAN DATA MATRIK
WRITE(*,*)
DO 101 I=1,N
DO 100 J=1,M
WRITE(*,’(1X,’’A(’’,I2,’’,’’,I2,’’)?’’,\)’)I,J
READ(*,’(F7.2)’) A(I,J)
100 CONTINUE
101 CONTINUE
! MENCETAK MATRIK
WRITE(*,*)
WRITE(*,’(/,1X,A)’)’DATA MATRIK A : ’
DO 400 I=1,N
400 WRITE(*,’(1X,100(F9.2)’)(A(I,J),J=1,M)
END
MASUKAN/KELUARAN LARIK
Andaikan A dan B adalah larik linier masing-masing dengan empat dan
tiga elemen. Seperti telah dinyatakan sebelumnya, elemen-elemen A dan
B dapat muncul dalam pernyataan masukan/keluaran seperti
variabel-variabel biasa. Hal ini dapat dilihat dalam contoh berikut :
Cara ini efektif untuk variabel larik dengan elemen sedikit tetapi tidak
akan efisien digunakan jika terdapat ratusan elemen larik.
Nama Larik dalam Statemen Masukan/Keluaran
Contoh :
Andaikan C, D, dan E adalah larik-larik yang dideklarasikan oleh
DIMENSION C(3), D(2,3,2), E(3,2)
Maka pasangan WRITE_FORMAT
WRITE(*,30) C, D, E
30 FORMAT(6X,4F10.2)
memerintahkan komputer untuk mencetak sejumlah
3 + 2*3*2 + 3*2 = 21
3 dari larik C, 12 dari D dan 6 dari E. Karena pernyataan FORMAT
hanya mempunyai empat medan numerik, maka pada tiap baris
akan dicetak empat bilangan, dan pernyataan FORMAT akan
digunakan berulang-ulang sampai semua nilai tercetak. Jadi,
keluaran akan seperti berikut ini :
30 FORMAT (6X,6F10.2)
DO 101 I=1,N
DO 100 J=1,M
WRITE(*,’(1X,’’A(’’,I2,’’,’’,I2,’’)?’’,\)’)I,J
READ(*,’(F7.2)’) A(I,J)
100 CONTINUE
101 CONTINUE
memberitahukan komputer untuk membaca nilai-nilai AMOUNT(11),
AMOUNT(12), sampai AMOUNT(N), dimana N telah didefinisikan
sebelumnya dan N<100. Cara tersebut diatas dapat juga dilakukan/
disederhanakan dengan pernyataan seperti contoh berikut :
READ(*,10)(AMOUNT(I), I=11,N,1)
WRITE(*,’(/,1X,A)’)’DATA MATRIK A : ’
DO 400 I=1,N
400 WRITE(*,’(1X,100(F9.2)’)(A(I,J),J=1,M)
TERIMA KASIH
• Masukkan Jumlah N ? 6
• Score(1) = 70
• Score(2) = 90
• Score(3) = 40
• Score(4) = 60
• Score(5) = 80
• Score(6) = 50
• Rata-rata =
• Jumlah dibawah rata-rata =
• Score(1) =
• Score(2) =
• Score(3) =
• Score(4) =
• Score(5) =
• Score(6) =