Menggunakan Tipe Data Array pada Pascal

baca 4 menit
Menggunakan Tipe Data Array pada Pascal

Sebelumnya kita telah membahas tentang tipe data RECORD pada Pascal. Pada kesempatan kali ini kita akan membahas satu lagi data terstruktur dalam pascal yaitu ARRAY atau larik.

Pengertian ARRAY pada Pascal

Apa sih ARRAY itu?

ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Data dalam ARRAY ini dapat diakses dengan menggunakan index.

Ilustrasi array
Ilustrasi array

Coba perhatikan kode program berikut

pascal
program BuatArray;
uses crt;
var
  nama1, nama2, nama3, nama4, nama5: string;
begin
  clrscr;
  nama1 := 'adi';
  nama2 := 'budi';
  nama3 := 'putri';
  nama4 := 'putra';
  nama5 := 'ida';

  writeln('nama1: ', nama1);
  writeln('nama2: ', nama2);
  writeln('nama3: ', nama3);
  writeln('nama4: ', nama4);
  writeln('nama5: ', nama5);
  readln;
end.

Kita punya 5 variable mulai dari nama1 sampai nama5 dengan tipe data string. Setiap variable berisi nama seseorang. Kode tersebut terlihat normal saja bukan ?

Sekarang bagaimana kalau kita punya variable nama1 sampai nama100?

Menuliskan satu per satu nama variable menjadi kurang efektif dan kurang efisien. Di sinilah ARRAY dapat berperan. Dengan menggunakan ARRAY kita hanya cukup mendeklarasikan variable nama sebanyak 1 kali saja.

Penulisan ARRAY pada Pascal

Komponen dalam deklarasi ARRAY ada 3 yaitu panjang ARRAY, tipe data ARRAY, dan nama variable ARRAY. Untuk format penulisannya adalah sebagai berikut

var
  nama-variable: array [batas-bawah..batas-atas] of tipe-data;

Batas bawah dan batas atas pada deklarasi ARRAY merupakan index awal dan akhir yang bisa diakses. Sedangkan tipe data merupakan tipe data yang akan disimpan dalam ARRAY.

Contoh kita ingin membuat variable nama bertipe string yang berisi 5 elemen. Kita bisa mendeklarasikannya sebagai berikut

pascal
var
  nama: array [1..5] of string;

Lalu untuk mengakses elemen dalam ARRAY bisa kita gunakan yang namanya index.

Index merupakan nomor yang dituliskan setelah nama variable ARRAY. Nomor ini tidak boleh kurang dari batas bawah ARRAY, dan tidak boleh lebih dari batas atas ARRAY. Contohnya sebagai berikut

pascal
var
  nama: array [1..5] of string; // ARRAY nama punya 5 elemen
begin
  nama[1] := 'Budi'; // mengisi nilai pada indeks ke-1
  nama[4] := 'Adi';
  nama[6] := 'Ida';  // error karena ARRAY nama tidak punya elemen ke-12
  nama[0] := 'Rani';
end.

Karena ARRAY juga termasuk sebagai tipe data, jadi kita bisa membuat sebuah ARRAY dengan tipe data ARRAY. Ini disebut sebagai ARRAY multidimensi. Contohnya:

pascal
var
  matrix2D: array [1..2] of array [1..2] of integer; // array dengan tipe data array integer

Bagaimana cara mengakses elemen dari ARRAY multi dimensi?

Caranya kurang lebih sama seperti sebelumnya. Menggunakan index. Tetapi karena ARRAY ini mutidimensi, jadi pada saat mengakses index pertama, kita masih mendapatkan elemen berupa ARRAY. Untuk mendapatkan nilai pada ARRAY tersebut kita bisa menggunakan 2 kali pengaksesan Indeks

Array 2 dimensi
Array 2 dimensi

pascal
var
  M: array [1..2] of array [1..2] of integer; // array dengan tipe data array integer
begin
  M[1][1] := 1; // akses nilai pertama dari array pertama dari M
  M[1][2] := 2;
  M[2][1] := 3;
  M[2][2] := 4;
end.
M = \begin{bmatrix} 1 & 2 \ 3 & 4 \ \end{bmatrix} \ M*{11} = 1 \ M*{12} = 2 \ M*{21} = 3 \ M*{22} = 4 \

ARRAY tersebut dinamakan ARRAY 2 dimensi, karena pengaksesan indeksnya dilakukan 2 kali. Konsepnya sama seperti mengakses entry dalam matrix (menggunakan baris dan kolom).

ARRAY multidimensi tidak hanya terbatas pada 2 dimensi saja, tetapi juga bisa berlanjut sampai 3, 4, bahkan sampai n dimensi tergantung kebutuhan.

Menggunakan ARRAY dalam Perulangan

Keuntungan menggunakan ARRAY adalah dapat digunakan dengan perulangan. Mari kita coba membuat ulang kode yang ada di awal tutorial ini.

pascal
program BuatArray;
uses crt;
var
  nama: array [1..5] of string; // menggunakan array
  i: integer; // variable untuk perulangan
begin
  clrscr;
  nama[1] := 'adi';
  nama[2] := 'budi';
  nama[3] := 'putri';
  nama[4] := 'putra';
  nama[5] := 'ida';

  // mencetak nama[1] sampai nama[5] dengan for loop
  for i:=1 to length(nama) do writeln('nama[',i,']: ', nama[i]);
  readln;
end.

Bisa kalian coba jalankan program tersebut. Kurang lebih outputnya akan tampak seperti ini:

nama[1]: adi
nama[2]: budi
nama[3]: putri
nama[4]: putra
nama[5]: ida 

Sudah tidak perlu lagi memanggil variable nama1 sampai nama5 satu per satu. Dengan memanfaatkan fitur index pada ARRAY kita cukup menggunakan variable i sebagai indeksnya.

Ada satu perintah yang mungkin asing yaitu length().

Apa itu perintah length()?

Perintah ini berfungsi untuk mengembalikan panjang dari ARRAY atau STRING. Jadi semisal kita punya ARRAY dengan batas bawah 1 dan batas atas 10, maka panjang ARRAY nya adalah 10.

Mengembalikan panjang STRING juga?

Iya, STRING sebenarnya juga merupakan ARRAY. Lebih tepatnya ARRAY of CHAR.

STRING merupakan tipe data standar pada Pascal yang memiliki nilai berupa kata atau kalimat. Nah, kata atau kalimat ini terdiri dari beberapa karakter huruf. Karakter huruf juga termasuk dalam tipe data standar Pascal yaitu CHAR.

Perlakuan dalam ARRAY juga bisa kita lakukan pada STRING.

pascal
var
  kata: string;
  i: integer;
begin
  kata := 'Belajar pascal di invasikode';
  for i := 1 to length(kata) do writeln('Huruf ke-',i,': ',kata[i]);
end.

Apabila dijalankan, kode tersebut akan mencetak output berupa huruf satu per-satu.

Penutup

Cukup sekian untuk tutorial kali ini, semoga bermanfaat

Pada tutorial selanjutnya kita akan coba belajar tentang pointer pada Pascal.