Anda di halaman 1dari 7

Praktikum

ARRAY

A. T U J U A N
1. Menggunakan Array untuk menampilkan kumpulan data yang
sejenis.
2. Menggunakan statement declare dengan opsi a untuk
mendeklarasikan array secara eksplisit.
3. Menggunakan perintah perulangan untuk mengisi element array.

B. DASAR TEORI
ARRAY
Array adalah kumpulan variabel dengan tipe sejenis, dimana array ini
merupakan feature Bash yang cukup menarik. Array juga merupakan
salah satu hal yang cukup penting dalam bahasa pemrograman,
bahwa bisa dibayangkan array ini sebagai tumpukan buku - buku
dimeja belajar. Inisialisasi array sebagai berikut:
Array=(element1 element2 elementN)
Contoh
buah=(Melon,Apel,Durian);
echo ${buah[*]};
Dari contoh diatas bisa dilihat bahwa membuat tipe array di Bash
begitu mudah, secara otomatis array buah diciptakan dan string
Melon menempati index pertama dari array buah, perlu diketahui
bahwa array di Bash dimulai dari index 0, jadi array buah mempunyai
struktur seperti berikut:

71

buah[0] berisi Melon


buah[1] berisi Apel
buah[2] berisi Durian
0,1,2 adalah index array, berarti ada 3 elemen pada array buah,
untuk menampilkan isi semua elemen array digunakan perintah
subtitusi seperti pada contoh diatas, dengan index berisi "*" atau
"@". dengan adanya index array tentunya user dapat mengisi array
perindexnya dan menampilkan isi array sesuai dengan index yang
diinginkan. Lihat contoh berikut:
bulan[0]=31
bulan[1]=28
bulan[2]=31
bulan[3]=30
echo "Banyak hari bulan pebruari= ${bulan[2]} hari"
cara lain yaitu dengan mendeklarasikan array secara eksplisit
menggunakan statement declare. Contohnya:
declare -a myarray
mendeklarasikan variabel myarray sebagai array dengan opsi -a,
kemudian dapat memberinya nilai baik untuk semua elemen atau
hanya elemen tertentu saja dengan perintah perulangan pengisian
elemen array dapat lebih dipermudah, lihat contoh :
declare -a angka
i=0;
while [ $i -le 4 ];
do
let isi=$i*2;
angka[$i]=$isi;
let i=$i+1;
done
#tampilkan semua elemen array
#dengan indexnya berisi "*" atau "@"
echo ${angka[*]};

72

Dari kedua contoh array diatas, dapat dijelaskan bahwa array dapat
digunakan untuk operasi string (string operations) dan perintah
subtitusi (command substitution).

C. PROSEDUR
1. Masuk ke sistem operasi Linux.
2. Login sebagai stD3XXYYY.
3. Gunakan variabel array dan perintah perulangan pada
pemrograman shell.
4. Catatlah hasil dari setiap program pada prosedur no.3 sebagai
laporan sementara.

D. PERCOBAAN
1. Penggunaan array untuk data string (jenis buah)
$ vi arr1.sh
#!/bin/bash
buah=(Melon,Apel,Durian);
echo ${buah[*]};
2. Penggunaan array untuk data string 6 element dengan indeks 0-5
$ vi arr2.sh
#!/bin/bash
array=( zero one two three four five )
# Element 0
1
2
3
4
5
echo ${array[0]}
echo ${array:0}
echo ${array:1}
echo "--------------"
echo ${#array[0]}
echo ${#array}
echo ${#array[1]}
echo ${#array[*]}
echo ${#array[@]}
echo "--------------"
array2=( [0]="first element" [1]="second element"
[3]="fourth element" )
echo
echo
echo
echo
exit

${array2[0]}
${array2[1]}
${array2[2]}
${array2[3]}
0

73

3. Penggunaan array untuk data string 1 element


$ vi arr3.sh
#!/bin/bash
string=abcABC123ABCabc
echo ${string[@]}
echo ${string[*]}
echo ${string[0]}
echo ${string[1]}
echo "-----------------------"
echo ${#string[@]}
4. Pembacaan panjang data string 1 element
$ vi arr4.sh
#!/bin/bash
stringZ=abcABC123ABCabc
echo ${#stringZ}
echo `expr length $stringZ`
echo `expr "$stringZ" : '.*'`
5. Pembacaan data array sub-string dan regular expression
$ vi arr5.sh
#!/bin/bash
arrayZ=( one two three four five five )
echo "======================="
echo ${arrayZ[@]:0}
echo ${arrayZ[@]:1}
echo ${arrayZ[@]:1:2}
echo "-----------------------"
echo ${arrayZ[@]#f*r}
echo ${arrayZ[@]##t*e}
echo "-----------------------"
echo ${arrayZ[@]%h*e}
echo "-----------------------"
echo ${arrayZ[@]%%t*e}
6. Pembacaan, penggantian dan penghapusan data array
(Substring)
$ vi arr6.sh
#!/bin/bash
arrayZ=( one two three four five five )
echo "======================="
echo ${arrayZ[@]/fiv/XYZ}
echo ${arrayZ[@]//iv/YY}
echo ${arrayZ[@]//fi/}
echo ${arrayZ[@]/#fi/XY}
echo ${arrayZ[@]/%ve/ZZ}
echo ${arrayZ[@]/%o/XX}
echo "-----------------------"
74

7. Pengisian array perindeks dan menampilkan isinya


$ vi arr7.sh
#!/bin/bash
bulan[0]=31
bulan[1]=28
bulan[2]=31
bulan[3]=30
bulan[4]=31
bulan[5]=30
bulan[6]=31
bulan[7]=31
bulan[8]=30
bulan[9]=31
bulan[10]=30
bulan[11]=31
echo "Jml hari bulan November = ${bulan[10]} hari"
8. Mendeklarasikan array dan penggunaan perintah perulangan while
$ vi arr8.sh
#!/bin/bash
declare -a angka
i=0;
while [ $i -le 4 ];
do
let isi=$i*2;
angka[$i]=$isi;
let i=$i+1;
done
echo ${angka[*]};
unset angka
9. Array dan penggunaan perintah perulangan while
$ vi arr9.sh
#!/bin/bash
MINLEN=45
while read line
do
echo "$line"
len=${#line}
if [ "$len" -lt "$MINLEN" ]
then echo
fi
done
exit 0
10. Menggunakan Expresi indeks untuk menentukan posisi data
karakter
$ vi arrA.sh

75

#!/bin/bash
stringZ=abcABC123ABCabc
echo `expr index "$stringZ" C12`
echo `expr index "$stringZ" 1c`

11. Perintah subtitusi $( ... ) untuk pembacaan data array


$ vi arrB.sh
#!/bin/bash
arrayZ=( one two three four five five )
echo "======================="
newstr() {
echo -n "!!!"
}
echo ${arrayZ[@]/%e/$(newstr)}
echo "-----------------------"
echo ${arrayZ[@]//*/$(newstr optional_arguments)}
12. Array kosong dan elemen kosong (tidak ada nilai elemen)
$ vi arrC.sh
#!/bin/bash
array0=( first second third )
array1=( '' )
array2=( )
array3=(
)
echo "======================="
ListArray()
{
echo
echo "Elements in array0: ${array0[@]}"
echo "Elements in array1: ${array1[@]}"
echo "Elements in array2: ${array2[@]}"
echo "Elements in array3: ${array3[@]}"
echo "======================="
echo "Length of first element in array0 = ${#array0}"
echo "Length of first element in array1 = ${#array1}"
echo "Length of first element in array2 = ${#array2}"
echo "Length of first element in array3 = ${#array3}"
echo "======================="
echo "Number of elements in array0 = ${#array0[*]}"
echo "Number of elements in array1 = ${#array1[*]}"
echo "Number of elements in array2 = ${#array2[*]}"
echo "Number of elements in array3 = ${#array3[*]}"
}

E. Latihan

76

1. Buatlah program bash script untuk mencopy data pada array1 ke


array2 dimana data array1 indeks 0 isinya 0, dan data array1
indeks 2 isinya adalah 2. Gunakan format array Array=(...) untuk
mencopy data array.
2. Sebuah file dengan nama sample_file berisi teks di baris pertama
1 a b c dan baris keduanya 2 d e fg. Buatlah program bash
scriptnya untuk menghitung jumlah elemen pada array1, jika
elemen arraynya adalah file tersebut (sample_file).
3. Dengan menggunakan variabel array, buatlah bash script dari
running program dengan tampilan sebagai berikut:
1 1 2
12 12
23 23
32 32
44 43

3 3 4
12 16
24 24
40 33
43 46

5 5 6
14 14
24 24
31 38
44 45

6 6 8
16 16
24 32
35 33
47 47

8 8 10 9
16 16 20
24 25 30
39 40 37
46 48 48

10
17
28
38
48

11
17
26
40
48

11
20
30
39
48

12
21
30
40
48

19
28
39
64

20
32
42
41

22
30
40
52

21
32
41
54

22
32
43
56

77