ARRAY KONSEP Armadyah Amborowati, Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta - Indonesia ARRAY Suatu array adalah kumpulan variabel yang mempunyai tipe data sama dan tersusun secara linear. Masing-masing elemen variabel mempunyai sebuah nilai indeks. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu: variabel). contoh: Type Angka = array [1..10] of integer; Var A:Angka; 1 2 3 4 5 6 7 8 9 10 A Dari gambar diatas dketahui bahwa array adalah kumpulan variabel yang mempunyai nama yang sama yaitu A, yang membedakan adalah nomor indeks.nya, Cara mengaksesnya A[1], A[2], dan seterusnya sampai nomor terakhir dari suatu array.
8.1. Sifat Array Array merupakan struktur data yang statis, yaitu jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa di ubah saat program berjalan. Untuk menyatakan array dalam PASCAL harus terlebih dahulu mendefinisikan jumlah elemen array, mendefinisikan tipe data dari elemen array. Contoh: Mhs=array[1..10] of string; { hanya berisi 10 variabel} 8.2. Array satu dimensi Pernyataan di atas merupakan penjelasan tentang array dengan satu dimensi. Pendefinisian array secara umum adalah sebagai berikut: jika kita ingin membuat beberapa array dengan tipe/jenis yang sama, kita lebih baik jika mendeklarasikan dengan type selanjutnya dengan deklarasi variabel. Array 1 demensi artinya ada satu baris array dengan terdiri atas banyak kolom. Sintak. Type nama_array = ARRAY[bawah..atas] of tipe_data; var variabel_array : nama_array; atau dengan menggunakan statemen var : var variabel_array : ARRAY[bawah..atas] of tipe_data;
Penjelasan: Bawah dan Atas menyatakan batas untuk array. tipe_data adalah merupakan tipe variabel yang dipunyai array (mis. Integer, char, real, dan sebagainya. Cara mengakses variable nilai adalah nama variable [ no indeks ]. Contoh: Type mhs=array[1..10]of string; Var M:mhs; Begin M[1]:= armadyah ; M[2]:= aditya ; M[3]:= hendra gauthama ; M[4]:= armatyas ; M[5]:= guntur mahendra ; End. Program diatas adalah contoh memasukkan suatu nilai dalam suatu variable array yang bersifat statis. Armadyah dimasukkan dalam suatu variable array untuk indeks ke satu. Contoh 1: Program c_array; uses wincrt; type mhs=array[1..5]of string; var m:mhs; m[1]:='armadyah'; m[2]:='aditya'; m[3]:='hendra gauthama'; m[4]:='arma tyas'; m[5]:='guntur mahendra';
writeln('data dalam array range 1-3=',' ',m[1],' ',m[2],' ',m[3]); writeln('data dalam array range 4-5=',' ',m[4],' ',m[5]); readln; end. Output: Jika jumlah variable dalam suatu array banyak, maka tidak bisa dilakukan pengisian secara statis. Karena itu pengisian harus bersifat dinamis dan penggunakan suatu perulangan. Contoh 2: Program c_array1; uses wincrt; type mhs=array[1..7]of string; var m:mhs; i:integer; for i:=1 to 7 do writeln('masukkan nama mahasiswa ke',' ',i,'='); readln(m[i]); writeln('===============================');
for i:=1 to 7 do writeln('mahasiswa ke',' ',i,' ',m[i]); readln; end. Output. Contoh 3:
Cari jumlah data dalam array, rata-rata dan nilai terbesar. program jml_rata_terbesar; uses wincrt; const maks=10; type matrik=array[1..maks] of byte; var m:matrik; i,jml,besar:integer; rata:real; jml:=0; for i:=1 to maks do write('masukkan nilai=');readln(m[i]); jml:=jml+m[i]; rata:=jml/maks; writeln('jumlah data dalam array=',jml); writeln('rata-rata dalam array=',rata:5:2); besar:=m[1]; for i:=1 to maks do if m[i] > m[i+1] then besar:=m[i]; writeln('nilai terbesar=',besar); end. Output:
8.3. Array dua dimensi Dalam array dua dimensi terdiri atas baris (row) dan kolom (column). Indeks pertama adalah baris, dan indeks kedua adalah kolom. Sintak: Type nama_array=array[baris,kolom]of typedata; Var Variable_array:nama_array; Atau dengan statement var Sintak: Var Variable_array:array[baris,kolom]of tipedata; Cara mengakses nilai variable adalah nama variable [ no indeks baris, no indeks kolom ]. Contoh:
Type nilai=array[1..3,1..2]of integer; Var n:nilai; Begin n[1,1]:= 70 ; n[1,2]:= 80 ; n[2,1]:= 80 ; n[2,2]:= 65 ; n[3,1]:= 75 ; n[3,2]:= 82 ; End. Program diatas adalah contoh memasukkan suatu nilai dalam suatu variable array yang bersifat statis. Variabel untuk baris ke satu, kolom ke satu berisi nilai 70. 1 2 {kolom} 1 70 80 2 80 65 3 75 82 {baris} Untuk memasukkan tiap elemen atau nilai, maka diperlukan suatu perulangan dengan adanya indeks perulangan untuk baris dan indeks perulangan untuk kolom. Contoh 1: 1 2 3 1
2 3 Kolom--- nilai ke 1, nilai ke 2, total nilai Baris----- aditya, andi, hanif Program c_array2; uses wincrt; type nilai=array[1..3,1..3] of integer; var n:nilai; i,j:integer; for i:=1 to 3 do {perulangan baris} for j:=1 to 2 do {perulangan kolom} writeln('masukkan nilai mahasiswa ke',' readln(n[i,j]); ',i,'='); n[1,3]:=n[1,1]+n[1,2]; n[2,3]:=n[2,1]+n[2,2]; n[3,3]:=n[3,1]+n[3,2]; writeln; writeln('============================'); writeln('nilai aditya=',' ',n[1,3]); writeln('nilai andi=',' ',n[2,3]); writeln('nilai hanif=',' ',n[3,3]); end. Output:
Contoh 2: Perkalian matrik A[2x3] dengan matrik B[3x2] program perkalian_matrik; uses wincrt; type matrik_a=array[1..2,1..3] of byte; matrik_b=array[1..3,1..2] of byte; matrik_c=array[1..2,1..2] of byte; var a:matrik_a; b:matrik_b; c:matrik_c; i,j,k:integer; for i:=1 to 2 do for j:=1 to 2 do c[i,j]:=0; for i:=1 to 2 do for j:=1 to 3 do
writeln('masukkan nilai matrik A=');readln(a[i,j]); for i:=1 to 3 do for j:=1 to 2 do writeln('masukkan nilai matrik B=');readln(b[i,j]); for i:=1 to 2 do for j:=1 to 2 do for k:=1 to 3 do c[i,j]:=c[i,j]+a[i,k]*b[k,j]; for i:=1 to 2 do for j:=1 to 2 do writeln('nilai perkalian=',c[i,j]); end. Output:
Latihan. 1. Menggunakan Array 1 dimensi buatlah program dengan ketentuan: Input--- Nilai PPN, Nilai PPA, Nilai Logika, Nilai Agama Output- Total Nilai Ket: Nama Array = nilai Nama variabel = n Jumlah Range = 5 2. Untuk soal no.1 tambahkan proses untuk mendapatkan kelulusan jika nilai logika > 7 dan proses untuk mendapatkan grade ( A jika total >34, B jika total > 28, C jika total > 24 dan D jika total <=24 ). 3.
N1 N2 Jml Total Buat program Array 2 dimensi untuk memasukkan data nilai matakuliah tiap mahasiswa. Kolom- N1, N2, Jml, Nilai Baris--- Yani, Riski, Eko Untuk kolom nilai, jika jumlah dari N1 dan N2 lebih besar 24 maka mendapatkan nilai A. Jika jml lebih besar sama dengan 21 maka mendapatkan nilai B. Jika jml lebih besar sama dengan 18 maka mendapatkan nilai C, jika tidak maka D. 4. Belajar Renang Basket Musik Baris-- senin, selasa, rabu, kamis, jum at, sabtu - Buat program Array 2 dimensi untuk memasukkan jumlah anak yang ikut kegiatan tertentu. - Outputkan dalam bentuk matrik 2 dimensi DAFTAR PUSTAKA Abdul Kadir, Pemrograman Dasar Turbo Pascal, Andi Offset, 1991. Indra Yatini B., Pemrograman Terstruktur, J&J Learning, 2001.
Insap Santosa P., Dasar-dasar Pemrograman Pascal: Teori dan Program, Andi Offset, 1991. Jogiyanto, H.M., Teori dan Aplikasi Program Komputer Bahasa Pascal Jilid I, Andi Offset, 1995. Mamdyh M. Hanafi, Pemrograman Terstruktur dengan Bahasa Pascal, BPFE, 1995. http://ft.uns.ac.id/ts/kul_ol/pascal/pascal3.html http://sipil.uns.ac.id/kulol/bahasa_komputer/pascal1.html http://id.wikipedia.org/wiki/pascal_(bahasa_pemrograman