Sd bab 2 (array)
-
Upload
nm-aditya-danger -
Category
Documents
-
view
220 -
download
3
Transcript of Sd bab 2 (array)
ARRAY 1 DIMENSI
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
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
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 }
PENDEKLARASIAN ARRAY
c. Ukuran larik sebagai Konstanta
Deklarasi Const Nmaks = 100 { ukuran maksimum elemen larik } Type LarikInt : Array [1..Nmaks] of integer
A : LarikInt
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
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’
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
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
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
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
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
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
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
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
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