ARRAY 1 DIMENSI
Gambar Larik A dengan 8 elemen Definisi Array Array (Larik) adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Gambar Larik A dengan 8 elemen
Type namaarray : array [I] of tipedasar 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) A : Array [1..100] of integer NamaMhs : Array [1..10] of String Nilai : Array [0..74] of real b. Sebagai Tipe Bentukan 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 1 Mengasumsikan 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 2 Pada versi ini nilai maksimum sementara dan minimun sementara diinisialisasi dengan elemen pertama larik procedure 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 3 Yang diperlukan adalah posisi atau indeks elemen larik yang bernilai maksimum atau minimum itu. procedure carimaks3 (input A : LarikInt, input n : integer output IdxMaks : integer) Deklarasi i : 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 Ketentuan NilUjian ≥ 85 , indeks nilai = A 70 ≤ NilUjian < 85 , indeks nilai = B 60 ≤ NilUjian < 70 , indeks nilai = C 50 ≤ NilUjian < 60 , indeks nilai = D NilUjian < 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’
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’ indeks[i] ‘E’ 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