Melayani Dengan Nurani

IA

28 Agustus 2020

Menganalisis Penggunaan Array Untuk Penyimpanan Data di Memori

 TUJUAN

 Siswa dapat memahami struktur data Array, serta pemanfaatannya didalam perancangan program yang terstruktur.

STRUKTUR DATA ARRAY

Array adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variable sejenis serta memiliki jumlah komponen yang jumlahnya tetap.

Elemen – elemen dari array tersusun secara sequential dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi.

ARRAY SATU DIMENSI

 Array satu dimensi tidak lain adalah kumpulan elemen–elemen yang identik yang tersusun dalam satu baris. Elemen – elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.

Untuk lebih jelasnya perhatikan gambar berikut :




 








                  


Bentuk Umum

Type

<NamaArray> = array[IdexArray] of TipeData;

 Contoh :

 Type

Gaji         = array[1..10] of longint;

 Logika = array[boolean] of integer;

 Pendeklarasian array diawali dengan kata baku type dan diikuti dengan nama array dan tanda sama dengan (=), lalu kata baku array beserta range index dan diakhiri dengan kata baku of beserta tipe datanya.

 Kita dapat mendeklarasikan sebuah tipe data baru yang terdiri dari elemen yang kita sebutkan satu persatu untuk kemudian dipakai sebagai index array . Tipe data tersebut disebut sebagai tipe data enumerasi. Perhatikan contoh dibawah :

Type

Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu); PendapatanHarian = array[Hari] of real

Selain itu kita juga dapat mendeklarasikan sebuah tipe data berupa subrange bilangan untuk kemudian dipakai sebagai index dari suatu array seperti berikut.

Type

Tinggi = 145..210;

TinggiManusia = array [tinggi] of byte;

Atau kita juga dapat menggunakan konstanta untuk kemudian dipakai dalam index array. Untuk menggunakan konstanta perlu diawali dengan kata baku const. Untuk lebih jelasnya perhatikan contoh berikut.

Const

Min = 1;

Max = 10;

Type

Arr = array[Min .. Max] of byte;

Var

Point : arr;


Contoh Program :

{               Program untuk menginput nilai mahasiswa ke dalam array satu dimensi }

Program Data_Mahasiswa(Input,Outpu);

Uses CRT;

Type

Nilai_Mhs = array[1..10] of integer;

Var

Index : integer;

Nilai : Nilai_Mhs;

Begin

Clrscr;

 

{ Proses input nilai mahasiswa }

Writeln('<< Menginput nilai 10 mahasiswa >>');

for index:=1 to 10 do

Begin

Write(' Mahasiswa -> ',index:2,' = '); Readln(nilai[index]);

End;

Writeln;

Write(' Tekan Enter untuk melihat nilai mahasiswa... '); Readln;

{ Proses menampilkan nilai mahasiswa }

 CLRSCR;

 Writeln('<< Nilai mahasiswa yang telah diinput >>'); for index:=1 to 10 do

 Writeln(' Nilai -> ',index:2,' = ',Nilai[index]:5); Readln;

 End.

 
ARRAY DUA DIMENSI

 Array dua dimensi, yang sering digambarkan sebagai sebuah matriks adalah merupakan perluasan dari sebuah array satu dimensi. Jika pada array satu dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang betipe sama sehingga dapat diilustrasikan seperti berikut.

 


                            






























Bentuk Umum :

Type

<NamaArray> = array[IndexArray1,IndexArray2] of TipeData;

 Contoh :

 Type

 Matriks = array[1..2,1..3] of byte; Logika = array[1..5,boolean] of integer;

 Type

Baris = 1..2;

Kolom = 1..3;

Ordo = array[Baris,Kolom] of byte;

 Var

Matrix : ordo;

 Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian arary satu dimensi, kecuali pada array dua dimensi terdapat dua index array yang terdapat didalam kurung siku dan masing- masing index boleh berbeda tipe. Untuk lebih jelasnya perhatikan contoh berikut ini.

 Type

Kegiatan = (Main, Belajar, Nonton, Berenang};

 Hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu); AktivitasAnak = array[Hari, Kegiatan] of byte;

Var

 A: AktivitasAnak;

 Pendeklarasian array AktivitasAnak diatas menggunakan dua buah tipe data yang masing-masing didefenisikan sendiri yaitu kegiatan dan hari. Jika digambarkan struktur array Aktivitas anak tersebut akan nampak seperti berikut.

 

[Main]

[Belajar]

[Nonton]

[Berenang]

 

 

 

 

 

[Senin]

10

12

23

35

21

5

11

44

[Selasa]

32

2

29

8

[Rabu]

20

13

16

6

[Kamis]

14

4

18

25

[Jum’at]

26

9

17

22

[Sabtu]



Untuk dapat mengakses masing – masing elemen dari array AktivitasAnak diatas kita harus mengetahui posisi baris dan kolom dari elemen – elemen yang ingin diakses tersebut. Sebagai contohnya jika kita ingin mengakses data yang di higlight pada tabel diatas (5) dapat kita deklarasikan seperti dibawah ini :

 

A [Selasa, Belajar]

 Note : Jika kita terbalik menuliskan baris dan kolom index array maka akan terjadi error.

 Contoh Program :

 

{ Program menginput nilai(bilangan) ke dalam array dimensi dua dan menampilkannya }

Program Matrix(Input,Output);

Uses CRT;

Type

Ordo = array[1..3,1..4] of integer;

Var

Baris, Kolom : Integer;

Matriks : Ordo;


Begin

Clrscr;

{ Menginput elemen array secara Row Major Order }

Writeln('<< Proses memasukkan elemen array >>');

for baris:=1 to 3 do

Begin

for kolom:=1 to 4 do Begin

Write(' Matriks[',baris,'][',kolom,'] = '); Readln(matriks[baris][kolom]);

End;

Writeln;

End;

 

{ Menampilkan elemen Array secara Row Major Order }

Writeln('<< Proses menampilkan isi array >>');

for baris:=1 to 3 do Begin

for kolom:=1 to 4 do Begin

Write(matriks[baris][kolom]:5);

End;

Writeln;

End;

Readln;

End.

 

Contoh Program

 

{ Program penjumlahan matriks dua dimensi } Program Penjumlahan_Matrix(Input,Output); Uses CRT;

Type Ordo = array[1..3,1..4] of integer;

 Var

A,B,X,Y,C : Ordo;

i,j : Integer;

Begin

Clrscr;

 {******* Masukkan matriks A *******}

 Writeln('<< Matriks A >>');

for i:=1 to 3 do

Begin

for j:= 1 to 4 do

Begin

 

Write(' Input data matrik A[',i,'][',j,']= '); Readln(A[i][j]);

 

End;

End;

 

{******** Masukkan matriks B ********}

Writeln('<< Matriks B >>');

for i:=1 to 3 do

Begin

for j:= 1 to 4 do

 Begin

 Write(' Input data matrik B[',i,'][',j,']= '); Readln(B[i][j]);

End;

End;

 

{******** Proses penjumlahan matriks A dan B ********}

 

for i:=1 to 3 do

Begin

for j:= 1 to 4 do

 

Begin

X[i][j]:=A[i][j]+B[i][j];

End;

End;

 

Clrscr;

{******** Cetak isi matriks A ********}

Writeln('<< matrik A >>');

 for i:=1 to 3 do

 Begin

for j:=1 to 4 do

Write(A[i][j]:6);

Writeln;

End;

Writeln;

 

{******** Cetak isi matriks B *******}

Writeln('<< matrik B >>');

for i:=1 to 3 do

Begin

for j:=1 to 4 do

 

Write(B[i][j]:6);

Writeln;

End;

Writeln;

 

{** Cetak hasil penjumlahan matriks A dan B **} Writeln('<< matrik penjumlahan A+B >>'); for i:=1 to 3 do

 

Begin

for j:=1 to 4 do

Write(X[i][j]:6);

Writeln;

End;

Writeln;

Readln;

 End.

  

ARRAY TIGA DIMENSI

 

Array tiga dimensi dapat dianalogikan sebagai suatu benda ruang 2 dimensi .


Bentuk Umum :


Type

<NamaArray> = array[IndexArray1,IndexArray2,IndexArray3]of TipeData;

Contoh :

Type

Kalender = array[Tanggal, Bulan, Tahun] of byte; Logika = array[1..10,boolean,2..15] of integer;

Deklarasi pada array tiga dimensi tidak berbeda dengan deklarasi pada array satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada index array.


SOAL :

1. Buatlah program untuk menginput, menghitung serta mencetak perkalian dua matriks dengan ordo bebas.

2. Buatlah program untuk menghasilkan invers dari suatu matriks dengan ordo bebas.

 

Reactions:

0 comments:

Posting Komentar

Nuhun sudah komentar