Array ( Larik ) Array Satu Dimensi Array Dua Dimensi Oleh : Oman Somantri, S.Kom Email : oman_mantri@yahoo.com
Array Satu Dimensi Array adalah sekumpulan data yang bertipe sama, yang anggota-anggotanya dapat diakses berdasarkan nomor indeks. Misalnya ada 26 huruf, kita sebut saja array Abjad, adalah sekumpulan 26 buah karakter yang berisi nama-nama abjad latin. Anggota pertama adalah ‘A’, anggota kedua adalah ‘B’ dan seterusnya hingga anggota ke 26 adalah ‘Z’.
Dalam notasi algoritma kita tuliskan : Abjad : array [1..26] of character Pemberian nilainya bisa dilakukan dengan cara, pertama pengisian satu-satu berdasarkan nomor indeks : Abjad [1] ‘A’ Abjad [2] ‘B’ dst sampai Abjad [26] ‘Z’ Dalam notasi algoritma , indeks array dimulai dari 1, artinya jika kita punya array dengan 26 anggota, indeksnya mulai dari 1,2,3…sampai 26.
Berikut penulisan array dengan menggunakan turbo Pascal: Abjad : array [1..26] of char; Contoh pemberian nilai untuk array diatas dengan menggunakan bahasa Pascal adalah : Abjad [1] := ‘A’; Abjad [2] := ‘B’ dst sampai Abjad [26] := ‘Z’
Contoh 1.1 Program Nama_array; Uses winrt; Type nameType = String[50]; ageType = 0..150; { age range: from 0 to 150 } Var name : nameType; age : ageType; Begin Write('Enter your name: '); Readln(name); Write('Enter your age: '); Readln(age); Writeln; Writeln('Your name:', name); Writeln('Your age :', age); Readln; End.
Contoh 1.2 Program P002; uses wincrt; var abjad : array [1..50] of char; i,maks : integer; begin clrscr; write ('Masukan jumlah data karakter : '); readln(maks); for i:=1 to maks do write ('Masukan karakter ke ',i,' : '); readln(abjad[i]); end; write ('Karakter yang dinput : '); write (abjad[i],’ ‘); readln; end.
Contoh 1.3 Program P003; uses wincrt; var angka:array [1..50] of integer; i,maks:integer; begin clrscr; write ('Masukan jumlah data : '); readln(maks); for i:=1 to maks do write ('Masukan angka ke ',i,' : '); readln(angka[i]); end; write ('Angka yang dinput : '); write(angka[i]); readln; end.
Contoh 1.4 Program Contoh_Deklarasi_Array_Beragam; Uses winCrt; Var NPM :array[1..20] of string[10]; Nama :array[1..20] of string[25]; Nilai : array[ 1. .20] of real; Umur : array[1 . .20] of byte; banyak,i : integer; Begin ClrScr; Write('Isi berapa data array yang diperlukan :'); Readln(banyak); For i := 1 to banyak Do Write('NPM =');Readln(NPM[i]); Write('Nama =');readln(Nama[i]); Write('Nilai=');readln(Nilai[i]); Write('Umur =');readln(Umur[i]); End; {cetak varibel array} Writeln('NPM NAMA NILAI UMUR '); For i:= 1 to banyak Do Writeln(Npm[i]:1 0,Nama[i] :25,Nilai[i] :3:2,' ',Umur[i] :3); End; Readln; End.
Studi Kasus : Input : nama, tugas, quiz, uts, dan uas Buat sebuah program perhitungan nilai akhir 5 orang mahasiswa ? Input : nama, tugas, quiz, uts, dan uas Proses : nilai = 10%*tugas + 20%*quiz + 30%*uts+ 40%*uas. Output : nama, dan nilai ditampilan menurut index
Jawaban. Program Studi_Kasus; Uses wincrt; Var Nama:array[1..5]of string; I,Tugas,Quiz,UTS,UAS:integer; Nilai:array[1..5]of real; Begin for I:=1 to 5 do begin Clrscr; write('Masukan Nama : ');readln(Nama[I]); write('Masukan Tugas : ');readln(Tugas); write('Masukan Quis : ');readln(Quiz); write('Masukan UTS : ');readln(UTS); write('Masukan UAS : ');readln(UAS); Nilai[I]:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS; end; writeln('Nama : ',Nama[I],' mendapat nilai :',nilai[i] :5:2); readln; End. Jawaban.
Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array). Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
Contoh Bentuk Tampilan Let us have the 2 dimensional array defined first. Think of a grid where each box is located by using horizontal and vertical coordinates just in the example below: 1 2 3 4 5 3,4 5,3 An example of a 5 by 5 2D array illustrated on a grid
1 2 3 4 5 10 Var my2DArray : Array[1..3][1..5] of Byte; Having the vertical axis as the 1st dimension and the horizontal one as the 2nd dimension, the above example is illustrated as follows: Var my2DArray : Array[1..3][1..5] of Byte; Begin my2DArray[2][4] := 10; End. 1 2 3 4 5 10
Contoh 2.1 Program Deklarasi_Array_Dua_Dimensi; Uses Wincrt; Var Tabel : Array [1..3, 1..2] of Integer; i,j : Integer; Begin ClrScr; Tabel [1,1] :=1; Tabel [1,2] :=2; Tabel [2,1] :=3; Tabel [2,2] :=4; Tabel [3,1] :=5; Tabel [3,2] :=6; For I := 1 to 3 Do For J:= 1 to 2 Do Writeln ('Elemen ',i,',',j ,'= ',tabel [i,j] ); End; End. Contoh 2.1
Contoh 2.2 Program penjumlahan_matrik; Uses Wincrt; Var Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer; i,j : Integer; Begin ClrScr; { input matrik ke satu } Writeln(' Elemen matrik satu'); For i := 1 to 3 Do For j := 1 to 2 Do Write('Elemen baris -',i,' Kolom -',j,'= '); Readln(matrik1 [i,j]); End;
Writeln('input elemen matrik dua'); For i:= 1 to 3 Do Begin Contoh 2.2 cont… {input matrik ke dua} Writeln('input elemen matrik dua'); For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Write('Elemen baris -',i,' kolom -',j,'= '); Readln(matrik2 [i,j]); End;
{proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin Contoh 2.2 cont… {proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin For j:= 1 to 2 Do Hasil[i,j] :=Matrik1 [i,j]+Matrik2[i,j]; End;
{proses cetak hasil} For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Contoh 2.2 cont… {proses cetak hasil} For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Write(Hasil[i,j] :6); End; Writeln; Readln; End.
SEKIAN