Anda di halaman 1dari 28

Larik/Array

ALGORITMA DAN PEMROGRAMAN


Sub-Capaian
Pembelajaran MK

“Mahasiswa mampu menerapkan konsep larik dalam


program.”
Peta Capaian
Pembelajaran MK

We Are Here !!! 


Mid Test
Agen
da
• Pendahuluan
• Mendeklarasikan Larik
• Cara Mengacu Elemen Larik
• Pemrosesan Larik
• Inisialisasi Larik
• Contoh Persoalan Larik
Pendahul
uan
• 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
Pendahul
uan
• Setiap elemen larik menyimpan sebuah nilai.
Karena seluruh elemen larik betipe sama, maka
nilai yang disimpan oleh
158 setiap elemen juga harus
bertipe sama. 157
162
 1
169
 2
170
 3
170
 4
 5
 6
Mendeklarasika
n 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.
6
1 6
2
3 88 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 6 Asumsi maks = A[1] (Nilai maksimum sementara=6)


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

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 ke6 dalam larik yang
6 lain misalnya B.
6 6
 A B
8 8
 1
 2
3 3
2 2
 3 1 1
 4
 5
 6
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
Sebagai larik juga dapat bertipe
misalkan terstruktur.
kita akan mengolah data 100 orang
mahasiswa.
contoh, setiap mahasiswa terdiri dari NIM, nama
mahasiswa,
Data 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

B
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
Pembaha
san
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
(Nil
Ujia
n[i]
≥70)
and
(Nil

Anda mungkin juga menyukai