Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Bash Lanjutan

Pelajaran 10 dari 15

Skrip yang tahan banting

Array: menyimpan daftar yang utuh

Setelah pelajaran ini kamu bisa membuat, menambah, menghitung, dan mengulang array tanpa memecah elemen yang berisi spasi.

±13 menitDiperiksa 5 Okt 2026

Materi

Variabel biasa menyimpan satu teks. Daftar nama yang ditulis dalam satu teks, misalnya CABANG="Medan Kota Baru Solo", tidak bisa dipecah kembali dengan benar karena batas antarnamanya hilang. Array menyimpan setiap elemen terpisah: CABANG=(Medan "Kota Baru" Solo). Indeksnya mulai dari 0, jadi ${CABANG[1]} berisi Kota Baru, dan ${CABANG[-1]} elemen terakhir.

CABANG=(Medan "Kota Baru" Solo)
CABANG+=(Makassar)
echo "${#CABANG[@]} cabang"
for c in "${CABANG[@]}"; do
  mkdir -p "laporan/$c"
done

"${CABANG[@]}" dengan kutip ganda menghasilkan satu kata per elemen, persis seperti "$@" untuk argumen. ${#CABANG[@]} berisi jumlah elemen, ${!CABANG[@]} daftar indeksnya, dan CABANG+=(Makassar) menambah elemen di belakang. CABANG[1]=Binjai mengganti satu elemen.

Array bisa diisi dari pola berkas, BERKAS=(data/*.csv), atau sedikit demi sedikit di dalam perulangan dengan ISI+=("$f"). Sesudah itu, ${#BERKAS[@]} menjawab pertanyaan berapa berkas yang ditemukan tanpa perlu ls | wc -l.

Kesalahan umum: menulis $CABANG tanpa indeks, yang hanya menghasilkan elemen pertama; menulis ${CABANG[@]} tanpa kutip, yang memecah Kota Baru menjadi dua; dan menulis CABANG=Medan Solo tanpa kurung, yang bukan array sama sekali. "${CABANG[*]}" menggabung semua elemen menjadi satu kata, berguna untuk dicetak dalam satu baris.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Berapa baris yang dicetak potongan berikut?

CABANG=(Medan "Kota Baru" Solo)
for c in ${CABANG[@]}; do
  echo "[$c]"
done
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi