0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan10 halaman

Struktur Data & Algoritma - Array

Diunggah oleh

teknisiti.rsui
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan10 halaman

Struktur Data & Algoritma - Array

Diunggah oleh

teknisiti.rsui
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

Struktur Data & Algoritma

Larik (Array)

Koordinator Mata Kuliah :


Catur Nugroho, S.Kom., M.Kom
Tim Dosen

CAPAIAN PEMBELAJARAN MATA KULIAH


“ Mahasiswa S1 Jurusan Informatika mampu membuat algoritma
dalam bentuk pseudocode dan flowchart serta membangun
program untuk menyelesaikan permasalahan yang sederhana /
mudah.”

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)

A[1], A[2], A[3], A[4], A[5], A[6]


1
2
3
4
5
6

 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

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

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}

C. 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.
a) 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.

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 i1 to N do
A[i]  0
end for
1 0
2 0
3 0
4 0
5 0
6 0

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

c) Menginisialisasi setiap elemen larik dengan pembacaan


ALGORITMA
read(N)
for i1 to N do
1 6
read(A[i])
2 6
end for
3 8
4 3
Misalkan dibaca: 6,6,8,3,2,1
5 2
6 1

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

Untuk menentukan nilai maksimum kita dapat melakukan pendekatan


dengan cara menentukan nilai maksimum sementara terlebih dahulu.

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

A[2] > maks? Tidak maks tidak berubah

A[3] > maks? Ya maks  A[3] = 8

A[4] > maks? Tidak maks tidak berubah

A[5] > maks? Tidak maks tidak berubah

A[6] > maks? Tidak maks tidak berubah


Proses perbandingan selesai.

Kesimpulan: maks = 8 (nilai maksimum larik)

1 6
2 6 Nilai maksimum
3 8 sementara

4 3
5 2
6 1

Bagaimana Pseudocode nya??

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

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



10 129880 Roy Suryo 2.00
0

Deklarasi-nya??
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)

Anda mungkin juga menyukai