Tutorial Belajar Pascal Part 21: Pengertian dan Cara Membuat Array Dinamis Pascal

Dalam 2 tutorial pascal sebelumnya kita telah mempelajari cara membuat tipe data array yang jumlah element-nya bersifat tetap (fixed). Selain itu, pascal juga mendukung array dinamis (dynamic arrays) dimana ukuran array belum ditulis pada saat array dideklarasikan.

Pada lanjutan tutorial pascal di duniailkom ini saya akan membahas tentang cara membuat array dinamis dalam bahasa pemrograman pascal.


Pengertian Fixed Array Pascal

Fixed array adalah sebutan untuk array yang jumlah element-nya bersifat tetap. Contoh-contoh kode program dalam 2 tutorial sebelum ini, saya selalu menggunakan fixed array, dimana ukuran array sudah ditentukan pada saat array dibuat.

Sebagai contoh, kode program:

var
  nilai: array[0..9] of integer;

Berarti kita membuat array integer yang terdiri dari 10 element (0, 1, 2, 3 … 9).

Contoh lain, kode program:

var
  kata: array[0..2,0..2] of string[20];

Berarti kita membuat array string dengan 9 element, yakni 3 untuk dimensi pertama, dan 3 untuk dimensi kedua (3*3=9). Mulai dari kata[0,0], kata[0,1] hingga kata [2,2].

Dalam kedua contoh ini ukuran array sudah diketahui pada saat array dideklarasikan.


Pengertian Dynamic Array Pascal

Dynamic array adalah tipe array yang jumlah element-nya belum ditentukan (masih nol). Contoh penulisannya adalah sebagai berikut:

var
  nilai: array of integer;
  kata: array of string[20];

Jadi, berapa jumlah element di dalam array ini? Jumlah element akan ditentukan menggunakan fungsi setlength() di bagian kode program utama. Sebagai contoh, jika saya ingin variabel ‘nilai’ memiliki 10 element, saya tinggal menulis setlength(nilai, 10). Langsung saja kita masuk kedalam contoh kode programnya:

program tipe_array;
uses crt;
var
  nilai: array of integer;
begin
  clrscr;
  setlength(nilai,10);
 
  nilai[0]:= 1;
  nilai[6]:= 2;
  nilai[9]:= 4;
 
  writeln('nilai 0: ',nilai[0]);
  writeln('nilai 6: ',nilai[6]);
  writeln('nilai 9: ',nilai[9]);
 
  readln;
end.

Contoh kode program untuk tipe data array dinamis pascal

Pada saat variabel ‘nilai’ dideklarasikan sebagai array, kita belum mengetahui berapa jumlah element array tersebut. Barulah di dalam kode program, fungsi setlength(nilai,10) akan menetapkan bahwa array ‘nilai’ akan berisi 10 element. Perhitungan 10 element ini dimulai dari index 0 hingga 9.

Kalau jumlah element array tetap ditulis, dimana letak dinamisnya?

Di dalam pascal, jumlah element suatu array memang harus ditulis, tapi dalam array dinamis, jumlah element ini ditentukan di dalam kode program utama, bukan pada saat di deklarasikan.

Oleh karena itu nantinya kita bisa menentukan jumlah element array berdasarkan kondisi tertentu (menggunakan struktur logika IF), misalnya jika syarat terpenuhi, set jumlah element 1000, jika tidak set jumlah element array menjadi 10.

Jika anda telah mempelajari pointer, array dinamis juga bisa dibuat menggunakan pointer, tapi caranya lebih rumit daripada menggunakan fungsi setlength().

Untuk array 2 dimensi, kita tinggal men-set 2 buah batasan element array, seperti contoh berikut:

program tipe_array;
uses crt;
var
  nilai: array of array of integer;
begin
  clrscr;
  setlength(nilai,4,4);
 
  nilai[0,0]:= 34;
  nilai[2,3]:= 99;
  nilai[3,0]:= 15;
 
  writeln('nilai [0,0]: ',nilai[0,0]);
  writeln('nilai [2,3]: ',nilai[2,3]);
  writeln('nilai [3,0]: ',nilai[3,0]);
 
  readln;
end.

Contoh kode program untuk tipe data array dinamis pascal 2 dimensi

Perhatikan cara penulisan variabel nilai. Kita membuatnya sebagai array of array of integer, yang berarti ini adalah array 2 dimensi dengan tipe integer. Untuk men-set batasan jumlah element array, saya menggunakan fungsi setlength(nilai,4,4). Fungsi ini akan membuat variabel ‘nilai’ berisi 25 element (hasil dari 5*5 = 25).


Dalam tutorial kali ini kita telah melihat perbedaan antara array tetap (fixed array) dengan array dinamis (dynamic array). Pembahasan tentang array masih belum selesai :) Pada tutorial berikutnya saya akan membahas cara membuat array dari tipe data bentukan pascal.


Tutorial Terkait:

21 Comments

  1. azcep
    25 Oct 15
  2. Bahroem
    12 Mar 16
    • Andre
      13 Mar 16
      • Miftah
        16 Jul 16
        • Miftah
          16 Jul 16
  3. J
    31 Mar 16
    • lul
      23 Oct 16
      • Andre
        24 Oct 16
  4. J
    31 Mar 16
  5. Febrian
    08 Jun 16
    • Andre
      09 Jun 16
      • Febrian
        12 Jun 16
  6. Ariewijaya
    22 Jul 16
    • Andre
      22 Jul 16
  7. Ariewijaya
    22 Jul 16
    • Andre
      22 Jul 16
      • Ariewijaya
        22 Jul 16
  8. Sakura-san
    18 Jun 17
    • Sakura-san
      18 Jun 17
      • Ar
        22 Aug 17
    • RadityaArhya
      15 Nov 17

Add Comment