Array
Array adalah tipe data struktur yang menyimpan
sekumpulan data / elemen yang bertipe sama.
Setiap elemen data dalam array dapat Langsung
diakses melalui indeksnya. Karena jumlah elemen
dalam array sudah pasti, maka jumlah elemen
array tidak dapat diubah selama pelaksanaan
program.
Mendefinisikan array dalam deklarasi berarti :
Mendefinisikan banyaknya elemen Array yaitu
memesan sejumlah tempat dimemori
Mendefinisikan tipe elemen array dapat Berupa
tipe sederhana (integer, real,char, boolean, string)
juga tipe testruktur (berupa record atau array)
Berikut adalah contoh definisi array
dalam deklarasi:
Sebagai Peubah
Deklarasi
• L : Array [1..50] of integer
• N : Array[‘a’..’j’] of string
• Nilai : array[1..20]of real
• L,N,Nilai adalah nama array
[1..50], [‘a’..’j’], [1..20] merupakan
banyaknya elemen array. Integer, String ,
Real adalah type dari array (tipe
sederhana)
Sebagai Tipe Baru
Deklarasi
Type
Tab = Array[1..100] of real
var
P : Tab
Tab didefinisikan sebagai Tipe baru untuk
array yang Bertipe real. Banyak elemen
array tersebut adalah 100 buah. Sebuah
array dengan nama P didefinisikan bertipe
Tab
Sebagai sebuah Tetapan
Deklarasi
• Const
Maks = 100
• Type
Tabel : array [1..Maks] of real
• Var
Data : Tabel
Algoritma Umum pemrosesan array
Deklarasi
Const maks = 100
Type tabel: array [1..maks] of integer
Var
A : Tabel
K : Integer
Deskripsi
For K 1 to N do
Proses A[k]
Endfor
Contoh menghitung nilai rata-rata array A[1. . N]
Deklarasi
Const
maks = 100
Type
Tabel= array [1..maks] of integer
var
bil : Tabel
K,N : Integer
Juml : Integer
Rata : Real
Deskripsi
Read (N)
Juml 0
For K 1 to N do
Read(bil[k])
Juml Juml + bil[k]
Endfor
Rata Juml/N
Write(Rata)
Buat Algoritma untuk menghitung
nilai akhir siswa menggunakan type
data array, nilai akhir = nilai 1 +
nilai2 + nilai3 dibagi 3, sebagai data
masukan nama siswa, nomor siswa,
nilai1, nilai2, nilai3. siswa dinyatakan
lulus bila nilai akhir >= 60
N0 siswa Nama Nila 1 Nilai2 Niilai3 Nilai Ket
siswa akhir
CONTOH
type
xnama = array [1..100] of string[30]
xnilai = array [1..100] of real
var
NIL_A, NILTUG,NILUTS,NILUAS,NILPRAK : XNILAI
NAMA : XNAMA
i,n :integer
DESKRIPSI
read(n);
I := 1
Repeat
readln(nama[i])
readln(NILTUG[i])
readln(NILUTS[i])
readln(NILUAS[i])
readln(NILPRAK[i])
NIL_A[I] := 0.2*NILTUG[i] + 0.25*NILUTS[i]+0.25* NILPRAK[i]+0.3*NILUAS[i];
until I > N
writeln('------------------------------------------------------------------------------');
writeln('no nama tgs uts uas prektik niali akhir');
writeln('----------------------------------------------------------------------------');
FOR i := 1 to n do
writeln(i, nama[i], NILTUG[i],NILUTS[i],NILUAS[i],NILPRAK[i],Nil_a[i]);
writeln('----------------------------------------------------------------------------');
CONTOH
type
xnama = array [1..100] of string[30]
xnilai = array [1..100] of real
var
NIL_A, NILTUG,NILUTS,NILUAS,NILPRAK : XNILAI
NAMA : XNAMA
i,n :integer
DESKRIPSI
read(n);
for i := 1 to n do
readln(nama[i])
readln(NILTUG[i])
readln(NILUTS[i])
readln(NILUAS[i])
readln(NILPRAK[i])
NIL_A[I] := 0.2*NILTUG[i] + 0.25*NILUTS[i]+0.25* NILPRAK[i]+0.3*NILUAS[i];
endfor
writeln('------------------------------------------------------------------------------');
writeln('no nama tgs uts uas prektik niali akhir');
writeln('----------------------------------------------------------------------------');
FOR i := 1 to n do
writeln(i, nama[i], NILTUG[i],NILUTS[i],NILUAS[i],NILPRAK[i],Nil_a[i]);
writeln('----------------------------------------------------------------------------');
Buat Algoritma dengan tipe array
untuk menghitung Gaji Pegawai
berdasarkan masa Kerja ; jika masa
keja <= 10 Tahun maka Gaji yang
diperoleh = Gaji pokok + Tunjangan
10 % dari Gaji Pokok. Jika Masa
kerja > 10 Tahun maka Gaji yang
diperoleh = Gaji Pokok + Tunjangan
25 % dari Gaji Pokok. Tampilan yang
diinginkan :
NP NAMA GAJI TOTAL GAJI
MENDEKLARASIKAN ARRAY DALAM PROSEDUR
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Rata (Input X: Tabel, Input N : Integer, Output Rata : Real)
Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N
Algoritma Hitung_Rata
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
Larik : Tabel
B_Data : Integer
N_Rata : Real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Deskripsi
Read(B_Data)
Isi_Data(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(N_Rata)
Mendeklarasikan Array dalam Prosedure
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Rata (Input X: Tabel, Input N : Integer, Output Rata : Real)
Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N
Prcedure CETAK (Input X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Write(X[i])
EndFor
Algoritma Hitung_Rata
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
Larik : Tabel
B_Data : Integer
N_Rata : Real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N :
Integer, Output Rata : Real)
Deskripsi
Read(B_Data)
Isi_Data(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(N_Rata)
write (‘deretan data yang ada adalah =‘)
CETAK(Larik,B_Data) {memenggil prosedur CETAK}
Mencari Nilai Standar Deviasi
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N
Function SD (Input X: Tabel, Input N : Integer, Input xRata : Real) : Real
Deklarasi
I : Integer
J_Kwa, Sigma : Real
Deskripsi
For I ← 1 To N Do
J_Kwa ← J_Kwa + SQR (X[i] – XRata)
EndFor
Sigma ← SQRT (J_Kwa/N)
Return Sigma
Algoritma Hitung_Stdr_Dev
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
A : Tabel
B_Data : Integer
N_Rata : Real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Function SD (Input X: Tabel, Input N : Integer, Input xRata : Real) : Real
Deskripsi
Read(B_Data)
Isi_Data(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(‘Nilai standr Dev = ‘, SD (A,B_data,N_Rata )
Mencari Nilai Koefisien =
xi yi – N( xi + yi)
(xi2 + yi2)
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Jumlah (Input/Output X: Tabel, Input N : Integer, Output
Jumlah : Real)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Procedure Kwadrat (Input X,Y: Tabel, Input N : Integer,
Output Jxy : Real)
Deklarasi
I : Integer
Deskripsi
JXY ← 0
For I ← 1 To N Do
JXY ← Jxy + (Sqr(X[i]) +Sqr(Y[i])
EndFor
Algoritma Hitung_Koef
xi yi – N( xi + yi)
(xi2 + yi2)
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
A,B : Tabel
B_Data : Integer
Kf : real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Deskripsi
Read(B_Data)
Isi_Data(A, B_Data)
Isi_Data(B, B_Data)
Nilai_Jumlah(A,B_Data, JumA)
Nilai_Jumlah(B,B_Data,JumB)
Kwadrat (A,B, B_Data,Jxy)
KF ← ( JumA*JumB – B_Data(JumA+JumB) )/ JXY
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Sigma (Input X : Tabel, Input N : Integer, Output Jumlah : Real)
Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X2[i]
EndFor
Algoritma Hitung_SY
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
Bil1, Bil2 : Tabel
B_Data : Integer
Kf : real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Deskripsi
Read(B_Data)
Isi_Data(Bil1, B_Data)
Isi_Data(Bil2, B_Data)
Isi_Data(B, B_Data)
Nilai_Sigma(Bil1,B_Data, Juml1)
Nilai_Sigma(Bil1,B_Data, Juml2)
SY := JUML1 + SQR(JUML2)
WRITE(SY)