Anda di halaman 1dari 28

Larik/Array

Sub-Capaian Pembelajaran MK

“Mahasiswa mampu menerapkan konsep larik dalam


program.”
Peta Capaian Pembelajaran MK

We Are Here !!! 


Mid Test
Agenda
• Pendahuluan
• Mendeklarasikan Larik
• Cara Mengacu Elemen Larik
• Pemrosesan Larik
• Inisialisasi Larik
• Contoh Persoalan Larik
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)
A[1], A[2], A[3], A[4], A[5], A[6]
1
2

3
4

5
6
Pendahuluan
• Setiap elemen larik menyimpan sebuah nilai. Karena seluruh elemen
larik betipe sama, maka nilai yang disimpan oleh setiap elemen juga
harus bertipe sama.

1 158
2 157
3 162
4 169
5 170
6 170
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
Mendeklarasikan Larik (2)
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

B. Sebagai Tipe Bentukan


DEKLARASI
type LarikInt : array[1..100] of integer
N : LarikInt
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}

Contoh-contoh memanipulasi atau menggunakan elemen larik:


A[4]  10 {mengisi elemen keempat dari larik A dengan
nilai 10}
NamaMhs[i]  ‘Achmad’ {mengisi elemen ke-i dari larik NamaMhs
dengan string ‘Achmad’
Read(A[i]) {membaca elemen ke-i dari larik A}
Kapan Menggunakan Larik?
• Larik digunakan bila kita mempunyai sejumlah data yang sejenis dan
bertipe sama dan kita perlu menyimpan sementara data tersebut
untuk selanjutnya data tersebut kita proses.
• Dengan menggunakan larik kita dapat menghindari penggunaan
nama-nama peubah yang banyak.
Contoh Perhitungan Rata-Rata Konvensional

Sumber: Algoritma&Pemrograman, Rinaldi Munir&Leony Widya


Contoh Perhitungan Rata-Rata Menggunakan Larik

Sumber: Algoritma&Pemrograman, Rinaldi Munir&Leony Widya


Ukuran Efektif Larik

Meskipun kita mendefinisikan jumlah elemen larik di dalam bagian


deklarasi, seringkali kita tidak menggunakan semuanya di dalam
program. Bila larik A didefinisikan 100 elemen, mungkin tidak seratus
elemen tersebut yang dipakai. Mungkin saja hanya 15, 40, atau 70
elemen. Banyaknya larik yang dipakai disebut sebagai ukuran efektif
larik.
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
Menginisialisasi Larik
a. Menginisialisasi elemen-elemen larik dengan nilai 0
ALGORITMA
read(N)
for i1 to N do
A[i]  0
end for
1 0
2 0
3 0
4 0
5 0
6 0
Menginisialisasi Larik
b. Menginisialisasi setiap elemen larik ke-i dengan nilai i
ALGORITMA
read(N)
for i1 to N do
A[i]  i
end for 1 1
2 2
3 3
4 4
5 5
6 6
Menginisialisasi Larik
c. Menginisialisasi setiap elemen larik dengan pembacaan
ALGORITMA
read(N)
for i1 to N do
read(A[i])
end for
1 6
Misalkan dibaca: 6,6,8,3,2,1 2 6
3 8
4 3
5 2
6 1
Mencetak Elemen-Elemen Larik
Untuk mencetak elemen-elemen larik, maka kita menuliskan nilai-nilai di
dalam setiap elemen larik ke piranti keluaran, misalnya ke layar komputer.
Dalam hal ini, elemen larik dicetak satu per satu mulai untuk elemen pertama
sampai elemen ke-N

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
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

• Untuk menentukan nilai maksimum kita dapat melakukan


pendekatan dengan cara menentukan nilai maksimum sementara
terlebih dahulu.
Mencari Nilai Maksimum Larik

1 Asumsi maks = A[1] (Nilai maksimum sementara=6)


6
A[2] > maks? Tidak maks tidak berubah
2 6 A[3] > maks? Ya maks  A[3] = 8
Nilai Maksimum
sementara A[4] > maks? Tidak maks tidak berubah
3 8 A[5] > maks? Tidak maks tidak berubah
4 3 A[6] > maks? Tidak maks tidak berubah
Proses perbandingan selesai.
5 2
Kesimpulan: maks = 8 (nilai maksimum larik)
6 1

Bagaimana Pseudocode nya??


Pseudocode Mencari Nilai Maksimum Larik
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
Menyalin Larik
Diberikan sebuah larik integer A yang sudah terdefinisi elemen-
elemennya. Ukuran larik adalah N elemen. Kita ingin menyalin (copy)
elemen-elemen larik A ke dalam larik yang lain misalnya B.

A B
1 6 6
2 6 6
3 8 8
4 3 3
5 2 2
6 1 1
Bagaimana Pseudocode nya??
Pseudocode Menyalin Larik
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
Larik Bertipe Terstruktur
• Contoh-contoh algoritma yang dibahas sebelum ini menggunakan
larik dengan elemen yang bertipe sederhana.
• Elemen larik juga dapat bertipe terstruktur.
• Sebagai contoh, misalkan kita akan mengolah data 100 orang
mahasiswa. Data setiap mahasiswa terdiri dari NIM, nama
mahasiswa, dan IPK. Struktur lojik dari larik Mhs ditunjukkan seperti
berikut ini:
NIM NamaMhs IPK
1 129801 Panji Bonar 3.04
2 129804 Ki Jambrong 2.80
3 … … …
. … … …
. … … …
100 129880 Roy Suryo 2.00

Bagaimana Deklarasi-nya??
Deklarasi Larik Bertipe Terstruktur
DEKLARASI
const Nmaks = 100
type Mahasiswa: record <NIM: string,
NamaMhs: string,
IPK: real>
type TabelMhs: array[1..Nmaks] of Mahasiswa
Mhs: TabelMhs

Cara mengacu elemen Mhs:


Mhs[2] {elemen kedua dari larik Mhs}
Mhs[2].NIM {mengacu field NIM dari elemen kedua larik}
Mhs[2].IPK {mengacu field IPK dari elemen kedua larik}

Untuk mencetak kita tidak dapat melakukan elemen larik seperti di bawah ini:
write(Mhs[i])
Namun harus seperti berikut ini:
write(Mhs[i].NIM,Mhs[i].IPK,Mhs[i].NamaMhs)
Latihan Soal
Diberikan nilai ujian n orang mahasiswa telah disimpan di dalam larik
NilUjian. Kita akan menghitung nilai indeks (A/B/C/D/E) dari
mahasiswa tersebut dan menyimpan nilai indeks tersebut di dalam
larik Indeks. Indeks nilai ujian ditentukan sebagai berikut:

NilUjian[i] ≥ 80  Indeks Nilai = A


70 ≤ NilUjian[i] < 80  Indeks nilai = B
55 ≤ NilUjian[i] < 70  Indeks nilai = C
45 ≤ NilUjian[i] < 55  Indeks nilai = D
NilUjian[i] < 45  Indeks nilai = E
Pembahasan
PROGRAM HitungNilaiMHS
{Program Untuk menghitung nilaiMHS}
DEKLARASI
i,N: integer
NilUjian: array [1..N] of real
Indeks: array [1..N] of char
ALGORITMA
read (N)
for i1 to N do
if NilUjian[i] ≥ 80 then
Indeks[i]’A’
else
if (NilUjian[i]≥70) and (NilUjian[i]<80) then
Indeks[i]’B’
dst…..

Anda mungkin juga menyukai