Array di Bash

Pengantar Bash Scripting

Alex Scriven

Data Scientist

Apa itu array?

Dua jenis array di Bash:

  • Array
    • Struktur dengan indeks numerik.
    • Disebut 'list' di Python atau 'vector' di R.

Di Python: my_list = [1,3,2,4]

Di R: my_vector <- c(1,3,2,4)

Pengantar Bash Scripting

Membuat array di Bash

Array berindeks numerik dapat dibuat dengan dua cara di Bash.

  1. Deklarasikan tanpa menambah elemen
declare -a my_first_array
  1. Buat dan tambah elemen sekaligus
my_first_array=(1 2 3)

Ingat: jangan ada spasi di sekitar tanda sama dengan!

Pengantar Bash Scripting

Hati-hati dengan koma!

Koma tidak dipakai untuk memisahkan elemen array di Bash:

Ini tidak benar:

my_first_array=(1, 2, 3)

Ini benar:

my_first_array=(1 2 3)
Pengantar Bash Scripting

Properti penting array

  • Semua elemen array dapat dikembalikan dengan array[@]. Perhatikan, Bash memerlukan kurung kurawal di sekitar nama array saat mengakses properti ini.
my_array=(1 3 5 2)
echo ${my_array[@]}
1 3 5 2
  • Panjang array diakses dengan #array[@]
echo ${#my_array[@]}
4
Pengantar Bash Scripting

Memanipulasi elemen array

Akses elemen array dengan tanda kurung siku.

my_first_array=(15 20 300 42)
echo ${my_first_array[2]}
300
  • Ingat: Bash memakai penomoran dari nol seperti Python (berbeda dengan R!)
Pengantar Bash Scripting

Memanipulasi elemen array

Atur elemen array dengan notasi indeks.

my_first_array=(15 20 300 42 23 2 4 33 54 67 66)

my_first_array[0]=999
echo ${my_first_array[0]}
999
  • Ingat: jangan gunakan $ saat menimpa indeks seperti $my_first_array[0]=999, karena tidak akan berfungsi.
Pengantar Bash Scripting

Memanipulasi elemen array

Gunakan notasi array[@]:N:M untuk mengekstrak subset array.

  • N adalah indeks awal, M jumlah elemen yang dikembalikan.
my_first_array=(15 20 300 42 23 2 4 33 54 67 66)
echo ${my_first_array[@]:3:2}
42 23
Pengantar Bash Scripting

Menambahkan ke array

Tambahkan ke array dengan array+=(elemen).

Contoh:

my_array=(300 42 23 2 4 33 54 67 66)

my_array+=(10) echo ${my_array[@]}
300 42 23 2 4 33 54 67 66 10
Pengantar Bash Scripting

(Tidak) menambahkan ke array

Apa yang terjadi jika Anda tidak menambahkan tanda kurung pada yang ingin ditambahkan? Mari lihat.

Contoh:

my_array=(300 42 23 2 4 33 54 67 66)
my_array+=10
echo ${my_array[@]}
30010 42 23 2 4 33 54 67 66

String 10 hanya ditambahkan ke elemen pertama. Bukan yang kita inginkan!

Pengantar Bash Scripting

Array asosiatif

  • Array asosiatif
    • Mirip array biasa, tetapi berpasangan key–value, bukan indeks numerik
    • Mirip dictionary di Python atau list di R
    • Catatan: Hanya ada di Bash 4 ke atas. Beberapa Mac modern memakai Bash lama! Cek dengan bash --version di terminal

Di Python:

my_dict = {'city_name': "New York", 'population': 14000000}

Di R:

my_list = list(city_name = c('New York'), population = c(14000000))
Pengantar Bash Scripting

Membuat array asosiatif

Array asosiatif hanya dapat dibuat dengan sintaks declare (dan -A huruf besar).

Anda bisa deklarasikan dulu lalu tambah elemen, atau lakukan dalam satu baris.

  • Letakkan 'key' dalam tanda kurung siku, lalu nilai setelah tanda sama dengan.
    • Anda bisa menambah beberapa elemen sekaligus.
Pengantar Bash Scripting

Contoh array asosiatif

Mari buat array asosiatif:

declare -A city_details # Deklarasi dulu

city_details=([city_name]="New York" [population]=14000000) # Tambah elemen
echo ${city_details[city_name]} # Indeks dengan key untuk mengembalikan nilai
New York
Pengantar Bash Scripting

Membuat array asosiatif

Alternatifnya, buat array asosiatif dan tetapkan dalam satu baris

  • Selebihnya sama
declare -A city_details=([city_name]="New York" [population]=14000000)

Akses 'key' dari array asosiatif dengan !

echo ${!city_details[@]} # Kembalikan semua key
city_name population
Pengantar Bash Scripting

Ayo berlatih!

Pengantar Bash Scripting

Preparing Video For Download...