Bash Scripting – Array Asosiatif Dijelaskan Dengan Contoh

Ini adalah artikel kedua sebagai bagian dari bash array. Pada artikel sebelumnya, kita telah membahas cara bekerja dengan array Terindeks di Bash. Dalam panduan ini, kita akan membahas tentang Bash Associative Array secara rinci dengan contoh-contoh di Linux.

Array associative bekerja berdasarkan pasangan nilai kunci. Dalam beberapa bahasa, ini juga disebut kamus atau peta hash. Perbedaan utama antara Array Terindeks dan Array Asosiatif adalah, Array terindeks bekerja berdasarkan nilai indeks, dan setiap elemen dalam array dipetakan ke posisi indeks tertentu dari array. Array asosiatif menggunakan “kunci” untuk memetakan nilai alih-alih posisi indeks.

Mari selami dan lihat cara menggunakan array asosiatif di bash.
Contents
Inisialisasi array asosiatifLihat elemen arrayMenambahkan elemen baru ke arrayTambahkan elemen baru ke arrayCetak pasangan kunci dan nilaiPanjang array asosiatifPeriksa apakah elemen ada dalam arrayBaca hanya array asosiatifHapus elemen Hapus array Kosongkan array array

Tidak seperti array Indexed, Anda tidak dapat menginisialisasi array asosiatif tanpa menggunakan perintah mendeklarasikan.

Gunakan perintah mendeklarasikan dengan -A flag.

$ mendeklarasikan -A STAR_PLAYERS=()

Sekarang array kosong bernama “STAR_PLAYERS” dibuat. Jika mau, Anda juga dapat menambahkan elemen ke array secara langsung selama inisialisasi.

$ mendeklarasikan -A STAR_PLAYERS=( [Argentina]="Messi" [Brazil]="Neymar" [England]="Kane" )

Dalam kode di atas , kuncinya berada di dalam tanda kurung siku dan nilainya harus diikuti dengan tanda sama dengan tanpa spasi. Tidak perlu menggunakan koma atau titik koma sebagai pemisah antar elemen.

Untuk keterbacaan yang lebih baik, Anda dapat menulis elemen array melalui beberapa baris.

$ mendeklarasikan -A STAR_PLAYERS=( [Argentina]="Messi" [Brasil]=" Neymar" [Inggris]="Rooney" )

Lihat elemen array

Anda harus menggunakan perintah echo atau printf di bash untuk mencetak isi array. Serupa dengan cara kita menggunakan variabel khusus * dan @ untuk mencetak larik Terindeks, hal yang sama juga harus digunakan untuk mencetak larik asosiatif.

$ echo ${STAR_PLAYERS[@]}
$ echo ${STAR_PLAYERS[*]}

Ada perbedaan yang signifikan antara * dan @ dan untuk mengetahui perbedaan antara * dan @ dan cara kerjanya dengan array, lihat bagian “Mengulangi elemen array” di panduan Bash For Loop kami.

Jika Anda mencoba mencetak elemen array tanpa menggunakan * atau @, output akan kosong.

$ echo ${STAR_PLAYERS}

Juga jika Anda melihat output di atas, hanya nilai yang dicetak dan bukan kuncinya. Nilai yang Anda cetak tidak akan diurutkan. Anda dapat mengambil nilai elemen tertentu menggunakan key.

$ echo ${STAR_PLAYERS[Brasil]}

Menambahkan elemen baru ke array

Menambahkan elemen baru ke array sangatlah mudah. Yang harus Anda lakukan adalah membuat pasangan nilai kunci baru seperti yang ditunjukkan di bawah ini.

$ STAR_PLAYERS[Belgia]="Hazard"
$ echo ${STAR_PLAYERS[@]}

Jika Anda mencoba menggunakan kunci yang sama yang sudah ada dalam array, nilainya akan diganti dengan yang baru.

$ STAR_PLAYERS[England]="Sterling"
$ echo ${STAR_PLAYERS[@]}

Menambahkan elemen baru ke array

Anda juga dapat menambahkan elemen ke array menggunakan yang berikut ini syntax.

$ STAR_PLAYERS+=([Spanyol]="Ramos")
$ echo ${STAR_PLAYERS[@]}

Print key and value pair

Dari contoh sebelumnya, Anda mungkin telah memahami bahwa hanya nilai yang dicetak. Anda bisa mendapatkan daftar kunci sendiri dengan mengawali “!” simbol dengan array.

$ echo ${!STAR_PLAYERS[@]}

Jika Anda ingin mencetak kunci dan nilai secara bersamaan, Anda dapat menggunakan elemen for loop.

for di "${!STAR_PLAYERS[@]}" do echo "key : ${elem}" -- "value: ${STAR_PLAYERS[${elem}]}" done

Length of associative array

Anda bisa mendapatkan panjang dari associative array yaitu jumlah total elemen yang ada dalam array dengan awalan ” #” simbol dengan array. Ini juga umum untuk array yang diindeks.

$ echo ${#STAR_PLAYERS[@]}

Periksa apakah elemen ada dalam array

Terkadang sebelum melakukan pemrosesan apa pun dengan elemen tertentu, Anda mungkin ingin memeriksa apakah elemen sudah ada dalam array . Ada banyak cara untuk melakukannya tetapi di bawah ini adalah cara paling sederhana.

Saya menggunakan pernyataan kondisional dengan flag -n yang akan memeriksa apakah panjang string yang dikembalikan dari ${STAR_PLAYERS[Argentina]} bukan nol. Ini memperluas kunci yang diberikan dan nilainya sebenarnya diperiksa terhadap -n flag.

if [[ -n "${STAR_PLAYERS[Argentina]}" ]] lalu echo "Elemen ada" else echo "Elemen tidak ada" fi

Read only associative array

Anda dapat membuat array asosiatif hanya-baca. Dalam status read-only, setelah array diinisialisasi, Anda tidak dapat menambahkan elemen baru ke array atau mengubah nilai apa pun di dalam array. Bersamaan dengan perintah mendeklarasikan Anda harus menggunakan -r flag.

$ mendeklarasikan -r -A STAR_PLAYERS=( [Argentina]="Messi" [Brazil]="Neymar" [England]="Rooney" )
$ STAR_PLAYERS[ Spain]="Ramos"
$ STAR_PLAYERS[England]="Sterling"
$ echo ${STAR_PLAYERS[@]}

Remove elements

Jika Anda ingin menghapus elemen tertentu dari larik, Anda dapat menggunakan perintah unset dengan nama kunci elemen . Misalnya, jika saya ingin menghapus elemen (Spanyol=”Ramos”), maka sintaksnya harus sebagai berikut.

$ unset STAR_PLAYERS[Spanyol]

Empty an array

Anda juga dapat menghapus semua elemen dari array dan mengosongkannya dengan menginisialisasi ulang array seperti di bawah ini.

$ echo ${STAR_PLAYERS[@]}
$claim -A STAR_PLAYERS=()

Remove array

Jika Anda ingin menghapus array, Anda dapat menggunakan nama array tanpa kunci.

$ unset STAR_PLAYERS

Conclusion

Inclusion artikel ini, kita telah melihat apa itu array asosiatif di bash dan beberapa fungsinya. Kelemahan dengan bash adalah Anda harus menulis beberapa logika secara manual atau menggunakan alat eksternal untuk mencapai hasil yang diinginkan. Misalnya, ketika saya harus mengonversi array asosiatif ke objek json, maka saya harus menggunakan alat jq yang tidak built-in untuk bash. Di sinilah Anda harus mencoba menggunakan Python yang menawarkan metode yang mudah digunakan ketika Anda harus bekerja dengan array dan struktur data lainnya.

Related read:
Bash Scripting – Sementara Dan Sampai Loop Dijelaskan Dengan ExampleBash Scripting – Untuk Loop Dijelaskan Dengan Scripting ExampleBash – Fungsi Dijelaskan Dengan Scripting ContohBash – Variabel Dijelaskan Dengan ContohPengalihan Bash Dijelaskan Dengan ContohPerintah Gema Bash Dijelaskan Dengan Contoh Di LinuxBash Tutorial Heredoc Untuk Pemula

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

%d bloggers like this: