1. Pengertian Array
Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks tersebut haruslah tipe data yang mempunyai keterurutan, misalnya integer atau karakter. Nama lain array adalah larik, tabel, atau vektor.
1
a. Sebagai Peubah (Variabel) Contoh : Misalkan L adalah nama peubah array yang mempunyai 100 elemen yang bertipe integer, maka dapat dituliskan : {Deklarasi} var L : array[1..100] of integer;
b.
Sebagai Tipe Baru Misalkan LarikInt didefinisikan sebagai sebuah tipe baru untuk array yang bertipe integer. Banyak elemen array 100 buah elemen, maka dapat ditulis sebagai berikut : {Deklarasi} type LarikInt : array[1..100] of integer; var P : LarikInt;
c.
Mendefinisikan Ukuran Maksimum Elemen Array Sebagai Sebuah Konstanta Misalkan LarikInt didefinisikan sebagai nama sebuah tipe baru untuk array yang bertipe integer. Banyak elemen maksimum 100 elemen. P adalah array bertipe integer {Deklarasi} const Nmaks = 100; type LarikInt : array[1..Nmaks] of integer; var P : LarikInt;
5
4. Pemrosesan Array
Pemrosesan beruntun pada array adalah pemrosesan mulai dari elemen pertama array (yaitu elemen indeks terkecil, berturut-turut elemen berikutnya, sampai elemen terakhir dicapai, yaitu elemen dengan indeks terbesar) Skema umum algoritma memproses array (disebut juga skema mengunjungi/traversal array) adalah :
Algoritma_skema_umum_pemrosesan_array { Memproses setiap elemen array secara beruntun, mulai dari indeks terkecil sampai indeks terbesar} Deklarasi const Nmaks = 100 {banyaknya elemen array} type LarikInt : array[1..Nmaks] of integer var A : LarikInt k : integer {indeks array}
8
Deskripsi Inisialisasi {Pemberian nilai awal} k1 {mulai dari elemen pertama} while k Nmaks do Pemrosesan terhadap A[k] k k + 1 {tinjau elemen berikutnya} endwhile {akhir pengulangan k > Nmaks} Terminasi {Penulisan hasil}
9
10
11
Maka Pendefinisiannya adalah sbb : Deklarasi const Nmaks = 100 type Mahasiswa = record <NIM : String NamaMhs : String KodeMK : String Nilai : char > TabMhs : array[1..Nmaks] of Mahasiswa
13
Tapi harus dengan cara sebagai berikut : write(TabMhs[k].NIM, TabMhs[k].NamaMhs, TabMhs[k].KodeMK, TabMhs[k].Nilai)
Namun pengisian nilai elemen ke elemen berikutnya Dengan penulisan berikut adalah benar : TabMhs[k] TabMhs[k+1] Bentuk tersebut sama dengan pengisian perfield Sbb : TabMhs[k].NIM TabMhs[k+1].NIM TabMhs[k].NamaMhs TabMhs[k+1].NamaMhs TabMhs[k].KodeMK TabMhs[k+1].KodeMK TabMhs[k].Nilai TabMhs[k+1].Nilai
15
Menginisialisasi array bertipe numerik dapat berupa pengisian elemen array dengan nol sedangkan pada array karakter berarti mengisi elemen array dengan spasi atau karakter kosong
16
17
b. Menginisialisasi Elemen Array masing-masing dengan 1,2,3,N Procedure Inisialisasi(output A : LarikInt, input N : integer) {K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Seluruh elemen array A bernilai k Proses : Menginisialisasi setiap elemen array A[1..N] dengan 1,2,3N }
Deklarasi k : integer {pencatat indeks array} Deskripsi for k 1 to N do A[k] k endfor
18
19
20
21
22
23
Algoritma Baca_Array_Mahasiswa { Mengisi elemen array mahasiswa dengan data yang dibaca ari piranti masukan } Deklarasi const Nmaks = 100 type MataKuliah = record <KodeMK : String, NamaMK : String, Nilai : Char >
25
type Mahasiswa = record <NIM : String, NamaMhs : String, MK : array[1..4] of MataKuliah >
TabMhs : array[1..Nmaks] of Mahasiswa i, j : integer N : integer Deskripsi
26
read(N) for i 1 to N do read(TabMhs[i].NIM) read(TabMhs[i].NamaMhs) for j 1 to 4 do read(TabMhs[i].MK[j].KodeMK) read(TabMhs[i].MK[j].NamaMK) read(TabMhs[i].MK[j].Nilai) endfor endfor
27
Soal-soal
1. Dalam rangka ulang tahun sebuah toserba memberikan diskon sebesar 15% untuk seluruh barang. Misalkan data Kode Barang dan Harga Jual Barang tersebut telah diisikan ke dalam array HargaJual. HargaJual bertipe LarikBarang. Buatlah pendefinisian permasalahan tersebut pada bagian deklarasi dan buatlah prosedur untuk menurunkan harga barang tersebut.
28
2. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemenelemennya. Buatlah prosedur untuk mencari elemen X dalam array yang keluarannya adalah indeks dari tempat elemen X ditemukan 3. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemenelemennya. Buatlah prosedur untuk menghitung banyaknya elemen ganjil dalam array yang keluarannya adalah banyaknya elemen ganjil yang ditemukan.
29
4. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk mengirimkan banyaknya elemen array. 5. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk menghitung jumlah elemen array.
30
6. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Elemen array tersebut tersusun terurut membesar. Buatlah fungsi untuk mengirimkan elemen array yang paling maksimum dan sebuah fungsi untuk mengirimkan elemen array yang paling minimum.
7. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah Prosedur untuk menghitung jumlah elemen array yang negatif.
31
8. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah prosedur untuk menghitung rata-rata elemen array yang genap atau elemen array kelipatan 5.
9. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk menghitung jumlah elemen array yang kelipatan 5.
32