Sd bab 2 (array)

16
ARRAY 1 DIMENSI

Transcript of Sd bab 2 (array)

Page 1: Sd bab 2 (array)

ARRAY 1 DIMENSI

Page 2: Sd bab 2 (array)

DEFINISI ARRAY

Array (Larik) adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama.

Setiap elemen diakses langsung melalui indeksnya.

A12345678

Gambar Larik A dengan 8 elemen

Page 3: Sd bab 2 (array)

PENDEKLARASIAN ARRAY

Larik adalah struktur data statik Mendeklarasikan larik berarti:

Mendefinisikan banyaknya elemen larik (ukuran larik)

Mendefinnisikan tipe elemen larik Bentuk Umum:

Type namaarray : array [I] of tipedasar

Page 4: Sd bab 2 (array)

PENDEKLARASIAN ARRAY

a. Sebagai Peubah (variabel)

b. Sebagai Tipe Bentukan

Deklarasi A : Array [1..100] of integer NamaMhs : Array [1..10] of String Nilai : Array [0..74] of real

Deklarasi Type larikInt : Array [1..100] of integer { nama tipe

baru } A : LarikInt { A peubah larik int dengan 100 elemen }

Page 5: Sd bab 2 (array)

PENDEKLARASIAN ARRAY

c. Ukuran larik sebagai Konstanta

Deklarasi Const Nmaks = 100 { ukuran maksimum elemen larik } Type LarikInt : Array [1..Nmaks] of integer

A : LarikInt

Page 6: Sd bab 2 (array)

MENGISI ELEMEN ARRAY

Versi 1 : jumlah elemen efektif ditentukan di awal

procedure bacalarik1(output A : LarikInt, input n : integer)

Deklarasi i : integer

Deskripsi for i 1 to n do read(A[i]) endfor

Page 7: Sd bab 2 (array)

MENGISI ELEMEN ARRAY

Versi 2 : jumlah elemen efektif baru diketahui di akhir pembacaan

procedure bacalarik2(output A : LarikInt, input n : integer)

Deklarasi jawab : char

Deskripsi n 0 repeat n n + 1 read(A[n]) write(‘Lagi? (y/t)’) read(jawab) until jawab = ‘t’

Page 8: Sd bab 2 (array)

MENCETAK ELEMEN ARRAY

Elemen larik dicetak satu persatu mulai elemen pertama sampai elemen ke-n

procedure cetaklarik(input A : LarikInt, input n : integer)

Deklarasi i : integer { pencatat indeks larik }

Deskripsi for i 1 to n do write(A[i]) endfor

Page 9: Sd bab 2 (array)

MENGHITUNG NILAI RATA-RATA

procedure hitungratarata(input A : LarikInt, input n :integer, output rata : real)

Deklarasi i : integer { pencatat indeks larik } jumlah : real { jumlah total seluruh nilai }

Deskripsi i 1 jumlah 0 for I 1 to n do jumlah jumlah + A[i] endfor  u jumlah / n

Page 10: Sd bab 2 (array)

MENCARI NILAI MAKSIMUM DAN MINIMUM ARRAY

a. Versi 1Mengasumsikan nilai maksimum sementara (maks) adalah nilai yang sangat kecil, misalnya -9999,

procedure carimaks1 (input A : LarikInt, input n : integer, output maks : integer)

Deklarasi i : integer

Deskripsi maks -9999 for i 1 to n do if A[i] > maks then maks (A[i]) endif endfor

Page 11: Sd bab 2 (array)

MENCARI NILAI MAKSIMUM DAN MINIMUM ARRAY

b. Versi 2Pada versi ini nilai maksimum sementara dan minimun sementara diinisialisasi dengan elemen pertama larikprocedure carimin2 (input A : LarikInt, input n : integer

output min : integer)

Deklarasi i : integer

Deskripsi min A[1] for i 2 to n do if A[i] < min then min (A[i]) endif endfor

Page 12: Sd bab 2 (array)

MENCARI NILAI MAKSIMUM DAN MINIMUM ARRAY

c. Versi 3Yang diperlukan adalah posisi atau indeks elemen larik yang bernilai maksimum atau minimum itu.

procedure carimaks3 (input A : LarikInt, input n : integer output IdxMaks : integer)

Deklarasii : integer

Deskripsi IdxMaks 1 for i 2 to n do if A[i] > A[IdxMaks] then IdxMaks I endif endfor

Page 13: Sd bab 2 (array)

BEKERJA DENGAN DUA ARRAY

Contoh: Menghitung nilai indeks mahasiswa dan menyimpan nilai indeks tersebut di dalam larik indeks, Dengan KetentuanNilUjian ≥ 85 , indeks nilai = A70 ≤ NilUjian < 85 , indeks nilai = B60 ≤ NilUjian < 70 , indeks nilai = C50 ≤ NilUjian < 60 , indeks nilai = DNilUjian < 50 , indeks nilai = E

Deklarasi Const Nmaks = 200 {jumlah maksimum elemen larik } Type LarikUjian : Array [1..Nmaks] of real Type LarikIndeks : Array [1..Nmaks] of char

Page 14: Sd bab 2 (array)

BEKERJA DENGAN DUA ARRAY

Prosedur menghitung Nilai indeks

procedure HitungIndeksNilai (input NilUjian : Larikujian, input n : integer,

output indeks : LarikIndeks)

Deklarasi i, k : integer

Deskripsi for k 1 to n do if (NilUjian[i] ≥ 85) then indeks[i] ‘A’ else if (NilUjian[i] ≥ 70) and (NilUjian[i] < 85) then indeks[i] ‘B’ else

Page 15: Sd bab 2 (array)

BEKERJA DENGAN DUA ARRAY

if (NilUjian[i] ≥ 60) and (NilUjian[i] < 70) then indeks[i] ‘C’ else

if (NilUjian[i] ≥ 50) and (NilUjian[i] < 60) then indeks[i] ‘D’ else

indeks[i] ‘E’ endif

endif endif endif endfor

Page 16: Sd bab 2 (array)

BEKERJA DENGAN DUA ARRAY

Prosedur mencetak

procedure CetakIndeksNilai (input NilUjian : Larikujian, input n : integer,

output indeks : LarikIndeks)

Deklarasi i, k : integer

Deskripsi for I 1 to n do write(i, NilUjian[i], indeks[i]) endfor