Struktur Data & Algoritma - Array
Struktur Data & Algoritma - Array
Larik (Array)
Sub-Capaian Pembelajaran MK
“Mahasiswa mampu menerapkan konsep larik dalam program “
1. Topik Pembahasan
Pendahuluan
Mendeklarasikan Larik
Cara Mengacu Elemen Larik
Pemrosesan Larik
Inisialisasi Larik
Contoh Persoalan Larik
A. Pendahuluan
Larik adalah struktur data di memori yang terdiri dari sekumpulan
elemen bertipe sama, setiap elemen di dalam larik diacu secara
langsung melalui indeksnya.
Misalnya sebuah larik yang bernama A dengan enam buah elemen
dapat dibayangkan sebagai sekumpulan kotak yang terurut (baik
tersusun secara vertikal atau horizontal)
B. Mendeklarasikan Larik
Larik adalah struktur data yang static, artinya jumlah elemen larik harus
sudah terdefinisi di dalam program. Jumlah elemen larik tidak dapat
diubah, ditambah, atau dikurangi selama pelaksanaan program.
DEKLARASI
NamaLarik: array[idx_awal…idx_akhir] of tipe
a) Sebagai Peubah
DEKLARASI
N : array[1..100] of integer
NamaMhs : array[1..12] of string
NilUjian : array[0..74] of real
P : array[1..100] of Titik
c) Sebagai Konstanta
const Nmaks = 100
type LarikInt : array [1..Nmaks] of integer
N : LarikInt
Cara Mengacu Elemen Larik
A[4] {mengacu elemen keempat dari larik A}
NamaMhs[2] {mengacu elemen kedua dari larik NamaMhs}
A[i] {mengacu elemen ke-i dari larik A, asalkan i
sudah
terisi nilainya}
NamaMhs[i+1] {mengacu elemen ke-i+1 dari larik A, asalkan i
sudah terisi nilainya}
P[k].x {mengacu absis-x pada titik P ke-k}
b) Pemrosesan larik
Elemen larik tersusun secara beruntun, sehingga elemen-elemen
larik diproses secara beruntun melalui indeksnya yang terurut
Misalkan larik A berukuran N elemen (N sudah terdefinisi nilainya),
maka skema umum algoritma dalam memproses larik A adalah :
i 1
While i≤N do
pemrosesan terhadap A[i]
i i+1
end while
{i > Nmaks}
Atau
for i 1 to N do
pemrosesan terhadap A[i]
end for
D.Menginisialisasi Larik
a) Menginisialisasi elemen-elemen larik dengan nilai 0
ALGORITMA
read(N)
for i1 to N do
A[i] 0
end for
1 0
2 0
3 0
4 0
5 0
6 0
PROGRAM CetakLarik
{Program untuk mencetak larik}
DEKLARASI
i: integer
A: array [1..N] of integer
ALGORITMA
read(N)
for i 1 to N do
write(A[i])
end for
F. Mencari Nilai Maksimum Larik
Nilai maksimum pada larik integer/real adalah elemen larik yang
mempunyai nilai terbesar di antara elemen larik lainnya.
1 6
2 6
3 8 Nilai maksimum
4 3
5 2
6 1
1 6
2 6 Nilai maksimum
3 8 sementara
4 3
5 2
6 1
PROGRAM CariMaksimumLarik
{Program untuk mencari elemen terbesar di dalam larik
A[i..N]
DEKLARASI
A: array [1..N] of integer
i: integer
ALGORITMA
maks A[1]
read(N)
for i 2 to N do
if A[i] > maks then
maks i
end if
end for
G.Menyalin Larik
Diberikan sebuah larik integer A yang sudah terdefinisi
elemenelemennya. Ukuran larik adalah N elemen. Kita ingin menyalin
(copy) elemen-elemen larik A ke dalam larik yang lain misalnya B.
1 6 6
2 6 6
3 8 8
4 3 3
5 2 2
6 1 1
Pseudocode nya??
PROGRAM SalinLarik
{Program untuk menyalin elemen di dalam larik A ke B}
DEKLARASI
A,B: array [1..n] of integer
i: integer
ALGORITMA
read(n)
for i 1 to n do
B[i] A[i]
end for
Deklarasi-nya??
DEKLARASI
const Nmaks = 100
type Mahasiswa: record <NIM: string,
NamaMhs: string,
IPK: real>
type TabelMhs: array[1..Nmaks] of Mahasiswa
Mhs: TabelMhs